commit 018e3e9815bc96511f3e367dc279f177530cf095 Author: lijh Date: Tue Mar 10 11:41:06 2026 +0800 first commit diff --git a/SignOff_itk/.vs/SignOff_itk/v14/.suo b/SignOff_itk/.vs/SignOff_itk/v14/.suo new file mode 100644 index 0000000..63102d8 Binary files /dev/null and b/SignOff_itk/.vs/SignOff_itk/v14/.suo differ diff --git a/SignOff_itk/.vs/SignOff_itk/v16/.suo b/SignOff_itk/.vs/SignOff_itk/v16/.suo new file mode 100644 index 0000000..2f77cd6 Binary files /dev/null and b/SignOff_itk/.vs/SignOff_itk/v16/.suo differ diff --git a/SignOff_itk/.vs/SignOff_itk/v16/Browse.VC.db b/SignOff_itk/.vs/SignOff_itk/v16/Browse.VC.db new file mode 100644 index 0000000..e2f764c Binary files /dev/null and b/SignOff_itk/.vs/SignOff_itk/v16/Browse.VC.db differ diff --git a/SignOff_itk/SignOff_itk.sdf b/SignOff_itk/SignOff_itk.sdf new file mode 100644 index 0000000..e1fb083 Binary files /dev/null and b/SignOff_itk/SignOff_itk.sdf differ diff --git a/SignOff_itk/SignOff_itk.sln b/SignOff_itk/SignOff_itk.sln new file mode 100644 index 0000000..ab127b6 --- /dev/null +++ b/SignOff_itk/SignOff_itk.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SignOff_itk", "SignOff_itk\SignOff_itk.vcxproj", "{8240A4EB-EBA7-448B-B846-2FEC53074C73}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Debug|x64.ActiveCfg = Debug|x64 + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Debug|x64.Build.0 = Debug|x64 + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Debug|x86.ActiveCfg = Release|x64 + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Debug|x86.Build.0 = Release|x64 + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Release|x64.ActiveCfg = Release|x64 + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Release|x64.Build.0 = Release|x64 + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Release|x86.ActiveCfg = Release|Win32 + {8240A4EB-EBA7-448B-B846-2FEC53074C73}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SignOff_itk/SignOff_itk.suo b/SignOff_itk/SignOff_itk.suo new file mode 100644 index 0000000..a782802 Binary files /dev/null and b/SignOff_itk/SignOff_itk.suo differ diff --git a/SignOff_itk/SignOff_itk.v11.suo b/SignOff_itk/SignOff_itk.v11.suo new file mode 100644 index 0000000..511840e Binary files /dev/null and b/SignOff_itk/SignOff_itk.v11.suo differ diff --git a/SignOff_itk/SignOff_itk/CRUL_server_call_httpserver.cpp b/SignOff_itk/SignOff_itk/CRUL_server_call_httpserver.cpp new file mode 100644 index 0000000..46c655c --- /dev/null +++ b/SignOff_itk/SignOff_itk/CRUL_server_call_httpserver.cpp @@ -0,0 +1,99 @@ +#include "CRUL_server_call_httpserver.h" +#include +#include +#include "common_itk_util.h" +//#define HTTP_HOST "localhost" +#define HTTP_POST 9293 + +void callHttpserver(string signinfoJsonString,char * HTTP_HOST) +{ + CURL *curl; + CURLcode res; + char httpUrl[1028] = "\0"; + curl = curl_easy_init(); + sprintf(httpUrl,"http://%s:%d/server/signoff",HTTP_HOST,HTTP_POST); + if (curl) { + curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); + curl_easy_setopt(curl, CURLOPT_URL, httpUrl); + //curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + //curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Accept-Charset: GBK"); + headers = curl_slist_append(headers, "Content-Type: application/json;charset=GBK"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + WriteLog("发送内容:%s完\n", signinfoJsonString.c_str()); + //printf("data=>%s\n",signinfoJsonString.c_str()); + const char *data = signinfoJsonString.c_str(); + WriteLog("1======\n" ); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); + WriteLog("2======%s\n", data); + curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10); + WriteLog("3======\n"); + curl_easy_setopt(curl, CURLOPT_TIMEOUT, 20); + WriteLog("4======\n"); + res = curl_easy_perform(curl); + WriteLog("返回值:%d\n", res); + } + curl_easy_cleanup(curl); +} + +void callHttpserverDwgtopdf(string signinfoJsonString, char* HTTP_HOST) +{ + CURL* curl; + CURLcode res; + char httpUrl[1028] = "\0"; + curl = curl_easy_init(); + sprintf(httpUrl, "http://%s:%d/server/dwgtopdf", HTTP_HOST, HTTP_POST); + if (curl) { + curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); + curl_easy_setopt(curl, CURLOPT_URL, httpUrl); + //curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + //curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); + struct curl_slist* headers = NULL; + headers = curl_slist_append(headers, "Accept-Charset: GBK"); + headers = curl_slist_append(headers, "Content-Type: application/json;charset=GBK"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + WriteLog("发送内容:%s\n", signinfoJsonString.c_str()); +// printf("data=>%s\n", signinfoJsonString.c_str()); + const char* data = signinfoJsonString.c_str(); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); + curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10); + curl_easy_setopt(curl, CURLOPT_TIMEOUT, 20); + res = curl_easy_perform(curl); + WriteLog("返回值:%d\n", res); + + } + curl_easy_cleanup(curl); +} + +void callHttpserverMail(string signinfoJsonString, char* HTTP_HOST) +{ + CURL* curl; + CURLcode res; + char httpUrl[4096] = "\0"; + WriteLog("内容长度%d\n", signinfoJsonString.size()); + curl = curl_easy_init(); + sprintf(httpUrl, "http://%s:%d/server/sendmail", HTTP_HOST, HTTP_POST); +// printf("call=>%s \n", httpUrl); + WriteLog("发送的路径:%s\n", httpUrl); + if (curl) { + curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); + curl_easy_setopt(curl, CURLOPT_URL, httpUrl); + //curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + //curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); + struct curl_slist* headers = NULL; + headers = curl_slist_append(headers, "Accept-Charset: GBK"); + headers = curl_slist_append(headers, "Content-Type: application/json;charset=GBK"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); +// curl_easy_setopt(curl, CURLOPT_HTTPHEADER, "Expect:"); + WriteLog("发送内容:%s\n", signinfoJsonString.c_str()); + // printf("data=>%s\n", signinfoJsonString.c_str()); + const char* data = signinfoJsonString.c_str(); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); + curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10); + curl_easy_setopt(curl, CURLOPT_TIMEOUT, 20); + res = curl_easy_perform(curl); + WriteLog("返回值:%d\n", res); + } + curl_easy_cleanup(curl); +} \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/CRUL_server_call_httpserver.h b/SignOff_itk/SignOff_itk/CRUL_server_call_httpserver.h new file mode 100644 index 0000000..a8914f7 --- /dev/null +++ b/SignOff_itk/SignOff_itk/CRUL_server_call_httpserver.h @@ -0,0 +1,7 @@ +#include +#include +#include +using namespace std; +void callHttpserver(string signinfoJsonString,char * HTTP_HOST); +void callHttpserverDwgtopdf(string signinfoJsonString, char* HTTP_HOST); +void callHttpserverMail(string signinfoJsonString, char* HTTP_HOST); \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/Connor2.cpp b/SignOff_itk/SignOff_itk/Connor2.cpp new file mode 100644 index 0000000..af41613 --- /dev/null +++ b/SignOff_itk/SignOff_itk/Connor2.cpp @@ -0,0 +1,646 @@ +#include "Supor_register.h" +#define SIGN_RELATION "S8SignOffR" +#define SIGN_INFO_OPTION "Supor_signoff_dataset" + + +#include +#include +#include +#include "sa/sa.h" +#include +#include +#include +#include +#include +#include + +extern "C" int POM_AM__set_application_bypass(logical bypass); +using namespace std; + +// +int set_release_status2(tag_t item, char release_name[]) { + int ifail = ITK_ok; + tag_t release_status = NULL; + + ITKCALL(ifail = RELSTAT_create_release_status(release_name, &release_status)); + ITKCALL(ifail = RELSTAT_add_release_status(release_status, 1, &item, TRUE)); + + + return ifail; +} + +/** +* +* жijǷΪItemRevision +* +*/ +int checkIsItemRevision2(tag_t objtag, logical & isItems) { + tag_t type = NULLTAG; + tag_t item_type = NULLTAG; + ITKCALL2(TCTYPE_ask_object_type(objtag, &type)); + ITKCALL2(TCTYPE_find_type("ItemRevision", "", &item_type)); + if (item_type != NULLTAG) { + logical isok = FALSE; + ITKCALL2(TCTYPE_is_type_of(type, item_type, &isok)); + if (isok) { + isItems = TRUE; + } + else { + isItems = FALSE; + } + } + return 0; +} + +//ݼ +int import_dataset_file_binary(tag_t dataset, const char* temp_path, const char *ref_name, char *ext, char *fullfilename, char *original_name) +{ + int ifail = ITK_ok; + tag_t new_file_tag = NULLTAG; + IMF_file_t file_descriptor = NULL; + AOM_refresh(dataset, FALSE); + char *new_file_name = NULL; + char new_ds_name[WSO_name_size_c + 1] = ""; + char *filename = NULL; + new_file_name = USER_new_file_name(new_ds_name, ref_name, ext, 0); + filename = strrchr(fullfilename, '\\') + 1; + if (filename == NULL) + return ITK_ok; + ifail = IMF_import_file(fullfilename, new_file_name, SS_BINARY, &new_file_tag, &file_descriptor); + ifail = IMF_set_original_file_name2(new_file_tag, original_name); + + ifail = IMF_close_file(file_descriptor); + ifail = AOM_save_with_extensions(new_file_tag); + AOM_unlock(new_file_tag); + ifail = AOM_refresh(new_file_tag, FALSE); + // + ifail = AOM_lock(dataset); + if (ifail != ITK_ok) { return ifail; } + ifail = RES_checkout2(dataset, "import file", NULL, temp_path, RES_EXCLUSIVE_RESERVE); + if (ifail != ITK_ok) { return ifail; } + ifail = AE_remove_dataset_named_ref2(dataset, ref_name); + if (ifail != ITK_ok) { return ifail; } + ifail = AOM_save_with_extensions(dataset); + ifail = AE_add_dataset_named_ref2(dataset, ref_name, AE_PART_OF, new_file_tag); + AOM_save_with_extensions(dataset); + ifail = RES_checkin(dataset); + AOM_unlock(dataset); + //ITKCALL( AOM_refresh( dataset, FALSE ) ); + return ifail; +} + +int Connor_creo_dataset(EPM_action_message_t msg) +{ + + char *log_file = NULL; + CreateLogFile("Connor_creo_dataset", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* Connor_creo_dataset is strat ! *\n"); + WriteLog("*************************************************************\n"); + printf("*************************************************************\n"); + printf("* Connor_creo_dataset is strat ! *\n"); + printf("*************************************************************\n"); + starTime(); + + //===============ҵ==================== + + string signJson; + string signInfo; + int arg_cnt = 0, + ifail = ITK_ok, + attachesCount = 0; + + char *arg = NULL, + *argflag = NULL, + *argvalue = NULL, + typeClass[TCTYPE_class_name_size_c + 1] = "\0"; + + char issignpdf[16] = "true", + sign_relation[56] = "\0", + sign_info_option[56] = "\0", + tcdepartmentid[56] = "\0", + tccomponentuid[56] = "\0", + tcdatasetuid[56] = "\0", + tccomponentrelation[56] = "\0", + pdfuid[56] = "\0", + tcpdfrelation[56] = "\0", + serverhost[56] = "\0", + processid[56] = "\0", + dwgtype[56] = "\0", + userid[56] = "\0", + objectType[56] = "\0", + tcstatus[56] = "\0", + taskpuid[56] = "\0", + picture[1024] = "\0", + location[1024] = "\0", + picture2[1024] = "\0", + location2[1024] = "\0", + ismergepdf[16] = "\0", + isaddtask[16] = "\0"; // * + //ismj[16] = "\0"; + + + vector relationVec; + vector datasetTypeVec; + vector parameterVec; + tag_t rootTask = NULLTAG, + *taskAttches = NULL, + attachTag = NULLTAG, + relation = NULLTAG; + + int grmSecondCount = 0; + tag_t *grmSecondTags = NULL; + char * tempValue = NULL; + arg_cnt = TC_number_of_arguments(msg.arguments); + if (arg_cnt > 0) + { + for (int i = 0; i gywdVec; + + for (int i = 0; i < attachesCount; i++) + { + attachTag = taskAttches[i]; + logical isRev = false; + + char *object_name = NULL; + AOM_ask_value_string(attachTag, "object_name", &object_name); + + checkIsItemRevision2(attachTag, isRev); + if (!isRev) + { + WriteLog("[%d]ItemRevision\n", taskAttches[i]); + printf("[%d]ItemRevision\n", taskAttches[i]); + continue; + } + + // һжDzcreoIMAN_specification + tag_t *is_c_tags = NULLTAG; + int is_c_tags_num = 0; + AOM_ask_value_tags(attachTag, "IMAN_specification", &is_c_tags_num, &is_c_tags); + printf("is_c_tags_num: %d\n", is_c_tags_num); + boolean flag1 = false, flag2 = false; + for (int k = 0; k < is_c_tags_num; k++) { + tag_t dataTag = is_c_tags[k]; + char *dataName = NULL, *dataType = NULL, *object_desc = NULL; + AOM_ask_value_string(dataTag, "object_string", &dataName); + AOM_ask_value_string(dataTag, "object_type", &dataType); + AOM_ask_value_string(dataTag, "object_desc", &object_desc); + WriteLog("is_c_tags_num duix:%s, leixing:%s\n", dataName, dataType); + if (strcmp(dataType,"ProDrw") == 0) { + flag1 = true; // creo + } + if (strcmp(dataType, "LB2_CAD") == 0) { + flag2 = true; // cad + } + } + // ֻcadcreoʱִдhandler + if (!(flag1 && !flag2)) { + continue; + } + + WriteLog("is creo\n"); + printf("is creo\n"); + + + // һָϵеݼtcpdfrelation + tag_t *all_pdf = NULLTAG; + int allPdFnum = 0; + AOM_ask_value_tags(attachTag, tcpdfrelation,&allPdFnum,&all_pdf); + WriteLog("num: %d\n", allPdFnum); + printf("num: %d\n", allPdFnum); + for (int k = 0; k < allPdFnum; k++) { + tag_t dataTag = all_pdf[k]; + char *dataName = NULL, *dataType = NULL, *object_desc = NULL; + AOM_ask_value_string(dataTag, "object_string", &dataName); + AOM_ask_value_string(dataTag, "object_type", &dataType); + AOM_ask_value_string(dataTag, "object_desc", &object_desc); + WriteLog("duix:%s, leixing:%s\n", dataName, dataType); + printf("duix:%s, leixing:%s\n", dataName, dataType); + // *߼ڸcreoжϷijɣûԴpdfijFrom iPEM + if (strcmp(object_desc, "From iPEM copy") == 0 || strcmp(object_desc, "From iPEM success") == 0) { + WriteLog("no yuan creo,tiaoguo\n"); + printf("no yuan creo,tiaoguo\n"); + continue; + } + + AOM_lock(dataTag); + AOM_set_value_string(dataTag, "object_desc", "From iPEM"); // ûԴpdfijFrom iPEM + AOM_save(dataTag); + AOM_unlock(dataTag); + + AOM_refresh(dataTag, false); + + //if (strcmp(object_desc, "From iPEM") != 0 && strcmp(object_desc, "FromiPEM") != 0) { + // printf("no creo,tiaoguo\n"); + // continue; + //} + //printf("is creo\n"); + if (strcmp(dataType, "PDF") == 0) { + + // Ȱpdf + char *temp_dir = "D:\\creoExPdf"; + char temp_file[SS_MAXPATHLEN] = ""; + // * + strcpy(temp_file, "D:\\creoExPdf"); + strcat(temp_file, "\\"); + strcat(temp_file, dataName); + strcat(temp_file, "-"); + strcat(temp_file, object_name); + strcat(temp_file, ".pdf"); + WriteLog("temp_file:%s\n", temp_file); + printf("temp_file:%s\n", temp_file); + + AE_reference_type_t reference_type; + tag_t ref_object = NULLTAG; + char ref_name[WSO_name_size_c + 1] = "PDF_Reference"; + + AE_ask_dataset_named_ref2(dataTag, ref_name, &reference_type, &ref_object); + + IMF_export_file(ref_object, temp_file); + + // ٰpdfϴ + + //ݼ + tag_t relation_type = NULLTAG, relation = NULLTAG; + ITKCALL(ifail = GRM_find_relation_type("IMAN_specification", &relation_type)); + + char pdf_name[SS_MAXPATHLEN] = ""; + strcat(pdf_name, dataName); + strcat(pdf_name, "-"); + strcat(pdf_name, object_name); + tag_t pdfTypeTag = NULLTAG, tool = NULLTAG, datasetTag = NULLTAG; + ITKCALL(ifail = AE_find_datasettype2("PDF", &pdfTypeTag)); + ITKCALL(ifail = AE_create_dataset_with_id(pdfTypeTag, pdf_name, "", "", "A", &datasetTag)); + ITKCALL(ifail = AE_ask_datasettype_def_tool(pdfTypeTag, &tool)); + ITKCALL(ifail = AE_set_dataset_tool(datasetTag, tool)); + ITKCALL(ifail = AE_set_dataset_format2(datasetTag, "PDF")); + ITKCALL(ifail = AOM_save_without_extensions(datasetTag)); + if (datasetTag == NULLTAG) { + WriteLog("create %s fail\n", pdf_name); + printf("create %s fail\n", pdf_name); + continue; + } + WriteLog("create %s success\n", pdf_name); + printf("create %s success\n", pdf_name); + + ITKCALL(ifail = GRM_create_relation(attachTag, datasetTag, relation_type, NULLTAG, &relation)); + ITKCALL(GRM_save_relation(relation)); + + strcat(pdf_name, ".pdf"); + //import_dataset_file_binary(datasetTag, "D:/createItem/createProject", "PDF_Reference", "pdf", temp_file, (char*)doName[i].c_str()); + import_dataset_file_binary(datasetTag, getenv("temp"), "PDF_Reference", "pdf", temp_file, pdf_name); + + AOM_lock(datasetTag); + AOM_set_value_string(datasetTag,"object_desc","From iPEM copy"); // ǩpdf + AOM_save(datasetTag); + AOM_unlock(datasetTag); + + AOM_refresh(datasetTag, false); + if (remove(temp_file) == 0) { + WriteLog("remove success\n"); + printf("remove success\n"); + } + else { + WriteLog("remove fail\n"); + printf("remove fail\n"); + } + + + } + } + } + + POM_AM__set_application_bypass(false); + WriteLog("*************************************************************\n"); + WriteLog("* Connor_creo_dataset is end ! *\n"); + WriteLog("*************************************************************\n"); + printf("*************************************************************\n"); + printf("* Connor_creo_dataset is end ! *\n"); + printf("*************************************************************\n"); + CloseLog(); + + return ifail; +} + +void change_release_status(tag_t wso_tag, char *old_release_status, char *new_release_status) +{ + int ifail = ITK_ok; + int n_statuses = 0; + tag_t *statuses = NULL; + ITKCALL(ifail = WSOM_ask_release_status_list(wso_tag, &n_statuses, &statuses)); + + for (int i = 0; i < n_statuses; i++) + { + char *existing_status = NULL; + ITKCALL(ifail = RELSTAT_ask_release_status_type(statuses[i], &existing_status)); + if (strcmp(existing_status, old_release_status) == 0 || strcmp(old_release_status, "ALL") == 0) + { + ITKCALL(ifail = AOM_refresh(statuses[i], TRUE)); + ITKCALL(ifail = RELSTAT_set_release_status_type(statuses[i], new_release_status)); + ITKCALL(ifail = AOM_save(statuses[i])); + ITKCALL(ifail = AOM_refresh(statuses[i], FALSE)); + ITKCALL(ifail = AOM_unload(statuses[i])); + } + } + if (statuses) MEM_free(statuses); +} + +int Connor_setPDF_status(EPM_action_message_t msg) { + + //===============ҵ==================== + + string signJson; + string signInfo; + int arg_cnt = 0, + ifail = ITK_ok, + attachesCount = 0; + + char *arg = NULL, + *argflag = NULL, + *argvalue = NULL, + typeClass[TCTYPE_class_name_size_c + 1] = "\0"; + + + vector relationVec; + vector datasetTypeVec; + vector parameterVec; + tag_t rootTask = NULLTAG, + *taskAttches = NULL, + attachTag = NULLTAG, + relation = NULLTAG; + + int grmSecondCount = 0; + tag_t *grmSecondTags = NULL; + char * tempValue = NULL; + arg_cnt = TC_number_of_arguments(msg.arguments); + + //================̶==================== + ITKCALL2(EPM_ask_root_task(msg.task, &rootTask)); + ITKCALL2(EPM_ask_attachments(rootTask, EPM_target_attachment, &attachesCount, &taskAttches)); + WriteLog("Ŀ%d\n", attachesCount); + string status = ""; + arg_cnt = TC_number_of_arguments(msg.arguments); + if (arg_cnt > 0) { + for (int i = 0; i < arg_cnt; i++) { + arg = TC_next_argument(msg.arguments); + ITKCALL(ifail = ITK_ask_argument_named_value(arg, &argflag, &argvalue)); + if (strcmp(argflag, "status") == 0) { + status.assign(argvalue); + } + MEM_free(argflag); + MEM_free(argvalue); + } + } + + POM_AM__set_application_bypass(true); + vector gywdVec; + + for (int i = 0; i < attachesCount; i++) + { + attachTag = taskAttches[i]; + logical isRev = false; + + char *object_name = NULL; + AOM_ask_value_string(attachTag, "object_name", &object_name); + + char *object_desc = NULL; + AOM_ask_value_string(attachTag, "object_desc", &object_desc); + + char *dataType = NULL; + AOM_ask_value_string(attachTag, "object_type", &dataType); + + char *statusDX = "TCM Released"; + //if (strcmp(dataType, "PDF") != 0) { + // statusDX = (char*)status.c_str(); + //} + //else { + if (strcmp(object_desc, "From iPEM") == 0 && strcmp(dataType, "PDF") == 0) { + printf("is creo,set zhuang tai\n"); + } + else { + if (status != "TCM Released") { + statusDX = (char*)status.c_str(); + } + + } + //} + + + // ݼ״̬ + AOM_lock(attachTag); + + char* status_name = NULL; + //char release_name[128 + 1] = "TCM Released"; + + + + set_release_status2(attachTag, statusDX); + + AOM_save(attachTag); + AOM_unlock(attachTag); + + AOM_refresh(attachTag, false); + + + + //checkIsItemRevision2(attachTag, isRev); + //if (!isRev) + //{ + // WriteLog("[%d]ItemRevision\n", taskAttches[i]); + // continue; + //} + + //// һָϵеݼtcpdfrelation + //tag_t *all_pdf = NULLTAG; + //int allPdFnum = 0; + //AOM_ask_value_tags(attachTag, "IMAN_specification", &allPdFnum, &all_pdf); + //printf("num: %d\n", allPdFnum); + //for (int k = 0; k < allPdFnum; k++) { + // tag_t dataTag = all_pdf[k]; + // char *dataName = NULL, *dataType = NULL, *object_desc = NULL; + // AOM_ask_value_string(dataTag, "object_string", &dataName); + // AOM_ask_value_string(dataTag, "object_type", &dataType); + // AOM_ask_value_string(dataTag, "object_desc", &object_desc); + // printf("duix:%s, leixing:%s\n", dataName, dataType); + // if (strcmp(object_desc, "From iPEM") == 0) { + // printf("is creo,set zhuang tai\n"); + + // // ޸ݼ״̬ + // //change_release_status(dataTag, "LB2_KM", "TCM Released"); // ǿģתɷ + // //change_release_status(dataTag, "ALL", "TCM Released"); // ֻҪ״̬ȫתɷ + + // int rel_cnt = 0; + // tag_t *releases; + // ITKCALL(AOM_ask_value_tags(dataTag, "release_status_list", &rel_cnt, &releases)); + // for (int j = rel_cnt - 1; j > -1; j--) + // { + // //EPM_remove_status_from_targets(releases[j], dataTag); + // //EPM_remove_status_from_targets(releases[j], rootTask); // һ + + // tag_t gx_type = NULLTAG; + // ITKCALL(GRM_find_relation_type("release_status_list", &gx_type)); + + // tag_t gx_relation = NULLTAG; + // GRM_find_relation(dataTag, releases[j], gx_type, &gx_relation); + // GRM_delete_relation(gx_relation); + + // } + + // // ݼ״̬ + // AOM_lock(dataTag); + + // char* status_name = NULL; + // char release_name[128 + 1] = "TCM Released"; + + + + // set_release_status2(dataTag, release_name); + + // AOM_save(dataTag); + // AOM_unlock(dataTag); + + // AOM_refresh(dataTag, false); + // } + //} + + } + + POM_AM__set_application_bypass(false); + + return ifail; +} \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/Connor2.h b/SignOff_itk/SignOff_itk/Connor2.h new file mode 100644 index 0000000..139597f --- /dev/null +++ b/SignOff_itk/SignOff_itk/Connor2.h @@ -0,0 +1,2 @@ + + diff --git a/SignOff_itk/SignOff_itk/Connor_creo_dataset.h b/SignOff_itk/SignOff_itk/Connor_creo_dataset.h new file mode 100644 index 0000000..e69de29 diff --git a/SignOff_itk/SignOff_itk/Connor_signoff_dataset.cpp b/SignOff_itk/SignOff_itk/Connor_signoff_dataset.cpp new file mode 100644 index 0000000..6ba7aab --- /dev/null +++ b/SignOff_itk/SignOff_itk/Connor_signoff_dataset.cpp @@ -0,0 +1,896 @@ +#include "Supor_register.h" +#define SIGN_RELATION "S8SignOffR" +#define SIGN_INFO_OPTION "Supor_signoff_dataset" +extern "C" int POM_AM__set_application_bypass(logical bypass); +using namespace std; + + + +int getPrefStrings( const char *preference, vector &pref_vec ) +{ + int ifail = ITK_ok , i = 0, j = 0, k =0, num = 0; + char **values; + ITKCALL2( ifail = PREF_ask_char_values( preference, &num, &values ) ); + for(i = 0; i < num; i++) + { + pref_vec.push_back(values[i]); + } + DOFREE(values); + return ifail; +} +/** +* +* 判断某个对象是否为ItemRevision +* +*/ +int checkIsItemRevision(tag_t objtag,logical & isItems){ + tag_t type = NULLTAG; + tag_t item_type = NULLTAG; + ITKCALL2(TCTYPE_ask_object_type(objtag,&type)); + ITKCALL2(TCTYPE_find_type("ItemRevision","",&item_type)); + if(item_type != NULLTAG){ + logical isok = FALSE; + ITKCALL2(TCTYPE_is_type_of(type,item_type,&isok)); + if(isok){ + isItems = TRUE; + }else{ + isItems = FALSE; + } + } + return 0; +} + +/** +* 用来拼接签名信息mapping为json +* paramMap 签名mapping +* jsonString 拼接后的json字符串 +*/ +int stringToJson(map paramMap,string &jsonString) +{ + std::map::iterator iter; + jsonString.assign("{"); + int tempIndex = 0; + int mapCount = paramMap.size(); + for (iter=paramMap.begin(); iter!=paramMap.end(); iter++) + { + jsonString.append("\""); + jsonString.append(iter->first); + jsonString.append("\":\""); + jsonString.append(iter->second); + jsonString.append("\""); + if(tempIndex != (mapCount-1)){ + jsonString.append(","); + } + tempIndex ++ ; + } + jsonString.append("}"); + + return 0; +} +/** +* 拼接电子签名字符串 +* paramMap 签名对象信息 +* paraName signinfos +* json 签名信息json +* jsonString 汇总签名信息 +*/ +int stringToJsonPlus(map paramMap, string paraName,string json ,string &jsonString) +{ + std::map::iterator iter; + jsonString.assign("{"); + for (iter=paramMap.begin(); iter!=paramMap.end(); iter++) + { + jsonString.append("\""); + jsonString.append(iter->first); + jsonString.append("\":\""); + jsonString.append(iter->second); + jsonString.append("\","); + } + jsonString.append("\""); + jsonString.append(paraName); + jsonString.append("\":"); + jsonString.append(json); + jsonString.append("}"); + + return 0; +} + +/** +* 拼接签名信息 +* paramMap 签名对象信息 +* signInfoMap 签名信息 +* signJson 签名汇总信息json +*/ +//void getSignoffInfoJson(map paramMap ,map signInfoMap,string &signJson) +//{ +// string signInfo ; +// stringToJson(signInfoMap,signInfo); +// stringToJsonPlus(paramMap,"signinfos",signInfo,signJson); +//} + +/** +* 获取签名信息到map +* revisionRevTag 版本对象 +* signInfoMap 签名信息map +*/ +void getSignoffInfoJson(tag_t revisionRevTag,map &signInfoMap,char * processid,char *sign_relation,char *sign_info_option){ + tag_t * signoffFormTags = NULL; + tag_t signFormTag = NULLTAG; + int signoffFormCount = 0; + char* tempValue = NULL; + + ITKCALL2(AOM_ask_value_tags(revisionRevTag, sign_relation,&signoffFormCount,&signoffFormTags)); + WriteLog("签名表单个数:%d\n",signoffFormCount); + if(signoffFormCount > 0){ + signFormTag = signoffFormTags[0]; + } + DOFREE(signoffFormTags); + if(signFormTag == NULLTAG){ + WriteLog("没有获取到签名表单\n"); + return; + } + vector signoffVec ; + getPrefStrings(sign_info_option,signoffVec); + WriteLog("首选项[%s]=[%d]\n", sign_info_option,signoffVec.size()); + for (int i = 0; i < signoffVec.size(); i++) { + + vector secondVec ; + Split(signoffVec[i],":",secondVec); + string signinfoValue ; + if(secondVec.size() !=2){ + secondVec.clear(); + continue; + } + if(strcmp(secondVec[0].c_str(),processid) != 0){ + secondVec.clear(); + continue; + } + signinfoValue.assign(secondVec[1]); + + secondVec.clear(); + Split( signinfoValue,";",secondVec); + + for(int j = 0;j thirdVec ; + WriteLog("222\n"); + Split( secondVec[j],"=",thirdVec); + WriteLog("333\n"); + if(thirdVec.size() == 2){ + PROP_value_type_t propertyValueType; + char * propertyType = NULL; + WriteLog("444\n"); + ITKCALL2(AOM_ask_value_type(signFormTag,thirdVec[0].c_str(),&propertyValueType,&propertyType)); + WriteLog("属性:%s\n", thirdVec[0].c_str()); + if(propertyValueType == 8){ + char valueTemp[128] = "\0"; + ITKCALL2(AOM_ask_value_string(signFormTag,thirdVec[0].c_str(),&tempValue)); + WriteLog("属性:%s, 内容:%s\n", thirdVec[0].c_str(), tempValue); + if (strcmp(ISNULL(tempValue), "") != 0) { + //char* tempValueGBK = tempValue; + // char* thirdVecGBK = thirdVec[1].c_str(); + //sprintf(valueTemp, "%s%s%s", picpath, tempValueGBK, picext); + signInfoMap.insert(pair(thirdVec[1], tempValue)); + DOFREE(tempValue); + // DOFREE(tempValueGBK); + // DOFREE(thirdVecGBK); + } + }else if(propertyValueType == 2){ + date_t date; + AOM_ask_value_date(signFormTag,thirdVec[0].c_str(),&date); + if(date.year > 1000){ + // char* thirdVecGBK = thirdVec[1].c_str()); + ITKCALL2(DATE_date_to_string(date,"%Y/%m/%d",&tempValue)); + signInfoMap.insert(pair(thirdVec[1],tempValue)); + DOFREE(tempValue); + // DOFREE(thirdVecGBK); + } + } + DOFREE(propertyType); + } + thirdVec.clear(); + } + secondVec.clear(); + break; + } +} + +void sendMessageToService(tag_t attachTag, tag_t rootTask,tag_t datasetTag,vector parameterVec,string relation,string ismergepdf, string signInfo) { + string signJson; + char* tempValue = NULL; + char tcdepartmentid[56] = "\0", + tccomponentuid[56] = "\0", + tcdatasetuid[56] = "\0", + tccomponentrelation[56] = "\0", + userid[56] = "\0", + taskpuid[56] = "\0", + pdfuid[56] = "\0", + objectType[56] = "\0"; + + char issignpdf[56] = "\0", + dwgtype[56] = "\0", + tcpdfrelation[56] = "\0", + tcstatus[56] = "\0", + serverhost[56] = "\0", + isaddtask[16] = "\0", + isdwgtopdf[16] = "\0"; + + strcpy(issignpdf, parameterVec[0].c_str()); + strcpy(dwgtype, parameterVec[1].c_str()); + strcpy(tcpdfrelation, parameterVec[2].c_str()); + strcpy(tcstatus, parameterVec[3].c_str()); + strcpy(serverhost, parameterVec[6].c_str()); + strcpy(tcdepartmentid, parameterVec[7].c_str()); + strcpy(isaddtask, parameterVec[8].c_str()); + strcpy(isdwgtopdf, parameterVec[9].c_str()); + strcpy(tccomponentrelation,relation.c_str()); + ITK__convert_tag_to_uid(attachTag, &tempValue); + tc_strcpy(tccomponentuid, tempValue); + DOFREE(tempValue); + ITK__convert_tag_to_uid(rootTask, &tempValue); + tc_strcpy(taskpuid, tempValue); + DOFREE(tempValue); + + ITKCALL2(AOM_ask_value_string(datasetTag, "object_type", &tempValue)); + tc_strcpy(objectType, tempValue); + DOFREE(tempValue); + map inMap; + //数据集转换uid + ITK__convert_tag_to_uid(datasetTag, &tempValue); + tc_strcpy(tcdatasetuid, tempValue); + DOFREE(tempValue); + tag_t owningUser = NULLTAG; + ITKCALL2(AOM_ask_value_tag(datasetTag, "owning_user", &owningUser)); + ITKCALL2(AOM_ask_value_string(owningUser, "user_id", &tempValue)); + tc_strcpy(userid, tempValue); + DOFREE(tempValue); + WriteLog("添加的对象:%s,添加的数据集%s,添加的关系%s\n", tccomponentuid, tcdatasetuid, tccomponentrelation); + + WriteLog("类型是%s\n", objectType); + //如果数据集是PDF,先判断是否是转PDF系统生成的 + if (strcmp("PDF", objectType) == 0) { + char selectRecord[1024] = ""; + int outputValueCount = 0, outputColumn = 0; + char*** outputValue = NULL; + sprintf(selectRecord, "select itempuid from CONNOR_PDFMESSAGE where pdfpuid='%s' and pdfpuid != datasetpuid ", tcdatasetuid); + if (QuerySQLNoInputParam(selectRecord, &outputColumn, &outputValueCount, &outputValue) != -1) { + if (outputValueCount > 0) { + WriteLog("是系统生成的,跳过:%s\n", tcdatasetuid); + return; + } + } + } + char selectRecord[1024] = ""; + int outputValueCount = 0, outputColumn = 0; + char*** outputValue = NULL; + sprintf(selectRecord, "select itempuid,pdfpuid,tcstatus from CONNOR_PDFMESSAGE where itempuid='%s' and datasetpuid='%s' and tcstatus='%s'", tccomponentuid, tcdatasetuid, tcstatus); + + WriteLog("查找的数据:%s\n", selectRecord); + if (QuerySQLNoInputParam(selectRecord, &outputColumn, &outputValueCount, &outputValue) != -1) { + WriteLog("查找的结果数量:%d\n", outputValueCount); + if (outputValueCount > 0) { + char updateRecord[1024] = ""; + sprintf(updateRecord, "update CONNOR_PDFMESSAGE set taskpuid = :1,signinfo = :2,tcstatus=:3,stage=:4,createdate=sysdate where itempuid='%s' and datasetpuid = '%s' and tcstatus='%s'", tccomponentuid, tcdatasetuid, tcstatus); + WriteLog("更新数据:%s\n", updateRecord); + char** params = (char**)MEM_alloc(4 * sizeof(char*)); + params[0] = taskpuid; + params[1] = (char*)signInfo.c_str(); + params[2] = tcstatus; + params[3] = ("正在发送到服务"); + if (ExecuteSQL(updateRecord, 4, params) == -1) + { + WriteLog("更新数据失败:%s", tcdatasetuid); + } + else + { + ExecuteSQLNoInputParam("commit"); + WriteLog("更新数据成功"); + } + if (strcmp("", outputValue[0][1]) == 0) { + tc_strcpy(pdfuid, "nopdf"); + } + else + { + char selectRecord2[1024] = ""; + int outputValueCount2 = 0, outputColumn2 = 0; + char*** outputValue2 = NULL; + sprintf(selectRecord2, "select puid from INFODBA.PPOM_APPLICATION_OBJECT where puid='%s'", outputValue[0][1]); + WriteLog("查找的数据:%s\n", selectRecord2); + if (QuerySQLNoInputParam(selectRecord2, &outputColumn2, &outputValueCount2, &outputValue2) != -1) { + if (outputValueCount2 > 0) { + tc_strcpy(pdfuid, outputValue[0][1]); + } + else + { + WriteLog("数据库查询出的PDF:%s 已不存在\n", outputValue[0][1]); + tc_strcpy(pdfuid, "nopdf"); + } + } + else + { + WriteLog("数据库查询PDF:%s 失败\n", outputValue[0][1]); + tc_strcpy(pdfuid, "nopdf"); + } + } + } + else { + char selectRecord3[1024] = ""; + int outputValueCount3 = 0, outputColumn3 = 0; + char*** outputValue3 = NULL; + sprintf(selectRecord3, "select itempuid,pdfpuid,tcstatus from CONNOR_PDFMESSAGE where itempuid='%s' and datasetpuid='%s' and tcstatus is null", tccomponentuid, tcdatasetuid); + if (QuerySQLNoInputParam(selectRecord3, &outputColumn3, &outputValueCount3, &outputValue3) != -1) { + WriteLog("查找的结果数量:%d\n", outputValueCount3); + if (outputValueCount3> 0) { + char updateRecord[1024] = ""; + sprintf(updateRecord, "update CONNOR_PDFMESSAGE set taskpuid = :1,signinfo = :2,tcstatus=:3,stage=:4,createdate=sysdate where itempuid='%s' and datasetpuid = '%s' and tcstatus is null", tccomponentuid, tcdatasetuid); + WriteLog("更新数据:%s\n", updateRecord); + char** params = (char**)MEM_alloc(4 * sizeof(char*)); + params[0] = taskpuid; + params[1] = (char*)signInfo.c_str(); + params[2] = tcstatus; + params[3] = ("正在发送到服务"); + if (ExecuteSQL(updateRecord, 4, params) == -1) + { + WriteLog("更新数据失败:%s", tcdatasetuid); + } + else + { + ExecuteSQLNoInputParam("commit"); + WriteLog("更新数据成功"); + } + if (strcmp("", outputValue3[0][1]) == 0) { + tc_strcpy(pdfuid, "nopdf"); + } + else + { + char selectRecord2[1024] = ""; + int outputValueCount2 = 0, outputColumn2 = 0; + char*** outputValue2 = NULL; + sprintf(selectRecord2, "select puid from INFODBA.PPOM_APPLICATION_OBJECT where puid='%s'", outputValue3[0][1]); + WriteLog("查找的数据:%s\n", selectRecord2); + if (QuerySQLNoInputParam(selectRecord2, &outputColumn2, &outputValueCount2, &outputValue2) != -1) { + if (outputValueCount2 > 0) { + tc_strcpy(pdfuid, outputValue3[0][1]); + } + else + { + WriteLog("数据库查询出的PDF:%s 已不存在\n", outputValue3[0][1]); + tc_strcpy(pdfuid, "nopdf"); + } + } + else + { + WriteLog("数据库查询PDF:%s 失败\n", outputValue3[0][1]); + tc_strcpy(pdfuid, "nopdf"); + } + } + } + else + { + char insertRecord[1024] = ""; + sprintf(insertRecord, "insert into CONNOR_PDFMESSAGE(itempuid,datasetpuid,signinfo,serverhost,stage,owninguser,departmentid,taskpuid,tcrelation,tcstatus,createdate) values(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,sysdate)"); + WriteLog("插入数据:%s\n", insertRecord); + char** params = (char**)MEM_alloc(10 * sizeof(char*)); + params[0] = tccomponentuid; + params[1] = tcdatasetuid; + params[2] = (char*)signInfo.c_str(); + params[3] = serverhost; + params[4] = "正在发送到服务"; + params[5] = userid; + params[6] = tcdepartmentid; + params[7] = taskpuid; + params[8] = tccomponentrelation; + params[9] = tcstatus; + if (ExecuteSQL(insertRecord, 10, params) == -1) + { + WriteLog("保存数据失败2:%s", tcdatasetuid); + } + else + { + ExecuteSQLNoInputParam("commit"); + WriteLog("保存数据成功"); + } + tc_strcpy(pdfuid, "nopdf"); + + } + } + } + } + else { + WriteLog("查询失败"); + tc_strcpy(pdfuid, "nopdf"); + } + if (strcmp("PDF", objectType) == 0) { + tc_strcpy(pdfuid, tcdatasetuid); + } + inMap.insert(pair("issignpdf", issignpdf)); + inMap.insert(pair("tccomponentuid", tccomponentuid)); + inMap.insert(pair("tcdatasetuid", tcdatasetuid)); + inMap.insert(pair("tccomponentrelation", tccomponentrelation)); + inMap.insert(pair("pdfuid", pdfuid)); + inMap.insert(pair("tcdepartmentid", tcdepartmentid)); + inMap.insert(pair("dwgtype", dwgtype)); + inMap.insert(pair("isdwgtopdf", isdwgtopdf)); + inMap.insert(pair("tcpdfrelation", tcpdfrelation)); + inMap.insert(pair("tcstatus", tcstatus)); + inMap.insert(pair("taskpuid", taskpuid)); + inMap.insert(pair("picture", parameterVec[4])); + inMap.insert(pair("location", parameterVec[5])); + inMap.insert(pair("ismergepdf", ismergepdf)); + inMap.insert(pair("isaddtask", parameterVec[8])); + // * + //inMap.insert(pair("ismj", ismj)); + stringToJsonPlus(inMap, "signinfos", signInfo, signJson); + WriteLog("发送的签字数据:%s\n", signJson.c_str()); + callHttpserver(signJson, serverhost); + inMap.clear(); + map().swap(inMap); +} + +void sendMessage(tag_t attachTag,tag_t rootTask,vectorrelationVec, vector datasetTypeVec,vector parameterVec,string signInfo) { + string signJson; + tag_t relationTag=NULLTAG,* grmSecondTags=NULLTAG; + int grmSecondCount = 0; + tag_t datasetTag = NULLTAG; + char* tempValue = NULL; + + char objectType[56] = "\0"; + + for (int j = 0;j < relationVec.size();j++) + { + ITKCALL2(GRM_find_relation_type(relationVec[j].c_str(), &relationTag)); + ITKCALL2(GRM_list_secondary_objects_only(attachTag, relationTag, &grmSecondCount, &grmSecondTags)); + for (int k = 0;k < grmSecondCount;k++) { + datasetTag = grmSecondTags[k]; + ITKCALL2(AOM_ask_value_string(datasetTag, "object_type", &tempValue)); + tc_strcpy(objectType, tempValue); + if (std::find(datasetTypeVec.begin(), datasetTypeVec.end(), tempValue) == datasetTypeVec.end()) + { + DOFREE(tempValue); + continue; + } + DOFREE(tempValue); + sendMessageToService(attachTag,rootTask,datasetTag,parameterVec,relationVec[j],"",signInfo); + } + DOFREE(grmSecondTags); + } +} + +/** +* Connor_signoff_dataset +* 签名到数据集handler +* -issignpdf=true 是否签字 非必填 +* -tcdepartmentid=sx 基地ID,用于对PDF签字位置的定位 必填 +* -relation=IMAN_specification,IMAN_reference 要转PDF或签字的数据集和版本的关系 必填 +* -datasettype=MSExcel,MSExcelX,MSWord,MSWordX,PDF 要转PDF或签字的数据集类型 必填 +* -sign_relation=S8SignOffR 审签表单和版本的关系 必填 +* -sign_info_option=Supor_signoff_dataset 签字配置的首选项名字 必填 +* -serverhost=172.24.14.164 签字服务所在的服务器IP 必填 +* -tcpdfrelation=IMAN_specification 转换出来的PDF挂载到对象下的关系 必填 +* -processid=D 签名首选项值的开头符号 必填 +* -dwgtype=S8AutoCAD Dwg的类型 非必填 +* -tcstatus PDF要添加的流程状态 非必填 +*/ +int Connor_signoff_dataset(EPM_action_message_t msg) +{ + char *log_file=NULL; + CreateLogFile("Connor_signoff_dataset", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* Connor_signoff_dataset is strat ! *\n"); + WriteLog("*************************************************************\n"); + starTime(); + //===============业务==================== + + string signJson ; + string signInfo; + int arg_cnt = 0 , + ifail = ITK_ok, + attachesCount = 0; + + char *arg = NULL, + *argflag =NULL, + *argvalue=NULL, + typeClass[TCTYPE_class_name_size_c+1]="\0"; + + char issignpdf[16] = "true", + sign_relation[56] = "\0", + sign_info_option[56] = "\0", + tcdepartmentid[56] = "\0", + tccomponentuid[56] = "\0", + tcdatasetuid[56] = "\0", + tccomponentrelation[56] = "\0", + pdfuid[56] = "\0", + tcpdfrelation[56] = "\0", + serverhost[56] = "\0", + processid[56] = "\0", + dwgtype[56] = "\0", + userid[56] = "\0", + objectType[56] = "\0", + tcstatus[56] = "\0", + taskpuid[56] = "\0", + picture[1024] = "\0", + location[1024] = "\0", + picture2[1024] = "\0", + location2[1024] = "\0", + ismergepdf[16] = "\0", + isaddtask[16] = "\0", + isdwgtopdf[16] = "\0";// * + //ismj[16] = "\0"; + + + vector relationVec; + vector datasetTypeVec; + vector parameterVec; + tag_t rootTask =NULLTAG, + *taskAttches =NULL, + attachTag=NULLTAG, + relation = NULLTAG; + + int grmSecondCount =0 ; + tag_t *grmSecondTags = NULL; + char * tempValue = NULL; + arg_cnt = TC_number_of_arguments(msg.arguments); + if (arg_cnt > 0) + { + for (int i=0;i gywdVec; + + for(int i=0; i inSignoffMap; + getSignoffInfoJson(attachTag, inSignoffMap, processid, sign_relation, sign_info_option); + stringToJson(inSignoffMap, signInfo); + map mjMap; + tag_t* grmSecondTags2 = NULLTAG; + int grmSecondCount2 = 0; + char* objectType = NULL; + WriteLog("是模具,开始遍历配置参数中的特定类型\n"); + // * + //char *ismj = "1"; + for (int j = 0;j < relationVec.size();j++) + { + tag_t relationTag = NULLTAG; + ITKCALL2(GRM_find_relation_type(relationVec[j].c_str(), &relationTag)); + ITKCALL2(GRM_list_secondary_objects_only(attachTag, relationTag, &grmSecondCount2, &grmSecondTags2)); + for (int k = 0;k < grmSecondCount2;k++) { + ITKCALL2(AOM_ask_value_string(grmSecondTags2[k], "object_type", &objectType)); + char* dwg_str = NULL; + ITKCALL2(AOM_ask_value_string(grmSecondTags2[k], "object_string", &dwg_str)); + WriteLog("当前dwg:%s\n", dwg_str); + if (std::find(datasetTypeVec.begin(), datasetTypeVec.end(), objectType) == datasetTypeVec.end()) + { + WriteLog("跳过\n"); + continue; + } + // *在此添加逻辑,加入一个判断数据集状态,没有状态的加入到mjMap + // 获取发布状态 + tag_t *status = NULL; + int snum = 0; + ITKCALL(AOM_ask_value_tags(grmSecondTags2[k], "release_status_list", &snum, &status)); + if (snum == 0) { + WriteLog("无状态,加入\n"); + mjMap.insert(pair(grmSecondTags2[k], relationVec[j])); + } + else{ + char *dwg_status_name2 = NULL; + AOM_ask_value_string(status[0], "object_name", &dwg_status_name2); + WriteLog("表面状态:%s\n", dwg_status_name2); + if ((strcmp("TCM Released", dwg_status_name2) != 0) && + (strcmp("TCM 已发布", dwg_status_name2) != 0) ) { + WriteLog("状态符合,加入\n"); + mjMap.insert(pair(grmSecondTags2[k], relationVec[j])); + } + /*char *dwg_status_name = NULL; + RELSTAT_ask_release_status_type(grmSecondTags2[k], &dwg_status_name); + WriteLog("状态:%s\n", dwg_status_name); + if ((strcmp("TCM Released", dwg_status_name) != 0)) { + WriteLog("状态符合,加入\n"); + mjMap.insert(pair(grmSecondTags2[k], relationVec[j])); + } + DOFREE(dwg_status_name);*/ + } + + } + } + DOFREE(objectType); + int len = 0; + std::map::iterator iter; + for (iter = mjMap.begin(); iter != mjMap.end(); iter++) { + if (len == (mjMap.size() - 1)) { + sendMessageToService(attachTag, rootTask, iter->first, parameterVec, iter->second, ismergepdf, signInfo); + } + else + { + sendMessageToService(attachTag, rootTask, iter->first, parameterVec, iter->second, "", signInfo); + } + len++; + } + DOFREE(grmSecondTags2); + inSignoffMap.clear(); + map().swap(inSignoffMap); + mjMap.clear(); + map().swap(mjMap); + } + else + { + map inSignoffMap; + getSignoffInfoJson(attachTag, inSignoffMap, processid, sign_relation, sign_info_option); + stringToJson(inSignoffMap, signInfo); + if (checkIsInType(attachTag, "MEOPRevision")) { + tag_t* chi_form_list = NULLTAG; + int chi_form_count = 0; + char* lb2_sfgjgx = NULL; + AOM_ask_value_tags(attachTag, "IMAN_master_form_rev", &chi_form_count, &chi_form_list); + if (chi_form_count > 0) { + AOM_ask_value_string(chi_form_list[0], "lb2_sfgjgx", &lb2_sfgjgx); + if (strcmp("是", lb2_sfgjgx) == 0 || strcmp("1", lb2_sfgjgx) == 0) { + if (strcmp(picture, "") != 0 && strcmp(picture2, "") != 0) { + string picture_gjgx; + string location_gjgx; + picture_gjgx.assign(picture).append(";").append(picture2); + location_gjgx.assign(location).append(";").append(location2); + parameterVec[4] = picture_gjgx; + parameterVec[5] = location_gjgx; + sendMessage(attachTag, rootTask, relationVec, datasetTypeVec, parameterVec, signInfo); + parameterVec[4] = picture; + parameterVec[5] = location; + } + else + { + sendMessage(attachTag, rootTask, relationVec, datasetTypeVec, parameterVec, signInfo); + } + } + else + { + sendMessage(attachTag, rootTask, relationVec, datasetTypeVec, parameterVec, signInfo); + } + } + else + { + sendMessage(attachTag, rootTask, relationVec, datasetTypeVec, parameterVec, signInfo); + } + DOFREE(lb2_sfgjgx); + DOFREE(chi_form_list); + } + else + { + if (strcmp(tempValue, "PSBOMViewRevision") != 0) { + sendMessage(attachTag, rootTask, relationVec, datasetTypeVec, parameterVec, signInfo); + } + } + } + } + else + { + map inSignoffMap; + getSignoffInfoJson(attachTag, inSignoffMap, processid, sign_relation, sign_info_option); + stringToJson(inSignoffMap, signInfo); + sendMessage(attachTag, rootTask, relationVec,datasetTypeVec,parameterVec,signInfo); + } + DOFREE(tempValue); + } + WriteLog("工艺文档数量%d\n",gywdVec.size()); + for (int i = 0; i < gywdVec.size(); i++) { + map inSignoffMap; + getSignoffInfoJson(gywdVec[i], inSignoffMap, processid, sign_relation, sign_info_option); + stringToJson(inSignoffMap, signInfo); + map gywdMap; + tag_t* grmSecondTags2 = NULLTAG, fmTag = NULLTAG; + int grmSecondCount2 = 0; + char* objectType = NULL, * objectName = NULL; + for (int j = 0;j < relationVec.size();j++) + { + tag_t relationTag = NULLTAG; + ITKCALL2(GRM_find_relation_type(relationVec[j].c_str(), &relationTag)); + ITKCALL2(GRM_list_secondary_objects_only(gywdVec[i], relationTag, &grmSecondCount2, &grmSecondTags2)); + for (int k = 0;k < grmSecondCount2;k++) { + ITKCALL2(AOM_ask_value_string(grmSecondTags2[k], "object_type", &objectType)); + if (std::find(datasetTypeVec.begin(), datasetTypeVec.end(), objectType) == datasetTypeVec.end()) + { + continue; + } + ITKCALL2(AOM_ask_value_string(grmSecondTags2[k], "object_name", &objectName)); + if (strstr(objectName, "封面") != NULL) { + fmTag = grmSecondTags2[k]; + } + gywdMap.insert(pair(grmSecondTags2[k], relationVec[j])); + } + } + DOFREE(objectType); + DOFREE(objectName); + std::map::iterator iter; + for (iter = gywdMap.begin(); iter != gywdMap.end(); iter++) { + if (fmTag == iter->first) { + continue; + } + sendMessageToService(gywdVec[i], rootTask, iter->first, parameterVec, iter->second, "", signInfo); + } + if (fmTag != NULLTAG) { + sendMessageToService(gywdVec[i], rootTask, fmTag, parameterVec, gywdMap[fmTag], ismergepdf, signInfo); + } + DOFREE(grmSecondTags2); + inSignoffMap.clear(); + map().swap(inSignoffMap); + gywdMap.clear(); + map().swap(gywdMap); + } + gywdVec.clear(); + vector().swap(gywdVec); + POM_AM__set_application_bypass(false); + DisConnServer(); + WriteLog("*************************************************************\n"); + WriteLog("* Connor_signoff_dataset is end ! *\n"); + WriteLog("*************************************************************\n"); + CloseLog(); + return ifail; +} diff --git a/SignOff_itk/SignOff_itk/Connor_signoff_form.cpp b/SignOff_itk/SignOff_itk/Connor_signoff_form.cpp new file mode 100644 index 0000000..fdbf5e7 --- /dev/null +++ b/SignOff_itk/SignOff_itk/Connor_signoff_form.cpp @@ -0,0 +1,316 @@ +#include "Supor_register.h" +using namespace std; +extern "C" int POM_AM__set_application_bypass(logical bypass); + +/** +* +* Description: +* This handler will set signoff infomation to properties of rev +* +* Syntax: +* +* +* -SignUserName: ûID +* +* -SignDate: ʱ +* +* -SignDateFormate: %Y-%m-%d ʱʽ +* +* -SignComment: ע͵ DZ +* +* -SignRelation: ǩͰ汾Ĺϵ +* +* +*/ +int Connor_signoff_form(EPM_action_message_t msg) { + int ifail = ITK_ok; + char* log_file = NULL; + + CreateLogFile("Connor_signoff_form", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* Connor_signoff_form is strat ! *\n"); + WriteLog("*************************************************************\n"); + starTime(); + char* arg = NULL, + * argflag = NULL, + * argvalue = NULL, + * tempValue = NULL; + + char* task_type = NULL; + char* userName=NULL; + char* person_name = NULL, * type_class = NULL,*user_id=NULL; + int arg_cnt = 0, attachments=0,*attach_type, occur_of_counts=0,form_count; + date_t decision_date; + char SignUserName[56] = "\0", + SignDate[1024] = "\0", + SignDateFormate[56] = "\0", + SignComment[56]="\0", + SignRelation[56]="\0", + comments[4096]="\0"; + char person_value[1024] = "\0"; + char person_value2[1024] = "\0"; + tag_t memberTag = NULLTAG; + SIGNOFF_TYPE_t memberType; + EPM_signoff_decision_t dec; + tag_t aUserTag = NULLTAG, responsibleParty=NULLTAG, cur_perform_task=NULLTAG, *attachmentTags=NULLTAG; + tag_t root_task = NULLTAG, *taskAttches=NULLTAG, master_form_rel_type=NULLTAG,* form_list=NULLTAG; + tag_t type_tag = NULLTAG,*user_tags=NULLTAG; + int user_cnt=0; + char* timeinfo = NULL; + arg_cnt = TC_number_of_arguments(msg.arguments); + if (arg_cnt > 0) + { + for (int i = 0;i < arg_cnt;i++) + { + arg = TC_next_argument(msg.arguments); + ITKCALL2(ITK_ask_argument_named_value((const char*)arg, &argflag, &argvalue)); + if (stricmp(argflag, "SignUserName") == 0) { + if (argvalue != NULL) + { + tc_strcpy(SignUserName, argvalue); + // WriteLog("-SignUserName=%s",Utf8ToGbk(SignUserName)); + WriteLog("-SignUserName=%s",SignUserName); + } + } + if (stricmp(argflag, "SignDate") == 0) { + if (argvalue != NULL) + { + tc_strcpy(SignDate, argvalue); + WriteLog("-SignDate=%s", SignDate); + } + } + if (stricmp(argflag, "SignComment") == 0) { + if (argvalue != NULL) + { + tc_strcpy(SignComment, argvalue); + WriteLog("-SignComment=%s", SignComment); + } + } + if (stricmp(argflag, "SignRelation") == 0) { + if (argvalue != NULL) + { + tc_strcpy(SignRelation, argvalue); + WriteLog("-SignRelation=%s", SignRelation); + } + } + if (stricmp(argflag, "SignDateFormate") == 0) { + if (argvalue != NULL) + { + tc_strcpy(SignDateFormate, argvalue); + WriteLog("-SignDateFormate=%s", SignDateFormate); + } + } + MEM_free(argflag); + MEM_free(argvalue); + } + } + EPM_ask_root_task(msg.task, &root_task); + WSOM_ask_object_type2(msg.task, &task_type); + if (strcmp("EPMDoTask", task_type) == 0 || strcmp("EPMOrTask", task_type) == 0|| strcmp("EPMConditionTask", task_type) == 0) { + EPM_ask_responsible_party(msg.task, &responsibleParty); + POM_get_user(&userName, &aUserTag); + AOM_ask_value_string(aUserTag, "user_id", &user_id); + SA_ask_user_person_name2(aUserTag, &person_name); + tc_strcpy(person_value, person_name); + strcat(person_value, "#:#"); + strcat(person_value, user_id); + AOM_ask_value_date(msg.task, "last_mod_date", &decision_date); + DATE_date_to_string(decision_date, SignDateFormate, &timeinfo); + } + else + { + EPM_ask_sub_task(msg.task, "perform-signoffs", &cur_perform_task); + EPM_ask_all_attachments(cur_perform_task, &attachments, &attachmentTags, &attach_type); + WriteLog(":%d\n", attachments); + if (attachments > 0) { + int start = 0; + for (int j = 0;j < attachments;j++) { + char* comment = NULL; + date_t decision_date_temp; + ITKCALL2(EPM_ask_signoff_decision(attachmentTags[j], &dec, &comment, &decision_date_temp)); + ITKCALL2(EPM_ask_signoff_member(attachmentTags[j], &memberTag, &memberType)); + if (memberType == SIGNOFF_GROUPMEMBER && dec == EPM_approve_decision) { + ITKCALL2(SA_ask_groupmember_user(memberTag, &aUserTag)); + ITKCALL2(SA_ask_user_person_name2(aUserTag, &person_name)); + ITKCALL2(AOM_ask_value_string(aUserTag, "user_id", &user_id)); + if (start == 0) { + tc_strcpy(person_value, person_name); + strcat(person_value, "#:#"); + strcat(person_value, user_id); + strcpy(comments, comment); + decision_date = decision_date_temp; + start = 1; + } + else { + strcat(person_value, ","); + strcat(person_value, person_name); + strcat(person_value, "#:#"); + strcat(person_value, user_id); + + strcat(comments, ","); + strcat(comments, comment); + char* timeinfo2 = NULL, * timeinfo3 = NULL; + ITKCALL2(DATE_date_to_string(decision_date, SignDateFormate, &timeinfo2)); + ITKCALL2(DATE_date_to_string(decision_date_temp, SignDateFormate, &timeinfo3)); + int year1, month1, day1; + + int year2, month2, day2; + + sscanf(timeinfo2, "%d-%d-%d", &year1, &month1, &day1); + + sscanf(timeinfo3, "%d-%d-%d", &year2, &month2, &day2); + + int tm1 = year1 * 10000 + month1 * 100 + day1; + + int tm2 = year2 * 10000 + month2 * 100 + day2; + WriteLog("ʱ1:%d\n", tm1); + WriteLog("ʱ2:%d\n", tm2); + if (tm2 > tm1) { + decision_date = decision_date_temp; + } + } + } + /* + if (j == 0) { + strcpy(comments, comment); + decision_date = decision_date_temp; + } + else + { + strcat(comments, ","); + strcat(comments, comment); + char* timeinfo2 = NULL, * timeinfo3 = NULL; + ITKCALL2(DATE_date_to_string(decision_date, SignDateFormate, &timeinfo2)); + ITKCALL2(DATE_date_to_string(decision_date_temp, SignDateFormate, &timeinfo3)); + int year1, month1, day1; + + int year2, month2, day2; + + sscanf(timeinfo2, "%d-%d-%d", &year1, &month1, &day1); + + sscanf(timeinfo3, "%d-%d-%d", &year2, &month2, &day2); + + int tm1 = year1 * 10000 + month1 * 100 + day1; + + int tm2 = year2 * 10000 + month2 * 100 + day2; + WriteLog("ʱ1:%d\n", tm1); + WriteLog("ʱ2:%d\n", tm2); + if (tm2 > tm1) { + decision_date = decision_date_temp; + } + }*/ + } + } + } + EPM_ask_attachments(root_task, EPM_target_attachment, &occur_of_counts, &taskAttches); + GRM_find_relation_type(SignRelation, &master_form_rel_type); + POM_AM__set_application_bypass(true); + for (int count = 0; count < occur_of_counts; count++) { + char* object_string = NULL; + char* objectString = NULL; + char* version = NULL; + int num = 0; + tag_t* release_tags = NULLTAG; + tag_t owning_user = NULLTAG; + char* owner_name = NULL, * owner_id = NULL,*type = NULL; + AOM_ask_value_string(taskAttches[count], "object_string", &object_string); + // objectString = Utf8ToGbk(object_string); + objectString = object_string; + TCTYPE_ask_object_type(taskAttches[count], &type_tag); + TCTYPE_ask_class_name2(type_tag, &type_class); + WriteLog("ж%sͣ%s\n", objectString, type_class); + if ((strstr(type_class, "XYSJ_D") != NULL) || ((strstr(type_class, "Revision") != NULL) || (strstr(type_class, "revision") != NULL)) + && (strstr(type_class, "Master") == NULL) && (strstr(type_class, "master") == NULL) + && (strstr(type_class, "BOM") == NULL) && (strstr(type_class, "bom") == NULL) && (strstr(type_class, "Bom") == NULL)) + { + //жA汾֮ ԭǩϢǩ + AOM_ask_value_string(taskAttches[count],"item_revision_id",&version); + ITKCALL2(AOM_ask_value_tags(taskAttches[count], "release_status_list", &num, &release_tags)); + WriteLog("ж%s״̬%d\n", objectString, num); + if (num > 0 || strcmp(version,"A") != 0) { + WriteLog("ж%s״̬0߲A汾޸\n", objectString); + continue; + } + GRM_list_secondary_objects_only(taskAttches[count], master_form_rel_type, &form_count, &form_list); + WriteLog("ж%sǩ%d\n", objectString, form_count); + if (form_count > 0) { + for (int z = 0; z < form_count; z++) { + + AOM_ask_value_string(form_list[z],"object_type",&type); + WriteLog("object_type========%s\n", type); + if (strstr(type,"RevisionMaster") != NULL) { + WriteLog("11111111111111111111111111111\n"); + WriteLog("ԣ%s, ݣ%s\n", ISNULL(SignUserName), person_name); + ITKCALL2(DATE_date_to_string(decision_date, SignDateFormate, &timeinfo)); + if (strcmp(ISNULL(timeinfo), "") != 0) { + WriteLog("ʱԣ%s, ݣ%s\n", ISNULL(SignDate), timeinfo); + AOM_lock(form_list[z]); + WriteLog("1\n"); + PROP_value_type_t propertyValueType; + WriteLog("2\n"); + char* propertyType = NULL; + WriteLog("3\n"); + ITKCALL2(AOM_ask_value_type(form_list[z], SignDate, &propertyValueType, &propertyType)); + WriteLog("4\n"); + if (propertyValueType == 2) { + WriteLog("5\n"); + ITKCALL2(AOM_set_value_date(form_list[z], SignDate, decision_date)); + WriteLog("6\n"); + } + else + { + WriteLog("7\n"); + ITKCALL2(AOM_set_value_string(form_list[z], SignDate, timeinfo)); + WriteLog("8\n"); + } + ITKCALL2(AOM_set_value_string(form_list[z], SignUserName, person_name)); + WriteLog("9\n"); + /*if (strcmp("", SignComment) != 0 && strcmp("", comments) != 0) { + WriteLog("10\n"); + WriteLog("עԣ%s, ݣ%s\n", ISNULL(SignComment), comments); + WriteLog("11\n"); + ITKCALL2(AOM_set_value_string(form_list[z], SignComment, comments)); + WriteLog("12\n"); + }*/ + WriteLog("13\n"); + AOM_save(form_list[z]); + AOM_unlock(form_list[z]); + } + else + { + WriteLog("ȡʱʧ\n"); + } + WriteLog("14\n"); + } + WriteLog("15\n"); + } + WriteLog("16\n"); + } + WriteLog("17\n"); + } + WriteLog("18\n"); + //DOFREE(release_tags); + //DOFREE(object_string); + //DOFREE(objectString); + //DOFREE(owner_name); + //DOFREE(owner_id); + WriteLog("20\n"); + } + POM_AM__set_application_bypass(false); + WriteLog("21\n"); + /*DOFREE(log_file); + DOFREE(task_type); + DOFREE(userName); + DOFREE(person_name); + DOFREE(type_class); + DOFREE(attachmentTags); + DOFREE(taskAttches); + DOFREE(form_list); + DOFREE(timeinfo);*/ + WriteLog("22\n"); + WriteLog("*************************************************************\n"); + WriteLog("* Connor_signoff_form is end ! *\n"); + WriteLog("*************************************************************\n"); + CloseLog(); + return ifail; +} \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/ReadMe.txt b/SignOff_itk/SignOff_itk/ReadMe.txt new file mode 100644 index 0000000..0f2f6f5 --- /dev/null +++ b/SignOff_itk/SignOff_itk/ReadMe.txt @@ -0,0 +1,30 @@ +======================================================================== + 控制台应用程序:XNY_itk 项目概述 +======================================================================== + +应用程序向导已为您创建了此 XNY_itk 应用程序。 + +本文件概要介绍组成 XNY_itk 应用程序的每个文件的内容。 + + +XNY_itk.vcxproj + 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 + +XNY_itk.vcxproj.filters + 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。 + +XNY_itk.cpp + 这是主应用程序源文件。 + +///////////////////////////////////////////////////////////////////////////// +其他标准文件: + +StdAfx.h, StdAfx.cpp + 这些文件用于生成名为 XNY_itk.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。 + +///////////////////////////////////////////////////////////////////////////// +其他注释: + +应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。 + +///////////////////////////////////////////////////////////////////////////// diff --git a/SignOff_itk/SignOff_itk/SignOff_itk.cpp b/SignOff_itk/SignOff_itk/SignOff_itk.cpp new file mode 100644 index 0000000..06c1707 --- /dev/null +++ b/SignOff_itk/SignOff_itk/SignOff_itk.cpp @@ -0,0 +1,11 @@ +// XNY_itk.cpp : ̨Ӧóڵ㡣 +// + +#include "stdafx.h" + + +int main() +{ + return 0; +} + diff --git a/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj b/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj new file mode 100644 index 0000000..fcbe8f6 --- /dev/null +++ b/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj @@ -0,0 +1,194 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {8240A4EB-EBA7-448B-B846-2FEC53074C73} + Win32Proj + SignOff_itk + 10.0 + SignOff_itk + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + DynamicLibrary + true + v142 + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + + + Level3 + MaxSpeed + WIN32;NDEBUG;_CONSOLE;IPLIB=none;%(PreprocessorDefinitions) + true + C:\app\admin\product\12.1.0\dbhome_1\OCI\include;D:\TC12.4\include_cpp;D:\TC12.4\include;%(AdditionalIncludeDirectories) + + + Console + true + C:\JKTC11\Siemens\Teamcenter\OTW11\OCI\lib\MSVC;%(AdditionalLibraryDirectories) + D:\TC12.4\lib\*.lib;%(AdditionalDependencies) + libuser_exits.ar.lib + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32; NDEBUG; _CONSOLE; IPLIB=none ;%(PreprocessorDefinitions) + + + D:\source\锡压\SignOff_itk\curl\include;D:\WorkEnvironment\tc14ITK\include;D:\WorkEnvironment\tc14ITK\include_cpp;D:\WorkEnvironment\tc13ITK\oci\include;D:\WorkEnvironment\tc13ITK\oci\lib;%(AdditionalIncludeDirectories) + false + + + Console + true + true + true + D:\WorkEnvironment\tc13ITK\lib;D:\work\tc13\OCI\lib\msvc;D:\WorkEnvironment\tc14ITK\lib;%(AdditionalLibraryDirectories) + D:\WorkEnvironment\tc14ITK\lib\*.lib;D:\WorkEnvironment\tc13ITK\lib\*.lib;%(AdditionalDependencies) + libuser_exits.ar.lib + $(OutDir)SignOff_itk.dll + RequireAdministrator + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj.filters b/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj.filters new file mode 100644 index 0000000..7b4af13 --- /dev/null +++ b/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj.filters @@ -0,0 +1,102 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {2799e3e0-5454-43a6-a04a-5627cde49936} + + + {88c2de69-1cc0-4edb-a6ba-b56cb3ec6551} + + + + + + + + epm_handler + + + common + + + common + + + common + + + common + + + common + + + common + + + epm_handler + + + common + + + 头文件 + + + 头文件 + + + common + + + + + common + + + epm_handler + + + common + + + common + + + common + + + common + + + common + + + epm_handler + + + epm_handler + + + epm_handler + + + epm_handler + + + 源文件 + + + \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj.user b/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj.user new file mode 100644 index 0000000..abe8dd8 --- /dev/null +++ b/SignOff_itk/SignOff_itk/SignOff_itk.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/Supor_register.h b/SignOff_itk/SignOff_itk/Supor_register.h new file mode 100644 index 0000000..fb6516c --- /dev/null +++ b/SignOff_itk/SignOff_itk/Supor_register.h @@ -0,0 +1,50 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ocilib.h" +#include "common_itk_util.h" +#include "string_utils.h" +#include "error_handling.h" +#include "connor_util.h" +#include "CRUL_server_call_httpserver.h" + + +#define ITKCALL2( argument ) \ +{ \ + int retcode = argument; \ + if ( retcode != ITK_ok ) { \ + char* s; \ + WriteLog( " "#argument "\n" ); \ + WriteLog( " returns [%d]\n", retcode ); \ + EMH_ask_error_text (retcode, &s); \ + WriteLog( " Teamcenter ERROR: [%s]\n", s); \ + WriteLog( " in file [" __FILE__ "], line [%d]\n\n", __LINE__ ); \ + if (s != 0) MEM_free (s); \ + } \ +} +typedef struct +{ + string name; + string value; +}CAD_ATTR_STRUCT; + +int Connor_signoff_dataset(EPM_action_message_t msg); +int Connor_signoff_form(EPM_action_message_t msg); +int AddPdf(EPM_action_message_t msg); + +int Connor_creo_dataset(EPM_action_message_t msg); +int Connor_setPDF_status(EPM_action_message_t msg); diff --git a/SignOff_itk/SignOff_itk/common_itk_util.c b/SignOff_itk/SignOff_itk/common_itk_util.c new file mode 100644 index 0000000..b9a35ca --- /dev/null +++ b/SignOff_itk/SignOff_itk/common_itk_util.c @@ -0,0 +1,471 @@ +/** +* @file common_itk_util.cpp +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 18-July-2008 James +*/ + +#pragma warning (disable: 4996) +#pragma warning (disable: 4819) + + + +#include "error_handling.h" +#include "common_itk_util.h" +#include "ocilib.h" +#include +#include +#ifdef WIN32 +#include +#include +#else +#include +#endif + +#define ARGS_LENGTH 200 +#define ARGS_NAME_DEBUG "-debug" +#define DEBUG "-debug=" +#define MAX_PRINTLINE_LENGTH 2000 +#define MAX_PATH_LENGTH 2000 +#define MAX_ARGUMENT_LENGTH 400 +#define MAX_PARAMNAME_LENGTH 50 +#define MAX_FILE_EXT_LENGTH 10 +#define TRUE_FLAG 1 +#define FALSE_FLAG 0 +#define DETAILLOG 1 + + + +void ECHO(char *format, ...) +{ + //if( !YFJC_OPT_DEBUG ) + // return; + + char msg[4096]; + va_list args; + + va_start( args, format ); + vsprintf( msg, format, args ); + va_end( args ); + + printf( msg ); + TC_write_syslog( msg ); +} + +FILE* logFile = NULL; + +/*=============================================================================* + * FUNCTION: current_time + * PURPOSE : get the current datetime + * INPUT: + * date_t* date_tag // current date time tag + * + * RETURN: + * void + *============================================================================*/ +void current_time( date_t * date_tag ) +{ + time_t ltime; + struct tm *today ; + + // Set time zone from TZ environment variable. If TZ is not set, + // the operating system is queried to obtain the default value + // for the variable. + // + //_tzset(); + + // Get UNIX-style time and display as number and string. + time( <ime ); + + today = localtime( <ime ); + date_tag->year = today->tm_year + 1900 ; + date_tag->month = today->tm_mon ; + date_tag->day = today->tm_mday ; + date_tag->hour = today->tm_hour ; + date_tag->minute = today->tm_min ; + date_tag->second = today->tm_sec ; +} +/*=============================================================================* + * FUNCTION: CreateLogFile + * PURPOSE : create log file + * INPUT: + * char* FunctionName // the funtion which need to create log file + * FILE** logFile // out: the log file pointer + * + * RETURN: + * void + *============================================================================*/ +void CreateLogFile(char* FunctionName, char **fullname) +{ + int i=0, ifail = ITK_ok; + //date_t status_now; + //char* date_string = NULL; + char date_string[MAX_PATH_LENGTH]; + char logFileDir[MAX_PATH_LENGTH]; + char logFileName[MAX_PATH_LENGTH]; + + char* session_uid = NULL; + tag_t session_tag = NULLTAG; + time_t now; + struct tm *p; + + time(&now); + + logFile = NULL; + //current_time(&status_now); + p=localtime(&now); + + memset(date_string, 0, sizeof(date_string)); + //sprintf(date_string,"%4d%02d%02d%02d%02d%02d",1900+p->tm_year,p->tm_mon+1 ,p->tm_mday ,p->tm_hour,p->tm_min ,p->tm_sec ); + sprintf(date_string,"%4d%02d%02d",1900+p->tm_year,p->tm_mon+1 ,p->tm_mday); + //if( DATE_date_to_string( status_now, "%Y%m%d%H%M%S", &date_string) != ITK_ok ) + //ifail = ITK_date_to_string (status_now, &date_string ); + //if (ifail) + //{ + // printf("!*ERROR*!: Failed to get current date time\n"); + // goto CLEANUP; + //} + + memset(logFileDir, 0, sizeof(logFileDir)); + memset(logFileName, 0, sizeof(logFileName)); + //get log dir + sprintf(logFileDir, "%s", getenv("TEMP")); + printf("\n log file dir: %s\n", logFileDir); + //try to change dir to TC_USER_LOG_DIR + if(chdir(logFileDir)!=ITK_ok) + { + //not set TC_USER_LOG_DIR + //log in to default TC_LOG + memset(logFileDir, 0, sizeof(logFileDir)); + sprintf(logFileDir, "%s", getenv("TC_LOG")); + printf("\n TC_USER_LOG_DIR invalide, log file dir: %s\n", logFileDir); + if(chdir(logFileDir)!=ITK_ok) + { + //still can not change to log dir + printf("!*ERROR*!: Failed to change dir to TC_USER_LOG_DIR\n"); + goto CLEANUP; + } + } + + //get session_uid to make sure the log file name unique + POM_ask_session(&session_tag); + ITK__convert_tag_to_uid(session_tag, &session_uid); + + + //get logFileName + //sprintf(logFileName, "%s_%s_%s.log", FunctionName, session_uid, date_string); + sprintf(logFileName, "%s_%s.log", FunctionName, date_string); + printf("log file name: %s\n", logFileName); + + *fullname = (char *)MEM_alloc(sizeof(char)*512); + sprintf(*fullname,"%s\\%s",logFileDir,logFileName); + + //for(i = 0; _access((char *)logFileName, 4) == 0; i++) + /*{ + memset(logFileName, 0, sizeof(logFileName)); + sprintf(logFileName, "%s_%s_%s_%d.log", FunctionName, session_uid, date_string, i); + } + printf("final log file name: %s\n", logFileName);*/ + + //create log file + logFile = fopen(logFileName, "a"); + +CLEANUP: + //DOFREE(date_string); + DOFREE(session_uid); +} + + +/*=============================================================================* + * FUNCTION: WriteLog + * PURPOSE : write log, if debug log File not null, write log message to log File + * INPUT: + * const char* format // debug message string + * + * RETURN: + * void + *============================================================================*/ +void WriteLog(const char* format, ...) +{ + va_list arg; + char tmp[MAX_PRINTLINE_LENGTH]; + + if(logFile) + { + //get the message + memset(tmp, 0, sizeof(tmp)); + va_start(arg, format); + vsprintf(tmp, format, arg); + va_end(arg); + + //----------print to command window for trace--------// + printf("%s\n", tmp); + + //print message to log file + fprintf(logFile, "%s\n", tmp); + fflush(logFile); + } + else + { + printf("*!Error!*: Log File Not Exist\n"); + } +} + +void CloseLog(void) +{ + if(logFile) + { + fclose(logFile); + logFile = NULL; + } +} + +//void getTypeinfo(char *type) +//{ +// int ulen = 0,i=0,tempcount=0,asd=0; +// +// char temp[128]=""; +// ulen = strlen(type); +// asd = ulen-1; +// for(i=0;i < ulen;i++) +// { +// if(type[i] == ';') +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// strcpy(temp,""); +// tempcount = 0; +// typecount = typecount + 1; +// } +// else +// { +// +// temp[tempcount] = type[i]; +// tempcount = tempcount + 1; +// if(i==asd) +// { +// temp[tempcount] = '\0'; +// strcpy(excludetypes[typecount].type,temp); +// typecount = typecount + 1; +// } +// +// } +// +// } +//} + +int SuporConnectionDB(){ + char username[100]="\0",//数据库用户名 + password[100]="\0",//数据库密码 + sid[100]="\0"; //数据库链接 + FILE* dbconfig = NULL; + char* tc_root_dir = getenv("tc_root"); + char filePath[1024] = ""; + tc_strcpy(filePath, tc_root_dir); + tc_strcat(filePath,"\\bin\\dbConfig.properties"); + dbconfig = fopen(filePath, "r"); + if(dbconfig==NULL){ + WriteLog("%s该路径的配置文件读取失败,请检查权限或是否存在\n", filePath); + }else + { + int line_num=0; + int data_count=0; + char **data_values=NULL; + char lineBuffer[1024]=""; + while( fgets(lineBuffer, sizeof(lineBuffer), dbconfig) != NULL ){ + line_num++; + EPM__parse_string(lineBuffer, "=", &data_count, &data_values); + if(line_num==1){ + strcpy(username,data_values[1]); + // WriteLog("用户名:%s\n",username); + } + if(line_num==2){ + strcpy(password,data_values[1]); + // WriteLog("密码:%s\n",password); + } + if(line_num==3){ + strcpy(sid,data_values[1]); + // WriteLog("sid:%s\n",sid); + } + } + DOFREE(data_values); + fclose(dbconfig); + // WriteLog("数据库连接配置内容:用户名:%s,密码:%s,链接:%s\n",username,password,sid); + if(ConnServer(username,password,sid) == -1) + { + WriteLog("连接数据库失败\n"); + return -1; + }else + { + return 0; + } + } + return -1; +} + +char* GbkToUtf8(const char* src_str) +{ + int len = MultiByteToWideChar(CP_ACP, 0, src_str, -1, NULL, 0); + wchar_t* wstr = (wchar_t*)MEM_alloc((len + 1) * sizeof(wchar_t)); + memset(wstr, 0, len + 1); + MultiByteToWideChar(CP_ACP, 0, src_str, -1, wstr, len); + len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL); + char *str = (char*)MEM_alloc((len + 1) * sizeof(char)); + + memset(str, 0, len + 1); + WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL); + return str; +} + +char* Utf8ToGbk(const char* src_str) +{ + int len = MultiByteToWideChar(CP_UTF8, 0, src_str, -1, NULL, 0); + wchar_t* wszGBK = (wchar_t*)MEM_alloc((len + 1) * sizeof(wchar_t)); + memset(wszGBK, 0, len * 2 + 2); + MultiByteToWideChar(CP_UTF8, 0, src_str, -1, wszGBK, len); + len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL); + char *szGBK = (char*)MEM_alloc((len + 1) * sizeof(char)); + + memset(szGBK, 0, len + 1); + WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, szGBK, len, NULL, NULL); + return szGBK; +} + +void starTime() { + time_t now; + struct tm* p; + time(&now); + p = localtime(&now); + WriteLog("start time %4d%02d%02d%02d%02d%02d", 1900 + p->tm_year, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec); +} + +/** +* +* 判断某个对象是否为ItemRevision +* +*/ +logical checkIsItemRevision(tag_t objtag) { + tag_t type = NULLTAG; + tag_t item_type = NULLTAG; + logical isItems = false; + ITKCALL(TCTYPE_ask_object_type(objtag, &type)); + ITKCALL(TCTYPE_find_type("ItemRevision", "", &item_type)); + if (item_type != NULLTAG) { + logical isok = FALSE; + ITKCALL(TCTYPE_is_type_of(type, item_type, &isok)); + if (isok) { + isItems = TRUE; + } + else { + isItems = FALSE; + } + } + return isItems; +} + +/******************************************************************* +* +*将签名信息写入到中间文件 +* +*@param file_content 签名信息的内容 +*@param item_id 对象id +*@param file_name 文件名称 +* +*******************************************************************/ +int Supor_create_signinfo_file(char* file_content,char *item_id, char** file_name) +{ + time_t now; + struct tm* p; + FILE* filePtr = NULL; + char temp_dir[MAX_PATH_LENGTH]; + char local_path[MAX_PATH] = ""; + char date_string[MAX_PATH_LENGTH]; + memset(temp_dir, 0, sizeof(temp_dir)); + memset(local_path, 0, sizeof(local_path)); + sprintf(temp_dir, "%s", getenv("TEMP")); + printf("\n file dir: %s\n", temp_dir); + time(&now); + p = localtime(&now); + if (chdir(temp_dir) != ITK_ok) + { + memset(temp_dir, 0, sizeof(temp_dir)); + sprintf(temp_dir, "%s", getenv("TC_LOG")); + printf("\n TC_USER_LOG_DIR invalide, log file dir: %s\n", temp_dir); + if (chdir(temp_dir) != ITK_ok) + { + printf("!*ERROR*!: Failed to change dir to TC_USER_LOG_DIR\n"); + + } + } + memset(date_string, 0, sizeof(date_string)); + if (item_id != NULL) { + sprintf(date_string, "%s_%4d%02d%02d%02d%02d%02d.dat", item_id, 1900 + p->tm_year, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec); + } + else + { + sprintf(date_string, "%4d%02d%02d%02d%02d%02d.dat", 1900 + p->tm_year, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec); + } + printf("file name: %s\n", date_string); + filePtr = fopen(date_string, "w"); + printf("create the temp dat file success!\n"); + *file_name = (char*)MEM_alloc(sizeof(char) * 512); + sprintf(local_path, "%s\\%s", temp_dir, date_string); + strcpy((*file_name), local_path); + fprintf(filePtr, "%s", file_content); + //fwrite(file_content, sizeof(char), strlen(file_content), filePtr); + fclose(filePtr); + + return ITK_ok; +} +/******************************************************************* +* +*创建中间文件 +* +*@param file_content 签名信息的内容 +*@param item_id 对象id +*@param file_name 文件名称 +* +*******************************************************************/ +int Supor_create_txt_file(char* FunctionName, char** file_name) +{ + time_t now; + struct tm* p; + FILE* filePtr = NULL; + char temp_dir[MAX_PATH_LENGTH]; + char local_path[MAX_PATH] = ""; + char date_string[MAX_PATH_LENGTH]; + memset(temp_dir, 0, sizeof(temp_dir)); + memset(local_path, 0, sizeof(local_path)); + sprintf(temp_dir, "%s", getenv("TEMP")); + printf("\n file dir: %s\n", temp_dir); + time(&now); + p = localtime(&now); + if (chdir(temp_dir) != ITK_ok) + { + memset(temp_dir, 0, sizeof(temp_dir)); + sprintf(temp_dir, "%s", getenv("TC_LOG")); + printf("\n TC_USER_LOG_DIR invalide, log file dir: %s\n", temp_dir); + if (chdir(temp_dir) != ITK_ok) + { + printf("!*ERROR*!: Failed to change dir to TC_USER_LOG_DIR\n"); + + } + } + memset(date_string, 0, sizeof(date_string)); + sprintf(date_string, "%s_%4d%02d%02d%02d%02d%02d.txt", FunctionName, 1900 + p->tm_year, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec); + printf("file name: %s\n", date_string); + filePtr = fopen(date_string, "w"); + printf("create the temp dat file success!\n"); + *file_name = (char*)MEM_alloc(sizeof(char) * 512); + sprintf(local_path, "%s\\%s", temp_dir, date_string); + strcpy((*file_name), local_path); + //fwrite(file_content, sizeof(char), strlen(file_content), filePtr); + fclose(filePtr); + + return ITK_ok; +} + + diff --git a/SignOff_itk/SignOff_itk/common_itk_util.h b/SignOff_itk/SignOff_itk/common_itk_util.h new file mode 100644 index 0000000..4b45be8 --- /dev/null +++ b/SignOff_itk/SignOff_itk/common_itk_util.h @@ -0,0 +1,76 @@ +/** +* @file common_itk_util.h +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef COMMON_ITK_UTIL +#define COMMON_ITK_UTIL + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +//#include +//#include +//#include +#include +#include +//#include +#include +#include + +//#include +//#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} +void ECHO(char *format, ...); +void CreateLogFile(char* FunctionName, char **fullname); +void WriteLog(const char* format, ...); +void CloseLog(void); +void current_time( date_t * date_tag ); +int SuporConnectionDB(); +char* GbkToUtf8(const char* src_str); +char* Utf8ToGbk(const char* src_str); +void starTime(); +logical checkIsItemRevision(tag_t objtag); +int Supor_create_signinfo_file(char* file_content,char *item_id, char** file_name); +int Supor_create_txt_file(char* FunctionName, char** file_name); +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/connor_util.cpp b/SignOff_itk/SignOff_itk/connor_util.cpp new file mode 100644 index 0000000..3fd87eb --- /dev/null +++ b/SignOff_itk/SignOff_itk/connor_util.cpp @@ -0,0 +1,993 @@ +#include "connor_util.h" +#include +#include +#include +#include +#include +#include + +extern "C" int POM_AM__set_application_bypass(logical bypass); +/** +*判断某个对象是否是类或者子类 +*objtag 要判断的对象 +*type_name 类型的名称 +*/ +int checkIsTypeOrSubtype(tag_t objtag, char* type_name) { + printf("判断是否是%s及其子类\n", type_name); + tag_t type = NULLTAG; + ITKCALL(TCTYPE_ask_object_type(objtag, &type)); + tag_t item_type = NULLTAG; + ITKCALL(TCTYPE_find_type(type_name, "", &item_type)); + int is_type = 0; + if (item_type != NULLTAG) { + printf("找到%s类\n", type_name); + //printf(" find Folder type ok !!!! \n"); + logical isok = FALSE; + ITKCALL(TCTYPE_is_type_of(type, item_type, &isok)); + if (isok) { + printf("是%s类及其子类\n\n", type_name); + is_type = 1; + } + else { + printf("不是%s类及其子类\n\n", type_name); + is_type = 0; + } + } + else { + printf("没有找到%s类\n\n", type_name); + } + return is_type; +} + +int Supor_open_bypass(void* returnValue) +{ + POM_AM__set_application_bypass(true); + return 0; +} + +int Supor_close_bypass(void* returnValue) +{ + POM_AM__set_application_bypass(false); + return 0; +} + +int ITK_server_bypass(void* returnValue) +{ + int status = ITK_ok; + char* setBypass = false; + logical byPassStatus = false; + + ITKCALL(status = USERARG_get_string_argument(&setBypass)); + + if (strcmp(setBypass, "true") == 0) { + byPassStatus = true; + } + POM_AM__set_application_bypass(setBypass); + return 0; +} + +int Supor_add_release_status(void* return_data) { + int ifail = ITK_ok; + char* client_string = NULL, * client_string2 = NULL; + ITKCALL(ifail = USERARG_get_string_argument(&client_string)); + ITKCALL(ifail = USERARG_get_string_argument(&client_string2)); + printf(("添加发布状态 %s 到UID = %s \n", client_string2, client_string)); + tag_t dataset_tag = NULLTAG; + tag_t release_stat = NULLTAG; + char* flag = NULL; + ITKCALL(ifail = POM_string_to_tag(client_string, &dataset_tag)); + if (dataset_tag == NULLTAG) { + flag = "false"; + } + else { + ITKCALL(ifail = RELSTAT_create_release_status(client_string2, &release_stat)); + if (ifail == ITK_ok) { + ITKCALL(ifail = RELSTAT_add_release_status(release_stat, 1, &dataset_tag, true)); + if (ifail == ITK_ok) { + printf(("添加发布状态成功\n")); + flag = "true"; + } + else { + flag = "false"; + } + } + else { + flag = "false"; + } + } + MEM_free(client_string); + MEM_free(client_string2); + + char server_string[10]; + strcpy(server_string, flag); + + *((char**)return_data) = + (char*)MEM_alloc((strlen(server_string) + 1) * sizeof(char)); + + strcpy(*((char**)return_data), server_string); + return ITK_ok; +} + +int LB_getBomChildren(void* return_data) { + int ifail = ITK_ok; + char* client_string = NULL; + tag_t rev_tag = NULLTAG, bom_window_tag=NULLTAG, topLine=NULLTAG,* c_line_tags=NULLTAG, chirev=NULLTAG; + int c_line_count = 0; + string uids; + ITKCALL(ifail = USERARG_get_string_argument(&client_string)); + ITKCALL(ifail = POM_string_to_tag(client_string, &rev_tag)); + ITKCALL(BOM_create_window(&bom_window_tag));//创建window视图 + ITKCALL(BOM_set_window_top_line(bom_window_tag, NULLTAG, rev_tag, NULLTAG, &topLine)); + ITKCALL(BOM_line_ask_all_child_lines(topLine, &c_line_count, &c_line_tags)); + for (int c = 0;c < c_line_count;c++) { + char* tempValue = NULL; + ITKCALL(AOM_ask_value_tag(c_line_tags[c], "bl_line_object", &chirev)); + ITK__convert_tag_to_uid(chirev, &tempValue); + uids.append(tempValue).append("##"); + DOFREE(tempValue); + } + ITKCALL(BOM_close_window(bom_window_tag)); + DOFREE(client_string); + DOFREE(c_line_tags); + *((char**)return_data) = + (char*)MEM_alloc((uids.length() + 1) * sizeof(char)); + strcpy(*((char**)return_data), uids.c_str()); + return ITK_ok; +} + +bool compareDate(date_t date1, date_t date2) +{ + char* time1=NULL, * time2=NULL; + ITKCALL(DATE_date_to_string(date1, "%Y-%m-%d %H:%M:%S", &time1)); + ITKCALL(DATE_date_to_string(date2, "%Y-%m-%d %H:%M:%S", &time2)); + int year1, month1, day1, hour1, min1, sec1; + + int year2, month2, day2, hour2, min2, sec2; + + sscanf(time1, "%d-%d-%d %d:%d:%d", &year1, &month1, &day1, &hour1, &min1, &sec1); + + sscanf(time2, "%d-%d-%d %d:%d:%d", &year2, &month2, &day2, &hour2, &min2, &sec2); + + int tm1 = year1 * 10000 + month1 * 100 + day1; + + int tm2 = year2 * 10000 + month2 * 100 + day2; + + if (tm1 != tm2) return (tm1 > tm2) ? true : false;//如果不相等,大返回1,小返回0 + + tm1 = hour1 * 3600 + min1 * 60 + sec1; + + tm2 = hour2 * 3600 + min2 * 60 + sec2;//将时分秒转换为秒数 + + if (tm1 != tm2) return (tm1 > tm2) ? true : false;//如果不相等,大返回1,小返回0 + + return true;//到这里必然是相等了 + +} + + +bool cmp(const pair& a, const pair& b) { + if (a.second < b.second) return true; + else return false; +} + +//map插入数据时就是有序的 +int getLasterDataset(tag_t rev_tag,tag_t relation,string object_type,string keyName, map &uidMap) { + tag_t* sp_tags = NULLTAG; + int sp_count = 0; + AOM_refresh(rev_tag, false); + ITKCALL(GRM_list_secondary_objects_only(rev_tag, relation, &sp_count, &sp_tags)); + + for (int s = 0;s < sp_count;s++) { + char* objectType = NULL, * objectName = NULL; + AOM_refresh(sp_tags[s], false); + AOM_ask_value_string(sp_tags[s], "object_type", &objectType); + AOM_ask_value_string(sp_tags[s], "object_name", &objectName); + string objectName_str(objectName); + if (object_type.length() > 0) { + WriteLog("文件类型:%s\n", objectType); + WriteLog("要求类型:%s\n", object_type.c_str()); + if (strcmp(objectType, object_type.c_str())==0) { + WriteLog("一致\n"); + char* tag_uid = NULL; + if (keyName.length() > 0) { + if (objectName_str.find(keyName)!= std::string::npos) { + if (uidMap.find(objectName_str) != uidMap.end()) { + date_t date1,date2; + AOM_ask_value_date(sp_tags[s], "creation_date", &date1); + AOM_ask_value_date(uidMap[objectName_str], "creation_date", &date2); + if (compareDate(date1, date2)) { + uidMap[objectName_str] = sp_tags[s]; + } + } + else + { + uidMap[objectName_str] = sp_tags[s]; + } + } + } + else + { + if (uidMap.find(objectName_str) != uidMap.end()) { + date_t date1, date2; + AOM_ask_value_date(sp_tags[s], "creation_date", &date1); + AOM_ask_value_date(uidMap[objectName_str], "creation_date", &date2); + if (compareDate(date1, date2)) { + uidMap[objectName_str] = sp_tags[s]; + } + } + else + { + uidMap[objectName_str] = sp_tags[s]; + } + } + } + } + else + { + if (uidMap.find(objectName_str) != uidMap.end()) { + date_t date1, date2; + AOM_ask_value_date(sp_tags[s], "creation_date", &date1); + AOM_ask_value_date(uidMap[objectName_str], "creation_date", &date2); + if (compareDate(date1, date2)) { + uidMap[objectName_str] = sp_tags[s]; + } + } + else + { + uidMap[objectName_str] = sp_tags[s]; + } + } + DOFREE(objectType); + DOFREE(objectName); + } + DOFREE(sp_tags); + return 0; +} + +int LB_getMJbg(void* return_data) { + int ifail = ITK_ok; + char* client_string = NULL; + tag_t rev_tag = NULLTAG, sp_relation = NULLTAG, bgh_relation=NULL,* grmSecondTags=NULLTAG, pdf_relation = NULLTAG; + int grmSecondCount = 0; + char* log_file = NULL; + CreateLogFile("LB_getMJbg", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* LB_getMJbg is strat ! *\n"); + WriteLog("*************************************************************\n"); + starTime(); + ITKCALL(ifail = USERARG_get_string_argument(&client_string)); + WriteLog("传入uid:%s\n", client_string); + ITKCALL(ifail = POM_string_to_tag(client_string, &rev_tag)); + AOM_refresh(rev_tag, false); + ITKCALL(GRM_find_relation_type("LB2_BGH", &bgh_relation)); + ITKCALL(GRM_find_relation_type("IMAN_specification", &sp_relation)); + ITKCALL(GRM_find_relation_type("LB2_PDF", &pdf_relation)); + ITKCALL(GRM_list_secondary_objects_only(rev_tag, bgh_relation, &grmSecondCount, &grmSecondTags)); + string uids; + map mjMap; + for (int i = 0;i < grmSecondCount;i++) { + char* object_type = NULL; + AOM_ask_value_string(grmSecondTags[i], "object_type", &object_type); + if (strcmp("LB2_MJRevision", object_type) == 0) { + int mjcnt = 0,pdfcnt=0; + tag_t *mj_tags = NULLTAG,*pdf_tags=NULLTAG; + ITKCALL(GRM_list_secondary_objects_only(grmSecondTags[i], sp_relation, &mjcnt, &mj_tags)); + vector dwg_vec; + for (int j = 0;j < mjcnt;j++) { + char* object_type2 = NULL; + AOM_ask_value_string(mj_tags[j], "object_type", &object_type2); + if (strcmp("LB2_CAD", object_type2) == 0) { + int status_cnt = 0; + tag_t* dwg_status = NULLTAG; + ITKCALL(AOM_ask_value_tags(mj_tags[j], "release_status_list", &status_cnt, &dwg_status)); + // * + if (status_cnt == 0) { + WriteLog("状态为空\n"); + dwg_vec.push_back(mj_tags[j]); + } + else{ + char *dwg_status_name2 = NULL; + AOM_ask_value_string(dwg_status[status_cnt - 1], "object_name", &dwg_status_name2); + WriteLog("表面状态:%s\n", dwg_status_name2); + char *dwg_status_name = NULL; + RELSTAT_ask_release_status_type(dwg_status[status_cnt - 1], &dwg_status_name); + WriteLog("状态:%s\n", dwg_status_name); + if ((strcmp("TCM Released", dwg_status_name) != 0)) { + dwg_vec.push_back(mj_tags[j]); + } + DOFREE(dwg_status_name); + } + DOFREE(dwg_status); + } + DOFREE(object_type2); + } + ITKCALL(GRM_list_secondary_objects_only(grmSecondTags[i], pdf_relation, &pdfcnt, &pdf_tags)); + for (int j = 0;j < pdfcnt;j++) { + char* object_type2 = NULL; + AOM_ask_value_string(pdf_tags[j], "object_type", &object_type2); + if (strcmp("PDF", object_type2) == 0) { + char* object_name2 = NULL; + AOM_ask_value_string(pdf_tags[j], "object_name", &object_name2); + string pdfName(object_name2); + pdfName = pdfName.substr(0, pdfName.find(".pdf")); + WriteLog("PDF文件名:%s\n", pdfName.c_str()); + for (int d = 0;d < dwg_vec.size();d++){ + char* object_name = NULL; + AOM_ask_value_string(dwg_vec[d], "object_name", &object_name); + if (strstr(object_name, pdfName.c_str()) != NULL) { + mjMap[pdfName.c_str()] = pdf_tags[j]; + } + DOFREE(object_name); + } + DOFREE(object_name2); + } + DOFREE(object_type2); + } + DOFREE(mj_tags); + DOFREE(pdf_tags); + } + DOFREE(object_type); + } + for (auto it = mjMap.begin();it != mjMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uids.append(tag_uid).append("##"); + DOFREE(tag_uid); + } + WriteLog("传出uid:%s\n", uids.c_str()); + *((char**)return_data) = + (char*)MEM_alloc((uids.length() + 1) * sizeof(char)); + strcpy(*((char**)return_data), uids.c_str()); + mjMap.clear(); + map().swap(mjMap); + WriteLog("*************************************************************\n"); + WriteLog("* LB_getMJbg is end ! *\n"); + WriteLog("*************************************************************\n"); + CloseLog(); + DOFREE(grmSecondTags); + DOFREE(client_string); + DOFREE(log_file); + return ITK_ok; +} + +int LB_getMJ(void* return_data) { + int ifail = ITK_ok; + char* client_string = NULL; + tag_t rev_tag = NULLTAG, sp_relation=NULLTAG; + char* log_file = NULL; + CreateLogFile("LB_getMJ", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* LB_getMJ is strat ! *\n"); + WriteLog("*************************************************************\n"); + starTime(); + ITKCALL(ifail = USERARG_get_string_argument(&client_string)); + WriteLog("传入uid:%s\n", client_string); + ITKCALL(ifail = POM_string_to_tag(client_string, &rev_tag)); + AOM_refresh(rev_tag, false); + ITKCALL(GRM_find_relation_type("LB2_PDF", &sp_relation)); + map mjMap; + string uids; + getLasterDataset(rev_tag, sp_relation, "PDF", "", mjMap); + for (auto it = mjMap.begin();it != mjMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uids.append(tag_uid).append("##"); + DOFREE(tag_uid); + } + *((char**)return_data) = + (char*)MEM_alloc((uids.length() + 1) * sizeof(char)); + strcpy(*((char**)return_data), uids.c_str()); + + mjMap.clear(); + map().swap(mjMap); + WriteLog("*************************************************************\n"); + WriteLog("* LB_getMJ is end ! *\n"); + WriteLog("*************************************************************\n"); + CloseLog(); + DOFREE(client_string); + DOFREE(log_file); + return ITK_ok; +} +int LB_getGybg(void* return_data) { + int ifail = ITK_ok; + char* client_string = NULL; + tag_t rev_tag = NULLTAG, fm_relation = NULLTAG, *lb2_gywj = NULLTAG, * form_list = NULLTAG; + tag_t query_tag=NULLTAG, *results=NULLTAG; + int form_count = 0, count_lb2_gywj=0, entry_count=0, num_found=0; + char** entries, ** values; + vector uidVec; + string uids; + char* log_file = NULL; + CreateLogFile("LB_getGybg", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* LB_getGybg is strat ! *\n"); + WriteLog("*************************************************************\n"); + starTime(); + ITKCALL(ifail = USERARG_get_string_argument(&client_string)); + WriteLog("传入uid:%s\n", client_string); + ITKCALL(ifail = POM_string_to_tag(client_string, &rev_tag)); + AOM_refresh(rev_tag, false); + AOM_ask_value_tags(rev_tag, "IMAN_master_form_rev", &form_count, &form_list); + char* query_name = "工序卡片搜索"; + ITKCALL(QRY_find2(query_name, &query_tag)); + ITKCALL(QRY_find_user_entries(query_tag, &entry_count, &entries, &values)); + char* other_values[1], * other_entrys[1]; + other_values[0] = (char*)calloc(64, sizeof(char)); + other_entrys[0] = (char*)calloc(64, sizeof(char)); + WriteLog("表单数量:%d\n", form_count); + if (form_count > 0) { + ITKCALL(AOM_ask_value_tags(form_list[0], "lb2_gywj", &count_lb2_gywj, &lb2_gywj)); + WriteLog("表格内容数量:%d\n", count_lb2_gywj); + for (int i = 0;i < count_lb2_gywj;i++) { + char* lb2_gxkbh = NULL; + // * + ITKCALL(AOM_ask_value_string(lb2_gywj[i], "lb2_gxkbh", &lb2_gxkbh)); + if (strcmp("", ISNULL(lb2_gxkbh)) != 0) { + for (int n = 0; n < entry_count; n++) + { + WriteLog("查询条件:%s\n", ISNULL(entries[n])); + if (tc_strcmp(entries[n], "gxkbh") == 0) { + tc_strcpy(other_entrys[0], "gxkbh"); + tc_strcpy(other_values[0], ISNULL(lb2_gxkbh)); + tc_strcat(other_values[0], "*"); + WriteLog("工序卡片编号:%s\n", ISNULL(other_values[0])); + } + } + ITKCALL(QRY_execute(query_tag, 1, other_entrys, other_values, &num_found, &results)); + date_t date1; + tag_t lastTag = NULLTAG; + WriteLog("搜索结果:%d\n", num_found); + for (int r = 0;r < num_found;r++) { + date_t date2; + AOM_ask_value_date(results[r], "creation_date", &date2); + if (r == 0) { + date1 = date2; + lastTag = results[r]; + } + else { + if (compareDate(date2, date1)) { + date1 = date2; + lastTag = results[r]; + } + } + } + if (lastTag != NULLTAG) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(lastTag, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + } + DOFREE(lb2_gxkbh); + } + } + WriteLog("所有PDF数量:%d\n", uidVec.size()); + for (int v = 0;v < uidVec.size();v++) { + uids.append(uidVec[v]).append("##"); + } + *((char**)return_data) = + (char*)MEM_alloc((uids.length() + 1) * sizeof(char)); + strcpy(*((char**)return_data), uids.c_str()); + + WriteLog("*************************************************************\n"); + WriteLog("* LB_getGybg is end ! *\n"); + WriteLog("*************************************************************\n"); + CloseLog(); + DOFREE(lb2_gywj); + DOFREE(form_list); + DOFREE(results); + DOFREE(log_file); + DOFREE(client_string); + return ITK_ok; +} + +int LB_getGylx(void* return_data) { + int ifail = ITK_ok; + char* client_string = NULL, *lb2_lbjth=NULL; + tag_t rev_tag = NULLTAG, relation = NULLTAG, sp_relation=NULLTAG, fm_relation=NULLTAG,* grmSecondTags = NULLTAG, chirev = NULLTAG,*form_list=NULLTAG; + tag_t bom_window_tag=NULLTAG; + int grmSecondCount = 0, form_count=0; + vector uidVec; + string uids; + char* log_file = NULL; + CreateLogFile("LB_getGylx", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* LB_getGylx is strat ! *\n"); + WriteLog("*************************************************************\n"); + starTime(); + + ITKCALL(ifail = USERARG_get_string_argument(&client_string)); + WriteLog("传入uid:%s\n", client_string); + ITKCALL(ifail = POM_string_to_tag(client_string, &rev_tag)); + AOM_refresh(rev_tag, false); + ITKCALL(GRM_find_relation_type("LB2_FMWJ", &fm_relation)); + ITKCALL(GRM_find_relation_type("IMAN_specification", &sp_relation)); + map fmMap; //封面 + map mlMap; //目录 + map lctMap; //流程图 + map mxbMap; //明细表 + getLasterDataset(rev_tag, fm_relation,"PDF","封面",fmMap); + getLasterDataset(rev_tag, fm_relation, "PDF", "目录", mlMap); + getLasterDataset(rev_tag, fm_relation, "PDF", "流程图", lctMap); + getLasterDataset(rev_tag, fm_relation, "PDF", "明细表", mxbMap); + WriteLog("封面数量:%d\n", fmMap.size()); + for (auto it = fmMap.begin();it != fmMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + + WriteLog("目录数量:%d\n", mlMap.size()); + for (auto it = mlMap.begin();it != mlMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + + WriteLog("流程图数量:%d\n", lctMap.size()); + for (auto it = lctMap.begin();it != lctMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + + WriteLog("明细表数量:%d\n", mxbMap.size()); + for (auto it = mxbMap.begin();it != mxbMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + + ITKCALL(GRM_find_relation_type("LB2_GYGCGL", &relation)); + ITKCALL(GRM_list_secondary_objects_only(rev_tag, relation, &grmSecondCount, &grmSecondTags)); + map uidMap; + vector gylx_sp; + for (int c = 0;c < grmSecondCount;c++) { + ITEM_ask_latest_rev(grmSecondTags[c], &chirev); + AOM_refresh(chirev, false); + AOM_ask_value_tags(chirev, "IMAN_master_form_rev", &form_count, &form_list); + if (form_count > 0) { + ITKCALL(AOM_ask_value_string(form_list[0], "lb2_gygckbh", &lb2_lbjth)); + int data_count = 0; + char** data_values = NULL; + EPM__parse_string(ISNULL(lb2_lbjth), "-", &data_count, &data_values); + if (data_count > 2) { + uidMap[chirev] = atoi(data_values[2]); + } + else + { + gylx_sp.push_back(chirev); + } + } + } + WriteLog("工艺路线数量:%d\n", uidMap.size()+ gylx_sp.size()); + + vector> vpi(uidMap.begin(), uidMap.end()); + sort(vpi.begin(), vpi.end(), cmp); + ITKCALL(BOM_create_window(&bom_window_tag));//创建window视图 + + for (int g = 0;g < gylx_sp.size();g++) { + tag_t topLine = NULLTAG, * c_line_tags = NULLTAG; + int c_line_count = 0; + map gylxMap; + getLasterDataset(gylx_sp[g], sp_relation, "PDF", "", gylxMap); + WriteLog("工艺路线下PDF数量:%d\n", gylxMap.size()); + for (auto it = gylxMap.begin();it != gylxMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + gylxMap.clear(); + map().swap(gylxMap); + ITKCALL(BOM_set_window_top_line(bom_window_tag, NULLTAG, gylx_sp[g], NULLTAG, &topLine)); + ITKCALL(BOM_line_ask_all_child_lines(topLine, &c_line_count, &c_line_tags)); + for (int c = 0;c < c_line_count;c++) { + tag_t gx_tag = NULLTAG; + ITKCALL(AOM_ask_value_tag(c_line_tags[c], "bl_line_object", &gx_tag)); + AOM_refresh(gx_tag, false); + map gxMap; + // * + //tag_t* rev_fs = NULL; + //int num_f = 0; + //AOM_ask_value_tags(gx_tag, "IMAN_master_form_rev", &num_f, &rev_fs); + //if (num_f != 0) { + // char* lb2_sfty = NULL; + // AOM_ask_value_string(rev_fs[0], "lb2_sfty", &lb2_sfty); + // if (strcmp(lb2_sfty,"是") == 0 || strcmp(lb2_sfty, "1") == 0) { + // continue; + // } + //} + getLasterDataset(gx_tag, sp_relation, "PDF", "", gxMap); + WriteLog("工序下PDF数量:%d\n", gxMap.size()); + for (auto it = gxMap.begin();it != gxMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + gxMap.clear(); + map().swap(gxMap); + } + DOFREE(c_line_tags); + } + + for (auto item : vpi) { + tag_t gylx_tag = item.first; + tag_t topLine = NULLTAG,* c_line_tags=NULLTAG; + int c_line_count = 0; + map gylxMap; + getLasterDataset(gylx_tag, sp_relation, "PDF", "", gylxMap); + WriteLog("工艺路线下PDF数量:%d\n", gylxMap.size()); + for (auto it = gylxMap.begin();it != gylxMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + gylxMap.clear(); + map().swap(gylxMap); + ITKCALL(BOM_set_window_top_line(bom_window_tag, NULLTAG, gylx_tag, NULLTAG, &topLine)); + ITKCALL(BOM_line_ask_all_child_lines(topLine, &c_line_count, &c_line_tags)); + for (int c = 0;c < c_line_count;c++) { + tag_t gx_tag=NULLTAG; + ITKCALL(AOM_ask_value_tag(c_line_tags[c], "bl_line_object", &gx_tag)); + AOM_refresh(gx_tag, false); + map gxMap; + + // * + tag_t* rev_fs = NULL; + int num_f = 0; + AOM_ask_value_tags(gx_tag, "IMAN_master_form_rev", &num_f, &rev_fs); + if (num_f != 0) { + char* lb2_sfty = NULL; + AOM_ask_value_string(rev_fs[0], "lb2_sfty", &lb2_sfty); + if (strcmp(lb2_sfty,"是") == 0 || strcmp(lb2_sfty, "1") == 0) { + continue; + } + } + + getLasterDataset(gx_tag, sp_relation, "PDF", "", gxMap); + WriteLog("工序下PDF数量:%d\n", gxMap.size()); + for (auto it = gxMap.begin();it != gxMap.end();it++) { + char* tag_uid = NULL; + ITK__convert_tag_to_uid(it->second, &tag_uid); + uidVec.push_back(tag_uid); + DOFREE(tag_uid); + } + gxMap.clear(); + map().swap(gxMap); + } + DOFREE(c_line_tags); + } + ITKCALL(BOM_close_window(bom_window_tag)); + WriteLog("所有PDF数量:%d\n", uidVec.size()); + for (int v = 0;v < uidVec.size();v++) { + uids.append(uidVec[v]).append("##"); + } + + + *((char**)return_data) = + (char*)MEM_alloc((uids.length() + 1) * sizeof(char)); + strcpy(*((char**)return_data), uids.c_str()); + + fmMap.clear(); + map().swap(fmMap); + mlMap.clear(); + map().swap(mlMap); + lctMap.clear(); + map().swap(lctMap); + mxbMap.clear(); + map().swap(mxbMap); + uidMap.clear(); + map().swap(uidMap); + vpi.clear(); + vector>().swap(vpi); + WriteLog("*************************************************************\n"); + WriteLog("* LB_getGylx is end ! *\n"); + WriteLog("*************************************************************\n"); + CloseLog(); + DOFREE(client_string); + DOFREE(grmSecondTags); + DOFREE(lb2_lbjth); + DOFREE(form_list); + DOFREE(log_file); + return ITK_ok; +} + +int checkIsInType(tag_t objtag, string parentType) { + tag_t type = NULLTAG; + tag_t item_type = NULLTAG; + ITKCALL(TCTYPE_ask_object_type(objtag, &type)); + ITKCALL(TCTYPE_find_type(parentType.c_str(), "", &item_type)); + if (item_type != NULLTAG) { + logical isok = FALSE; + ITKCALL(TCTYPE_is_type_of(type, item_type, &isok)); + if (isok) { + return 1; + } + else { + return 0; + } + } + return 0; +} + + +//递归bom 判断子是否发布 +boolean getchibomline_isrelease(tag_t top_line_tag, char* err) { + + int m = 0, status_count = 0, + rev_form_cnt = 0, + c_line_count = 0, + tuzhi_col = 0; + tag_t bom_window_tag = NULLTAG, + * c_line_tags = NULL, + * rev_form_tags = NULL, + * tuzhi_tags = NULL; + printf("nnnn\n"); + ITKCALL(BOM_line_ask_all_child_lines(top_line_tag, &c_line_count, &c_line_tags)); + printf("c_line_count=%d\n" + c_line_count); + if (c_line_count == 0) { + printf("下面没有BOM结构\n"); + + } + else { + + for (int m = 0; m < c_line_count; m++) + { + tag_t rev_tag = NULLTAG; + char* name = "\0"; + ITKCALL(AOM_ask_value_tag(c_line_tags[m], "bl_line_object", &rev_tag));//获取BOMLINE关联的版本 + ITKCALL(AOM_ask_value_string(rev_tag, "object_string", &name)); + int wl_release_count = 0; + tag_t* wl_release_tags = NULL; + ITKCALL(AOM_ask_value_tags(rev_tag, "release_status_list", &wl_release_count, &wl_release_tags)); + if (wl_release_count > 0) + { + printf("版本已发布\n"); + } + else { + printf("版本未发布\n"); + strcat(err, "["); + strcat(err, name); + strcat(err, "]"); + } + + getchibomline_isrelease(c_line_tags[m], err); + + } + + } + + return true; +} + + + +//判断子件是否发布 +int BOM_CHI_ISRELEASE(EPM_rule_message_t msg) { + + printf("===================================\n"); + printf("根据BOM子件是否发布,限制流程发起 开始\n"); + printf("===================================\n"); + + int ifail = EPM_go, att_cnt = 0; + tag_t task_tag = NULL_TAG, + root_task_tag = NULLTAG, + * attachments;; + task_tag = msg.task; + char errs[2500] = "\0"; + char err[2000] = "\0"; + + if (task_tag == NULLTAG) + { + return EPM_nogo; + } + + EPM_ask_root_task(task_tag, &root_task_tag); + EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments); + + + if (att_cnt <= 0) { + printf("目标为空 退出\n"); + return EPM_go; + } + else { + POM_AM__set_application_bypass(true); + for (int i = 0; i < att_cnt; i++) + { + tag_t tagt = NULLTAG; + char* name = NULL; + int form_c = 0; + tagt = attachments[i];// + if (checkIsTypeOrSubtype(tagt, "PSBOMViewRevision") != 1) + { + printf("类型不是PSBOMViewRevision\n"); + continue; + } + printf("类型是PSBOMViewRevision,继续\n"); + ITKCALL(AOM_ask_value_string(tagt, "object_string", &name)); + int m = 0, c_line_count = 0; + tag_t bom_window_tag = NULLTAG, + top_line_tag = NULLTAG, + * c_line_tags; + ITKCALL(BOM_create_window(&bom_window_tag));//创建window视图 + ITKCALL(BOM_set_window_top_line_bvr(bom_window_tag, tagt, &top_line_tag));//获取顶层bomline + ITKCALL(BOM_line_ask_all_child_lines(top_line_tag, &c_line_count, &c_line_tags)); + if (c_line_count == 0) { + printf("没有BOM结构\n"); + + } + else { + getchibomline_isrelease(top_line_tag, err); + if (strcmp(err, "") != 0) + { + sprintf(errs, "存在BOM对象%s子件%s未发布!!", name, err); + EMH_store_error_s1(EMH_severity_information, 278701, errs);//错误弹窗 + ifail = EPM_nogo; + } + + } + ITKCALL(BOM_close_window(bom_window_tag)); + if (name != NULL) { + MEM_free(name); + name = NULL; + } + } + POM_AM__set_application_bypass(false); + } + + printf("ifail:%d\n", ifail); + + printf("===================================\n"); + printf("根据BOM子件是否发布,限制流程发起 结束\n"); + printf("===================================\n"); + + return ifail; +} + +int checkIsTypeOrSubtype(tag_t objtag, const char* type_name) { + //printf("判断是否是%s及其子类\n",type_name); + tag_t type = NULLTAG; + ITKCALL(TCTYPE_ask_object_type(objtag, &type));//获得类型 + tag_t item_type = NULLTAG; + ITKCALL(TCTYPE_find_type(type_name, "", &item_type));//获得所有类型为type_name的对象 + int is_type = 0; + if (item_type != NULLTAG) { + //printf("找到%s类\n",type_name); + //printf(" find Folder type ok !!!! \n"); + logical isok = FALSE; + ITKCALL(TCTYPE_is_type_of(type, item_type, &isok));//判断type是否为item_type的子类或者相同 + if (isok) { + is_type = 1; + } + else { + is_type = 0; + } + } + else { + + } + return is_type; +} + +wchar_t* c2w(const char* str) +{ + /* + int length = strlen(str) + 1; + wchar_t* t = (wchar_t*)malloc(sizeof(wchar_t) * length); + memset(t, 0, length * sizeof(wchar_t)); + MultiByteToWideChar(CP_ACP, 0, str, strlen(str), t, length); + return t; + */ + int iSize; + wchar_t* pwszUnicode; + + //返回接受字符串所需缓冲区的大小,已经包含字符结尾符'\0' + iSize = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0); //iSize =wcslen(pwsUnicode)+1=6 + pwszUnicode = (wchar_t*)malloc(iSize * sizeof(wchar_t)); //不需要 pwszUnicode = (wchar_t *)malloc((iSize+1)*sizeof(wchar_t)) + MultiByteToWideChar(CP_ACP, 0, str, -1, pwszUnicode, iSize); + + return pwszUnicode; +} + + +string WStringToString(const wstring& ws) + +{ + string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C"; + setlocale(LC_ALL, "chs"); + const wchar_t* _Source = ws.c_str(); + size_t _Dsize = 2 * ws.size() + 1; + char* _Dest = new char[_Dsize]; + memset(_Dest, 0, _Dsize); + wcstombs(_Dest, _Source, _Dsize); + string result = _Dest; + delete[]_Dest; + setlocale(LC_ALL, curLocale.c_str()); + return result; + +} + +void split(std::string s, const char* delim, std::vector* ret) +{ + size_t last = 0; + size_t index = s.find(delim, last); + int size = strlen(delim); + while (index != std::string::npos) { + ret->push_back(s.substr(last, index - last)); + last = index + size; + index = s.find(delim, last); + } + if (index - last > 0) { + ret->push_back(s.substr(last, index - last)); + } +} + +string trim(string& str) + +{ + + str.erase(0, str.find_first_not_of(" \t")); // 去掉头部空格 + str.erase(str.find_last_not_of(" \t") + 1); // 去掉尾部空格 + + return str; + +} + +string trim(const char* wtr) + +{ + string str = wtr; + str.erase(0, str.find_first_not_of(" \t")); // 去掉头部空格 + str.erase(str.find_last_not_of(" \t") + 1); // 去掉尾部空格 + + return str; + +} + +void updateRev(tag_t form, map map_prop, map> map_props) +{ + WriteLog("-------updateRev start---------开旁路\n"); + POM_AM__set_application_bypass(true); + AOM_lock(form); + for (auto it = map_prop.begin(); it != map_prop.end(); it++) + { + string str = GbkToUtf8(it->second.c_str()); + WriteLog("更新单值属性[%s]=[%s]\n", it->first, it->second.c_str()); + ITKCALL(AOM_set_value_string(form, it->first.data(), str.c_str())); + } + for (auto it = map_props.begin(); it != map_props.end(); it++) + { + vector values = it->second; + int size = values.size(); + if (size > 0) + { + WriteLog("更新多值属性[%s]\n", it->first); + char** props; + props = (char**)MEM_alloc((size + 1) * sizeof(char*)); + for (auto i = 0; i < size; i++) + { + string str = GbkToUtf8(values[i].c_str()); + WriteLog("---[%s]\n", values[i].c_str()); + props[i] = (char*)MEM_alloc((str.size() + 1) * sizeof(char)); + tc_strcpy(props[i], str.data()); + } + ITKCALL(AOM_set_value_strings(form, it->first.data(), size, props)); + DOFREE(props); + } + else + { + WriteLog("多值属性[%s]无值\n", it->first); + } + } + AOM_save(form); + AOM_unlock(form); + POM_AM__set_application_bypass(false); + WriteLog("-------updateRev end---------关闭旁路\n"); +} diff --git a/SignOff_itk/SignOff_itk/connor_util.h b/SignOff_itk/SignOff_itk/connor_util.h new file mode 100644 index 0000000..1317d88 --- /dev/null +++ b/SignOff_itk/SignOff_itk/connor_util.h @@ -0,0 +1,75 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "common_itk_util.h" +#define CUST_PROP_ERROR_NO 38600 +using namespace std; +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + +#define ISNULL(s) (s == NULL? "" : (s ? s : "")) +int checkIsTypeOrSubtype(tag_t objtag,char * type_name); +int Supor_open_bypass(void *returnValue); +int Supor_close_bypass(void *returnValue); +int Supor_add_release_status(void * returnValue); +int LB_getBomChildren(void* returnValue); +bool compareDate(date_t date1, date_t date2); +int getLasterDataset(tag_t rev_tag, tag_t relation, string object_type, string keyName, map& uidMap); +int LB_getMJ(void* return_data); +int LB_getMJbg(void* return_data); +int LB_getGylx(void* return_data); +int LB_getGybg(void* return_data); +int checkIsInType(tag_t objtag, string parentType); +int BOM_CHI_ISRELEASE(EPM_rule_message_t msg); +int ITK_server_bypass(void *returnValue); +int checkIsTypeOrSubtype(tag_t objtag, const char* type_name); +string WStringToString(const wstring& ws); +wchar_t* c2w(const char* str); +void split(std::string s, const char* delim, std::vector* ret); +string trim(string& str); +string trim(const char* wtr); + +void updateRev(tag_t form, map map_prop, map> map_props); + \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/curl.h b/SignOff_itk/SignOff_itk/curl.h new file mode 100644 index 0000000..b00648e --- /dev/null +++ b/SignOff_itk/SignOff_itk/curl.h @@ -0,0 +1,3116 @@ +#ifndef CURLINC_CURL_H +#define CURLINC_CURL_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +/* + * If you have libcurl problems, all docs and details are found here: + * https://curl.se/libcurl/ + */ + +#ifdef CURL_NO_OLDIES +#define CURL_STRICTER +#endif + +#include "curlver.h" /* libcurl version defines */ +#include "system.h" /* determine things run-time */ + +/* + * Define CURL_WIN32 when build target is Win32 API + */ + +#if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && \ + !defined(__SYMBIAN32__) +#define CURL_WIN32 +#endif + +#include +#include + +#if (defined(__FreeBSD__) && (__FreeBSD__ >= 2)) || defined(__MidnightBSD__) +/* Needed for __FreeBSD_version or __MidnightBSD_version symbol definition */ +#include +#endif + +/* The include stuff here below is mainly for time_t! */ +#include +#include + +#if defined(CURL_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) +#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \ + defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)) +/* The check above prevents the winsock2 inclusion if winsock.h already was + included, since they can't co-exist without problems */ +#include +#include +#endif +#endif + +/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish + libc5-based Linux systems. Only include it on systems that are known to + require it! */ +#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ + defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ + defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ + defined(__CYGWIN__) || defined(AMIGA) || defined(__NuttX__) || \ + (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) || \ + (defined(__MidnightBSD_version) && (__MidnightBSD_version < 100000)) +#include +#endif + +#if !defined(CURL_WIN32) && !defined(_WIN32_WCE) +#include +#endif + +#if !defined(CURL_WIN32) +#include +#endif + +/* Compatibility for non-Clang compilers */ +#ifndef __has_declspec_attribute +# define __has_declspec_attribute(x) 0 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) +typedef struct Curl_easy CURL; +typedef struct Curl_share CURLSH; +#else +typedef void CURL; +typedef void CURLSH; +#endif + +/* + * libcurl external API function linkage decorations. + */ + +#ifdef CURL_STATICLIB +# define CURL_EXTERN +#elif defined(CURL_WIN32) || defined(__SYMBIAN32__) || \ + (__has_declspec_attribute(dllexport) && \ + __has_declspec_attribute(dllimport)) +# if defined(BUILDING_LIBCURL) +# define CURL_EXTERN __declspec(dllexport) +# else +# define CURL_EXTERN __declspec(dllimport) +# endif +#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) +# define CURL_EXTERN CURL_EXTERN_SYMBOL +#else +# define CURL_EXTERN +#endif + +#ifndef curl_socket_typedef +/* socket typedef */ +#if defined(CURL_WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H) +typedef SOCKET curl_socket_t; +#define CURL_SOCKET_BAD INVALID_SOCKET +#else +typedef int curl_socket_t; +#define CURL_SOCKET_BAD -1 +#endif +#define curl_socket_typedef +#endif /* curl_socket_typedef */ + +/* enum for the different supported SSL backends */ +typedef enum { + CURLSSLBACKEND_NONE = 0, + CURLSSLBACKEND_OPENSSL = 1, + CURLSSLBACKEND_GNUTLS = 2, + CURLSSLBACKEND_NSS = 3, + CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ + CURLSSLBACKEND_GSKIT = 5, + CURLSSLBACKEND_POLARSSL = 6, + CURLSSLBACKEND_WOLFSSL = 7, + CURLSSLBACKEND_SCHANNEL = 8, + CURLSSLBACKEND_SECURETRANSPORT = 9, + CURLSSLBACKEND_AXTLS = 10, /* never used since 7.63.0 */ + CURLSSLBACKEND_MBEDTLS = 11, + CURLSSLBACKEND_MESALINK = 12, + CURLSSLBACKEND_BEARSSL = 13, + CURLSSLBACKEND_RUSTLS = 14 +} curl_sslbackend; + +/* aliases for library clones and renames */ +#define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL +#define CURLSSLBACKEND_BORINGSSL CURLSSLBACKEND_OPENSSL + +/* deprecated names: */ +#define CURLSSLBACKEND_CYASSL CURLSSLBACKEND_WOLFSSL +#define CURLSSLBACKEND_DARWINSSL CURLSSLBACKEND_SECURETRANSPORT + +struct curl_httppost { + struct curl_httppost *next; /* next entry in the list */ + char *name; /* pointer to allocated name */ + long namelength; /* length of name length */ + char *contents; /* pointer to allocated data contents */ + long contentslength; /* length of contents field, see also + CURL_HTTPPOST_LARGE */ + char *buffer; /* pointer to allocated buffer contents */ + long bufferlength; /* length of buffer field */ + char *contenttype; /* Content-Type */ + struct curl_slist *contentheader; /* list of extra headers for this form */ + struct curl_httppost *more; /* if one field name has more than one + file, this link should link to following + files */ + long flags; /* as defined below */ + +/* specified content is a file name */ +#define CURL_HTTPPOST_FILENAME (1<<0) +/* specified content is a file name */ +#define CURL_HTTPPOST_READFILE (1<<1) +/* name is only stored pointer do not free in formfree */ +#define CURL_HTTPPOST_PTRNAME (1<<2) +/* contents is only stored pointer do not free in formfree */ +#define CURL_HTTPPOST_PTRCONTENTS (1<<3) +/* upload file from buffer */ +#define CURL_HTTPPOST_BUFFER (1<<4) +/* upload file from pointer contents */ +#define CURL_HTTPPOST_PTRBUFFER (1<<5) +/* upload file contents by using the regular read callback to get the data and + pass the given pointer as custom pointer */ +#define CURL_HTTPPOST_CALLBACK (1<<6) +/* use size in 'contentlen', added in 7.46.0 */ +#define CURL_HTTPPOST_LARGE (1<<7) + + char *showfilename; /* The file name to show. If not set, the + actual file name will be used (if this + is a file part) */ + void *userp; /* custom pointer used for + HTTPPOST_CALLBACK posts */ + curl_off_t contentlen; /* alternative length of contents + field. Used if CURL_HTTPPOST_LARGE is + set. Added in 7.46.0 */ +}; + + +/* This is a return code for the progress callback that, when returned, will + signal libcurl to continue executing the default progress function */ +#define CURL_PROGRESSFUNC_CONTINUE 0x10000001 + +/* This is the CURLOPT_PROGRESSFUNCTION callback prototype. It is now + considered deprecated but was the only choice up until 7.31.0 */ +typedef int (*curl_progress_callback)(void *clientp, + double dltotal, + double dlnow, + double ultotal, + double ulnow); + +/* This is the CURLOPT_XFERINFOFUNCTION callback prototype. It was introduced + in 7.32.0, avoids the use of floating point numbers and provides more + detailed information. */ +typedef int (*curl_xferinfo_callback)(void *clientp, + curl_off_t dltotal, + curl_off_t dlnow, + curl_off_t ultotal, + curl_off_t ulnow); + +#ifndef CURL_MAX_READ_SIZE + /* The maximum receive buffer size configurable via CURLOPT_BUFFERSIZE. */ +#define CURL_MAX_READ_SIZE 524288 +#endif + +#ifndef CURL_MAX_WRITE_SIZE + /* Tests have proven that 20K is a very bad buffer size for uploads on + Windows, while 16K for some odd reason performed a lot better. + We do the ifndef check to allow this value to easier be changed at build + time for those who feel adventurous. The practical minimum is about + 400 bytes since libcurl uses a buffer of this size as a scratch area + (unrelated to network send operations). */ +#define CURL_MAX_WRITE_SIZE 16384 +#endif + +#ifndef CURL_MAX_HTTP_HEADER +/* The only reason to have a max limit for this is to avoid the risk of a bad + server feeding libcurl with a never-ending header that will cause reallocs + infinitely */ +#define CURL_MAX_HTTP_HEADER (100*1024) +#endif + +/* This is a magic return code for the write callback that, when returned, + will signal libcurl to pause receiving on the current transfer. */ +#define CURL_WRITEFUNC_PAUSE 0x10000001 + +typedef size_t (*curl_write_callback)(char *buffer, + size_t size, + size_t nitems, + void *outstream); + +/* This callback will be called when a new resolver request is made */ +typedef int (*curl_resolver_start_callback)(void *resolver_state, + void *reserved, void *userdata); + +/* enumeration of file types */ +typedef enum { + CURLFILETYPE_FILE = 0, + CURLFILETYPE_DIRECTORY, + CURLFILETYPE_SYMLINK, + CURLFILETYPE_DEVICE_BLOCK, + CURLFILETYPE_DEVICE_CHAR, + CURLFILETYPE_NAMEDPIPE, + CURLFILETYPE_SOCKET, + CURLFILETYPE_DOOR, /* is possible only on Sun Solaris now */ + + CURLFILETYPE_UNKNOWN /* should never occur */ +} curlfiletype; + +#define CURLFINFOFLAG_KNOWN_FILENAME (1<<0) +#define CURLFINFOFLAG_KNOWN_FILETYPE (1<<1) +#define CURLFINFOFLAG_KNOWN_TIME (1<<2) +#define CURLFINFOFLAG_KNOWN_PERM (1<<3) +#define CURLFINFOFLAG_KNOWN_UID (1<<4) +#define CURLFINFOFLAG_KNOWN_GID (1<<5) +#define CURLFINFOFLAG_KNOWN_SIZE (1<<6) +#define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1<<7) + +/* Information about a single file, used when doing FTP wildcard matching */ +struct curl_fileinfo { + char *filename; + curlfiletype filetype; + time_t time; /* always zero! */ + unsigned int perm; + int uid; + int gid; + curl_off_t size; + long int hardlinks; + + struct { + /* If some of these fields is not NULL, it is a pointer to b_data. */ + char *time; + char *perm; + char *user; + char *group; + char *target; /* pointer to the target filename of a symlink */ + } strings; + + unsigned int flags; + + /* used internally */ + char *b_data; + size_t b_size; + size_t b_used; +}; + +/* return codes for CURLOPT_CHUNK_BGN_FUNCTION */ +#define CURL_CHUNK_BGN_FUNC_OK 0 +#define CURL_CHUNK_BGN_FUNC_FAIL 1 /* tell the lib to end the task */ +#define CURL_CHUNK_BGN_FUNC_SKIP 2 /* skip this chunk over */ + +/* if splitting of data transfer is enabled, this callback is called before + download of an individual chunk started. Note that parameter "remains" works + only for FTP wildcard downloading (for now), otherwise is not used */ +typedef long (*curl_chunk_bgn_callback)(const void *transfer_info, + void *ptr, + int remains); + +/* return codes for CURLOPT_CHUNK_END_FUNCTION */ +#define CURL_CHUNK_END_FUNC_OK 0 +#define CURL_CHUNK_END_FUNC_FAIL 1 /* tell the lib to end the task */ + +/* If splitting of data transfer is enabled this callback is called after + download of an individual chunk finished. + Note! After this callback was set then it have to be called FOR ALL chunks. + Even if downloading of this chunk was skipped in CHUNK_BGN_FUNC. + This is the reason why we don't need "transfer_info" parameter in this + callback and we are not interested in "remains" parameter too. */ +typedef long (*curl_chunk_end_callback)(void *ptr); + +/* return codes for FNMATCHFUNCTION */ +#define CURL_FNMATCHFUNC_MATCH 0 /* string corresponds to the pattern */ +#define CURL_FNMATCHFUNC_NOMATCH 1 /* pattern doesn't match the string */ +#define CURL_FNMATCHFUNC_FAIL 2 /* an error occurred */ + +/* callback type for wildcard downloading pattern matching. If the + string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc. */ +typedef int (*curl_fnmatch_callback)(void *ptr, + const char *pattern, + const char *string); + +/* These are the return codes for the seek callbacks */ +#define CURL_SEEKFUNC_OK 0 +#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */ +#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so + libcurl might try other means instead */ +typedef int (*curl_seek_callback)(void *instream, + curl_off_t offset, + int origin); /* 'whence' */ + +/* This is a return code for the read callback that, when returned, will + signal libcurl to immediately abort the current transfer. */ +#define CURL_READFUNC_ABORT 0x10000000 +/* This is a return code for the read callback that, when returned, will + signal libcurl to pause sending data on the current transfer. */ +#define CURL_READFUNC_PAUSE 0x10000001 + +/* Return code for when the trailing headers' callback has terminated + without any errors*/ +#define CURL_TRAILERFUNC_OK 0 +/* Return code for when was an error in the trailing header's list and we + want to abort the request */ +#define CURL_TRAILERFUNC_ABORT 1 + +typedef size_t (*curl_read_callback)(char *buffer, + size_t size, + size_t nitems, + void *instream); + +typedef int (*curl_trailer_callback)(struct curl_slist **list, + void *userdata); + +typedef enum { + CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ + CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ + CURLSOCKTYPE_LAST /* never use */ +} curlsocktype; + +/* The return code from the sockopt_callback can signal information back + to libcurl: */ +#define CURL_SOCKOPT_OK 0 +#define CURL_SOCKOPT_ERROR 1 /* causes libcurl to abort and return + CURLE_ABORTED_BY_CALLBACK */ +#define CURL_SOCKOPT_ALREADY_CONNECTED 2 + +typedef int (*curl_sockopt_callback)(void *clientp, + curl_socket_t curlfd, + curlsocktype purpose); + +struct curl_sockaddr { + int family; + int socktype; + int protocol; + unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it + turned really ugly and painful on the systems that + lack this type */ + struct sockaddr addr; +}; + +typedef curl_socket_t +(*curl_opensocket_callback)(void *clientp, + curlsocktype purpose, + struct curl_sockaddr *address); + +typedef int +(*curl_closesocket_callback)(void *clientp, curl_socket_t item); + +typedef enum { + CURLIOE_OK, /* I/O operation successful */ + CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ + CURLIOE_FAILRESTART, /* failed to restart the read */ + CURLIOE_LAST /* never use */ +} curlioerr; + +typedef enum { + CURLIOCMD_NOP, /* no operation */ + CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ + CURLIOCMD_LAST /* never use */ +} curliocmd; + +typedef curlioerr (*curl_ioctl_callback)(CURL *handle, + int cmd, + void *clientp); + +#ifndef CURL_DID_MEMORY_FUNC_TYPEDEFS +/* + * The following typedef's are signatures of malloc, free, realloc, strdup and + * calloc respectively. Function pointers of these types can be passed to the + * curl_global_init_mem() function to set user defined memory management + * callback routines. + */ +typedef void *(*curl_malloc_callback)(size_t size); +typedef void (*curl_free_callback)(void *ptr); +typedef void *(*curl_realloc_callback)(void *ptr, size_t size); +typedef char *(*curl_strdup_callback)(const char *str); +typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); + +#define CURL_DID_MEMORY_FUNC_TYPEDEFS +#endif + +/* the kind of data that is passed to information_callback*/ +typedef enum { + CURLINFO_TEXT = 0, + CURLINFO_HEADER_IN, /* 1 */ + CURLINFO_HEADER_OUT, /* 2 */ + CURLINFO_DATA_IN, /* 3 */ + CURLINFO_DATA_OUT, /* 4 */ + CURLINFO_SSL_DATA_IN, /* 5 */ + CURLINFO_SSL_DATA_OUT, /* 6 */ + CURLINFO_END +} curl_infotype; + +typedef int (*curl_debug_callback) + (CURL *handle, /* the handle/transfer this concerns */ + curl_infotype type, /* what kind of data */ + char *data, /* points to the data */ + size_t size, /* size of the data pointed to */ + void *userptr); /* whatever the user please */ + +/* This is the CURLOPT_PREREQFUNCTION callback prototype. */ +typedef int (*curl_prereq_callback)(void *clientp, + char *conn_primary_ip, + char *conn_local_ip, + int conn_primary_port, + int conn_local_port); + +/* Return code for when the pre-request callback has terminated without + any errors */ +#define CURL_PREREQFUNC_OK 0 +/* Return code for when the pre-request callback wants to abort the + request */ +#define CURL_PREREQFUNC_ABORT 1 + +/* All possible error codes from all sorts of curl functions. Future versions + may return other values, stay prepared. + + Always add new return codes last. Never *EVER* remove any. The return + codes must remain the same! + */ + +typedef enum { + CURLE_OK = 0, + CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ + CURLE_FAILED_INIT, /* 2 */ + CURLE_URL_MALFORMAT, /* 3 */ + CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for + 7.17.0, reused in April 2011 for 7.21.5] */ + CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ + CURLE_COULDNT_RESOLVE_HOST, /* 6 */ + CURLE_COULDNT_CONNECT, /* 7 */ + CURLE_WEIRD_SERVER_REPLY, /* 8 */ + CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server + due to lack of access - when login fails + this is not returned. */ + CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for + 7.15.4, reused in Dec 2011 for 7.24.0]*/ + CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ + CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server + [was obsoleted in August 2007 for 7.17.0, + reused in Dec 2011 for 7.24.0]*/ + CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ + CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ + CURLE_FTP_CANT_GET_HOST, /* 15 */ + CURLE_HTTP2, /* 16 - A problem in the http2 framing layer. + [was obsoleted in August 2007 for 7.17.0, + reused in July 2014 for 7.38.0] */ + CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ + CURLE_PARTIAL_FILE, /* 18 */ + CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ + CURLE_OBSOLETE20, /* 20 - NOT USED */ + CURLE_QUOTE_ERROR, /* 21 - quote command failure */ + CURLE_HTTP_RETURNED_ERROR, /* 22 */ + CURLE_WRITE_ERROR, /* 23 */ + CURLE_OBSOLETE24, /* 24 - NOT USED */ + CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ + CURLE_READ_ERROR, /* 26 - couldn't open/read from file */ + CURLE_OUT_OF_MEMORY, /* 27 */ + CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ + CURLE_OBSOLETE29, /* 29 - NOT USED */ + CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ + CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ + CURLE_OBSOLETE32, /* 32 - NOT USED */ + CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ + CURLE_HTTP_POST_ERROR, /* 34 */ + CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ + CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ + CURLE_FILE_COULDNT_READ_FILE, /* 37 */ + CURLE_LDAP_CANNOT_BIND, /* 38 */ + CURLE_LDAP_SEARCH_FAILED, /* 39 */ + CURLE_OBSOLETE40, /* 40 - NOT USED */ + CURLE_FUNCTION_NOT_FOUND, /* 41 - NOT USED starting with 7.53.0 */ + CURLE_ABORTED_BY_CALLBACK, /* 42 */ + CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ + CURLE_OBSOLETE44, /* 44 - NOT USED */ + CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ + CURLE_OBSOLETE46, /* 46 - NOT USED */ + CURLE_TOO_MANY_REDIRECTS, /* 47 - catch endless re-direct loops */ + CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ + CURLE_SETOPT_OPTION_SYNTAX, /* 49 - Malformed setopt option */ + CURLE_OBSOLETE50, /* 50 - NOT USED */ + CURLE_OBSOLETE51, /* 51 - NOT USED */ + CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ + CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ + CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as + default */ + CURLE_SEND_ERROR, /* 55 - failed sending network data */ + CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ + CURLE_OBSOLETE57, /* 57 - NOT IN USE */ + CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ + CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ + CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint + wasn't verified fine */ + CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ + CURLE_OBSOLETE62, /* 62 - NOT IN USE since 7.82.0 */ + CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ + CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ + CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind + that failed */ + CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ + CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not + accepted and we failed to login */ + CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ + CURLE_TFTP_PERM, /* 69 - permission problem on server */ + CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ + CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ + CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ + CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ + CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ + CURLE_CONV_FAILED, /* 75 - conversion failed */ + CURLE_OBSOLETE76, /* 76 - NOT IN USE since 7.82.0 */ + CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing + or wrong format */ + CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ + CURLE_SSH, /* 79 - error from the SSH layer, somewhat + generic so the error message will be of + interest when this has happened */ + + CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL + connection */ + CURLE_AGAIN, /* 81 - socket is not ready for send/recv, + wait till it's ready and try again (Added + in 7.18.2) */ + CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or + wrong format (Added in 7.19.0) */ + CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in + 7.19.0) */ + CURLE_FTP_PRET_FAILED, /* 84 - a PRET command failed */ + CURLE_RTSP_CSEQ_ERROR, /* 85 - mismatch of RTSP CSeq numbers */ + CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */ + CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */ + CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */ + CURLE_NO_CONNECTION_AVAILABLE, /* 89 - No connection available, the + session will be queued */ + CURLE_SSL_PINNEDPUBKEYNOTMATCH, /* 90 - specified pinned public key did not + match */ + CURLE_SSL_INVALIDCERTSTATUS, /* 91 - invalid certificate status */ + CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer + */ + CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from + inside a callback */ + CURLE_AUTH_ERROR, /* 94 - an authentication function returned an + error */ + CURLE_HTTP3, /* 95 - An HTTP/3 layer problem */ + CURLE_QUIC_CONNECT_ERROR, /* 96 - QUIC connection error */ + CURLE_PROXY, /* 97 - proxy handshake error */ + CURLE_SSL_CLIENTCERT, /* 98 - client-side certificate required */ + CURLE_UNRECOVERABLE_POLL, /* 99 - poll/select returned fatal error */ + CURL_LAST /* never use! */ +} CURLcode; + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Previously obsolete error code re-used in 7.38.0 */ +#define CURLE_OBSOLETE16 CURLE_HTTP2 + +/* Previously obsolete error codes re-used in 7.24.0 */ +#define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED +#define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT + +/* compatibility with older names */ +#define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING +#define CURLE_FTP_WEIRD_SERVER_REPLY CURLE_WEIRD_SERVER_REPLY + +/* The following were added in 7.62.0 */ +#define CURLE_SSL_CACERT CURLE_PEER_FAILED_VERIFICATION + +/* The following were added in 7.21.5, April 2011 */ +#define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION + +/* Added for 7.78.0 */ +#define CURLE_TELNET_OPTION_SYNTAX CURLE_SETOPT_OPTION_SYNTAX + +/* The following were added in 7.17.1 */ +/* These are scheduled to disappear by 2009 */ +#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION + +/* The following were added in 7.17.0 */ +/* These are scheduled to disappear by 2009 */ +#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* no one should be using this! */ +#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 +#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 +#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 +#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 +#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 +#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 +#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 +#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 +#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 +#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 +#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 +#define CURLE_URL_MALFORMAT_USER CURLE_NOT_BUILT_IN + +#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED +#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE +#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR +#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL +#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS +#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR +#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED + +/* The following were added earlier */ + +#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT +#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR +#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED +#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED +#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE +#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME +#define CURLE_LDAP_INVALID_URL CURLE_OBSOLETE62 +#define CURLE_CONV_REQD CURLE_OBSOLETE76 + +/* This was the error code 50 in 7.7.3 and a few earlier versions, this + is no longer used by libcurl but is instead #defined here only to not + make programs break */ +#define CURLE_ALREADY_COMPLETE 99999 + +/* Provide defines for really old option names */ +#define CURLOPT_FILE CURLOPT_WRITEDATA /* name changed in 7.9.7 */ +#define CURLOPT_INFILE CURLOPT_READDATA /* name changed in 7.9.7 */ +#define CURLOPT_WRITEHEADER CURLOPT_HEADERDATA + +/* Since long deprecated options with no code in the lib that does anything + with them. */ +#define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40 +#define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72 + +#endif /*!CURL_NO_OLDIES*/ + +/* + * Proxy error codes. Returned in CURLINFO_PROXY_ERROR if CURLE_PROXY was + * return for the transfers. + */ +typedef enum { + CURLPX_OK, + CURLPX_BAD_ADDRESS_TYPE, + CURLPX_BAD_VERSION, + CURLPX_CLOSED, + CURLPX_GSSAPI, + CURLPX_GSSAPI_PERMSG, + CURLPX_GSSAPI_PROTECTION, + CURLPX_IDENTD, + CURLPX_IDENTD_DIFFER, + CURLPX_LONG_HOSTNAME, + CURLPX_LONG_PASSWD, + CURLPX_LONG_USER, + CURLPX_NO_AUTH, + CURLPX_RECV_ADDRESS, + CURLPX_RECV_AUTH, + CURLPX_RECV_CONNECT, + CURLPX_RECV_REQACK, + CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED, + CURLPX_REPLY_COMMAND_NOT_SUPPORTED, + CURLPX_REPLY_CONNECTION_REFUSED, + CURLPX_REPLY_GENERAL_SERVER_FAILURE, + CURLPX_REPLY_HOST_UNREACHABLE, + CURLPX_REPLY_NETWORK_UNREACHABLE, + CURLPX_REPLY_NOT_ALLOWED, + CURLPX_REPLY_TTL_EXPIRED, + CURLPX_REPLY_UNASSIGNED, + CURLPX_REQUEST_FAILED, + CURLPX_RESOLVE_HOST, + CURLPX_SEND_AUTH, + CURLPX_SEND_CONNECT, + CURLPX_SEND_REQUEST, + CURLPX_UNKNOWN_FAIL, + CURLPX_UNKNOWN_MODE, + CURLPX_USER_REJECTED, + CURLPX_LAST /* never use */ +} CURLproxycode; + +/* This prototype applies to all conversion callbacks */ +typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); + +typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ + void *ssl_ctx, /* actually an OpenSSL + or WolfSSL SSL_CTX, + or an mbedTLS + mbedtls_ssl_config */ + void *userptr); + +typedef enum { + CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use + CONNECT HTTP/1.1 */ + CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT + HTTP/1.0 */ + CURLPROXY_HTTPS = 2, /* added in 7.52.0 */ + CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already + in 7.10 */ + CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ + CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */ + CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the + host name rather than the IP address. added + in 7.18.0 */ +} curl_proxytype; /* this enum was added in 7.10 */ + +/* + * Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options: + * + * CURLAUTH_NONE - No HTTP authentication + * CURLAUTH_BASIC - HTTP Basic authentication (default) + * CURLAUTH_DIGEST - HTTP Digest authentication + * CURLAUTH_NEGOTIATE - HTTP Negotiate (SPNEGO) authentication + * CURLAUTH_GSSNEGOTIATE - Alias for CURLAUTH_NEGOTIATE (deprecated) + * CURLAUTH_NTLM - HTTP NTLM authentication + * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour + * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper + * CURLAUTH_BEARER - HTTP Bearer token authentication + * CURLAUTH_ONLY - Use together with a single other type to force no + * authentication or just that single type + * CURLAUTH_ANY - All fine types set + * CURLAUTH_ANYSAFE - All fine types except Basic + */ + +#define CURLAUTH_NONE ((unsigned long)0) +#define CURLAUTH_BASIC (((unsigned long)1)<<0) +#define CURLAUTH_DIGEST (((unsigned long)1)<<1) +#define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2) +/* Deprecated since the advent of CURLAUTH_NEGOTIATE */ +#define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE +/* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */ +#define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE +#define CURLAUTH_NTLM (((unsigned long)1)<<3) +#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) +#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) +#define CURLAUTH_BEARER (((unsigned long)1)<<6) +#define CURLAUTH_AWS_SIGV4 (((unsigned long)1)<<7) +#define CURLAUTH_ONLY (((unsigned long)1)<<31) +#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) +#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) + +#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ +#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ +#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ +#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ +#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ +#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ +#define CURLSSH_AUTH_AGENT (1<<4) /* agent (ssh-agent, pageant...) */ +#define CURLSSH_AUTH_GSSAPI (1<<5) /* gssapi (kerberos, ...) */ +#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY + +#define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */ +#define CURLGSSAPI_DELEGATION_POLICY_FLAG (1<<0) /* if permitted by policy */ +#define CURLGSSAPI_DELEGATION_FLAG (1<<1) /* delegate always */ + +#define CURL_ERROR_SIZE 256 + +enum curl_khtype { + CURLKHTYPE_UNKNOWN, + CURLKHTYPE_RSA1, + CURLKHTYPE_RSA, + CURLKHTYPE_DSS, + CURLKHTYPE_ECDSA, + CURLKHTYPE_ED25519 +}; + +struct curl_khkey { + const char *key; /* points to a null-terminated string encoded with base64 + if len is zero, otherwise to the "raw" data */ + size_t len; + enum curl_khtype keytype; +}; + +/* this is the set of return values expected from the curl_sshkeycallback + callback */ +enum curl_khstat { + CURLKHSTAT_FINE_ADD_TO_FILE, + CURLKHSTAT_FINE, + CURLKHSTAT_REJECT, /* reject the connection, return an error */ + CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now so + this causes a CURLE_DEFER error but otherwise the + connection will be left intact etc */ + CURLKHSTAT_FINE_REPLACE, /* accept and replace the wrong key*/ + CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */ +}; + +/* this is the set of status codes pass in to the callback */ +enum curl_khmatch { + CURLKHMATCH_OK, /* match */ + CURLKHMATCH_MISMATCH, /* host found, key mismatch! */ + CURLKHMATCH_MISSING, /* no matching host/key found */ + CURLKHMATCH_LAST /* not for use, only a marker for last-in-list */ +}; + +typedef int + (*curl_sshkeycallback) (CURL *easy, /* easy handle */ + const struct curl_khkey *knownkey, /* known */ + const struct curl_khkey *foundkey, /* found */ + enum curl_khmatch, /* libcurl's view on the keys */ + void *clientp); /* custom pointer passed with */ + /* CURLOPT_SSH_KEYDATA */ + +typedef int + (*curl_sshhostkeycallback) (void *clientp,/* custom pointer passed*/ + /* with CURLOPT_SSH_HOSTKEYDATA */ + int keytype, /* CURLKHTYPE */ + const char *key, /*hostkey to check*/ + size_t keylen); /*length of the key*/ + /*return CURLE_OK to accept*/ + /*or something else to refuse*/ + + +/* parameter for the CURLOPT_USE_SSL option */ +typedef enum { + CURLUSESSL_NONE, /* do not attempt to use SSL */ + CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ + CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ + CURLUSESSL_ALL, /* SSL for all communication or fail */ + CURLUSESSL_LAST /* not an option, never use */ +} curl_usessl; + +/* Definition of bits for the CURLOPT_SSL_OPTIONS argument: */ + +/* - ALLOW_BEAST tells libcurl to allow the BEAST SSL vulnerability in the + name of improving interoperability with older servers. Some SSL libraries + have introduced work-arounds for this flaw but those work-arounds sometimes + make the SSL communication fail. To regain functionality with those broken + servers, a user can this way allow the vulnerability back. */ +#define CURLSSLOPT_ALLOW_BEAST (1<<0) + +/* - NO_REVOKE tells libcurl to disable certificate revocation checks for those + SSL backends where such behavior is present. */ +#define CURLSSLOPT_NO_REVOKE (1<<1) + +/* - NO_PARTIALCHAIN tells libcurl to *NOT* accept a partial certificate chain + if possible. The OpenSSL backend has this ability. */ +#define CURLSSLOPT_NO_PARTIALCHAIN (1<<2) + +/* - REVOKE_BEST_EFFORT tells libcurl to ignore certificate revocation offline + checks and ignore missing revocation list for those SSL backends where such + behavior is present. */ +#define CURLSSLOPT_REVOKE_BEST_EFFORT (1<<3) + +/* - CURLSSLOPT_NATIVE_CA tells libcurl to use standard certificate store of + operating system. Currently implemented under MS-Windows. */ +#define CURLSSLOPT_NATIVE_CA (1<<4) + +/* - CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl to automatically locate and use + a client certificate for authentication. (Schannel) */ +#define CURLSSLOPT_AUTO_CLIENT_CERT (1<<5) + +/* The default connection attempt delay in milliseconds for happy eyeballs. + CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document + this value, keep them in sync. */ +#define CURL_HET_DEFAULT 200L + +/* The default connection upkeep interval in milliseconds. */ +#define CURL_UPKEEP_INTERVAL_DEFAULT 60000L + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Backwards compatibility with older names */ +/* These are scheduled to disappear by 2009 */ + +#define CURLFTPSSL_NONE CURLUSESSL_NONE +#define CURLFTPSSL_TRY CURLUSESSL_TRY +#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL +#define CURLFTPSSL_ALL CURLUSESSL_ALL +#define CURLFTPSSL_LAST CURLUSESSL_LAST +#define curl_ftpssl curl_usessl +#endif /*!CURL_NO_OLDIES*/ + +/* parameter for the CURLOPT_FTP_SSL_CCC option */ +typedef enum { + CURLFTPSSL_CCC_NONE, /* do not send CCC */ + CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ + CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ + CURLFTPSSL_CCC_LAST /* not an option, never use */ +} curl_ftpccc; + +/* parameter for the CURLOPT_FTPSSLAUTH option */ +typedef enum { + CURLFTPAUTH_DEFAULT, /* let libcurl decide */ + CURLFTPAUTH_SSL, /* use "AUTH SSL" */ + CURLFTPAUTH_TLS, /* use "AUTH TLS" */ + CURLFTPAUTH_LAST /* not an option, never use */ +} curl_ftpauth; + +/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ +typedef enum { + CURLFTP_CREATE_DIR_NONE, /* do NOT create missing dirs! */ + CURLFTP_CREATE_DIR, /* (FTP/SFTP) if CWD fails, try MKD and then CWD + again if MKD succeeded, for SFTP this does + similar magic */ + CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD + again even if MKD failed! */ + CURLFTP_CREATE_DIR_LAST /* not an option, never use */ +} curl_ftpcreatedir; + +/* parameter for the CURLOPT_FTP_FILEMETHOD option */ +typedef enum { + CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ + CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ + CURLFTPMETHOD_NOCWD, /* no CWD at all */ + CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ + CURLFTPMETHOD_LAST /* not an option, never use */ +} curl_ftpmethod; + +/* bitmask defines for CURLOPT_HEADEROPT */ +#define CURLHEADER_UNIFIED 0 +#define CURLHEADER_SEPARATE (1<<0) + +/* CURLALTSVC_* are bits for the CURLOPT_ALTSVC_CTRL option */ +#define CURLALTSVC_READONLYFILE (1<<2) +#define CURLALTSVC_H1 (1<<3) +#define CURLALTSVC_H2 (1<<4) +#define CURLALTSVC_H3 (1<<5) + + +struct curl_hstsentry { + char *name; + size_t namelen; + unsigned int includeSubDomains:1; + char expire[18]; /* YYYYMMDD HH:MM:SS [null-terminated] */ +}; + +struct curl_index { + size_t index; /* the provided entry's "index" or count */ + size_t total; /* total number of entries to save */ +}; + +typedef enum { + CURLSTS_OK, + CURLSTS_DONE, + CURLSTS_FAIL +} CURLSTScode; + +typedef CURLSTScode (*curl_hstsread_callback)(CURL *easy, + struct curl_hstsentry *e, + void *userp); +typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy, + struct curl_hstsentry *e, + struct curl_index *i, + void *userp); + +/* CURLHSTS_* are bits for the CURLOPT_HSTS option */ +#define CURLHSTS_ENABLE (long)(1<<0) +#define CURLHSTS_READONLYFILE (long)(1<<1) + +/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */ +#define CURLPROTO_HTTP (1<<0) +#define CURLPROTO_HTTPS (1<<1) +#define CURLPROTO_FTP (1<<2) +#define CURLPROTO_FTPS (1<<3) +#define CURLPROTO_SCP (1<<4) +#define CURLPROTO_SFTP (1<<5) +#define CURLPROTO_TELNET (1<<6) +#define CURLPROTO_LDAP (1<<7) +#define CURLPROTO_LDAPS (1<<8) +#define CURLPROTO_DICT (1<<9) +#define CURLPROTO_FILE (1<<10) +#define CURLPROTO_TFTP (1<<11) +#define CURLPROTO_IMAP (1<<12) +#define CURLPROTO_IMAPS (1<<13) +#define CURLPROTO_POP3 (1<<14) +#define CURLPROTO_POP3S (1<<15) +#define CURLPROTO_SMTP (1<<16) +#define CURLPROTO_SMTPS (1<<17) +#define CURLPROTO_RTSP (1<<18) +#define CURLPROTO_RTMP (1<<19) +#define CURLPROTO_RTMPT (1<<20) +#define CURLPROTO_RTMPE (1<<21) +#define CURLPROTO_RTMPTE (1<<22) +#define CURLPROTO_RTMPS (1<<23) +#define CURLPROTO_RTMPTS (1<<24) +#define CURLPROTO_GOPHER (1<<25) +#define CURLPROTO_SMB (1<<26) +#define CURLPROTO_SMBS (1<<27) +#define CURLPROTO_MQTT (1<<28) +#define CURLPROTO_GOPHERS (1<<29) +#define CURLPROTO_ALL (~0) /* enable everything */ + +/* long may be 32 or 64 bits, but we should never depend on anything else + but 32 */ +#define CURLOPTTYPE_LONG 0 +#define CURLOPTTYPE_OBJECTPOINT 10000 +#define CURLOPTTYPE_FUNCTIONPOINT 20000 +#define CURLOPTTYPE_OFF_T 30000 +#define CURLOPTTYPE_BLOB 40000 + +/* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the + string options from the header file */ + + +#define CURLOPT(na,t,nu) na = t + nu + +/* CURLOPT aliases that make no run-time difference */ + +/* 'char *' argument to a string with a trailing zero */ +#define CURLOPTTYPE_STRINGPOINT CURLOPTTYPE_OBJECTPOINT + +/* 'struct curl_slist *' argument */ +#define CURLOPTTYPE_SLISTPOINT CURLOPTTYPE_OBJECTPOINT + +/* 'void *' argument passed untouched to callback */ +#define CURLOPTTYPE_CBPOINT CURLOPTTYPE_OBJECTPOINT + +/* 'long' argument with a set of values/bitmask */ +#define CURLOPTTYPE_VALUES CURLOPTTYPE_LONG + +/* + * All CURLOPT_* values. + */ + +typedef enum { + /* This is the FILE * or void * the regular output should be written to. */ + CURLOPT(CURLOPT_WRITEDATA, CURLOPTTYPE_CBPOINT, 1), + + /* The full URL to get/put */ + CURLOPT(CURLOPT_URL, CURLOPTTYPE_STRINGPOINT, 2), + + /* Port number to connect to, if other than default. */ + CURLOPT(CURLOPT_PORT, CURLOPTTYPE_LONG, 3), + + /* Name of proxy to use. */ + CURLOPT(CURLOPT_PROXY, CURLOPTTYPE_STRINGPOINT, 4), + + /* "user:password;options" to use when fetching. */ + CURLOPT(CURLOPT_USERPWD, CURLOPTTYPE_STRINGPOINT, 5), + + /* "user:password" to use with proxy. */ + CURLOPT(CURLOPT_PROXYUSERPWD, CURLOPTTYPE_STRINGPOINT, 6), + + /* Range to get, specified as an ASCII string. */ + CURLOPT(CURLOPT_RANGE, CURLOPTTYPE_STRINGPOINT, 7), + + /* not used */ + + /* Specified file stream to upload from (use as input): */ + CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_CBPOINT, 9), + + /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE + * bytes big. */ + CURLOPT(CURLOPT_ERRORBUFFER, CURLOPTTYPE_OBJECTPOINT, 10), + + /* Function that will be called to store the output (instead of fwrite). The + * parameters will use fwrite() syntax, make sure to follow them. */ + CURLOPT(CURLOPT_WRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 11), + + /* Function that will be called to read the input (instead of fread). The + * parameters will use fread() syntax, make sure to follow them. */ + CURLOPT(CURLOPT_READFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 12), + + /* Time-out the read operation after this amount of seconds */ + CURLOPT(CURLOPT_TIMEOUT, CURLOPTTYPE_LONG, 13), + + /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about + * how large the file being sent really is. That allows better error + * checking and better verifies that the upload was successful. -1 means + * unknown size. + * + * For large file support, there is also a _LARGE version of the key + * which takes an off_t type, allowing platforms with larger off_t + * sizes to handle larger files. See below for INFILESIZE_LARGE. + */ + CURLOPT(CURLOPT_INFILESIZE, CURLOPTTYPE_LONG, 14), + + /* POST static input fields. */ + CURLOPT(CURLOPT_POSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 15), + + /* Set the referrer page (needed by some CGIs) */ + CURLOPT(CURLOPT_REFERER, CURLOPTTYPE_STRINGPOINT, 16), + + /* Set the FTP PORT string (interface name, named or numerical IP address) + Use i.e '-' to use default address. */ + CURLOPT(CURLOPT_FTPPORT, CURLOPTTYPE_STRINGPOINT, 17), + + /* Set the User-Agent string (examined by some CGIs) */ + CURLOPT(CURLOPT_USERAGENT, CURLOPTTYPE_STRINGPOINT, 18), + + /* If the download receives less than "low speed limit" bytes/second + * during "low speed time" seconds, the operations is aborted. + * You could i.e if you have a pretty high speed connection, abort if + * it is less than 2000 bytes/sec during 20 seconds. + */ + + /* Set the "low speed limit" */ + CURLOPT(CURLOPT_LOW_SPEED_LIMIT, CURLOPTTYPE_LONG, 19), + + /* Set the "low speed time" */ + CURLOPT(CURLOPT_LOW_SPEED_TIME, CURLOPTTYPE_LONG, 20), + + /* Set the continuation offset. + * + * Note there is also a _LARGE version of this key which uses + * off_t types, allowing for large file offsets on platforms which + * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. + */ + CURLOPT(CURLOPT_RESUME_FROM, CURLOPTTYPE_LONG, 21), + + /* Set cookie in request: */ + CURLOPT(CURLOPT_COOKIE, CURLOPTTYPE_STRINGPOINT, 22), + + /* This points to a linked list of headers, struct curl_slist kind. This + list is also used for RTSP (in spite of its name) */ + CURLOPT(CURLOPT_HTTPHEADER, CURLOPTTYPE_SLISTPOINT, 23), + + /* This points to a linked list of post entries, struct curl_httppost */ + CURLOPT(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24), + + /* name of the file keeping your private SSL-certificate */ + CURLOPT(CURLOPT_SSLCERT, CURLOPTTYPE_STRINGPOINT, 25), + + /* password for the SSL or SSH private key */ + CURLOPT(CURLOPT_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 26), + + /* send TYPE parameter? */ + CURLOPT(CURLOPT_CRLF, CURLOPTTYPE_LONG, 27), + + /* send linked-list of QUOTE commands */ + CURLOPT(CURLOPT_QUOTE, CURLOPTTYPE_SLISTPOINT, 28), + + /* send FILE * or void * to store headers to, if you use a callback it + is simply passed to the callback unmodified */ + CURLOPT(CURLOPT_HEADERDATA, CURLOPTTYPE_CBPOINT, 29), + + /* point to a file to read the initial cookies from, also enables + "cookie awareness" */ + CURLOPT(CURLOPT_COOKIEFILE, CURLOPTTYPE_STRINGPOINT, 31), + + /* What version to specifically try to use. + See CURL_SSLVERSION defines below. */ + CURLOPT(CURLOPT_SSLVERSION, CURLOPTTYPE_VALUES, 32), + + /* What kind of HTTP time condition to use, see defines */ + CURLOPT(CURLOPT_TIMECONDITION, CURLOPTTYPE_VALUES, 33), + + /* Time to use with the above condition. Specified in number of seconds + since 1 Jan 1970 */ + CURLOPT(CURLOPT_TIMEVALUE, CURLOPTTYPE_LONG, 34), + + /* 35 = OBSOLETE */ + + /* Custom request, for customizing the get command like + HTTP: DELETE, TRACE and others + FTP: to use a different list command + */ + CURLOPT(CURLOPT_CUSTOMREQUEST, CURLOPTTYPE_STRINGPOINT, 36), + + /* FILE handle to use instead of stderr */ + CURLOPT(CURLOPT_STDERR, CURLOPTTYPE_OBJECTPOINT, 37), + + /* 38 is not used */ + + /* send linked-list of post-transfer QUOTE commands */ + CURLOPT(CURLOPT_POSTQUOTE, CURLOPTTYPE_SLISTPOINT, 39), + + /* OBSOLETE, do not use! */ + CURLOPT(CURLOPT_OBSOLETE40, CURLOPTTYPE_OBJECTPOINT, 40), + + /* talk a lot */ + CURLOPT(CURLOPT_VERBOSE, CURLOPTTYPE_LONG, 41), + + /* throw the header out too */ + CURLOPT(CURLOPT_HEADER, CURLOPTTYPE_LONG, 42), + + /* shut off the progress meter */ + CURLOPT(CURLOPT_NOPROGRESS, CURLOPTTYPE_LONG, 43), + + /* use HEAD to get http document */ + CURLOPT(CURLOPT_NOBODY, CURLOPTTYPE_LONG, 44), + + /* no output on http error codes >= 400 */ + CURLOPT(CURLOPT_FAILONERROR, CURLOPTTYPE_LONG, 45), + + /* this is an upload */ + CURLOPT(CURLOPT_UPLOAD, CURLOPTTYPE_LONG, 46), + + /* HTTP POST method */ + CURLOPT(CURLOPT_POST, CURLOPTTYPE_LONG, 47), + + /* bare names when listing directories */ + CURLOPT(CURLOPT_DIRLISTONLY, CURLOPTTYPE_LONG, 48), + + /* Append instead of overwrite on upload! */ + CURLOPT(CURLOPT_APPEND, CURLOPTTYPE_LONG, 50), + + /* Specify whether to read the user+password from the .netrc or the URL. + * This must be one of the CURL_NETRC_* enums below. */ + CURLOPT(CURLOPT_NETRC, CURLOPTTYPE_VALUES, 51), + + /* use Location: Luke! */ + CURLOPT(CURLOPT_FOLLOWLOCATION, CURLOPTTYPE_LONG, 52), + + /* transfer data in text/ASCII format */ + CURLOPT(CURLOPT_TRANSFERTEXT, CURLOPTTYPE_LONG, 53), + + /* HTTP PUT */ + CURLOPT(CURLOPT_PUT, CURLOPTTYPE_LONG, 54), + + /* 55 = OBSOLETE */ + + /* DEPRECATED + * Function that will be called instead of the internal progress display + * function. This function should be defined as the curl_progress_callback + * prototype defines. */ + CURLOPT(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56), + + /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION + callbacks */ + CURLOPT(CURLOPT_XFERINFODATA, CURLOPTTYPE_CBPOINT, 57), +#define CURLOPT_PROGRESSDATA CURLOPT_XFERINFODATA + + /* We want the referrer field set automatically when following locations */ + CURLOPT(CURLOPT_AUTOREFERER, CURLOPTTYPE_LONG, 58), + + /* Port of the proxy, can be set in the proxy string as well with: + "[host]:[port]" */ + CURLOPT(CURLOPT_PROXYPORT, CURLOPTTYPE_LONG, 59), + + /* size of the POST input data, if strlen() is not good to use */ + CURLOPT(CURLOPT_POSTFIELDSIZE, CURLOPTTYPE_LONG, 60), + + /* tunnel non-http operations through a HTTP proxy */ + CURLOPT(CURLOPT_HTTPPROXYTUNNEL, CURLOPTTYPE_LONG, 61), + + /* Set the interface string to use as outgoing network interface */ + CURLOPT(CURLOPT_INTERFACE, CURLOPTTYPE_STRINGPOINT, 62), + + /* Set the krb4/5 security level, this also enables krb4/5 awareness. This + * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string + * is set but doesn't match one of these, 'private' will be used. */ + CURLOPT(CURLOPT_KRBLEVEL, CURLOPTTYPE_STRINGPOINT, 63), + + /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ + CURLOPT(CURLOPT_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 64), + + /* The CApath or CAfile used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_CAINFO, CURLOPTTYPE_STRINGPOINT, 65), + + /* 66 = OBSOLETE */ + /* 67 = OBSOLETE */ + + /* Maximum number of http redirects to follow */ + CURLOPT(CURLOPT_MAXREDIRS, CURLOPTTYPE_LONG, 68), + + /* Pass a long set to 1 to get the date of the requested document (if + possible)! Pass a zero to shut it off. */ + CURLOPT(CURLOPT_FILETIME, CURLOPTTYPE_LONG, 69), + + /* This points to a linked list of telnet options */ + CURLOPT(CURLOPT_TELNETOPTIONS, CURLOPTTYPE_SLISTPOINT, 70), + + /* Max amount of cached alive connections */ + CURLOPT(CURLOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 71), + + /* OBSOLETE, do not use! */ + CURLOPT(CURLOPT_OBSOLETE72, CURLOPTTYPE_LONG, 72), + + /* 73 = OBSOLETE */ + + /* Set to explicitly use a new connection for the upcoming transfer. + Do not use this unless you're absolutely sure of this, as it makes the + operation slower and is less friendly for the network. */ + CURLOPT(CURLOPT_FRESH_CONNECT, CURLOPTTYPE_LONG, 74), + + /* Set to explicitly forbid the upcoming transfer's connection to be re-used + when done. Do not use this unless you're absolutely sure of this, as it + makes the operation slower and is less friendly for the network. */ + CURLOPT(CURLOPT_FORBID_REUSE, CURLOPTTYPE_LONG, 75), + + /* Set to a file name that contains random data for libcurl to use to + seed the random engine when doing SSL connects. */ + CURLOPT(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76), + + /* Set to the Entropy Gathering Daemon socket pathname */ + CURLOPT(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77), + + /* Time-out connect operations after this amount of seconds, if connects are + OK within this time, then fine... This only aborts the connect phase. */ + CURLOPT(CURLOPT_CONNECTTIMEOUT, CURLOPTTYPE_LONG, 78), + + /* Function that will be called to store headers (instead of fwrite). The + * parameters will use fwrite() syntax, make sure to follow them. */ + CURLOPT(CURLOPT_HEADERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 79), + + /* Set this to force the HTTP request to get back to GET. Only really usable + if POST, PUT or a custom request have been used first. + */ + CURLOPT(CURLOPT_HTTPGET, CURLOPTTYPE_LONG, 80), + + /* Set if we should verify the Common name from the peer certificate in ssl + * handshake, set 1 to check existence, 2 to ensure that it matches the + * provided hostname. */ + CURLOPT(CURLOPT_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 81), + + /* Specify which file name to write all known cookies in after completed + operation. Set file name to "-" (dash) to make it go to stdout. */ + CURLOPT(CURLOPT_COOKIEJAR, CURLOPTTYPE_STRINGPOINT, 82), + + /* Specify which SSL ciphers to use */ + CURLOPT(CURLOPT_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 83), + + /* Specify which HTTP version to use! This must be set to one of the + CURL_HTTP_VERSION* enums set below. */ + CURLOPT(CURLOPT_HTTP_VERSION, CURLOPTTYPE_VALUES, 84), + + /* Specifically switch on or off the FTP engine's use of the EPSV command. By + default, that one will always be attempted before the more traditional + PASV command. */ + CURLOPT(CURLOPT_FTP_USE_EPSV, CURLOPTTYPE_LONG, 85), + + /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ + CURLOPT(CURLOPT_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 86), + + /* name of the file keeping your private SSL-key */ + CURLOPT(CURLOPT_SSLKEY, CURLOPTTYPE_STRINGPOINT, 87), + + /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ + CURLOPT(CURLOPT_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 88), + + /* crypto engine for the SSL-sub system */ + CURLOPT(CURLOPT_SSLENGINE, CURLOPTTYPE_STRINGPOINT, 89), + + /* set the crypto engine for the SSL-sub system as default + the param has no meaning... + */ + CURLOPT(CURLOPT_SSLENGINE_DEFAULT, CURLOPTTYPE_LONG, 90), + + /* Non-zero value means to use the global dns cache */ + /* DEPRECATED, do not use! */ + CURLOPT(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91), + + /* DNS cache timeout */ + CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92), + + /* send linked-list of pre-transfer QUOTE commands */ + CURLOPT(CURLOPT_PREQUOTE, CURLOPTTYPE_SLISTPOINT, 93), + + /* set the debug function */ + CURLOPT(CURLOPT_DEBUGFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 94), + + /* set the data for the debug function */ + CURLOPT(CURLOPT_DEBUGDATA, CURLOPTTYPE_CBPOINT, 95), + + /* mark this as start of a cookie session */ + CURLOPT(CURLOPT_COOKIESESSION, CURLOPTTYPE_LONG, 96), + + /* The CApath directory used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_CAPATH, CURLOPTTYPE_STRINGPOINT, 97), + + /* Instruct libcurl to use a smaller receive buffer */ + CURLOPT(CURLOPT_BUFFERSIZE, CURLOPTTYPE_LONG, 98), + + /* Instruct libcurl to not use any signal/alarm handlers, even when using + timeouts. This option is useful for multi-threaded applications. + See libcurl-the-guide for more background information. */ + CURLOPT(CURLOPT_NOSIGNAL, CURLOPTTYPE_LONG, 99), + + /* Provide a CURLShare for mutexing non-ts data */ + CURLOPT(CURLOPT_SHARE, CURLOPTTYPE_OBJECTPOINT, 100), + + /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), + CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and + CURLPROXY_SOCKS5. */ + CURLOPT(CURLOPT_PROXYTYPE, CURLOPTTYPE_VALUES, 101), + + /* Set the Accept-Encoding string. Use this to tell a server you would like + the response to be compressed. Before 7.21.6, this was known as + CURLOPT_ENCODING */ + CURLOPT(CURLOPT_ACCEPT_ENCODING, CURLOPTTYPE_STRINGPOINT, 102), + + /* Set pointer to private data */ + CURLOPT(CURLOPT_PRIVATE, CURLOPTTYPE_OBJECTPOINT, 103), + + /* Set aliases for HTTP 200 in the HTTP Response header */ + CURLOPT(CURLOPT_HTTP200ALIASES, CURLOPTTYPE_SLISTPOINT, 104), + + /* Continue to send authentication (user+password) when following locations, + even when hostname changed. This can potentially send off the name + and password to whatever host the server decides. */ + CURLOPT(CURLOPT_UNRESTRICTED_AUTH, CURLOPTTYPE_LONG, 105), + + /* Specifically switch on or off the FTP engine's use of the EPRT command ( + it also disables the LPRT attempt). By default, those ones will always be + attempted before the good old traditional PORT command. */ + CURLOPT(CURLOPT_FTP_USE_EPRT, CURLOPTTYPE_LONG, 106), + + /* Set this to a bitmask value to enable the particular authentications + methods you like. Use this in combination with CURLOPT_USERPWD. + Note that setting multiple bits may cause extra network round-trips. */ + CURLOPT(CURLOPT_HTTPAUTH, CURLOPTTYPE_VALUES, 107), + + /* Set the ssl context callback function, currently only for OpenSSL or + WolfSSL ssl_ctx, or mbedTLS mbedtls_ssl_config in the second argument. + The function must match the curl_ssl_ctx_callback prototype. */ + CURLOPT(CURLOPT_SSL_CTX_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 108), + + /* Set the userdata for the ssl context callback function's third + argument */ + CURLOPT(CURLOPT_SSL_CTX_DATA, CURLOPTTYPE_CBPOINT, 109), + + /* FTP Option that causes missing dirs to be created on the remote server. + In 7.19.4 we introduced the convenience enums for this option using the + CURLFTP_CREATE_DIR prefix. + */ + CURLOPT(CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPTTYPE_LONG, 110), + + /* Set this to a bitmask value to enable the particular authentications + methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. + Note that setting multiple bits may cause extra network round-trips. */ + CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_VALUES, 111), + + /* FTP option that changes the timeout, in seconds, associated with + getting a response. This is different from transfer timeout time and + essentially places a demand on the FTP server to acknowledge commands + in a timely manner. */ + CURLOPT(CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPTTYPE_LONG, 112), +#define CURLOPT_SERVER_RESPONSE_TIMEOUT CURLOPT_FTP_RESPONSE_TIMEOUT + + /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to + tell libcurl to use those IP versions only. This only has effect on + systems with support for more than one, i.e IPv4 _and_ IPv6. */ + CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_VALUES, 113), + + /* Set this option to limit the size of a file that will be downloaded from + an HTTP or FTP server. + + Note there is also _LARGE version which adds large file support for + platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ + CURLOPT(CURLOPT_MAXFILESIZE, CURLOPTTYPE_LONG, 114), + + /* See the comment for INFILESIZE above, but in short, specifies + * the size of the file being uploaded. -1 means unknown. + */ + CURLOPT(CURLOPT_INFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 115), + + /* Sets the continuation offset. There is also a CURLOPTTYPE_LONG version + * of this; look above for RESUME_FROM. + */ + CURLOPT(CURLOPT_RESUME_FROM_LARGE, CURLOPTTYPE_OFF_T, 116), + + /* Sets the maximum size of data that will be downloaded from + * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. + */ + CURLOPT(CURLOPT_MAXFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 117), + + /* Set this option to the file name of your .netrc file you want libcurl + to parse (using the CURLOPT_NETRC option). If not set, libcurl will do + a poor attempt to find the user's home directory and check for a .netrc + file in there. */ + CURLOPT(CURLOPT_NETRC_FILE, CURLOPTTYPE_STRINGPOINT, 118), + + /* Enable SSL/TLS for FTP, pick one of: + CURLUSESSL_TRY - try using SSL, proceed anyway otherwise + CURLUSESSL_CONTROL - SSL for the control connection or fail + CURLUSESSL_ALL - SSL for all communication or fail + */ + CURLOPT(CURLOPT_USE_SSL, CURLOPTTYPE_VALUES, 119), + + /* The _LARGE version of the standard POSTFIELDSIZE option */ + CURLOPT(CURLOPT_POSTFIELDSIZE_LARGE, CURLOPTTYPE_OFF_T, 120), + + /* Enable/disable the TCP Nagle algorithm */ + CURLOPT(CURLOPT_TCP_NODELAY, CURLOPTTYPE_LONG, 121), + + /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 123 OBSOLETE. Gone in 7.16.0 */ + /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 127 OBSOLETE. Gone in 7.16.0 */ + /* 128 OBSOLETE. Gone in 7.16.0 */ + + /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option + can be used to change libcurl's default action which is to first try + "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK + response has been received. + + Available parameters are: + CURLFTPAUTH_DEFAULT - let libcurl decide + CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS + CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL + */ + CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_VALUES, 129), + + CURLOPT(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130), + CURLOPT(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131), + + /* 132 OBSOLETE. Gone in 7.16.0 */ + /* 133 OBSOLETE. Gone in 7.16.0 */ + + /* null-terminated string for pass on to the FTP server when asked for + "account" info */ + CURLOPT(CURLOPT_FTP_ACCOUNT, CURLOPTTYPE_STRINGPOINT, 134), + + /* feed cookie into cookie engine */ + CURLOPT(CURLOPT_COOKIELIST, CURLOPTTYPE_STRINGPOINT, 135), + + /* ignore Content-Length */ + CURLOPT(CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPTTYPE_LONG, 136), + + /* Set to non-zero to skip the IP address received in a 227 PASV FTP server + response. Typically used for FTP-SSL purposes but is not restricted to + that. libcurl will then instead use the same IP address it used for the + control connection. */ + CURLOPT(CURLOPT_FTP_SKIP_PASV_IP, CURLOPTTYPE_LONG, 137), + + /* Select "file method" to use when doing FTP, see the curl_ftpmethod + above. */ + CURLOPT(CURLOPT_FTP_FILEMETHOD, CURLOPTTYPE_VALUES, 138), + + /* Local port number to bind the socket to */ + CURLOPT(CURLOPT_LOCALPORT, CURLOPTTYPE_LONG, 139), + + /* Number of ports to try, including the first one set with LOCALPORT. + Thus, setting it to 1 will make no additional attempts but the first. + */ + CURLOPT(CURLOPT_LOCALPORTRANGE, CURLOPTTYPE_LONG, 140), + + /* no transfer, set up connection and let application use the socket by + extracting it with CURLINFO_LASTSOCKET */ + CURLOPT(CURLOPT_CONNECT_ONLY, CURLOPTTYPE_LONG, 141), + + /* Function that will be called to convert from the + network encoding (instead of using the iconv calls in libcurl) */ + CURLOPT(CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 142), + + /* Function that will be called to convert to the + network encoding (instead of using the iconv calls in libcurl) */ + CURLOPT(CURLOPT_CONV_TO_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 143), + + /* Function that will be called to convert from UTF8 + (instead of using the iconv calls in libcurl) + Note that this is used only for SSL certificate processing */ + CURLOPT(CURLOPT_CONV_FROM_UTF8_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 144), + + /* if the connection proceeds too quickly then need to slow it down */ + /* limit-rate: maximum number of bytes per second to send or receive */ + CURLOPT(CURLOPT_MAX_SEND_SPEED_LARGE, CURLOPTTYPE_OFF_T, 145), + CURLOPT(CURLOPT_MAX_RECV_SPEED_LARGE, CURLOPTTYPE_OFF_T, 146), + + /* Pointer to command string to send if USER/PASS fails. */ + CURLOPT(CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPTTYPE_STRINGPOINT, 147), + + /* callback function for setting socket options */ + CURLOPT(CURLOPT_SOCKOPTFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 148), + CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_CBPOINT, 149), + + /* set to 0 to disable session ID re-use for this transfer, default is + enabled (== 1) */ + CURLOPT(CURLOPT_SSL_SESSIONID_CACHE, CURLOPTTYPE_LONG, 150), + + /* allowed SSH authentication methods */ + CURLOPT(CURLOPT_SSH_AUTH_TYPES, CURLOPTTYPE_VALUES, 151), + + /* Used by scp/sftp to do public/private key authentication */ + CURLOPT(CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPTTYPE_STRINGPOINT, 152), + CURLOPT(CURLOPT_SSH_PRIVATE_KEYFILE, CURLOPTTYPE_STRINGPOINT, 153), + + /* Send CCC (Clear Command Channel) after authentication */ + CURLOPT(CURLOPT_FTP_SSL_CCC, CURLOPTTYPE_LONG, 154), + + /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ + CURLOPT(CURLOPT_TIMEOUT_MS, CURLOPTTYPE_LONG, 155), + CURLOPT(CURLOPT_CONNECTTIMEOUT_MS, CURLOPTTYPE_LONG, 156), + + /* set to zero to disable the libcurl's decoding and thus pass the raw body + data to the application even when it is encoded/compressed */ + CURLOPT(CURLOPT_HTTP_TRANSFER_DECODING, CURLOPTTYPE_LONG, 157), + CURLOPT(CURLOPT_HTTP_CONTENT_DECODING, CURLOPTTYPE_LONG, 158), + + /* Permission used when creating new files and directories on the remote + server for protocols that support it, SFTP/SCP/FILE */ + CURLOPT(CURLOPT_NEW_FILE_PERMS, CURLOPTTYPE_LONG, 159), + CURLOPT(CURLOPT_NEW_DIRECTORY_PERMS, CURLOPTTYPE_LONG, 160), + + /* Set the behavior of POST when redirecting. Values must be set to one + of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ + CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_VALUES, 161), + + /* used by scp/sftp to verify the host's public key */ + CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, CURLOPTTYPE_STRINGPOINT, 162), + + /* Callback function for opening socket (instead of socket(2)). Optionally, + callback is able change the address or refuse to connect returning + CURL_SOCKET_BAD. The callback should have type + curl_opensocket_callback */ + CURLOPT(CURLOPT_OPENSOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 163), + CURLOPT(CURLOPT_OPENSOCKETDATA, CURLOPTTYPE_CBPOINT, 164), + + /* POST volatile input fields. */ + CURLOPT(CURLOPT_COPYPOSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 165), + + /* set transfer mode (;type=) when doing FTP via an HTTP proxy */ + CURLOPT(CURLOPT_PROXY_TRANSFER_MODE, CURLOPTTYPE_LONG, 166), + + /* Callback function for seeking in the input stream */ + CURLOPT(CURLOPT_SEEKFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 167), + CURLOPT(CURLOPT_SEEKDATA, CURLOPTTYPE_CBPOINT, 168), + + /* CRL file */ + CURLOPT(CURLOPT_CRLFILE, CURLOPTTYPE_STRINGPOINT, 169), + + /* Issuer certificate */ + CURLOPT(CURLOPT_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 170), + + /* (IPv6) Address scope */ + CURLOPT(CURLOPT_ADDRESS_SCOPE, CURLOPTTYPE_LONG, 171), + + /* Collect certificate chain info and allow it to get retrievable with + CURLINFO_CERTINFO after the transfer is complete. */ + CURLOPT(CURLOPT_CERTINFO, CURLOPTTYPE_LONG, 172), + + /* "name" and "pwd" to use when fetching. */ + CURLOPT(CURLOPT_USERNAME, CURLOPTTYPE_STRINGPOINT, 173), + CURLOPT(CURLOPT_PASSWORD, CURLOPTTYPE_STRINGPOINT, 174), + + /* "name" and "pwd" to use with Proxy when fetching. */ + CURLOPT(CURLOPT_PROXYUSERNAME, CURLOPTTYPE_STRINGPOINT, 175), + CURLOPT(CURLOPT_PROXYPASSWORD, CURLOPTTYPE_STRINGPOINT, 176), + + /* Comma separated list of hostnames defining no-proxy zones. These should + match both hostnames directly, and hostnames within a domain. For + example, local.com will match local.com and www.local.com, but NOT + notlocal.com or www.notlocal.com. For compatibility with other + implementations of this, .local.com will be considered to be the same as + local.com. A single * is the only valid wildcard, and effectively + disables the use of proxy. */ + CURLOPT(CURLOPT_NOPROXY, CURLOPTTYPE_STRINGPOINT, 177), + + /* block size for TFTP transfers */ + CURLOPT(CURLOPT_TFTP_BLKSIZE, CURLOPTTYPE_LONG, 178), + + /* Socks Service */ + /* DEPRECATED, do not use! */ + CURLOPT(CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPTTYPE_STRINGPOINT, 179), + + /* Socks Service */ + CURLOPT(CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPTTYPE_LONG, 180), + + /* set the bitmask for the protocols that are allowed to be used for the + transfer, which thus helps the app which takes URLs from users or other + external inputs and want to restrict what protocol(s) to deal + with. Defaults to CURLPROTO_ALL. */ + CURLOPT(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181), + + /* set the bitmask for the protocols that libcurl is allowed to follow to, + as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs + to be set in both bitmasks to be allowed to get redirected to. */ + CURLOPT(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182), + + /* set the SSH knownhost file name to use */ + CURLOPT(CURLOPT_SSH_KNOWNHOSTS, CURLOPTTYPE_STRINGPOINT, 183), + + /* set the SSH host key callback, must point to a curl_sshkeycallback + function */ + CURLOPT(CURLOPT_SSH_KEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 184), + + /* set the SSH host key callback custom pointer */ + CURLOPT(CURLOPT_SSH_KEYDATA, CURLOPTTYPE_CBPOINT, 185), + + /* set the SMTP mail originator */ + CURLOPT(CURLOPT_MAIL_FROM, CURLOPTTYPE_STRINGPOINT, 186), + + /* set the list of SMTP mail receiver(s) */ + CURLOPT(CURLOPT_MAIL_RCPT, CURLOPTTYPE_SLISTPOINT, 187), + + /* FTP: send PRET before PASV */ + CURLOPT(CURLOPT_FTP_USE_PRET, CURLOPTTYPE_LONG, 188), + + /* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */ + CURLOPT(CURLOPT_RTSP_REQUEST, CURLOPTTYPE_VALUES, 189), + + /* The RTSP session identifier */ + CURLOPT(CURLOPT_RTSP_SESSION_ID, CURLOPTTYPE_STRINGPOINT, 190), + + /* The RTSP stream URI */ + CURLOPT(CURLOPT_RTSP_STREAM_URI, CURLOPTTYPE_STRINGPOINT, 191), + + /* The Transport: header to use in RTSP requests */ + CURLOPT(CURLOPT_RTSP_TRANSPORT, CURLOPTTYPE_STRINGPOINT, 192), + + /* Manually initialize the client RTSP CSeq for this handle */ + CURLOPT(CURLOPT_RTSP_CLIENT_CSEQ, CURLOPTTYPE_LONG, 193), + + /* Manually initialize the server RTSP CSeq for this handle */ + CURLOPT(CURLOPT_RTSP_SERVER_CSEQ, CURLOPTTYPE_LONG, 194), + + /* The stream to pass to INTERLEAVEFUNCTION. */ + CURLOPT(CURLOPT_INTERLEAVEDATA, CURLOPTTYPE_CBPOINT, 195), + + /* Let the application define a custom write method for RTP data */ + CURLOPT(CURLOPT_INTERLEAVEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 196), + + /* Turn on wildcard matching */ + CURLOPT(CURLOPT_WILDCARDMATCH, CURLOPTTYPE_LONG, 197), + + /* Directory matching callback called before downloading of an + individual file (chunk) started */ + CURLOPT(CURLOPT_CHUNK_BGN_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 198), + + /* Directory matching callback called after the file (chunk) + was downloaded, or skipped */ + CURLOPT(CURLOPT_CHUNK_END_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 199), + + /* Change match (fnmatch-like) callback for wildcard matching */ + CURLOPT(CURLOPT_FNMATCH_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 200), + + /* Let the application define custom chunk data pointer */ + CURLOPT(CURLOPT_CHUNK_DATA, CURLOPTTYPE_CBPOINT, 201), + + /* FNMATCH_FUNCTION user pointer */ + CURLOPT(CURLOPT_FNMATCH_DATA, CURLOPTTYPE_CBPOINT, 202), + + /* send linked-list of name:port:address sets */ + CURLOPT(CURLOPT_RESOLVE, CURLOPTTYPE_SLISTPOINT, 203), + + /* Set a username for authenticated TLS */ + CURLOPT(CURLOPT_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 204), + + /* Set a password for authenticated TLS */ + CURLOPT(CURLOPT_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 205), + + /* Set authentication type for authenticated TLS */ + CURLOPT(CURLOPT_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 206), + + /* Set to 1 to enable the "TE:" header in HTTP requests to ask for + compressed transfer-encoded responses. Set to 0 to disable the use of TE: + in outgoing requests. The current default is 0, but it might change in a + future libcurl release. + + libcurl will ask for the compressed methods it knows of, and if that + isn't any, it will not ask for transfer-encoding at all even if this + option is set to 1. + + */ + CURLOPT(CURLOPT_TRANSFER_ENCODING, CURLOPTTYPE_LONG, 207), + + /* Callback function for closing socket (instead of close(2)). The callback + should have type curl_closesocket_callback */ + CURLOPT(CURLOPT_CLOSESOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 208), + CURLOPT(CURLOPT_CLOSESOCKETDATA, CURLOPTTYPE_CBPOINT, 209), + + /* allow GSSAPI credential delegation */ + CURLOPT(CURLOPT_GSSAPI_DELEGATION, CURLOPTTYPE_VALUES, 210), + + /* Set the name servers to use for DNS resolution */ + CURLOPT(CURLOPT_DNS_SERVERS, CURLOPTTYPE_STRINGPOINT, 211), + + /* Time-out accept operations (currently for FTP only) after this amount + of milliseconds. */ + CURLOPT(CURLOPT_ACCEPTTIMEOUT_MS, CURLOPTTYPE_LONG, 212), + + /* Set TCP keepalive */ + CURLOPT(CURLOPT_TCP_KEEPALIVE, CURLOPTTYPE_LONG, 213), + + /* non-universal keepalive knobs (Linux, AIX, HP-UX, more) */ + CURLOPT(CURLOPT_TCP_KEEPIDLE, CURLOPTTYPE_LONG, 214), + CURLOPT(CURLOPT_TCP_KEEPINTVL, CURLOPTTYPE_LONG, 215), + + /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */ + CURLOPT(CURLOPT_SSL_OPTIONS, CURLOPTTYPE_VALUES, 216), + + /* Set the SMTP auth originator */ + CURLOPT(CURLOPT_MAIL_AUTH, CURLOPTTYPE_STRINGPOINT, 217), + + /* Enable/disable SASL initial response */ + CURLOPT(CURLOPT_SASL_IR, CURLOPTTYPE_LONG, 218), + + /* Function that will be called instead of the internal progress display + * function. This function should be defined as the curl_xferinfo_callback + * prototype defines. (Deprecates CURLOPT_PROGRESSFUNCTION) */ + CURLOPT(CURLOPT_XFERINFOFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 219), + + /* The XOAUTH2 bearer token */ + CURLOPT(CURLOPT_XOAUTH2_BEARER, CURLOPTTYPE_STRINGPOINT, 220), + + /* Set the interface string to use as outgoing network + * interface for DNS requests. + * Only supported by the c-ares DNS backend */ + CURLOPT(CURLOPT_DNS_INTERFACE, CURLOPTTYPE_STRINGPOINT, 221), + + /* Set the local IPv4 address to use for outgoing DNS requests. + * Only supported by the c-ares DNS backend */ + CURLOPT(CURLOPT_DNS_LOCAL_IP4, CURLOPTTYPE_STRINGPOINT, 222), + + /* Set the local IPv6 address to use for outgoing DNS requests. + * Only supported by the c-ares DNS backend */ + CURLOPT(CURLOPT_DNS_LOCAL_IP6, CURLOPTTYPE_STRINGPOINT, 223), + + /* Set authentication options directly */ + CURLOPT(CURLOPT_LOGIN_OPTIONS, CURLOPTTYPE_STRINGPOINT, 224), + + /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ + CURLOPT(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225), + + /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */ + CURLOPT(CURLOPT_SSL_ENABLE_ALPN, CURLOPTTYPE_LONG, 226), + + /* Time to wait for a response to a HTTP request containing an + * Expect: 100-continue header before sending the data anyway. */ + CURLOPT(CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPTTYPE_LONG, 227), + + /* This points to a linked list of headers used for proxy requests only, + struct curl_slist kind */ + CURLOPT(CURLOPT_PROXYHEADER, CURLOPTTYPE_SLISTPOINT, 228), + + /* Pass in a bitmask of "header options" */ + CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_VALUES, 229), + + /* The public key in DER form used to validate the peer public key + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 230), + + /* Path to Unix domain socket */ + CURLOPT(CURLOPT_UNIX_SOCKET_PATH, CURLOPTTYPE_STRINGPOINT, 231), + + /* Set if we should verify the certificate status. */ + CURLOPT(CURLOPT_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 232), + + /* Set if we should enable TLS false start. */ + CURLOPT(CURLOPT_SSL_FALSESTART, CURLOPTTYPE_LONG, 233), + + /* Do not squash dot-dot sequences */ + CURLOPT(CURLOPT_PATH_AS_IS, CURLOPTTYPE_LONG, 234), + + /* Proxy Service Name */ + CURLOPT(CURLOPT_PROXY_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 235), + + /* Service Name */ + CURLOPT(CURLOPT_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 236), + + /* Wait/don't wait for pipe/mutex to clarify */ + CURLOPT(CURLOPT_PIPEWAIT, CURLOPTTYPE_LONG, 237), + + /* Set the protocol used when curl is given a URL without a protocol */ + CURLOPT(CURLOPT_DEFAULT_PROTOCOL, CURLOPTTYPE_STRINGPOINT, 238), + + /* Set stream weight, 1 - 256 (default is 16) */ + CURLOPT(CURLOPT_STREAM_WEIGHT, CURLOPTTYPE_LONG, 239), + + /* Set stream dependency on another CURL handle */ + CURLOPT(CURLOPT_STREAM_DEPENDS, CURLOPTTYPE_OBJECTPOINT, 240), + + /* Set E-xclusive stream dependency on another CURL handle */ + CURLOPT(CURLOPT_STREAM_DEPENDS_E, CURLOPTTYPE_OBJECTPOINT, 241), + + /* Do not send any tftp option requests to the server */ + CURLOPT(CURLOPT_TFTP_NO_OPTIONS, CURLOPTTYPE_LONG, 242), + + /* Linked-list of host:port:connect-to-host:connect-to-port, + overrides the URL's host:port (only for the network layer) */ + CURLOPT(CURLOPT_CONNECT_TO, CURLOPTTYPE_SLISTPOINT, 243), + + /* Set TCP Fast Open */ + CURLOPT(CURLOPT_TCP_FASTOPEN, CURLOPTTYPE_LONG, 244), + + /* Continue to send data if the server responds early with an + * HTTP status code >= 300 */ + CURLOPT(CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPTTYPE_LONG, 245), + + /* The CApath or CAfile used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_CAINFO, CURLOPTTYPE_STRINGPOINT, 246), + + /* The CApath directory used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_CAPATH, CURLOPTTYPE_STRINGPOINT, 247), + + /* Set if we should verify the proxy in ssl handshake, + set 1 to verify. */ + CURLOPT(CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 248), + + /* Set if we should verify the Common name from the proxy certificate in ssl + * handshake, set 1 to check existence, 2 to ensure that it matches + * the provided hostname. */ + CURLOPT(CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 249), + + /* What version to specifically try to use for proxy. + See CURL_SSLVERSION defines below. */ + CURLOPT(CURLOPT_PROXY_SSLVERSION, CURLOPTTYPE_VALUES, 250), + + /* Set a username for authenticated TLS for proxy */ + CURLOPT(CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 251), + + /* Set a password for authenticated TLS for proxy */ + CURLOPT(CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 252), + + /* Set authentication type for authenticated TLS for proxy */ + CURLOPT(CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 253), + + /* name of the file keeping your private SSL-certificate for proxy */ + CURLOPT(CURLOPT_PROXY_SSLCERT, CURLOPTTYPE_STRINGPOINT, 254), + + /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for + proxy */ + CURLOPT(CURLOPT_PROXY_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 255), + + /* name of the file keeping your private SSL-key for proxy */ + CURLOPT(CURLOPT_PROXY_SSLKEY, CURLOPTTYPE_STRINGPOINT, 256), + + /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for + proxy */ + CURLOPT(CURLOPT_PROXY_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 257), + + /* password for the SSL private key for proxy */ + CURLOPT(CURLOPT_PROXY_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 258), + + /* Specify which SSL ciphers to use for proxy */ + CURLOPT(CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 259), + + /* CRL file for proxy */ + CURLOPT(CURLOPT_PROXY_CRLFILE, CURLOPTTYPE_STRINGPOINT, 260), + + /* Enable/disable specific SSL features with a bitmask for proxy, see + CURLSSLOPT_* */ + CURLOPT(CURLOPT_PROXY_SSL_OPTIONS, CURLOPTTYPE_LONG, 261), + + /* Name of pre proxy to use. */ + CURLOPT(CURLOPT_PRE_PROXY, CURLOPTTYPE_STRINGPOINT, 262), + + /* The public key in DER form used to validate the proxy public key + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 263), + + /* Path to an abstract Unix domain socket */ + CURLOPT(CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPTTYPE_STRINGPOINT, 264), + + /* Suppress proxy CONNECT response headers from user callbacks */ + CURLOPT(CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPTTYPE_LONG, 265), + + /* The request target, instead of extracted from the URL */ + CURLOPT(CURLOPT_REQUEST_TARGET, CURLOPTTYPE_STRINGPOINT, 266), + + /* bitmask of allowed auth methods for connections to SOCKS5 proxies */ + CURLOPT(CURLOPT_SOCKS5_AUTH, CURLOPTTYPE_LONG, 267), + + /* Enable/disable SSH compression */ + CURLOPT(CURLOPT_SSH_COMPRESSION, CURLOPTTYPE_LONG, 268), + + /* Post MIME data. */ + CURLOPT(CURLOPT_MIMEPOST, CURLOPTTYPE_OBJECTPOINT, 269), + + /* Time to use with the CURLOPT_TIMECONDITION. Specified in number of + seconds since 1 Jan 1970. */ + CURLOPT(CURLOPT_TIMEVALUE_LARGE, CURLOPTTYPE_OFF_T, 270), + + /* Head start in milliseconds to give happy eyeballs. */ + CURLOPT(CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPTTYPE_LONG, 271), + + /* Function that will be called before a resolver request is made */ + CURLOPT(CURLOPT_RESOLVER_START_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 272), + + /* User data to pass to the resolver start callback. */ + CURLOPT(CURLOPT_RESOLVER_START_DATA, CURLOPTTYPE_CBPOINT, 273), + + /* send HAProxy PROXY protocol header? */ + CURLOPT(CURLOPT_HAPROXYPROTOCOL, CURLOPTTYPE_LONG, 274), + + /* shuffle addresses before use when DNS returns multiple */ + CURLOPT(CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPTTYPE_LONG, 275), + + /* Specify which TLS 1.3 ciphers suites to use */ + CURLOPT(CURLOPT_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 276), + CURLOPT(CURLOPT_PROXY_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 277), + + /* Disallow specifying username/login in URL. */ + CURLOPT(CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPTTYPE_LONG, 278), + + /* DNS-over-HTTPS URL */ + CURLOPT(CURLOPT_DOH_URL, CURLOPTTYPE_STRINGPOINT, 279), + + /* Preferred buffer size to use for uploads */ + CURLOPT(CURLOPT_UPLOAD_BUFFERSIZE, CURLOPTTYPE_LONG, 280), + + /* Time in ms between connection upkeep calls for long-lived connections. */ + CURLOPT(CURLOPT_UPKEEP_INTERVAL_MS, CURLOPTTYPE_LONG, 281), + + /* Specify URL using CURL URL API. */ + CURLOPT(CURLOPT_CURLU, CURLOPTTYPE_OBJECTPOINT, 282), + + /* add trailing data just after no more data is available */ + CURLOPT(CURLOPT_TRAILERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 283), + + /* pointer to be passed to HTTP_TRAILER_FUNCTION */ + CURLOPT(CURLOPT_TRAILERDATA, CURLOPTTYPE_CBPOINT, 284), + + /* set this to 1L to allow HTTP/0.9 responses or 0L to disallow */ + CURLOPT(CURLOPT_HTTP09_ALLOWED, CURLOPTTYPE_LONG, 285), + + /* alt-svc control bitmask */ + CURLOPT(CURLOPT_ALTSVC_CTRL, CURLOPTTYPE_LONG, 286), + + /* alt-svc cache file name to possibly read from/write to */ + CURLOPT(CURLOPT_ALTSVC, CURLOPTTYPE_STRINGPOINT, 287), + + /* maximum age (idle time) of a connection to consider it for reuse + * (in seconds) */ + CURLOPT(CURLOPT_MAXAGE_CONN, CURLOPTTYPE_LONG, 288), + + /* SASL authorization identity */ + CURLOPT(CURLOPT_SASL_AUTHZID, CURLOPTTYPE_STRINGPOINT, 289), + + /* allow RCPT TO command to fail for some recipients */ + CURLOPT(CURLOPT_MAIL_RCPT_ALLLOWFAILS, CURLOPTTYPE_LONG, 290), + + /* the private SSL-certificate as a "blob" */ + CURLOPT(CURLOPT_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 291), + CURLOPT(CURLOPT_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 292), + CURLOPT(CURLOPT_PROXY_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 293), + CURLOPT(CURLOPT_PROXY_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 294), + CURLOPT(CURLOPT_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 295), + + /* Issuer certificate for proxy */ + CURLOPT(CURLOPT_PROXY_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 296), + CURLOPT(CURLOPT_PROXY_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 297), + + /* the EC curves requested by the TLS client (RFC 8422, 5.1); + * OpenSSL support via 'set_groups'/'set_curves': + * https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set1_groups.html + */ + CURLOPT(CURLOPT_SSL_EC_CURVES, CURLOPTTYPE_STRINGPOINT, 298), + + /* HSTS bitmask */ + CURLOPT(CURLOPT_HSTS_CTRL, CURLOPTTYPE_LONG, 299), + /* HSTS file name */ + CURLOPT(CURLOPT_HSTS, CURLOPTTYPE_STRINGPOINT, 300), + + /* HSTS read callback */ + CURLOPT(CURLOPT_HSTSREADFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 301), + CURLOPT(CURLOPT_HSTSREADDATA, CURLOPTTYPE_CBPOINT, 302), + + /* HSTS write callback */ + CURLOPT(CURLOPT_HSTSWRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 303), + CURLOPT(CURLOPT_HSTSWRITEDATA, CURLOPTTYPE_CBPOINT, 304), + + /* Parameters for V4 signature */ + CURLOPT(CURLOPT_AWS_SIGV4, CURLOPTTYPE_STRINGPOINT, 305), + + /* Same as CURLOPT_SSL_VERIFYPEER but for DoH (DNS-over-HTTPS) servers. */ + CURLOPT(CURLOPT_DOH_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 306), + + /* Same as CURLOPT_SSL_VERIFYHOST but for DoH (DNS-over-HTTPS) servers. */ + CURLOPT(CURLOPT_DOH_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 307), + + /* Same as CURLOPT_SSL_VERIFYSTATUS but for DoH (DNS-over-HTTPS) servers. */ + CURLOPT(CURLOPT_DOH_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 308), + + /* The CA certificates as "blob" used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_CAINFO_BLOB, CURLOPTTYPE_BLOB, 309), + + /* The CA certificates as "blob" used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_CAINFO_BLOB, CURLOPTTYPE_BLOB, 310), + + /* used by scp/sftp to verify the host's public key */ + CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256, CURLOPTTYPE_STRINGPOINT, 311), + + /* Function that will be called immediately before the initial request + is made on a connection (after any protocol negotiation step). */ + CURLOPT(CURLOPT_PREREQFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 312), + + /* Data passed to the CURLOPT_PREREQFUNCTION callback */ + CURLOPT(CURLOPT_PREREQDATA, CURLOPTTYPE_CBPOINT, 313), + + /* maximum age (since creation) of a connection to consider it for reuse + * (in seconds) */ + CURLOPT(CURLOPT_MAXLIFETIME_CONN, CURLOPTTYPE_LONG, 314), + + /* Set MIME option flags. */ + CURLOPT(CURLOPT_MIME_OPTIONS, CURLOPTTYPE_LONG, 315), + + /* set the SSH host key callback, must point to a curl_sshkeycallback + function */ + CURLOPT(CURLOPT_SSH_HOSTKEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 316), + + /* set the SSH host key callback custom pointer */ + CURLOPT(CURLOPT_SSH_HOSTKEYDATA, CURLOPTTYPE_CBPOINT, 317), + + CURLOPT_LASTENTRY /* the last unused */ +} CURLoption; + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Backwards compatibility with older names */ +/* These are scheduled to disappear by 2011 */ + +/* This was added in version 7.19.1 */ +#define CURLOPT_POST301 CURLOPT_POSTREDIR + +/* These are scheduled to disappear by 2009 */ + +/* The following were added in 7.17.0 */ +#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD +#define CURLOPT_FTPAPPEND CURLOPT_APPEND +#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY +#define CURLOPT_FTP_SSL CURLOPT_USE_SSL + +/* The following were added earlier */ + +#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD +#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL + +#else +/* This is set if CURL_NO_OLDIES is defined at compile-time */ +#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ +#endif + + + /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host + name resolves addresses using more than one IP protocol version, this + option might be handy to force libcurl to use a specific IP version. */ +#define CURL_IPRESOLVE_WHATEVER 0 /* default, uses addresses to all IP + versions that your system allows */ +#define CURL_IPRESOLVE_V4 1 /* uses only IPv4 addresses/connections */ +#define CURL_IPRESOLVE_V6 2 /* uses only IPv6 addresses/connections */ + + /* three convenient "aliases" that follow the name scheme better */ +#define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER + + /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ +enum { + CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd + like the library to choose the best possible + for us! */ + CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ + CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ + CURL_HTTP_VERSION_2_0, /* please use HTTP 2 in the request */ + CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */ + CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, /* please use HTTP 2 without HTTP/1.1 + Upgrade */ + CURL_HTTP_VERSION_3 = 30, /* Makes use of explicit HTTP/3 without fallback. + Use CURLOPT_ALTSVC to enable HTTP/3 upgrade */ + CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ +}; + +/* Convenience definition simple because the name of the version is HTTP/2 and + not 2.0. The 2_0 version of the enum name was set while the version was + still planned to be 2.0 and we stick to it for compatibility. */ +#define CURL_HTTP_VERSION_2 CURL_HTTP_VERSION_2_0 + +/* + * Public API enums for RTSP requests + */ +enum { + CURL_RTSPREQ_NONE, /* first in list */ + CURL_RTSPREQ_OPTIONS, + CURL_RTSPREQ_DESCRIBE, + CURL_RTSPREQ_ANNOUNCE, + CURL_RTSPREQ_SETUP, + CURL_RTSPREQ_PLAY, + CURL_RTSPREQ_PAUSE, + CURL_RTSPREQ_TEARDOWN, + CURL_RTSPREQ_GET_PARAMETER, + CURL_RTSPREQ_SET_PARAMETER, + CURL_RTSPREQ_RECORD, + CURL_RTSPREQ_RECEIVE, + CURL_RTSPREQ_LAST /* last in list */ +}; + + /* These enums are for use with the CURLOPT_NETRC option. */ +enum CURL_NETRC_OPTION { + CURL_NETRC_IGNORED, /* The .netrc will never be read. + * This is the default. */ + CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred + * to one in the .netrc. */ + CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. + * Unless one is set programmatically, the .netrc + * will be queried. */ + CURL_NETRC_LAST +}; + +enum { + CURL_SSLVERSION_DEFAULT, + CURL_SSLVERSION_TLSv1, /* TLS 1.x */ + CURL_SSLVERSION_SSLv2, + CURL_SSLVERSION_SSLv3, + CURL_SSLVERSION_TLSv1_0, + CURL_SSLVERSION_TLSv1_1, + CURL_SSLVERSION_TLSv1_2, + CURL_SSLVERSION_TLSv1_3, + + CURL_SSLVERSION_LAST /* never use, keep last */ +}; + +enum { + CURL_SSLVERSION_MAX_NONE = 0, + CURL_SSLVERSION_MAX_DEFAULT = (CURL_SSLVERSION_TLSv1 << 16), + CURL_SSLVERSION_MAX_TLSv1_0 = (CURL_SSLVERSION_TLSv1_0 << 16), + CURL_SSLVERSION_MAX_TLSv1_1 = (CURL_SSLVERSION_TLSv1_1 << 16), + CURL_SSLVERSION_MAX_TLSv1_2 = (CURL_SSLVERSION_TLSv1_2 << 16), + CURL_SSLVERSION_MAX_TLSv1_3 = (CURL_SSLVERSION_TLSv1_3 << 16), + + /* never use, keep last */ + CURL_SSLVERSION_MAX_LAST = (CURL_SSLVERSION_LAST << 16) +}; + +enum CURL_TLSAUTH { + CURL_TLSAUTH_NONE, + CURL_TLSAUTH_SRP, + CURL_TLSAUTH_LAST /* never use, keep last */ +}; + +/* symbols to use with CURLOPT_POSTREDIR. + CURL_REDIR_POST_301, CURL_REDIR_POST_302 and CURL_REDIR_POST_303 + can be bitwise ORed so that CURL_REDIR_POST_301 | CURL_REDIR_POST_302 + | CURL_REDIR_POST_303 == CURL_REDIR_POST_ALL */ + +#define CURL_REDIR_GET_ALL 0 +#define CURL_REDIR_POST_301 1 +#define CURL_REDIR_POST_302 2 +#define CURL_REDIR_POST_303 4 +#define CURL_REDIR_POST_ALL \ + (CURL_REDIR_POST_301|CURL_REDIR_POST_302|CURL_REDIR_POST_303) + +typedef enum { + CURL_TIMECOND_NONE, + + CURL_TIMECOND_IFMODSINCE, + CURL_TIMECOND_IFUNMODSINCE, + CURL_TIMECOND_LASTMOD, + + CURL_TIMECOND_LAST +} curl_TimeCond; + +/* Special size_t value signaling a null-terminated string. */ +#define CURL_ZERO_TERMINATED ((size_t) -1) + +/* curl_strequal() and curl_strnequal() are subject for removal in a future + release */ +CURL_EXTERN int curl_strequal(const char *s1, const char *s2); +CURL_EXTERN int curl_strnequal(const char *s1, const char *s2, size_t n); + +/* Mime/form handling support. */ +typedef struct curl_mime curl_mime; /* Mime context. */ +typedef struct curl_mimepart curl_mimepart; /* Mime part context. */ + +/* CURLMIMEOPT_ defines are for the CURLOPT_MIME_OPTIONS option. */ +#define CURLMIMEOPT_FORMESCAPE (1<<0) /* Use backslash-escaping for forms. */ + +/* + * NAME curl_mime_init() + * + * DESCRIPTION + * + * Create a mime context and return its handle. The easy parameter is the + * target handle. + */ +CURL_EXTERN curl_mime *curl_mime_init(CURL *easy); + +/* + * NAME curl_mime_free() + * + * DESCRIPTION + * + * release a mime handle and its substructures. + */ +CURL_EXTERN void curl_mime_free(curl_mime *mime); + +/* + * NAME curl_mime_addpart() + * + * DESCRIPTION + * + * Append a new empty part to the given mime context and return a handle to + * the created part. + */ +CURL_EXTERN curl_mimepart *curl_mime_addpart(curl_mime *mime); + +/* + * NAME curl_mime_name() + * + * DESCRIPTION + * + * Set mime/form part name. + */ +CURL_EXTERN CURLcode curl_mime_name(curl_mimepart *part, const char *name); + +/* + * NAME curl_mime_filename() + * + * DESCRIPTION + * + * Set mime part remote file name. + */ +CURL_EXTERN CURLcode curl_mime_filename(curl_mimepart *part, + const char *filename); + +/* + * NAME curl_mime_type() + * + * DESCRIPTION + * + * Set mime part type. + */ +CURL_EXTERN CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype); + +/* + * NAME curl_mime_encoder() + * + * DESCRIPTION + * + * Set mime data transfer encoder. + */ +CURL_EXTERN CURLcode curl_mime_encoder(curl_mimepart *part, + const char *encoding); + +/* + * NAME curl_mime_data() + * + * DESCRIPTION + * + * Set mime part data source from memory data, + */ +CURL_EXTERN CURLcode curl_mime_data(curl_mimepart *part, + const char *data, size_t datasize); + +/* + * NAME curl_mime_filedata() + * + * DESCRIPTION + * + * Set mime part data source from named file. + */ +CURL_EXTERN CURLcode curl_mime_filedata(curl_mimepart *part, + const char *filename); + +/* + * NAME curl_mime_data_cb() + * + * DESCRIPTION + * + * Set mime part data source from callback function. + */ +CURL_EXTERN CURLcode curl_mime_data_cb(curl_mimepart *part, + curl_off_t datasize, + curl_read_callback readfunc, + curl_seek_callback seekfunc, + curl_free_callback freefunc, + void *arg); + +/* + * NAME curl_mime_subparts() + * + * DESCRIPTION + * + * Set mime part data source from subparts. + */ +CURL_EXTERN CURLcode curl_mime_subparts(curl_mimepart *part, + curl_mime *subparts); +/* + * NAME curl_mime_headers() + * + * DESCRIPTION + * + * Set mime part headers. + */ +CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, + struct curl_slist *headers, + int take_ownership); + +typedef enum { + CURLFORM_NOTHING, /********* the first one is unused ************/ + CURLFORM_COPYNAME, + CURLFORM_PTRNAME, + CURLFORM_NAMELENGTH, + CURLFORM_COPYCONTENTS, + CURLFORM_PTRCONTENTS, + CURLFORM_CONTENTSLENGTH, + CURLFORM_FILECONTENT, + CURLFORM_ARRAY, + CURLFORM_OBSOLETE, + CURLFORM_FILE, + + CURLFORM_BUFFER, + CURLFORM_BUFFERPTR, + CURLFORM_BUFFERLENGTH, + + CURLFORM_CONTENTTYPE, + CURLFORM_CONTENTHEADER, + CURLFORM_FILENAME, + CURLFORM_END, + CURLFORM_OBSOLETE2, + + CURLFORM_STREAM, + CURLFORM_CONTENTLEN, /* added in 7.46.0, provide a curl_off_t length */ + + CURLFORM_LASTENTRY /* the last unused */ +} CURLformoption; + +/* structure to be used as parameter for CURLFORM_ARRAY */ +struct curl_forms { + CURLformoption option; + const char *value; +}; + +/* use this for multipart formpost building */ +/* Returns code for curl_formadd() + * + * Returns: + * CURL_FORMADD_OK on success + * CURL_FORMADD_MEMORY if the FormInfo allocation fails + * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form + * CURL_FORMADD_NULL if a null pointer was given for a char + * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed + * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used + * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) + * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated + * CURL_FORMADD_MEMORY if some allocation for string copying failed. + * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array + * + ***************************************************************************/ +typedef enum { + CURL_FORMADD_OK, /* first, no error */ + + CURL_FORMADD_MEMORY, + CURL_FORMADD_OPTION_TWICE, + CURL_FORMADD_NULL, + CURL_FORMADD_UNKNOWN_OPTION, + CURL_FORMADD_INCOMPLETE, + CURL_FORMADD_ILLEGAL_ARRAY, + CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ + + CURL_FORMADD_LAST /* last */ +} CURLFORMcode; + +/* + * NAME curl_formadd() + * + * DESCRIPTION + * + * Pretty advanced function for building multi-part formposts. Each invoke + * adds one part that together construct a full post. Then use + * CURLOPT_HTTPPOST to send it off to libcurl. + */ +CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, + struct curl_httppost **last_post, + ...); + +/* + * callback function for curl_formget() + * The void *arg pointer will be the one passed as second argument to + * curl_formget(). + * The character buffer passed to it must not be freed. + * Should return the buffer length passed to it as the argument "len" on + * success. + */ +typedef size_t (*curl_formget_callback)(void *arg, const char *buf, + size_t len); + +/* + * NAME curl_formget() + * + * DESCRIPTION + * + * Serialize a curl_httppost struct built with curl_formadd(). + * Accepts a void pointer as second argument which will be passed to + * the curl_formget_callback function. + * Returns 0 on success. + */ +CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, + curl_formget_callback append); +/* + * NAME curl_formfree() + * + * DESCRIPTION + * + * Free a multipart formpost previously built with curl_formadd(). + */ +CURL_EXTERN void curl_formfree(struct curl_httppost *form); + +/* + * NAME curl_getenv() + * + * DESCRIPTION + * + * Returns a malloc()'ed string that MUST be curl_free()ed after usage is + * complete. DEPRECATED - see lib/README.curlx + */ +CURL_EXTERN char *curl_getenv(const char *variable); + +/* + * NAME curl_version() + * + * DESCRIPTION + * + * Returns a static ascii string of the libcurl version. + */ +CURL_EXTERN char *curl_version(void); + +/* + * NAME curl_easy_escape() + * + * DESCRIPTION + * + * Escapes URL strings (converts all letters consider illegal in URLs to their + * %XX versions). This function returns a new allocated string or NULL if an + * error occurred. + */ +CURL_EXTERN char *curl_easy_escape(CURL *handle, + const char *string, + int length); + +/* the previous version: */ +CURL_EXTERN char *curl_escape(const char *string, + int length); + + +/* + * NAME curl_easy_unescape() + * + * DESCRIPTION + * + * Unescapes URL encoding in strings (converts all %XX codes to their 8bit + * versions). This function returns a new allocated string or NULL if an error + * occurred. + * Conversion Note: On non-ASCII platforms the ASCII %XX codes are + * converted into the host encoding. + */ +CURL_EXTERN char *curl_easy_unescape(CURL *handle, + const char *string, + int length, + int *outlength); + +/* the previous version */ +CURL_EXTERN char *curl_unescape(const char *string, + int length); + +/* + * NAME curl_free() + * + * DESCRIPTION + * + * Provided for de-allocation in the same translation unit that did the + * allocation. Added in libcurl 7.10 + */ +CURL_EXTERN void curl_free(void *p); + +/* + * NAME curl_global_init() + * + * DESCRIPTION + * + * curl_global_init() should be invoked exactly once for each application that + * uses libcurl and before any call of other libcurl functions. + + * This function is thread-safe if CURL_VERSION_THREADSAFE is set in the + * curl_version_info_data.features flag (fetch by curl_version_info()). + + */ +CURL_EXTERN CURLcode curl_global_init(long flags); + +/* + * NAME curl_global_init_mem() + * + * DESCRIPTION + * + * curl_global_init() or curl_global_init_mem() should be invoked exactly once + * for each application that uses libcurl. This function can be used to + * initialize libcurl and set user defined memory management callback + * functions. Users can implement memory management routines to check for + * memory leaks, check for mis-use of the curl library etc. User registered + * callback routines will be invoked by this library instead of the system + * memory management routines like malloc, free etc. + */ +CURL_EXTERN CURLcode curl_global_init_mem(long flags, + curl_malloc_callback m, + curl_free_callback f, + curl_realloc_callback r, + curl_strdup_callback s, + curl_calloc_callback c); + +/* + * NAME curl_global_cleanup() + * + * DESCRIPTION + * + * curl_global_cleanup() should be invoked exactly once for each application + * that uses libcurl + */ +CURL_EXTERN void curl_global_cleanup(void); + +/* linked-list structure for the CURLOPT_QUOTE option (and other) */ +struct curl_slist { + char *data; + struct curl_slist *next; +}; + +/* + * NAME curl_global_sslset() + * + * DESCRIPTION + * + * When built with multiple SSL backends, curl_global_sslset() allows to + * choose one. This function can only be called once, and it must be called + * *before* curl_global_init(). + * + * The backend can be identified by the id (e.g. CURLSSLBACKEND_OPENSSL). The + * backend can also be specified via the name parameter (passing -1 as id). + * If both id and name are specified, the name will be ignored. If neither id + * nor name are specified, the function will fail with + * CURLSSLSET_UNKNOWN_BACKEND and set the "avail" pointer to the + * NULL-terminated list of available backends. + * + * Upon success, the function returns CURLSSLSET_OK. + * + * If the specified SSL backend is not available, the function returns + * CURLSSLSET_UNKNOWN_BACKEND and sets the "avail" pointer to a NULL-terminated + * list of available SSL backends. + * + * The SSL backend can be set only once. If it has already been set, a + * subsequent attempt to change it will result in a CURLSSLSET_TOO_LATE. + */ + +struct curl_ssl_backend { + curl_sslbackend id; + const char *name; +}; +typedef struct curl_ssl_backend curl_ssl_backend; + +typedef enum { + CURLSSLSET_OK = 0, + CURLSSLSET_UNKNOWN_BACKEND, + CURLSSLSET_TOO_LATE, + CURLSSLSET_NO_BACKENDS /* libcurl was built without any SSL support */ +} CURLsslset; + +CURL_EXTERN CURLsslset curl_global_sslset(curl_sslbackend id, const char *name, + const curl_ssl_backend ***avail); + +/* + * NAME curl_slist_append() + * + * DESCRIPTION + * + * Appends a string to a linked list. If no list exists, it will be created + * first. Returns the new list, after appending. + */ +CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *, + const char *); + +/* + * NAME curl_slist_free_all() + * + * DESCRIPTION + * + * free a previously built curl_slist. + */ +CURL_EXTERN void curl_slist_free_all(struct curl_slist *); + +/* + * NAME curl_getdate() + * + * DESCRIPTION + * + * Returns the time, in seconds since 1 Jan 1970 of the time string given in + * the first argument. The time argument in the second parameter is unused + * and should be set to NULL. + */ +CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); + +/* info about the certificate chain, only for OpenSSL, GnuTLS, Schannel, NSS + and GSKit builds. Asked for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */ +struct curl_certinfo { + int num_of_certs; /* number of certificates with information */ + struct curl_slist **certinfo; /* for each index in this array, there's a + linked list with textual information in the + format "name: value" */ +}; + +/* Information about the SSL library used and the respective internal SSL + handle, which can be used to obtain further information regarding the + connection. Asked for with CURLINFO_TLS_SSL_PTR or CURLINFO_TLS_SESSION. */ +struct curl_tlssessioninfo { + curl_sslbackend backend; + void *internals; +}; + +#define CURLINFO_STRING 0x100000 +#define CURLINFO_LONG 0x200000 +#define CURLINFO_DOUBLE 0x300000 +#define CURLINFO_SLIST 0x400000 +#define CURLINFO_PTR 0x400000 /* same as SLIST */ +#define CURLINFO_SOCKET 0x500000 +#define CURLINFO_OFF_T 0x600000 +#define CURLINFO_MASK 0x0fffff +#define CURLINFO_TYPEMASK 0xf00000 + +typedef enum { + CURLINFO_NONE, /* first, never use this */ + CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, + CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, + CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, + CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, + CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, + CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, + CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, + CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7, + CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, + CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8, + CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, + CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9, + CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, + CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10, + CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, + CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, + CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, + CURLINFO_FILETIME = CURLINFO_LONG + 14, + CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14, + CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, + CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15, + CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, + CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16, + CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, + CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, + CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, + CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, + CURLINFO_PRIVATE = CURLINFO_STRING + 21, + CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, + CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, + CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, + CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, + CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, + CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, + CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, + CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, + CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, + CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, + CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, + CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, + CURLINFO_CERTINFO = CURLINFO_PTR + 34, + CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, + CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36, + CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37, + CURLINFO_RTSP_SERVER_CSEQ = CURLINFO_LONG + 38, + CURLINFO_RTSP_CSEQ_RECV = CURLINFO_LONG + 39, + CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, + CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, + CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, + CURLINFO_TLS_SESSION = CURLINFO_PTR + 43, + CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44, + CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45, + CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46, + CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47, + CURLINFO_PROTOCOL = CURLINFO_LONG + 48, + CURLINFO_SCHEME = CURLINFO_STRING + 49, + CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50, + CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51, + CURLINFO_CONNECT_TIME_T = CURLINFO_OFF_T + 52, + CURLINFO_PRETRANSFER_TIME_T = CURLINFO_OFF_T + 53, + CURLINFO_STARTTRANSFER_TIME_T = CURLINFO_OFF_T + 54, + CURLINFO_REDIRECT_TIME_T = CURLINFO_OFF_T + 55, + CURLINFO_APPCONNECT_TIME_T = CURLINFO_OFF_T + 56, + CURLINFO_RETRY_AFTER = CURLINFO_OFF_T + 57, + CURLINFO_EFFECTIVE_METHOD = CURLINFO_STRING + 58, + CURLINFO_PROXY_ERROR = CURLINFO_LONG + 59, + CURLINFO_REFERER = CURLINFO_STRING + 60, + CURLINFO_CAINFO = CURLINFO_STRING + 61, + CURLINFO_CAPATH = CURLINFO_STRING + 62, + CURLINFO_LASTONE = 62 +} CURLINFO; + +/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as + CURLINFO_HTTP_CODE */ +#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE + +typedef enum { + CURLCLOSEPOLICY_NONE, /* first, never use this */ + + CURLCLOSEPOLICY_OLDEST, + CURLCLOSEPOLICY_LEAST_RECENTLY_USED, + CURLCLOSEPOLICY_LEAST_TRAFFIC, + CURLCLOSEPOLICY_SLOWEST, + CURLCLOSEPOLICY_CALLBACK, + + CURLCLOSEPOLICY_LAST /* last, never use this */ +} curl_closepolicy; + +#define CURL_GLOBAL_SSL (1<<0) /* no purpose since 7.57.0 */ +#define CURL_GLOBAL_WIN32 (1<<1) +#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) +#define CURL_GLOBAL_NOTHING 0 +#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL +#define CURL_GLOBAL_ACK_EINTR (1<<2) + + +/***************************************************************************** + * Setup defines, protos etc for the sharing stuff. + */ + +/* Different data locks for a single share */ +typedef enum { + CURL_LOCK_DATA_NONE = 0, + /* CURL_LOCK_DATA_SHARE is used internally to say that + * the locking is just made to change the internal state of the share + * itself. + */ + CURL_LOCK_DATA_SHARE, + CURL_LOCK_DATA_COOKIE, + CURL_LOCK_DATA_DNS, + CURL_LOCK_DATA_SSL_SESSION, + CURL_LOCK_DATA_CONNECT, + CURL_LOCK_DATA_PSL, + CURL_LOCK_DATA_LAST +} curl_lock_data; + +/* Different lock access types */ +typedef enum { + CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ + CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ + CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ + CURL_LOCK_ACCESS_LAST /* never use */ +} curl_lock_access; + +typedef void (*curl_lock_function)(CURL *handle, + curl_lock_data data, + curl_lock_access locktype, + void *userptr); +typedef void (*curl_unlock_function)(CURL *handle, + curl_lock_data data, + void *userptr); + + +typedef enum { + CURLSHE_OK, /* all is fine */ + CURLSHE_BAD_OPTION, /* 1 */ + CURLSHE_IN_USE, /* 2 */ + CURLSHE_INVALID, /* 3 */ + CURLSHE_NOMEM, /* 4 out of memory */ + CURLSHE_NOT_BUILT_IN, /* 5 feature not present in lib */ + CURLSHE_LAST /* never use */ +} CURLSHcode; + +typedef enum { + CURLSHOPT_NONE, /* don't use */ + CURLSHOPT_SHARE, /* specify a data type to share */ + CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */ + CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ + CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ + CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock + callback functions */ + CURLSHOPT_LAST /* never use */ +} CURLSHoption; + +CURL_EXTERN CURLSH *curl_share_init(void); +CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...); +CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *); + +/**************************************************************************** + * Structures for querying information about the curl library at runtime. + */ + +typedef enum { + CURLVERSION_FIRST, + CURLVERSION_SECOND, + CURLVERSION_THIRD, + CURLVERSION_FOURTH, + CURLVERSION_FIFTH, + CURLVERSION_SIXTH, + CURLVERSION_SEVENTH, + CURLVERSION_EIGHTH, + CURLVERSION_NINTH, + CURLVERSION_TENTH, + CURLVERSION_LAST /* never actually use this */ +} CURLversion; + +/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by + basically all programs ever that want to get version information. It is + meant to be a built-in version number for what kind of struct the caller + expects. If the struct ever changes, we redefine the NOW to another enum + from above. */ +#define CURLVERSION_NOW CURLVERSION_TENTH + +struct curl_version_info_data { + CURLversion age; /* age of the returned struct */ + const char *version; /* LIBCURL_VERSION */ + unsigned int version_num; /* LIBCURL_VERSION_NUM */ + const char *host; /* OS/host/cpu/machine when configured */ + int features; /* bitmask, see defines below */ + const char *ssl_version; /* human readable string */ + long ssl_version_num; /* not used anymore, always 0 */ + const char *libz_version; /* human readable string */ + /* protocols is terminated by an entry with a NULL protoname */ + const char * const *protocols; + + /* The fields below this were added in CURLVERSION_SECOND */ + const char *ares; + int ares_num; + + /* This field was added in CURLVERSION_THIRD */ + const char *libidn; + + /* These field were added in CURLVERSION_FOURTH */ + + /* Same as '_libiconv_version' if built with HAVE_ICONV */ + int iconv_ver_num; + + const char *libssh_version; /* human readable string */ + + /* These fields were added in CURLVERSION_FIFTH */ + unsigned int brotli_ver_num; /* Numeric Brotli version + (MAJOR << 24) | (MINOR << 12) | PATCH */ + const char *brotli_version; /* human readable string. */ + + /* These fields were added in CURLVERSION_SIXTH */ + unsigned int nghttp2_ver_num; /* Numeric nghttp2 version + (MAJOR << 16) | (MINOR << 8) | PATCH */ + const char *nghttp2_version; /* human readable string. */ + const char *quic_version; /* human readable quic (+ HTTP/3) library + + version or NULL */ + + /* These fields were added in CURLVERSION_SEVENTH */ + const char *cainfo; /* the built-in default CURLOPT_CAINFO, might + be NULL */ + const char *capath; /* the built-in default CURLOPT_CAPATH, might + be NULL */ + + /* These fields were added in CURLVERSION_EIGHTH */ + unsigned int zstd_ver_num; /* Numeric Zstd version + (MAJOR << 24) | (MINOR << 12) | PATCH */ + const char *zstd_version; /* human readable string. */ + + /* These fields were added in CURLVERSION_NINTH */ + const char *hyper_version; /* human readable string. */ + + /* These fields were added in CURLVERSION_TENTH */ + const char *gsasl_version; /* human readable string. */ +}; +typedef struct curl_version_info_data curl_version_info_data; + +#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ +#define CURL_VERSION_KERBEROS4 (1<<1) /* Kerberos V4 auth is supported + (deprecated) */ +#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ +#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ +#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ +#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth is supported + (deprecated) */ +#define CURL_VERSION_DEBUG (1<<6) /* Built with debug capabilities */ +#define CURL_VERSION_ASYNCHDNS (1<<7) /* Asynchronous DNS resolves */ +#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth is supported */ +#define CURL_VERSION_LARGEFILE (1<<9) /* Supports files larger than 2GB */ +#define CURL_VERSION_IDN (1<<10) /* Internationized Domain Names are + supported */ +#define CURL_VERSION_SSPI (1<<11) /* Built against Windows SSPI */ +#define CURL_VERSION_CONV (1<<12) /* Character conversions supported */ +#define CURL_VERSION_CURLDEBUG (1<<13) /* Debug memory tracking supported */ +#define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */ +#define CURL_VERSION_NTLM_WB (1<<15) /* NTLM delegation to winbind helper + is supported */ +#define CURL_VERSION_HTTP2 (1<<16) /* HTTP2 support built-in */ +#define CURL_VERSION_GSSAPI (1<<17) /* Built against a GSS-API library */ +#define CURL_VERSION_KERBEROS5 (1<<18) /* Kerberos V5 auth is supported */ +#define CURL_VERSION_UNIX_SOCKETS (1<<19) /* Unix domain sockets support */ +#define CURL_VERSION_PSL (1<<20) /* Mozilla's Public Suffix List, used + for cookie domain verification */ +#define CURL_VERSION_HTTPS_PROXY (1<<21) /* HTTPS-proxy support built-in */ +#define CURL_VERSION_MULTI_SSL (1<<22) /* Multiple SSL backends available */ +#define CURL_VERSION_BROTLI (1<<23) /* Brotli features are present. */ +#define CURL_VERSION_ALTSVC (1<<24) /* Alt-Svc handling built-in */ +#define CURL_VERSION_HTTP3 (1<<25) /* HTTP3 support built-in */ +#define CURL_VERSION_ZSTD (1<<26) /* zstd features are present */ +#define CURL_VERSION_UNICODE (1<<27) /* Unicode support on Windows */ +#define CURL_VERSION_HSTS (1<<28) /* HSTS is supported */ +#define CURL_VERSION_GSASL (1<<29) /* libgsasl is supported */ +#define CURL_VERSION_THREADSAFE (1<<30) /* libcurl API is thread-safe */ + + /* + * NAME curl_version_info() + * + * DESCRIPTION + * + * This function returns a pointer to a static copy of the version info + * struct. See above. + */ +CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); + +/* + * NAME curl_easy_strerror() + * + * DESCRIPTION + * + * The curl_easy_strerror function may be used to turn a CURLcode value + * into the equivalent human readable error string. This is useful + * for printing meaningful error messages. + */ +CURL_EXTERN const char *curl_easy_strerror(CURLcode); + +/* + * NAME curl_share_strerror() + * + * DESCRIPTION + * + * The curl_share_strerror function may be used to turn a CURLSHcode value + * into the equivalent human readable error string. This is useful + * for printing meaningful error messages. + */ +CURL_EXTERN const char *curl_share_strerror(CURLSHcode); + +/* + * NAME curl_easy_pause() + * + * DESCRIPTION + * + * The curl_easy_pause function pauses or unpauses transfers. Select the new + * state by setting the bitmask, use the convenience defines below. + * + */ +CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); + +#define CURLPAUSE_RECV (1<<0) +#define CURLPAUSE_RECV_CONT (0) + +#define CURLPAUSE_SEND (1<<2) +#define CURLPAUSE_SEND_CONT (0) + +#define CURLPAUSE_ALL (CURLPAUSE_RECV|CURLPAUSE_SEND) +#define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT) + +#ifdef __cplusplus +} +#endif + +/* unfortunately, the easy.h and multi.h include files need options and info + stuff before they can be included! */ +#include "easy.h" /* nothing in curl is fun without the easy stuff */ +#include "multi.h" +#include "urlapi.h" +#include "options.h" +#include "header.h" + +/* the typechecker doesn't work in C++ (yet) */ +#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ + ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ + !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK) +#include "typecheck-gcc.h" +#else +#if defined(__STDC__) && (__STDC__ >= 1) +/* This preprocessor magic that replaces a call with the exact same call is + only done to make sure application authors pass exactly three arguments + to these functions. */ +#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) +#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg) +#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) +#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) +#endif /* __STDC__ >= 1 */ +#endif /* gcc >= 4.3 && !__cplusplus */ + +#endif /* CURLINC_CURL_H */ diff --git a/SignOff_itk/SignOff_itk/epm_register_handler.cpp b/SignOff_itk/SignOff_itk/epm_register_handler.cpp new file mode 100644 index 0000000..1ba74b9 --- /dev/null +++ b/SignOff_itk/SignOff_itk/epm_register_handler.cpp @@ -0,0 +1,370 @@ +/*=================================================================================================== + Copyright(c) 2011 Siemens PLM Software Corp. All rights reserved. + Unpublished - All rights reserved +==================================================================================================== +File description: + + Filename : epm_register_handler.c + + This file registers functions which are called when Teamcenter is being initialized + +==================================================================================================== +Date Name Description of Change +2011-8-21 Ray creation + +$HISTORY$ +==================================================================================================*/ + +#pragma warning (disable: 4819) + +/** +* @headerfile tcua 头文件 +*/ +#include +#include +#include +#include + +/** +* @headerfile standard c & cpp header files +*/ +#include +#include +#include +#include +#include +#include +#include + +/** +* @headerfile user's header files +*/ +#include "epm_register_handler.h" +#include "connor_util.h" +#include "Supor_register.h" +#define LIMITDAY 2016 + +int checkvalue(char* str) +{ + + int i; + for (i=0;i + +#ifdef __cplusplus +extern "C" { +#endif + extern "C" int POM_AM__set_application_bypass(logical bypass); +extern DLLAPI int USERSERVICE_custom_register_handlers(int *, va_list); +extern DLLAPI int USERSERVICE_custom_register_methods(int *decision, va_list args); + + +#ifdef __cplusplus +} +#endif + +#endif + + +/** +* @} +*/ \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/error_handling.h b/SignOff_itk/SignOff_itk/error_handling.h new file mode 100644 index 0000000..06d2c64 --- /dev/null +++ b/SignOff_itk/SignOff_itk/error_handling.h @@ -0,0 +1,160 @@ +/*! +* @addtogroup common +* \file error_handling.h +* \brief 错误处理函数 +* \date 2008/6/10 +* \author Ray Li +*/ + +#ifndef SIMPLE_ERR_H_INCLUDED +#define SIMPLE_ERR_H_INCLUDED + + + +#include +#include + +#include + +#include +#include + +#define BUFSIZE 512 + + +// +#define HANDLER_ARGUMENT_ERROR EMH_USER_error_base + 1 +//#define WORKFLOW_NODE_IS_NOT_VALID EMH_USER_error_base + 2 + +#define ERROR_STATUS_ERROR EMH_USER_error_base + 2 +//#define HANDLER_PLACED_INVALID EMH_USER_error_base + 3 +// +////user errors define +////在站点文件中缺少 %1$ 配置,或该配置中无数据项 +//#define ERROR_PREFERENCE_NOT_FOUND (EMH_USER_error_base + 100) + + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + + + +//#define ECHO(X) printf X; +#define SYS_LOG(X) IMAN_write_syslog X; +#define LOG_ECHO(X) printf X; IMAN_write_syslog X; + + + +/*! +* \def CALL(x) +* 打印错误信息 +*/ +#define CALL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + LOG_ECHO( ("ERROR: %d ERROR MSG: %s.\n",stat, err_string) ) \ + LOG_ECHO( ("Function: %s FILE: %s LINE: %d\n", #x, __FILE__, __LINE__ ) ) \ + MEM_free (err_string); \ + return (stat); \ + } \ +} + +/*! +* \def DO(x) +* 打印错误信息 +*/ +#define DO(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != POM_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + } \ +} + +/*! +* \def CALLRNULL(x) +* 打印错误信息 +*/ +#define CALLRNULL(x) { \ + int stat; \ + char *err_string; \ + if( (stat = (x)) != ITK_ok) \ + { \ + EMH_ask_error_text (stat, &err_string); \ + printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + MEM_free (err_string); \ + return ((char *)NULL); \ + } \ +} + +/*! +* \def CALL2(x) +* 打印错误信息 +*/ +#define CALL2(x) { \ + int stat, n_ifails, *serverities, *ifails, err_count; \ + char *err_string, **texts; \ + if( (stat = (x)) != ITK_ok) \ + { \ + printf ("Function: %s FILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ + EMH_ask_errors( &n_ifails, (const int**)(&serverities), (const int**)(&ifails), (const char***)(&texts) );\ + for( err_count=0; err_count +#include +extern "C" int POM_AM__set_application_bypass(logical bypass); +using namespace std; + +#define ITK_err 919012 +extern "C" int POM_AM__set_application_bypass(logical bypass); +using namespace std; +// +//AE_copy_dataset( +// tag_t dataset, /**< (I) */ +// const char name_of_new_dataset[WSO_name_size_c + 1], /**< (I) */ +// tag_t* new_dataset /**< (O) */ +// ); + + +/* +primaryTag汾 +secondTagݼ +relationTypeϵ +*/ + +void save_representation(tag_t primaryTag, tag_t secondTag, char *relationType) +{ + //жǷѾ + int count = 0; + tag_t *tags = NULL; + AOM_ask_value_tags(primaryTag, relationType, &count, &tags); + logical has = false; + char *secondUId = NULL; + POM_tag_to_uid(secondTag, &secondUId); + + for (int i = 0; i < count; i++) + { + char *uid = NULL; + POM_tag_to_uid(tags[i], &uid); + if (strcmp(secondUId, uid) == 0) { + has = true; + DOFREE(uid); + break; + } + DOFREE(uid); + } + + DOFREE(tags); + DOFREE(secondUId); + + if (has == false) { + + POM_AM__set_application_bypass(true); + tag_t typeTag = NULLTAG; + ITKCALL(GRM_find_relation_type(relationType, &typeTag)); + + ITKCALL(AOM_refresh(primaryTag, TRUE)); + ITKCALL(AOM_refresh(secondTag, TRUE)); + tag_t relationTag = NULLTAG; + ITKCALL(GRM_create_relation(primaryTag, secondTag, typeTag, NULLTAG, &relationTag));//ϵѾڣôӶ + + ITKCALL(GRM_save_relation(relationTag));//ܱҪ + ITKCALL(AOM_save(primaryTag)); + ITKCALL(AOM_save(secondTag)); + ITKCALL(AOM_refresh(primaryTag, FALSE)); + ITKCALL(AOM_refresh(secondTag, FALSE)); + POM_AM__set_application_bypass(false); + } + +} + +// +int set_release_status(tag_t item, char release_name[]) { + int ifail = ITK_ok; + tag_t release_status = NULL; + + ITKCALL(ifail = RELSTAT_create_release_status(release_name, &release_status)); + ITKCALL(ifail = RELSTAT_add_release_status(release_status, 1, &item, TRUE)); + + return ifail; +} + +int AddPdf(EPM_action_message_t msg) { + + char *log_file = NULL; + CreateLogFile("AddPdf", &log_file); + WriteLog("*************************************************************\n"); + WriteLog("* AddPdf is strat ! *\n"); + WriteLog("*************************************************************\n"); + starTime(); + + + int att_cnt = 0, *arg_num = NULL; + tag_t task = NULLTAG, rootTask_tag = NULLTAG, *attachments = NULL; + char *arg = NULL, *argflag = NULL, **argvalue = NULL; + char type[128] = "", name[128] = ""; + char *str = "MEProcessRevision"; + + char *sType = NULL; + + tag_t type_tag = NULLTAG, pdf_relation = NULLTAG; + task = msg.task; + + ITKCALL(EPM_ask_root_task(task, &rootTask_tag)); + ITKCALL(EPM_ask_attachments(rootTask_tag, EPM_target_attachment, &att_cnt, &attachments)); + POM_AM__set_application_bypass(true); // · + ITKCALL(GRM_find_relation_type("LB2_PDF", &pdf_relation)); + for (int i = 0; i < att_cnt; i++) + { + tag_t rev_tag = attachments[i] , item_tag = NULL; + char* obj_str = NULL; + char* obj_type = NULL; + ITKCALL(AOM_ask_value_string(rev_tag, "object_string", &obj_str)); + WriteLog("ǰ:%s\n", obj_str); + ITKCALL(AOM_ask_value_string(rev_tag, "object_type", &obj_type)); + + // ø + ITKCALL(AOM_ask_value_tag(rev_tag, "items_tag", &item_tag)); + char* item_str = NULL; + ITKCALL(AOM_ask_value_string(item_tag, "object_string", &item_str)); + WriteLog(":%s\n", item_str); + + tag_t *all_rev_tags = NULL; + int all_num = 0; + // øİ汾бҵǰ汾һ汾 + ITKCALL(AOM_ask_value_tags(item_tag, "revision_list", &all_num, &all_rev_tags)); + for (int j = 0; j < all_num; j++) { + char* this_str = NULL; + ITKCALL(AOM_ask_value_string(all_rev_tags[j], "object_string", &this_str)); + WriteLog("Ӱ汾:%s\n", this_str); + if (j != 0 && strcmp(this_str, obj_str) == 0) { + // ҵһ汾һ汾pdfת + tag_t end_tag = all_rev_tags[j - 1]; + + char* end_tag_str = NULL; + ITKCALL(AOM_ask_value_string(end_tag, "object_string", &end_tag_str)); + WriteLog("Ӧһ汾:%s\n", end_tag_str); + + tag_t sp_relation = NULLTAG; + ITKCALL(GRM_find_relation_type("IMAN_specification", &sp_relation)); + int mjcnt = 0, pdfcnt = 0; + tag_t *mj_tags = NULLTAG, *pdf_tags = NULLTAG; + ITKCALL(GRM_list_secondary_objects_only(all_rev_tags[j], sp_relation, &mjcnt, &mj_tags)); + vector dwg_vec; + for (int j = 0; j < mjcnt; j++) { + char* object_type2 = NULL; + AOM_ask_value_string(mj_tags[j], "object_type", &object_type2); + if (strcmp("LB2_CAD", object_type2) == 0) { + int status_cnt = 0; + tag_t* dwg_status = NULLTAG; + ITKCALL(AOM_ask_value_tags(mj_tags[j], "release_status_list", &status_cnt, &dwg_status)); + // * + if (status_cnt > 0) { + dwg_vec.push_back(mj_tags[j]); + } + /*if (status_cnt > 0) { + char *dwg_status_name = NULL; + RELSTAT_ask_release_status_type(dwg_status[status_cnt - 1], &dwg_status_name); + WriteLog("״̬:%s\n", dwg_status_name); + if (strcmp("LB2_BG", dwg_status_name) == 0) { + dwg_vec.push_back(mj_tags[j]); + } + DOFREE(dwg_status_name); + }*/ + DOFREE(dwg_status); + } + DOFREE(object_type2); + } + + ITKCALL(GRM_list_secondary_objects_only(end_tag, pdf_relation, &pdfcnt, &pdf_tags)); + POM_AM__set_application_bypass(true); + for (int j = 0; j < pdfcnt; j++) { + char* object_type2 = NULL; + AOM_ask_value_string(pdf_tags[j], "object_type", &object_type2); + if (strcmp("PDF", object_type2) == 0) { + char* object_name2 = NULL; + AOM_ask_value_string(pdf_tags[j], "object_name", &object_name2); + string pdfName(object_name2); + pdfName = pdfName.substr(0, pdfName.find(".pdf")); + WriteLog("PDFļ:%s\n", pdfName.c_str()); + for (int d = 0; d < dwg_vec.size(); d++) { + char* object_name = NULL; + AOM_ask_value_string(dwg_vec[d], "object_name", &object_name); + if (strstr(object_name, pdfName.c_str()) != NULL) { + + WriteLog("״̬,ʼת\n"); + tag_t new_dataset = NULL; + char* new_name = NULL; + ITKCALL(AOM_ask_value_string(pdf_tags[j], "object_name", &new_name)); + AE_copy_dataset_with_id(pdf_tags[j], new_name, "", "A", &new_dataset); + + // ȡ״̬ + tag_t *status = NULL; + int snum = 0; + ITKCALL(AOM_ask_value_tags(pdf_tags[j], "release_status_list", &snum, &status)); + if (snum > 0) { + // ݼ״̬ + AOM_lock(new_dataset); + + char* status_name = NULL; + char release_name[128 + 1]; + ITKCALL(AOM_ask_value_string(status[0], "object_name", &status_name)); + + strcpy(release_name, status_name); + set_release_status(new_dataset, release_name); + + /*ITKCALL(AOM_set_value_tags(new_dataset, "release_status_list", 0, status)); + ITKCALL(AOM_set_value_tags(new_dataset, "release_status_list", snum, status));*/ + + AOM_save(new_dataset); + AOM_unlock(new_dataset); + + AOM_refresh(new_dataset, false); + + save_representation(rev_tag, new_dataset, "LB2_PDF"); + } + + + + } + DOFREE(object_name); + } + DOFREE(object_name2); + } + DOFREE(object_type2); + } + DOFREE(mj_tags); + DOFREE(pdf_tags); + + //int pdfcnt = 0; + //tag_t *pdf_tags = NULLTAG; + //ITKCALL(GRM_list_secondary_objects_only(end_tag, pdf_relation, &pdfcnt, &pdf_tags)); + //for (int k = 0; k < pdfcnt; k++) { + + // char* pdf_str = NULL; + // ITKCALL(AOM_ask_value_string(pdf_tags[k], "object_string", &pdf_str)); + // WriteLog("PDF:%s\n", pdf_str); + + // // ȡ״̬ + // tag_t *status = NULL; + // int snum = 0; + // ITKCALL(AOM_ask_value_tags(pdf_tags[k], "release_status_list", &snum, &status)); + // // ״̬IJת + // if (snum != 0) { + // WriteLog("״̬,ʼת\n"); + // tag_t new_dataset = NULL; + // char* new_name = NULL; + // ITKCALL(AOM_ask_value_string(pdf_tags[k], "object_name", &new_name)); + // AE_copy_dataset_with_id(pdf_tags[k], new_name, "", "A", &new_dataset); + // // ݼ״̬ + // AOM_lock(new_dataset); + // ITKCALL(AOM_set_value_tags(new_dataset, "release_status_list", 1, status)); + + // AOM_save(new_dataset); + // AOM_unlock(new_dataset); + + // AOM_refresh(new_dataset, false); + + // save_representation(rev_tag, new_dataset, "LB2_PDF"); + // } + //} + break; + } + } + + + } + POM_AM__set_application_bypass(false); + + WriteLog("*************************************************************\n"); + WriteLog("* AddPdf is end ! *\n"); + WriteLog("*************************************************************\n"); + CloseLog(); + + return ITK_ok; +} \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/lib_custom_main.cpp b/SignOff_itk/SignOff_itk/lib_custom_main.cpp new file mode 100644 index 0000000..2234a1e --- /dev/null +++ b/SignOff_itk/SignOff_itk/lib_custom_main.cpp @@ -0,0 +1,47 @@ + +#pragma warning (disable: 4819) + +/** +* @headerfile tcua 头文件 +*/ +#include +#include "error_handling.h" +#include "epm_register_handler.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + + + /** + * @fn extern "C" DLLAPI int liborigin_register_callbacks + * @return usually return ITK_ok + * @brief liborigin customization entry + * 此函数必须有规范的写法,必须以dll的名称加上"_"开头 + */ + + DLLAPI int SignOff_itk_register_callbacks() + { + int ifail = ITK_ok; + TC_write_syslog("*******************************************************************************\n"); + TC_write_syslog("* SignOff_itk register_callbacks is starting *\n"); + TC_write_syslog("*******************************************************************************\n"); + + + ITKCALL( ifail = CUSTOM_register_exit( "SignOff_itk", "USERSERVICE_register_methods", + (CUSTOM_EXIT_ftn_t)USERSERVICE_custom_register_methods) ); + fprintf( stdout, "\n SignOff_itk registering USERSERVICE_custom_register_methods completed!\n" ); + + + ITKCALL( ifail = CUSTOM_register_exit("SignOff_itk","USER_gs_shell_init_module", + (CUSTOM_EXIT_ftn_t)USERSERVICE_custom_register_handlers) ); + fprintf( stdout, "\n SignOff_itk registering USERSERVICE_custom_register_handlers completed!\n" ); + + + return ifail; + } + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/ocilib.cxx b/SignOff_itk/SignOff_itk/ocilib.cxx new file mode 100644 index 0000000..46cdf24 --- /dev/null +++ b/SignOff_itk/SignOff_itk/ocilib.cxx @@ -0,0 +1,472 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.cxx + Module : OCI + + This file describes OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include "common_itk_util.h" +#include "ocilib.h" +#include + +#define NUM 100 +#define USERNAME "MES" +#define PASSWORD "infodba" +#define DBNAME "TCPORD" + + +// 定义句柄结构 +typedef struct{ + OCIEnv *p_env; //OCI environment handle 环境句柄 + OCIError *p_err; //OCI error handle 错误句柄 + OCISvcCtx *p_svc; //OCI service context handel 服务上下文句柄 + OCIServer *p_ser; //OCI server handle 服务器句柄 + OCISession *p_usr; //OCI user session handle 用户会话句柄 + OCIStmt *p_sql; //OCI statement handle 语句句柄 + OCIDefine *p_dfn; //OCI define handle 定义句柄 + OCIBind *p_bnd; //OCI bind handle 绑定句柄 +}OCIHandleInfo; + + +// 定义错误句柄结构 +typedef struct{ + OCIEnv *p_env; + OCIError *p_err; + OCISvcCtx *p_svc; + OCIStmt *p_sql; + OCIDefine *p_dfn; + OCIBind *p_bnd; +}OCIDATA; + + +// 定义执行语句时候的输入参数 +typedef struct{ + char value[NUM][NUM]; + char type[NUM][NUM]; +}SqlField; + + +// 定义查询语句时候的输入,输出参数 +typedef struct{ + int naIntValue[NUM]; + int nIntNum; + char caCharValue[500][500]; + int nCharNum; +}SqlSelField; + +OCIHandleInfo *ociHandle = NULL; +OCIHandleInfo ociHand; + +int InitHandle(); +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount); +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField); +int GetDataFromQuery(int *pRc, SqlSelField *pOutField); +void QuitFreeHandle(); + + + + +/**************************************************************************************************************************************** +函数名称: +函数功能: +入口参数: +出口参数: +备 注: +*****************************************************************************************************************************************/ + + +// 初始化Handler +int InitHandle() +{ + int swResult; + + ociHandle = &ociHand; + + + /*create OCI environment*/ + if(swResult = OCIEnvCreate(&ociHandle->p_env,OCI_DEFAULT,NULL,NULL,NULL,NULL,0,NULL)) //环境句柄 + { + printf("environment create error!\n\n"); + WriteLog("environment create error!\n\n"); + return -1; + } + else + { + printf("environment create success!\n\n"); + WriteLog("environment create success!\n\n"); + //return 0; + } + + /*init handle*/ + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_ser,OCI_HTYPE_SERVER,0,NULL)) //服务器句柄 + { + printf("init server handle error!\n\n"); + WriteLog("init server handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_err,OCI_HTYPE_ERROR,0,NULL)) //错误句柄 + { + printf("init error handle error!\n\n"); + WriteLog("init error handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_usr,OCI_HTYPE_SESSION,0,NULL)) //事务句柄 + { + printf("init session handle error!\n\n"); + WriteLog("init session handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_svc,OCI_HTYPE_SVCCTX,0,NULL)) //上下文句柄 + { + printf("init service context handle error!\n\n"); + WriteLog("init service context handle error!\n\n"); + return -1; + } + + + if(swResult = OCIHandleAlloc(ociHandle->p_env,(dvoid **)&ociHandle->p_sql,OCI_HTYPE_STMT,0,NULL)) //SQL语句句柄 + { + printf("init statement handle error!\n\n"); + WriteLog("init statement handle error!\n\n"); + return -1; + } + + printf("init handle success!\n\n"); + WriteLog("init handle success!\n\n"); + return 0; +} + + + +// 连接数据库服务器 +int ConnServer(char *username,char *password,char *dbname) +{ + int swResult; + char errbuf[100]={0}; + int errcode; + + if(InitHandle() == -1)//初始化句柄 + return -1; + + if(swResult = OCILogon(ociHandle->p_env,ociHandle->p_err,&ociHandle->p_svc,(text *)username,strlen(username),(text *)password,strlen(password),(text *)dbname,strlen(dbname))) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Error - %.*s/n", 512, errbuf); + WriteLog("Error - %.*s/n", 512, errbuf); + return -1; + } + else { + printf("数据库连接成功!\n\n"); + WriteLog("数据库连接成功!\n\n"); + } + + return 0; +} + + + +// SQL语句的陈述(执行SQL语句) +int _ExeSQL(char *SQL,char ** inputValue,int inputValueCount) +{ + int swResult,i; + int errcode; + + //设置绑定变量 + OCIBind *p_bndp[100]; + + //准备SQL语句 + if(swResult = OCIStmtPrepare(ociHandle->p_sql,ociHandle->p_err,(text *)SQL,strlen(SQL),OCI_NTV_SYNTAX,OCI_DEFAULT)) + { + printf("prepare SQL statements error!\n\n"); + WriteLog("prepare SQL statements error!\n\n"); + } + else + { + printf("prepare SQL statements success!\n\n"); + WriteLog("prepare SQL statements success!\n\n"); + } + + + // 绑定输入变量 + for(i=0;ip_sql,&p_bndp[i],ociHandle->p_err,i+1,(dvoid *)inputValue[i],(sb4)strlen(inputValue[i])+1,SQLT_STR, (dvoid *) 0, (ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Bind Error - %.*s/n", 512, errbuf); + WriteLog("Bind Error - %.*s/n", 512, errbuf); + return -1; + } + } + + //执行SQL statements + if(swResult = OCIStmtExecute(ociHandle->p_svc,ociHandle->p_sql,ociHandle->p_err,1,0,NULL,NULL,OCI_DEFAULT)) + { + char errbuf[100]={0}; + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL statement Error - %.*s\n", 512, errbuf); + WriteLog("execute SQL statement Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL statement success!\n\n"); + WriteLog("execute SQL statement success!\n\n"); + } + return 0; +} + + + + +// 查询SQL +int _QuerySQL(char *SQL, SqlSelField *pOutField, SqlSelField *pSelField ) +{ + sword status; + int rc= 0,ret=0; + char errbuf[100]={0}; + int maxNum = 2048; + char chTag[8]; + int iIndex = 0; + int outputColumn = 0; + int errcode=0; + char nullValue = '\0'; // + sb2 sb2aInd[30] = {'\0'}; + + // 准备SQL语句 + status = OCIStmtPrepare(ociHandle->p_sql, ociHandle->p_err, (text *)SQL,(ub4)strlen(SQL), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT); + + if (status != OCI_SUCCESS) + { + printf("SQL Preparing failed/n"); + WriteLog("SQL Preparing failed/n"); + return -1; + } + + + // 绑定int类型的, 定义SQL语句时 :1,:2, 定义输入变量 + for (iIndex=0; iIndexnIntNum; iIndex++) + { + memset(chTag, 0, 8); + sprintf(chTag, ":%d", iIndex+1); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->naIntValue[iIndex], sizeof(int), SQLT_INT,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + WriteLog("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + // 绑定char *类型的, 定义SQL语句时 :3,:4, 定义输入变量 + for (iIndex=0; iIndexnCharNum; iIndex++) + { + int n=0; + memset(chTag, 0, 8); + n = pSelField->nIntNum + iIndex +1; + sprintf(chTag, ":%d", n); + if(rc = OCIBindByName(ociHandle->p_sql, (OCIBind **)&ociHandle->p_dfn, ociHandle->p_err, (text *)chTag,(sb4)strlen((char *)chTag),(dvoid *) &pSelField->caCharValue[iIndex], NUM, SQLT_STR,(dvoid *) 0,(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + WriteLog("BindByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // 执行SQL语句 + if (rc = OCIStmtExecute(ociHandle->p_svc, ociHandle->p_sql, ociHandle->p_err, (ub4) 0, (ub4) 0,(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL, OCI_STMT_SCROLLABLE_READONLY)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("execute SQL Error - %.*s\n", 512, errbuf); + WriteLog("execute SQL Error - %.*s\n", 512, errbuf); + return -1; + } + else + { + printf("execute SQL success!\n\n"); + WriteLog("execute SQL success!\n\n"); + } + + + if (ret = OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) &outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("Get OCIAttr Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + WriteLog("Get OCIAttr Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + + + // 绑定int类型的, 定义SQL语句时 :1,:2, 定义输出变量 + for (iIndex=0; iIndexnIntNum; iIndex++) + { + if(rc = OCIDefineByPos(ociHandle->p_sql, &ociHandle->p_dfn, ociHandle->p_err, iIndex+1, (dvoid *)&pOutField->naIntValue[iIndex], sizeof(int), SQLT_INT, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + WriteLog("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + + // 绑定char *类型的, 定义SQL语句时 :1,:2, 定义输出变量 + for (iIndex=0; iIndexp_sql, &ociHandle->p_dfn, ociHandle->p_err, n, (dvoid *)&pOutField->caCharValue[iIndex], 1000*sizeof(char), SQLT_STR, (dvoid *) 0, (ub2 *)0,(ub2 *)0, OCI_DEFAULT)) + { + OCIErrorGet((dvoid *)ociHandle->p_err, (ub4) 1, (text *) NULL, &errcode, (ub1 *)errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR); + printf("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + WriteLog("DefineByPos Error of ociHandle->p_sql - %.*s\n", 512, errbuf); + return -1; + } + } + + return 0; + +} + + + +// 释放Handler +void QuitFreeHandle() +{ + // 退出服务器 + OCILogoff(ociHandle->p_svc,ociHandle->p_err); + printf("Quit success!\n"); + WriteLog("Quit success!\n"); + + // 释放句柄 + OCIHandleFree(ociHandle->p_ser,OCI_HTYPE_SERVER); //释放服务器句柄 + OCIHandleFree(ociHandle->p_err,OCI_HTYPE_ERROR); //释放错误句柄 + OCIHandleFree(ociHandle->p_usr,OCI_HTYPE_SESSION); //释放事务句柄 + OCIHandleFree(ociHandle->p_svc,OCI_HTYPE_SVCCTX); //释放上下文句柄 + OCIHandleFree(ociHandle->p_sql,OCI_HTYPE_STMT); //释放SQL语句句柄 +} + + +// 执行类操作 +int ExecuteSQL(char *SQL,int valueCount,char **value) +{ + int i=0; + + if(i=_ExeSQL(SQL,value,valueCount)) + { + printf("继续操作1\n"); + WriteLog("继续操作1\n"); + QuitFreeHandle(); + return -1; + } + printf("继续操作2\n"); + WriteLog("继续操作2\n"); + return 0; +} + + +// 有输入参数的查询 +int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + int i = 0, j=0 ,ret =0; + + int times = 0, temp=0; + + SqlSelField infield; + SqlSelField outField; + + // 初始化参数结构 + infield.nCharNum = inputValueCount; + infield.nIntNum = 0; + outField.nCharNum = 0; + outField.nIntNum = 0; + + * outputColumn = 0; + * outputValueCount = 0; + + for(i=0;ip_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputColumn, (ub4 *) 0, (ub4)OCI_ATTR_PARAM_COUNT, ociHandle->p_err); + + // 提取最后一行,便于去行数 + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_LAST,0, OCI_DEFAULT); + // 获取结果行数 + ret= OCIAttrGet (ociHandle->p_sql, (ub4)OCI_HTYPE_STMT, (dvoid *) outputValueCount, (ub4 *) 0, (ub4)OCI_ATTR_ROW_COUNT, ociHandle->p_err); + + if(*outputValueCount == 0) + return 0; + + + // 开始分配内存并且存储 + ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_FIRST,0, OCI_DEFAULT); + *outputValue = (char ***) calloc ((*outputValueCount)+1,sizeof(char**)); + do + { + (*outputValue)[i] = (char **) calloc ((*outputColumn)+1,sizeof(char *)); + for(j=0;j<(*outputColumn);j++) + { + (*outputValue)[i][j] = (char *) calloc (1000,sizeof(char)); + strcpy((*outputValue)[i][j],outField.caCharValue[j]); + //printf("outValue[%d][%d] = %s , 地址=%d, 所指向地址= %d\n ",i,j,(*outputValue)[i][j],&(*outputValue)[i][j],(*outputValue)[i][j]); + } + i++; + } + while((ret = OCIStmtFetch2(ociHandle->p_sql, ociHandle->p_err,1, OCI_FETCH_NEXT, 1, OCI_DEFAULT)!= OCI_NO_DATA)); + + return 0; +} + + +// 无输入参数的查询 +int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue) +{ + return QuerySQL(SQL,0,NULL,outputColumn,outputValueCount,outputValue); +} + +// 无参数操作 +int ExecuteSQLNoInputParam(char *SQL) +{ + printf("开始操作\n"); + WriteLog("开始操作\n"); + return ExecuteSQL(SQL,0,NULL); +} + +// 断开连接 +void DisConnServer() +{ + if(ociHandle != NULL) + QuitFreeHandle(); +} + diff --git a/SignOff_itk/SignOff_itk/ocilib.h b/SignOff_itk/SignOff_itk/ocilib.h new file mode 100644 index 0000000..136a5e6 --- /dev/null +++ b/SignOff_itk/SignOff_itk/ocilib.h @@ -0,0 +1,98 @@ +/*===================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +======================================================================================================================= +File description: + + Filename: ocilib.h + Module : OCI + + This Header file of OCI library Package. + +======================================================================================================================= +Date Name Description of Change +1-Feb-2015 Ray Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#include +#include +#include +#include +#include +//#include + +#define OCI_FAIL 1 +#define OCI_OK 0 + +#ifdef __cplusplus +extern "C" +{ +#endif + /** + * 连接数据库. + * @param username - 用户名 + * @param password - 密码 + * @param dbname - 数据库SID + * @return - OCI_OK or error code + * + * ORACLE 数据库的连接与封装函数 + */ + extern int ConnServer(char *username,char *password,char *dbname); + + + /** + * 不带输入参数的执行SQL语句. + * @param SQL - SQL语句 + * @return - OCI_OK or error code + * + * ORACLE 数据库的连接与封装函数 + */ + extern int ExecuteSQLNoInputParam(char *SQL); + + /** + * 带输入参数的执行SQL语句. + * @param SQL - SQL语句 + * @param inputValueCount - 输入参数数量 + * @param inputValue - 输入参数值 + * @return - OCI_OK or error code + * + * ORACLE 数据库的连接与封装函数 + */ + extern int ExecuteSQL(char *SQL,int inputValueCount,char **inputValue); + + /** + * 不带输入参数的查询SQL语句. + * @param SQL - SQL语句 + * @param outputColumn - 输出表的列的数量 + * @param outputValueCount - 输出表的行的数量 + * @param outputValue - 输出表内容 + * @return - OCI_OK or error code + * + * ORACLE 数据库的连接与封装函数 + */ + extern int QuerySQLNoInputParam(char *SQL, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * 带输入参数的查询SQL语句. + * @param SQL - SQL语句 + * @param inputValueCount - 输入参数数量 + * @param inputValue - 输入参数值 + * @param outputColumn - 输出表的列的数量 + * @param outputValueCount - 输出表的行的数量 + * @param outputValue - 输出表内容 + * @return - OCI_OK or error code + * + * ORACLE 数据库的连接与封装函数 + */ + extern int QuerySQL(char *SQL, int inputValueCount, char ** inputValue, int * outputColumn, int * outputValueCount, char **** outputValue); + + /** + * 断开数据库连接. + * + * ORACLE 数据库的连接与封装函数 + */ + extern void DisConnServer(); + +#ifdef __cplusplus +} +#endif diff --git a/SignOff_itk/SignOff_itk/stdafx.cpp b/SignOff_itk/SignOff_itk/stdafx.cpp new file mode 100644 index 0000000..c24bdb0 --- /dev/null +++ b/SignOff_itk/SignOff_itk/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : ֻ׼ļԴļ +// XNY_itk.pch ΪԤͷ +// stdafx.obj ԤϢ + +#include "stdafx.h" + +// TODO: STDAFX.H κĸͷļ +//ڴļ diff --git a/SignOff_itk/SignOff_itk/stdafx.h b/SignOff_itk/SignOff_itk/stdafx.h new file mode 100644 index 0000000..baa4bbc --- /dev/null +++ b/SignOff_itk/SignOff_itk/stdafx.h @@ -0,0 +1,15 @@ +// stdafx.h : ׼ϵͳļİļ +// Ǿʹõĵ +// ضĿİļ +// + +#pragma once + +#include "targetver.h" + +#include +#include + + + +// TODO: ڴ˴óҪͷļ diff --git a/SignOff_itk/SignOff_itk/string_helper.cpp b/SignOff_itk/SignOff_itk/string_helper.cpp new file mode 100644 index 0000000..d5e0841 --- /dev/null +++ b/SignOff_itk/SignOff_itk/string_helper.cpp @@ -0,0 +1,146 @@ +/** +* @file string_helper.cpp +* @brief string utility functions' implemention +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +* 14-Jau-2009 James modify Split functions, add trim blank characters +*/ +#pragma warning(disable:4996) +// +//#include +//#include +//#include +#include "string_helper.h" + +string TrimString( string strArg ) +{ + size_t index1 = 0; + index1 = strArg.find_first_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin(), strArg.begin()+index1 ); + index1 = strArg.find_last_not_of( ' '); + if( index1 != string::npos ) + strArg.erase( strArg.begin() + index1 + 1 ); + return strArg; +} + +void Split( string strArg, char spliter, vector &ans ) +{ + ans.clear(); + size_t index0 = 0; + string one_arg; + if ( strArg.find_first_not_of(' ') == string::npos ) + strArg = ""; + while( strArg.size()>0 ) + { + index0 = strArg.find_first_of( spliter ); + if( index0 != string::npos ) + { + one_arg = strArg.substr( 0,index0 ); + strArg = strArg.substr( index0 + 1 ); + ans.push_back( one_arg ); + } + else + { + ans.push_back( strArg ); + break; + } + } +} + +void Split( string strArg, string spliter, vector &ans ) +{ + + ans.clear(); + + size_t index0; + string one_arg; + + if ( strArg.find_first_not_of(" ") == string::npos ) + strArg = ""; + + + while( strArg.size()>0 ) + { + + index0 = strArg.find(spliter); + + if( index0 != string::npos ) + { + + one_arg = strArg.substr( 0, index0 ); + strArg = strArg.substr( index0 + spliter.size() ); + + ans.push_back( one_arg ); + } + else + { + + ans.push_back( strArg ); + break; + } + } +} + + +void RemoveLiner( string &in, string &out ) +{ + char buf[BUFSIZ] = ""; + for( int i=0; i<(int)in.size(); i++ ) + { + if( in[i] == '\n') + continue; + else + sprintf( buf,"%s%c", buf, in[i] ); + } + out.assign(buf); +} + +////Converting a WChar string to a Ansi string +//std::string WChar2Ansi(LPCWSTR pwszSrc) +//{ +// int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL); +// +// if (nLen<= 0) return std::string(""); +// +// char* pszDst = new char[nLen]; +// if (NULL == pszDst) return std::string(""); +// +// WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL); +// pszDst[nLen -1] = 0; +// +// std::string strTemp(pszDst); +// delete [] pszDst; +// +// return strTemp; +//} +// +//string ws2s(wstring& inputws){ return WChar2Ansi(inputws.c_str()); } +// +////Converting a Ansi string to WChar string +//std::wstring Ansi2WChar(LPCSTR pszSrc, int nLen) +//{ +// int nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0); +// if(nSize <= 0) return NULL; +// +// WCHAR *pwszDst = new WCHAR[nSize+1]; +// if( NULL == pwszDst) return NULL; +// +// MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize); +// pwszDst[nSize] = 0; +// +// if( pwszDst[0] == 0xFEFF) // skip Oxfeff +// for(int i = 0; i < nSize; i ++) +// pwszDst[i] = pwszDst[i+1]; +// +// wstring wcharString(pwszDst); +// delete pwszDst; +// +// return wcharString; +//} +// +//std::wstring s2ws(const string& s){ return Ansi2WChar(s.c_str(),s.size());} + diff --git a/SignOff_itk/SignOff_itk/string_helper.h b/SignOff_itk/SignOff_itk/string_helper.h new file mode 100644 index 0000000..c9277d7 --- /dev/null +++ b/SignOff_itk/SignOff_itk/string_helper.h @@ -0,0 +1,25 @@ +/** +* @file string_helper.h +* @brief string utilities to help dealing with string +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 James +*/ + +#ifndef STRING_HELPER +#define STRING_HELPER + +#include +#include +using namespace std; + +string TrimString( string strArg ); +void Split( string strArg, char spliter, vector &ans ); +void Split( string strArg, string spliter, vector &ans ); +void RemoveLiner( string &in, string &out ); +//string ws2s(wstring& inputws); +//wstring s2ws(const string& s); + +#endif \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/string_utils.cxx b/SignOff_itk/SignOff_itk/string_utils.cxx new file mode 100644 index 0000000..4146145 --- /dev/null +++ b/SignOff_itk/SignOff_itk/string_utils.cxx @@ -0,0 +1,252 @@ +/*================================================================================================================== + Copyright(c) 2012 ORIGIN. + Unpublished - All rights reserved +==================================================================================================================== +File description: + Filename: string_utils.c + Module : Common module. + + This file includes some operations of the string. + +==================================================================================================================== +Date Name Description of Change +3-Feb-2015 Ray li Initialize creation +$HISTORY$ +===================================================================================================================*/ +#ifndef _cplusplus +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#endif + +#include +#include +#include +#include +#include + +#include "string_utils.h" + +void Split( string strArg, string spliter, vector &ans ) +{ + ans.clear(); + size_t index0; + string one_arg; + if ( strArg.find_first_not_of(' ') == string::npos ) + strArg = ""; + while( strArg.size()>0 ) + { + index0 = strArg.find(spliter); + if( index0 != string::npos ) + { + one_arg = strArg.substr( 0, index0 ); + strArg = strArg.substr( index0 + spliter.size() ); + ans.push_back( one_arg ); + } + else + { + ans.push_back( strArg ); + break; + } + } +} +char* GSTR_clone( char **dst, const char *src ) +{ + char *retVal = NULL; + int srcLen = 0; + + *dst = NULL; + if (src == NULL) + return NULL; + + srcLen = (int)tc_strlen( src ) + 1; + *dst = (char*)MEM_alloc( srcLen * sizeof(char) ); + retVal = tc_strncpy( *dst, src, srcLen ); + (*dst)[srcLen - 1] = '\0'; + + return retVal; +} + +char* GSTR_copy( char *dst, const char *src, int dstSize ) +{ + char *retVal = tc_strncpy( dst, src, dstSize ); + dst[dstSize - 1] = '\0'; + return retVal; +} + +char* GSTR_int_to_string( char **dst, int value ) +{ + char strVal[128 + 1]; + + *dst = NULL; + memset( strVal, 0, sizeof(strVal)/sizeof(char) ); + sprintf( strVal, "%d", value ); + + return GSTR_clone( dst, strVal ); +} + +void GSTR_format_int_to_string( char *dst, int digitNum, int value ) +{ + char sNum[WSO_desc_size_c + 1]; + sprintf( sNum, "%%0%dd", digitNum ); + sprintf( dst, sNum, value ); +} + +void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ) +{ + char sNum[WSO_name_size_c + 1] = {0}; + char sNew[WSO_name_size_c + 1] = {0}; + sprintf( sNum, "%%%d.%ds", m, m ); + sprintf( sNew, sNum, dst ); + STRNG_replace_str( sNew, " ", fill_char, out ); +} + + +char* GSTR_string_append( const char *s1, const char *s2 ) +{ + char *s = NULL; + if (s1 == NULL || s2 == NULL) + { + GSTR_clone(&s, s1 == NULL ? (s2 == NULL ? "" : s2) : s1 ); + } + else + { + int size = (int)tc_strlen(s1) + (int)tc_strlen(s2) + 1; + s = (char *)MEM_alloc( size ); + tc_strcpy( s, s1 ); + tc_strcat( s, s2 ); + s[size - 1] = '\0'; + } + return s; +} + +logical GSTR_is_float(const char *str) +{ + logical isfloat = true; + char *pStr = (char *)str; + logical hasPositive = false; + logical hasMinus = false; + logical hasDot = false; + + if (str == NULL) + return false; + + while (*pStr != '\0' && isfloat == true) + { + if ( (*pStr >= '0' && *pStr <= '9')) + { + //continue; + } + else if ( *pStr == '+' ) + { + isfloat = (hasPositive ? false : (hasPositive = true)); + } + else if ( *pStr == '-' ) + { + isfloat = (hasMinus ? false : (hasMinus = true)); + } + else if ( *pStr == '.' ) + { + isfloat = (hasDot ? false : (hasDot = true)); + } + else + isfloat = false; + + pStr ++; + } + return isfloat; +} + +logical GSTR_is_number(const char *str) +{ + logical is_number = true; + char *pStr = (char *)str; + if (str == NULL) + return false; + + while (*pStr != '\0') + { + if ( !( (*pStr >= '0' && *pStr <= '9') || *pStr == '-' ) ) + { + is_number = false; + break; + } + pStr ++; + } + return is_number; +} + +logical GSTR_is_ascii(char ch) +{ + return ((unsigned int)ch) < 128; +} + +int GSTR_trim_l( char *str, char s ) +{ + int count = 0; + char *pointer = str, *poffset = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + while ( *pointer != '\0' ) + { + if ( *pointer != s ) + { + break; + } + count++; + pointer++; + } + if (count == 0) + return 0; + + poffset = str + count; + pointer = str; + while ( *poffset != '\0' ) + { + *pointer = *poffset; + pointer ++; + poffset ++; + } + *pointer = '\0'; + + return count; +} + +int GSTR_trim_r( char *str, char s ) +{ + int count = 0; + char *pointer = NULL; + if (str == NULL || str[0] == '\0') + return 0; + + pointer = str + ((int) strlen(str) - 1); + + while ( pointer != str ) + { + if ( *pointer != s ) + { + break; + } + + *pointer = '\0'; + + count++; + pointer--; + } + + return count; +} + +void GSTR_trim_float( char *floatValue ) +{ + if ( !IS_EMPTY(floatValue) && tc_strstr(floatValue, ".") != NULL ) + { + int len = 0; + GSTR_trim_r(floatValue, '0'); + len = (int)tc_strlen(floatValue); + if (floatValue[ len - 1 ] == '.') + floatValue[ len - 1 ] = '\0'; + } +} + diff --git a/SignOff_itk/SignOff_itk/string_utils.h b/SignOff_itk/SignOff_itk/string_utils.h new file mode 100644 index 0000000..31c08c8 --- /dev/null +++ b/SignOff_itk/SignOff_itk/string_utils.h @@ -0,0 +1,125 @@ +/*===================================================================================================================== + Copyright(c) 2005 ORIGIN PLM Software Corp. All rights reserved. + Unpublished - All rights reserved +======================================================================================================================= +File description: + Filename: string_utils.h + Module : Common module. + + This file includes some operations of the string. + +======================================================================================================================= +Date Name Description of Change +14-Jul-2009 Ray Li Initialize creation +$HISTORY$ +=====================================================================================================================*/ +#ifndef STRING_UTILS_H +#define STRING_UTILS_H +#include +#include +#include +using namespace std; +#ifdef __cplusplus + extern "C" + { +#endif + +// @{{ String assister +#define IS_NULL(S) ((S)==NULL) +#define IS_EMPTY(S) (((S)==NULL) || !(*(S))) +// @}} + void Split( string strArg, string spliter, vector &ans ); + /** + * Clones the string. + * @param dst - the output string. + * @param src - the string to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_clone( char **dst, const char *src ); + + /** + * Copy safely the string with null end. + * @param dst - the output string. + * @param src - the string to be cloned. + * @param dstSize - the size of output string. + * @return - the destinatin string pointer. + */ + extern char *GSTR_copy( char *dst, const char *src, int dstSize ); + + /** + * Converts int to string. + * @param dst - the output string. + * @param value - the int to be cloned. + * @return - the destinatin string pointer. + */ + extern char* GSTR_int_to_string( char **dst, int value ); + + /** + * Formats the int/string value as string. + * @param dst - the destination string. + * @param digitNum - the digit number of the value. + * @param value - the value to be converted. + * @return - N/A. + */ + extern void GSTR_format_int_to_string( char *dst, int digitNum, int value ); + extern void GSTR_format_string( const char *dst, int m, const char *fill_char, char **out ); + + /** + * Appends the strings( never null returned ) + * @param s1 - string 1 + * @param s2 - string 2 + * @return - new string + */ + extern char* GSTR_string_append( const char *s1, const char *s2 ); + + /** + * Whether the string is float type + * @param str - The string + * + * NOTE: it's only check whether each word is in "+-.0123456789", not care the float with "E" or the float rule, + * like "00-1.+01", it will return true. + * @return - return true if it is one. + */ + extern logical GSTR_is_float(const char *str); + + /** + * Whether all char of the string are number + * @param str - The string + * + * NOTE: it's only check whether each word is in "0123456789" + * @return - return true if it is one. + */ + extern logical GSTR_is_number(const char *str); + + /** + * Is ascii char + * @param ch - ascii char + * @return - return true if it is. + */ + extern logical GSTR_is_ascii(char ch); + + /** + * Trims the string's prefix. + * @param str - The string + * @param s - The char + * + * @return - count. + */ + extern int GSTR_trim_l( char *str, char s ); + extern int GSTR_trim_r( char *str, char s ); + + /** + * Remove the zero. + * For Example: + * floatValue="50.00" -> = "50" + * floatValue="50.0100" -> = "50.01" + * @return - count. + */ + extern void GSTR_trim_float( char *floatValue ); + +#ifdef __cplusplus + } +#endif + + +#endif //STRING_UTILS_H diff --git a/SignOff_itk/SignOff_itk/targetver.h b/SignOff_itk/SignOff_itk/targetver.h new file mode 100644 index 0000000..416cebf --- /dev/null +++ b/SignOff_itk/SignOff_itk/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// SDKDDKVer.h õ߰汾 Windows ƽ̨ + +// ҪΪǰ Windows ƽ̨Ӧó WinSDKVer.h +// _WIN32_WINNT ΪҪֵ֧ƽ̨Ȼٰ SDKDDKVer.h + +#include diff --git a/SignOff_itk/SignOff_itk/tc_log.cxx b/SignOff_itk/SignOff_itk/tc_log.cxx new file mode 100644 index 0000000..8c4d149 --- /dev/null +++ b/SignOff_itk/SignOff_itk/tc_log.cxx @@ -0,0 +1,103 @@ +/** +* @file common_itk_util.cpp +* @brief itk warpper utility function +* @author James +* @history +* =================================================================================== +* Date Name Description of Change +* 18-July-2008 Ray +*/ +#include +#include +#include + +#include +#include +#include +#include +// +#ifdef WIN32 +#include +#include +#else +#include +#endif +// +#include "tc_log.h" + +#define ARGS_LENGTH 200 +#define MAX_PRINTLINE_LENGTH 2000 +#define MAX_PATH_LENGTH 2000 +#define MAX_ARGUMENT_LENGTH 400 +#define MAX_PARAMNAME_LENGTH 50 +#define MAX_FILE_EXT_LENGTH 10 +#define TRUE_FLAG 1 +#define FALSE_FLAG 0 +#define DETAILLOG 1 + +#define DOFREE(obj) \ +{ \ + if(obj) \ + { \ + MEM_free(obj); \ + obj = NULL; \ + } \ +} + + +FILE* logFile = NULL; + +void CreateLogFile(char* logFileName) +{ + int i=0; + + logFile = NULL; + + + //get logFileName + sprintf(logFileName, "%s", logFileName); + printf("log file name: %s\n", logFileName); + + + //create log file + if((logFile = fopen(logFileName, "w"))==NULL) + { + printf("log file create failed\n"); + } + +} + +void WriteLog(const char* format, ...) +{ + va_list arg; + char tmp[MAX_PRINTLINE_LENGTH]; + + if(logFile) + { + //get the message + memset(tmp, 0, sizeof(tmp)); + va_start(arg, format); + vsprintf(tmp, format, arg); + va_end(arg); + + //----------print to command window for trace--------// + printf("%s\n", tmp); + + //print message to log file + fprintf(logFile, "%s\n", tmp); + fflush(logFile); + } + else + { + printf("*!Error!*: Log File Not Exist\n"); + } +} + +void CloseLog(void) +{ + if(logFile) + { + fclose(logFile); + logFile = NULL; + } +} diff --git a/SignOff_itk/SignOff_itk/tc_log.h b/SignOff_itk/SignOff_itk/tc_log.h new file mode 100644 index 0000000..8dc0a0a --- /dev/null +++ b/SignOff_itk/SignOff_itk/tc_log.h @@ -0,0 +1,30 @@ +/** +* @file common_itk_util.h +* @brief itk warpper utility function +* @author Ray +* @history +* =================================================================================== +* Date Name Description of Change +* 09-July-2008 Ray +*/ + +#ifndef TC_LOG_H +#define TC_LOG_H + +#ifdef __cplusplus +extern "C" { +#endif + +void CreateLogFile(char* logFileName); +void WriteLog(const char* format, ...); +void CloseLog(void); +//int FindDatasetReferenceExt( tag_t datasettype, const char *datasettype_ref, char ext[10] ); +//int CompareDate( date_t date1, date_t date2 ); +//int GetRandomTempFile( char tempFile[256] ); +//logical IsItemRevisionType( char object_type[WSO_name_size_c + 1] ); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.log b/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.log new file mode 100644 index 0000000..7793bf4 --- /dev/null +++ b/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.log @@ -0,0 +1 @@ +cl : 命令行 error D8016: “/O2”和“/RTC1”命令行选项不兼容 diff --git a/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/CL.command.1.tlog b/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/CL.command.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/CL.command.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/SignOff_itk.lastbuildstate b/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/SignOff_itk.lastbuildstate new file mode 100644 index 0000000..f90e5ee --- /dev/null +++ b/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/SignOff_itk.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.28.29910:TargetPlatformVersion=10.0.19041.0: +Debug|x64|C:\Users\86183\Desktop\项目代码\老板电器项目\SignOff_itk\| diff --git a/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/unsuccessfulbuild b/SignOff_itk/SignOff_itk/x64/Debug/SignOff_itk.tlog/unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.Build.CppClean.log b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.Build.CppClean.log new file mode 100644 index 0000000..f5bcd1b --- /dev/null +++ b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.Build.CppClean.log @@ -0,0 +1,26 @@ +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\vc142.pdb +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\common_itk_util.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\connor_signoff_form.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\connor_signoff_dataset.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\string_utils.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\string_helper.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\ocilib.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\lib_custom_main.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\lcpdf.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\epm_register_handler.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\crul_server_call_httpserver.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\connor_util.obj +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\connor2.obj +d:\source\北方股份\电子签名\signoff_itk\x64\release\signoff_itk.dll +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.ipdb +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.iobj +d:\source\北方股份\电子签名\signoff_itk\x64\release\signoff_itk.pdb +d:\source\北方股份\电子签名\signoff_itk\x64\release\signoff_itk.lib +d:\source\北方股份\电子签名\signoff_itk\x64\release\signoff_itk.exp +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.tlog\cl.command.1.tlog +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.tlog\cl.read.1.tlog +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.tlog\cl.write.1.tlog +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.tlog\link.command.1.tlog +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.tlog\link.read.1.tlog +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.tlog\link.write.1.tlog +d:\source\北方股份\电子签名\signoff_itk\signoff_itk\x64\release\signoff_itk.tlog\signoff_itk.write.1u.tlog diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.dll.recipe b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.dll.recipe new file mode 100644 index 0000000..ee7c57e --- /dev/null +++ b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.dll.recipe @@ -0,0 +1,11 @@ + + + + + D:\source\北方股份\电子签名\SignOff_itk\x64\Release\SignOff_itk.dll + + + + + + \ No newline at end of file diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.log b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.log new file mode 100644 index 0000000..bae2213 --- /dev/null +++ b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.log @@ -0,0 +1,179 @@ + common_itk_util.c + Connor2.cpp +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(379,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(380,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(381,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(382,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(383,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(384,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(403,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(404,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(405,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(424,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(161,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(168,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(175,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(182,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(189,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(196,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(203,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(210,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(217,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(224,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(231,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(238,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(245,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(252,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(259,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(266,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(273,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(363,4): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(426,44): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(430,5): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(475,4): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor2.cpp(574,3): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. + connor_util.cpp +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(102,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(105,62): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(107,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(133,54): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(134,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(141,2): warning C4476: "printf": 格式说明符中的类型字段字符“Y”未知 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(141,2): warning C4476: "printf": 格式说明符中的类型字段字符“m”未知 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(141,2): warning C4473: “printf”: 没有为格式字符串传递足够的参数 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(141,2): message : 占位符和其参数预计 2 可变参数,但提供的却是 0 参数 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(141,2): message : 缺失的可变参数 1 为格式字符串“%d”所需 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(142,2): warning C4476: "printf": 格式说明符中的类型字段字符“Y”未知 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(142,2): warning C4476: "printf": 格式说明符中的类型字段字符“m”未知 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(142,2): warning C4473: “printf”: 没有为格式字符串传递足够的参数 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(142,2): message : 占位符和其参数预计 2 可变参数,但提供的却是 0 参数 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(142,2): message : 缺失的可变参数 1 为格式字符串“%d”所需 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(147,2): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(149,2): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(339,54): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(340,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(378,54): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(379,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(469,54): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(470,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(675,54): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(676,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(756,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(757,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(758,5): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(830,6): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(909,2): warning C4996: 'wcstombs': This function or variable may be unsafe. Consider using wcstombs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(921,26): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(968,27): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(978,64): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\connor_util.cpp(989,2): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. + CRUL_server_call_httpserver.cpp +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\CRUL_server_call_httpserver.cpp(14,2): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\CRUL_server_call_httpserver.cpp(46,2): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\CRUL_server_call_httpserver.cpp(76,2): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + epm_register_handler.cpp +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(65,12): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(61,29): warning C4101: “str”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(98,9): warning C4101: “now”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(97,56): warning C4101: “temp2”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(97,21): warning C4101: “expire_date”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(97,7): warning C4101: “date_buf”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(103,14): warning C4101: “mth_tag”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(99,17): warning C4101: “p”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(97,34): warning C4101: “env”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(97,44): warning C4101: “temp1”: 未引用的局部变量 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\epm_register_handler.cpp(178,14): warning C4101: “mth_tag”: 未引用的局部变量 + lcpdf.cpp +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\lcpdf.cpp(63,3): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\lcpdf.cpp(64,3): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\lcpdf.cpp(204,10): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\lcpdf.cpp(210,10): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. + lib_custom_main.cpp + ocilib.cxx +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\ocilib.cxx(166,4): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\ocilib.cxx(193,4): warning C4267: “参数”: 从“size_t”转换到“ub4”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\ocilib.cxx(267,3): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\ocilib.cxx(283,3): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\ocilib.cxx(406,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\ocilib.cxx(441,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + string_helper.cpp + string_utils.cxx +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 + Connor_signoff_dataset.cpp +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(53,32): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(218,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(219,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(220,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(221,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(222,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(223,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(224,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(225,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(226,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(255,3): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(266,2): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(273,4): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(297,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(320,4): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(325,6): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(349,7): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(371,6): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(539,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(546,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(553,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(560,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(567,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(574,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(581,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(588,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(595,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(602,7): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(609,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(616,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(623,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(630,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(637,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(644,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(651,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_dataset.cpp(659,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. + Connor_signoff_form.cpp +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(804,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\WorkEnvironment\tc14ITK\include\pom\pom\pom.h(5422,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(115,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(116,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(138,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(139,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(140,7): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(145,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(146,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(147,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(148,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(150,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(151,7): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(67,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(75,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(82,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(89,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(96,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(159,7): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(161,7): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +D:\source\北方股份\电子签名\SignOff_itk\SignOff_itk\Connor_signoff_form.cpp(276,8): warning C4996: 'AOM_save': "AOM_save" deprecated in Teamcenter "11.2"; Use "AOM_save_with_extensions or AOM_save_without_extensions" instead. + 正在创建库 D:\source\北方股份\电子签名\SignOff_itk\x64\Release\SignOff_itk.lib 和对象 D:\source\北方股份\电子签名\SignOff_itk\x64\Release\SignOff_itk.exp + 正在生成代码 + Previous IPDB not found, fall back to full compilation. + All 920 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. + 已完成代码的生成 + SignOff_itk.vcxproj -> D:\source\北方股份\电子签名\SignOff_itk\x64\Release\SignOff_itk.dll diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.command.1.tlog b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.command.1.tlog new file mode 100644 index 0000000..28c567f Binary files /dev/null and b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.command.1.tlog differ diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.read.1.tlog b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.read.1.tlog new file mode 100644 index 0000000..a380048 Binary files /dev/null and b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.read.1.tlog differ diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.write.1.tlog b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.write.1.tlog new file mode 100644 index 0000000..3a8f540 Binary files /dev/null and b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/CL.write.1.tlog differ diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/SignOff_itk.lastbuildstate b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/SignOff_itk.lastbuildstate new file mode 100644 index 0000000..8a45cdd --- /dev/null +++ b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/SignOff_itk.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:VCServicingVersionMFC=14.29.30136:TargetPlatformVersion=10.0.19041.0: +Release|x64|D:\source\北方股份\电子签名\SignOff_itk\| diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/SignOff_itk.write.1u.tlog b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/SignOff_itk.write.1u.tlog new file mode 100644 index 0000000..891fb22 Binary files /dev/null and b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/SignOff_itk.write.1u.tlog differ diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.command.1.tlog b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.command.1.tlog new file mode 100644 index 0000000..0de9e02 Binary files /dev/null and b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.command.1.tlog differ diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.read.1.tlog b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.read.1.tlog new file mode 100644 index 0000000..658f797 Binary files /dev/null and b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.read.1.tlog differ diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.write.1.tlog b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.write.1.tlog new file mode 100644 index 0000000..5de01d5 Binary files /dev/null and b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.tlog/link.write.1.tlog differ diff --git a/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.vcxproj.FileListAbsolute.txt b/SignOff_itk/SignOff_itk/x64/Release/SignOff_itk.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000..e69de29 diff --git a/SignOff_itk/curl/bin/curl.exe b/SignOff_itk/curl/bin/curl.exe new file mode 100644 index 0000000..9e6d578 Binary files /dev/null and b/SignOff_itk/curl/bin/curl.exe differ diff --git a/SignOff_itk/curl/include/curl/curl.h b/SignOff_itk/curl/include/curl/curl.h new file mode 100644 index 0000000..b00648e --- /dev/null +++ b/SignOff_itk/curl/include/curl/curl.h @@ -0,0 +1,3116 @@ +#ifndef CURLINC_CURL_H +#define CURLINC_CURL_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +/* + * If you have libcurl problems, all docs and details are found here: + * https://curl.se/libcurl/ + */ + +#ifdef CURL_NO_OLDIES +#define CURL_STRICTER +#endif + +#include "curlver.h" /* libcurl version defines */ +#include "system.h" /* determine things run-time */ + +/* + * Define CURL_WIN32 when build target is Win32 API + */ + +#if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && \ + !defined(__SYMBIAN32__) +#define CURL_WIN32 +#endif + +#include +#include + +#if (defined(__FreeBSD__) && (__FreeBSD__ >= 2)) || defined(__MidnightBSD__) +/* Needed for __FreeBSD_version or __MidnightBSD_version symbol definition */ +#include +#endif + +/* The include stuff here below is mainly for time_t! */ +#include +#include + +#if defined(CURL_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) +#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \ + defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)) +/* The check above prevents the winsock2 inclusion if winsock.h already was + included, since they can't co-exist without problems */ +#include +#include +#endif +#endif + +/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish + libc5-based Linux systems. Only include it on systems that are known to + require it! */ +#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ + defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ + defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ + defined(__CYGWIN__) || defined(AMIGA) || defined(__NuttX__) || \ + (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) || \ + (defined(__MidnightBSD_version) && (__MidnightBSD_version < 100000)) +#include +#endif + +#if !defined(CURL_WIN32) && !defined(_WIN32_WCE) +#include +#endif + +#if !defined(CURL_WIN32) +#include +#endif + +/* Compatibility for non-Clang compilers */ +#ifndef __has_declspec_attribute +# define __has_declspec_attribute(x) 0 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) +typedef struct Curl_easy CURL; +typedef struct Curl_share CURLSH; +#else +typedef void CURL; +typedef void CURLSH; +#endif + +/* + * libcurl external API function linkage decorations. + */ + +#ifdef CURL_STATICLIB +# define CURL_EXTERN +#elif defined(CURL_WIN32) || defined(__SYMBIAN32__) || \ + (__has_declspec_attribute(dllexport) && \ + __has_declspec_attribute(dllimport)) +# if defined(BUILDING_LIBCURL) +# define CURL_EXTERN __declspec(dllexport) +# else +# define CURL_EXTERN __declspec(dllimport) +# endif +#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) +# define CURL_EXTERN CURL_EXTERN_SYMBOL +#else +# define CURL_EXTERN +#endif + +#ifndef curl_socket_typedef +/* socket typedef */ +#if defined(CURL_WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H) +typedef SOCKET curl_socket_t; +#define CURL_SOCKET_BAD INVALID_SOCKET +#else +typedef int curl_socket_t; +#define CURL_SOCKET_BAD -1 +#endif +#define curl_socket_typedef +#endif /* curl_socket_typedef */ + +/* enum for the different supported SSL backends */ +typedef enum { + CURLSSLBACKEND_NONE = 0, + CURLSSLBACKEND_OPENSSL = 1, + CURLSSLBACKEND_GNUTLS = 2, + CURLSSLBACKEND_NSS = 3, + CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ + CURLSSLBACKEND_GSKIT = 5, + CURLSSLBACKEND_POLARSSL = 6, + CURLSSLBACKEND_WOLFSSL = 7, + CURLSSLBACKEND_SCHANNEL = 8, + CURLSSLBACKEND_SECURETRANSPORT = 9, + CURLSSLBACKEND_AXTLS = 10, /* never used since 7.63.0 */ + CURLSSLBACKEND_MBEDTLS = 11, + CURLSSLBACKEND_MESALINK = 12, + CURLSSLBACKEND_BEARSSL = 13, + CURLSSLBACKEND_RUSTLS = 14 +} curl_sslbackend; + +/* aliases for library clones and renames */ +#define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL +#define CURLSSLBACKEND_BORINGSSL CURLSSLBACKEND_OPENSSL + +/* deprecated names: */ +#define CURLSSLBACKEND_CYASSL CURLSSLBACKEND_WOLFSSL +#define CURLSSLBACKEND_DARWINSSL CURLSSLBACKEND_SECURETRANSPORT + +struct curl_httppost { + struct curl_httppost *next; /* next entry in the list */ + char *name; /* pointer to allocated name */ + long namelength; /* length of name length */ + char *contents; /* pointer to allocated data contents */ + long contentslength; /* length of contents field, see also + CURL_HTTPPOST_LARGE */ + char *buffer; /* pointer to allocated buffer contents */ + long bufferlength; /* length of buffer field */ + char *contenttype; /* Content-Type */ + struct curl_slist *contentheader; /* list of extra headers for this form */ + struct curl_httppost *more; /* if one field name has more than one + file, this link should link to following + files */ + long flags; /* as defined below */ + +/* specified content is a file name */ +#define CURL_HTTPPOST_FILENAME (1<<0) +/* specified content is a file name */ +#define CURL_HTTPPOST_READFILE (1<<1) +/* name is only stored pointer do not free in formfree */ +#define CURL_HTTPPOST_PTRNAME (1<<2) +/* contents is only stored pointer do not free in formfree */ +#define CURL_HTTPPOST_PTRCONTENTS (1<<3) +/* upload file from buffer */ +#define CURL_HTTPPOST_BUFFER (1<<4) +/* upload file from pointer contents */ +#define CURL_HTTPPOST_PTRBUFFER (1<<5) +/* upload file contents by using the regular read callback to get the data and + pass the given pointer as custom pointer */ +#define CURL_HTTPPOST_CALLBACK (1<<6) +/* use size in 'contentlen', added in 7.46.0 */ +#define CURL_HTTPPOST_LARGE (1<<7) + + char *showfilename; /* The file name to show. If not set, the + actual file name will be used (if this + is a file part) */ + void *userp; /* custom pointer used for + HTTPPOST_CALLBACK posts */ + curl_off_t contentlen; /* alternative length of contents + field. Used if CURL_HTTPPOST_LARGE is + set. Added in 7.46.0 */ +}; + + +/* This is a return code for the progress callback that, when returned, will + signal libcurl to continue executing the default progress function */ +#define CURL_PROGRESSFUNC_CONTINUE 0x10000001 + +/* This is the CURLOPT_PROGRESSFUNCTION callback prototype. It is now + considered deprecated but was the only choice up until 7.31.0 */ +typedef int (*curl_progress_callback)(void *clientp, + double dltotal, + double dlnow, + double ultotal, + double ulnow); + +/* This is the CURLOPT_XFERINFOFUNCTION callback prototype. It was introduced + in 7.32.0, avoids the use of floating point numbers and provides more + detailed information. */ +typedef int (*curl_xferinfo_callback)(void *clientp, + curl_off_t dltotal, + curl_off_t dlnow, + curl_off_t ultotal, + curl_off_t ulnow); + +#ifndef CURL_MAX_READ_SIZE + /* The maximum receive buffer size configurable via CURLOPT_BUFFERSIZE. */ +#define CURL_MAX_READ_SIZE 524288 +#endif + +#ifndef CURL_MAX_WRITE_SIZE + /* Tests have proven that 20K is a very bad buffer size for uploads on + Windows, while 16K for some odd reason performed a lot better. + We do the ifndef check to allow this value to easier be changed at build + time for those who feel adventurous. The practical minimum is about + 400 bytes since libcurl uses a buffer of this size as a scratch area + (unrelated to network send operations). */ +#define CURL_MAX_WRITE_SIZE 16384 +#endif + +#ifndef CURL_MAX_HTTP_HEADER +/* The only reason to have a max limit for this is to avoid the risk of a bad + server feeding libcurl with a never-ending header that will cause reallocs + infinitely */ +#define CURL_MAX_HTTP_HEADER (100*1024) +#endif + +/* This is a magic return code for the write callback that, when returned, + will signal libcurl to pause receiving on the current transfer. */ +#define CURL_WRITEFUNC_PAUSE 0x10000001 + +typedef size_t (*curl_write_callback)(char *buffer, + size_t size, + size_t nitems, + void *outstream); + +/* This callback will be called when a new resolver request is made */ +typedef int (*curl_resolver_start_callback)(void *resolver_state, + void *reserved, void *userdata); + +/* enumeration of file types */ +typedef enum { + CURLFILETYPE_FILE = 0, + CURLFILETYPE_DIRECTORY, + CURLFILETYPE_SYMLINK, + CURLFILETYPE_DEVICE_BLOCK, + CURLFILETYPE_DEVICE_CHAR, + CURLFILETYPE_NAMEDPIPE, + CURLFILETYPE_SOCKET, + CURLFILETYPE_DOOR, /* is possible only on Sun Solaris now */ + + CURLFILETYPE_UNKNOWN /* should never occur */ +} curlfiletype; + +#define CURLFINFOFLAG_KNOWN_FILENAME (1<<0) +#define CURLFINFOFLAG_KNOWN_FILETYPE (1<<1) +#define CURLFINFOFLAG_KNOWN_TIME (1<<2) +#define CURLFINFOFLAG_KNOWN_PERM (1<<3) +#define CURLFINFOFLAG_KNOWN_UID (1<<4) +#define CURLFINFOFLAG_KNOWN_GID (1<<5) +#define CURLFINFOFLAG_KNOWN_SIZE (1<<6) +#define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1<<7) + +/* Information about a single file, used when doing FTP wildcard matching */ +struct curl_fileinfo { + char *filename; + curlfiletype filetype; + time_t time; /* always zero! */ + unsigned int perm; + int uid; + int gid; + curl_off_t size; + long int hardlinks; + + struct { + /* If some of these fields is not NULL, it is a pointer to b_data. */ + char *time; + char *perm; + char *user; + char *group; + char *target; /* pointer to the target filename of a symlink */ + } strings; + + unsigned int flags; + + /* used internally */ + char *b_data; + size_t b_size; + size_t b_used; +}; + +/* return codes for CURLOPT_CHUNK_BGN_FUNCTION */ +#define CURL_CHUNK_BGN_FUNC_OK 0 +#define CURL_CHUNK_BGN_FUNC_FAIL 1 /* tell the lib to end the task */ +#define CURL_CHUNK_BGN_FUNC_SKIP 2 /* skip this chunk over */ + +/* if splitting of data transfer is enabled, this callback is called before + download of an individual chunk started. Note that parameter "remains" works + only for FTP wildcard downloading (for now), otherwise is not used */ +typedef long (*curl_chunk_bgn_callback)(const void *transfer_info, + void *ptr, + int remains); + +/* return codes for CURLOPT_CHUNK_END_FUNCTION */ +#define CURL_CHUNK_END_FUNC_OK 0 +#define CURL_CHUNK_END_FUNC_FAIL 1 /* tell the lib to end the task */ + +/* If splitting of data transfer is enabled this callback is called after + download of an individual chunk finished. + Note! After this callback was set then it have to be called FOR ALL chunks. + Even if downloading of this chunk was skipped in CHUNK_BGN_FUNC. + This is the reason why we don't need "transfer_info" parameter in this + callback and we are not interested in "remains" parameter too. */ +typedef long (*curl_chunk_end_callback)(void *ptr); + +/* return codes for FNMATCHFUNCTION */ +#define CURL_FNMATCHFUNC_MATCH 0 /* string corresponds to the pattern */ +#define CURL_FNMATCHFUNC_NOMATCH 1 /* pattern doesn't match the string */ +#define CURL_FNMATCHFUNC_FAIL 2 /* an error occurred */ + +/* callback type for wildcard downloading pattern matching. If the + string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc. */ +typedef int (*curl_fnmatch_callback)(void *ptr, + const char *pattern, + const char *string); + +/* These are the return codes for the seek callbacks */ +#define CURL_SEEKFUNC_OK 0 +#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */ +#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so + libcurl might try other means instead */ +typedef int (*curl_seek_callback)(void *instream, + curl_off_t offset, + int origin); /* 'whence' */ + +/* This is a return code for the read callback that, when returned, will + signal libcurl to immediately abort the current transfer. */ +#define CURL_READFUNC_ABORT 0x10000000 +/* This is a return code for the read callback that, when returned, will + signal libcurl to pause sending data on the current transfer. */ +#define CURL_READFUNC_PAUSE 0x10000001 + +/* Return code for when the trailing headers' callback has terminated + without any errors*/ +#define CURL_TRAILERFUNC_OK 0 +/* Return code for when was an error in the trailing header's list and we + want to abort the request */ +#define CURL_TRAILERFUNC_ABORT 1 + +typedef size_t (*curl_read_callback)(char *buffer, + size_t size, + size_t nitems, + void *instream); + +typedef int (*curl_trailer_callback)(struct curl_slist **list, + void *userdata); + +typedef enum { + CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ + CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ + CURLSOCKTYPE_LAST /* never use */ +} curlsocktype; + +/* The return code from the sockopt_callback can signal information back + to libcurl: */ +#define CURL_SOCKOPT_OK 0 +#define CURL_SOCKOPT_ERROR 1 /* causes libcurl to abort and return + CURLE_ABORTED_BY_CALLBACK */ +#define CURL_SOCKOPT_ALREADY_CONNECTED 2 + +typedef int (*curl_sockopt_callback)(void *clientp, + curl_socket_t curlfd, + curlsocktype purpose); + +struct curl_sockaddr { + int family; + int socktype; + int protocol; + unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it + turned really ugly and painful on the systems that + lack this type */ + struct sockaddr addr; +}; + +typedef curl_socket_t +(*curl_opensocket_callback)(void *clientp, + curlsocktype purpose, + struct curl_sockaddr *address); + +typedef int +(*curl_closesocket_callback)(void *clientp, curl_socket_t item); + +typedef enum { + CURLIOE_OK, /* I/O operation successful */ + CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ + CURLIOE_FAILRESTART, /* failed to restart the read */ + CURLIOE_LAST /* never use */ +} curlioerr; + +typedef enum { + CURLIOCMD_NOP, /* no operation */ + CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ + CURLIOCMD_LAST /* never use */ +} curliocmd; + +typedef curlioerr (*curl_ioctl_callback)(CURL *handle, + int cmd, + void *clientp); + +#ifndef CURL_DID_MEMORY_FUNC_TYPEDEFS +/* + * The following typedef's are signatures of malloc, free, realloc, strdup and + * calloc respectively. Function pointers of these types can be passed to the + * curl_global_init_mem() function to set user defined memory management + * callback routines. + */ +typedef void *(*curl_malloc_callback)(size_t size); +typedef void (*curl_free_callback)(void *ptr); +typedef void *(*curl_realloc_callback)(void *ptr, size_t size); +typedef char *(*curl_strdup_callback)(const char *str); +typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); + +#define CURL_DID_MEMORY_FUNC_TYPEDEFS +#endif + +/* the kind of data that is passed to information_callback*/ +typedef enum { + CURLINFO_TEXT = 0, + CURLINFO_HEADER_IN, /* 1 */ + CURLINFO_HEADER_OUT, /* 2 */ + CURLINFO_DATA_IN, /* 3 */ + CURLINFO_DATA_OUT, /* 4 */ + CURLINFO_SSL_DATA_IN, /* 5 */ + CURLINFO_SSL_DATA_OUT, /* 6 */ + CURLINFO_END +} curl_infotype; + +typedef int (*curl_debug_callback) + (CURL *handle, /* the handle/transfer this concerns */ + curl_infotype type, /* what kind of data */ + char *data, /* points to the data */ + size_t size, /* size of the data pointed to */ + void *userptr); /* whatever the user please */ + +/* This is the CURLOPT_PREREQFUNCTION callback prototype. */ +typedef int (*curl_prereq_callback)(void *clientp, + char *conn_primary_ip, + char *conn_local_ip, + int conn_primary_port, + int conn_local_port); + +/* Return code for when the pre-request callback has terminated without + any errors */ +#define CURL_PREREQFUNC_OK 0 +/* Return code for when the pre-request callback wants to abort the + request */ +#define CURL_PREREQFUNC_ABORT 1 + +/* All possible error codes from all sorts of curl functions. Future versions + may return other values, stay prepared. + + Always add new return codes last. Never *EVER* remove any. The return + codes must remain the same! + */ + +typedef enum { + CURLE_OK = 0, + CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ + CURLE_FAILED_INIT, /* 2 */ + CURLE_URL_MALFORMAT, /* 3 */ + CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for + 7.17.0, reused in April 2011 for 7.21.5] */ + CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ + CURLE_COULDNT_RESOLVE_HOST, /* 6 */ + CURLE_COULDNT_CONNECT, /* 7 */ + CURLE_WEIRD_SERVER_REPLY, /* 8 */ + CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server + due to lack of access - when login fails + this is not returned. */ + CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for + 7.15.4, reused in Dec 2011 for 7.24.0]*/ + CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ + CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server + [was obsoleted in August 2007 for 7.17.0, + reused in Dec 2011 for 7.24.0]*/ + CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ + CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ + CURLE_FTP_CANT_GET_HOST, /* 15 */ + CURLE_HTTP2, /* 16 - A problem in the http2 framing layer. + [was obsoleted in August 2007 for 7.17.0, + reused in July 2014 for 7.38.0] */ + CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ + CURLE_PARTIAL_FILE, /* 18 */ + CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ + CURLE_OBSOLETE20, /* 20 - NOT USED */ + CURLE_QUOTE_ERROR, /* 21 - quote command failure */ + CURLE_HTTP_RETURNED_ERROR, /* 22 */ + CURLE_WRITE_ERROR, /* 23 */ + CURLE_OBSOLETE24, /* 24 - NOT USED */ + CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ + CURLE_READ_ERROR, /* 26 - couldn't open/read from file */ + CURLE_OUT_OF_MEMORY, /* 27 */ + CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ + CURLE_OBSOLETE29, /* 29 - NOT USED */ + CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ + CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ + CURLE_OBSOLETE32, /* 32 - NOT USED */ + CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ + CURLE_HTTP_POST_ERROR, /* 34 */ + CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ + CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ + CURLE_FILE_COULDNT_READ_FILE, /* 37 */ + CURLE_LDAP_CANNOT_BIND, /* 38 */ + CURLE_LDAP_SEARCH_FAILED, /* 39 */ + CURLE_OBSOLETE40, /* 40 - NOT USED */ + CURLE_FUNCTION_NOT_FOUND, /* 41 - NOT USED starting with 7.53.0 */ + CURLE_ABORTED_BY_CALLBACK, /* 42 */ + CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ + CURLE_OBSOLETE44, /* 44 - NOT USED */ + CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ + CURLE_OBSOLETE46, /* 46 - NOT USED */ + CURLE_TOO_MANY_REDIRECTS, /* 47 - catch endless re-direct loops */ + CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ + CURLE_SETOPT_OPTION_SYNTAX, /* 49 - Malformed setopt option */ + CURLE_OBSOLETE50, /* 50 - NOT USED */ + CURLE_OBSOLETE51, /* 51 - NOT USED */ + CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ + CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ + CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as + default */ + CURLE_SEND_ERROR, /* 55 - failed sending network data */ + CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ + CURLE_OBSOLETE57, /* 57 - NOT IN USE */ + CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ + CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ + CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint + wasn't verified fine */ + CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ + CURLE_OBSOLETE62, /* 62 - NOT IN USE since 7.82.0 */ + CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ + CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ + CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind + that failed */ + CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ + CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not + accepted and we failed to login */ + CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ + CURLE_TFTP_PERM, /* 69 - permission problem on server */ + CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ + CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ + CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ + CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ + CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ + CURLE_CONV_FAILED, /* 75 - conversion failed */ + CURLE_OBSOLETE76, /* 76 - NOT IN USE since 7.82.0 */ + CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing + or wrong format */ + CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ + CURLE_SSH, /* 79 - error from the SSH layer, somewhat + generic so the error message will be of + interest when this has happened */ + + CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL + connection */ + CURLE_AGAIN, /* 81 - socket is not ready for send/recv, + wait till it's ready and try again (Added + in 7.18.2) */ + CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or + wrong format (Added in 7.19.0) */ + CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in + 7.19.0) */ + CURLE_FTP_PRET_FAILED, /* 84 - a PRET command failed */ + CURLE_RTSP_CSEQ_ERROR, /* 85 - mismatch of RTSP CSeq numbers */ + CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */ + CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */ + CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */ + CURLE_NO_CONNECTION_AVAILABLE, /* 89 - No connection available, the + session will be queued */ + CURLE_SSL_PINNEDPUBKEYNOTMATCH, /* 90 - specified pinned public key did not + match */ + CURLE_SSL_INVALIDCERTSTATUS, /* 91 - invalid certificate status */ + CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer + */ + CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from + inside a callback */ + CURLE_AUTH_ERROR, /* 94 - an authentication function returned an + error */ + CURLE_HTTP3, /* 95 - An HTTP/3 layer problem */ + CURLE_QUIC_CONNECT_ERROR, /* 96 - QUIC connection error */ + CURLE_PROXY, /* 97 - proxy handshake error */ + CURLE_SSL_CLIENTCERT, /* 98 - client-side certificate required */ + CURLE_UNRECOVERABLE_POLL, /* 99 - poll/select returned fatal error */ + CURL_LAST /* never use! */ +} CURLcode; + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Previously obsolete error code re-used in 7.38.0 */ +#define CURLE_OBSOLETE16 CURLE_HTTP2 + +/* Previously obsolete error codes re-used in 7.24.0 */ +#define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED +#define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT + +/* compatibility with older names */ +#define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING +#define CURLE_FTP_WEIRD_SERVER_REPLY CURLE_WEIRD_SERVER_REPLY + +/* The following were added in 7.62.0 */ +#define CURLE_SSL_CACERT CURLE_PEER_FAILED_VERIFICATION + +/* The following were added in 7.21.5, April 2011 */ +#define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION + +/* Added for 7.78.0 */ +#define CURLE_TELNET_OPTION_SYNTAX CURLE_SETOPT_OPTION_SYNTAX + +/* The following were added in 7.17.1 */ +/* These are scheduled to disappear by 2009 */ +#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION + +/* The following were added in 7.17.0 */ +/* These are scheduled to disappear by 2009 */ +#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* no one should be using this! */ +#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 +#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 +#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 +#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 +#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 +#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 +#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 +#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 +#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 +#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 +#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 +#define CURLE_URL_MALFORMAT_USER CURLE_NOT_BUILT_IN + +#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED +#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE +#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR +#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL +#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS +#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR +#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED + +/* The following were added earlier */ + +#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT +#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR +#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED +#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED +#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE +#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME +#define CURLE_LDAP_INVALID_URL CURLE_OBSOLETE62 +#define CURLE_CONV_REQD CURLE_OBSOLETE76 + +/* This was the error code 50 in 7.7.3 and a few earlier versions, this + is no longer used by libcurl but is instead #defined here only to not + make programs break */ +#define CURLE_ALREADY_COMPLETE 99999 + +/* Provide defines for really old option names */ +#define CURLOPT_FILE CURLOPT_WRITEDATA /* name changed in 7.9.7 */ +#define CURLOPT_INFILE CURLOPT_READDATA /* name changed in 7.9.7 */ +#define CURLOPT_WRITEHEADER CURLOPT_HEADERDATA + +/* Since long deprecated options with no code in the lib that does anything + with them. */ +#define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40 +#define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72 + +#endif /*!CURL_NO_OLDIES*/ + +/* + * Proxy error codes. Returned in CURLINFO_PROXY_ERROR if CURLE_PROXY was + * return for the transfers. + */ +typedef enum { + CURLPX_OK, + CURLPX_BAD_ADDRESS_TYPE, + CURLPX_BAD_VERSION, + CURLPX_CLOSED, + CURLPX_GSSAPI, + CURLPX_GSSAPI_PERMSG, + CURLPX_GSSAPI_PROTECTION, + CURLPX_IDENTD, + CURLPX_IDENTD_DIFFER, + CURLPX_LONG_HOSTNAME, + CURLPX_LONG_PASSWD, + CURLPX_LONG_USER, + CURLPX_NO_AUTH, + CURLPX_RECV_ADDRESS, + CURLPX_RECV_AUTH, + CURLPX_RECV_CONNECT, + CURLPX_RECV_REQACK, + CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED, + CURLPX_REPLY_COMMAND_NOT_SUPPORTED, + CURLPX_REPLY_CONNECTION_REFUSED, + CURLPX_REPLY_GENERAL_SERVER_FAILURE, + CURLPX_REPLY_HOST_UNREACHABLE, + CURLPX_REPLY_NETWORK_UNREACHABLE, + CURLPX_REPLY_NOT_ALLOWED, + CURLPX_REPLY_TTL_EXPIRED, + CURLPX_REPLY_UNASSIGNED, + CURLPX_REQUEST_FAILED, + CURLPX_RESOLVE_HOST, + CURLPX_SEND_AUTH, + CURLPX_SEND_CONNECT, + CURLPX_SEND_REQUEST, + CURLPX_UNKNOWN_FAIL, + CURLPX_UNKNOWN_MODE, + CURLPX_USER_REJECTED, + CURLPX_LAST /* never use */ +} CURLproxycode; + +/* This prototype applies to all conversion callbacks */ +typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); + +typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ + void *ssl_ctx, /* actually an OpenSSL + or WolfSSL SSL_CTX, + or an mbedTLS + mbedtls_ssl_config */ + void *userptr); + +typedef enum { + CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use + CONNECT HTTP/1.1 */ + CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT + HTTP/1.0 */ + CURLPROXY_HTTPS = 2, /* added in 7.52.0 */ + CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already + in 7.10 */ + CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ + CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */ + CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the + host name rather than the IP address. added + in 7.18.0 */ +} curl_proxytype; /* this enum was added in 7.10 */ + +/* + * Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options: + * + * CURLAUTH_NONE - No HTTP authentication + * CURLAUTH_BASIC - HTTP Basic authentication (default) + * CURLAUTH_DIGEST - HTTP Digest authentication + * CURLAUTH_NEGOTIATE - HTTP Negotiate (SPNEGO) authentication + * CURLAUTH_GSSNEGOTIATE - Alias for CURLAUTH_NEGOTIATE (deprecated) + * CURLAUTH_NTLM - HTTP NTLM authentication + * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour + * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper + * CURLAUTH_BEARER - HTTP Bearer token authentication + * CURLAUTH_ONLY - Use together with a single other type to force no + * authentication or just that single type + * CURLAUTH_ANY - All fine types set + * CURLAUTH_ANYSAFE - All fine types except Basic + */ + +#define CURLAUTH_NONE ((unsigned long)0) +#define CURLAUTH_BASIC (((unsigned long)1)<<0) +#define CURLAUTH_DIGEST (((unsigned long)1)<<1) +#define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2) +/* Deprecated since the advent of CURLAUTH_NEGOTIATE */ +#define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE +/* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */ +#define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE +#define CURLAUTH_NTLM (((unsigned long)1)<<3) +#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) +#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) +#define CURLAUTH_BEARER (((unsigned long)1)<<6) +#define CURLAUTH_AWS_SIGV4 (((unsigned long)1)<<7) +#define CURLAUTH_ONLY (((unsigned long)1)<<31) +#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) +#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) + +#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ +#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ +#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ +#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ +#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ +#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ +#define CURLSSH_AUTH_AGENT (1<<4) /* agent (ssh-agent, pageant...) */ +#define CURLSSH_AUTH_GSSAPI (1<<5) /* gssapi (kerberos, ...) */ +#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY + +#define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */ +#define CURLGSSAPI_DELEGATION_POLICY_FLAG (1<<0) /* if permitted by policy */ +#define CURLGSSAPI_DELEGATION_FLAG (1<<1) /* delegate always */ + +#define CURL_ERROR_SIZE 256 + +enum curl_khtype { + CURLKHTYPE_UNKNOWN, + CURLKHTYPE_RSA1, + CURLKHTYPE_RSA, + CURLKHTYPE_DSS, + CURLKHTYPE_ECDSA, + CURLKHTYPE_ED25519 +}; + +struct curl_khkey { + const char *key; /* points to a null-terminated string encoded with base64 + if len is zero, otherwise to the "raw" data */ + size_t len; + enum curl_khtype keytype; +}; + +/* this is the set of return values expected from the curl_sshkeycallback + callback */ +enum curl_khstat { + CURLKHSTAT_FINE_ADD_TO_FILE, + CURLKHSTAT_FINE, + CURLKHSTAT_REJECT, /* reject the connection, return an error */ + CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now so + this causes a CURLE_DEFER error but otherwise the + connection will be left intact etc */ + CURLKHSTAT_FINE_REPLACE, /* accept and replace the wrong key*/ + CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */ +}; + +/* this is the set of status codes pass in to the callback */ +enum curl_khmatch { + CURLKHMATCH_OK, /* match */ + CURLKHMATCH_MISMATCH, /* host found, key mismatch! */ + CURLKHMATCH_MISSING, /* no matching host/key found */ + CURLKHMATCH_LAST /* not for use, only a marker for last-in-list */ +}; + +typedef int + (*curl_sshkeycallback) (CURL *easy, /* easy handle */ + const struct curl_khkey *knownkey, /* known */ + const struct curl_khkey *foundkey, /* found */ + enum curl_khmatch, /* libcurl's view on the keys */ + void *clientp); /* custom pointer passed with */ + /* CURLOPT_SSH_KEYDATA */ + +typedef int + (*curl_sshhostkeycallback) (void *clientp,/* custom pointer passed*/ + /* with CURLOPT_SSH_HOSTKEYDATA */ + int keytype, /* CURLKHTYPE */ + const char *key, /*hostkey to check*/ + size_t keylen); /*length of the key*/ + /*return CURLE_OK to accept*/ + /*or something else to refuse*/ + + +/* parameter for the CURLOPT_USE_SSL option */ +typedef enum { + CURLUSESSL_NONE, /* do not attempt to use SSL */ + CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ + CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ + CURLUSESSL_ALL, /* SSL for all communication or fail */ + CURLUSESSL_LAST /* not an option, never use */ +} curl_usessl; + +/* Definition of bits for the CURLOPT_SSL_OPTIONS argument: */ + +/* - ALLOW_BEAST tells libcurl to allow the BEAST SSL vulnerability in the + name of improving interoperability with older servers. Some SSL libraries + have introduced work-arounds for this flaw but those work-arounds sometimes + make the SSL communication fail. To regain functionality with those broken + servers, a user can this way allow the vulnerability back. */ +#define CURLSSLOPT_ALLOW_BEAST (1<<0) + +/* - NO_REVOKE tells libcurl to disable certificate revocation checks for those + SSL backends where such behavior is present. */ +#define CURLSSLOPT_NO_REVOKE (1<<1) + +/* - NO_PARTIALCHAIN tells libcurl to *NOT* accept a partial certificate chain + if possible. The OpenSSL backend has this ability. */ +#define CURLSSLOPT_NO_PARTIALCHAIN (1<<2) + +/* - REVOKE_BEST_EFFORT tells libcurl to ignore certificate revocation offline + checks and ignore missing revocation list for those SSL backends where such + behavior is present. */ +#define CURLSSLOPT_REVOKE_BEST_EFFORT (1<<3) + +/* - CURLSSLOPT_NATIVE_CA tells libcurl to use standard certificate store of + operating system. Currently implemented under MS-Windows. */ +#define CURLSSLOPT_NATIVE_CA (1<<4) + +/* - CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl to automatically locate and use + a client certificate for authentication. (Schannel) */ +#define CURLSSLOPT_AUTO_CLIENT_CERT (1<<5) + +/* The default connection attempt delay in milliseconds for happy eyeballs. + CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document + this value, keep them in sync. */ +#define CURL_HET_DEFAULT 200L + +/* The default connection upkeep interval in milliseconds. */ +#define CURL_UPKEEP_INTERVAL_DEFAULT 60000L + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Backwards compatibility with older names */ +/* These are scheduled to disappear by 2009 */ + +#define CURLFTPSSL_NONE CURLUSESSL_NONE +#define CURLFTPSSL_TRY CURLUSESSL_TRY +#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL +#define CURLFTPSSL_ALL CURLUSESSL_ALL +#define CURLFTPSSL_LAST CURLUSESSL_LAST +#define curl_ftpssl curl_usessl +#endif /*!CURL_NO_OLDIES*/ + +/* parameter for the CURLOPT_FTP_SSL_CCC option */ +typedef enum { + CURLFTPSSL_CCC_NONE, /* do not send CCC */ + CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ + CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ + CURLFTPSSL_CCC_LAST /* not an option, never use */ +} curl_ftpccc; + +/* parameter for the CURLOPT_FTPSSLAUTH option */ +typedef enum { + CURLFTPAUTH_DEFAULT, /* let libcurl decide */ + CURLFTPAUTH_SSL, /* use "AUTH SSL" */ + CURLFTPAUTH_TLS, /* use "AUTH TLS" */ + CURLFTPAUTH_LAST /* not an option, never use */ +} curl_ftpauth; + +/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ +typedef enum { + CURLFTP_CREATE_DIR_NONE, /* do NOT create missing dirs! */ + CURLFTP_CREATE_DIR, /* (FTP/SFTP) if CWD fails, try MKD and then CWD + again if MKD succeeded, for SFTP this does + similar magic */ + CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD + again even if MKD failed! */ + CURLFTP_CREATE_DIR_LAST /* not an option, never use */ +} curl_ftpcreatedir; + +/* parameter for the CURLOPT_FTP_FILEMETHOD option */ +typedef enum { + CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ + CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ + CURLFTPMETHOD_NOCWD, /* no CWD at all */ + CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ + CURLFTPMETHOD_LAST /* not an option, never use */ +} curl_ftpmethod; + +/* bitmask defines for CURLOPT_HEADEROPT */ +#define CURLHEADER_UNIFIED 0 +#define CURLHEADER_SEPARATE (1<<0) + +/* CURLALTSVC_* are bits for the CURLOPT_ALTSVC_CTRL option */ +#define CURLALTSVC_READONLYFILE (1<<2) +#define CURLALTSVC_H1 (1<<3) +#define CURLALTSVC_H2 (1<<4) +#define CURLALTSVC_H3 (1<<5) + + +struct curl_hstsentry { + char *name; + size_t namelen; + unsigned int includeSubDomains:1; + char expire[18]; /* YYYYMMDD HH:MM:SS [null-terminated] */ +}; + +struct curl_index { + size_t index; /* the provided entry's "index" or count */ + size_t total; /* total number of entries to save */ +}; + +typedef enum { + CURLSTS_OK, + CURLSTS_DONE, + CURLSTS_FAIL +} CURLSTScode; + +typedef CURLSTScode (*curl_hstsread_callback)(CURL *easy, + struct curl_hstsentry *e, + void *userp); +typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy, + struct curl_hstsentry *e, + struct curl_index *i, + void *userp); + +/* CURLHSTS_* are bits for the CURLOPT_HSTS option */ +#define CURLHSTS_ENABLE (long)(1<<0) +#define CURLHSTS_READONLYFILE (long)(1<<1) + +/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */ +#define CURLPROTO_HTTP (1<<0) +#define CURLPROTO_HTTPS (1<<1) +#define CURLPROTO_FTP (1<<2) +#define CURLPROTO_FTPS (1<<3) +#define CURLPROTO_SCP (1<<4) +#define CURLPROTO_SFTP (1<<5) +#define CURLPROTO_TELNET (1<<6) +#define CURLPROTO_LDAP (1<<7) +#define CURLPROTO_LDAPS (1<<8) +#define CURLPROTO_DICT (1<<9) +#define CURLPROTO_FILE (1<<10) +#define CURLPROTO_TFTP (1<<11) +#define CURLPROTO_IMAP (1<<12) +#define CURLPROTO_IMAPS (1<<13) +#define CURLPROTO_POP3 (1<<14) +#define CURLPROTO_POP3S (1<<15) +#define CURLPROTO_SMTP (1<<16) +#define CURLPROTO_SMTPS (1<<17) +#define CURLPROTO_RTSP (1<<18) +#define CURLPROTO_RTMP (1<<19) +#define CURLPROTO_RTMPT (1<<20) +#define CURLPROTO_RTMPE (1<<21) +#define CURLPROTO_RTMPTE (1<<22) +#define CURLPROTO_RTMPS (1<<23) +#define CURLPROTO_RTMPTS (1<<24) +#define CURLPROTO_GOPHER (1<<25) +#define CURLPROTO_SMB (1<<26) +#define CURLPROTO_SMBS (1<<27) +#define CURLPROTO_MQTT (1<<28) +#define CURLPROTO_GOPHERS (1<<29) +#define CURLPROTO_ALL (~0) /* enable everything */ + +/* long may be 32 or 64 bits, but we should never depend on anything else + but 32 */ +#define CURLOPTTYPE_LONG 0 +#define CURLOPTTYPE_OBJECTPOINT 10000 +#define CURLOPTTYPE_FUNCTIONPOINT 20000 +#define CURLOPTTYPE_OFF_T 30000 +#define CURLOPTTYPE_BLOB 40000 + +/* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the + string options from the header file */ + + +#define CURLOPT(na,t,nu) na = t + nu + +/* CURLOPT aliases that make no run-time difference */ + +/* 'char *' argument to a string with a trailing zero */ +#define CURLOPTTYPE_STRINGPOINT CURLOPTTYPE_OBJECTPOINT + +/* 'struct curl_slist *' argument */ +#define CURLOPTTYPE_SLISTPOINT CURLOPTTYPE_OBJECTPOINT + +/* 'void *' argument passed untouched to callback */ +#define CURLOPTTYPE_CBPOINT CURLOPTTYPE_OBJECTPOINT + +/* 'long' argument with a set of values/bitmask */ +#define CURLOPTTYPE_VALUES CURLOPTTYPE_LONG + +/* + * All CURLOPT_* values. + */ + +typedef enum { + /* This is the FILE * or void * the regular output should be written to. */ + CURLOPT(CURLOPT_WRITEDATA, CURLOPTTYPE_CBPOINT, 1), + + /* The full URL to get/put */ + CURLOPT(CURLOPT_URL, CURLOPTTYPE_STRINGPOINT, 2), + + /* Port number to connect to, if other than default. */ + CURLOPT(CURLOPT_PORT, CURLOPTTYPE_LONG, 3), + + /* Name of proxy to use. */ + CURLOPT(CURLOPT_PROXY, CURLOPTTYPE_STRINGPOINT, 4), + + /* "user:password;options" to use when fetching. */ + CURLOPT(CURLOPT_USERPWD, CURLOPTTYPE_STRINGPOINT, 5), + + /* "user:password" to use with proxy. */ + CURLOPT(CURLOPT_PROXYUSERPWD, CURLOPTTYPE_STRINGPOINT, 6), + + /* Range to get, specified as an ASCII string. */ + CURLOPT(CURLOPT_RANGE, CURLOPTTYPE_STRINGPOINT, 7), + + /* not used */ + + /* Specified file stream to upload from (use as input): */ + CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_CBPOINT, 9), + + /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE + * bytes big. */ + CURLOPT(CURLOPT_ERRORBUFFER, CURLOPTTYPE_OBJECTPOINT, 10), + + /* Function that will be called to store the output (instead of fwrite). The + * parameters will use fwrite() syntax, make sure to follow them. */ + CURLOPT(CURLOPT_WRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 11), + + /* Function that will be called to read the input (instead of fread). The + * parameters will use fread() syntax, make sure to follow them. */ + CURLOPT(CURLOPT_READFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 12), + + /* Time-out the read operation after this amount of seconds */ + CURLOPT(CURLOPT_TIMEOUT, CURLOPTTYPE_LONG, 13), + + /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about + * how large the file being sent really is. That allows better error + * checking and better verifies that the upload was successful. -1 means + * unknown size. + * + * For large file support, there is also a _LARGE version of the key + * which takes an off_t type, allowing platforms with larger off_t + * sizes to handle larger files. See below for INFILESIZE_LARGE. + */ + CURLOPT(CURLOPT_INFILESIZE, CURLOPTTYPE_LONG, 14), + + /* POST static input fields. */ + CURLOPT(CURLOPT_POSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 15), + + /* Set the referrer page (needed by some CGIs) */ + CURLOPT(CURLOPT_REFERER, CURLOPTTYPE_STRINGPOINT, 16), + + /* Set the FTP PORT string (interface name, named or numerical IP address) + Use i.e '-' to use default address. */ + CURLOPT(CURLOPT_FTPPORT, CURLOPTTYPE_STRINGPOINT, 17), + + /* Set the User-Agent string (examined by some CGIs) */ + CURLOPT(CURLOPT_USERAGENT, CURLOPTTYPE_STRINGPOINT, 18), + + /* If the download receives less than "low speed limit" bytes/second + * during "low speed time" seconds, the operations is aborted. + * You could i.e if you have a pretty high speed connection, abort if + * it is less than 2000 bytes/sec during 20 seconds. + */ + + /* Set the "low speed limit" */ + CURLOPT(CURLOPT_LOW_SPEED_LIMIT, CURLOPTTYPE_LONG, 19), + + /* Set the "low speed time" */ + CURLOPT(CURLOPT_LOW_SPEED_TIME, CURLOPTTYPE_LONG, 20), + + /* Set the continuation offset. + * + * Note there is also a _LARGE version of this key which uses + * off_t types, allowing for large file offsets on platforms which + * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. + */ + CURLOPT(CURLOPT_RESUME_FROM, CURLOPTTYPE_LONG, 21), + + /* Set cookie in request: */ + CURLOPT(CURLOPT_COOKIE, CURLOPTTYPE_STRINGPOINT, 22), + + /* This points to a linked list of headers, struct curl_slist kind. This + list is also used for RTSP (in spite of its name) */ + CURLOPT(CURLOPT_HTTPHEADER, CURLOPTTYPE_SLISTPOINT, 23), + + /* This points to a linked list of post entries, struct curl_httppost */ + CURLOPT(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24), + + /* name of the file keeping your private SSL-certificate */ + CURLOPT(CURLOPT_SSLCERT, CURLOPTTYPE_STRINGPOINT, 25), + + /* password for the SSL or SSH private key */ + CURLOPT(CURLOPT_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 26), + + /* send TYPE parameter? */ + CURLOPT(CURLOPT_CRLF, CURLOPTTYPE_LONG, 27), + + /* send linked-list of QUOTE commands */ + CURLOPT(CURLOPT_QUOTE, CURLOPTTYPE_SLISTPOINT, 28), + + /* send FILE * or void * to store headers to, if you use a callback it + is simply passed to the callback unmodified */ + CURLOPT(CURLOPT_HEADERDATA, CURLOPTTYPE_CBPOINT, 29), + + /* point to a file to read the initial cookies from, also enables + "cookie awareness" */ + CURLOPT(CURLOPT_COOKIEFILE, CURLOPTTYPE_STRINGPOINT, 31), + + /* What version to specifically try to use. + See CURL_SSLVERSION defines below. */ + CURLOPT(CURLOPT_SSLVERSION, CURLOPTTYPE_VALUES, 32), + + /* What kind of HTTP time condition to use, see defines */ + CURLOPT(CURLOPT_TIMECONDITION, CURLOPTTYPE_VALUES, 33), + + /* Time to use with the above condition. Specified in number of seconds + since 1 Jan 1970 */ + CURLOPT(CURLOPT_TIMEVALUE, CURLOPTTYPE_LONG, 34), + + /* 35 = OBSOLETE */ + + /* Custom request, for customizing the get command like + HTTP: DELETE, TRACE and others + FTP: to use a different list command + */ + CURLOPT(CURLOPT_CUSTOMREQUEST, CURLOPTTYPE_STRINGPOINT, 36), + + /* FILE handle to use instead of stderr */ + CURLOPT(CURLOPT_STDERR, CURLOPTTYPE_OBJECTPOINT, 37), + + /* 38 is not used */ + + /* send linked-list of post-transfer QUOTE commands */ + CURLOPT(CURLOPT_POSTQUOTE, CURLOPTTYPE_SLISTPOINT, 39), + + /* OBSOLETE, do not use! */ + CURLOPT(CURLOPT_OBSOLETE40, CURLOPTTYPE_OBJECTPOINT, 40), + + /* talk a lot */ + CURLOPT(CURLOPT_VERBOSE, CURLOPTTYPE_LONG, 41), + + /* throw the header out too */ + CURLOPT(CURLOPT_HEADER, CURLOPTTYPE_LONG, 42), + + /* shut off the progress meter */ + CURLOPT(CURLOPT_NOPROGRESS, CURLOPTTYPE_LONG, 43), + + /* use HEAD to get http document */ + CURLOPT(CURLOPT_NOBODY, CURLOPTTYPE_LONG, 44), + + /* no output on http error codes >= 400 */ + CURLOPT(CURLOPT_FAILONERROR, CURLOPTTYPE_LONG, 45), + + /* this is an upload */ + CURLOPT(CURLOPT_UPLOAD, CURLOPTTYPE_LONG, 46), + + /* HTTP POST method */ + CURLOPT(CURLOPT_POST, CURLOPTTYPE_LONG, 47), + + /* bare names when listing directories */ + CURLOPT(CURLOPT_DIRLISTONLY, CURLOPTTYPE_LONG, 48), + + /* Append instead of overwrite on upload! */ + CURLOPT(CURLOPT_APPEND, CURLOPTTYPE_LONG, 50), + + /* Specify whether to read the user+password from the .netrc or the URL. + * This must be one of the CURL_NETRC_* enums below. */ + CURLOPT(CURLOPT_NETRC, CURLOPTTYPE_VALUES, 51), + + /* use Location: Luke! */ + CURLOPT(CURLOPT_FOLLOWLOCATION, CURLOPTTYPE_LONG, 52), + + /* transfer data in text/ASCII format */ + CURLOPT(CURLOPT_TRANSFERTEXT, CURLOPTTYPE_LONG, 53), + + /* HTTP PUT */ + CURLOPT(CURLOPT_PUT, CURLOPTTYPE_LONG, 54), + + /* 55 = OBSOLETE */ + + /* DEPRECATED + * Function that will be called instead of the internal progress display + * function. This function should be defined as the curl_progress_callback + * prototype defines. */ + CURLOPT(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56), + + /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION + callbacks */ + CURLOPT(CURLOPT_XFERINFODATA, CURLOPTTYPE_CBPOINT, 57), +#define CURLOPT_PROGRESSDATA CURLOPT_XFERINFODATA + + /* We want the referrer field set automatically when following locations */ + CURLOPT(CURLOPT_AUTOREFERER, CURLOPTTYPE_LONG, 58), + + /* Port of the proxy, can be set in the proxy string as well with: + "[host]:[port]" */ + CURLOPT(CURLOPT_PROXYPORT, CURLOPTTYPE_LONG, 59), + + /* size of the POST input data, if strlen() is not good to use */ + CURLOPT(CURLOPT_POSTFIELDSIZE, CURLOPTTYPE_LONG, 60), + + /* tunnel non-http operations through a HTTP proxy */ + CURLOPT(CURLOPT_HTTPPROXYTUNNEL, CURLOPTTYPE_LONG, 61), + + /* Set the interface string to use as outgoing network interface */ + CURLOPT(CURLOPT_INTERFACE, CURLOPTTYPE_STRINGPOINT, 62), + + /* Set the krb4/5 security level, this also enables krb4/5 awareness. This + * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string + * is set but doesn't match one of these, 'private' will be used. */ + CURLOPT(CURLOPT_KRBLEVEL, CURLOPTTYPE_STRINGPOINT, 63), + + /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ + CURLOPT(CURLOPT_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 64), + + /* The CApath or CAfile used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_CAINFO, CURLOPTTYPE_STRINGPOINT, 65), + + /* 66 = OBSOLETE */ + /* 67 = OBSOLETE */ + + /* Maximum number of http redirects to follow */ + CURLOPT(CURLOPT_MAXREDIRS, CURLOPTTYPE_LONG, 68), + + /* Pass a long set to 1 to get the date of the requested document (if + possible)! Pass a zero to shut it off. */ + CURLOPT(CURLOPT_FILETIME, CURLOPTTYPE_LONG, 69), + + /* This points to a linked list of telnet options */ + CURLOPT(CURLOPT_TELNETOPTIONS, CURLOPTTYPE_SLISTPOINT, 70), + + /* Max amount of cached alive connections */ + CURLOPT(CURLOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 71), + + /* OBSOLETE, do not use! */ + CURLOPT(CURLOPT_OBSOLETE72, CURLOPTTYPE_LONG, 72), + + /* 73 = OBSOLETE */ + + /* Set to explicitly use a new connection for the upcoming transfer. + Do not use this unless you're absolutely sure of this, as it makes the + operation slower and is less friendly for the network. */ + CURLOPT(CURLOPT_FRESH_CONNECT, CURLOPTTYPE_LONG, 74), + + /* Set to explicitly forbid the upcoming transfer's connection to be re-used + when done. Do not use this unless you're absolutely sure of this, as it + makes the operation slower and is less friendly for the network. */ + CURLOPT(CURLOPT_FORBID_REUSE, CURLOPTTYPE_LONG, 75), + + /* Set to a file name that contains random data for libcurl to use to + seed the random engine when doing SSL connects. */ + CURLOPT(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76), + + /* Set to the Entropy Gathering Daemon socket pathname */ + CURLOPT(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77), + + /* Time-out connect operations after this amount of seconds, if connects are + OK within this time, then fine... This only aborts the connect phase. */ + CURLOPT(CURLOPT_CONNECTTIMEOUT, CURLOPTTYPE_LONG, 78), + + /* Function that will be called to store headers (instead of fwrite). The + * parameters will use fwrite() syntax, make sure to follow them. */ + CURLOPT(CURLOPT_HEADERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 79), + + /* Set this to force the HTTP request to get back to GET. Only really usable + if POST, PUT or a custom request have been used first. + */ + CURLOPT(CURLOPT_HTTPGET, CURLOPTTYPE_LONG, 80), + + /* Set if we should verify the Common name from the peer certificate in ssl + * handshake, set 1 to check existence, 2 to ensure that it matches the + * provided hostname. */ + CURLOPT(CURLOPT_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 81), + + /* Specify which file name to write all known cookies in after completed + operation. Set file name to "-" (dash) to make it go to stdout. */ + CURLOPT(CURLOPT_COOKIEJAR, CURLOPTTYPE_STRINGPOINT, 82), + + /* Specify which SSL ciphers to use */ + CURLOPT(CURLOPT_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 83), + + /* Specify which HTTP version to use! This must be set to one of the + CURL_HTTP_VERSION* enums set below. */ + CURLOPT(CURLOPT_HTTP_VERSION, CURLOPTTYPE_VALUES, 84), + + /* Specifically switch on or off the FTP engine's use of the EPSV command. By + default, that one will always be attempted before the more traditional + PASV command. */ + CURLOPT(CURLOPT_FTP_USE_EPSV, CURLOPTTYPE_LONG, 85), + + /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ + CURLOPT(CURLOPT_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 86), + + /* name of the file keeping your private SSL-key */ + CURLOPT(CURLOPT_SSLKEY, CURLOPTTYPE_STRINGPOINT, 87), + + /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ + CURLOPT(CURLOPT_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 88), + + /* crypto engine for the SSL-sub system */ + CURLOPT(CURLOPT_SSLENGINE, CURLOPTTYPE_STRINGPOINT, 89), + + /* set the crypto engine for the SSL-sub system as default + the param has no meaning... + */ + CURLOPT(CURLOPT_SSLENGINE_DEFAULT, CURLOPTTYPE_LONG, 90), + + /* Non-zero value means to use the global dns cache */ + /* DEPRECATED, do not use! */ + CURLOPT(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91), + + /* DNS cache timeout */ + CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92), + + /* send linked-list of pre-transfer QUOTE commands */ + CURLOPT(CURLOPT_PREQUOTE, CURLOPTTYPE_SLISTPOINT, 93), + + /* set the debug function */ + CURLOPT(CURLOPT_DEBUGFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 94), + + /* set the data for the debug function */ + CURLOPT(CURLOPT_DEBUGDATA, CURLOPTTYPE_CBPOINT, 95), + + /* mark this as start of a cookie session */ + CURLOPT(CURLOPT_COOKIESESSION, CURLOPTTYPE_LONG, 96), + + /* The CApath directory used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_CAPATH, CURLOPTTYPE_STRINGPOINT, 97), + + /* Instruct libcurl to use a smaller receive buffer */ + CURLOPT(CURLOPT_BUFFERSIZE, CURLOPTTYPE_LONG, 98), + + /* Instruct libcurl to not use any signal/alarm handlers, even when using + timeouts. This option is useful for multi-threaded applications. + See libcurl-the-guide for more background information. */ + CURLOPT(CURLOPT_NOSIGNAL, CURLOPTTYPE_LONG, 99), + + /* Provide a CURLShare for mutexing non-ts data */ + CURLOPT(CURLOPT_SHARE, CURLOPTTYPE_OBJECTPOINT, 100), + + /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), + CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and + CURLPROXY_SOCKS5. */ + CURLOPT(CURLOPT_PROXYTYPE, CURLOPTTYPE_VALUES, 101), + + /* Set the Accept-Encoding string. Use this to tell a server you would like + the response to be compressed. Before 7.21.6, this was known as + CURLOPT_ENCODING */ + CURLOPT(CURLOPT_ACCEPT_ENCODING, CURLOPTTYPE_STRINGPOINT, 102), + + /* Set pointer to private data */ + CURLOPT(CURLOPT_PRIVATE, CURLOPTTYPE_OBJECTPOINT, 103), + + /* Set aliases for HTTP 200 in the HTTP Response header */ + CURLOPT(CURLOPT_HTTP200ALIASES, CURLOPTTYPE_SLISTPOINT, 104), + + /* Continue to send authentication (user+password) when following locations, + even when hostname changed. This can potentially send off the name + and password to whatever host the server decides. */ + CURLOPT(CURLOPT_UNRESTRICTED_AUTH, CURLOPTTYPE_LONG, 105), + + /* Specifically switch on or off the FTP engine's use of the EPRT command ( + it also disables the LPRT attempt). By default, those ones will always be + attempted before the good old traditional PORT command. */ + CURLOPT(CURLOPT_FTP_USE_EPRT, CURLOPTTYPE_LONG, 106), + + /* Set this to a bitmask value to enable the particular authentications + methods you like. Use this in combination with CURLOPT_USERPWD. + Note that setting multiple bits may cause extra network round-trips. */ + CURLOPT(CURLOPT_HTTPAUTH, CURLOPTTYPE_VALUES, 107), + + /* Set the ssl context callback function, currently only for OpenSSL or + WolfSSL ssl_ctx, or mbedTLS mbedtls_ssl_config in the second argument. + The function must match the curl_ssl_ctx_callback prototype. */ + CURLOPT(CURLOPT_SSL_CTX_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 108), + + /* Set the userdata for the ssl context callback function's third + argument */ + CURLOPT(CURLOPT_SSL_CTX_DATA, CURLOPTTYPE_CBPOINT, 109), + + /* FTP Option that causes missing dirs to be created on the remote server. + In 7.19.4 we introduced the convenience enums for this option using the + CURLFTP_CREATE_DIR prefix. + */ + CURLOPT(CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPTTYPE_LONG, 110), + + /* Set this to a bitmask value to enable the particular authentications + methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. + Note that setting multiple bits may cause extra network round-trips. */ + CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_VALUES, 111), + + /* FTP option that changes the timeout, in seconds, associated with + getting a response. This is different from transfer timeout time and + essentially places a demand on the FTP server to acknowledge commands + in a timely manner. */ + CURLOPT(CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPTTYPE_LONG, 112), +#define CURLOPT_SERVER_RESPONSE_TIMEOUT CURLOPT_FTP_RESPONSE_TIMEOUT + + /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to + tell libcurl to use those IP versions only. This only has effect on + systems with support for more than one, i.e IPv4 _and_ IPv6. */ + CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_VALUES, 113), + + /* Set this option to limit the size of a file that will be downloaded from + an HTTP or FTP server. + + Note there is also _LARGE version which adds large file support for + platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ + CURLOPT(CURLOPT_MAXFILESIZE, CURLOPTTYPE_LONG, 114), + + /* See the comment for INFILESIZE above, but in short, specifies + * the size of the file being uploaded. -1 means unknown. + */ + CURLOPT(CURLOPT_INFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 115), + + /* Sets the continuation offset. There is also a CURLOPTTYPE_LONG version + * of this; look above for RESUME_FROM. + */ + CURLOPT(CURLOPT_RESUME_FROM_LARGE, CURLOPTTYPE_OFF_T, 116), + + /* Sets the maximum size of data that will be downloaded from + * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. + */ + CURLOPT(CURLOPT_MAXFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 117), + + /* Set this option to the file name of your .netrc file you want libcurl + to parse (using the CURLOPT_NETRC option). If not set, libcurl will do + a poor attempt to find the user's home directory and check for a .netrc + file in there. */ + CURLOPT(CURLOPT_NETRC_FILE, CURLOPTTYPE_STRINGPOINT, 118), + + /* Enable SSL/TLS for FTP, pick one of: + CURLUSESSL_TRY - try using SSL, proceed anyway otherwise + CURLUSESSL_CONTROL - SSL for the control connection or fail + CURLUSESSL_ALL - SSL for all communication or fail + */ + CURLOPT(CURLOPT_USE_SSL, CURLOPTTYPE_VALUES, 119), + + /* The _LARGE version of the standard POSTFIELDSIZE option */ + CURLOPT(CURLOPT_POSTFIELDSIZE_LARGE, CURLOPTTYPE_OFF_T, 120), + + /* Enable/disable the TCP Nagle algorithm */ + CURLOPT(CURLOPT_TCP_NODELAY, CURLOPTTYPE_LONG, 121), + + /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 123 OBSOLETE. Gone in 7.16.0 */ + /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 127 OBSOLETE. Gone in 7.16.0 */ + /* 128 OBSOLETE. Gone in 7.16.0 */ + + /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option + can be used to change libcurl's default action which is to first try + "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK + response has been received. + + Available parameters are: + CURLFTPAUTH_DEFAULT - let libcurl decide + CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS + CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL + */ + CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_VALUES, 129), + + CURLOPT(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130), + CURLOPT(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131), + + /* 132 OBSOLETE. Gone in 7.16.0 */ + /* 133 OBSOLETE. Gone in 7.16.0 */ + + /* null-terminated string for pass on to the FTP server when asked for + "account" info */ + CURLOPT(CURLOPT_FTP_ACCOUNT, CURLOPTTYPE_STRINGPOINT, 134), + + /* feed cookie into cookie engine */ + CURLOPT(CURLOPT_COOKIELIST, CURLOPTTYPE_STRINGPOINT, 135), + + /* ignore Content-Length */ + CURLOPT(CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPTTYPE_LONG, 136), + + /* Set to non-zero to skip the IP address received in a 227 PASV FTP server + response. Typically used for FTP-SSL purposes but is not restricted to + that. libcurl will then instead use the same IP address it used for the + control connection. */ + CURLOPT(CURLOPT_FTP_SKIP_PASV_IP, CURLOPTTYPE_LONG, 137), + + /* Select "file method" to use when doing FTP, see the curl_ftpmethod + above. */ + CURLOPT(CURLOPT_FTP_FILEMETHOD, CURLOPTTYPE_VALUES, 138), + + /* Local port number to bind the socket to */ + CURLOPT(CURLOPT_LOCALPORT, CURLOPTTYPE_LONG, 139), + + /* Number of ports to try, including the first one set with LOCALPORT. + Thus, setting it to 1 will make no additional attempts but the first. + */ + CURLOPT(CURLOPT_LOCALPORTRANGE, CURLOPTTYPE_LONG, 140), + + /* no transfer, set up connection and let application use the socket by + extracting it with CURLINFO_LASTSOCKET */ + CURLOPT(CURLOPT_CONNECT_ONLY, CURLOPTTYPE_LONG, 141), + + /* Function that will be called to convert from the + network encoding (instead of using the iconv calls in libcurl) */ + CURLOPT(CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 142), + + /* Function that will be called to convert to the + network encoding (instead of using the iconv calls in libcurl) */ + CURLOPT(CURLOPT_CONV_TO_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 143), + + /* Function that will be called to convert from UTF8 + (instead of using the iconv calls in libcurl) + Note that this is used only for SSL certificate processing */ + CURLOPT(CURLOPT_CONV_FROM_UTF8_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 144), + + /* if the connection proceeds too quickly then need to slow it down */ + /* limit-rate: maximum number of bytes per second to send or receive */ + CURLOPT(CURLOPT_MAX_SEND_SPEED_LARGE, CURLOPTTYPE_OFF_T, 145), + CURLOPT(CURLOPT_MAX_RECV_SPEED_LARGE, CURLOPTTYPE_OFF_T, 146), + + /* Pointer to command string to send if USER/PASS fails. */ + CURLOPT(CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPTTYPE_STRINGPOINT, 147), + + /* callback function for setting socket options */ + CURLOPT(CURLOPT_SOCKOPTFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 148), + CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_CBPOINT, 149), + + /* set to 0 to disable session ID re-use for this transfer, default is + enabled (== 1) */ + CURLOPT(CURLOPT_SSL_SESSIONID_CACHE, CURLOPTTYPE_LONG, 150), + + /* allowed SSH authentication methods */ + CURLOPT(CURLOPT_SSH_AUTH_TYPES, CURLOPTTYPE_VALUES, 151), + + /* Used by scp/sftp to do public/private key authentication */ + CURLOPT(CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPTTYPE_STRINGPOINT, 152), + CURLOPT(CURLOPT_SSH_PRIVATE_KEYFILE, CURLOPTTYPE_STRINGPOINT, 153), + + /* Send CCC (Clear Command Channel) after authentication */ + CURLOPT(CURLOPT_FTP_SSL_CCC, CURLOPTTYPE_LONG, 154), + + /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ + CURLOPT(CURLOPT_TIMEOUT_MS, CURLOPTTYPE_LONG, 155), + CURLOPT(CURLOPT_CONNECTTIMEOUT_MS, CURLOPTTYPE_LONG, 156), + + /* set to zero to disable the libcurl's decoding and thus pass the raw body + data to the application even when it is encoded/compressed */ + CURLOPT(CURLOPT_HTTP_TRANSFER_DECODING, CURLOPTTYPE_LONG, 157), + CURLOPT(CURLOPT_HTTP_CONTENT_DECODING, CURLOPTTYPE_LONG, 158), + + /* Permission used when creating new files and directories on the remote + server for protocols that support it, SFTP/SCP/FILE */ + CURLOPT(CURLOPT_NEW_FILE_PERMS, CURLOPTTYPE_LONG, 159), + CURLOPT(CURLOPT_NEW_DIRECTORY_PERMS, CURLOPTTYPE_LONG, 160), + + /* Set the behavior of POST when redirecting. Values must be set to one + of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ + CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_VALUES, 161), + + /* used by scp/sftp to verify the host's public key */ + CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, CURLOPTTYPE_STRINGPOINT, 162), + + /* Callback function for opening socket (instead of socket(2)). Optionally, + callback is able change the address or refuse to connect returning + CURL_SOCKET_BAD. The callback should have type + curl_opensocket_callback */ + CURLOPT(CURLOPT_OPENSOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 163), + CURLOPT(CURLOPT_OPENSOCKETDATA, CURLOPTTYPE_CBPOINT, 164), + + /* POST volatile input fields. */ + CURLOPT(CURLOPT_COPYPOSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 165), + + /* set transfer mode (;type=) when doing FTP via an HTTP proxy */ + CURLOPT(CURLOPT_PROXY_TRANSFER_MODE, CURLOPTTYPE_LONG, 166), + + /* Callback function for seeking in the input stream */ + CURLOPT(CURLOPT_SEEKFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 167), + CURLOPT(CURLOPT_SEEKDATA, CURLOPTTYPE_CBPOINT, 168), + + /* CRL file */ + CURLOPT(CURLOPT_CRLFILE, CURLOPTTYPE_STRINGPOINT, 169), + + /* Issuer certificate */ + CURLOPT(CURLOPT_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 170), + + /* (IPv6) Address scope */ + CURLOPT(CURLOPT_ADDRESS_SCOPE, CURLOPTTYPE_LONG, 171), + + /* Collect certificate chain info and allow it to get retrievable with + CURLINFO_CERTINFO after the transfer is complete. */ + CURLOPT(CURLOPT_CERTINFO, CURLOPTTYPE_LONG, 172), + + /* "name" and "pwd" to use when fetching. */ + CURLOPT(CURLOPT_USERNAME, CURLOPTTYPE_STRINGPOINT, 173), + CURLOPT(CURLOPT_PASSWORD, CURLOPTTYPE_STRINGPOINT, 174), + + /* "name" and "pwd" to use with Proxy when fetching. */ + CURLOPT(CURLOPT_PROXYUSERNAME, CURLOPTTYPE_STRINGPOINT, 175), + CURLOPT(CURLOPT_PROXYPASSWORD, CURLOPTTYPE_STRINGPOINT, 176), + + /* Comma separated list of hostnames defining no-proxy zones. These should + match both hostnames directly, and hostnames within a domain. For + example, local.com will match local.com and www.local.com, but NOT + notlocal.com or www.notlocal.com. For compatibility with other + implementations of this, .local.com will be considered to be the same as + local.com. A single * is the only valid wildcard, and effectively + disables the use of proxy. */ + CURLOPT(CURLOPT_NOPROXY, CURLOPTTYPE_STRINGPOINT, 177), + + /* block size for TFTP transfers */ + CURLOPT(CURLOPT_TFTP_BLKSIZE, CURLOPTTYPE_LONG, 178), + + /* Socks Service */ + /* DEPRECATED, do not use! */ + CURLOPT(CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPTTYPE_STRINGPOINT, 179), + + /* Socks Service */ + CURLOPT(CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPTTYPE_LONG, 180), + + /* set the bitmask for the protocols that are allowed to be used for the + transfer, which thus helps the app which takes URLs from users or other + external inputs and want to restrict what protocol(s) to deal + with. Defaults to CURLPROTO_ALL. */ + CURLOPT(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181), + + /* set the bitmask for the protocols that libcurl is allowed to follow to, + as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs + to be set in both bitmasks to be allowed to get redirected to. */ + CURLOPT(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182), + + /* set the SSH knownhost file name to use */ + CURLOPT(CURLOPT_SSH_KNOWNHOSTS, CURLOPTTYPE_STRINGPOINT, 183), + + /* set the SSH host key callback, must point to a curl_sshkeycallback + function */ + CURLOPT(CURLOPT_SSH_KEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 184), + + /* set the SSH host key callback custom pointer */ + CURLOPT(CURLOPT_SSH_KEYDATA, CURLOPTTYPE_CBPOINT, 185), + + /* set the SMTP mail originator */ + CURLOPT(CURLOPT_MAIL_FROM, CURLOPTTYPE_STRINGPOINT, 186), + + /* set the list of SMTP mail receiver(s) */ + CURLOPT(CURLOPT_MAIL_RCPT, CURLOPTTYPE_SLISTPOINT, 187), + + /* FTP: send PRET before PASV */ + CURLOPT(CURLOPT_FTP_USE_PRET, CURLOPTTYPE_LONG, 188), + + /* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */ + CURLOPT(CURLOPT_RTSP_REQUEST, CURLOPTTYPE_VALUES, 189), + + /* The RTSP session identifier */ + CURLOPT(CURLOPT_RTSP_SESSION_ID, CURLOPTTYPE_STRINGPOINT, 190), + + /* The RTSP stream URI */ + CURLOPT(CURLOPT_RTSP_STREAM_URI, CURLOPTTYPE_STRINGPOINT, 191), + + /* The Transport: header to use in RTSP requests */ + CURLOPT(CURLOPT_RTSP_TRANSPORT, CURLOPTTYPE_STRINGPOINT, 192), + + /* Manually initialize the client RTSP CSeq for this handle */ + CURLOPT(CURLOPT_RTSP_CLIENT_CSEQ, CURLOPTTYPE_LONG, 193), + + /* Manually initialize the server RTSP CSeq for this handle */ + CURLOPT(CURLOPT_RTSP_SERVER_CSEQ, CURLOPTTYPE_LONG, 194), + + /* The stream to pass to INTERLEAVEFUNCTION. */ + CURLOPT(CURLOPT_INTERLEAVEDATA, CURLOPTTYPE_CBPOINT, 195), + + /* Let the application define a custom write method for RTP data */ + CURLOPT(CURLOPT_INTERLEAVEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 196), + + /* Turn on wildcard matching */ + CURLOPT(CURLOPT_WILDCARDMATCH, CURLOPTTYPE_LONG, 197), + + /* Directory matching callback called before downloading of an + individual file (chunk) started */ + CURLOPT(CURLOPT_CHUNK_BGN_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 198), + + /* Directory matching callback called after the file (chunk) + was downloaded, or skipped */ + CURLOPT(CURLOPT_CHUNK_END_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 199), + + /* Change match (fnmatch-like) callback for wildcard matching */ + CURLOPT(CURLOPT_FNMATCH_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 200), + + /* Let the application define custom chunk data pointer */ + CURLOPT(CURLOPT_CHUNK_DATA, CURLOPTTYPE_CBPOINT, 201), + + /* FNMATCH_FUNCTION user pointer */ + CURLOPT(CURLOPT_FNMATCH_DATA, CURLOPTTYPE_CBPOINT, 202), + + /* send linked-list of name:port:address sets */ + CURLOPT(CURLOPT_RESOLVE, CURLOPTTYPE_SLISTPOINT, 203), + + /* Set a username for authenticated TLS */ + CURLOPT(CURLOPT_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 204), + + /* Set a password for authenticated TLS */ + CURLOPT(CURLOPT_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 205), + + /* Set authentication type for authenticated TLS */ + CURLOPT(CURLOPT_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 206), + + /* Set to 1 to enable the "TE:" header in HTTP requests to ask for + compressed transfer-encoded responses. Set to 0 to disable the use of TE: + in outgoing requests. The current default is 0, but it might change in a + future libcurl release. + + libcurl will ask for the compressed methods it knows of, and if that + isn't any, it will not ask for transfer-encoding at all even if this + option is set to 1. + + */ + CURLOPT(CURLOPT_TRANSFER_ENCODING, CURLOPTTYPE_LONG, 207), + + /* Callback function for closing socket (instead of close(2)). The callback + should have type curl_closesocket_callback */ + CURLOPT(CURLOPT_CLOSESOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 208), + CURLOPT(CURLOPT_CLOSESOCKETDATA, CURLOPTTYPE_CBPOINT, 209), + + /* allow GSSAPI credential delegation */ + CURLOPT(CURLOPT_GSSAPI_DELEGATION, CURLOPTTYPE_VALUES, 210), + + /* Set the name servers to use for DNS resolution */ + CURLOPT(CURLOPT_DNS_SERVERS, CURLOPTTYPE_STRINGPOINT, 211), + + /* Time-out accept operations (currently for FTP only) after this amount + of milliseconds. */ + CURLOPT(CURLOPT_ACCEPTTIMEOUT_MS, CURLOPTTYPE_LONG, 212), + + /* Set TCP keepalive */ + CURLOPT(CURLOPT_TCP_KEEPALIVE, CURLOPTTYPE_LONG, 213), + + /* non-universal keepalive knobs (Linux, AIX, HP-UX, more) */ + CURLOPT(CURLOPT_TCP_KEEPIDLE, CURLOPTTYPE_LONG, 214), + CURLOPT(CURLOPT_TCP_KEEPINTVL, CURLOPTTYPE_LONG, 215), + + /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */ + CURLOPT(CURLOPT_SSL_OPTIONS, CURLOPTTYPE_VALUES, 216), + + /* Set the SMTP auth originator */ + CURLOPT(CURLOPT_MAIL_AUTH, CURLOPTTYPE_STRINGPOINT, 217), + + /* Enable/disable SASL initial response */ + CURLOPT(CURLOPT_SASL_IR, CURLOPTTYPE_LONG, 218), + + /* Function that will be called instead of the internal progress display + * function. This function should be defined as the curl_xferinfo_callback + * prototype defines. (Deprecates CURLOPT_PROGRESSFUNCTION) */ + CURLOPT(CURLOPT_XFERINFOFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 219), + + /* The XOAUTH2 bearer token */ + CURLOPT(CURLOPT_XOAUTH2_BEARER, CURLOPTTYPE_STRINGPOINT, 220), + + /* Set the interface string to use as outgoing network + * interface for DNS requests. + * Only supported by the c-ares DNS backend */ + CURLOPT(CURLOPT_DNS_INTERFACE, CURLOPTTYPE_STRINGPOINT, 221), + + /* Set the local IPv4 address to use for outgoing DNS requests. + * Only supported by the c-ares DNS backend */ + CURLOPT(CURLOPT_DNS_LOCAL_IP4, CURLOPTTYPE_STRINGPOINT, 222), + + /* Set the local IPv6 address to use for outgoing DNS requests. + * Only supported by the c-ares DNS backend */ + CURLOPT(CURLOPT_DNS_LOCAL_IP6, CURLOPTTYPE_STRINGPOINT, 223), + + /* Set authentication options directly */ + CURLOPT(CURLOPT_LOGIN_OPTIONS, CURLOPTTYPE_STRINGPOINT, 224), + + /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ + CURLOPT(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225), + + /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */ + CURLOPT(CURLOPT_SSL_ENABLE_ALPN, CURLOPTTYPE_LONG, 226), + + /* Time to wait for a response to a HTTP request containing an + * Expect: 100-continue header before sending the data anyway. */ + CURLOPT(CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPTTYPE_LONG, 227), + + /* This points to a linked list of headers used for proxy requests only, + struct curl_slist kind */ + CURLOPT(CURLOPT_PROXYHEADER, CURLOPTTYPE_SLISTPOINT, 228), + + /* Pass in a bitmask of "header options" */ + CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_VALUES, 229), + + /* The public key in DER form used to validate the peer public key + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 230), + + /* Path to Unix domain socket */ + CURLOPT(CURLOPT_UNIX_SOCKET_PATH, CURLOPTTYPE_STRINGPOINT, 231), + + /* Set if we should verify the certificate status. */ + CURLOPT(CURLOPT_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 232), + + /* Set if we should enable TLS false start. */ + CURLOPT(CURLOPT_SSL_FALSESTART, CURLOPTTYPE_LONG, 233), + + /* Do not squash dot-dot sequences */ + CURLOPT(CURLOPT_PATH_AS_IS, CURLOPTTYPE_LONG, 234), + + /* Proxy Service Name */ + CURLOPT(CURLOPT_PROXY_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 235), + + /* Service Name */ + CURLOPT(CURLOPT_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 236), + + /* Wait/don't wait for pipe/mutex to clarify */ + CURLOPT(CURLOPT_PIPEWAIT, CURLOPTTYPE_LONG, 237), + + /* Set the protocol used when curl is given a URL without a protocol */ + CURLOPT(CURLOPT_DEFAULT_PROTOCOL, CURLOPTTYPE_STRINGPOINT, 238), + + /* Set stream weight, 1 - 256 (default is 16) */ + CURLOPT(CURLOPT_STREAM_WEIGHT, CURLOPTTYPE_LONG, 239), + + /* Set stream dependency on another CURL handle */ + CURLOPT(CURLOPT_STREAM_DEPENDS, CURLOPTTYPE_OBJECTPOINT, 240), + + /* Set E-xclusive stream dependency on another CURL handle */ + CURLOPT(CURLOPT_STREAM_DEPENDS_E, CURLOPTTYPE_OBJECTPOINT, 241), + + /* Do not send any tftp option requests to the server */ + CURLOPT(CURLOPT_TFTP_NO_OPTIONS, CURLOPTTYPE_LONG, 242), + + /* Linked-list of host:port:connect-to-host:connect-to-port, + overrides the URL's host:port (only for the network layer) */ + CURLOPT(CURLOPT_CONNECT_TO, CURLOPTTYPE_SLISTPOINT, 243), + + /* Set TCP Fast Open */ + CURLOPT(CURLOPT_TCP_FASTOPEN, CURLOPTTYPE_LONG, 244), + + /* Continue to send data if the server responds early with an + * HTTP status code >= 300 */ + CURLOPT(CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPTTYPE_LONG, 245), + + /* The CApath or CAfile used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_CAINFO, CURLOPTTYPE_STRINGPOINT, 246), + + /* The CApath directory used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_CAPATH, CURLOPTTYPE_STRINGPOINT, 247), + + /* Set if we should verify the proxy in ssl handshake, + set 1 to verify. */ + CURLOPT(CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 248), + + /* Set if we should verify the Common name from the proxy certificate in ssl + * handshake, set 1 to check existence, 2 to ensure that it matches + * the provided hostname. */ + CURLOPT(CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 249), + + /* What version to specifically try to use for proxy. + See CURL_SSLVERSION defines below. */ + CURLOPT(CURLOPT_PROXY_SSLVERSION, CURLOPTTYPE_VALUES, 250), + + /* Set a username for authenticated TLS for proxy */ + CURLOPT(CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 251), + + /* Set a password for authenticated TLS for proxy */ + CURLOPT(CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 252), + + /* Set authentication type for authenticated TLS for proxy */ + CURLOPT(CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 253), + + /* name of the file keeping your private SSL-certificate for proxy */ + CURLOPT(CURLOPT_PROXY_SSLCERT, CURLOPTTYPE_STRINGPOINT, 254), + + /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for + proxy */ + CURLOPT(CURLOPT_PROXY_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 255), + + /* name of the file keeping your private SSL-key for proxy */ + CURLOPT(CURLOPT_PROXY_SSLKEY, CURLOPTTYPE_STRINGPOINT, 256), + + /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for + proxy */ + CURLOPT(CURLOPT_PROXY_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 257), + + /* password for the SSL private key for proxy */ + CURLOPT(CURLOPT_PROXY_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 258), + + /* Specify which SSL ciphers to use for proxy */ + CURLOPT(CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 259), + + /* CRL file for proxy */ + CURLOPT(CURLOPT_PROXY_CRLFILE, CURLOPTTYPE_STRINGPOINT, 260), + + /* Enable/disable specific SSL features with a bitmask for proxy, see + CURLSSLOPT_* */ + CURLOPT(CURLOPT_PROXY_SSL_OPTIONS, CURLOPTTYPE_LONG, 261), + + /* Name of pre proxy to use. */ + CURLOPT(CURLOPT_PRE_PROXY, CURLOPTTYPE_STRINGPOINT, 262), + + /* The public key in DER form used to validate the proxy public key + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 263), + + /* Path to an abstract Unix domain socket */ + CURLOPT(CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPTTYPE_STRINGPOINT, 264), + + /* Suppress proxy CONNECT response headers from user callbacks */ + CURLOPT(CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPTTYPE_LONG, 265), + + /* The request target, instead of extracted from the URL */ + CURLOPT(CURLOPT_REQUEST_TARGET, CURLOPTTYPE_STRINGPOINT, 266), + + /* bitmask of allowed auth methods for connections to SOCKS5 proxies */ + CURLOPT(CURLOPT_SOCKS5_AUTH, CURLOPTTYPE_LONG, 267), + + /* Enable/disable SSH compression */ + CURLOPT(CURLOPT_SSH_COMPRESSION, CURLOPTTYPE_LONG, 268), + + /* Post MIME data. */ + CURLOPT(CURLOPT_MIMEPOST, CURLOPTTYPE_OBJECTPOINT, 269), + + /* Time to use with the CURLOPT_TIMECONDITION. Specified in number of + seconds since 1 Jan 1970. */ + CURLOPT(CURLOPT_TIMEVALUE_LARGE, CURLOPTTYPE_OFF_T, 270), + + /* Head start in milliseconds to give happy eyeballs. */ + CURLOPT(CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPTTYPE_LONG, 271), + + /* Function that will be called before a resolver request is made */ + CURLOPT(CURLOPT_RESOLVER_START_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 272), + + /* User data to pass to the resolver start callback. */ + CURLOPT(CURLOPT_RESOLVER_START_DATA, CURLOPTTYPE_CBPOINT, 273), + + /* send HAProxy PROXY protocol header? */ + CURLOPT(CURLOPT_HAPROXYPROTOCOL, CURLOPTTYPE_LONG, 274), + + /* shuffle addresses before use when DNS returns multiple */ + CURLOPT(CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPTTYPE_LONG, 275), + + /* Specify which TLS 1.3 ciphers suites to use */ + CURLOPT(CURLOPT_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 276), + CURLOPT(CURLOPT_PROXY_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 277), + + /* Disallow specifying username/login in URL. */ + CURLOPT(CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPTTYPE_LONG, 278), + + /* DNS-over-HTTPS URL */ + CURLOPT(CURLOPT_DOH_URL, CURLOPTTYPE_STRINGPOINT, 279), + + /* Preferred buffer size to use for uploads */ + CURLOPT(CURLOPT_UPLOAD_BUFFERSIZE, CURLOPTTYPE_LONG, 280), + + /* Time in ms between connection upkeep calls for long-lived connections. */ + CURLOPT(CURLOPT_UPKEEP_INTERVAL_MS, CURLOPTTYPE_LONG, 281), + + /* Specify URL using CURL URL API. */ + CURLOPT(CURLOPT_CURLU, CURLOPTTYPE_OBJECTPOINT, 282), + + /* add trailing data just after no more data is available */ + CURLOPT(CURLOPT_TRAILERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 283), + + /* pointer to be passed to HTTP_TRAILER_FUNCTION */ + CURLOPT(CURLOPT_TRAILERDATA, CURLOPTTYPE_CBPOINT, 284), + + /* set this to 1L to allow HTTP/0.9 responses or 0L to disallow */ + CURLOPT(CURLOPT_HTTP09_ALLOWED, CURLOPTTYPE_LONG, 285), + + /* alt-svc control bitmask */ + CURLOPT(CURLOPT_ALTSVC_CTRL, CURLOPTTYPE_LONG, 286), + + /* alt-svc cache file name to possibly read from/write to */ + CURLOPT(CURLOPT_ALTSVC, CURLOPTTYPE_STRINGPOINT, 287), + + /* maximum age (idle time) of a connection to consider it for reuse + * (in seconds) */ + CURLOPT(CURLOPT_MAXAGE_CONN, CURLOPTTYPE_LONG, 288), + + /* SASL authorization identity */ + CURLOPT(CURLOPT_SASL_AUTHZID, CURLOPTTYPE_STRINGPOINT, 289), + + /* allow RCPT TO command to fail for some recipients */ + CURLOPT(CURLOPT_MAIL_RCPT_ALLLOWFAILS, CURLOPTTYPE_LONG, 290), + + /* the private SSL-certificate as a "blob" */ + CURLOPT(CURLOPT_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 291), + CURLOPT(CURLOPT_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 292), + CURLOPT(CURLOPT_PROXY_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 293), + CURLOPT(CURLOPT_PROXY_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 294), + CURLOPT(CURLOPT_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 295), + + /* Issuer certificate for proxy */ + CURLOPT(CURLOPT_PROXY_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 296), + CURLOPT(CURLOPT_PROXY_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 297), + + /* the EC curves requested by the TLS client (RFC 8422, 5.1); + * OpenSSL support via 'set_groups'/'set_curves': + * https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set1_groups.html + */ + CURLOPT(CURLOPT_SSL_EC_CURVES, CURLOPTTYPE_STRINGPOINT, 298), + + /* HSTS bitmask */ + CURLOPT(CURLOPT_HSTS_CTRL, CURLOPTTYPE_LONG, 299), + /* HSTS file name */ + CURLOPT(CURLOPT_HSTS, CURLOPTTYPE_STRINGPOINT, 300), + + /* HSTS read callback */ + CURLOPT(CURLOPT_HSTSREADFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 301), + CURLOPT(CURLOPT_HSTSREADDATA, CURLOPTTYPE_CBPOINT, 302), + + /* HSTS write callback */ + CURLOPT(CURLOPT_HSTSWRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 303), + CURLOPT(CURLOPT_HSTSWRITEDATA, CURLOPTTYPE_CBPOINT, 304), + + /* Parameters for V4 signature */ + CURLOPT(CURLOPT_AWS_SIGV4, CURLOPTTYPE_STRINGPOINT, 305), + + /* Same as CURLOPT_SSL_VERIFYPEER but for DoH (DNS-over-HTTPS) servers. */ + CURLOPT(CURLOPT_DOH_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 306), + + /* Same as CURLOPT_SSL_VERIFYHOST but for DoH (DNS-over-HTTPS) servers. */ + CURLOPT(CURLOPT_DOH_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 307), + + /* Same as CURLOPT_SSL_VERIFYSTATUS but for DoH (DNS-over-HTTPS) servers. */ + CURLOPT(CURLOPT_DOH_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 308), + + /* The CA certificates as "blob" used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_CAINFO_BLOB, CURLOPTTYPE_BLOB, 309), + + /* The CA certificates as "blob" used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CURLOPT(CURLOPT_PROXY_CAINFO_BLOB, CURLOPTTYPE_BLOB, 310), + + /* used by scp/sftp to verify the host's public key */ + CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256, CURLOPTTYPE_STRINGPOINT, 311), + + /* Function that will be called immediately before the initial request + is made on a connection (after any protocol negotiation step). */ + CURLOPT(CURLOPT_PREREQFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 312), + + /* Data passed to the CURLOPT_PREREQFUNCTION callback */ + CURLOPT(CURLOPT_PREREQDATA, CURLOPTTYPE_CBPOINT, 313), + + /* maximum age (since creation) of a connection to consider it for reuse + * (in seconds) */ + CURLOPT(CURLOPT_MAXLIFETIME_CONN, CURLOPTTYPE_LONG, 314), + + /* Set MIME option flags. */ + CURLOPT(CURLOPT_MIME_OPTIONS, CURLOPTTYPE_LONG, 315), + + /* set the SSH host key callback, must point to a curl_sshkeycallback + function */ + CURLOPT(CURLOPT_SSH_HOSTKEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 316), + + /* set the SSH host key callback custom pointer */ + CURLOPT(CURLOPT_SSH_HOSTKEYDATA, CURLOPTTYPE_CBPOINT, 317), + + CURLOPT_LASTENTRY /* the last unused */ +} CURLoption; + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Backwards compatibility with older names */ +/* These are scheduled to disappear by 2011 */ + +/* This was added in version 7.19.1 */ +#define CURLOPT_POST301 CURLOPT_POSTREDIR + +/* These are scheduled to disappear by 2009 */ + +/* The following were added in 7.17.0 */ +#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD +#define CURLOPT_FTPAPPEND CURLOPT_APPEND +#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY +#define CURLOPT_FTP_SSL CURLOPT_USE_SSL + +/* The following were added earlier */ + +#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD +#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL + +#else +/* This is set if CURL_NO_OLDIES is defined at compile-time */ +#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ +#endif + + + /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host + name resolves addresses using more than one IP protocol version, this + option might be handy to force libcurl to use a specific IP version. */ +#define CURL_IPRESOLVE_WHATEVER 0 /* default, uses addresses to all IP + versions that your system allows */ +#define CURL_IPRESOLVE_V4 1 /* uses only IPv4 addresses/connections */ +#define CURL_IPRESOLVE_V6 2 /* uses only IPv6 addresses/connections */ + + /* three convenient "aliases" that follow the name scheme better */ +#define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER + + /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ +enum { + CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd + like the library to choose the best possible + for us! */ + CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ + CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ + CURL_HTTP_VERSION_2_0, /* please use HTTP 2 in the request */ + CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */ + CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, /* please use HTTP 2 without HTTP/1.1 + Upgrade */ + CURL_HTTP_VERSION_3 = 30, /* Makes use of explicit HTTP/3 without fallback. + Use CURLOPT_ALTSVC to enable HTTP/3 upgrade */ + CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ +}; + +/* Convenience definition simple because the name of the version is HTTP/2 and + not 2.0. The 2_0 version of the enum name was set while the version was + still planned to be 2.0 and we stick to it for compatibility. */ +#define CURL_HTTP_VERSION_2 CURL_HTTP_VERSION_2_0 + +/* + * Public API enums for RTSP requests + */ +enum { + CURL_RTSPREQ_NONE, /* first in list */ + CURL_RTSPREQ_OPTIONS, + CURL_RTSPREQ_DESCRIBE, + CURL_RTSPREQ_ANNOUNCE, + CURL_RTSPREQ_SETUP, + CURL_RTSPREQ_PLAY, + CURL_RTSPREQ_PAUSE, + CURL_RTSPREQ_TEARDOWN, + CURL_RTSPREQ_GET_PARAMETER, + CURL_RTSPREQ_SET_PARAMETER, + CURL_RTSPREQ_RECORD, + CURL_RTSPREQ_RECEIVE, + CURL_RTSPREQ_LAST /* last in list */ +}; + + /* These enums are for use with the CURLOPT_NETRC option. */ +enum CURL_NETRC_OPTION { + CURL_NETRC_IGNORED, /* The .netrc will never be read. + * This is the default. */ + CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred + * to one in the .netrc. */ + CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. + * Unless one is set programmatically, the .netrc + * will be queried. */ + CURL_NETRC_LAST +}; + +enum { + CURL_SSLVERSION_DEFAULT, + CURL_SSLVERSION_TLSv1, /* TLS 1.x */ + CURL_SSLVERSION_SSLv2, + CURL_SSLVERSION_SSLv3, + CURL_SSLVERSION_TLSv1_0, + CURL_SSLVERSION_TLSv1_1, + CURL_SSLVERSION_TLSv1_2, + CURL_SSLVERSION_TLSv1_3, + + CURL_SSLVERSION_LAST /* never use, keep last */ +}; + +enum { + CURL_SSLVERSION_MAX_NONE = 0, + CURL_SSLVERSION_MAX_DEFAULT = (CURL_SSLVERSION_TLSv1 << 16), + CURL_SSLVERSION_MAX_TLSv1_0 = (CURL_SSLVERSION_TLSv1_0 << 16), + CURL_SSLVERSION_MAX_TLSv1_1 = (CURL_SSLVERSION_TLSv1_1 << 16), + CURL_SSLVERSION_MAX_TLSv1_2 = (CURL_SSLVERSION_TLSv1_2 << 16), + CURL_SSLVERSION_MAX_TLSv1_3 = (CURL_SSLVERSION_TLSv1_3 << 16), + + /* never use, keep last */ + CURL_SSLVERSION_MAX_LAST = (CURL_SSLVERSION_LAST << 16) +}; + +enum CURL_TLSAUTH { + CURL_TLSAUTH_NONE, + CURL_TLSAUTH_SRP, + CURL_TLSAUTH_LAST /* never use, keep last */ +}; + +/* symbols to use with CURLOPT_POSTREDIR. + CURL_REDIR_POST_301, CURL_REDIR_POST_302 and CURL_REDIR_POST_303 + can be bitwise ORed so that CURL_REDIR_POST_301 | CURL_REDIR_POST_302 + | CURL_REDIR_POST_303 == CURL_REDIR_POST_ALL */ + +#define CURL_REDIR_GET_ALL 0 +#define CURL_REDIR_POST_301 1 +#define CURL_REDIR_POST_302 2 +#define CURL_REDIR_POST_303 4 +#define CURL_REDIR_POST_ALL \ + (CURL_REDIR_POST_301|CURL_REDIR_POST_302|CURL_REDIR_POST_303) + +typedef enum { + CURL_TIMECOND_NONE, + + CURL_TIMECOND_IFMODSINCE, + CURL_TIMECOND_IFUNMODSINCE, + CURL_TIMECOND_LASTMOD, + + CURL_TIMECOND_LAST +} curl_TimeCond; + +/* Special size_t value signaling a null-terminated string. */ +#define CURL_ZERO_TERMINATED ((size_t) -1) + +/* curl_strequal() and curl_strnequal() are subject for removal in a future + release */ +CURL_EXTERN int curl_strequal(const char *s1, const char *s2); +CURL_EXTERN int curl_strnequal(const char *s1, const char *s2, size_t n); + +/* Mime/form handling support. */ +typedef struct curl_mime curl_mime; /* Mime context. */ +typedef struct curl_mimepart curl_mimepart; /* Mime part context. */ + +/* CURLMIMEOPT_ defines are for the CURLOPT_MIME_OPTIONS option. */ +#define CURLMIMEOPT_FORMESCAPE (1<<0) /* Use backslash-escaping for forms. */ + +/* + * NAME curl_mime_init() + * + * DESCRIPTION + * + * Create a mime context and return its handle. The easy parameter is the + * target handle. + */ +CURL_EXTERN curl_mime *curl_mime_init(CURL *easy); + +/* + * NAME curl_mime_free() + * + * DESCRIPTION + * + * release a mime handle and its substructures. + */ +CURL_EXTERN void curl_mime_free(curl_mime *mime); + +/* + * NAME curl_mime_addpart() + * + * DESCRIPTION + * + * Append a new empty part to the given mime context and return a handle to + * the created part. + */ +CURL_EXTERN curl_mimepart *curl_mime_addpart(curl_mime *mime); + +/* + * NAME curl_mime_name() + * + * DESCRIPTION + * + * Set mime/form part name. + */ +CURL_EXTERN CURLcode curl_mime_name(curl_mimepart *part, const char *name); + +/* + * NAME curl_mime_filename() + * + * DESCRIPTION + * + * Set mime part remote file name. + */ +CURL_EXTERN CURLcode curl_mime_filename(curl_mimepart *part, + const char *filename); + +/* + * NAME curl_mime_type() + * + * DESCRIPTION + * + * Set mime part type. + */ +CURL_EXTERN CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype); + +/* + * NAME curl_mime_encoder() + * + * DESCRIPTION + * + * Set mime data transfer encoder. + */ +CURL_EXTERN CURLcode curl_mime_encoder(curl_mimepart *part, + const char *encoding); + +/* + * NAME curl_mime_data() + * + * DESCRIPTION + * + * Set mime part data source from memory data, + */ +CURL_EXTERN CURLcode curl_mime_data(curl_mimepart *part, + const char *data, size_t datasize); + +/* + * NAME curl_mime_filedata() + * + * DESCRIPTION + * + * Set mime part data source from named file. + */ +CURL_EXTERN CURLcode curl_mime_filedata(curl_mimepart *part, + const char *filename); + +/* + * NAME curl_mime_data_cb() + * + * DESCRIPTION + * + * Set mime part data source from callback function. + */ +CURL_EXTERN CURLcode curl_mime_data_cb(curl_mimepart *part, + curl_off_t datasize, + curl_read_callback readfunc, + curl_seek_callback seekfunc, + curl_free_callback freefunc, + void *arg); + +/* + * NAME curl_mime_subparts() + * + * DESCRIPTION + * + * Set mime part data source from subparts. + */ +CURL_EXTERN CURLcode curl_mime_subparts(curl_mimepart *part, + curl_mime *subparts); +/* + * NAME curl_mime_headers() + * + * DESCRIPTION + * + * Set mime part headers. + */ +CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, + struct curl_slist *headers, + int take_ownership); + +typedef enum { + CURLFORM_NOTHING, /********* the first one is unused ************/ + CURLFORM_COPYNAME, + CURLFORM_PTRNAME, + CURLFORM_NAMELENGTH, + CURLFORM_COPYCONTENTS, + CURLFORM_PTRCONTENTS, + CURLFORM_CONTENTSLENGTH, + CURLFORM_FILECONTENT, + CURLFORM_ARRAY, + CURLFORM_OBSOLETE, + CURLFORM_FILE, + + CURLFORM_BUFFER, + CURLFORM_BUFFERPTR, + CURLFORM_BUFFERLENGTH, + + CURLFORM_CONTENTTYPE, + CURLFORM_CONTENTHEADER, + CURLFORM_FILENAME, + CURLFORM_END, + CURLFORM_OBSOLETE2, + + CURLFORM_STREAM, + CURLFORM_CONTENTLEN, /* added in 7.46.0, provide a curl_off_t length */ + + CURLFORM_LASTENTRY /* the last unused */ +} CURLformoption; + +/* structure to be used as parameter for CURLFORM_ARRAY */ +struct curl_forms { + CURLformoption option; + const char *value; +}; + +/* use this for multipart formpost building */ +/* Returns code for curl_formadd() + * + * Returns: + * CURL_FORMADD_OK on success + * CURL_FORMADD_MEMORY if the FormInfo allocation fails + * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form + * CURL_FORMADD_NULL if a null pointer was given for a char + * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed + * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used + * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) + * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated + * CURL_FORMADD_MEMORY if some allocation for string copying failed. + * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array + * + ***************************************************************************/ +typedef enum { + CURL_FORMADD_OK, /* first, no error */ + + CURL_FORMADD_MEMORY, + CURL_FORMADD_OPTION_TWICE, + CURL_FORMADD_NULL, + CURL_FORMADD_UNKNOWN_OPTION, + CURL_FORMADD_INCOMPLETE, + CURL_FORMADD_ILLEGAL_ARRAY, + CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ + + CURL_FORMADD_LAST /* last */ +} CURLFORMcode; + +/* + * NAME curl_formadd() + * + * DESCRIPTION + * + * Pretty advanced function for building multi-part formposts. Each invoke + * adds one part that together construct a full post. Then use + * CURLOPT_HTTPPOST to send it off to libcurl. + */ +CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, + struct curl_httppost **last_post, + ...); + +/* + * callback function for curl_formget() + * The void *arg pointer will be the one passed as second argument to + * curl_formget(). + * The character buffer passed to it must not be freed. + * Should return the buffer length passed to it as the argument "len" on + * success. + */ +typedef size_t (*curl_formget_callback)(void *arg, const char *buf, + size_t len); + +/* + * NAME curl_formget() + * + * DESCRIPTION + * + * Serialize a curl_httppost struct built with curl_formadd(). + * Accepts a void pointer as second argument which will be passed to + * the curl_formget_callback function. + * Returns 0 on success. + */ +CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, + curl_formget_callback append); +/* + * NAME curl_formfree() + * + * DESCRIPTION + * + * Free a multipart formpost previously built with curl_formadd(). + */ +CURL_EXTERN void curl_formfree(struct curl_httppost *form); + +/* + * NAME curl_getenv() + * + * DESCRIPTION + * + * Returns a malloc()'ed string that MUST be curl_free()ed after usage is + * complete. DEPRECATED - see lib/README.curlx + */ +CURL_EXTERN char *curl_getenv(const char *variable); + +/* + * NAME curl_version() + * + * DESCRIPTION + * + * Returns a static ascii string of the libcurl version. + */ +CURL_EXTERN char *curl_version(void); + +/* + * NAME curl_easy_escape() + * + * DESCRIPTION + * + * Escapes URL strings (converts all letters consider illegal in URLs to their + * %XX versions). This function returns a new allocated string or NULL if an + * error occurred. + */ +CURL_EXTERN char *curl_easy_escape(CURL *handle, + const char *string, + int length); + +/* the previous version: */ +CURL_EXTERN char *curl_escape(const char *string, + int length); + + +/* + * NAME curl_easy_unescape() + * + * DESCRIPTION + * + * Unescapes URL encoding in strings (converts all %XX codes to their 8bit + * versions). This function returns a new allocated string or NULL if an error + * occurred. + * Conversion Note: On non-ASCII platforms the ASCII %XX codes are + * converted into the host encoding. + */ +CURL_EXTERN char *curl_easy_unescape(CURL *handle, + const char *string, + int length, + int *outlength); + +/* the previous version */ +CURL_EXTERN char *curl_unescape(const char *string, + int length); + +/* + * NAME curl_free() + * + * DESCRIPTION + * + * Provided for de-allocation in the same translation unit that did the + * allocation. Added in libcurl 7.10 + */ +CURL_EXTERN void curl_free(void *p); + +/* + * NAME curl_global_init() + * + * DESCRIPTION + * + * curl_global_init() should be invoked exactly once for each application that + * uses libcurl and before any call of other libcurl functions. + + * This function is thread-safe if CURL_VERSION_THREADSAFE is set in the + * curl_version_info_data.features flag (fetch by curl_version_info()). + + */ +CURL_EXTERN CURLcode curl_global_init(long flags); + +/* + * NAME curl_global_init_mem() + * + * DESCRIPTION + * + * curl_global_init() or curl_global_init_mem() should be invoked exactly once + * for each application that uses libcurl. This function can be used to + * initialize libcurl and set user defined memory management callback + * functions. Users can implement memory management routines to check for + * memory leaks, check for mis-use of the curl library etc. User registered + * callback routines will be invoked by this library instead of the system + * memory management routines like malloc, free etc. + */ +CURL_EXTERN CURLcode curl_global_init_mem(long flags, + curl_malloc_callback m, + curl_free_callback f, + curl_realloc_callback r, + curl_strdup_callback s, + curl_calloc_callback c); + +/* + * NAME curl_global_cleanup() + * + * DESCRIPTION + * + * curl_global_cleanup() should be invoked exactly once for each application + * that uses libcurl + */ +CURL_EXTERN void curl_global_cleanup(void); + +/* linked-list structure for the CURLOPT_QUOTE option (and other) */ +struct curl_slist { + char *data; + struct curl_slist *next; +}; + +/* + * NAME curl_global_sslset() + * + * DESCRIPTION + * + * When built with multiple SSL backends, curl_global_sslset() allows to + * choose one. This function can only be called once, and it must be called + * *before* curl_global_init(). + * + * The backend can be identified by the id (e.g. CURLSSLBACKEND_OPENSSL). The + * backend can also be specified via the name parameter (passing -1 as id). + * If both id and name are specified, the name will be ignored. If neither id + * nor name are specified, the function will fail with + * CURLSSLSET_UNKNOWN_BACKEND and set the "avail" pointer to the + * NULL-terminated list of available backends. + * + * Upon success, the function returns CURLSSLSET_OK. + * + * If the specified SSL backend is not available, the function returns + * CURLSSLSET_UNKNOWN_BACKEND and sets the "avail" pointer to a NULL-terminated + * list of available SSL backends. + * + * The SSL backend can be set only once. If it has already been set, a + * subsequent attempt to change it will result in a CURLSSLSET_TOO_LATE. + */ + +struct curl_ssl_backend { + curl_sslbackend id; + const char *name; +}; +typedef struct curl_ssl_backend curl_ssl_backend; + +typedef enum { + CURLSSLSET_OK = 0, + CURLSSLSET_UNKNOWN_BACKEND, + CURLSSLSET_TOO_LATE, + CURLSSLSET_NO_BACKENDS /* libcurl was built without any SSL support */ +} CURLsslset; + +CURL_EXTERN CURLsslset curl_global_sslset(curl_sslbackend id, const char *name, + const curl_ssl_backend ***avail); + +/* + * NAME curl_slist_append() + * + * DESCRIPTION + * + * Appends a string to a linked list. If no list exists, it will be created + * first. Returns the new list, after appending. + */ +CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *, + const char *); + +/* + * NAME curl_slist_free_all() + * + * DESCRIPTION + * + * free a previously built curl_slist. + */ +CURL_EXTERN void curl_slist_free_all(struct curl_slist *); + +/* + * NAME curl_getdate() + * + * DESCRIPTION + * + * Returns the time, in seconds since 1 Jan 1970 of the time string given in + * the first argument. The time argument in the second parameter is unused + * and should be set to NULL. + */ +CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); + +/* info about the certificate chain, only for OpenSSL, GnuTLS, Schannel, NSS + and GSKit builds. Asked for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */ +struct curl_certinfo { + int num_of_certs; /* number of certificates with information */ + struct curl_slist **certinfo; /* for each index in this array, there's a + linked list with textual information in the + format "name: value" */ +}; + +/* Information about the SSL library used and the respective internal SSL + handle, which can be used to obtain further information regarding the + connection. Asked for with CURLINFO_TLS_SSL_PTR or CURLINFO_TLS_SESSION. */ +struct curl_tlssessioninfo { + curl_sslbackend backend; + void *internals; +}; + +#define CURLINFO_STRING 0x100000 +#define CURLINFO_LONG 0x200000 +#define CURLINFO_DOUBLE 0x300000 +#define CURLINFO_SLIST 0x400000 +#define CURLINFO_PTR 0x400000 /* same as SLIST */ +#define CURLINFO_SOCKET 0x500000 +#define CURLINFO_OFF_T 0x600000 +#define CURLINFO_MASK 0x0fffff +#define CURLINFO_TYPEMASK 0xf00000 + +typedef enum { + CURLINFO_NONE, /* first, never use this */ + CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, + CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, + CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, + CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, + CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, + CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, + CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, + CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7, + CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, + CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8, + CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, + CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9, + CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, + CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10, + CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, + CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, + CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, + CURLINFO_FILETIME = CURLINFO_LONG + 14, + CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14, + CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, + CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15, + CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, + CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16, + CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, + CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, + CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, + CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, + CURLINFO_PRIVATE = CURLINFO_STRING + 21, + CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, + CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, + CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, + CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, + CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, + CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, + CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, + CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, + CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, + CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, + CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, + CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, + CURLINFO_CERTINFO = CURLINFO_PTR + 34, + CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, + CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36, + CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37, + CURLINFO_RTSP_SERVER_CSEQ = CURLINFO_LONG + 38, + CURLINFO_RTSP_CSEQ_RECV = CURLINFO_LONG + 39, + CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, + CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, + CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, + CURLINFO_TLS_SESSION = CURLINFO_PTR + 43, + CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44, + CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45, + CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46, + CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47, + CURLINFO_PROTOCOL = CURLINFO_LONG + 48, + CURLINFO_SCHEME = CURLINFO_STRING + 49, + CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50, + CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51, + CURLINFO_CONNECT_TIME_T = CURLINFO_OFF_T + 52, + CURLINFO_PRETRANSFER_TIME_T = CURLINFO_OFF_T + 53, + CURLINFO_STARTTRANSFER_TIME_T = CURLINFO_OFF_T + 54, + CURLINFO_REDIRECT_TIME_T = CURLINFO_OFF_T + 55, + CURLINFO_APPCONNECT_TIME_T = CURLINFO_OFF_T + 56, + CURLINFO_RETRY_AFTER = CURLINFO_OFF_T + 57, + CURLINFO_EFFECTIVE_METHOD = CURLINFO_STRING + 58, + CURLINFO_PROXY_ERROR = CURLINFO_LONG + 59, + CURLINFO_REFERER = CURLINFO_STRING + 60, + CURLINFO_CAINFO = CURLINFO_STRING + 61, + CURLINFO_CAPATH = CURLINFO_STRING + 62, + CURLINFO_LASTONE = 62 +} CURLINFO; + +/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as + CURLINFO_HTTP_CODE */ +#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE + +typedef enum { + CURLCLOSEPOLICY_NONE, /* first, never use this */ + + CURLCLOSEPOLICY_OLDEST, + CURLCLOSEPOLICY_LEAST_RECENTLY_USED, + CURLCLOSEPOLICY_LEAST_TRAFFIC, + CURLCLOSEPOLICY_SLOWEST, + CURLCLOSEPOLICY_CALLBACK, + + CURLCLOSEPOLICY_LAST /* last, never use this */ +} curl_closepolicy; + +#define CURL_GLOBAL_SSL (1<<0) /* no purpose since 7.57.0 */ +#define CURL_GLOBAL_WIN32 (1<<1) +#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) +#define CURL_GLOBAL_NOTHING 0 +#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL +#define CURL_GLOBAL_ACK_EINTR (1<<2) + + +/***************************************************************************** + * Setup defines, protos etc for the sharing stuff. + */ + +/* Different data locks for a single share */ +typedef enum { + CURL_LOCK_DATA_NONE = 0, + /* CURL_LOCK_DATA_SHARE is used internally to say that + * the locking is just made to change the internal state of the share + * itself. + */ + CURL_LOCK_DATA_SHARE, + CURL_LOCK_DATA_COOKIE, + CURL_LOCK_DATA_DNS, + CURL_LOCK_DATA_SSL_SESSION, + CURL_LOCK_DATA_CONNECT, + CURL_LOCK_DATA_PSL, + CURL_LOCK_DATA_LAST +} curl_lock_data; + +/* Different lock access types */ +typedef enum { + CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ + CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ + CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ + CURL_LOCK_ACCESS_LAST /* never use */ +} curl_lock_access; + +typedef void (*curl_lock_function)(CURL *handle, + curl_lock_data data, + curl_lock_access locktype, + void *userptr); +typedef void (*curl_unlock_function)(CURL *handle, + curl_lock_data data, + void *userptr); + + +typedef enum { + CURLSHE_OK, /* all is fine */ + CURLSHE_BAD_OPTION, /* 1 */ + CURLSHE_IN_USE, /* 2 */ + CURLSHE_INVALID, /* 3 */ + CURLSHE_NOMEM, /* 4 out of memory */ + CURLSHE_NOT_BUILT_IN, /* 5 feature not present in lib */ + CURLSHE_LAST /* never use */ +} CURLSHcode; + +typedef enum { + CURLSHOPT_NONE, /* don't use */ + CURLSHOPT_SHARE, /* specify a data type to share */ + CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */ + CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ + CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ + CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock + callback functions */ + CURLSHOPT_LAST /* never use */ +} CURLSHoption; + +CURL_EXTERN CURLSH *curl_share_init(void); +CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...); +CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *); + +/**************************************************************************** + * Structures for querying information about the curl library at runtime. + */ + +typedef enum { + CURLVERSION_FIRST, + CURLVERSION_SECOND, + CURLVERSION_THIRD, + CURLVERSION_FOURTH, + CURLVERSION_FIFTH, + CURLVERSION_SIXTH, + CURLVERSION_SEVENTH, + CURLVERSION_EIGHTH, + CURLVERSION_NINTH, + CURLVERSION_TENTH, + CURLVERSION_LAST /* never actually use this */ +} CURLversion; + +/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by + basically all programs ever that want to get version information. It is + meant to be a built-in version number for what kind of struct the caller + expects. If the struct ever changes, we redefine the NOW to another enum + from above. */ +#define CURLVERSION_NOW CURLVERSION_TENTH + +struct curl_version_info_data { + CURLversion age; /* age of the returned struct */ + const char *version; /* LIBCURL_VERSION */ + unsigned int version_num; /* LIBCURL_VERSION_NUM */ + const char *host; /* OS/host/cpu/machine when configured */ + int features; /* bitmask, see defines below */ + const char *ssl_version; /* human readable string */ + long ssl_version_num; /* not used anymore, always 0 */ + const char *libz_version; /* human readable string */ + /* protocols is terminated by an entry with a NULL protoname */ + const char * const *protocols; + + /* The fields below this were added in CURLVERSION_SECOND */ + const char *ares; + int ares_num; + + /* This field was added in CURLVERSION_THIRD */ + const char *libidn; + + /* These field were added in CURLVERSION_FOURTH */ + + /* Same as '_libiconv_version' if built with HAVE_ICONV */ + int iconv_ver_num; + + const char *libssh_version; /* human readable string */ + + /* These fields were added in CURLVERSION_FIFTH */ + unsigned int brotli_ver_num; /* Numeric Brotli version + (MAJOR << 24) | (MINOR << 12) | PATCH */ + const char *brotli_version; /* human readable string. */ + + /* These fields were added in CURLVERSION_SIXTH */ + unsigned int nghttp2_ver_num; /* Numeric nghttp2 version + (MAJOR << 16) | (MINOR << 8) | PATCH */ + const char *nghttp2_version; /* human readable string. */ + const char *quic_version; /* human readable quic (+ HTTP/3) library + + version or NULL */ + + /* These fields were added in CURLVERSION_SEVENTH */ + const char *cainfo; /* the built-in default CURLOPT_CAINFO, might + be NULL */ + const char *capath; /* the built-in default CURLOPT_CAPATH, might + be NULL */ + + /* These fields were added in CURLVERSION_EIGHTH */ + unsigned int zstd_ver_num; /* Numeric Zstd version + (MAJOR << 24) | (MINOR << 12) | PATCH */ + const char *zstd_version; /* human readable string. */ + + /* These fields were added in CURLVERSION_NINTH */ + const char *hyper_version; /* human readable string. */ + + /* These fields were added in CURLVERSION_TENTH */ + const char *gsasl_version; /* human readable string. */ +}; +typedef struct curl_version_info_data curl_version_info_data; + +#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ +#define CURL_VERSION_KERBEROS4 (1<<1) /* Kerberos V4 auth is supported + (deprecated) */ +#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ +#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ +#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ +#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth is supported + (deprecated) */ +#define CURL_VERSION_DEBUG (1<<6) /* Built with debug capabilities */ +#define CURL_VERSION_ASYNCHDNS (1<<7) /* Asynchronous DNS resolves */ +#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth is supported */ +#define CURL_VERSION_LARGEFILE (1<<9) /* Supports files larger than 2GB */ +#define CURL_VERSION_IDN (1<<10) /* Internationized Domain Names are + supported */ +#define CURL_VERSION_SSPI (1<<11) /* Built against Windows SSPI */ +#define CURL_VERSION_CONV (1<<12) /* Character conversions supported */ +#define CURL_VERSION_CURLDEBUG (1<<13) /* Debug memory tracking supported */ +#define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */ +#define CURL_VERSION_NTLM_WB (1<<15) /* NTLM delegation to winbind helper + is supported */ +#define CURL_VERSION_HTTP2 (1<<16) /* HTTP2 support built-in */ +#define CURL_VERSION_GSSAPI (1<<17) /* Built against a GSS-API library */ +#define CURL_VERSION_KERBEROS5 (1<<18) /* Kerberos V5 auth is supported */ +#define CURL_VERSION_UNIX_SOCKETS (1<<19) /* Unix domain sockets support */ +#define CURL_VERSION_PSL (1<<20) /* Mozilla's Public Suffix List, used + for cookie domain verification */ +#define CURL_VERSION_HTTPS_PROXY (1<<21) /* HTTPS-proxy support built-in */ +#define CURL_VERSION_MULTI_SSL (1<<22) /* Multiple SSL backends available */ +#define CURL_VERSION_BROTLI (1<<23) /* Brotli features are present. */ +#define CURL_VERSION_ALTSVC (1<<24) /* Alt-Svc handling built-in */ +#define CURL_VERSION_HTTP3 (1<<25) /* HTTP3 support built-in */ +#define CURL_VERSION_ZSTD (1<<26) /* zstd features are present */ +#define CURL_VERSION_UNICODE (1<<27) /* Unicode support on Windows */ +#define CURL_VERSION_HSTS (1<<28) /* HSTS is supported */ +#define CURL_VERSION_GSASL (1<<29) /* libgsasl is supported */ +#define CURL_VERSION_THREADSAFE (1<<30) /* libcurl API is thread-safe */ + + /* + * NAME curl_version_info() + * + * DESCRIPTION + * + * This function returns a pointer to a static copy of the version info + * struct. See above. + */ +CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); + +/* + * NAME curl_easy_strerror() + * + * DESCRIPTION + * + * The curl_easy_strerror function may be used to turn a CURLcode value + * into the equivalent human readable error string. This is useful + * for printing meaningful error messages. + */ +CURL_EXTERN const char *curl_easy_strerror(CURLcode); + +/* + * NAME curl_share_strerror() + * + * DESCRIPTION + * + * The curl_share_strerror function may be used to turn a CURLSHcode value + * into the equivalent human readable error string. This is useful + * for printing meaningful error messages. + */ +CURL_EXTERN const char *curl_share_strerror(CURLSHcode); + +/* + * NAME curl_easy_pause() + * + * DESCRIPTION + * + * The curl_easy_pause function pauses or unpauses transfers. Select the new + * state by setting the bitmask, use the convenience defines below. + * + */ +CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); + +#define CURLPAUSE_RECV (1<<0) +#define CURLPAUSE_RECV_CONT (0) + +#define CURLPAUSE_SEND (1<<2) +#define CURLPAUSE_SEND_CONT (0) + +#define CURLPAUSE_ALL (CURLPAUSE_RECV|CURLPAUSE_SEND) +#define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT) + +#ifdef __cplusplus +} +#endif + +/* unfortunately, the easy.h and multi.h include files need options and info + stuff before they can be included! */ +#include "easy.h" /* nothing in curl is fun without the easy stuff */ +#include "multi.h" +#include "urlapi.h" +#include "options.h" +#include "header.h" + +/* the typechecker doesn't work in C++ (yet) */ +#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ + ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ + !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK) +#include "typecheck-gcc.h" +#else +#if defined(__STDC__) && (__STDC__ >= 1) +/* This preprocessor magic that replaces a call with the exact same call is + only done to make sure application authors pass exactly three arguments + to these functions. */ +#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) +#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg) +#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) +#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) +#endif /* __STDC__ >= 1 */ +#endif /* gcc >= 4.3 && !__cplusplus */ + +#endif /* CURLINC_CURL_H */ diff --git a/SignOff_itk/curl/include/curl/curlver.h b/SignOff_itk/curl/include/curl/curlver.h new file mode 100644 index 0000000..a21446e --- /dev/null +++ b/SignOff_itk/curl/include/curl/curlver.h @@ -0,0 +1,79 @@ +#ifndef CURLINC_CURLVER_H +#define CURLINC_CURLVER_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +/* This header file contains nothing but libcurl version info, generated by + a script at release-time. This was made its own header file in 7.11.2 */ + +/* This is the global package copyright */ +#define LIBCURL_COPYRIGHT "1996 - 2022 Daniel Stenberg, ." + +/* This is the version number of the libcurl package from which this header + file origins: */ +#define LIBCURL_VERSION "7.84.0" + +/* The numeric version number is also available "in parts" by using these + defines: */ +#define LIBCURL_VERSION_MAJOR 7 +#define LIBCURL_VERSION_MINOR 84 +#define LIBCURL_VERSION_PATCH 0 + +/* This is the numeric version of the libcurl version number, meant for easier + parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will + always follow this syntax: + + 0xXXYYZZ + + Where XX, YY and ZZ are the main version, release and patch numbers in + hexadecimal (using 8 bits each). All three numbers are always represented + using two digits. 1.2 would appear as "0x010200" while version 9.11.7 + appears as "0x090b07". + + This 6-digit (24 bits) hexadecimal number does not show pre-release number, + and it is always a greater number in a more recent release. It makes + comparisons with greater than and less than work. + + Note: This define is the full hex number and _does not_ use the + CURL_VERSION_BITS() macro since curl's own configure script greps for it + and needs it to contain the full number. +*/ +#define LIBCURL_VERSION_NUM 0x075400 + +/* + * This is the date and time when the full source package was created. The + * timestamp is not stored in git, as the timestamp is properly set in the + * tarballs by the maketgz script. + * + * The format of the date follows this template: + * + * "2007-11-23" + */ +#define LIBCURL_TIMESTAMP "2022-06-27" + +#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z)) +#define CURL_AT_LEAST_VERSION(x,y,z) \ + (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) + +#endif /* CURLINC_CURLVER_H */ diff --git a/SignOff_itk/curl/include/curl/easy.h b/SignOff_itk/curl/include/curl/easy.h new file mode 100644 index 0000000..9c7e63a --- /dev/null +++ b/SignOff_itk/curl/include/curl/easy.h @@ -0,0 +1,125 @@ +#ifndef CURLINC_EASY_H +#define CURLINC_EASY_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ +#ifdef __cplusplus +extern "C" { +#endif + +/* Flag bits in the curl_blob struct: */ +#define CURL_BLOB_COPY 1 /* tell libcurl to copy the data */ +#define CURL_BLOB_NOCOPY 0 /* tell libcurl to NOT copy the data */ + +struct curl_blob { + void *data; + size_t len; + unsigned int flags; /* bit 0 is defined, the rest are reserved and should be + left zeroes */ +}; + +CURL_EXTERN CURL *curl_easy_init(void); +CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); +CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); +CURL_EXTERN void curl_easy_cleanup(CURL *curl); + +/* + * NAME curl_easy_getinfo() + * + * DESCRIPTION + * + * Request internal information from the curl session with this function. The + * third argument MUST be a pointer to a long, a pointer to a char * or a + * pointer to a double (as the documentation describes elsewhere). The data + * pointed to will be filled in accordingly and can be relied upon only if the + * function returns CURLE_OK. This function is intended to get used *AFTER* a + * performed transfer, all results from this function are undefined until the + * transfer is completed. + */ +CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); + + +/* + * NAME curl_easy_duphandle() + * + * DESCRIPTION + * + * Creates a new curl session handle with the same options set for the handle + * passed in. Duplicating a handle could only be a matter of cloning data and + * options, internal state info and things like persistent connections cannot + * be transferred. It is useful in multithreaded applications when you can run + * curl_easy_duphandle() for each new thread to avoid a series of identical + * curl_easy_setopt() invokes in every thread. + */ +CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl); + +/* + * NAME curl_easy_reset() + * + * DESCRIPTION + * + * Re-initializes a CURL handle to the default values. This puts back the + * handle to the same state as it was in when it was just created. + * + * It does keep: live connections, the Session ID cache, the DNS cache and the + * cookies. + */ +CURL_EXTERN void curl_easy_reset(CURL *curl); + +/* + * NAME curl_easy_recv() + * + * DESCRIPTION + * + * Receives data from the connected socket. Use after successful + * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. + */ +CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, + size_t *n); + +/* + * NAME curl_easy_send() + * + * DESCRIPTION + * + * Sends data over the connected socket. Use after successful + * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. + */ +CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, + size_t buflen, size_t *n); + + +/* + * NAME curl_easy_upkeep() + * + * DESCRIPTION + * + * Performs connection upkeep for the given session handle. + */ +CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/SignOff_itk/curl/include/curl/header.h b/SignOff_itk/curl/include/curl/header.h new file mode 100644 index 0000000..6af29c0 --- /dev/null +++ b/SignOff_itk/curl/include/curl/header.h @@ -0,0 +1,66 @@ +#ifndef CURLINC_HEADER_H +#define CURLINC_HEADER_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2018 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +struct curl_header { + char *name; /* this might not use the same case */ + char *value; + size_t amount; /* number of headers using this name */ + size_t index; /* ... of this instance, 0 or higher */ + unsigned int origin; /* see bits below */ + void *anchor; /* handle privately used by libcurl */ +}; + +/* 'origin' bits */ +#define CURLH_HEADER (1<<0) /* plain server header */ +#define CURLH_TRAILER (1<<1) /* trailers */ +#define CURLH_CONNECT (1<<2) /* CONNECT headers */ +#define CURLH_1XX (1<<3) /* 1xx headers */ +#define CURLH_PSEUDO (1<<4) /* pseudo headers */ + +typedef enum { + CURLHE_OK, + CURLHE_BADINDEX, /* header exists but not with this index */ + CURLHE_MISSING, /* no such header exists */ + CURLHE_NOHEADERS, /* no headers at all exist (yet) */ + CURLHE_NOREQUEST, /* no request with this number was used */ + CURLHE_OUT_OF_MEMORY, /* out of memory while processing */ + CURLHE_BAD_ARGUMENT, /* a function argument was not okay */ + CURLHE_NOT_BUILT_IN /* if API was disabled in the build */ +} CURLHcode; + +CURL_EXTERN CURLHcode curl_easy_header(CURL *easy, + const char *name, + size_t index, + unsigned int origin, + int request, + struct curl_header **hout); + +CURL_EXTERN struct curl_header *curl_easy_nextheader(CURL *easy, + unsigned int origin, + int request, + struct curl_header *prev); + +#endif /* CURLINC_HEADER_H */ diff --git a/SignOff_itk/curl/include/curl/mprintf.h b/SignOff_itk/curl/include/curl/mprintf.h new file mode 100644 index 0000000..cb948dc --- /dev/null +++ b/SignOff_itk/curl/include/curl/mprintf.h @@ -0,0 +1,52 @@ +#ifndef CURLINC_MPRINTF_H +#define CURLINC_MPRINTF_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +#include +#include /* needed for FILE */ +#include "curl.h" /* for CURL_EXTERN */ + +#ifdef __cplusplus +extern "C" { +#endif + +CURL_EXTERN int curl_mprintf(const char *format, ...); +CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); +CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); +CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, + const char *format, ...); +CURL_EXTERN int curl_mvprintf(const char *format, va_list args); +CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); +CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); +CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, + const char *format, va_list args); +CURL_EXTERN char *curl_maprintf(const char *format, ...); +CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); + +#ifdef __cplusplus +} +#endif + +#endif /* CURLINC_MPRINTF_H */ diff --git a/SignOff_itk/curl/include/curl/multi.h b/SignOff_itk/curl/include/curl/multi.h new file mode 100644 index 0000000..3010492 --- /dev/null +++ b/SignOff_itk/curl/include/curl/multi.h @@ -0,0 +1,460 @@ +#ifndef CURLINC_MULTI_H +#define CURLINC_MULTI_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ +/* + This is an "external" header file. Don't give away any internals here! + + GOALS + + o Enable a "pull" interface. The application that uses libcurl decides where + and when to ask libcurl to get/send data. + + o Enable multiple simultaneous transfers in the same thread without making it + complicated for the application. + + o Enable the application to select() on its own file descriptors and curl's + file descriptors simultaneous easily. + +*/ + +/* + * This header file should not really need to include "curl.h" since curl.h + * itself includes this file and we expect user applications to do #include + * without the need for especially including multi.h. + * + * For some reason we added this include here at one point, and rather than to + * break existing (wrongly written) libcurl applications, we leave it as-is + * but with this warning attached. + */ +#include "curl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) +typedef struct Curl_multi CURLM; +#else +typedef void CURLM; +#endif + +typedef enum { + CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or + curl_multi_socket*() soon */ + CURLM_OK, + CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ + CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ + CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ + CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ + CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ + CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ + CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was + attempted to get added - again */ + CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a + callback */ + CURLM_WAKEUP_FAILURE, /* wakeup is unavailable or failed */ + CURLM_BAD_FUNCTION_ARGUMENT, /* function called with a bad parameter */ + CURLM_ABORTED_BY_CALLBACK, + CURLM_UNRECOVERABLE_POLL, + CURLM_LAST +} CURLMcode; + +/* just to make code nicer when using curl_multi_socket() you can now check + for CURLM_CALL_MULTI_SOCKET too in the same style it works for + curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ +#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM + +/* bitmask bits for CURLMOPT_PIPELINING */ +#define CURLPIPE_NOTHING 0L +#define CURLPIPE_HTTP1 1L +#define CURLPIPE_MULTIPLEX 2L + +typedef enum { + CURLMSG_NONE, /* first, not used */ + CURLMSG_DONE, /* This easy handle has completed. 'result' contains + the CURLcode of the transfer */ + CURLMSG_LAST /* last, not used */ +} CURLMSG; + +struct CURLMsg { + CURLMSG msg; /* what this message means */ + CURL *easy_handle; /* the handle it concerns */ + union { + void *whatever; /* message-specific data */ + CURLcode result; /* return code for transfer */ + } data; +}; +typedef struct CURLMsg CURLMsg; + +/* Based on poll(2) structure and values. + * We don't use pollfd and POLL* constants explicitly + * to cover platforms without poll(). */ +#define CURL_WAIT_POLLIN 0x0001 +#define CURL_WAIT_POLLPRI 0x0002 +#define CURL_WAIT_POLLOUT 0x0004 + +struct curl_waitfd { + curl_socket_t fd; + short events; + short revents; /* not supported yet */ +}; + +/* + * Name: curl_multi_init() + * + * Desc: inititalize multi-style curl usage + * + * Returns: a new CURLM handle to use in all 'curl_multi' functions. + */ +CURL_EXTERN CURLM *curl_multi_init(void); + +/* + * Name: curl_multi_add_handle() + * + * Desc: add a standard curl handle to the multi stack + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, + CURL *curl_handle); + + /* + * Name: curl_multi_remove_handle() + * + * Desc: removes a curl handle from the multi stack again + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, + CURL *curl_handle); + + /* + * Name: curl_multi_fdset() + * + * Desc: Ask curl for its fd_set sets. The app can use these to select() or + * poll() on. We want curl_multi_perform() called as soon as one of + * them are ready. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, + fd_set *read_fd_set, + fd_set *write_fd_set, + fd_set *exc_fd_set, + int *max_fd); + +/* + * Name: curl_multi_wait() + * + * Desc: Poll on all fds within a CURLM set as well as any + * additional fds passed to the function. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, + struct curl_waitfd extra_fds[], + unsigned int extra_nfds, + int timeout_ms, + int *ret); + +/* + * Name: curl_multi_poll() + * + * Desc: Poll on all fds within a CURLM set as well as any + * additional fds passed to the function. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_poll(CURLM *multi_handle, + struct curl_waitfd extra_fds[], + unsigned int extra_nfds, + int timeout_ms, + int *ret); + +/* + * Name: curl_multi_wakeup() + * + * Desc: wakes up a sleeping curl_multi_poll call. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_wakeup(CURLM *multi_handle); + + /* + * Name: curl_multi_perform() + * + * Desc: When the app thinks there's data available for curl it calls this + * function to read/write whatever there is right now. This returns + * as soon as the reads and writes are done. This function does not + * require that there actually is data available for reading or that + * data can be written, it can be called just in case. It returns + * the number of handles that still transfer data in the second + * argument's integer-pointer. + * + * Returns: CURLMcode type, general multi error code. *NOTE* that this only + * returns errors etc regarding the whole multi stack. There might + * still have occurred problems on individual transfers even when + * this returns OK. + */ +CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, + int *running_handles); + + /* + * Name: curl_multi_cleanup() + * + * Desc: Cleans up and removes a whole multi stack. It does not free or + * touch any individual easy handles in any way. We need to define + * in what state those handles will be if this function is called + * in the middle of a transfer. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); + +/* + * Name: curl_multi_info_read() + * + * Desc: Ask the multi handle if there's any messages/informationals from + * the individual transfers. Messages include informationals such as + * error code from the transfer or just the fact that a transfer is + * completed. More details on these should be written down as well. + * + * Repeated calls to this function will return a new struct each + * time, until a special "end of msgs" struct is returned as a signal + * that there is no more to get at this point. + * + * The data the returned pointer points to will not survive calling + * curl_multi_cleanup(). + * + * The 'CURLMsg' struct is meant to be very simple and only contain + * very basic information. If more involved information is wanted, + * we will provide the particular "transfer handle" in that struct + * and that should/could/would be used in subsequent + * curl_easy_getinfo() calls (or similar). The point being that we + * must never expose complex structs to applications, as then we'll + * undoubtably get backwards compatibility problems in the future. + * + * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out + * of structs. It also writes the number of messages left in the + * queue (after this read) in the integer the second argument points + * to. + */ +CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, + int *msgs_in_queue); + +/* + * Name: curl_multi_strerror() + * + * Desc: The curl_multi_strerror function may be used to turn a CURLMcode + * value into the equivalent human readable error string. This is + * useful for printing meaningful error messages. + * + * Returns: A pointer to a null-terminated error message. + */ +CURL_EXTERN const char *curl_multi_strerror(CURLMcode); + +/* + * Name: curl_multi_socket() and + * curl_multi_socket_all() + * + * Desc: An alternative version of curl_multi_perform() that allows the + * application to pass in one of the file descriptors that have been + * detected to have "action" on them and let libcurl perform. + * See man page for details. + */ +#define CURL_POLL_NONE 0 +#define CURL_POLL_IN 1 +#define CURL_POLL_OUT 2 +#define CURL_POLL_INOUT 3 +#define CURL_POLL_REMOVE 4 + +#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD + +#define CURL_CSELECT_IN 0x01 +#define CURL_CSELECT_OUT 0x02 +#define CURL_CSELECT_ERR 0x04 + +typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ + curl_socket_t s, /* socket */ + int what, /* see above */ + void *userp, /* private callback + pointer */ + void *socketp); /* private socket + pointer */ +/* + * Name: curl_multi_timer_callback + * + * Desc: Called by libcurl whenever the library detects a change in the + * maximum number of milliseconds the app is allowed to wait before + * curl_multi_socket() or curl_multi_perform() must be called + * (to allow libcurl's timed events to take place). + * + * Returns: The callback should return zero. + */ +typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ + long timeout_ms, /* see above */ + void *userp); /* private callback + pointer */ + +CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, + int *running_handles); + +CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, + curl_socket_t s, + int ev_bitmask, + int *running_handles); + +CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, + int *running_handles); + +#ifndef CURL_ALLOW_OLD_MULTI_SOCKET +/* This macro below was added in 7.16.3 to push users who recompile to use + the new curl_multi_socket_action() instead of the old curl_multi_socket() +*/ +#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) +#endif + +/* + * Name: curl_multi_timeout() + * + * Desc: Returns the maximum number of milliseconds the app is allowed to + * wait before curl_multi_socket() or curl_multi_perform() must be + * called (to allow libcurl's timed events to take place). + * + * Returns: CURLM error code. + */ +CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, + long *milliseconds); + +typedef enum { + /* This is the socket callback function pointer */ + CURLOPT(CURLMOPT_SOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 1), + + /* This is the argument passed to the socket callback */ + CURLOPT(CURLMOPT_SOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 2), + + /* set to 1 to enable pipelining for this multi handle */ + CURLOPT(CURLMOPT_PIPELINING, CURLOPTTYPE_LONG, 3), + + /* This is the timer callback function pointer */ + CURLOPT(CURLMOPT_TIMERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 4), + + /* This is the argument passed to the timer callback */ + CURLOPT(CURLMOPT_TIMERDATA, CURLOPTTYPE_OBJECTPOINT, 5), + + /* maximum number of entries in the connection cache */ + CURLOPT(CURLMOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 6), + + /* maximum number of (pipelining) connections to one host */ + CURLOPT(CURLMOPT_MAX_HOST_CONNECTIONS, CURLOPTTYPE_LONG, 7), + + /* maximum number of requests in a pipeline */ + CURLOPT(CURLMOPT_MAX_PIPELINE_LENGTH, CURLOPTTYPE_LONG, 8), + + /* a connection with a content-length longer than this + will not be considered for pipelining */ + CURLOPT(CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 9), + + /* a connection with a chunk length longer than this + will not be considered for pipelining */ + CURLOPT(CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 10), + + /* a list of site names(+port) that are blocked from pipelining */ + CURLOPT(CURLMOPT_PIPELINING_SITE_BL, CURLOPTTYPE_OBJECTPOINT, 11), + + /* a list of server types that are blocked from pipelining */ + CURLOPT(CURLMOPT_PIPELINING_SERVER_BL, CURLOPTTYPE_OBJECTPOINT, 12), + + /* maximum number of open connections in total */ + CURLOPT(CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPTTYPE_LONG, 13), + + /* This is the server push callback function pointer */ + CURLOPT(CURLMOPT_PUSHFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 14), + + /* This is the argument passed to the server push callback */ + CURLOPT(CURLMOPT_PUSHDATA, CURLOPTTYPE_OBJECTPOINT, 15), + + /* maximum number of concurrent streams to support on a connection */ + CURLOPT(CURLMOPT_MAX_CONCURRENT_STREAMS, CURLOPTTYPE_LONG, 16), + + CURLMOPT_LASTENTRY /* the last unused */ +} CURLMoption; + + +/* + * Name: curl_multi_setopt() + * + * Desc: Sets options for the multi handle. + * + * Returns: CURLM error code. + */ +CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, + CURLMoption option, ...); + + +/* + * Name: curl_multi_assign() + * + * Desc: This function sets an association in the multi handle between the + * given socket and a private pointer of the application. This is + * (only) useful for curl_multi_socket uses. + * + * Returns: CURLM error code. + */ +CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, + curl_socket_t sockfd, void *sockp); + + +/* + * Name: curl_push_callback + * + * Desc: This callback gets called when a new stream is being pushed by the + * server. It approves or denies the new stream. It can also decide + * to completely fail the connection. + * + * Returns: CURL_PUSH_OK, CURL_PUSH_DENY or CURL_PUSH_ERROROUT + */ +#define CURL_PUSH_OK 0 +#define CURL_PUSH_DENY 1 +#define CURL_PUSH_ERROROUT 2 /* added in 7.72.0 */ + +struct curl_pushheaders; /* forward declaration only */ + +CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h, + size_t num); +CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h, + const char *name); + +typedef int (*curl_push_callback)(CURL *parent, + CURL *easy, + size_t num_headers, + struct curl_pushheaders *headers, + void *userp); + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif diff --git a/SignOff_itk/curl/include/curl/options.h b/SignOff_itk/curl/include/curl/options.h new file mode 100644 index 0000000..c8ac827 --- /dev/null +++ b/SignOff_itk/curl/include/curl/options.h @@ -0,0 +1,70 @@ +#ifndef CURLINC_OPTIONS_H +#define CURLINC_OPTIONS_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2018 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + CURLOT_LONG, /* long (a range of values) */ + CURLOT_VALUES, /* (a defined set or bitmask) */ + CURLOT_OFF_T, /* curl_off_t (a range of values) */ + CURLOT_OBJECT, /* pointer (void *) */ + CURLOT_STRING, /* (char * to zero terminated buffer) */ + CURLOT_SLIST, /* (struct curl_slist *) */ + CURLOT_CBPTR, /* (void * passed as-is to a callback) */ + CURLOT_BLOB, /* blob (struct curl_blob *) */ + CURLOT_FUNCTION /* function pointer */ +} curl_easytype; + +/* Flag bits */ + +/* "alias" means it is provided for old programs to remain functional, + we prefer another name */ +#define CURLOT_FLAG_ALIAS (1<<0) + +/* The CURLOPTTYPE_* id ranges can still be used to figure out what type/size + to use for curl_easy_setopt() for the given id */ +struct curl_easyoption { + const char *name; + CURLoption id; + curl_easytype type; + unsigned int flags; +}; + +CURL_EXTERN const struct curl_easyoption * +curl_easy_option_by_name(const char *name); + +CURL_EXTERN const struct curl_easyoption * +curl_easy_option_by_id(CURLoption id); + +CURL_EXTERN const struct curl_easyoption * +curl_easy_option_next(const struct curl_easyoption *prev); + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif +#endif /* CURLINC_OPTIONS_H */ diff --git a/SignOff_itk/curl/include/curl/stdcheaders.h b/SignOff_itk/curl/include/curl/stdcheaders.h new file mode 100644 index 0000000..82e1b5f --- /dev/null +++ b/SignOff_itk/curl/include/curl/stdcheaders.h @@ -0,0 +1,35 @@ +#ifndef CURLINC_STDCHEADERS_H +#define CURLINC_STDCHEADERS_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +#include + +size_t fread(void *, size_t, size_t, FILE *); +size_t fwrite(const void *, size_t, size_t, FILE *); + +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, size_t); + +#endif /* CURLINC_STDCHEADERS_H */ diff --git a/SignOff_itk/curl/include/curl/system.h b/SignOff_itk/curl/include/curl/system.h new file mode 100644 index 0000000..8d56b8a --- /dev/null +++ b/SignOff_itk/curl/include/curl/system.h @@ -0,0 +1,490 @@ +#ifndef CURLINC_SYSTEM_H +#define CURLINC_SYSTEM_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +/* + * Try to keep one section per platform, compiler and architecture, otherwise, + * if an existing section is reused for a different one and later on the + * original is adjusted, probably the piggybacking one can be adversely + * changed. + * + * In order to differentiate between platforms/compilers/architectures use + * only compiler built in predefined preprocessor symbols. + * + * curl_off_t + * ---------- + * + * For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit + * wide signed integral data type. The width of this data type must remain + * constant and independent of any possible large file support settings. + * + * As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit + * wide signed integral data type if there is no 64-bit type. + * + * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall + * only be violated if off_t is the only 64-bit data type available and the + * size of off_t is independent of large file support settings. Keep your + * build on the safe side avoiding an off_t gating. If you have a 64-bit + * off_t then take for sure that another 64-bit data type exists, dig deeper + * and you will find it. + * + */ + +#if defined(__DJGPP__) || defined(__GO32__) +# if defined(__DJGPP__) && (__DJGPP__ > 1) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(__SALFORDC__) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(__BORLANDC__) +# if (__BORLANDC__ < 0x520) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(__TURBOC__) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(__POCC__) +# if (__POCC__ < 280) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# elif defined(_MSC_VER) +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# else +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(__LCC__) +# if defined(__MCST__) /* MCST eLbrus Compiler Collection */ +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 +# else /* Local (or Little) C Compiler */ +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# endif + +#elif defined(__SYMBIAN32__) +# if defined(__EABI__) /* Treat all ARM compilers equally */ +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__CW32__) +# pragma longlong on +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__VC32__) +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int + +#elif defined(__MWERKS__) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(_WIN32_WCE) +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(__MINGW32__) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_WS2TCPIP_H 1 + +#elif defined(__VMS) +# if defined(__VAX) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int + +#elif defined(__OS400__) +# if defined(__ILEC400__) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 +# endif + +#elif defined(__MVS__) +# if defined(__IBMC__) || defined(__IBMCPP__) +# if defined(_ILP32) +# elif defined(_LP64) +# endif +# if defined(_LONG_LONG) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(_LP64) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 +# endif + +#elif defined(__370__) +# if defined(__IBMC__) || defined(__IBMCPP__) +# if defined(_ILP32) +# elif defined(_LP64) +# endif +# if defined(_LONG_LONG) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(_LP64) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 +# endif + +#elif defined(TPF) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +#elif defined(__TINYC__) /* also known as tcc */ +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + +#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */ +# if !defined(__LP64) && (defined(__ILP32) || \ + defined(__i386) || \ + defined(__sparcv8) || \ + defined(__sparcv8plus)) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__LP64) || \ + defined(__amd64) || defined(__sparcv9) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + +#elif defined(__xlc__) /* IBM xlc compiler */ +# if !defined(_LP64) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + +/* ===================================== */ +/* KEEP MSVC THE PENULTIMATE ENTRY */ +/* ===================================== */ + +#elif defined(_MSC_VER) +# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64) +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int + +/* ===================================== */ +/* KEEP GENERIC GCC THE LAST ENTRY */ +/* ===================================== */ + +#elif defined(__GNUC__) && !defined(_SCO_DS) +# if !defined(__LP64__) && \ + (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \ + defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \ + defined(__sparc__) || defined(__mips__) || defined(__sh__) || \ + defined(__XTENSA__) || \ + (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \ + (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__LP64__) || \ + defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \ + defined(__e2k__) || \ + (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \ + (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + +#else +/* generic "safe guess" on old 32 bit style */ +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +#endif + +#ifdef _AIX +/* AIX needs */ +#define CURL_PULL_SYS_POLL_H +#endif + + +/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */ +/* ws2tcpip.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_WS2TCPIP_H +# include +# include +# include +#endif + +/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */ +/* sys/types.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_SYS_TYPES_H +# include +#endif + +/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ +/* sys/socket.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_SYS_SOCKET_H +# include +#endif + +/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */ +/* sys/poll.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_SYS_POLL_H +# include +#endif + +/* Data type definition of curl_socklen_t. */ +#ifdef CURL_TYPEOF_CURL_SOCKLEN_T + typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; +#endif + +/* Data type definition of curl_off_t. */ + +#ifdef CURL_TYPEOF_CURL_OFF_T + typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; +#endif + +/* + * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow + * these to be visible and exported by the external libcurl interface API, + * while also making them visible to the library internals, simply including + * curl_setup.h, without actually needing to include curl.h internally. + * If some day this section would grow big enough, all this should be moved + * to its own header file. + */ + +/* + * Figure out if we can use the ## preprocessor operator, which is supported + * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ + * or __cplusplus so we need to carefully check for them too. + */ + +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ + defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ + defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ + defined(__ILEC400__) + /* This compiler is believed to have an ISO compatible preprocessor */ +#define CURL_ISOCPP +#else + /* This compiler is believed NOT to have an ISO compatible preprocessor */ +#undef CURL_ISOCPP +#endif + +/* + * Macros for minimum-width signed and unsigned curl_off_t integer constants. + */ + +#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) +# define CURLINC_OFF_T_C_HLPR2(x) x +# define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x) +# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \ + CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) +# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \ + CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) +#else +# ifdef CURL_ISOCPP +# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix +# else +# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix +# endif +# define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix) +# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) +# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) +#endif + +#endif /* CURLINC_SYSTEM_H */ diff --git a/SignOff_itk/curl/include/curl/typecheck-gcc.h b/SignOff_itk/curl/include/curl/typecheck-gcc.h new file mode 100644 index 0000000..d7c7a9a --- /dev/null +++ b/SignOff_itk/curl/include/curl/typecheck-gcc.h @@ -0,0 +1,710 @@ +#ifndef CURLINC_TYPECHECK_GCC_H +#define CURLINC_TYPECHECK_GCC_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +/* wraps curl_easy_setopt() with typechecking */ + +/* To add a new kind of warning, add an + * if(curlcheck_sometype_option(_curl_opt)) + * if(!curlcheck_sometype(value)) + * _curl_easy_setopt_err_sometype(); + * block and define curlcheck_sometype_option, curlcheck_sometype and + * _curl_easy_setopt_err_sometype below + * + * NOTE: We use two nested 'if' statements here instead of the && operator, in + * order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x + * when compiling with -Wlogical-op. + * + * To add an option that uses the same type as an existing option, you'll just + * need to extend the appropriate _curl_*_option macro + */ +#define curl_easy_setopt(handle, option, value) \ + __extension__({ \ + __typeof__(option) _curl_opt = option; \ + if(__builtin_constant_p(_curl_opt)) { \ + if(curlcheck_long_option(_curl_opt)) \ + if(!curlcheck_long(value)) \ + _curl_easy_setopt_err_long(); \ + if(curlcheck_off_t_option(_curl_opt)) \ + if(!curlcheck_off_t(value)) \ + _curl_easy_setopt_err_curl_off_t(); \ + if(curlcheck_string_option(_curl_opt)) \ + if(!curlcheck_string(value)) \ + _curl_easy_setopt_err_string(); \ + if(curlcheck_write_cb_option(_curl_opt)) \ + if(!curlcheck_write_cb(value)) \ + _curl_easy_setopt_err_write_callback(); \ + if((_curl_opt) == CURLOPT_RESOLVER_START_FUNCTION) \ + if(!curlcheck_resolver_start_callback(value)) \ + _curl_easy_setopt_err_resolver_start_callback(); \ + if((_curl_opt) == CURLOPT_READFUNCTION) \ + if(!curlcheck_read_cb(value)) \ + _curl_easy_setopt_err_read_cb(); \ + if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ + if(!curlcheck_ioctl_cb(value)) \ + _curl_easy_setopt_err_ioctl_cb(); \ + if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ + if(!curlcheck_sockopt_cb(value)) \ + _curl_easy_setopt_err_sockopt_cb(); \ + if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ + if(!curlcheck_opensocket_cb(value)) \ + _curl_easy_setopt_err_opensocket_cb(); \ + if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ + if(!curlcheck_progress_cb(value)) \ + _curl_easy_setopt_err_progress_cb(); \ + if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ + if(!curlcheck_debug_cb(value)) \ + _curl_easy_setopt_err_debug_cb(); \ + if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ + if(!curlcheck_ssl_ctx_cb(value)) \ + _curl_easy_setopt_err_ssl_ctx_cb(); \ + if(curlcheck_conv_cb_option(_curl_opt)) \ + if(!curlcheck_conv_cb(value)) \ + _curl_easy_setopt_err_conv_cb(); \ + if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ + if(!curlcheck_seek_cb(value)) \ + _curl_easy_setopt_err_seek_cb(); \ + if(curlcheck_cb_data_option(_curl_opt)) \ + if(!curlcheck_cb_data(value)) \ + _curl_easy_setopt_err_cb_data(); \ + if((_curl_opt) == CURLOPT_ERRORBUFFER) \ + if(!curlcheck_error_buffer(value)) \ + _curl_easy_setopt_err_error_buffer(); \ + if((_curl_opt) == CURLOPT_STDERR) \ + if(!curlcheck_FILE(value)) \ + _curl_easy_setopt_err_FILE(); \ + if(curlcheck_postfields_option(_curl_opt)) \ + if(!curlcheck_postfields(value)) \ + _curl_easy_setopt_err_postfields(); \ + if((_curl_opt) == CURLOPT_HTTPPOST) \ + if(!curlcheck_arr((value), struct curl_httppost)) \ + _curl_easy_setopt_err_curl_httpost(); \ + if((_curl_opt) == CURLOPT_MIMEPOST) \ + if(!curlcheck_ptr((value), curl_mime)) \ + _curl_easy_setopt_err_curl_mimepost(); \ + if(curlcheck_slist_option(_curl_opt)) \ + if(!curlcheck_arr((value), struct curl_slist)) \ + _curl_easy_setopt_err_curl_slist(); \ + if((_curl_opt) == CURLOPT_SHARE) \ + if(!curlcheck_ptr((value), CURLSH)) \ + _curl_easy_setopt_err_CURLSH(); \ + } \ + curl_easy_setopt(handle, _curl_opt, value); \ + }) + +/* wraps curl_easy_getinfo() with typechecking */ +#define curl_easy_getinfo(handle, info, arg) \ + __extension__({ \ + __typeof__(info) _curl_info = info; \ + if(__builtin_constant_p(_curl_info)) { \ + if(curlcheck_string_info(_curl_info)) \ + if(!curlcheck_arr((arg), char *)) \ + _curl_easy_getinfo_err_string(); \ + if(curlcheck_long_info(_curl_info)) \ + if(!curlcheck_arr((arg), long)) \ + _curl_easy_getinfo_err_long(); \ + if(curlcheck_double_info(_curl_info)) \ + if(!curlcheck_arr((arg), double)) \ + _curl_easy_getinfo_err_double(); \ + if(curlcheck_slist_info(_curl_info)) \ + if(!curlcheck_arr((arg), struct curl_slist *)) \ + _curl_easy_getinfo_err_curl_slist(); \ + if(curlcheck_tlssessioninfo_info(_curl_info)) \ + if(!curlcheck_arr((arg), struct curl_tlssessioninfo *)) \ + _curl_easy_getinfo_err_curl_tlssesssioninfo(); \ + if(curlcheck_certinfo_info(_curl_info)) \ + if(!curlcheck_arr((arg), struct curl_certinfo *)) \ + _curl_easy_getinfo_err_curl_certinfo(); \ + if(curlcheck_socket_info(_curl_info)) \ + if(!curlcheck_arr((arg), curl_socket_t)) \ + _curl_easy_getinfo_err_curl_socket(); \ + if(curlcheck_off_t_info(_curl_info)) \ + if(!curlcheck_arr((arg), curl_off_t)) \ + _curl_easy_getinfo_err_curl_off_t(); \ + } \ + curl_easy_getinfo(handle, _curl_info, arg); \ + }) + +/* + * For now, just make sure that the functions are called with three arguments + */ +#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) +#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) + + +/* the actual warnings, triggered by calling the _curl_easy_setopt_err* + * functions */ + +/* To define a new warning, use _CURL_WARNING(identifier, "message") */ +#define CURLWARNING(id, message) \ + static void __attribute__((__warning__(message))) \ + __attribute__((__unused__)) __attribute__((__noinline__)) \ + id(void) { __asm__(""); } + +CURLWARNING(_curl_easy_setopt_err_long, + "curl_easy_setopt expects a long argument for this option") +CURLWARNING(_curl_easy_setopt_err_curl_off_t, + "curl_easy_setopt expects a curl_off_t argument for this option") +CURLWARNING(_curl_easy_setopt_err_string, + "curl_easy_setopt expects a " + "string ('char *' or char[]) argument for this option" + ) +CURLWARNING(_curl_easy_setopt_err_write_callback, + "curl_easy_setopt expects a curl_write_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_resolver_start_callback, + "curl_easy_setopt expects a " + "curl_resolver_start_callback argument for this option" + ) +CURLWARNING(_curl_easy_setopt_err_read_cb, + "curl_easy_setopt expects a curl_read_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_ioctl_cb, + "curl_easy_setopt expects a curl_ioctl_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_sockopt_cb, + "curl_easy_setopt expects a curl_sockopt_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_opensocket_cb, + "curl_easy_setopt expects a " + "curl_opensocket_callback argument for this option" + ) +CURLWARNING(_curl_easy_setopt_err_progress_cb, + "curl_easy_setopt expects a curl_progress_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_debug_cb, + "curl_easy_setopt expects a curl_debug_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_ssl_ctx_cb, + "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_conv_cb, + "curl_easy_setopt expects a curl_conv_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_seek_cb, + "curl_easy_setopt expects a curl_seek_callback argument for this option") +CURLWARNING(_curl_easy_setopt_err_cb_data, + "curl_easy_setopt expects a " + "private data pointer as argument for this option") +CURLWARNING(_curl_easy_setopt_err_error_buffer, + "curl_easy_setopt expects a " + "char buffer of CURL_ERROR_SIZE as argument for this option") +CURLWARNING(_curl_easy_setopt_err_FILE, + "curl_easy_setopt expects a 'FILE *' argument for this option") +CURLWARNING(_curl_easy_setopt_err_postfields, + "curl_easy_setopt expects a 'void *' or 'char *' argument for this option") +CURLWARNING(_curl_easy_setopt_err_curl_httpost, + "curl_easy_setopt expects a 'struct curl_httppost *' " + "argument for this option") +CURLWARNING(_curl_easy_setopt_err_curl_mimepost, + "curl_easy_setopt expects a 'curl_mime *' " + "argument for this option") +CURLWARNING(_curl_easy_setopt_err_curl_slist, + "curl_easy_setopt expects a 'struct curl_slist *' argument for this option") +CURLWARNING(_curl_easy_setopt_err_CURLSH, + "curl_easy_setopt expects a CURLSH* argument for this option") + +CURLWARNING(_curl_easy_getinfo_err_string, + "curl_easy_getinfo expects a pointer to 'char *' for this info") +CURLWARNING(_curl_easy_getinfo_err_long, + "curl_easy_getinfo expects a pointer to long for this info") +CURLWARNING(_curl_easy_getinfo_err_double, + "curl_easy_getinfo expects a pointer to double for this info") +CURLWARNING(_curl_easy_getinfo_err_curl_slist, + "curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info") +CURLWARNING(_curl_easy_getinfo_err_curl_tlssesssioninfo, + "curl_easy_getinfo expects a pointer to " + "'struct curl_tlssessioninfo *' for this info") +CURLWARNING(_curl_easy_getinfo_err_curl_certinfo, + "curl_easy_getinfo expects a pointer to " + "'struct curl_certinfo *' for this info") +CURLWARNING(_curl_easy_getinfo_err_curl_socket, + "curl_easy_getinfo expects a pointer to curl_socket_t for this info") +CURLWARNING(_curl_easy_getinfo_err_curl_off_t, + "curl_easy_getinfo expects a pointer to curl_off_t for this info") + +/* groups of curl_easy_setops options that take the same type of argument */ + +/* To add a new option to one of the groups, just add + * (option) == CURLOPT_SOMETHING + * to the or-expression. If the option takes a long or curl_off_t, you don't + * have to do anything + */ + +/* evaluates to true if option takes a long argument */ +#define curlcheck_long_option(option) \ + (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) + +#define curlcheck_off_t_option(option) \ + (((option) > CURLOPTTYPE_OFF_T) && ((option) < CURLOPTTYPE_BLOB)) + +/* evaluates to true if option takes a char* argument */ +#define curlcheck_string_option(option) \ + ((option) == CURLOPT_ABSTRACT_UNIX_SOCKET || \ + (option) == CURLOPT_ACCEPT_ENCODING || \ + (option) == CURLOPT_ALTSVC || \ + (option) == CURLOPT_CAINFO || \ + (option) == CURLOPT_CAPATH || \ + (option) == CURLOPT_COOKIE || \ + (option) == CURLOPT_COOKIEFILE || \ + (option) == CURLOPT_COOKIEJAR || \ + (option) == CURLOPT_COOKIELIST || \ + (option) == CURLOPT_CRLFILE || \ + (option) == CURLOPT_CUSTOMREQUEST || \ + (option) == CURLOPT_DEFAULT_PROTOCOL || \ + (option) == CURLOPT_DNS_INTERFACE || \ + (option) == CURLOPT_DNS_LOCAL_IP4 || \ + (option) == CURLOPT_DNS_LOCAL_IP6 || \ + (option) == CURLOPT_DNS_SERVERS || \ + (option) == CURLOPT_DOH_URL || \ + (option) == CURLOPT_EGDSOCKET || \ + (option) == CURLOPT_FTPPORT || \ + (option) == CURLOPT_FTP_ACCOUNT || \ + (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ + (option) == CURLOPT_HSTS || \ + (option) == CURLOPT_INTERFACE || \ + (option) == CURLOPT_ISSUERCERT || \ + (option) == CURLOPT_KEYPASSWD || \ + (option) == CURLOPT_KRBLEVEL || \ + (option) == CURLOPT_LOGIN_OPTIONS || \ + (option) == CURLOPT_MAIL_AUTH || \ + (option) == CURLOPT_MAIL_FROM || \ + (option) == CURLOPT_NETRC_FILE || \ + (option) == CURLOPT_NOPROXY || \ + (option) == CURLOPT_PASSWORD || \ + (option) == CURLOPT_PINNEDPUBLICKEY || \ + (option) == CURLOPT_PRE_PROXY || \ + (option) == CURLOPT_PROXY || \ + (option) == CURLOPT_PROXYPASSWORD || \ + (option) == CURLOPT_PROXYUSERNAME || \ + (option) == CURLOPT_PROXYUSERPWD || \ + (option) == CURLOPT_PROXY_CAINFO || \ + (option) == CURLOPT_PROXY_CAPATH || \ + (option) == CURLOPT_PROXY_CRLFILE || \ + (option) == CURLOPT_PROXY_ISSUERCERT || \ + (option) == CURLOPT_PROXY_KEYPASSWD || \ + (option) == CURLOPT_PROXY_PINNEDPUBLICKEY || \ + (option) == CURLOPT_PROXY_SERVICE_NAME || \ + (option) == CURLOPT_PROXY_SSLCERT || \ + (option) == CURLOPT_PROXY_SSLCERTTYPE || \ + (option) == CURLOPT_PROXY_SSLKEY || \ + (option) == CURLOPT_PROXY_SSLKEYTYPE || \ + (option) == CURLOPT_PROXY_SSL_CIPHER_LIST || \ + (option) == CURLOPT_PROXY_TLS13_CIPHERS || \ + (option) == CURLOPT_PROXY_TLSAUTH_PASSWORD || \ + (option) == CURLOPT_PROXY_TLSAUTH_TYPE || \ + (option) == CURLOPT_PROXY_TLSAUTH_USERNAME || \ + (option) == CURLOPT_RANDOM_FILE || \ + (option) == CURLOPT_RANGE || \ + (option) == CURLOPT_REFERER || \ + (option) == CURLOPT_REQUEST_TARGET || \ + (option) == CURLOPT_RTSP_SESSION_ID || \ + (option) == CURLOPT_RTSP_STREAM_URI || \ + (option) == CURLOPT_RTSP_TRANSPORT || \ + (option) == CURLOPT_SASL_AUTHZID || \ + (option) == CURLOPT_SERVICE_NAME || \ + (option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ + (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ + (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 || \ + (option) == CURLOPT_SSH_KNOWNHOSTS || \ + (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ + (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ + (option) == CURLOPT_SSLCERT || \ + (option) == CURLOPT_SSLCERTTYPE || \ + (option) == CURLOPT_SSLENGINE || \ + (option) == CURLOPT_SSLKEY || \ + (option) == CURLOPT_SSLKEYTYPE || \ + (option) == CURLOPT_SSL_CIPHER_LIST || \ + (option) == CURLOPT_TLS13_CIPHERS || \ + (option) == CURLOPT_TLSAUTH_PASSWORD || \ + (option) == CURLOPT_TLSAUTH_TYPE || \ + (option) == CURLOPT_TLSAUTH_USERNAME || \ + (option) == CURLOPT_UNIX_SOCKET_PATH || \ + (option) == CURLOPT_URL || \ + (option) == CURLOPT_USERAGENT || \ + (option) == CURLOPT_USERNAME || \ + (option) == CURLOPT_AWS_SIGV4 || \ + (option) == CURLOPT_USERPWD || \ + (option) == CURLOPT_XOAUTH2_BEARER || \ + (option) == CURLOPT_SSL_EC_CURVES || \ + 0) + +/* evaluates to true if option takes a curl_write_callback argument */ +#define curlcheck_write_cb_option(option) \ + ((option) == CURLOPT_HEADERFUNCTION || \ + (option) == CURLOPT_WRITEFUNCTION) + +/* evaluates to true if option takes a curl_conv_callback argument */ +#define curlcheck_conv_cb_option(option) \ + ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ + (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ + (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) + +/* evaluates to true if option takes a data argument to pass to a callback */ +#define curlcheck_cb_data_option(option) \ + ((option) == CURLOPT_CHUNK_DATA || \ + (option) == CURLOPT_CLOSESOCKETDATA || \ + (option) == CURLOPT_DEBUGDATA || \ + (option) == CURLOPT_FNMATCH_DATA || \ + (option) == CURLOPT_HEADERDATA || \ + (option) == CURLOPT_HSTSREADDATA || \ + (option) == CURLOPT_HSTSWRITEDATA || \ + (option) == CURLOPT_INTERLEAVEDATA || \ + (option) == CURLOPT_IOCTLDATA || \ + (option) == CURLOPT_OPENSOCKETDATA || \ + (option) == CURLOPT_PREREQDATA || \ + (option) == CURLOPT_PROGRESSDATA || \ + (option) == CURLOPT_READDATA || \ + (option) == CURLOPT_SEEKDATA || \ + (option) == CURLOPT_SOCKOPTDATA || \ + (option) == CURLOPT_SSH_KEYDATA || \ + (option) == CURLOPT_SSL_CTX_DATA || \ + (option) == CURLOPT_WRITEDATA || \ + (option) == CURLOPT_RESOLVER_START_DATA || \ + (option) == CURLOPT_TRAILERDATA || \ + (option) == CURLOPT_SSH_HOSTKEYDATA || \ + 0) + +/* evaluates to true if option takes a POST data argument (void* or char*) */ +#define curlcheck_postfields_option(option) \ + ((option) == CURLOPT_POSTFIELDS || \ + (option) == CURLOPT_COPYPOSTFIELDS || \ + 0) + +/* evaluates to true if option takes a struct curl_slist * argument */ +#define curlcheck_slist_option(option) \ + ((option) == CURLOPT_HTTP200ALIASES || \ + (option) == CURLOPT_HTTPHEADER || \ + (option) == CURLOPT_MAIL_RCPT || \ + (option) == CURLOPT_POSTQUOTE || \ + (option) == CURLOPT_PREQUOTE || \ + (option) == CURLOPT_PROXYHEADER || \ + (option) == CURLOPT_QUOTE || \ + (option) == CURLOPT_RESOLVE || \ + (option) == CURLOPT_TELNETOPTIONS || \ + (option) == CURLOPT_CONNECT_TO || \ + 0) + +/* groups of curl_easy_getinfo infos that take the same type of argument */ + +/* evaluates to true if info expects a pointer to char * argument */ +#define curlcheck_string_info(info) \ + (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG && \ + (info) != CURLINFO_PRIVATE) + +/* evaluates to true if info expects a pointer to long argument */ +#define curlcheck_long_info(info) \ + (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) + +/* evaluates to true if info expects a pointer to double argument */ +#define curlcheck_double_info(info) \ + (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) + +/* true if info expects a pointer to struct curl_slist * argument */ +#define curlcheck_slist_info(info) \ + (((info) == CURLINFO_SSL_ENGINES) || ((info) == CURLINFO_COOKIELIST)) + +/* true if info expects a pointer to struct curl_tlssessioninfo * argument */ +#define curlcheck_tlssessioninfo_info(info) \ + (((info) == CURLINFO_TLS_SSL_PTR) || ((info) == CURLINFO_TLS_SESSION)) + +/* true if info expects a pointer to struct curl_certinfo * argument */ +#define curlcheck_certinfo_info(info) ((info) == CURLINFO_CERTINFO) + +/* true if info expects a pointer to struct curl_socket_t argument */ +#define curlcheck_socket_info(info) \ + (CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T) + +/* true if info expects a pointer to curl_off_t argument */ +#define curlcheck_off_t_info(info) \ + (CURLINFO_OFF_T < (info)) + + +/* typecheck helpers -- check whether given expression has requested type*/ + +/* For pointers, you can use the curlcheck_ptr/curlcheck_arr macros, + * otherwise define a new macro. Search for __builtin_types_compatible_p + * in the GCC manual. + * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is + * the actual expression passed to the curl_easy_setopt macro. This + * means that you can only apply the sizeof and __typeof__ operators, no + * == or whatsoever. + */ + +/* XXX: should evaluate to true if expr is a pointer */ +#define curlcheck_any_ptr(expr) \ + (sizeof(expr) == sizeof(void *)) + +/* evaluates to true if expr is NULL */ +/* XXX: must not evaluate expr, so this check is not accurate */ +#define curlcheck_NULL(expr) \ + (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) + +/* evaluates to true if expr is type*, const type* or NULL */ +#define curlcheck_ptr(expr, type) \ + (curlcheck_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), type *) || \ + __builtin_types_compatible_p(__typeof__(expr), const type *)) + +/* evaluates to true if expr is one of type[], type*, NULL or const type* */ +#define curlcheck_arr(expr, type) \ + (curlcheck_ptr((expr), type) || \ + __builtin_types_compatible_p(__typeof__(expr), type [])) + +/* evaluates to true if expr is a string */ +#define curlcheck_string(expr) \ + (curlcheck_arr((expr), char) || \ + curlcheck_arr((expr), signed char) || \ + curlcheck_arr((expr), unsigned char)) + +/* evaluates to true if expr is a long (no matter the signedness) + * XXX: for now, int is also accepted (and therefore short and char, which + * are promoted to int when passed to a variadic function) */ +#define curlcheck_long(expr) \ + (__builtin_types_compatible_p(__typeof__(expr), long) || \ + __builtin_types_compatible_p(__typeof__(expr), signed long) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ + __builtin_types_compatible_p(__typeof__(expr), int) || \ + __builtin_types_compatible_p(__typeof__(expr), signed int) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ + __builtin_types_compatible_p(__typeof__(expr), short) || \ + __builtin_types_compatible_p(__typeof__(expr), signed short) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ + __builtin_types_compatible_p(__typeof__(expr), char) || \ + __builtin_types_compatible_p(__typeof__(expr), signed char) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned char)) + +/* evaluates to true if expr is of type curl_off_t */ +#define curlcheck_off_t(expr) \ + (__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) + +/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ +/* XXX: also check size of an char[] array? */ +#define curlcheck_error_buffer(expr) \ + (curlcheck_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), char *) || \ + __builtin_types_compatible_p(__typeof__(expr), char[])) + +/* evaluates to true if expr is of type (const) void* or (const) FILE* */ +#if 0 +#define curlcheck_cb_data(expr) \ + (curlcheck_ptr((expr), void) || \ + curlcheck_ptr((expr), FILE)) +#else /* be less strict */ +#define curlcheck_cb_data(expr) \ + curlcheck_any_ptr(expr) +#endif + +/* evaluates to true if expr is of type FILE* */ +#define curlcheck_FILE(expr) \ + (curlcheck_NULL(expr) || \ + (__builtin_types_compatible_p(__typeof__(expr), FILE *))) + +/* evaluates to true if expr can be passed as POST data (void* or char*) */ +#define curlcheck_postfields(expr) \ + (curlcheck_ptr((expr), void) || \ + curlcheck_arr((expr), char) || \ + curlcheck_arr((expr), unsigned char)) + +/* helper: __builtin_types_compatible_p distinguishes between functions and + * function pointers, hide it */ +#define curlcheck_cb_compatible(func, type) \ + (__builtin_types_compatible_p(__typeof__(func), type) || \ + __builtin_types_compatible_p(__typeof__(func) *, type)) + +/* evaluates to true if expr is of type curl_resolver_start_callback */ +#define curlcheck_resolver_start_callback(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_resolver_start_callback)) + +/* evaluates to true if expr is of type curl_read_callback or "similar" */ +#define curlcheck_read_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), __typeof__(fread) *) || \ + curlcheck_cb_compatible((expr), curl_read_callback) || \ + curlcheck_cb_compatible((expr), _curl_read_callback1) || \ + curlcheck_cb_compatible((expr), _curl_read_callback2) || \ + curlcheck_cb_compatible((expr), _curl_read_callback3) || \ + curlcheck_cb_compatible((expr), _curl_read_callback4) || \ + curlcheck_cb_compatible((expr), _curl_read_callback5) || \ + curlcheck_cb_compatible((expr), _curl_read_callback6)) +typedef size_t (*_curl_read_callback1)(char *, size_t, size_t, void *); +typedef size_t (*_curl_read_callback2)(char *, size_t, size_t, const void *); +typedef size_t (*_curl_read_callback3)(char *, size_t, size_t, FILE *); +typedef size_t (*_curl_read_callback4)(void *, size_t, size_t, void *); +typedef size_t (*_curl_read_callback5)(void *, size_t, size_t, const void *); +typedef size_t (*_curl_read_callback6)(void *, size_t, size_t, FILE *); + +/* evaluates to true if expr is of type curl_write_callback or "similar" */ +#define curlcheck_write_cb(expr) \ + (curlcheck_read_cb(expr) || \ + curlcheck_cb_compatible((expr), __typeof__(fwrite) *) || \ + curlcheck_cb_compatible((expr), curl_write_callback) || \ + curlcheck_cb_compatible((expr), _curl_write_callback1) || \ + curlcheck_cb_compatible((expr), _curl_write_callback2) || \ + curlcheck_cb_compatible((expr), _curl_write_callback3) || \ + curlcheck_cb_compatible((expr), _curl_write_callback4) || \ + curlcheck_cb_compatible((expr), _curl_write_callback5) || \ + curlcheck_cb_compatible((expr), _curl_write_callback6)) +typedef size_t (*_curl_write_callback1)(const char *, size_t, size_t, void *); +typedef size_t (*_curl_write_callback2)(const char *, size_t, size_t, + const void *); +typedef size_t (*_curl_write_callback3)(const char *, size_t, size_t, FILE *); +typedef size_t (*_curl_write_callback4)(const void *, size_t, size_t, void *); +typedef size_t (*_curl_write_callback5)(const void *, size_t, size_t, + const void *); +typedef size_t (*_curl_write_callback6)(const void *, size_t, size_t, FILE *); + +/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ +#define curlcheck_ioctl_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_ioctl_callback) || \ + curlcheck_cb_compatible((expr), _curl_ioctl_callback1) || \ + curlcheck_cb_compatible((expr), _curl_ioctl_callback2) || \ + curlcheck_cb_compatible((expr), _curl_ioctl_callback3) || \ + curlcheck_cb_compatible((expr), _curl_ioctl_callback4)) +typedef curlioerr (*_curl_ioctl_callback1)(CURL *, int, void *); +typedef curlioerr (*_curl_ioctl_callback2)(CURL *, int, const void *); +typedef curlioerr (*_curl_ioctl_callback3)(CURL *, curliocmd, void *); +typedef curlioerr (*_curl_ioctl_callback4)(CURL *, curliocmd, const void *); + +/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ +#define curlcheck_sockopt_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_sockopt_callback) || \ + curlcheck_cb_compatible((expr), _curl_sockopt_callback1) || \ + curlcheck_cb_compatible((expr), _curl_sockopt_callback2)) +typedef int (*_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); +typedef int (*_curl_sockopt_callback2)(const void *, curl_socket_t, + curlsocktype); + +/* evaluates to true if expr is of type curl_opensocket_callback or + "similar" */ +#define curlcheck_opensocket_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_opensocket_callback) || \ + curlcheck_cb_compatible((expr), _curl_opensocket_callback1) || \ + curlcheck_cb_compatible((expr), _curl_opensocket_callback2) || \ + curlcheck_cb_compatible((expr), _curl_opensocket_callback3) || \ + curlcheck_cb_compatible((expr), _curl_opensocket_callback4)) +typedef curl_socket_t (*_curl_opensocket_callback1) + (void *, curlsocktype, struct curl_sockaddr *); +typedef curl_socket_t (*_curl_opensocket_callback2) + (void *, curlsocktype, const struct curl_sockaddr *); +typedef curl_socket_t (*_curl_opensocket_callback3) + (const void *, curlsocktype, struct curl_sockaddr *); +typedef curl_socket_t (*_curl_opensocket_callback4) + (const void *, curlsocktype, const struct curl_sockaddr *); + +/* evaluates to true if expr is of type curl_progress_callback or "similar" */ +#define curlcheck_progress_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_progress_callback) || \ + curlcheck_cb_compatible((expr), _curl_progress_callback1) || \ + curlcheck_cb_compatible((expr), _curl_progress_callback2)) +typedef int (*_curl_progress_callback1)(void *, + double, double, double, double); +typedef int (*_curl_progress_callback2)(const void *, + double, double, double, double); + +/* evaluates to true if expr is of type curl_debug_callback or "similar" */ +#define curlcheck_debug_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_debug_callback) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback1) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback2) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback3) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback4) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback5) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback6) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback7) || \ + curlcheck_cb_compatible((expr), _curl_debug_callback8)) +typedef int (*_curl_debug_callback1) (CURL *, + curl_infotype, char *, size_t, void *); +typedef int (*_curl_debug_callback2) (CURL *, + curl_infotype, char *, size_t, const void *); +typedef int (*_curl_debug_callback3) (CURL *, + curl_infotype, const char *, size_t, void *); +typedef int (*_curl_debug_callback4) (CURL *, + curl_infotype, const char *, size_t, const void *); +typedef int (*_curl_debug_callback5) (CURL *, + curl_infotype, unsigned char *, size_t, void *); +typedef int (*_curl_debug_callback6) (CURL *, + curl_infotype, unsigned char *, size_t, const void *); +typedef int (*_curl_debug_callback7) (CURL *, + curl_infotype, const unsigned char *, size_t, void *); +typedef int (*_curl_debug_callback8) (CURL *, + curl_infotype, const unsigned char *, size_t, const void *); + +/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ +/* this is getting even messier... */ +#define curlcheck_ssl_ctx_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_ssl_ctx_callback) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback1) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback2) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback3) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback4) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback5) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback6) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback7) || \ + curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback8)) +typedef CURLcode (*_curl_ssl_ctx_callback1)(CURL *, void *, void *); +typedef CURLcode (*_curl_ssl_ctx_callback2)(CURL *, void *, const void *); +typedef CURLcode (*_curl_ssl_ctx_callback3)(CURL *, const void *, void *); +typedef CURLcode (*_curl_ssl_ctx_callback4)(CURL *, const void *, + const void *); +#ifdef HEADER_SSL_H +/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX + * this will of course break if we're included before OpenSSL headers... + */ +typedef CURLcode (*_curl_ssl_ctx_callback5)(CURL *, SSL_CTX *, void *); +typedef CURLcode (*_curl_ssl_ctx_callback6)(CURL *, SSL_CTX *, const void *); +typedef CURLcode (*_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX *, void *); +typedef CURLcode (*_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX *, + const void *); +#else +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; +#endif + +/* evaluates to true if expr is of type curl_conv_callback or "similar" */ +#define curlcheck_conv_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_conv_callback) || \ + curlcheck_cb_compatible((expr), _curl_conv_callback1) || \ + curlcheck_cb_compatible((expr), _curl_conv_callback2) || \ + curlcheck_cb_compatible((expr), _curl_conv_callback3) || \ + curlcheck_cb_compatible((expr), _curl_conv_callback4)) +typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); +typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); +typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); +typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); + +/* evaluates to true if expr is of type curl_seek_callback or "similar" */ +#define curlcheck_seek_cb(expr) \ + (curlcheck_NULL(expr) || \ + curlcheck_cb_compatible((expr), curl_seek_callback) || \ + curlcheck_cb_compatible((expr), _curl_seek_callback1) || \ + curlcheck_cb_compatible((expr), _curl_seek_callback2)) +typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); +typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); + + +#endif /* CURLINC_TYPECHECK_GCC_H */ diff --git a/SignOff_itk/curl/include/curl/urlapi.h b/SignOff_itk/curl/include/curl/urlapi.h new file mode 100644 index 0000000..e15c213 --- /dev/null +++ b/SignOff_itk/curl/include/curl/urlapi.h @@ -0,0 +1,147 @@ +#ifndef CURLINC_URLAPI_H +#define CURLINC_URLAPI_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2018 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +#include "curl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* the error codes for the URL API */ +typedef enum { + CURLUE_OK, + CURLUE_BAD_HANDLE, /* 1 */ + CURLUE_BAD_PARTPOINTER, /* 2 */ + CURLUE_MALFORMED_INPUT, /* 3 */ + CURLUE_BAD_PORT_NUMBER, /* 4 */ + CURLUE_UNSUPPORTED_SCHEME, /* 5 */ + CURLUE_URLDECODE, /* 6 */ + CURLUE_OUT_OF_MEMORY, /* 7 */ + CURLUE_USER_NOT_ALLOWED, /* 8 */ + CURLUE_UNKNOWN_PART, /* 9 */ + CURLUE_NO_SCHEME, /* 10 */ + CURLUE_NO_USER, /* 11 */ + CURLUE_NO_PASSWORD, /* 12 */ + CURLUE_NO_OPTIONS, /* 13 */ + CURLUE_NO_HOST, /* 14 */ + CURLUE_NO_PORT, /* 15 */ + CURLUE_NO_QUERY, /* 16 */ + CURLUE_NO_FRAGMENT, /* 17 */ + CURLUE_NO_ZONEID, /* 18 */ + CURLUE_BAD_FILE_URL, /* 19 */ + CURLUE_BAD_FRAGMENT, /* 20 */ + CURLUE_BAD_HOSTNAME, /* 21 */ + CURLUE_BAD_IPV6, /* 22 */ + CURLUE_BAD_LOGIN, /* 23 */ + CURLUE_BAD_PASSWORD, /* 24 */ + CURLUE_BAD_PATH, /* 25 */ + CURLUE_BAD_QUERY, /* 26 */ + CURLUE_BAD_SCHEME, /* 27 */ + CURLUE_BAD_SLASHES, /* 28 */ + CURLUE_BAD_USER, /* 29 */ + CURLUE_LAST +} CURLUcode; + +typedef enum { + CURLUPART_URL, + CURLUPART_SCHEME, + CURLUPART_USER, + CURLUPART_PASSWORD, + CURLUPART_OPTIONS, + CURLUPART_HOST, + CURLUPART_PORT, + CURLUPART_PATH, + CURLUPART_QUERY, + CURLUPART_FRAGMENT, + CURLUPART_ZONEID /* added in 7.65.0 */ +} CURLUPart; + +#define CURLU_DEFAULT_PORT (1<<0) /* return default port number */ +#define CURLU_NO_DEFAULT_PORT (1<<1) /* act as if no port number was set, + if the port number matches the + default for the scheme */ +#define CURLU_DEFAULT_SCHEME (1<<2) /* return default scheme if + missing */ +#define CURLU_NON_SUPPORT_SCHEME (1<<3) /* allow non-supported scheme */ +#define CURLU_PATH_AS_IS (1<<4) /* leave dot sequences */ +#define CURLU_DISALLOW_USER (1<<5) /* no user+password allowed */ +#define CURLU_URLDECODE (1<<6) /* URL decode on get */ +#define CURLU_URLENCODE (1<<7) /* URL encode on set */ +#define CURLU_APPENDQUERY (1<<8) /* append a form style part */ +#define CURLU_GUESS_SCHEME (1<<9) /* legacy curl-style guessing */ +#define CURLU_NO_AUTHORITY (1<<10) /* Allow empty authority when the + scheme is unknown. */ +#define CURLU_ALLOW_SPACE (1<<11) /* Allow spaces in the URL */ + +typedef struct Curl_URL CURLU; + +/* + * curl_url() creates a new CURLU handle and returns a pointer to it. + * Must be freed with curl_url_cleanup(). + */ +CURL_EXTERN CURLU *curl_url(void); + +/* + * curl_url_cleanup() frees the CURLU handle and related resources used for + * the URL parsing. It will not free strings previously returned with the URL + * API. + */ +CURL_EXTERN void curl_url_cleanup(CURLU *handle); + +/* + * curl_url_dup() duplicates a CURLU handle and returns a new copy. The new + * handle must also be freed with curl_url_cleanup(). + */ +CURL_EXTERN CURLU *curl_url_dup(CURLU *in); + +/* + * curl_url_get() extracts a specific part of the URL from a CURLU + * handle. Returns error code. The returned pointer MUST be freed with + * curl_free() afterwards. + */ +CURL_EXTERN CURLUcode curl_url_get(CURLU *handle, CURLUPart what, + char **part, unsigned int flags); + +/* + * curl_url_set() sets a specific part of the URL in a CURLU handle. Returns + * error code. The passed in string will be copied. Passing a NULL instead of + * a part string, clears that part. + */ +CURL_EXTERN CURLUcode curl_url_set(CURLU *handle, CURLUPart what, + const char *part, unsigned int flags); + +/* + * curl_url_strerror() turns a CURLUcode value into the equivalent human + * readable error string. This is useful for printing meaningful error + * messages. + */ +CURL_EXTERN const char *curl_url_strerror(CURLUcode); + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif /* CURLINC_URLAPI_H */ diff --git a/SignOff_itk/curl/lib/libcurl_a.lib b/SignOff_itk/curl/lib/libcurl_a.lib new file mode 100644 index 0000000..6ac27ab Binary files /dev/null and b/SignOff_itk/curl/lib/libcurl_a.lib differ diff --git a/cad2pdf/.vs/cad2pdf/v16/.suo b/cad2pdf/.vs/cad2pdf/v16/.suo new file mode 100644 index 0000000..9f6be32 Binary files /dev/null and b/cad2pdf/.vs/cad2pdf/v16/.suo differ diff --git a/cad2pdf/Backup/cad2pdf.sln b/cad2pdf/Backup/cad2pdf.sln new file mode 100644 index 0000000..86a0715 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "cad2pdf", "cad2pdf\cad2pdf.vbproj", "{B257FD6B-B4D5-4AFC-9110-205237C3B069}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cad2pdf/Backup/cad2pdf.suo b/cad2pdf/Backup/cad2pdf.suo new file mode 100644 index 0000000..29ad8e8 Binary files /dev/null and b/cad2pdf/Backup/cad2pdf.suo differ diff --git a/cad2pdf/Backup/cad2pdf/Form1.Designer.vb b/cad2pdf/Backup/cad2pdf/Form1.Designer.vb new file mode 100644 index 0000000..77aa81f --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/Form1.Designer.vb @@ -0,0 +1,30 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + components = New System.ComponentModel.Container() + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Text = "Form1" + End Sub + +End Class diff --git a/cad2pdf/Backup/cad2pdf/Form1.vb b/cad2pdf/Backup/cad2pdf/Form1.vb new file mode 100644 index 0000000..17d6595 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/Form1.vb @@ -0,0 +1,3 @@ +Public Class Form1 + +End Class diff --git a/cad2pdf/Backup/cad2pdf/Module1.vb b/cad2pdf/Backup/cad2pdf/Module1.vb new file mode 100644 index 0000000..a920c93 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/Module1.vb @@ -0,0 +1,393 @@ +'Imports Autodesk.AutoCAD.Interop +'Imports Autodesk.AutoCAD.Interop.Common +'Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) + +Module Module1 + Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) + Public Function FileExist(ByVal strPath As String) As Boolean + FileExist = System.IO.File.Exists(strPath) + End Function + 'Sub main() + ' Dim acadApp As Autodesk.AutoCAD.Interop.AcadApplication + ' Dim acadDoc As Autodesk.AutoCAD.Interop.AcadDocument + ' Dim tempDoc As Autodesk.AutoCAD.Interop.AcadDocument + + ' Dim I As Integer + ' Dim isQuit As String + ' Dim a_strArgs + ' Dim dwgFile As String + ' Dim cmd As String + ' Dim myOpen As Boolean + + ' On Error Resume Next + ' 'MsgBox(Command$) + + ' myOpen = False + ' a_strArgs = Split(Command$, "@@@@@") '五个空格 + ' For I = LBound(a_strArgs) To UBound(a_strArgs) + ' 'MsgBox a_strArgs(i) + ' Select Case I + ' Case 0 + ' dwgFile = a_strArgs(I) + ' Case 1 + ' isQuit = a_strArgs(I) + + ' End Select + ' Next + ' 'cmd = Trim(Command) + ' ' a_strArgs = GetCommandLine(cmd) + ' 'For I = 0 To UBound(a_strArgs) + ' ' MsgBox (I & ":" & a_strArgs(I)) + ' ' Next I + ' 'MsgBox "dwgfile=" & dwgFile + ' 'MsgBox "isquit=" & isQuit + ' If isQuit = "open" Then + ' acadApp = CreateObject("AutoCAD.Application.18") + ' myOpen = True + ' If Err.Number > 0 Then + ' Exit Sub + ' End If + ' acadApp.Visible = True + ' 'For Each tempDoc In acadApp.Documents + ' ' tempDoc.Close(False) + ' 'Next + ' Else + ' acadApp = GetObject(, "AutoCAD.Application.18") + + ' If Err.Number > 0 Then + ' Err.Clear() + ' 'MsgBox("未发现acad进程!") + + ' acadApp = CreateObject("AutoCAD.Application.18") + ' myOpen = True + ' If Err.Number > 0 Then + ' Exit Sub + ' End If + ' acadApp.Visible = True + + ' 'For Each tempDoc In acadApp.Documents + ' ' tempDoc.Close(False) + ' 'Next + + ' End If + ' End If + ' 'acadApp = GetObject(, "AutoCAD.Application.18") + + ' 'If Err.Number > 0 Then + ' ' Err.Clear() + ' ' 'MsgBox("未发现acad进程!") + + ' ' acadApp = CreateObject("AutoCAD.Application.18") + ' ' myOpen = True + ' ' If Err.Number > 0 Then + ' ' Exit Sub + ' ' End If + ' ' acadApp.Visible = True + + ' ' For Each tempDoc In acadApp.Documents + ' ' tempDoc.Close(False) + ' ' Next + + + ' 'End If + + ' '打开文件 + ' acadDoc = acadApp.Documents.Open(dwgFile) + ' If Err.Number > 0 Then + ' Err.Clear() + ' 'MsgBox("打开失败!") + ' Exit Sub + + ' End If + ' Sleep(5000) + ' '打印设置 + ' 'acadDoc.SetVariable("BACKGROUNDPLOT", 0) + ' 'acadDoc.ModelSpace.Layout.RefreshPlotDeviceInfo() + ' acadDoc.ModelSpace.Layout.ConfigName = "DWG To PDF.pc3" + + ' acadDoc.ModelSpace.Layout.StyleSheet = "monochrome.ctb" + ' acadDoc.ModelSpace.Layout.PlotType = 1 + ' acadDoc.ModelSpace.Layout.CenterPlot = True + ' acadDoc.ModelSpace.Layout.CanonicalMediaName = "ISO_full_bleed_A4_(297.00_x_210.00_MM)" + + ' acadDoc.ModelSpace.Layout.PlotRotation = 0 '设置横向打印 + ' 'acadDoc.ModelSpace.Layout.StandardScale = 0 + + ' acadDoc.ModelSpace.Layout.PlotWithPlotStyles = True + ' acadDoc.SetVariable("BACKGROUNDPLOT", 0) + ' If InStr(acadDoc.FullName, "dwg") <> 0 Then + ' If acadDoc.Plot.PlotToFile(Replace(acadDoc.FullName, ".dwg", ".pdf"), acadDoc.ModelSpace.Layout.ConfigName) Then + ' 'Sleep(3000) + ' End If + ' ElseIf InStr(acadDoc.FullName, "DWG") <> 0 Then + ' If acadDoc.Plot.PlotToFile(Replace(acadDoc.FullName, ".DWG", ".pdf"), acadDoc.ModelSpace.Layout.ConfigName) Then + ' 'Sleep(3000) + ' End If + ' End If + ' 'acadDoc.Close(False) + ' 'acadDoc = Nothing + + ' If isQuit = "true" Then + ' For Each tempDoc In acadApp.Documents + ' tempDoc.Close(False) + ' Next + ' acadApp.Quit() + ' acadApp = Nothing + ' ElseIf isQuit = "false" Then + + ' End If + ' 'acadDoc = Nothing + ' 'If myOpen Then + ' ' acadApp.Quit() + ' ' acadApp = Nothing + ' 'End If + + 'End Sub + Sub main() + Dim acadApp As Autodesk.AutoCAD.Interop.AcadApplication + Dim acadDoc As Autodesk.AutoCAD.Interop.AcadDocument + Dim tempDoc As Autodesk.AutoCAD.Interop.AcadDocument + + Dim I As Integer + Dim isQuit As String + Dim a_strArgs + Dim dwgFile As String + Dim cmd As String + Dim myOpen As Boolean + + On Error Resume Next + 'MsgBox(Command$) + Dim line As String + Dim dataFile As New System.IO.StreamReader(Command$, System.Text.Encoding.Default) + + + acadApp = GetObject(, "AutoCAD.Application.18") + + If Err.Number > 0 Then + Err.Clear() + 'MsgBox("未发现acad进程!") + + 'acadApp = CreateObject("AutoCAD.Application.18") + 'myOpen = True + 'If Err.Number > 0 Then + Exit Sub + 'End If + acadApp.Visible = True + + 'For Each tempDoc In acadApp.Documents + ' tempDoc.Close(False) + 'Next + + End If + + Dim N As Integer + Do While dataFile.Peek() > 0 + line = dataFile.ReadLine() + acadDoc = acadApp.Documents.Open(line) + If Err.Number > 0 Then + Err.Clear() + 'MsgBox("打开失败!") + 'Exit Sub + + End If + N = N + 1 + Loop + + + 'Do While dataFile.Peek() > 0 + ' line = dataFile.ReadLine() + ' ' MsgBox(line) + ' a_strArgs = Split(line, "@@@@@") '五个空格 + ' For I = LBound(a_strArgs) To UBound(a_strArgs) + ' 'MsgBox a_strArgs(i) + ' Select Case I + ' Case 0 + ' dwgFile = a_strArgs(I) + ' Case 1 + ' isQuit = a_strArgs(I) + + ' End Select + ' Next + ' If isQuit = "open" Then + ' acadApp = CreateObject("AutoCAD.Application.18") + ' myOpen = True + ' If Err.Number > 0 Then + ' Exit Sub + ' End If + ' acadApp.Visible = True + ' 'For Each tempDoc In acadApp.Documents + ' ' tempDoc.Close(False) + ' 'Next + ' Else + ' acadApp = GetObject(, "AutoCAD.Application.18") + + ' If Err.Number > 0 Then + ' Err.Clear() + ' 'MsgBox("未发现acad进程!") + + ' 'acadApp = CreateObject("AutoCAD.Application.18") + ' 'myOpen = True + ' 'If Err.Number > 0 Then + ' Exit Sub + ' 'End If + ' acadApp.Visible = True + + ' 'For Each tempDoc In acadApp.Documents + ' ' tempDoc.Close(False) + ' 'Next + + ' End If + ' End If + ' acadDoc = acadApp.Documents.Open(dwgFile) + ' If Err.Number > 0 Then + ' Err.Clear() + ' 'MsgBox("打开失败!") + ' 'Exit Sub + + ' End If + + 'Loop + dataFile.Close() + dataFile = Nothing + 'myOpen = False + 'a_strArgs = Split(Command$, "@@@@@") '五个空格 + 'For I = LBound(a_strArgs) To UBound(a_strArgs) + ' 'MsgBox a_strArgs(i) + ' Select Case I + ' Case 0 + ' dwgFile = a_strArgs(I) + ' Case 1 + ' isQuit = a_strArgs(I) + + ' End Select + 'Next + 'cmd = Trim(Command) + ' a_strArgs = GetCommandLine(cmd) + 'For I = 0 To UBound(a_strArgs) + ' MsgBox (I & ":" & a_strArgs(I)) + ' Next I + 'MsgBox "dwgfile=" & dwgFile + 'MsgBox "isquit=" & isQuit + 'If isQuit = "open" Then + ' acadApp = CreateObject("AutoCAD.Application.18") + ' myOpen = True + ' If Err.Number > 0 Then + ' Exit Sub + ' End If + ' acadApp.Visible = True + ' 'For Each tempDoc In acadApp.Documents + ' ' tempDoc.Close(False) + ' 'Next + 'Else + ' acadApp = GetObject(, "AutoCAD.Application.18") + + ' If Err.Number > 0 Then + ' Err.Clear() + ' 'MsgBox("未发现acad进程!") + + ' acadApp = CreateObject("AutoCAD.Application.18") + ' myOpen = True + ' If Err.Number > 0 Then + ' Exit Sub + ' End If + ' acadApp.Visible = True + + ' 'For Each tempDoc In acadApp.Documents + ' ' tempDoc.Close(False) + ' 'Next + + ' End If + 'End If + 'acadApp = GetObject(, "AutoCAD.Application.18") + + 'If Err.Number > 0 Then + ' Err.Clear() + ' 'MsgBox("未发现acad进程!") + + ' acadApp = CreateObject("AutoCAD.Application.18") + ' myOpen = True + ' If Err.Number > 0 Then + ' Exit Sub + ' End If + ' acadApp.Visible = True + + ' For Each tempDoc In acadApp.Documents + ' tempDoc.Close(False) + ' Next + + + 'End If + + '打开文件 + 'acadDoc = acadApp.Documents.Open(dwgFile) + 'If Err.Number > 0 Then + ' Err.Clear() + ' 'MsgBox("打开失败!") + ' Exit Sub + + 'End If + ' Sleep(5000) + If acadApp Is Nothing Then + + End If + '打印设置 + For Each acadDoc In acadApp.Documents + acadDoc.SetVariable("BACKGROUNDPLOT", 0) + acadDoc.ModelSpace.Layout.RefreshPlotDeviceInfo() + acadDoc.ModelSpace.Layout.ConfigName = "DWG To PDF.pc3" + + acadDoc.ModelSpace.Layout.StyleSheet = "monochrome.ctb" + acadDoc.ModelSpace.Layout.PlotType = 1 + acadDoc.ModelSpace.Layout.CenterPlot = True + acadDoc.ModelSpace.Layout.CanonicalMediaName = "ISO_full_bleed_A4_(297.00_x_210.00_MM)" + + acadDoc.ModelSpace.Layout.PlotRotation = 0 '设置横向打印 + 'acadDoc.ModelSpace.Layout.StandardScale = 0 + + acadDoc.ModelSpace.Layout.PlotWithPlotStyles = True + acadDoc.SetVariable("BACKGROUNDPLOT", 0) + Dim PdfFile As String + If InStr(acadDoc.FullName, "dwg") <> 0 Then + PdfFile = Replace(acadDoc.FullName, ".dwg", ".pdf") + ElseIf InStr(acadDoc.FullName, "DWG") <> 0 Then + PdfFile = Replace(acadDoc.FullName, ".DWG", ".pdf") + End If + + + If InStr(acadDoc.FullName, "dwg") <> 0 Then + If acadDoc.Plot.PlotToFile(Replace(acadDoc.FullName, ".dwg", ".pdf"), acadDoc.ModelSpace.Layout.ConfigName) Then + 'Sleep(3000) + End If + ElseIf InStr(acadDoc.FullName, "DWG") <> 0 Then + If acadDoc.Plot.PlotToFile(Replace(acadDoc.FullName, ".DWG", ".pdf"), acadDoc.ModelSpace.Layout.ConfigName) Then + 'Sleep(3000) + End If + End If + For I = 0 To 5 + + If FileExist(PdfFile) Then + Exit For + End If + Sleep(1000) + Next + Next + 'acadDoc.Close(False) + 'acadDoc = Nothing + + 'If isQuit = "true" Then + ' For Each tempDoc In acadApp.Documents + ' tempDoc.Close(False) + ' Next + ' acadApp.Quit() + ' acadApp = Nothing + 'ElseIf isQuit = "false" Then + + 'End If + 'acadDoc = Nothing + 'If myOpen Then + ' acadApp.Quit() + ' acadApp = Nothing + 'End If + + End Sub +End Module diff --git a/cad2pdf/Backup/cad2pdf/My Project/Application.Designer.vb b/cad2pdf/Backup/cad2pdf/My Project/Application.Designer.vb new file mode 100644 index 0000000..edda614 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:2.0.50727.5420 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/cad2pdf/Backup/cad2pdf/My Project/Application.myapp b/cad2pdf/Backup/cad2pdf/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/cad2pdf/Backup/cad2pdf/My Project/AssemblyInfo.vb b/cad2pdf/Backup/cad2pdf/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..3417d97 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' 有关程序集的常规信息通过下列属性集 +' 控制。更改这些属性值可修改 +' 与程序集关联的信息。 + +' 查看程序集属性的值 + + + + + + + + + + +'如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID + + +' 程序集的版本信息由下面四个值组成: +' +' 主版本 +' 次版本 +' 内部版本号 +' 修订号 +' +' 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, +' 方法是按如下所示使用“*”: +' + + + diff --git a/cad2pdf/Backup/cad2pdf/My Project/Resources.Designer.vb b/cad2pdf/Backup/cad2pdf/My Project/Resources.Designer.vb new file mode 100644 index 0000000..544a2cb --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:2.0.50727.5420 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + '此类是由 StronglyTypedResourceBuilder + '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + '(以 /str 作为命令选项),或重新生成 VS 项目。 + ''' + ''' 强类型资源类,用于查找本地化字符串等。 + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' 返回此类使用的缓存 ResourceManager 实例。 + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("cad2pdf.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' 为使用此强类型资源类的所有资源查找 + ''' 重写当前线程的 CurrentUICulture 属性。 + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/cad2pdf/Backup/cad2pdf/My Project/Resources.resx b/cad2pdf/Backup/cad2pdf/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/cad2pdf/Backup/cad2pdf/My Project/Settings.Designer.vb b/cad2pdf/Backup/cad2pdf/My Project/Settings.Designer.vb new file mode 100644 index 0000000..30a4c34 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:2.0.50727.5420 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings),MySettings) + +#Region "My.Settings 自动保存功能" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.cad2pdf.My.MySettings + Get + Return Global.cad2pdf.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/cad2pdf/Backup/cad2pdf/My Project/Settings.settings b/cad2pdf/Backup/cad2pdf/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/cad2pdf/Backup/cad2pdf/cad2pdf.vbproj b/cad2pdf/Backup/cad2pdf/cad2pdf.vbproj new file mode 100644 index 0000000..2cc969c --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/cad2pdf.vbproj @@ -0,0 +1,196 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B257FD6B-B4D5-4AFC-9110-205237C3B069} + Exe + cad2pdf.Module1 + cad2pdf + cad2pdf + 512 + Console + v3.5 + On + Binary + Off + On + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + true + true + bin\Debug\ + cad2pdf.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + cad2pdf.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + {E072BCE4-9027-4F86-BAE2-EF119FD0A0D3} + 1 + 0 + 0 + primary + False + + + {FFC2A8DB-A497-4087-941C-C5B5462237EA} + 1 + 0 + 0 + primary + False + + + {00020430-0000-0000-C000-000000000046} + 2 + 0 + 0 + primary + False + + + + + + + + False + .NET Framework Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/cad2pdf/Backup/cad2pdf/cad2pdf.vbproj.user b/cad2pdf/Backup/cad2pdf/cad2pdf.vbproj.user new file mode 100644 index 0000000..5e88104 --- /dev/null +++ b/cad2pdf/Backup/cad2pdf/cad2pdf.vbproj.user @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + zh-CN + false + + \ No newline at end of file diff --git a/cad2pdf/Interop.ZWCAD.dll b/cad2pdf/Interop.ZWCAD.dll new file mode 100644 index 0000000..16ae14d Binary files /dev/null and b/cad2pdf/Interop.ZWCAD.dll differ diff --git a/cad2pdf/UpgradeLog.XML b/cad2pdf/UpgradeLog.XML new file mode 100644 index 0000000..e701d2e --- /dev/null +++ b/cad2pdf/UpgradeLog.XML @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cad2pdf/_UpgradeReport_Files/UpgradeReport.css b/cad2pdf/_UpgradeReport_Files/UpgradeReport.css new file mode 100644 index 0000000..fae98af --- /dev/null +++ b/cad2pdf/_UpgradeReport_Files/UpgradeReport.css @@ -0,0 +1,207 @@ +BODY +{ + BACKGROUND-COLOR: white; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px +} +P +{ + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 70%; + LINE-HEIGHT: 12pt; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 10px +} +.note +{ + BACKGROUND-COLOR: #ffffff; + COLOR: #336699; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px; + PADDING-RIGHT: 10px +} +.infotable +{ + BACKGROUND-COLOR: #f0f0e0; + BORDER-BOTTOM: #ffffff 0px solid; + BORDER-COLLAPSE: collapse; + BORDER-LEFT: #ffffff 0px solid; + BORDER-RIGHT: #ffffff 0px solid; + BORDER-TOP: #ffffff 0px solid; + FONT-SIZE: 70%; + MARGIN-LEFT: 10px +} +.issuetable +{ + BACKGROUND-COLOR: #ffffe8; + BORDER-COLLAPSE: collapse; + COLOR: #000000; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 10px; + MARGIN-LEFT: 13px; + MARGIN-TOP: 0px +} +.issuetitle +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px; + COLOR: #003366; + FONT-WEIGHT: normal +} +.header +{ + BACKGROUND-COLOR: #cecf9c; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + COLOR: #000000; + FONT-WEIGHT: bold +} +.issuehdr +{ + BACKGROUND-COLOR: #E0EBF5; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + COLOR: #000000; + FONT-WEIGHT: normal +} +.issuenone +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: 0px; + BORDER-LEFT: 0px; + BORDER-RIGHT: 0px; + BORDER-TOP: 0px; + COLOR: #000000; + FONT-WEIGHT: normal +} +.content +{ + BACKGROUND-COLOR: #e7e7ce; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + PADDING-LEFT: 3px +} +.issuecontent +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + PADDING-LEFT: 3px +} +A:link +{ + COLOR: #cc6633; + TEXT-DECORATION: underline +} +A:visited +{ + COLOR: #cc6633; +} +A:active +{ + COLOR: #cc6633; +} +A:hover +{ + COLOR: #cc3300; + TEXT-DECORATION: underline +} +H1 +{ + BACKGROUND-COLOR: #003366; + BORDER-BOTTOM: #336699 6px solid; + COLOR: #ffffff; + FONT-SIZE: 130%; + FONT-WEIGHT: normal; + MARGIN: 0em 0em 0em -20px; + PADDING-BOTTOM: 8px; + PADDING-LEFT: 30px; + PADDING-TOP: 16px +} +H2 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 3px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px; + PADDING-LEFT: 0px +} +H3 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: -5px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px +} +H4 +{ + COLOR: #000000; + FONT-SIZE: 70%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 0px; + MARGIN-TOP: 15px; + PADDING-BOTTOM: 0px +} +UL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +OL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +LI +{ + LIST-STYLE: square; + MARGIN-LEFT: 0px +} +.expandable +{ + CURSOR: hand +} +.expanded +{ + color: black +} +.collapsed +{ + DISPLAY: none +} +.foot +{ +BACKGROUND-COLOR: #ffffff; +BORDER-BOTTOM: #cecf9c 1px solid; +BORDER-TOP: #cecf9c 2px solid +} +.settings +{ +MARGIN-LEFT: 25PX; +} +.help +{ +TEXT-ALIGN: right; +margin-right: 10px; +} diff --git a/cad2pdf/_UpgradeReport_Files/UpgradeReport.xslt b/cad2pdf/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100644 index 0000000..f65c00a --- /dev/null +++ b/cad2pdf/_UpgradeReport_Files/UpgradeReport.xslt @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ 解决方案: + 项目: + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + src + + + + + + + + + + + + +
文件名状态错误警告
+ javascript:document.images[''].click()src + + + + 已转换 + + + + 已转换 + +
+ + 个文件 + + + 1 个文件 + + + 已转换:
+ 未转换: +
+
+
+ + + + : + + + + + + + + + 转换报告 + <xsl:if test="Properties/Property[@Name='LogNumber']"> + <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> + </xsl:if> + + + + +

转换报告 -

+ +

+ 转换时间:
+

+ + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + +
+ 转换设置 +

+ + +
+
diff --git a/cad2pdf/_UpgradeReport_Files/UpgradeReport_Minus.gif b/cad2pdf/_UpgradeReport_Files/UpgradeReport_Minus.gif new file mode 100644 index 0000000..17751cb Binary files /dev/null and b/cad2pdf/_UpgradeReport_Files/UpgradeReport_Minus.gif differ diff --git a/cad2pdf/_UpgradeReport_Files/UpgradeReport_Plus.gif b/cad2pdf/_UpgradeReport_Files/UpgradeReport_Plus.gif new file mode 100644 index 0000000..f6009ca Binary files /dev/null and b/cad2pdf/_UpgradeReport_Files/UpgradeReport_Plus.gif differ diff --git a/cad2pdf/cad2pdf.sln b/cad2pdf/cad2pdf.sln new file mode 100644 index 0000000..94fcfa1 --- /dev/null +++ b/cad2pdf/cad2pdf.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "cad2pdf", "cad2pdf\cad2pdf.vbproj", "{B257FD6B-B4D5-4AFC-9110-205237C3B069}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B257FD6B-B4D5-4AFC-9110-205237C3B069}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/cad2pdf/cad2pdf.suo b/cad2pdf/cad2pdf.suo new file mode 100644 index 0000000..5d9de37 Binary files /dev/null and b/cad2pdf/cad2pdf.suo differ diff --git a/cad2pdf/cad2pdf.v11.suo b/cad2pdf/cad2pdf.v11.suo new file mode 100644 index 0000000..79ffcfc Binary files /dev/null and b/cad2pdf/cad2pdf.v11.suo differ diff --git a/cad2pdf/cad2pdf/Form1.Designer.vb b/cad2pdf/cad2pdf/Form1.Designer.vb new file mode 100644 index 0000000..77aa81f --- /dev/null +++ b/cad2pdf/cad2pdf/Form1.Designer.vb @@ -0,0 +1,30 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + components = New System.ComponentModel.Container() + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Text = "Form1" + End Sub + +End Class diff --git a/cad2pdf/cad2pdf/Form1.vb b/cad2pdf/cad2pdf/Form1.vb new file mode 100644 index 0000000..17d6595 --- /dev/null +++ b/cad2pdf/cad2pdf/Form1.vb @@ -0,0 +1,3 @@ +Public Class Form1 + +End Class diff --git a/cad2pdf/cad2pdf/Module1.vb b/cad2pdf/cad2pdf/Module1.vb new file mode 100644 index 0000000..df30771 --- /dev/null +++ b/cad2pdf/cad2pdf/Module1.vb @@ -0,0 +1,366 @@ +'Imports AutoCAD +Imports ZWCAD + +'Imports Autodesk.AutoCAD.Interop +'Imports Autodesk.AutoCAD.Interop.Common +'Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) + + +Module Module1 + Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) + Public Function FileExist(ByVal strPath As String) As Boolean + FileExist = System.IO.File.Exists(strPath) + End Function + + + Sub Main() + + Dim acadApp As ZWCAD.IZcadApplication + Dim acadDoc As ZcadDocument + Dim docModelSpace As ZWCAD.IZcadModelSpace + Dim plotConfs As ZcadPlotConfigurations + Dim plotconf As ZcadPlotConfiguration + Dim layoutObject As ZcadLayout + Dim oPlot As ZcadPlot + Dim copyObj As Object + Dim copyObjs() As ZcadEntity + Dim copyedObjs() As Object + + Dim i As Integer + Dim isQuit As String + Dim strArgs + Dim dwgFile As String + Dim pdfFile As String + + Dim yp_sign, sd_sign, dh_sign As String '阶段标记 + Dim ptMin(2) As Double + Dim ptMax(2) As Double + + Dim eMax As Object + Dim eMin As Object + Dim a As String + Dim b As String + Dim LayoutList As Object + Dim ArraySize As Integer + Dim AddedLayouts() As String + Dim groupObj As ZcadGroup + + Dim commandString As String + commandString = Command() + strArgs = Split(commandString, " ") '命令行分隔符,3空格,为防止文件名有空格 + 'MsgBox(commandString) + For i = LBound(strArgs) To UBound(strArgs) + 'MsgBox(a_strArgs(I)) + Select Case i + Case 0 + dwgFile = strArgs(i) + + End Select + Next + If FileExist(dwgFile) Then + + Else + Exit Sub + End If + + + 'MsgBox(dwgFile) + 'MsgBox(pdfFile) + + On Error Resume Next + acadApp = GetObject(, "ZWCAD.application") + 'MsgBox("打开前") + If Err.Number <> 0 Then + Sleep(1500) + If Err.Number <> 0 Then + 'MsgBox("未发现ZWCAD进程!") + Exit Sub + End If + End If + + acadDoc = acadApp.Documents.Open(dwgFile) + 'MsgBox("打开了") + + 'Sleep(1500) + Dim isA0 As Boolean + isA0 = False + Dim isA1 As Boolean + isA1 = False + Dim isA2 As Boolean + isA2 = False + Dim isA3 As Boolean + isA3 = False + Dim isA4 As Boolean + isA4 = False + Dim isheng As Boolean + isheng = True + + Dim index As Long + Dim itemName As String + Dim blockRef As ZWCAD.IZcadBlockReference + Dim plotBlockRef As ZWCAD.IZcadBlockReference + Dim blockRefName As String + docModelSpace = acadDoc.ModelSpace + Dim myXScan As Double + Dim myYScan As Double + + + + + Dim objEnt As ZcadEntity + + Dim objssline As ZcadSelectionSet + objssline = acadDoc.SelectionSets.Add("test") + '这个类型在AutoCAD上必须要Short,但是中望上是Integer + Dim fType(0) As Integer + Dim fData(0) + fType(0) = 0 + fData(0) = "INSERT" + objssline.Select(5, , , fType, fData) + + + For index = 0 To objssline.Count - 1 + itemName = objssline.Item(index).ObjectName + 'MsgBox("itemName===" & itemName) + pdfFile = Replace(dwgFile, ".dwg", "$" & index & ".pdf") + If itemName Like "AcDbBlockReference" Then + 'MsgBox(name) + blockRef = objssline.Item(index) + blockRefName = blockRef.Name + ' MsgBox(blockRefName) + If InStr(blockRefName, "ZwmFrameMain_A0^_^无分区图框^_^landscape") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A0") + isA0 = True + End If + + If InStr(blockRefName, "ZwmFrameMain_A1^_^无分区图框^_^landscape") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A1") + isA1 = True + End If + + If InStr(blockRefName, "ZwmFrameMain_A2^_^无分区图框^_^landscape") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A2") + isA2 = True + End If + + If InStr(blockRefName, "ZwmFrameMain_A3^_^无分区图框^_^landscape") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + 'MsgBox("是A3") + isA3 = True + End If + + If InStr(blockRefName, "ZwmFrameMain_A4^_^无分区图框^_^landscape") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A4") + isA4 = True + End If + + If InStr(blockRefName, "ZwmFrameMain_A0^_^无分区图框^_^portrait") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A0") + isA0 = True + isheng = False + End If + + If InStr(blockRefName, "ZwmFrameMain_A1^_^无分区图框^_^portrait") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A1") + isA1 = True + isheng = False + End If + + If InStr(blockRefName, "ZwmFrameMain_A2^_^无分区图框^_^portrait") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A2") + isA2 = True + isheng = False + End If + + If InStr(blockRefName, "ZwmFrameMain_A3^_^无分区图框^_^portrait") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + 'MsgBox("是A3") + isA3 = True + isheng = False + End If + + If InStr(blockRefName, "ZwmFrameMain_A4^_^无分区图框^_^portrait") Then + blockRef.GetBoundingBox(ptMin, ptMax) + plotBlockRef = blockRef + myXScan = plotBlockRef.XScaleFactor + myYScan = plotBlockRef.YScaleFactor + ' MsgBox("是A4") + isA4 = True + isheng = False + End If + + + If isA0 Or isA1 Or isA2 Or isA3 Or isA4 Then + + + layoutObject = acadDoc.ActiveLayout + + + layoutObject.ConfigName = "DWG to PDF.pc5" '绘图仪选择 DWG to PDF.pc5 + layoutObject.StyleSheet = "Monochrome.ctb" '打印样式表 + layoutObject.StandardScale = ZWCAD.ZcPlotScale.zcScaleToFit '铺满图纸 + layoutObject.UseStandardScale = True + layoutObject.QuietErrorMode = True + + + layoutObject.PlotType = ZWCAD.ZcPlotType.zcWindow 'app + ReDim Preserve ptMin(0 To 1) + ReDim Preserve ptMax(0 To 1) + + layoutObject.SetWindowToPlot(ptMin, ptMax) '选择窗口区域 + + layoutObject.CenterPlot = True '居中打印 + + layoutObject.PlotWithPlotStyles = True '根据打印样式 + + + + + layoutObject.PlotRotation = ZWCAD.ZcPlotRotation.zc0degrees + + + + + + + + + + + + layoutObject.PlotRotation = ZWCAD.ZcPlotRotation.zc0degrees + + If isheng Then + + If isA0 Then + layoutObject.CanonicalMediaName = "ISO_full_bleed_A0_(1189.00_x_841.00_MM)" + isA0 = False + isheng = False + ElseIf isA1 Then + ' MsgBox("A1") + layoutObject.CanonicalMediaName = "ISO_full_bleed_A1_(841.00_x_594.00_MM)" + isA1 = False + isheng = False + ElseIf isA2 Then + ' MsgBox("A2") + layoutObject.CanonicalMediaName = "ISO_full_bleed A2_(594.00_x_420.00_MM)" + isA2 = False + isheng = False + ElseIf isA3 Then + ' MsgBox("A3") + layoutObject.CanonicalMediaName = "ISO_full_bleed_A3_(420.00_x_297.00_MM)" + isA3 = False + isheng = False + ElseIf isA4 Then + ' MsgBox("A4") + layoutObject.CanonicalMediaName = "ISO_full_bleed_A4_(297.00_x_210.00_MM)" + isA4 = False + isheng = False + End If + Else + + If isA0 Then + layoutObject.CanonicalMediaName = "ISO_full_bleed_A0_(841.00_x_1189.00_MM)" + isA0 = False + ElseIf isA1 Then + ' MsgBox("A1") + layoutObject.CanonicalMediaName = "ISO_full_bleed_A1_(594.00_x_841.00_MM)" + isA1 = False + ElseIf isA2 Then + ' MsgBox("A2") + layoutObject.CanonicalMediaName = "ISO_full_bleed_A2_(420.00_x_594.00_MM)" + isA2 = False + ElseIf isA3 Then + ' MsgBox("A3") + layoutObject.CanonicalMediaName = "ISO_full_bleed_A3_(297.00_x_420.00_MM)" + isA3 = False + ElseIf isA4 Then + ' MsgBox("A4") + layoutObject.CanonicalMediaName = "ISO_full_bleed_A4_(210.00_x_297.00_MM)" + isA4 = False + End If + + End If + + + + + + + acadDoc.Layouts.Delete() + 'acadDoc.Layouts.Add("Plot") + acadDoc.ActiveLayout = layoutObject + acadDoc.Plot.SetLayoutsToPlot(acadDoc.Layouts) + + + acadDoc.SetVariable("BACKGROUNDPLOT", 0) + Dim isOk As Boolean + acadDoc.Plot.QuietErrorMode = True + + isOk = acadDoc.Plot.PlotToFile(pdfFile, layoutObject.ConfigName) + + End If + + + + End If + + Next + + + + + + + + ' MsgBox(isOk) + + acadDoc.Close(False) + + Sleep(1500) + + 'acadApp.Quit() + + acadDoc = Nothing + acadApp = Nothing + + + + + + End Sub +End Module \ No newline at end of file diff --git a/cad2pdf/cad2pdf/My Project/Application.Designer.vb b/cad2pdf/cad2pdf/My Project/Application.Designer.vb new file mode 100644 index 0000000..537244b --- /dev/null +++ b/cad2pdf/cad2pdf/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:4.0.30319.42000 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/cad2pdf/cad2pdf/My Project/Application.myapp b/cad2pdf/cad2pdf/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/cad2pdf/cad2pdf/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/cad2pdf/cad2pdf/My Project/AssemblyInfo.vb b/cad2pdf/cad2pdf/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..3417d97 --- /dev/null +++ b/cad2pdf/cad2pdf/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' 有关程序集的常规信息通过下列属性集 +' 控制。更改这些属性值可修改 +' 与程序集关联的信息。 + +' 查看程序集属性的值 + + + + + + + + + + +'如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID + + +' 程序集的版本信息由下面四个值组成: +' +' 主版本 +' 次版本 +' 内部版本号 +' 修订号 +' +' 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, +' 方法是按如下所示使用“*”: +' + + + diff --git a/cad2pdf/cad2pdf/My Project/Resources.Designer.vb b/cad2pdf/cad2pdf/My Project/Resources.Designer.vb new file mode 100644 index 0000000..574bb3b --- /dev/null +++ b/cad2pdf/cad2pdf/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:4.0.30319.42000 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + '此类是由 StronglyTypedResourceBuilder + '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + '(以 /str 作为命令选项),或重新生成 VS 项目。 + ''' + ''' 一个强类型的资源类,用于查找本地化的字符串等。 + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' 返回此类使用的缓存的 ResourceManager 实例。 + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("cad2pdf.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' 使用此强类型资源类,为所有资源查找 + ''' 重写当前线程的 CurrentUICulture 属性。 + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/cad2pdf/cad2pdf/My Project/Resources.resx b/cad2pdf/cad2pdf/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/cad2pdf/cad2pdf/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/cad2pdf/cad2pdf/My Project/Settings.Designer.vb b/cad2pdf/cad2pdf/My Project/Settings.Designer.vb new file mode 100644 index 0000000..caf446d --- /dev/null +++ b/cad2pdf/cad2pdf/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:4.0.30319.42000 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings 自动保存功能" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.cad2pdf.My.MySettings + Get + Return Global.cad2pdf.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/cad2pdf/cad2pdf/My Project/Settings.settings b/cad2pdf/cad2pdf/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/cad2pdf/cad2pdf/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/cad2pdf/cad2pdf/app.config b/cad2pdf/cad2pdf/app.config new file mode 100644 index 0000000..f5b660f --- /dev/null +++ b/cad2pdf/cad2pdf/app.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cad2pdf/cad2pdf/bin/Debug/cad2pdf.exe b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.exe new file mode 100644 index 0000000..972c072 Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.exe differ diff --git a/cad2pdf/cad2pdf/bin/Debug/cad2pdf.pdb b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.pdb new file mode 100644 index 0000000..ff71c75 Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.pdb differ diff --git a/cad2pdf/cad2pdf/bin/Debug/cad2pdf.vshost.exe b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.vshost.exe new file mode 100644 index 0000000..69ed6c0 Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.vshost.exe differ diff --git a/cad2pdf/cad2pdf/bin/Debug/cad2pdf.vshost.exe.manifest b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/cad2pdf/cad2pdf/bin/Debug/cad2pdf.xml b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.xml new file mode 100644 index 0000000..98e6181 --- /dev/null +++ b/cad2pdf/cad2pdf/bin/Debug/cad2pdf.xml @@ -0,0 +1,24 @@ + + + + +cad2pdf + + + + + + 返回此类使用的缓存 ResourceManager 实例。 + + + + 为使用此强类型资源类的所有资源查找 + 重写当前线程的 CurrentUICulture 属性。 + + + + 强类型资源类,用于查找本地化字符串等。 + + + + \ No newline at end of file diff --git a/cad2pdf/cad2pdf/bin/Release/Interop.AutoCAD.dll b/cad2pdf/cad2pdf/bin/Release/Interop.AutoCAD.dll new file mode 100644 index 0000000..db6f949 Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Release/Interop.AutoCAD.dll differ diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf.exe b/cad2pdf/cad2pdf/bin/Release/cad2pdf.exe new file mode 100644 index 0000000..1468baf Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Release/cad2pdf.exe differ diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf.exe.config b/cad2pdf/cad2pdf/bin/Release/cad2pdf.exe.config new file mode 100644 index 0000000..f5b660f --- /dev/null +++ b/cad2pdf/cad2pdf/bin/Release/cad2pdf.exe.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf.pdb b/cad2pdf/cad2pdf/bin/Release/cad2pdf.pdb new file mode 100644 index 0000000..9cb127a Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Release/cad2pdf.pdb differ diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe b/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe new file mode 100644 index 0000000..3c5dcfb Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe differ diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe.config b/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe.config new file mode 100644 index 0000000..f5b660f --- /dev/null +++ b/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe.manifest b/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/cad2pdf/cad2pdf/bin/Release/cad2pdf.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf.xml b/cad2pdf/cad2pdf/bin/Release/cad2pdf.xml new file mode 100644 index 0000000..a27d07b --- /dev/null +++ b/cad2pdf/cad2pdf/bin/Release/cad2pdf.xml @@ -0,0 +1,24 @@ + + + + +cad2pdf + + + + + + 返回此类使用的缓存的 ResourceManager 实例。 + + + + 使用此强类型资源类,为所有资源查找 + 重写当前线程的 CurrentUICulture 属性。 + + + + 一个强类型的资源类,用于查找本地化的字符串等。 + + + + \ No newline at end of file diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf2.exe b/cad2pdf/cad2pdf/bin/Release/cad2pdf2.exe new file mode 100644 index 0000000..8c68996 Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Release/cad2pdf2.exe differ diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf6.exe b/cad2pdf/cad2pdf/bin/Release/cad2pdf6.exe new file mode 100644 index 0000000..5a8ffe5 Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Release/cad2pdf6.exe differ diff --git a/cad2pdf/cad2pdf/bin/Release/cad2pdf_app.exe b/cad2pdf/cad2pdf/bin/Release/cad2pdf_app.exe new file mode 100644 index 0000000..bf8056d Binary files /dev/null and b/cad2pdf/cad2pdf/bin/Release/cad2pdf_app.exe differ diff --git a/cad2pdf/cad2pdf/bin/Release/新建文本文档.txt b/cad2pdf/cad2pdf/bin/Release/新建文本文档.txt new file mode 100644 index 0000000..9406100 --- /dev/null +++ b/cad2pdf/cad2pdf/bin/Release/新建文本文档.txt @@ -0,0 +1 @@ +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe "C:\Users\calib\Desktop\supordwg2pdf\A0-横.dwg" \ No newline at end of file diff --git a/cad2pdf/cad2pdf/cad2pdf.vbproj b/cad2pdf/cad2pdf/cad2pdf.vbproj new file mode 100644 index 0000000..227ce0e --- /dev/null +++ b/cad2pdf/cad2pdf/cad2pdf.vbproj @@ -0,0 +1,242 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B257FD6B-B4D5-4AFC-9110-205237C3B069} + Exe + Sub Main + cad2pdf + cad2pdf + 512 + Console + v4.0 + Off + Text + Off + On + false + + + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + true + true + bin\Debug\ + cad2pdf.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355 + AllRules.ruleset + false + + + pdbonly + false + true + true + bin\Release\ + cad2pdf.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355 + AllRules.ruleset + false + + + + D:\autocad\AutoCAD_2017_Simplified_Chinese_Win_64bit_dlm\x64\acad\Program Files\Root\accoremgd.dll + False + + + D:\autocad\AutoCAD_2017_Simplified_Chinese_Win_64bit_dlm\x64\acad\Program Files\Root\acdbmgd.dll + False + + + D:\autocad\AutoCAD_2017_Simplified_Chinese_Win_64bit_dlm\x64\acad\Program Files\Root\acmgd.dll + False + + + ..\..\..\source\repos\helper\Autodesk.AutoCAD.Interop.dll + True + + + ..\..\..\source\repos\helper\Autodesk.AutoCAD.Interop.Common.dll + True + + + ..\Interop.ZWCAD.dll + True + + + + + + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + {5B3245BE-661C-4324-BB55-3AD94EBBFDD7} + 1 + 0 + 0 + tlbimp + False + False + + + {00020430-0000-0000-C000-000000000046} + 2 + 0 + 0 + primary + False + + + {EC92300D-5A17-11E7-B72E-BC5FF42AC839} + 1 + 0 + 0 + tlbimp + False + True + + + {EC92300C-5A17-11E7-B72E-BC5FF42AC839} + 1 + 0 + 0 + tlbimp + False + True + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/cad2pdf/cad2pdf/cad2pdf.vbproj.user b/cad2pdf/cad2pdf/cad2pdf.vbproj.user new file mode 100644 index 0000000..3a224a9 --- /dev/null +++ b/cad2pdf/cad2pdf/cad2pdf.vbproj.user @@ -0,0 +1,18 @@ + + + + publish\ + + + + + + + + + + + zh-CN + false + + \ No newline at end of file diff --git a/cad2pdf/cad2pdf/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/cad2pdf/cad2pdf/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000..e621428 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll differ diff --git a/cad2pdf/cad2pdf/obj/Debug/cad2pdf.Resources.resources b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.Resources.resources new file mode 100644 index 0000000..06c24d0 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.Resources.resources differ diff --git a/cad2pdf/cad2pdf/obj/Debug/cad2pdf.exe b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.exe new file mode 100644 index 0000000..972c072 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.exe differ diff --git a/cad2pdf/cad2pdf/obj/Debug/cad2pdf.pdb b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.pdb new file mode 100644 index 0000000..ff71c75 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.pdb differ diff --git a/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.FileListAbsolute.txt b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..7a6abe2 --- /dev/null +++ b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +C:\vb2008\cad2pdf\cad2pdf\bin\Debug\cad2pdf.exe +C:\vb2008\cad2pdf\cad2pdf\bin\Debug\cad2pdf.pdb +C:\vb2008\cad2pdf\cad2pdf\bin\Debug\cad2pdf.xml +C:\vb2008\cad2pdf\cad2pdf\obj\Debug\ResolveAssemblyReference.cache +C:\vb2008\cad2pdf\cad2pdf\obj\Debug\cad2pdf.vbproj.ResolveComReference.cache +C:\vb2008\cad2pdf\cad2pdf\obj\Debug\cad2pdf.Resources.resources +C:\vb2008\cad2pdf\cad2pdf\obj\Debug\cad2pdf.vbproj.GenerateResource.Cache +C:\vb2008\cad2pdf\cad2pdf\obj\Debug\cad2pdf.exe +C:\vb2008\cad2pdf\cad2pdf\obj\Debug\cad2pdf.xml +C:\vb2008\cad2pdf\cad2pdf\obj\Debug\cad2pdf.pdb +C:\先打开\cad2pdf\cad2pdf\obj\Debug\cad2pdf.vbproj.ResolveComReference.cache +C:\先打开\cad2pdf\cad2pdf\obj\Debug\cad2pdf.exe +C:\先打开\cad2pdf\cad2pdf\obj\Debug\cad2pdf.xml +C:\先打开\cad2pdf\cad2pdf\obj\Debug\cad2pdf.pdb diff --git a/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.GenerateResource.Cache b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.GenerateResource.Cache new file mode 100644 index 0000000..aaae522 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.GenerateResource.Cache differ diff --git a/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.ResolveComReference.cache b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.ResolveComReference.cache new file mode 100644 index 0000000..d9f05c2 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.vbproj.ResolveComReference.cache differ diff --git a/cad2pdf/cad2pdf/obj/Debug/cad2pdf.xml b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.xml new file mode 100644 index 0000000..98e6181 --- /dev/null +++ b/cad2pdf/cad2pdf/obj/Debug/cad2pdf.xml @@ -0,0 +1,24 @@ + + + + +cad2pdf + + + + + + 返回此类使用的缓存 ResourceManager 实例。 + + + + 为使用此强类型资源类的所有资源查找 + 重写当前线程的 CurrentUICulture 属性。 + + + + 强类型资源类,用于查找本地化字符串等。 + + + + \ No newline at end of file diff --git a/cad2pdf/cad2pdf/obj/Release/.NETFramework,Version=v4.0.AssemblyAttributes.vb b/cad2pdf/cad2pdf/obj/Release/.NETFramework,Version=v4.0.AssemblyAttributes.vb new file mode 100644 index 0000000..4339bf6 --- /dev/null +++ b/cad2pdf/cad2pdf/obj/Release/.NETFramework,Version=v4.0.AssemblyAttributes.vb @@ -0,0 +1,7 @@ +' + Option Strict Off + Option Explicit On + + Imports System + Imports System.Reflection + diff --git a/cad2pdf/cad2pdf/obj/Release/DesignTimeResolveAssemblyReferences.cache b/cad2pdf/cad2pdf/obj/Release/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..ad1d5ee Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/DesignTimeResolveAssemblyReferences.cache differ diff --git a/cad2pdf/cad2pdf/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/cad2pdf/cad2pdf/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..dad5058 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/cad2pdf/cad2pdf/obj/Release/Interop.AutoCAD.dll b/cad2pdf/cad2pdf/obj/Release/Interop.AutoCAD.dll new file mode 100644 index 0000000..db6f949 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/Interop.AutoCAD.dll differ diff --git a/cad2pdf/cad2pdf/obj/Release/Interop.ZWCAD.dll b/cad2pdf/cad2pdf/obj/Release/Interop.ZWCAD.dll new file mode 100644 index 0000000..70aac65 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/Interop.ZWCAD.dll differ diff --git a/cad2pdf/cad2pdf/obj/Release/Interop.ZXAUTOLib.dll b/cad2pdf/cad2pdf/obj/Release/Interop.ZXAUTOLib.dll new file mode 100644 index 0000000..076827e Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/Interop.ZXAUTOLib.dll differ diff --git a/cad2pdf/cad2pdf/obj/Release/TempPE/My Project.Resources.Designer.vb.dll b/cad2pdf/cad2pdf/obj/Release/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000..3c786de Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/TempPE/My Project.Resources.Designer.vb.dll differ diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.Resources.resources b/cad2pdf/cad2pdf/obj/Release/cad2pdf.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/cad2pdf.Resources.resources differ diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.exe b/cad2pdf/cad2pdf/obj/Release/cad2pdf.exe new file mode 100644 index 0000000..1468baf Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/cad2pdf.exe differ diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.pdb b/cad2pdf/cad2pdf/obj/Release/cad2pdf.pdb new file mode 100644 index 0000000..9cb127a Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/cad2pdf.pdb differ diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.FileListAbsolute.txt b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..833e2fb --- /dev/null +++ b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.FileListAbsolute.txt @@ -0,0 +1,182 @@ +C:\先打开\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\先打开\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\先打开\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\先打开\cad2pdf\cad2pdf\obj\Release\ResolveAssemblyReference.cache +C:\先打开\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\先打开\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\先打开\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\先打开\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\先打开\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\先打开\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +D:\Work\CONNOR\康华\04 系统实施\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\Users\Administrator\Desktop\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbprojResolveAssemblyReference.cache +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbprojResolveAssemblyReference.cache +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +D:\Work\CONNOR\康华\04 系统实施\yincq\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\Users\Administrator\Desktop\cad2pdf(加入cad图纸阶段)\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbprojResolveAssemblyReference.cache +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +C:\Users\calib\Desktop\后台转pdf\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbprojResolveAssemblyReference.cache +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\Administrator\Desktop\苏泊尔开发代码\cad2pdf\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\Users\Administrator\Desktop\502用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\Administrator\Desktop\502用DWG转PDF\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\502用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\Administrator\Desktop\502用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\502用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\502用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\Interop.ZWCAD.dll +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\Interop.ZXAUTOLib.dll +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\Administrator\Desktop\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\Interop.ZWCAD.dll +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\Interop.ZXAUTOLib.dll +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\bin\Release\Interop.AutoCAD.dll +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\Administrator\Desktop\duanyf改\supor_c\zw用DWG转PDF\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +D:\Connor(项目管理)\苏泊尔武汉基地\新建文件夹\苏泊尔源码\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbprojAssemblyReference.cache +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.cache +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.CoreCompileInputs.cache +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\86183\Desktop\苏泊尔\武汉项目\武汉基地源码\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbprojAssemblyReference.cache +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.cache +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.CoreCompileInputs.cache +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\86183\Desktop\魔改版电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +C:\Users\86183\Desktop\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +C:\Users\86183\Desktop\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +C:\Users\86183\Desktop\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +C:\Users\86183\Desktop\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbprojAssemblyReference.cache +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.cache +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.CoreCompileInputs.cache +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +C:\Users\86183\Desktop\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.cache +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +D:\source\申和\DBOM2EBOM\申和电子签名\脚本代码\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe.config +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.ResolveComReference.cache +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.exe +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.xml +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.pdb +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.exe +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.pdb +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\bin\Release\cad2pdf.xml +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.Resources.resources +D:\source\北方股份\电子签名\cad2pdf\cad2pdf\obj\Release\cad2pdf.vbproj.GenerateResource.Cache diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.GenerateResource.Cache b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.GenerateResource.Cache new file mode 100644 index 0000000..f2deeba Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.GenerateResource.Cache differ diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.ResolveComReference.cache b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.ResolveComReference.cache new file mode 100644 index 0000000..fbd2d7d Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbproj.ResolveComReference.cache differ diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbprojAssemblyReference.cache b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbprojAssemblyReference.cache new file mode 100644 index 0000000..2a70e8a Binary files /dev/null and b/cad2pdf/cad2pdf/obj/Release/cad2pdf.vbprojAssemblyReference.cache differ diff --git a/cad2pdf/cad2pdf/obj/Release/cad2pdf.xml b/cad2pdf/cad2pdf/obj/Release/cad2pdf.xml new file mode 100644 index 0000000..a27d07b --- /dev/null +++ b/cad2pdf/cad2pdf/obj/Release/cad2pdf.xml @@ -0,0 +1,24 @@ + + + + +cad2pdf + + + + + + 返回此类使用的缓存的 ResourceManager 实例。 + + + + 使用此强类型资源类,为所有资源查找 + 重写当前线程的 CurrentUICulture 属性。 + + + + 一个强类型的资源类,用于查找本地化的字符串等。 + + + + \ No newline at end of file diff --git a/cad2pdf/crul/include/Makefile.am b/cad2pdf/crul/include/Makefile.am new file mode 100644 index 0000000..3b24860 --- /dev/null +++ b/cad2pdf/crul/include/Makefile.am @@ -0,0 +1,5 @@ +SUBDIRS = curl + +EXTRA_DIST = README + +AUTOMAKE_OPTIONS = foreign no-dependencies diff --git a/cad2pdf/crul/include/Makefile.in b/cad2pdf/crul/include/Makefile.in new file mode 100644 index 0000000..187d55e --- /dev/null +++ b/cad2pdf/crul/include/Makefile.in @@ -0,0 +1,691 @@ +# Makefile.in generated by automake 1.13.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = include +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/mkinstalldirs README +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \ + $(top_srcdir)/m4/curl-confopts.m4 \ + $(top_srcdir)/m4/curl-functions.m4 \ + $(top_srcdir)/m4/curl-openssl.m4 \ + $(top_srcdir)/m4/curl-override.m4 \ + $(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 \ + $(top_srcdir)/m4/zz50-xc-ovr.m4 \ + $(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \ + $(top_builddir)/include/curl/curlbuild.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +depcomp = +am__depfiles_maybe = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ +CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@ +CURLVERSION = @CURLVERSION@ +CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ +CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ +CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ +CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ +CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ +CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ +CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ +CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ +CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ +CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ +CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ +CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ +CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ +CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ +CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ +CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ +CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@ +CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@ +CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_SHARED = @ENABLE_SHARED@ +ENABLE_STATIC = @ENABLE_STATIC@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ +HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ +HAVE_LIBZ = @HAVE_LIBZ@ +HAVE_NSS_INITCONTEXT = @HAVE_NSS_INITCONTEXT@ +HAVE_SSLEAY_SRP = @HAVE_SSLEAY_SRP@ +IDN_ENABLED = @IDN_ENABLED@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +IPV6_ENABLED = @IPV6_ENABLED@ +KRB4_ENABLED = @KRB4_ENABLED@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBCURL_LIBS = @LIBCURL_LIBS@ +LIBMETALINK_CPPFLAGS = @LIBMETALINK_CPPFLAGS@ +LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@ +LIBMETALINK_LIBS = @LIBMETALINK_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MANOPT = @MANOPT@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NROFF = @NROFF@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKGADD_NAME = @PKGADD_NAME@ +PKGADD_PKG = @PKGADD_PKG@ +PKGADD_VENDOR = @PKGADD_VENDOR@ +PKGCONFIG = @PKGCONFIG@ +RANDOM_FILE = @RANDOM_FILE@ +RANLIB = @RANLIB@ +REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_ENABLED = @SSL_ENABLED@ +STRIP = @STRIP@ +SUPPORT_FEATURES = @SUPPORT_FEATURES@ +SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ +USE_ARES = @USE_ARES@ +USE_AXTLS = @USE_AXTLS@ +USE_CYASSL = @USE_CYASSL@ +USE_DARWINSSL = @USE_DARWINSSL@ +USE_GNUTLS = @USE_GNUTLS@ +USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@ +USE_LIBRTMP = @USE_LIBRTMP@ +USE_LIBSSH2 = @USE_LIBSSH2@ +USE_NSS = @USE_NSS@ +USE_OPENLDAP = @USE_OPENLDAP@ +USE_POLARSSL = @USE_POLARSSL@ +USE_SCHANNEL = @USE_SCHANNEL@ +USE_SSLEAY = @USE_SSLEAY@ +USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ +VERSION = @VERSION@ +VERSIONNUM = @VERSIONNUM@ +ZLIB_LIBS = @ZLIB_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libext = @libext@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = curl +EXTRA_DIST = README +AUTOMAKE_OPTIONS = foreign no-dependencies +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign include/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/cad2pdf/crul/include/README b/cad2pdf/crul/include/README new file mode 100644 index 0000000..3e52a1d --- /dev/null +++ b/cad2pdf/crul/include/README @@ -0,0 +1,55 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +Include files for libcurl, external users. + +They're all placed in the curl subdirectory here for better fit in any kind +of environment. You must include files from here using... + + #include + +... style and point the compiler's include path to the directory holding the +curl subdirectory. It makes it more likely to survive future modifications. + +NOTE FOR LIBCURL HACKERS + +The following notes apply to libcurl version 7.19.0 and later. + +* The distributed curl/curlbuild.h file is only intended to be used on systems + which can not run the also distributed configure script. + +* The distributed curlbuild.h file is generated as a copy of curlbuild.h.dist + when the libcurl source code distribution archive file is originally created. + +* If you check out from git on a non-configure platform, you must run the + appropriate buildconf* script to set up curlbuild.h and other local files + before being able of compiling the library. + +* On systems capable of running the configure script, the configure process + will overwrite the distributed include/curl/curlbuild.h file with one that + is suitable and specific to the library being configured and built, which + is generated from the include/curl/curlbuild.h.in template file. + +* If you intend to distribute an already compiled libcurl library you _MUST_ + also distribute along with it the generated curl/curlbuild.h which has been + used to compile it. Otherwise the library will be of no use for the users of + the library that you have built. It is _your_ responsibility to provide this + file. No one at the cURL project can know how you have built the library. + +* File curl/curlbuild.h includes platform and configuration dependent info, + and must not be modified by anyone. Configure script generates it for you. + +* We cannot assume anything else but very basic compiler features being + present. While libcurl requires an ANSI C compiler to build, some of the + earlier ANSI compilers clearly can't deal with some preprocessor operators. + +* Newlines must remain unix-style for older compilers' sake. + +* Comments must be written in the old-style /* unnested C-fashion */ + +To figure out how to do good and portable checks for features, operating +systems or specific hardwarare, a very good resource is Bjorn Reese's +collection at http://predef.sf.net/ diff --git a/cad2pdf/crul/include/curl/Makefile.am b/cad2pdf/crul/include/curl/Makefile.am new file mode 100644 index 0000000..86e8b78 --- /dev/null +++ b/cad2pdf/crul/include/curl/Makefile.am @@ -0,0 +1,53 @@ +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 1998 - 2011, Daniel Stenberg, , et al. +# +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at http://curl.haxx.se/docs/copyright.html. +# +# You may opt to use, copy, modify, merge, publish, distribute and/or sell +# copies of the Software, and permit persons to whom the Software is +# furnished to do so, under the terms of the COPYING file. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# +########################################################################### +pkginclude_HEADERS = \ + curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ + typecheck-gcc.h curlbuild.h curlrules.h + +pkgincludedir= $(includedir)/curl + +# curlbuild.h does not exist in the git tree. When the original libcurl +# source code distribution archive file is created, curlbuild.h.dist is +# renamed to curlbuild.h and included in the tarball so that it can be +# used directly on non-configure systems. +# +# The distributed curlbuild.h will be overwritten on configure systems +# when the configure script runs, with one that is suitable and specific +# to the library being configured and built. +# +# curlbuild.h.in is the distributed template file from which the configure +# script creates curlbuild.h at library configuration time, overwiting the +# one included in the distribution archive. +# +# curlbuild.h.dist is not included in the source code distribution archive. + +EXTRA_DIST = curlbuild.h.in + +DISTCLEANFILES = curlbuild.h + +checksrc: + @@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) $(EXTRA_DIST) + +if CURLDEBUG +# for debug builds, we scan the sources on all regular make invokes +all-local: checksrc +endif diff --git a/cad2pdf/crul/include/curl/Makefile.in b/cad2pdf/crul/include/curl/Makefile.in new file mode 100644 index 0000000..9b7fc9c --- /dev/null +++ b/cad2pdf/crul/include/curl/Makefile.in @@ -0,0 +1,690 @@ +# Makefile.in generated by automake 1.13.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = include/curl +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(srcdir)/curlbuild.h.in $(top_srcdir)/mkinstalldirs \ + $(pkginclude_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \ + $(top_srcdir)/m4/curl-confopts.m4 \ + $(top_srcdir)/m4/curl-functions.m4 \ + $(top_srcdir)/m4/curl-openssl.m4 \ + $(top_srcdir)/m4/curl-override.m4 \ + $(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 \ + $(top_srcdir)/m4/zz50-xc-ovr.m4 \ + $(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/lib/curl_config.h curlbuild.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgincludedir)" +HEADERS = $(pkginclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)curlbuild.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +pkgincludedir = $(includedir)/curl +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ +CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@ +CURLVERSION = @CURLVERSION@ +CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ +CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ +CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ +CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ +CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ +CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ +CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ +CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ +CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ +CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ +CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ +CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ +CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ +CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ +CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ +CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ +CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@ +CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@ +CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_SHARED = @ENABLE_SHARED@ +ENABLE_STATIC = @ENABLE_STATIC@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ +HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ +HAVE_LIBZ = @HAVE_LIBZ@ +HAVE_NSS_INITCONTEXT = @HAVE_NSS_INITCONTEXT@ +HAVE_SSLEAY_SRP = @HAVE_SSLEAY_SRP@ +IDN_ENABLED = @IDN_ENABLED@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +IPV6_ENABLED = @IPV6_ENABLED@ +KRB4_ENABLED = @KRB4_ENABLED@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBCURL_LIBS = @LIBCURL_LIBS@ +LIBMETALINK_CPPFLAGS = @LIBMETALINK_CPPFLAGS@ +LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@ +LIBMETALINK_LIBS = @LIBMETALINK_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MANOPT = @MANOPT@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NROFF = @NROFF@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKGADD_NAME = @PKGADD_NAME@ +PKGADD_PKG = @PKGADD_PKG@ +PKGADD_VENDOR = @PKGADD_VENDOR@ +PKGCONFIG = @PKGCONFIG@ +RANDOM_FILE = @RANDOM_FILE@ +RANLIB = @RANLIB@ +REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_ENABLED = @SSL_ENABLED@ +STRIP = @STRIP@ +SUPPORT_FEATURES = @SUPPORT_FEATURES@ +SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ +USE_ARES = @USE_ARES@ +USE_AXTLS = @USE_AXTLS@ +USE_CYASSL = @USE_CYASSL@ +USE_DARWINSSL = @USE_DARWINSSL@ +USE_GNUTLS = @USE_GNUTLS@ +USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@ +USE_LIBRTMP = @USE_LIBRTMP@ +USE_LIBSSH2 = @USE_LIBSSH2@ +USE_NSS = @USE_NSS@ +USE_OPENLDAP = @USE_OPENLDAP@ +USE_POLARSSL = @USE_POLARSSL@ +USE_SCHANNEL = @USE_SCHANNEL@ +USE_SSLEAY = @USE_SSLEAY@ +USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ +VERSION = @VERSION@ +VERSIONNUM = @VERSIONNUM@ +ZLIB_LIBS = @ZLIB_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libext = @libext@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 1998 - 2011, Daniel Stenberg, , et al. +# +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at http://curl.haxx.se/docs/copyright.html. +# +# You may opt to use, copy, modify, merge, publish, distribute and/or sell +# copies of the Software, and permit persons to whom the Software is +# furnished to do so, under the terms of the COPYING file. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# +########################################################################### +pkginclude_HEADERS = \ + curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ + typecheck-gcc.h curlbuild.h curlrules.h + + +# curlbuild.h does not exist in the git tree. When the original libcurl +# source code distribution archive file is created, curlbuild.h.dist is +# renamed to curlbuild.h and included in the tarball so that it can be +# used directly on non-configure systems. +# +# The distributed curlbuild.h will be overwritten on configure systems +# when the configure script runs, with one that is suitable and specific +# to the library being configured and built. +# +# curlbuild.h.in is the distributed template file from which the configure +# script creates curlbuild.h at library configuration time, overwiting the +# one included in the distribution archive. +# +# curlbuild.h.dist is not included in the source code distribution archive. +EXTRA_DIST = curlbuild.h.in +DISTCLEANFILES = curlbuild.h +all: curlbuild.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign include/curl/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +curlbuild.h: stamp-h2 + @if test ! -f $@; then rm -f stamp-h2; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h2; else :; fi + +stamp-h2: $(srcdir)/curlbuild.h.in $(top_builddir)/config.status + @rm -f stamp-h2 + cd $(top_builddir) && $(SHELL) ./config.status include/curl/curlbuild.h + +distclean-hdr: + -rm -f curlbuild.h stamp-h2 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ + done + +uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +@CURLDEBUG_FALSE@all-local: +all-am: Makefile $(HEADERS) curlbuild.h all-local +installdirs: + for dir in "$(DESTDIR)$(pkgincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pkgincludeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkgincludeHEADERS + +.MAKE: all install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ + clean-generic clean-libtool cscopelist-am ctags ctags-am \ + distclean distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgincludeHEADERS \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgincludeHEADERS + + +checksrc: + @@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) $(EXTRA_DIST) + +# for debug builds, we scan the sources on all regular make invokes +@CURLDEBUG_TRUE@all-local: checksrc + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/cad2pdf/crul/include/curl/curl.h b/cad2pdf/crul/include/curl/curl.h new file mode 100644 index 0000000..41c0881 --- /dev/null +++ b/cad2pdf/crul/include/curl/curl.h @@ -0,0 +1,2248 @@ +#ifndef __CURL_CURL_H +#define __CURL_CURL_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +/* + * If you have libcurl problems, all docs and details are found here: + * http://curl.haxx.se/libcurl/ + * + * curl-library mailing list subscription and unsubscription web interface: + * http://cool.haxx.se/mailman/listinfo/curl-library/ + */ + +#include "curlver.h" /* libcurl version defines */ +#include "curlbuild.h" /* libcurl build definitions */ +#include "curlrules.h" /* libcurl rules enforcement */ + +/* + * Define WIN32 when build target is Win32 API + */ + +#if (defined(_WIN32) || defined(__WIN32__)) && \ + !defined(WIN32) && !defined(__SYMBIAN32__) +#define WIN32 +#endif + +#include +#include + +#if defined(__FreeBSD__) && (__FreeBSD__ >= 2) +/* Needed for __FreeBSD_version symbol definition */ +#include +#endif + +/* The include stuff here below is mainly for time_t! */ +#include +#include + +#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) +#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || defined(__LWIP_OPT_H__)) +/* The check above prevents the winsock2 inclusion if winsock.h already was + included, since they can't co-exist without problems */ +#include +#include +#endif +#endif + +/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish + libc5-based Linux systems. Only include it on systems that are known to + require it! */ +#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ + defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ + defined(ANDROID) || defined(__ANDROID__) || \ + (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) +#include +#endif + +#if !defined(WIN32) && !defined(_WIN32_WCE) +#include +#endif + +#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__) +#include +#endif + +#ifdef __BEOS__ +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void CURL; + +/* + * libcurl external API function linkage decorations. + */ + +#ifdef CURL_STATICLIB +# define CURL_EXTERN +#elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__) +# if defined(BUILDING_LIBCURL) +# define CURL_EXTERN __declspec(dllexport) +# else +# define CURL_EXTERN __declspec(dllimport) +# endif +#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) +# define CURL_EXTERN CURL_EXTERN_SYMBOL +#else +# define CURL_EXTERN +#endif + +#ifndef curl_socket_typedef +/* socket typedef */ +#if defined(WIN32) && !defined(__LWIP_OPT_H__) +typedef SOCKET curl_socket_t; +#define CURL_SOCKET_BAD INVALID_SOCKET +#else +typedef int curl_socket_t; +#define CURL_SOCKET_BAD -1 +#endif +#define curl_socket_typedef +#endif /* curl_socket_typedef */ + +struct curl_httppost { + struct curl_httppost *next; /* next entry in the list */ + char *name; /* pointer to allocated name */ + long namelength; /* length of name length */ + char *contents; /* pointer to allocated data contents */ + long contentslength; /* length of contents field */ + char *buffer; /* pointer to allocated buffer contents */ + long bufferlength; /* length of buffer field */ + char *contenttype; /* Content-Type */ + struct curl_slist* contentheader; /* list of extra headers for this form */ + struct curl_httppost *more; /* if one field name has more than one + file, this link should link to following + files */ + long flags; /* as defined below */ +#define HTTPPOST_FILENAME (1<<0) /* specified content is a file name */ +#define HTTPPOST_READFILE (1<<1) /* specified content is a file name */ +#define HTTPPOST_PTRNAME (1<<2) /* name is only stored pointer + do not free in formfree */ +#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer + do not free in formfree */ +#define HTTPPOST_BUFFER (1<<4) /* upload file from buffer */ +#define HTTPPOST_PTRBUFFER (1<<5) /* upload file from pointer contents */ +#define HTTPPOST_CALLBACK (1<<6) /* upload file contents by using the + regular read callback to get the data + and pass the given pointer as custom + pointer */ + + char *showfilename; /* The file name to show. If not set, the + actual file name will be used (if this + is a file part) */ + void *userp; /* custom pointer used for + HTTPPOST_CALLBACK posts */ +}; + +/* This is the CURLOPT_PROGRESSFUNCTION callback proto. It is now considered + deprecated but was the only choice up until 7.31.0 */ +typedef int (*curl_progress_callback)(void *clientp, + double dltotal, + double dlnow, + double ultotal, + double ulnow); + +/* This is the CURLOPT_XFERINFOFUNCTION callback proto. It was introduced in + 7.32.0, it avoids floating point and provides more detailed information. */ +typedef int (*curl_xferinfo_callback)(void *clientp, + curl_off_t dltotal, + curl_off_t dlnow, + curl_off_t ultotal, + curl_off_t ulnow); + +#ifndef CURL_MAX_WRITE_SIZE + /* Tests have proven that 20K is a very bad buffer size for uploads on + Windows, while 16K for some odd reason performed a lot better. + We do the ifndef check to allow this value to easier be changed at build + time for those who feel adventurous. The practical minimum is about + 400 bytes since libcurl uses a buffer of this size as a scratch area + (unrelated to network send operations). */ +#define CURL_MAX_WRITE_SIZE 16384 +#endif + +#ifndef CURL_MAX_HTTP_HEADER +/* The only reason to have a max limit for this is to avoid the risk of a bad + server feeding libcurl with a never-ending header that will cause reallocs + infinitely */ +#define CURL_MAX_HTTP_HEADER (100*1024) +#endif + +/* This is a magic return code for the write callback that, when returned, + will signal libcurl to pause receiving on the current transfer. */ +#define CURL_WRITEFUNC_PAUSE 0x10000001 + +typedef size_t (*curl_write_callback)(char *buffer, + size_t size, + size_t nitems, + void *outstream); + + + +/* enumeration of file types */ +typedef enum { + CURLFILETYPE_FILE = 0, + CURLFILETYPE_DIRECTORY, + CURLFILETYPE_SYMLINK, + CURLFILETYPE_DEVICE_BLOCK, + CURLFILETYPE_DEVICE_CHAR, + CURLFILETYPE_NAMEDPIPE, + CURLFILETYPE_SOCKET, + CURLFILETYPE_DOOR, /* is possible only on Sun Solaris now */ + + CURLFILETYPE_UNKNOWN /* should never occur */ +} curlfiletype; + +#define CURLFINFOFLAG_KNOWN_FILENAME (1<<0) +#define CURLFINFOFLAG_KNOWN_FILETYPE (1<<1) +#define CURLFINFOFLAG_KNOWN_TIME (1<<2) +#define CURLFINFOFLAG_KNOWN_PERM (1<<3) +#define CURLFINFOFLAG_KNOWN_UID (1<<4) +#define CURLFINFOFLAG_KNOWN_GID (1<<5) +#define CURLFINFOFLAG_KNOWN_SIZE (1<<6) +#define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1<<7) + +/* Content of this structure depends on information which is known and is + achievable (e.g. by FTP LIST parsing). Please see the url_easy_setopt(3) man + page for callbacks returning this structure -- some fields are mandatory, + some others are optional. The FLAG field has special meaning. */ +struct curl_fileinfo { + char *filename; + curlfiletype filetype; + time_t time; + unsigned int perm; + int uid; + int gid; + curl_off_t size; + long int hardlinks; + + struct { + /* If some of these fields is not NULL, it is a pointer to b_data. */ + char *time; + char *perm; + char *user; + char *group; + char *target; /* pointer to the target filename of a symlink */ + } strings; + + unsigned int flags; + + /* used internally */ + char * b_data; + size_t b_size; + size_t b_used; +}; + +/* return codes for CURLOPT_CHUNK_BGN_FUNCTION */ +#define CURL_CHUNK_BGN_FUNC_OK 0 +#define CURL_CHUNK_BGN_FUNC_FAIL 1 /* tell the lib to end the task */ +#define CURL_CHUNK_BGN_FUNC_SKIP 2 /* skip this chunk over */ + +/* if splitting of data transfer is enabled, this callback is called before + download of an individual chunk started. Note that parameter "remains" works + only for FTP wildcard downloading (for now), otherwise is not used */ +typedef long (*curl_chunk_bgn_callback)(const void *transfer_info, + void *ptr, + int remains); + +/* return codes for CURLOPT_CHUNK_END_FUNCTION */ +#define CURL_CHUNK_END_FUNC_OK 0 +#define CURL_CHUNK_END_FUNC_FAIL 1 /* tell the lib to end the task */ + +/* If splitting of data transfer is enabled this callback is called after + download of an individual chunk finished. + Note! After this callback was set then it have to be called FOR ALL chunks. + Even if downloading of this chunk was skipped in CHUNK_BGN_FUNC. + This is the reason why we don't need "transfer_info" parameter in this + callback and we are not interested in "remains" parameter too. */ +typedef long (*curl_chunk_end_callback)(void *ptr); + +/* return codes for FNMATCHFUNCTION */ +#define CURL_FNMATCHFUNC_MATCH 0 /* string corresponds to the pattern */ +#define CURL_FNMATCHFUNC_NOMATCH 1 /* pattern doesn't match the string */ +#define CURL_FNMATCHFUNC_FAIL 2 /* an error occurred */ + +/* callback type for wildcard downloading pattern matching. If the + string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc. */ +typedef int (*curl_fnmatch_callback)(void *ptr, + const char *pattern, + const char *string); + +/* These are the return codes for the seek callbacks */ +#define CURL_SEEKFUNC_OK 0 +#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */ +#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so + libcurl might try other means instead */ +typedef int (*curl_seek_callback)(void *instream, + curl_off_t offset, + int origin); /* 'whence' */ + +/* This is a return code for the read callback that, when returned, will + signal libcurl to immediately abort the current transfer. */ +#define CURL_READFUNC_ABORT 0x10000000 +/* This is a return code for the read callback that, when returned, will + signal libcurl to pause sending data on the current transfer. */ +#define CURL_READFUNC_PAUSE 0x10000001 + +typedef size_t (*curl_read_callback)(char *buffer, + size_t size, + size_t nitems, + void *instream); + +typedef enum { + CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ + CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ + CURLSOCKTYPE_LAST /* never use */ +} curlsocktype; + +/* The return code from the sockopt_callback can signal information back + to libcurl: */ +#define CURL_SOCKOPT_OK 0 +#define CURL_SOCKOPT_ERROR 1 /* causes libcurl to abort and return + CURLE_ABORTED_BY_CALLBACK */ +#define CURL_SOCKOPT_ALREADY_CONNECTED 2 + +typedef int (*curl_sockopt_callback)(void *clientp, + curl_socket_t curlfd, + curlsocktype purpose); + +struct curl_sockaddr { + int family; + int socktype; + int protocol; + unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it + turned really ugly and painful on the systems that + lack this type */ + struct sockaddr addr; +}; + +typedef curl_socket_t +(*curl_opensocket_callback)(void *clientp, + curlsocktype purpose, + struct curl_sockaddr *address); + +typedef int +(*curl_closesocket_callback)(void *clientp, curl_socket_t item); + +typedef enum { + CURLIOE_OK, /* I/O operation successful */ + CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ + CURLIOE_FAILRESTART, /* failed to restart the read */ + CURLIOE_LAST /* never use */ +} curlioerr; + +typedef enum { + CURLIOCMD_NOP, /* no operation */ + CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ + CURLIOCMD_LAST /* never use */ +} curliocmd; + +typedef curlioerr (*curl_ioctl_callback)(CURL *handle, + int cmd, + void *clientp); + +/* + * The following typedef's are signatures of malloc, free, realloc, strdup and + * calloc respectively. Function pointers of these types can be passed to the + * curl_global_init_mem() function to set user defined memory management + * callback routines. + */ +typedef void *(*curl_malloc_callback)(size_t size); +typedef void (*curl_free_callback)(void *ptr); +typedef void *(*curl_realloc_callback)(void *ptr, size_t size); +typedef char *(*curl_strdup_callback)(const char *str); +typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); + +/* the kind of data that is passed to information_callback*/ +typedef enum { + CURLINFO_TEXT = 0, + CURLINFO_HEADER_IN, /* 1 */ + CURLINFO_HEADER_OUT, /* 2 */ + CURLINFO_DATA_IN, /* 3 */ + CURLINFO_DATA_OUT, /* 4 */ + CURLINFO_SSL_DATA_IN, /* 5 */ + CURLINFO_SSL_DATA_OUT, /* 6 */ + CURLINFO_END +} curl_infotype; + +typedef int (*curl_debug_callback) + (CURL *handle, /* the handle/transfer this concerns */ + curl_infotype type, /* what kind of data */ + char *data, /* points to the data */ + size_t size, /* size of the data pointed to */ + void *userptr); /* whatever the user please */ + +/* All possible error codes from all sorts of curl functions. Future versions + may return other values, stay prepared. + + Always add new return codes last. Never *EVER* remove any. The return + codes must remain the same! + */ + +typedef enum { + CURLE_OK = 0, + CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ + CURLE_FAILED_INIT, /* 2 */ + CURLE_URL_MALFORMAT, /* 3 */ + CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for + 7.17.0, reused in April 2011 for 7.21.5] */ + CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ + CURLE_COULDNT_RESOLVE_HOST, /* 6 */ + CURLE_COULDNT_CONNECT, /* 7 */ + CURLE_FTP_WEIRD_SERVER_REPLY, /* 8 */ + CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server + due to lack of access - when login fails + this is not returned. */ + CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for + 7.15.4, reused in Dec 2011 for 7.24.0]*/ + CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ + CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server + [was obsoleted in August 2007 for 7.17.0, + reused in Dec 2011 for 7.24.0]*/ + CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ + CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ + CURLE_FTP_CANT_GET_HOST, /* 15 */ + CURLE_OBSOLETE16, /* 16 - NOT USED */ + CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ + CURLE_PARTIAL_FILE, /* 18 */ + CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ + CURLE_OBSOLETE20, /* 20 - NOT USED */ + CURLE_QUOTE_ERROR, /* 21 - quote command failure */ + CURLE_HTTP_RETURNED_ERROR, /* 22 */ + CURLE_WRITE_ERROR, /* 23 */ + CURLE_OBSOLETE24, /* 24 - NOT USED */ + CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ + CURLE_READ_ERROR, /* 26 - couldn't open/read from file */ + CURLE_OUT_OF_MEMORY, /* 27 */ + /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error + instead of a memory allocation error if CURL_DOES_CONVERSIONS + is defined + */ + CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ + CURLE_OBSOLETE29, /* 29 - NOT USED */ + CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ + CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ + CURLE_OBSOLETE32, /* 32 - NOT USED */ + CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ + CURLE_HTTP_POST_ERROR, /* 34 */ + CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ + CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ + CURLE_FILE_COULDNT_READ_FILE, /* 37 */ + CURLE_LDAP_CANNOT_BIND, /* 38 */ + CURLE_LDAP_SEARCH_FAILED, /* 39 */ + CURLE_OBSOLETE40, /* 40 - NOT USED */ + CURLE_FUNCTION_NOT_FOUND, /* 41 */ + CURLE_ABORTED_BY_CALLBACK, /* 42 */ + CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ + CURLE_OBSOLETE44, /* 44 - NOT USED */ + CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ + CURLE_OBSOLETE46, /* 46 - NOT USED */ + CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */ + CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ + CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */ + CURLE_OBSOLETE50, /* 50 - NOT USED */ + CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint + wasn't verified fine */ + CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ + CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ + CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as + default */ + CURLE_SEND_ERROR, /* 55 - failed sending network data */ + CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ + CURLE_OBSOLETE57, /* 57 - NOT IN USE */ + CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ + CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ + CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */ + CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ + CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */ + CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ + CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ + CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind + that failed */ + CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ + CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not + accepted and we failed to login */ + CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ + CURLE_TFTP_PERM, /* 69 - permission problem on server */ + CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ + CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ + CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ + CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ + CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ + CURLE_CONV_FAILED, /* 75 - conversion failed */ + CURLE_CONV_REQD, /* 76 - caller must register conversion + callbacks using curl_easy_setopt options + CURLOPT_CONV_FROM_NETWORK_FUNCTION, + CURLOPT_CONV_TO_NETWORK_FUNCTION, and + CURLOPT_CONV_FROM_UTF8_FUNCTION */ + CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing + or wrong format */ + CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ + CURLE_SSH, /* 79 - error from the SSH layer, somewhat + generic so the error message will be of + interest when this has happened */ + + CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL + connection */ + CURLE_AGAIN, /* 81 - socket is not ready for send/recv, + wait till it's ready and try again (Added + in 7.18.2) */ + CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or + wrong format (Added in 7.19.0) */ + CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in + 7.19.0) */ + CURLE_FTP_PRET_FAILED, /* 84 - a PRET command failed */ + CURLE_RTSP_CSEQ_ERROR, /* 85 - mismatch of RTSP CSeq numbers */ + CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */ + CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */ + CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */ + CURLE_NO_CONNECTION_AVAILABLE, /* 89 - No connection available, the + session will be queued */ + CURL_LAST /* never use! */ +} CURLcode; + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Previously obsoletes error codes re-used in 7.24.0 */ +#define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED +#define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT + +/* compatibility with older names */ +#define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING + +/* The following were added in 7.21.5, April 2011 */ +#define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION + +/* The following were added in 7.17.1 */ +/* These are scheduled to disappear by 2009 */ +#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION + +/* The following were added in 7.17.0 */ +/* These are scheduled to disappear by 2009 */ +#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* no one should be using this! */ +#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 +#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 +#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 +#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 +#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 +#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 +#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 +#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 +#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 +#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 +#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 +#define CURLE_URL_MALFORMAT_USER CURLE_NOT_BUILT_IN + +#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED +#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE +#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR +#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL +#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS +#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR +#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED + +/* The following were added earlier */ + +#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT + +#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR +#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED +#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED + +#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE +#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME + +/* This was the error code 50 in 7.7.3 and a few earlier versions, this + is no longer used by libcurl but is instead #defined here only to not + make programs break */ +#define CURLE_ALREADY_COMPLETE 99999 + +#endif /*!CURL_NO_OLDIES*/ + +/* This prototype applies to all conversion callbacks */ +typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); + +typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ + void *ssl_ctx, /* actually an + OpenSSL SSL_CTX */ + void *userptr); + +typedef enum { + CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use + CONNECT HTTP/1.1 */ + CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT + HTTP/1.0 */ + CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already + in 7.10 */ + CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ + CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */ + CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the + host name rather than the IP address. added + in 7.18.0 */ +} curl_proxytype; /* this enum was added in 7.10 */ + +/* + * Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options: + * + * CURLAUTH_NONE - No HTTP authentication + * CURLAUTH_BASIC - HTTP Basic authentication (default) + * CURLAUTH_DIGEST - HTTP Digest authentication + * CURLAUTH_GSSNEGOTIATE - HTTP GSS-Negotiate authentication + * CURLAUTH_NTLM - HTTP NTLM authentication + * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour + * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper + * CURLAUTH_ONLY - Use together with a single other type to force no + * authentication or just that single type + * CURLAUTH_ANY - All fine types set + * CURLAUTH_ANYSAFE - All fine types except Basic + */ + +#define CURLAUTH_NONE ((unsigned long)0) +#define CURLAUTH_BASIC (((unsigned long)1)<<0) +#define CURLAUTH_DIGEST (((unsigned long)1)<<1) +#define CURLAUTH_GSSNEGOTIATE (((unsigned long)1)<<2) +#define CURLAUTH_NTLM (((unsigned long)1)<<3) +#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) +#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) +#define CURLAUTH_ONLY (((unsigned long)1)<<31) +#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) +#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) + +#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ +#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ +#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ +#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ +#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ +#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ +#define CURLSSH_AUTH_AGENT (1<<4) /* agent (ssh-agent, pageant...) */ +#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY + +#define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */ +#define CURLGSSAPI_DELEGATION_POLICY_FLAG (1<<0) /* if permitted by policy */ +#define CURLGSSAPI_DELEGATION_FLAG (1<<1) /* delegate always */ + +#define CURL_ERROR_SIZE 256 + +struct curl_khkey { + const char *key; /* points to a zero-terminated string encoded with base64 + if len is zero, otherwise to the "raw" data */ + size_t len; + enum type { + CURLKHTYPE_UNKNOWN, + CURLKHTYPE_RSA1, + CURLKHTYPE_RSA, + CURLKHTYPE_DSS + } keytype; +}; + +/* this is the set of return values expected from the curl_sshkeycallback + callback */ +enum curl_khstat { + CURLKHSTAT_FINE_ADD_TO_FILE, + CURLKHSTAT_FINE, + CURLKHSTAT_REJECT, /* reject the connection, return an error */ + CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now so + this causes a CURLE_DEFER error but otherwise the + connection will be left intact etc */ + CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */ +}; + +/* this is the set of status codes pass in to the callback */ +enum curl_khmatch { + CURLKHMATCH_OK, /* match */ + CURLKHMATCH_MISMATCH, /* host found, key mismatch! */ + CURLKHMATCH_MISSING, /* no matching host/key found */ + CURLKHMATCH_LAST /* not for use, only a marker for last-in-list */ +}; + +typedef int + (*curl_sshkeycallback) (CURL *easy, /* easy handle */ + const struct curl_khkey *knownkey, /* known */ + const struct curl_khkey *foundkey, /* found */ + enum curl_khmatch, /* libcurl's view on the keys */ + void *clientp); /* custom pointer passed from app */ + +/* parameter for the CURLOPT_USE_SSL option */ +typedef enum { + CURLUSESSL_NONE, /* do not attempt to use SSL */ + CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ + CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ + CURLUSESSL_ALL, /* SSL for all communication or fail */ + CURLUSESSL_LAST /* not an option, never use */ +} curl_usessl; + +/* Definition of bits for the CURLOPT_SSL_OPTIONS argument: */ + +/* - ALLOW_BEAST tells libcurl to allow the BEAST SSL vulnerability in the + name of improving interoperability with older servers. Some SSL libraries + have introduced work-arounds for this flaw but those work-arounds sometimes + make the SSL communication fail. To regain functionality with those broken + servers, a user can this way allow the vulnerability back. */ +#define CURLSSLOPT_ALLOW_BEAST (1<<0) + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Backwards compatibility with older names */ +/* These are scheduled to disappear by 2009 */ + +#define CURLFTPSSL_NONE CURLUSESSL_NONE +#define CURLFTPSSL_TRY CURLUSESSL_TRY +#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL +#define CURLFTPSSL_ALL CURLUSESSL_ALL +#define CURLFTPSSL_LAST CURLUSESSL_LAST +#define curl_ftpssl curl_usessl +#endif /*!CURL_NO_OLDIES*/ + +/* parameter for the CURLOPT_FTP_SSL_CCC option */ +typedef enum { + CURLFTPSSL_CCC_NONE, /* do not send CCC */ + CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ + CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ + CURLFTPSSL_CCC_LAST /* not an option, never use */ +} curl_ftpccc; + +/* parameter for the CURLOPT_FTPSSLAUTH option */ +typedef enum { + CURLFTPAUTH_DEFAULT, /* let libcurl decide */ + CURLFTPAUTH_SSL, /* use "AUTH SSL" */ + CURLFTPAUTH_TLS, /* use "AUTH TLS" */ + CURLFTPAUTH_LAST /* not an option, never use */ +} curl_ftpauth; + +/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ +typedef enum { + CURLFTP_CREATE_DIR_NONE, /* do NOT create missing dirs! */ + CURLFTP_CREATE_DIR, /* (FTP/SFTP) if CWD fails, try MKD and then CWD + again if MKD succeeded, for SFTP this does + similar magic */ + CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD + again even if MKD failed! */ + CURLFTP_CREATE_DIR_LAST /* not an option, never use */ +} curl_ftpcreatedir; + +/* parameter for the CURLOPT_FTP_FILEMETHOD option */ +typedef enum { + CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ + CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ + CURLFTPMETHOD_NOCWD, /* no CWD at all */ + CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ + CURLFTPMETHOD_LAST /* not an option, never use */ +} curl_ftpmethod; + +/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */ +#define CURLPROTO_HTTP (1<<0) +#define CURLPROTO_HTTPS (1<<1) +#define CURLPROTO_FTP (1<<2) +#define CURLPROTO_FTPS (1<<3) +#define CURLPROTO_SCP (1<<4) +#define CURLPROTO_SFTP (1<<5) +#define CURLPROTO_TELNET (1<<6) +#define CURLPROTO_LDAP (1<<7) +#define CURLPROTO_LDAPS (1<<8) +#define CURLPROTO_DICT (1<<9) +#define CURLPROTO_FILE (1<<10) +#define CURLPROTO_TFTP (1<<11) +#define CURLPROTO_IMAP (1<<12) +#define CURLPROTO_IMAPS (1<<13) +#define CURLPROTO_POP3 (1<<14) +#define CURLPROTO_POP3S (1<<15) +#define CURLPROTO_SMTP (1<<16) +#define CURLPROTO_SMTPS (1<<17) +#define CURLPROTO_RTSP (1<<18) +#define CURLPROTO_RTMP (1<<19) +#define CURLPROTO_RTMPT (1<<20) +#define CURLPROTO_RTMPE (1<<21) +#define CURLPROTO_RTMPTE (1<<22) +#define CURLPROTO_RTMPS (1<<23) +#define CURLPROTO_RTMPTS (1<<24) +#define CURLPROTO_GOPHER (1<<25) +#define CURLPROTO_ALL (~0) /* enable everything */ + +/* long may be 32 or 64 bits, but we should never depend on anything else + but 32 */ +#define CURLOPTTYPE_LONG 0 +#define CURLOPTTYPE_OBJECTPOINT 10000 +#define CURLOPTTYPE_FUNCTIONPOINT 20000 +#define CURLOPTTYPE_OFF_T 30000 + +/* name is uppercase CURLOPT_, + type is one of the defined CURLOPTTYPE_ + number is unique identifier */ +#ifdef CINIT +#undef CINIT +#endif + +#ifdef CURL_ISOCPP +#define CINIT(na,t,nu) CURLOPT_ ## na = CURLOPTTYPE_ ## t + nu +#else +/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ +#define LONG CURLOPTTYPE_LONG +#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT +#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT +#define OFF_T CURLOPTTYPE_OFF_T +#define CINIT(name,type,number) CURLOPT_/**/name = type + number +#endif + +/* + * This macro-mania below setups the CURLOPT_[what] enum, to be used with + * curl_easy_setopt(). The first argument in the CINIT() macro is the [what] + * word. + */ + +typedef enum { + /* This is the FILE * or void * the regular output should be written to. */ + CINIT(FILE, OBJECTPOINT, 1), + + /* The full URL to get/put */ + CINIT(URL, OBJECTPOINT, 2), + + /* Port number to connect to, if other than default. */ + CINIT(PORT, LONG, 3), + + /* Name of proxy to use. */ + CINIT(PROXY, OBJECTPOINT, 4), + + /* "name:password" to use when fetching. */ + CINIT(USERPWD, OBJECTPOINT, 5), + + /* "name:password" to use with proxy. */ + CINIT(PROXYUSERPWD, OBJECTPOINT, 6), + + /* Range to get, specified as an ASCII string. */ + CINIT(RANGE, OBJECTPOINT, 7), + + /* not used */ + + /* Specified file stream to upload from (use as input): */ + CINIT(INFILE, OBJECTPOINT, 9), + + /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE + * bytes big. If this is not used, error messages go to stderr instead: */ + CINIT(ERRORBUFFER, OBJECTPOINT, 10), + + /* Function that will be called to store the output (instead of fwrite). The + * parameters will use fwrite() syntax, make sure to follow them. */ + CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11), + + /* Function that will be called to read the input (instead of fread). The + * parameters will use fread() syntax, make sure to follow them. */ + CINIT(READFUNCTION, FUNCTIONPOINT, 12), + + /* Time-out the read operation after this amount of seconds */ + CINIT(TIMEOUT, LONG, 13), + + /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about + * how large the file being sent really is. That allows better error + * checking and better verifies that the upload was successful. -1 means + * unknown size. + * + * For large file support, there is also a _LARGE version of the key + * which takes an off_t type, allowing platforms with larger off_t + * sizes to handle larger files. See below for INFILESIZE_LARGE. + */ + CINIT(INFILESIZE, LONG, 14), + + /* POST static input fields. */ + CINIT(POSTFIELDS, OBJECTPOINT, 15), + + /* Set the referrer page (needed by some CGIs) */ + CINIT(REFERER, OBJECTPOINT, 16), + + /* Set the FTP PORT string (interface name, named or numerical IP address) + Use i.e '-' to use default address. */ + CINIT(FTPPORT, OBJECTPOINT, 17), + + /* Set the User-Agent string (examined by some CGIs) */ + CINIT(USERAGENT, OBJECTPOINT, 18), + + /* If the download receives less than "low speed limit" bytes/second + * during "low speed time" seconds, the operations is aborted. + * You could i.e if you have a pretty high speed connection, abort if + * it is less than 2000 bytes/sec during 20 seconds. + */ + + /* Set the "low speed limit" */ + CINIT(LOW_SPEED_LIMIT, LONG, 19), + + /* Set the "low speed time" */ + CINIT(LOW_SPEED_TIME, LONG, 20), + + /* Set the continuation offset. + * + * Note there is also a _LARGE version of this key which uses + * off_t types, allowing for large file offsets on platforms which + * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. + */ + CINIT(RESUME_FROM, LONG, 21), + + /* Set cookie in request: */ + CINIT(COOKIE, OBJECTPOINT, 22), + + /* This points to a linked list of headers, struct curl_slist kind */ + CINIT(HTTPHEADER, OBJECTPOINT, 23), + + /* This points to a linked list of post entries, struct curl_httppost */ + CINIT(HTTPPOST, OBJECTPOINT, 24), + + /* name of the file keeping your private SSL-certificate */ + CINIT(SSLCERT, OBJECTPOINT, 25), + + /* password for the SSL or SSH private key */ + CINIT(KEYPASSWD, OBJECTPOINT, 26), + + /* send TYPE parameter? */ + CINIT(CRLF, LONG, 27), + + /* send linked-list of QUOTE commands */ + CINIT(QUOTE, OBJECTPOINT, 28), + + /* send FILE * or void * to store headers to, if you use a callback it + is simply passed to the callback unmodified */ + CINIT(WRITEHEADER, OBJECTPOINT, 29), + + /* point to a file to read the initial cookies from, also enables + "cookie awareness" */ + CINIT(COOKIEFILE, OBJECTPOINT, 31), + + /* What version to specifically try to use. + See CURL_SSLVERSION defines below. */ + CINIT(SSLVERSION, LONG, 32), + + /* What kind of HTTP time condition to use, see defines */ + CINIT(TIMECONDITION, LONG, 33), + + /* Time to use with the above condition. Specified in number of seconds + since 1 Jan 1970 */ + CINIT(TIMEVALUE, LONG, 34), + + /* 35 = OBSOLETE */ + + /* Custom request, for customizing the get command like + HTTP: DELETE, TRACE and others + FTP: to use a different list command + */ + CINIT(CUSTOMREQUEST, OBJECTPOINT, 36), + + /* HTTP request, for odd commands like DELETE, TRACE and others */ + CINIT(STDERR, OBJECTPOINT, 37), + + /* 38 is not used */ + + /* send linked-list of post-transfer QUOTE commands */ + CINIT(POSTQUOTE, OBJECTPOINT, 39), + + CINIT(WRITEINFO, OBJECTPOINT, 40), /* DEPRECATED, do not use! */ + + CINIT(VERBOSE, LONG, 41), /* talk a lot */ + CINIT(HEADER, LONG, 42), /* throw the header out too */ + CINIT(NOPROGRESS, LONG, 43), /* shut off the progress meter */ + CINIT(NOBODY, LONG, 44), /* use HEAD to get http document */ + CINIT(FAILONERROR, LONG, 45), /* no output on http error codes >= 300 */ + CINIT(UPLOAD, LONG, 46), /* this is an upload */ + CINIT(POST, LONG, 47), /* HTTP POST method */ + CINIT(DIRLISTONLY, LONG, 48), /* bare names when listing directories */ + + CINIT(APPEND, LONG, 50), /* Append instead of overwrite on upload! */ + + /* Specify whether to read the user+password from the .netrc or the URL. + * This must be one of the CURL_NETRC_* enums below. */ + CINIT(NETRC, LONG, 51), + + CINIT(FOLLOWLOCATION, LONG, 52), /* use Location: Luke! */ + + CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */ + CINIT(PUT, LONG, 54), /* HTTP PUT */ + + /* 55 = OBSOLETE */ + + /* DEPRECATED + * Function that will be called instead of the internal progress display + * function. This function should be defined as the curl_progress_callback + * prototype defines. */ + CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56), + + /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION + callbacks */ + CINIT(PROGRESSDATA, OBJECTPOINT, 57), +#define CURLOPT_XFERINFODATA CURLOPT_PROGRESSDATA + + /* We want the referrer field set automatically when following locations */ + CINIT(AUTOREFERER, LONG, 58), + + /* Port of the proxy, can be set in the proxy string as well with: + "[host]:[port]" */ + CINIT(PROXYPORT, LONG, 59), + + /* size of the POST input data, if strlen() is not good to use */ + CINIT(POSTFIELDSIZE, LONG, 60), + + /* tunnel non-http operations through a HTTP proxy */ + CINIT(HTTPPROXYTUNNEL, LONG, 61), + + /* Set the interface string to use as outgoing network interface */ + CINIT(INTERFACE, OBJECTPOINT, 62), + + /* Set the krb4/5 security level, this also enables krb4/5 awareness. This + * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string + * is set but doesn't match one of these, 'private' will be used. */ + CINIT(KRBLEVEL, OBJECTPOINT, 63), + + /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ + CINIT(SSL_VERIFYPEER, LONG, 64), + + /* The CApath or CAfile used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CINIT(CAINFO, OBJECTPOINT, 65), + + /* 66 = OBSOLETE */ + /* 67 = OBSOLETE */ + + /* Maximum number of http redirects to follow */ + CINIT(MAXREDIRS, LONG, 68), + + /* Pass a long set to 1 to get the date of the requested document (if + possible)! Pass a zero to shut it off. */ + CINIT(FILETIME, LONG, 69), + + /* This points to a linked list of telnet options */ + CINIT(TELNETOPTIONS, OBJECTPOINT, 70), + + /* Max amount of cached alive connections */ + CINIT(MAXCONNECTS, LONG, 71), + + CINIT(CLOSEPOLICY, LONG, 72), /* DEPRECATED, do not use! */ + + /* 73 = OBSOLETE */ + + /* Set to explicitly use a new connection for the upcoming transfer. + Do not use this unless you're absolutely sure of this, as it makes the + operation slower and is less friendly for the network. */ + CINIT(FRESH_CONNECT, LONG, 74), + + /* Set to explicitly forbid the upcoming transfer's connection to be re-used + when done. Do not use this unless you're absolutely sure of this, as it + makes the operation slower and is less friendly for the network. */ + CINIT(FORBID_REUSE, LONG, 75), + + /* Set to a file name that contains random data for libcurl to use to + seed the random engine when doing SSL connects. */ + CINIT(RANDOM_FILE, OBJECTPOINT, 76), + + /* Set to the Entropy Gathering Daemon socket pathname */ + CINIT(EGDSOCKET, OBJECTPOINT, 77), + + /* Time-out connect operations after this amount of seconds, if connects are + OK within this time, then fine... This only aborts the connect phase. */ + CINIT(CONNECTTIMEOUT, LONG, 78), + + /* Function that will be called to store headers (instead of fwrite). The + * parameters will use fwrite() syntax, make sure to follow them. */ + CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79), + + /* Set this to force the HTTP request to get back to GET. Only really usable + if POST, PUT or a custom request have been used first. + */ + CINIT(HTTPGET, LONG, 80), + + /* Set if we should verify the Common name from the peer certificate in ssl + * handshake, set 1 to check existence, 2 to ensure that it matches the + * provided hostname. */ + CINIT(SSL_VERIFYHOST, LONG, 81), + + /* Specify which file name to write all known cookies in after completed + operation. Set file name to "-" (dash) to make it go to stdout. */ + CINIT(COOKIEJAR, OBJECTPOINT, 82), + + /* Specify which SSL ciphers to use */ + CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83), + + /* Specify which HTTP version to use! This must be set to one of the + CURL_HTTP_VERSION* enums set below. */ + CINIT(HTTP_VERSION, LONG, 84), + + /* Specifically switch on or off the FTP engine's use of the EPSV command. By + default, that one will always be attempted before the more traditional + PASV command. */ + CINIT(FTP_USE_EPSV, LONG, 85), + + /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ + CINIT(SSLCERTTYPE, OBJECTPOINT, 86), + + /* name of the file keeping your private SSL-key */ + CINIT(SSLKEY, OBJECTPOINT, 87), + + /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ + CINIT(SSLKEYTYPE, OBJECTPOINT, 88), + + /* crypto engine for the SSL-sub system */ + CINIT(SSLENGINE, OBJECTPOINT, 89), + + /* set the crypto engine for the SSL-sub system as default + the param has no meaning... + */ + CINIT(SSLENGINE_DEFAULT, LONG, 90), + + /* Non-zero value means to use the global dns cache */ + CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* DEPRECATED, do not use! */ + + /* DNS cache timeout */ + CINIT(DNS_CACHE_TIMEOUT, LONG, 92), + + /* send linked-list of pre-transfer QUOTE commands */ + CINIT(PREQUOTE, OBJECTPOINT, 93), + + /* set the debug function */ + CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94), + + /* set the data for the debug function */ + CINIT(DEBUGDATA, OBJECTPOINT, 95), + + /* mark this as start of a cookie session */ + CINIT(COOKIESESSION, LONG, 96), + + /* The CApath directory used to validate the peer certificate + this option is used only if SSL_VERIFYPEER is true */ + CINIT(CAPATH, OBJECTPOINT, 97), + + /* Instruct libcurl to use a smaller receive buffer */ + CINIT(BUFFERSIZE, LONG, 98), + + /* Instruct libcurl to not use any signal/alarm handlers, even when using + timeouts. This option is useful for multi-threaded applications. + See libcurl-the-guide for more background information. */ + CINIT(NOSIGNAL, LONG, 99), + + /* Provide a CURLShare for mutexing non-ts data */ + CINIT(SHARE, OBJECTPOINT, 100), + + /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), + CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */ + CINIT(PROXYTYPE, LONG, 101), + + /* Set the Accept-Encoding string. Use this to tell a server you would like + the response to be compressed. Before 7.21.6, this was known as + CURLOPT_ENCODING */ + CINIT(ACCEPT_ENCODING, OBJECTPOINT, 102), + + /* Set pointer to private data */ + CINIT(PRIVATE, OBJECTPOINT, 103), + + /* Set aliases for HTTP 200 in the HTTP Response header */ + CINIT(HTTP200ALIASES, OBJECTPOINT, 104), + + /* Continue to send authentication (user+password) when following locations, + even when hostname changed. This can potentially send off the name + and password to whatever host the server decides. */ + CINIT(UNRESTRICTED_AUTH, LONG, 105), + + /* Specifically switch on or off the FTP engine's use of the EPRT command ( + it also disables the LPRT attempt). By default, those ones will always be + attempted before the good old traditional PORT command. */ + CINIT(FTP_USE_EPRT, LONG, 106), + + /* Set this to a bitmask value to enable the particular authentications + methods you like. Use this in combination with CURLOPT_USERPWD. + Note that setting multiple bits may cause extra network round-trips. */ + CINIT(HTTPAUTH, LONG, 107), + + /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx + in second argument. The function must be matching the + curl_ssl_ctx_callback proto. */ + CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108), + + /* Set the userdata for the ssl context callback function's third + argument */ + CINIT(SSL_CTX_DATA, OBJECTPOINT, 109), + + /* FTP Option that causes missing dirs to be created on the remote server. + In 7.19.4 we introduced the convenience enums for this option using the + CURLFTP_CREATE_DIR prefix. + */ + CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110), + + /* Set this to a bitmask value to enable the particular authentications + methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. + Note that setting multiple bits may cause extra network round-trips. */ + CINIT(PROXYAUTH, LONG, 111), + + /* FTP option that changes the timeout, in seconds, associated with + getting a response. This is different from transfer timeout time and + essentially places a demand on the FTP server to acknowledge commands + in a timely manner. */ + CINIT(FTP_RESPONSE_TIMEOUT, LONG, 112), +#define CURLOPT_SERVER_RESPONSE_TIMEOUT CURLOPT_FTP_RESPONSE_TIMEOUT + + /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to + tell libcurl to resolve names to those IP versions only. This only has + affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */ + CINIT(IPRESOLVE, LONG, 113), + + /* Set this option to limit the size of a file that will be downloaded from + an HTTP or FTP server. + + Note there is also _LARGE version which adds large file support for + platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ + CINIT(MAXFILESIZE, LONG, 114), + + /* See the comment for INFILESIZE above, but in short, specifies + * the size of the file being uploaded. -1 means unknown. + */ + CINIT(INFILESIZE_LARGE, OFF_T, 115), + + /* Sets the continuation offset. There is also a LONG version of this; + * look above for RESUME_FROM. + */ + CINIT(RESUME_FROM_LARGE, OFF_T, 116), + + /* Sets the maximum size of data that will be downloaded from + * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. + */ + CINIT(MAXFILESIZE_LARGE, OFF_T, 117), + + /* Set this option to the file name of your .netrc file you want libcurl + to parse (using the CURLOPT_NETRC option). If not set, libcurl will do + a poor attempt to find the user's home directory and check for a .netrc + file in there. */ + CINIT(NETRC_FILE, OBJECTPOINT, 118), + + /* Enable SSL/TLS for FTP, pick one of: + CURLUSESSL_TRY - try using SSL, proceed anyway otherwise + CURLUSESSL_CONTROL - SSL for the control connection or fail + CURLUSESSL_ALL - SSL for all communication or fail + */ + CINIT(USE_SSL, LONG, 119), + + /* The _LARGE version of the standard POSTFIELDSIZE option */ + CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120), + + /* Enable/disable the TCP Nagle algorithm */ + CINIT(TCP_NODELAY, LONG, 121), + + /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 123 OBSOLETE. Gone in 7.16.0 */ + /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ + /* 127 OBSOLETE. Gone in 7.16.0 */ + /* 128 OBSOLETE. Gone in 7.16.0 */ + + /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option + can be used to change libcurl's default action which is to first try + "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK + response has been received. + + Available parameters are: + CURLFTPAUTH_DEFAULT - let libcurl decide + CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS + CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL + */ + CINIT(FTPSSLAUTH, LONG, 129), + + CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130), + CINIT(IOCTLDATA, OBJECTPOINT, 131), + + /* 132 OBSOLETE. Gone in 7.16.0 */ + /* 133 OBSOLETE. Gone in 7.16.0 */ + + /* zero terminated string for pass on to the FTP server when asked for + "account" info */ + CINIT(FTP_ACCOUNT, OBJECTPOINT, 134), + + /* feed cookies into cookie engine */ + CINIT(COOKIELIST, OBJECTPOINT, 135), + + /* ignore Content-Length */ + CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), + + /* Set to non-zero to skip the IP address received in a 227 PASV FTP server + response. Typically used for FTP-SSL purposes but is not restricted to + that. libcurl will then instead use the same IP address it used for the + control connection. */ + CINIT(FTP_SKIP_PASV_IP, LONG, 137), + + /* Select "file method" to use when doing FTP, see the curl_ftpmethod + above. */ + CINIT(FTP_FILEMETHOD, LONG, 138), + + /* Local port number to bind the socket to */ + CINIT(LOCALPORT, LONG, 139), + + /* Number of ports to try, including the first one set with LOCALPORT. + Thus, setting it to 1 will make no additional attempts but the first. + */ + CINIT(LOCALPORTRANGE, LONG, 140), + + /* no transfer, set up connection and let application use the socket by + extracting it with CURLINFO_LASTSOCKET */ + CINIT(CONNECT_ONLY, LONG, 141), + + /* Function that will be called to convert from the + network encoding (instead of using the iconv calls in libcurl) */ + CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142), + + /* Function that will be called to convert to the + network encoding (instead of using the iconv calls in libcurl) */ + CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143), + + /* Function that will be called to convert from UTF8 + (instead of using the iconv calls in libcurl) + Note that this is used only for SSL certificate processing */ + CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144), + + /* if the connection proceeds too quickly then need to slow it down */ + /* limit-rate: maximum number of bytes per second to send or receive */ + CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145), + CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146), + + /* Pointer to command string to send if USER/PASS fails. */ + CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147), + + /* callback function for setting socket options */ + CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148), + CINIT(SOCKOPTDATA, OBJECTPOINT, 149), + + /* set to 0 to disable session ID re-use for this transfer, default is + enabled (== 1) */ + CINIT(SSL_SESSIONID_CACHE, LONG, 150), + + /* allowed SSH authentication methods */ + CINIT(SSH_AUTH_TYPES, LONG, 151), + + /* Used by scp/sftp to do public/private key authentication */ + CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152), + CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153), + + /* Send CCC (Clear Command Channel) after authentication */ + CINIT(FTP_SSL_CCC, LONG, 154), + + /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ + CINIT(TIMEOUT_MS, LONG, 155), + CINIT(CONNECTTIMEOUT_MS, LONG, 156), + + /* set to zero to disable the libcurl's decoding and thus pass the raw body + data to the application even when it is encoded/compressed */ + CINIT(HTTP_TRANSFER_DECODING, LONG, 157), + CINIT(HTTP_CONTENT_DECODING, LONG, 158), + + /* Permission used when creating new files and directories on the remote + server for protocols that support it, SFTP/SCP/FILE */ + CINIT(NEW_FILE_PERMS, LONG, 159), + CINIT(NEW_DIRECTORY_PERMS, LONG, 160), + + /* Set the behaviour of POST when redirecting. Values must be set to one + of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ + CINIT(POSTREDIR, LONG, 161), + + /* used by scp/sftp to verify the host's public key */ + CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162), + + /* Callback function for opening socket (instead of socket(2)). Optionally, + callback is able change the address or refuse to connect returning + CURL_SOCKET_BAD. The callback should have type + curl_opensocket_callback */ + CINIT(OPENSOCKETFUNCTION, FUNCTIONPOINT, 163), + CINIT(OPENSOCKETDATA, OBJECTPOINT, 164), + + /* POST volatile input fields. */ + CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165), + + /* set transfer mode (;type=) when doing FTP via an HTTP proxy */ + CINIT(PROXY_TRANSFER_MODE, LONG, 166), + + /* Callback function for seeking in the input stream */ + CINIT(SEEKFUNCTION, FUNCTIONPOINT, 167), + CINIT(SEEKDATA, OBJECTPOINT, 168), + + /* CRL file */ + CINIT(CRLFILE, OBJECTPOINT, 169), + + /* Issuer certificate */ + CINIT(ISSUERCERT, OBJECTPOINT, 170), + + /* (IPv6) Address scope */ + CINIT(ADDRESS_SCOPE, LONG, 171), + + /* Collect certificate chain info and allow it to get retrievable with + CURLINFO_CERTINFO after the transfer is complete. (Unfortunately) only + working with OpenSSL-powered builds. */ + CINIT(CERTINFO, LONG, 172), + + /* "name" and "pwd" to use when fetching. */ + CINIT(USERNAME, OBJECTPOINT, 173), + CINIT(PASSWORD, OBJECTPOINT, 174), + + /* "name" and "pwd" to use with Proxy when fetching. */ + CINIT(PROXYUSERNAME, OBJECTPOINT, 175), + CINIT(PROXYPASSWORD, OBJECTPOINT, 176), + + /* Comma separated list of hostnames defining no-proxy zones. These should + match both hostnames directly, and hostnames within a domain. For + example, local.com will match local.com and www.local.com, but NOT + notlocal.com or www.notlocal.com. For compatibility with other + implementations of this, .local.com will be considered to be the same as + local.com. A single * is the only valid wildcard, and effectively + disables the use of proxy. */ + CINIT(NOPROXY, OBJECTPOINT, 177), + + /* block size for TFTP transfers */ + CINIT(TFTP_BLKSIZE, LONG, 178), + + /* Socks Service */ + CINIT(SOCKS5_GSSAPI_SERVICE, OBJECTPOINT, 179), + + /* Socks Service */ + CINIT(SOCKS5_GSSAPI_NEC, LONG, 180), + + /* set the bitmask for the protocols that are allowed to be used for the + transfer, which thus helps the app which takes URLs from users or other + external inputs and want to restrict what protocol(s) to deal + with. Defaults to CURLPROTO_ALL. */ + CINIT(PROTOCOLS, LONG, 181), + + /* set the bitmask for the protocols that libcurl is allowed to follow to, + as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs + to be set in both bitmasks to be allowed to get redirected to. Defaults + to all protocols except FILE and SCP. */ + CINIT(REDIR_PROTOCOLS, LONG, 182), + + /* set the SSH knownhost file name to use */ + CINIT(SSH_KNOWNHOSTS, OBJECTPOINT, 183), + + /* set the SSH host key callback, must point to a curl_sshkeycallback + function */ + CINIT(SSH_KEYFUNCTION, FUNCTIONPOINT, 184), + + /* set the SSH host key callback custom pointer */ + CINIT(SSH_KEYDATA, OBJECTPOINT, 185), + + /* set the SMTP mail originator */ + CINIT(MAIL_FROM, OBJECTPOINT, 186), + + /* set the SMTP mail receiver(s) */ + CINIT(MAIL_RCPT, OBJECTPOINT, 187), + + /* FTP: send PRET before PASV */ + CINIT(FTP_USE_PRET, LONG, 188), + + /* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */ + CINIT(RTSP_REQUEST, LONG, 189), + + /* The RTSP session identifier */ + CINIT(RTSP_SESSION_ID, OBJECTPOINT, 190), + + /* The RTSP stream URI */ + CINIT(RTSP_STREAM_URI, OBJECTPOINT, 191), + + /* The Transport: header to use in RTSP requests */ + CINIT(RTSP_TRANSPORT, OBJECTPOINT, 192), + + /* Manually initialize the client RTSP CSeq for this handle */ + CINIT(RTSP_CLIENT_CSEQ, LONG, 193), + + /* Manually initialize the server RTSP CSeq for this handle */ + CINIT(RTSP_SERVER_CSEQ, LONG, 194), + + /* The stream to pass to INTERLEAVEFUNCTION. */ + CINIT(INTERLEAVEDATA, OBJECTPOINT, 195), + + /* Let the application define a custom write method for RTP data */ + CINIT(INTERLEAVEFUNCTION, FUNCTIONPOINT, 196), + + /* Turn on wildcard matching */ + CINIT(WILDCARDMATCH, LONG, 197), + + /* Directory matching callback called before downloading of an + individual file (chunk) started */ + CINIT(CHUNK_BGN_FUNCTION, FUNCTIONPOINT, 198), + + /* Directory matching callback called after the file (chunk) + was downloaded, or skipped */ + CINIT(CHUNK_END_FUNCTION, FUNCTIONPOINT, 199), + + /* Change match (fnmatch-like) callback for wildcard matching */ + CINIT(FNMATCH_FUNCTION, FUNCTIONPOINT, 200), + + /* Let the application define custom chunk data pointer */ + CINIT(CHUNK_DATA, OBJECTPOINT, 201), + + /* FNMATCH_FUNCTION user pointer */ + CINIT(FNMATCH_DATA, OBJECTPOINT, 202), + + /* send linked-list of name:port:address sets */ + CINIT(RESOLVE, OBJECTPOINT, 203), + + /* Set a username for authenticated TLS */ + CINIT(TLSAUTH_USERNAME, OBJECTPOINT, 204), + + /* Set a password for authenticated TLS */ + CINIT(TLSAUTH_PASSWORD, OBJECTPOINT, 205), + + /* Set authentication type for authenticated TLS */ + CINIT(TLSAUTH_TYPE, OBJECTPOINT, 206), + + /* Set to 1 to enable the "TE:" header in HTTP requests to ask for + compressed transfer-encoded responses. Set to 0 to disable the use of TE: + in outgoing requests. The current default is 0, but it might change in a + future libcurl release. + + libcurl will ask for the compressed methods it knows of, and if that + isn't any, it will not ask for transfer-encoding at all even if this + option is set to 1. + + */ + CINIT(TRANSFER_ENCODING, LONG, 207), + + /* Callback function for closing socket (instead of close(2)). The callback + should have type curl_closesocket_callback */ + CINIT(CLOSESOCKETFUNCTION, FUNCTIONPOINT, 208), + CINIT(CLOSESOCKETDATA, OBJECTPOINT, 209), + + /* allow GSSAPI credential delegation */ + CINIT(GSSAPI_DELEGATION, LONG, 210), + + /* Set the name servers to use for DNS resolution */ + CINIT(DNS_SERVERS, OBJECTPOINT, 211), + + /* Time-out accept operations (currently for FTP only) after this amount + of miliseconds. */ + CINIT(ACCEPTTIMEOUT_MS, LONG, 212), + + /* Set TCP keepalive */ + CINIT(TCP_KEEPALIVE, LONG, 213), + + /* non-universal keepalive knobs (Linux, AIX, HP-UX, more) */ + CINIT(TCP_KEEPIDLE, LONG, 214), + CINIT(TCP_KEEPINTVL, LONG, 215), + + /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */ + CINIT(SSL_OPTIONS, LONG, 216), + + /* Set the SMTP auth originator */ + CINIT(MAIL_AUTH, OBJECTPOINT, 217), + + /* Enable/disable SASL initial response */ + CINIT(SASL_IR, LONG, 218), + + /* Function that will be called instead of the internal progress display + * function. This function should be defined as the curl_xferinfo_callback + * prototype defines. (Deprecates CURLOPT_PROGRESSFUNCTION) */ + CINIT(XFERINFOFUNCTION, FUNCTIONPOINT, 219), + + CURLOPT_LASTENTRY /* the last unused */ +} CURLoption; + +#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all + the obsolete stuff removed! */ + +/* Backwards compatibility with older names */ +/* These are scheduled to disappear by 2011 */ + +/* This was added in version 7.19.1 */ +#define CURLOPT_POST301 CURLOPT_POSTREDIR + +/* These are scheduled to disappear by 2009 */ + +/* The following were added in 7.17.0 */ +#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD +#define CURLOPT_FTPAPPEND CURLOPT_APPEND +#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY +#define CURLOPT_FTP_SSL CURLOPT_USE_SSL + +/* The following were added earlier */ + +#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD +#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL + +#else +/* This is set if CURL_NO_OLDIES is defined at compile-time */ +#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ +#endif + + + /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host + name resolves addresses using more than one IP protocol version, this + option might be handy to force libcurl to use a specific IP version. */ +#define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP + versions that your system allows */ +#define CURL_IPRESOLVE_V4 1 /* resolve to ipv4 addresses */ +#define CURL_IPRESOLVE_V6 2 /* resolve to ipv6 addresses */ + + /* three convenient "aliases" that follow the name scheme better */ +#define CURLOPT_WRITEDATA CURLOPT_FILE +#define CURLOPT_READDATA CURLOPT_INFILE +#define CURLOPT_HEADERDATA CURLOPT_WRITEHEADER +#define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER + + /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ +enum { + CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd + like the library to choose the best possible + for us! */ + CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ + CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ + + CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ +}; + +/* + * Public API enums for RTSP requests + */ +enum { + CURL_RTSPREQ_NONE, /* first in list */ + CURL_RTSPREQ_OPTIONS, + CURL_RTSPREQ_DESCRIBE, + CURL_RTSPREQ_ANNOUNCE, + CURL_RTSPREQ_SETUP, + CURL_RTSPREQ_PLAY, + CURL_RTSPREQ_PAUSE, + CURL_RTSPREQ_TEARDOWN, + CURL_RTSPREQ_GET_PARAMETER, + CURL_RTSPREQ_SET_PARAMETER, + CURL_RTSPREQ_RECORD, + CURL_RTSPREQ_RECEIVE, + CURL_RTSPREQ_LAST /* last in list */ +}; + + /* These enums are for use with the CURLOPT_NETRC option. */ +enum CURL_NETRC_OPTION { + CURL_NETRC_IGNORED, /* The .netrc will never be read. + * This is the default. */ + CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred + * to one in the .netrc. */ + CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. + * Unless one is set programmatically, the .netrc + * will be queried. */ + CURL_NETRC_LAST +}; + +enum { + CURL_SSLVERSION_DEFAULT, + CURL_SSLVERSION_TLSv1, + CURL_SSLVERSION_SSLv2, + CURL_SSLVERSION_SSLv3, + + CURL_SSLVERSION_LAST /* never use, keep last */ +}; + +enum CURL_TLSAUTH { + CURL_TLSAUTH_NONE, + CURL_TLSAUTH_SRP, + CURL_TLSAUTH_LAST /* never use, keep last */ +}; + +/* symbols to use with CURLOPT_POSTREDIR. + CURL_REDIR_POST_301, CURL_REDIR_POST_302 and CURL_REDIR_POST_303 + can be bitwise ORed so that CURL_REDIR_POST_301 | CURL_REDIR_POST_302 + | CURL_REDIR_POST_303 == CURL_REDIR_POST_ALL */ + +#define CURL_REDIR_GET_ALL 0 +#define CURL_REDIR_POST_301 1 +#define CURL_REDIR_POST_302 2 +#define CURL_REDIR_POST_303 4 +#define CURL_REDIR_POST_ALL \ + (CURL_REDIR_POST_301|CURL_REDIR_POST_302|CURL_REDIR_POST_303) + +typedef enum { + CURL_TIMECOND_NONE, + + CURL_TIMECOND_IFMODSINCE, + CURL_TIMECOND_IFUNMODSINCE, + CURL_TIMECOND_LASTMOD, + + CURL_TIMECOND_LAST +} curl_TimeCond; + + +/* curl_strequal() and curl_strnequal() are subject for removal in a future + libcurl, see lib/README.curlx for details */ +CURL_EXTERN int (curl_strequal)(const char *s1, const char *s2); +CURL_EXTERN int (curl_strnequal)(const char *s1, const char *s2, size_t n); + +/* name is uppercase CURLFORM_ */ +#ifdef CFINIT +#undef CFINIT +#endif + +#ifdef CURL_ISOCPP +#define CFINIT(name) CURLFORM_ ## name +#else +/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ +#define CFINIT(name) CURLFORM_/**/name +#endif + +typedef enum { + CFINIT(NOTHING), /********* the first one is unused ************/ + + /* */ + CFINIT(COPYNAME), + CFINIT(PTRNAME), + CFINIT(NAMELENGTH), + CFINIT(COPYCONTENTS), + CFINIT(PTRCONTENTS), + CFINIT(CONTENTSLENGTH), + CFINIT(FILECONTENT), + CFINIT(ARRAY), + CFINIT(OBSOLETE), + CFINIT(FILE), + + CFINIT(BUFFER), + CFINIT(BUFFERPTR), + CFINIT(BUFFERLENGTH), + + CFINIT(CONTENTTYPE), + CFINIT(CONTENTHEADER), + CFINIT(FILENAME), + CFINIT(END), + CFINIT(OBSOLETE2), + + CFINIT(STREAM), + + CURLFORM_LASTENTRY /* the last unused */ +} CURLformoption; + +#undef CFINIT /* done */ + +/* structure to be used as parameter for CURLFORM_ARRAY */ +struct curl_forms { + CURLformoption option; + const char *value; +}; + +/* use this for multipart formpost building */ +/* Returns code for curl_formadd() + * + * Returns: + * CURL_FORMADD_OK on success + * CURL_FORMADD_MEMORY if the FormInfo allocation fails + * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form + * CURL_FORMADD_NULL if a null pointer was given for a char + * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed + * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used + * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) + * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated + * CURL_FORMADD_MEMORY if some allocation for string copying failed. + * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array + * + ***************************************************************************/ +typedef enum { + CURL_FORMADD_OK, /* first, no error */ + + CURL_FORMADD_MEMORY, + CURL_FORMADD_OPTION_TWICE, + CURL_FORMADD_NULL, + CURL_FORMADD_UNKNOWN_OPTION, + CURL_FORMADD_INCOMPLETE, + CURL_FORMADD_ILLEGAL_ARRAY, + CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ + + CURL_FORMADD_LAST /* last */ +} CURLFORMcode; + +/* + * NAME curl_formadd() + * + * DESCRIPTION + * + * Pretty advanced function for building multi-part formposts. Each invoke + * adds one part that together construct a full post. Then use + * CURLOPT_HTTPPOST to send it off to libcurl. + */ +CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, + struct curl_httppost **last_post, + ...); + +/* + * callback function for curl_formget() + * The void *arg pointer will be the one passed as second argument to + * curl_formget(). + * The character buffer passed to it must not be freed. + * Should return the buffer length passed to it as the argument "len" on + * success. + */ +typedef size_t (*curl_formget_callback)(void *arg, const char *buf, + size_t len); + +/* + * NAME curl_formget() + * + * DESCRIPTION + * + * Serialize a curl_httppost struct built with curl_formadd(). + * Accepts a void pointer as second argument which will be passed to + * the curl_formget_callback function. + * Returns 0 on success. + */ +CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, + curl_formget_callback append); +/* + * NAME curl_formfree() + * + * DESCRIPTION + * + * Free a multipart formpost previously built with curl_formadd(). + */ +CURL_EXTERN void curl_formfree(struct curl_httppost *form); + +/* + * NAME curl_getenv() + * + * DESCRIPTION + * + * Returns a malloc()'ed string that MUST be curl_free()ed after usage is + * complete. DEPRECATED - see lib/README.curlx + */ +CURL_EXTERN char *curl_getenv(const char *variable); + +/* + * NAME curl_version() + * + * DESCRIPTION + * + * Returns a static ascii string of the libcurl version. + */ +CURL_EXTERN char *curl_version(void); + +/* + * NAME curl_easy_escape() + * + * DESCRIPTION + * + * Escapes URL strings (converts all letters consider illegal in URLs to their + * %XX versions). This function returns a new allocated string or NULL if an + * error occurred. + */ +CURL_EXTERN char *curl_easy_escape(CURL *handle, + const char *string, + int length); + +/* the previous version: */ +CURL_EXTERN char *curl_escape(const char *string, + int length); + + +/* + * NAME curl_easy_unescape() + * + * DESCRIPTION + * + * Unescapes URL encoding in strings (converts all %XX codes to their 8bit + * versions). This function returns a new allocated string or NULL if an error + * occurred. + * Conversion Note: On non-ASCII platforms the ASCII %XX codes are + * converted into the host encoding. + */ +CURL_EXTERN char *curl_easy_unescape(CURL *handle, + const char *string, + int length, + int *outlength); + +/* the previous version */ +CURL_EXTERN char *curl_unescape(const char *string, + int length); + +/* + * NAME curl_free() + * + * DESCRIPTION + * + * Provided for de-allocation in the same translation unit that did the + * allocation. Added in libcurl 7.10 + */ +CURL_EXTERN void curl_free(void *p); + +/* + * NAME curl_global_init() + * + * DESCRIPTION + * + * curl_global_init() should be invoked exactly once for each application that + * uses libcurl and before any call of other libcurl functions. + * + * This function is not thread-safe! + */ +CURL_EXTERN CURLcode curl_global_init(long flags); + +/* + * NAME curl_global_init_mem() + * + * DESCRIPTION + * + * curl_global_init() or curl_global_init_mem() should be invoked exactly once + * for each application that uses libcurl. This function can be used to + * initialize libcurl and set user defined memory management callback + * functions. Users can implement memory management routines to check for + * memory leaks, check for mis-use of the curl library etc. User registered + * callback routines with be invoked by this library instead of the system + * memory management routines like malloc, free etc. + */ +CURL_EXTERN CURLcode curl_global_init_mem(long flags, + curl_malloc_callback m, + curl_free_callback f, + curl_realloc_callback r, + curl_strdup_callback s, + curl_calloc_callback c); + +/* + * NAME curl_global_cleanup() + * + * DESCRIPTION + * + * curl_global_cleanup() should be invoked exactly once for each application + * that uses libcurl + */ +CURL_EXTERN void curl_global_cleanup(void); + +/* linked-list structure for the CURLOPT_QUOTE option (and other) */ +struct curl_slist { + char *data; + struct curl_slist *next; +}; + +/* + * NAME curl_slist_append() + * + * DESCRIPTION + * + * Appends a string to a linked list. If no list exists, it will be created + * first. Returns the new list, after appending. + */ +CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *, + const char *); + +/* + * NAME curl_slist_free_all() + * + * DESCRIPTION + * + * free a previously built curl_slist. + */ +CURL_EXTERN void curl_slist_free_all(struct curl_slist *); + +/* + * NAME curl_getdate() + * + * DESCRIPTION + * + * Returns the time, in seconds since 1 Jan 1970 of the time string given in + * the first argument. The time argument in the second parameter is unused + * and should be set to NULL. + */ +CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); + +/* info about the certificate chain, only for OpenSSL builds. Asked + for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */ +struct curl_certinfo { + int num_of_certs; /* number of certificates with information */ + struct curl_slist **certinfo; /* for each index in this array, there's a + linked list with textual information in the + format "name: value" */ +}; + +#define CURLINFO_STRING 0x100000 +#define CURLINFO_LONG 0x200000 +#define CURLINFO_DOUBLE 0x300000 +#define CURLINFO_SLIST 0x400000 +#define CURLINFO_MASK 0x0fffff +#define CURLINFO_TYPEMASK 0xf00000 + +typedef enum { + CURLINFO_NONE, /* first, never use this */ + CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, + CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, + CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, + CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, + CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, + CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, + CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, + CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, + CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, + CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, + CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, + CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, + CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, + CURLINFO_FILETIME = CURLINFO_LONG + 14, + CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, + CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, + CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, + CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, + CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, + CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, + CURLINFO_PRIVATE = CURLINFO_STRING + 21, + CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, + CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, + CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, + CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, + CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, + CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, + CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, + CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, + CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, + CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, + CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, + CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, + CURLINFO_CERTINFO = CURLINFO_SLIST + 34, + CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, + CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36, + CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37, + CURLINFO_RTSP_SERVER_CSEQ = CURLINFO_LONG + 38, + CURLINFO_RTSP_CSEQ_RECV = CURLINFO_LONG + 39, + CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, + CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, + CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, + /* Fill in new entries below here! */ + + CURLINFO_LASTONE = 42 +} CURLINFO; + +/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as + CURLINFO_HTTP_CODE */ +#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE + +typedef enum { + CURLCLOSEPOLICY_NONE, /* first, never use this */ + + CURLCLOSEPOLICY_OLDEST, + CURLCLOSEPOLICY_LEAST_RECENTLY_USED, + CURLCLOSEPOLICY_LEAST_TRAFFIC, + CURLCLOSEPOLICY_SLOWEST, + CURLCLOSEPOLICY_CALLBACK, + + CURLCLOSEPOLICY_LAST /* last, never use this */ +} curl_closepolicy; + +#define CURL_GLOBAL_SSL (1<<0) +#define CURL_GLOBAL_WIN32 (1<<1) +#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) +#define CURL_GLOBAL_NOTHING 0 +#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL +#define CURL_GLOBAL_ACK_EINTR (1<<2) + + +/***************************************************************************** + * Setup defines, protos etc for the sharing stuff. + */ + +/* Different data locks for a single share */ +typedef enum { + CURL_LOCK_DATA_NONE = 0, + /* CURL_LOCK_DATA_SHARE is used internally to say that + * the locking is just made to change the internal state of the share + * itself. + */ + CURL_LOCK_DATA_SHARE, + CURL_LOCK_DATA_COOKIE, + CURL_LOCK_DATA_DNS, + CURL_LOCK_DATA_SSL_SESSION, + CURL_LOCK_DATA_CONNECT, + CURL_LOCK_DATA_LAST +} curl_lock_data; + +/* Different lock access types */ +typedef enum { + CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ + CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ + CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ + CURL_LOCK_ACCESS_LAST /* never use */ +} curl_lock_access; + +typedef void (*curl_lock_function)(CURL *handle, + curl_lock_data data, + curl_lock_access locktype, + void *userptr); +typedef void (*curl_unlock_function)(CURL *handle, + curl_lock_data data, + void *userptr); + +typedef void CURLSH; + +typedef enum { + CURLSHE_OK, /* all is fine */ + CURLSHE_BAD_OPTION, /* 1 */ + CURLSHE_IN_USE, /* 2 */ + CURLSHE_INVALID, /* 3 */ + CURLSHE_NOMEM, /* 4 out of memory */ + CURLSHE_NOT_BUILT_IN, /* 5 feature not present in lib */ + CURLSHE_LAST /* never use */ +} CURLSHcode; + +typedef enum { + CURLSHOPT_NONE, /* don't use */ + CURLSHOPT_SHARE, /* specify a data type to share */ + CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */ + CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ + CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ + CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock + callback functions */ + CURLSHOPT_LAST /* never use */ +} CURLSHoption; + +CURL_EXTERN CURLSH *curl_share_init(void); +CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...); +CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *); + +/**************************************************************************** + * Structures for querying information about the curl library at runtime. + */ + +typedef enum { + CURLVERSION_FIRST, + CURLVERSION_SECOND, + CURLVERSION_THIRD, + CURLVERSION_FOURTH, + CURLVERSION_LAST /* never actually use this */ +} CURLversion; + +/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by + basically all programs ever that want to get version information. It is + meant to be a built-in version number for what kind of struct the caller + expects. If the struct ever changes, we redefine the NOW to another enum + from above. */ +#define CURLVERSION_NOW CURLVERSION_FOURTH + +typedef struct { + CURLversion age; /* age of the returned struct */ + const char *version; /* LIBCURL_VERSION */ + unsigned int version_num; /* LIBCURL_VERSION_NUM */ + const char *host; /* OS/host/cpu/machine when configured */ + int features; /* bitmask, see defines below */ + const char *ssl_version; /* human readable string */ + long ssl_version_num; /* not used anymore, always 0 */ + const char *libz_version; /* human readable string */ + /* protocols is terminated by an entry with a NULL protoname */ + const char * const *protocols; + + /* The fields below this were added in CURLVERSION_SECOND */ + const char *ares; + int ares_num; + + /* This field was added in CURLVERSION_THIRD */ + const char *libidn; + + /* These field were added in CURLVERSION_FOURTH */ + + /* Same as '_libiconv_version' if built with HAVE_ICONV */ + int iconv_ver_num; + + const char *libssh_version; /* human readable string */ + +} curl_version_info_data; + +#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ +#define CURL_VERSION_KERBEROS4 (1<<1) /* kerberos auth is supported */ +#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ +#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ +#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ +#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth support */ +#define CURL_VERSION_DEBUG (1<<6) /* built with debug capabilities */ +#define CURL_VERSION_ASYNCHDNS (1<<7) /* asynchronous dns resolves */ +#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth */ +#define CURL_VERSION_LARGEFILE (1<<9) /* supports files bigger than 2GB */ +#define CURL_VERSION_IDN (1<<10) /* International Domain Names support */ +#define CURL_VERSION_SSPI (1<<11) /* SSPI is supported */ +#define CURL_VERSION_CONV (1<<12) /* character conversions supported */ +#define CURL_VERSION_CURLDEBUG (1<<13) /* debug memory tracking supported */ +#define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */ +#define CURL_VERSION_NTLM_WB (1<<15) /* NTLM delegating to winbind helper */ + + /* + * NAME curl_version_info() + * + * DESCRIPTION + * + * This function returns a pointer to a static copy of the version info + * struct. See above. + */ +CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); + +/* + * NAME curl_easy_strerror() + * + * DESCRIPTION + * + * The curl_easy_strerror function may be used to turn a CURLcode value + * into the equivalent human readable error string. This is useful + * for printing meaningful error messages. + */ +CURL_EXTERN const char *curl_easy_strerror(CURLcode); + +/* + * NAME curl_share_strerror() + * + * DESCRIPTION + * + * The curl_share_strerror function may be used to turn a CURLSHcode value + * into the equivalent human readable error string. This is useful + * for printing meaningful error messages. + */ +CURL_EXTERN const char *curl_share_strerror(CURLSHcode); + +/* + * NAME curl_easy_pause() + * + * DESCRIPTION + * + * The curl_easy_pause function pauses or unpauses transfers. Select the new + * state by setting the bitmask, use the convenience defines below. + * + */ +CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); + +#define CURLPAUSE_RECV (1<<0) +#define CURLPAUSE_RECV_CONT (0) + +#define CURLPAUSE_SEND (1<<2) +#define CURLPAUSE_SEND_CONT (0) + +#define CURLPAUSE_ALL (CURLPAUSE_RECV|CURLPAUSE_SEND) +#define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT) + +#ifdef __cplusplus +} +#endif + +/* unfortunately, the easy.h and multi.h include files need options and info + stuff before they can be included! */ +#include "easy.h" /* nothing in curl is fun without the easy stuff */ +#include "multi.h" + +/* the typechecker doesn't work in C++ (yet) */ +#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ + ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ + !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK) +#include "typecheck-gcc.h" +#else +#if defined(__STDC__) && (__STDC__ >= 1) +/* This preprocessor magic that replaces a call with the exact same call is + only done to make sure application authors pass exactly three arguments + to these functions. */ +#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) +#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg) +#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) +#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) +#endif /* __STDC__ >= 1 */ +#endif /* gcc >= 4.3 && !__cplusplus */ + +#endif /* __CURL_CURL_H */ diff --git a/cad2pdf/crul/include/curl/curlbuild.h b/cad2pdf/crul/include/curl/curlbuild.h new file mode 100644 index 0000000..3ad2f01 --- /dev/null +++ b/cad2pdf/crul/include/curl/curlbuild.h @@ -0,0 +1,585 @@ +#ifndef __CURL_CURLBUILD_H +#define __CURL_CURLBUILD_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +/* ================================================================ */ +/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ +/* ================================================================ */ + +/* + * NOTE 1: + * ------- + * + * See file include/curl/curlbuild.h.in, run configure, and forget + * that this file exists it is only used for non-configure systems. + * But you can keep reading if you want ;-) + * + */ + +/* ================================================================ */ +/* NOTES FOR NON-CONFIGURE SYSTEMS */ +/* ================================================================ */ + +/* + * NOTE 1: + * ------- + * + * Nothing in this file is intended to be modified or adjusted by the + * curl library user nor by the curl library builder. + * + * If you think that something actually needs to be changed, adjusted + * or fixed in this file, then, report it on the libcurl development + * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ + * + * Try to keep one section per platform, compiler and architecture, + * otherwise, if an existing section is reused for a different one and + * later on the original is adjusted, probably the piggybacking one can + * be adversely changed. + * + * In order to differentiate between platforms/compilers/architectures + * use only compiler built in predefined preprocessor symbols. + * + * This header file shall only export symbols which are 'curl' or 'CURL' + * prefixed, otherwise public name space would be polluted. + * + * NOTE 2: + * ------- + * + * For any given platform/compiler curl_off_t must be typedef'ed to a + * 64-bit wide signed integral data type. The width of this data type + * must remain constant and independent of any possible large file + * support settings. + * + * As an exception to the above, curl_off_t shall be typedef'ed to a + * 32-bit wide signed integral data type if there is no 64-bit type. + * + * As a general rule, curl_off_t shall not be mapped to off_t. This + * rule shall only be violated if off_t is the only 64-bit data type + * available and the size of off_t is independent of large file support + * settings. Keep your build on the safe side avoiding an off_t gating. + * If you have a 64-bit off_t then take for sure that another 64-bit + * data type exists, dig deeper and you will find it. + * + * NOTE 3: + * ------- + * + * Right now you might be staring at file include/curl/curlbuild.h.dist or + * at file include/curl/curlbuild.h, this is due to the following reason: + * file include/curl/curlbuild.h.dist is renamed to include/curl/curlbuild.h + * when the libcurl source code distribution archive file is created. + * + * File include/curl/curlbuild.h.dist is not included in the distribution + * archive. File include/curl/curlbuild.h is not present in the git tree. + * + * The distributed include/curl/curlbuild.h file is only intended to be used + * on systems which can not run the also distributed configure script. + * + * On systems capable of running the configure script, the configure process + * will overwrite the distributed include/curl/curlbuild.h file with one that + * is suitable and specific to the library being configured and built, which + * is generated from the include/curl/curlbuild.h.in template file. + * + * If you check out from git on a non-configure platform, you must run the + * appropriate buildconf* script to set up curlbuild.h and other local files. + * + */ + +/* ================================================================ */ +/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ +/* ================================================================ */ + +#ifdef CURL_SIZEOF_LONG +# error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined +#endif + +#ifdef CURL_TYPEOF_CURL_SOCKLEN_T +# error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined +#endif + +#ifdef CURL_SIZEOF_CURL_SOCKLEN_T +# error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined +#endif + +#ifdef CURL_TYPEOF_CURL_OFF_T +# error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_FORMAT_CURL_OFF_T +# error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_FORMAT_CURL_OFF_TU +# error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined +#endif + +#ifdef CURL_FORMAT_OFF_T +# error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined +#endif + +#ifdef CURL_SIZEOF_CURL_OFF_T +# error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_SUFFIX_CURL_OFF_T +# error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_SUFFIX_CURL_OFF_TU +# error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined +#endif + +/* ================================================================ */ +/* EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY */ +/* ================================================================ */ + +#if defined(__DJGPP__) || defined(__GO32__) +# if defined(__DJGPP__) && (__DJGPP__ > 1) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# else +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__SALFORDC__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__BORLANDC__) +# if (__BORLANDC__ < 0x520) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_FORMAT_OFF_T "%I64d" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__TURBOC__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__WATCOMC__) +# if defined(__386__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_FORMAT_OFF_T "%I64d" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# else +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__POCC__) +# if (__POCC__ < 280) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# elif defined(_MSC_VER) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_FORMAT_OFF_T "%I64d" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# else +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__LCC__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__SYMBIAN32__) +# if defined(__EABI__) /* Treat all ARM compilers equally */ +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__CW32__) +# pragma longlong on +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__VC32__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__MWERKS__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(_WIN32_WCE) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_FORMAT_OFF_T "%I64d" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__MINGW32__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_FORMAT_OFF_T "%I64d" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__VMS) +# if defined(__VAX) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__OS400__) +# if defined(__ILEC400__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 +# endif + +#elif defined(__MVS__) +# if defined(__IBMC__) || defined(__IBMCPP__) +# if defined(_ILP32) +# define CURL_SIZEOF_LONG 4 +# elif defined(_LP64) +# define CURL_SIZEOF_LONG 8 +# endif +# if defined(_LONG_LONG) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(_LP64) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 +# endif + +#elif defined(__370__) +# if defined(__IBMC__) || defined(__IBMCPP__) +# if defined(_ILP32) +# define CURL_SIZEOF_LONG 4 +# elif defined(_LP64) +# define CURL_SIZEOF_LONG 8 +# endif +# if defined(_LONG_LONG) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(_LP64) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 +# endif + +#elif defined(TPF) +# define CURL_SIZEOF_LONG 8 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +/* ===================================== */ +/* KEEP MSVC THE PENULTIMATE ENTRY */ +/* ===================================== */ + +#elif defined(_MSC_VER) +# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T __int64 +# define CURL_FORMAT_CURL_OFF_T "I64d" +# define CURL_FORMAT_CURL_OFF_TU "I64u" +# define CURL_FORMAT_OFF_T "%I64d" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T i64 +# define CURL_SUFFIX_CURL_OFF_TU ui64 +# else +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 4 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T int +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +/* ===================================== */ +/* KEEP GENERIC GCC THE LAST ENTRY */ +/* ===================================== */ + +#elif defined(__GNUC__) +# if defined(__ILP32__) || \ + defined(__i386__) || defined(__ppc__) || defined(__arm__) +# define CURL_SIZEOF_LONG 4 +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_FORMAT_OFF_T "%lld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__LP64__) || \ + defined(__x86_64__) || defined(__ppc64__) +# define CURL_SIZEOF_LONG 8 +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_FORMAT_OFF_T "%ld" +# define CURL_SIZEOF_CURL_OFF_T 8 +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_SIZEOF_CURL_SOCKLEN_T 4 +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + +#else +# error "Unknown non-configure build target!" + Error Compilation_aborted_Unknown_non_configure_build_target +#endif + +/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */ +/* sys/types.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_SYS_TYPES_H +# include +#endif + +/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ +/* sys/socket.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_SYS_SOCKET_H +# include +#endif + +/* Data type definition of curl_socklen_t. */ + +#ifdef CURL_TYPEOF_CURL_SOCKLEN_T + typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; +#endif + +/* Data type definition of curl_off_t. */ + +#ifdef CURL_TYPEOF_CURL_OFF_T + typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; +#endif + +#endif /* __CURL_CURLBUILD_H */ diff --git a/cad2pdf/crul/include/curl/curlbuild.h.cmake b/cad2pdf/crul/include/curl/curlbuild.h.cmake new file mode 100644 index 0000000..3aa772f --- /dev/null +++ b/cad2pdf/crul/include/curl/curlbuild.h.cmake @@ -0,0 +1,180 @@ +#ifndef __CURL_CURLBUILD_H +#define __CURL_CURLBUILD_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +/* ================================================================ */ +/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ +/* ================================================================ */ + +/* + * NOTE 1: + * ------- + * + * Nothing in this file is intended to be modified or adjusted by the + * curl library user nor by the curl library builder. + * + * If you think that something actually needs to be changed, adjusted + * or fixed in this file, then, report it on the libcurl development + * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ + * + * This header file shall only export symbols which are 'curl' or 'CURL' + * prefixed, otherwise public name space would be polluted. + * + * NOTE 2: + * ------- + * + * Right now you might be staring at file include/curl/curlbuild.h.in or + * at file include/curl/curlbuild.h, this is due to the following reason: + * + * On systems capable of running the configure script, the configure process + * will overwrite the distributed include/curl/curlbuild.h file with one that + * is suitable and specific to the library being configured and built, which + * is generated from the include/curl/curlbuild.h.in template file. + * + */ + +/* ================================================================ */ +/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ +/* ================================================================ */ + +#ifdef CURL_SIZEOF_LONG +# error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined +#endif + +#ifdef CURL_TYPEOF_CURL_SOCKLEN_T +# error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined +#endif + +#ifdef CURL_SIZEOF_CURL_SOCKLEN_T +# error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined +#endif +#ifdef CURL_TYPEOF_CURL_OFF_T +# error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_FORMAT_CURL_OFF_T +# error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_FORMAT_CURL_OFF_TU +# error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined +#endif + +#ifdef CURL_FORMAT_OFF_T +# error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined +#endif + +#ifdef CURL_SIZEOF_CURL_OFF_T +# error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_SUFFIX_CURL_OFF_T +# error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_SUFFIX_CURL_OFF_TU +# error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined +#endif + +/* ================================================================ */ +/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ +/* ================================================================ */ + +/* Configure process defines this to 1 when it finds out that system */ +/* header file sys/types.h must be included by the external interface. */ +#cmakedefine CURL_PULL_SYS_TYPES_H ${CURL_PULL_SYS_TYPES_H} +#ifdef CURL_PULL_SYS_TYPES_H +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file stdint.h must be included by the external interface. */ +#cmakedefine CURL_PULL_STDINT_H ${CURL_PULL_STDINT_H} +#ifdef CURL_PULL_STDINT_H +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file inttypes.h must be included by the external interface. */ +#cmakedefine CURL_PULL_INTTYPES_H ${CURL_PULL_INTTYPES_H} +#ifdef CURL_PULL_INTTYPES_H +# include +#endif + +/* The size of `long', as computed by sizeof. */ +#cmakedefine CURL_SIZEOF_LONG ${CURL_SIZEOF_LONG} + +/* Integral data type used for curl_socklen_t. */ +#cmakedefine CURL_TYPEOF_CURL_SOCKLEN_T ${CURL_TYPEOF_CURL_SOCKLEN_T} + +/* on windows socklen_t is in here */ +#ifdef _WIN32 +# include +# include +#endif + +#ifdef HAVE_SYS_SOCKET_H +# include +#endif + +/* Data type definition of curl_socklen_t. */ +typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; + +/* The size of `curl_socklen_t', as computed by sizeof. */ +#cmakedefine CURL_SIZEOF_CURL_SOCKLEN_T ${CURL_SIZEOF_CURL_SOCKLEN_T} + +/* Signed integral data type used for curl_off_t. */ +#cmakedefine CURL_TYPEOF_CURL_OFF_T ${CURL_TYPEOF_CURL_OFF_T} + +/* Data type definition of curl_off_t. */ +typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; + +/* curl_off_t formatting string directive without "%" conversion specifier. */ +#cmakedefine CURL_FORMAT_CURL_OFF_T "${CURL_FORMAT_CURL_OFF_T}" + +/* unsigned curl_off_t formatting string without "%" conversion specifier. */ +#cmakedefine CURL_FORMAT_CURL_OFF_TU "${CURL_FORMAT_CURL_OFF_TU}" + +/* curl_off_t formatting string directive with "%" conversion specifier. */ +#cmakedefine CURL_FORMAT_OFF_T "${CURL_FORMAT_OFF_T}" + +/* The size of `curl_off_t', as computed by sizeof. */ +#cmakedefine CURL_SIZEOF_CURL_OFF_T ${CURL_SIZEOF_CURL_OFF_T} + +/* curl_off_t constant suffix. */ +#cmakedefine CURL_SUFFIX_CURL_OFF_T ${CURL_SUFFIX_CURL_OFF_T} + +/* unsigned curl_off_t constant suffix. */ +#cmakedefine CURL_SUFFIX_CURL_OFF_TU ${CURL_SUFFIX_CURL_OFF_TU} + +#endif /* __CURL_CURLBUILD_H */ diff --git a/cad2pdf/crul/include/curl/curlbuild.h.in b/cad2pdf/crul/include/curl/curlbuild.h.in new file mode 100644 index 0000000..e29f195 --- /dev/null +++ b/cad2pdf/crul/include/curl/curlbuild.h.in @@ -0,0 +1,197 @@ +#ifndef __CURL_CURLBUILD_H +#define __CURL_CURLBUILD_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +/* ================================================================ */ +/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ +/* ================================================================ */ + +/* + * NOTE 1: + * ------- + * + * Nothing in this file is intended to be modified or adjusted by the + * curl library user nor by the curl library builder. + * + * If you think that something actually needs to be changed, adjusted + * or fixed in this file, then, report it on the libcurl development + * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ + * + * This header file shall only export symbols which are 'curl' or 'CURL' + * prefixed, otherwise public name space would be polluted. + * + * NOTE 2: + * ------- + * + * Right now you might be staring at file include/curl/curlbuild.h.in or + * at file include/curl/curlbuild.h, this is due to the following reason: + * + * On systems capable of running the configure script, the configure process + * will overwrite the distributed include/curl/curlbuild.h file with one that + * is suitable and specific to the library being configured and built, which + * is generated from the include/curl/curlbuild.h.in template file. + * + */ + +/* ================================================================ */ +/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ +/* ================================================================ */ + +#ifdef CURL_SIZEOF_LONG +#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined +#endif + +#ifdef CURL_TYPEOF_CURL_SOCKLEN_T +#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined +#endif + +#ifdef CURL_SIZEOF_CURL_SOCKLEN_T +#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined +#endif + +#ifdef CURL_TYPEOF_CURL_OFF_T +#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_FORMAT_CURL_OFF_T +#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_FORMAT_CURL_OFF_TU +#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined +#endif + +#ifdef CURL_FORMAT_OFF_T +#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined +#endif + +#ifdef CURL_SIZEOF_CURL_OFF_T +#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_SUFFIX_CURL_OFF_T +#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined +#endif + +#ifdef CURL_SUFFIX_CURL_OFF_TU +#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined +#endif + +/* ================================================================ */ +/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ +/* ================================================================ */ + +/* Configure process defines this to 1 when it finds out that system */ +/* header file ws2tcpip.h must be included by the external interface. */ +#undef CURL_PULL_WS2TCPIP_H +#ifdef CURL_PULL_WS2TCPIP_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# include +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file sys/types.h must be included by the external interface. */ +#undef CURL_PULL_SYS_TYPES_H +#ifdef CURL_PULL_SYS_TYPES_H +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file stdint.h must be included by the external interface. */ +#undef CURL_PULL_STDINT_H +#ifdef CURL_PULL_STDINT_H +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file inttypes.h must be included by the external interface. */ +#undef CURL_PULL_INTTYPES_H +#ifdef CURL_PULL_INTTYPES_H +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file sys/socket.h must be included by the external interface. */ +#undef CURL_PULL_SYS_SOCKET_H +#ifdef CURL_PULL_SYS_SOCKET_H +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file sys/poll.h must be included by the external interface. */ +#undef CURL_PULL_SYS_POLL_H +#ifdef CURL_PULL_SYS_POLL_H +# include +#endif + +/* The size of `long', as computed by sizeof. */ +#undef CURL_SIZEOF_LONG + +/* Integral data type used for curl_socklen_t. */ +#undef CURL_TYPEOF_CURL_SOCKLEN_T + +/* The size of `curl_socklen_t', as computed by sizeof. */ +#undef CURL_SIZEOF_CURL_SOCKLEN_T + +/* Data type definition of curl_socklen_t. */ +typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; + +/* Signed integral data type used for curl_off_t. */ +#undef CURL_TYPEOF_CURL_OFF_T + +/* Data type definition of curl_off_t. */ +typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; + +/* curl_off_t formatting string directive without "%" conversion specifier. */ +#undef CURL_FORMAT_CURL_OFF_T + +/* unsigned curl_off_t formatting string without "%" conversion specifier. */ +#undef CURL_FORMAT_CURL_OFF_TU + +/* curl_off_t formatting string directive with "%" conversion specifier. */ +#undef CURL_FORMAT_OFF_T + +/* The size of `curl_off_t', as computed by sizeof. */ +#undef CURL_SIZEOF_CURL_OFF_T + +/* curl_off_t constant suffix. */ +#undef CURL_SUFFIX_CURL_OFF_T + +/* unsigned curl_off_t constant suffix. */ +#undef CURL_SUFFIX_CURL_OFF_TU + +#endif /* __CURL_CURLBUILD_H */ diff --git a/cad2pdf/crul/include/curl/curlrules.h b/cad2pdf/crul/include/curl/curlrules.h new file mode 100644 index 0000000..7c2ede3 --- /dev/null +++ b/cad2pdf/crul/include/curl/curlrules.h @@ -0,0 +1,262 @@ +#ifndef __CURL_CURLRULES_H +#define __CURL_CURLRULES_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +/* ================================================================ */ +/* COMPILE TIME SANITY CHECKS */ +/* ================================================================ */ + +/* + * NOTE 1: + * ------- + * + * All checks done in this file are intentionally placed in a public + * header file which is pulled by curl/curl.h when an application is + * being built using an already built libcurl library. Additionally + * this file is also included and used when building the library. + * + * If compilation fails on this file it is certainly sure that the + * problem is elsewhere. It could be a problem in the curlbuild.h + * header file, or simply that you are using different compilation + * settings than those used to build the library. + * + * Nothing in this file is intended to be modified or adjusted by the + * curl library user nor by the curl library builder. + * + * Do not deactivate any check, these are done to make sure that the + * library is properly built and used. + * + * You can find further help on the libcurl development mailing list: + * http://cool.haxx.se/mailman/listinfo/curl-library/ + * + * NOTE 2 + * ------ + * + * Some of the following compile time checks are based on the fact + * that the dimension of a constant array can not be a negative one. + * In this way if the compile time verification fails, the compilation + * will fail issuing an error. The error description wording is compiler + * dependent but it will be quite similar to one of the following: + * + * "negative subscript or subscript is too large" + * "array must have at least one element" + * "-1 is an illegal array size" + * "size of array is negative" + * + * If you are building an application which tries to use an already + * built libcurl library and you are getting this kind of errors on + * this file, it is a clear indication that there is a mismatch between + * how the library was built and how you are trying to use it for your + * application. Your already compiled or binary library provider is the + * only one who can give you the details you need to properly use it. + */ + +/* + * Verify that some macros are actually defined. + */ + +#ifndef CURL_SIZEOF_LONG +# error "CURL_SIZEOF_LONG definition is missing!" + Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing +#endif + +#ifndef CURL_TYPEOF_CURL_SOCKLEN_T +# error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!" + Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing +#endif + +#ifndef CURL_SIZEOF_CURL_SOCKLEN_T +# error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!" + Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing +#endif + +#ifndef CURL_TYPEOF_CURL_OFF_T +# error "CURL_TYPEOF_CURL_OFF_T definition is missing!" + Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing +#endif + +#ifndef CURL_FORMAT_CURL_OFF_T +# error "CURL_FORMAT_CURL_OFF_T definition is missing!" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing +#endif + +#ifndef CURL_FORMAT_CURL_OFF_TU +# error "CURL_FORMAT_CURL_OFF_TU definition is missing!" + Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing +#endif + +#ifndef CURL_FORMAT_OFF_T +# error "CURL_FORMAT_OFF_T definition is missing!" + Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing +#endif + +#ifndef CURL_SIZEOF_CURL_OFF_T +# error "CURL_SIZEOF_CURL_OFF_T definition is missing!" + Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing +#endif + +#ifndef CURL_SUFFIX_CURL_OFF_T +# error "CURL_SUFFIX_CURL_OFF_T definition is missing!" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing +#endif + +#ifndef CURL_SUFFIX_CURL_OFF_TU +# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!" + Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing +#endif + +/* + * Macros private to this header file. + */ + +#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1 + +#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1 + +/* + * Verify that the size previously defined and expected for long + * is the same as the one reported by sizeof() at compile time. + */ + +typedef char + __curl_rule_01__ + [CurlchkszEQ(long, CURL_SIZEOF_LONG)]; + +/* + * Verify that the size previously defined and expected for + * curl_off_t is actually the the same as the one reported + * by sizeof() at compile time. + */ + +typedef char + __curl_rule_02__ + [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)]; + +/* + * Verify at compile time that the size of curl_off_t as reported + * by sizeof() is greater or equal than the one reported for long + * for the current compilation. + */ + +typedef char + __curl_rule_03__ + [CurlchkszGE(curl_off_t, long)]; + +/* + * Verify that the size previously defined and expected for + * curl_socklen_t is actually the the same as the one reported + * by sizeof() at compile time. + */ + +typedef char + __curl_rule_04__ + [CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)]; + +/* + * Verify at compile time that the size of curl_socklen_t as reported + * by sizeof() is greater or equal than the one reported for int for + * the current compilation. + */ + +typedef char + __curl_rule_05__ + [CurlchkszGE(curl_socklen_t, int)]; + +/* ================================================================ */ +/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */ +/* ================================================================ */ + +/* + * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow + * these to be visible and exported by the external libcurl interface API, + * while also making them visible to the library internals, simply including + * curl_setup.h, without actually needing to include curl.h internally. + * If some day this section would grow big enough, all this should be moved + * to its own header file. + */ + +/* + * Figure out if we can use the ## preprocessor operator, which is supported + * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ + * or __cplusplus so we need to carefully check for them too. + */ + +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ + defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ + defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ + defined(__ILEC400__) + /* This compiler is believed to have an ISO compatible preprocessor */ +#define CURL_ISOCPP +#else + /* This compiler is believed NOT to have an ISO compatible preprocessor */ +#undef CURL_ISOCPP +#endif + +/* + * Macros for minimum-width signed and unsigned curl_off_t integer constants. + */ + +#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) +# define __CURL_OFF_T_C_HLPR2(x) x +# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) +# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ + __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) +# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ + __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) +#else +# ifdef CURL_ISOCPP +# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix +# else +# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix +# endif +# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) +# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) +# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) +#endif + +/* + * Get rid of macros private to this header file. + */ + +#undef CurlchkszEQ +#undef CurlchkszGE + +/* + * Get rid of macros not intended to exist beyond this point. + */ + +#undef CURL_PULL_WS2TCPIP_H +#undef CURL_PULL_SYS_TYPES_H +#undef CURL_PULL_SYS_SOCKET_H +#undef CURL_PULL_SYS_POLL_H +#undef CURL_PULL_STDINT_H +#undef CURL_PULL_INTTYPES_H + +#undef CURL_TYPEOF_CURL_SOCKLEN_T +#undef CURL_TYPEOF_CURL_OFF_T + +#ifdef CURL_NO_OLDIES +#undef CURL_FORMAT_OFF_T /* not required since 7.19.0 - obsoleted in 7.20.0 */ +#endif + +#endif /* __CURL_CURLRULES_H */ diff --git a/cad2pdf/crul/include/curl/curlver.h b/cad2pdf/crul/include/curl/curlver.h new file mode 100644 index 0000000..c2be02c --- /dev/null +++ b/cad2pdf/crul/include/curl/curlver.h @@ -0,0 +1,69 @@ +#ifndef __CURL_CURLVER_H +#define __CURL_CURLVER_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +/* This header file contains nothing but libcurl version info, generated by + a script at release-time. This was made its own header file in 7.11.2 */ + +/* This is the global package copyright */ +#define LIBCURL_COPYRIGHT "1996 - 2013 Daniel Stenberg, ." + +/* This is the version number of the libcurl package from which this header + file origins: */ +#define LIBCURL_VERSION "7.32.0" + +/* The numeric version number is also available "in parts" by using these + defines: */ +#define LIBCURL_VERSION_MAJOR 7 +#define LIBCURL_VERSION_MINOR 32 +#define LIBCURL_VERSION_PATCH 0 + +/* This is the numeric version of the libcurl version number, meant for easier + parsing and comparions by programs. The LIBCURL_VERSION_NUM define will + always follow this syntax: + + 0xXXYYZZ + + Where XX, YY and ZZ are the main version, release and patch numbers in + hexadecimal (using 8 bits each). All three numbers are always represented + using two digits. 1.2 would appear as "0x010200" while version 9.11.7 + appears as "0x090b07". + + This 6-digit (24 bits) hexadecimal number does not show pre-release number, + and it is always a greater number in a more recent release. It makes + comparisons with greater than and less than work. +*/ +#define LIBCURL_VERSION_NUM 0x072000 + +/* + * This is the date and time when the full source package was created. The + * timestamp is not stored in git, as the timestamp is properly set in the + * tarballs by the maketgz script. + * + * The format of the date should follow this template: + * + * "Mon Feb 12 11:35:33 UTC 2007" + */ +#define LIBCURL_TIMESTAMP "Sun Aug 11 22:15:54 UTC 2013" + +#endif /* __CURL_CURLVER_H */ diff --git a/cad2pdf/crul/include/curl/easy.h b/cad2pdf/crul/include/curl/easy.h new file mode 100644 index 0000000..c1e3e76 --- /dev/null +++ b/cad2pdf/crul/include/curl/easy.h @@ -0,0 +1,102 @@ +#ifndef __CURL_EASY_H +#define __CURL_EASY_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ +#ifdef __cplusplus +extern "C" { +#endif + +CURL_EXTERN CURL *curl_easy_init(void); +CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); +CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); +CURL_EXTERN void curl_easy_cleanup(CURL *curl); + +/* + * NAME curl_easy_getinfo() + * + * DESCRIPTION + * + * Request internal information from the curl session with this function. The + * third argument MUST be a pointer to a long, a pointer to a char * or a + * pointer to a double (as the documentation describes elsewhere). The data + * pointed to will be filled in accordingly and can be relied upon only if the + * function returns CURLE_OK. This function is intended to get used *AFTER* a + * performed transfer, all results from this function are undefined until the + * transfer is completed. + */ +CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); + + +/* + * NAME curl_easy_duphandle() + * + * DESCRIPTION + * + * Creates a new curl session handle with the same options set for the handle + * passed in. Duplicating a handle could only be a matter of cloning data and + * options, internal state info and things like persistent connections cannot + * be transferred. It is useful in multithreaded applications when you can run + * curl_easy_duphandle() for each new thread to avoid a series of identical + * curl_easy_setopt() invokes in every thread. + */ +CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl); + +/* + * NAME curl_easy_reset() + * + * DESCRIPTION + * + * Re-initializes a CURL handle to the default values. This puts back the + * handle to the same state as it was in when it was just created. + * + * It does keep: live connections, the Session ID cache, the DNS cache and the + * cookies. + */ +CURL_EXTERN void curl_easy_reset(CURL *curl); + +/* + * NAME curl_easy_recv() + * + * DESCRIPTION + * + * Receives data from the connected socket. Use after successful + * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. + */ +CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, + size_t *n); + +/* + * NAME curl_easy_send() + * + * DESCRIPTION + * + * Sends data over the connected socket. Use after successful + * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. + */ +CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, + size_t buflen, size_t *n); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/cad2pdf/crul/include/curl/mprintf.h b/cad2pdf/crul/include/curl/mprintf.h new file mode 100644 index 0000000..cc9e7f5 --- /dev/null +++ b/cad2pdf/crul/include/curl/mprintf.h @@ -0,0 +1,81 @@ +#ifndef __CURL_MPRINTF_H +#define __CURL_MPRINTF_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +#include +#include /* needed for FILE */ + +#include "curl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +CURL_EXTERN int curl_mprintf(const char *format, ...); +CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); +CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); +CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, + const char *format, ...); +CURL_EXTERN int curl_mvprintf(const char *format, va_list args); +CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); +CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); +CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, + const char *format, va_list args); +CURL_EXTERN char *curl_maprintf(const char *format, ...); +CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); + +#ifdef _MPRINTF_REPLACE +# undef printf +# undef fprintf +# undef sprintf +# undef vsprintf +# undef snprintf +# undef vprintf +# undef vfprintf +# undef vsnprintf +# undef aprintf +# undef vaprintf +# define printf curl_mprintf +# define fprintf curl_mfprintf +#ifdef CURLDEBUG +/* When built with CURLDEBUG we define away the sprintf functions since we + don't want internal code to be using them */ +# define sprintf sprintf_was_used +# define vsprintf vsprintf_was_used +#else +# define sprintf curl_msprintf +# define vsprintf curl_mvsprintf +#endif +# define snprintf curl_msnprintf +# define vprintf curl_mvprintf +# define vfprintf curl_mvfprintf +# define vsnprintf curl_mvsnprintf +# define aprintf curl_maprintf +# define vaprintf curl_mvaprintf +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __CURL_MPRINTF_H */ diff --git a/cad2pdf/crul/include/curl/multi.h b/cad2pdf/crul/include/curl/multi.h new file mode 100644 index 0000000..a5eb3c6 --- /dev/null +++ b/cad2pdf/crul/include/curl/multi.h @@ -0,0 +1,397 @@ +#ifndef __CURL_MULTI_H +#define __CURL_MULTI_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ +/* + This is an "external" header file. Don't give away any internals here! + + GOALS + + o Enable a "pull" interface. The application that uses libcurl decides where + and when to ask libcurl to get/send data. + + o Enable multiple simultaneous transfers in the same thread without making it + complicated for the application. + + o Enable the application to select() on its own file descriptors and curl's + file descriptors simultaneous easily. + +*/ + +/* + * This header file should not really need to include "curl.h" since curl.h + * itself includes this file and we expect user applications to do #include + * without the need for especially including multi.h. + * + * For some reason we added this include here at one point, and rather than to + * break existing (wrongly written) libcurl applications, we leave it as-is + * but with this warning attached. + */ +#include "curl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void CURLM; + +typedef enum { + CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or + curl_multi_socket*() soon */ + CURLM_OK, + CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ + CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ + CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ + CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ + CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ + CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ + CURLM_LAST +} CURLMcode; + +/* just to make code nicer when using curl_multi_socket() you can now check + for CURLM_CALL_MULTI_SOCKET too in the same style it works for + curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ +#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM + +typedef enum { + CURLMSG_NONE, /* first, not used */ + CURLMSG_DONE, /* This easy handle has completed. 'result' contains + the CURLcode of the transfer */ + CURLMSG_LAST /* last, not used */ +} CURLMSG; + +struct CURLMsg { + CURLMSG msg; /* what this message means */ + CURL *easy_handle; /* the handle it concerns */ + union { + void *whatever; /* message-specific data */ + CURLcode result; /* return code for transfer */ + } data; +}; +typedef struct CURLMsg CURLMsg; + +/* Based on poll(2) structure and values. + * We don't use pollfd and POLL* constants explicitly + * to cover platforms without poll(). */ +#define CURL_WAIT_POLLIN 0x0001 +#define CURL_WAIT_POLLPRI 0x0002 +#define CURL_WAIT_POLLOUT 0x0004 + +struct curl_waitfd { + curl_socket_t fd; + short events; + short revents; /* not supported yet */ +}; + +/* + * Name: curl_multi_init() + * + * Desc: inititalize multi-style curl usage + * + * Returns: a new CURLM handle to use in all 'curl_multi' functions. + */ +CURL_EXTERN CURLM *curl_multi_init(void); + +/* + * Name: curl_multi_add_handle() + * + * Desc: add a standard curl handle to the multi stack + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, + CURL *curl_handle); + + /* + * Name: curl_multi_remove_handle() + * + * Desc: removes a curl handle from the multi stack again + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, + CURL *curl_handle); + + /* + * Name: curl_multi_fdset() + * + * Desc: Ask curl for its fd_set sets. The app can use these to select() or + * poll() on. We want curl_multi_perform() called as soon as one of + * them are ready. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, + fd_set *read_fd_set, + fd_set *write_fd_set, + fd_set *exc_fd_set, + int *max_fd); + +/* + * Name: curl_multi_wait() + * + * Desc: Poll on all fds within a CURLM set as well as any + * additional fds passed to the function. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, + struct curl_waitfd extra_fds[], + unsigned int extra_nfds, + int timeout_ms, + int *ret); + + /* + * Name: curl_multi_perform() + * + * Desc: When the app thinks there's data available for curl it calls this + * function to read/write whatever there is right now. This returns + * as soon as the reads and writes are done. This function does not + * require that there actually is data available for reading or that + * data can be written, it can be called just in case. It returns + * the number of handles that still transfer data in the second + * argument's integer-pointer. + * + * Returns: CURLMcode type, general multi error code. *NOTE* that this only + * returns errors etc regarding the whole multi stack. There might + * still have occurred problems on invidual transfers even when this + * returns OK. + */ +CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, + int *running_handles); + + /* + * Name: curl_multi_cleanup() + * + * Desc: Cleans up and removes a whole multi stack. It does not free or + * touch any individual easy handles in any way. We need to define + * in what state those handles will be if this function is called + * in the middle of a transfer. + * + * Returns: CURLMcode type, general multi error code. + */ +CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); + +/* + * Name: curl_multi_info_read() + * + * Desc: Ask the multi handle if there's any messages/informationals from + * the individual transfers. Messages include informationals such as + * error code from the transfer or just the fact that a transfer is + * completed. More details on these should be written down as well. + * + * Repeated calls to this function will return a new struct each + * time, until a special "end of msgs" struct is returned as a signal + * that there is no more to get at this point. + * + * The data the returned pointer points to will not survive calling + * curl_multi_cleanup(). + * + * The 'CURLMsg' struct is meant to be very simple and only contain + * very basic informations. If more involved information is wanted, + * we will provide the particular "transfer handle" in that struct + * and that should/could/would be used in subsequent + * curl_easy_getinfo() calls (or similar). The point being that we + * must never expose complex structs to applications, as then we'll + * undoubtably get backwards compatibility problems in the future. + * + * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out + * of structs. It also writes the number of messages left in the + * queue (after this read) in the integer the second argument points + * to. + */ +CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, + int *msgs_in_queue); + +/* + * Name: curl_multi_strerror() + * + * Desc: The curl_multi_strerror function may be used to turn a CURLMcode + * value into the equivalent human readable error string. This is + * useful for printing meaningful error messages. + * + * Returns: A pointer to a zero-terminated error message. + */ +CURL_EXTERN const char *curl_multi_strerror(CURLMcode); + +/* + * Name: curl_multi_socket() and + * curl_multi_socket_all() + * + * Desc: An alternative version of curl_multi_perform() that allows the + * application to pass in one of the file descriptors that have been + * detected to have "action" on them and let libcurl perform. + * See man page for details. + */ +#define CURL_POLL_NONE 0 +#define CURL_POLL_IN 1 +#define CURL_POLL_OUT 2 +#define CURL_POLL_INOUT 3 +#define CURL_POLL_REMOVE 4 + +#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD + +#define CURL_CSELECT_IN 0x01 +#define CURL_CSELECT_OUT 0x02 +#define CURL_CSELECT_ERR 0x04 + +typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ + curl_socket_t s, /* socket */ + int what, /* see above */ + void *userp, /* private callback + pointer */ + void *socketp); /* private socket + pointer */ +/* + * Name: curl_multi_timer_callback + * + * Desc: Called by libcurl whenever the library detects a change in the + * maximum number of milliseconds the app is allowed to wait before + * curl_multi_socket() or curl_multi_perform() must be called + * (to allow libcurl's timed events to take place). + * + * Returns: The callback should return zero. + */ +typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ + long timeout_ms, /* see above */ + void *userp); /* private callback + pointer */ + +CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, + int *running_handles); + +CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, + curl_socket_t s, + int ev_bitmask, + int *running_handles); + +CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, + int *running_handles); + +#ifndef CURL_ALLOW_OLD_MULTI_SOCKET +/* This macro below was added in 7.16.3 to push users who recompile to use + the new curl_multi_socket_action() instead of the old curl_multi_socket() +*/ +#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) +#endif + +/* + * Name: curl_multi_timeout() + * + * Desc: Returns the maximum number of milliseconds the app is allowed to + * wait before curl_multi_socket() or curl_multi_perform() must be + * called (to allow libcurl's timed events to take place). + * + * Returns: CURLM error code. + */ +CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, + long *milliseconds); + +#undef CINIT /* re-using the same name as in curl.h */ + +#ifdef CURL_ISOCPP +#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num +#else +/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ +#define LONG CURLOPTTYPE_LONG +#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT +#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT +#define OFF_T CURLOPTTYPE_OFF_T +#define CINIT(name,type,number) CURLMOPT_/**/name = type + number +#endif + +typedef enum { + /* This is the socket callback function pointer */ + CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), + + /* This is the argument passed to the socket callback */ + CINIT(SOCKETDATA, OBJECTPOINT, 2), + + /* set to 1 to enable pipelining for this multi handle */ + CINIT(PIPELINING, LONG, 3), + + /* This is the timer callback function pointer */ + CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), + + /* This is the argument passed to the timer callback */ + CINIT(TIMERDATA, OBJECTPOINT, 5), + + /* maximum number of entries in the connection cache */ + CINIT(MAXCONNECTS, LONG, 6), + + /* maximum number of (pipelining) connections to one host */ + CINIT(MAX_HOST_CONNECTIONS, LONG, 7), + + /* maximum number of requests in a pipeline */ + CINIT(MAX_PIPELINE_LENGTH, LONG, 8), + + /* a connection with a content-length longer than this + will not be considered for pipelining */ + CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9), + + /* a connection with a chunk length longer than this + will not be considered for pipelining */ + CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10), + + /* a list of site names(+port) that are blacklisted from + pipelining */ + CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11), + + /* a list of server types that are blacklisted from + pipelining */ + CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12), + + /* maximum number of open connections in total */ + CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), + + CURLMOPT_LASTENTRY /* the last unused */ +} CURLMoption; + + +/* + * Name: curl_multi_setopt() + * + * Desc: Sets options for the multi handle. + * + * Returns: CURLM error code. + */ +CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, + CURLMoption option, ...); + + +/* + * Name: curl_multi_assign() + * + * Desc: This function sets an association in the multi handle between the + * given socket and a private pointer of the application. This is + * (only) useful for curl_multi_socket uses. + * + * Returns: CURLM error code. + */ +CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, + curl_socket_t sockfd, void *sockp); + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif diff --git a/cad2pdf/crul/include/curl/stdcheaders.h b/cad2pdf/crul/include/curl/stdcheaders.h new file mode 100644 index 0000000..ad82ef6 --- /dev/null +++ b/cad2pdf/crul/include/curl/stdcheaders.h @@ -0,0 +1,33 @@ +#ifndef __STDC_HEADERS_H +#define __STDC_HEADERS_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +#include + +size_t fread (void *, size_t, size_t, FILE *); +size_t fwrite (const void *, size_t, size_t, FILE *); + +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, size_t); + +#endif /* __STDC_HEADERS_H */ diff --git a/cad2pdf/crul/include/curl/typecheck-gcc.h b/cad2pdf/crul/include/curl/typecheck-gcc.h new file mode 100644 index 0000000..f8917e8 --- /dev/null +++ b/cad2pdf/crul/include/curl/typecheck-gcc.h @@ -0,0 +1,604 @@ +#ifndef __CURL_TYPECHECK_GCC_H +#define __CURL_TYPECHECK_GCC_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +/* wraps curl_easy_setopt() with typechecking */ + +/* To add a new kind of warning, add an + * if(_curl_is_sometype_option(_curl_opt)) + * if(!_curl_is_sometype(value)) + * _curl_easy_setopt_err_sometype(); + * block and define _curl_is_sometype_option, _curl_is_sometype and + * _curl_easy_setopt_err_sometype below + * + * NOTE: We use two nested 'if' statements here instead of the && operator, in + * order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x + * when compiling with -Wlogical-op. + * + * To add an option that uses the same type as an existing option, you'll just + * need to extend the appropriate _curl_*_option macro + */ +#define curl_easy_setopt(handle, option, value) \ +__extension__ ({ \ + __typeof__ (option) _curl_opt = option; \ + if(__builtin_constant_p(_curl_opt)) { \ + if(_curl_is_long_option(_curl_opt)) \ + if(!_curl_is_long(value)) \ + _curl_easy_setopt_err_long(); \ + if(_curl_is_off_t_option(_curl_opt)) \ + if(!_curl_is_off_t(value)) \ + _curl_easy_setopt_err_curl_off_t(); \ + if(_curl_is_string_option(_curl_opt)) \ + if(!_curl_is_string(value)) \ + _curl_easy_setopt_err_string(); \ + if(_curl_is_write_cb_option(_curl_opt)) \ + if(!_curl_is_write_cb(value)) \ + _curl_easy_setopt_err_write_callback(); \ + if((_curl_opt) == CURLOPT_READFUNCTION) \ + if(!_curl_is_read_cb(value)) \ + _curl_easy_setopt_err_read_cb(); \ + if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ + if(!_curl_is_ioctl_cb(value)) \ + _curl_easy_setopt_err_ioctl_cb(); \ + if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ + if(!_curl_is_sockopt_cb(value)) \ + _curl_easy_setopt_err_sockopt_cb(); \ + if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ + if(!_curl_is_opensocket_cb(value)) \ + _curl_easy_setopt_err_opensocket_cb(); \ + if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ + if(!_curl_is_progress_cb(value)) \ + _curl_easy_setopt_err_progress_cb(); \ + if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ + if(!_curl_is_debug_cb(value)) \ + _curl_easy_setopt_err_debug_cb(); \ + if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ + if(!_curl_is_ssl_ctx_cb(value)) \ + _curl_easy_setopt_err_ssl_ctx_cb(); \ + if(_curl_is_conv_cb_option(_curl_opt)) \ + if(!_curl_is_conv_cb(value)) \ + _curl_easy_setopt_err_conv_cb(); \ + if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ + if(!_curl_is_seek_cb(value)) \ + _curl_easy_setopt_err_seek_cb(); \ + if(_curl_is_cb_data_option(_curl_opt)) \ + if(!_curl_is_cb_data(value)) \ + _curl_easy_setopt_err_cb_data(); \ + if((_curl_opt) == CURLOPT_ERRORBUFFER) \ + if(!_curl_is_error_buffer(value)) \ + _curl_easy_setopt_err_error_buffer(); \ + if((_curl_opt) == CURLOPT_STDERR) \ + if(!_curl_is_FILE(value)) \ + _curl_easy_setopt_err_FILE(); \ + if(_curl_is_postfields_option(_curl_opt)) \ + if(!_curl_is_postfields(value)) \ + _curl_easy_setopt_err_postfields(); \ + if((_curl_opt) == CURLOPT_HTTPPOST) \ + if(!_curl_is_arr((value), struct curl_httppost)) \ + _curl_easy_setopt_err_curl_httpost(); \ + if(_curl_is_slist_option(_curl_opt)) \ + if(!_curl_is_arr((value), struct curl_slist)) \ + _curl_easy_setopt_err_curl_slist(); \ + if((_curl_opt) == CURLOPT_SHARE) \ + if(!_curl_is_ptr((value), CURLSH)) \ + _curl_easy_setopt_err_CURLSH(); \ + } \ + curl_easy_setopt(handle, _curl_opt, value); \ +}) + +/* wraps curl_easy_getinfo() with typechecking */ +/* FIXME: don't allow const pointers */ +#define curl_easy_getinfo(handle, info, arg) \ +__extension__ ({ \ + __typeof__ (info) _curl_info = info; \ + if(__builtin_constant_p(_curl_info)) { \ + if(_curl_is_string_info(_curl_info)) \ + if(!_curl_is_arr((arg), char *)) \ + _curl_easy_getinfo_err_string(); \ + if(_curl_is_long_info(_curl_info)) \ + if(!_curl_is_arr((arg), long)) \ + _curl_easy_getinfo_err_long(); \ + if(_curl_is_double_info(_curl_info)) \ + if(!_curl_is_arr((arg), double)) \ + _curl_easy_getinfo_err_double(); \ + if(_curl_is_slist_info(_curl_info)) \ + if(!_curl_is_arr((arg), struct curl_slist *)) \ + _curl_easy_getinfo_err_curl_slist(); \ + } \ + curl_easy_getinfo(handle, _curl_info, arg); \ +}) + +/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(), + * for now just make sure that the functions are called with three + * arguments + */ +#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) +#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) + + +/* the actual warnings, triggered by calling the _curl_easy_setopt_err* + * functions */ + +/* To define a new warning, use _CURL_WARNING(identifier, "message") */ +#define _CURL_WARNING(id, message) \ + static void __attribute__((__warning__(message))) \ + __attribute__((__unused__)) __attribute__((__noinline__)) \ + id(void) { __asm__(""); } + +_CURL_WARNING(_curl_easy_setopt_err_long, + "curl_easy_setopt expects a long argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_curl_off_t, + "curl_easy_setopt expects a curl_off_t argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_string, + "curl_easy_setopt expects a " + "string (char* or char[]) argument for this option" + ) +_CURL_WARNING(_curl_easy_setopt_err_write_callback, + "curl_easy_setopt expects a curl_write_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_read_cb, + "curl_easy_setopt expects a curl_read_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, + "curl_easy_setopt expects a curl_ioctl_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb, + "curl_easy_setopt expects a curl_sockopt_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb, + "curl_easy_setopt expects a " + "curl_opensocket_callback argument for this option" + ) +_CURL_WARNING(_curl_easy_setopt_err_progress_cb, + "curl_easy_setopt expects a curl_progress_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_debug_cb, + "curl_easy_setopt expects a curl_debug_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb, + "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_conv_cb, + "curl_easy_setopt expects a curl_conv_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_seek_cb, + "curl_easy_setopt expects a curl_seek_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_cb_data, + "curl_easy_setopt expects a " + "private data pointer as argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_error_buffer, + "curl_easy_setopt expects a " + "char buffer of CURL_ERROR_SIZE as argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_FILE, + "curl_easy_setopt expects a FILE* argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_postfields, + "curl_easy_setopt expects a void* or char* argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_curl_httpost, + "curl_easy_setopt expects a struct curl_httppost* argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_curl_slist, + "curl_easy_setopt expects a struct curl_slist* argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_CURLSH, + "curl_easy_setopt expects a CURLSH* argument for this option") + +_CURL_WARNING(_curl_easy_getinfo_err_string, + "curl_easy_getinfo expects a pointer to char * for this info") +_CURL_WARNING(_curl_easy_getinfo_err_long, + "curl_easy_getinfo expects a pointer to long for this info") +_CURL_WARNING(_curl_easy_getinfo_err_double, + "curl_easy_getinfo expects a pointer to double for this info") +_CURL_WARNING(_curl_easy_getinfo_err_curl_slist, + "curl_easy_getinfo expects a pointer to struct curl_slist * for this info") + +/* groups of curl_easy_setops options that take the same type of argument */ + +/* To add a new option to one of the groups, just add + * (option) == CURLOPT_SOMETHING + * to the or-expression. If the option takes a long or curl_off_t, you don't + * have to do anything + */ + +/* evaluates to true if option takes a long argument */ +#define _curl_is_long_option(option) \ + (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) + +#define _curl_is_off_t_option(option) \ + ((option) > CURLOPTTYPE_OFF_T) + +/* evaluates to true if option takes a char* argument */ +#define _curl_is_string_option(option) \ + ((option) == CURLOPT_URL || \ + (option) == CURLOPT_PROXY || \ + (option) == CURLOPT_INTERFACE || \ + (option) == CURLOPT_NETRC_FILE || \ + (option) == CURLOPT_USERPWD || \ + (option) == CURLOPT_USERNAME || \ + (option) == CURLOPT_PASSWORD || \ + (option) == CURLOPT_PROXYUSERPWD || \ + (option) == CURLOPT_PROXYUSERNAME || \ + (option) == CURLOPT_PROXYPASSWORD || \ + (option) == CURLOPT_NOPROXY || \ + (option) == CURLOPT_ACCEPT_ENCODING || \ + (option) == CURLOPT_REFERER || \ + (option) == CURLOPT_USERAGENT || \ + (option) == CURLOPT_COOKIE || \ + (option) == CURLOPT_COOKIEFILE || \ + (option) == CURLOPT_COOKIEJAR || \ + (option) == CURLOPT_COOKIELIST || \ + (option) == CURLOPT_FTPPORT || \ + (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ + (option) == CURLOPT_FTP_ACCOUNT || \ + (option) == CURLOPT_RANGE || \ + (option) == CURLOPT_CUSTOMREQUEST || \ + (option) == CURLOPT_SSLCERT || \ + (option) == CURLOPT_SSLCERTTYPE || \ + (option) == CURLOPT_SSLKEY || \ + (option) == CURLOPT_SSLKEYTYPE || \ + (option) == CURLOPT_KEYPASSWD || \ + (option) == CURLOPT_SSLENGINE || \ + (option) == CURLOPT_CAINFO || \ + (option) == CURLOPT_CAPATH || \ + (option) == CURLOPT_RANDOM_FILE || \ + (option) == CURLOPT_EGDSOCKET || \ + (option) == CURLOPT_SSL_CIPHER_LIST || \ + (option) == CURLOPT_KRBLEVEL || \ + (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ + (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ + (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ + (option) == CURLOPT_CRLFILE || \ + (option) == CURLOPT_ISSUERCERT || \ + (option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ + (option) == CURLOPT_SSH_KNOWNHOSTS || \ + (option) == CURLOPT_MAIL_FROM || \ + (option) == CURLOPT_RTSP_SESSION_ID || \ + (option) == CURLOPT_RTSP_STREAM_URI || \ + (option) == CURLOPT_RTSP_TRANSPORT || \ + 0) + +/* evaluates to true if option takes a curl_write_callback argument */ +#define _curl_is_write_cb_option(option) \ + ((option) == CURLOPT_HEADERFUNCTION || \ + (option) == CURLOPT_WRITEFUNCTION) + +/* evaluates to true if option takes a curl_conv_callback argument */ +#define _curl_is_conv_cb_option(option) \ + ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ + (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ + (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) + +/* evaluates to true if option takes a data argument to pass to a callback */ +#define _curl_is_cb_data_option(option) \ + ((option) == CURLOPT_WRITEDATA || \ + (option) == CURLOPT_READDATA || \ + (option) == CURLOPT_IOCTLDATA || \ + (option) == CURLOPT_SOCKOPTDATA || \ + (option) == CURLOPT_OPENSOCKETDATA || \ + (option) == CURLOPT_PROGRESSDATA || \ + (option) == CURLOPT_WRITEHEADER || \ + (option) == CURLOPT_DEBUGDATA || \ + (option) == CURLOPT_SSL_CTX_DATA || \ + (option) == CURLOPT_SEEKDATA || \ + (option) == CURLOPT_PRIVATE || \ + (option) == CURLOPT_SSH_KEYDATA || \ + (option) == CURLOPT_INTERLEAVEDATA || \ + (option) == CURLOPT_CHUNK_DATA || \ + (option) == CURLOPT_FNMATCH_DATA || \ + 0) + +/* evaluates to true if option takes a POST data argument (void* or char*) */ +#define _curl_is_postfields_option(option) \ + ((option) == CURLOPT_POSTFIELDS || \ + (option) == CURLOPT_COPYPOSTFIELDS || \ + 0) + +/* evaluates to true if option takes a struct curl_slist * argument */ +#define _curl_is_slist_option(option) \ + ((option) == CURLOPT_HTTPHEADER || \ + (option) == CURLOPT_HTTP200ALIASES || \ + (option) == CURLOPT_QUOTE || \ + (option) == CURLOPT_POSTQUOTE || \ + (option) == CURLOPT_PREQUOTE || \ + (option) == CURLOPT_TELNETOPTIONS || \ + (option) == CURLOPT_MAIL_RCPT || \ + 0) + +/* groups of curl_easy_getinfo infos that take the same type of argument */ + +/* evaluates to true if info expects a pointer to char * argument */ +#define _curl_is_string_info(info) \ + (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG) + +/* evaluates to true if info expects a pointer to long argument */ +#define _curl_is_long_info(info) \ + (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) + +/* evaluates to true if info expects a pointer to double argument */ +#define _curl_is_double_info(info) \ + (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) + +/* true if info expects a pointer to struct curl_slist * argument */ +#define _curl_is_slist_info(info) \ + (CURLINFO_SLIST < (info)) + + +/* typecheck helpers -- check whether given expression has requested type*/ + +/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros, + * otherwise define a new macro. Search for __builtin_types_compatible_p + * in the GCC manual. + * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is + * the actual expression passed to the curl_easy_setopt macro. This + * means that you can only apply the sizeof and __typeof__ operators, no + * == or whatsoever. + */ + +/* XXX: should evaluate to true iff expr is a pointer */ +#define _curl_is_any_ptr(expr) \ + (sizeof(expr) == sizeof(void*)) + +/* evaluates to true if expr is NULL */ +/* XXX: must not evaluate expr, so this check is not accurate */ +#define _curl_is_NULL(expr) \ + (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) + +/* evaluates to true if expr is type*, const type* or NULL */ +#define _curl_is_ptr(expr, type) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), type *) || \ + __builtin_types_compatible_p(__typeof__(expr), const type *)) + +/* evaluates to true if expr is one of type[], type*, NULL or const type* */ +#define _curl_is_arr(expr, type) \ + (_curl_is_ptr((expr), type) || \ + __builtin_types_compatible_p(__typeof__(expr), type [])) + +/* evaluates to true if expr is a string */ +#define _curl_is_string(expr) \ + (_curl_is_arr((expr), char) || \ + _curl_is_arr((expr), signed char) || \ + _curl_is_arr((expr), unsigned char)) + +/* evaluates to true if expr is a long (no matter the signedness) + * XXX: for now, int is also accepted (and therefore short and char, which + * are promoted to int when passed to a variadic function) */ +#define _curl_is_long(expr) \ + (__builtin_types_compatible_p(__typeof__(expr), long) || \ + __builtin_types_compatible_p(__typeof__(expr), signed long) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ + __builtin_types_compatible_p(__typeof__(expr), int) || \ + __builtin_types_compatible_p(__typeof__(expr), signed int) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ + __builtin_types_compatible_p(__typeof__(expr), short) || \ + __builtin_types_compatible_p(__typeof__(expr), signed short) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ + __builtin_types_compatible_p(__typeof__(expr), char) || \ + __builtin_types_compatible_p(__typeof__(expr), signed char) || \ + __builtin_types_compatible_p(__typeof__(expr), unsigned char)) + +/* evaluates to true if expr is of type curl_off_t */ +#define _curl_is_off_t(expr) \ + (__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) + +/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ +/* XXX: also check size of an char[] array? */ +#define _curl_is_error_buffer(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), char *) || \ + __builtin_types_compatible_p(__typeof__(expr), char[])) + +/* evaluates to true if expr is of type (const) void* or (const) FILE* */ +#if 0 +#define _curl_is_cb_data(expr) \ + (_curl_is_ptr((expr), void) || \ + _curl_is_ptr((expr), FILE)) +#else /* be less strict */ +#define _curl_is_cb_data(expr) \ + _curl_is_any_ptr(expr) +#endif + +/* evaluates to true if expr is of type FILE* */ +#define _curl_is_FILE(expr) \ + (__builtin_types_compatible_p(__typeof__(expr), FILE *)) + +/* evaluates to true if expr can be passed as POST data (void* or char*) */ +#define _curl_is_postfields(expr) \ + (_curl_is_ptr((expr), void) || \ + _curl_is_arr((expr), char)) + +/* FIXME: the whole callback checking is messy... + * The idea is to tolerate char vs. void and const vs. not const + * pointers in arguments at least + */ +/* helper: __builtin_types_compatible_p distinguishes between functions and + * function pointers, hide it */ +#define _curl_callback_compatible(func, type) \ + (__builtin_types_compatible_p(__typeof__(func), type) || \ + __builtin_types_compatible_p(__typeof__(func), type*)) + +/* evaluates to true if expr is of type curl_read_callback or "similar" */ +#define _curl_is_read_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), __typeof__(fread)) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_read_callback) || \ + _curl_callback_compatible((expr), _curl_read_callback1) || \ + _curl_callback_compatible((expr), _curl_read_callback2) || \ + _curl_callback_compatible((expr), _curl_read_callback3) || \ + _curl_callback_compatible((expr), _curl_read_callback4) || \ + _curl_callback_compatible((expr), _curl_read_callback5) || \ + _curl_callback_compatible((expr), _curl_read_callback6)) +typedef size_t (_curl_read_callback1)(char *, size_t, size_t, void*); +typedef size_t (_curl_read_callback2)(char *, size_t, size_t, const void*); +typedef size_t (_curl_read_callback3)(char *, size_t, size_t, FILE*); +typedef size_t (_curl_read_callback4)(void *, size_t, size_t, void*); +typedef size_t (_curl_read_callback5)(void *, size_t, size_t, const void*); +typedef size_t (_curl_read_callback6)(void *, size_t, size_t, FILE*); + +/* evaluates to true if expr is of type curl_write_callback or "similar" */ +#define _curl_is_write_cb(expr) \ + (_curl_is_read_cb(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), __typeof__(fwrite)) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_write_callback) || \ + _curl_callback_compatible((expr), _curl_write_callback1) || \ + _curl_callback_compatible((expr), _curl_write_callback2) || \ + _curl_callback_compatible((expr), _curl_write_callback3) || \ + _curl_callback_compatible((expr), _curl_write_callback4) || \ + _curl_callback_compatible((expr), _curl_write_callback5) || \ + _curl_callback_compatible((expr), _curl_write_callback6)) +typedef size_t (_curl_write_callback1)(const char *, size_t, size_t, void*); +typedef size_t (_curl_write_callback2)(const char *, size_t, size_t, + const void*); +typedef size_t (_curl_write_callback3)(const char *, size_t, size_t, FILE*); +typedef size_t (_curl_write_callback4)(const void *, size_t, size_t, void*); +typedef size_t (_curl_write_callback5)(const void *, size_t, size_t, + const void*); +typedef size_t (_curl_write_callback6)(const void *, size_t, size_t, FILE*); + +/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ +#define _curl_is_ioctl_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_ioctl_callback) || \ + _curl_callback_compatible((expr), _curl_ioctl_callback1) || \ + _curl_callback_compatible((expr), _curl_ioctl_callback2) || \ + _curl_callback_compatible((expr), _curl_ioctl_callback3) || \ + _curl_callback_compatible((expr), _curl_ioctl_callback4)) +typedef curlioerr (_curl_ioctl_callback1)(CURL *, int, void*); +typedef curlioerr (_curl_ioctl_callback2)(CURL *, int, const void*); +typedef curlioerr (_curl_ioctl_callback3)(CURL *, curliocmd, void*); +typedef curlioerr (_curl_ioctl_callback4)(CURL *, curliocmd, const void*); + +/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ +#define _curl_is_sockopt_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_sockopt_callback) || \ + _curl_callback_compatible((expr), _curl_sockopt_callback1) || \ + _curl_callback_compatible((expr), _curl_sockopt_callback2)) +typedef int (_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); +typedef int (_curl_sockopt_callback2)(const void *, curl_socket_t, + curlsocktype); + +/* evaluates to true if expr is of type curl_opensocket_callback or + "similar" */ +#define _curl_is_opensocket_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_opensocket_callback) ||\ + _curl_callback_compatible((expr), _curl_opensocket_callback1) || \ + _curl_callback_compatible((expr), _curl_opensocket_callback2) || \ + _curl_callback_compatible((expr), _curl_opensocket_callback3) || \ + _curl_callback_compatible((expr), _curl_opensocket_callback4)) +typedef curl_socket_t (_curl_opensocket_callback1) + (void *, curlsocktype, struct curl_sockaddr *); +typedef curl_socket_t (_curl_opensocket_callback2) + (void *, curlsocktype, const struct curl_sockaddr *); +typedef curl_socket_t (_curl_opensocket_callback3) + (const void *, curlsocktype, struct curl_sockaddr *); +typedef curl_socket_t (_curl_opensocket_callback4) + (const void *, curlsocktype, const struct curl_sockaddr *); + +/* evaluates to true if expr is of type curl_progress_callback or "similar" */ +#define _curl_is_progress_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_progress_callback) || \ + _curl_callback_compatible((expr), _curl_progress_callback1) || \ + _curl_callback_compatible((expr), _curl_progress_callback2)) +typedef int (_curl_progress_callback1)(void *, + double, double, double, double); +typedef int (_curl_progress_callback2)(const void *, + double, double, double, double); + +/* evaluates to true if expr is of type curl_debug_callback or "similar" */ +#define _curl_is_debug_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_debug_callback) || \ + _curl_callback_compatible((expr), _curl_debug_callback1) || \ + _curl_callback_compatible((expr), _curl_debug_callback2) || \ + _curl_callback_compatible((expr), _curl_debug_callback3) || \ + _curl_callback_compatible((expr), _curl_debug_callback4) || \ + _curl_callback_compatible((expr), _curl_debug_callback5) || \ + _curl_callback_compatible((expr), _curl_debug_callback6) || \ + _curl_callback_compatible((expr), _curl_debug_callback7) || \ + _curl_callback_compatible((expr), _curl_debug_callback8)) +typedef int (_curl_debug_callback1) (CURL *, + curl_infotype, char *, size_t, void *); +typedef int (_curl_debug_callback2) (CURL *, + curl_infotype, char *, size_t, const void *); +typedef int (_curl_debug_callback3) (CURL *, + curl_infotype, const char *, size_t, void *); +typedef int (_curl_debug_callback4) (CURL *, + curl_infotype, const char *, size_t, const void *); +typedef int (_curl_debug_callback5) (CURL *, + curl_infotype, unsigned char *, size_t, void *); +typedef int (_curl_debug_callback6) (CURL *, + curl_infotype, unsigned char *, size_t, const void *); +typedef int (_curl_debug_callback7) (CURL *, + curl_infotype, const unsigned char *, size_t, void *); +typedef int (_curl_debug_callback8) (CURL *, + curl_infotype, const unsigned char *, size_t, const void *); + +/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ +/* this is getting even messier... */ +#define _curl_is_ssl_ctx_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_ssl_ctx_callback) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ + _curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) +typedef CURLcode (_curl_ssl_ctx_callback1)(CURL *, void *, void *); +typedef CURLcode (_curl_ssl_ctx_callback2)(CURL *, void *, const void *); +typedef CURLcode (_curl_ssl_ctx_callback3)(CURL *, const void *, void *); +typedef CURLcode (_curl_ssl_ctx_callback4)(CURL *, const void *, const void *); +#ifdef HEADER_SSL_H +/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX + * this will of course break if we're included before OpenSSL headers... + */ +typedef CURLcode (_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); +typedef CURLcode (_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); +typedef CURLcode (_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); +typedef CURLcode (_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, + const void *); +#else +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; +typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; +#endif + +/* evaluates to true if expr is of type curl_conv_callback or "similar" */ +#define _curl_is_conv_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_conv_callback) || \ + _curl_callback_compatible((expr), _curl_conv_callback1) || \ + _curl_callback_compatible((expr), _curl_conv_callback2) || \ + _curl_callback_compatible((expr), _curl_conv_callback3) || \ + _curl_callback_compatible((expr), _curl_conv_callback4)) +typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); +typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); +typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); +typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); + +/* evaluates to true if expr is of type curl_seek_callback or "similar" */ +#define _curl_is_seek_cb(expr) \ + (_curl_is_NULL(expr) || \ + __builtin_types_compatible_p(__typeof__(expr), curl_seek_callback) || \ + _curl_callback_compatible((expr), _curl_seek_callback1) || \ + _curl_callback_compatible((expr), _curl_seek_callback2)) +typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); +typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); + + +#endif /* __CURL_TYPECHECK_GCC_H */ diff --git a/cad2pdf/crul/libcurl.lib b/cad2pdf/crul/libcurl.lib new file mode 100644 index 0000000..e5e5ba1 Binary files /dev/null and b/cad2pdf/crul/libcurl.lib differ diff --git a/cad2pdf/说明.txt b/cad2pdf/说明.txt new file mode 100644 index 0000000..3afda2a --- /dev/null +++ b/cad2pdf/说明.txt @@ -0,0 +1 @@ +cad2pdf:该工程用于生成DWG转PDF的VB.net程序 \ No newline at end of file diff --git a/cadVb/ACMBOOT.EXE b/cadVb/ACMBOOT.EXE new file mode 100644 index 0000000..41be927 Binary files /dev/null and b/cadVb/ACMBOOT.EXE differ diff --git a/cadVb/ACMBOOT.LST b/cadVb/ACMBOOT.LST new file mode 100644 index 0000000..5a01742 --- /dev/null +++ b/cadVb/ACMBOOT.LST @@ -0,0 +1,82 @@ + +[Windows 95 Params] + WndTitle = Microsoft Visual Basic 6.0 İ氲װ + WndMess = Visual Basic 6.0 İ氲װ\n\nԺ... + TmpDirSize = 2000 + TmpDirName = tmp + + CmdLine = acmsetup /Z bboard.dll /T VB98ENT.STF /S %s %s + + DrvModName = ACMSETUP + DrvWinClass = Stuff-Shell + +[Windows 95 Files] + setup\acmsetup.exe = acmsetup.exe + setup\acmsetup.hlp = acmsetup.hlp + setup\mssetup.dll = mssetup.dll + + setup\bboard.dll = bboard.dll + + setup\pholder.dll = pholder.dll + setup\vssetup.ttf = vssetup.ttf + + setup\VB98ENT.DLL = VB98ENT.DLL + setup\COMMON98.DLL = COMMON98.DLL + + EULA.TXT = EULA.TXT + + setup\VB98ENT.INF = VB98ENT.INF + setup\VB98ENT.STF = VB98ENT.STF + + setup\odbcstf.dll = odbcstf.dll + setup\odbckey.inf = odbckey.inf + os\system\odbccp32.dll = odbccp32.dll + os\system\odbcint.dll = odbcint.dll + os\system\msvcrt40.dll = msvcrt40.dll + os\system\msvcrt.dll = msvcrt.dll + + setup\wpie15.exe = wpie15.exe + + setup\vsscantl.dll = vsscantl.dll + setup\wwsetup.ttf = wwsetup.ttf + +[NT Intel Params] + WndTitle = Microsoft Visual Basic 6.0 İ氲װ + WndMess = Visual Basic 6.0 İ氲װ\n\nԺ... + TmpDirSize = 2000 + TmpDirName = tmp + + CmdLine = acmsetup /Z bboard.dll /T VB98ENT.STF /S %s %s + + DrvModName = ACMSETUP + DrvWinClass = Stuff-Shell + +[NT Intel Files] + setup\acmsetup.exe = acmsetup.exe + setup\acmsetup.hlp = acmsetup.hlp + setup\mssetup.dll = mssetup.dll + + setup\bboard.dll = bboard.dll + + setup\pholder.dll = pholder.dll + setup\vssetup.ttf = vssetup.ttf + + setup\VB98ENT.DLL = VB98ENT.DLL + setup\COMMON98.DLL = COMMON98.DLL + + EULA.TXT = EULA.TXT + setup\VB98ENT.INF = VB98ENT.INF + setup\VB98ENT.STF = VB98ENT.STF + + setup\odbcstf.dll = odbcstf.dll + setup\odbckey.inf = odbckey.inf + os\system\odbccp32.dll = odbccp32.dll + os\system\odbcint.dll = odbcint.dll + os\system\msvcrt40.dll = msvcrt40.dll + os\system\msvcrt.dll = msvcrt.dll + + setup\wpie15.exe = wpie15.exe + + setup\vsscantl.dll = vsscantl.dll + setup\wwsetup.ttf = wwsetup.ttf + diff --git a/cadVb/AUTORUN.INF b/cadVb/AUTORUN.INF new file mode 100644 index 0000000..9f1ff32 --- /dev/null +++ b/cadVb/AUTORUN.INF @@ -0,0 +1,2 @@ +[autorun] +OPEN=SETUP.EXE /AUTORUN diff --git a/cadVb/COMMON/GRAPHICS/AVIS/BLUR16.AVI b/cadVb/COMMON/GRAPHICS/AVIS/BLUR16.AVI new file mode 100644 index 0000000..5e32e5c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/BLUR16.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/BLUR24.AVI b/cadVb/COMMON/GRAPHICS/AVIS/BLUR24.AVI new file mode 100644 index 0000000..3a0e0f0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/BLUR24.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/BLUR8.AVI b/cadVb/COMMON/GRAPHICS/AVIS/BLUR8.AVI new file mode 100644 index 0000000..a483ef6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/BLUR8.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/CINEAPK.AVI b/cadVb/COMMON/GRAPHICS/AVIS/CINEAPK.AVI new file mode 100644 index 0000000..1b52d31 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/CINEAPK.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/COUNT16.AVI b/cadVb/COMMON/GRAPHICS/AVIS/COUNT16.AVI new file mode 100644 index 0000000..4905b0c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/COUNT16.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/COUNT24.AVI b/cadVb/COMMON/GRAPHICS/AVIS/COUNT24.AVI new file mode 100644 index 0000000..2d10223 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/COUNT24.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/COUNT8.AVI b/cadVb/COMMON/GRAPHICS/AVIS/COUNT8.AVI new file mode 100644 index 0000000..8ef55f2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/COUNT8.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/COUNT8R.AVI b/cadVb/COMMON/GRAPHICS/AVIS/COUNT8R.AVI new file mode 100644 index 0000000..c090db9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/COUNT8R.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/DOWNLOAD.AVI b/cadVb/COMMON/GRAPHICS/AVIS/DOWNLOAD.AVI new file mode 100644 index 0000000..7fa4823 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/DOWNLOAD.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/DOWNLO~1.AVI b/cadVb/COMMON/GRAPHICS/AVIS/DOWNLO~1.AVI new file mode 100644 index 0000000..92121fa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/DOWNLO~1.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/DRILLRLE.AVI b/cadVb/COMMON/GRAPHICS/AVIS/DRILLRLE.AVI new file mode 100644 index 0000000..8453f1c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/DRILLRLE.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/FILECOPY.AVI b/cadVb/COMMON/GRAPHICS/AVIS/FILECOPY.AVI new file mode 100644 index 0000000..cfba0da Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/FILECOPY.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/FILEDEL.AVI b/cadVb/COMMON/GRAPHICS/AVIS/FILEDEL.AVI new file mode 100644 index 0000000..b87fde7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/FILEDEL.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/FILEDELR.AVI b/cadVb/COMMON/GRAPHICS/AVIS/FILEDELR.AVI new file mode 100644 index 0000000..6da080d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/FILEDELR.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/FILEMOVE.AVI b/cadVb/COMMON/GRAPHICS/AVIS/FILEMOVE.AVI new file mode 100644 index 0000000..cb8167d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/FILEMOVE.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/FILENUKE.AVI b/cadVb/COMMON/GRAPHICS/AVIS/FILENUKE.AVI new file mode 100644 index 0000000..42821df Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/FILENUKE.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/FINDCOMP.AVI b/cadVb/COMMON/GRAPHICS/AVIS/FINDCOMP.AVI new file mode 100644 index 0000000..2533e30 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/FINDCOMP.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/FINDFILE.AVI b/cadVb/COMMON/GRAPHICS/AVIS/FINDFILE.AVI new file mode 100644 index 0000000..e6c2074 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/FINDFILE.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/AVIS/SEARCH.AVI b/cadVb/COMMON/GRAPHICS/AVIS/SEARCH.AVI new file mode 100644 index 0000000..24850ba Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/AVIS/SEARCH.AVI differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BALLOON.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BALLOON.BMP new file mode 100644 index 0000000..3e4a344 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BALLOON.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BEANY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BEANY.BMP new file mode 100644 index 0000000..cccc6f3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BEANY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BELL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BELL.BMP new file mode 100644 index 0000000..d4f0074 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/BELL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CALENDAR.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CALENDAR.BMP new file mode 100644 index 0000000..62b3b19 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CALENDAR.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CAMCORD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CAMCORD.BMP new file mode 100644 index 0000000..9bd915c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CAMCORD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CARD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CARD.BMP new file mode 100644 index 0000000..ef050fa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CARD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CLUB.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CLUB.BMP new file mode 100644 index 0000000..6a9f175 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CLUB.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CUP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CUP.BMP new file mode 100644 index 0000000..573a2b6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/CUP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/DELETE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/DELETE.BMP new file mode 100644 index 0000000..211dd04 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/DELETE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/DIAMOND.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/DIAMOND.BMP new file mode 100644 index 0000000..b44b4f0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/DIAMOND.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/ENVELOPE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/ENVELOPE.BMP new file mode 100644 index 0000000..0c79a48 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/ENVELOPE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/FISH.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/FISH.BMP new file mode 100644 index 0000000..d425ba8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/FISH.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HAND.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HAND.BMP new file mode 100644 index 0000000..f0d0ac6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HAND.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HAPPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HAPPY.BMP new file mode 100644 index 0000000..01836b7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HAPPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HEART.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HEART.BMP new file mode 100644 index 0000000..cde72b1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/HEART.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/INTL_NO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/INTL_NO.BMP new file mode 100644 index 0000000..23c7208 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/INTL_NO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/KEY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/KEY.BMP new file mode 100644 index 0000000..9055fc7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/KEY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/MAIL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/MAIL.BMP new file mode 100644 index 0000000..381c646 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/MAIL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/NOTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/NOTE.BMP new file mode 100644 index 0000000..fe72e4f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/NOTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/NOTEBOOK.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/NOTEBOOK.BMP new file mode 100644 index 0000000..5b45fa7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/NOTEBOOK.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PHONE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PHONE.BMP new file mode 100644 index 0000000..c5859b5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PHONE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PIN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PIN.BMP new file mode 100644 index 0000000..3c20956 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PIN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PLAN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PLAN.BMP new file mode 100644 index 0000000..1efd0ae Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PLAN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PRESENT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PRESENT.BMP new file mode 100644 index 0000000..844a89a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/PRESENT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SAD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SAD.BMP new file mode 100644 index 0000000..3d19464 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SAD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SMOKES.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SMOKES.BMP new file mode 100644 index 0000000..d4a5546 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SMOKES.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SPADE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SPADE.BMP new file mode 100644 index 0000000..e160426 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SPADE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SPEAKER.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SPEAKER.BMP new file mode 100644 index 0000000..e82a05b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/SPEAKER.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/TIME.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/TIME.BMP new file mode 100644 index 0000000..5cfadc9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/TIME.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/TRASH.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/TRASH.BMP new file mode 100644 index 0000000..776e886 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/TRASH.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/VB416MOM.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/VB416MOM.BMP new file mode 100644 index 0000000..6a9d066 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/VB416MOM.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/VB432MOM.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/VB432MOM.BMP new file mode 100644 index 0000000..879cbf4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/VB432MOM.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/W.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/W.BMP new file mode 100644 index 0000000..708dd32 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/ASSORTED/W.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/CIRCLOCK.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/CIRCLOCK.BMP new file mode 100644 index 0000000..12df264 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/CIRCLOCK.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/DOME.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/DOME.BMP new file mode 100644 index 0000000..b7d1958 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/DOME.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/HORZ.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/HORZ.BMP new file mode 100644 index 0000000..81e463e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/HORZ.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/HORZ1.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/HORZ1.BMP new file mode 100644 index 0000000..1885229 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/HORZ1.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/SEMICIRC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/SEMICIRC.BMP new file mode 100644 index 0000000..13b1256 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/SEMICIRC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERBOT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERBOT.BMP new file mode 100644 index 0000000..ed3195d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERBOT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERLFT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERLFT.BMP new file mode 100644 index 0000000..35e64ce Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERLFT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERMID.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERMID.BMP new file mode 100644 index 0000000..e0aa69e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERMID.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERMIDH.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERMIDH.BMP new file mode 100644 index 0000000..23e4064 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERMIDH.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERRT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERRT.BMP new file mode 100644 index 0000000..cb2e4f0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERRT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERTOP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERTOP.BMP new file mode 100644 index 0000000..ccdd176 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/THERTOP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VERT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VERT.BMP new file mode 100644 index 0000000..fc97966 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VERT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VOLBOT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VOLBOT.BMP new file mode 100644 index 0000000..e5cabc9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VOLBOT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VOLTOP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VOLTOP.BMP new file mode 100644 index 0000000..69731cf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/GAUGE/VOLTOP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/COPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/COPY.BMP new file mode 100644 index 0000000..560ddc6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/COPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/CUT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/CUT.BMP new file mode 100644 index 0000000..ee7136e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/CUT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/HELP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/HELP.BMP new file mode 100644 index 0000000..beaa70f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/HELP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/NEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/NEW.BMP new file mode 100644 index 0000000..0ab876e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/NEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/OPEN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/OPEN.BMP new file mode 100644 index 0000000..589229a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/OPEN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PAINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PAINT.BMP new file mode 100644 index 0000000..99bf740 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PAINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PASTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PASTE.BMP new file mode 100644 index 0000000..f2bd4f9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PASTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PREVIEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PREVIEW.BMP new file mode 100644 index 0000000..b4d6fd2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PREVIEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PRINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PRINT.BMP new file mode 100644 index 0000000..e62d498 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/PRINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/REDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/REDO.BMP new file mode 100644 index 0000000..2706660 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/REDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/SAVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/SAVE.BMP new file mode 100644 index 0000000..6e9ec0f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/SAVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/SPELL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/SPELL.BMP new file mode 100644 index 0000000..1a583b8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/SPELL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/UNDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/UNDO.BMP new file mode 100644 index 0000000..902da0f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/B&W/UNDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/COPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/COPY.BMP new file mode 100644 index 0000000..dcbfa45 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/COPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/CUT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/CUT.BMP new file mode 100644 index 0000000..1c18479 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/CUT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/HELP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/HELP.BMP new file mode 100644 index 0000000..783e8e4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/HELP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/NEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/NEW.BMP new file mode 100644 index 0000000..0ab876e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/NEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/OPEN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/OPEN.BMP new file mode 100644 index 0000000..fdeeb23 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/OPEN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PAINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PAINT.BMP new file mode 100644 index 0000000..fcb6a6e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PAINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PASTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PASTE.BMP new file mode 100644 index 0000000..7b18cf4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PASTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PREVIEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PREVIEW.BMP new file mode 100644 index 0000000..dbecb2a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PREVIEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PRINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PRINT.BMP new file mode 100644 index 0000000..a2cf13f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/PRINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/REDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/REDO.BMP new file mode 100644 index 0000000..14df7e6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/REDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/SAVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/SAVE.BMP new file mode 100644 index 0000000..d5ce955 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/SAVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/SPELL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/SPELL.BMP new file mode 100644 index 0000000..c57ac90 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/SPELL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/UNDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/UNDO.BMP new file mode 100644 index 0000000..b7b0afe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/LARGE/COLOR/UNDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/COPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/COPY.BMP new file mode 100644 index 0000000..619e7dc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/COPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/CUT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/CUT.BMP new file mode 100644 index 0000000..26c828f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/CUT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/HELP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/HELP.BMP new file mode 100644 index 0000000..2457bce Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/HELP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/NEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/NEW.BMP new file mode 100644 index 0000000..8923057 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/NEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/OPEN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/OPEN.BMP new file mode 100644 index 0000000..e06b047 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/OPEN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PAINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PAINT.BMP new file mode 100644 index 0000000..7e11377 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PAINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PASTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PASTE.BMP new file mode 100644 index 0000000..e87762a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PASTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PREVIEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PREVIEW.BMP new file mode 100644 index 0000000..13a1992 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PREVIEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PRINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PRINT.BMP new file mode 100644 index 0000000..7846e33 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/PRINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/REDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/REDO.BMP new file mode 100644 index 0000000..da46070 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/REDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/SAVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/SAVE.BMP new file mode 100644 index 0000000..2b367c8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/SAVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/SPELL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/SPELL.BMP new file mode 100644 index 0000000..8a8fa40 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/SPELL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/UNDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/UNDO.BMP new file mode 100644 index 0000000..9b8730b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/B&W/UNDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/COPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/COPY.BMP new file mode 100644 index 0000000..f837351 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/COPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/CUT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/CUT.BMP new file mode 100644 index 0000000..b254b43 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/CUT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/HELP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/HELP.BMP new file mode 100644 index 0000000..d4c8863 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/HELP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/NEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/NEW.BMP new file mode 100644 index 0000000..8923057 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/NEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/OPEN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/OPEN.BMP new file mode 100644 index 0000000..ec88288 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/OPEN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PAINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PAINT.BMP new file mode 100644 index 0000000..80589d8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PAINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PASTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PASTE.BMP new file mode 100644 index 0000000..461dade Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PASTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PREVIEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PREVIEW.BMP new file mode 100644 index 0000000..c99551c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PREVIEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PRINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PRINT.BMP new file mode 100644 index 0000000..c392bc4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/PRINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/REDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/REDO.BMP new file mode 100644 index 0000000..8a2a79d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/REDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/SAVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/SAVE.BMP new file mode 100644 index 0000000..9217b49 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/SAVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/SPELL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/SPELL.BMP new file mode 100644 index 0000000..6917d7a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/SPELL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/UNDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/UNDO.BMP new file mode 100644 index 0000000..205452f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OFFCTLBR/SMALL/COLOR/UNDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/CLOSED.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/CLOSED.BMP new file mode 100644 index 0000000..58426d9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/CLOSED.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/LEAF.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/LEAF.BMP new file mode 100644 index 0000000..d6b95bc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/LEAF.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/MINUS.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/MINUS.BMP new file mode 100644 index 0000000..16a107a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/MINUS.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/35FLOPPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/35FLOPPY.BMP new file mode 100644 index 0000000..ed0467a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/35FLOPPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/525FLOP1.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/525FLOP1.BMP new file mode 100644 index 0000000..ed0467a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/525FLOP1.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/AUDIO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/AUDIO.BMP new file mode 100644 index 0000000..56c1ecd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/AUDIO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/BMP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/BMP.BMP new file mode 100644 index 0000000..22f55e9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/BMP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CDDRIVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CDDRIVE.BMP new file mode 100644 index 0000000..1a2d08b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CDDRIVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CLSDFOLD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CLSDFOLD.BMP new file mode 100644 index 0000000..18d21f1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CLSDFOLD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CTRPANEL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CTRPANEL.BMP new file mode 100644 index 0000000..0ebfe68 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/CTRPANEL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DESKTOP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DESKTOP.BMP new file mode 100644 index 0000000..6f8a638 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DESKTOP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DOC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DOC.BMP new file mode 100644 index 0000000..be820fc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DOC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVE.BMP new file mode 100644 index 0000000..6f865fe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVEDSC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVEDSC.BMP new file mode 100644 index 0000000..b5b66f4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVEDSC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVENET.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVENET.BMP new file mode 100644 index 0000000..55def15 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/DRIVENET.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/ENTIRNET.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/ENTIRNET.BMP new file mode 100644 index 0000000..bb7ba00 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/ENTIRNET.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/EXE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/EXE.BMP new file mode 100644 index 0000000..8229629 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/EXE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/EXPLORER.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/EXPLORER.BMP new file mode 100644 index 0000000..00db339 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/EXPLORER.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/HLP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/HLP.BMP new file mode 100644 index 0000000..d7e1412 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/HLP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/MYCOMP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/MYCOMP.BMP new file mode 100644 index 0000000..b576623 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/MYCOMP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/NETHOOD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/NETHOOD.BMP new file mode 100644 index 0000000..e92aef8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/NETHOOD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/OPENFOLD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/OPENFOLD.BMP new file mode 100644 index 0000000..53f06ed Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/OPENFOLD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/PRINTFLD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/PRINTFLD.BMP new file mode 100644 index 0000000..d924070 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/PRINTFLD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/RECYFULL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/RECYFULL.BMP new file mode 100644 index 0000000..69aa6b4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/RECYFULL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/REMTEACC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/REMTEACC.BMP new file mode 100644 index 0000000..3df8aea Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/REMTEACC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/SHARING.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/SHARING.BMP new file mode 100644 index 0000000..d0d079f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/SHARING.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/TXT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/TXT.BMP new file mode 100644 index 0000000..9541a92 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/TXT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/WASTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/WASTE.BMP new file mode 100644 index 0000000..fb0bb46 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/WASTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/WINDOC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/WINDOC.BMP new file mode 100644 index 0000000..268340f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/NOMASK/WINDOC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/OPEN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/OPEN.BMP new file mode 100644 index 0000000..e629654 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/OPEN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/PLUS.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/PLUS.BMP new file mode 100644 index 0000000..d24d4eb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/PLUS.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/35FLOPPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/35FLOPPY.BMP new file mode 100644 index 0000000..1154588 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/35FLOPPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/525FLOP1.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/525FLOP1.BMP new file mode 100644 index 0000000..1154588 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/525FLOP1.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/AUDIO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/AUDIO.BMP new file mode 100644 index 0000000..e73f9e5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/AUDIO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/BMP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/BMP.BMP new file mode 100644 index 0000000..37daa61 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/BMP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CDDRIVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CDDRIVE.BMP new file mode 100644 index 0000000..941192a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CDDRIVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CLSDFOLD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CLSDFOLD.BMP new file mode 100644 index 0000000..a9750d1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CLSDFOLD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CTRPANEL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CTRPANEL.BMP new file mode 100644 index 0000000..bc2fd10 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/CTRPANEL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DESKTOP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DESKTOP.BMP new file mode 100644 index 0000000..5e5d6e2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DESKTOP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DOC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DOC.BMP new file mode 100644 index 0000000..d976a6e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DOC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVE.BMP new file mode 100644 index 0000000..73d9e3b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVEDSC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVEDSC.BMP new file mode 100644 index 0000000..0012074 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVEDSC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVENET.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVENET.BMP new file mode 100644 index 0000000..b806cd3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/DRIVENET.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/ENTIRNET.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/ENTIRNET.BMP new file mode 100644 index 0000000..c4ddb3c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/ENTIRNET.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/EXE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/EXE.BMP new file mode 100644 index 0000000..aa23e38 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/EXE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/EXPLORER.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/EXPLORER.BMP new file mode 100644 index 0000000..4fd9f94 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/EXPLORER.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/HLP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/HLP.BMP new file mode 100644 index 0000000..a15cb68 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/HLP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/MYCOMP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/MYCOMP.BMP new file mode 100644 index 0000000..f633a20 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/MYCOMP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/NETHOOD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/NETHOOD.BMP new file mode 100644 index 0000000..0a69062 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/NETHOOD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/OPENFOLD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/OPENFOLD.BMP new file mode 100644 index 0000000..54adffe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/OPENFOLD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/PRINTFLD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/PRINTFLD.BMP new file mode 100644 index 0000000..bf10c4f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/PRINTFLD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/RECYFULL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/RECYFULL.BMP new file mode 100644 index 0000000..1d94f0a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/RECYFULL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/REMTEACC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/REMTEACC.BMP new file mode 100644 index 0000000..013b14a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/REMTEACC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/SHARING.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/SHARING.BMP new file mode 100644 index 0000000..2c7121d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/SHARING.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/TXT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/TXT.BMP new file mode 100644 index 0000000..93ce1df Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/TXT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/WASTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/WASTE.BMP new file mode 100644 index 0000000..76b531d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/WASTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/WINDOC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/WINDOC.BMP new file mode 100644 index 0000000..197737d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/OUTLINE/REDMASK/WINDOC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ARC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ARC.BMP new file mode 100644 index 0000000..e366a19 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ARC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BACK.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BACK.BMP new file mode 100644 index 0000000..741c519 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BACK.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BLD.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BLD.BMP new file mode 100644 index 0000000..d6b36d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BLD.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BUTTON.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BUTTON.BMP new file mode 100644 index 0000000..2cdbc14 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/BUTTON.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CAMERA.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CAMERA.BMP new file mode 100644 index 0000000..dea1590 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CAMERA.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CNT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CNT.BMP new file mode 100644 index 0000000..2188d95 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CNT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/COPY.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/COPY.BMP new file mode 100644 index 0000000..ba6d546 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/COPY.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CTR.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CTR.BMP new file mode 100644 index 0000000..2188d95 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CTR.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CUT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CUT.BMP new file mode 100644 index 0000000..0d4fbff Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/CUT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DBLUNDR.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DBLUNDR.BMP new file mode 100644 index 0000000..2fc52f0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DBLUNDR.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DELETE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DELETE.BMP new file mode 100644 index 0000000..462be29 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DELETE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DISCNET.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DISCNET.BMP new file mode 100644 index 0000000..ba64ff7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DISCNET.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DRAWING.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DRAWING.BMP new file mode 100644 index 0000000..33dcba4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/DRAWING.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ELLIPSE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ELLIPSE.BMP new file mode 100644 index 0000000..51aeb33 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ELLIPSE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FIND.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FIND.BMP new file mode 100644 index 0000000..c29fbce Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FIND.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FREEFORM.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FREEFORM.BMP new file mode 100644 index 0000000..e84e929 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FREEFORM.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FRONT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FRONT.BMP new file mode 100644 index 0000000..5b624d7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/FRONT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/GROUP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/GROUP.BMP new file mode 100644 index 0000000..617cacf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/GROUP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/HELP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/HELP.BMP new file mode 100644 index 0000000..f01289e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/HELP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/HELP2.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/HELP2.BMP new file mode 100644 index 0000000..f0e05ad Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/HELP2.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ITL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ITL.BMP new file mode 100644 index 0000000..86e4fcf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/ITL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/JST.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/JST.BMP new file mode 100644 index 0000000..ab96d9f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/JST.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LFT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LFT.BMP new file mode 100644 index 0000000..110321a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LFT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LINE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LINE.BMP new file mode 100644 index 0000000..a1966c1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LINE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LINESTYL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LINESTYL.BMP new file mode 100644 index 0000000..512f48e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/LINESTYL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/MAPNET.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/MAPNET.BMP new file mode 100644 index 0000000..ed6af2a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/MAPNET.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/MCR.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/MCR.BMP new file mode 100644 index 0000000..ffcf8ac Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/MCR.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/NEW.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/NEW.BMP new file mode 100644 index 0000000..dfbcc52 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/NEW.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/OPEN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/OPEN.BMP new file mode 100644 index 0000000..59c9eeb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/OPEN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PASTE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PASTE.BMP new file mode 100644 index 0000000..f0ee2b0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PASTE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PRINT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PRINT.BMP new file mode 100644 index 0000000..845bee7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PRINT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PROP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PROP.BMP new file mode 100644 index 0000000..25e0eef Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/PROP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/RECTANGL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/RECTANGL.BMP new file mode 100644 index 0000000..0936414 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/RECTANGL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/REDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/REDO.BMP new file mode 100644 index 0000000..6be53dc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/REDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/RT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/RT.BMP new file mode 100644 index 0000000..216fe4b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/RT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SAVE.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SAVE.BMP new file mode 100644 index 0000000..e2720eb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SAVE.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SMALLCAP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SMALLCAP.BMP new file mode 100644 index 0000000..4b11273 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SMALLCAP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SORTASC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SORTASC.BMP new file mode 100644 index 0000000..ff33816 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SORTASC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SORTDES.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SORTDES.BMP new file mode 100644 index 0000000..155bfa3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SORTDES.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SPELLING.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SPELLING.BMP new file mode 100644 index 0000000..92502e2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SPELLING.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/STRIKTHR.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/STRIKTHR.BMP new file mode 100644 index 0000000..c32d54d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/STRIKTHR.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SUM.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SUM.BMP new file mode 100644 index 0000000..3d55b4d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/SUM.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-CNTR.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-CNTR.BMP new file mode 100644 index 0000000..93b4868 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-CNTR.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-DEC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-DEC.BMP new file mode 100644 index 0000000..4457469 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-DEC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-LEFT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-LEFT.BMP new file mode 100644 index 0000000..89ceff7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-LEFT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-RHT.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-RHT.BMP new file mode 100644 index 0000000..2a4079a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/TAB-RHT.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNDO.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNDO.BMP new file mode 100644 index 0000000..39b8145 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNDO.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNDRLN.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNDRLN.BMP new file mode 100644 index 0000000..436f24c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNDRLN.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNGROUP.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNGROUP.BMP new file mode 100644 index 0000000..536852e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UNGROUP.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UP1LVL.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UP1LVL.BMP new file mode 100644 index 0000000..d622d9a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/UP1LVL.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-DTLS.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-DTLS.BMP new file mode 100644 index 0000000..7947c91 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-DTLS.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-LIST.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-LIST.BMP new file mode 100644 index 0000000..7d1e280 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-LIST.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-LRGIC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-LRGIC.BMP new file mode 100644 index 0000000..6fad94d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-LRGIC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-SMLIC.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-SMLIC.BMP new file mode 100644 index 0000000..75fc6a3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/VW-SMLIC.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/WORDUNDR.BMP b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/WORDUNDR.BMP new file mode 100644 index 0000000..d3c96c0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/BITMAPS/TLBR_W95/WORDUNDR.BMP differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/4WAY01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY01.CUR new file mode 100644 index 0000000..84efcc2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/4WAY02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY02.CUR new file mode 100644 index 0000000..3d6f42d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/4WAY03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY03.CUR new file mode 100644 index 0000000..59c455d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/4WAY04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY04.CUR new file mode 100644 index 0000000..8574ffb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/4WAY05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY05.CUR new file mode 100644 index 0000000..34947d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/4WAY06.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY06.CUR new file mode 100644 index 0000000..5d134e7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY06.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/4WAY07.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY07.CUR new file mode 100644 index 0000000..77b1aad Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/4WAY07.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/BULLSEYE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/BULLSEYE.CUR new file mode 100644 index 0000000..308c07d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/BULLSEYE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/COPY4WAY.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/COPY4WAY.CUR new file mode 100644 index 0000000..e0f4144 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/COPY4WAY.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/CROSS01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS01.CUR new file mode 100644 index 0000000..de3d147 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/CROSS02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS02.CUR new file mode 100644 index 0000000..078836b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/CROSS03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS03.CUR new file mode 100644 index 0000000..7d29595 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/CROSS04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS04.CUR new file mode 100644 index 0000000..52a73f4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/CROSS04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_NO01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO01.CUR new file mode 100644 index 0000000..513b80d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_NO02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO02.CUR new file mode 100644 index 0000000..aedf4dd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_NO03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO03.CUR new file mode 100644 index 0000000..df1bd4b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_NO04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO04.CUR new file mode 100644 index 0000000..5b5713b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_NO05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO05.CUR new file mode 100644 index 0000000..de252b8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_NO05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_WAI03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAI03.CUR new file mode 100644 index 0000000..e608c6c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAI03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT01.CUR new file mode 100644 index 0000000..aed8b68 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT02.CUR new file mode 100644 index 0000000..ff786b3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT04.CUR new file mode 100644 index 0000000..c155537 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT05.CUR new file mode 100644 index 0000000..b0447bd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/C_WAIT05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/DOWN.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/DOWN.CUR new file mode 100644 index 0000000..b61fec4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/DOWN.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/DRAGCOPY.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGCOPY.CUR new file mode 100644 index 0000000..89c7c96 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGCOPY.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/DRAGLINK.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGLINK.CUR new file mode 100644 index 0000000..fca1fc0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGLINK.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/DRAGMOVE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGMOVE.CUR new file mode 100644 index 0000000..a9a9bd6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGMOVE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/DRAGPICT.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGPICT.CUR new file mode 100644 index 0000000..7ef6282 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/DRAGPICT.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_01.CUR new file mode 100644 index 0000000..b5857ee Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_02.CUR new file mode 100644 index 0000000..eabdb93 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_03.CUR new file mode 100644 index 0000000..68c8536 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_04.CUR new file mode 100644 index 0000000..7bbf9a0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_05.CUR new file mode 100644 index 0000000..3a1b86d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_06.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_06.CUR new file mode 100644 index 0000000..66e8586 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_06.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_07.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_07.CUR new file mode 100644 index 0000000..30c2a23 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_07.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/EW_08.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/EW_08.CUR new file mode 100644 index 0000000..43c8a61 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/EW_08.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/HELP.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/HELP.CUR new file mode 100644 index 0000000..d0a2aa3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/HELP.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/HO_LINE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/HO_LINE.CUR new file mode 100644 index 0000000..fb686b1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/HO_LINE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/HO_SIZEB.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/HO_SIZEB.CUR new file mode 100644 index 0000000..a87811c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/HO_SIZEB.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/HO_SPLIT.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/HO_SPLIT.CUR new file mode 100644 index 0000000..a426080 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/HO_SPLIT.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_CROSS.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_CROSS.CUR new file mode 100644 index 0000000..4fa6596 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_CROSS.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_IBEAM.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_IBEAM.CUR new file mode 100644 index 0000000..0083c4e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_IBEAM.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_MOVE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_MOVE.CUR new file mode 100644 index 0000000..d9ad249 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_MOVE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_NE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_NE.CUR new file mode 100644 index 0000000..b57ff11 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_NE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_NODROP.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_NODROP.CUR new file mode 100644 index 0000000..08aaad3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_NODROP.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_NS.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_NS.CUR new file mode 100644 index 0000000..3673fe3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_NS.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_NW.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_NW.CUR new file mode 100644 index 0000000..e3063e3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_NW.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_POINT.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_POINT.CUR new file mode 100644 index 0000000..e4feb3e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_POINT.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/H_WE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/H_WE.CUR new file mode 100644 index 0000000..c0ef04d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/H_WE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/IBEAM_01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/IBEAM_01.CUR new file mode 100644 index 0000000..351afd7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/IBEAM_01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/MAGNIFY.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/MAGNIFY.CUR new file mode 100644 index 0000000..0d32894 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/MAGNIFY.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/MOVE4WAY.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/MOVE4WAY.CUR new file mode 100644 index 0000000..e857cdc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/MOVE4WAY.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NE_01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NE_01.CUR new file mode 100644 index 0000000..eca916f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NE_01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NE_02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NE_02.CUR new file mode 100644 index 0000000..86e454d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NE_02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NE_03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NE_03.CUR new file mode 100644 index 0000000..8ceb1d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NE_03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NE_04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NE_04.CUR new file mode 100644 index 0000000..ba60768 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NE_04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NE_05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NE_05.CUR new file mode 100644 index 0000000..3e8811c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NE_05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NE_06.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NE_06.CUR new file mode 100644 index 0000000..1e74b6f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NE_06.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NE_07.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NE_07.CUR new file mode 100644 index 0000000..22f8c10 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NE_07.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NO.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NO.CUR new file mode 100644 index 0000000..b9dfd30 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NO.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NODROP01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NODROP01.CUR new file mode 100644 index 0000000..b002e96 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NODROP01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NODROP02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NODROP02.CUR new file mode 100644 index 0000000..0a9aa73 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NODROP02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL01.CUR new file mode 100644 index 0000000..0b7197e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL02.CUR new file mode 100644 index 0000000..f5f5cd1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL03.CUR new file mode 100644 index 0000000..5691efb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL04.CUR new file mode 100644 index 0000000..1a9bcd9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL05.CUR new file mode 100644 index 0000000..1ed0f7a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL06.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL06.CUR new file mode 100644 index 0000000..3dc0640 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL06.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL07.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL07.CUR new file mode 100644 index 0000000..3eed8c7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL07.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL08.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL08.CUR new file mode 100644 index 0000000..9554ee7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NORMAL08.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NS_01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NS_01.CUR new file mode 100644 index 0000000..743f4fd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NS_01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NS_02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NS_02.CUR new file mode 100644 index 0000000..2d69152 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NS_02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NS_03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NS_03.CUR new file mode 100644 index 0000000..dd6a7f5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NS_03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NS_04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NS_04.CUR new file mode 100644 index 0000000..7911741 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NS_04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NS_05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NS_05.CUR new file mode 100644 index 0000000..a45f142 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NS_05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NS_06.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NS_06.CUR new file mode 100644 index 0000000..e5532dc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NS_06.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NS_07.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NS_07.CUR new file mode 100644 index 0000000..98b218d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NS_07.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_01.CUR new file mode 100644 index 0000000..eca3c2d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_02.CUR new file mode 100644 index 0000000..52cee84 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_03.CUR new file mode 100644 index 0000000..28f98a8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_04.CUR new file mode 100644 index 0000000..23545f3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_05.CUR new file mode 100644 index 0000000..91318a0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_06.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_06.CUR new file mode 100644 index 0000000..7e405f2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_06.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_07.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_07.CUR new file mode 100644 index 0000000..f65b23d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_07.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/NW_08.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/NW_08.CUR new file mode 100644 index 0000000..607e39c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/NW_08.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/PALETTE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/PALETTE.CUR new file mode 100644 index 0000000..ad82bcd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/PALETTE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/PENCIL.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/PENCIL.CUR new file mode 100644 index 0000000..6aeba5f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/PENCIL.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/SELECT.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/SELECT.CUR new file mode 100644 index 0000000..d926739 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/SELECT.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/VE_LINE.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/VE_LINE.CUR new file mode 100644 index 0000000..6af5557 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/VE_LINE.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/VE_SIZEB.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/VE_SIZEB.CUR new file mode 100644 index 0000000..dda3483 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/VE_SIZEB.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/VE_SPLIT.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/VE_SPLIT.CUR new file mode 100644 index 0000000..f2f0be3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/VE_SPLIT.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT01.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT01.CUR new file mode 100644 index 0000000..a961612 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT01.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT02.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT02.CUR new file mode 100644 index 0000000..5b5be93 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT02.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT03.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT03.CUR new file mode 100644 index 0000000..99e57b0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT03.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT04.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT04.CUR new file mode 100644 index 0000000..057a63f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT04.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT05.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT05.CUR new file mode 100644 index 0000000..0f2f51c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT05.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT06.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT06.CUR new file mode 100644 index 0000000..d29560a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT06.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT07.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT07.CUR new file mode 100644 index 0000000..c0c40c3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT07.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/CURSORS/WAIT08.CUR b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT08.CUR new file mode 100644 index 0000000..d37895b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/CURSORS/WAIT08.CUR differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01DN.ICO new file mode 100644 index 0000000..b5bc8a3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01LT.ICO new file mode 100644 index 0000000..4097f57 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01RT.ICO new file mode 100644 index 0000000..ddfc3a3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01UP.ICO new file mode 100644 index 0000000..ce90f76 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW01UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02DN.ICO new file mode 100644 index 0000000..5f55459 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02LT.ICO new file mode 100644 index 0000000..cc7c917 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02RT.ICO new file mode 100644 index 0000000..b8b46ea Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02UP.ICO new file mode 100644 index 0000000..428cb24 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW02UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03DN.ICO new file mode 100644 index 0000000..7f3d6cf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03LT.ICO new file mode 100644 index 0000000..c464f1e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03RT.ICO new file mode 100644 index 0000000..5510d80 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03UP.ICO new file mode 100644 index 0000000..72c7165 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW03UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04DN.ICO new file mode 100644 index 0000000..a3e4618 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04LT.ICO new file mode 100644 index 0000000..5543724 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04RT.ICO new file mode 100644 index 0000000..39bd988 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04UP.ICO new file mode 100644 index 0000000..10bfa47 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW04UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05DN.ICO new file mode 100644 index 0000000..34b4873 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05LT.ICO new file mode 100644 index 0000000..1c222f6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05RT.ICO new file mode 100644 index 0000000..83d5485 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05UP.ICO new file mode 100644 index 0000000..e20cb41 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW05UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06DN.ICO new file mode 100644 index 0000000..782accc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06LT.ICO new file mode 100644 index 0000000..32fd2e8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06RT.ICO new file mode 100644 index 0000000..5f65c0a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06UP.ICO new file mode 100644 index 0000000..d339154 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW06UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07DN.ICO new file mode 100644 index 0000000..39dd5d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07LT.ICO new file mode 100644 index 0000000..798970b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07RT.ICO new file mode 100644 index 0000000..a1f4d36 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07UP.ICO new file mode 100644 index 0000000..5c66e0e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW07UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08DN.ICO new file mode 100644 index 0000000..486ba2a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08LT.ICO new file mode 100644 index 0000000..db1bede Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08RT.ICO new file mode 100644 index 0000000..29c8526 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08UP.ICO new file mode 100644 index 0000000..4bc0c80 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW08UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09DN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09DN.ICO new file mode 100644 index 0000000..2007d1b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09DN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09LT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09LT.ICO new file mode 100644 index 0000000..b18b9ff Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09LT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09RT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09RT.ICO new file mode 100644 index 0000000..0d5a6f2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09RT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09UP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09UP.ICO new file mode 100644 index 0000000..d6e7cc1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW09UP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10NE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10NE.ICO new file mode 100644 index 0000000..9a12018 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10NE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10NW.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10NW.ICO new file mode 100644 index 0000000..c58fe0d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10NW.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10SE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10SE.ICO new file mode 100644 index 0000000..d784be9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10SE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10SW.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10SW.ICO new file mode 100644 index 0000000..ec3963f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW10SW.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11NE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11NE.ICO new file mode 100644 index 0000000..8a05d4a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11NE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11NW.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11NW.ICO new file mode 100644 index 0000000..75f1f3e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11NW.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11SE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11SE.ICO new file mode 100644 index 0000000..b345dba Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11SE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11SW.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11SW.ICO new file mode 100644 index 0000000..154fb6f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/ARW11SW.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT01.ICO new file mode 100644 index 0000000..48b8c4d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT02.ICO new file mode 100644 index 0000000..854e0ee Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT03.ICO new file mode 100644 index 0000000..d6ae594 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT04.ICO new file mode 100644 index 0000000..1ba260e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT05.ICO new file mode 100644 index 0000000..8c3d673 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT06.ICO new file mode 100644 index 0000000..ccdf481 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT07.ICO new file mode 100644 index 0000000..77553ca Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT08.ICO new file mode 100644 index 0000000..875c2e9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT09.ICO new file mode 100644 index 0000000..f95eed9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT10.ICO new file mode 100644 index 0000000..05f7570 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT11.ICO new file mode 100644 index 0000000..17ce583 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT12.ICO new file mode 100644 index 0000000..7b60869 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT13.ICO new file mode 100644 index 0000000..57a6b78 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT14.ICO new file mode 100644 index 0000000..83ce568 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT15.ICO new file mode 100644 index 0000000..9c09552 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ARROWS/POINT15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/HANDSHAK.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/HANDSHAK.ICO new file mode 100644 index 0000000..be16464 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/HANDSHAK.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET01.ICO new file mode 100644 index 0000000..22bef58 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET02.ICO new file mode 100644 index 0000000..675a992 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET03.ICO new file mode 100644 index 0000000..1dced01 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET04.ICO new file mode 100644 index 0000000..b10ab85 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET05.ICO new file mode 100644 index 0000000..7b5809b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET06.ICO new file mode 100644 index 0000000..7589ca9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET07.ICO new file mode 100644 index 0000000..67b3a6b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET08.ICO new file mode 100644 index 0000000..b393c06 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET09A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET09A.ICO new file mode 100644 index 0000000..46e18ae Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET09A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET09B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET09B.ICO new file mode 100644 index 0000000..1dc0af7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET09B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET10A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET10A.ICO new file mode 100644 index 0000000..3113cd8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET10A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET10B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET10B.ICO new file mode 100644 index 0000000..caa35db Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET10B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET11.ICO new file mode 100644 index 0000000..cf764f3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET12.ICO new file mode 100644 index 0000000..a5e4764 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET13.ICO new file mode 100644 index 0000000..8589d3d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET14.ICO new file mode 100644 index 0000000..e18eaba Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/NET14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE01.ICO new file mode 100644 index 0000000..6054981 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE02.ICO new file mode 100644 index 0000000..b1f8d02 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE03.ICO new file mode 100644 index 0000000..76c5391 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE04.ICO new file mode 100644 index 0000000..b54303f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE05.ICO new file mode 100644 index 0000000..930b4a1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE06.ICO new file mode 100644 index 0000000..c9a533f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE07.ICO new file mode 100644 index 0000000..acfcd21 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE08.ICO new file mode 100644 index 0000000..1c1d0cc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE09.ICO new file mode 100644 index 0000000..84ceed3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE10.ICO new file mode 100644 index 0000000..bebcb89 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE11.ICO new file mode 100644 index 0000000..0623ce4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE12.ICO new file mode 100644 index 0000000..4d263d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE13.ICO new file mode 100644 index 0000000..18da420 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE14.ICO new file mode 100644 index 0000000..29ed4c3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE15.ICO new file mode 100644 index 0000000..33af330 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE16.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE16.ICO new file mode 100644 index 0000000..2e9e940 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMM/PHONE16.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/CDROM01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/CDROM01.ICO new file mode 100644 index 0000000..c786ddb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/CDROM01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/CDROM02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/CDROM02.ICO new file mode 100644 index 0000000..e780d7e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/CDROM02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK01.ICO new file mode 100644 index 0000000..3808250 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK02.ICO new file mode 100644 index 0000000..10ac1c8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK03.ICO new file mode 100644 index 0000000..04a4d65 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK04.ICO new file mode 100644 index 0000000..a4211b8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK05.ICO new file mode 100644 index 0000000..edbfd6d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK06.ICO new file mode 100644 index 0000000..7d30504 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK07.ICO new file mode 100644 index 0000000..bc02d99 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK08.ICO new file mode 100644 index 0000000..bd38a58 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK09.ICO new file mode 100644 index 0000000..69d1c7a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK10.ICO new file mode 100644 index 0000000..944e39a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK11.ICO new file mode 100644 index 0000000..49e588a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK12.ICO new file mode 100644 index 0000000..8b21b36 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK13.ICO new file mode 100644 index 0000000..9f8f225 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK14.ICO new file mode 100644 index 0000000..6e2c68d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK15.ICO new file mode 100644 index 0000000..fe04b5c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISK15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS01.ICO new file mode 100644 index 0000000..31b9fef Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS02.ICO new file mode 100644 index 0000000..6c8d3ee Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS03.ICO new file mode 100644 index 0000000..23ad2a6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS04.ICO new file mode 100644 index 0000000..6454470 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DISKS04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DRIVE01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DRIVE01.ICO new file mode 100644 index 0000000..d83c1e0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DRIVE01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DRIVE02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DRIVE02.ICO new file mode 100644 index 0000000..f6d45eb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/DRIVE02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/FORM.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/FORM.ICO new file mode 100644 index 0000000..a7f44b4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/FORM.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/INFO.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/INFO.ICO new file mode 100644 index 0000000..883470b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/INFO.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY01.ICO new file mode 100644 index 0000000..082b336 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY02.ICO new file mode 100644 index 0000000..80b0015 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY03.ICO new file mode 100644 index 0000000..b5fd423 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY04.ICO new file mode 100644 index 0000000..498290e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY05.ICO new file mode 100644 index 0000000..60993bb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY06.ICO new file mode 100644 index 0000000..a8aded0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY07.ICO new file mode 100644 index 0000000..6f17e06 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEY07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD01.ICO new file mode 100644 index 0000000..c81668a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD02.ICO new file mode 100644 index 0000000..9c563d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD03.ICO new file mode 100644 index 0000000..c72f62a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYBRD03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS01.ICO new file mode 100644 index 0000000..57feb99 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS02.ICO new file mode 100644 index 0000000..987d2d3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS03.ICO new file mode 100644 index 0000000..8f60405 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/KEYS03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC01.ICO new file mode 100644 index 0000000..af601fa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC02.ICO new file mode 100644 index 0000000..42736dc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC03.ICO new file mode 100644 index 0000000..9663dc6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC04.ICO new file mode 100644 index 0000000..08b76ae Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MAC04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MDICHILD.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MDICHILD.ICO new file mode 100644 index 0000000..e95dedb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MDICHILD.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MDIPARNT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MDIPARNT.ICO new file mode 100644 index 0000000..dfcbe0c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MDIPARNT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MONITR01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MONITR01.ICO new file mode 100644 index 0000000..2326588 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MONITR01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE01.ICO new file mode 100644 index 0000000..b50dc40 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE02.ICO new file mode 100644 index 0000000..c855f94 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE03.ICO new file mode 100644 index 0000000..e2a160f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE04.ICO new file mode 100644 index 0000000..82db1a3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MOUSE04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX01.ICO new file mode 100644 index 0000000..c98372a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX02.ICO new file mode 100644 index 0000000..5d506b9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX03.ICO new file mode 100644 index 0000000..5074da9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX04.ICO new file mode 100644 index 0000000..6e452cf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/MSGBOX04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC01.ICO new file mode 100644 index 0000000..13cfb56 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC02.ICO new file mode 100644 index 0000000..19ae137 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC03.ICO new file mode 100644 index 0000000..c5e4221 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC04.ICO new file mode 100644 index 0000000..64450e7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/PC04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH01.ICO new file mode 100644 index 0000000..afcf3ba Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH02A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH02A.ICO new file mode 100644 index 0000000..a7eb227 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH02A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH02B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH02B.ICO new file mode 100644 index 0000000..4499302 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH02B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH03.ICO new file mode 100644 index 0000000..889077c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH04A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH04A.ICO new file mode 100644 index 0000000..5ffe336 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH04A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH04B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH04B.ICO new file mode 100644 index 0000000..102a41c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/TRASH04B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX01.ICO new file mode 100644 index 0000000..f62e1d1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX02.ICO new file mode 100644 index 0000000..a63d9c3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX03.ICO new file mode 100644 index 0000000..c279fa3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX04.ICO new file mode 100644 index 0000000..7e0ff7f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/COMPUTER/W95MBX04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG1PG.ICO b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG1PG.ICO new file mode 100644 index 0000000..18965af Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG1PG.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG2PG.ICO b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG2PG.ICO new file mode 100644 index 0000000..6e110f5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG2PG.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG3PG.ICO b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG3PG.ICO new file mode 100644 index 0000000..7dcbd55 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAG3PG.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAGFLDR.ICO b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAGFLDR.ICO new file mode 100644 index 0000000..a1f7b0f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DRAGFLDR.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DROP1PG.ICO b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DROP1PG.ICO new file mode 100644 index 0000000..6014215 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DROP1PG.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DROPFLDR.ICO b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DROPFLDR.ICO new file mode 100644 index 0000000..027665f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/DRAGDROP/DROPFLDR.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/CLOUD.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/CLOUD.ICO new file mode 100644 index 0000000..e58ad0d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/CLOUD.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/EARTH.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/EARTH.ICO new file mode 100644 index 0000000..1aae88c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/EARTH.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/FIRE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/FIRE.ICO new file mode 100644 index 0000000..bf86373 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/FIRE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/LITENING.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/LITENING.ICO new file mode 100644 index 0000000..525ba8d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/LITENING.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON01.ICO new file mode 100644 index 0000000..0145928 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON02.ICO new file mode 100644 index 0000000..6ac1c26 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON03.ICO new file mode 100644 index 0000000..7f6f9a3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON04.ICO new file mode 100644 index 0000000..f1ec9bb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON05.ICO new file mode 100644 index 0000000..398e87d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON06.ICO new file mode 100644 index 0000000..a68371d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON07.ICO new file mode 100644 index 0000000..e63fcac Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON08.ICO new file mode 100644 index 0000000..85fca5b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/MOON08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/RAIN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/RAIN.ICO new file mode 100644 index 0000000..b0d1696 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/RAIN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/SNOW.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/SNOW.ICO new file mode 100644 index 0000000..8ab1ffd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/SNOW.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/SUN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/SUN.ICO new file mode 100644 index 0000000..0d1bc90 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/SUN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/WATER.ICO b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/WATER.ICO new file mode 100644 index 0000000..cec7104 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/ELEMENTS/WATER.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRCAN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRCAN.ICO new file mode 100644 index 0000000..eb4a684 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRCAN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRFRAN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRFRAN.ICO new file mode 100644 index 0000000..845f1a4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRFRAN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRGERM.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRGERM.ICO new file mode 100644 index 0000000..c31af31 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRGERM.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRITALY.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRITALY.ICO new file mode 100644 index 0000000..96b48d5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRITALY.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRJAPAN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRJAPAN.ICO new file mode 100644 index 0000000..5bb0683 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRJAPAN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRMEX.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRMEX.ICO new file mode 100644 index 0000000..0afaade Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRMEX.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRSKOR.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRSKOR.ICO new file mode 100644 index 0000000..deb6cf9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRSKOR.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRSPAIN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRSPAIN.ICO new file mode 100644 index 0000000..e1996e4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRSPAIN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRUK.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRUK.ICO new file mode 100644 index 0000000..4a4fbfa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRUK.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRUSA.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRUSA.ICO new file mode 100644 index 0000000..a2cbbb8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/CTRUSA.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGASTRL.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGASTRL.ICO new file mode 100644 index 0000000..7d75e56 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGASTRL.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGAUSTA.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGAUSTA.ICO new file mode 100644 index 0000000..adfbc6d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGAUSTA.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGBELG.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGBELG.ICO new file mode 100644 index 0000000..7dcdab2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGBELG.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGBRAZL.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGBRAZL.ICO new file mode 100644 index 0000000..42f776a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGBRAZL.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGCAN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGCAN.ICO new file mode 100644 index 0000000..80daff4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGCAN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGDEN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGDEN.ICO new file mode 100644 index 0000000..4f50e32 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGDEN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGFIN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGFIN.ICO new file mode 100644 index 0000000..ced4b4a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGFIN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGFRAN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGFRAN.ICO new file mode 100644 index 0000000..cc5bef1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGFRAN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGGERM.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGGERM.ICO new file mode 100644 index 0000000..7cae0da Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGGERM.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGIREL.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGIREL.ICO new file mode 100644 index 0000000..dc730f0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGIREL.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGITALY.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGITALY.ICO new file mode 100644 index 0000000..7380f64 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGITALY.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGJAPAN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGJAPAN.ICO new file mode 100644 index 0000000..f5d1fc9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGJAPAN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGMEX.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGMEX.ICO new file mode 100644 index 0000000..22f793a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGMEX.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNETH.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNETH.ICO new file mode 100644 index 0000000..d0d58d0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNETH.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNORW.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNORW.ICO new file mode 100644 index 0000000..20ab64a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNORW.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNZ.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNZ.ICO new file mode 100644 index 0000000..44f9d5b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGNZ.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGPORT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGPORT.ICO new file mode 100644 index 0000000..168ad72 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGPORT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGRSA.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGRSA.ICO new file mode 100644 index 0000000..f8da7bf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGRSA.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGRUS.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGRUS.ICO new file mode 100644 index 0000000..5921eff Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGRUS.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSKOR.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSKOR.ICO new file mode 100644 index 0000000..de4ee55 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSKOR.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSPAIN.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSPAIN.ICO new file mode 100644 index 0000000..ac08019 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSPAIN.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSWED.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSWED.ICO new file mode 100644 index 0000000..7022a6b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSWED.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSWITZ.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSWITZ.ICO new file mode 100644 index 0000000..35324d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGSWITZ.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGTURK.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGTURK.ICO new file mode 100644 index 0000000..39cd65a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGTURK.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUK.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUK.ICO new file mode 100644 index 0000000..50ce426 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUK.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUSA01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUSA01.ICO new file mode 100644 index 0000000..3c689c9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUSA01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUSA02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUSA02.ICO new file mode 100644 index 0000000..dc30bb6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/FLAGS/FLGUSA02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/BICYCLE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/BICYCLE.ICO new file mode 100644 index 0000000..0c14e7b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/BICYCLE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/CARS.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/CARS.ICO new file mode 100644 index 0000000..e319782 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/CARS.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/FACTORY.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/FACTORY.ICO new file mode 100644 index 0000000..7909ccc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/FACTORY.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/GASPUMP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/GASPUMP.ICO new file mode 100644 index 0000000..426e896 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/GASPUMP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/HAMMER.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/HAMMER.ICO new file mode 100644 index 0000000..a7d37ad Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/HAMMER.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/PLANE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/PLANE.ICO new file mode 100644 index 0000000..7047c06 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/PLANE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/ROCKET.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/ROCKET.ICO new file mode 100644 index 0000000..7517f8f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/ROCKET.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/SINEWAVE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/SINEWAVE.ICO new file mode 100644 index 0000000..09f70ef Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/SINEWAVE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/WRENCH.ICO b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/WRENCH.ICO new file mode 100644 index 0000000..55777df Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/INDUSTRY/WRENCH.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL01A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL01A.ICO new file mode 100644 index 0000000..dab194f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL01A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL01B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL01B.ICO new file mode 100644 index 0000000..ecee1c7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL01B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL02A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL02A.ICO new file mode 100644 index 0000000..ec25324 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL02A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL02B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL02B.ICO new file mode 100644 index 0000000..81de3b7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL02B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL03.ICO new file mode 100644 index 0000000..e8fb18e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL04.ICO new file mode 100644 index 0000000..f782ae1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL05A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL05A.ICO new file mode 100644 index 0000000..325d1fd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL05A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL05B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL05B.ICO new file mode 100644 index 0000000..89d9715 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL05B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL06.ICO new file mode 100644 index 0000000..bc281a6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL07.ICO new file mode 100644 index 0000000..f555bd9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL08.ICO new file mode 100644 index 0000000..150fd97 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL09.ICO new file mode 100644 index 0000000..5c75c03 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL10.ICO new file mode 100644 index 0000000..d19ff4c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL11.ICO new file mode 100644 index 0000000..2fc69ac Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL12.ICO new file mode 100644 index 0000000..8edea57 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL13.ICO new file mode 100644 index 0000000..20d66e5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL14.ICO new file mode 100644 index 0000000..e81e838 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL15.ICO new file mode 100644 index 0000000..a8d9e05 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL16A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL16A.ICO new file mode 100644 index 0000000..4a7cba9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL16A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL16B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL16B.ICO new file mode 100644 index 0000000..50d6f24 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL16B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL17.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL17.ICO new file mode 100644 index 0000000..2802994 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL17.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL18.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL18.ICO new file mode 100644 index 0000000..7152966 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL18.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL19A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL19A.ICO new file mode 100644 index 0000000..23411c3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL19A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL19B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL19B.ICO new file mode 100644 index 0000000..d48eafb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL19B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL20.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL20.ICO new file mode 100644 index 0000000..ca3f3fa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL20.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL21A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL21A.ICO new file mode 100644 index 0000000..073efa9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL21A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL21B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL21B.ICO new file mode 100644 index 0000000..ba806a7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MAIL/MAIL21B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/BINOCULR.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/BINOCULR.ICO new file mode 100644 index 0000000..bd8202e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/BINOCULR.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/BRIDGE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/BRIDGE.ICO new file mode 100644 index 0000000..8ea8a19 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/BRIDGE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/BULLSEYE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/BULLSEYE.ICO new file mode 100644 index 0000000..7c2d65c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/BULLSEYE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CAMERA.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CAMERA.ICO new file mode 100644 index 0000000..b91eabf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CAMERA.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CHECKMRK.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CHECKMRK.ICO new file mode 100644 index 0000000..2eb7ca6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CHECKMRK.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC1.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC1.ICO new file mode 100644 index 0000000..c6e84fe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC1.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC2.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC2.ICO new file mode 100644 index 0000000..07331c5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC2.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC3.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC3.ICO new file mode 100644 index 0000000..553cab1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CIRC3.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK01.ICO new file mode 100644 index 0000000..bd57015 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK02.ICO new file mode 100644 index 0000000..e741606 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK03.ICO new file mode 100644 index 0000000..2cc4663 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK04.ICO new file mode 100644 index 0000000..6d1e0de Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK05.ICO new file mode 100644 index 0000000..8105228 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK06.ICO new file mode 100644 index 0000000..b2b4c54 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/CLOCK06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/EAR.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/EAR.ICO new file mode 100644 index 0000000..861eeee Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/EAR.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/EXCLEM.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/EXCLEM.ICO new file mode 100644 index 0000000..90fe0f2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/EXCLEM.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/EYE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/EYE.ICO new file mode 100644 index 0000000..b1c65e6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/EYE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE01.ICO new file mode 100644 index 0000000..913675e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE02.ICO new file mode 100644 index 0000000..01ffe5f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE03.ICO new file mode 100644 index 0000000..fe9e890 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE04.ICO new file mode 100644 index 0000000..e334096 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE05.ICO new file mode 100644 index 0000000..4ff50a3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/FACE05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/HOUSE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/HOUSE.ICO new file mode 100644 index 0000000..ace297b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/HOUSE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/LIGHTOFF.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/LIGHTOFF.ICO new file mode 100644 index 0000000..df27ad9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/LIGHTOFF.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/LIGHTON.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/LIGHTON.ICO new file mode 100644 index 0000000..4dd94b9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/LIGHTON.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MIKE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MIKE.ICO new file mode 100644 index 0000000..cb781a2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MIKE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC01.ICO new file mode 100644 index 0000000..4d44b6b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC02.ICO new file mode 100644 index 0000000..8adf5e6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC03.ICO new file mode 100644 index 0000000..8e47f79 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC04.ICO new file mode 100644 index 0000000..9fd9888 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC05.ICO new file mode 100644 index 0000000..2b45d90 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC06.ICO new file mode 100644 index 0000000..bfe8216 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC07.ICO new file mode 100644 index 0000000..dfe84c1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC08.ICO new file mode 100644 index 0000000..c8d6c45 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC09.ICO new file mode 100644 index 0000000..f19a6d9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC10.ICO new file mode 100644 index 0000000..dc31641 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC11.ICO new file mode 100644 index 0000000..9c96035 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC12.ICO new file mode 100644 index 0000000..4c4f926 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC13.ICO new file mode 100644 index 0000000..929a6f5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC14.ICO new file mode 100644 index 0000000..cd23fb9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC15.ICO new file mode 100644 index 0000000..6f745d4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC16A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC16A.ICO new file mode 100644 index 0000000..ad52d5e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC16A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC16B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC16B.ICO new file mode 100644 index 0000000..0bedefe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC16B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC17A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC17A.ICO new file mode 100644 index 0000000..98587ad Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC17A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC17B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC17B.ICO new file mode 100644 index 0000000..0d864ae Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC17B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC18.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC18.ICO new file mode 100644 index 0000000..209e52e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC18.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC19.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC19.ICO new file mode 100644 index 0000000..e5790e7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC19.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC20.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC20.ICO new file mode 100644 index 0000000..193efca Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC20.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC21.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC21.ICO new file mode 100644 index 0000000..11fd7e8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC21.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC22.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC22.ICO new file mode 100644 index 0000000..16f0281 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC22.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC23.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC23.ICO new file mode 100644 index 0000000..67129f3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC23.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC24.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC24.ICO new file mode 100644 index 0000000..3c7e118 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC24.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC25.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC25.ICO new file mode 100644 index 0000000..9f19892 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC25.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC26.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC26.ICO new file mode 100644 index 0000000..02fb981 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC26.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC27.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC27.ICO new file mode 100644 index 0000000..6412e78 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC27.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC28.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC28.ICO new file mode 100644 index 0000000..f48a42d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC28.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC29.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC29.ICO new file mode 100644 index 0000000..e3b61de Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC29.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC30.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC30.ICO new file mode 100644 index 0000000..71e5e81 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC30.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC31.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC31.ICO new file mode 100644 index 0000000..fd9c100 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC31.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC32.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC32.ICO new file mode 100644 index 0000000..0f26d3c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC32.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC33.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC33.ICO new file mode 100644 index 0000000..ab10427 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC33.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC34.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC34.ICO new file mode 100644 index 0000000..5f9655c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC34.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC35.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC35.ICO new file mode 100644 index 0000000..0dc0352 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC35.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC36.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC36.ICO new file mode 100644 index 0000000..0cd5ff6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC36.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC37.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC37.ICO new file mode 100644 index 0000000..c9f1913 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC37.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC38.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC38.ICO new file mode 100644 index 0000000..88dba7d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC38.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC39A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC39A.ICO new file mode 100644 index 0000000..6912bbc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC39A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC39B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC39B.ICO new file mode 100644 index 0000000..4e72182 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC39B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC40.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC40.ICO new file mode 100644 index 0000000..67a96d1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC40.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC41.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC41.ICO new file mode 100644 index 0000000..26d7dd0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC41.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC42.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC42.ICO new file mode 100644 index 0000000..35000f7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC42.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC43.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC43.ICO new file mode 100644 index 0000000..a840b3d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC43.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC44.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC44.ICO new file mode 100644 index 0000000..731226f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/MISC44.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/QUESTION.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/QUESTION.ICO new file mode 100644 index 0000000..43b9c20 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/QUESTION.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR01A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR01A.ICO new file mode 100644 index 0000000..b0e7b3a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR01A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR01B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR01B.ICO new file mode 100644 index 0000000..8a6226c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR01B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR02A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR02A.ICO new file mode 100644 index 0000000..ba565d9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR02A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR02B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR02B.ICO new file mode 100644 index 0000000..682d2ca Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR02B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR03.ICO new file mode 100644 index 0000000..bfab992 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR04.ICO new file mode 100644 index 0000000..86cc449 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR05.ICO new file mode 100644 index 0000000..6037ffd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR06.ICO new file mode 100644 index 0000000..896e06b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR07.ICO new file mode 100644 index 0000000..d9dc8c7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR08.ICO new file mode 100644 index 0000000..60e6f0c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/SECUR08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/TIMER01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/TIMER01.ICO new file mode 100644 index 0000000..5563bee Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/TIMER01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/VOLUME01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/VOLUME01.ICO new file mode 100644 index 0000000..d619d95 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/VOLUME01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/VOLUME02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/VOLUME02.ICO new file mode 100644 index 0000000..9d2bb59 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/VOLUME02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/WATCH01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/WATCH01.ICO new file mode 100644 index 0000000..98a3192 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/WATCH01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/MISC/WATCH02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/MISC/WATCH02.ICO new file mode 100644 index 0000000..8cd2ee5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/MISC/WATCH02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP01.ICO new file mode 100644 index 0000000..be6d9d2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP02.ICO new file mode 100644 index 0000000..2a1ff76 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP03.ICO new file mode 100644 index 0000000..a5a3c95 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP04.ICO new file mode 100644 index 0000000..2a1ba9d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP05.ICO new file mode 100644 index 0000000..3fbd2c6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP06.ICO new file mode 100644 index 0000000..60649c0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP07.ICO new file mode 100644 index 0000000..a0a5a2b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP08.ICO new file mode 100644 index 0000000..c7397e5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CLIP08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE01.ICO new file mode 100644 index 0000000..b96b91f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE02.ICO new file mode 100644 index 0000000..6068fc4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE03.ICO new file mode 100644 index 0000000..9147a66 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE04.ICO new file mode 100644 index 0000000..4041fd1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE05.ICO new file mode 100644 index 0000000..6dc4134 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE06.ICO new file mode 100644 index 0000000..b835846 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE07.ICO new file mode 100644 index 0000000..2f4a01c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE08.ICO new file mode 100644 index 0000000..9b1d876 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE09.ICO new file mode 100644 index 0000000..d59666d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE10.ICO new file mode 100644 index 0000000..49c6eab Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE11.ICO new file mode 100644 index 0000000..3ace929 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE12.ICO new file mode 100644 index 0000000..39baa8e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE13.ICO new file mode 100644 index 0000000..ade29d7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/CRDFLE13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES01A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES01A.ICO new file mode 100644 index 0000000..cce0b4d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES01A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES01B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES01B.ICO new file mode 100644 index 0000000..01e8913 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES01B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES02A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES02A.ICO new file mode 100644 index 0000000..bb14d71 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES02A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES02B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES02B.ICO new file mode 100644 index 0000000..047ce39 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES02B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES03A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES03A.ICO new file mode 100644 index 0000000..654ac52 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES03A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES03B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES03B.ICO new file mode 100644 index 0000000..6ec530a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES03B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES04.ICO new file mode 100644 index 0000000..de26392 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES05A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES05A.ICO new file mode 100644 index 0000000..5a0f714 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES05A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES05B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES05B.ICO new file mode 100644 index 0000000..2b4e65f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES05B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES06.ICO new file mode 100644 index 0000000..5f2a675 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES07.ICO new file mode 100644 index 0000000..ef31cec Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES08.ICO new file mode 100644 index 0000000..a2b996b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES09.ICO new file mode 100644 index 0000000..d66796a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES10.ICO new file mode 100644 index 0000000..79829ca Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FILES10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER01.ICO new file mode 100644 index 0000000..2ba859f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER02.ICO new file mode 100644 index 0000000..f283a07 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER03.ICO new file mode 100644 index 0000000..8e6e181 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER04.ICO new file mode 100644 index 0000000..996d8c7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER05.ICO new file mode 100644 index 0000000..1639b82 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER06.ICO new file mode 100644 index 0000000..2a152ec Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDER06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDRS01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDRS01.ICO new file mode 100644 index 0000000..a926c15 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDRS01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDRS02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDRS02.ICO new file mode 100644 index 0000000..1878705 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/FOLDRS02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH01.ICO new file mode 100644 index 0000000..1524c5f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH02.ICO new file mode 100644 index 0000000..32ea835 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH03.ICO new file mode 100644 index 0000000..a934381 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH04.ICO new file mode 100644 index 0000000..d279824 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH05.ICO new file mode 100644 index 0000000..74eef68 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH06.ICO new file mode 100644 index 0000000..a75de6a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH07.ICO new file mode 100644 index 0000000..5f83fc0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH08.ICO new file mode 100644 index 0000000..347e34f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH09.ICO new file mode 100644 index 0000000..ee45e81 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH10.ICO new file mode 100644 index 0000000..60e723b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH11.ICO new file mode 100644 index 0000000..c2625a5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH12.ICO new file mode 100644 index 0000000..f5c85c5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH13.ICO new file mode 100644 index 0000000..9b7f805 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH14.ICO new file mode 100644 index 0000000..8f85539 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH15.ICO new file mode 100644 index 0000000..221d097 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH16.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH16.ICO new file mode 100644 index 0000000..51bdf64 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/GRAPH16.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/LABELS.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/LABELS.ICO new file mode 100644 index 0000000..03971bb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/LABELS.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/RULERS.ICO b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/RULERS.ICO new file mode 100644 index 0000000..6a50979 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/OFFICE/RULERS.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC01.ICO new file mode 100644 index 0000000..cfcf680 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC02.ICO new file mode 100644 index 0000000..bd47d61 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC03.ICO new file mode 100644 index 0000000..95e90b4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC04.ICO new file mode 100644 index 0000000..7d34568 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC05.ICO new file mode 100644 index 0000000..03baa61 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC06.ICO new file mode 100644 index 0000000..e20c8fe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC07.ICO new file mode 100644 index 0000000..f9d2830 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC08.ICO new file mode 100644 index 0000000..423c7b1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC09.ICO new file mode 100644 index 0000000..fddb5e1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10A.ICO new file mode 100644 index 0000000..daf657c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10B.ICO new file mode 100644 index 0000000..e0c6a37 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10C.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10C.ICO new file mode 100644 index 0000000..3fd8658 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC10C.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC11.ICO new file mode 100644 index 0000000..0b797c2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC12.ICO new file mode 100644 index 0000000..27483bc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC13.ICO new file mode 100644 index 0000000..3fd2ad1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC14.ICO new file mode 100644 index 0000000..d2a0ba7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC15.ICO new file mode 100644 index 0000000..b8ef97f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC16.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC16.ICO new file mode 100644 index 0000000..8ff40e3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC16.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC17.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC17.ICO new file mode 100644 index 0000000..fc2ac35 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC17.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC18A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC18A.ICO new file mode 100644 index 0000000..63fbacb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC18A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC18B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC18B.ICO new file mode 100644 index 0000000..bf92c0a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC18B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC19A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC19A.ICO new file mode 100644 index 0000000..3667fc8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC19A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC19B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC19B.ICO new file mode 100644 index 0000000..055bc8c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC19B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC20.ICO b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC20.ICO new file mode 100644 index 0000000..16b7eeb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/TRAFFIC/TRFFC20.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/35FLOPPY.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/35FLOPPY.ICO new file mode 100644 index 0000000..e9551d6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/35FLOPPY.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/525FLOP1.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/525FLOP1.ICO new file mode 100644 index 0000000..37a8a03 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/525FLOP1.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/AUDIO.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/AUDIO.ICO new file mode 100644 index 0000000..a2fb8e8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/AUDIO.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CDDRIVE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CDDRIVE.ICO new file mode 100644 index 0000000..8bf7de7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CDDRIVE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CLSDFOLD.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CLSDFOLD.ICO new file mode 100644 index 0000000..adfd173 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CLSDFOLD.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CTRPANEL.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CTRPANEL.ICO new file mode 100644 index 0000000..eb12f76 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/CTRPANEL.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DESKTOP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DESKTOP.ICO new file mode 100644 index 0000000..655cdf8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DESKTOP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVE.ICO new file mode 100644 index 0000000..b4c111b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVEDSC.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVEDSC.ICO new file mode 100644 index 0000000..92454d9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVEDSC.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVENET.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVENET.ICO new file mode 100644 index 0000000..4f60843 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/DRIVENET.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/ENTIRNET.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/ENTIRNET.ICO new file mode 100644 index 0000000..1c4889c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/ENTIRNET.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/EXPLORER.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/EXPLORER.ICO new file mode 100644 index 0000000..77a177a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/EXPLORER.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/MYCOMP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/MYCOMP.ICO new file mode 100644 index 0000000..bd42e29 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/MYCOMP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/NETHOOD.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/NETHOOD.ICO new file mode 100644 index 0000000..32afbba Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/NETHOOD.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/OPENFOLD.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/OPENFOLD.ICO new file mode 100644 index 0000000..d36827b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/OPENFOLD.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/PRINTFLD.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/PRINTFLD.ICO new file mode 100644 index 0000000..5987868 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/PRINTFLD.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/RECYFULL.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/RECYFULL.ICO new file mode 100644 index 0000000..461da42 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/RECYFULL.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/REMTEACC.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/REMTEACC.ICO new file mode 100644 index 0000000..883c652 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/REMTEACC.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WIN95/WASTE.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/WASTE.ICO new file mode 100644 index 0000000..61598c2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WIN95/WASTE.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK01A.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK01A.ICO new file mode 100644 index 0000000..9d86787 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK01A.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK01B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK01B.ICO new file mode 100644 index 0000000..aaae9e9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK01B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK02.ICO new file mode 100644 index 0000000..5a3fb2a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK03.ICO new file mode 100644 index 0000000..bd35dbf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK04.ICO new file mode 100644 index 0000000..bf8dd39 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK05.ICO new file mode 100644 index 0000000..98f7f5b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK06.ICO new file mode 100644 index 0000000..a4c240b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOK06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS01.ICO new file mode 100644 index 0000000..77ac68a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS02.ICO new file mode 100644 index 0000000..192a87e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS03.ICO new file mode 100644 index 0000000..6110e1d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS04.ICO new file mode 100644 index 0000000..d5c06a3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS05.ICO new file mode 100644 index 0000000..eb5ee22 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/BOOKS05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/ERASE01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/ERASE01.ICO new file mode 100644 index 0000000..ba16119 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/ERASE01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/ERASE02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/ERASE02.ICO new file mode 100644 index 0000000..0d82b35 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/ERASE02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/FONT01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/FONT01.ICO new file mode 100644 index 0000000..a7acbbd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/FONT01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/FONT02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/FONT02.ICO new file mode 100644 index 0000000..da898c6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/FONT02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/LANDSCAP.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/LANDSCAP.ICO new file mode 100644 index 0000000..f40d99c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/LANDSCAP.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE01.ICO new file mode 100644 index 0000000..d57bec4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE02.ICO new file mode 100644 index 0000000..445697d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE03.ICO new file mode 100644 index 0000000..1caf27d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE04.ICO new file mode 100644 index 0000000..7121d04 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE05.ICO new file mode 100644 index 0000000..c478951 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE06.ICO new file mode 100644 index 0000000..6647fdd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE07.ICO new file mode 100644 index 0000000..05b5b33 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE08.ICO new file mode 100644 index 0000000..a890ff7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE09.ICO new file mode 100644 index 0000000..b8eb4a5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10.ICO new file mode 100644 index 0000000..6ac5867 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10B.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10B.ICO new file mode 100644 index 0000000..48c2a37 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10B.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10C.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10C.ICO new file mode 100644 index 0000000..d6e5d96 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE10C.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE11.ICO new file mode 100644 index 0000000..89a6530 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE12.ICO new file mode 100644 index 0000000..363b796 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE13.ICO new file mode 100644 index 0000000..4bb50e8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE14.ICO new file mode 100644 index 0000000..998dbd2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE15.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE15.ICO new file mode 100644 index 0000000..5849986 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE15.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE16.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE16.ICO new file mode 100644 index 0000000..94b185c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE16.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE17.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE17.ICO new file mode 100644 index 0000000..84e8b70 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE17.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE18.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE18.ICO new file mode 100644 index 0000000..6fca618 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/NOTE18.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN01.ICO new file mode 100644 index 0000000..cbfc76c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN02.ICO new file mode 100644 index 0000000..8b9f4b9 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN03.ICO new file mode 100644 index 0000000..51aa2e8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN04.ICO new file mode 100644 index 0000000..30f0881 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN05.ICO new file mode 100644 index 0000000..f7db836 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN06.ICO new file mode 100644 index 0000000..402e949 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN07.ICO new file mode 100644 index 0000000..ae256cc Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PEN07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL01.ICO new file mode 100644 index 0000000..7df9587 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL02.ICO new file mode 100644 index 0000000..63a162b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL03.ICO new file mode 100644 index 0000000..0410679 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL04.ICO new file mode 100644 index 0000000..9267a9f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL05.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL05.ICO new file mode 100644 index 0000000..0ed2af2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL05.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL06.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL06.ICO new file mode 100644 index 0000000..2254b40 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL06.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL07.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL07.ICO new file mode 100644 index 0000000..21bc4e4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL07.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL08.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL08.ICO new file mode 100644 index 0000000..6b78a37 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL08.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL09.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL09.ICO new file mode 100644 index 0000000..88848c8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL09.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL10.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL10.ICO new file mode 100644 index 0000000..7756e6e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL10.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL11.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL11.ICO new file mode 100644 index 0000000..e38f5aa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL11.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL12.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL12.ICO new file mode 100644 index 0000000..605f5f7 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL12.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL13.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL13.ICO new file mode 100644 index 0000000..c719039 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL13.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL14.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL14.ICO new file mode 100644 index 0000000..5a44df5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENCIL14.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS01.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS01.ICO new file mode 100644 index 0000000..756d519 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS01.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS02.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS02.ICO new file mode 100644 index 0000000..bd014cf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS02.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS03.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS03.ICO new file mode 100644 index 0000000..12e45c3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS03.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS04.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS04.ICO new file mode 100644 index 0000000..6d8e4aa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PENS04.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PORTRAIT.ICO b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PORTRAIT.ICO new file mode 100644 index 0000000..5b2a78b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/ICONS/WRITING/PORTRAIT.ICO differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW1.WMF new file mode 100644 index 0000000..39222bf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW2.WMF new file mode 100644 index 0000000..2326b71 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW3.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW3.WMF new file mode 100644 index 0000000..402297c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW3.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW4.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW4.WMF new file mode 100644 index 0000000..fad22fe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/2DARROW4.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW1.WMF new file mode 100644 index 0000000..3b23e91 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW2.WMF new file mode 100644 index 0000000..315ce33 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW3.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW3.WMF new file mode 100644 index 0000000..e798f12 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW3.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW4.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW4.WMF new file mode 100644 index 0000000..4d8d9d3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW4.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW5.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW5.WMF new file mode 100644 index 0000000..dfb90b3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW5.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW6.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW6.WMF new file mode 100644 index 0000000..ae287c2 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW6.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW7.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW7.WMF new file mode 100644 index 0000000..9eb13fe Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DARROW7.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DXARROW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DXARROW.WMF new file mode 100644 index 0000000..b4e9f23 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DXARROW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DXCIRAR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DXCIRAR.WMF new file mode 100644 index 0000000..f87a24f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/3DXCIRAR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HALFARRW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HALFARRW.WMF new file mode 100644 index 0000000..01c3334 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HALFARRW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HORTARRW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HORTARRW.WMF new file mode 100644 index 0000000..615f734 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HORTARRW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HOZCIRAR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HOZCIRAR.WMF new file mode 100644 index 0000000..f185850 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/HOZCIRAR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/LAYERARW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/LAYERARW.WMF new file mode 100644 index 0000000..9986440 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/LAYERARW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/LRGEARRW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/LRGEARRW.WMF new file mode 100644 index 0000000..52d7db8 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/LRGEARRW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MEDARRW1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MEDARRW1.WMF new file mode 100644 index 0000000..24b6a28 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MEDARRW1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MEDARRW2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MEDARRW2.WMF new file mode 100644 index 0000000..1c60497 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MEDARRW2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW1.WMF new file mode 100644 index 0000000..14422a0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW2.WMF new file mode 100644 index 0000000..66c9733 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW3.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW3.WMF new file mode 100644 index 0000000..dc9ee6d Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW3.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW4.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW4.WMF new file mode 100644 index 0000000..679b665 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/MULTARW4.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/SMALLARW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/SMALLARW.WMF new file mode 100644 index 0000000..be96021 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/SMALLARW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/TINYARRW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/TINYARRW.WMF new file mode 100644 index 0000000..ca03f19 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/TINYARRW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VERTARRW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VERTARRW.WMF new file mode 100644 index 0000000..5f925b5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VERTARRW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VRTCIRAR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VRTCIRAR.WMF new file mode 100644 index 0000000..edf9fb3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VRTCIRAR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VRTCURAR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VRTCURAR.WMF new file mode 100644 index 0000000..7bf2dee Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/VRTCURAR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/XARROW.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/XARROW.WMF new file mode 100644 index 0000000..2fca60b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/ARROWS/XARROW.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/3DLRSIGN.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/3DLRSIGN.WMF new file mode 100644 index 0000000..d503c39 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/3DLRSIGN.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ALPHBORD.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ALPHBORD.WMF new file mode 100644 index 0000000..fc0f1af Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ALPHBORD.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ALPHTRPN.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ALPHTRPN.WMF new file mode 100644 index 0000000..fc94eeb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ALPHTRPN.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ANSWMACH.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ANSWMACH.WMF new file mode 100644 index 0000000..9da124a Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ANSWMACH.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/APPTBOOK.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/APPTBOOK.WMF new file mode 100644 index 0000000..e82f14e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/APPTBOOK.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CALCULTR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CALCULTR.WMF new file mode 100644 index 0000000..c7931f1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CALCULTR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CALENDAR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CALENDAR.WMF new file mode 100644 index 0000000..98a2d83 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CALENDAR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CENT.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CENT.WMF new file mode 100644 index 0000000..ed143e5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CENT.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CHECK.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CHECK.WMF new file mode 100644 index 0000000..f7df692 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CHECK.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CLIPBORD.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CLIPBORD.WMF new file mode 100644 index 0000000..490434c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/CLIPBORD.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COINS.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COINS.WMF new file mode 100644 index 0000000..e208b53 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COINS.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COMPUTER.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COMPUTER.WMF new file mode 100644 index 0000000..01a6ebf Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COMPUTER.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COPYMACH.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COPYMACH.WMF new file mode 100644 index 0000000..78dfe71 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/COPYMACH.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DEUTSCH.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DEUTSCH.WMF new file mode 100644 index 0000000..af8929c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DEUTSCH.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIGITALS.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIGITALS.WMF new file mode 100644 index 0000000..5d295d0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIGITALS.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIGITNUM.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIGITNUM.WMF new file mode 100644 index 0000000..00579ef Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIGITNUM.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIME.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIME.WMF new file mode 100644 index 0000000..229b8f4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DIME.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DISK35.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DISK35.WMF new file mode 100644 index 0000000..6b3e0ef Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DISK35.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DISK525.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DISK525.WMF new file mode 100644 index 0000000..eba11f3 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DISK525.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DOLLAR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DOLLAR.WMF new file mode 100644 index 0000000..70b8b54 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DOLLAR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DOLLARS.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DOLLARS.WMF new file mode 100644 index 0000000..080c873 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/DOLLARS.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ENVLBACK.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ENVLBACK.WMF new file mode 100644 index 0000000..8d3834b Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ENVLBACK.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ENVLFRNT.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ENVLFRNT.WMF new file mode 100644 index 0000000..8335210 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ENVLFRNT.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/FILECLSD.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/FILECLSD.WMF new file mode 100644 index 0000000..2c188a0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/FILECLSD.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/FILEOPEN.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/FILEOPEN.WMF new file mode 100644 index 0000000..5248afd Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/FILEOPEN.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/GUILDER.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/GUILDER.WMF new file mode 100644 index 0000000..202628c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/GUILDER.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/HARDDISK.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/HARDDISK.WMF new file mode 100644 index 0000000..28f8604 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/HARDDISK.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/LAPTOP1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/LAPTOP1.WMF new file mode 100644 index 0000000..f293c98 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/LAPTOP1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/LAPTOP2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/LAPTOP2.WMF new file mode 100644 index 0000000..e6d6443 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/LAPTOP2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MICRCHIP.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MICRCHIP.WMF new file mode 100644 index 0000000..feef6d5 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MICRCHIP.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONEY.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONEY.WMF new file mode 100644 index 0000000..28bc164 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONEY.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONEYBAG.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONEYBAG.WMF new file mode 100644 index 0000000..a352395 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONEYBAG.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONITOR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONITOR.WMF new file mode 100644 index 0000000..d655eb6 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONITOR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONYSTK1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONYSTK1.WMF new file mode 100644 index 0000000..35c1e44 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONYSTK1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONYSTK2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONYSTK2.WMF new file mode 100644 index 0000000..c7af195 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/MONYSTK2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/NICKEL.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/NICKEL.WMF new file mode 100644 index 0000000..f096cab Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/NICKEL.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PAYPHONE.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PAYPHONE.WMF new file mode 100644 index 0000000..312002f Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PAYPHONE.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PCOMPUTR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PCOMPUTR.WMF new file mode 100644 index 0000000..1bde1fa Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PCOMPUTR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PENNY.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PENNY.WMF new file mode 100644 index 0000000..aaff2ae Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PENNY.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PESETA.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PESETA.WMF new file mode 100644 index 0000000..8c51cc1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PESETA.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PHONE.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PHONE.WMF new file mode 100644 index 0000000..b3a14e4 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PHONE.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POSTCARD.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POSTCARD.WMF new file mode 100644 index 0000000..9366b05 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POSTCARD.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POUND.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POUND.WMF new file mode 100644 index 0000000..16e364c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POUND.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POUNDBAG.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POUNDBAG.WMF new file mode 100644 index 0000000..50f9d94 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/POUNDBAG.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRINTER.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRINTER.WMF new file mode 100644 index 0000000..d261aad Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRINTER.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT1.WMF new file mode 100644 index 0000000..5e3eb4e Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT2.WMF new file mode 100644 index 0000000..379d71c Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT3.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT3.WMF new file mode 100644 index 0000000..525e842 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/PRNTOUT3.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/QUARTER.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/QUARTER.WMF new file mode 100644 index 0000000..bdc4f26 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/QUARTER.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ROLODEX.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ROLODEX.WMF new file mode 100644 index 0000000..24b9b39 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/ROLODEX.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/RUBLE.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/RUBLE.WMF new file mode 100644 index 0000000..d5227fb Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/RUBLE.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATEDISH.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATEDISH.WMF new file mode 100644 index 0000000..cf98955 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATEDISH.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATELIT1.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATELIT1.WMF new file mode 100644 index 0000000..f3c01d0 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATELIT1.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATELIT2.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATELIT2.WMF new file mode 100644 index 0000000..7c96a16 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/SATELIT2.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/TYPEWRTR.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/TYPEWRTR.WMF new file mode 100644 index 0000000..25c01ba Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/TYPEWRTR.WMF differ diff --git a/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/YEN.WMF b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/YEN.WMF new file mode 100644 index 0000000..0ebfae1 Binary files /dev/null and b/cadVb/COMMON/GRAPHICS/METAFILE/BUSINESS/YEN.WMF differ diff --git a/cadVb/COMMON/HELP/ADODC98.CHI b/cadVb/COMMON/HELP/ADODC98.CHI new file mode 100644 index 0000000..2c27249 Binary files /dev/null and b/cadVb/COMMON/HELP/ADODC98.CHI differ diff --git a/cadVb/COMMON/HELP/ADODC98.CHM b/cadVb/COMMON/HELP/ADODC98.CHM new file mode 100644 index 0000000..e301798 Binary files /dev/null and b/cadVb/COMMON/HELP/ADODC98.CHM differ diff --git a/cadVb/COMMON/HELP/CMCTL198.CHI b/cadVb/COMMON/HELP/CMCTL198.CHI new file mode 100644 index 0000000..119503d Binary files /dev/null and b/cadVb/COMMON/HELP/CMCTL198.CHI differ diff --git a/cadVb/COMMON/HELP/CMCTL198.CHM b/cadVb/COMMON/HELP/CMCTL198.CHM new file mode 100644 index 0000000..c3823e0 Binary files /dev/null and b/cadVb/COMMON/HELP/CMCTL198.CHM differ diff --git a/cadVb/COMMON/HELP/CMCTL298.CHI b/cadVb/COMMON/HELP/CMCTL298.CHI new file mode 100644 index 0000000..20566c4 Binary files /dev/null and b/cadVb/COMMON/HELP/CMCTL298.CHI differ diff --git a/cadVb/COMMON/HELP/CMCTL298.CHM b/cadVb/COMMON/HELP/CMCTL298.CHM new file mode 100644 index 0000000..29cab37 Binary files /dev/null and b/cadVb/COMMON/HELP/CMCTL298.CHM differ diff --git a/cadVb/COMMON/HELP/CMCTL398.CHI b/cadVb/COMMON/HELP/CMCTL398.CHI new file mode 100644 index 0000000..40fb837 Binary files /dev/null and b/cadVb/COMMON/HELP/CMCTL398.CHI differ diff --git a/cadVb/COMMON/HELP/CMCTL398.CHM b/cadVb/COMMON/HELP/CMCTL398.CHM new file mode 100644 index 0000000..87cfa92 Binary files /dev/null and b/cadVb/COMMON/HELP/CMCTL398.CHM differ diff --git a/cadVb/COMMON/HELP/CMDLG98.CHI b/cadVb/COMMON/HELP/CMDLG98.CHI new file mode 100644 index 0000000..065048b Binary files /dev/null and b/cadVb/COMMON/HELP/CMDLG98.CHI differ diff --git a/cadVb/COMMON/HELP/CMDLG98.CHM b/cadVb/COMMON/HELP/CMDLG98.CHM new file mode 100644 index 0000000..f03681a Binary files /dev/null and b/cadVb/COMMON/HELP/CMDLG98.CHM differ diff --git a/cadVb/COMMON/HELP/COMCTL1.CNT b/cadVb/COMMON/HELP/COMCTL1.CNT new file mode 100644 index 0000000..d4f31dc --- /dev/null +++ b/cadVb/COMMON/HELP/COMCTL1.CNT @@ -0,0 +1,38 @@ +:Base comctl1.hlp>langref +:Title ÿؼ +:Index Application Wizard=APPWZRD.HLP +:Index Class Wizard=CLSWZRD.HLP +:Index CommonDialog=CMDLG96.HLP +:Index Visual Basic Enterprise=ENT96.HLP +:Index Windows Common Controls=COMCTL1.HLP +:Index Windows Common Controls=COMCTL2.HLP +:Index MSComm=COMM96.HLP +:Index Control Wizard=CTLCRWZD.HLP +:Index DAO=DAO35.HLP +:Index Data Form Wizard=DATAFORM.HLP +:Index DbGrid=DBGRID96.hlp +:Index DBCombo/DBList =DBLIST96.hlp +:Index FlexGrid=MSFLXGRD.HLP +:Index Document Wizard=FRMDOCWZ.HLP +:Index Internet Transfer Control=INET.HLP +:Index DAO=JETSQL35.HLP +:Index MAPI=MAPI96.HLP +:Index MaskedEdit=MASKED96.hlp +:Index MultiMedia/MCI=MMEDIA96.hlp +:Index Chart=MSCHRT96.HLP +:Index SSTab=MSTAB96.HLP +:Index Microsoft Winsock Control=MSWINSCK.HLP +:Index PicClip=PICCLP96.hlp +:Index Property Page Wizard=PROPPGWZ.HLP +:Index RDO=RDO96.HLP +:Index ReadMe=README.HLP +:Index Repository=REPVB.HLP +:Index RichTextBox=RTFBOX96.hlp +:Index Samples=SAMPLES.HLP +:Index Setup Wizard=SETUPWIZ.HLP +:Index VSS=SSUSVB.HLP +:Index SysInfo=SYSINFO.HLP +:Index VB5=VB5.HLP +:Index VBA=VBENLR3.HLP +:Index Visual Basic Extensibility=VB5EXT.HLP +:Index Wizard Manager=WIZDMNGR.HLP diff --git a/cadVb/COMMON/HELP/COMCTL1.HLP b/cadVb/COMMON/HELP/COMCTL1.HLP new file mode 100644 index 0000000..4dae482 Binary files /dev/null and b/cadVb/COMMON/HELP/COMCTL1.HLP differ diff --git a/cadVb/COMMON/HELP/COMCTL2.CNT b/cadVb/COMMON/HELP/COMCTL2.CNT new file mode 100644 index 0000000..ee3906e --- /dev/null +++ b/cadVb/COMMON/HELP/COMCTL2.CNT @@ -0,0 +1,38 @@ +:Base comctl2.hlp>langref +:Title ÿؼ +:Index Application Wizard=APPWZRD.HLP +:Index Class Wizard=CLSWZRD.HLP +:Index CommonDialog=CMDLG96.HLP +:Index Visual Basic Enterprise=ENT96.HLP +:Index Windows Common Controls=COMCTL1.HLP +:Index Windows Common Controls=COMCTL2.HLP +:Index MSComm=COMM96.HLP +:Index Control Wizard=CTLCRWZD.HLP +:Index DAO=DAO35.HLP +:Index Data Form Wizard=DATAFORM.HLP +:Index DbGrid=DBGRID96.hlp +:Index DBCombo/DBList=DBLIST96.hlp +:Index FlexGrid=MSFLXGRD.HLP +:Index Document Wizard=FRMDOCWZ.HLP +:Index Internet Transfer Control=INET.HLP +:Index DAO=JETSQL35.HLP +:Index MAPI=MAPI96.HLP +:Index MaskedEdit=MASKED96.hlp +:Index MultiMedia/MCI=MMEDIA96.hlp +:Index Chart=MSCHRT96.HLP +:Index SSTab=MSTAB96.HLP +:Index Microsoft Winsock Control=MSWINSCK.HLP +:Index PicClip=PICCLP96.hlp +:Index Property Page Wizard=PROPPGWZ.HLP +:Index RDO=RDO96.HLP +:Index ReadMe=README.HLP +:Index Repository=REPVB.HLP +:Index RichTextBox=RTFBOX96.hlp +:Index Samples=SAMPLES.HLP +:Index Setup Wizard=SETUPWIZ.HLP +:Index VSS=SSUSVB.HLP +:Index SysInfo=SYSINFO.HLP +:Index VB5=VB5.HLP +:Index VBA=VBENLR3.HLP +:Index Visual Basic Extensibility=VB5EXT.HLP +:Index Wizard Manager=WIZDMNGR.HLP diff --git a/cadVb/COMMON/HELP/COMCTL2.HLP b/cadVb/COMMON/HELP/COMCTL2.HLP new file mode 100644 index 0000000..7b6836a Binary files /dev/null and b/cadVb/COMMON/HELP/COMCTL2.HLP differ diff --git a/cadVb/COMMON/HELP/COMM98.CHI b/cadVb/COMMON/HELP/COMM98.CHI new file mode 100644 index 0000000..404d4d5 Binary files /dev/null and b/cadVb/COMMON/HELP/COMM98.CHI differ diff --git a/cadVb/COMMON/HELP/COMM98.CHM b/cadVb/COMMON/HELP/COMM98.CHM new file mode 100644 index 0000000..6d53c3f Binary files /dev/null and b/cadVb/COMMON/HELP/COMM98.CHM differ diff --git a/cadVb/COMMON/HELP/DAO35.CNT b/cadVb/COMMON/HELP/DAO35.CNT new file mode 100644 index 0000000..e0de0e9 --- /dev/null +++ b/cadVb/COMMON/HELP/DAO35.CNT @@ -0,0 +1,197 @@ +:Base dao35.hlp>langref +:Title Data Access Objects Help +:Index DAO Help=dao35.hlp +:Link rplbrf35.hlp +1 Microsoft Data Access Objects (DAO) +2 What's New in DAO?=daidxWhatsNewInDAO@dao35.hlp>langref +2 Data Access Objects Overview=dahowDataAccessOverview +2 Data Access Object Model for Microsoft Jet Workspaces=daconMSJetDatabaseEngine25 +2 Data Access Object Model for ODBCDirect Workspaces=daconMSJetDatabaseEngine35@dao35.hlp>langref +2 Data Access Objects and Collections Reference=daidxObjectsAndCollections +2 Data Access Constants Reference=damscDataAccessConstants +2 Data Access Methods Reference +3 Data Access Methods by Object=daidxMethods +3 Data Access Methods for Microsoft Jet Workspaces=daidxMethodsReferenceJet@dao35.hlp>langref +3 Data Access Methods for ODBCDirect Workspaces=daidxMethodsReferenceODBC@DAO35.HLP>langref +3 A-B +4 AddNew=damthAddNew +4 Append=damthAppend +4 AppendChunk=damthAppendChunk +4 BeginTrans=damthBeginTrans +3 C +4 Cancel=damthCancel +4 CancelUpdate=damthCancelUpdate +4 Clone=damthClone +4 Close=damthClose +4 CommitTrans=damthBeginTrans +4 CompactDatabase=damthCompactDatabase +4 CopyQueryDef=damthCopyQueryDef +4 CreateDatabase=damthCreateDatabase +4 CreateField=damthCreateField +4 CreateGroup=damthCreateGroup +4 CreateIndex=damthCreateIndex +4 CreateProperty=damthCreateProperty +4 CreateQueryDef=damthCreateQueryDef +4 CreateRelation=damthCreateRelation +4 CreateTableDef=damthCreateTableDef +4 CreateUser=damthCreateUser +4 CreateWorkspace=damthCreateWorkspace +3 D-E +4 Delete=damthDelete +4 Edit=damthEdit +4 Execute=damthExecute +3 F +4 FillCache=damthFillCache +4 FindFirst=damthFindFirst +4 FindLast=damthFindFirst +4 FindNext=damthFindFirst +4 FindPrevious=damthFindFirst +3 G-L +4 GetChunk=damthGetChunk +4 GetRows=damthGetRows +4 Idle=damthIdle +3 M +4 MakeReplica=damthMakeReplica +4 Move=damthMove +4 MoveFirst=damthMoveFirst +4 MoveLast=damthMoveFirst +4 MoveNext=damthMoveFirst +4 MovePrevious=damthMoveFirst +3 N-Q +4 NewPassword=damthNewPassword +4 NextRecordset=damthNextRecordset +4 OpenConnection=damthOpenConnection +4 OpenDatabase=damthOpenDatabase +4 OpenRecordset=damthOpenRecordset +4 PopulatePartial=damthPopulatePartial +3 R +4 Refresh=damthRefresh +4 RefreshLink=damthRefreshLink +4 RegisterDatabase=damthRegisterDatabase +4 RepairDatabase=damthRepairDatabase +4 Requery=damthRequery +4 Rollback=damthBeginTrans +3 S-Z +4 Seek=damthSeek +4 SetOption=damthSetOption +4 Synchronize=damthSynchronize +4 Update=damthUpdate +2 Data Access Properties Reference +3 Data Access Properties by Object=daidxProperties +3 Data Access Properties for Microsoft Jet Workspaces=daidxPropertiesReferenceJet@DAO35.HLP>langref +3 Data Access Properties for ODBCDirect Workspaces=daidxPropertiesReferenceODBC@DAO35.HLP>langref +3 A +4 AbsolutePosition=daproAbsolutePosition +4 AllowZeroLength=daproAllowZeroLength +4 AllPermissions=daproAllPermissions +4 Attributes=daproAttributes +3 B +4 BatchCollisionCount=daproBatchCollisionCount@dao35.hlp>langref +4 BatchCollisions=daproBatchCollisions@dao35.hlp>langref +4 BatchSize=daproBatchSize@dao35.hlp>langref +4 BOF=daproBOF +4 Bookmark=daproBookmark +4 Bookmarkable=daproBookmarkable +3 C +4 CacheSize=daproCacheSize +4 CacheStart=daproCacheStart +4 Clustered=daproClustered +4 CollatingOrder=daproCollatingOrder +4 ConflictTable=daproConflictTable +4 Connect=daproConnect +4 Connection=daproConnection +4 Container=daproContainer +4 Count=daproCount +3 D +4 Database=daproDatabase@dao35.hlp>langref +4 DataUpdatable=daproDataUpdatable +4 DateCreated=daproDateCreated +4 DefaultCursorDriver=daproDefaultCursorDriver +4 DefaultType=daproDefaultType +4 DefaultUser=daproDefaultUser +4 DefaultPassword=daproDefaultUser +4 DefaultValue=daproDefaultValue +4 Description=daproDescription +4 DesignMasterID=daproDesignMasterID@dao35.hlp>langref +4 Direction=daproDirection +4 DistinctCount=daproDistinctCount +3 E-G +4 EditMode=daproEditMode +4 EOF=daproBOF +4 FieldSize=daproFieldSize@dao35.hlp>langref +4 Filter=daproFilter +4 Foreign=daproForeign +4 ForeignName=daproForeignName +4 ForeignTable=daproForeignTable +3 H-J +4 HelpContext=daproHelpContext +4 HelpFile=daproHelpContext +4 IgnoreNulls=daproIgnoreNulls +4 Index=daproIndex +4 Inherit=daproInherit +4 Inherited=daproInherited +4 IniPath=daproIniPath +4 IsolateODBCTrans=daproIsolateODBCTrans +3 K-L +4 KeepLocal=daproKeepLocal +4 LastModified=daproLastModified +4 LastUpdated=daproDateCreated +4 LockEdits=daproLockEdits +4 LoginTimeout=daproLoginTimeout +4 LogMessages=daproLogMessages +3 M-N +4 MaxRecords=daproMaxRecords +4 Name=daproName +4 NoMatch=daproNoMatch +4 Number=daproNumber +3 O +4 ODBCTimeout=daproODBCTimeout +4 OrdinalPosition=daproOrdinalPosition +4 OriginalValue=daproOriginalValue@dao35.hlp>langref +4 Owner=daproOwner +3 P-Q +4 PartialReplica=daproPartialReplica@dao35.hlp>langref +4 Password=daproPassword +4 PercentPosition=daproPercentPosition +4 Permissions=daproPermissions +4 PID=daproPID +4 Prepare=daproPrepare@dao35.hlp>langref +4 Primary=daproPrimary +4 QueryTimeout=daproQueryTimeout +3 R +4 RecordCount=daproRecordCount +4 RecordsAffected=daproRecordsAffected +4 RecordStatus=daproRecordStatus@dao35.hlp>langref +4 Replicable=daproReplicable +4 ReplicaFilter=daproReplicaFilter +4 ReplicaID=daproReplicaID +4 Required=daproRequired +4 Restartable=daproRestartable +4 ReturnsRecords=daproReturnsRecords +3 S +4 Size=daproSize +4 Sort=daproSort +4 Source=daproSource +4 SourceField=daproSourceField +4 SourceTable=daproSourceField +4 SourceTableName=daproSourceTableName +4 SQL=daproSQL +4 StillExecuting=daproStillExecuting +4 SystemDB=daproSystemDB +3 T +4 Table=daproTable +4 Transactions=daproTransactions +4 Type=daproType +3 U +4 Unique=daproUnique +4 Updatable=daproUpdatable +4 UpdateOptions=daproUpdateOptions@dao35.hlp>langref +4 UserName=daproUserName +3 V-Z +4 V1xNullBehavior=daproV1xNullBehavior +4 ValidateOnSet=daproValidateOnSet +4 ValidationRule=daproValidationRule +4 ValidationText=daproValidationText +4 Value=daproValue +4 Version=daproVersion +4 VisibleValue=daproVisibleValue@dao35.hlp>langref diff --git a/cadVb/COMMON/HELP/DAO35.HLP b/cadVb/COMMON/HELP/DAO35.HLP new file mode 100644 index 0000000..82db007 Binary files /dev/null and b/cadVb/COMMON/HELP/DAO35.HLP differ diff --git a/cadVb/COMMON/HELP/DATRPT98.CHI b/cadVb/COMMON/HELP/DATRPT98.CHI new file mode 100644 index 0000000..50ff214 Binary files /dev/null and b/cadVb/COMMON/HELP/DATRPT98.CHI differ diff --git a/cadVb/COMMON/HELP/DATRPT98.CHM b/cadVb/COMMON/HELP/DATRPT98.CHM new file mode 100644 index 0000000..70c8abe Binary files /dev/null and b/cadVb/COMMON/HELP/DATRPT98.CHM differ diff --git a/cadVb/COMMON/HELP/DBGRID98.CHI b/cadVb/COMMON/HELP/DBGRID98.CHI new file mode 100644 index 0000000..54bbd02 Binary files /dev/null and b/cadVb/COMMON/HELP/DBGRID98.CHI differ diff --git a/cadVb/COMMON/HELP/DBGRID98.CHM b/cadVb/COMMON/HELP/DBGRID98.CHM new file mode 100644 index 0000000..e2aca04 Binary files /dev/null and b/cadVb/COMMON/HELP/DBGRID98.CHM differ diff --git a/cadVb/COMMON/HELP/DBLIST98.CHI b/cadVb/COMMON/HELP/DBLIST98.CHI new file mode 100644 index 0000000..0b81f43 Binary files /dev/null and b/cadVb/COMMON/HELP/DBLIST98.CHI differ diff --git a/cadVb/COMMON/HELP/DBLIST98.CHM b/cadVb/COMMON/HELP/DBLIST98.CHM new file mode 100644 index 0000000..b60b2ef Binary files /dev/null and b/cadVb/COMMON/HELP/DBLIST98.CHM differ diff --git a/cadVb/COMMON/HELP/INET98.CHI b/cadVb/COMMON/HELP/INET98.CHI new file mode 100644 index 0000000..acb0e94 Binary files /dev/null and b/cadVb/COMMON/HELP/INET98.CHI differ diff --git a/cadVb/COMMON/HELP/INET98.CHM b/cadVb/COMMON/HELP/INET98.CHM new file mode 100644 index 0000000..8086e0d Binary files /dev/null and b/cadVb/COMMON/HELP/INET98.CHM differ diff --git a/cadVb/COMMON/HELP/JETDEF35.HLP b/cadVb/COMMON/HELP/JETDEF35.HLP new file mode 100644 index 0000000..b5934de Binary files /dev/null and b/cadVb/COMMON/HELP/JETDEF35.HLP differ diff --git a/cadVb/COMMON/HELP/JETERR35.CNT b/cadVb/COMMON/HELP/JETERR35.CNT new file mode 100644 index 0000000..3263a59 --- /dev/null +++ b/cadVb/COMMON/HELP/JETERR35.CNT @@ -0,0 +1,10 @@ +:Base jeterr35.hlp>langref +:Title Microsoft Jet Error Message Reference +:Index Microsoft Jet Error Message Reference=jeterr35.hlp +:Link dao35.hlp +:Link jetsql35.hlp +:Link rplbrf35.hlp +:Link rplman35.hlp +:Link acvba80.hlp +1 Microsoft Jet Ϣο +2 ɲ׽ Microsoft Jet DAO =daidxRealDataAccessErrors@jeterr35.hlp>langref diff --git a/cadVb/COMMON/HELP/JETERR35.HLP b/cadVb/COMMON/HELP/JETERR35.HLP new file mode 100644 index 0000000..cb27e80 Binary files /dev/null and b/cadVb/COMMON/HELP/JETERR35.HLP differ diff --git a/cadVb/COMMON/HELP/JETSQL35.CNT b/cadVb/COMMON/HELP/JETSQL35.CNT new file mode 100644 index 0000000..b46d230 --- /dev/null +++ b/cadVb/COMMON/HELP/JETSQL35.CNT @@ -0,0 +1,40 @@ +:Base jetsql35.hlp>langref +:Title Microsoft Jet SQL Reference +:Index Jet SQL Reference=jetsql35.hlp +:Link acvba80.hlp +1 Microsoft Jet SQL ο +2 +3 SQL ϼƺ=daidxAggregateFunctions +3 Microsoft Jet ݿ SQL ı=dasqlJetSQLReservedWords +3 Microsoft Jet ݿ SQL =dasqlJetDataTypes +3 Microsoft Jet ݿ SQL ANSI SQL ıȽ=dasqlJetVANSI +3 Ч ANSI SQL =dasqlEquivalentDataTypes +2 ݶ +3 CREATE TABLE =dasqlCreateTable +3 CREATE INDEX =dasqlCreateIndex +3 ALTER TABLE =dasqlAlter +3 CONSTRAINT Ӿ=dasqlConstraint +3 DROP =dasqlDrop +2 ݲ +3 SELECT =dasqlSelect +3 SELECT...INTO =dasqlSelectInto +3 INSERT INTO =dasqlInsertInto +3 UPDATE =dasqlUpdate +3 DELETE =dasqlDelete +3 INNER JOIN =dasqlInnerJoin@jetsql35.hlp>langref +3 LEFT JOIN RIGHT JOIN =dasqlLeftRightJoin@jetsql35.hlp>langref +3 PARAMETERS =dasqlParameters@jetsql35.hlp>langref +3 UNION =dasqlUnion@jetsql35.hlp>langref +2 ⲿԴ Windows ע +3 ݷʶԶ Windows ע=dahowCustomizingDataAccess +3 ʼ dBASE ݿ=dahowChangingdBASE +3 ʼ HTMLInternetData Source =dahowChangingHTML +3 ʼ Lotus =dahowChangingLotus +3 ʼ Microsoft Excel =dahowChangingExcel +3 ʼ Microsoft Exchange Data Source =dahowInitializingMicrosoftExchangeDataSourceDriver +3 ʼ Microsoft FoxPro ݿ=dahowChangingFoxPro +3 ʼ Microsoft Jet 3.5 ݿ=dahowChangingJetEngine30 +3 ʼ Microsoft Jet 2.5 ݿ=dahowChangingJetISAM +3 ʼ Paradox ݿ=dahowChangingParadox +3 ʼ Text Data Source =dahowChangingText +3 ΪODBC Microsoft Jet ݿ=dahowChangingMicrosoftODBC diff --git a/cadVb/COMMON/HELP/JETSQL35.HLP b/cadVb/COMMON/HELP/JETSQL35.HLP new file mode 100644 index 0000000..1424056 Binary files /dev/null and b/cadVb/COMMON/HELP/JETSQL35.HLP differ diff --git a/cadVb/COMMON/HELP/MAPI98.CHI b/cadVb/COMMON/HELP/MAPI98.CHI new file mode 100644 index 0000000..1e18ef7 Binary files /dev/null and b/cadVb/COMMON/HELP/MAPI98.CHI differ diff --git a/cadVb/COMMON/HELP/MAPI98.CHM b/cadVb/COMMON/HELP/MAPI98.CHM new file mode 100644 index 0000000..40d01a1 Binary files /dev/null and b/cadVb/COMMON/HELP/MAPI98.CHM differ diff --git a/cadVb/COMMON/HELP/MASKED98.CHI b/cadVb/COMMON/HELP/MASKED98.CHI new file mode 100644 index 0000000..c92e27d Binary files /dev/null and b/cadVb/COMMON/HELP/MASKED98.CHI differ diff --git a/cadVb/COMMON/HELP/MASKED98.CHM b/cadVb/COMMON/HELP/MASKED98.CHM new file mode 100644 index 0000000..3195e01 Binary files /dev/null and b/cadVb/COMMON/HELP/MASKED98.CHM differ diff --git a/cadVb/COMMON/HELP/MMEDIA98.CHI b/cadVb/COMMON/HELP/MMEDIA98.CHI new file mode 100644 index 0000000..8611319 Binary files /dev/null and b/cadVb/COMMON/HELP/MMEDIA98.CHI differ diff --git a/cadVb/COMMON/HELP/MMEDIA98.CHM b/cadVb/COMMON/HELP/MMEDIA98.CHM new file mode 100644 index 0000000..8f13b46 Binary files /dev/null and b/cadVb/COMMON/HELP/MMEDIA98.CHM differ diff --git a/cadVb/COMMON/HELP/MSCHRT98.CHI b/cadVb/COMMON/HELP/MSCHRT98.CHI new file mode 100644 index 0000000..b8c990c Binary files /dev/null and b/cadVb/COMMON/HELP/MSCHRT98.CHI differ diff --git a/cadVb/COMMON/HELP/MSCHRT98.CHM b/cadVb/COMMON/HELP/MSCHRT98.CHM new file mode 100644 index 0000000..6e33fbc Binary files /dev/null and b/cadVb/COMMON/HELP/MSCHRT98.CHM differ diff --git a/cadVb/COMMON/HELP/MSHFLX98.CHI b/cadVb/COMMON/HELP/MSHFLX98.CHI new file mode 100644 index 0000000..656264c Binary files /dev/null and b/cadVb/COMMON/HELP/MSHFLX98.CHI differ diff --git a/cadVb/COMMON/HELP/MSHFLX98.CHM b/cadVb/COMMON/HELP/MSHFLX98.CHM new file mode 100644 index 0000000..cd3b33d Binary files /dev/null and b/cadVb/COMMON/HELP/MSHFLX98.CHM differ diff --git a/cadVb/COMMON/HELP/MSTAB98.CHI b/cadVb/COMMON/HELP/MSTAB98.CHI new file mode 100644 index 0000000..474516c Binary files /dev/null and b/cadVb/COMMON/HELP/MSTAB98.CHI differ diff --git a/cadVb/COMMON/HELP/MSTAB98.CHM b/cadVb/COMMON/HELP/MSTAB98.CHM new file mode 100644 index 0000000..1c394bb Binary files /dev/null and b/cadVb/COMMON/HELP/MSTAB98.CHM differ diff --git a/cadVb/COMMON/HELP/MSWNSK98.CHI b/cadVb/COMMON/HELP/MSWNSK98.CHI new file mode 100644 index 0000000..ceea84a Binary files /dev/null and b/cadVb/COMMON/HELP/MSWNSK98.CHI differ diff --git a/cadVb/COMMON/HELP/MSWNSK98.CHM b/cadVb/COMMON/HELP/MSWNSK98.CHM new file mode 100644 index 0000000..a744090 Binary files /dev/null and b/cadVb/COMMON/HELP/MSWNSK98.CHM differ diff --git a/cadVb/COMMON/HELP/PICCLP98.CHI b/cadVb/COMMON/HELP/PICCLP98.CHI new file mode 100644 index 0000000..e3104e5 Binary files /dev/null and b/cadVb/COMMON/HELP/PICCLP98.CHI differ diff --git a/cadVb/COMMON/HELP/PICCLP98.CHM b/cadVb/COMMON/HELP/PICCLP98.CHM new file mode 100644 index 0000000..e4801ad Binary files /dev/null and b/cadVb/COMMON/HELP/PICCLP98.CHM differ diff --git a/cadVb/COMMON/HELP/RDO98.CHI b/cadVb/COMMON/HELP/RDO98.CHI new file mode 100644 index 0000000..94cb255 Binary files /dev/null and b/cadVb/COMMON/HELP/RDO98.CHI differ diff --git a/cadVb/COMMON/HELP/RDO98.CHM b/cadVb/COMMON/HELP/RDO98.CHM new file mode 100644 index 0000000..b067128 Binary files /dev/null and b/cadVb/COMMON/HELP/RDO98.CHM differ diff --git a/cadVb/COMMON/HELP/RTFBOX98.CHI b/cadVb/COMMON/HELP/RTFBOX98.CHI new file mode 100644 index 0000000..8fcd9c4 Binary files /dev/null and b/cadVb/COMMON/HELP/RTFBOX98.CHI differ diff --git a/cadVb/COMMON/HELP/RTFBOX98.CHM b/cadVb/COMMON/HELP/RTFBOX98.CHM new file mode 100644 index 0000000..38dd345 Binary files /dev/null and b/cadVb/COMMON/HELP/RTFBOX98.CHM differ diff --git a/cadVb/COMMON/HELP/SYSINF98.CHI b/cadVb/COMMON/HELP/SYSINF98.CHI new file mode 100644 index 0000000..d852203 Binary files /dev/null and b/cadVb/COMMON/HELP/SYSINF98.CHI differ diff --git a/cadVb/COMMON/HELP/SYSINF98.CHM b/cadVb/COMMON/HELP/SYSINF98.CHM new file mode 100644 index 0000000..eb442ce Binary files /dev/null and b/cadVb/COMMON/HELP/SYSINF98.CHM differ diff --git a/cadVb/COMMON/HELP/VB5DEF.HLP b/cadVb/COMMON/HELP/VB5DEF.HLP new file mode 100644 index 0000000..c19bdfc Binary files /dev/null and b/cadVb/COMMON/HELP/VB5DEF.HLP differ diff --git a/cadVb/COMMON/HELP/VBCMN96.CNT b/cadVb/COMMON/HELP/VBCMN96.CNT new file mode 100644 index 0000000..fc8424d --- /dev/null +++ b/cadVb/COMMON/HELP/VBCMN96.CNT @@ -0,0 +1,40 @@ +:Base vbcmn96.hlp>langref +:Title ActiveX ð +:Index ActiveX Common Help=VBCMN96.HLP +:Index Application Wizard=APPWZRD.HLP +:Index Class Wizard=CLSWZRD.HLP +:Index CommonDialog=CMDLG96.HLP +:Index Visual Basic Enterprise=ENT96.HLP +:Index Windows Common Controls=COMCTL1.HLP +:Index Windows Common Controls=COMCTL2.HLP +:Index MSComm=COMM96.HLP +:Index Control Wizard=CTLCRWZD.HLP +:Index DAO=DAO35.HLP +:Index Data Form Wizard=DATAFORM.HLP +:Index DbGrid=DBGRID96.hlp +:Index DBCombo/DBList=DBLIST96.hlp +:Index FlexGrid=MSFLXGRD.HLP +:Index Document Wizard=FRMDOCWZ.HLP +:Index Internet Transfer Control=INET.HLP +:Index DAO=JETSQL35.HLP +:Index MAPI=MAPI96.HLP +:Index MaskedEdit=MASKED96.hlp +:Index MultiMedia/MCI=MMEDIA96.hlp +:Index Chart=MSCHRT96.HLP +:Index SSTab=MSTAB96.HLP +:Index Microsoft Winsock Control=MSWINSCK.HLP +:Index PicClip=PICCLP96.hlp +:Index Property Page Wizard=PROPPGWZ.HLP +:Index RDO=RDO96.HLP +:Index ReadMe=README.HLP +:Index Repository=REPVB.HLP +:Index RichTextBox=RTFBOX96.hlp +:Index Samples=SAMPLES.HLP +:Index Setup Wizard=SETUPWIZ.HLP +:Index VSS=SSUSVB.HLP +:Index SysInfo=SYSINFO.HLP +:Index VB5=VB5.HLP +:Index VBA=VBENLR3.HLP +:Index Visual Basic Extensibility=VB5EXT.HLP +:Index Wizard Manager=WIZDMNGR.HLP +:Link acctlspc.hlp diff --git a/cadVb/COMMON/HELP/VBCMN96.HLP b/cadVb/COMMON/HELP/VBCMN96.HLP new file mode 100644 index 0000000..4952471 Binary files /dev/null and b/cadVb/COMMON/HELP/VBCMN96.HLP differ diff --git a/cadVb/COMMON/HELP/VBCMN98.CHI b/cadVb/COMMON/HELP/VBCMN98.CHI new file mode 100644 index 0000000..40f0361 Binary files /dev/null and b/cadVb/COMMON/HELP/VBCMN98.CHI differ diff --git a/cadVb/COMMON/HELP/VBCMN98.CHM b/cadVb/COMMON/HELP/VBCMN98.CHM new file mode 100644 index 0000000..0933074 Binary files /dev/null and b/cadVb/COMMON/HELP/VBCMN98.CHM differ diff --git a/cadVb/COMMON/HELP/VBDEF98.CHI b/cadVb/COMMON/HELP/VBDEF98.CHI new file mode 100644 index 0000000..81edaee Binary files /dev/null and b/cadVb/COMMON/HELP/VBDEF98.CHI differ diff --git a/cadVb/COMMON/HELP/VBDEF98.CHM b/cadVb/COMMON/HELP/VBDEF98.CHM new file mode 100644 index 0000000..00a40a0 Binary files /dev/null and b/cadVb/COMMON/HELP/VBDEF98.CHM differ diff --git a/cadVb/COMMON/HELP/VEENDF98.CHI b/cadVb/COMMON/HELP/VEENDF98.CHI new file mode 100644 index 0000000..7fd9bb2 Binary files /dev/null and b/cadVb/COMMON/HELP/VEENDF98.CHI differ diff --git a/cadVb/COMMON/HELP/VEENDF98.CHM b/cadVb/COMMON/HELP/VEENDF98.CHM new file mode 100644 index 0000000..e4b23fb Binary files /dev/null and b/cadVb/COMMON/HELP/VEENDF98.CHM differ diff --git a/cadVb/COMMON/IDE/IDE98/RESOURCE/1033/VCMPKUI.DLL b/cadVb/COMMON/IDE/IDE98/RESOURCE/1033/VCMPKUI.DLL new file mode 100644 index 0000000..9253163 Binary files /dev/null and b/cadVb/COMMON/IDE/IDE98/RESOURCE/1033/VCMPKUI.DLL differ diff --git a/cadVb/COMMON/IDE/IDE98/VCMPK.DLL b/cadVb/COMMON/IDE/IDE98/VCMPK.DLL new file mode 100644 index 0000000..034c8fa Binary files /dev/null and b/cadVb/COMMON/IDE/IDE98/VCMPK.DLL differ diff --git a/cadVb/COMMON/REDIST/REDIST.TXT b/cadVb/COMMON/REDIST/REDIST.TXT new file mode 100644 index 0000000..8c509fa --- /dev/null +++ b/cadVb/COMMON/REDIST/REDIST.TXT @@ -0,0 +1,30124 @@ +ٷб - ʹ: + +msjet35.dll +msjint35.dll +msjter35.dll +msrd2x35.dll +msrepl35.dll +expsrv.dll +vbajet32.dll +msexch35.dll +msexcl35.dll +mspdox35.dll +msltus35.dll +mstext35.dll +msxbse35.dll +MSJTOR35.DLL +MSJT4JLT.DLL +mdac_typ.exe +msorcl32.dll +msdaora.dll + +ٷд - չʹ: + +comct232.ocx +comct332.ocx +comctl32.ocx +comdlg32.ocx +dblist32.ocx +hhctrl.ocx +mci32.ocx +msadodc.ocx +mschrt20.ocx +mscomct2.ocx +mscomctl.ocx +mscomm32.ocx +MSDatGrd.ocx +msdatlst.ocx +MSDatRep.ocx +msflxgrd.ocx +mshflxgd.ocx +msinet.ocx +msmapi32.ocx +msmask32.ocx +msrdc20.ocx +mswinsck.ocx +picclp32.ocx +richtx32.ocx +sysinfo.ocx +tabctl32.ocx +wbclsdsr.ocx +anibtn32.ocx +dbgrid32.ocx +gauge32.ocx +graph32.ocx +grid32.ocx +gswdll32.dll +keysta32.ocx +mschart.ocx +msoutl32.ocx +spin32.ocx +threed32.ocx +adodcchs.dll +cmct2chs.dll +cmct3chs.dll +cmctlchs.dll +cmdlgchs.dll +datgdchs.dll +datlschs.dll +DatRpchs.DLL +DBGRDCHS.DLL +dblstchs.dll +flxgdchs.dll +mcichs.dll +MsCc2chs.dll +msch2chs.dll +MSCMCCHS.DLL +MSCOMCHS.DLL +MSHFGCHS.DLL +inetchs.dll +MSMPICHS.DLL +MSMSKCHS.DLL +rdc20chs.dll +WINSKCHS.DLL +pcclpchs.dll +rchtxchs.dll +SYSINCHS.DLL +TABCTCHS.DLL +mswcrchs.dll +MSCHTCHS.DLL + + +ٷд - ׼: + +oleaut32.dll +secur32.dll +compobj.dll +ole2.dll +ole32.dll +olecnv32.dll +olethk32.dll +rpcltc1.dll +rpcltc5.dll +rpcltccm.dll +rpclts5.dll +rpcltscm.dll +rpcns4.dll +rpcrt4.dll +rpcss.exe +storage.dll +stdole2.tlb +stdole32.tlb +imagehlp.dll +dllhost.exe +comcat.dll +iprop.dll +rpcmqcl.dll +rpcmqsvr.dll +olepro32.dll +asycfilt.dll +mfc40.dll +msvcrt40.dll +dcomcnfg.exe +oledlg.dll +ciscnfg.exe +dcomcnfg.hlp +IE4\MSJavx86.exe +os\system\atl.dll +os\system\ansi\atl.dll +VB98\template\code\loadres.bas +VB98\template\code\RegKeys.BAS +VB98\template\controls\ListBtns.frm +VB98\template\controls\ListBtns.frx +VB98\template\controls\listpick.frm +VB98\template\controls\listpick.frx +VB98\template\controls\tvlv.frm +VB98\template\controls\tvlv.frx +VB98\template\forms\aboutb.frx +VB98\template\forms\abtdlg.frm +VB98\template\forms\browser.frm +VB98\template\forms\browser.frx +VB98\template\forms\dialog.frm +VB98\template\forms\frmtip.frx +VB98\template\forms\logindlg.frm +VB98\template\forms\splash.frx +VB98\template\forms\splsscrn.frm +VB98\template\forms\tipofday.frm +VB98\template\menus\editmenu.frm +VB98\template\menus\expfmenu.frm +VB98\template\menus\filemenu.frm +VB98\template\menus\helpmenu.frm +VB98\template\menus\viewmenu.frm +VB98\template\menus\winmenu.frm +VB98\template\userctls\colorful.ctl +VB98\template\userctls\events.ctl +VB98\template\userctls\macbtn.ctl +os\system\msbind.dll +Common\Graphics\bitmaps\assorted\balloon.bmp +Common\Graphics\bitmaps\assorted\beany.bmp +Common\Graphics\bitmaps\assorted\bell.bmp +Common\Graphics\bitmaps\assorted\calendar.bmp +Common\Graphics\bitmaps\assorted\camcord.bmp +Common\Graphics\bitmaps\assorted\card.bmp +Common\Graphics\bitmaps\assorted\club.bmp +Common\Graphics\bitmaps\assorted\cup.bmp +Common\Graphics\bitmaps\assorted\delete.bmp +Common\Graphics\bitmaps\assorted\diamond.bmp +Common\Graphics\bitmaps\assorted\envelope.bmp +Common\Graphics\bitmaps\assorted\fish.bmp +Common\Graphics\bitmaps\assorted\hand.bmp +Common\Graphics\bitmaps\assorted\happy.bmp +Common\Graphics\bitmaps\assorted\heart.bmp +Common\Graphics\bitmaps\assorted\intl_no.bmp +Common\Graphics\bitmaps\assorted\key.bmp +Common\Graphics\bitmaps\assorted\mail.bmp +Common\Graphics\bitmaps\assorted\note.bmp +Common\Graphics\bitmaps\assorted\notebook.bmp +Common\Graphics\bitmaps\assorted\phone.bmp +Common\Graphics\bitmaps\assorted\pin.bmp +Common\Graphics\bitmaps\assorted\plan.bmp +Common\Graphics\bitmaps\assorted\present.bmp +Common\Graphics\bitmaps\assorted\sad.bmp +Common\Graphics\bitmaps\assorted\smokes.bmp +Common\Graphics\bitmaps\assorted\spade.bmp +Common\Graphics\bitmaps\assorted\speaker.bmp +Common\Graphics\bitmaps\assorted\time.bmp +Common\Graphics\bitmaps\assorted\trash.bmp +Common\Graphics\bitmaps\assorted\vb416mom.bmp +Common\Graphics\bitmaps\assorted\vb432mom.bmp +Common\Graphics\bitmaps\assorted\w.bmp +Common\Graphics\bitmaps\gauge\circlock.bmp +Common\Graphics\bitmaps\gauge\dome.bmp +Common\Graphics\bitmaps\gauge\horz.bmp +Common\Graphics\bitmaps\gauge\horz1.bmp +Common\Graphics\bitmaps\gauge\semicirc.bmp +Common\Graphics\bitmaps\gauge\therbot.bmp +Common\Graphics\bitmaps\gauge\therlft.bmp +Common\Graphics\bitmaps\gauge\thermid.bmp +Common\Graphics\bitmaps\gauge\thermidh.bmp +Common\Graphics\bitmaps\gauge\therrt.bmp +Common\Graphics\bitmaps\gauge\thertop.bmp +Common\Graphics\bitmaps\gauge\vert.bmp +Common\Graphics\bitmaps\gauge\volbot.bmp +Common\Graphics\bitmaps\gauge\voltop.bmp +Common\Graphics\bitmaps\outline\closed.bmp +Common\Graphics\bitmaps\outline\leaf.bmp +Common\Graphics\bitmaps\outline\minus.bmp +Common\Graphics\bitmaps\outline\open.bmp +Common\Graphics\bitmaps\outline\plus.bmp +Common\Graphics\bitmaps\tlbr_w95\cnt.bmp +Common\Graphics\bitmaps\tlbr_w95\arc.bmp +Common\Graphics\bitmaps\tlbr_w95\back.bmp +Common\Graphics\bitmaps\tlbr_w95\bld.bmp +Common\Graphics\bitmaps\tlbr_w95\button.bmp +Common\Graphics\bitmaps\tlbr_w95\camera.bmp +Common\Graphics\bitmaps\tlbr_w95\copy.bmp +Common\Graphics\bitmaps\tlbr_w95\ctr.bmp +Common\Graphics\bitmaps\tlbr_w95\cut.bmp +Common\Graphics\bitmaps\tlbr_w95\dblundr.bmp +Common\Graphics\bitmaps\tlbr_w95\delete.bmp +Common\Graphics\bitmaps\tlbr_w95\discnet.bmp +Common\Graphics\bitmaps\tlbr_w95\drawing.bmp +Common\Graphics\bitmaps\tlbr_w95\ellipse.bmp +Common\Graphics\bitmaps\tlbr_w95\find.bmp +Common\Graphics\bitmaps\tlbr_w95\freeform.bmp +Common\Graphics\bitmaps\tlbr_w95\front.bmp +Common\Graphics\bitmaps\tlbr_w95\group.bmp +Common\Graphics\bitmaps\tlbr_w95\help.bmp +Common\Graphics\bitmaps\tlbr_w95\help2.bmp +Common\Graphics\bitmaps\tlbr_w95\itl.bmp +Common\Graphics\bitmaps\tlbr_w95\jst.bmp +Common\Graphics\bitmaps\tlbr_w95\lft.bmp +Common\Graphics\bitmaps\tlbr_w95\line.bmp +Common\Graphics\bitmaps\tlbr_w95\linestyl.bmp +Common\Graphics\bitmaps\tlbr_w95\mapnet.bmp +Common\Graphics\bitmaps\tlbr_w95\mcr.bmp +Common\Graphics\bitmaps\tlbr_w95\new.bmp +Common\Graphics\bitmaps\tlbr_w95\open.bmp +Common\Graphics\bitmaps\tlbr_w95\paste.bmp +Common\Graphics\bitmaps\tlbr_w95\print.bmp +Common\Graphics\bitmaps\tlbr_w95\prop.bmp +Common\Graphics\bitmaps\tlbr_w95\rectangl.bmp +Common\Graphics\bitmaps\tlbr_w95\redo.bmp +Common\Graphics\bitmaps\tlbr_w95\rt.bmp +Common\Graphics\bitmaps\tlbr_w95\save.bmp +Common\Graphics\bitmaps\tlbr_w95\smallcap.bmp +Common\Graphics\bitmaps\tlbr_w95\sortasc.bmp +Common\Graphics\bitmaps\tlbr_w95\sortdes.bmp +Common\Graphics\bitmaps\tlbr_w95\spelling.bmp +Common\Graphics\bitmaps\tlbr_w95\strikthr.bmp +Common\Graphics\bitmaps\tlbr_w95\sum.bmp +Common\Graphics\bitmaps\tlbr_w95\tab-cntr.bmp +Common\Graphics\bitmaps\tlbr_w95\tab-dec.bmp +Common\Graphics\bitmaps\tlbr_w95\tab-left.bmp +Common\Graphics\bitmaps\tlbr_w95\tab-rht.bmp +Common\Graphics\bitmaps\tlbr_w95\undo.bmp +Common\Graphics\bitmaps\tlbr_w95\undrln.bmp +Common\Graphics\bitmaps\tlbr_w95\ungroup.bmp +Common\Graphics\bitmaps\tlbr_w95\up1lvl.bmp +Common\Graphics\bitmaps\tlbr_w95\vw-dtls.bmp +Common\Graphics\bitmaps\tlbr_w95\vw-list.bmp +Common\Graphics\bitmaps\tlbr_w95\vw-lrgic.bmp +Common\Graphics\bitmaps\tlbr_w95\vw-smlic.bmp +Common\Graphics\bitmaps\tlbr_w95\wordundr.bmp +Common\Graphics\cursors\4way01.cur +Common\Graphics\cursors\4way02.cur +Common\Graphics\cursors\4way03.cur +Common\Graphics\cursors\4way04.cur +Common\Graphics\cursors\4way05.cur +Common\Graphics\cursors\4way06.cur +Common\Graphics\cursors\4way07.cur +Common\Graphics\cursors\bullseye.cur +Common\Graphics\cursors\c_no01.cur +Common\Graphics\cursors\c_no02.cur +Common\Graphics\cursors\c_no03.cur +Common\Graphics\cursors\c_no04.cur +Common\Graphics\cursors\c_no05.cur +Common\Graphics\cursors\c_wai03.cur +Common\Graphics\cursors\c_wait01.cur +Common\Graphics\cursors\c_wait02.cur +Common\Graphics\cursors\c_wait04.cur +Common\Graphics\cursors\c_wait05.cur +Common\Graphics\cursors\copy4way.cur +Common\Graphics\cursors\cross01.cur +Common\Graphics\cursors\cross02.cur +Common\Graphics\cursors\cross03.cur +Common\Graphics\cursors\cross04.cur +Common\Graphics\cursors\down.cur +Common\Graphics\cursors\dragcopy.cur +Common\Graphics\cursors\draglink.cur +Common\Graphics\cursors\dragmove.cur +Common\Graphics\cursors\dragpict.cur +Common\Graphics\cursors\ew_01.cur +Common\Graphics\cursors\ew_02.cur +Common\Graphics\cursors\ew_03.cur +Common\Graphics\cursors\ew_04.cur +Common\Graphics\cursors\ew_05.cur +Common\Graphics\cursors\ew_06.cur +Common\Graphics\cursors\ew_07.cur +Common\Graphics\cursors\ew_08.cur +Common\Graphics\cursors\h_cross.cur +Common\Graphics\cursors\h_ibeam.cur +Common\Graphics\cursors\h_move.cur +Common\Graphics\cursors\h_ne.cur +Common\Graphics\cursors\h_nodrop.cur +Common\Graphics\cursors\h_ns.cur +Common\Graphics\cursors\h_nw.cur +Common\Graphics\cursors\h_point.cur +Common\Graphics\cursors\h_we.cur +Common\Graphics\cursors\help.cur +Common\Graphics\cursors\ho_line.cur +Common\Graphics\cursors\ho_sizeb.cur +Common\Graphics\cursors\ho_split.cur +Common\Graphics\cursors\ibeam_01.cur +Common\Graphics\cursors\magnify.cur +Common\Graphics\cursors\move4way.cur +Common\Graphics\cursors\ne_01.cur +Common\Graphics\cursors\ne_02.cur +Common\Graphics\cursors\ne_03.cur +Common\Graphics\cursors\ne_04.cur +Common\Graphics\cursors\ne_05.cur +Common\Graphics\cursors\ne_06.cur +Common\Graphics\cursors\ne_07.cur +Common\Graphics\cursors\no.cur +Common\Graphics\cursors\nodrop01.cur +Common\Graphics\cursors\nodrop02.cur +Common\Graphics\cursors\normal01.cur +Common\Graphics\cursors\normal02.cur +Common\Graphics\cursors\normal03.cur +Common\Graphics\cursors\normal04.cur +Common\Graphics\cursors\normal05.cur +Common\Graphics\cursors\normal06.cur +Common\Graphics\cursors\normal07.cur +Common\Graphics\cursors\normal08.cur +Common\Graphics\cursors\ns_01.cur +Common\Graphics\cursors\ns_02.cur +Common\Graphics\cursors\ns_03.cur +Common\Graphics\cursors\ns_04.cur +Common\Graphics\cursors\ns_05.cur +Common\Graphics\cursors\ns_06.cur +Common\Graphics\cursors\ns_07.cur +Common\Graphics\cursors\nw_01.cur +Common\Graphics\cursors\nw_02.cur +Common\Graphics\cursors\nw_03.cur +Common\Graphics\cursors\nw_04.cur +Common\Graphics\cursors\nw_05.cur +Common\Graphics\cursors\nw_06.cur +Common\Graphics\cursors\nw_07.cur +Common\Graphics\cursors\nw_08.cur +Common\Graphics\cursors\palette.cur +Common\Graphics\cursors\pencil.cur +Common\Graphics\cursors\select.cur +Common\Graphics\cursors\ve_line.cur +Common\Graphics\cursors\ve_sizeb.cur +Common\Graphics\cursors\ve_split.cur +Common\Graphics\cursors\wait01.cur +Common\Graphics\cursors\wait02.cur +Common\Graphics\cursors\wait03.cur +Common\Graphics\cursors\wait04.cur +Common\Graphics\cursors\wait05.cur +Common\Graphics\cursors\wait06.cur +Common\Graphics\cursors\wait07.cur +Common\Graphics\cursors\wait08.cur +Common\Graphics\icons\arrows\arw01dn.ico +Common\Graphics\icons\arrows\arw01lt.ico +Common\Graphics\icons\arrows\arw01rt.ico +Common\Graphics\icons\arrows\arw01up.ico +Common\Graphics\icons\arrows\arw02dn.ico +Common\Graphics\icons\arrows\arw02lt.ico +Common\Graphics\icons\arrows\arw02rt.ico +Common\Graphics\icons\arrows\arw02up.ico +Common\Graphics\icons\arrows\arw03dn.ico +Common\Graphics\icons\arrows\arw03lt.ico +Common\Graphics\icons\arrows\arw03rt.ico +Common\Graphics\icons\arrows\arw03up.ico +Common\Graphics\icons\arrows\arw04dn.ico +Common\Graphics\icons\arrows\arw04lt.ico +Common\Graphics\icons\arrows\arw04rt.ico +Common\Graphics\icons\arrows\arw04up.ico +Common\Graphics\icons\arrows\arw05dn.ico +Common\Graphics\icons\arrows\arw05lt.ico +Common\Graphics\icons\arrows\arw05rt.ico +Common\Graphics\icons\arrows\arw05up.ico +Common\Graphics\icons\arrows\arw06dn.ico +Common\Graphics\icons\arrows\arw06lt.ico +Common\Graphics\icons\arrows\arw06rt.ico +Common\Graphics\icons\arrows\arw06up.ico +Common\Graphics\icons\arrows\arw07dn.ico +Common\Graphics\icons\arrows\arw07lt.ico +Common\Graphics\icons\arrows\arw07rt.ico +Common\Graphics\icons\arrows\arw07up.ico +Common\Graphics\icons\arrows\arw08dn.ico +Common\Graphics\icons\arrows\arw08lt.ico +Common\Graphics\icons\arrows\arw08rt.ico +Common\Graphics\icons\arrows\arw08up.ico +Common\Graphics\icons\arrows\arw09dn.ico +Common\Graphics\icons\arrows\arw09lt.ico +Common\Graphics\icons\arrows\arw09rt.ico +Common\Graphics\icons\arrows\arw09up.ico +Common\Graphics\icons\arrows\arw10ne.ico +Common\Graphics\icons\arrows\arw10nw.ico +Common\Graphics\icons\arrows\arw10se.ico +Common\Graphics\icons\arrows\arw10sw.ico +Common\Graphics\icons\arrows\arw11ne.ico +Common\Graphics\icons\arrows\arw11nw.ico +Common\Graphics\icons\arrows\arw11se.ico +Common\Graphics\icons\arrows\arw11sw.ico +Common\Graphics\icons\arrows\point01.ico +Common\Graphics\icons\arrows\point02.ico +Common\Graphics\icons\arrows\point03.ico +Common\Graphics\icons\arrows\point04.ico +Common\Graphics\icons\arrows\point05.ico +Common\Graphics\icons\arrows\point06.ico +Common\Graphics\icons\arrows\point07.ico +Common\Graphics\icons\arrows\point08.ico +Common\Graphics\icons\arrows\point09.ico +Common\Graphics\icons\arrows\point10.ico +Common\Graphics\icons\arrows\point11.ico +Common\Graphics\icons\arrows\point12.ico +Common\Graphics\icons\arrows\point13.ico +Common\Graphics\icons\arrows\point14.ico +Common\Graphics\icons\arrows\point15.ico +Common\Graphics\icons\comm\handshak.ico +Common\Graphics\icons\comm\net01.ico +Common\Graphics\icons\comm\net02.ico +Common\Graphics\icons\comm\net03.ico +Common\Graphics\icons\comm\net04.ico +Common\Graphics\icons\comm\net05.ico +Common\Graphics\icons\comm\net06.ico +Common\Graphics\icons\comm\net07.ico +Common\Graphics\icons\comm\net08.ico +Common\Graphics\icons\comm\net09a.ico +Common\Graphics\icons\comm\net09b.ico +Common\Graphics\icons\comm\net10a.ico +Common\Graphics\icons\comm\net10b.ico +Common\Graphics\icons\comm\net11.ico +Common\Graphics\icons\comm\net12.ico +Common\Graphics\icons\comm\net13.ico +Common\Graphics\icons\comm\net14.ico +Common\Graphics\icons\comm\phone01.ico +Common\Graphics\icons\comm\phone02.ico +Common\Graphics\icons\comm\phone03.ico +Common\Graphics\icons\comm\phone04.ico +Common\Graphics\icons\comm\phone05.ico +Common\Graphics\icons\comm\phone06.ico +Common\Graphics\icons\comm\phone07.ico +Common\Graphics\icons\comm\phone08.ico +Common\Graphics\icons\comm\phone09.ico +Common\Graphics\icons\comm\phone10.ico +Common\Graphics\icons\comm\phone11.ico +Common\Graphics\icons\comm\phone12.ico +Common\Graphics\icons\comm\phone13.ico +Common\Graphics\icons\comm\phone14.ico +Common\Graphics\icons\comm\phone15.ico +Common\Graphics\icons\comm\phone16.ico +Common\Graphics\icons\computer\cdrom01.ico +Common\Graphics\icons\computer\cdrom02.ico +Common\Graphics\icons\computer\disk01.ico +Common\Graphics\icons\computer\disk02.ico +Common\Graphics\icons\computer\disk03.ico +Common\Graphics\icons\computer\disk04.ico +Common\Graphics\icons\computer\disk05.ico +Common\Graphics\icons\computer\disk06.ico +Common\Graphics\icons\computer\disk07.ico +Common\Graphics\icons\computer\disk08.ico +Common\Graphics\icons\computer\disk09.ico +Common\Graphics\icons\computer\disk10.ico +Common\Graphics\icons\computer\disk11.ico +Common\Graphics\icons\computer\disk12.ico +Common\Graphics\icons\computer\disk13.ico +Common\Graphics\icons\computer\disk14.ico +Common\Graphics\icons\computer\disk15.ico +Common\Graphics\icons\computer\disks01.ico +Common\Graphics\icons\computer\disks02.ico +Common\Graphics\icons\computer\disks03.ico +Common\Graphics\icons\computer\disks04.ico +Common\Graphics\icons\computer\drive01.ico +Common\Graphics\icons\computer\drive02.ico +Common\Graphics\icons\computer\form.ico +Common\Graphics\icons\computer\info.ico +Common\Graphics\icons\computer\key01.ico +Common\Graphics\icons\computer\key02.ico +Common\Graphics\icons\computer\key03.ico +Common\Graphics\icons\computer\key04.ico +Common\Graphics\icons\computer\key05.ico +Common\Graphics\icons\computer\key06.ico +Common\Graphics\icons\computer\key07.ico +Common\Graphics\icons\computer\keybrd01.ico +Common\Graphics\icons\computer\keybrd02.ico +Common\Graphics\icons\computer\keybrd03.ico +Common\Graphics\icons\computer\keys01.ico +Common\Graphics\icons\computer\keys02.ico +Common\Graphics\icons\computer\keys03.ico +Common\Graphics\icons\computer\mac01.ico +Common\Graphics\icons\computer\mac02.ico +Common\Graphics\icons\computer\mac03.ico +Common\Graphics\icons\computer\mac04.ico +Common\Graphics\icons\computer\mdichild.ico +Common\Graphics\icons\computer\mdiparnt.ico +Common\Graphics\icons\computer\monitr01.ico +Common\Graphics\icons\computer\mouse01.ico +Common\Graphics\icons\computer\mouse02.ico +Common\Graphics\icons\computer\mouse03.ico +Common\Graphics\icons\computer\mouse04.ico +Common\Graphics\icons\computer\msgbox01.ico +Common\Graphics\icons\computer\msgbox02.ico +Common\Graphics\icons\computer\msgbox03.ico +Common\Graphics\icons\computer\msgbox04.ico +Common\Graphics\icons\computer\pc01.ico +Common\Graphics\icons\computer\pc02.ico +Common\Graphics\icons\computer\pc03.ico +Common\Graphics\icons\computer\pc04.ico +Common\Graphics\icons\computer\trash01.ico +Common\Graphics\icons\computer\trash02a.ico +Common\Graphics\icons\computer\trash02b.ico +Common\Graphics\icons\computer\trash03.ico +Common\Graphics\icons\computer\trash04a.ico +Common\Graphics\icons\computer\trash04b.ico +Common\Graphics\icons\computer\w95mbx01.ico +Common\Graphics\icons\computer\w95mbx02.ico +Common\Graphics\icons\computer\w95mbx03.ico +Common\Graphics\icons\computer\w95mbx04.ico +Common\Graphics\icons\dragdrop\drag1pg.ico +Common\Graphics\icons\dragdrop\drag2pg.ico +Common\Graphics\icons\dragdrop\drag3pg.ico +Common\Graphics\icons\dragdrop\dragfldr.ico +Common\Graphics\icons\dragdrop\drop1pg.ico +Common\Graphics\icons\dragdrop\dropfldr.ico +Common\Graphics\icons\elements\cloud.ico +Common\Graphics\icons\elements\earth.ico +Common\Graphics\icons\elements\fire.ico +Common\Graphics\icons\elements\litening.ico +Common\Graphics\icons\elements\moon01.ico +Common\Graphics\icons\elements\moon02.ico +Common\Graphics\icons\elements\moon03.ico +Common\Graphics\icons\elements\moon04.ico +Common\Graphics\icons\elements\moon05.ico +Common\Graphics\icons\elements\moon06.ico +Common\Graphics\icons\elements\moon07.ico +Common\Graphics\icons\elements\moon08.ico +Common\Graphics\icons\elements\rain.ico +Common\Graphics\icons\elements\snow.ico +Common\Graphics\icons\elements\sun.ico +Common\Graphics\icons\elements\water.ico +Common\Graphics\icons\flags\ctrcan.ico +Common\Graphics\icons\flags\ctrfran.ico +Common\Graphics\icons\flags\ctrgerm.ico +Common\Graphics\icons\flags\ctritaly.ico +Common\Graphics\icons\flags\ctrjapan.ico +Common\Graphics\icons\flags\ctrmex.ico +Common\Graphics\icons\flags\ctrskor.ico +Common\Graphics\icons\flags\ctrspain.ico +Common\Graphics\icons\flags\ctruk.ico +Common\Graphics\icons\flags\ctrusa.ico +Common\Graphics\icons\flags\flgastrl.ico +Common\Graphics\icons\flags\flgausta.ico +Common\Graphics\icons\flags\flgbelg.ico +Common\Graphics\icons\flags\flgbrazl.ico +Common\Graphics\icons\flags\flgcan.ico +Common\Graphics\icons\flags\flgden.ico +Common\Graphics\icons\flags\flgfin.ico +Common\Graphics\icons\flags\flgfran.ico +Common\Graphics\icons\flags\flggerm.ico +Common\Graphics\icons\flags\flgirel.ico +Common\Graphics\icons\flags\flgitaly.ico +Common\Graphics\icons\flags\flgjapan.ico +Common\Graphics\icons\flags\flgmex.ico +Common\Graphics\icons\flags\flgneth.ico +Common\Graphics\icons\flags\flgnorw.ico +Common\Graphics\icons\flags\flgnz.ico +Common\Graphics\icons\flags\flgport.ico +Common\Graphics\icons\flags\flgrsa.ico +Common\Graphics\icons\flags\flgrus.ico +Common\Graphics\icons\flags\flgskor.ico +Common\Graphics\icons\flags\flgspain.ico +Common\Graphics\icons\flags\flgswed.ico +Common\Graphics\icons\flags\flgswitz.ico +Common\Graphics\icons\flags\flgturk.ico +Common\Graphics\icons\flags\flguk.ico +Common\Graphics\icons\flags\flgusa01.ico +Common\Graphics\icons\flags\flgusa02.ico +Common\Graphics\icons\industry\bicycle.ico +Common\Graphics\icons\industry\cars.ico +Common\Graphics\icons\industry\factory.ico +Common\Graphics\icons\industry\gaspump.ico +Common\Graphics\icons\industry\hammer.ico +Common\Graphics\icons\industry\plane.ico +Common\Graphics\icons\industry\rocket.ico +Common\Graphics\icons\industry\sinewave.ico +Common\Graphics\icons\industry\wrench.ico +Common\Graphics\icons\mail\mail01a.ico +Common\Graphics\icons\mail\mail01b.ico +Common\Graphics\icons\mail\mail02a.ico +Common\Graphics\icons\mail\mail02b.ico +Common\Graphics\icons\mail\mail03.ico +Common\Graphics\icons\mail\mail04.ico +Common\Graphics\icons\mail\mail05a.ico +Common\Graphics\icons\mail\mail05b.ico +Common\Graphics\icons\mail\mail06.ico +Common\Graphics\icons\mail\mail07.ico +Common\Graphics\icons\mail\mail08.ico +Common\Graphics\icons\mail\mail09.ico +Common\Graphics\icons\mail\mail10.ico +Common\Graphics\icons\mail\mail11.ico +Common\Graphics\icons\mail\mail12.ico +Common\Graphics\icons\mail\mail13.ico +Common\Graphics\icons\mail\mail14.ico +Common\Graphics\icons\mail\mail15.ico +Common\Graphics\icons\mail\mail16a.ico +Common\Graphics\icons\mail\mail16b.ico +Common\Graphics\icons\mail\mail17.ico +Common\Graphics\icons\mail\mail18.ico +Common\Graphics\icons\mail\mail19a.ico +Common\Graphics\icons\mail\mail19b.ico +Common\Graphics\icons\mail\mail20.ico +Common\Graphics\icons\mail\mail21a.ico +Common\Graphics\icons\mail\mail21b.ico +Common\Graphics\icons\misc\binoculr.ico +Common\Graphics\icons\misc\bridge.ico +Common\Graphics\icons\misc\bullseye.ico +Common\Graphics\icons\misc\camera.ico +Common\Graphics\icons\misc\checkmrk.ico +Common\Graphics\icons\misc\circ1.ico +Common\Graphics\icons\misc\circ2.ico +Common\Graphics\icons\misc\circ3.ico +Common\Graphics\icons\misc\clock01.ico +Common\Graphics\icons\misc\clock02.ico +Common\Graphics\icons\misc\clock03.ico +Common\Graphics\icons\misc\clock04.ico +Common\Graphics\icons\misc\clock05.ico +Common\Graphics\icons\misc\clock06.ico +Common\Graphics\icons\misc\ear.ico +Common\Graphics\icons\misc\exclem.ico +Common\Graphics\icons\misc\eye.ico +Common\Graphics\icons\misc\face01.ico +Common\Graphics\icons\misc\face02.ico +Common\Graphics\icons\misc\face03.ico +Common\Graphics\icons\misc\face04.ico +Common\Graphics\icons\misc\face05.ico +Common\Graphics\icons\misc\house.ico +Common\Graphics\icons\misc\lightoff.ico +Common\Graphics\icons\misc\lighton.ico +Common\Graphics\icons\misc\mike.ico +Common\Graphics\icons\misc\misc01.ico +Common\Graphics\icons\misc\misc02.ico +Common\Graphics\icons\misc\misc03.ico +Common\Graphics\icons\misc\misc04.ico +Common\Graphics\icons\misc\misc05.ico +Common\Graphics\icons\misc\misc06.ico +Common\Graphics\icons\misc\misc07.ico +Common\Graphics\icons\misc\misc08.ico +Common\Graphics\icons\misc\misc09.ico +Common\Graphics\icons\misc\misc10.ico +Common\Graphics\icons\misc\misc11.ico +Common\Graphics\icons\misc\misc12.ico +Common\Graphics\icons\misc\misc13.ico +Common\Graphics\icons\misc\misc14.ico +Common\Graphics\icons\misc\misc15.ico +Common\Graphics\icons\misc\misc16a.ico +Common\Graphics\icons\misc\misc16b.ico +Common\Graphics\icons\misc\misc17a.ico +Common\Graphics\icons\misc\misc17b.ico +Common\Graphics\icons\misc\misc18.ico +Common\Graphics\icons\misc\misc19.ico +Common\Graphics\icons\misc\misc20.ico +Common\Graphics\icons\misc\misc21.ico +Common\Graphics\icons\misc\misc22.ico +Common\Graphics\icons\misc\misc23.ico +Common\Graphics\icons\misc\misc24.ico +Common\Graphics\icons\misc\misc25.ico +Common\Graphics\icons\misc\misc26.ico +Common\Graphics\icons\misc\misc27.ico +Common\Graphics\icons\misc\misc28.ico +Common\Graphics\icons\misc\misc29.ico +Common\Graphics\icons\misc\misc30.ico +Common\Graphics\icons\misc\misc31.ico +Common\Graphics\icons\misc\misc32.ico +Common\Graphics\icons\misc\misc33.ico +Common\Graphics\icons\misc\misc34.ico +Common\Graphics\icons\misc\misc35.ico +Common\Graphics\icons\misc\misc36.ico +Common\Graphics\icons\misc\misc37.ico +Common\Graphics\icons\misc\misc38.ico +Common\Graphics\icons\misc\misc39a.ico +Common\Graphics\icons\misc\misc39b.ico +Common\Graphics\icons\misc\misc40.ico +Common\Graphics\icons\misc\misc41.ico +Common\Graphics\icons\misc\misc42.ico +Common\Graphics\icons\misc\misc43.ico +Common\Graphics\icons\misc\misc44.ico +Common\Graphics\icons\misc\question.ico +Common\Graphics\icons\misc\secur01a.ico +Common\Graphics\icons\misc\secur01b.ico +Common\Graphics\icons\misc\secur02a.ico +Common\Graphics\icons\misc\secur02b.ico +Common\Graphics\icons\misc\secur03.ico +Common\Graphics\icons\misc\secur04.ico +Common\Graphics\icons\misc\secur05.ico +Common\Graphics\icons\misc\secur06.ico +Common\Graphics\icons\misc\secur07.ico +Common\Graphics\icons\misc\secur08.ico +Common\Graphics\icons\misc\timer01.ico +Common\Graphics\icons\misc\volume01.ico +Common\Graphics\icons\misc\volume02.ico +Common\Graphics\icons\misc\watch01.ico +Common\Graphics\icons\misc\watch02.ico +Common\Graphics\icons\office\clip01.ico +Common\Graphics\icons\office\clip02.ico +Common\Graphics\icons\office\clip03.ico +Common\Graphics\icons\office\clip04.ico +Common\Graphics\icons\office\clip05.ico +Common\Graphics\icons\office\clip06.ico +Common\Graphics\icons\office\clip07.ico +Common\Graphics\icons\office\clip08.ico +Common\Graphics\icons\office\crdfle01.ico +Common\Graphics\icons\office\crdfle02.ico +Common\Graphics\icons\office\crdfle03.ico +Common\Graphics\icons\office\crdfle04.ico +Common\Graphics\icons\office\crdfle05.ico +Common\Graphics\icons\office\crdfle06.ico +Common\Graphics\icons\office\crdfle07.ico +Common\Graphics\icons\office\crdfle08.ico +Common\Graphics\icons\office\crdfle09.ico +Common\Graphics\icons\office\crdfle10.ico +Common\Graphics\icons\office\crdfle11.ico +Common\Graphics\icons\office\crdfle12.ico +Common\Graphics\icons\office\crdfle13.ico +Common\Graphics\icons\office\files01a.ico +Common\Graphics\icons\office\files01b.ico +Common\Graphics\icons\office\files02a.ico +Common\Graphics\icons\office\files02b.ico +Common\Graphics\icons\office\files03a.ico +Common\Graphics\icons\office\files03b.ico +Common\Graphics\icons\office\files04.ico +Common\Graphics\icons\office\files05a.ico +Common\Graphics\icons\office\files05b.ico +Common\Graphics\icons\office\files06.ico +Common\Graphics\icons\office\files07.ico +Common\Graphics\icons\office\files08.ico +Common\Graphics\icons\office\files09.ico +Common\Graphics\icons\office\files10.ico +Common\Graphics\icons\office\folder01.ico +Common\Graphics\icons\office\folder02.ico +Common\Graphics\icons\office\folder03.ico +Common\Graphics\icons\office\folder04.ico +Common\Graphics\icons\office\folder05.ico +Common\Graphics\icons\office\folder06.ico +Common\Graphics\icons\office\foldrs01.ico +Common\Graphics\icons\office\foldrs02.ico +Common\Graphics\icons\office\graph01.ico +Common\Graphics\icons\office\graph02.ico +Common\Graphics\icons\office\graph03.ico +Common\Graphics\icons\office\graph04.ico +Common\Graphics\icons\office\graph05.ico +Common\Graphics\icons\office\graph06.ico +Common\Graphics\icons\office\graph07.ico +Common\Graphics\icons\office\graph08.ico +Common\Graphics\icons\office\graph09.ico +Common\Graphics\icons\office\graph10.ico +Common\Graphics\icons\office\graph11.ico +Common\Graphics\icons\office\graph12.ico +Common\Graphics\icons\office\graph13.ico +Common\Graphics\icons\office\graph14.ico +Common\Graphics\icons\office\graph15.ico +Common\Graphics\icons\office\graph16.ico +Common\Graphics\icons\office\labels.ico +Common\Graphics\icons\office\rulers.ico +Common\Graphics\icons\traffic\trffc01.ico +Common\Graphics\icons\traffic\trffc02.ico +Common\Graphics\icons\traffic\trffc03.ico +Common\Graphics\icons\traffic\trffc04.ico +Common\Graphics\icons\traffic\trffc05.ico +Common\Graphics\icons\traffic\trffc06.ico +Common\Graphics\icons\traffic\trffc07.ico +Common\Graphics\icons\traffic\trffc08.ico +Common\Graphics\icons\traffic\trffc09.ico +Common\Graphics\icons\traffic\trffc10a.ico +Common\Graphics\icons\traffic\trffc10b.ico +Common\Graphics\icons\traffic\trffc10c.ico +Common\Graphics\icons\traffic\trffc11.ico +Common\Graphics\icons\traffic\trffc12.ico +Common\Graphics\icons\traffic\trffc13.ico +Common\Graphics\icons\traffic\trffc14.ico +Common\Graphics\icons\traffic\trffc15.ico +Common\Graphics\icons\traffic\trffc16.ico +Common\Graphics\icons\traffic\trffc17.ico +Common\Graphics\icons\traffic\trffc18a.ico +Common\Graphics\icons\traffic\trffc18b.ico +Common\Graphics\icons\traffic\trffc19a.ico +Common\Graphics\icons\traffic\trffc19b.ico +Common\Graphics\icons\traffic\trffc20.ico +Common\Graphics\icons\win95\35floppy.ico +Common\Graphics\icons\win95\525flop1.ico +Common\Graphics\icons\win95\audio.ico +Common\Graphics\icons\win95\cddrive.ico +Common\Graphics\icons\win95\clsdfold.ico +Common\Graphics\icons\win95\ctrpanel.ico +Common\Graphics\icons\win95\desktop.ico +Common\Graphics\icons\win95\drive.ico +Common\Graphics\icons\win95\drivedsc.ico +Common\Graphics\icons\win95\drivenet.ico +Common\Graphics\icons\win95\entirnet.ico +Common\Graphics\icons\win95\explorer.ico +Common\Graphics\icons\win95\mycomp.ico +Common\Graphics\icons\win95\nethood.ico +Common\Graphics\icons\win95\openfold.ico +Common\Graphics\icons\win95\printfld.ico +Common\Graphics\icons\win95\recyfull.ico +Common\Graphics\icons\win95\remteacc.ico +Common\Graphics\icons\win95\waste.ico +Common\Graphics\icons\writing\book01a.ico +Common\Graphics\icons\writing\book01b.ico +Common\Graphics\icons\writing\book02.ico +Common\Graphics\icons\writing\book03.ico +Common\Graphics\icons\writing\book04.ico +Common\Graphics\icons\writing\book05.ico +Common\Graphics\icons\writing\book06.ico +Common\Graphics\icons\writing\books01.ico +Common\Graphics\icons\writing\books02.ico +Common\Graphics\icons\writing\books03.ico +Common\Graphics\icons\writing\books04.ico +Common\Graphics\icons\writing\books05.ico +Common\Graphics\icons\writing\erase01.ico +Common\Graphics\icons\writing\erase02.ico +Common\Graphics\icons\writing\font01.ico +Common\Graphics\icons\writing\font02.ico +Common\Graphics\icons\writing\landscap.ico +Common\Graphics\icons\writing\note01.ico +Common\Graphics\icons\writing\note02.ico +Common\Graphics\icons\writing\note03.ico +Common\Graphics\icons\writing\note04.ico +Common\Graphics\icons\writing\note05.ico +Common\Graphics\icons\writing\note06.ico +Common\Graphics\icons\writing\note07.ico +Common\Graphics\icons\writing\note08.ico +Common\Graphics\icons\writing\note09.ico +Common\Graphics\icons\writing\note10.ico +Common\Graphics\icons\writing\note10b.ico +Common\Graphics\icons\writing\note10c.ico +Common\Graphics\icons\writing\note11.ico +Common\Graphics\icons\writing\note12.ico +Common\Graphics\icons\writing\note13.ico +Common\Graphics\icons\writing\note14.ico +Common\Graphics\icons\writing\note15.ico +Common\Graphics\icons\writing\note16.ico +Common\Graphics\icons\writing\note17.ico +Common\Graphics\icons\writing\note18.ico +Common\Graphics\icons\writing\pen01.ico +Common\Graphics\icons\writing\pen02.ico +Common\Graphics\icons\writing\pen03.ico +Common\Graphics\icons\writing\pen04.ico +Common\Graphics\icons\writing\pen05.ico +Common\Graphics\icons\writing\pen06.ico +Common\Graphics\icons\writing\pen07.ico +Common\Graphics\icons\writing\pencil01.ico +Common\Graphics\icons\writing\pencil02.ico +Common\Graphics\icons\writing\pencil03.ico +Common\Graphics\icons\writing\pencil04.ico +Common\Graphics\icons\writing\pencil05.ico +Common\Graphics\icons\writing\pencil06.ico +Common\Graphics\icons\writing\pencil07.ico +Common\Graphics\icons\writing\pencil08.ico +Common\Graphics\icons\writing\pencil09.ico +Common\Graphics\icons\writing\pencil10.ico +Common\Graphics\icons\writing\pencil11.ico +Common\Graphics\icons\writing\pencil12.ico +Common\Graphics\icons\writing\pencil13.ico +Common\Graphics\icons\writing\pencil14.ico +Common\Graphics\icons\writing\pens01.ico +Common\Graphics\icons\writing\pens02.ico +Common\Graphics\icons\writing\pens03.ico +Common\Graphics\icons\writing\pens04.ico +Common\Graphics\icons\writing\portrait.ico +Common\Graphics\Metafile\arrows\2darrow1.wmf +Common\Graphics\Metafile\arrows\2darrow2.wmf +Common\Graphics\Metafile\arrows\2darrow3.wmf +Common\Graphics\Metafile\arrows\2darrow4.wmf +Common\Graphics\Metafile\arrows\3darrow1.wmf +Common\Graphics\Metafile\arrows\3darrow2.wmf +Common\Graphics\Metafile\arrows\3darrow3.wmf +Common\Graphics\Metafile\arrows\3darrow4.wmf +Common\Graphics\Metafile\arrows\3darrow5.wmf +Common\Graphics\Metafile\arrows\3darrow6.wmf +Common\Graphics\Metafile\arrows\3darrow7.wmf +Common\Graphics\Metafile\arrows\3dxarrow.wmf +Common\Graphics\Metafile\arrows\3dxcirar.wmf +Common\Graphics\Metafile\arrows\halfarrw.wmf +Common\Graphics\Metafile\arrows\hortarrw.wmf +Common\Graphics\Metafile\arrows\hozcirar.wmf +Common\Graphics\Metafile\arrows\layerarw.wmf +Common\Graphics\Metafile\arrows\lrgearrw.wmf +Common\Graphics\Metafile\arrows\medarrw1.wmf +Common\Graphics\Metafile\arrows\medarrw2.wmf +Common\Graphics\Metafile\arrows\multarw1.wmf +Common\Graphics\Metafile\arrows\multarw2.wmf +Common\Graphics\Metafile\arrows\multarw3.wmf +Common\Graphics\Metafile\arrows\multarw4.wmf +Common\Graphics\Metafile\arrows\smallarw.wmf +Common\Graphics\Metafile\arrows\tinyarrw.wmf +Common\Graphics\Metafile\arrows\vertarrw.wmf +Common\Graphics\Metafile\arrows\vrtcirar.wmf +Common\Graphics\Metafile\arrows\vrtcurar.wmf +Common\Graphics\Metafile\arrows\xarrow.wmf +Common\Graphics\Metafile\business\3dlrsign.wmf +Common\Graphics\Metafile\business\alphbord.wmf +Common\Graphics\Metafile\business\alphtrpn.wmf +Common\Graphics\Metafile\business\answmach.wmf +Common\Graphics\Metafile\business\apptbook.wmf +Common\Graphics\Metafile\business\calcultr.wmf +Common\Graphics\Metafile\business\calendar.wmf +Common\Graphics\Metafile\business\cent.wmf +Common\Graphics\Metafile\business\check.wmf +Common\Graphics\Metafile\business\clipbord.wmf +Common\Graphics\Metafile\business\coins.wmf +Common\Graphics\Metafile\business\computer.wmf +Common\Graphics\Metafile\business\copymach.wmf +Common\Graphics\Metafile\business\deutsch.wmf +Common\Graphics\Metafile\business\digitals.wmf +Common\Graphics\Metafile\business\digitnum.wmf +Common\Graphics\Metafile\business\dime.wmf +Common\Graphics\Metafile\business\disk35.wmf +Common\Graphics\Metafile\business\disk525.wmf +Common\Graphics\Metafile\business\dollar.wmf +Common\Graphics\Metafile\business\dollars.wmf +Common\Graphics\Metafile\business\envlback.wmf +Common\Graphics\Metafile\business\envlfrnt.wmf +Common\Graphics\Metafile\business\fileclsd.wmf +Common\Graphics\Metafile\business\fileopen.wmf +Common\Graphics\Metafile\business\guilder.wmf +Common\Graphics\Metafile\business\harddisk.wmf +Common\Graphics\Metafile\business\laptop1.wmf +Common\Graphics\Metafile\business\laptop2.wmf +Common\Graphics\Metafile\business\micrchip.wmf +Common\Graphics\Metafile\business\money.wmf +Common\Graphics\Metafile\business\moneybag.wmf +Common\Graphics\Metafile\business\monitor.wmf +Common\Graphics\Metafile\business\monystk1.wmf +Common\Graphics\Metafile\business\monystk2.wmf +Common\Graphics\Metafile\business\nickel.wmf +Common\Graphics\Metafile\business\payphone.wmf +Common\Graphics\Metafile\business\pcomputr.wmf +Common\Graphics\Metafile\business\penny.wmf +Common\Graphics\Metafile\business\peseta.wmf +Common\Graphics\Metafile\business\phone.wmf +Common\Graphics\Metafile\business\postcard.wmf +Common\Graphics\Metafile\business\pound.wmf +Common\Graphics\Metafile\business\poundbag.wmf +Common\Graphics\Metafile\business\printer.wmf +Common\Graphics\Metafile\business\prntout1.wmf +Common\Graphics\Metafile\business\prntout2.wmf +Common\Graphics\Metafile\business\prntout3.wmf +Common\Graphics\Metafile\business\quarter.wmf +Common\Graphics\Metafile\business\rolodex.wmf +Common\Graphics\Metafile\business\ruble.wmf +Common\Graphics\Metafile\business\satedish.wmf +Common\Graphics\Metafile\business\satelit1.wmf +Common\Graphics\Metafile\business\satelit2.wmf +Common\Graphics\Metafile\business\typewrtr.wmf +Common\Graphics\Metafile\business\yen.wmf +Common\Graphics\AVIs\blur16.avi +Common\Graphics\AVIs\blur24.avi +Common\Graphics\AVIs\blur8.avi +Common\Graphics\AVIs\cineapk.avi +Common\Graphics\AVIs\count16.avi +Common\Graphics\AVIs\count24.avi +Common\Graphics\AVIs\count8.avi +Common\Graphics\AVIs\count8r.avi +Common\Graphics\AVIs\downlo~1.avi +Common\Graphics\AVIs\download.avi +Common\Graphics\AVIs\drillrle.avi +Common\Graphics\AVIs\filecopy.avi +Common\Graphics\AVIs\filedel.avi +Common\Graphics\AVIs\filedelr.avi +Common\Graphics\AVIs\filemove.avi +Common\Graphics\AVIs\filenuke.avi +Common\Graphics\AVIs\findcomp.avi +Common\Graphics\AVIs\findfile.avi +Common\Graphics\AVIs\search.avi +shared\DataEnv\msderun.dll +Common\Tools\Winapi\mapi32.txt +Common\Tools\Winapi\win32api.txt +os\system\msdbrptr.dll +shared\msadc\adcjavas.inc +shared\msadc\adcvbs.inc +shared\msadc\handler.srg +shared\msadc\mdac11.cab +shared\msadc\mdac20.cab +shared\msadc\mdac20_a.cab +shared\msadc\msadce.dll +shared\msadc\msadcer.dll +shared\msadc\msadcf.dll +shared\msadc\msadcfr.dll +shared\msadc\msadco.dll +shared\msadc\msadcor.dll +shared\msadc\msadcs.dll +shared\msadc\msadds.dll +shared\msadc\msaddsr.dll +shared\msadc\msdaprst.dll +shared\msadc\MSDATSRC.TLB +shared\msadc\msdfmap.dll +shared\msadc\msdfmap.ini +shared\msadc\msjtes40.dll +shared\ado\adoapt15.reg +shared\ado\adofre15.reg +shared\ado\adojavas.inc +shared\ado\ADOread.txt +shared\ado\adovbs.inc +shared\ado\makapt15.bat +shared\ado\makfre15.bat +shared\ado\msader15.dll +shared\ado\msado15.dll +shared\ado\msador15.dll +shared\ado\msadrh15.dll +shared\oledb\msdasql.dll +shared\oledb\MSDASQL.txt +shared\oledb\msdasqlr.dll +os\system\ds16gt.dll +os\system\ds32gt.dll +os\system\mtxdm.dll +os\system\odbc16gt.dll +os\system\odbc32.dll +os\system\odbc32gt.dll +os\system\odbcad32.exe +os\system\odbccp32.cpl +os\system\odbccp32.dll +os\system\odbccr32.dll +os\system\odbccu32.dll +os\system\odbcinst.cnt +os\system\odbcinst.hlp +os\system\odbcint.dll +os\system\odbctrac.dll +os\system\sqlsodbc.hlp +os\system\SQLSRdMe.txt +os\system\sqlsrv32.dll +os\system\windbver.exe +os\system\msorcl32.cnt +os\system\msorcl32.dll +os\system\msorcl32.hlp +os\system\msorcl32.txt +os\system\msjet35.dll +os\system\msjint35.dll +os\system\msjter35.dll +os\system\msrd2x35.dll +os\system\msrepl35.dll +os\system\vbar332.dll +shared\oledb\JoltRead.txt +os\system\msjt4jlt.dll +shared\oledb\msjtor35.dll +os\system\mfc42.dll +os\system\mfc42chs.dll +os\system\mfc42cht.dll +os\system\mfc42deu.dll +os\system\mfc42enu.dll +os\system\mfc42esp.dll +os\system\mfc42fra.dll +os\system\mfc42ita.dll +os\system\mfc42jpn.dll +os\system\mfc42kor.dll +os\system\12520437.cpx +os\system\12520850.cpx +os\system\mscpxl32.dll +os\system\msvcrt40.dll +os\system\msvbvm60.dll +shared\oledb\msdadc.dll +shared\oledb\msdaenum.dll +shared\oledb\msdaer.dll +shared\oledb\msdaerr.dll +shared\oledb\MSDAPS.DLL +shared\oledb\msdatl2.dll +shared\oledb\msdatt.dll +shared\oledb\oledb32.dll +shared\oledb\oledb32r.dll +shared\oledb\oledb32x.dll +os\system\msvcrt.dll +os\system\mshflxgd.ocx +os\system\msvcirt.dll +os\system\expsrv.dll +os\system\vbajet32.dll +shared\oledb\dbmsshrn.dll +shared\oledb\SQLOLEDB.DLL +shared\oledb\SQLOLEDB.txt +shared\oledb\sqlsoldb.hlp +os\system\msexch35.dll +os\system\msexcl35.dll +os\system\mspdox35.dll +os\system\mstext35.dll +os\system\msxbse35.dll +os\system\msltus35.dll +shared\oledb\msdaora.dll +shared\oledb\OraOledb.txt +os\system\Mscdrun.dll +os\system\Autmgr32.exe +os\system\Autprx32.dll +os\system\odbcjet.cnt +os\system\odbcjet.hlp +os\system\odbcji32.dll +os\system\odbcjt32.dll +os\system\odbctl32.dll +os\system\oddbse32.dll +os\system\odexl32.dll +os\system\odfox32.dll +os\system\odpdx32.dll +os\system\odtext32.dll +os\system\msrdo20.dll +os\system\Rdocurs.dll +os\system\msrdc20.ocx +os\system\mswcrun.dll +os\system\wbclsdsr.ocx +os\system\adodcchs.dll +os\system\cmct3chs.dll +os\system\cmdlgchs.dll +os\system\connrchs.dll +os\system\datgdchs.dll +os\system\datlschs.dll +os\system\DatRpchs.DLL +os\system\dblstchs.dll +os\system\dbrprchs.dll +os\system\flxgdchs.dll +os\system\htmprchs.dll +os\system\inetchs.dll +os\system\mcichs.dll +os\system\MSADNchs.dll +os\system\MsCc2chs.dll +os\system\msch2chs.dll +os\system\MSCMCCHS.DLL +os\system\MSCOMCHS.DLL +os\system\MSHFGCHS.DLL +os\system\MSMPICHS.DLL +os\system\MSMSKCHS.DLL +os\system\msprpchs.dll +os\system\mswcrchs.DLL +os\system\pcclpchs.dll +os\system\rchtxchs.dll +os\system\rdc20chs.dll +os\system\rdo20chs.dll +os\system\sqlpachs.dll +os\system\stdftchs.dll +os\system\SYSINCHS.DLL +os\system\TABCTCHS.DLL +os\system\VB6CHS.DLL +os\system\WINSKCHS.DLL +os\system\hh.exe +os\system\resource\1069\hhctrl.ocx +os\system\resource\1027\hhctrl.ocx +os\system\resource\1028\hhctrl.ocx +os\system\resource\1029\hhctrl.ocx +os\system\resource\1030\hhctrl.ocx +os\system\resource\1031\hhctrl.ocx +os\system\resource\3082\hhctrl.ocx +os\system\resource\1035\hhctrl.ocx +os\system\resource\1036\hhctrl.ocx +os\system\resource\1037\hhctrl.ocx +os\system\resource\1038\hhctrl.ocx +os\system\resource\1040\hhctrl.ocx +os\system\resource\1042\hhctrl.ocx +os\system\resource\1032\hhctrl.ocx +os\system\resource\1043\hhctrl.ocx +os\system\resource\1044\hhctrl.ocx +os\system\resource\1045\hhctrl.ocx +os\system\resource\1046\hhctrl.ocx +os\system\resource\2070\hhctrl.ocx +os\system\resource\1049\hhctrl.ocx +os\system\resource\1051\hhctrl.ocx +os\system\resource\1060\hhctrl.ocx +os\system\resource\1025\hhctrl.ocx +os\system\resource\1053\hhctrl.ocx +os\system\resource\2052\hhctrl.ocx +os\system\resource\1055\hhctrl.ocx +os\system\resource\1033\hhctrl.ocx +os\system\resource\1041\hhctrl.ocx +os\system\itircl.dll +os\system\itss.dll +os\system\mshtmpgr.dll +os\system\odkob32.dll +os\system\Racmgr32.exe +os\system\Racreg32.dll +Common\Tools\CliReg\clireg32.exe +os\system\tlbinf32.dll +os\system\comct232.ocx +os\system\mscomct2.ocx +os\system\comctl32.ocx +os\system\mscomctl.ocx +os\system\comdlg32.ocx +os\system\MSDatGrd.ocx +os\system\dblist32.ocx +os\system\mci32.ocx +os\system\mschrt20.ocx +os\system\mscomm32.ocx +os\system\msflxgrd.ocx +os\system\vsdbflex.srg +os\system\msinet.ocx +os\system\msmapi32.ocx +os\system\msmask32.ocx +os\system\mswinsck.ocx +os\system\picclp32.ocx +os\system\richtx32.ocx +os\system\sysinfo.ocx +os\system\tabctl32.ocx +os\system\comct332.ocx +os\system\msdatlst.ocx +os\system\msadodc.ocx +os\system\MSDatRep.ocx +Shared\Triedit\triedit.dll +os\system\asycfilt.dll +os\system\oleaut32.dll +os\system\olepro32.dll +os\system\stdole2.tlb +os\system\msstkprp.dll +os\system\dao2535.tlb +os\system\dao350.dll +os\system\dbadapt.dll +VB98\visdata.exe +os\system\msstdfmt.dll +common\tools\vb\PDWizard\chs\setup.exe +common\tools\vb\PDWizard\cht\setup.exe +common\tools\vb\PDWizard\esp\setup.exe +common\tools\vb\PDWizard\frn\setup.exe +common\tools\vb\PDWizard\itl\setup.exe +common\tools\vb\PDWizard\deu\setup.exe +common\tools\vb\PDWizard\kor\setup.exe +common\tools\vb\PDWizard\enu\setup.exe +common\tools\vb\PDWizard\jpn\setup.exe +os\system\drvvfp.cnt +os\system\drvvfp.hlp +os\system\vfpodbc.dll +os\system\vfpodbc.txt +shared\oledb\msdaosp.dll +shared\oledb\simpdata.tlb +shared\oledb\msdasc.cnt +shared\oledb\msdasc.dll +shared\oledb\msdasc.hlp +shared\oledb\msdasc.txt +VB98\template\projects\IISApp.vbp +VB98\template\projects\IISApp.vbw +VB98\template\projects\WebClass.dsr +VB98\template\projects\WebClass.dsx +VB98\template\projects\Webclass.log +VB98\template\projects\dhtml.bas +VB98\template\projects\DHTMLApp.vbp +VB98\template\projects\DHTMLapp.vbw +VB98\template\projects\HTMLPage.dsr +VB98\template\projects\HTMLPage.dsx +VB98\template\projects\DataEnv.dca +VB98\template\projects\DataEnv.dsr +VB98\template\projects\DataProj.vbp +VB98\template\projects\DataRpt.dca +VB98\template\projects\DataRpt.dsr +VB98\template\projects\FrmDatEn.frm +os\system\msaddndr.dll +os\system\dbmssocn.dll +os\system\dbnmpntw.dll +os\system\instcat.sql +VB98\wizards\template\confirm.frm +VB98\wizards\template\confirm.frx +VB98\wizards\template\wizard.bas +VB98\wizards\template\wizard.dca +VB98\wizards\template\wizard.dsr +VB98\wizards\template\wizard.frm +VB98\wizards\template\wizard.frx +VB98\wizards\template\wizard.res +VB98\wizards\template\wizard.vbp +common\tools\vb\controls\anibtn32.ocx +common\tools\vb\controls\dbgrid32.ocx +common\tools\vb\controls\gauge32.ocx +common\tools\vb\controls\graph32.ocx +common\tools\vb\controls\grid32.ocx +common\tools\vb\controls\gswdll32.dll +common\tools\vb\controls\keysta32.ocx +common\tools\vb\controls\mschart.ocx +common\tools\vb\controls\msoutl32.ocx +common\tools\vb\WinLess\mswless.ocx +common\tools\vb\controls\spin32.ocx +common\tools\vb\controls\threed32.ocx +common\tools\vb\Chinese\Controls\DBGRDCHS.DLL +common\tools\vb\Chinese\Controls\MSCHTCHS.DLL +common\tools\vb\Chinese\crysrept\cc245chs.dll +commont\tools\vb\Chinese\Script\jschs.dll +commont\tools\vb\Chinese\Script\msscrchs.dll +common\tools\vb\Chinese\Script\vbschs.dll +common\tools\vb\Chinese\winless\mswlschs.dll +os\system\scrrun.dll +VB98\Wizards\PDWizard\Setup1\install.bmp +VB98\Wizards\PDWizard\dlgobjs.dll +VB98\Wizards\PDWizard\Setup.exe +VB98\Wizards\PDWizard\Setup1.exe +VB98\Wizards\PDWizard\St6unst.exe +VB98\Wizards\PDWizard\Vb6stkit.dll +os\system\regsvr32.exe +shared\odbc\MTxOCi.dll +VB98\template\forms\odbclgin.frm +VB98\template\forms\odbclog.frx +VB98\template\forms\option.frx +VB98\template\forms\optsdlg.frm +os\system\Comcat.dll +os\system\Hlp95en.dll +Common\Tools\VB\Cabinets\ComCt232.CAB +Common\Tools\VB\Cabinets\comct2ax.cab +Common\Tools\VB\Cabinets\comct332.cab +Common\Tools\VB\Cabinets\ComCtl32.CAB +Common\Tools\VB\Cabinets\COMCTLax.cab +Common\Tools\VB\Cabinets\ComDlg32.CAB +Common\Tools\VB\Cabinets\comdlgax.cab +Common\Tools\VB\Cabinets\DBGrid32.CAB +Common\Tools\VB\Cabinets\DBList32.CAB +Common\Tools\VB\Cabinets\dblistax.cab +Common\Tools\VB\Cabinets\Mci32.cab +Common\Tools\VB\Cabinets\mci32ax.cab +Common\Tools\VB\Cabinets\mdac_typ.cab +Common\Tools\VB\Cabinets\mdac20.cab +Common\Tools\VB\Cabinets\MSAdoDc.CAB +Common\Tools\VB\Cabinets\MSBind.CAB +Common\Tools\VB\Cabinets\MSChrt20.CAB +Common\Tools\VB\Cabinets\MSComCt2.CAB +Common\Tools\VB\Cabinets\MSComCtl.CAB +Common\Tools\VB\Cabinets\MSComm32.CAB +Common\Tools\VB\Cabinets\mscommax.cab +Common\Tools\VB\Cabinets\MSDatGrd.CAB +Common\Tools\VB\Cabinets\MSDatLst.CAB +Common\Tools\VB\Cabinets\MSDatRep.CAB +Common\Tools\VB\Cabinets\MSDBRptR.CAB +Common\Tools\VB\Cabinets\msflxgax.cab +Common\Tools\VB\Cabinets\MSFlxGrd.CAB +Common\Tools\VB\Cabinets\MSHFlxGd.CAB +Common\Tools\VB\Cabinets\MSHtmPgR.CAB +Common\Tools\VB\Cabinets\MSINet.CAB +Common\Tools\VB\Cabinets\msinetax.cab +Common\Tools\VB\Cabinets\MSMapi32.CAB +Common\Tools\VB\Cabinets\msmapiax.cab +Common\Tools\VB\Cabinets\MSMask32.CAB +Common\Tools\VB\Cabinets\msmaskax.cab +Common\Tools\VB\Cabinets\Msracli.cab +Common\Tools\VB\Cabinets\Msrdc20.cab +Common\Tools\VB\Cabinets\msrdc2ax.cab +Common\Tools\VB\Cabinets\msrdo20.cab +Common\Tools\VB\Cabinets\MSStdFmt.CAB +Common\Tools\VB\Cabinets\MSStkPrp.CAB +Common\Tools\VB\Cabinets\Msvbvm60.cab +Common\Tools\VB\Cabinets\MSWcRun.CAB +Common\Tools\VB\Cabinets\mswinsax.cab +Common\Tools\VB\Cabinets\MSWinSck.CAB +Common\Tools\VB\Cabinets\Oleaut.cab +Common\Tools\VB\Cabinets\PicClp32.CAB +Common\Tools\VB\Cabinets\picclpax.cab +Common\Tools\VB\Cabinets\RichTx32.CAB +Common\Tools\VB\Cabinets\richtxax.cab +Common\Tools\VB\Cabinets\sysinfax.cab +Common\Tools\VB\Cabinets\SysInfo.CAB +Common\Tools\VB\Cabinets\TabCtl32.CAB +Common\Tools\VB\Cabinets\tabctlax.cab +Common\Tools\VB\Cabinets\vbrun60.cab +Common\Tools\vb\Cabinets\AdoDcchs.CAB +Common\Tools\vb\Cabinets\CmCt2chs.CAB +Common\Tools\vb\Cabinets\cmct3chs.cab +Common\Tools\vb\Cabinets\CmCtlchs.CAB +Common\Tools\vb\Cabinets\CmDlgchs.CAB +Common\Tools\vb\Cabinets\DatGdchs.CAB +Common\Tools\vb\Cabinets\DatLschs.CAB +Common\Tools\vb\Cabinets\DatRpchs.CAB +Common\Tools\vb\Cabinets\dbgrdchs.CAB +Common\Tools\vb\Cabinets\DbLstchs.CAB +Common\Tools\vb\Cabinets\DBRpRchs.CAB +Common\Tools\vb\Cabinets\FlxGdchs.CAB +Common\Tools\vb\Cabinets\HTMPRchs.CAB +Common\Tools\vb\Cabinets\INETchs.CAB +Common\Tools\vb\Cabinets\MSCc2chs.CAB +Common\Tools\vb\Cabinets\MSCmCchs.CAB +Common\Tools\vb\Cabinets\MSComchs.CAB +Common\Tools\vb\Cabinets\mshfgchs.CAB +Common\Tools\vb\Cabinets\MSMpichs.CAB +Common\Tools\vb\Cabinets\MSMskchs.CAB +Common\Tools\vb\Cabinets\MSPrpchs.CAB +Common\Tools\vb\Cabinets\mswcrchs.cab +Common\Tools\vb\Cabinets\PcClpchs.CAB +Common\Tools\vb\Cabinets\RchTxchs.CAB +Common\Tools\vb\Cabinets\rdc20chs.CAB +Common\Tools\vb\Cabinets\rdo20chs.CAB +Common\Tools\vb\Cabinets\StdFtchs.CAB +Common\Tools\vb\Cabinets\SysInchs.CAB +Common\Tools\vb\Cabinets\TabCtchs.CAB +Common\Tools\vb\Cabinets\vb6chs.CAB +Common\Tools\vb\Cabinets\WINSKchs.CAB +VB98\Wizards\PDWizard\Redist\mdac_typ.exe + + +: + +SAMPLES\MSADC\ADCTEST.ASP +SAMPLES\MSADC\ADDRSBK +SAMPLES\MSADC\ADVWORKS.MDB +SAMPLES\MSADC\MSADC11 +SAMPLES\MSADC\SELECTOR +SAMPLES\MSADC\SSDATB32.CAB +SAMPLES\MSADC\TUTORIAL +SAMPLES\MSADC\ADDRSBK\ADDRBOOK.ASP +SAMPLES\MSADC\ADDRSBK\ARCADIA.GIF +SAMPLES\MSADC\ADDRSBK\SAMPLEEM.SQL +SAMPLES\MSADC\MSADC11\ADCTEST.ASP +SAMPLES\MSADC\MSADC11\ADDRSBK +SAMPLES\MSADC\MSADC11\ADDRSBK\ADDRBOOK.ASP +SAMPLES\MSADC\MSADC11\ADDRSBK\ARCADIA.GIF +SAMPLES\MSADC\MSADC11\ADDRSBK\SAMPLEEM.SQL +SAMPLES\MSADC\SELECTOR\ASP.GIF +SAMPLES\MSADC\SELECTOR\CLIENT +SAMPLES\MSADC\SELECTOR\MID_TIER +SAMPLES\MSADC\SELECTOR\SAMPSTAR.ASP +SAMPLES\MSADC\SELECTOR\SHOWCODE.ASP +SAMPLES\MSADC\SELECTOR\CLIENT\IE +SAMPLES\MSADC\SELECTOR\CLIENT\VB +SAMPLES\MSADC\SELECTOR\CLIENT\IE\ADCAUTO.ASP +SAMPLES\MSADC\SELECTOR\CLIENT\IE\ADCTOADF.ASP +SAMPLES\MSADC\SELECTOR\CLIENT\IE\ADCTOVB.ASP +SAMPLES\MSADC\SELECTOR\CLIENT\IE\SRCFORM.INC +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\SETUP +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\SETUP.SWT +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\VBTOADF.DLL +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\VBTOADF.DOB +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\VBTOADF.VBP +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\SETUP\VBTOADF.CAB +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\SETUP\VBTOADF.HTM +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOADF\SETUP\VBTOADFD.VBD +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\SETUP +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\SETUP.SWT +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\VBTOVB.DLL +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\VBTOVB.DOB +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\VBTOVB.VBP +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\SETUP\VB2VBDOC.VBD +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\SETUP\VBTOVB.CAB +SAMPLES\MSADC\SELECTOR\CLIENT\VB\VBTOVB\SETUP\VBTOVB.HTM +SAMPLES\MSADC\SELECTOR\MID_TIER\VBBUSOBJ +SAMPLES\MSADC\SELECTOR\MID_TIER\VBBUSOBJ\VBBUSOBJ.DLL +SAMPLES\MSADC\SELECTOR\MID_TIER\VBBUSOBJ\VBBUSOBJ.SRG +SAMPLES\MSADC\SELECTOR\MID_TIER\VBBUSOBJ\VBBUSOBJ.VBP +SAMPLES\MSADC\SELECTOR\MID_TIER\VBBUSOBJ\VBBUSO~1.BAS +SAMPLES\MSADC\SELECTOR\MID_TIER\VBBUSOBJ\VBBUSO~1.CLS +SAMPLES\MSADC\TUTORIAL\TUTORIAL.ASP +SAMPLES\MSDN\AXDESIGN +SAMPLES\MSDN\BACKGRND +SAMPLES\MSDN\CONF +SAMPLES\MSDN\FINSDK +SAMPLES\MSDN\NETSHOW +SAMPLES\MSDN\OFFICE95 +SAMPLES\MSDN\OFFICE97 +SAMPLES\MSDN\PERIODIC +SAMPLES\MSDN\TECHART +SAMPLES\MSDN\VM +SAMPLES\MSDN\WEBDESDK +SAMPLES\MSDN\AXDESIGN\5060 +SAMPLES\MSDN\AXDESIGN\5061 +SAMPLES\MSDN\AXDESIGN\5062 +SAMPLES\MSDN\AXDESIGN\5063 +SAMPLES\MSDN\AXDESIGN\5064 +SAMPLES\MSDN\AXDESIGN\5065 +SAMPLES\MSDN\AXDESIGN\5066 +SAMPLES\MSDN\AXDESIGN\5067 +SAMPLES\MSDN\AXDESIGN\5060\BUILDTLB.BAT +SAMPLES\MSDN\AXDESIGN\5060\CIRCDISP.CPP +SAMPLES\MSDN\AXDESIGN\5060\CIRCLCTL.BMP +SAMPLES\MSDN\AXDESIGN\5060\CIRCLCTL.CPP +SAMPLES\MSDN\AXDESIGN\5060\CIRCLCTL.H +SAMPLES\MSDN\AXDESIGN\5060\CIRCLE.CPP +SAMPLES\MSDN\AXDESIGN\5060\CIRCLE.H +SAMPLES\MSDN\AXDESIGN\5060\CIRCLE.MAK +SAMPLES\MSDN\AXDESIGN\5060\CIRCLE.MDP +SAMPLES\MSDN\AXDESIGN\5060\CIRCLE.NCB +SAMPLES\MSDN\AXDESIGN\5060\CIRCLECO.APS +SAMPLES\MSDN\AXDESIGN\5060\CIRCLECO.CPP +SAMPLES\MSDN\AXDESIGN\5060\CIRCLECO.DEF +SAMPLES\MSDN\AXDESIGN\5060\CIRCLECO.ODL +SAMPLES\MSDN\AXDESIGN\5060\CIRCLECO.RC +SAMPLES\MSDN\AXDESIGN\5060\CIRCLECO.TLB +SAMPLES\MSDN\AXDESIGN\5060\CIRCLECOINTERFACES.H +SAMPLES\MSDN\AXDESIGN\5060\CIRCLE_CONTAINER.DOC +SAMPLES\MSDN\AXDESIGN\5060\CIRCSEL.CPP +SAMPLES\MSDN\AXDESIGN\5060\CIRCTI.CPP +SAMPLES\MSDN\AXDESIGN\5060\DEBUG +SAMPLES\MSDN\AXDESIGN\5060\DISPIDS.H +SAMPLES\MSDN\AXDESIGN\5060\GUIDS.CPP +SAMPLES\MSDN\AXDESIGN\5060\GUIDS.H +SAMPLES\MSDN\AXDESIGN\5060\LOCALOBJ.H +SAMPLES\MSDN\AXDESIGN\5060\MISC.CPP +SAMPLES\MSDN\AXDESIGN\5060\MISC.H +SAMPLES\MSDN\AXDESIGN\5060\RESOURCE.H +SAMPLES\MSDN\AXDESIGN\5060\VBINTERF.H +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCDISP.SBR +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCLCTL.SBR +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCLE.DLL +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCLE.EXP +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCLE.ILK +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCLE.LIB +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCLE.SBR +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCLECO.SBR +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCSEL.SBR +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\CIRCTI.SBR +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\GUIDS.SBR +SAMPLES\MSDN\AXDESIGN\5060\DEBUG\MISC.SBR +SAMPLES\MSDN\AXDESIGN\5061\BUILDTLB.BAT +SAMPLES\MSDN\AXDESIGN\5061\DEBUG +SAMPLES\MSDN\AXDESIGN\5061\DIFFDCTL.BMP +SAMPLES\MSDN\AXDESIGN\5061\DIFFDCTL.CPP +SAMPLES\MSDN\AXDESIGN\5061\DIFFDCTL.H +SAMPLES\MSDN\AXDESIGN\5061\DIFFDPPG.CPP +SAMPLES\MSDN\AXDESIGN\5061\DIFFDPPG.H +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGN.MAK +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGN.MDP +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGN.NCB +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGR.CPP +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGR.DEF +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGR.ODL +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGR.RC +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGR.TLB +SAMPLES\MSDN\AXDESIGN\5061\DIFFDSGRINTERFACES.H +SAMPLES\MSDN\AXDESIGN\5061\DIFFERENT_DESIGNER.DOC +SAMPLES\MSDN\AXDESIGN\5061\DISPIDS.H +SAMPLES\MSDN\AXDESIGN\5061\GUIDS.CPP +SAMPLES\MSDN\AXDESIGN\5061\GUIDS.H +SAMPLES\MSDN\AXDESIGN\5061\IPSERVER.H +SAMPLES\MSDN\AXDESIGN\5061\LOCALOBJ.H +SAMPLES\MSDN\AXDESIGN\5061\RESOURCE.H +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\DIFFDCTL.SBR +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\DIFFDPPG.SBR +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\DIFFDSGN.DLL +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\DIFFDSGN.EXP +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\DIFFDSGN.ILK +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\DIFFDSGN.LIB +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\DIFFDSGR.SBR +SAMPLES\MSDN\AXDESIGN\5061\DEBUG\GUIDS.SBR +SAMPLES\MSDN\AXDESIGN\5062\BUILDTLB.BAT +SAMPLES\MSDN\AXDESIGN\5062\DEBUG +SAMPLES\MSDN\AXDESIGN\5062\DIFFICTL.BMP +SAMPLES\MSDN\AXDESIGN\5062\DIFFICTL.CPP +SAMPLES\MSDN\AXDESIGN\5062\DIFFICTL.H +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.APS +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.CPP +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.DEF +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.MAK +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.MDP +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.NCB +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.ODL +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.RC +SAMPLES\MSDN\AXDESIGN\5062\DIFFINST.TLB +SAMPLES\MSDN\AXDESIGN\5062\DIFFINSTINTERFACES.H +SAMPLES\MSDN\AXDESIGN\5062\DIFFIPPG.CPP +SAMPLES\MSDN\AXDESIGN\5062\DIFFIPPG.H +SAMPLES\MSDN\AXDESIGN\5062\DISPIDS.H +SAMPLES\MSDN\AXDESIGN\5062\GUIDS.CPP +SAMPLES\MSDN\AXDESIGN\5062\GUIDS.H +SAMPLES\MSDN\AXDESIGN\5062\LOCALOBJ.H +SAMPLES\MSDN\AXDESIGN\5062\RESOURCE.H +SAMPLES\MSDN\AXDESIGN\5062\DEBUG\DIFFINST.DLL +SAMPLES\MSDN\AXDESIGN\5062\DEBUG\DIFFINST.EXP +SAMPLES\MSDN\AXDESIGN\5062\DEBUG\DIFFINST.ILK +SAMPLES\MSDN\AXDESIGN\5062\DEBUG\DIFFINST.LIB +SAMPLES\MSDN\AXDESIGN\5063\AUTOOBJ.CPP +SAMPLES\MSDN\AXDESIGN\5063\CLASSF.CPP +SAMPLES\MSDN\AXDESIGN\5063\CLASSF.H +SAMPLES\MSDN\AXDESIGN\5063\CTLEMBED.CPP +SAMPLES\MSDN\AXDESIGN\5063\CTLHELP.CPP +SAMPLES\MSDN\AXDESIGN\5063\CTLHELP.H +SAMPLES\MSDN\AXDESIGN\5063\CTLMISC.CPP +SAMPLES\MSDN\AXDESIGN\5063\CTLOCX96.CPP +SAMPLES\MSDN\AXDESIGN\5063\CTLPSST.CPP +SAMPLES\MSDN\AXDESIGN\5063\CTLVIEW.CPP +SAMPLES\MSDN\AXDESIGN\5063\CTLWRAP.CPP +SAMPLES\MSDN\AXDESIGN\5063\DEBUG +SAMPLES\MSDN\AXDESIGN\5063\DEBUG.CPP +SAMPLES\MSDN\AXDESIGN\5063\DWINVERS.H +SAMPLES\MSDN\AXDESIGN\5063\GLOBALS.C +SAMPLES\MSDN\AXDESIGN\5063\IPSERVER.CPP +SAMPLES\MSDN\AXDESIGN\5063\PROPPAGE.CPP +SAMPLES\MSDN\AXDESIGN\5063\RELEASE +SAMPLES\MSDN\AXDESIGN\5063\STDENUM.CPP +SAMPLES\MSDN\AXDESIGN\5063\STRCOLL.CPP +SAMPLES\MSDN\AXDESIGN\5063\UNKNOWN.CPP +SAMPLES\MSDN\AXDESIGN\5063\UTIL.CPP +SAMPLES\MSDN\AXDESIGN\5063\VC_FRAMEWORK.MAK +SAMPLES\MSDN\AXDESIGN\5063\VC_FRAMEWORK.MDP +SAMPLES\MSDN\AXDESIGN\5063\VC_FRAMEWORK.NCB +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\AUTOOBJ.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\AXFWD.LIB +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CLASSF.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CTLEMBED.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CTLHELP.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CTLMISC.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CTLOCX96.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CTLPSST.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CTLVIEW.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\CTLWRAP.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\DEBUG.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\GLOBALS.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\IPSERVER.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\PROPPAGE.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\STDENUM.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\UNKNOWN.SBR +SAMPLES\MSDN\AXDESIGN\5063\DEBUG\UTIL.SBR +SAMPLES\MSDN\AXDESIGN\5063\RELEASE\AXFWR.LIB +SAMPLES\MSDN\AXDESIGN\5064\AUTOOBJ.H +SAMPLES\MSDN\AXDESIGN\5064\CTRLOBJ.H +SAMPLES\MSDN\AXDESIGN\5064\DATAPATH.H +SAMPLES\MSDN\AXDESIGN\5064\DEBUG.H +SAMPLES\MSDN\AXDESIGN\5064\DESIGNER.H +SAMPLES\MSDN\AXDESIGN\5064\DWINVERS.H +SAMPLES\MSDN\AXDESIGN\5064\GLOBALS.H +SAMPLES\MSDN\AXDESIGN\5064\IDISPIDS.H +SAMPLES\MSDN\AXDESIGN\5064\IPSERVER.H +SAMPLES\MSDN\AXDESIGN\5064\LOCALSRV.H +SAMPLES\MSDN\AXDESIGN\5064\MAKEAUTO.INC +SAMPLES\MSDN\AXDESIGN\5064\MAKECBC.INC +SAMPLES\MSDN\AXDESIGN\5064\MAKECTL.INC +SAMPLES\MSDN\AXDESIGN\5064\OLEBIND.H +SAMPLES\MSDN\AXDESIGN\5064\PROPPAGE.H +SAMPLES\MSDN\AXDESIGN\5064\STDENUM.H +SAMPLES\MSDN\AXDESIGN\5064\STRCOLL.H +SAMPLES\MSDN\AXDESIGN\5064\TOOLS.INC +SAMPLES\MSDN\AXDESIGN\5064\UNKNOWN.H +SAMPLES\MSDN\AXDESIGN\5064\UTIL.H +SAMPLES\MSDN\AXDESIGN\5064\VB5AUTO.INC +SAMPLES\MSDN\AXDESIGN\5064\VB5CTLS.INC +SAMPLES\MSDN\AXDESIGN\5064\VBDSC.H +SAMPLES\MSDN\AXDESIGN\5064\VC41WARN.H +SAMPLES\MSDN\AXDESIGN\5064\WININET.H +SAMPLES\MSDN\AXDESIGN\5065\BUILDTLB.BAT +SAMPLES\MSDN\AXDESIGN\5065\DEBUG +SAMPLES\MSDN\AXDESIGN\5065\DISPIDS.H +SAMPLES\MSDN\AXDESIGN\5065\GUIDS.CPP +SAMPLES\MSDN\AXDESIGN\5065\GUIDS.H +SAMPLES\MSDN\AXDESIGN\5065\INVISIBLE_DESIGNER.DOC +SAMPLES\MSDN\AXDESIGN\5065\INVSDCTL.BMP +SAMPLES\MSDN\AXDESIGN\5065\INVSDCTL.CPP +SAMPLES\MSDN\AXDESIGN\5065\INVSDCTL.H +SAMPLES\MSDN\AXDESIGN\5065\INVSDPPG.CPP +SAMPLES\MSDN\AXDESIGN\5065\INVSDPPG.H +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.CPP +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.DEF +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.MAK +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.MDP +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.NCB +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.ODL +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.RC +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGR.TLB +SAMPLES\MSDN\AXDESIGN\5065\INVSDSGRINTERFACES.H +SAMPLES\MSDN\AXDESIGN\5065\LOCALOBJ.H +SAMPLES\MSDN\AXDESIGN\5065\RESOURCE.H +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\GUIDS.SBR +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\INVSDCTL.SBR +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\INVSDPPG.SBR +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\INVSDSGR.DLL +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\INVSDSGR.EXP +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\INVSDSGR.ILK +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\INVSDSGR.LIB +SAMPLES\MSDN\AXDESIGN\5065\DEBUG\INVSDSGR.SBR +SAMPLES\MSDN\AXDESIGN\5066\BUILDTLB.BAT +SAMPLES\MSDN\AXDESIGN\5066\DEBUG +SAMPLES\MSDN\AXDESIGN\5066\DISPIDS.H +SAMPLES\MSDN\AXDESIGN\5066\GUIDS.CPP +SAMPLES\MSDN\AXDESIGN\5066\GUIDS.H +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.CPP +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.DEF +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.MAK +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.MDP +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.NCB +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.ODL +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.RC +SAMPLES\MSDN\AXDESIGN\5066\INVSINST.TLB +SAMPLES\MSDN\AXDESIGN\5066\INVSINSTINTERFACES.H +SAMPLES\MSDN\AXDESIGN\5066\INVSIOBJ.CPP +SAMPLES\MSDN\AXDESIGN\5066\INVSIOBJ.H +SAMPLES\MSDN\AXDESIGN\5066\LOCALOBJ.H +SAMPLES\MSDN\AXDESIGN\5066\RESOURCE.H +SAMPLES\MSDN\AXDESIGN\5066\DEBUG\INVSINST.DLL +SAMPLES\MSDN\AXDESIGN\5066\DEBUG\INVSINST.EXP +SAMPLES\MSDN\AXDESIGN\5066\DEBUG\INVSINST.ILK +SAMPLES\MSDN\AXDESIGN\5066\DEBUG\INVSINST.LIB +SAMPLES\MSDN\AXDESIGN\5067\ALPHA +SAMPLES\MSDN\AXDESIGN\5067\MIPS +SAMPLES\MSDN\AXDESIGN\5067\PPC +SAMPLES\MSDN\AXDESIGN\5067\VC_CTLFW +SAMPLES\MSDN\AXDESIGN\5067\X86 +SAMPLES\MSDN\AXDESIGN\5067\ALPHA\OCX96.LIB +SAMPLES\MSDN\AXDESIGN\5067\ALPHA\WININET.LIB +SAMPLES\MSDN\AXDESIGN\5067\ALPHA\XOLEHLP.LIB +SAMPLES\MSDN\AXDESIGN\5067\MIPS\OCX96.LIB +SAMPLES\MSDN\AXDESIGN\5067\MIPS\WININET.LIB +SAMPLES\MSDN\AXDESIGN\5067\PPC\OCX96.LIB +SAMPLES\MSDN\AXDESIGN\5067\PPC\WININET.LIB +SAMPLES\MSDN\AXDESIGN\5067\VC_CTLFW\VC_CTLFW.MAK +SAMPLES\MSDN\AXDESIGN\5067\VC_CTLFW\VC_CTLFW.MDP +SAMPLES\MSDN\AXDESIGN\5067\VC_CTLFW\VC_CTLFW.NCB +SAMPLES\MSDN\AXDESIGN\5067\X86\OCX96.LIB +SAMPLES\MSDN\AXDESIGN\5067\X86\WININET.LIB +SAMPLES\MSDN\BACKGRND\4164 +SAMPLES\MSDN\BACKGRND\4890 +SAMPLES\MSDN\BACKGRND\5139 +SAMPLES\MSDN\BACKGRND\5159 +SAMPLES\MSDN\BACKGRND\5166 +SAMPLES\MSDN\BACKGRND\5167 +SAMPLES\MSDN\BACKGRND\5168 +SAMPLES\MSDN\BACKGRND\4164\ACMSETUP.EXE +SAMPLES\MSDN\BACKGRND\4164\ACMSETUP.HLP +SAMPLES\MSDN\BACKGRND\4164\ADMIN.INF +SAMPLES\MSDN\BACKGRND\4164\CHANGES.TXT +SAMPLES\MSDN\BACKGRND\4164\DBSYNC.DLL +SAMPLES\MSDN\BACKGRND\4164\DBSYNC.DOC +SAMPLES\MSDN\BACKGRND\4164\DBSYNC.INI +SAMPLES\MSDN\BACKGRND\4164\DBSYNC.SQL +SAMPLES\MSDN\BACKGRND\4164\DBXCODE.LDB +SAMPLES\MSDN\BACKGRND\4164\DBXCODE.MDB +SAMPLES\MSDN\BACKGRND\4164\DBXDATA.LDB +SAMPLES\MSDN\BACKGRND\4164\DBXDATA.MDB +SAMPLES\MSDN\BACKGRND\4164\DBXDATA.NEW +SAMPLES\MSDN\BACKGRND\4164\DBXSALES.LDB +SAMPLES\MSDN\BACKGRND\4164\DBXSALES.MDB +SAMPLES\MSDN\BACKGRND\4164\DBXSALES.NEW +SAMPLES\MSDN\BACKGRND\4164\DBX_FAX.DOT +SAMPLES\MSDN\BACKGRND\4164\DBX_LTTR.DOT +SAMPLES\MSDN\BACKGRND\4164\DBX_MLTR.DOT +SAMPLES\MSDN\BACKGRND\4164\DECOMP.EXE +SAMPLES\MSDN\BACKGRND\4164\MSACAHBB.DLL +SAMPLES\MSDN\BACKGRND\4164\MSAREG.EXE +SAMPLES\MSDN\BACKGRND\4164\MSCPYDIS.DLL +SAMPLES\MSDN\BACKGRND\4164\MSSETUP.DLL +SAMPLES\MSDN\BACKGRND\4164\MSVC.ZIP +SAMPLES\MSDN\BACKGRND\4164\OC25.DLL +SAMPLES\MSDN\BACKGRND\4164\SALES.QRY +SAMPLES\MSDN\BACKGRND\4164\SALES.XLS +SAMPLES\MSDN\BACKGRND\4164\SETINI.EXE +SAMPLES\MSDN\BACKGRND\4164\SETUP.EXE +SAMPLES\MSDN\BACKGRND\4164\SETUP.INF +SAMPLES\MSDN\BACKGRND\4164\SETUP.INI +SAMPLES\MSDN\BACKGRND\4164\SETUP.LST +SAMPLES\MSDN\BACKGRND\4164\SETUP.STF +SAMPLES\MSDN\BACKGRND\4164\SETUP.TXT +SAMPLES\MSDN\BACKGRND\4164\SYSTEM.MDA +SAMPLES\MSDN\BACKGRND\4164\TAB.OCX +SAMPLES\MSDN\BACKGRND\4164\UTILITY.MDA +SAMPLES\MSDN\BACKGRND\4164\V227.ZIP +SAMPLES\MSDN\BACKGRND\4164\_MSSETUP.EXE +SAMPLES\MSDN\BACKGRND\4890\LDB700.MDB +SAMPLES\MSDN\BACKGRND\4890\LDBUSER.BAS +SAMPLES\MSDN\BACKGRND\4890\LDBUSER.FRM +SAMPLES\MSDN\BACKGRND\4890\LDBUSER.VBP +SAMPLES\MSDN\BACKGRND\4890\LDBVIEW.EXE +SAMPLES\MSDN\BACKGRND\4890\LDBVIEW.FRM +SAMPLES\MSDN\BACKGRND\4890\MSLDBUSR.DLL +SAMPLES\MSDN\BACKGRND\4890\README.TXT +SAMPLES\MSDN\BACKGRND\5139\BUILD.BAT +SAMPLES\MSDN\BACKGRND\5139\CLIENT.EXE +SAMPLES\MSDN\BACKGRND\5139\CLIENT.FRM +SAMPLES\MSDN\BACKGRND\5139\CLIENT.JAVA +SAMPLES\MSDN\BACKGRND\5139\CLIENT.VBP +SAMPLES\MSDN\BACKGRND\5139\CLIENT.VBW +SAMPLES\MSDN\BACKGRND\5139\HELLOJTX.IDL +SAMPLES\MSDN\BACKGRND\5139\HELLOOBJ.JAVA +SAMPLES\MSDN\BACKGRND\5159\ENUMREPOSITORY.VBP +SAMPLES\MSDN\BACKGRND\5159\ENUMREPOSITORY.VBW +SAMPLES\MSDN\BACKGRND\5159\MAIN.FRM +SAMPLES\MSDN\BACKGRND\5159\MAIN.FRX +SAMPLES\MSDN\BACKGRND\5159\REPOSITORY.CLS +SAMPLES\MSDN\BACKGRND\5159\REPTYPES.BAS +SAMPLES\MSDN\BACKGRND\5166\CH_CHBTN.GIF +SAMPLES\MSDN\BACKGRND\5166\SBN-SPECS.GIF +SAMPLES\MSDN\BACKGRND\5166\SBN-STDS.CDF +SAMPLES\MSDN\BACKGRND\5166\SBN-STDS.HTM +SAMPLES\MSDN\BACKGRND\5167\MIGINF.C +SAMPLES\MSDN\BACKGRND\5167\MIGINF.H +SAMPLES\MSDN\BACKGRND\5167\POOLMEM.C +SAMPLES\MSDN\BACKGRND\5167\POOLMEM.H +SAMPLES\MSDN\BACKGRND\5167\PVIEW.DSP +SAMPLES\MSDN\BACKGRND\5167\PVIEW.MAK +SAMPLES\MSDN\BACKGRND\5167\PVIEWEX.DEF +SAMPLES\MSDN\BACKGRND\5167\PVIEWMIG.C +SAMPLES\MSDN\BACKGRND\5167\PVIEWMIG.DEF +SAMPLES\MSDN\BACKGRND\5168\DATACONV.C +SAMPLES\MSDN\BACKGRND\5168\MIGINF.C +SAMPLES\MSDN\BACKGRND\5168\MIGINF.H +SAMPLES\MSDN\BACKGRND\5168\MIGRATE.DEF +SAMPLES\MSDN\BACKGRND\5168\MIGRATE.DSP +SAMPLES\MSDN\BACKGRND\5168\MIGRATE.DSW +SAMPLES\MSDN\BACKGRND\5168\MIGRATE.MAK +SAMPLES\MSDN\BACKGRND\5168\MIGRATE.OPT +SAMPLES\MSDN\BACKGRND\5168\PCH.H +SAMPLES\MSDN\BACKGRND\5168\POOLMEM.C +SAMPLES\MSDN\BACKGRND\5168\POOLMEM.H +SAMPLES\MSDN\BACKGRND\5168\SAVECFG.C +SAMPLES\MSDN\BACKGRND\5168\SCRNSAVE.C +SAMPLES\MSDN\BACKGRND\5168\SCRNSAVE.H +SAMPLES\MSDN\BACKGRND\5168\SETUPAPI.H +SAMPLES\MSDN\BACKGRND\5168\SETUPAPI.LIB +SAMPLES\MSDN\BACKGRND\5168\UTILS.C +SAMPLES\MSDN\CONF\4172 +SAMPLES\MSDN\CONF\4174 +SAMPLES\MSDN\CONF\4176 +SAMPLES\MSDN\CONF\4180 +SAMPLES\MSDN\CONF\4182 +SAMPLES\MSDN\CONF\4188 +SAMPLES\MSDN\CONF\4190 +SAMPLES\MSDN\CONF\4192 +SAMPLES\MSDN\CONF\4194 +SAMPLES\MSDN\CONF\4196 +SAMPLES\MSDN\CONF\4198 +SAMPLES\MSDN\CONF\4200 +SAMPLES\MSDN\CONF\4202 +SAMPLES\MSDN\CONF\4204 +SAMPLES\MSDN\CONF\4420 +SAMPLES\MSDN\CONF\4429 +SAMPLES\MSDN\CONF\4172\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4172\AC203.MDB +SAMPLES\MSDN\CONF\4172\AC203LET.DOT +SAMPLES\MSDN\CONF\4172\AC203THK.DOT +SAMPLES\MSDN\CONF\4172\BOOKS.XLS +SAMPLES\MSDN\CONF\4172\DDETOACC.TXT +SAMPLES\MSDN\CONF\4174\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4174\AC208.MDB +SAMPLES\MSDN\CONF\4176\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4176\NWIND.LDB +SAMPLES\MSDN\CONF\4176\NWIND.MDB +SAMPLES\MSDN\CONF\4176\NWINDCS.LDB +SAMPLES\MSDN\CONF\4176\NWINDCS.MDB +SAMPLES\MSDN\CONF\4176\NWINDCS.SQL +SAMPLES\MSDN\CONF\4176\NWINDUP.MDB +SAMPLES\MSDN\CONF\4176\README.TXT +SAMPLES\MSDN\CONF\4180\AC301.MDB +SAMPLES\MSDN\CONF\4182\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4182\FAST42.MDB +SAMPLES\MSDN\CONF\4188\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4188\AUTHORS.DBF +SAMPLES\MSDN\CONF\4188\HOMNICK.SCT +SAMPLES\MSDN\CONF\4188\HOMNICK.SCX +SAMPLES\MSDN\CONF\4188\JFHLOCAL.DBC +SAMPLES\MSDN\CONF\4188\JFHLOCAL.DCT +SAMPLES\MSDN\CONF\4188\JFHLOCAL.DCX +SAMPLES\MSDN\CONF\4188\JFHSQL.VCT +SAMPLES\MSDN\CONF\4188\JFHSQL.VCX +SAMPLES\MSDN\CONF\4188\JHREMOTE +SAMPLES\MSDN\CONF\4188\JHREMOTE.DBC +SAMPLES\MSDN\CONF\4188\JHREMOTE.DCT +SAMPLES\MSDN\CONF\4188\JHREMOTE.DCX +SAMPLES\MSDN\CONF\4188\JOE.PJT +SAMPLES\MSDN\CONF\4188\JOE.PJX +SAMPLES\MSDN\CONF\4188\TITLEAUT.DBF +SAMPLES\MSDN\CONF\4190\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4190\DOCVCX.PRG +SAMPLES\MSDN\CONF\4190\FOXTABLE.PRG +SAMPLES\MSDN\CONF\4190\OLECLASS.PRG +SAMPLES\MSDN\CONF\4190\README.TXT +SAMPLES\MSDN\CONF\4192\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4192\FWLABEL.SCT +SAMPLES\MSDN\CONF\4192\FWLABEL.SCX +SAMPLES\MSDN\CONF\4192\MYBLDR.FXP +SAMPLES\MSDN\CONF\4192\MYBLDR.PRG +SAMPLES\MSDN\CONF\4192\TEST.SCT +SAMPLES\MSDN\CONF\4192\TEST.SCX +SAMPLES\MSDN\CONF\4194\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4194\ML302.MDB +SAMPLES\MSDN\CONF\4196\1-SINE.TAP +SAMPLES\MSDN\CONF\4196\2-FM.TAP +SAMPLES\MSDN\CONF\4196\3-FMTRAN.TAP +SAMPLES\MSDN\CONF\4196\4-NOISE.TAP +SAMPLES\MSDN\CONF\4196\5-SLOWSC.TAP +SAMPLES\MSDN\CONF\4196\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4196\BALL.EXE +SAMPLES\MSDN\CONF\4196\HELLO.EXE +SAMPLES\MSDN\CONF\4196\S1-001.WAV +SAMPLES\MSDN\CONF\4196\TAP.EXE +SAMPLES\MSDN\CONF\4196\TEXT.EXE +SAMPLES\MSDN\CONF\4196\TRAIN.EXE +SAMPLES\MSDN\CONF\4198\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4198\POP3 +SAMPLES\MSDN\CONF\4198\RNR +SAMPLES\MSDN\CONF\4198\POP3\$WINDOW3.SLK +SAMPLES\MSDN\CONF\4198\POP3\CHKLIST.MS +SAMPLES\MSDN\CONF\4198\POP3\DEBUG.C +SAMPLES\MSDN\CONF\4198\POP3\DEBUG.H +SAMPLES\MSDN\CONF\4198\POP3\EVENTS.C +SAMPLES\MSDN\CONF\4198\POP3\GLOBALS.H +SAMPLES\MSDN\CONF\4198\POP3\MAKEFILE +SAMPLES\MSDN\CONF\4198\POP3\MAKEFILE.INC +SAMPLES\MSDN\CONF\4198\POP3\MSG00001.BIN +SAMPLES\MSDN\CONF\4198\POP3\PARAM.C +SAMPLES\MSDN\CONF\4198\POP3\PCH.C +SAMPLES\MSDN\CONF\4198\POP3\POP3.C +SAMPLES\MSDN\CONF\4198\POP3\POP3.H +SAMPLES\MSDN\CONF\4198\POP3\POP3CTX.H +SAMPLES\MSDN\CONF\4198\POP3\POP3EVNT.H +SAMPLES\MSDN\CONF\4198\POP3\POP3EVNT.MC +SAMPLES\MSDN\CONF\4198\POP3\POP3EVNT.RC +SAMPLES\MSDN\CONF\4198\POP3\POP3SRV.C +SAMPLES\MSDN\CONF\4198\POP3\POP3SRV.INI +SAMPLES\MSDN\CONF\4198\POP3\POP3SRVP.H +SAMPLES\MSDN\CONF\4198\POP3\POPFILE.C +SAMPLES\MSDN\CONF\4198\POP3\POPFILE.H +SAMPLES\MSDN\CONF\4198\POP3\PROTOS.H +SAMPLES\MSDN\CONF\4198\POP3\RES.RC +SAMPLES\MSDN\CONF\4198\POP3\RFC1460.TXT +SAMPLES\MSDN\CONF\4198\POP3\SERVICE.C +SAMPLES\MSDN\CONF\4198\POP3\SOCKET.C +SAMPLES\MSDN\CONF\4198\POP3\SOURCES +SAMPLES\MSDN\CONF\4198\POP3\THREAD.C +SAMPLES\MSDN\CONF\4198\POP3\THREADS.C +SAMPLES\MSDN\CONF\4198\RNR\CLIENT.C +SAMPLES\MSDN\CONF\4198\RNR\CLIENT1.C +SAMPLES\MSDN\CONF\4198\RNR\CLIENT2.C +SAMPLES\MSDN\CONF\4198\RNR\CLIENT3.C +SAMPLES\MSDN\CONF\4198\RNR\CLNT +SAMPLES\MSDN\CONF\4198\RNR\CONNECT.C +SAMPLES\MSDN\CONF\4198\RNR\CONS.H +SAMPLES\MSDN\CONF\4198\RNR\DATA.H +SAMPLES\MSDN\CONF\4198\RNR\ERROR.LOG +SAMPLES\MSDN\CONF\4198\RNR\GLOBALS.C +SAMPLES\MSDN\CONF\4198\RNR\LOG.C +SAMPLES\MSDN\CONF\4198\RNR\LOGFILE.LOG +SAMPLES\MSDN\CONF\4198\RNR\MAIN.C +SAMPLES\MSDN\CONF\4198\RNR\MAKEFILE +SAMPLES\MSDN\CONF\4198\RNR\MAKEFILE.INC +SAMPLES\MSDN\CONF\4198\RNR\NWCONV.DAT +SAMPLES\MSDN\CONF\4198\RNR\PROC.H +SAMPLES\MSDN\CONF\4198\RNR\RNRCLNT.C +SAMPLES\MSDN\CONF\4198\RNR\RNRMSG.MC +SAMPLES\MSDN\CONF\4198\RNR\RNRSETUP.C +SAMPLES\MSDN\CONF\4198\RNR\RNRSRV.C +SAMPLES\MSDN\CONF\4198\RNR\RNRSVC.RC +SAMPLES\MSDN\CONF\4198\RNR\RNRSVCP.H +SAMPLES\MSDN\CONF\4198\RNR\RNRUTIL.C +SAMPLES\MSDN\CONF\4198\RNR\SETUP +SAMPLES\MSDN\CONF\4198\RNR\SOURCES +SAMPLES\MSDN\CONF\4198\RNR\SRV +SAMPLES\MSDN\CONF\4198\RNR\SUMMARY.LOG +SAMPLES\MSDN\CONF\4198\RNR\SVC +SAMPLES\MSDN\CONF\4198\RNR\TYPE.H +SAMPLES\MSDN\CONF\4198\RNR\CLNT\RNRCLNT.C +SAMPLES\MSDN\CONF\4198\RNR\SETUP\RNRSETUP.C +SAMPLES\MSDN\CONF\4198\RNR\SRV\RNRSRV.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\CLIENT.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\CLIENT1.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\CLIENT2.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\CLIENT3.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\CONNECT.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\CONS.H +SAMPLES\MSDN\CONF\4198\RNR\SVC\DATA.H +SAMPLES\MSDN\CONF\4198\RNR\SVC\GLOBALS.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\LOG.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\MAIN.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\MAKEFILE +SAMPLES\MSDN\CONF\4198\RNR\SVC\MAKEFILE.INC +SAMPLES\MSDN\CONF\4198\RNR\SVC\PROC.H +SAMPLES\MSDN\CONF\4198\RNR\SVC\RNRMSG.MC +SAMPLES\MSDN\CONF\4198\RNR\SVC\RNRSVC.RC +SAMPLES\MSDN\CONF\4198\RNR\SVC\RNRSVCP.H +SAMPLES\MSDN\CONF\4198\RNR\SVC\RNRUTIL.C +SAMPLES\MSDN\CONF\4198\RNR\SVC\SOURCES +SAMPLES\MSDN\CONF\4198\RNR\SVC\TYPE.H +SAMPLES\MSDN\CONF\4200\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4200\ODBCOLE +SAMPLES\MSDN\CONF\4200\PIVOT +SAMPLES\MSDN\CONF\4200\USEROLE +SAMPLES\MSDN\CONF\4200\ODBCOLE\SOLUTION.MDB +SAMPLES\MSDN\CONF\4200\ODBCOLE\SOLUTION.XLS +SAMPLES\MSDN\CONF\4200\PIVOT\PIVOT.MDB +SAMPLES\MSDN\CONF\4200\PIVOT\PIVOT.XLA +SAMPLES\MSDN\CONF\4200\PIVOT\PIVOT.XLS +SAMPLES\MSDN\CONF\4200\USEROLE\COMPOUND.DOC +SAMPLES\MSDN\CONF\4200\USEROLE\COMPOUND.XLS +SAMPLES\MSDN\CONF\4202\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4202\PUBS.MDB +SAMPLES\MSDN\CONF\4202\VBDSS.BAS +SAMPLES\MSDN\CONF\4202\VBDSS.EXE +SAMPLES\MSDN\CONF\4202\VBDSS.MAK +SAMPLES\MSDN\CONF\4202\VBDSS.PPT +SAMPLES\MSDN\CONF\4202\VBDSS.SQL +SAMPLES\MSDN\CONF\4202\VBDSS1.FRM +SAMPLES\MSDN\CONF\4202\VBDSS2.FRM +SAMPLES\MSDN\CONF\4202\VBDSS3.FRM +SAMPLES\MSDN\CONF\4202\VBEXCEL.BAS +SAMPLES\MSDN\CONF\4202\VBEXCEL.XLS +SAMPLES\MSDN\CONF\4202\VBODBC.BAS +SAMPLES\MSDN\CONF\4202\VBODBC1.FRM +SAMPLES\MSDN\CONF\4202\VBODBC2.FRM +SAMPLES\MSDN\CONF\4202\VBSEC.BAS +SAMPLES\MSDN\CONF\4202\VBSEC.SQL +SAMPLES\MSDN\CONF\4204\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4204\WZGOODIE.MDA +SAMPLES\MSDN\CONF\4420\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4420\VB207.LDB +SAMPLES\MSDN\CONF\4420\VB207.MDB +SAMPLES\MSDN\CONF\4429\ABSTRACT.TXT +SAMPLES\MSDN\CONF\4429\FRMRETUR.FRM +SAMPLES\MSDN\CONF\4429\FRMRETUR.FRX +SAMPLES\MSDN\CONF\4429\HOST.EXE +SAMPLES\MSDN\CONF\4429\HOST.FRM +SAMPLES\MSDN\CONF\4429\HOST.FRX +SAMPLES\MSDN\CONF\4429\HOST.MAK +SAMPLES\MSDN\CONF\4429\REMOTE.EXE +SAMPLES\MSDN\CONF\4429\REMOTE.FRM +SAMPLES\MSDN\CONF\4429\REMOTE.FRX +SAMPLES\MSDN\CONF\4429\REMOTE.MAK +SAMPLES\MSDN\FINSDK\5023 +SAMPLES\MSDN\FINSDK\5024 +SAMPLES\MSDN\FINSDK\5025 +SAMPLES\MSDN\FINSDK\5026 +SAMPLES\MSDN\FINSDK\5027 +SAMPLES\MSDN\FINSDK\5028 +SAMPLES\MSDN\FINSDK\5029 +SAMPLES\MSDN\FINSDK\5023\WOODGROVE.OFC +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1 +SAMPLES\MSDN\FINSDK\5024\SAMPFILE +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\COLLECT.EX_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\COMCTL32.OC_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\COMDLG32.OC_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\CTL3D32.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\DISKETTES.VBZ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\LIVE.RE_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\MFC40.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\MONEY9~1.PA_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\MONEY9~2.PA_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\MSVCRT20.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\MSVCRT40.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\OLEPRO32.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\ONLINE~1.RT_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\SETUP.EXE +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\SETUP.LST +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\SETUP132.EX_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\SIGNUP~1.RT_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\ST4UNST.EX_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\STKIT432.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\SWITCH.INI +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\TEST.RE_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\VB40032.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\VBAR2232.DL_ +SAMPLES\MSDN\FINSDK\5024\FIBRAN~1\VEN2232.OL_ +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\16TEST~1.PAL +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\AD1.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\AD116.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\BANK.INI +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\COMMENT1.TXT +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\FAQ_IN_SIGNDET1.RTF +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\INDEX.INI +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\LOGOL.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\LOGOL16.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\LOGOS.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\LOGOS16.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\MAC16P~1.CLU +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\MAC16P~1.PIC +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\MAC256~1.CLU +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\MAC256~1.PIC +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\PC16PA~1.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\PC256P~1.BMP +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\PROVIDER.INI +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\SIGNDET1.RTF +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\SIGNUP1.RTF +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\SIGNUP~1.RTF +SAMPLES\MSDN\FINSDK\5024\SAMPFILE\TEST.PAL +SAMPLES\MSDN\FINSDK\5025\MONEYOFC.DOC +SAMPLES\MSDN\FINSDK\5025\OFC.DTD +SAMPLES\MSDN\FINSDK\5025\README.TXT +SAMPLES\MSDN\FINSDK\5025\SGMLPR~1.DOC +SAMPLES\MSDN\FINSDK\5026\DLLS +SAMPLES\MSDN\FINSDK\5026\DOCS +SAMPLES\MSDN\FINSDK\5026\DRIVER +SAMPLES\MSDN\FINSDK\5026\REG +SAMPLES\MSDN\FINSDK\5026\SAMPFILE +SAMPLES\MSDN\FINSDK\5026\TOOLS +SAMPLES\MSDN\FINSDK\5026\DLLS\NOSECURE +SAMPLES\MSDN\FINSDK\5026\DLLS\NOSEC_UK +SAMPLES\MSDN\FINSDK\5026\DLLS\SECURE +SAMPLES\MSDN\FINSDK\5026\DLLS\SEC_UK +SAMPLES\MSDN\FINSDK\5026\DLLS\NOSECURE\XSOFC.DLL +SAMPLES\MSDN\FINSDK\5026\DLLS\NOSEC_UK\XSOFC.DLL +SAMPLES\MSDN\FINSDK\5026\DLLS\SECURE\XSOFC.DLL +SAMPLES\MSDN\FINSDK\5026\DLLS\SEC_UK\XSOFC.DLL +SAMPLES\MSDN\FINSDK\5026\DOCS\INDEX.RTF +SAMPLES\MSDN\FINSDK\5026\DOCS\OUTLINE.DOC +SAMPLES\MSDN\FINSDK\5026\DRIVER\BOL.DLL +SAMPLES\MSDN\FINSDK\5026\DRIVER\DRIVER.EXE +SAMPLES\MSDN\FINSDK\5026\DRIVER\DRIVER.REG +SAMPLES\MSDN\FINSDK\5026\DRIVER\OFCCERT.INI +SAMPLES\MSDN\FINSDK\5026\DRIVER\POL.DLL +SAMPLES\MSDN\FINSDK\5026\REG\BETABDS.REG +SAMPLES\MSDN\FINSDK\5026\REG\REALBDS.REG +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INDEX.DOC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\IACID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISERV08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\ISVAC08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACT01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACT02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACTY01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACTY02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VACTY03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VBKID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VBKID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VBKID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VBRID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VBRID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VCLID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VCLID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VCLID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VCLID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VCLID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSERV10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSVAC01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSVAC02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSVAC03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\ACCTRQ\VSVAC04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACID10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACT01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACT02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACT03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACT04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IACTY08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IAMT10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID11.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID12.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID13.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID14.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID15.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IBKID16.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\ICLID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\ICLID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\ICLID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\ICLID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\ICLID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\ICLID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\ICLID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IMEMO01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IMEMO02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IMEMO03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\IMEMO04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACID10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACT01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACTY01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACTY02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACTY03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACTY04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACTY05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VACTY06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VAMT01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VAMT02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VAMT03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VAMT04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VAMT05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VBKID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VBKID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VBKID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VBKID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VBKID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VBKID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VCLID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VCLID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VCLID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VCLID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VCLID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\INTRARQ\VMEMO10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IACTY01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IACTY02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IACTY03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IACTY04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBKID08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBRID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBRID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBRID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBRID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBRID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\IBRID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\ISERV01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\ISERV02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\ISERV03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\ISERV04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\ISERV05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACTY01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACTY02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VACTY03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VBKID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VBKID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VBKID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VBRID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VBRID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VSERV01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\MAILRQ\VSERV02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL11.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL12.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL13.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IDTCL14.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\INWPS01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\INWPS02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\INWPS03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\INWPS04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IPSWD01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IPSWD02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IPSWD03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IPSWD04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\ISESS08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IUSID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IUSID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IUSID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IUSID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IUSID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IUSID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\IUSID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VDTCL01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VDTCL02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VDTCL03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VDTCL04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VNWPS10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VPSWD10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VSESS11.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\SONRQ\VUSID10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACTY01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACTY02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACTY03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IACTY04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBKID08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBRID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBRID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBRID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBRID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBRID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IBRID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\ICLID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\ICLID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\ICLID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\ICLID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\ICLID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\ICLID06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\ICLID07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED11.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED12.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED13.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTED14.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST06.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST07.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST08.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST09.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST10.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST11.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST12.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST13.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\IDTST14.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACTY01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACTY02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VACTY03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VBKID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VBKID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VBKID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VBRID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VBRID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VCLID01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VCLID02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VCLID03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VCLID04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VCLID05.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTED01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTED02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTED03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTED04.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTST01.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTST02.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTST03.OFC +SAMPLES\MSDN\FINSDK\5026\SAMPFILE\STMTRQ\VDTST04.OFC +SAMPLES\MSDN\FINSDK\5026\TOOLS\OFCVALID +SAMPLES\MSDN\FINSDK\5026\TOOLS\TESTAPP +SAMPLES\MSDN\FINSDK\5026\TOOLS\OFCVALID\PARSEAPP.EXE +SAMPLES\MSDN\FINSDK\5026\TOOLS\TESTAPP\OFCTEST.EXE +SAMPLES\MSDN\FINSDK\5027\BUILD.C +SAMPLES\MSDN\FINSDK\5027\BUILD.H +SAMPLES\MSDN\FINSDK\5027\OFC.DTD +SAMPLES\MSDN\FINSDK\5027\OFCBUILD.C +SAMPLES\MSDN\FINSDK\5027\OFCBUILD.H +SAMPLES\MSDN\FINSDK\5027\OFCDTD.H +SAMPLES\MSDN\FINSDK\5027\OFCLINK.C +SAMPLES\MSDN\FINSDK\5027\OFCLINK.H +SAMPLES\MSDN\FINSDK\5027\OFCPARSE.C +SAMPLES\MSDN\FINSDK\5027\OFCPARSE.H +SAMPLES\MSDN\FINSDK\5027\PAPPDLG.CPP +SAMPLES\MSDN\FINSDK\5027\PAPPDLG.H +SAMPLES\MSDN\FINSDK\5027\PARSE.C +SAMPLES\MSDN\FINSDK\5027\PARSE.H +SAMPLES\MSDN\FINSDK\5027\PARSEAPP.CPP +SAMPLES\MSDN\FINSDK\5027\PARSEAPP.H +SAMPLES\MSDN\FINSDK\5027\PARSEAPP.MAK +SAMPLES\MSDN\FINSDK\5027\PARSEAPP.MDP +SAMPLES\MSDN\FINSDK\5027\PARSEAPP.RC +SAMPLES\MSDN\FINSDK\5027\PBANKING.C +SAMPLES\MSDN\FINSDK\5027\PBTYPES.H +SAMPLES\MSDN\FINSDK\5027\PCLEAN.C +SAMPLES\MSDN\FINSDK\5027\PELEMENT.C +SAMPLES\MSDN\FINSDK\5027\PPAYMENT.C +SAMPLES\MSDN\FINSDK\5027\README.TXT +SAMPLES\MSDN\FINSDK\5027\RES +SAMPLES\MSDN\FINSDK\5027\RESOURCE.H +SAMPLES\MSDN\FINSDK\5027\STDAFX.CPP +SAMPLES\MSDN\FINSDK\5027\STDAFX.H +SAMPLES\MSDN\FINSDK\5027\TOKEN.C +SAMPLES\MSDN\FINSDK\5027\VALIDLST.C +SAMPLES\MSDN\FINSDK\5027\VALIDLST.H +SAMPLES\MSDN\FINSDK\5027\RES\PARSEAPP.ICO +SAMPLES\MSDN\FINSDK\5027\RES\PARSEAPP.RC2 +SAMPLES\MSDN\FINSDK\5028\DEFAULT.INI +SAMPLES\MSDN\FINSDK\5028\SUMMARY.RTF +SAMPLES\MSDN\FINSDK\5029\2ACCTRQ.TXT +SAMPLES\MSDN\FINSDK\5029\2ACCTRS.TXT +SAMPLES\MSDN\FINSDK\5029\INTERRQ.TXT +SAMPLES\MSDN\FINSDK\5029\INTERRS.TXT +SAMPLES\MSDN\FINSDK\5029\INTRARQ.TXT +SAMPLES\MSDN\FINSDK\5029\INTRARS.TXT +SAMPLES\MSDN\FINSDK\5029\PAYMTRQ.TXT +SAMPLES\MSDN\FINSDK\5029\PAYMTRS.TXT +SAMPLES\MSDN\NETSHOW\100 +SAMPLES\MSDN\NETSHOW\200 +SAMPLES\MSDN\NETSHOW\300 +SAMPLES\MSDN\NETSHOW\100\NSADMDOC.EXE +SAMPLES\MSDN\NETSHOW\200\NSCLDOC.EXE +SAMPLES\MSDN\NETSHOW\300\NSTLDOC.EXE +SAMPLES\MSDN\OFFICE95\3276 +SAMPLES\MSDN\OFFICE95\3902 +SAMPLES\MSDN\OFFICE95\3903 +SAMPLES\MSDN\OFFICE95\3904 +SAMPLES\MSDN\OFFICE95\3905 +SAMPLES\MSDN\OFFICE95\3914 +SAMPLES\MSDN\OFFICE95\4805 +SAMPLES\MSDN\OFFICE95\3276\CHAP02.XLS +SAMPLES\MSDN\OFFICE95\3276\CHAP03.TXT +SAMPLES\MSDN\OFFICE95\3276\CHAP03-1.XLS +SAMPLES\MSDN\OFFICE95\3276\CHAP03-2.XLS +SAMPLES\MSDN\OFFICE95\3276\PLANE.BMP +SAMPLES\MSDN\OFFICE95\3902\16BIT +SAMPLES\MSDN\OFFICE95\3902\ADVDLL32.C +SAMPLES\MSDN\OFFICE95\3902\ADVDLL32.DLL +SAMPLES\MSDN\OFFICE95\3902\ADVDLL32.MAK +SAMPLES\MSDN\OFFICE95\3902\XLS +SAMPLES\MSDN\OFFICE95\3902\16BIT\ADVDLL.C +SAMPLES\MSDN\OFFICE95\3902\16BIT\ADVDLL.DEF +SAMPLES\MSDN\OFFICE95\3902\16BIT\ADVDLL.DLL +SAMPLES\MSDN\OFFICE95\3902\16BIT\ADVDLL.MAK +SAMPLES\MSDN\OFFICE95\3902\XLS\ADVDLL32.TXT +SAMPLES\MSDN\OFFICE95\3902\XLS\ADVDLL32.XLS +SAMPLES\MSDN\OFFICE95\3903\BIFFVIEW.EXE +SAMPLES\MSDN\OFFICE95\3903\README.TXT +SAMPLES\MSDN\OFFICE95\3904\DUMPBIFF.EXE +SAMPLES\MSDN\OFFICE95\3904\README.TXT +SAMPLES\MSDN\OFFICE95\3905\BIFF.H +SAMPLES\MSDN\OFFICE95\3905\UNDUMP.C +SAMPLES\MSDN\OFFICE95\3905\UNDUMP.DEF +SAMPLES\MSDN\OFFICE95\3905\UNDUMP.H +SAMPLES\MSDN\OFFICE95\3905\UNDUMP32.DLL +SAMPLES\MSDN\OFFICE95\3905\XLCONV.H +SAMPLES\MSDN\OFFICE95\3914\AS.HLP +SAMPLES\MSDN\OFFICE95\4805\XLCALL.H +SAMPLES\MSDN\OFFICE95\4805\XLCALL32.LIB +SAMPLES\MSDN\OFFICE97\5154 +SAMPLES\MSDN\OFFICE97\5155 +SAMPLES\MSDN\OFFICE97\5156 +SAMPLES\MSDN\OFFICE97\5157 +SAMPLES\MSDN\OFFICE97\5158 +SAMPLES\MSDN\OFFICE97\5170 +SAMPLES\MSDN\OFFICE97\5154\PPTVW16.EXE +SAMPLES\MSDN\OFFICE97\5155\PPVIEW97.EXE +SAMPLES\MSDN\OFFICE97\5156\VIEWER.EXE +SAMPLES\MSDN\OFFICE97\5157\INSTALL.TXT +SAMPLES\MSDN\OFFICE97\5157\SETUP.EXE +SAMPLES\MSDN\OFFICE97\5157\SETUP.INI +SAMPLES\MSDN\OFFICE97\5157\SETUP.LST +SAMPLES\MSDN\OFFICE97\5157\VIEW16.INF +SAMPLES\MSDN\OFFICE97\5157\VIEW16.STF +SAMPLES\MSDN\OFFICE97\5157\VIEWER1.CAB +SAMPLES\MSDN\OFFICE97\5157\WDVW9716.EXE +SAMPLES\MSDN\OFFICE97\5158\WD97VWR32.EXE +SAMPLES\MSDN\OFFICE97\5170\FILEVIEWER.EXE +SAMPLES\MSDN\OFFICE97\5170\SERIAL.H +SAMPLES\MSDN\PERIODIC\4562 +SAMPLES\MSDN\PERIODIC\4563 +SAMPLES\MSDN\PERIODIC\4564 +SAMPLES\MSDN\PERIODIC\4565 +SAMPLES\MSDN\PERIODIC\4566 +SAMPLES\MSDN\PERIODIC\4567 +SAMPLES\MSDN\PERIODIC\4568 +SAMPLES\MSDN\PERIODIC\4569 +SAMPLES\MSDN\PERIODIC\4570 +SAMPLES\MSDN\PERIODIC\4571 +SAMPLES\MSDN\PERIODIC\4572 +SAMPLES\MSDN\PERIODIC\4573 +SAMPLES\MSDN\PERIODIC\4574 +SAMPLES\MSDN\PERIODIC\4575 +SAMPLES\MSDN\PERIODIC\4576 +SAMPLES\MSDN\PERIODIC\4594 +SAMPLES\MSDN\PERIODIC\4595 +SAMPLES\MSDN\PERIODIC\4596 +SAMPLES\MSDN\PERIODIC\4597 +SAMPLES\MSDN\PERIODIC\4598 +SAMPLES\MSDN\PERIODIC\4599 +SAMPLES\MSDN\PERIODIC\4600 +SAMPLES\MSDN\PERIODIC\4601 +SAMPLES\MSDN\PERIODIC\4896 +SAMPLES\MSDN\PERIODIC\4897 +SAMPLES\MSDN\PERIODIC\4898 +SAMPLES\MSDN\PERIODIC\4901 +SAMPLES\MSDN\PERIODIC\4902 +SAMPLES\MSDN\PERIODIC\4903 +SAMPLES\MSDN\PERIODIC\4904 +SAMPLES\MSDN\PERIODIC\4905 +SAMPLES\MSDN\PERIODIC\4906 +SAMPLES\MSDN\PERIODIC\4907 +SAMPLES\MSDN\PERIODIC\4908 +SAMPLES\MSDN\PERIODIC\4909 +SAMPLES\MSDN\PERIODIC\4910 +SAMPLES\MSDN\PERIODIC\4911 +SAMPLES\MSDN\PERIODIC\4912 +SAMPLES\MSDN\PERIODIC\4913 +SAMPLES\MSDN\PERIODIC\4914 +SAMPLES\MSDN\PERIODIC\4915 +SAMPLES\MSDN\PERIODIC\4916 +SAMPLES\MSDN\PERIODIC\4917 +SAMPLES\MSDN\PERIODIC\4952 +SAMPLES\MSDN\PERIODIC\4953 +SAMPLES\MSDN\PERIODIC\4954 +SAMPLES\MSDN\PERIODIC\4955 +SAMPLES\MSDN\PERIODIC\4957 +SAMPLES\MSDN\PERIODIC\4958 +SAMPLES\MSDN\PERIODIC\4959 +SAMPLES\MSDN\PERIODIC\4960 +SAMPLES\MSDN\PERIODIC\4961 +SAMPLES\MSDN\PERIODIC\5187 +SAMPLES\MSDN\PERIODIC\4562\CLOCK.CPP +SAMPLES\MSDN\PERIODIC\4562\CLOCK.MAK +SAMPLES\MSDN\PERIODIC\4562\CLOCK.RC +SAMPLES\MSDN\PERIODIC\4562\CLOCK.VCP +SAMPLES\MSDN\PERIODIC\4562\ICON1.ICO +SAMPLES\MSDN\PERIODIC\4562\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4563\CONNECT.CPP +SAMPLES\MSDN\PERIODIC\4563\EMPDOC.H +SAMPLES\MSDN\PERIODIC\4563\ENGINE.CPP +SAMPLES\MSDN\PERIODIC\4563\EXECUTE.CPP +SAMPLES\MSDN\PERIODIC\4563\GETROWEX.CPP +SAMPLES\MSDN\PERIODIC\4563\GETROWS.CPP +SAMPLES\MSDN\PERIODIC\4563\ONUPDATE.CPP +SAMPLES\MSDN\PERIODIC\4563\SAMP.BAS +SAMPLES\MSDN\PERIODIC\4563\SAMP.CPP +SAMPLES\MSDN\PERIODIC\4563\UPDEMP.CPP +SAMPLES\MSDN\PERIODIC\4563\VARIANT.CPP +SAMPLES\MSDN\PERIODIC\4564\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4564\SCHOOL.C +SAMPLES\MSDN\PERIODIC\4564\SCHOOL.DEF +SAMPLES\MSDN\PERIODIC\4564\SCHOOL.MAK +SAMPLES\MSDN\PERIODIC\4564\SCHOOL.RC +SAMPLES\MSDN\PERIODIC\4564\SCHOOLUI.C +SAMPLES\MSDN\PERIODIC\4564\SCHOOLUI.DEF +SAMPLES\MSDN\PERIODIC\4564\SCHOOLUI.MAK +SAMPLES\MSDN\PERIODIC\4564\SCHOOLUI.RC +SAMPLES\MSDN\PERIODIC\4564\S_CTL.ASM +SAMPLES\MSDN\PERIODIC\4564\TELEPATH.C +SAMPLES\MSDN\PERIODIC\4564\TELEPATH.DEF +SAMPLES\MSDN\PERIODIC\4564\TELEPATH.RC +SAMPLES\MSDN\PERIODIC\4564\T_CTL.ASM +SAMPLES\MSDN\PERIODIC\4564\VERSION.H +SAMPLES\MSDN\PERIODIC\4564\WCO.INF +SAMPLES\MSDN\PERIODIC\4565\VIS001 +SAMPLES\MSDN\PERIODIC\4565\VIS00132 +SAMPLES\MSDN\PERIODIC\4565\VISTHUNK +SAMPLES\MSDN\PERIODIC\4565\YELLER +SAMPLES\MSDN\PERIODIC\4565\VIS001\VIS001.BAS +SAMPLES\MSDN\PERIODIC\4565\VIS001\VIS001.EXE +SAMPLES\MSDN\PERIODIC\4565\VIS001\VIS001.FRM +SAMPLES\MSDN\PERIODIC\4565\VIS001\VIS001.MAK +SAMPLES\MSDN\PERIODIC\4565\VIS00132\VIS00132.EXE +SAMPLES\MSDN\PERIODIC\4565\VIS00132\VIS00132.FRM +SAMPLES\MSDN\PERIODIC\4565\VIS00132\VIS00132.VBP +SAMPLES\MSDN\PERIODIC\4565\VIS00132\VIS00132.ZIP +SAMPLES\MSDN\PERIODIC\4565\VISTHUNK\THUNK.CLS +SAMPLES\MSDN\PERIODIC\4565\VISTHUNK\VISTHUNK.BAS +SAMPLES\MSDN\PERIODIC\4565\VISTHUNK\VISTHUNK.EXE +SAMPLES\MSDN\PERIODIC\4565\VISTHUNK\VISTHUNK.VBP +SAMPLES\MSDN\PERIODIC\4565\YELLER\YELLER.C +SAMPLES\MSDN\PERIODIC\4565\YELLER\YELLER.DEF +SAMPLES\MSDN\PERIODIC\4565\YELLER\YELLER.DLL +SAMPLES\MSDN\PERIODIC\4565\YELLER\YELLER.MAK +SAMPLES\MSDN\PERIODIC\4566\DEADLOCK.MAK +SAMPLES\MSDN\PERIODIC\4566\DEADLO~1.CPP +SAMPLES\MSDN\PERIODIC\4566\DEADLO~1.DLL +SAMPLES\MSDN\PERIODIC\4566\DEADLO~1.EXE +SAMPLES\MSDN\PERIODIC\4566\DEADLO~1.H +SAMPLES\MSDN\PERIODIC\4566\DEADLO~2.CPP +SAMPLES\MSDN\PERIODIC\4567\DELEXE.C +SAMPLES\MSDN\PERIODIC\4567\DELEXE.DOC +SAMPLES\MSDN\PERIODIC\4567\DELEXE.H +SAMPLES\MSDN\PERIODIC\4567\DELEXE.MAK +SAMPLES\MSDN\PERIODIC\4567\DELEXE.MDP +SAMPLES\MSDN\PERIODIC\4567\DELEXE.ZIP +SAMPLES\MSDN\PERIODIC\4567\DELEXEBF.C +SAMPLES\MSDN\PERIODIC\4567\DELEXEBF.H +SAMPLES\MSDN\PERIODIC\4567\FIG01.BMP +SAMPLES\MSDN\PERIODIC\4567\RFOR.C +SAMPLES\MSDN\PERIODIC\4567\RFOR.H +SAMPLES\MSDN\PERIODIC\4567\TDELEXE.BMP +SAMPLES\MSDN\PERIODIC\4567\TDELEXE.C +SAMPLES\MSDN\PERIODIC\4568\DCLIK152.MAK +SAMPLES\MSDN\PERIODIC\4568\DCLIKB22.MAK +SAMPLES\MSDN\PERIODIC\4568\DCLIKB40.MAK +SAMPLES\MSDN\PERIODIC\4568\DCLIKBAR.CPP +SAMPLES\MSDN\PERIODIC\4568\DCLIKBAR.DEF +SAMPLES\MSDN\PERIODIC\4568\DCLIKBAR.H +SAMPLES\MSDN\PERIODIC\4568\DCLIKBAR.RC +SAMPLES\MSDN\PERIODIC\4568\DOC.CPP +SAMPLES\MSDN\PERIODIC\4568\DOC.H +SAMPLES\MSDN\PERIODIC\4568\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4568\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4568\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4568\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4568\STDAFX.H +SAMPLES\MSDN\PERIODIC\4568\TR1.CPP +SAMPLES\MSDN\PERIODIC\4568\TR2.CPP +SAMPLES\MSDN\PERIODIC\4568\VIEW.CPP +SAMPLES\MSDN\PERIODIC\4568\VIEW.H +SAMPLES\MSDN\PERIODIC\4568\VIRTOP.CPP +SAMPLES\MSDN\PERIODIC\4569\APP.CPP +SAMPLES\MSDN\PERIODIC\4569\APP.H +SAMPLES\MSDN\PERIODIC\4569\BUFWND.CPP +SAMPLES\MSDN\PERIODIC\4569\BUFWND.H +SAMPLES\MSDN\PERIODIC\4569\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4569\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4569\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4569\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4569\STDAFX.H +SAMPLES\MSDN\PERIODIC\4569\TRACEWIN.H +SAMPLES\MSDN\PERIODIC\4569\TRACEWIN.MAK +SAMPLES\MSDN\PERIODIC\4569\TRACEWIN.RC +SAMPLES\MSDN\PERIODIC\4569\TRWIN4.MAK +SAMPLES\MSDN\PERIODIC\4570\ABOUTDLG.CPP +SAMPLES\MSDN\PERIODIC\4570\ABOUTDLG.H +SAMPLES\MSDN\PERIODIC\4570\BLUECELL.BMP +SAMPLES\MSDN\PERIODIC\4570\GRAYCELL.BMP +SAMPLES\MSDN\PERIODIC\4570\LIFE.CPP +SAMPLES\MSDN\PERIODIC\4570\LIFE.EXE +SAMPLES\MSDN\PERIODIC\4570\LIFE.H +SAMPLES\MSDN\PERIODIC\4570\LIFE.ICO +SAMPLES\MSDN\PERIODIC\4570\LIFE.RC +SAMPLES\MSDN\PERIODIC\4570\LIFEDOC.CPP +SAMPLES\MSDN\PERIODIC\4570\LIFEDOC.H +SAMPLES\MSDN\PERIODIC\4570\LIFEVIEW.CPP +SAMPLES\MSDN\PERIODIC\4570\LIFEVIEW.H +SAMPLES\MSDN\PERIODIC\4570\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4570\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4570\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4570\SIZEDLG.CPP +SAMPLES\MSDN\PERIODIC\4570\SIZEDLG.H +SAMPLES\MSDN\PERIODIC\4571\CCLIENT.CPP +SAMPLES\MSDN\PERIODIC\4571\CCLIENT.H +SAMPLES\MSDN\PERIODIC\4571\CLISTEN.CPP +SAMPLES\MSDN\PERIODIC\4571\CLISTEN.H +SAMPLES\MSDN\PERIODIC\4571\CONFIG.CPP +SAMPLES\MSDN\PERIODIC\4571\CONFIG.H +SAMPLES\MSDN\PERIODIC\4571\CONNECT.ICO +SAMPLES\MSDN\PERIODIC\4571\IDLE.ICO +SAMPLES\MSDN\PERIODIC\4571\LOGGER.H +SAMPLES\MSDN\PERIODIC\4571\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4571\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4571\PROPS.CPP +SAMPLES\MSDN\PERIODIC\4571\PROPS.H +SAMPLES\MSDN\PERIODIC\4571\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4571\SERVICE.CPP +SAMPLES\MSDN\PERIODIC\4571\SPLASH.CPP +SAMPLES\MSDN\PERIODIC\4571\SPLASH.H +SAMPLES\MSDN\PERIODIC\4571\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4571\STDAFX.H +SAMPLES\MSDN\PERIODIC\4571\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4571\TRAYNOT.CPP +SAMPLES\MSDN\PERIODIC\4571\TRAYNOT.H +SAMPLES\MSDN\PERIODIC\4571\WEBDOC.CPP +SAMPLES\MSDN\PERIODIC\4571\WEBDOC.H +SAMPLES\MSDN\PERIODIC\4571\WEBSTER.CPP +SAMPLES\MSDN\PERIODIC\4571\WEBSTER.H +SAMPLES\MSDN\PERIODIC\4571\WEBSTER.ICO +SAMPLES\MSDN\PERIODIC\4571\WEBSTER.MAK +SAMPLES\MSDN\PERIODIC\4571\WEBSTER.MDP +SAMPLES\MSDN\PERIODIC\4571\WEBSTER.RC +SAMPLES\MSDN\PERIODIC\4571\WEBSTER.RC2 +SAMPLES\MSDN\PERIODIC\4571\WEBVIEW.CPP +SAMPLES\MSDN\PERIODIC\4571\WEBVIEW.H +SAMPLES\MSDN\PERIODIC\4572\MEMORY.C +SAMPLES\MSDN\PERIODIC\4572\MEMORY.H +SAMPLES\MSDN\PERIODIC\4572\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4572\SPRITE~1.C +SAMPLES\MSDN\PERIODIC\4572\SPRITE~1.H +SAMPLES\MSDN\PERIODIC\4572\SPRITE~2.C +SAMPLES\MSDN\PERIODIC\4572\SPRITE~2.H +SAMPLES\MSDN\PERIODIC\4572\THRUST.WAV +SAMPLES\MSDN\PERIODIC\4572\WAVE.C +SAMPLES\MSDN\PERIODIC\4572\WAVE.H +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.APS +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.BMP +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.C +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.H +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.ICO +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.MAK +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.MDP +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.RC +SAMPLES\MSDN\PERIODIC\4572\WINDONUT.VCP +SAMPLES\MSDN\PERIODIC\4572\WINDON~1.H +SAMPLES\MSDN\PERIODIC\4572\WINDOWS.C +SAMPLES\MSDN\PERIODIC\4573\MLTINST2.BOR +SAMPLES\MSDN\PERIODIC\4573\MLTINST2.CPP +SAMPLES\MSDN\PERIODIC\4573\MLTINST2.DEF +SAMPLES\MSDN\PERIODIC\4573\MLTINST2.EXE +SAMPLES\MSDN\PERIODIC\4573\MLTINST2.H +SAMPLES\MSDN\PERIODIC\4573\MLTINST2.MS +SAMPLES\MSDN\PERIODIC\4573\MLTINST2.RC +SAMPLES\MSDN\PERIODIC\4573\PROCHOOK.DLL +SAMPLES\MSDN\PERIODIC\4573\PROCHOOK.H +SAMPLES\MSDN\PERIODIC\4573\PROCHOOK.LIB +SAMPLES\MSDN\PERIODIC\4574\CBACK +SAMPLES\MSDN\PERIODIC\4574\VBTRAY +SAMPLES\MSDN\PERIODIC\4574\CBACK\CALLBCTL.BMP +SAMPLES\MSDN\PERIODIC\4574\CBACK\CALLBCTL.CPP +SAMPLES\MSDN\PERIODIC\4574\CBACK\CALLBCTL.H +SAMPLES\MSDN\PERIODIC\4574\CBACK\CALLBPPG.CPP +SAMPLES\MSDN\PERIODIC\4574\CBACK\CALLBPPG.H +SAMPLES\MSDN\PERIODIC\4574\CBACK\CB32.ICO +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.CPP +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.DEF +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.H +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.ICO +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.MAK +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.OCX +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.ODL +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.RC +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK.RC2 +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK16.BMP +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK32.DEF +SAMPLES\MSDN\PERIODIC\4574\CBACK\CBACK32.MAK +SAMPLES\MSDN\PERIODIC\4574\CBACK\MAKEFILE +SAMPLES\MSDN\PERIODIC\4574\CBACK\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4574\CBACK\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4574\CBACK\STDAFX.H +SAMPLES\MSDN\PERIODIC\4574\VBTRAY\VBTRAY.BAS +SAMPLES\MSDN\PERIODIC\4574\VBTRAY\VBTRAY.FRM +SAMPLES\MSDN\PERIODIC\4574\VBTRAY\VBTRAY.VBP +SAMPLES\MSDN\PERIODIC\4575\CF.H +SAMPLES\MSDN\PERIODIC\4575\IPOINT.H +SAMPLES\MSDN\PERIODIC\4575\IPOINT.ODL +SAMPLES\MSDN\PERIODIC\4575\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4575\S816.H +SAMPLES\MSDN\PERIODIC\4575\SHARECLI.APS +SAMPLES\MSDN\PERIODIC\4575\SHARECLI.CPP +SAMPLES\MSDN\PERIODIC\4575\SHARECLI.MAK +SAMPLES\MSDN\PERIODIC\4575\SHARECLI.MDP +SAMPLES\MSDN\PERIODIC\4575\SHARECLI.RC +SAMPLES\MSDN\PERIODIC\4575\SHAREDOB.CPP +SAMPLES\MSDN\PERIODIC\4575\SHAREDOB.H +SAMPLES\MSDN\PERIODIC\4575\SHAREDPO.CPP +SAMPLES\MSDN\PERIODIC\4575\SHAREDPO.H +SAMPLES\MSDN\PERIODIC\4575\SHAREME.DEF +SAMPLES\MSDN\PERIODIC\4575\SHAREME.MAK +SAMPLES\MSDN\PERIODIC\4575\SHAREME.MDP +SAMPLES\MSDN\PERIODIC\4575\SVC.CPP +SAMPLES\MSDN\PERIODIC\4576\APP.ICO +SAMPLES\MSDN\PERIODIC\4576\CHILDFRM.CPP +SAMPLES\MSDN\PERIODIC\4576\CHILDFRM.H +SAMPLES\MSDN\PERIODIC\4576\DOC.CPP +SAMPLES\MSDN\PERIODIC\4576\DOC.H +SAMPLES\MSDN\PERIODIC\4576\DOC.ICO +SAMPLES\MSDN\PERIODIC\4576\DYNTEMPL.CPP +SAMPLES\MSDN\PERIODIC\4576\DYNTEMPL.H +SAMPLES\MSDN\PERIODIC\4576\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4576\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4576\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4576\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4576\STDAFX.H +SAMPLES\MSDN\PERIODIC\4576\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4576\VIEW.CPP +SAMPLES\MSDN\PERIODIC\4576\VIEW.H +SAMPLES\MSDN\PERIODIC\4576\VIEW3.CPP +SAMPLES\MSDN\PERIODIC\4576\VIEW3.H +SAMPLES\MSDN\PERIODIC\4576\VIEW3.MAK +SAMPLES\MSDN\PERIODIC\4576\VIEW3.RC +SAMPLES\MSDN\PERIODIC\4576\VIEW3.RC2 +SAMPLES\MSDN\PERIODIC\4594\FLIPPER +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK +SAMPLES\MSDN\PERIODIC\4594\SMPLSOCK +SAMPLES\MSDN\PERIODIC\4594\UPYOUR +SAMPLES\MSDN\PERIODIC\4594\FLIPPER\FLIPPER.EXE +SAMPLES\MSDN\PERIODIC\4594\FLIPPER\FLIPPER.FRM +SAMPLES\MSDN\PERIODIC\4594\FLIPPER\FLIPPER.VBP +SAMPLES\MSDN\PERIODIC\4594\FLIPPER\MSJSOCK.OCX +SAMPLES\MSDN\PERIODIC\4594\FLIPPER\WINSOCK.BAS +SAMPLES\MSDN\PERIODIC\4594\FLIPPER\WSERROR.BAS +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.CPP +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.DEF +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.H +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.ICO +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.MAK +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.MDP +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.OCX +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.ODL +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOCK.RC +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOC~1.BMP +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOC~1.CPP +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOC~1.H +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOC~2.CPP +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\MSJSOC~2.H +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4594\MSJSOCK\STDAFX.H +SAMPLES\MSDN\PERIODIC\4594\SMPLSOCK\SIMPLE~1.FRM +SAMPLES\MSDN\PERIODIC\4594\SMPLSOCK\SIMPLE~1.FRX +SAMPLES\MSDN\PERIODIC\4594\SMPLSOCK\SIMPLE~1.VBP +SAMPLES\MSDN\PERIODIC\4594\SMPLSOCK\WINSOCK.BAS +SAMPLES\MSDN\PERIODIC\4594\SMPLSOCK\WSERROR.BAS +SAMPLES\MSDN\PERIODIC\4594\UPYOUR\UPYOUR~1.EXE +SAMPLES\MSDN\PERIODIC\4594\UPYOUR\UPYOUR~1.FRM +SAMPLES\MSDN\PERIODIC\4594\UPYOUR\UPYOUR~1.VBP +SAMPLES\MSDN\PERIODIC\4594\UPYOUR\WINSOCK.BAS +SAMPLES\MSDN\PERIODIC\4594\UPYOUR\WSERROR.BAS +SAMPLES\MSDN\PERIODIC\4595\DISPRES +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DISPRES.APS +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DISPRES.CPP +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DISPRES.EXE +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DISPRES.ICO +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DISPRES.MAK +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DISPRES.MDP +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DISPRES.RC +SAMPLES\MSDN\PERIODIC\4595\DISPRES\DTPLUS.ICO +SAMPLES\MSDN\PERIODIC\4595\DISPRES\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4595\DISPRES\RESOURCE.HM +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\APPBAR.CPP +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\APPBAR.H +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\RESOURCE.HM +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SHELLRUN.CPP +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SHELLRUN.EXE +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SHELLRUN.H +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SHELLRUN.MAK +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SHELLRUN.MDP +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SHELLRUN.RC +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SRBAR.CPP +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\SRBAR.H +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4595\SHELLRUN\STDAFX.H +SAMPLES\MSDN\PERIODIC\4596\ENUMDATA.BAS +SAMPLES\MSDN\PERIODIC\4596\ERROR.BAS +SAMPLES\MSDN\PERIODIC\4596\ODBC32.TXT +SAMPLES\MSDN\PERIODIC\4596\READWRTE.BAS +SAMPLES\MSDN\PERIODIC\4596\VBDB.EXE +SAMPLES\MSDN\PERIODIC\4596\VBDB.VBP +SAMPLES\MSDN\PERIODIC\4596\VBDBFORM.FRM +SAMPLES\MSDN\PERIODIC\4596\VBDBFORM.FRX +SAMPLES\MSDN\PERIODIC\4597\CTITLEDB.CPP +SAMPLES\MSDN\PERIODIC\4597\CTITLEDB.H +SAMPLES\MSDN\PERIODIC\4597\MAKEPTR.H +SAMPLES\MSDN\PERIODIC\4597\PERFSNAP.CPP +SAMPLES\MSDN\PERIODIC\4597\PERFSNAP.H +SAMPLES\MSDN\PERIODIC\4597\SHOWTITL.CPP +SAMPLES\MSDN\PERIODIC\4597\SHOWTITL.EXE +SAMPLES\MSDN\PERIODIC\4598\KILLTHRD.CPP +SAMPLES\MSDN\PERIODIC\4598\KILLTHRD.H +SAMPLES\MSDN\PERIODIC\4598\KTTEST.APS +SAMPLES\MSDN\PERIODIC\4598\KTTEST.CPP +SAMPLES\MSDN\PERIODIC\4598\KTTEST.EXE +SAMPLES\MSDN\PERIODIC\4598\KTTEST.MAK +SAMPLES\MSDN\PERIODIC\4598\KTTEST.MDP +SAMPLES\MSDN\PERIODIC\4598\KTTEST.RC +SAMPLES\MSDN\PERIODIC\4598\MSVCRT40.DLL +SAMPLES\MSDN\PERIODIC\4598\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4599\APP.ICO +SAMPLES\MSDN\PERIODIC\4599\APP.RC2 +SAMPLES\MSDN\PERIODIC\4599\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4599\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4599\MYICON.ICO +SAMPLES\MSDN\PERIODIC\4599\MYICON2.ICO +SAMPLES\MSDN\PERIODIC\4599\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4599\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4599\STDAFX.H +SAMPLES\MSDN\PERIODIC\4599\TRAYICON.CPP +SAMPLES\MSDN\PERIODIC\4599\TRAYICON.H +SAMPLES\MSDN\PERIODIC\4599\TRAYTEST.CPP +SAMPLES\MSDN\PERIODIC\4599\TRAYTEST.H +SAMPLES\MSDN\PERIODIC\4599\TRAYTEST.MAK +SAMPLES\MSDN\PERIODIC\4599\TRAYTEST.RC +SAMPLES\MSDN\PERIODIC\4600\APP.CPP +SAMPLES\MSDN\PERIODIC\4600\APP.H +SAMPLES\MSDN\PERIODIC\4600\BUFWND.CPP +SAMPLES\MSDN\PERIODIC\4600\BUFWND.H +SAMPLES\MSDN\PERIODIC\4600\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4600\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4600\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4600\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4600\STDAFX.H +SAMPLES\MSDN\PERIODIC\4600\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4600\TRACEWIN.H +SAMPLES\MSDN\PERIODIC\4600\TRACEWIN.ICO +SAMPLES\MSDN\PERIODIC\4600\TRACEWIN.MAK +SAMPLES\MSDN\PERIODIC\4600\TRACEWIN.RC +SAMPLES\MSDN\PERIODIC\4600\TRACEWIN.RC2 +SAMPLES\MSDN\PERIODIC\4600\TRWIN30.MAK +SAMPLES\MSDN\PERIODIC\4600\WINPLACE.CPP +SAMPLES\MSDN\PERIODIC\4600\WINPLACE.H +SAMPLES\MSDN\PERIODIC\4601\DOC.CPP +SAMPLES\MSDN\PERIODIC\4601\DOC.H +SAMPLES\MSDN\PERIODIC\4601\DOCA.ICO +SAMPLES\MSDN\PERIODIC\4601\DOCB.ICO +SAMPLES\MSDN\PERIODIC\4601\DOCENUM.CPP +SAMPLES\MSDN\PERIODIC\4601\DOCENUM.H +SAMPLES\MSDN\PERIODIC\4601\ENUMDOC.CPP +SAMPLES\MSDN\PERIODIC\4601\ENUMDOC.DEF +SAMPLES\MSDN\PERIODIC\4601\ENUMDOC.H +SAMPLES\MSDN\PERIODIC\4601\ENUMDOC.ICO +SAMPLES\MSDN\PERIODIC\4601\ENUMDOC.RC +SAMPLES\MSDN\PERIODIC\4601\ENUMDOC.RC2 +SAMPLES\MSDN\PERIODIC\4601\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4601\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4601\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4601\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4601\STDAFX.H +SAMPLES\MSDN\PERIODIC\4601\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4601\UPDATE.TXT +SAMPLES\MSDN\PERIODIC\4601\VC152.MAK +SAMPLES\MSDN\PERIODIC\4601\VC152.WSP +SAMPLES\MSDN\PERIODIC\4601\VC30.MAK +SAMPLES\MSDN\PERIODIC\4601\VC40.MAK +SAMPLES\MSDN\PERIODIC\4601\VIEW.CPP +SAMPLES\MSDN\PERIODIC\4601\VIEW.H +SAMPLES\MSDN\PERIODIC\4896\DLGICON.EXE +SAMPLES\MSDN\PERIODIC\4897\DLGICON.EXE +SAMPLES\MSDN\PERIODIC\4898\EZPRINT.CPP +SAMPLES\MSDN\PERIODIC\4898\EZPRINT.EXE +SAMPLES\MSDN\PERIODIC\4898\EZPRINT.H +SAMPLES\MSDN\PERIODIC\4898\EZPRINT.RC +SAMPLES\MSDN\PERIODIC\4898\EZPRINTD.CPP +SAMPLES\MSDN\PERIODIC\4898\EZPRINTD.H +SAMPLES\MSDN\PERIODIC\4898\EZPRINTV.CPP +SAMPLES\MSDN\PERIODIC\4898\EZPRINTV.H +SAMPLES\MSDN\PERIODIC\4898\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4901\HEXDOC.CPP +SAMPLES\MSDN\PERIODIC\4901\HEXDOC.H +SAMPLES\MSDN\PERIODIC\4901\HEXDUMP.CPP +SAMPLES\MSDN\PERIODIC\4901\HEXDUMP.H +SAMPLES\MSDN\PERIODIC\4901\HEXDUMP.RC +SAMPLES\MSDN\PERIODIC\4901\HEXVIEW.CPP +SAMPLES\MSDN\PERIODIC\4901\HEXVIEW.H +SAMPLES\MSDN\PERIODIC\4901\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4902\CHILDFRM.CPP +SAMPLES\MSDN\PERIODIC\4902\CHILDFRM.H +SAMPLES\MSDN\PERIODIC\4902\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4902\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4902\README.TXT +SAMPLES\MSDN\PERIODIC\4902\RES +SAMPLES\MSDN\PERIODIC\4902\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4902\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4902\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4902\SCRIBBLE.MAK +SAMPLES\MSDN\PERIODIC\4902\SCRIBBLE.RC +SAMPLES\MSDN\PERIODIC\4902\SCRIBDOC.CPP +SAMPLES\MSDN\PERIODIC\4902\SCRIBDOC.H +SAMPLES\MSDN\PERIODIC\4902\SCRIBVW.CPP +SAMPLES\MSDN\PERIODIC\4902\SCRIBVW.H +SAMPLES\MSDN\PERIODIC\4902\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4902\STDAFX.H +SAMPLES\MSDN\PERIODIC\4902\RES\SCRIBBLE.ICO +SAMPLES\MSDN\PERIODIC\4902\RES\SCRIBBLE.RC2 +SAMPLES\MSDN\PERIODIC\4902\RES\SCRIBDOC.ICO +SAMPLES\MSDN\PERIODIC\4902\RES\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4903\CHILDFRM.CPP +SAMPLES\MSDN\PERIODIC\4903\CHILDFRM.H +SAMPLES\MSDN\PERIODIC\4903\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4903\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4903\README.TXT +SAMPLES\MSDN\PERIODIC\4903\RES +SAMPLES\MSDN\PERIODIC\4903\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4903\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4903\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4903\SCRIBBLE.MAK +SAMPLES\MSDN\PERIODIC\4903\SCRIBBLE.RC +SAMPLES\MSDN\PERIODIC\4903\SCRIBDOC.CPP +SAMPLES\MSDN\PERIODIC\4903\SCRIBDOC.H +SAMPLES\MSDN\PERIODIC\4903\SCRIBVW.CPP +SAMPLES\MSDN\PERIODIC\4903\SCRIBVW.H +SAMPLES\MSDN\PERIODIC\4903\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4903\STDAFX.H +SAMPLES\MSDN\PERIODIC\4903\RES\SCRIBBLE.ICO +SAMPLES\MSDN\PERIODIC\4903\RES\SCRIBBLE.RC2 +SAMPLES\MSDN\PERIODIC\4903\RES\SCRIBDOC.ICO +SAMPLES\MSDN\PERIODIC\4903\RES\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4904\CHILDFRM.CPP +SAMPLES\MSDN\PERIODIC\4904\CHILDFRM.H +SAMPLES\MSDN\PERIODIC\4904\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4904\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4904\RES +SAMPLES\MSDN\PERIODIC\4904\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4904\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4904\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4904\SCRIBBLE.MAK +SAMPLES\MSDN\PERIODIC\4904\SCRIBBLE.RC +SAMPLES\MSDN\PERIODIC\4904\SCRIBDOC.CPP +SAMPLES\MSDN\PERIODIC\4904\SCRIBDOC.H +SAMPLES\MSDN\PERIODIC\4904\SCRIBVW.CPP +SAMPLES\MSDN\PERIODIC\4904\SCRIBVW.H +SAMPLES\MSDN\PERIODIC\4904\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4904\STDAFX.H +SAMPLES\MSDN\PERIODIC\4904\RES\SAMPLE.SCB +SAMPLES\MSDN\PERIODIC\4904\RES\SCRIBBLE.ICO +SAMPLES\MSDN\PERIODIC\4904\RES\SCRIBBLE.RC2 +SAMPLES\MSDN\PERIODIC\4904\RES\SCRIBDOC.ICO +SAMPLES\MSDN\PERIODIC\4904\RES\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4905\DEBUG +SAMPLES\MSDN\PERIODIC\4905\MFCTALK.CPP +SAMPLES\MSDN\PERIODIC\4905\MFCTALK.DEF +SAMPLES\MSDN\PERIODIC\4905\MFCTALK.H +SAMPLES\MSDN\PERIODIC\4905\MFCTALK.MAK +SAMPLES\MSDN\PERIODIC\4905\MFCTALK.RC +SAMPLES\MSDN\PERIODIC\4905\MFCTALK.RC2 +SAMPLES\MSDN\PERIODIC\4905\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4905\DEBUG\MFCTALK.DLL +SAMPLES\MSDN\PERIODIC\4905\DEBUG\MFCTALK.EXP +SAMPLES\MSDN\PERIODIC\4905\DEBUG\MFCTALK.LIB +SAMPLES\MSDN\PERIODIC\4905\DEBUG\MFCTALK.RES +SAMPLES\MSDN\PERIODIC\4906\DEBUG +SAMPLES\MSDN\PERIODIC\4906\OLDBROW.CPP +SAMPLES\MSDN\PERIODIC\4906\OLDBROW.DEF +SAMPLES\MSDN\PERIODIC\4906\OLDBROW.H +SAMPLES\MSDN\PERIODIC\4906\OLDBROW.HTM +SAMPLES\MSDN\PERIODIC\4906\OLDBROW.MAK +SAMPLES\MSDN\PERIODIC\4906\OLDBROW.RC +SAMPLES\MSDN\PERIODIC\4906\OLDBROW.RC2 +SAMPLES\MSDN\PERIODIC\4906\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4906\DEBUG\OLDBROW.DLL +SAMPLES\MSDN\PERIODIC\4906\DEBUG\OLDBROW.EXP +SAMPLES\MSDN\PERIODIC\4906\DEBUG\OLDBROW.LIB +SAMPLES\MSDN\PERIODIC\4906\DEBUG\OLDBROW.RES +SAMPLES\MSDN\PERIODIC\4907\DRAGDROP.BAS +SAMPLES\MSDN\PERIODIC\4907\DRAGDROP.FRM +SAMPLES\MSDN\PERIODIC\4907\DRAGDROP.FRX +SAMPLES\MSDN\PERIODIC\4907\DRAGDROP.VBP +SAMPLES\MSDN\PERIODIC\4908\MFC40.DLL +SAMPLES\MSDN\PERIODIC\4908\MSVCRT40.DLL +SAMPLES\MSDN\PERIODIC\4908\OC30.DLL +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.CLW +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.CPP +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.DEF +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.H +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.MAK +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.MDP +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.ODL +SAMPLES\MSDN\PERIODIC\4909\MSJDRAG.RC +SAMPLES\MSDN\PERIODIC\4909\MSJDRAGC.BMP +SAMPLES\MSDN\PERIODIC\4909\MSJDRAGC.CPP +SAMPLES\MSDN\PERIODIC\4909\MSJDRAGC.H +SAMPLES\MSDN\PERIODIC\4909\MSJDRAGP.CPP +SAMPLES\MSDN\PERIODIC\4909\MSJDRAGP.H +SAMPLES\MSDN\PERIODIC\4909\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4909\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4909\STDAFX.H +SAMPLES\MSDN\PERIODIC\4909\VBFRWND.CPP +SAMPLES\MSDN\PERIODIC\4909\VBFRWND.H +SAMPLES\MSDN\PERIODIC\4910\AFXBIND.H +SAMPLES\MSDN\PERIODIC\4910\BINDDCMT.CPP +SAMPLES\MSDN\PERIODIC\4910\BINDDOC.CPP +SAMPLES\MSDN\PERIODIC\4910\BINDDOC.H +SAMPLES\MSDN\PERIODIC\4910\BINDIPFW.CPP +SAMPLES\MSDN\PERIODIC\4910\BINDIPFW.H +SAMPLES\MSDN\PERIODIC\4910\BINDITEM.CPP +SAMPLES\MSDN\PERIODIC\4910\BINDITEM.H +SAMPLES\MSDN\PERIODIC\4910\BINDTARG.CPP +SAMPLES\MSDN\PERIODIC\4910\BINDVIEW.CPP +SAMPLES\MSDN\PERIODIC\4910\MFCBIND.CPP +SAMPLES\MSDN\PERIODIC\4910\MFCBIND.H +SAMPLES\MSDN\PERIODIC\4910\MFCBIND.MAK +SAMPLES\MSDN\PERIODIC\4910\OLEOBJCT.CPP +SAMPLES\MSDN\PERIODIC\4910\PRINT.CPP +SAMPLES\MSDN\PERIODIC\4911\BINDDOC.H +SAMPLES\MSDN\PERIODIC\4911\BINDIPFW.H +SAMPLES\MSDN\PERIODIC\4911\BINDITEM.H +SAMPLES\MSDN\PERIODIC\4911\IPFRAME.CPP +SAMPLES\MSDN\PERIODIC\4911\IPFRAME.H +SAMPLES\MSDN\PERIODIC\4911\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4911\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4911\MAKEHELP.BAT +SAMPLES\MSDN\PERIODIC\4911\MFCBIND.H +SAMPLES\MSDN\PERIODIC\4911\MSJSCRIB.OSC +SAMPLES\MSDN\PERIODIC\4911\PENDLG.CPP +SAMPLES\MSDN\PERIODIC\4911\PENDLG.H +SAMPLES\MSDN\PERIODIC\4911\RES +SAMPLES\MSDN\PERIODIC\4911\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.EXE +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.HPJ +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.MAK +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.MDP +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.RC +SAMPLES\MSDN\PERIODIC\4911\SCRIBBLE.REG +SAMPLES\MSDN\PERIODIC\4911\SCRIBDOC.CPP +SAMPLES\MSDN\PERIODIC\4911\SCRIBDOC.H +SAMPLES\MSDN\PERIODIC\4911\SCRIBFRM.CPP +SAMPLES\MSDN\PERIODIC\4911\SCRIBFRM.H +SAMPLES\MSDN\PERIODIC\4911\SCRIBITM.CPP +SAMPLES\MSDN\PERIODIC\4911\SCRIBITM.H +SAMPLES\MSDN\PERIODIC\4911\SCRIBVW.CPP +SAMPLES\MSDN\PERIODIC\4911\SCRIBVW.H +SAMPLES\MSDN\PERIODIC\4911\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4911\STDAFX.H +SAMPLES\MSDN\PERIODIC\4911\RES\ITOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4911\RES\SCRIBBLE.ICO +SAMPLES\MSDN\PERIODIC\4911\RES\SCRIBBLE.RC2 +SAMPLES\MSDN\PERIODIC\4911\RES\SCRIBDOC.ICO +SAMPLES\MSDN\PERIODIC\4911\RES\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4912\SHDOCVW.DLL +SAMPLES\MSDN\PERIODIC\4912\SHDOCVW.TLB +SAMPLES\MSDN\PERIODIC\4912\SHELLEXP.FRM +SAMPLES\MSDN\PERIODIC\4912\SHELLEXP.FRX +SAMPLES\MSDN\PERIODIC\4912\SHELLEXP.VBP +SAMPLES\MSDN\PERIODIC\4913\DLGIDLE.CPP +SAMPLES\MSDN\PERIODIC\4913\DLGIDLE.MAK +SAMPLES\MSDN\PERIODIC\4913\DLGIDLE.RC +SAMPLES\MSDN\PERIODIC\4913\RES +SAMPLES\MSDN\PERIODIC\4913\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4913\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4913\STDAFX.H +SAMPLES\MSDN\PERIODIC\4913\TRACEWIN.H +SAMPLES\MSDN\PERIODIC\4913\RES\APP.ICO +SAMPLES\MSDN\PERIODIC\4913\RES\APP.RC2 +SAMPLES\MSDN\PERIODIC\4913\RES\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4914\CHILDFRM.CPP +SAMPLES\MSDN\PERIODIC\4914\CHILDFRM.H +SAMPLES\MSDN\PERIODIC\4914\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4914\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4914\README.TXT +SAMPLES\MSDN\PERIODIC\4914\RES +SAMPLES\MSDN\PERIODIC\4914\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4914\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4914\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4914\SCRIBBLE.MAK +SAMPLES\MSDN\PERIODIC\4914\RES\SCRIBBLE.ICO +SAMPLES\MSDN\PERIODIC\4914\RES\SCRIBBLE.RC2 +SAMPLES\MSDN\PERIODIC\4914\RES\SCRIBDOC.ICO +SAMPLES\MSDN\PERIODIC\4914\RES\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4915\CHILDFRM.CPP +SAMPLES\MSDN\PERIODIC\4915\CHILDFRM.H +SAMPLES\MSDN\PERIODIC\4915\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4915\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4915\README.TXT +SAMPLES\MSDN\PERIODIC\4915\RES +SAMPLES\MSDN\PERIODIC\4915\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4915\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4915\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4915\SCRIBBLE.MAK +SAMPLES\MSDN\PERIODIC\4915\SCRIBBLE.RC +SAMPLES\MSDN\PERIODIC\4915\SCRIBDOC.CPP +SAMPLES\MSDN\PERIODIC\4915\SCRIBDOC.H +SAMPLES\MSDN\PERIODIC\4915\SCRIBVW.CPP +SAMPLES\MSDN\PERIODIC\4915\SCRIBVW.H +SAMPLES\MSDN\PERIODIC\4915\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4915\STDAFX.H +SAMPLES\MSDN\PERIODIC\4915\TITLEBAR.CPP +SAMPLES\MSDN\PERIODIC\4915\TITLEBAR.H +SAMPLES\MSDN\PERIODIC\4915\RES\SCRIBBLE.ICO +SAMPLES\MSDN\PERIODIC\4915\RES\SCRIBBLE.RC2 +SAMPLES\MSDN\PERIODIC\4915\RES\SCRIBDOC.ICO +SAMPLES\MSDN\PERIODIC\4915\RES\TOOLBAR.BMP +SAMPLES\MSDN\PERIODIC\4916\EMPLOYEE.CPP +SAMPLES\MSDN\PERIODIC\4916\EMPLOYEE.H +SAMPLES\MSDN\PERIODIC\4916\SERIALDO.CPP +SAMPLES\MSDN\PERIODIC\4917\DYNAMIC.CPP +SAMPLES\MSDN\PERIODIC\4917\DYNAMIC.H +SAMPLES\MSDN\PERIODIC\4917\MFC_PERS.CPP +SAMPLES\MSDN\PERIODIC\4917\MFC_PERS.H +SAMPLES\MSDN\PERIODIC\4917\PERSIST.CPP +SAMPLES\MSDN\PERIODIC\4917\PERSIST.H +SAMPLES\MSDN\PERIODIC\4917\PERSIST.MAK +SAMPLES\MSDN\PERIODIC\4917\PERSIST.MDP +SAMPLES\MSDN\PERIODIC\4917\TEST +SAMPLES\MSDN\PERIODIC\4917\TEST.CPP +SAMPLES\MSDN\PERIODIC\4952\COUNTER.C +SAMPLES\MSDN\PERIODIC\4952\COUNTER.EXE +SAMPLES\MSDN\PERIODIC\4952\COUNTER.MAK +SAMPLES\MSDN\PERIODIC\4952\COUNTER.MDP +SAMPLES\MSDN\PERIODIC\4952\COUNTER.RC +SAMPLES\MSDN\PERIODIC\4952\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4953\PROGRAM +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\BROKER +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\BROKER\BROKER.CLS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\BROKER\MODMAIN.BAS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\BROKER\REQUES~1.TLB +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\BROKER\REQUES~1.VBP +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\BROKER\REQUES~1.VBR +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\FIELD.CLS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\FIELDS.CLS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\FILTER.CLS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\FILTERS.CLS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\HEADER.CLS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\MESSAG~1.VBP +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\MODMAIN.BAS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\MESSAGE\REPORTBUILDMESSAGE.CLS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER\FRMREPORTER.FRM +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER\FRMREPORTER.FRX +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER\FRMREQUESTWIZARD.FRM +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER\FRMREQUESTWIZARD.FRX +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER\MODGENERALFUNCTIONS.BAS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER\MODMAIN.BAS +SAMPLES\MSDN\PERIODIC\4953\PROGRAM\REPORTER\REPORTER.VBP +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REPORT1 +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\CLSNOTIFY.CLS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\FRMMAIN.FRM +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\FRMMAIN.FRX +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\FRMREQUEST.FRM +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\FRMREQUEST.FRX +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\FRMVIEWER.FRM +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\FRMVIEWER.FRX +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\MODMAIN.BAS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\REPORT1.XLS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\CLIENT\REPORTCLIENT.VBP +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REPORT1\MODMAIN.BAS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REPORT1\REPORT.CLS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REPORT1\REPORT1.VBP +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\CLSEXCELREPORT.CLS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\CLSREPORT.CLS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\CLSREQUESTBROKER.CLS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\CLSREQUIREMENTS.CLS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\MODMAIN.BAS +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\REQUESTBROKER.TLB +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\REQUESTBROKER.VBP +SAMPLES\MSDN\PERIODIC\4954\PROTOTYP\REQUEST\REQUESTBROKER.VBR +SAMPLES\MSDN\PERIODIC\4955\COPENGLVIEW.CPP +SAMPLES\MSDN\PERIODIC\4955\COPENGLVIEW.H +SAMPLES\MSDN\PERIODIC\4955\MAINFRM.CPP +SAMPLES\MSDN\PERIODIC\4955\MAINFRM.H +SAMPLES\MSDN\PERIODIC\4955\MATRIXDIALOG.CPP +SAMPLES\MSDN\PERIODIC\4955\MATRIXDIALOG.H +SAMPLES\MSDN\PERIODIC\4955\MODELVIEW.APS +SAMPLES\MSDN\PERIODIC\4955\MODELVIEW.CLW +SAMPLES\MSDN\PERIODIC\4955\MODELVIEW.CPP +SAMPLES\MSDN\PERIODIC\4955\MODELVIEW.H +SAMPLES\MSDN\PERIODIC\4955\MODELVIEW.MAK +SAMPLES\MSDN\PERIODIC\4955\MODELVIEW.MDP +SAMPLES\MSDN\PERIODIC\4955\MODELVIEW.RC +SAMPLES\MSDN\PERIODIC\4955\MODELVIEWDOC.CPP +SAMPLES\MSDN\PERIODIC\4955\MODELVIEWDOC.H +SAMPLES\MSDN\PERIODIC\4955\MODELVIEWVIEW.CPP +SAMPLES\MSDN\PERIODIC\4955\MODELVIEWVIEW.H +SAMPLES\MSDN\PERIODIC\4955\OPENGLVIEW.CPP +SAMPLES\MSDN\PERIODIC\4955\README.TXT +SAMPLES\MSDN\PERIODIC\4955\RES +SAMPLES\MSDN\PERIODIC\4955\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4955\STDAFX.CPP +SAMPLES\MSDN\PERIODIC\4955\STDAFX.H +SAMPLES\MSDN\PERIODIC\4955\RES\MODELVIEW.ICO +SAMPLES\MSDN\PERIODIC\4955\RES\MODELVIEW.RC2 +SAMPLES\MSDN\PERIODIC\4955\RES\MODELVIEWDOC.ICO +SAMPLES\MSDN\PERIODIC\4957\ICON1.ICO +SAMPLES\MSDN\PERIODIC\4957\LISTVIEW.C +SAMPLES\MSDN\PERIODIC\4957\LISTVIEW.MAK +SAMPLES\MSDN\PERIODIC\4957\LISTVIEW.MDP +SAMPLES\MSDN\PERIODIC\4957\LISTVIEW.RC +SAMPLES\MSDN\PERIODIC\4957\LISTVIEW.VCP +SAMPLES\MSDN\PERIODIC\4957\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4958\DISK.ICO +SAMPLES\MSDN\PERIODIC\4958\RESOURCE.H +SAMPLES\MSDN\PERIODIC\4958\VLISTVW.C +SAMPLES\MSDN\PERIODIC\4958\VLISTVW.MAK +SAMPLES\MSDN\PERIODIC\4958\VLISTVW.MDP +SAMPLES\MSDN\PERIODIC\4958\VLISTVW.RC +SAMPLES\MSDN\PERIODIC\4958\WINDOWS.ICO +SAMPLES\MSDN\PERIODIC\4959\PSAPI.H +SAMPLES\MSDN\PERIODIC\4959\PSAPI.LIB +SAMPLES\MSDN\PERIODIC\4959\PSAPI1.BMP +SAMPLES\MSDN\PERIODIC\4959\PSAPI2.BMP +SAMPLES\MSDN\PERIODIC\4959\PSAPIHELPER.CPP +SAMPLES\MSDN\PERIODIC\4959\PSAPIHELPER.H +SAMPLES\MSDN\PERIODIC\4959\PSAPIWORKINGSETDELTA.CPP +SAMPLES\MSDN\PERIODIC\4959\PSAPIWORKINGSETDELTA.H +SAMPLES\MSDN\PERIODIC\4959\PSAPIWORKINGSETDEMO.CPP +SAMPLES\MSDN\PERIODIC\4959\PSAPIWORKINGSETDEMO.EXE +SAMPLES\MSDN\PERIODIC\4959\PSAPIWORKINGSETDEMO.H +SAMPLES\MSDN\PERIODIC\4959\PSAPIWORKINGSETDEMO.MS +SAMPLES\MSDN\PERIODIC\4959\PSAPIWORKINGSETDEMO.RC +SAMPLES\MSDN\PERIODIC\4960\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4960\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4960\SCRIBDOC.CPP +SAMPLES\MSDN\PERIODIC\4960\SCRIBDOC.H +SAMPLES\MSDN\PERIODIC\4960\SCRIBVW.CPP +SAMPLES\MSDN\PERIODIC\4960\SCRIBVW.H +SAMPLES\MSDN\PERIODIC\4961\SCRIBBLE.CPP +SAMPLES\MSDN\PERIODIC\4961\SCRIBBLE.H +SAMPLES\MSDN\PERIODIC\4961\SCRIBDOC.CPP +SAMPLES\MSDN\PERIODIC\4961\SCRIBDOC.H +SAMPLES\MSDN\PERIODIC\4961\SCRIBVW.CPP +SAMPLES\MSDN\PERIODIC\4961\SCRIBVW.H +SAMPLES\MSDN\PERIODIC\5187\01DEWITA.PRG +SAMPLES\MSDN\TECHART\100 +SAMPLES\MSDN\TECHART\101 +SAMPLES\MSDN\TECHART\102 +SAMPLES\MSDN\TECHART\103 +SAMPLES\MSDN\TECHART\104 +SAMPLES\MSDN\TECHART\1203 +SAMPLES\MSDN\TECHART\131 +SAMPLES\MSDN\TECHART\1319 +SAMPLES\MSDN\TECHART\1407 +SAMPLES\MSDN\TECHART\1442 +SAMPLES\MSDN\TECHART\1443 +SAMPLES\MSDN\TECHART\1508 +SAMPLES\MSDN\TECHART\1509 +SAMPLES\MSDN\TECHART\1566 +SAMPLES\MSDN\TECHART\1567 +SAMPLES\MSDN\TECHART\1619 +SAMPLES\MSDN\TECHART\167 +SAMPLES\MSDN\TECHART\168 +SAMPLES\MSDN\TECHART\174 +SAMPLES\MSDN\TECHART\1762 +SAMPLES\MSDN\TECHART\1804 +SAMPLES\MSDN\TECHART\1806 +SAMPLES\MSDN\TECHART\1808 +SAMPLES\MSDN\TECHART\1817 +SAMPLES\MSDN\TECHART\1818 +SAMPLES\MSDN\TECHART\1901 +SAMPLES\MSDN\TECHART\1902 +SAMPLES\MSDN\TECHART\1918 +SAMPLES\MSDN\TECHART\2103 +SAMPLES\MSDN\TECHART\2112 +SAMPLES\MSDN\TECHART\2157 +SAMPLES\MSDN\TECHART\2160 +SAMPLES\MSDN\TECHART\2305 +SAMPLES\MSDN\TECHART\2306 +SAMPLES\MSDN\TECHART\2307 +SAMPLES\MSDN\TECHART\2308 +SAMPLES\MSDN\TECHART\2309 +SAMPLES\MSDN\TECHART\2310 +SAMPLES\MSDN\TECHART\2311 +SAMPLES\MSDN\TECHART\2312 +SAMPLES\MSDN\TECHART\2313 +SAMPLES\MSDN\TECHART\2314 +SAMPLES\MSDN\TECHART\2329 +SAMPLES\MSDN\TECHART\2393 +SAMPLES\MSDN\TECHART\2459 +SAMPLES\MSDN\TECHART\2531 +SAMPLES\MSDN\TECHART\2540 +SAMPLES\MSDN\TECHART\261 +SAMPLES\MSDN\TECHART\262 +SAMPLES\MSDN\TECHART\263 +SAMPLES\MSDN\TECHART\264 +SAMPLES\MSDN\TECHART\265 +SAMPLES\MSDN\TECHART\266 +SAMPLES\MSDN\TECHART\267 +SAMPLES\MSDN\TECHART\268 +SAMPLES\MSDN\TECHART\270 +SAMPLES\MSDN\TECHART\2701 +SAMPLES\MSDN\TECHART\271 +SAMPLES\MSDN\TECHART\272 +SAMPLES\MSDN\TECHART\273 +SAMPLES\MSDN\TECHART\274 +SAMPLES\MSDN\TECHART\275 +SAMPLES\MSDN\TECHART\276 +SAMPLES\MSDN\TECHART\277 +SAMPLES\MSDN\TECHART\285 +SAMPLES\MSDN\TECHART\287 +SAMPLES\MSDN\TECHART\2885 +SAMPLES\MSDN\TECHART\2897 +SAMPLES\MSDN\TECHART\2898 +SAMPLES\MSDN\TECHART\2899 +SAMPLES\MSDN\TECHART\2900 +SAMPLES\MSDN\TECHART\2911 +SAMPLES\MSDN\TECHART\2935 +SAMPLES\MSDN\TECHART\2937 +SAMPLES\MSDN\TECHART\2940 +SAMPLES\MSDN\TECHART\2941 +SAMPLES\MSDN\TECHART\3000 +SAMPLES\MSDN\TECHART\3006 +SAMPLES\MSDN\TECHART\3014 +SAMPLES\MSDN\TECHART\3015 +SAMPLES\MSDN\TECHART\3016 +SAMPLES\MSDN\TECHART\3017 +SAMPLES\MSDN\TECHART\3018 +SAMPLES\MSDN\TECHART\3044 +SAMPLES\MSDN\TECHART\3060 +SAMPLES\MSDN\TECHART\3141 +SAMPLES\MSDN\TECHART\3175 +SAMPLES\MSDN\TECHART\3179 +SAMPLES\MSDN\TECHART\3183 +SAMPLES\MSDN\TECHART\3185 +SAMPLES\MSDN\TECHART\3188 +SAMPLES\MSDN\TECHART\3189 +SAMPLES\MSDN\TECHART\3190 +SAMPLES\MSDN\TECHART\3192 +SAMPLES\MSDN\TECHART\3194 +SAMPLES\MSDN\TECHART\3196 +SAMPLES\MSDN\TECHART\3197 +SAMPLES\MSDN\TECHART\3203 +SAMPLES\MSDN\TECHART\3205 +SAMPLES\MSDN\TECHART\3215 +SAMPLES\MSDN\TECHART\3216 +SAMPLES\MSDN\TECHART\3222 +SAMPLES\MSDN\TECHART\3223 +SAMPLES\MSDN\TECHART\3224 +SAMPLES\MSDN\TECHART\3226 +SAMPLES\MSDN\TECHART\3228 +SAMPLES\MSDN\TECHART\3268 +SAMPLES\MSDN\TECHART\3270 +SAMPLES\MSDN\TECHART\3271 +SAMPLES\MSDN\TECHART\3273 +SAMPLES\MSDN\TECHART\3274 +SAMPLES\MSDN\TECHART\3301 +SAMPLES\MSDN\TECHART\3310 +SAMPLES\MSDN\TECHART\3313 +SAMPLES\MSDN\TECHART\4055 +SAMPLES\MSDN\TECHART\4056 +SAMPLES\MSDN\TECHART\4057 +SAMPLES\MSDN\TECHART\4058 +SAMPLES\MSDN\TECHART\4059 +SAMPLES\MSDN\TECHART\4060 +SAMPLES\MSDN\TECHART\4081 +SAMPLES\MSDN\TECHART\4082 +SAMPLES\MSDN\TECHART\4083 +SAMPLES\MSDN\TECHART\4084 +SAMPLES\MSDN\TECHART\4224 +SAMPLES\MSDN\TECHART\4226 +SAMPLES\MSDN\TECHART\4228 +SAMPLES\MSDN\TECHART\4230 +SAMPLES\MSDN\TECHART\4232 +SAMPLES\MSDN\TECHART\4234 +SAMPLES\MSDN\TECHART\4238 +SAMPLES\MSDN\TECHART\4241 +SAMPLES\MSDN\TECHART\4242 +SAMPLES\MSDN\TECHART\4244 +SAMPLES\MSDN\TECHART\4245 +SAMPLES\MSDN\TECHART\4246 +SAMPLES\MSDN\TECHART\4247 +SAMPLES\MSDN\TECHART\4249 +SAMPLES\MSDN\TECHART\4301 +SAMPLES\MSDN\TECHART\4322 +SAMPLES\MSDN\TECHART\4324 +SAMPLES\MSDN\TECHART\4329 +SAMPLES\MSDN\TECHART\4342 +SAMPLES\MSDN\TECHART\4343 +SAMPLES\MSDN\TECHART\4346 +SAMPLES\MSDN\TECHART\4347 +SAMPLES\MSDN\TECHART\4382 +SAMPLES\MSDN\TECHART\4409 +SAMPLES\MSDN\TECHART\4410 +SAMPLES\MSDN\TECHART\4413 +SAMPLES\MSDN\TECHART\4417 +SAMPLES\MSDN\TECHART\4419 +SAMPLES\MSDN\TECHART\4424 +SAMPLES\MSDN\TECHART\4426 +SAMPLES\MSDN\TECHART\4427 +SAMPLES\MSDN\TECHART\4430 +SAMPLES\MSDN\TECHART\4432 +SAMPLES\MSDN\TECHART\4433 +SAMPLES\MSDN\TECHART\4434 +SAMPLES\MSDN\TECHART\4435 +SAMPLES\MSDN\TECHART\4436 +SAMPLES\MSDN\TECHART\4438 +SAMPLES\MSDN\TECHART\4440 +SAMPLES\MSDN\TECHART\4442 +SAMPLES\MSDN\TECHART\4444 +SAMPLES\MSDN\TECHART\4446 +SAMPLES\MSDN\TECHART\4448 +SAMPLES\MSDN\TECHART\4450 +SAMPLES\MSDN\TECHART\4452 +SAMPLES\MSDN\TECHART\4454 +SAMPLES\MSDN\TECHART\4456 +SAMPLES\MSDN\TECHART\4458 +SAMPLES\MSDN\TECHART\4460 +SAMPLES\MSDN\TECHART\4462 +SAMPLES\MSDN\TECHART\4464 +SAMPLES\MSDN\TECHART\4466 +SAMPLES\MSDN\TECHART\4468 +SAMPLES\MSDN\TECHART\4469 +SAMPLES\MSDN\TECHART\4471 +SAMPLES\MSDN\TECHART\4473 +SAMPLES\MSDN\TECHART\4475 +SAMPLES\MSDN\TECHART\4477 +SAMPLES\MSDN\TECHART\4479 +SAMPLES\MSDN\TECHART\4481 +SAMPLES\MSDN\TECHART\4483 +SAMPLES\MSDN\TECHART\4485 +SAMPLES\MSDN\TECHART\4486 +SAMPLES\MSDN\TECHART\4487 +SAMPLES\MSDN\TECHART\4490 +SAMPLES\MSDN\TECHART\4493 +SAMPLES\MSDN\TECHART\4499 +SAMPLES\MSDN\TECHART\4501 +SAMPLES\MSDN\TECHART\4522 +SAMPLES\MSDN\TECHART\4524 +SAMPLES\MSDN\TECHART\4525 +SAMPLES\MSDN\TECHART\4526 +SAMPLES\MSDN\TECHART\4527 +SAMPLES\MSDN\TECHART\4528 +SAMPLES\MSDN\TECHART\4529 +SAMPLES\MSDN\TECHART\4530 +SAMPLES\MSDN\TECHART\4531 +SAMPLES\MSDN\TECHART\4532 +SAMPLES\MSDN\TECHART\4535 +SAMPLES\MSDN\TECHART\4536 +SAMPLES\MSDN\TECHART\4537 +SAMPLES\MSDN\TECHART\4538 +SAMPLES\MSDN\TECHART\4539 +SAMPLES\MSDN\TECHART\4540 +SAMPLES\MSDN\TECHART\4541 +SAMPLES\MSDN\TECHART\4542 +SAMPLES\MSDN\TECHART\4543 +SAMPLES\MSDN\TECHART\4559 +SAMPLES\MSDN\TECHART\4561 +SAMPLES\MSDN\TECHART\4577 +SAMPLES\MSDN\TECHART\4579 +SAMPLES\MSDN\TECHART\4581 +SAMPLES\MSDN\TECHART\4583 +SAMPLES\MSDN\TECHART\4586 +SAMPLES\MSDN\TECHART\4587 +SAMPLES\MSDN\TECHART\4588 +SAMPLES\MSDN\TECHART\4589 +SAMPLES\MSDN\TECHART\4590 +SAMPLES\MSDN\TECHART\4891 +SAMPLES\MSDN\TECHART\4892 +SAMPLES\MSDN\TECHART\4894 +SAMPLES\MSDN\TECHART\4895 +SAMPLES\MSDN\TECHART\4918 +SAMPLES\MSDN\TECHART\4920 +SAMPLES\MSDN\TECHART\4922 +SAMPLES\MSDN\TECHART\4924 +SAMPLES\MSDN\TECHART\4925 +SAMPLES\MSDN\TECHART\4938 +SAMPLES\MSDN\TECHART\4939 +SAMPLES\MSDN\TECHART\4940 +SAMPLES\MSDN\TECHART\4941 +SAMPLES\MSDN\TECHART\4942 +SAMPLES\MSDN\TECHART\4943 +SAMPLES\MSDN\TECHART\4944 +SAMPLES\MSDN\TECHART\4948 +SAMPLES\MSDN\TECHART\4949 +SAMPLES\MSDN\TECHART\4994 +SAMPLES\MSDN\TECHART\4995 +SAMPLES\MSDN\TECHART\4996 +SAMPLES\MSDN\TECHART\4997 +SAMPLES\MSDN\TECHART\4998 +SAMPLES\MSDN\TECHART\4999 +SAMPLES\MSDN\TECHART\5000 +SAMPLES\MSDN\TECHART\5001 +SAMPLES\MSDN\TECHART\5002 +SAMPLES\MSDN\TECHART\5003 +SAMPLES\MSDN\TECHART\5004 +SAMPLES\MSDN\TECHART\5005 +SAMPLES\MSDN\TECHART\5006 +SAMPLES\MSDN\TECHART\5007 +SAMPLES\MSDN\TECHART\5008 +SAMPLES\MSDN\TECHART\5038 +SAMPLES\MSDN\TECHART\5045 +SAMPLES\MSDN\TECHART\5046 +SAMPLES\MSDN\TECHART\5047 +SAMPLES\MSDN\TECHART\5048 +SAMPLES\MSDN\TECHART\5049 +SAMPLES\MSDN\TECHART\5050 +SAMPLES\MSDN\TECHART\5051 +SAMPLES\MSDN\TECHART\5052 +SAMPLES\MSDN\TECHART\5053 +SAMPLES\MSDN\TECHART\5054 +SAMPLES\MSDN\TECHART\5055 +SAMPLES\MSDN\TECHART\5058 +SAMPLES\MSDN\TECHART\5059 +SAMPLES\MSDN\TECHART\5140 +SAMPLES\MSDN\TECHART\5141 +SAMPLES\MSDN\TECHART\5142 +SAMPLES\MSDN\TECHART\5143 +SAMPLES\MSDN\TECHART\5146 +SAMPLES\MSDN\TECHART\5147 +SAMPLES\MSDN\TECHART\5148 +SAMPLES\MSDN\TECHART\5149 +SAMPLES\MSDN\TECHART\5150 +SAMPLES\MSDN\TECHART\5151 +SAMPLES\MSDN\TECHART\5153 +SAMPLES\MSDN\TECHART\5160 +SAMPLES\MSDN\TECHART\5161 +SAMPLES\MSDN\TECHART\5162 +SAMPLES\MSDN\TECHART\5163 +SAMPLES\MSDN\TECHART\5164 +SAMPLES\MSDN\TECHART\5165 +SAMPLES\MSDN\TECHART\5169 +SAMPLES\MSDN\TECHART\5171 +SAMPLES\MSDN\TECHART\5172 +SAMPLES\MSDN\TECHART\5173 +SAMPLES\MSDN\TECHART\5174 +SAMPLES\MSDN\TECHART\5175 +SAMPLES\MSDN\TECHART\5176 +SAMPLES\MSDN\TECHART\5177 +SAMPLES\MSDN\TECHART\5178 +SAMPLES\MSDN\TECHART\5179 +SAMPLES\MSDN\TECHART\5180 +SAMPLES\MSDN\TECHART\5181 +SAMPLES\MSDN\TECHART\5182 +SAMPLES\MSDN\TECHART\5183 +SAMPLES\MSDN\TECHART\5184 +SAMPLES\MSDN\TECHART\5185 +SAMPLES\MSDN\TECHART\5186 +SAMPLES\MSDN\TECHART\5187 +SAMPLES\MSDN\TECHART\72 +SAMPLES\MSDN\TECHART\100\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\100\MAKEFILE +SAMPLES\MSDN\TECHART\100\OWNER.CPP +SAMPLES\MSDN\TECHART\100\OWNER.DEF +SAMPLES\MSDN\TECHART\100\OWNER.EXE +SAMPLES\MSDN\TECHART\100\OWNER.ICO +SAMPLES\MSDN\TECHART\100\OWNER.RC +SAMPLES\MSDN\TECHART\100\OWNERDLL.CPP +SAMPLES\MSDN\TECHART\100\OWNERDLL.DEF +SAMPLES\MSDN\TECHART\100\OWNERDLL.DLL +SAMPLES\MSDN\TECHART\100\OWNERDLL.H +SAMPLES\MSDN\TECHART\101\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\101\MAKEFILE +SAMPLES\MSDN\TECHART\101\NEWOPR.CPP +SAMPLES\MSDN\TECHART\101\NEWOPR.DEF +SAMPLES\MSDN\TECHART\101\NEWOPR.DLG +SAMPLES\MSDN\TECHART\101\NEWOPR.EXE +SAMPLES\MSDN\TECHART\101\NEWOPR.H +SAMPLES\MSDN\TECHART\101\NEWOPR.HDR +SAMPLES\MSDN\TECHART\101\NEWOPR.ICO +SAMPLES\MSDN\TECHART\101\NEWOPR.RC +SAMPLES\MSDN\TECHART\101\RESOURCE.H +SAMPLES\MSDN\TECHART\102\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\102\MAKEFILE +SAMPLES\MSDN\TECHART\102\RESOURCE.H +SAMPLES\MSDN\TECHART\102\SMART.C +SAMPLES\MSDN\TECHART\102\SMART.DEF +SAMPLES\MSDN\TECHART\102\SMART.DLG +SAMPLES\MSDN\TECHART\102\SMART.EXE +SAMPLES\MSDN\TECHART\102\SMART.H +SAMPLES\MSDN\TECHART\102\SMART.HLP +SAMPLES\MSDN\TECHART\102\SMART.ICO +SAMPLES\MSDN\TECHART\102\SMART.RC +SAMPLES\MSDN\TECHART\102\SMART0.ICO +SAMPLES\MSDN\TECHART\102\SMARTDLL.C +SAMPLES\MSDN\TECHART\102\SMARTDLL.DEF +SAMPLES\MSDN\TECHART\102\SMARTDLL.DLL +SAMPLES\MSDN\TECHART\103\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\103\CPROG1.CPP +SAMPLES\MSDN\TECHART\103\CPROG1.DEF +SAMPLES\MSDN\TECHART\103\CPROG1.EXE +SAMPLES\MSDN\TECHART\103\CPROG2.CPP +SAMPLES\MSDN\TECHART\103\CPROG2.DEF +SAMPLES\MSDN\TECHART\103\CPROG3.CPP +SAMPLES\MSDN\TECHART\103\CPROG3.DEF +SAMPLES\MSDN\TECHART\103\CPROG3.EXE +SAMPLES\MSDN\TECHART\103\CPROG4.CPP +SAMPLES\MSDN\TECHART\103\CPROG4.DEF +SAMPLES\MSDN\TECHART\103\CPROG4.EXE +SAMPLES\MSDN\TECHART\103\CPROG5.CPP +SAMPLES\MSDN\TECHART\103\CPROG5.DEF +SAMPLES\MSDN\TECHART\103\CPROG5.EXE +SAMPLES\MSDN\TECHART\103\CPROG6.CPP +SAMPLES\MSDN\TECHART\103\CPROG6.DEF +SAMPLES\MSDN\TECHART\103\CPROG6.EXE +SAMPLES\MSDN\TECHART\103\CTIMER.CPP +SAMPLES\MSDN\TECHART\103\CTIMER.DEF +SAMPLES\MSDN\TECHART\103\CTIMER.EXE +SAMPLES\MSDN\TECHART\103\CTIMER.H +SAMPLES\MSDN\TECHART\103\MAKE1 +SAMPLES\MSDN\TECHART\103\MAKE2 +SAMPLES\MSDN\TECHART\103\MAKE3 +SAMPLES\MSDN\TECHART\103\MAKE4 +SAMPLES\MSDN\TECHART\103\MAKE5 +SAMPLES\MSDN\TECHART\103\MAKE6 +SAMPLES\MSDN\TECHART\103\MAKEFILE +SAMPLES\MSDN\TECHART\103\TMAKE +SAMPLES\MSDN\TECHART\104\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\104\BACK.C +SAMPLES\MSDN\TECHART\104\BACK.DEF +SAMPLES\MSDN\TECHART\104\BACK.EXE +SAMPLES\MSDN\TECHART\104\MKDOS.BAT +SAMPLES\MSDN\TECHART\104\MKWIN.BAT +SAMPLES\MSDN\TECHART\104\TRACE.C +SAMPLES\MSDN\TECHART\104\TRACE.DEF +SAMPLES\MSDN\TECHART\104\TRACE.DLL +SAMPLES\MSDN\TECHART\104\TRACE.H +SAMPLES\MSDN\TECHART\104\TRACE.LIB +SAMPLES\MSDN\TECHART\1203\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1203\APP.DEF +SAMPLES\MSDN\TECHART\1203\APP.ICO +SAMPLES\MSDN\TECHART\1203\APP.RC +SAMPLES\MSDN\TECHART\1203\BKGND.C +SAMPLES\MSDN\TECHART\1203\CMACRO32.INC +SAMPLES\MSDN\TECHART\1203\D.BAT +SAMPLES\MSDN\TECHART\1203\DEBUG.C +SAMPLES\MSDN\TECHART\1203\DIALOGS.DLG +SAMPLES\MSDN\TECHART\1203\DIALOGS.H +SAMPLES\MSDN\TECHART\1203\DIB.C +SAMPLES\MSDN\TECHART\1203\DIB.DRV +SAMPLES\MSDN\TECHART\1203\DRAW.C +SAMPLES\MSDN\TECHART\1203\FAST16.ASM +SAMPLES\MSDN\TECHART\1203\FAST32.ASM +SAMPLES\MSDN\TECHART\1203\FILE.C +SAMPLES\MSDN\TECHART\1203\GLOBAL.H +SAMPLES\MSDN\TECHART\1203\HELP.C +SAMPLES\MSDN\TECHART\1203\HELP.HPJ +SAMPLES\MSDN\TECHART\1203\HELP.RTF +SAMPLES\MSDN\TECHART\1203\INIT.C +SAMPLES\MSDN\TECHART\1203\MAIN.C +SAMPLES\MSDN\TECHART\1203\MAKEFILE +SAMPLES\MSDN\TECHART\1203\NOTES.TXT +SAMPLES\MSDN\TECHART\1203\PALETTE.C +SAMPLES\MSDN\TECHART\1203\PPDBG.ASM +SAMPLES\MSDN\TECHART\1203\PRINT.C +SAMPLES\MSDN\TECHART\1203\SCENES +SAMPLES\MSDN\TECHART\1203\SPRITE.C +SAMPLES\MSDN\TECHART\1203\SPRITES.EXE +SAMPLES\MSDN\TECHART\1203\SPRITES.HLP +SAMPLES\MSDN\TECHART\1203\SPRITES.INI +SAMPLES\MSDN\TECHART\1203\SCENES\BIGBALON.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\BIGCLOUD.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\BKGND.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\CLOUD.INI +SAMPLES\MSDN\TECHART\1203\SCENES\CLOUD16.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\CLOUDS.INI +SAMPLES\MSDN\TECHART\1203\SCENES\COMPUTER.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\DOG.INI +SAMPLES\MSDN\TECHART\1203\SCENES\DONUT.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\DUCK1.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\DUCK2.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\DUCK3.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\DUCK4.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\FENCE.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\GARDEN.INI +SAMPLES\MSDN\TECHART\1203\SCENES\GRASS.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\HERMAN.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\MOON.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\NELL.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\OLIVIA.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\PNKFLWR.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\REDFLWR.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\RLEFENCE.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\RLEGRASS.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\SMNELL.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\SMOLIVIA.DIB +SAMPLES\MSDN\TECHART\1203\SCENES\SUN.DIB +SAMPLES\MSDN\TECHART\131\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\131\APP.C +SAMPLES\MSDN\TECHART\131\APP.H +SAMPLES\MSDN\TECHART\131\CLIENT.C +SAMPLES\MSDN\TECHART\131\CLIENT.H +SAMPLES\MSDN\TECHART\131\FRAME.C +SAMPLES\MSDN\TECHART\131\FRAME.H +SAMPLES\MSDN\TECHART\131\MAKE1 +SAMPLES\MSDN\TECHART\131\MAKE2 +SAMPLES\MSDN\TECHART\131\MAKE3 +SAMPLES\MSDN\TECHART\131\MAKE4 +SAMPLES\MSDN\TECHART\131\MAKE5 +SAMPLES\MSDN\TECHART\131\MAKEFILE +SAMPLES\MSDN\TECHART\131\PICKER.C +SAMPLES\MSDN\TECHART\131\PICKER.DEF +SAMPLES\MSDN\TECHART\131\PICKER.DLG +SAMPLES\MSDN\TECHART\131\PICKER.DLL +SAMPLES\MSDN\TECHART\131\PICKER.H +SAMPLES\MSDN\TECHART\131\PICKER.RC +SAMPLES\MSDN\TECHART\131\PICKER5.DEF +SAMPLES\MSDN\TECHART\131\PICK_DLG.H +SAMPLES\MSDN\TECHART\131\PICK_DLL.C +SAMPLES\MSDN\TECHART\131\PICK_DLL.H +SAMPLES\MSDN\TECHART\131\PICK_MEM.C +SAMPLES\MSDN\TECHART\131\PICK_MEM.H +SAMPLES\MSDN\TECHART\131\RESOURCE.H +SAMPLES\MSDN\TECHART\131\WCLIENT.C +SAMPLES\MSDN\TECHART\131\WFRAME.C +SAMPLES\MSDN\TECHART\131\ZUSAMMEN.C +SAMPLES\MSDN\TECHART\131\ZUSAMMEN.DEF +SAMPLES\MSDN\TECHART\131\ZUSAMMEN.EXE +SAMPLES\MSDN\TECHART\131\ZUSAMMEN.H +SAMPLES\MSDN\TECHART\131\ZUSAMMEN.ICO +SAMPLES\MSDN\TECHART\131\ZUSAMMEN.RC +SAMPLES\MSDN\TECHART\1319\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1319\APP.DEF +SAMPLES\MSDN\TECHART\1319\APP.ICO +SAMPLES\MSDN\TECHART\1319\APP.RC +SAMPLES\MSDN\TECHART\1319\FLICKER.C +SAMPLES\MSDN\TECHART\1319\FLICKER.EXE +SAMPLES\MSDN\TECHART\1319\GLOBAL.H +SAMPLES\MSDN\TECHART\1319\INIT.C +SAMPLES\MSDN\TECHART\1319\MAIN.C +SAMPLES\MSDN\TECHART\1319\MAKEFILE +SAMPLES\MSDN\TECHART\1319\NOFLICK.C +SAMPLES\MSDN\TECHART\1407\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1407\MAKEFILE +SAMPLES\MSDN\TECHART\1407\PDEBUG.C +SAMPLES\MSDN\TECHART\1407\PEFILE.C +SAMPLES\MSDN\TECHART\1407\PEFILE.DEF +SAMPLES\MSDN\TECHART\1407\PEFILE.H +SAMPLES\MSDN\TECHART\1407\PEFILE.RC +SAMPLES\MSDN\TECHART\1407\PROBE.C +SAMPLES\MSDN\TECHART\1407\PROBE.DEF +SAMPLES\MSDN\TECHART\1407\PROBE.RC +SAMPLES\MSDN\TECHART\1407\PROCSTAT.ICO +SAMPLES\MSDN\TECHART\1407\PSTAT.C +SAMPLES\MSDN\TECHART\1407\PVIEW.C +SAMPLES\MSDN\TECHART\1407\PWALK.C +SAMPLES\MSDN\TECHART\1407\PWALK.H +SAMPLES\MSDN\TECHART\1407\PWALK.ICO +SAMPLES\MSDN\TECHART\1407\PWALK.RC +SAMPLES\MSDN\TECHART\1407\PWALKIO.C +SAMPLES\MSDN\TECHART\1407\SYSSTAT.ICO +SAMPLES\MSDN\TECHART\1442\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1442\APP.DEF +SAMPLES\MSDN\TECHART\1442\APP.ICO +SAMPLES\MSDN\TECHART\1442\APP.RC +SAMPLES\MSDN\TECHART\1442\CLIP.C +SAMPLES\MSDN\TECHART\1442\DEBUG.C +SAMPLES\MSDN\TECHART\1442\DEMO.TXT +SAMPLES\MSDN\TECHART\1442\DIALOGS.DLG +SAMPLES\MSDN\TECHART\1442\DIALOGS.H +SAMPLES\MSDN\TECHART\1442\FILE.C +SAMPLES\MSDN\TECHART\1442\GLOBAL.H +SAMPLES\MSDN\TECHART\1442\HELP.C +SAMPLES\MSDN\TECHART\1442\HELP.DOC +SAMPLES\MSDN\TECHART\1442\HELP.HPJ +SAMPLES\MSDN\TECHART\1442\HELP.RTF +SAMPLES\MSDN\TECHART\1442\INIT.C +SAMPLES\MSDN\TECHART\1442\MAIN.C +SAMPLES\MSDN\TECHART\1442\MAKEFILE +SAMPLES\MSDN\TECHART\1442\OBJECT.C +SAMPLES\MSDN\TECHART\1442\ONEBOX.TBX +SAMPLES\MSDN\TECHART\1442\PRINT.C +SAMPLES\MSDN\TECHART\1442\TEXTBOX.EXE +SAMPLES\MSDN\TECHART\1442\TEXTBOX.HLP +SAMPLES\MSDN\TECHART\1443\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1443\APP.DEF +SAMPLES\MSDN\TECHART\1443\APP.ICO +SAMPLES\MSDN\TECHART\1443\APP.RC +SAMPLES\MSDN\TECHART\1443\CLIP.C +SAMPLES\MSDN\TECHART\1443\DEBUG.C +SAMPLES\MSDN\TECHART\1443\DEMO.TXT +SAMPLES\MSDN\TECHART\1443\DIALOGS.DLG +SAMPLES\MSDN\TECHART\1443\DIALOGS.H +SAMPLES\MSDN\TECHART\1443\FILE.C +SAMPLES\MSDN\TECHART\1443\GLOBAL.H +SAMPLES\MSDN\TECHART\1443\HELP.C +SAMPLES\MSDN\TECHART\1443\HELP.DOC +SAMPLES\MSDN\TECHART\1443\HELP.HPJ +SAMPLES\MSDN\TECHART\1443\HELP.RTF +SAMPLES\MSDN\TECHART\1443\INIT.C +SAMPLES\MSDN\TECHART\1443\MAIN.C +SAMPLES\MSDN\TECHART\1443\MAKEFILE +SAMPLES\MSDN\TECHART\1443\OBJECT.C +SAMPLES\MSDN\TECHART\1443\ONEBOX.TBS +SAMPLES\MSDN\TECHART\1443\ONEBOX.TBX +SAMPLES\MSDN\TECHART\1443\PRINT.C +SAMPLES\MSDN\TECHART\1443\TBSS.EXE +SAMPLES\MSDN\TECHART\1443\TBSS.HLP +SAMPLES\MSDN\TECHART\1508\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1508\PEFILE.C +SAMPLES\MSDN\TECHART\1508\PEFILE.DEF +SAMPLES\MSDN\TECHART\1508\PEFILE.DLL +SAMPLES\MSDN\TECHART\1508\PEFILE.H +SAMPLES\MSDN\TECHART\1508\PEFILE.RC +SAMPLES\MSDN\TECHART\1509\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1509\EXEVIEW.C +SAMPLES\MSDN\TECHART\1509\EXEVIEW.DEF +SAMPLES\MSDN\TECHART\1509\EXEVIEW.EXE +SAMPLES\MSDN\TECHART\1509\EXEVIEW.H +SAMPLES\MSDN\TECHART\1509\EXEVIEW.ICO +SAMPLES\MSDN\TECHART\1509\EXEVIEW.RC +SAMPLES\MSDN\TECHART\1509\MAKEFILE +SAMPLES\MSDN\TECHART\1509\PEFILE.DLL +SAMPLES\MSDN\TECHART\1509\VIEWIO.C +SAMPLES\MSDN\TECHART\1509\VIEWMEM.C +SAMPLES\MSDN\TECHART\1566\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1566\DLLSTUFF.C +SAMPLES\MSDN\TECHART\1566\HOOKS32.C +SAMPLES\MSDN\TECHART\1566\HOOKS32.DEF +SAMPLES\MSDN\TECHART\1566\HOOKS32.EXE +SAMPLES\MSDN\TECHART\1566\HOOKS32.H +SAMPLES\MSDN\TECHART\1566\HOOKS32.ICO +SAMPLES\MSDN\TECHART\1566\HOOKS32.RBJ +SAMPLES\MSDN\TECHART\1566\HOOKS32.RC +SAMPLES\MSDN\TECHART\1566\HOOKSDLL.C +SAMPLES\MSDN\TECHART\1566\HOOKSDLL.DEF +SAMPLES\MSDN\TECHART\1566\HOOKSDLL.DLL +SAMPLES\MSDN\TECHART\1566\HOOKSDLL.EXP +SAMPLES\MSDN\TECHART\1566\HOOKSDLL.LIB +SAMPLES\MSDN\TECHART\1566\HOOKSDLL.RBJ +SAMPLES\MSDN\TECHART\1566\HOOKSDLL.RC +SAMPLES\MSDN\TECHART\1566\MAKEFILE +SAMPLES\MSDN\TECHART\1566\MESSAGES.RC +SAMPLES\MSDN\TECHART\1567\APP.DEF +SAMPLES\MSDN\TECHART\1567\APP.ICO +SAMPLES\MSDN\TECHART\1567\APP.RC +SAMPLES\MSDN\TECHART\1567\BUCKET.EXE +SAMPLES\MSDN\TECHART\1567\BUCKET.HLP +SAMPLES\MSDN\TECHART\1567\BUGS.TXT +SAMPLES\MSDN\TECHART\1567\CLIP.C +SAMPLES\MSDN\TECHART\1567\DATAFORM.C +SAMPLES\MSDN\TECHART\1567\DEBUG.C +SAMPLES\MSDN\TECHART\1567\DIALOGS.DLG +SAMPLES\MSDN\TECHART\1567\DIALOGS.H +SAMPLES\MSDN\TECHART\1567\ERROR.C +SAMPLES\MSDN\TECHART\1567\GLOBAL.H +SAMPLES\MSDN\TECHART\1567\HELP.C +SAMPLES\MSDN\TECHART\1567\HELP.DOC +SAMPLES\MSDN\TECHART\1567\HELP.HPJ +SAMPLES\MSDN\TECHART\1567\HELP.RTF +SAMPLES\MSDN\TECHART\1567\IFACE.C +SAMPLES\MSDN\TECHART\1567\INIT.C +SAMPLES\MSDN\TECHART\1567\MAIN.C +SAMPLES\MSDN\TECHART\1567\MAKEFILE +SAMPLES\MSDN\TECHART\1567\OBJECT.C +SAMPLES\MSDN\TECHART\1567\OUTLUI.DLL +SAMPLES\MSDN\TECHART\1567\PRINT.C +SAMPLES\MSDN\TECHART\1567\STORE.C +SAMPLES\MSDN\TECHART\1567\_A.BKT +SAMPLES\MSDN\TECHART\1619\BALLON.CLP +SAMPLES\MSDN\TECHART\1619\BALLON32.CLP +SAMPLES\MSDN\TECHART\1619\BIRD.WMF +SAMPLES\MSDN\TECHART\1619\BIRD32.EMF +SAMPLES\MSDN\TECHART\1619\CMNDLG.C +SAMPLES\MSDN\TECHART\1619\DLGPROC.C +SAMPLES\MSDN\TECHART\1619\EMFDCODE.EXE +SAMPLES\MSDN\TECHART\1619\EMFDCODE.MAK +SAMPLES\MSDN\TECHART\1619\MFDCOD32.C +SAMPLES\MSDN\TECHART\1619\MFDCOD32.DEF +SAMPLES\MSDN\TECHART\1619\MFDCOD32.DLG +SAMPLES\MSDN\TECHART\1619\MFDCOD32.H +SAMPLES\MSDN\TECHART\1619\MFDCOD32.RC +SAMPLES\MSDN\TECHART\1619\RESOURCE.H +SAMPLES\MSDN\TECHART\1619\WMF.ICO +SAMPLES\MSDN\TECHART\1619\WMFMETA.C +SAMPLES\MSDN\TECHART\1619\WMFPRINT.C +SAMPLES\MSDN\TECHART\167\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\167\DOSWIN16.MAK +SAMPLES\MSDN\TECHART\167\HIERDRAW.C +SAMPLES\MSDN\TECHART\167\HIERDRAW.H +SAMPLES\MSDN\TECHART\167\HIERICON.BMP +SAMPLES\MSDN\TECHART\167\HLDIALOG.C +SAMPLES\MSDN\TECHART\167\HLSAMP32.DEF +SAMPLES\MSDN\TECHART\167\HLSAMPLE.C +SAMPLES\MSDN\TECHART\167\HLSAMPLE.DEF +SAMPLES\MSDN\TECHART\167\HLSAMPLE.DLG +SAMPLES\MSDN\TECHART\167\HLSAMPLE.EXE +SAMPLES\MSDN\TECHART\167\HLSAMPLE.H +SAMPLES\MSDN\TECHART\167\HLSAMPLE.ICO +SAMPLES\MSDN\TECHART\167\HLSAMPLE.RC +SAMPLES\MSDN\TECHART\167\MAKEFILE +SAMPLES\MSDN\TECHART\168\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\168\ALIGNED.C +SAMPLES\MSDN\TECHART\168\ALIGNED.DEF +SAMPLES\MSDN\TECHART\168\ALIGNED.EXE +SAMPLES\MSDN\TECHART\168\ALIGNED.H +SAMPLES\MSDN\TECHART\168\ALIGNED.ICO +SAMPLES\MSDN\TECHART\168\ALIGNED.RC +SAMPLES\MSDN\TECHART\168\MAKEFILE +SAMPLES\MSDN\TECHART\174\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\174\CTL3D.H +SAMPLES\MSDN\TECHART\174\DLGVLIST.C +SAMPLES\MSDN\TECHART\174\DLGVLIST.DLG +SAMPLES\MSDN\TECHART\174\DLGVLIST.H +SAMPLES\MSDN\TECHART\174\DLLSTUFF.C +SAMPLES\MSDN\TECHART\174\DOSWIN16.MAK +SAMPLES\MSDN\TECHART\174\DRAW3C.H +SAMPLES\MSDN\TECHART\174\DRAW3D.C +SAMPLES\MSDN\TECHART\174\DRAW3D.H +SAMPLES\MSDN\TECHART\174\LISTTEST.C +SAMPLES\MSDN\TECHART\174\LISTTEST.DEF +SAMPLES\MSDN\TECHART\174\LISTTEST.DLG +SAMPLES\MSDN\TECHART\174\LISTTEST.H +SAMPLES\MSDN\TECHART\174\LISTTEST.RC +SAMPLES\MSDN\TECHART\174\MAKEFILE +SAMPLES\MSDN\TECHART\174\MSDN.ICO +SAMPLES\MSDN\TECHART\174\OBJ16 +SAMPLES\MSDN\TECHART\174\VLIST.C +SAMPLES\MSDN\TECHART\174\VLIST.DEF +SAMPLES\MSDN\TECHART\174\VLIST.H +SAMPLES\MSDN\TECHART\174\VLIST.RC +SAMPLES\MSDN\TECHART\174\VLIST32.DEF +SAMPLES\MSDN\TECHART\174\VLIST32.EXP +SAMPLES\MSDN\TECHART\174\VLISTINT.H +SAMPLES\MSDN\TECHART\174\VLRARE.C +SAMPLES\MSDN\TECHART\174\VLSCROLL.C +SAMPLES\MSDN\TECHART\174\VLSETCUR.C +SAMPLES\MSDN\TECHART\174\OBJ16\LISTTEST.EXE +SAMPLES\MSDN\TECHART\174\OBJ16\VLIST.DLL +SAMPLES\MSDN\TECHART\174\OBJ16\VLIST.LIB +SAMPLES\MSDN\TECHART\1762\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1762\BITMAP1.BMP +SAMPLES\MSDN\TECHART\1762\BITMAP4.BMP +SAMPLES\MSDN\TECHART\1762\PENCUR.CUR +SAMPLES\MSDN\TECHART\1762\PENSTUFF.C +SAMPLES\MSDN\TECHART\1762\RESOURCE.H +SAMPLES\MSDN\TECHART\1762\TEST.EMF +SAMPLES\MSDN\TECHART\1762\W32PEN.C +SAMPLES\MSDN\TECHART\1762\W32PEN.EXE +SAMPLES\MSDN\TECHART\1762\W32PEN.H +SAMPLES\MSDN\TECHART\1762\W32PEN.ICO +SAMPLES\MSDN\TECHART\1762\W32PEN.MAK +SAMPLES\MSDN\TECHART\1762\W32PEN.RC +SAMPLES\MSDN\TECHART\1762\WNDPROC.C +SAMPLES\MSDN\TECHART\1804\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1804\APP.DEF +SAMPLES\MSDN\TECHART\1804\APP.ICO +SAMPLES\MSDN\TECHART\1804\APP.RC +SAMPLES\MSDN\TECHART\1804\CLIP.C +SAMPLES\MSDN\TECHART\1804\DATAFORM.C +SAMPLES\MSDN\TECHART\1804\DEBUG.C +SAMPLES\MSDN\TECHART\1804\DIALOGS.DLG +SAMPLES\MSDN\TECHART\1804\DIALOGS.H +SAMPLES\MSDN\TECHART\1804\DRAGON.EXE +SAMPLES\MSDN\TECHART\1804\DRAGON.HLP +SAMPLES\MSDN\TECHART\1804\ERROR.C +SAMPLES\MSDN\TECHART\1804\GLOBAL.C +SAMPLES\MSDN\TECHART\1804\GLOBAL.H +SAMPLES\MSDN\TECHART\1804\HELP.C +SAMPLES\MSDN\TECHART\1804\HELP.DOC +SAMPLES\MSDN\TECHART\1804\HELP.HPJ +SAMPLES\MSDN\TECHART\1804\HELP.RTF +SAMPLES\MSDN\TECHART\1804\IFACE.C +SAMPLES\MSDN\TECHART\1804\INIT.C +SAMPLES\MSDN\TECHART\1804\MAIN.C +SAMPLES\MSDN\TECHART\1804\MAKEFILE +SAMPLES\MSDN\TECHART\1804\OBJECT.C +SAMPLES\MSDN\TECHART\1804\PRINT.C +SAMPLES\MSDN\TECHART\1804\STORE.C +SAMPLES\MSDN\TECHART\1804\UTIL.C +SAMPLES\MSDN\TECHART\1804\_A.BKT +SAMPLES\MSDN\TECHART\1806\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1806\CREATE.DLG +SAMPLES\MSDN\TECHART\1806\MAKEFILE +SAMPLES\MSDN\TECHART\1806\STYLES.C +SAMPLES\MSDN\TECHART\1806\STYLES.DEF +SAMPLES\MSDN\TECHART\1806\STYLES.H +SAMPLES\MSDN\TECHART\1806\STYLES.ICO +SAMPLES\MSDN\TECHART\1806\STYLES.RC +SAMPLES\MSDN\TECHART\1808\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1808\BURGER.CUR +SAMPLES\MSDN\TECHART\1808\CLASSES.CPP +SAMPLES\MSDN\TECHART\1808\CLASSES.HPP +SAMPLES\MSDN\TECHART\1808\FLY.BMP +SAMPLES\MSDN\TECHART\1808\FROG.BMP +SAMPLES\MSDN\TECHART\1808\FROGFLY.CPP +SAMPLES\MSDN\TECHART\1808\FROGFLY.DEF +SAMPLES\MSDN\TECHART\1808\FROGFLY.EXE +SAMPLES\MSDN\TECHART\1808\FROGFLY.H +SAMPLES\MSDN\TECHART\1808\FROGFLY.ICO +SAMPLES\MSDN\TECHART\1808\FROGFLY.RC +SAMPLES\MSDN\TECHART\1808\FROGFLY.RCV +SAMPLES\MSDN\TECHART\1808\MAKEFILE +SAMPLES\MSDN\TECHART\1817\VBX +SAMPLES\MSDN\TECHART\1817\VBX\TEST +SAMPLES\MSDN\TECHART\1817\VBX\TEST\AVIHVBX.VBX +SAMPLES\MSDN\TECHART\1817\VBX\TEST\FORM1.FRM +SAMPLES\MSDN\TECHART\1817\VBX\TEST\TEST.EXE +SAMPLES\MSDN\TECHART\1817\VBX\TEST\TEST.MAK +SAMPLES\MSDN\TECHART\1818\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1818\GLOBAL.H +SAMPLES\MSDN\TECHART\1818\INIT.C +SAMPLES\MSDN\TECHART\1818\MAIN.C +SAMPLES\MSDN\TECHART\1818\MAKEFILE +SAMPLES\MSDN\TECHART\1818\NOFLICK.C +SAMPLES\MSDN\TECHART\1818\THRD32.DEF +SAMPLES\MSDN\TECHART\1818\THREAD.DEF +SAMPLES\MSDN\TECHART\1818\THREAD.ICO +SAMPLES\MSDN\TECHART\1818\THREAD.RC +SAMPLES\MSDN\TECHART\1901\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1901\MAKEFILE +SAMPLES\MSDN\TECHART\1901\SIZEBOX.C +SAMPLES\MSDN\TECHART\1901\SIZEBOX.EXE +SAMPLES\MSDN\TECHART\1901\SIZEBOX.H +SAMPLES\MSDN\TECHART\1901\SIZEBOX.ICO +SAMPLES\MSDN\TECHART\1901\SIZEBOX.MAK +SAMPLES\MSDN\TECHART\1901\SIZEBOX.RC +SAMPLES\MSDN\TECHART\1902\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1902\MAKEFILE +SAMPLES\MSDN\TECHART\1902\SCROLL32.C +SAMPLES\MSDN\TECHART\1902\SCROLL32.EXE +SAMPLES\MSDN\TECHART\1902\SCROLL32.H +SAMPLES\MSDN\TECHART\1902\SCROLL32.ICO +SAMPLES\MSDN\TECHART\1902\SCROLL32.MAK +SAMPLES\MSDN\TECHART\1902\SCROLL32.RC +SAMPLES\MSDN\TECHART\1918\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\1918\VECTOR.C +SAMPLES\MSDN\TECHART\1918\VECTOR2D.DEF +SAMPLES\MSDN\TECHART\1918\VECTOR2D.DLL +SAMPLES\MSDN\TECHART\1918\VECTOR2D.H +SAMPLES\MSDN\TECHART\1918\VECTOR2D.LIB +SAMPLES\MSDN\TECHART\2103\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2103\BEZIER.C +SAMPLES\MSDN\TECHART\2103\BEZIER.H +SAMPLES\MSDN\TECHART\2103\BITMAP1.BMP +SAMPLES\MSDN\TECHART\2103\BITMAP4.BMP +SAMPLES\MSDN\TECHART\2103\HITTEST.C +SAMPLES\MSDN\TECHART\2103\MENU.C +SAMPLES\MSDN\TECHART\2103\PENCUR.CUR +SAMPLES\MSDN\TECHART\2103\PENSTUFF.C +SAMPLES\MSDN\TECHART\2103\RESOURCE.H +SAMPLES\MSDN\TECHART\2103\VECTOR2D.DLL +SAMPLES\MSDN\TECHART\2103\VECTOR2D.LIB +SAMPLES\MSDN\TECHART\2103\W32HIT.EXE +SAMPLES\MSDN\TECHART\2103\W32HIT.MAK +SAMPLES\MSDN\TECHART\2103\W32PEN.C +SAMPLES\MSDN\TECHART\2103\W32PEN.H +SAMPLES\MSDN\TECHART\2103\W32PEN.ICO +SAMPLES\MSDN\TECHART\2103\W32PEN.RC +SAMPLES\MSDN\TECHART\2103\WNDPROC.C +SAMPLES\MSDN\TECHART\2112\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2112\CLASSES.CPP +SAMPLES\MSDN\TECHART\2112\CLASSES.H +SAMPLES\MSDN\TECHART\2112\DEADPHIL.PNT +SAMPLES\MSDN\TECHART\2112\DINPHIL.PNT +SAMPLES\MSDN\TECHART\2112\DLDETECT.CPP +SAMPLES\MSDN\TECHART\2112\DLDETECT.EXE +SAMPLES\MSDN\TECHART\2112\DLDETECT.H +SAMPLES\MSDN\TECHART\2112\DLDETECT.LIB +SAMPLES\MSDN\TECHART\2112\DLDETECT.MAK +SAMPLES\MSDN\TECHART\2112\DLDETECT.RC +SAMPLES\MSDN\TECHART\2112\GOOFY.PNT +SAMPLES\MSDN\TECHART\2112\GRIDSIZE.CPP +SAMPLES\MSDN\TECHART\2112\GRIDSIZE.H +SAMPLES\MSDN\TECHART\2112\INVARIAN.CPP +SAMPLES\MSDN\TECHART\2112\INVARIAN.H +SAMPLES\MSDN\TECHART\2112\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2112\MAINFRM.H +SAMPLES\MSDN\TECHART\2112\MATRIX +SAMPLES\MSDN\TECHART\2112\MATRIX.DLL +SAMPLES\MSDN\TECHART\2112\MATRIX.EXP +SAMPLES\MSDN\TECHART\2112\MATRIX.HPP +SAMPLES\MSDN\TECHART\2112\MATRIX.LIB +SAMPLES\MSDN\TECHART\2112\MATVIEW.CPP +SAMPLES\MSDN\TECHART\2112\MATVIEW.H +SAMPLES\MSDN\TECHART\2112\MSVCRT10.DLL +SAMPLES\MSDN\TECHART\2112\NETVIEW.CPP +SAMPLES\MSDN\TECHART\2112\NETVIEW.H +SAMPLES\MSDN\TECHART\2112\PNTDOC.CPP +SAMPLES\MSDN\TECHART\2112\PNTDOC.H +SAMPLES\MSDN\TECHART\2112\README.TXT +SAMPLES\MSDN\TECHART\2112\RES +SAMPLES\MSDN\TECHART\2112\RESOURCE.H +SAMPLES\MSDN\TECHART\2112\SEMAPHOR.PNT +SAMPLES\MSDN\TECHART\2112\STDAFX.CPP +SAMPLES\MSDN\TECHART\2112\STDAFX.H +SAMPLES\MSDN\TECHART\2112\TPPROPS.CPP +SAMPLES\MSDN\TECHART\2112\TPPROPS.H +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.CPP +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.DEF +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.DLL +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.EXP +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.HPP +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.LIB +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.MAK +SAMPLES\MSDN\TECHART\2112\MATRIX\MATRIX.RC +SAMPLES\MSDN\TECHART\2112\RES\DLDETDOC.ICO +SAMPLES\MSDN\TECHART\2112\RES\DLDETECT.ICO +SAMPLES\MSDN\TECHART\2112\RES\DLDETECT.RC2 +SAMPLES\MSDN\TECHART\2112\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2157\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2157\CLASSES.CPP +SAMPLES\MSDN\TECHART\2157\CLASSES.H +SAMPLES\MSDN\TECHART\2157\DEADPHIL.PNT +SAMPLES\MSDN\TECHART\2157\DINPHIL.PNT +SAMPLES\MSDN\TECHART\2157\DLDETECT.CPP +SAMPLES\MSDN\TECHART\2157\DLDETECT.EXE +SAMPLES\MSDN\TECHART\2157\DLDETECT.H +SAMPLES\MSDN\TECHART\2157\DLDETECT.LIB +SAMPLES\MSDN\TECHART\2157\DLDETECT.MAK +SAMPLES\MSDN\TECHART\2157\DLDETECT.RC +SAMPLES\MSDN\TECHART\2157\GOOFY.PNT +SAMPLES\MSDN\TECHART\2157\GRIDSIZE.CPP +SAMPLES\MSDN\TECHART\2157\GRIDSIZE.H +SAMPLES\MSDN\TECHART\2157\INVARIAN.CPP +SAMPLES\MSDN\TECHART\2157\INVARIAN.H +SAMPLES\MSDN\TECHART\2157\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2157\MAINFRM.H +SAMPLES\MSDN\TECHART\2157\MATRIX +SAMPLES\MSDN\TECHART\2157\MATRIX.DLL +SAMPLES\MSDN\TECHART\2157\MATRIX.EXP +SAMPLES\MSDN\TECHART\2157\MATRIX.HPP +SAMPLES\MSDN\TECHART\2157\MATRIX.LIB +SAMPLES\MSDN\TECHART\2157\MATVIEW.CPP +SAMPLES\MSDN\TECHART\2157\MATVIEW.H +SAMPLES\MSDN\TECHART\2157\MSVCRT10.DLL +SAMPLES\MSDN\TECHART\2157\NETVIEW.CPP +SAMPLES\MSDN\TECHART\2157\NETVIEW.H +SAMPLES\MSDN\TECHART\2157\PNTDOC.CPP +SAMPLES\MSDN\TECHART\2157\PNTDOC.H +SAMPLES\MSDN\TECHART\2157\README.TXT +SAMPLES\MSDN\TECHART\2157\RES +SAMPLES\MSDN\TECHART\2157\RESOURCE.H +SAMPLES\MSDN\TECHART\2157\SEMAPHOR.PNT +SAMPLES\MSDN\TECHART\2157\STDAFX.CPP +SAMPLES\MSDN\TECHART\2157\STDAFX.H +SAMPLES\MSDN\TECHART\2157\TPPROPS.CPP +SAMPLES\MSDN\TECHART\2157\TPPROPS.H +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.CPP +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.DEF +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.DLL +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.EXP +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.HPP +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.LIB +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.MAK +SAMPLES\MSDN\TECHART\2157\MATRIX\MATRIX.RC +SAMPLES\MSDN\TECHART\2157\RES\DLDETDOC.ICO +SAMPLES\MSDN\TECHART\2157\RES\DLDETECT.ICO +SAMPLES\MSDN\TECHART\2157\RES\DLDETECT.RC2 +SAMPLES\MSDN\TECHART\2157\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2160\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2160\ANIM32.CPP +SAMPLES\MSDN\TECHART\2160\ANIM32.EXE +SAMPLES\MSDN\TECHART\2160\ANIM32.H +SAMPLES\MSDN\TECHART\2160\ANIM32.MAK +SAMPLES\MSDN\TECHART\2160\ANIM32.RC +SAMPLES\MSDN\TECHART\2160\ANIMDOC.CPP +SAMPLES\MSDN\TECHART\2160\ANIMDOC.H +SAMPLES\MSDN\TECHART\2160\ANIMSP.CPP +SAMPLES\MSDN\TECHART\2160\ANIMSP.H +SAMPLES\MSDN\TECHART\2160\ANIMVW.CPP +SAMPLES\MSDN\TECHART\2160\ANIMVW.H +SAMPLES\MSDN\TECHART\2160\DBGWND.CPP +SAMPLES\MSDN\TECHART\2160\DBGWND.H +SAMPLES\MSDN\TECHART\2160\DIB.CPP +SAMPLES\MSDN\TECHART\2160\DIB.H +SAMPLES\MSDN\TECHART\2160\DIBPAL.CPP +SAMPLES\MSDN\TECHART\2160\DIBPAL.H +SAMPLES\MSDN\TECHART\2160\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2160\MAINFRM.H +SAMPLES\MSDN\TECHART\2160\OSDIBVW.CPP +SAMPLES\MSDN\TECHART\2160\OSDIBVW.H +SAMPLES\MSDN\TECHART\2160\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\2160\PHSPRITE.H +SAMPLES\MSDN\TECHART\2160\RECTLS.CPP +SAMPLES\MSDN\TECHART\2160\RECTLS.H +SAMPLES\MSDN\TECHART\2160\RES +SAMPLES\MSDN\TECHART\2160\RESOURCE.H +SAMPLES\MSDN\TECHART\2160\SPLSNO.CPP +SAMPLES\MSDN\TECHART\2160\SPLSNO.H +SAMPLES\MSDN\TECHART\2160\SPRITE.CPP +SAMPLES\MSDN\TECHART\2160\SPRITE.H +SAMPLES\MSDN\TECHART\2160\SPRITEDL.CPP +SAMPLES\MSDN\TECHART\2160\SPRITEDL.H +SAMPLES\MSDN\TECHART\2160\SPRITELS.CPP +SAMPLES\MSDN\TECHART\2160\SPRITELS.H +SAMPLES\MSDN\TECHART\2160\SPRITENO.H +SAMPLES\MSDN\TECHART\2160\SPRITES.H +SAMPLES\MSDN\TECHART\2160\STDAFX.CPP +SAMPLES\MSDN\TECHART\2160\STDAFX.H +SAMPLES\MSDN\TECHART\2160\RES\ANIM32.ICO +SAMPLES\MSDN\TECHART\2160\RES\ANIM32.RC2 +SAMPLES\MSDN\TECHART\2160\RES\DEBUG.ICO +SAMPLES\MSDN\TECHART\2160\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2305\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2305\MAKEFILE +SAMPLES\MSDN\TECHART\2305\RESOURCE.H +SAMPLES\MSDN\TECHART\2305\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2305\TOOLBAR.C +SAMPLES\MSDN\TECHART\2305\TOOLBAR.EXE +SAMPLES\MSDN\TECHART\2305\TOOLBAR.H +SAMPLES\MSDN\TECHART\2305\TOOLBAR.ICO +SAMPLES\MSDN\TECHART\2305\TOOLBAR.MAK +SAMPLES\MSDN\TECHART\2305\TOOLBAR.RC +SAMPLES\MSDN\TECHART\2305\TOOLBAR1.BMP +SAMPLES\MSDN\TECHART\2306\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2306\MAKEFILE +SAMPLES\MSDN\TECHART\2306\RESOURCE.H +SAMPLES\MSDN\TECHART\2306\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2306\TOOLBAR.C +SAMPLES\MSDN\TECHART\2306\TOOLBAR.EXE +SAMPLES\MSDN\TECHART\2306\TOOLBAR.H +SAMPLES\MSDN\TECHART\2306\TOOLBAR.ICO +SAMPLES\MSDN\TECHART\2306\TOOLBAR.MAK +SAMPLES\MSDN\TECHART\2306\TOOLBAR.RC +SAMPLES\MSDN\TECHART\2306\TOOLBAR1.BMP +SAMPLES\MSDN\TECHART\2307\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2307\MAKEFILE +SAMPLES\MSDN\TECHART\2307\MAKEIT.CMD +SAMPLES\MSDN\TECHART\2307\RESOURCE.H +SAMPLES\MSDN\TECHART\2307\SLIDER.C +SAMPLES\MSDN\TECHART\2307\SLIDER.H +SAMPLES\MSDN\TECHART\2307\SLIDER.ICO +SAMPLES\MSDN\TECHART\2307\SLIDER.MAK +SAMPLES\MSDN\TECHART\2307\SLIDER.RC +SAMPLES\MSDN\TECHART\2307\WINREL +SAMPLES\MSDN\TECHART\2307\WINREL\SLIDER.EXE +SAMPLES\MSDN\TECHART\2308\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2308\MAKEFILE +SAMPLES\MSDN\TECHART\2308\MAKEIT.CMD +SAMPLES\MSDN\TECHART\2308\PROGRESS.C +SAMPLES\MSDN\TECHART\2308\PROGRESS.EXE +SAMPLES\MSDN\TECHART\2308\PROGRESS.H +SAMPLES\MSDN\TECHART\2308\PROGRESS.ICO +SAMPLES\MSDN\TECHART\2308\PROGRESS.MAK +SAMPLES\MSDN\TECHART\2308\PROGRESS.RC +SAMPLES\MSDN\TECHART\2309\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2309\MAKEFILE +SAMPLES\MSDN\TECHART\2309\RESOURCE.H +SAMPLES\MSDN\TECHART\2309\UPDOWN.C +SAMPLES\MSDN\TECHART\2309\UPDOWN.EXE +SAMPLES\MSDN\TECHART\2309\UPDOWN.H +SAMPLES\MSDN\TECHART\2309\UPDOWN.ICO +SAMPLES\MSDN\TECHART\2309\UPDOWN.MAK +SAMPLES\MSDN\TECHART\2309\UPDOWN.RC +SAMPLES\MSDN\TECHART\2310\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2310\MAKEFILE +SAMPLES\MSDN\TECHART\2310\MAKEIT.CMD +SAMPLES\MSDN\TECHART\2310\RESOURCE.H +SAMPLES\MSDN\TECHART\2310\SLIDER.C +SAMPLES\MSDN\TECHART\2310\SLIDER.H +SAMPLES\MSDN\TECHART\2310\SLIDER.ICO +SAMPLES\MSDN\TECHART\2310\SLIDER.MAK +SAMPLES\MSDN\TECHART\2310\SLIDER.RC +SAMPLES\MSDN\TECHART\2310\WINREL +SAMPLES\MSDN\TECHART\2310\WINREL\SLIDER.EXE +SAMPLES\MSDN\TECHART\2311\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2311\MAKEFILE +SAMPLES\MSDN\TECHART\2311\MAKEIT.CMD +SAMPLES\MSDN\TECHART\2311\PROGRESS.C +SAMPLES\MSDN\TECHART\2311\PROGRESS.EXE +SAMPLES\MSDN\TECHART\2311\PROGRESS.H +SAMPLES\MSDN\TECHART\2311\PROGRESS.ICO +SAMPLES\MSDN\TECHART\2311\PROGRESS.MAK +SAMPLES\MSDN\TECHART\2311\PROGRESS.RC +SAMPLES\MSDN\TECHART\2312\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2312\MAKEFILE +SAMPLES\MSDN\TECHART\2312\RESOURCE.H +SAMPLES\MSDN\TECHART\2312\UPDOWN.C +SAMPLES\MSDN\TECHART\2312\UPDOWN.EXE +SAMPLES\MSDN\TECHART\2312\UPDOWN.H +SAMPLES\MSDN\TECHART\2312\UPDOWN.ICO +SAMPLES\MSDN\TECHART\2312\UPDOWN.MAK +SAMPLES\MSDN\TECHART\2312\UPDOWN.RC +SAMPLES\MSDN\TECHART\2313\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2313\BEL.ICO +SAMPLES\MSDN\TECHART\2313\LISTVIEW.C +SAMPLES\MSDN\TECHART\2313\LISTVIEW.EXE +SAMPLES\MSDN\TECHART\2313\LISTVIEW.H +SAMPLES\MSDN\TECHART\2313\LISTVIEW.ICO +SAMPLES\MSDN\TECHART\2313\LISTVIEW.MAK +SAMPLES\MSDN\TECHART\2313\LISTVIEW.RC +SAMPLES\MSDN\TECHART\2313\MAKEFILE +SAMPLES\MSDN\TECHART\2313\RED.ICO +SAMPLES\MSDN\TECHART\2313\RED2.ICO +SAMPLES\MSDN\TECHART\2313\RESOURCE.H +SAMPLES\MSDN\TECHART\2313\SEA.ICO +SAMPLES\MSDN\TECHART\2314\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2314\BEL.ICO +SAMPLES\MSDN\TECHART\2314\LISTVIEW.C +SAMPLES\MSDN\TECHART\2314\LISTVIEW.EXE +SAMPLES\MSDN\TECHART\2314\LISTVIEW.H +SAMPLES\MSDN\TECHART\2314\LISTVIEW.ICO +SAMPLES\MSDN\TECHART\2314\LISTVIEW.MAK +SAMPLES\MSDN\TECHART\2314\LISTVIEW.RC +SAMPLES\MSDN\TECHART\2314\MAKEFILE +SAMPLES\MSDN\TECHART\2314\RED.ICO +SAMPLES\MSDN\TECHART\2314\RED2.ICO +SAMPLES\MSDN\TECHART\2314\RESOURCE.H +SAMPLES\MSDN\TECHART\2314\SEA.ICO +SAMPLES\MSDN\TECHART\2329\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2329\TREEVIEW.APS +SAMPLES\MSDN\TECHART\2329\TREEVIEW.C +SAMPLES\MSDN\TECHART\2329\TREEVIEW.EXE +SAMPLES\MSDN\TECHART\2329\TREEVIEW.MAK +SAMPLES\MSDN\TECHART\2329\TREEVIEW.MDP +SAMPLES\MSDN\TECHART\2329\TREEVIEW.VCP +SAMPLES\MSDN\TECHART\2393\500.XRF +SAMPLES\MSDN\TECHART\2393\COLLIST.CPP +SAMPLES\MSDN\TECHART\2393\COLLIST.H +SAMPLES\MSDN\TECHART\2393\CONFIG.DAT +SAMPLES\MSDN\TECHART\2393\DATAITEM.CPP +SAMPLES\MSDN\TECHART\2393\DATAITEM.H +SAMPLES\MSDN\TECHART\2393\DATAITMS.CPP +SAMPLES\MSDN\TECHART\2393\DATAITMS.H +SAMPLES\MSDN\TECHART\2393\DOC.CPP +SAMPLES\MSDN\TECHART\2393\DOC.H +SAMPLES\MSDN\TECHART\2393\HITLIST.TXT +SAMPLES\MSDN\TECHART\2393\IPFRAME.CPP +SAMPLES\MSDN\TECHART\2393\IPFRAME.H +SAMPLES\MSDN\TECHART\2393\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2393\MAINFRM.H +SAMPLES\MSDN\TECHART\2393\PROPERTI.CPP +SAMPLES\MSDN\TECHART\2393\PROPERTI.H +SAMPLES\MSDN\TECHART\2393\PROPERTY.CPP +SAMPLES\MSDN\TECHART\2393\PROPERTY.H +SAMPLES\MSDN\TECHART\2393\README.TXT +SAMPLES\MSDN\TECHART\2393\REQUEST.CPP +SAMPLES\MSDN\TECHART\2393\REQUEST.H +SAMPLES\MSDN\TECHART\2393\REQUESTS.CPP +SAMPLES\MSDN\TECHART\2393\REQUESTS.H +SAMPLES\MSDN\TECHART\2393\RES +SAMPLES\MSDN\TECHART\2393\RESOURCE.H +SAMPLES\MSDN\TECHART\2393\SIMOBJ.CPP +SAMPLES\MSDN\TECHART\2393\SIMOBJ.H +SAMPLES\MSDN\TECHART\2393\SRVRITEM.CPP +SAMPLES\MSDN\TECHART\2393\SRVRITEM.H +SAMPLES\MSDN\TECHART\2393\STDAFX.CPP +SAMPLES\MSDN\TECHART\2393\STDAFX.H +SAMPLES\MSDN\TECHART\2393\TEST.XRF +SAMPLES\MSDN\TECHART\2393\VBA +SAMPLES\MSDN\TECHART\2393\RES\DOC.ICO +SAMPLES\MSDN\TECHART\2393\RES\ITOOLBAR.BMP +SAMPLES\MSDN\TECHART\2393\RES\SIZEHORZ.CUR +SAMPLES\MSDN\TECHART\2393\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2393\RES\XRTFRAME.ICO +SAMPLES\MSDN\TECHART\2393\RES\XRTFRAME.RC2 +SAMPLES\MSDN\TECHART\2393\VBA\BIG.XLS +SAMPLES\MSDN\TECHART\2393\VBA\BOOK2.XLS +SAMPLES\MSDN\TECHART\2393\VBA\PASTE.XLS +SAMPLES\MSDN\TECHART\2459\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2459\COPENGL.CPP +SAMPLES\MSDN\TECHART\2459\COPENGL.H +SAMPLES\MSDN\TECHART\2459\DRAWGL.CPP +SAMPLES\MSDN\TECHART\2459\DRAWGL.H +SAMPLES\MSDN\TECHART\2459\HITLIST.TXT +SAMPLES\MSDN\TECHART\2459\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2459\MAINFRM.H +SAMPLES\MSDN\TECHART\2459\MOREPFD.CPP +SAMPLES\MSDN\TECHART\2459\MOREPFD.H +SAMPLES\MSDN\TECHART\2459\MYGL.APS +SAMPLES\MSDN\TECHART\2459\MYGL.CPP +SAMPLES\MSDN\TECHART\2459\MYGL.EXE +SAMPLES\MSDN\TECHART\2459\MYGL.H +SAMPLES\MSDN\TECHART\2459\MYGL.MAK +SAMPLES\MSDN\TECHART\2459\MYGL.RC +SAMPLES\MSDN\TECHART\2459\MYGLDOC.CPP +SAMPLES\MSDN\TECHART\2459\MYGLDOC.H +SAMPLES\MSDN\TECHART\2459\MYGLVIEW.CPP +SAMPLES\MSDN\TECHART\2459\MYGLVIEW.H +SAMPLES\MSDN\TECHART\2459\PFDINFO.CPP +SAMPLES\MSDN\TECHART\2459\PFDINFO.H +SAMPLES\MSDN\TECHART\2459\PIXFORM.CPP +SAMPLES\MSDN\TECHART\2459\PIXFORM.H +SAMPLES\MSDN\TECHART\2459\RES +SAMPLES\MSDN\TECHART\2459\RESOURCE.H +SAMPLES\MSDN\TECHART\2459\STDAFX.CPP +SAMPLES\MSDN\TECHART\2459\STDAFX.H +SAMPLES\MSDN\TECHART\2459\WINREL +SAMPLES\MSDN\TECHART\2459\RES\CURSOR1.CUR +SAMPLES\MSDN\TECHART\2459\RES\MYGL.ICO +SAMPLES\MSDN\TECHART\2459\RES\MYGL.RC2 +SAMPLES\MSDN\TECHART\2459\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2459\WINREL\MYGL.EXE +SAMPLES\MSDN\TECHART\2531\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2531\ANIMDOC.CPP +SAMPLES\MSDN\TECHART\2531\ANIMDOC.H +SAMPLES\MSDN\TECHART\2531\ANIMVW.CPP +SAMPLES\MSDN\TECHART\2531\ANIMVW.H +SAMPLES\MSDN\TECHART\2531\BB.GVY +SAMPLES\MSDN\TECHART\2531\BODY.CPP +SAMPLES\MSDN\TECHART\2531\BODY.H +SAMPLES\MSDN\TECHART\2531\COMET.BMP +SAMPLES\MSDN\TECHART\2531\DIB.CPP +SAMPLES\MSDN\TECHART\2531\DIB.H +SAMPLES\MSDN\TECHART\2531\DIBPAL.CPP +SAMPLES\MSDN\TECHART\2531\DIBPAL.H +SAMPLES\MSDN\TECHART\2531\EARTH.BMP +SAMPLES\MSDN\TECHART\2531\EARTH-P.BMP +SAMPLES\MSDN\TECHART\2531\EM.GVY +SAMPLES\MSDN\TECHART\2531\EMC2.GVY +SAMPLES\MSDN\TECHART\2531\EMC3.GVY +SAMPLES\MSDN\TECHART\2531\EMC4.GVY +SAMPLES\MSDN\TECHART\2531\GRAVITY.CPP +SAMPLES\MSDN\TECHART\2531\GRAVITY.EXE +SAMPLES\MSDN\TECHART\2531\GRAVITY.H +SAMPLES\MSDN\TECHART\2531\GRAVITY.MAK +SAMPLES\MSDN\TECHART\2531\GRAVITY.RC +SAMPLES\MSDN\TECHART\2531\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2531\MAINFRM.H +SAMPLES\MSDN\TECHART\2531\MOON.BMP +SAMPLES\MSDN\TECHART\2531\OSDIBVW.CPP +SAMPLES\MSDN\TECHART\2531\OSDIBVW.H +SAMPLES\MSDN\TECHART\2531\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\2531\PHSPRITE.H +SAMPLES\MSDN\TECHART\2531\RECTLS.CPP +SAMPLES\MSDN\TECHART\2531\RECTLS.H +SAMPLES\MSDN\TECHART\2531\RES +SAMPLES\MSDN\TECHART\2531\RESOURCE.H +SAMPLES\MSDN\TECHART\2531\SPACE.BMP +SAMPLES\MSDN\TECHART\2531\SPLSNO.CPP +SAMPLES\MSDN\TECHART\2531\SPLSNO.H +SAMPLES\MSDN\TECHART\2531\SPRITE.CPP +SAMPLES\MSDN\TECHART\2531\SPRITE.H +SAMPLES\MSDN\TECHART\2531\SPRITEDL.CPP +SAMPLES\MSDN\TECHART\2531\SPRITEDL.H +SAMPLES\MSDN\TECHART\2531\SPRITELS.CPP +SAMPLES\MSDN\TECHART\2531\SPRITELS.H +SAMPLES\MSDN\TECHART\2531\SPRITENO.H +SAMPLES\MSDN\TECHART\2531\SPRITES.H +SAMPLES\MSDN\TECHART\2531\STDAFX.CPP +SAMPLES\MSDN\TECHART\2531\STDAFX.H +SAMPLES\MSDN\TECHART\2531\TIMEDLG.CPP +SAMPLES\MSDN\TECHART\2531\TIMEDLG.H +SAMPLES\MSDN\TECHART\2531\UNI.CPP +SAMPLES\MSDN\TECHART\2531\UNI.H +SAMPLES\MSDN\TECHART\2531\UNIDLG.CPP +SAMPLES\MSDN\TECHART\2531\UNIDLG.H +SAMPLES\MSDN\TECHART\2531\X.GVY +SAMPLES\MSDN\TECHART\2531\RES\GRAVITY.ICO +SAMPLES\MSDN\TECHART\2531\RES\GRAVITY.RC2 +SAMPLES\MSDN\TECHART\2531\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\2531\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2540\FRONTEND +SAMPLES\MSDN\TECHART\2540\RECEIVER +SAMPLES\MSDN\TECHART\2540\VXD +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BIT.CPP +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BIT.DEF +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BIT.EXE +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BIT.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BIT.MAK +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BIT.RC +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BITDOC.CPP +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BITDOC.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BITVW.CPP +SAMPLES\MSDN\TECHART\2540\FRONTEND\16BITVW.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\DESKTOP.INI +SAMPLES\MSDN\TECHART\2540\FRONTEND\HELPER.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\LINKSTR.CPP +SAMPLES\MSDN\TECHART\2540\FRONTEND\LINKSTR.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2540\FRONTEND\MAINFRM.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\RECEIVER.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\RECEIVER.LIB +SAMPLES\MSDN\TECHART\2540\FRONTEND\RES +SAMPLES\MSDN\TECHART\2540\FRONTEND\RESOURCE.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\STDAFX.CPP +SAMPLES\MSDN\TECHART\2540\FRONTEND\STDAFX.H +SAMPLES\MSDN\TECHART\2540\FRONTEND\RES\16BIT.ICO +SAMPLES\MSDN\TECHART\2540\FRONTEND\RES\16BIT.RC2 +SAMPLES\MSDN\TECHART\2540\RECEIVER\RECEIVER.C +SAMPLES\MSDN\TECHART\2540\RECEIVER\RECEIVER.DEF +SAMPLES\MSDN\TECHART\2540\RECEIVER\RECEIVER.DLL +SAMPLES\MSDN\TECHART\2540\RECEIVER\RECEIVER.H +SAMPLES\MSDN\TECHART\2540\RECEIVER\RECEIVER.LIB +SAMPLES\MSDN\TECHART\2540\RECEIVER\RECEIVER.MAK +SAMPLES\MSDN\TECHART\2540\RECEIVER\RECEIVER.RC +SAMPLES\MSDN\TECHART\2540\VXD\CALLBACK.ASM +SAMPLES\MSDN\TECHART\2540\VXD\CALLBACK.DEF +SAMPLES\MSDN\TECHART\2540\VXD\CALLBACK.LNK +SAMPLES\MSDN\TECHART\2540\VXD\CALLBACK.MAP +SAMPLES\MSDN\TECHART\2540\VXD\CALLBACK.VXD +SAMPLES\MSDN\TECHART\2540\VXD\HELPER.C +SAMPLES\MSDN\TECHART\2540\VXD\HELPER.H +SAMPLES\MSDN\TECHART\2540\VXD\MAKEFILE +SAMPLES\MSDN\TECHART\2540\VXD\README.TXT +SAMPLES\MSDN\TECHART\261\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\261\MAKEFILE +SAMPLES\MSDN\TECHART\261\TRANSBLT.C +SAMPLES\MSDN\TECHART\261\TRANSBLT.DEF +SAMPLES\MSDN\TECHART\261\TRANSBLT.EXE +SAMPLES\MSDN\TECHART\261\TRANSBLT.H +SAMPLES\MSDN\TECHART\261\TRANSBLT.MAP +SAMPLES\MSDN\TECHART\261\TRANSBLT.RC +SAMPLES\MSDN\TECHART\262\DIBIT.C +SAMPLES\MSDN\TECHART\262\DIBIT.DEF +SAMPLES\MSDN\TECHART\262\DIBIT.H +SAMPLES\MSDN\TECHART\262\DIBIT.MAK +SAMPLES\MSDN\TECHART\262\DIBIT.RC +SAMPLES\MSDN\TECHART\262\RESOURCE.H +SAMPLES\MSDN\TECHART\263\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\263\MAKEFILE +SAMPLES\MSDN\TECHART\263\MDICHILD.ICO +SAMPLES\MSDN\TECHART\263\MDIFRAME.ICO +SAMPLES\MSDN\TECHART\263\MULTIPAL.C +SAMPLES\MSDN\TECHART\263\MULTIPAL.DEF +SAMPLES\MSDN\TECHART\263\MULTIPAL.EXE +SAMPLES\MSDN\TECHART\263\MULTIPAL.H +SAMPLES\MSDN\TECHART\263\MULTIPAL.RC +SAMPLES\MSDN\TECHART\264\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\264\MAKEFILE +SAMPLES\MSDN\TECHART\264\MDICHILD.ICO +SAMPLES\MSDN\TECHART\264\MDIFRAME.ICO +SAMPLES\MSDN\TECHART\264\MULTIPAL.C +SAMPLES\MSDN\TECHART\264\MULTIPAL.DEF +SAMPLES\MSDN\TECHART\264\MULTIPAL.EXE +SAMPLES\MSDN\TECHART\264\MULTIPAL.H +SAMPLES\MSDN\TECHART\264\MULTIPAL.RC +SAMPLES\MSDN\TECHART\265\DIBIT.C +SAMPLES\MSDN\TECHART\265\DIBIT.DEF +SAMPLES\MSDN\TECHART\265\DIBIT.H +SAMPLES\MSDN\TECHART\265\DIBIT.MAK +SAMPLES\MSDN\TECHART\265\DIBIT.RC +SAMPLES\MSDN\TECHART\265\RESOURCE.H +SAMPLES\MSDN\TECHART\266\DIBIT.C +SAMPLES\MSDN\TECHART\266\DIBIT.DEF +SAMPLES\MSDN\TECHART\266\DIBIT.H +SAMPLES\MSDN\TECHART\266\DIBIT.MAK +SAMPLES\MSDN\TECHART\266\DIBIT.RC +SAMPLES\MSDN\TECHART\266\RESOURCE.H +SAMPLES\MSDN\TECHART\267\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\267\BUNNY.EXE +SAMPLES\MSDN\TECHART\267\BUNNY.FRM +SAMPLES\MSDN\TECHART\267\BUNNY.ICO +SAMPLES\MSDN\TECHART\267\BUNNY.MAK +SAMPLES\MSDN\TECHART\267\DDE.C +SAMPLES\MSDN\TECHART\267\DDEEXEC.C +SAMPLES\MSDN\TECHART\267\DDEEXEC.DEF +SAMPLES\MSDN\TECHART\267\DDEEXEC.EXE +SAMPLES\MSDN\TECHART\267\DDEEXEC.H +SAMPLES\MSDN\TECHART\267\DDEEXEC.ICO +SAMPLES\MSDN\TECHART\267\DDEEXEC.RC +SAMPLES\MSDN\TECHART\267\EXEC.EXE +SAMPLES\MSDN\TECHART\267\EXEC.FRM +SAMPLES\MSDN\TECHART\267\EXEC.ICO +SAMPLES\MSDN\TECHART\267\EXEC.MAK +SAMPLES\MSDN\TECHART\267\EXECFNS.C +SAMPLES\MSDN\TECHART\267\GLOBAL.BAS +SAMPLES\MSDN\TECHART\267\INIT.C +SAMPLES\MSDN\TECHART\267\MAKEFILE +SAMPLES\MSDN\TECHART\267\README.TXT +SAMPLES\MSDN\TECHART\267\STATE.RST +SAMPLES\MSDN\TECHART\267\STATUS.C +SAMPLES\MSDN\TECHART\267\STDDDE.C +SAMPLES\MSDN\TECHART\267\STDDDE.D +SAMPLES\MSDN\TECHART\267\STDDDE.H +SAMPLES\MSDN\TECHART\267\VBRUN200.DLL +SAMPLES\MSDN\TECHART\267\WBUNNY.DOT +SAMPLES\MSDN\TECHART\267\XLART.XLM +SAMPLES\MSDN\TECHART\267\XLART.XLS +SAMPLES\MSDN\TECHART\268\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\268\CONNECT.C +SAMPLES\MSDN\TECHART\268\DDERECON.C +SAMPLES\MSDN\TECHART\268\DDERECON.DEF +SAMPLES\MSDN\TECHART\268\DDERECON.EXE +SAMPLES\MSDN\TECHART\268\DDERECON.H +SAMPLES\MSDN\TECHART\268\DDERECON.ICO +SAMPLES\MSDN\TECHART\268\DDERECON.RC +SAMPLES\MSDN\TECHART\268\DIALOGS.DLG +SAMPLES\MSDN\TECHART\268\DIALOGS.H +SAMPLES\MSDN\TECHART\268\INIT.C +SAMPLES\MSDN\TECHART\268\LINK.C +SAMPLES\MSDN\TECHART\268\MAKEFILE +SAMPLES\MSDN\TECHART\268\STATUS.C +SAMPLES\MSDN\TECHART\270\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\270\LIBENTRY.ASM +SAMPLES\MSDN\TECHART\270\MAKEFILE +SAMPLES\MSDN\TECHART\270\PMGRP.EXE +SAMPLES\MSDN\TECHART\270\PMGRP.FRM +SAMPLES\MSDN\TECHART\270\PMGRP.MAK +SAMPLES\MSDN\TECHART\270\PMGRPAPI.C +SAMPLES\MSDN\TECHART\270\PMGRPAPI.DEF +SAMPLES\MSDN\TECHART\270\PMGRPAPI.DLL +SAMPLES\MSDN\TECHART\270\PMGRPAPI.H +SAMPLES\MSDN\TECHART\270\STATE.RST +SAMPLES\MSDN\TECHART\270\VBRUN200.DLL +SAMPLES\MSDN\TECHART\2701\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2701\PROPS.C +SAMPLES\MSDN\TECHART\2701\PROPS.H +SAMPLES\MSDN\TECHART\2701\PROPS.ICO +SAMPLES\MSDN\TECHART\2701\PROPS.MAK +SAMPLES\MSDN\TECHART\2701\PROPS.RC +SAMPLES\MSDN\TECHART\2701\RESOURCE.H +SAMPLES\MSDN\TECHART\2701\WINREL +SAMPLES\MSDN\TECHART\2701\WINREL\PROPS.EXE +SAMPLES\MSDN\TECHART\271\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\271\DDESERV.C +SAMPLES\MSDN\TECHART\271\DDESERV.DEF +SAMPLES\MSDN\TECHART\271\DDESERV.EXE +SAMPLES\MSDN\TECHART\271\DDESERV.H +SAMPLES\MSDN\TECHART\271\DDESERV.ICO +SAMPLES\MSDN\TECHART\271\DDESERV.RC +SAMPLES\MSDN\TECHART\271\MAKEFILE +SAMPLES\MSDN\TECHART\271\STDDDE.C +SAMPLES\MSDN\TECHART\271\STDDDE.D +SAMPLES\MSDN\TECHART\271\STDDDE.H +SAMPLES\MSDN\TECHART\272\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\272\CONNECT.C +SAMPLES\MSDN\TECHART\272\DDERECON.C +SAMPLES\MSDN\TECHART\272\DDERECON.DEF +SAMPLES\MSDN\TECHART\272\DDERECON.EXE +SAMPLES\MSDN\TECHART\272\DDERECON.H +SAMPLES\MSDN\TECHART\272\DDERECON.ICO +SAMPLES\MSDN\TECHART\272\DDERECON.RC +SAMPLES\MSDN\TECHART\272\DIALOGS.DLG +SAMPLES\MSDN\TECHART\272\DIALOGS.H +SAMPLES\MSDN\TECHART\272\INIT.C +SAMPLES\MSDN\TECHART\272\LINK.C +SAMPLES\MSDN\TECHART\272\MAKEFILE +SAMPLES\MSDN\TECHART\272\STATUS.C +SAMPLES\MSDN\TECHART\273\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\273\DDE.C +SAMPLES\MSDN\TECHART\273\INIT.C +SAMPLES\MSDN\TECHART\273\MAKEFILE +SAMPLES\MSDN\TECHART\273\STATUS.C +SAMPLES\MSDN\TECHART\273\STDDDE.C +SAMPLES\MSDN\TECHART\273\STDDDE.D +SAMPLES\MSDN\TECHART\273\STDDDE.H +SAMPLES\MSDN\TECHART\273\STOCK.XLC +SAMPLES\MSDN\TECHART\273\STOCK.XLM +SAMPLES\MSDN\TECHART\273\STOCK.XLS +SAMPLES\MSDN\TECHART\273\STOCKSRV.C +SAMPLES\MSDN\TECHART\273\STOCKSRV.DEF +SAMPLES\MSDN\TECHART\273\STOCKSRV.EXE +SAMPLES\MSDN\TECHART\273\STOCKSRV.H +SAMPLES\MSDN\TECHART\273\STOCKSRV.ICO +SAMPLES\MSDN\TECHART\273\STOCKSRV.RC +SAMPLES\MSDN\TECHART\274\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\274\CONNECT.C +SAMPLES\MSDN\TECHART\274\DDERECON.C +SAMPLES\MSDN\TECHART\274\DDERECON.DEF +SAMPLES\MSDN\TECHART\274\DDERECON.EXE +SAMPLES\MSDN\TECHART\274\DDERECON.H +SAMPLES\MSDN\TECHART\274\DDERECON.ICO +SAMPLES\MSDN\TECHART\274\DDERECON.RC +SAMPLES\MSDN\TECHART\274\DIALOGS.DLG +SAMPLES\MSDN\TECHART\274\DIALOGS.H +SAMPLES\MSDN\TECHART\274\INIT.C +SAMPLES\MSDN\TECHART\274\LINK.C +SAMPLES\MSDN\TECHART\274\MAKEFILE +SAMPLES\MSDN\TECHART\274\STATUS.C +SAMPLES\MSDN\TECHART\275\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\275\DDE.C +SAMPLES\MSDN\TECHART\275\INIT.C +SAMPLES\MSDN\TECHART\275\MAKEFILE +SAMPLES\MSDN\TECHART\275\STATUS.C +SAMPLES\MSDN\TECHART\275\STDDDE.C +SAMPLES\MSDN\TECHART\275\STDDDE.D +SAMPLES\MSDN\TECHART\275\STDDDE.H +SAMPLES\MSDN\TECHART\275\STOCK.XLC +SAMPLES\MSDN\TECHART\275\STOCK.XLM +SAMPLES\MSDN\TECHART\275\STOCK.XLS +SAMPLES\MSDN\TECHART\275\STOCKSRV.C +SAMPLES\MSDN\TECHART\275\STOCKSRV.DEF +SAMPLES\MSDN\TECHART\275\STOCKSRV.EXE +SAMPLES\MSDN\TECHART\275\STOCKSRV.H +SAMPLES\MSDN\TECHART\275\STOCKSRV.ICO +SAMPLES\MSDN\TECHART\275\STOCKSRV.RC +SAMPLES\MSDN\TECHART\276\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\276\CONNECT.C +SAMPLES\MSDN\TECHART\276\DDERECON.C +SAMPLES\MSDN\TECHART\276\DDERECON.DEF +SAMPLES\MSDN\TECHART\276\DDERECON.EXE +SAMPLES\MSDN\TECHART\276\DDERECON.H +SAMPLES\MSDN\TECHART\276\DDERECON.ICO +SAMPLES\MSDN\TECHART\276\DDERECON.RC +SAMPLES\MSDN\TECHART\276\DIALOGS.DLG +SAMPLES\MSDN\TECHART\276\DIALOGS.H +SAMPLES\MSDN\TECHART\276\INIT.C +SAMPLES\MSDN\TECHART\276\LINK.C +SAMPLES\MSDN\TECHART\276\MAKEFILE +SAMPLES\MSDN\TECHART\276\STATUS.C +SAMPLES\MSDN\TECHART\277\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\277\MAKEFILE +SAMPLES\MSDN\TECHART\277\PORT.C +SAMPLES\MSDN\TECHART\277\PORT.DEF +SAMPLES\MSDN\TECHART\277\PORT.H +SAMPLES\MSDN\TECHART\277\PORT.INI +SAMPLES\MSDN\TECHART\277\PORT.RC +SAMPLES\MSDN\TECHART\277\PORTPRIV.H +SAMPLES\MSDN\TECHART\277\PORTSTAT.ICO +SAMPLES\MSDN\TECHART\277\PORTTOOL.C +SAMPLES\MSDN\TECHART\277\PORTTOOL.DEF +SAMPLES\MSDN\TECHART\277\PORTTOOL.DLG +SAMPLES\MSDN\TECHART\277\PORTTOOL.H +SAMPLES\MSDN\TECHART\277\PORTTOOL.ICO +SAMPLES\MSDN\TECHART\277\PORTTOOL.RC +SAMPLES\MSDN\TECHART\277\PTBKPORT.C +SAMPLES\MSDN\TECHART\277\PTDLGS.C +SAMPLES\MSDN\TECHART\277\PTFILE.C +SAMPLES\MSDN\TECHART\277\PTFIND.C +SAMPLES\MSDN\TECHART\277\PTPRINT.C +SAMPLES\MSDN\TECHART\285\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\285\DBDLG.C +SAMPLES\MSDN\TECHART\285\DBFILE.C +SAMPLES\MSDN\TECHART\285\DEBUG.C +SAMPLES\MSDN\TECHART\285\DEBUG.DEF +SAMPLES\MSDN\TECHART\285\DEBUG.DLG +SAMPLES\MSDN\TECHART\285\DEBUG.H +SAMPLES\MSDN\TECHART\285\DEBUG.ICO +SAMPLES\MSDN\TECHART\285\DEBUG.RC +SAMPLES\MSDN\TECHART\285\DEBUGDLG.DLG +SAMPLES\MSDN\TECHART\285\MAIN.C +SAMPLES\MSDN\TECHART\285\MAIN.ICO +SAMPLES\MSDN\TECHART\285\MAKEFILE +SAMPLES\MSDN\TECHART\287\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\287\DBDLG.C +SAMPLES\MSDN\TECHART\287\DBFILE.C +SAMPLES\MSDN\TECHART\287\DEBUG.C +SAMPLES\MSDN\TECHART\287\DEBUG.DEF +SAMPLES\MSDN\TECHART\287\DEBUG.DLG +SAMPLES\MSDN\TECHART\287\DEBUG.H +SAMPLES\MSDN\TECHART\287\DEBUG.ICO +SAMPLES\MSDN\TECHART\287\DEBUG.RC +SAMPLES\MSDN\TECHART\287\DEBUGDLG.DLG +SAMPLES\MSDN\TECHART\287\MAIN.C +SAMPLES\MSDN\TECHART\287\MAIN.ICO +SAMPLES\MSDN\TECHART\287\MAKEFILE +SAMPLES\MSDN\TECHART\2885\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2885\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2885\MAINFRM.H +SAMPLES\MSDN\TECHART\2885\MFCPROP.CPP +SAMPLES\MSDN\TECHART\2885\MFCPROP.H +SAMPLES\MSDN\TECHART\2885\MFCPROP.MAK +SAMPLES\MSDN\TECHART\2885\MFCPROP.RC +SAMPLES\MSDN\TECHART\2885\MFCTRDOC.CPP +SAMPLES\MSDN\TECHART\2885\MFCTRDOC.H +SAMPLES\MSDN\TECHART\2885\MFCTRVW.CPP +SAMPLES\MSDN\TECHART\2885\MFCTRVW.H +SAMPLES\MSDN\TECHART\2885\RES +SAMPLES\MSDN\TECHART\2885\RESOURCE.H +SAMPLES\MSDN\TECHART\2885\STDAFX.CPP +SAMPLES\MSDN\TECHART\2885\STDAFX.H +SAMPLES\MSDN\TECHART\2885\WINREL +SAMPLES\MSDN\TECHART\2885\RES\MFCTRACK.ICO +SAMPLES\MSDN\TECHART\2885\RES\MFCTRACK.RC2 +SAMPLES\MSDN\TECHART\2885\RES\MFCTRDOC.ICO +SAMPLES\MSDN\TECHART\2885\WINREL\MFCPROP.EXE +SAMPLES\MSDN\TECHART\2897\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2897\ADDWDLG.CPP +SAMPLES\MSDN\TECHART\2897\ADDWDLG.H +SAMPLES\MSDN\TECHART\2897\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2897\MAINFRM.H +SAMPLES\MSDN\TECHART\2897\RECORDDL.CPP +SAMPLES\MSDN\TECHART\2897\RECORDDL.H +SAMPLES\MSDN\TECHART\2897\RES +SAMPLES\MSDN\TECHART\2897\RESOURCE.H +SAMPLES\MSDN\TECHART\2897\SPELEDIT.CPP +SAMPLES\MSDN\TECHART\2897\SPELEDIT.EXE +SAMPLES\MSDN\TECHART\2897\SPELEDIT.H +SAMPLES\MSDN\TECHART\2897\SPELEDIT.MAK +SAMPLES\MSDN\TECHART\2897\SPELEDIT.RC +SAMPLES\MSDN\TECHART\2897\SPELL.SPL +SAMPLES\MSDN\TECHART\2897\SPELLDOC.CPP +SAMPLES\MSDN\TECHART\2897\SPELLDOC.H +SAMPLES\MSDN\TECHART\2897\SPELLVW.CPP +SAMPLES\MSDN\TECHART\2897\SPELLVW.H +SAMPLES\MSDN\TECHART\2897\STDAFX.CPP +SAMPLES\MSDN\TECHART\2897\STDAFX.H +SAMPLES\MSDN\TECHART\2897\WORDMAP.CPP +SAMPLES\MSDN\TECHART\2897\WORDMAP.H +SAMPLES\MSDN\TECHART\2897\RES\SPELEDIT.ICO +SAMPLES\MSDN\TECHART\2897\RES\SPELEDIT.RC2 +SAMPLES\MSDN\TECHART\2897\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2898\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2898\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2898\MAINFRM.H +SAMPLES\MSDN\TECHART\2898\RES +SAMPLES\MSDN\TECHART\2898\RESOURCE.H +SAMPLES\MSDN\TECHART\2898\SPELL.SPL +SAMPLES\MSDN\TECHART\2898\SPELLDOC.CPP +SAMPLES\MSDN\TECHART\2898\SPELLDOC.H +SAMPLES\MSDN\TECHART\2898\SPELLER.CPP +SAMPLES\MSDN\TECHART\2898\SPELLER.EXE +SAMPLES\MSDN\TECHART\2898\SPELLER.H +SAMPLES\MSDN\TECHART\2898\SPELLER.MAK +SAMPLES\MSDN\TECHART\2898\SPELLER.RC +SAMPLES\MSDN\TECHART\2898\STDAFX.CPP +SAMPLES\MSDN\TECHART\2898\STDAFX.H +SAMPLES\MSDN\TECHART\2898\WORDMAP.CPP +SAMPLES\MSDN\TECHART\2898\WORDMAP.H +SAMPLES\MSDN\TECHART\2898\WORDVIEW.CPP +SAMPLES\MSDN\TECHART\2898\WORDVIEW.H +SAMPLES\MSDN\TECHART\2898\RES\INSTRUCT.WAV +SAMPLES\MSDN\TECHART\2898\RES\NOWORDS.WAV +SAMPLES\MSDN\TECHART\2898\RES\RIGHT.WAV +SAMPLES\MSDN\TECHART\2898\RES\SILENCE.WAV +SAMPLES\MSDN\TECHART\2898\RES\SPELLER.ICO +SAMPLES\MSDN\TECHART\2898\RES\SPELLER.RC2 +SAMPLES\MSDN\TECHART\2898\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2898\RES\WRONG.WAV +SAMPLES\MSDN\TECHART\2899\INCLUDE +SAMPLES\MSDN\TECHART\2899\LIB +SAMPLES\MSDN\TECHART\2899\README.TXT +SAMPLES\MSDN\TECHART\2899\SRC +SAMPLES\MSDN\TECHART\2899\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\2899\LIB\X86 +SAMPLES\MSDN\TECHART\2899\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\2899\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\2899\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\2899\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\2899\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\2899\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\2899\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\2899\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\2899\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\2899\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\2899\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\2899\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\2899\SRC\METER.CPP +SAMPLES\MSDN\TECHART\2899\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\2899\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\2899\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\2899\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\2899\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\2899\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\2899\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\2899\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\2899\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\2899\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\2899\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\2899\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\2899\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\2900\AUTODUCK.DOC +SAMPLES\MSDN\TECHART\2900\AUTODUCK.EXE +SAMPLES\MSDN\TECHART\2900\AUTODUCK.FMT +SAMPLES\MSDN\TECHART\2900\AUTODUCK.HLP +SAMPLES\MSDN\TECHART\2900\CONTENTS.D +SAMPLES\MSDN\TECHART\2900\EXAMPLE +SAMPLES\MSDN\TECHART\2900\README.TXT +SAMPLES\MSDN\TECHART\2900\SRC +SAMPLES\MSDN\TECHART\2900\EXAMPLE\DKOALA.CPP +SAMPLES\MSDN\TECHART\2900\EXAMPLE\DKOALA.DEF +SAMPLES\MSDN\TECHART\2900\EXAMPLE\DKOALA.H +SAMPLES\MSDN\TECHART\2900\EXAMPLE\DKOALA.RC +SAMPLES\MSDN\TECHART\2900\EXAMPLE\KOALA.CPP +SAMPLES\MSDN\TECHART\2900\EXAMPLE\KOALA.H +SAMPLES\MSDN\TECHART\2900\EXAMPLE\MAKEDOCS.BAT +SAMPLES\MSDN\TECHART\2900\EXAMPLE\MAKEDOCS.MAK +SAMPLES\MSDN\TECHART\2900\EXAMPLE\OLECOM.D +SAMPLES\MSDN\TECHART\2900\EXAMPLE\OVERVIEW.D +SAMPLES\MSDN\TECHART\2900\EXAMPLE\TEMPLATE.CPP +SAMPLES\MSDN\TECHART\2900\EXAMPLE\VBFUNC.BAS +SAMPLES\MSDN\TECHART\2900\SRC\ADOUTPUT.CPP +SAMPLES\MSDN\TECHART\2900\SRC\ADOUTPUT.H +SAMPLES\MSDN\TECHART\2900\SRC\AUTODUCK.MAK +SAMPLES\MSDN\TECHART\2900\SRC\CMDARGS.CPP +SAMPLES\MSDN\TECHART\2900\SRC\CMDARGS.H +SAMPLES\MSDN\TECHART\2900\SRC\DOCEXPR.CPP +SAMPLES\MSDN\TECHART\2900\SRC\DOCEXPR.H +SAMPLES\MSDN\TECHART\2900\SRC\ERRMSG.CPP +SAMPLES\MSDN\TECHART\2900\SRC\ERRMSG.H +SAMPLES\MSDN\TECHART\2900\SRC\EXTRACT.CPP +SAMPLES\MSDN\TECHART\2900\SRC\EXTRACT.H +SAMPLES\MSDN\TECHART\2900\SRC\FMT.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMT.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTCONST.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTCONST.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTDIAG.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTDIAG.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTEXT.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTEXT.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTFILE.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTFILE.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTIF.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTIF.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTINDEX.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTINDEX.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTPARA.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTPARA.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTSPEC.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTSPEC.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTTAG.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTTAG.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTTEXT.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTTEXT.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTTOKEN.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTTOKEN.H +SAMPLES\MSDN\TECHART\2900\SRC\FMTTOPIC.CPP +SAMPLES\MSDN\TECHART\2900\SRC\FMTTOPIC.H +SAMPLES\MSDN\TECHART\2900\SRC\INPUT.CPP +SAMPLES\MSDN\TECHART\2900\SRC\INPUT.H +SAMPLES\MSDN\TECHART\2900\SRC\MAIN.CPP +SAMPLES\MSDN\TECHART\2900\SRC\OUTPUT.CPP +SAMPLES\MSDN\TECHART\2900\SRC\OUTPUT.H +SAMPLES\MSDN\TECHART\2900\SRC\PARSE.CPP +SAMPLES\MSDN\TECHART\2900\SRC\PARSE.H +SAMPLES\MSDN\TECHART\2900\SRC\PARSETAG.CPP +SAMPLES\MSDN\TECHART\2900\SRC\PARSETAG.H +SAMPLES\MSDN\TECHART\2900\SRC\TOPICLOG.CPP +SAMPLES\MSDN\TECHART\2900\SRC\TOPICLOG.H +SAMPLES\MSDN\TECHART\2900\SRC\VERSION.H +SAMPLES\MSDN\TECHART\2911\ANOTHE~1.TXT +SAMPLES\MSDN\TECHART\2911\BEL.BMP +SAMPLES\MSDN\TECHART\2911\BEL.ICO +SAMPLES\MSDN\TECHART\2911\CHICOAPP.APS +SAMPLES\MSDN\TECHART\2911\CHICOAPP.C +SAMPLES\MSDN\TECHART\2911\CHICOAPP.EXE +SAMPLES\MSDN\TECHART\2911\CHICOAPP.H +SAMPLES\MSDN\TECHART\2911\CHICOAPP.ICO +SAMPLES\MSDN\TECHART\2911\CHICOAPP.MAK +SAMPLES\MSDN\TECHART\2911\CHICOAPP.MAP +SAMPLES\MSDN\TECHART\2911\CHICOAPP.RC +SAMPLES\MSDN\TECHART\2911\CHICOAPP.RES +SAMPLES\MSDN\TECHART\2911\FORSALE.BMP +SAMPLES\MSDN\TECHART\2911\HOUSES.TXT +SAMPLES\MSDN\TECHART\2911\LISTIN~1.TXT +SAMPLES\MSDN\TECHART\2911\LISTVIEW.C +SAMPLES\MSDN\TECHART\2911\LISTVIEW.H +SAMPLES\MSDN\TECHART\2911\MAKEFILE +SAMPLES\MSDN\TECHART\2911\RED.BMP +SAMPLES\MSDN\TECHART\2911\RED.ICO +SAMPLES\MSDN\TECHART\2911\RESOURCE.H +SAMPLES\MSDN\TECHART\2911\SEA.BMP +SAMPLES\MSDN\TECHART\2911\SEA.ICO +SAMPLES\MSDN\TECHART\2911\SEA2.BMP +SAMPLES\MSDN\TECHART\2911\STUFF.C +SAMPLES\MSDN\TECHART\2911\TEST.TXT +SAMPLES\MSDN\TECHART\2911\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2911\TREEVIEW.C +SAMPLES\MSDN\TECHART\2911\TREEVIEW.H +SAMPLES\MSDN\TECHART\2935\LOCKS.CPP +SAMPLES\MSDN\TECHART\2935\LOCKS.H +SAMPLES\MSDN\TECHART\2935\LOCKTEST.CPP +SAMPLES\MSDN\TECHART\2935\LOCKTEST.EXE +SAMPLES\MSDN\TECHART\2935\LOCKTEST.MAK +SAMPLES\MSDN\TECHART\2935\PROTOCOL +SAMPLES\MSDN\TECHART\2937\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\2937\CLIPDOC.CPP +SAMPLES\MSDN\TECHART\2937\CLIPDOC.H +SAMPLES\MSDN\TECHART\2937\CLIPVW.CPP +SAMPLES\MSDN\TECHART\2937\CLIPVW.H +SAMPLES\MSDN\TECHART\2937\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2937\MAINFRM.H +SAMPLES\MSDN\TECHART\2937\MFCCLIP.CPP +SAMPLES\MSDN\TECHART\2937\MFCCLIP.H +SAMPLES\MSDN\TECHART\2937\MFCCLIP.MAK +SAMPLES\MSDN\TECHART\2937\MFCCLIP.RC +SAMPLES\MSDN\TECHART\2937\MYOBJ.CPP +SAMPLES\MSDN\TECHART\2937\MYOBJ.H +SAMPLES\MSDN\TECHART\2937\MYOBJDLG.CPP +SAMPLES\MSDN\TECHART\2937\MYOBJDLG.H +SAMPLES\MSDN\TECHART\2937\MYOBLIST.CPP +SAMPLES\MSDN\TECHART\2937\MYOBLIST.H +SAMPLES\MSDN\TECHART\2937\RES +SAMPLES\MSDN\TECHART\2937\RESOURCE.H +SAMPLES\MSDN\TECHART\2937\STDAFX.CPP +SAMPLES\MSDN\TECHART\2937\STDAFX.H +SAMPLES\MSDN\TECHART\2937\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\2937\TRANSBMP.H +SAMPLES\MSDN\TECHART\2937\RES\MFCCLIP.ICO +SAMPLES\MSDN\TECHART\2937\RES\MFCCLIP.RC2 +SAMPLES\MSDN\TECHART\2937\RES\SMILE.BMP +SAMPLES\MSDN\TECHART\2937\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2940\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\2940\BROWSEDI.H +SAMPLES\MSDN\TECHART\2940\CNCB.CPP +SAMPLES\MSDN\TECHART\2940\CNCB.H +SAMPLES\MSDN\TECHART\2940\COMCLASS.CPP +SAMPLES\MSDN\TECHART\2940\COMCLASS.H +SAMPLES\MSDN\TECHART\2940\COMMCDOC.CPP +SAMPLES\MSDN\TECHART\2940\COMMCDOC.H +SAMPLES\MSDN\TECHART\2940\COMMCHAT.CPP +SAMPLES\MSDN\TECHART\2940\COMMCHAT.H +SAMPLES\MSDN\TECHART\2940\COMMCHAT.MAK +SAMPLES\MSDN\TECHART\2940\COMMCHAT.RC +SAMPLES\MSDN\TECHART\2940\COMMCVW.CPP +SAMPLES\MSDN\TECHART\2940\COMMCVW.H +SAMPLES\MSDN\TECHART\2940\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2940\MAINFRM.H +SAMPLES\MSDN\TECHART\2940\NETBIOS.CPP +SAMPLES\MSDN\TECHART\2940\NETBIOS.H +SAMPLES\MSDN\TECHART\2940\NPIPE.CPP +SAMPLES\MSDN\TECHART\2940\NPIPE.H +SAMPLES\MSDN\TECHART\2940\PIPEVARS +SAMPLES\MSDN\TECHART\2940\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\2940\PROTOCOL.H +SAMPLES\MSDN\TECHART\2940\README.TXT +SAMPLES\MSDN\TECHART\2940\RES +SAMPLES\MSDN\TECHART\2940\RESOURCE.H +SAMPLES\MSDN\TECHART\2940\SOCKETS.CPP +SAMPLES\MSDN\TECHART\2940\SOCKETS.H +SAMPLES\MSDN\TECHART\2940\SPLITFRM.CPP +SAMPLES\MSDN\TECHART\2940\SPLITFRM.H +SAMPLES\MSDN\TECHART\2940\STDAFX.CPP +SAMPLES\MSDN\TECHART\2940\STDAFX.H +SAMPLES\MSDN\TECHART\2940\SUBSPLIT.CPP +SAMPLES\MSDN\TECHART\2940\SUBSPLIT.H +SAMPLES\MSDN\TECHART\2940\WINREL +SAMPLES\MSDN\TECHART\2940\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\2940\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\2940\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\2940\RES\COMMCDOC.ICO +SAMPLES\MSDN\TECHART\2940\RES\COMMCHAT.ICO +SAMPLES\MSDN\TECHART\2940\RES\COMMCHAT.RC2 +SAMPLES\MSDN\TECHART\2940\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2940\WINREL\COMMCHAT.EXE +SAMPLES\MSDN\TECHART\2941\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\2941\BROWSEDI.H +SAMPLES\MSDN\TECHART\2941\CNCB.CPP +SAMPLES\MSDN\TECHART\2941\CNCB.H +SAMPLES\MSDN\TECHART\2941\COMCLASS.CPP +SAMPLES\MSDN\TECHART\2941\COMCLASS.H +SAMPLES\MSDN\TECHART\2941\COMMCDOC.CPP +SAMPLES\MSDN\TECHART\2941\COMMCDOC.H +SAMPLES\MSDN\TECHART\2941\COMMCHAT.CPP +SAMPLES\MSDN\TECHART\2941\COMMCHAT.H +SAMPLES\MSDN\TECHART\2941\COMMCHAT.MAK +SAMPLES\MSDN\TECHART\2941\COMMCHAT.RC +SAMPLES\MSDN\TECHART\2941\COMMCVW.CPP +SAMPLES\MSDN\TECHART\2941\COMMCVW.H +SAMPLES\MSDN\TECHART\2941\MAINFRM.CPP +SAMPLES\MSDN\TECHART\2941\MAINFRM.H +SAMPLES\MSDN\TECHART\2941\NETBIOS.CPP +SAMPLES\MSDN\TECHART\2941\NETBIOS.H +SAMPLES\MSDN\TECHART\2941\NPIPE.CPP +SAMPLES\MSDN\TECHART\2941\NPIPE.H +SAMPLES\MSDN\TECHART\2941\PIPEVARS +SAMPLES\MSDN\TECHART\2941\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\2941\PROTOCOL.H +SAMPLES\MSDN\TECHART\2941\README.TXT +SAMPLES\MSDN\TECHART\2941\RES +SAMPLES\MSDN\TECHART\2941\RESOURCE.H +SAMPLES\MSDN\TECHART\2941\SOCKETS.CPP +SAMPLES\MSDN\TECHART\2941\SOCKETS.H +SAMPLES\MSDN\TECHART\2941\SPLITFRM.CPP +SAMPLES\MSDN\TECHART\2941\SPLITFRM.H +SAMPLES\MSDN\TECHART\2941\STDAFX.CPP +SAMPLES\MSDN\TECHART\2941\STDAFX.H +SAMPLES\MSDN\TECHART\2941\SUBSPLIT.CPP +SAMPLES\MSDN\TECHART\2941\SUBSPLIT.H +SAMPLES\MSDN\TECHART\2941\WINREL +SAMPLES\MSDN\TECHART\2941\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\2941\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\2941\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\2941\RES\COMMCDOC.ICO +SAMPLES\MSDN\TECHART\2941\RES\COMMCHAT.ICO +SAMPLES\MSDN\TECHART\2941\RES\COMMCHAT.RC2 +SAMPLES\MSDN\TECHART\2941\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\2941\WINREL\COMMCHAT.EXE +SAMPLES\MSDN\TECHART\3000\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3000\DIRPATHS.C +SAMPLES\MSDN\TECHART\3000\HLSTR.C +SAMPLES\MSDN\TECHART\3000\INI_FUNC.C +SAMPLES\MSDN\TECHART\3000\LOAD_CTL.MAK +SAMPLES\MSDN\TECHART\3000\NATIVEVB.BAS +SAMPLES\MSDN\TECHART\3000\NATIVEVB.C +SAMPLES\MSDN\TECHART\3000\NATIVEVB.DEF +SAMPLES\MSDN\TECHART\3000\NATIVEVB.H +SAMPLES\MSDN\TECHART\3000\NATIVEVB.LIB +SAMPLES\MSDN\TECHART\3000\NATIVEVB.MAK +SAMPLES\MSDN\TECHART\3000\NATIVEVB.MAP +SAMPLES\MSDN\TECHART\3000\NATIVEVB.RC +SAMPLES\MSDN\TECHART\3000\NATIVEVB.RCV +SAMPLES\MSDN\TECHART\3000\NETWORK.C +SAMPLES\MSDN\TECHART\3000\NETWORK.SBT +SAMPLES\MSDN\TECHART\3000\PERF0.BAS +SAMPLES\MSDN\TECHART\3000\PERF0.MAK +SAMPLES\MSDN\TECHART\3000\PERF1.FRM +SAMPLES\MSDN\TECHART\3000\PERF1.MAK +SAMPLES\MSDN\TECHART\3000\SUMINFO.CPP +SAMPLES\MSDN\TECHART\3000\VERORIG.C +SAMPLES\MSDN\TECHART\3000\VERSTAMP.C +SAMPLES\MSDN\TECHART\3000\VERSTAMP.H +SAMPLES\MSDN\TECHART\3000\WINNET.C +SAMPLES\MSDN\TECHART\3006\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3006\MAINFRM.LNK +SAMPLES\MSDN\TECHART\3006\REATESHO.LNK +SAMPLES\MSDN\TECHART\3006\SHORTCUT.LNK +SAMPLES\MSDN\TECHART\3006\SHORTCUT.VCP +SAMPLES\MSDN\TECHART\3006\TEST.LNK +SAMPLES\MSDN\TECHART\3006\TESTHOHO.LNK +SAMPLES\MSDN\TECHART\3014\INCLUDE +SAMPLES\MSDN\TECHART\3014\LIB +SAMPLES\MSDN\TECHART\3014\README.TXT +SAMPLES\MSDN\TECHART\3014\SRC +SAMPLES\MSDN\TECHART\3014\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\3014\LIB\X86 +SAMPLES\MSDN\TECHART\3014\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\3014\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\3014\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\3014\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\3014\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\3014\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\3014\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\3014\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\3014\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\3014\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\3014\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\3014\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\3014\SRC\METER.CPP +SAMPLES\MSDN\TECHART\3014\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\3014\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\3014\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\3014\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\3014\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\3014\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\3014\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\3014\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\3014\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\3014\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\3014\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\3014\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\3014\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\3015\INCLUDE +SAMPLES\MSDN\TECHART\3015\LIB +SAMPLES\MSDN\TECHART\3015\README.TXT +SAMPLES\MSDN\TECHART\3015\SRC +SAMPLES\MSDN\TECHART\3015\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\3015\LIB\X86 +SAMPLES\MSDN\TECHART\3015\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\3015\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\3015\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\3015\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\3015\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\3015\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\3015\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\3015\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\3015\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\3015\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\3015\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\3015\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\3015\SRC\METER.CPP +SAMPLES\MSDN\TECHART\3015\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\3015\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\3015\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\3015\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\3015\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\3015\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\3015\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\3015\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\3015\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\3015\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\3015\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\3015\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\3015\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\3016\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3016\DLGPANEL.CPP +SAMPLES\MSDN\TECHART\3016\DLGPANEL.H +SAMPLES\MSDN\TECHART\3016\DLGPANFM.CPP +SAMPLES\MSDN\TECHART\3016\DLGPANFM.H +SAMPLES\MSDN\TECHART\3016\DLGTEMPL.CPP +SAMPLES\MSDN\TECHART\3016\DLGTEMPL.H +SAMPLES\MSDN\TECHART\3016\FORMWND.CPP +SAMPLES\MSDN\TECHART\3016\FORMWND.H +SAMPLES\MSDN\TECHART\3016\FWTESDOC.CPP +SAMPLES\MSDN\TECHART\3016\FWTESDOC.H +SAMPLES\MSDN\TECHART\3016\FWTEST.CPP +SAMPLES\MSDN\TECHART\3016\FWTEST.H +SAMPLES\MSDN\TECHART\3016\FWTEST.MAK +SAMPLES\MSDN\TECHART\3016\FWTEST.RC +SAMPLES\MSDN\TECHART\3016\FWTESVW.CPP +SAMPLES\MSDN\TECHART\3016\FWTESVW.H +SAMPLES\MSDN\TECHART\3016\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3016\MAINFRM.H +SAMPLES\MSDN\TECHART\3016\PANELFRA.CPP +SAMPLES\MSDN\TECHART\3016\PANELFRA.H +SAMPLES\MSDN\TECHART\3016\RES +SAMPLES\MSDN\TECHART\3016\RESOURCE.H +SAMPLES\MSDN\TECHART\3016\ROTARY.CPP +SAMPLES\MSDN\TECHART\3016\ROTARY.H +SAMPLES\MSDN\TECHART\3016\SCOPEFRA.CPP +SAMPLES\MSDN\TECHART\3016\SCOPEFRA.H +SAMPLES\MSDN\TECHART\3016\SCOPESCR.CPP +SAMPLES\MSDN\TECHART\3016\SCOPESCR.H +SAMPLES\MSDN\TECHART\3016\STDAFX.CPP +SAMPLES\MSDN\TECHART\3016\STDAFX.H +SAMPLES\MSDN\TECHART\3016\UPDNCTL.CPP +SAMPLES\MSDN\TECHART\3016\UPDNCTL.H +SAMPLES\MSDN\TECHART\3016\X86-R +SAMPLES\MSDN\TECHART\3016\RES\BITMAP1.BMP +SAMPLES\MSDN\TECHART\3016\RES\BITMAP2.BMP +SAMPLES\MSDN\TECHART\3016\RES\FWTESDOC.ICO +SAMPLES\MSDN\TECHART\3016\RES\FWTEST.ICO +SAMPLES\MSDN\TECHART\3016\RES\FWTEST.RC2 +SAMPLES\MSDN\TECHART\3016\RES\IDR_PANE.ICO +SAMPLES\MSDN\TECHART\3016\RES\IDR_PICP.ICO +SAMPLES\MSDN\TECHART\3016\RES\IDR_SCOP.ICO +SAMPLES\MSDN\TECHART\3016\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3016\X86-R\FWTEST.EXE +SAMPLES\MSDN\TECHART\3017\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3017\DLGPANEL.CPP +SAMPLES\MSDN\TECHART\3017\DLGPANEL.H +SAMPLES\MSDN\TECHART\3017\DLGPANFM.CPP +SAMPLES\MSDN\TECHART\3017\DLGPANFM.H +SAMPLES\MSDN\TECHART\3017\DLGTEMPL.CPP +SAMPLES\MSDN\TECHART\3017\DLGTEMPL.H +SAMPLES\MSDN\TECHART\3017\FORMWND.CPP +SAMPLES\MSDN\TECHART\3017\FORMWND.H +SAMPLES\MSDN\TECHART\3017\FWTESDOC.CPP +SAMPLES\MSDN\TECHART\3017\FWTESDOC.H +SAMPLES\MSDN\TECHART\3017\FWTEST.CPP +SAMPLES\MSDN\TECHART\3017\FWTEST.H +SAMPLES\MSDN\TECHART\3017\FWTEST.MAK +SAMPLES\MSDN\TECHART\3017\FWTEST.RC +SAMPLES\MSDN\TECHART\3017\FWTESVW.CPP +SAMPLES\MSDN\TECHART\3017\FWTESVW.H +SAMPLES\MSDN\TECHART\3017\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3017\MAINFRM.H +SAMPLES\MSDN\TECHART\3017\PANELFRA.CPP +SAMPLES\MSDN\TECHART\3017\PANELFRA.H +SAMPLES\MSDN\TECHART\3017\RES +SAMPLES\MSDN\TECHART\3017\RESOURCE.H +SAMPLES\MSDN\TECHART\3017\ROTARY.CPP +SAMPLES\MSDN\TECHART\3017\ROTARY.H +SAMPLES\MSDN\TECHART\3017\SCOPEFRA.CPP +SAMPLES\MSDN\TECHART\3017\SCOPEFRA.H +SAMPLES\MSDN\TECHART\3017\SCOPESCR.CPP +SAMPLES\MSDN\TECHART\3017\SCOPESCR.H +SAMPLES\MSDN\TECHART\3017\STDAFX.CPP +SAMPLES\MSDN\TECHART\3017\STDAFX.H +SAMPLES\MSDN\TECHART\3017\UPDNCTL.CPP +SAMPLES\MSDN\TECHART\3017\UPDNCTL.H +SAMPLES\MSDN\TECHART\3017\X86-R +SAMPLES\MSDN\TECHART\3017\RES\BITMAP1.BMP +SAMPLES\MSDN\TECHART\3017\RES\BITMAP2.BMP +SAMPLES\MSDN\TECHART\3017\RES\FWTESDOC.ICO +SAMPLES\MSDN\TECHART\3017\RES\FWTEST.ICO +SAMPLES\MSDN\TECHART\3017\RES\FWTEST.RC2 +SAMPLES\MSDN\TECHART\3017\RES\IDR_PANE.ICO +SAMPLES\MSDN\TECHART\3017\RES\IDR_PICP.ICO +SAMPLES\MSDN\TECHART\3017\RES\IDR_SCOP.ICO +SAMPLES\MSDN\TECHART\3017\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3017\X86-R\FWTEST.EXE +SAMPLES\MSDN\TECHART\3018\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3018\COMDLG32.C +SAMPLES\MSDN\TECHART\3018\COMDLG32.EXE +SAMPLES\MSDN\TECHART\3018\COMDLG32.H +SAMPLES\MSDN\TECHART\3018\COMDLG32.ICO +SAMPLES\MSDN\TECHART\3018\COMDLG32.RC +SAMPLES\MSDN\TECHART\3018\MAKEFILE +SAMPLES\MSDN\TECHART\3018\RESOURCE.H +SAMPLES\MSDN\TECHART\3044\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3044\CCTLREG.CPP +SAMPLES\MSDN\TECHART\3044\CCTLREG.H +SAMPLES\MSDN\TECHART\3044\CTLREDOC.CPP +SAMPLES\MSDN\TECHART\3044\CTLREDOC.H +SAMPLES\MSDN\TECHART\3044\CTLREG.CPP +SAMPLES\MSDN\TECHART\3044\CTLREG.DEF +SAMPLES\MSDN\TECHART\3044\CTLREG.EXE +SAMPLES\MSDN\TECHART\3044\CTLREG.H +SAMPLES\MSDN\TECHART\3044\CTLREG.MAK +SAMPLES\MSDN\TECHART\3044\CTLREG.RC +SAMPLES\MSDN\TECHART\3044\CTLREG32.MAK +SAMPLES\MSDN\TECHART\3044\CTLREVW.CPP +SAMPLES\MSDN\TECHART\3044\CTLREVW.H +SAMPLES\MSDN\TECHART\3044\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3044\MAINFRM.H +SAMPLES\MSDN\TECHART\3044\RES +SAMPLES\MSDN\TECHART\3044\RESOURCE.H +SAMPLES\MSDN\TECHART\3044\STDAFX.CPP +SAMPLES\MSDN\TECHART\3044\STDAFX.H +SAMPLES\MSDN\TECHART\3044\UNREGDLG.CPP +SAMPLES\MSDN\TECHART\3044\UNREGDLG.H +SAMPLES\MSDN\TECHART\3044\WINREL +SAMPLES\MSDN\TECHART\3044\RES\CTLREG.ICO +SAMPLES\MSDN\TECHART\3044\RES\CTLREG.RC2 +SAMPLES\MSDN\TECHART\3044\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\3044\WINREL\CTLREG32.EXE +SAMPLES\MSDN\TECHART\3060\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3060\MAKEFILE +SAMPLES\MSDN\TECHART\3060\RESOURCE.H +SAMPLES\MSDN\TECHART\3060\WIZARD.C +SAMPLES\MSDN\TECHART\3060\WIZARD.EXE +SAMPLES\MSDN\TECHART\3060\WIZARD.H +SAMPLES\MSDN\TECHART\3060\WIZARD.ICO +SAMPLES\MSDN\TECHART\3060\WIZARD.RC +SAMPLES\MSDN\TECHART\3141\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3141\GENERIC.BMP +SAMPLES\MSDN\TECHART\3141\GENERIC.C +SAMPLES\MSDN\TECHART\3141\GENERIC.CNT +SAMPLES\MSDN\TECHART\3141\GENERIC.DEF +SAMPLES\MSDN\TECHART\3141\GENERIC.EXE +SAMPLES\MSDN\TECHART\3141\GENERIC.H +SAMPLES\MSDN\TECHART\3141\GENERIC.HLP +SAMPLES\MSDN\TECHART\3141\GENERIC.HPJ +SAMPLES\MSDN\TECHART\3141\GENERIC.ICO +SAMPLES\MSDN\TECHART\3141\GENERIC.MAK +SAMPLES\MSDN\TECHART\3141\GENERIC.RC +SAMPLES\MSDN\TECHART\3141\GENERIC.RTF +SAMPLES\MSDN\TECHART\3141\HELP.BMP +SAMPLES\MSDN\TECHART\3141\MAKEFILE +SAMPLES\MSDN\TECHART\3141\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\3141\SMALL.ICO +SAMPLES\MSDN\TECHART\3175\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3175\PICKLP +SAMPLES\MSDN\TECHART\3175\PICKLT +SAMPLES\MSDN\TECHART\3175\PICKLP\MAKEFILE +SAMPLES\MSDN\TECHART\3175\PICKLP\MAKEFILE.DOS +SAMPLES\MSDN\TECHART\3175\PICKLP\PICKLP.ACF +SAMPLES\MSDN\TECHART\3175\PICKLP\PICKLP.IDL +SAMPLES\MSDN\TECHART\3175\PICKLP\PICKLPC.C +SAMPLES\MSDN\TECHART\3175\PICKLP\PICKLPC.EXE + +SAMPLES\MSDN\TECHART\3175\PICKLP\README.TXT +SAMPLES\MSDN\TECHART\3175\PICKLT\MAKEFILE +SAMPLES\MSDN\TECHART\3175\PICKLT\MAKEFILE.DOS +SAMPLES\MSDN\TECHART\3175\PICKLT\PICKLT.ACF +SAMPLES\MSDN\TECHART\3175\PICKLT\PICKLT.IDL +SAMPLES\MSDN\TECHART\3175\PICKLT\PICKLTC.C +SAMPLES\MSDN\TECHART\3175\PICKLT\PICKLTC.EXE +SAMPLES\MSDN\TECHART\3175\PICKLT\README.TXT +SAMPLES\MSDN\TECHART\3179\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3179\ALL.REG +SAMPLES\MSDN\TECHART\3179\CLIENT +SAMPLES\MSDN\TECHART\3179\GUIDS.H +SAMPLES\MSDN\TECHART\3179\IDL +SAMPLES\MSDN\TECHART\3179\SERVER +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.BMP +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.C +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.DEF +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.DLG +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.H +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.ICO +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.MAK +SAMPLES\MSDN\TECHART\3179\CLIENT\CLIENT.RC +SAMPLES\MSDN\TECHART\3179\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\3179\CLIENT\WINREL +SAMPLES\MSDN\TECHART\3179\CLIENT\WINREL\CLIENT.EXE +SAMPLES\MSDN\TECHART\3179\IDL\DLLDATA.C +SAMPLES\MSDN\TECHART\3179\IDL\MAKEFILE +SAMPLES\MSDN\TECHART\3179\IDL\PD.DEF +SAMPLES\MSDN\TECHART\3179\IDL\PD.DLL +SAMPLES\MSDN\TECHART\3179\IDL\PD.H +SAMPLES\MSDN\TECHART\3179\IDL\PD.IDL +SAMPLES\MSDN\TECHART\3179\IDL\PD.REG +SAMPLES\MSDN\TECHART\3179\SERVER\APP.CPP +SAMPLES\MSDN\TECHART\3179\SERVER\APP.H +SAMPLES\MSDN\TECHART\3179\SERVER\ICF.CPP +SAMPLES\MSDN\TECHART\3179\SERVER\ICF.H +SAMPLES\MSDN\TECHART\3179\SERVER\OBJ.CPP +SAMPLES\MSDN\TECHART\3179\SERVER\OBJ.H +SAMPLES\MSDN\TECHART\3179\SERVER\PDSERVER.DEF +SAMPLES\MSDN\TECHART\3179\SERVER\PDSERVER.MAK +SAMPLES\MSDN\TECHART\3179\SERVER\PDSERVER.REG +SAMPLES\MSDN\TECHART\3179\SERVER\PRE.H +SAMPLES\MSDN\TECHART\3179\SERVER\WINREL +SAMPLES\MSDN\TECHART\3179\SERVER\WINREL\PDSERVER.EXE +SAMPLES\MSDN\TECHART\3183\BUILD +SAMPLES\MSDN\TECHART\3183\BUILD.TXT +SAMPLES\MSDN\TECHART\3183\CONTAIN +SAMPLES\MSDN\TECHART\3183\CPATRON.REG +SAMPLES\MSDN\TECHART\3183\INC +SAMPLES\MSDN\TECHART\3183\INOLE2A.MAK +SAMPLES\MSDN\TECHART\3183\INOLE2B.MAK +SAMPLES\MSDN\TECHART\3183\LIB +SAMPLES\MSDN\TECHART\3183\BUILD\BOOKUI.DLL +SAMPLES\MSDN\TECHART\3183\BUILD\BOOKUI32.DLL +SAMPLES\MSDN\TECHART\3183\BUILD\BTTNCUR.DLL +SAMPLES\MSDN\TECHART\3183\BUILD\DATATRAN.DLL +SAMPLES\MSDN\TECHART\3183\BUILD\GIZMOBAR.DLL +SAMPLES\MSDN\TECHART\3183\BUILD\LNKASSIS.DLL +SAMPLES\MSDN\TECHART\3183\BUILD\STASTRIP.DLL +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\ABOUT.DLG +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\AMBIENTS.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\CLIENT.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\CONNECT.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\DOCUMENT.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\DOCUMENT.ICO +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\DRAGDROP.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\EVENTS.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\EVENTS.DLG +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\GIZMO120.BMP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\GIZMO72.BMP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\GIZMO96.BMP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IADVSINK.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\ICLASSF.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\ICLISITE.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\ICONSITE.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IDROPSRC.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IDROPTGT.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IIPSITE.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IIPUIWIN.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IOLECONT.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IPERFILE.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IPROPNOT.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\IUILINK.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\MAKEFILE +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PAGE.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PAGEMOUS.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PAGES.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PAGES.H +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PAGEWIN.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PATRON.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PATRON.DEF +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PATRON.H +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PATRON.ICO +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PATRON.LRF +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PATRON.RC +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PATRON16.DEF +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PRECOMP.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\PRINT.DLG +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\RESOURCE.H +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\TENANT.CPP +SAMPLES\MSDN\TECHART\3183\CONTAIN\CPATRON\TENANT.H +SAMPLES\MSDN\TECHART\3183\INC\BOOK1632.H +SAMPLES\MSDN\TECHART\3183\INC\BOOKGUID.H +SAMPLES\MSDN\TECHART\3183\INC\BTTNCUR.H +SAMPLES\MSDN\TECHART\3183\INC\CLASSLIB.H +SAMPLES\MSDN\TECHART\3183\INC\CLASSRES.H +SAMPLES\MSDN\TECHART\3183\INC\DBGOUT.H +SAMPLES\MSDN\TECHART\3183\INC\GIZMOBAR.H +SAMPLES\MSDN\TECHART\3183\INC\OLE2UI.H +SAMPLES\MSDN\TECHART\3183\INC\OLECTL.H +SAMPLES\MSDN\TECHART\3183\INC\OLECTLID.H +SAMPLES\MSDN\TECHART\3183\INC\OLESTD.H +SAMPLES\MSDN\TECHART\3183\INC\STASTRIP.H +SAMPLES\MSDN\TECHART\3183\LIB\BOOKUI.LIB +SAMPLES\MSDN\TECHART\3183\LIB\BOOKUI32.LIB +SAMPLES\MSDN\TECHART\3183\LIB\BTTNCUR.LIB +SAMPLES\MSDN\TECHART\3183\LIB\CLASSMDI.LIB +SAMPLES\MSDN\TECHART\3183\LIB\GIZMOBAR.LIB +SAMPLES\MSDN\TECHART\3183\LIB\STASTRIP.LIB +SAMPLES\MSDN\TECHART\3185\DDCLIP.CPP +SAMPLES\MSDN\TECHART\3185\DDCLIP.H +SAMPLES\MSDN\TECHART\3185\DDLISDOC.CPP +SAMPLES\MSDN\TECHART\3185\DDLISDOC.H +SAMPLES\MSDN\TECHART\3185\DDLIST.CPP +SAMPLES\MSDN\TECHART\3185\DDLIST.H +SAMPLES\MSDN\TECHART\3185\DDLIST.MAK +SAMPLES\MSDN\TECHART\3185\DDLIST.RC +SAMPLES\MSDN\TECHART\3185\DDLISVW.CPP +SAMPLES\MSDN\TECHART\3185\DDLISVW.H +SAMPLES\MSDN\TECHART\3185\DDLSTBOX.CPP +SAMPLES\MSDN\TECHART\3185\DDLSTBOX.H +SAMPLES\MSDN\TECHART\3185\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3185\MAINFRM.H +SAMPLES\MSDN\TECHART\3185\RES +SAMPLES\MSDN\TECHART\3185\RESOURCE.H +SAMPLES\MSDN\TECHART\3185\STDAFX.CPP +SAMPLES\MSDN\TECHART\3185\STDAFX.H +SAMPLES\MSDN\TECHART\3185\STRLIST.CPP +SAMPLES\MSDN\TECHART\3185\STRLIST.H +SAMPLES\MSDN\TECHART\3185\WINREL +SAMPLES\MSDN\TECHART\3185\RES\DDLISDOC.ICO +SAMPLES\MSDN\TECHART\3185\RES\DDLIST.ICO +SAMPLES\MSDN\TECHART\3185\RES\DDLIST.RC2 +SAMPLES\MSDN\TECHART\3185\RES\DRAG1.CUR +SAMPLES\MSDN\TECHART\3185\RES\DRAGMANY.CUR +SAMPLES\MSDN\TECHART\3185\RES\NODROP.CUR +SAMPLES\MSDN\TECHART\3185\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3185\WINREL\DDLIST.EXE +SAMPLES\MSDN\TECHART\3188\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\3188\BROWSEDI.H +SAMPLES\MSDN\TECHART\3188\CNCB.CPP +SAMPLES\MSDN\TECHART\3188\CNCB.H +SAMPLES\MSDN\TECHART\3188\COMCLASS.CPP +SAMPLES\MSDN\TECHART\3188\COMCLASS.H +SAMPLES\MSDN\TECHART\3188\COMMCDOC.CPP +SAMPLES\MSDN\TECHART\3188\COMMCDOC.H +SAMPLES\MSDN\TECHART\3188\COMMCHAT.CPP +SAMPLES\MSDN\TECHART\3188\COMMCHAT.H +SAMPLES\MSDN\TECHART\3188\COMMCHAT.MAK +SAMPLES\MSDN\TECHART\3188\COMMCHAT.RC +SAMPLES\MSDN\TECHART\3188\COMMCVW.CPP +SAMPLES\MSDN\TECHART\3188\COMMCVW.H +SAMPLES\MSDN\TECHART\3188\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3188\MAINFRM.H +SAMPLES\MSDN\TECHART\3188\NETBIOS.CPP +SAMPLES\MSDN\TECHART\3188\NETBIOS.H +SAMPLES\MSDN\TECHART\3188\NPIPE.CPP +SAMPLES\MSDN\TECHART\3188\NPIPE.H +SAMPLES\MSDN\TECHART\3188\PIPEVARS +SAMPLES\MSDN\TECHART\3188\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\3188\PROTOCOL.H +SAMPLES\MSDN\TECHART\3188\README.TXT +SAMPLES\MSDN\TECHART\3188\RES +SAMPLES\MSDN\TECHART\3188\RESOURCE.H +SAMPLES\MSDN\TECHART\3188\SOCKETS.CPP +SAMPLES\MSDN\TECHART\3188\SOCKETS.H +SAMPLES\MSDN\TECHART\3188\SPLITFRM.CPP +SAMPLES\MSDN\TECHART\3188\SPLITFRM.H +SAMPLES\MSDN\TECHART\3188\STDAFX.CPP +SAMPLES\MSDN\TECHART\3188\STDAFX.H +SAMPLES\MSDN\TECHART\3188\SUBSPLIT.CPP +SAMPLES\MSDN\TECHART\3188\SUBSPLIT.H +SAMPLES\MSDN\TECHART\3188\WINREL +SAMPLES\MSDN\TECHART\3188\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\3188\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\3188\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\3188\RES\COMMCDOC.ICO +SAMPLES\MSDN\TECHART\3188\RES\COMMCHAT.ICO +SAMPLES\MSDN\TECHART\3188\RES\COMMCHAT.RC2 +SAMPLES\MSDN\TECHART\3188\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3188\WINREL\COMMCHAT.EXE +SAMPLES\MSDN\TECHART\3189\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\3189\BROWSEDI.H +SAMPLES\MSDN\TECHART\3189\CNCB.CPP +SAMPLES\MSDN\TECHART\3189\CNCB.H +SAMPLES\MSDN\TECHART\3189\COMCLASS.CPP +SAMPLES\MSDN\TECHART\3189\COMCLASS.H +SAMPLES\MSDN\TECHART\3189\COMMCDOC.CPP +SAMPLES\MSDN\TECHART\3189\COMMCDOC.H +SAMPLES\MSDN\TECHART\3189\COMMCHAT.CPP +SAMPLES\MSDN\TECHART\3189\COMMCHAT.H +SAMPLES\MSDN\TECHART\3189\COMMCHAT.MAK +SAMPLES\MSDN\TECHART\3189\COMMCHAT.RC +SAMPLES\MSDN\TECHART\3189\COMMCVW.CPP +SAMPLES\MSDN\TECHART\3189\COMMCVW.H +SAMPLES\MSDN\TECHART\3189\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3189\MAINFRM.H +SAMPLES\MSDN\TECHART\3189\NETBIOS.CPP +SAMPLES\MSDN\TECHART\3189\NETBIOS.H +SAMPLES\MSDN\TECHART\3189\NPIPE.CPP +SAMPLES\MSDN\TECHART\3189\NPIPE.H +SAMPLES\MSDN\TECHART\3189\PIPEVARS +SAMPLES\MSDN\TECHART\3189\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\3189\PROTOCOL.H +SAMPLES\MSDN\TECHART\3189\README.TXT +SAMPLES\MSDN\TECHART\3189\RES +SAMPLES\MSDN\TECHART\3189\RESOURCE.H +SAMPLES\MSDN\TECHART\3189\SOCKETS.CPP +SAMPLES\MSDN\TECHART\3189\SOCKETS.H +SAMPLES\MSDN\TECHART\3189\SPLITFRM.CPP +SAMPLES\MSDN\TECHART\3189\SPLITFRM.H +SAMPLES\MSDN\TECHART\3189\STDAFX.CPP +SAMPLES\MSDN\TECHART\3189\STDAFX.H +SAMPLES\MSDN\TECHART\3189\SUBSPLIT.CPP +SAMPLES\MSDN\TECHART\3189\SUBSPLIT.H +SAMPLES\MSDN\TECHART\3189\WINREL +SAMPLES\MSDN\TECHART\3189\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\3189\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\3189\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\3189\RES\COMMCDOC.ICO +SAMPLES\MSDN\TECHART\3189\RES\COMMCHAT.ICO +SAMPLES\MSDN\TECHART\3189\RES\COMMCHAT.RC2 +SAMPLES\MSDN\TECHART\3189\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3189\WINREL\COMMCHAT.EXE +SAMPLES\MSDN\TECHART\3190\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\3190\BROWSEDI.H +SAMPLES\MSDN\TECHART\3190\CNCB.CPP +SAMPLES\MSDN\TECHART\3190\CNCB.H +SAMPLES\MSDN\TECHART\3190\COMCLASS.CPP +SAMPLES\MSDN\TECHART\3190\COMCLASS.H +SAMPLES\MSDN\TECHART\3190\COMMCDOC.CPP +SAMPLES\MSDN\TECHART\3190\COMMCDOC.H +SAMPLES\MSDN\TECHART\3190\COMMCHAT.CPP +SAMPLES\MSDN\TECHART\3190\COMMCHAT.H +SAMPLES\MSDN\TECHART\3190\COMMCHAT.MAK +SAMPLES\MSDN\TECHART\3190\COMMCHAT.RC +SAMPLES\MSDN\TECHART\3190\COMMCVW.CPP +SAMPLES\MSDN\TECHART\3190\COMMCVW.H +SAMPLES\MSDN\TECHART\3190\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3190\MAINFRM.H +SAMPLES\MSDN\TECHART\3190\NETBIOS.CPP +SAMPLES\MSDN\TECHART\3190\NETBIOS.H +SAMPLES\MSDN\TECHART\3190\NPIPE.CPP +SAMPLES\MSDN\TECHART\3190\NPIPE.H +SAMPLES\MSDN\TECHART\3190\PIPEVARS +SAMPLES\MSDN\TECHART\3190\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\3190\PROTOCOL.H +SAMPLES\MSDN\TECHART\3190\README.TXT +SAMPLES\MSDN\TECHART\3190\RES +SAMPLES\MSDN\TECHART\3190\RESOURCE.H +SAMPLES\MSDN\TECHART\3190\SOCKETS.CPP +SAMPLES\MSDN\TECHART\3190\SOCKETS.H +SAMPLES\MSDN\TECHART\3190\SPLITFRM.CPP +SAMPLES\MSDN\TECHART\3190\SPLITFRM.H +SAMPLES\MSDN\TECHART\3190\STDAFX.CPP +SAMPLES\MSDN\TECHART\3190\STDAFX.H +SAMPLES\MSDN\TECHART\3190\SUBSPLIT.CPP +SAMPLES\MSDN\TECHART\3190\SUBSPLIT.H +SAMPLES\MSDN\TECHART\3190\WINREL +SAMPLES\MSDN\TECHART\3190\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\3190\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\3190\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\3190\RES\COMMCDOC.ICO +SAMPLES\MSDN\TECHART\3190\RES\COMMCHAT.ICO +SAMPLES\MSDN\TECHART\3190\RES\COMMCHAT.RC2 +SAMPLES\MSDN\TECHART\3190\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3190\WINREL\COMMCHAT.EXE +SAMPLES\MSDN\TECHART\3192\SQLEYE +SAMPLES\MSDN\TECHART\3192\SQLEYE\CONNECT.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\DIALOGS.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\EXITREMO.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\EXITREMO.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\GHOST.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\HRESULTS.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\HRESULTS.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\IN.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\INITREMO.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\INITREMO.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\INITSERV.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\INITSERV.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\LANGEXEC.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\LANGEXEC.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\MNGESERV.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\MNGESERV.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\OUT.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\RESOURCE.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\ROWSTUFF.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\ROWSTUFF.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\RPC.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\RPCEXEC.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\RPCEXEC.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\SENDMSG.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\SENDMSG.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\SLEEP.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLCBS.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLCBS.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLEYE.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLEYE.EXE +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLEYE.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLEYE.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLEYE.MAK +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLEYE.MAP +SAMPLES\MSDN\TECHART\3192\SQLEYE\SQLEYE.RC +SAMPLES\MSDN\TECHART\3192\SQLEYE\STATS.C +SAMPLES\MSDN\TECHART\3192\SQLEYE\STATS.H +SAMPLES\MSDN\TECHART\3192\SQLEYE\STATS.ICO +SAMPLES\MSDN\TECHART\3192\SQLEYE\WAITING.ICO +SAMPLES\MSDN\TECHART\3194\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3194\GLEASDOC.CPP +SAMPLES\MSDN\TECHART\3194\GLEASDOC.H +SAMPLES\MSDN\TECHART\3194\GLEASVW.CPP +SAMPLES\MSDN\TECHART\3194\GLEASVW.H +SAMPLES\MSDN\TECHART\3194\GLEASY.CPP +SAMPLES\MSDN\TECHART\3194\GLEASY.H +SAMPLES\MSDN\TECHART\3194\GLEASY.MAK +SAMPLES\MSDN\TECHART\3194\GLEASY.RC +SAMPLES\MSDN\TECHART\3194\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3194\MAINFRM.H +SAMPLES\MSDN\TECHART\3194\README.TXT +SAMPLES\MSDN\TECHART\3194\RES +SAMPLES\MSDN\TECHART\3194\RESOURCE.H +SAMPLES\MSDN\TECHART\3194\STDAFX.CPP +SAMPLES\MSDN\TECHART\3194\STDAFX.H +SAMPLES\MSDN\TECHART\3194\X86-R +SAMPLES\MSDN\TECHART\3194\RES\GLEASY.ICO +SAMPLES\MSDN\TECHART\3194\RES\GLEASY.RC2 +SAMPLES\MSDN\TECHART\3194\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\3194\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3194\X86-R\GLEASY.EXE +SAMPLES\MSDN\TECHART\3196\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3196\GLEASDOC.CPP +SAMPLES\MSDN\TECHART\3196\GLEASDOC.H +SAMPLES\MSDN\TECHART\3196\GLEASVW.CPP +SAMPLES\MSDN\TECHART\3196\GLEASVW.H +SAMPLES\MSDN\TECHART\3196\GLEASY.CPP +SAMPLES\MSDN\TECHART\3196\GLEASY.H +SAMPLES\MSDN\TECHART\3196\GLEASY.MAK +SAMPLES\MSDN\TECHART\3196\GLEASY.RC +SAMPLES\MSDN\TECHART\3196\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3196\MAINFRM.H +SAMPLES\MSDN\TECHART\3196\README.TXT +SAMPLES\MSDN\TECHART\3196\RES +SAMPLES\MSDN\TECHART\3196\RESOURCE.H +SAMPLES\MSDN\TECHART\3196\STDAFX.CPP +SAMPLES\MSDN\TECHART\3196\STDAFX.H +SAMPLES\MSDN\TECHART\3196\X86-R +SAMPLES\MSDN\TECHART\3196\RES\GLEASY.ICO +SAMPLES\MSDN\TECHART\3196\RES\GLEASY.RC2 +SAMPLES\MSDN\TECHART\3196\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\3196\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3196\X86-R\GLEASY.EXE +SAMPLES\MSDN\TECHART\3197\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3197\GLPAL.CPP +SAMPLES\MSDN\TECHART\3197\GLPAL.H +SAMPLES\MSDN\TECHART\3197\GLPAL.MAK +SAMPLES\MSDN\TECHART\3197\GLPAL.RC +SAMPLES\MSDN\TECHART\3197\GLPALDOC.CPP +SAMPLES\MSDN\TECHART\3197\GLPALDOC.H +SAMPLES\MSDN\TECHART\3197\GLPALVW.CPP +SAMPLES\MSDN\TECHART\3197\GLPALVW.H +SAMPLES\MSDN\TECHART\3197\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3197\MAINFRM.H +SAMPLES\MSDN\TECHART\3197\PALDLG.CPP +SAMPLES\MSDN\TECHART\3197\PALDLG.H +SAMPLES\MSDN\TECHART\3197\README.TXT +SAMPLES\MSDN\TECHART\3197\RES +SAMPLES\MSDN\TECHART\3197\RESOURCE.H +SAMPLES\MSDN\TECHART\3197\STDAFX.CPP +SAMPLES\MSDN\TECHART\3197\STDAFX.H +SAMPLES\MSDN\TECHART\3197\X86-R +SAMPLES\MSDN\TECHART\3197\RES\GLPAL.ICO +SAMPLES\MSDN\TECHART\3197\RES\GLPAL.RC2 +SAMPLES\MSDN\TECHART\3197\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\3197\X86-R\GLPAL.EXE +SAMPLES\MSDN\TECHART\3203\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3203\EASYGDOC.CPP +SAMPLES\MSDN\TECHART\3203\EASYGDOC.H +SAMPLES\MSDN\TECHART\3203\EASYGL.CPP +SAMPLES\MSDN\TECHART\3203\EASYGL.H +SAMPLES\MSDN\TECHART\3203\EASYGL.MAK +SAMPLES\MSDN\TECHART\3203\EASYGL.RC +SAMPLES\MSDN\TECHART\3203\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3203\MAINFRM.H +SAMPLES\MSDN\TECHART\3203\README.TXT +SAMPLES\MSDN\TECHART\3203\RES +SAMPLES\MSDN\TECHART\3203\RESOURCE.H +SAMPLES\MSDN\TECHART\3203\SCENE.CPP +SAMPLES\MSDN\TECHART\3203\SCENE.H +SAMPLES\MSDN\TECHART\3203\SCENEVW.CPP +SAMPLES\MSDN\TECHART\3203\SCENEVW.H +SAMPLES\MSDN\TECHART\3203\STDAFX.CPP +SAMPLES\MSDN\TECHART\3203\STDAFX.H +SAMPLES\MSDN\TECHART\3203\X86-R +SAMPLES\MSDN\TECHART\3203\RES\EASYGL.ICO +SAMPLES\MSDN\TECHART\3203\RES\EASYGL.RC2 +SAMPLES\MSDN\TECHART\3203\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\3203\X86-R\EASYGL.EXE +SAMPLES\MSDN\TECHART\3205\CGL.CPP +SAMPLES\MSDN\TECHART\3205\CGL.H +SAMPLES\MSDN\TECHART\3205\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\3205\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\3205\GLLIB.CPP +SAMPLES\MSDN\TECHART\3205\GLLIB.DEF +SAMPLES\MSDN\TECHART\3205\GLLIB.H +SAMPLES\MSDN\TECHART\3205\GLLIB.LIB +SAMPLES\MSDN\TECHART\3205\GLLIB.MAK +SAMPLES\MSDN\TECHART\3205\GLLIB.RC +SAMPLES\MSDN\TECHART\3205\GLVIEW.CPP +SAMPLES\MSDN\TECHART\3205\GLVIEW.H +SAMPLES\MSDN\TECHART\3205\IMAGE.CPP +SAMPLES\MSDN\TECHART\3205\IMAGE.H +SAMPLES\MSDN\TECHART\3205\LIB +SAMPLES\MSDN\TECHART\3205\README.TXT +SAMPLES\MSDN\TECHART\3205\RES +SAMPLES\MSDN\TECHART\3205\RESOURCE.H +SAMPLES\MSDN\TECHART\3205\STDAFX.CPP +SAMPLES\MSDN\TECHART\3205\STDAFX.H +SAMPLES\MSDN\TECHART\3205\LIB\X86 +SAMPLES\MSDN\TECHART\3205\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\3205\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\3205\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\3205\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\3205\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\3215\INCLUDE +SAMPLES\MSDN\TECHART\3215\LIB +SAMPLES\MSDN\TECHART\3215\README.TXT +SAMPLES\MSDN\TECHART\3215\SRC +SAMPLES\MSDN\TECHART\3215\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\3215\LIB\X86 +SAMPLES\MSDN\TECHART\3215\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\3215\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\3215\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\3215\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\3215\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\3215\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\3215\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\3215\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\3215\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\3215\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\3215\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\3215\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\3215\SRC\METER.CPP +SAMPLES\MSDN\TECHART\3215\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\3215\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\3215\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\3215\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\3215\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\3215\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\3215\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\3215\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\3215\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\3215\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\3215\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\3215\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\3215\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\3216\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3216\ANIMWND.CPP +SAMPLES\MSDN\TECHART\3216\ANIMWND.H +SAMPLES\MSDN\TECHART\3216\FADE.CPP +SAMPLES\MSDN\TECHART\3216\MARKPNT.CPP +SAMPLES\MSDN\TECHART\3216\MARKPNT.H +SAMPLES\MSDN\TECHART\3216\MARKPNT.MAK +SAMPLES\MSDN\TECHART\3216\MARKPNT.RC +SAMPLES\MSDN\TECHART\3216\PAINTWND.CPP +SAMPLES\MSDN\TECHART\3216\PAINTWND.H +SAMPLES\MSDN\TECHART\3216\RES +SAMPLES\MSDN\TECHART\3216\RESOURCE.H +SAMPLES\MSDN\TECHART\3216\STDAFX.CPP +SAMPLES\MSDN\TECHART\3216\STDAFX.H +SAMPLES\MSDN\TECHART\3216\TOOLS.CPP +SAMPLES\MSDN\TECHART\3216\TOOLS.H +SAMPLES\MSDN\TECHART\3216\X86-R +SAMPLES\MSDN\TECHART\3216\RES\BLUE.BMP +SAMPLES\MSDN\TECHART\3216\RES\CORNER.BMP +SAMPLES\MSDN\TECHART\3216\RES\CURSOR1.CUR +SAMPLES\MSDN\TECHART\3216\RES\CYAN.BMP +SAMPLES\MSDN\TECHART\3216\RES\ERASER.BMP +SAMPLES\MSDN\TECHART\3216\RES\GRAY.BMP +SAMPLES\MSDN\TECHART\3216\RES\GREEN.BMP +SAMPLES\MSDN\TECHART\3216\RES\MARKPNT.ICO +SAMPLES\MSDN\TECHART\3216\RES\MARKPNT.RC2 +SAMPLES\MSDN\TECHART\3216\RES\PURPLE.BMP +SAMPLES\MSDN\TECHART\3216\RES\RED.BMP +SAMPLES\MSDN\TECHART\3216\RES\RING.BMP +SAMPLES\MSDN\TECHART\3216\RES\WHITE.BMP +SAMPLES\MSDN\TECHART\3216\RES\YELLOW.BMP +SAMPLES\MSDN\TECHART\3216\X86-R\MARKPNT.EXE +SAMPLES\MSDN\TECHART\3222\AUTORUN.BMP +SAMPLES\MSDN\TECHART\3222\AUTORUN.C +SAMPLES\MSDN\TECHART\3222\AUTORUN.DEF +SAMPLES\MSDN\TECHART\3222\AUTORUN.EXE +SAMPLES\MSDN\TECHART\3222\AUTORUN.H +SAMPLES\MSDN\TECHART\3222\AUTORUN.HLP +SAMPLES\MSDN\TECHART\3222\AUTORUN.HPJ +SAMPLES\MSDN\TECHART\3222\AUTORUN.ICO +SAMPLES\MSDN\TECHART\3222\AUTORUN.INF +SAMPLES\MSDN\TECHART\3222\AUTORUN.MAK +SAMPLES\MSDN\TECHART\3222\AUTORUN.RC +SAMPLES\MSDN\TECHART\3222\AUTORUN.RTF +SAMPLES\MSDN\TECHART\3222\AUTORUN.WRI +SAMPLES\MSDN\TECHART\3222\MAKEFILE +SAMPLES\MSDN\TECHART\3222\RESOURCE.H +SAMPLES\MSDN\TECHART\3222\SMALL.ICO +SAMPLES\MSDN\TECHART\3222\START16.BMP +SAMPLES\MSDN\TECHART\3222\START2.BMP +SAMPLES\MSDN\TECHART\3222\STATIC.EXE +SAMPLES\MSDN\TECHART\3223\CGL.CPP +SAMPLES\MSDN\TECHART\3223\CGL.H +SAMPLES\MSDN\TECHART\3223\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\3223\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\3223\GLLIB.CPP +SAMPLES\MSDN\TECHART\3223\GLLIB.DEF +SAMPLES\MSDN\TECHART\3223\GLLIB.H +SAMPLES\MSDN\TECHART\3223\GLLIB.LIB +SAMPLES\MSDN\TECHART\3223\GLLIB.MAK +SAMPLES\MSDN\TECHART\3223\GLLIB.RC +SAMPLES\MSDN\TECHART\3223\GLVIEW.CPP +SAMPLES\MSDN\TECHART\3223\GLVIEW.H +SAMPLES\MSDN\TECHART\3223\IMAGE.CPP +SAMPLES\MSDN\TECHART\3223\IMAGE.H +SAMPLES\MSDN\TECHART\3223\LIB +SAMPLES\MSDN\TECHART\3223\README.TXT +SAMPLES\MSDN\TECHART\3223\RES +SAMPLES\MSDN\TECHART\3223\RESOURCE.H +SAMPLES\MSDN\TECHART\3223\STDAFX.CPP +SAMPLES\MSDN\TECHART\3223\STDAFX.H +SAMPLES\MSDN\TECHART\3223\LIB\X86 +SAMPLES\MSDN\TECHART\3223\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\3223\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\3223\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\3223\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\3223\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\3224\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3224\EASYCDOC.CPP +SAMPLES\MSDN\TECHART\3224\EASYCDOC.H +SAMPLES\MSDN\TECHART\3224\EASYCI.CPP +SAMPLES\MSDN\TECHART\3224\EASYCI.H +SAMPLES\MSDN\TECHART\3224\EASYCI.MAK +SAMPLES\MSDN\TECHART\3224\EASYCI.RC +SAMPLES\MSDN\TECHART\3224\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3224\MAINFRM.H +SAMPLES\MSDN\TECHART\3224\README.TXT +SAMPLES\MSDN\TECHART\3224\RES +SAMPLES\MSDN\TECHART\3224\RESOURCE.H +SAMPLES\MSDN\TECHART\3224\SCENE.CPP +SAMPLES\MSDN\TECHART\3224\SCENE.H +SAMPLES\MSDN\TECHART\3224\SCENEVW.CPP +SAMPLES\MSDN\TECHART\3224\SCENEVW.H +SAMPLES\MSDN\TECHART\3224\STDAFX.CPP +SAMPLES\MSDN\TECHART\3224\STDAFX.H +SAMPLES\MSDN\TECHART\3224\X86-R +SAMPLES\MSDN\TECHART\3224\RES\EASYCI.ICO +SAMPLES\MSDN\TECHART\3224\RES\EASYCI.RC2 +SAMPLES\MSDN\TECHART\3224\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\3224\X86-R\EASYCI.EXE +SAMPLES\MSDN\TECHART\3226\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3226\ANIMWND.CPP +SAMPLES\MSDN\TECHART\3226\ANIMWND.H +SAMPLES\MSDN\TECHART\3226\CONFIGDL.CPP +SAMPLES\MSDN\TECHART\3226\CONFIGDL.H +SAMPLES\MSDN\TECHART\3226\MYWND.CPP +SAMPLES\MSDN\TECHART\3226\MYWND.H +SAMPLES\MSDN\TECHART\3226\NOTES.TXT +SAMPLES\MSDN\TECHART\3226\POP3.CPP +SAMPLES\MSDN\TECHART\3226\POP3.H +SAMPLES\MSDN\TECHART\3226\POP3.MAK +SAMPLES\MSDN\TECHART\3226\POP3.RC +SAMPLES\MSDN\TECHART\3226\RES +SAMPLES\MSDN\TECHART\3226\RESOURCE.H +SAMPLES\MSDN\TECHART\3226\SAVEWND.CPP +SAMPLES\MSDN\TECHART\3226\SAVEWND.H +SAMPLES\MSDN\TECHART\3226\STDAFX.CPP +SAMPLES\MSDN\TECHART\3226\STDAFX.H +SAMPLES\MSDN\TECHART\3226\X86-R +SAMPLES\MSDN\TECHART\3226\RES\CURSOR1.CUR +SAMPLES\MSDN\TECHART\3226\RES\DRGUI.BMP +SAMPLES\MSDN\TECHART\3226\RES\HEADSET2.BMP +SAMPLES\MSDN\TECHART\3226\RES\POP3.ICO +SAMPLES\MSDN\TECHART\3226\RES\POP3.RC2 +SAMPLES\MSDN\TECHART\3226\X86-R\POP3.SCR +SAMPLES\MSDN\TECHART\3228\INCLUDE +SAMPLES\MSDN\TECHART\3228\LIB +SAMPLES\MSDN\TECHART\3228\README.TXT +SAMPLES\MSDN\TECHART\3228\SRC +SAMPLES\MSDN\TECHART\3228\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\3228\LIB\X86 +SAMPLES\MSDN\TECHART\3228\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\3228\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\3228\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\3228\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\3228\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\3228\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\3228\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\3228\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\3228\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\3228\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\3228\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\3228\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\3228\SRC\METER.CPP +SAMPLES\MSDN\TECHART\3228\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\3228\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\3228\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\3228\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\3228\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\3228\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\3228\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\3228\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\3228\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\3228\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\3228\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\3228\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\3228\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\3268\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3268\EASYDDOC.CPP +SAMPLES\MSDN\TECHART\3268\EASYDDOC.H +SAMPLES\MSDN\TECHART\3268\EASYDIB.CPP +SAMPLES\MSDN\TECHART\3268\EASYDIB.H +SAMPLES\MSDN\TECHART\3268\EASYDIB.MAK +SAMPLES\MSDN\TECHART\3268\EASYDIB.RC +SAMPLES\MSDN\TECHART\3268\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3268\MAINFRM.H +SAMPLES\MSDN\TECHART\3268\README.TXT +SAMPLES\MSDN\TECHART\3268\RES +SAMPLES\MSDN\TECHART\3268\RESOURCE.H +SAMPLES\MSDN\TECHART\3268\SCENE.CPP +SAMPLES\MSDN\TECHART\3268\SCENE.H +SAMPLES\MSDN\TECHART\3268\SCENEVW.CPP +SAMPLES\MSDN\TECHART\3268\SCENEVW.H +SAMPLES\MSDN\TECHART\3268\STDAFX.CPP +SAMPLES\MSDN\TECHART\3268\STDAFX.H +SAMPLES\MSDN\TECHART\3268\X86-R +SAMPLES\MSDN\TECHART\3268\RES\EASYDIB.ICO +SAMPLES\MSDN\TECHART\3268\RES\EASYDIB.RC2 +SAMPLES\MSDN\TECHART\3268\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\3268\RES\SPLASH.DIB +SAMPLES\MSDN\TECHART\3268\X86-R\EASYDIB.EXE +SAMPLES\MSDN\TECHART\3270\GLLIB +SAMPLES\MSDN\TECHART\3270\GLLIB\CGL.CPP +SAMPLES\MSDN\TECHART\3270\GLLIB\CGL.H +SAMPLES\MSDN\TECHART\3270\GLLIB\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\3270\GLLIB\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\3270\GLLIB\GLLIB.CPP +SAMPLES\MSDN\TECHART\3270\GLLIB\GLLIB.DEF +SAMPLES\MSDN\TECHART\3270\GLLIB\GLLIB.H +SAMPLES\MSDN\TECHART\3270\GLLIB\GLLIB.LIB +SAMPLES\MSDN\TECHART\3270\GLLIB\GLLIB.MAK +SAMPLES\MSDN\TECHART\3270\GLLIB\GLLIB.RC +SAMPLES\MSDN\TECHART\3270\GLLIB\GLVIEW.CPP +SAMPLES\MSDN\TECHART\3270\GLLIB\GLVIEW.H +SAMPLES\MSDN\TECHART\3270\GLLIB\IMAGE.CPP +SAMPLES\MSDN\TECHART\3270\GLLIB\IMAGE.H +SAMPLES\MSDN\TECHART\3270\GLLIB\LIB +SAMPLES\MSDN\TECHART\3270\GLLIB\README.TXT +SAMPLES\MSDN\TECHART\3270\GLLIB\RES +SAMPLES\MSDN\TECHART\3270\GLLIB\RESOURCE.H +SAMPLES\MSDN\TECHART\3270\GLLIB\STDAFX.CPP +SAMPLES\MSDN\TECHART\3270\GLLIB\STDAFX.H +SAMPLES\MSDN\TECHART\3270\GLLIB\LIB\X86 +SAMPLES\MSDN\TECHART\3270\GLLIB\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\3270\GLLIB\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\3270\GLLIB\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\3270\GLLIB\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\3270\GLLIB\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\3271\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3271\DRVCLASS.CPP +SAMPLES\MSDN\TECHART\3271\DRVCLASS.H +SAMPLES\MSDN\TECHART\3271\INPCLASS.CPP +SAMPLES\MSDN\TECHART\3271\INPCLASS.H +SAMPLES\MSDN\TECHART\3271\KBDCL.MAK +SAMPLES\MSDN\TECHART\3271\KBDCLASS.H +SAMPLES\MSDN\TECHART\3271\KBDCLASS.LNK +SAMPLES\MSDN\TECHART\3271\KBDCLASS.RC +SAMPLES\MSDN\TECHART\3271\KBDLOG.H +SAMPLES\MSDN\TECHART\3271\KBDLOG.RC +SAMPLES\MSDN\TECHART\3271\MCLASSES.CPP +SAMPLES\MSDN\TECHART\3271\MOUCLASS.H +SAMPLES\MSDN\TECHART\3271\MOUCLASS.LNK +SAMPLES\MSDN\TECHART\3271\MOUCLASS.RC +SAMPLES\MSDN\TECHART\3271\MOULOG.H +SAMPLES\MSDN\TECHART\3271\MOULOG.MC +SAMPLES\MSDN\TECHART\3271\MOULOG.RC +SAMPLES\MSDN\TECHART\3271\MOUSECL.MAK +SAMPLES\MSDN\TECHART\3271\MSG00001.BIN +SAMPLES\MSDN\TECHART\3273\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3273\DRVCLASS.CPP +SAMPLES\MSDN\TECHART\3273\DRVCLASS.H +SAMPLES\MSDN\TECHART\3273\INPCLASS.CPP +SAMPLES\MSDN\TECHART\3273\INPCLASS.H +SAMPLES\MSDN\TECHART\3273\KBDCL.MAK +SAMPLES\MSDN\TECHART\3273\KBDCLASS.H +SAMPLES\MSDN\TECHART\3273\KBDCLASS.LNK +SAMPLES\MSDN\TECHART\3273\KBDCLASS.RC +SAMPLES\MSDN\TECHART\3273\KBDLOG.H +SAMPLES\MSDN\TECHART\3273\KBDLOG.RC +SAMPLES\MSDN\TECHART\3273\MCLASSES.CPP +SAMPLES\MSDN\TECHART\3273\MOUCLASS.H +SAMPLES\MSDN\TECHART\3273\MOUCLASS.LNK +SAMPLES\MSDN\TECHART\3273\MOUCLASS.RC +SAMPLES\MSDN\TECHART\3273\MOULOG.H +SAMPLES\MSDN\TECHART\3273\MOULOG.MC +SAMPLES\MSDN\TECHART\3273\MOULOG.RC +SAMPLES\MSDN\TECHART\3273\MOUSECL.MAK +SAMPLES\MSDN\TECHART\3273\MSG00001.BIN +SAMPLES\MSDN\TECHART\3274\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3274\CHILDFRM.CPP +SAMPLES\MSDN\TECHART\3274\CHILDFRM.H +SAMPLES\MSDN\TECHART\3274\DOSFRAME.CPP +SAMPLES\MSDN\TECHART\3274\DOSFRAME.H +SAMPLES\MSDN\TECHART\3274\DOSVIEW.CPP +SAMPLES\MSDN\TECHART\3274\DOSVIEW.H +SAMPLES\MSDN\TECHART\3274\FILEVIEW.CPP +SAMPLES\MSDN\TECHART\3274\FILEVIEW.H +SAMPLES\MSDN\TECHART\3274\HEADERS.H +SAMPLES\MSDN\TECHART\3274\HEADSTR.H +SAMPLES\MSDN\TECHART\3274\INJLIB.CPP +SAMPLES\MSDN\TECHART\3274\INJLIB.H +SAMPLES\MSDN\TECHART\3274\LECFRAME.CPP +SAMPLES\MSDN\TECHART\3274\LECFRAME.H +SAMPLES\MSDN\TECHART\3274\LEVIEW.CPP +SAMPLES\MSDN\TECHART\3274\LEVIEW.H +SAMPLES\MSDN\TECHART\3274\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3274\MAINFRM.H +SAMPLES\MSDN\TECHART\3274\NECFRAME.CPP +SAMPLES\MSDN\TECHART\3274\NECFRAME.H +SAMPLES\MSDN\TECHART\3274\NEVIEW.CPP +SAMPLES\MSDN\TECHART\3274\NEVIEW.H +SAMPLES\MSDN\TECHART\3274\NOSYSFRA.CPP +SAMPLES\MSDN\TECHART\3274\NOSYSFRA.H +SAMPLES\MSDN\TECHART\3274\PECFRAME.CPP +SAMPLES\MSDN\TECHART\3274\PECFRAME.H +SAMPLES\MSDN\TECHART\3274\PEVIEW.CPP +SAMPLES\MSDN\TECHART\3274\PEVIEW.H +SAMPLES\MSDN\TECHART\3274\PLIST.CPP +SAMPLES\MSDN\TECHART\3274\PLIST.H +SAMPLES\MSDN\TECHART\3274\PVIEW.CPP +SAMPLES\MSDN\TECHART\3274\PVIEW.H +SAMPLES\MSDN\TECHART\3274\PVIEWDOC.CPP +SAMPLES\MSDN\TECHART\3274\PVIEWDOC.H +SAMPLES\MSDN\TECHART\3274\RAWFRAME.CPP +SAMPLES\MSDN\TECHART\3274\RAWFRAME.H +SAMPLES\MSDN\TECHART\3274\RAWVIEW.CPP +SAMPLES\MSDN\TECHART\3274\RAWVIEW.H +SAMPLES\MSDN\TECHART\3274\README.TXT +SAMPLES\MSDN\TECHART\3274\RES +SAMPLES\MSDN\TECHART\3274\RESOURCE.H +SAMPLES\MSDN\TECHART\3274\STDAFX.CPP +SAMPLES\MSDN\TECHART\3274\STDAFX.H +SAMPLES\MSDN\TECHART\3274\VIEWFDOC.CPP +SAMPLES\MSDN\TECHART\3274\VIEWFDOC.H +SAMPLES\MSDN\TECHART\3274\VIEWFILE.CPP +SAMPLES\MSDN\TECHART\3274\VIEWFILE.H +SAMPLES\MSDN\TECHART\3274\VIEWFILE.MAK +SAMPLES\MSDN\TECHART\3274\VIEWFILE.RC +SAMPLES\MSDN\TECHART\3274\VIEWFVW.CPP +SAMPLES\MSDN\TECHART\3274\VIEWFVW.H +SAMPLES\MSDN\TECHART\3274\WINREL +SAMPLES\MSDN\TECHART\3274\RES\ICON1.ICO +SAMPLES\MSDN\TECHART\3274\RES\IDR_DOST.ICO +SAMPLES\MSDN\TECHART\3274\RES\IDR_LETY.ICO +SAMPLES\MSDN\TECHART\3274\RES\IDR_PETY.ICO +SAMPLES\MSDN\TECHART\3274\RES\IDR_PVIE.ICO +SAMPLES\MSDN\TECHART\3274\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3274\RES\VIEWFDOC.ICO +SAMPLES\MSDN\TECHART\3274\RES\VIEWFILE.ICO +SAMPLES\MSDN\TECHART\3274\RES\VIEWFILE.RC2 +SAMPLES\MSDN\TECHART\3274\WINREL\MFC30.DLL +SAMPLES\MSDN\TECHART\3274\WINREL\MSVCRT20.DLL +SAMPLES\MSDN\TECHART\3274\WINREL\YAHU.EXE +SAMPLES\MSDN\TECHART\3301\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3301\SC.EXE +SAMPLES\MSDN\TECHART\3310\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3310\CEMF.CPP +SAMPLES\MSDN\TECHART\3310\CEMF.H +SAMPLES\MSDN\TECHART\3310\EMFINFOV.CPP +SAMPLES\MSDN\TECHART\3310\EMFINFOV.H +SAMPLES\MSDN\TECHART\3310\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3310\MAINFRM.H +SAMPLES\MSDN\TECHART\3310\METAVDOC.CPP +SAMPLES\MSDN\TECHART\3310\METAVDOC.H +SAMPLES\MSDN\TECHART\3310\METAVVW.CPP +SAMPLES\MSDN\TECHART\3310\METAVVW.H +SAMPLES\MSDN\TECHART\3310\METAVW1.CPP +SAMPLES\MSDN\TECHART\3310\METAVW1.H +SAMPLES\MSDN\TECHART\3310\METAVW1.MAK +SAMPLES\MSDN\TECHART\3310\METAVW1.RC +SAMPLES\MSDN\TECHART\3310\RES +SAMPLES\MSDN\TECHART\3310\RESOURCE.H +SAMPLES\MSDN\TECHART\3310\STDAFX.CPP +SAMPLES\MSDN\TECHART\3310\STDAFX.H +SAMPLES\MSDN\TECHART\3310\RES\IDR_EMFI.ICO +SAMPLES\MSDN\TECHART\3310\RES\METAVDOC.ICO +SAMPLES\MSDN\TECHART\3310\RES\METAVW1.ICO +SAMPLES\MSDN\TECHART\3310\RES\METAVW1.RC2 +SAMPLES\MSDN\TECHART\3310\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\3313\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\3313\CCABLES.CPP +SAMPLES\MSDN\TECHART\3313\CCABLES.H +SAMPLES\MSDN\TECHART\3313\DRAGBDOC.CPP +SAMPLES\MSDN\TECHART\3313\DRAGBDOC.H +SAMPLES\MSDN\TECHART\3313\DRAGBEZ.CPP + +SAMPLES\MSDN\TECHART\3313\DRAGBEZ.EXE +SAMPLES\MSDN\TECHART\3313\DRAGBEZ.H +SAMPLES\MSDN\TECHART\3313\DRAGBEZ.MAK +SAMPLES\MSDN\TECHART\3313\DRAGBEZ.RC +SAMPLES\MSDN\TECHART\3313\DRAGBVW.CPP +SAMPLES\MSDN\TECHART\3313\DRAGBVW.H +SAMPLES\MSDN\TECHART\3313\MAINFRM.CPP +SAMPLES\MSDN\TECHART\3313\MAINFRM.H +SAMPLES\MSDN\TECHART\3313\RES +SAMPLES\MSDN\TECHART\3313\RESOURCE.H +SAMPLES\MSDN\TECHART\3313\STDAFX.CPP +SAMPLES\MSDN\TECHART\3313\STDAFX.H +SAMPLES\MSDN\TECHART\3313\RES\DRAGBEZ.ICO +SAMPLES\MSDN\TECHART\3313\RES\DRAGBEZ.RC2 +SAMPLES\MSDN\TECHART\3313\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4055\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4055\CMYSTATUSBAR.CPP +SAMPLES\MSDN\TECHART\4055\CMYSTATUSBAR.H +SAMPLES\MSDN\TECHART\4055\CSCENEBOX.CPP +SAMPLES\MSDN\TECHART\4055\CSCENEBOX.H +SAMPLES\MSDN\TECHART\4055\CSCENEDODEC.CPP +SAMPLES\MSDN\TECHART\4055\CSCENEDODEC.H +SAMPLES\MSDN\TECHART\4055\CSCENEPYRAMID.CPP +SAMPLES\MSDN\TECHART\4055\CSCENEPYRAMID.H +SAMPLES\MSDN\TECHART\4055\CSHAPEMENU.CPP +SAMPLES\MSDN\TECHART\4055\CSHAPEMENU.H +SAMPLES\MSDN\TECHART\4055\CSIMPLEDIB.CPP +SAMPLES\MSDN\TECHART\4055\CSIMPLEDIB.H +SAMPLES\MSDN\TECHART\4055\EASYBDOC.CPP +SAMPLES\MSDN\TECHART\4055\EASYBDOC.H +SAMPLES\MSDN\TECHART\4055\EASYBIT.CPP +SAMPLES\MSDN\TECHART\4055\EASYBIT.H +SAMPLES\MSDN\TECHART\4055\EASYBIT.MAK +SAMPLES\MSDN\TECHART\4055\EASYBIT.RC +SAMPLES\MSDN\TECHART\4055\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4055\MAINFRM.H +SAMPLES\MSDN\TECHART\4055\README.TXT +SAMPLES\MSDN\TECHART\4055\RES +SAMPLES\MSDN\TECHART\4055\RESOURCE.H +SAMPLES\MSDN\TECHART\4055\SCENE.CPP +SAMPLES\MSDN\TECHART\4055\SCENE.H +SAMPLES\MSDN\TECHART\4055\SCENECI.CPP +SAMPLES\MSDN\TECHART\4055\SCENECI.H +SAMPLES\MSDN\TECHART\4055\SCENEVW.CPP +SAMPLES\MSDN\TECHART\4055\SCENEVW.H +SAMPLES\MSDN\TECHART\4055\SCRAP.CPP +SAMPLES\MSDN\TECHART\4055\SHAPES.CPP +SAMPLES\MSDN\TECHART\4055\SHAPES.H +SAMPLES\MSDN\TECHART\4055\STDAFX.CPP +SAMPLES\MSDN\TECHART\4055\STDAFX.H +SAMPLES\MSDN\TECHART\4055\X86-R +SAMPLES\MSDN\TECHART\4055\RES\EASYBIT.ICO +SAMPLES\MSDN\TECHART\4055\RES\EASYBIT.RC2 +SAMPLES\MSDN\TECHART\4055\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\4055\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4055\X86-R\EASYBIT.EXE +SAMPLES\MSDN\TECHART\4056\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4056\CMYSTATUSBAR.CPP +SAMPLES\MSDN\TECHART\4056\CMYSTATUSBAR.H +SAMPLES\MSDN\TECHART\4056\CSCENEBOX.CPP +SAMPLES\MSDN\TECHART\4056\CSCENEBOX.H +SAMPLES\MSDN\TECHART\4056\CSCENEDODEC.CPP +SAMPLES\MSDN\TECHART\4056\CSCENEDODEC.H +SAMPLES\MSDN\TECHART\4056\CSCENEPYRAMID.CPP +SAMPLES\MSDN\TECHART\4056\CSCENEPYRAMID.H +SAMPLES\MSDN\TECHART\4056\CSHAPEMENU.CPP +SAMPLES\MSDN\TECHART\4056\CSHAPEMENU.H +SAMPLES\MSDN\TECHART\4056\CSIMPLEDIB.CPP +SAMPLES\MSDN\TECHART\4056\CSIMPLEDIB.H +SAMPLES\MSDN\TECHART\4056\EASYBDOC.CPP +SAMPLES\MSDN\TECHART\4056\EASYBDOC.H +SAMPLES\MSDN\TECHART\4056\EASYBIT.CPP +SAMPLES\MSDN\TECHART\4056\EASYBIT.H +SAMPLES\MSDN\TECHART\4056\EASYBIT.MAK +SAMPLES\MSDN\TECHART\4056\EASYBIT.RC +SAMPLES\MSDN\TECHART\4056\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4056\MAINFRM.H +SAMPLES\MSDN\TECHART\4056\README.TXT +SAMPLES\MSDN\TECHART\4056\RES +SAMPLES\MSDN\TECHART\4056\RESOURCE.H +SAMPLES\MSDN\TECHART\4056\SCENE.CPP +SAMPLES\MSDN\TECHART\4056\SCENE.H +SAMPLES\MSDN\TECHART\4056\SCENECI.CPP +SAMPLES\MSDN\TECHART\4056\SCENECI.H +SAMPLES\MSDN\TECHART\4056\SCENEVW.CPP +SAMPLES\MSDN\TECHART\4056\SCENEVW.H +SAMPLES\MSDN\TECHART\4056\SCRAP.CPP +SAMPLES\MSDN\TECHART\4056\SHAPES.CPP +SAMPLES\MSDN\TECHART\4056\SHAPES.H +SAMPLES\MSDN\TECHART\4056\STDAFX.CPP +SAMPLES\MSDN\TECHART\4056\STDAFX.H +SAMPLES\MSDN\TECHART\4056\X86-R +SAMPLES\MSDN\TECHART\4056\RES\EASYBIT.ICO +SAMPLES\MSDN\TECHART\4056\RES\EASYBIT.RC2 +SAMPLES\MSDN\TECHART\4056\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\4056\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4056\X86-R\EASYBIT.EXE +SAMPLES\MSDN\TECHART\4057\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4057\CMYSTATUSBAR.CPP +SAMPLES\MSDN\TECHART\4057\CMYSTATUSBAR.H +SAMPLES\MSDN\TECHART\4057\CSCENEBOX.CPP +SAMPLES\MSDN\TECHART\4057\CSCENEBOX.H +SAMPLES\MSDN\TECHART\4057\CSCENEDODEC.CPP +SAMPLES\MSDN\TECHART\4057\CSCENEDODEC.H +SAMPLES\MSDN\TECHART\4057\CSCENEPYRAMID.CPP +SAMPLES\MSDN\TECHART\4057\CSCENEPYRAMID.H +SAMPLES\MSDN\TECHART\4057\CSHAPEMENU.CPP +SAMPLES\MSDN\TECHART\4057\CSHAPEMENU.H +SAMPLES\MSDN\TECHART\4057\CSIMPLEDIB.CPP +SAMPLES\MSDN\TECHART\4057\CSIMPLEDIB.H +SAMPLES\MSDN\TECHART\4057\EASYBDOC.CPP +SAMPLES\MSDN\TECHART\4057\EASYBDOC.H +SAMPLES\MSDN\TECHART\4057\EASYBIT.CPP +SAMPLES\MSDN\TECHART\4057\EASYBIT.H +SAMPLES\MSDN\TECHART\4057\EASYBIT.MAK +SAMPLES\MSDN\TECHART\4057\EASYBIT.RC +SAMPLES\MSDN\TECHART\4057\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4057\MAINFRM.H +SAMPLES\MSDN\TECHART\4057\README.TXT +SAMPLES\MSDN\TECHART\4057\RES +SAMPLES\MSDN\TECHART\4057\RESOURCE.H +SAMPLES\MSDN\TECHART\4057\SCENE.CPP +SAMPLES\MSDN\TECHART\4057\SCENE.H +SAMPLES\MSDN\TECHART\4057\SCENECI.CPP +SAMPLES\MSDN\TECHART\4057\SCENECI.H +SAMPLES\MSDN\TECHART\4057\SCENEVW.CPP +SAMPLES\MSDN\TECHART\4057\SCENEVW.H +SAMPLES\MSDN\TECHART\4057\SCRAP.CPP +SAMPLES\MSDN\TECHART\4057\SHAPES.CPP +SAMPLES\MSDN\TECHART\4057\SHAPES.H +SAMPLES\MSDN\TECHART\4057\STDAFX.CPP +SAMPLES\MSDN\TECHART\4057\STDAFX.H +SAMPLES\MSDN\TECHART\4057\X86-R +SAMPLES\MSDN\TECHART\4057\RES\EASYBIT.ICO +SAMPLES\MSDN\TECHART\4057\RES\EASYBIT.RC2 +SAMPLES\MSDN\TECHART\4057\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\4057\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4057\X86-R\EASYBIT.EXE +SAMPLES\MSDN\TECHART\4058\CGL.CPP +SAMPLES\MSDN\TECHART\4058\CGL.H +SAMPLES\MSDN\TECHART\4058\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\4058\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\4058\GLLIB.CPP +SAMPLES\MSDN\TECHART\4058\GLLIB.DEF +SAMPLES\MSDN\TECHART\4058\GLLIB.H +SAMPLES\MSDN\TECHART\4058\GLLIB.LIB +SAMPLES\MSDN\TECHART\4058\GLLIB.MAK +SAMPLES\MSDN\TECHART\4058\GLLIB.RC +SAMPLES\MSDN\TECHART\4058\GLVIEW.CPP +SAMPLES\MSDN\TECHART\4058\GLVIEW.H +SAMPLES\MSDN\TECHART\4058\IMAGE.CPP +SAMPLES\MSDN\TECHART\4058\IMAGE.H +SAMPLES\MSDN\TECHART\4058\LIB +SAMPLES\MSDN\TECHART\4058\README.TXT +SAMPLES\MSDN\TECHART\4058\RES +SAMPLES\MSDN\TECHART\4058\RESOURCE.H +SAMPLES\MSDN\TECHART\4058\STDAFX.CPP +SAMPLES\MSDN\TECHART\4058\STDAFX.H +SAMPLES\MSDN\TECHART\4058\LIB\X86 +SAMPLES\MSDN\TECHART\4058\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\4058\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\4058\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\4058\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\4058\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\4059\CGL.CPP +SAMPLES\MSDN\TECHART\4059\CGL.H +SAMPLES\MSDN\TECHART\4059\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\4059\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\4059\GLLIB.CPP +SAMPLES\MSDN\TECHART\4059\GLLIB.DEF +SAMPLES\MSDN\TECHART\4059\GLLIB.H +SAMPLES\MSDN\TECHART\4059\GLLIB.LIB +SAMPLES\MSDN\TECHART\4059\GLLIB.MAK +SAMPLES\MSDN\TECHART\4059\GLLIB.RC +SAMPLES\MSDN\TECHART\4059\GLVIEW.CPP +SAMPLES\MSDN\TECHART\4059\GLVIEW.H +SAMPLES\MSDN\TECHART\4059\IMAGE.CPP +SAMPLES\MSDN\TECHART\4059\IMAGE.H +SAMPLES\MSDN\TECHART\4059\LIB +SAMPLES\MSDN\TECHART\4059\README.TXT +SAMPLES\MSDN\TECHART\4059\RES +SAMPLES\MSDN\TECHART\4059\RESOURCE.H +SAMPLES\MSDN\TECHART\4059\STDAFX.CPP +SAMPLES\MSDN\TECHART\4059\STDAFX.H +SAMPLES\MSDN\TECHART\4059\LIB\X86 +SAMPLES\MSDN\TECHART\4059\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\4059\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\4059\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\4059\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\4059\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\4060\CGL.CPP +SAMPLES\MSDN\TECHART\4060\CGL.H +SAMPLES\MSDN\TECHART\4060\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\4060\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\4060\GLLIB.CPP +SAMPLES\MSDN\TECHART\4060\GLLIB.DEF +SAMPLES\MSDN\TECHART\4060\GLLIB.H +SAMPLES\MSDN\TECHART\4060\GLLIB.LIB +SAMPLES\MSDN\TECHART\4060\GLLIB.MAK +SAMPLES\MSDN\TECHART\4060\GLLIB.RC +SAMPLES\MSDN\TECHART\4060\GLVIEW.CPP +SAMPLES\MSDN\TECHART\4060\GLVIEW.H +SAMPLES\MSDN\TECHART\4060\IMAGE.CPP +SAMPLES\MSDN\TECHART\4060\IMAGE.H +SAMPLES\MSDN\TECHART\4060\LIB +SAMPLES\MSDN\TECHART\4060\README.TXT +SAMPLES\MSDN\TECHART\4060\RES +SAMPLES\MSDN\TECHART\4060\RESOURCE.H +SAMPLES\MSDN\TECHART\4060\STDAFX.CPP +SAMPLES\MSDN\TECHART\4060\STDAFX.H +SAMPLES\MSDN\TECHART\4060\LIB\X86 +SAMPLES\MSDN\TECHART\4060\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\4060\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\4060\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\4060\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\4060\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\4081\CLI +SAMPLES\MSDN\TECHART\4081\COMMON +SAMPLES\MSDN\TECHART\4081\SRV +SAMPLES\MSDN\TECHART\4081\CLI\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\4081\CLI\BROWSEDI.H +SAMPLES\MSDN\TECHART\4081\CLI\CLIAPP.CPP +SAMPLES\MSDN\TECHART\4081\CLI\CLIAPP.H +SAMPLES\MSDN\TECHART\4081\CLI\CLIAPP.MAK +SAMPLES\MSDN\TECHART\4081\CLI\CLIAPP.RC +SAMPLES\MSDN\TECHART\4081\CLI\CLIAPP.VCP +SAMPLES\MSDN\TECHART\4081\CLI\CLIDOC.CPP +SAMPLES\MSDN\TECHART\4081\CLI\CLIDOC.H +SAMPLES\MSDN\TECHART\4081\CLI\CLIVIEW.CPP +SAMPLES\MSDN\TECHART\4081\CLI\CLIVIEW.H +SAMPLES\MSDN\TECHART\4081\CLI\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4081\CLI\MAINFRM.H +SAMPLES\MSDN\TECHART\4081\CLI\RES +SAMPLES\MSDN\TECHART\4081\CLI\RESOURCE.H +SAMPLES\MSDN\TECHART\4081\CLI\STDAFX.CPP +SAMPLES\MSDN\TECHART\4081\CLI\STDAFX.H +SAMPLES\MSDN\TECHART\4081\CLI\WINREL +SAMPLES\MSDN\TECHART\4081\CLI\RES\NPSECCLI.ICO +SAMPLES\MSDN\TECHART\4081\CLI\RES\NPSECCLI.RC2 +SAMPLES\MSDN\TECHART\4081\CLI\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4081\CLI\WINREL\MSVCRT20.DLL +SAMPLES\MSDN\TECHART\4081\COMMON\CFILEMAP.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\CFILEMAP.H +SAMPLES\MSDN\TECHART\4081\COMMON\CMUTEX.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\CMUTEX.H +SAMPLES\MSDN\TECHART\4081\COMMON\COMCLASS.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\COMCLASS.H +SAMPLES\MSDN\TECHART\4081\COMMON\COMMON.H +SAMPLES\MSDN\TECHART\4081\COMMON\DBCODE.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\DBCODE.H +SAMPLES\MSDN\TECHART\4081\COMMON\DBDIALOG.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\DBDIALOG.H +SAMPLES\MSDN\TECHART\4081\COMMON\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\EASYVIEW.H +SAMPLES\MSDN\TECHART\4081\COMMON\NPIPE.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\NPIPE.H +SAMPLES\MSDN\TECHART\4081\COMMON\PIPEVARS +SAMPLES\MSDN\TECHART\4081\COMMON\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\PROTOCOL.H +SAMPLES\MSDN\TECHART\4081\COMMON\SAVE +SAMPLES\MSDN\TECHART\4081\COMMON\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\4081\COMMON\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\4081\SRV\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4081\SRV\MAINFRM.H +SAMPLES\MSDN\TECHART\4081\SRV\RES +SAMPLES\MSDN\TECHART\4081\SRV\RESOURCE.H +SAMPLES\MSDN\TECHART\4081\SRV\SECSTUFF +SAMPLES\MSDN\TECHART\4081\SRV\SRVAPP.CPP +SAMPLES\MSDN\TECHART\4081\SRV\SRVAPP.H +SAMPLES\MSDN\TECHART\4081\SRV\SRVAPP.MAK +SAMPLES\MSDN\TECHART\4081\SRV\SRVAPP.RC +SAMPLES\MSDN\TECHART\4081\SRV\SRVAPP.VCP +SAMPLES\MSDN\TECHART\4081\SRV\SRVDOC.CPP +SAMPLES\MSDN\TECHART\4081\SRV\SRVDOC.H +SAMPLES\MSDN\TECHART\4081\SRV\SRVVIEW.CPP +SAMPLES\MSDN\TECHART\4081\SRV\SRVVIEW.H +SAMPLES\MSDN\TECHART\4081\SRV\SRVVIEW.MAK +SAMPLES\MSDN\TECHART\4081\SRV\SRVVIEW.VCP +SAMPLES\MSDN\TECHART\4081\SRV\STDAFX.CPP +SAMPLES\MSDN\TECHART\4081\SRV\STDAFX.H +SAMPLES\MSDN\TECHART\4081\SRV\VC30.REP +SAMPLES\MSDN\TECHART\4081\SRV\WINREL +SAMPLES\MSDN\TECHART\4081\SRV\RES\NPSCESRV.ICO +SAMPLES\MSDN\TECHART\4081\SRV\RES\NPSCESRV.RC2 +SAMPLES\MSDN\TECHART\4081\SRV\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4081\SRV\SECSTUFF\EXAMSTFF.CPP +SAMPLES\MSDN\TECHART\4081\SRV\SECSTUFF\EXAMSTFF.H +SAMPLES\MSDN\TECHART\4081\SRV\SECSTUFF\SEC.CPP +SAMPLES\MSDN\TECHART\4081\SRV\SECSTUFF\SEC.H +SAMPLES\MSDN\TECHART\4081\SRV\SECSTUFF\SECDIALO.CPP +SAMPLES\MSDN\TECHART\4081\SRV\SECSTUFF\SECDIALO.H +SAMPLES\MSDN\TECHART\4081\SRV\WINREL\SRVAPP.EXE +SAMPLES\MSDN\TECHART\4082\CLI +SAMPLES\MSDN\TECHART\4082\COMMON +SAMPLES\MSDN\TECHART\4082\SRV +SAMPLES\MSDN\TECHART\4082\CLI\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\4082\CLI\BROWSEDI.H +SAMPLES\MSDN\TECHART\4082\CLI\CLIAPP.CPP +SAMPLES\MSDN\TECHART\4082\CLI\CLIAPP.H +SAMPLES\MSDN\TECHART\4082\CLI\CLIAPP.MAK +SAMPLES\MSDN\TECHART\4082\CLI\CLIAPP.RC +SAMPLES\MSDN\TECHART\4082\CLI\CLIAPP.VCP +SAMPLES\MSDN\TECHART\4082\CLI\CLIDOC.CPP +SAMPLES\MSDN\TECHART\4082\CLI\CLIDOC.H +SAMPLES\MSDN\TECHART\4082\CLI\CLIVIEW.CPP +SAMPLES\MSDN\TECHART\4082\CLI\CLIVIEW.H +SAMPLES\MSDN\TECHART\4082\CLI\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4082\CLI\MAINFRM.H +SAMPLES\MSDN\TECHART\4082\CLI\RES +SAMPLES\MSDN\TECHART\4082\CLI\RESOURCE.H +SAMPLES\MSDN\TECHART\4082\CLI\STDAFX.CPP +SAMPLES\MSDN\TECHART\4082\CLI\STDAFX.H +SAMPLES\MSDN\TECHART\4082\CLI\WINREL +SAMPLES\MSDN\TECHART\4082\CLI\RES\NPSECCLI.ICO +SAMPLES\MSDN\TECHART\4082\CLI\RES\NPSECCLI.RC2 +SAMPLES\MSDN\TECHART\4082\CLI\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4082\CLI\WINREL\MSVCRT20.DLL +SAMPLES\MSDN\TECHART\4082\COMMON\CFILEMAP.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\CFILEMAP.H +SAMPLES\MSDN\TECHART\4082\COMMON\CMUTEX.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\CMUTEX.H +SAMPLES\MSDN\TECHART\4082\COMMON\COMCLASS.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\COMCLASS.H +SAMPLES\MSDN\TECHART\4082\COMMON\COMMON.H +SAMPLES\MSDN\TECHART\4082\COMMON\DBCODE.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\DBCODE.H +SAMPLES\MSDN\TECHART\4082\COMMON\DBDIALOG.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\DBDIALOG.H +SAMPLES\MSDN\TECHART\4082\COMMON\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\EASYVIEW.H +SAMPLES\MSDN\TECHART\4082\COMMON\NPIPE.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\NPIPE.H +SAMPLES\MSDN\TECHART\4082\COMMON\PIPEVARS +SAMPLES\MSDN\TECHART\4082\COMMON\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\PROTOCOL.H +SAMPLES\MSDN\TECHART\4082\COMMON\SAVE +SAMPLES\MSDN\TECHART\4082\COMMON\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\4082\COMMON\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\4082\SRV\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4082\SRV\MAINFRM.H +SAMPLES\MSDN\TECHART\4082\SRV\RES +SAMPLES\MSDN\TECHART\4082\SRV\RESOURCE.H +SAMPLES\MSDN\TECHART\4082\SRV\SECSTUFF +SAMPLES\MSDN\TECHART\4082\SRV\SRVAPP.CPP +SAMPLES\MSDN\TECHART\4082\SRV\SRVAPP.H +SAMPLES\MSDN\TECHART\4082\SRV\SRVAPP.MAK +SAMPLES\MSDN\TECHART\4082\SRV\SRVAPP.RC +SAMPLES\MSDN\TECHART\4082\SRV\SRVAPP.VCP +SAMPLES\MSDN\TECHART\4082\SRV\SRVDOC.CPP +SAMPLES\MSDN\TECHART\4082\SRV\SRVDOC.H +SAMPLES\MSDN\TECHART\4082\SRV\SRVVIEW.CPP +SAMPLES\MSDN\TECHART\4082\SRV\SRVVIEW.H +SAMPLES\MSDN\TECHART\4082\SRV\SRVVIEW.MAK +SAMPLES\MSDN\TECHART\4082\SRV\SRVVIEW.VCP +SAMPLES\MSDN\TECHART\4082\SRV\STDAFX.CPP +SAMPLES\MSDN\TECHART\4082\SRV\STDAFX.H +SAMPLES\MSDN\TECHART\4082\SRV\VC30.REP +SAMPLES\MSDN\TECHART\4082\SRV\WINREL +SAMPLES\MSDN\TECHART\4082\SRV\RES\NPSCESRV.ICO +SAMPLES\MSDN\TECHART\4082\SRV\RES\NPSCESRV.RC2 +SAMPLES\MSDN\TECHART\4082\SRV\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4082\SRV\SECSTUFF\EXAMSTFF.CPP +SAMPLES\MSDN\TECHART\4082\SRV\SECSTUFF\EXAMSTFF.H +SAMPLES\MSDN\TECHART\4082\SRV\SECSTUFF\SEC.CPP +SAMPLES\MSDN\TECHART\4082\SRV\SECSTUFF\SEC.H +SAMPLES\MSDN\TECHART\4082\SRV\SECSTUFF\SECDIALO.CPP +SAMPLES\MSDN\TECHART\4082\SRV\SECSTUFF\SECDIALO.H +SAMPLES\MSDN\TECHART\4082\SRV\WINREL\SRVAPP.EXE +SAMPLES\MSDN\TECHART\4083\CLI +SAMPLES\MSDN\TECHART\4083\COMMON +SAMPLES\MSDN\TECHART\4083\SRV +SAMPLES\MSDN\TECHART\4083\CLI\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\4083\CLI\BROWSEDI.H +SAMPLES\MSDN\TECHART\4083\CLI\CLIAPP.CPP +SAMPLES\MSDN\TECHART\4083\CLI\CLIAPP.H +SAMPLES\MSDN\TECHART\4083\CLI\CLIAPP.MAK +SAMPLES\MSDN\TECHART\4083\CLI\CLIAPP.RC +SAMPLES\MSDN\TECHART\4083\CLI\CLIAPP.VCP +SAMPLES\MSDN\TECHART\4083\CLI\CLIDOC.CPP +SAMPLES\MSDN\TECHART\4083\CLI\CLIDOC.H +SAMPLES\MSDN\TECHART\4083\CLI\CLIVIEW.CPP +SAMPLES\MSDN\TECHART\4083\CLI\CLIVIEW.H +SAMPLES\MSDN\TECHART\4083\CLI\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4083\CLI\MAINFRM.H +SAMPLES\MSDN\TECHART\4083\CLI\RES +SAMPLES\MSDN\TECHART\4083\CLI\RESOURCE.H +SAMPLES\MSDN\TECHART\4083\CLI\STDAFX.CPP +SAMPLES\MSDN\TECHART\4083\CLI\STDAFX.H +SAMPLES\MSDN\TECHART\4083\CLI\WINREL +SAMPLES\MSDN\TECHART\4083\CLI\RES\NPSECCLI.ICO +SAMPLES\MSDN\TECHART\4083\CLI\RES\NPSECCLI.RC2 +SAMPLES\MSDN\TECHART\4083\CLI\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4083\CLI\WINREL\MSVCRT20.DLL +SAMPLES\MSDN\TECHART\4083\COMMON\CFILEMAP.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\CFILEMAP.H +SAMPLES\MSDN\TECHART\4083\COMMON\CMUTEX.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\CMUTEX.H +SAMPLES\MSDN\TECHART\4083\COMMON\COMCLASS.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\COMCLASS.H +SAMPLES\MSDN\TECHART\4083\COMMON\COMMON.H +SAMPLES\MSDN\TECHART\4083\COMMON\DBCODE.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\DBCODE.H +SAMPLES\MSDN\TECHART\4083\COMMON\DBDIALOG.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\DBDIALOG.H +SAMPLES\MSDN\TECHART\4083\COMMON\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\EASYVIEW.H +SAMPLES\MSDN\TECHART\4083\COMMON\NPIPE.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\NPIPE.H +SAMPLES\MSDN\TECHART\4083\COMMON\PIPEVARS +SAMPLES\MSDN\TECHART\4083\COMMON\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\PROTOCOL.H +SAMPLES\MSDN\TECHART\4083\COMMON\SAVE +SAMPLES\MSDN\TECHART\4083\COMMON\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\4083\COMMON\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\4083\SRV\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4083\SRV\MAINFRM.H +SAMPLES\MSDN\TECHART\4083\SRV\RES +SAMPLES\MSDN\TECHART\4083\SRV\RESOURCE.H +SAMPLES\MSDN\TECHART\4083\SRV\SECSTUFF +SAMPLES\MSDN\TECHART\4083\SRV\SRVAPP.CPP +SAMPLES\MSDN\TECHART\4083\SRV\SRVAPP.H +SAMPLES\MSDN\TECHART\4083\SRV\SRVAPP.MAK +SAMPLES\MSDN\TECHART\4083\SRV\SRVAPP.RC +SAMPLES\MSDN\TECHART\4083\SRV\SRVAPP.VCP +SAMPLES\MSDN\TECHART\4083\SRV\SRVDOC.CPP +SAMPLES\MSDN\TECHART\4083\SRV\SRVDOC.H +SAMPLES\MSDN\TECHART\4083\SRV\SRVVIEW.CPP +SAMPLES\MSDN\TECHART\4083\SRV\SRVVIEW.H +SAMPLES\MSDN\TECHART\4083\SRV\SRVVIEW.MAK +SAMPLES\MSDN\TECHART\4083\SRV\SRVVIEW.VCP +SAMPLES\MSDN\TECHART\4083\SRV\STDAFX.CPP +SAMPLES\MSDN\TECHART\4083\SRV\STDAFX.H +SAMPLES\MSDN\TECHART\4083\SRV\VC30.REP +SAMPLES\MSDN\TECHART\4083\SRV\WINREL +SAMPLES\MSDN\TECHART\4083\SRV\RES\NPSCESRV.ICO +SAMPLES\MSDN\TECHART\4083\SRV\RES\NPSCESRV.RC2 +SAMPLES\MSDN\TECHART\4083\SRV\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4083\SRV\SECSTUFF\EXAMSTFF.CPP +SAMPLES\MSDN\TECHART\4083\SRV\SECSTUFF\EXAMSTFF.H +SAMPLES\MSDN\TECHART\4083\SRV\SECSTUFF\SEC.CPP +SAMPLES\MSDN\TECHART\4083\SRV\SECSTUFF\SEC.H +SAMPLES\MSDN\TECHART\4083\SRV\SECSTUFF\SECDIALO.CPP +SAMPLES\MSDN\TECHART\4083\SRV\SECSTUFF\SECDIALO.H +SAMPLES\MSDN\TECHART\4083\SRV\WINREL\SRVAPP.EXE +SAMPLES\MSDN\TECHART\4084\CLI +SAMPLES\MSDN\TECHART\4084\COMMON +SAMPLES\MSDN\TECHART\4084\SRV +SAMPLES\MSDN\TECHART\4084\CLI\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\4084\CLI\BROWSEDI.H +SAMPLES\MSDN\TECHART\4084\CLI\CLIAPP.CPP +SAMPLES\MSDN\TECHART\4084\CLI\CLIAPP.H +SAMPLES\MSDN\TECHART\4084\CLI\CLIAPP.MAK +SAMPLES\MSDN\TECHART\4084\CLI\CLIAPP.RC +SAMPLES\MSDN\TECHART\4084\CLI\CLIAPP.VCP +SAMPLES\MSDN\TECHART\4084\CLI\CLIDOC.CPP +SAMPLES\MSDN\TECHART\4084\CLI\CLIDOC.H +SAMPLES\MSDN\TECHART\4084\CLI\CLIVIEW.CPP +SAMPLES\MSDN\TECHART\4084\CLI\CLIVIEW.H +SAMPLES\MSDN\TECHART\4084\CLI\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4084\CLI\MAINFRM.H +SAMPLES\MSDN\TECHART\4084\CLI\RES +SAMPLES\MSDN\TECHART\4084\CLI\RESOURCE.H +SAMPLES\MSDN\TECHART\4084\CLI\STDAFX.CPP +SAMPLES\MSDN\TECHART\4084\CLI\STDAFX.H +SAMPLES\MSDN\TECHART\4084\CLI\WINREL +SAMPLES\MSDN\TECHART\4084\CLI\RES\NPSECCLI.ICO +SAMPLES\MSDN\TECHART\4084\CLI\RES\NPSECCLI.RC2 +SAMPLES\MSDN\TECHART\4084\CLI\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4084\CLI\WINREL\MSVCRT20.DLL +SAMPLES\MSDN\TECHART\4084\COMMON\CFILEMAP.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\CFILEMAP.H +SAMPLES\MSDN\TECHART\4084\COMMON\CMUTEX.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\CMUTEX.H +SAMPLES\MSDN\TECHART\4084\COMMON\COMCLASS.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\COMCLASS.H +SAMPLES\MSDN\TECHART\4084\COMMON\COMMON.H +SAMPLES\MSDN\TECHART\4084\COMMON\DBCODE.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\DBCODE.H +SAMPLES\MSDN\TECHART\4084\COMMON\DBDIALOG.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\DBDIALOG.H +SAMPLES\MSDN\TECHART\4084\COMMON\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\EASYVIEW.H +SAMPLES\MSDN\TECHART\4084\COMMON\NPIPE.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\NPIPE.H +SAMPLES\MSDN\TECHART\4084\COMMON\PIPEVARS +SAMPLES\MSDN\TECHART\4084\COMMON\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\PROTOCOL.H +SAMPLES\MSDN\TECHART\4084\COMMON\SAVE +SAMPLES\MSDN\TECHART\4084\COMMON\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\4084\COMMON\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\4084\SRV\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4084\SRV\MAINFRM.H +SAMPLES\MSDN\TECHART\4084\SRV\RES +SAMPLES\MSDN\TECHART\4084\SRV\RESOURCE.H +SAMPLES\MSDN\TECHART\4084\SRV\SECSTUFF +SAMPLES\MSDN\TECHART\4084\SRV\SRVAPP.CPP +SAMPLES\MSDN\TECHART\4084\SRV\SRVAPP.H +SAMPLES\MSDN\TECHART\4084\SRV\SRVAPP.MAK +SAMPLES\MSDN\TECHART\4084\SRV\SRVAPP.RC +SAMPLES\MSDN\TECHART\4084\SRV\SRVAPP.VCP +SAMPLES\MSDN\TECHART\4084\SRV\SRVDOC.CPP +SAMPLES\MSDN\TECHART\4084\SRV\SRVDOC.H +SAMPLES\MSDN\TECHART\4084\SRV\SRVVIEW.CPP +SAMPLES\MSDN\TECHART\4084\SRV\SRVVIEW.H +SAMPLES\MSDN\TECHART\4084\SRV\SRVVIEW.MAK +SAMPLES\MSDN\TECHART\4084\SRV\SRVVIEW.VCP +SAMPLES\MSDN\TECHART\4084\SRV\STDAFX.CPP +SAMPLES\MSDN\TECHART\4084\SRV\STDAFX.H +SAMPLES\MSDN\TECHART\4084\SRV\VC30.REP +SAMPLES\MSDN\TECHART\4084\SRV\WINREL +SAMPLES\MSDN\TECHART\4084\SRV\RES\NPSCESRV.ICO +SAMPLES\MSDN\TECHART\4084\SRV\RES\NPSCESRV.RC2 +SAMPLES\MSDN\TECHART\4084\SRV\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4084\SRV\SECSTUFF\EXAMSTFF.CPP +SAMPLES\MSDN\TECHART\4084\SRV\SECSTUFF\EXAMSTFF.H +SAMPLES\MSDN\TECHART\4084\SRV\SECSTUFF\SEC.CPP +SAMPLES\MSDN\TECHART\4084\SRV\SECSTUFF\SEC.H +SAMPLES\MSDN\TECHART\4084\SRV\SECSTUFF\SECDIALO.CPP +SAMPLES\MSDN\TECHART\4084\SRV\SECSTUFF\SECDIALO.H +SAMPLES\MSDN\TECHART\4084\SRV\WINREL\SRVAPP.EXE +SAMPLES\MSDN\TECHART\4224\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4224\DDECLI +SAMPLES\MSDN\TECHART\4224\DDESERV +SAMPLES\MSDN\TECHART\4224\STDDDE +SAMPLES\MSDN\TECHART\4224\VBCLIE~1 +SAMPLES\MSDN\TECHART\4224\DDECLI\DDECLDLG.CPP +SAMPLES\MSDN\TECHART\4224\DDECLI\DDECLDLG.H +SAMPLES\MSDN\TECHART\4224\DDECLI\DDECLI.CPP +SAMPLES\MSDN\TECHART\4224\DDECLI\DDECLI.H +SAMPLES\MSDN\TECHART\4224\DDECLI\DDECLI.MAK +SAMPLES\MSDN\TECHART\4224\DDECLI\DDECLI.RC +SAMPLES\MSDN\TECHART\4224\DDECLI\MYCLIENT.CPP +SAMPLES\MSDN\TECHART\4224\DDECLI\MYCLIENT.H +SAMPLES\MSDN\TECHART\4224\DDECLI\MYCONV.CPP +SAMPLES\MSDN\TECHART\4224\DDECLI\MYCONV.H +SAMPLES\MSDN\TECHART\4224\DDECLI\RES +SAMPLES\MSDN\TECHART\4224\DDECLI\RESOURCE.H +SAMPLES\MSDN\TECHART\4224\DDECLI\STDAFX.CPP +SAMPLES\MSDN\TECHART\4224\DDECLI\STDAFX.H +SAMPLES\MSDN\TECHART\4224\DDECLI\RES\DDECLI.ICO +SAMPLES\MSDN\TECHART\4224\DDECLI\RES\DDECLI.RC2 +SAMPLES\MSDN\TECHART\4224\DDESERV\DATADLG.CPP +SAMPLES\MSDN\TECHART\4224\DDESERV\DATADLG.H +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESERV.CPP +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESERV.H +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESERV.MAK +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESERV.RC +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESVDOC.CPP +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESVDOC.H +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESVVW.CPP +SAMPLES\MSDN\TECHART\4224\DDESERV\DDESVVW.H +SAMPLES\MSDN\TECHART\4224\DDESERV\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4224\DDESERV\MAINFRM.H +SAMPLES\MSDN\TECHART\4224\DDESERV\MYSERV.CPP +SAMPLES\MSDN\TECHART\4224\DDESERV\MYSERV.H +SAMPLES\MSDN\TECHART\4224\DDESERV\RES +SAMPLES\MSDN\TECHART\4224\DDESERV\RESOURCE.H +SAMPLES\MSDN\TECHART\4224\DDESERV\STDAFX.CPP +SAMPLES\MSDN\TECHART\4224\DDESERV\STDAFX.H +SAMPLES\MSDN\TECHART\4224\DDESERV\RES\DDESERV.ICO +SAMPLES\MSDN\TECHART\4224\DDESERV\RES\DDESERV.RC2 +SAMPLES\MSDN\TECHART\4224\DDESERV\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4224\STDDDE\NOTES.TXT +SAMPLES\MSDN\TECHART\4224\STDDDE\STDDDE.CPP +SAMPLES\MSDN\TECHART\4224\STDDDE\STDDDE.H +SAMPLES\MSDN\TECHART\4224\VBCLIE~1\FORM1.FRM +SAMPLES\MSDN\TECHART\4224\VBCLIE~1\VBCLIENT.EXE +SAMPLES\MSDN\TECHART\4224\VBCLIE~1\VBCLIENT.MAK +SAMPLES\MSDN\TECHART\4226\48X48-01.BMP +SAMPLES\MSDN\TECHART\4226\48X48-02.BMP +SAMPLES\MSDN\TECHART\4226\48X48-03.BMP +SAMPLES\MSDN\TECHART\4226\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4226\INTERDOC.CPP +SAMPLES\MSDN\TECHART\4226\INTERDOC.H +SAMPLES\MSDN\TECHART\4226\INTERP.CPP +SAMPLES\MSDN\TECHART\4226\INTERP.EXE +SAMPLES\MSDN\TECHART\4226\INTERP.H +SAMPLES\MSDN\TECHART\4226\INTERP.MAK +SAMPLES\MSDN\TECHART\4226\INTERP.RC +SAMPLES\MSDN\TECHART\4226\INTERVW.CPP +SAMPLES\MSDN\TECHART\4226\INTERVW.H +SAMPLES\MSDN\TECHART\4226\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4226\MAINFRM.H +SAMPLES\MSDN\TECHART\4226\RESOURCE.H +SAMPLES\MSDN\TECHART\4226\STDAFX.CPP +SAMPLES\MSDN\TECHART\4226\STDAFX.H +SAMPLES\MSDN\TECHART\4228\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4228\APPLIANCES +SAMPLES\MSDN\TECHART\4228\HOUSE +SAMPLES\MSDN\TECHART\4228\INCLUDE +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.CPP +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.DEF +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.DLL +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.EXP +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.H +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.LIB +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.MAK +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.ODL +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.RC +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.REG +SAMPLES\MSDN\TECHART\4228\APPLIANCES\APPLIANCES.VCP +SAMPLES\MSDN\TECHART\4228\APPLIANCES\GUIDS.CPP +SAMPLES\MSDN\TECHART\4228\APPLIANCES\LIGHTBL.CPP +SAMPLES\MSDN\TECHART\4228\APPLIANCES\LIGHTBL.H +SAMPLES\MSDN\TECHART\4228\APPLIANCES\README.TXT +SAMPLES\MSDN\TECHART\4228\APPLIANCES\RES +SAMPLES\MSDN\TECHART\4228\APPLIANCES\RESOURCE.H +SAMPLES\MSDN\TECHART\4228\APPLIANCES\STDAFX.CPP +SAMPLES\MSDN\TECHART\4228\APPLIANCES\STDAFX.H +SAMPLES\MSDN\TECHART\4228\APPLIANCES\RES\APPLIANCES.RC2 +SAMPLES\MSDN\TECHART\4228\APPLIANCES\RES\LTBULB.BMP +SAMPLES\MSDN\TECHART\4228\HOUSE\DBGWND.CPP +SAMPLES\MSDN\TECHART\4228\HOUSE\DBGWND.H +SAMPLES\MSDN\TECHART\4228\HOUSE\GUIDS.CPP +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.APS +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.CLW +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.CPP +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.EXE +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.H +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.MAK +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.RC +SAMPLES\MSDN\TECHART\4228\HOUSE\HOUSE.VCP +SAMPLES\MSDN\TECHART\4228\HOUSE\LTBULB.CPP +SAMPLES\MSDN\TECHART\4228\HOUSE\LTBULB.H +SAMPLES\MSDN\TECHART\4228\HOUSE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4228\HOUSE\MAINFRM.H +SAMPLES\MSDN\TECHART\4228\HOUSE\RES +SAMPLES\MSDN\TECHART\4228\HOUSE\RESOURCE.H +SAMPLES\MSDN\TECHART\4228\HOUSE\STDAFX.CPP +SAMPLES\MSDN\TECHART\4228\HOUSE\STDAFX.H +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\HOUSE.BMP +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\HOUSE.ICO +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\HOUSE.MAT +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\HOUSE.RC2 +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\LTBULB.BMP +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\RADIO.BMP +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\STDLAMP.BMP +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4228\HOUSE\RES\TV.BMP +SAMPLES\MSDN\TECHART\4228\INCLUDE\APPLIANCESID.H +SAMPLES\MSDN\TECHART\4228\INCLUDE\IDRAWING.H +SAMPLES\MSDN\TECHART\4230\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4230\APPLIANCES +SAMPLES\MSDN\TECHART\4230\HOUSE +SAMPLES\MSDN\TECHART\4230\INCLUDE +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.DEF +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.EXP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.LIB +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.MAK +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.ODL +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.RC +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.REG +SAMPLES\MSDN\TECHART\4230\APPLIANCES\APPLIANCES.VCP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\GUIDS.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\IMPIUNK.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\LIGHTBL.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\LIGHTBL.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIO.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIO.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIO1.MID +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIO2.MID +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIO3.MID +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIO4.MID +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIODLG.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RADIODLG.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\README.TXT +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RESOURCE.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\STANDARD.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\STANDARD.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\STDAFX.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\STDAFX.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\TELEVISI.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\TELEVISI.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\TVDLG.CPP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\TVDLG.H +SAMPLES\MSDN\TECHART\4230\APPLIANCES\X86-R +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\APPLIANCES.RC2 +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\LTBULB0.BMP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\LTBULB1.BMP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\RADIO.BMP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\STDLAMP0.BMP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\STDLAMP1.BMP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\STDLAMP2.BMP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\RES\TV.BMP +SAMPLES\MSDN\TECHART\4230\APPLIANCES\X86-R\APPLIANCES.DLL +SAMPLES\MSDN\TECHART\4230\HOUSE\DBGWND.CPP +SAMPLES\MSDN\TECHART\4230\HOUSE\DBGWND.H +SAMPLES\MSDN\TECHART\4230\HOUSE\GUIDS.CPP +SAMPLES\MSDN\TECHART\4230\HOUSE\HOUSE.CPP +SAMPLES\MSDN\TECHART\4230\HOUSE\HOUSE.H +SAMPLES\MSDN\TECHART\4230\HOUSE\HOUSE.MAK +SAMPLES\MSDN\TECHART\4230\HOUSE\HOUSE.RC +SAMPLES\MSDN\TECHART\4230\HOUSE\HOUSE.VCP +SAMPLES\MSDN\TECHART\4230\HOUSE\LIGHTDLG.CPP +SAMPLES\MSDN\TECHART\4230\HOUSE\LIGHTDLG.H +SAMPLES\MSDN\TECHART\4230\HOUSE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4230\HOUSE\MAINFRM.H +SAMPLES\MSDN\TECHART\4230\HOUSE\OUTLETDL.CPP +SAMPLES\MSDN\TECHART\4230\HOUSE\OUTLETDL.H +SAMPLES\MSDN\TECHART\4230\HOUSE\RADIO1.MID +SAMPLES\MSDN\TECHART\4230\HOUSE\RADIO2.MID +SAMPLES\MSDN\TECHART\4230\HOUSE\RADIO3.MID +SAMPLES\MSDN\TECHART\4230\HOUSE\RADIO4.MID +SAMPLES\MSDN\TECHART\4230\HOUSE\RES +SAMPLES\MSDN\TECHART\4230\HOUSE\RESOURCE.H +SAMPLES\MSDN\TECHART\4230\HOUSE\STDAFX.CPP +SAMPLES\MSDN\TECHART\4230\HOUSE\STDAFX.H +SAMPLES\MSDN\TECHART\4230\HOUSE\X86-R +SAMPLES\MSDN\TECHART\4230\HOUSE\RES\HOUSE.BMP +SAMPLES\MSDN\TECHART\4230\HOUSE\RES\HOUSE.ICO +SAMPLES\MSDN\TECHART\4230\HOUSE\RES\HOUSE.MAT +SAMPLES\MSDN\TECHART\4230\HOUSE\RES\HOUSE.RC2 +SAMPLES\MSDN\TECHART\4230\HOUSE\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4230\HOUSE\X86-R\HOUSE.EXE +SAMPLES\MSDN\TECHART\4230\INCLUDE\APPLIANCESID.H +SAMPLES\MSDN\TECHART\4230\INCLUDE\IAPPLIANCEUI.H +SAMPLES\MSDN\TECHART\4230\INCLUDE\IDRAWING.H +SAMPLES\MSDN\TECHART\4230\INCLUDE\ILIGHT.H +SAMPLES\MSDN\TECHART\4230\INCLUDE\IOUTLET.H +SAMPLES\MSDN\TECHART\4232\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4232\APPLIANCES +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.CPP +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.DEF +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.EXP +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.H +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.LIB +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.MAK +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.ODL +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.RC +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.REG +SAMPLES\MSDN\TECHART\4232\APPLIANCES\APPLIANCES.VCP +SAMPLES\MSDN\TECHART\4232\APPLIANCES\GUIDS.CPP +SAMPLES\MSDN\TECHART\4232\APPLIANCES\LIGHTBL.CPP +SAMPLES\MSDN\TECHART\4232\APPLIANCES\LIGHTBL.H +SAMPLES\MSDN\TECHART\4232\APPLIANCES\RADIO.CPP +SAMPLES\MSDN\TECHART\4232\APPLIANCES\RADIO.H +SAMPLES\MSDN\TECHART\4234\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4234\APPLIANCES +SAMPLES\MSDN\TECHART\4234\HOUSE +SAMPLES\MSDN\TECHART\4234\INCLUDE +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.DEF +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.EXP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.LIB +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.MAK +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.ODL +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.RC +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.REG +SAMPLES\MSDN\TECHART\4234\APPLIANCES\APPLIANCES.VCP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\BITMAPOB.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\BITMAPOB.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\GUIDS.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\LIGHTBL.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\LIGHTBL.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\NOTIFYOB.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\NOTIFYOB.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIO.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIO.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIO1.MID +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIO2.MID +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIO3.MID +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIO4.MID +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIODLG.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RADIODLG.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\README.TXT +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RESOURCE.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\STANDARD.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\STANDARD.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\STDAFX.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\STDAFX.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\TELEVISI.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\TELEVISI.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\TVDLG.CPP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\TVDLG.H +SAMPLES\MSDN\TECHART\4234\APPLIANCES\X86-R +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\APPLIANCES.RC2 +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\LTBULB0.BMP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\LTBULB1.BMP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\RADIO.BMP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\STDLAMP0.BMP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\STDLAMP1.BMP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\STDLAMP2.BMP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\RES\TV.BMP +SAMPLES\MSDN\TECHART\4234\APPLIANCES\X86-R\APPLIANCES.DLL +SAMPLES\MSDN\TECHART\4234\HOUSE\DBGWND.CPP +SAMPLES\MSDN\TECHART\4234\HOUSE\DBGWND.H +SAMPLES\MSDN\TECHART\4234\HOUSE\GUIDS.CPP +SAMPLES\MSDN\TECHART\4234\HOUSE\HOUSE.CPP +SAMPLES\MSDN\TECHART\4234\HOUSE\HOUSE.H +SAMPLES\MSDN\TECHART\4234\HOUSE\HOUSE.MAK +SAMPLES\MSDN\TECHART\4234\HOUSE\HOUSE.RC +SAMPLES\MSDN\TECHART\4234\HOUSE\HOUSE.VCP +SAMPLES\MSDN\TECHART\4234\HOUSE\LIGHTDLG.CPP +SAMPLES\MSDN\TECHART\4234\HOUSE\LIGHTDLG.H +SAMPLES\MSDN\TECHART\4234\HOUSE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4234\HOUSE\MAINFRM.H +SAMPLES\MSDN\TECHART\4234\HOUSE\OUTLETDL.CPP +SAMPLES\MSDN\TECHART\4234\HOUSE\OUTLETDL.H +SAMPLES\MSDN\TECHART\4234\HOUSE\RADIO1.MID +SAMPLES\MSDN\TECHART\4234\HOUSE\RADIO2.MID +SAMPLES\MSDN\TECHART\4234\HOUSE\RADIO3.MID +SAMPLES\MSDN\TECHART\4234\HOUSE\RADIO4.MID +SAMPLES\MSDN\TECHART\4234\HOUSE\RES +SAMPLES\MSDN\TECHART\4234\HOUSE\RESOURCE.H +SAMPLES\MSDN\TECHART\4234\HOUSE\STDAFX.CPP +SAMPLES\MSDN\TECHART\4234\HOUSE\STDAFX.H +SAMPLES\MSDN\TECHART\4234\HOUSE\X86-R +SAMPLES\MSDN\TECHART\4234\HOUSE\RES\HOUSE.BMP +SAMPLES\MSDN\TECHART\4234\HOUSE\RES\HOUSE.ICO +SAMPLES\MSDN\TECHART\4234\HOUSE\RES\HOUSE.MAT +SAMPLES\MSDN\TECHART\4234\HOUSE\RES\HOUSE.RC2 +SAMPLES\MSDN\TECHART\4234\HOUSE\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4234\HOUSE\X86-R\HOUSE.EXE +SAMPLES\MSDN\TECHART\4234\INCLUDE\APPLIANCESID.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\IAPPLIANCEUI.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\IBITMAP.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\IDRAWING.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\ILIGHT.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\IMPIUNK.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\INOTIFY.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\INOTIFYSRC.H +SAMPLES\MSDN\TECHART\4234\INCLUDE\IOUTLET.H +SAMPLES\MSDN\TECHART\4238\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4238\APPLIANCES +SAMPLES\MSDN\TECHART\4238\HOUSE +SAMPLES\MSDN\TECHART\4238\INCLUDE +SAMPLES\MSDN\TECHART\4238\VBHOUSE +SAMPLES\MSDN\TECHART\4238\VBSYSDBG +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.APS +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.CLW +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.DEF +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.MAK +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.RC +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.REG +SAMPLES\MSDN\TECHART\4238\APPLIANCES\APPLIANCES.VCP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\BITMAPOB.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\BITMAPOB.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\GUIDS.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\LIGHTBL.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\LIGHTBL.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\NOTIFYOB.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\NOTIFYOB.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIO.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIO.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIO1.MID +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIO2.MID +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIO3.MID +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIO4.MID +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIODLG.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RADIODLG.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\README.TXT +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RESOURCE.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\STANDARD.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\STANDARD.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\STDAFX.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\STDAFX.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\TELEVISI.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\TELEVISI.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\TVDLG.CPP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\TVDLG.H +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES\APPLIANCES.RC2 +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES\LTBULB.BMP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES\LTBULB00.BMP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES\LTBULB01.BMP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES\RADIO.BMP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES\STDLAMP.BMP +SAMPLES\MSDN\TECHART\4238\APPLIANCES\RES\TV.BMP +SAMPLES\MSDN\TECHART\4238\HOUSE\DBGWND.CPP +SAMPLES\MSDN\TECHART\4238\HOUSE\DBGWND.H +SAMPLES\MSDN\TECHART\4238\HOUSE\GUIDS.CPP +SAMPLES\MSDN\TECHART\4238\HOUSE\HOUSE.CPP +SAMPLES\MSDN\TECHART\4238\HOUSE\HOUSE.H +SAMPLES\MSDN\TECHART\4238\HOUSE\HOUSE.MAK +SAMPLES\MSDN\TECHART\4238\HOUSE\HOUSE.RC +SAMPLES\MSDN\TECHART\4238\HOUSE\LIGHTDLG.CPP +SAMPLES\MSDN\TECHART\4238\HOUSE\LIGHTDLG.H +SAMPLES\MSDN\TECHART\4238\HOUSE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4238\HOUSE\MAINFRM.H +SAMPLES\MSDN\TECHART\4238\HOUSE\OUTLETDL.CPP +SAMPLES\MSDN\TECHART\4238\HOUSE\OUTLETDL.H +SAMPLES\MSDN\TECHART\4238\HOUSE\RADIO1.MID +SAMPLES\MSDN\TECHART\4238\HOUSE\RADIO2.MID +SAMPLES\MSDN\TECHART\4238\HOUSE\RADIO3.MID +SAMPLES\MSDN\TECHART\4238\HOUSE\RADIO4.MID +SAMPLES\MSDN\TECHART\4238\HOUSE\RES +SAMPLES\MSDN\TECHART\4238\HOUSE\RESOURCE.H +SAMPLES\MSDN\TECHART\4238\HOUSE\STDAFX.CPP +SAMPLES\MSDN\TECHART\4238\HOUSE\STDAFX.H +SAMPLES\MSDN\TECHART\4238\HOUSE\RES\HOUSE.BMP +SAMPLES\MSDN\TECHART\4238\HOUSE\RES\HOUSE.ICO +SAMPLES\MSDN\TECHART\4238\HOUSE\RES\HOUSE.MAT +SAMPLES\MSDN\TECHART\4238\HOUSE\RES\HOUSE.RC2 +SAMPLES\MSDN\TECHART\4238\HOUSE\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4238\INCLUDE\APPLIANCESID.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\IAPPLIANCEUI.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\IBITMAP.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\IDRAWING.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\ILIGHT.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\IMPIUNK.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\INOTIFY.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\INOTIFYSRC.H +SAMPLES\MSDN\TECHART\4238\INCLUDE\IOUTLET.H +SAMPLES\MSDN\TECHART\4238\VBHOUSE\COM.BAS +SAMPLES\MSDN\TECHART\4238\VBHOUSE\HOUSE.BMP +SAMPLES\MSDN\TECHART\4238\VBHOUSE\MAIN.FRM +SAMPLES\MSDN\TECHART\4238\VBHOUSE\MAIN.FRX +SAMPLES\MSDN\TECHART\4238\VBHOUSE\VBHOUSE.EXE +SAMPLES\MSDN\TECHART\4238\VBHOUSE\VBHOUSE.MAK +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\COMFNS.CPP +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\COMFNS.H +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\DBGWND.CPP +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\DBGWND.H +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\ICON1.ICO +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\RES +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\RESOURCE.H +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\STDAFX.CPP +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\STDAFX.H +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\VBSYSDBG.CPP +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\VBSYSDBG.DEF +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\VBSYSDBG.EXP +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\VBSYSDBG.H +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\VBSYSDBG.MAK +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\VBSYSDBG.RC +SAMPLES\MSDN\TECHART\4238\VBSYSDBG\RES\VBSYSDBG.RC2 +SAMPLES\MSDN\TECHART\4241\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4241\EASYTDOC.CPP +SAMPLES\MSDN\TECHART\4241\EASYTDOC.H +SAMPLES\MSDN\TECHART\4241\EASYTEX.CPP +SAMPLES\MSDN\TECHART\4241\EASYTEX.H +SAMPLES\MSDN\TECHART\4241\EASYTEX.MAK +SAMPLES\MSDN\TECHART\4241\EASYTEX.RC +SAMPLES\MSDN\TECHART\4241\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4241\MAINFRM.H +SAMPLES\MSDN\TECHART\4241\RES +SAMPLES\MSDN\TECHART\4241\RESOURCE.H +SAMPLES\MSDN\TECHART\4241\SCENE.CPP +SAMPLES\MSDN\TECHART\4241\SCENE.H +SAMPLES\MSDN\TECHART\4241\SCENEVW.CPP +SAMPLES\MSDN\TECHART\4241\SCENEVW.H +SAMPLES\MSDN\TECHART\4241\SHAPES.CPP +SAMPLES\MSDN\TECHART\4241\STDAFX.CPP +SAMPLES\MSDN\TECHART\4241\STDAFX.H +SAMPLES\MSDN\TECHART\4241\X86-R +SAMPLES\MSDN\TECHART\4241\RES\4COLOR.DIB +SAMPLES\MSDN\TECHART\4241\RES\EASYTDOC.ICO +SAMPLES\MSDN\TECHART\4241\RES\EASYTEX.ICO +SAMPLES\MSDN\TECHART\4241\RES\EASYTEX.RC2 +SAMPLES\MSDN\TECHART\4241\RES\EGYPT.BMP +SAMPLES\MSDN\TECHART\4241\RES\HONEY.BMP +SAMPLES\MSDN\TECHART\4241\RES\ICON1.ICO +SAMPLES\MSDN\TECHART\4241\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\4241\RES\REDBRICK.BMP +SAMPLES\MSDN\TECHART\4241\X86-R\EASYTEX.EXE +SAMPLES\MSDN\TECHART\4242\CGL.CPP +SAMPLES\MSDN\TECHART\4242\CGL.H +SAMPLES\MSDN\TECHART\4242\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\4242\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\4242\GLLIB.CPP +SAMPLES\MSDN\TECHART\4242\GLLIB.DEF +SAMPLES\MSDN\TECHART\4242\GLLIB.H +SAMPLES\MSDN\TECHART\4242\GLLIB.LIB +SAMPLES\MSDN\TECHART\4242\GLLIB.MAK +SAMPLES\MSDN\TECHART\4242\GLLIB.RC +SAMPLES\MSDN\TECHART\4242\GLVIEW.CPP +SAMPLES\MSDN\TECHART\4242\GLVIEW.H +SAMPLES\MSDN\TECHART\4242\IMAGE.CPP +SAMPLES\MSDN\TECHART\4242\IMAGE.H +SAMPLES\MSDN\TECHART\4242\LIB +SAMPLES\MSDN\TECHART\4242\README.TXT +SAMPLES\MSDN\TECHART\4242\RES +SAMPLES\MSDN\TECHART\4242\RESOURCE.H +SAMPLES\MSDN\TECHART\4242\STDAFX.CPP +SAMPLES\MSDN\TECHART\4242\STDAFX.H +SAMPLES\MSDN\TECHART\4242\LIB\X86 +SAMPLES\MSDN\TECHART\4242\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\4242\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\4242\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\4242\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\4242\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\4244\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4244\CONFIGDL.CPP +SAMPLES\MSDN\TECHART\4244\CONFIGDL.H +SAMPLES\MSDN\TECHART\4244\GLWND.CPP +SAMPLES\MSDN\TECHART\4244\GLWND.H +SAMPLES\MSDN\TECHART\4244\MOVEWND.CPP +SAMPLES\MSDN\TECHART\4244\MOVEWND.H +SAMPLES\MSDN\TECHART\4244\PICCUBE.CPP +SAMPLES\MSDN\TECHART\4244\PICCUBE.H +SAMPLES\MSDN\TECHART\4244\PICCUBE.MAK +SAMPLES\MSDN\TECHART\4244\PICCUBE.RC +SAMPLES\MSDN\TECHART\4244\RES +SAMPLES\MSDN\TECHART\4244\RESOURCE.H +SAMPLES\MSDN\TECHART\4244\SAVEWND.CPP +SAMPLES\MSDN\TECHART\4244\SAVEWND.H +SAMPLES\MSDN\TECHART\4244\SCENE.CPP +SAMPLES\MSDN\TECHART\4244\SCENE.H +SAMPLES\MSDN\TECHART\4244\SHAPES.CPP +SAMPLES\MSDN\TECHART\4244\STDAFX.CPP +SAMPLES\MSDN\TECHART\4244\STDAFX.H +SAMPLES\MSDN\TECHART\4244\WINREL +SAMPLES\MSDN\TECHART\4244\RES\4COLOR.DIB +SAMPLES\MSDN\TECHART\4244\RES\ANDY.DIB +SAMPLES\MSDN\TECHART\4244\RES\BITMAP1.BMP +SAMPLES\MSDN\TECHART\4244\RES\CURSOR1.CUR +SAMPLES\MSDN\TECHART\4244\RES\DALERO.DIB +SAMPLES\MSDN\TECHART\4244\RES\NCLUTS.DIB +SAMPLES\MSDN\TECHART\4244\RES\NIGEL.DIB +SAMPLES\MSDN\TECHART\4244\RES\PICCUBE.ICO +SAMPLES\MSDN\TECHART\4244\RES\PICCUBE.RC2 +SAMPLES\MSDN\TECHART\4244\RES\PICCUDOC.ICO +SAMPLES\MSDN\TECHART\4244\RES\RUDY.DIB +SAMPLES\MSDN\TECHART\4244\WINREL\PICCUBE.SCR +SAMPLES\MSDN\TECHART\4245\INCLUDE +SAMPLES\MSDN\TECHART\4245\LIB +SAMPLES\MSDN\TECHART\4245\README.TXT +SAMPLES\MSDN\TECHART\4245\SRC +SAMPLES\MSDN\TECHART\4245\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\4245\LIB\X86 +SAMPLES\MSDN\TECHART\4245\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\4245\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\4245\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\4245\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\4245\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\4245\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\4245\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\4245\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\4245\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\4245\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\4245\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\4245\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\4245\SRC\METER.CPP +SAMPLES\MSDN\TECHART\4245\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\4245\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\4245\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\4245\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\4245\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\4245\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\4245\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\4245\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\4245\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\4245\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\4245\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\4245\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\4245\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\4246\INCLUDE +SAMPLES\MSDN\TECHART\4246\LIB +SAMPLES\MSDN\TECHART\4246\README.TXT +SAMPLES\MSDN\TECHART\4246\SRC +SAMPLES\MSDN\TECHART\4246\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\4246\LIB\X86 +SAMPLES\MSDN\TECHART\4246\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\4246\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\4246\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\4246\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\4246\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\4246\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\4246\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\4246\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\4246\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\4246\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\4246\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\4246\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\4246\SRC\METER.CPP +SAMPLES\MSDN\TECHART\4246\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\4246\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\4246\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\4246\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\4246\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\4246\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\4246\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\4246\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\4246\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\4246\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\4246\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\4246\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\4246\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\4247\INCLUDE +SAMPLES\MSDN\TECHART\4247\LIB +SAMPLES\MSDN\TECHART\4247\README.TXT +SAMPLES\MSDN\TECHART\4247\SRC +SAMPLES\MSDN\TECHART\4247\INCLUDE\ANIMATE.H +SAMPLES\MSDN\TECHART\4247\LIB\X86 +SAMPLES\MSDN\TECHART\4247\LIB\X86\ANIMATER.LIB +SAMPLES\MSDN\TECHART\4247\LIB\X86\ANIMATESR.LIB +SAMPLES\MSDN\TECHART\4247\SRC\ANIMATE.HLP +SAMPLES\MSDN\TECHART\4247\SRC\ANIMATE.MAK +SAMPLES\MSDN\TECHART\4247\SRC\ANIMATE.VCP +SAMPLES\MSDN\TECHART\4247\SRC\AUTODOC.FMT +SAMPLES\MSDN\TECHART\4247\SRC\DIB.CPP +SAMPLES\MSDN\TECHART\4247\SRC\DIBPAL.CPP +SAMPLES\MSDN\TECHART\4247\SRC\DIBSURF.CPP +SAMPLES\MSDN\TECHART\4247\SRC\MAKEFILE.VCP +SAMPLES\MSDN\TECHART\4247\SRC\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\4247\SRC\MCIOBJ.CPP +SAMPLES\MSDN\TECHART\4247\SRC\METER.CPP +SAMPLES\MSDN\TECHART\4247\SRC\OSBVIEW.CPP +SAMPLES\MSDN\TECHART\4247\SRC\PHSPRITE.CPP +SAMPLES\MSDN\TECHART\4247\SRC\SOUND.CPP +SAMPLES\MSDN\TECHART\4247\SRC\SPLSTNO.CPP +SAMPLES\MSDN\TECHART\4247\SRC\SPRITE.CPP +SAMPLES\MSDN\TECHART\4247\SRC\SPRITLST.CPP +SAMPLES\MSDN\TECHART\4247\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\4247\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\4247\SRC\TRANSBMP.CPP +SAMPLES\MSDN\TECHART\4247\SRC\VUMETER.CPP +SAMPLES\MSDN\TECHART\4247\SRC\WAVE.CPP +SAMPLES\MSDN\TECHART\4247\SRC\WAVEIDEV.CPP +SAMPLES\MSDN\TECHART\4247\SRC\WAVEODEV.CPP +SAMPLES\MSDN\TECHART\4249\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4249\DRAWING +SAMPLES\MSDN\TECHART\4249\INCLUDE +SAMPLES\MSDN\TECHART\4249\SETUP +SAMPLES\MSDN\TECHART\4249\VBDRAW +SAMPLES\MSDN\TECHART\4249\VCDRAW +SAMPLES\MSDN\TECHART\4249\DRAWING\COLORPAL.H +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.CLW +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.CPP +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.DEF +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.EXP +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.H +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.LIB +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.MAK +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.ODL +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.RC +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.REG +SAMPLES\MSDN\TECHART\4249\DRAWING\DRAWING.VCP +SAMPLES\MSDN\TECHART\4249\DRAWING\DSURFOBJ.CPP +SAMPLES\MSDN\TECHART\4249\DRAWING\DSURFOBJ.H +SAMPLES\MSDN\TECHART\4249\DRAWING\GUIDS.CPP +SAMPLES\MSDN\TECHART\4249\DRAWING\IDS.CPP +SAMPLES\MSDN\TECHART\4249\DRAWING\IDS.H +SAMPLES\MSDN\TECHART\4249\DRAWING\IMAGE.CPP +SAMPLES\MSDN\TECHART\4249\DRAWING\IMAGE.H +SAMPLES\MSDN\TECHART\4249\DRAWING\PALOBJ.CPP +SAMPLES\MSDN\TECHART\4249\DRAWING\PALOBJ.H +SAMPLES\MSDN\TECHART\4249\DRAWING\README.TXT +SAMPLES\MSDN\TECHART\4249\DRAWING\RES +SAMPLES\MSDN\TECHART\4249\DRAWING\RESOURCE.H +SAMPLES\MSDN\TECHART\4249\DRAWING\STDAFX.CPP +SAMPLES\MSDN\TECHART\4249\DRAWING\STDAFX.H +SAMPLES\MSDN\TECHART\4249\DRAWING\X86-R +SAMPLES\MSDN\TECHART\4249\DRAWING\RES\DRAWING.RC2 +SAMPLES\MSDN\TECHART\4249\DRAWING\X86-R\DRAWING.DLL +SAMPLES\MSDN\TECHART\4249\DRAWING\X86-R\DRAWING.RES +SAMPLES\MSDN\TECHART\4249\DRAWING\X86-R\DRAWING.TLB +SAMPLES\MSDN\TECHART\4249\INCLUDE\APPLIANCESID.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\DRAWINGID.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\IAPPLIANCEUI.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\IBITMAP.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\IDRAWING.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\ILIGHT.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\IMPIUNK.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\INOTIFY.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\INOTIFYSRC.H +SAMPLES\MSDN\TECHART\4249\INCLUDE\IOUTLET.H +SAMPLES\MSDN\TECHART\4249\SETUP\DOGBK1.BMP +SAMPLES\MSDN\TECHART\4249\SETUP\DRAWING.DLL +SAMPLES\MSDN\TECHART\4249\SETUP\MFCO30D.DLL +SAMPLES\MSDN\TECHART\4249\SETUP\OC30.DLL +SAMPLES\MSDN\TECHART\4249\SETUP\REDBALL.BMP +SAMPLES\MSDN\TECHART\4249\SETUP\SETUP.DAT +SAMPLES\MSDN\TECHART\4249\SETUP\SETUP.EXE +SAMPLES\MSDN\TECHART\4249\SETUP\VAEN232.OLB +SAMPLES\MSDN\TECHART\4249\SETUP\VB40032.DLL +SAMPLES\MSDN\TECHART\4249\SETUP\VBDRAW.EXE +SAMPLES\MSDN\TECHART\4249\SETUP\VCDRAW.EXE +SAMPLES\MSDN\TECHART\4249\VBDRAW\DOGBK1.BMP +SAMPLES\MSDN\TECHART\4249\VBDRAW\REDBALL.BMP +SAMPLES\MSDN\TECHART\4249\VBDRAW\VBDRAW.EXE +SAMPLES\MSDN\TECHART\4249\VBDRAW\VBDRAW.FRM +SAMPLES\MSDN\TECHART\4249\VBDRAW\VBDRAW.MAK +SAMPLES\MSDN\TECHART\4249\VCDRAW\DOGBK1.BMP +SAMPLES\MSDN\TECHART\4249\VCDRAW\ICOPALOB.CPP +SAMPLES\MSDN\TECHART\4249\VCDRAW\ICOPALOB.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\IDSOBJ.CPP +SAMPLES\MSDN\TECHART\4249\VCDRAW\IDSOBJ.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4249\VCDRAW\MAINFRM.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\README.TXT +SAMPLES\MSDN\TECHART\4249\VCDRAW\REDBALL.BMP +SAMPLES\MSDN\TECHART\4249\VCDRAW\RES +SAMPLES\MSDN\TECHART\4249\VCDRAW\RESOURCE.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\STDAFX.CPP +SAMPLES\MSDN\TECHART\4249\VCDRAW\STDAFX.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRADOC.CPP +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRADOC.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAVW.CPP +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAVW.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.CLW +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.CPP +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.H +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.MAK +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.ODL +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.RC +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.REG +SAMPLES\MSDN\TECHART\4249\VCDRAW\VCDRAW.VCP +SAMPLES\MSDN\TECHART\4249\VCDRAW\X86-R +SAMPLES\MSDN\TECHART\4249\VCDRAW\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4249\VCDRAW\RES\VCDRADOC.ICO +SAMPLES\MSDN\TECHART\4249\VCDRAW\RES\VCDRAW.ICO +SAMPLES\MSDN\TECHART\4249\VCDRAW\RES\VCDRAW.RC2 +SAMPLES\MSDN\TECHART\4249\VCDRAW\X86-R\VCDRAW.EXE +SAMPLES\MSDN\TECHART\4249\VCDRAW\X86-R\VCDRAW.RES +SAMPLES\MSDN\TECHART\4249\VCDRAW\X86-R\VCDRAW.TLB +SAMPLES\MSDN\TECHART\4301\APPSS.BAS +SAMPLES\MSDN\TECHART\4301\FRMSS.FRM +SAMPLES\MSDN\TECHART\4301\FRMSS.FRX +SAMPLES\MSDN\TECHART\4301\FRMSSPW.FRM +SAMPLES\MSDN\TECHART\4301\FRMUSSC.FRM +SAMPLES\MSDN\TECHART\4301\MYAPP.BAS +SAMPLES\MSDN\TECHART\4301\SCRSAVER.BAS +SAMPLES\MSDN\TECHART\4301\SCRSAVER.CLS +SAMPLES\MSDN\TECHART\4301\SCRSAVER.INI +SAMPLES\MSDN\TECHART\4301\SCRSAVER.SCR +SAMPLES\MSDN\TECHART\4301\SCRSAVER.VBP +SAMPLES\MSDN\TECHART\4301\STARTUP.BAS +SAMPLES\MSDN\TECHART\4301\UDTSSC.BAS +SAMPLES\MSDN\TECHART\4322\APIOLE16.VBP +SAMPLES\MSDN\TECHART\4322\SUBMAIN.BAS +SAMPLES\MSDN\TECHART\4322\WININI.CLS +SAMPLES\MSDN\TECHART\4324\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4324\MAINFRM.H +SAMPLES\MSDN\TECHART\4324\RES +SAMPLES\MSDN\TECHART\4324\RESOURCE.H +SAMPLES\MSDN\TECHART\4324\STDAFX.CPP +SAMPLES\MSDN\TECHART\4324\STDAFX.H +SAMPLES\MSDN\TECHART\4324\TEMMEDOC.CPP +SAMPLES\MSDN\TECHART\4324\TEMMEDOC.H +SAMPLES\MSDN\TECHART\4324\TEMMEMPTR.APS +SAMPLES\MSDN\TECHART\4324\TEMMEMPTR.CLW +SAMPLES\MSDN\TECHART\4324\TEMMEMPTR.CPP +SAMPLES\MSDN\TECHART\4324\TEMMEMPTR.H +SAMPLES\MSDN\TECHART\4324\TEMMEMPTR.MAK +SAMPLES\MSDN\TECHART\4324\TEMMEMPTR.RC +SAMPLES\MSDN\TECHART\4324\TEMMEMPTR.VCP +SAMPLES\MSDN\TECHART\4324\TEMMEVW.CPP +SAMPLES\MSDN\TECHART\4324\TEMMEVW.H +SAMPLES\MSDN\TECHART\4324\TEMPLATEDIALOG.H +SAMPLES\MSDN\TECHART\4324\THEDIALOG.CPP +SAMPLES\MSDN\TECHART\4324\THEDIALOG.H +SAMPLES\MSDN\TECHART\4324\WINREL +SAMPLES\MSDN\TECHART\4324\RES\TEMMEDOC.ICO +SAMPLES\MSDN\TECHART\4324\RES\TEMMEMPTR.ICO +SAMPLES\MSDN\TECHART\4324\RES\TEMMEMPTR.RC2 +SAMPLES\MSDN\TECHART\4324\WINREL\TEMMEMPTR.EXE +SAMPLES\MSDN\TECHART\4329\CTRLPAN.CPP +SAMPLES\MSDN\TECHART\4329\CTRLPAN.H +SAMPLES\MSDN\TECHART\4329\ICON1.ICO +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.APS +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.CLW +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.CPP +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.DEF +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.EXP +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.H +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.LIB +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.MAK +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.RC +SAMPLES\MSDN\TECHART\4329\MYCPLAPP.VCP +SAMPLES\MSDN\TECHART\4329\MYDIALOG.CPP +SAMPLES\MSDN\TECHART\4329\MYDIALOG.H +SAMPLES\MSDN\TECHART\4329\MYPANEL.CPP +SAMPLES\MSDN\TECHART\4329\MYPANEL.H +SAMPLES\MSDN\TECHART\4329\README.TXT +SAMPLES\MSDN\TECHART\4329\RES +SAMPLES\MSDN\TECHART\4329\RESOURCE.H +SAMPLES\MSDN\TECHART\4329\STDAFX.CPP +SAMPLES\MSDN\TECHART\4329\STDAFX.H +SAMPLES\MSDN\TECHART\4329\WINREL +SAMPLES\MSDN\TECHART\4329\RES\MYCPLAPP.RC2 +SAMPLES\MSDN\TECHART\4329\WINREL\MYCPLAPP.DLL +SAMPLES\MSDN\TECHART\4342\CGL.CPP +SAMPLES\MSDN\TECHART\4342\CGL.H +SAMPLES\MSDN\TECHART\4342\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\4342\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\4342\EASYFDOC.CPP +SAMPLES\MSDN\TECHART\4342\EASYFDOC.H +SAMPLES\MSDN\TECHART\4342\EASYFONT.APS +SAMPLES\MSDN\TECHART\4342\EASYFONT.CLW +SAMPLES\MSDN\TECHART\4342\EASYFONT.CPP +SAMPLES\MSDN\TECHART\4342\EASYFONT.H +SAMPLES\MSDN\TECHART\4342\EASYFONT.MAK +SAMPLES\MSDN\TECHART\4342\EASYFONT.RC +SAMPLES\MSDN\TECHART\4342\EASYFONT.VCP +SAMPLES\MSDN\TECHART\4342\FONTPARAMDLG.CPP +SAMPLES\MSDN\TECHART\4342\FONTPARAMDLG.H +SAMPLES\MSDN\TECHART\4342\GLLIB.CPP +SAMPLES\MSDN\TECHART\4342\GLLIB.DEF +SAMPLES\MSDN\TECHART\4342\GLLIB.H +SAMPLES\MSDN\TECHART\4342\GLLIB.LIB +SAMPLES\MSDN\TECHART\4342\GLLIB.MAK +SAMPLES\MSDN\TECHART\4342\GLLIB.RC +SAMPLES\MSDN\TECHART\4342\GLVIEW.CPP +SAMPLES\MSDN\TECHART\4342\GLVIEW.H +SAMPLES\MSDN\TECHART\4342\IMAGE.CPP +SAMPLES\MSDN\TECHART\4342\IMAGE.H +SAMPLES\MSDN\TECHART\4342\LIB +SAMPLES\MSDN\TECHART\4342\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4342\MAINFRM.H +SAMPLES\MSDN\TECHART\4342\README.TXT +SAMPLES\MSDN\TECHART\4342\RES +SAMPLES\MSDN\TECHART\4342\RESOURCE.H +SAMPLES\MSDN\TECHART\4342\SCENE.CPP +SAMPLES\MSDN\TECHART\4342\SCENE.H +SAMPLES\MSDN\TECHART\4342\SCENEVW.CPP +SAMPLES\MSDN\TECHART\4342\SCENEVW.H +SAMPLES\MSDN\TECHART\4342\SHAPES.CPP +SAMPLES\MSDN\TECHART\4342\SHAPES.H +SAMPLES\MSDN\TECHART\4342\STDAFX.CPP +SAMPLES\MSDN\TECHART\4342\STDAFX.H +SAMPLES\MSDN\TECHART\4342\WINREL +SAMPLES\MSDN\TECHART\4342\LIB\X86 +SAMPLES\MSDN\TECHART\4342\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\4342\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\4342\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\4342\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\4342\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\4342\WINREL\EASYFONT.EXE +SAMPLES\MSDN\TECHART\4343\CGL.CPP +SAMPLES\MSDN\TECHART\4343\CGL.H +SAMPLES\MSDN\TECHART\4343\CGL-HELP.CPP +SAMPLES\MSDN\TECHART\4343\CGL-PAL.CPP +SAMPLES\MSDN\TECHART\4343\GLLIB.CPP +SAMPLES\MSDN\TECHART\4343\GLLIB.DEF +SAMPLES\MSDN\TECHART\4343\GLLIB.H +SAMPLES\MSDN\TECHART\4343\GLLIB.LIB +SAMPLES\MSDN\TECHART\4343\GLLIB.MAK +SAMPLES\MSDN\TECHART\4343\GLLIB.RC +SAMPLES\MSDN\TECHART\4343\GLVIEW.CPP +SAMPLES\MSDN\TECHART\4343\GLVIEW.H +SAMPLES\MSDN\TECHART\4343\IMAGE.CPP +SAMPLES\MSDN\TECHART\4343\IMAGE.H +SAMPLES\MSDN\TECHART\4343\LIB +SAMPLES\MSDN\TECHART\4343\README.TXT +SAMPLES\MSDN\TECHART\4343\RES +SAMPLES\MSDN\TECHART\4343\RESOURCE.H +SAMPLES\MSDN\TECHART\4343\STDAFX.CPP +SAMPLES\MSDN\TECHART\4343\STDAFX.H +SAMPLES\MSDN\TECHART\4343\LIB\X86 +SAMPLES\MSDN\TECHART\4343\LIB\X86\GLLIB.DLL +SAMPLES\MSDN\TECHART\4343\LIB\X86\GLLIB.LIB +SAMPLES\MSDN\TECHART\4343\LIB\X86\GLLIB-D.DLL +SAMPLES\MSDN\TECHART\4343\LIB\X86\GLLIB-D.LIB +SAMPLES\MSDN\TECHART\4343\RES\GLLIB.RC2 +SAMPLES\MSDN\TECHART\4346\MAPVBIDE.EPS +SAMPLES\MSDN\TECHART\4346\MAPVBIDE.VSD +SAMPLES\MSDN\TECHART\4346\MAPVBIDE.WMF +SAMPLES\MSDN\TECHART\4347\MAPDAO30.EPS +SAMPLES\MSDN\TECHART\4347\MAPDAO30.VSD +SAMPLES\MSDN\TECHART\4347\MAPDAO30.WMF +SAMPLES\MSDN\TECHART\4382\ADDIN.CLS +SAMPLES\MSDN\TECHART\4382\ADDINS.MDB +SAMPLES\MSDN\TECHART\4382\ADDINSTANDARD.BAS +SAMPLES\MSDN\TECHART\4382\DEMOMSDN.EXE +SAMPLES\MSDN\TECHART\4382\DEMOMSDN.VBP +SAMPLES\MSDN\TECHART\4382\FORMCTL.FRM +SAMPLES\MSDN\TECHART\4382\FRMADDINMGR.FRM +SAMPLES\MSDN\TECHART\4382\SAMPLE.FRM +SAMPLES\MSDN\TECHART\4382\SAMPLE.VBP +SAMPLES\MSDN\TECHART\4382\SUBMAIN.BAS +SAMPLES\MSDN\TECHART\4409\MAPRDO10.EPS +SAMPLES\MSDN\TECHART\4409\MAPRDO10.VSD +SAMPLES\MSDN\TECHART\4409\MAPRDO10.WMF +SAMPLES\MSDN\TECHART\4410\MSGRAPH5.EPS +SAMPLES\MSDN\TECHART\4410\MSGRAPH5.VSD +SAMPLES\MSDN\TECHART\4410\MSGRAPH5.WMF +SAMPLES\MSDN\TECHART\4413\CLI +SAMPLES\MSDN\TECHART\4413\COMMON +SAMPLES\MSDN\TECHART\4413\SRV +SAMPLES\MSDN\TECHART\4413\CLI\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\4413\CLI\BROWSEDI.H +SAMPLES\MSDN\TECHART\4413\CLI\CLIAPP.CPP +SAMPLES\MSDN\TECHART\4413\CLI\CLIAPP.H +SAMPLES\MSDN\TECHART\4413\CLI\CLIAPP.MAK +SAMPLES\MSDN\TECHART\4413\CLI\CLIAPP.RC +SAMPLES\MSDN\TECHART\4413\CLI\CLIAPP.VCP +SAMPLES\MSDN\TECHART\4413\CLI\CLIDOC.CPP +SAMPLES\MSDN\TECHART\4413\CLI\CLIDOC.H +SAMPLES\MSDN\TECHART\4413\CLI\CLIVIEW.CPP +SAMPLES\MSDN\TECHART\4413\CLI\CLIVIEW.H +SAMPLES\MSDN\TECHART\4413\CLI\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4413\CLI\MAINFRM.H +SAMPLES\MSDN\TECHART\4413\CLI\RES +SAMPLES\MSDN\TECHART\4413\CLI\RESOURCE.H +SAMPLES\MSDN\TECHART\4413\CLI\STDAFX.CPP +SAMPLES\MSDN\TECHART\4413\CLI\STDAFX.H +SAMPLES\MSDN\TECHART\4413\CLI\WINREL +SAMPLES\MSDN\TECHART\4413\CLI\RES\NPSECCLI.ICO +SAMPLES\MSDN\TECHART\4413\CLI\RES\NPSECCLI.RC2 +SAMPLES\MSDN\TECHART\4413\CLI\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4413\CLI\WINREL\MSVCRT20.DLL +SAMPLES\MSDN\TECHART\4413\COMMON\CFILEMAP.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\CFILEMAP.H +SAMPLES\MSDN\TECHART\4413\COMMON\CMUTEX.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\CMUTEX.H +SAMPLES\MSDN\TECHART\4413\COMMON\COMCLASS.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\COMCLASS.H +SAMPLES\MSDN\TECHART\4413\COMMON\COMMON.H +SAMPLES\MSDN\TECHART\4413\COMMON\DBCODE.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\DBCODE.H +SAMPLES\MSDN\TECHART\4413\COMMON\DBDIALOG.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\DBDIALOG.H +SAMPLES\MSDN\TECHART\4413\COMMON\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\EASYVIEW.H +SAMPLES\MSDN\TECHART\4413\COMMON\NPIPE.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\NPIPE.H +SAMPLES\MSDN\TECHART\4413\COMMON\PIPEVARS +SAMPLES\MSDN\TECHART\4413\COMMON\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\PROTOCOL.H +SAMPLES\MSDN\TECHART\4413\COMMON\SAVE +SAMPLES\MSDN\TECHART\4413\COMMON\PIPEVARS\NONBLOCK.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\PIPEVARS\OVERLAP.CPP +SAMPLES\MSDN\TECHART\4413\COMMON\PIPEVARS\SIMPLE.CPP +SAMPLES\MSDN\TECHART\4413\SRV\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4413\SRV\MAINFRM.H +SAMPLES\MSDN\TECHART\4413\SRV\RES +SAMPLES\MSDN\TECHART\4413\SRV\RESOURCE.H +SAMPLES\MSDN\TECHART\4413\SRV\SECSTUFF +SAMPLES\MSDN\TECHART\4413\SRV\SRVAPP.CPP +SAMPLES\MSDN\TECHART\4413\SRV\SRVAPP.H +SAMPLES\MSDN\TECHART\4413\SRV\SRVAPP.MAK +SAMPLES\MSDN\TECHART\4413\SRV\SRVAPP.RC +SAMPLES\MSDN\TECHART\4413\SRV\SRVAPP.VCP +SAMPLES\MSDN\TECHART\4413\SRV\SRVDOC.CPP +SAMPLES\MSDN\TECHART\4413\SRV\SRVDOC.H +SAMPLES\MSDN\TECHART\4413\SRV\SRVVIEW.CPP +SAMPLES\MSDN\TECHART\4413\SRV\SRVVIEW.H +SAMPLES\MSDN\TECHART\4413\SRV\SRVVIEW.MAK +SAMPLES\MSDN\TECHART\4413\SRV\SRVVIEW.VCP +SAMPLES\MSDN\TECHART\4413\SRV\STDAFX.CPP +SAMPLES\MSDN\TECHART\4413\SRV\STDAFX.H +SAMPLES\MSDN\TECHART\4413\SRV\VC30.REP +SAMPLES\MSDN\TECHART\4413\SRV\WINREL +SAMPLES\MSDN\TECHART\4413\SRV\RES\NPSCESRV.ICO +SAMPLES\MSDN\TECHART\4413\SRV\RES\NPSCESRV.RC2 +SAMPLES\MSDN\TECHART\4413\SRV\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4413\SRV\SECSTUFF\EXAMSTFF.CPP +SAMPLES\MSDN\TECHART\4413\SRV\SECSTUFF\EXAMSTFF.H +SAMPLES\MSDN\TECHART\4413\SRV\SECSTUFF\SEC.CPP +SAMPLES\MSDN\TECHART\4413\SRV\SECSTUFF\SEC.H +SAMPLES\MSDN\TECHART\4413\SRV\SECSTUFF\SECDIALO.CPP +SAMPLES\MSDN\TECHART\4413\SRV\SECSTUFF\SECDIALO.H +SAMPLES\MSDN\TECHART\4413\SRV\WINREL\SRVAPP.EXE +SAMPLES\MSDN\TECHART\4417\CBITMAPOBJECT.CPP +SAMPLES\MSDN\TECHART\4417\CBITMAPOBJECT.H +SAMPLES\MSDN\TECHART\4417\CLIGHTBULB.CPP +SAMPLES\MSDN\TECHART\4417\CLIGHTBULB.H +SAMPLES\MSDN\TECHART\4417\CNOTIFYLISTOBJECT.CPP +SAMPLES\MSDN\TECHART\4417\CNOTIFYLISTOBJECT.H +SAMPLES\MSDN\TECHART\4417\COMBASE.CPP +SAMPLES\MSDN\TECHART\4417\COMBASE.H +SAMPLES\MSDN\TECHART\4417\CRADIO.CPP +SAMPLES\MSDN\TECHART\4417\CRADIO.H +SAMPLES\MSDN\TECHART\4417\CSTANDARDLAMP.CPP +SAMPLES\MSDN\TECHART\4417\CSTANDARDLAMP.H +SAMPLES\MSDN\TECHART\4417\CTELEVISION.CPP +SAMPLES\MSDN\TECHART\4417\CTELEVISION.H +SAMPLES\MSDN\TECHART\4417\GUIDS.CPP +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.APS +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.CLW +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.CPP +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.DEF +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.DLL +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.EXP +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.H +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.LIB +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.MAK +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.ODL +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.RC +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.REG +SAMPLES\MSDN\TECHART\4417\MI_APPLIANCES.VCP +SAMPLES\MSDN\TECHART\4417\RADIODLG.CPP +SAMPLES\MSDN\TECHART\4417\RADIODLG.H +SAMPLES\MSDN\TECHART\4417\README.TXT +SAMPLES\MSDN\TECHART\4417\RES +SAMPLES\MSDN\TECHART\4417\RESOURCE.H +SAMPLES\MSDN\TECHART\4417\STDAFX.CPP +SAMPLES\MSDN\TECHART\4417\STDAFX.H +SAMPLES\MSDN\TECHART\4417\TVDLG.CPP +SAMPLES\MSDN\TECHART\4417\TVDLG.H +SAMPLES\MSDN\TECHART\4417\RES\LTBULB0.BMP +SAMPLES\MSDN\TECHART\4417\RES\LTBULB1.BMP +SAMPLES\MSDN\TECHART\4417\RES\MI_APPLIANCES.RC2 +SAMPLES\MSDN\TECHART\4417\RES\RADIO.BMP +SAMPLES\MSDN\TECHART\4417\RES\STDLAMP0.BMP +SAMPLES\MSDN\TECHART\4417\RES\STDLAMP1.BMP +SAMPLES\MSDN\TECHART\4417\RES\STDLAMP2.BMP +SAMPLES\MSDN\TECHART\4417\RES\TV.BMP +SAMPLES\MSDN\TECHART\4419\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4419\APPLIANCES +SAMPLES\MSDN\TECHART\4419\HOUSE +SAMPLES\MSDN\TECHART\4419\INCLUDE +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.DEF +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.EXP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.LIB +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.MAK +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.ODL +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.RC +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.REG +SAMPLES\MSDN\TECHART\4419\APPLIANCES\APPLIANCES.VCP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\BITMAPOB.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\BITMAPOB.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\GUIDS.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\LIGHTBL.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\LIGHTBL.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\NOTIFYOB.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\NOTIFYOB.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIO.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIO.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIO1.MID +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIO2.MID +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIO3.MID +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIO4.MID +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIODLG.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RADIODLG.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\README.TXT +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RESOURCE.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\STANDARD.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\STANDARD.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\STDAFX.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\STDAFX.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\TELEVISI.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\TELEVISI.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\TVDLG.CPP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\TVDLG.H +SAMPLES\MSDN\TECHART\4419\APPLIANCES\X86-R +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\APPLIANCES.RC2 +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\LTBULB0.BMP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\LTBULB1.BMP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\RADIO.BMP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\STDLAMP0.BMP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\STDLAMP1.BMP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\STDLAMP2.BMP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\RES\TV.BMP +SAMPLES\MSDN\TECHART\4419\APPLIANCES\X86-R\APPLIANCES.DLL +SAMPLES\MSDN\TECHART\4419\HOUSE\DBGWND.CPP +SAMPLES\MSDN\TECHART\4419\HOUSE\DBGWND.H +SAMPLES\MSDN\TECHART\4419\HOUSE\GUIDS.CPP +SAMPLES\MSDN\TECHART\4419\HOUSE\HOUSE.CPP +SAMPLES\MSDN\TECHART\4419\HOUSE\HOUSE.H +SAMPLES\MSDN\TECHART\4419\HOUSE\HOUSE.MAK +SAMPLES\MSDN\TECHART\4419\HOUSE\HOUSE.RC +SAMPLES\MSDN\TECHART\4419\HOUSE\HOUSE.VCP +SAMPLES\MSDN\TECHART\4419\HOUSE\LIGHTDLG.CPP +SAMPLES\MSDN\TECHART\4419\HOUSE\LIGHTDLG.H +SAMPLES\MSDN\TECHART\4419\HOUSE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4419\HOUSE\MAINFRM.H +SAMPLES\MSDN\TECHART\4419\HOUSE\OUTLETDL.CPP +SAMPLES\MSDN\TECHART\4419\HOUSE\OUTLETDL.H +SAMPLES\MSDN\TECHART\4419\HOUSE\RADIO1.MID +SAMPLES\MSDN\TECHART\4419\HOUSE\RADIO2.MID +SAMPLES\MSDN\TECHART\4419\HOUSE\RADIO3.MID +SAMPLES\MSDN\TECHART\4419\HOUSE\RADIO4.MID +SAMPLES\MSDN\TECHART\4419\HOUSE\RES +SAMPLES\MSDN\TECHART\4419\HOUSE\RESOURCE.H +SAMPLES\MSDN\TECHART\4419\HOUSE\STDAFX.CPP +SAMPLES\MSDN\TECHART\4419\HOUSE\STDAFX.H +SAMPLES\MSDN\TECHART\4419\HOUSE\X86-R +SAMPLES\MSDN\TECHART\4419\HOUSE\RES\HOUSE.BMP +SAMPLES\MSDN\TECHART\4419\HOUSE\RES\HOUSE.ICO +SAMPLES\MSDN\TECHART\4419\HOUSE\RES\HOUSE.MAT +SAMPLES\MSDN\TECHART\4419\HOUSE\RES\HOUSE.RC2 +SAMPLES\MSDN\TECHART\4419\HOUSE\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4419\HOUSE\X86-R\HOUSE.EXE +SAMPLES\MSDN\TECHART\4419\INCLUDE\APPLIANCESID.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\IAPPLIANCEUI.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\IBITMAP.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\IDRAWING.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\ILIGHT.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\IMPIUNK.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\INOTIFY.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\INOTIFYSRC.H +SAMPLES\MSDN\TECHART\4419\INCLUDE\IOUTLET.H +SAMPLES\MSDN\TECHART\4424\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4424\APP +SAMPLES\MSDN\TECHART\4424\DLL +SAMPLES\MSDN\TECHART\4424\APP\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4424\APP\EASYVIEW.H +SAMPLES\MSDN\TECHART\4424\APP\HITLIST.TXT +SAMPLES\MSDN\TECHART\4424\APP\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4424\APP\MAINFRM.H +SAMPLES\MSDN\TECHART\4424\APP\PTAPP.APS +SAMPLES\MSDN\TECHART\4424\APP\PTAPP.CLW +SAMPLES\MSDN\TECHART\4424\APP\PTAPP.CPP +SAMPLES\MSDN\TECHART\4424\APP\PTAPP.H +SAMPLES\MSDN\TECHART\4424\APP\PTAPP.MAK +SAMPLES\MSDN\TECHART\4424\APP\PTAPP.RC +SAMPLES\MSDN\TECHART\4424\APP\PTAPP.VCP +SAMPLES\MSDN\TECHART\4424\APP\PTAPPDOC.CPP +SAMPLES\MSDN\TECHART\4424\APP\PTAPPDOC.H +SAMPLES\MSDN\TECHART\4424\APP\PTAPPVW.CPP +SAMPLES\MSDN\TECHART\4424\APP\PTAPPVW.H +SAMPLES\MSDN\TECHART\4424\APP\RES +SAMPLES\MSDN\TECHART\4424\APP\RESOURCE.H +SAMPLES\MSDN\TECHART\4424\APP\STDAFX.CPP +SAMPLES\MSDN\TECHART\4424\APP\STDAFX.H +SAMPLES\MSDN\TECHART\4424\APP\WINREL +SAMPLES\MSDN\TECHART\4424\APP\RES\PTAPP.ICO +SAMPLES\MSDN\TECHART\4424\APP\RES\PTAPP.RC2 +SAMPLES\MSDN\TECHART\4424\APP\RES\PTAPPDOC.ICO +SAMPLES\MSDN\TECHART\4424\APP\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4424\APP\WINREL\FCENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\FCNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\FDENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\FDNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\FNENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\FNNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\LCENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\LCNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\LDENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\LDNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\LNENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\LNNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\PTAPP.EXE +SAMPLES\MSDN\TECHART\4424\APP\WINREL\SCENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\SCNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\SDENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\SDNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\SNENNNNN.DLL +SAMPLES\MSDN\TECHART\4424\APP\WINREL\SNNNNNNN.DLL +SAMPLES\MSDN\TECHART\4424\DLL\FIXUPS.H +SAMPLES\MSDN\TECHART\4424\DLL\PAGETEST.C +SAMPLES\MSDN\TECHART\4424\DLL\PAGETEST.DEF +SAMPLES\MSDN\TECHART\4424\DLL\PAGETEST.H +SAMPLES\MSDN\TECHART\4424\DLL\PAGETEST.MAK +SAMPLES\MSDN\TECHART\4424\DLL\PAGETEST.RC +SAMPLES\MSDN\TECHART\4424\DLL\PAGETEST.VCP +SAMPLES\MSDN\TECHART\4424\DLL\WINREL +SAMPLES\MSDN\TECHART\4424\DLL\WINREL\PAGETEST.DLL +SAMPLES\MSDN\TECHART\4426\MAPBINDR.EPS +SAMPLES\MSDN\TECHART\4426\MAPBINDR.VSD +SAMPLES\MSDN\TECHART\4426\MAPBINDR.WMF +SAMPLES\MSDN\TECHART\4427\MAPOFF95.EPS +SAMPLES\MSDN\TECHART\4427\MAPOFF95.VSD +SAMPLES\MSDN\TECHART\4427\MAPOFF95.WMF +SAMPLES\MSDN\TECHART\4430\ABSTRACT.DOC +SAMPLES\MSDN\TECHART\4430\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4430\INTRORDO.EXE +SAMPLES\MSDN\TECHART\4430\INTRORDO.FRM +SAMPLES\MSDN\TECHART\4430\INTRORDO.FRX +SAMPLES\MSDN\TECHART\4430\INTRORDO.LOG +SAMPLES\MSDN\TECHART\4430\INTRORDO.VBP +SAMPLES\MSDN\TECHART\4430\INTRORDO_PROCEDURES.BAS +SAMPLES\MSDN\TECHART\4432\MAPVCMD.EPS +SAMPLES\MSDN\TECHART\4432\MAPVCMD.VSD +SAMPLES\MSDN\TECHART\4432\MAPVCMD.WMF +SAMPLES\MSDN\TECHART\4433\MAPVTXT.EPS +SAMPLES\MSDN\TECHART\4433\MAPVTXT.VSD +SAMPLES\MSDN\TECHART\4433\MAPVTXT.WMF +SAMPLES\MSDN\TECHART\4434\MAPWDACC.EPS +SAMPLES\MSDN\TECHART\4434\MAPWDACC.VSD +SAMPLES\MSDN\TECHART\4434\MAPWDACC.WMF +SAMPLES\MSDN\TECHART\4435\MAPSCHPM.EPS +SAMPLES\MSDN\TECHART\4435\MAPSCHPM.VSD +SAMPLES\MSDN\TECHART\4435\MAPSCHPM.WMF +SAMPLES\MSDN\TECHART\4436\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4436\ACCDEMO.EXE +SAMPLES\MSDN\TECHART\4436\ACCESS.FRM +SAMPLES\MSDN\TECHART\4436\ACCESS.VBP +SAMPLES\MSDN\TECHART\4438\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4438\BINDDEMO.EXE +SAMPLES\MSDN\TECHART\4438\BINDER.FRM +SAMPLES\MSDN\TECHART\4438\BINDER.FRX +SAMPLES\MSDN\TECHART\4438\BINDER.REG +SAMPLES\MSDN\TECHART\4438\BINDER.VBP +SAMPLES\MSDN\TECHART\4440\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4440\DAO.FRM +SAMPLES\MSDN\TECHART\4440\DAO.VBP +SAMPLES\MSDN\TECHART\4440\DAODEMO.EXE +SAMPLES\MSDN\TECHART\4440\MSDN.MDB +SAMPLES\MSDN\TECHART\4440\MSDN1.MDB +SAMPLES\MSDN\TECHART\4442\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4442\GRAPH.FRM +SAMPLES\MSDN\TECHART\4442\GRAPH.VBP +SAMPLES\MSDN\TECHART\4442\GRPHDEMO.EXE +SAMPLES\MSDN\TECHART\4444\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4444\MAPI.FRM +SAMPLES\MSDN\TECHART\4444\MAPI.VBP +SAMPLES\MSDN\TECHART\4446\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4446\MSOFFICE.FRM +SAMPLES\MSDN\TECHART\4446\MSOFFICE.VBP +SAMPLES\MSDN\TECHART\4446\OFFDEMO.EXE +SAMPLES\MSDN\TECHART\4448\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4448\POWERPNT.FRM +SAMPLES\MSDN\TECHART\4448\POWERPNT.VBP +SAMPLES\MSDN\TECHART\4448\PPTDEMO.EXE +SAMPLES\MSDN\TECHART\4450\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4450\PROJDEMO.EXE +SAMPLES\MSDN\TECHART\4450\PROJECT.FRM +SAMPLES\MSDN\TECHART\4450\PROJECT.VBP +SAMPLES\MSDN\TECHART\4452\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4452\RDO.FRM +SAMPLES\MSDN\TECHART\4452\RDO.VBP +SAMPLES\MSDN\TECHART\4452\RDODEMO.EXE +SAMPLES\MSDN\TECHART\4454\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4454\SCHPLUS.FRM +SAMPLES\MSDN\TECHART\4454\SCHPLUS.VBP +SAMPLES\MSDN\TECHART\4454\SPLDEMO.EXE +SAMPLES\MSDN\TECHART\4456\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4456\SQLDEMO.EXE +SAMPLES\MSDN\TECHART\4456\SQLOLE.FRM +SAMPLES\MSDN\TECHART\4456\SQLOLE.VBP +SAMPLES\MSDN\TECHART\4458\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4458\VCMDAUTO.FRM +SAMPLES\MSDN\TECHART\4458\VCMDAUTO.VBP +SAMPLES\MSDN\TECHART\4458\VCMDDEMO.EXE +SAMPLES\MSDN\TECHART\4460\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4460\VTXTAUTO.FRM +SAMPLES\MSDN\TECHART\4460\VTXTAUTO.VBP +SAMPLES\MSDN\TECHART\4462\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4462\MSDN1.MDB +SAMPLES\MSDN\TECHART\4462\MYMERGE.DOC +SAMPLES\MSDN\TECHART\4462\WACCDEMO.EXE +SAMPLES\MSDN\TECHART\4462\WD95ACC.FRM +SAMPLES\MSDN\TECHART\4462\WD95ACC.VBP +SAMPLES\MSDN\TECHART\4464\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4464\WORD.FRM +SAMPLES\MSDN\TECHART\4464\WORD.VBP +SAMPLES\MSDN\TECHART\4464\WORDDEMO.EXE +SAMPLES\MSDN\TECHART\4466\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4466\MSOFFICE.FRM +SAMPLES\MSDN\TECHART\4466\MSOFFICE.VBP +SAMPLES\MSDN\TECHART\4466\OFFDEMO.EXE +SAMPLES\MSDN\TECHART\4468\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4468\CHOOSER.CPP +SAMPLES\MSDN\TECHART\4468\CHOOSER.H +SAMPLES\MSDN\TECHART\4468\CSTM1DLG.CPP +SAMPLES\MSDN\TECHART\4468\CSTM1DLG.H +SAMPLES\MSDN\TECHART\4468\CSTM2DLG.CPP +SAMPLES\MSDN\TECHART\4468\CSTM2DLG.H +SAMPLES\MSDN\TECHART\4468\CSTM3DLG.CPP +SAMPLES\MSDN\TECHART\4468\CSTM3DLG.H +SAMPLES\MSDN\TECHART\4468\DEBUG.CPP +SAMPLES\MSDN\TECHART\4468\DEBUG.H +SAMPLES\MSDN\TECHART\4468\HLP +SAMPLES\MSDN\TECHART\4468\ICON1.ICO +SAMPLES\MSDN\TECHART\4468\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\4468\NTDDWZD.APS +SAMPLES\MSDN\TECHART\4468\NTDDWZD.CLW +SAMPLES\MSDN\TECHART\4468\NTDDWZD.CPP +SAMPLES\MSDN\TECHART\4468\NTDDWZD.H +SAMPLES\MSDN\TECHART\4468\NTDDWZD.HPJ +SAMPLES\MSDN\TECHART\4468\NTDDWZD.MAK +SAMPLES\MSDN\TECHART\4468\NTDDWZD.RC +SAMPLES\MSDN\TECHART\4468\NTDDWZDAW.CPP +SAMPLES\MSDN\TECHART\4468\NTDDWZDAW.H +SAMPLES\MSDN\TECHART\4468\NTDDWZD_ +SAMPLES\MSDN\TECHART\4468\README.TXT +SAMPLES\MSDN\TECHART\4468\RES +SAMPLES\MSDN\TECHART\4468\RESOURCE.H +SAMPLES\MSDN\TECHART\4468\RESOURCE.HM +SAMPLES\MSDN\TECHART\4468\STDAFX.CPP +SAMPLES\MSDN\TECHART\4468\STDAFX.H +SAMPLES\MSDN\TECHART\4468\TEMPLATE +SAMPLES\MSDN\TECHART\4468\XSTEPDLG.H +SAMPLES\MSDN\TECHART\4468\HLP\NTDDWZD.RTF +SAMPLES\MSDN\TECHART\4468\NTDDWZD_\NTDDWZD.AWX +SAMPLES\MSDN\TECHART\4468\RES\NTDDWZD.ICO +SAMPLES\MSDN\TECHART\4468\TEMPLATE\CONFIRM.INF +SAMPLES\MSDN\TECHART\4468\TEMPLATE\DEVEXT.CPP +SAMPLES\MSDN\TECHART\4468\TEMPLATE\DEVEXT.H +SAMPLES\MSDN\TECHART\4468\TEMPLATE\DRVCLASS.CPP +SAMPLES\MSDN\TECHART\4468\TEMPLATE\DRVCLASS.H +SAMPLES\MSDN\TECHART\4468\TEMPLATE\NEWPROJ.INF +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOT.LNK +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOT.MAK +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOT.RC +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOTDEP.C +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOTDEP.CPP +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOTDEP.H +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOTDEP.HPP +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOTPP.LNK +SAMPLES\MSDN\TECHART\4468\TEMPLATE\ROOTPP.MAK +SAMPLES\MSDN\TECHART\4469\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4469\CHOOSER.CPP +SAMPLES\MSDN\TECHART\4469\CHOOSER.H +SAMPLES\MSDN\TECHART\4469\CSTM1DLG.CPP +SAMPLES\MSDN\TECHART\4469\CSTM1DLG.H +SAMPLES\MSDN\TECHART\4469\CSTM2DLG.CPP +SAMPLES\MSDN\TECHART\4469\CSTM2DLG.H +SAMPLES\MSDN\TECHART\4469\CSTM3DLG.CPP +SAMPLES\MSDN\TECHART\4469\CSTM3DLG.H +SAMPLES\MSDN\TECHART\4469\DEBUG.CPP +SAMPLES\MSDN\TECHART\4469\DEBUG.H +SAMPLES\MSDN\TECHART\4469\HLP +SAMPLES\MSDN\TECHART\4469\ICON1.ICO +SAMPLES\MSDN\TECHART\4469\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\4469\NTDDWZD.APS +SAMPLES\MSDN\TECHART\4469\NTDDWZD.CLW +SAMPLES\MSDN\TECHART\4469\NTDDWZD.CPP +SAMPLES\MSDN\TECHART\4469\NTDDWZD.H +SAMPLES\MSDN\TECHART\4469\NTDDWZD.HPJ +SAMPLES\MSDN\TECHART\4469\NTDDWZD.MAK +SAMPLES\MSDN\TECHART\4469\NTDDWZD.RC +SAMPLES\MSDN\TECHART\4469\NTDDWZDAW.CPP +SAMPLES\MSDN\TECHART\4469\NTDDWZDAW.H +SAMPLES\MSDN\TECHART\4469\NTDDWZD_ +SAMPLES\MSDN\TECHART\4469\README.TXT +SAMPLES\MSDN\TECHART\4469\RES +SAMPLES\MSDN\TECHART\4469\RESOURCE.H +SAMPLES\MSDN\TECHART\4469\RESOURCE.HM +SAMPLES\MSDN\TECHART\4469\STDAFX.CPP +SAMPLES\MSDN\TECHART\4469\STDAFX.H +SAMPLES\MSDN\TECHART\4469\TEMPLATE +SAMPLES\MSDN\TECHART\4469\XSTEPDLG.H +SAMPLES\MSDN\TECHART\4469\HLP\NTDDWZD.RTF +SAMPLES\MSDN\TECHART\4469\NTDDWZD_\NTDDWZD.AWX +SAMPLES\MSDN\TECHART\4469\RES\NTDDWZD.ICO +SAMPLES\MSDN\TECHART\4469\TEMPLATE\CONFIRM.INF +SAMPLES\MSDN\TECHART\4469\TEMPLATE\DEVEXT.CPP +SAMPLES\MSDN\TECHART\4469\TEMPLATE\DEVEXT.H +SAMPLES\MSDN\TECHART\4469\TEMPLATE\DRVCLASS.CPP +SAMPLES\MSDN\TECHART\4469\TEMPLATE\DRVCLASS.H +SAMPLES\MSDN\TECHART\4469\TEMPLATE\NEWPROJ.INF +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOT.LNK +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOT.MAK +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOT.RC +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOTDEP.C +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOTDEP.CPP +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOTDEP.H +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOTDEP.HPP +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOTPP.LNK +SAMPLES\MSDN\TECHART\4469\TEMPLATE\ROOTPP.MAK +SAMPLES\MSDN\TECHART\4471\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4471\LOADVXD +SAMPLES\MSDN\TECHART\4471\VDYNDEBD +SAMPLES\MSDN\TECHART\4471\LOADVXD\ICON1.ICO +SAMPLES\MSDN\TECHART\4471\LOADVXD\LOADVXD.C +SAMPLES\MSDN\TECHART\4471\LOADVXD\LOADVXD.EXE +SAMPLES\MSDN\TECHART\4471\LOADVXD\LOADVXD.MAK +SAMPLES\MSDN\TECHART\4471\LOADVXD\LOADVXD.RC +SAMPLES\MSDN\TECHART\4471\LOADVXD\RESOURCE.H +SAMPLES\MSDN\TECHART\4471\VDYNDEBD\MAKEFILE +SAMPLES\MSDN\TECHART\4471\VDYNDEBD\VDYNDEBD.ASM +SAMPLES\MSDN\TECHART\4471\VDYNDEBD\VDYNDEBD.DEF +SAMPLES\MSDN\TECHART\4471\VDYNDEBD\VDYNDEBD.SYM +SAMPLES\MSDN\TECHART\4471\VDYNDEBD\VDYNDEBD.VXD +SAMPLES\MSDN\TECHART\4473\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4473\DIALERDL.CPP +SAMPLES\MSDN\TECHART\4473\DIALERDL.H +SAMPLES\MSDN\TECHART\4473\DIALIT.APS +SAMPLES\MSDN\TECHART\4473\DIALIT.CLW +SAMPLES\MSDN\TECHART\4473\DIALIT.CPP +SAMPLES\MSDN\TECHART\4473\DIALIT.EXE +SAMPLES\MSDN\TECHART\4473\DIALIT.H +SAMPLES\MSDN\TECHART\4473\DIALIT.MAK +SAMPLES\MSDN\TECHART\4473\DIALIT.RC +SAMPLES\MSDN\TECHART\4473\DIALIT.VCP +SAMPLES\MSDN\TECHART\4473\README.TXT +SAMPLES\MSDN\TECHART\4473\RES +SAMPLES\MSDN\TECHART\4473\RESOURCE.H +SAMPLES\MSDN\TECHART\4473\STDAFX.CPP +SAMPLES\MSDN\TECHART\4473\STDAFX.H +SAMPLES\MSDN\TECHART\4473\TAPIUTILS.CPP +SAMPLES\MSDN\TECHART\4473\TAPIUTILS.H +SAMPLES\MSDN\TECHART\4473\TEXT1.CPP +SAMPLES\MSDN\TECHART\4473\RES\DIALIDOC.ICO +SAMPLES\MSDN\TECHART\4473\RES\DIALIT.ICO +SAMPLES\MSDN\TECHART\4473\RES\DIALIT.RC2 +SAMPLES\MSDN\TECHART\4475\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4475\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4475\MAINFRM.H +SAMPLES\MSDN\TECHART\4475\RES +SAMPLES\MSDN\TECHART\4475\RESOURCE.H +SAMPLES\MSDN\TECHART\4475\SICLIENT.CPP +SAMPLES\MSDN\TECHART\4475\SICLIENT.EXE +SAMPLES\MSDN\TECHART\4475\SICLIENT.H +SAMPLES\MSDN\TECHART\4475\SICLIENT.MAK +SAMPLES\MSDN\TECHART\4475\SICLIENT.MDP +SAMPLES\MSDN\TECHART\4475\SICLIENT.RC +SAMPLES\MSDN\TECHART\4475\SICLIENT.REG +SAMPLES\MSDN\TECHART\4475\SICLIENTDOC.CPP +SAMPLES\MSDN\TECHART\4475\SICLIENTDOC.H +SAMPLES\MSDN\TECHART\4475\SICLIENTVIEW.CPP +SAMPLES\MSDN\TECHART\4475\SICLIENTVIEW.H +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT +SAMPLES\MSDN\TECHART\4475\SMARTINTERFACE.H +SAMPLES\MSDN\TECHART\4475\STDAFX.CPP +SAMPLES\MSDN\TECHART\4475\STDAFX.H +SAMPLES\MSDN\TECHART\4475\RES\SICLIENT.ICO +SAMPLES\MSDN\TECHART\4475\RES\SICLIENT.RC2 +SAMPLES\MSDN\TECHART\4475\RES\SICLIENTDOC.ICO +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\CCLASSFACTORY.CPP +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\CCLASSFACTORY.H +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\CSIMPLEOBJECT.CPP +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\CSIMPLEOBJECT.H +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\GUIDS.CPP +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\GUIDS.H +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\ISIMPLE.H +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\SIMPLEOBJECT.DEF +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\SIMPLEOBJECT.DLL +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\SIMPLEOBJECT.REG +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4475\SIMPLEOBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4477\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4477\CINTERFACEWRAP.H +SAMPLES\MSDN\TECHART\4477\CSIMPLEWRAP.H +SAMPLES\MSDN\TECHART\4477\RES +SAMPLES\MSDN\TECHART\4477\RESOURCE.H +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT +SAMPLES\MSDN\TECHART\4477\STDAFX.CPP +SAMPLES\MSDN\TECHART\4477\STDAFX.H +SAMPLES\MSDN\TECHART\4477\WRAPUSER.CPP +SAMPLES\MSDN\TECHART\4477\WRAPUSER.EXE +SAMPLES\MSDN\TECHART\4477\WRAPUSER.H +SAMPLES\MSDN\TECHART\4477\WRAPUSER.MAK +SAMPLES\MSDN\TECHART\4477\WRAPUSER.MDP +SAMPLES\MSDN\TECHART\4477\WRAPUSER.RC +SAMPLES\MSDN\TECHART\4477\WRAPUSERDLG.CPP +SAMPLES\MSDN\TECHART\4477\WRAPUSERDLG.H +SAMPLES\MSDN\TECHART\4477\RES\WRAPUSER.ICO +SAMPLES\MSDN\TECHART\4477\RES\WRAPUSER.RC2 +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\CCLASSFACTORY.CPP +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\CCLASSFACTORY.H +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\CSIMPLEOBJECT.CPP +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\CSIMPLEOBJECT.H +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\GUIDS.CPP +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\GUIDS.H +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\ISIMPLE.H +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\SIMPLEOBJECT.DEF +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\SIMPLEOBJECT.DLL +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\SIMPLEOBJECT.REG +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4477\SIMPLEOBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4479\DEBUG.TXT +SAMPLES\MSDN\TECHART\4479\MSG00001.BIN +SAMPLES\MSDN\TECHART\4479\MYSERVICE.CPP +SAMPLES\MSDN\TECHART\4479\MYSERVICE.H +SAMPLES\MSDN\TECHART\4479\NTSERVAPP.CPP +SAMPLES\MSDN\TECHART\4479\NTSERVAPP.H +SAMPLES\MSDN\TECHART\4479\NTSERVAPP.RC +SAMPLES\MSDN\TECHART\4479\NTSERVICE.CPP +SAMPLES\MSDN\TECHART\4479\NTSERVICE.EXE +SAMPLES\MSDN\TECHART\4479\NTSERVICE.H +SAMPLES\MSDN\TECHART\4479\NTSERVICE.MAK +SAMPLES\MSDN\TECHART\4479\NTSERVICE.VCP +SAMPLES\MSDN\TECHART\4479\NTSERVMSG.H +SAMPLES\MSDN\TECHART\4479\NTSERVMSG.MC +SAMPLES\MSDN\TECHART\4479\NTSERVMSG.RC +SAMPLES\MSDN\TECHART\4481\CTRLPAN.CPP +SAMPLES\MSDN\TECHART\4481\CTRLPAN.H +SAMPLES\MSDN\TECHART\4481\ICON1.ICO +SAMPLES\MSDN\TECHART\4481\MYDIALOG.CPP +SAMPLES\MSDN\TECHART\4481\MYDIALOG.H +SAMPLES\MSDN\TECHART\4481\MYPANEL.CPP +SAMPLES\MSDN\TECHART\4481\MYPANEL.H +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.APS +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.CLW +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.CPL +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.CPP +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.DEF +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.EXP +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.H +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.LIB +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.MAK +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.RC +SAMPLES\MSDN\TECHART\4481\NTSERVCPL.VCP +SAMPLES\MSDN\TECHART\4481\README.TXT +SAMPLES\MSDN\TECHART\4481\RES +SAMPLES\MSDN\TECHART\4481\RESOURCE.H +SAMPLES\MSDN\TECHART\4481\STDAFX.CPP +SAMPLES\MSDN\TECHART\4481\STDAFX.H +SAMPLES\MSDN\TECHART\4481\RES\NTSERVCPL.RC2 +SAMPLES\MSDN\TECHART\4483\NTSERDLG.CPP +SAMPLES\MSDN\TECHART\4483\NTSERDLG.H +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.APS +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.CLW +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.CPP +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.EXE +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.H +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.MAK +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.RC +SAMPLES\MSDN\TECHART\4483\NTSERVCTRL.VCP +SAMPLES\MSDN\TECHART\4483\README.TXT +SAMPLES\MSDN\TECHART\4483\RES +SAMPLES\MSDN\TECHART\4483\RESOURCE.H +SAMPLES\MSDN\TECHART\4483\STDAFX.CPP +SAMPLES\MSDN\TECHART\4483\STDAFX.H +SAMPLES\MSDN\TECHART\4483\RES\NTSERVCTRL.ICO +SAMPLES\MSDN\TECHART\4483\RES\NTSERVCTRL.RC2 +SAMPLES\MSDN\TECHART\4485\MAPOMAPI.EPS +SAMPLES\MSDN\TECHART\4485\MAPOMAPI.VSD +SAMPLES\MSDN\TECHART\4485\MAPOMAPI.WMF +SAMPLES\MSDN\TECHART\4486\MAPSTOLE.EPS +SAMPLES\MSDN\TECHART\4486\MAPSTOLE.VSD +SAMPLES\MSDN\TECHART\4486\MAPSTOLE.WMF +SAMPLES\MSDN\TECHART\4487\MAPVBA.EPS +SAMPLES\MSDN\TECHART\4487\MAPVBA.VSD +SAMPLES\MSDN\TECHART\4487\MAPVBA.WMF +SAMPLES\MSDN\TECHART\4490\MAPFVBA.EPS +SAMPLES\MSDN\TECHART\4490\MAPFVBA.VSD +SAMPLES\MSDN\TECHART\4490\MAPFVBA.WMF +SAMPLES\MSDN\TECHART\4493\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4493\DIB.C +SAMPLES\MSDN\TECHART\4493\DIB.H +SAMPLES\MSDN\TECHART\4493\ICONPRO.C +SAMPLES\MSDN\TECHART\4493\ICONPRO.EXE +SAMPLES\MSDN\TECHART\4493\ICONPRO.H +SAMPLES\MSDN\TECHART\4493\ICONPRO.HPJ +SAMPLES\MSDN\TECHART\4493\ICONPRO.ICO +SAMPLES\MSDN\TECHART\4493\ICONPRO.RC +SAMPLES\MSDN\TECHART\4493\ICONPRO.RTF +SAMPLES\MSDN\TECHART\4493\ICONS.C +SAMPLES\MSDN\TECHART\4493\ICONS.H +SAMPLES\MSDN\TECHART\4493\MAKEFILE +SAMPLES\MSDN\TECHART\4493\MDICHILD.C +SAMPLES\MSDN\TECHART\4493\MDICHILD.H +SAMPLES\MSDN\TECHART\4493\README.TXT +SAMPLES\MSDN\TECHART\4493\RESOURCE.H +SAMPLES\MSDN\TECHART\4499\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4499\MAINSRV.BAS +SAMPLES\MSDN\TECHART\4499\NONPRIME.CLS +SAMPLES\MSDN\TECHART\4499\NOTIFY.CLS +SAMPLES\MSDN\TECHART\4499\PRIMERUL.CLS +SAMPLES\MSDN\TECHART\4499\README.TXT +SAMPLES\MSDN\TECHART\4499\REGGLOBL.BAS +SAMPLES\MSDN\TECHART\4499\REGISTER.EXE +SAMPLES\MSDN\TECHART\4499\REGISTER.FRM +SAMPLES\MSDN\TECHART\4499\REGISTER.VBP +SAMPLES\MSDN\TECHART\4499\ROOM.CLS +SAMPLES\MSDN\TECHART\4499\ROOMMGR.EXE +SAMPLES\MSDN\TECHART\4499\ROOMMGR.VBP +SAMPLES\MSDN\TECHART\4499\ROOMSERV.CLS +SAMPLES\MSDN\TECHART\4499\ROOMSVR.FRM +SAMPLES\MSDN\TECHART\4501\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4501\CLIENT +SAMPLES\MSDN\TECHART\4501\SERVER +SAMPLES\MSDN\TECHART\4501\CLIENT\CLIENT.CPP +SAMPLES\MSDN\TECHART\4501\CLIENT\CLIENT.EXE +SAMPLES\MSDN\TECHART\4501\CLIENT\CLIENT.MAP +SAMPLES\MSDN\TECHART\4501\CLIENT\MAKEFILE +SAMPLES\MSDN\TECHART\4501\SERVER\MAKEFILE +SAMPLES\MSDN\TECHART\4501\SERVER\SERVER.CPP +SAMPLES\MSDN\TECHART\4501\SERVER\SERVER.EXE +SAMPLES\MSDN\TECHART\4501\SERVER\SERVER.H +SAMPLES\MSDN\TECHART\4501\SERVER\SERVER.ODL +SAMPLES\MSDN\TECHART\4501\SERVER\SERVER.RC +SAMPLES\MSDN\TECHART\4522\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4522\ANIMTDOC.CPP +SAMPLES\MSDN\TECHART\4522\ANIMTDOC.H +SAMPLES\MSDN\TECHART\4522\ANIMTEST.APS +SAMPLES\MSDN\TECHART\4522\ANIMTEST.CLW +SAMPLES\MSDN\TECHART\4522\ANIMTEST.CPP +SAMPLES\MSDN\TECHART\4522\ANIMTEST.EXE +SAMPLES\MSDN\TECHART\4522\ANIMTEST.H +SAMPLES\MSDN\TECHART\4522\ANIMTEST.MAK +SAMPLES\MSDN\TECHART\4522\ANIMTEST.MDP +SAMPLES\MSDN\TECHART\4522\ANIMTEST.RC +SAMPLES\MSDN\TECHART\4522\ANIMTEST.VCP +SAMPLES\MSDN\TECHART\4522\ANIMTVW.CPP +SAMPLES\MSDN\TECHART\4522\ANIMTVW.H +SAMPLES\MSDN\TECHART\4522\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4522\MAINFRM.H +SAMPLES\MSDN\TECHART\4522\RECORDDL.CPP +SAMPLES\MSDN\TECHART\4522\RECORDDL.H +SAMPLES\MSDN\TECHART\4522\RES +SAMPLES\MSDN\TECHART\4522\RESOURCE.H +SAMPLES\MSDN\TECHART\4522\STDAFX.CPP +SAMPLES\MSDN\TECHART\4522\STDAFX.H +SAMPLES\MSDN\TECHART\4522\VUDLG.CPP +SAMPLES\MSDN\TECHART\4522\VUDLG.H +SAMPLES\MSDN\TECHART\4522\RES\ANIMTEST.ICO +SAMPLES\MSDN\TECHART\4522\RES\ANIMTEST.RC2 +SAMPLES\MSDN\TECHART\4522\RES\GUICRAP.WAV +SAMPLES\MSDN\TECHART\4522\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4524\CLIENT +SAMPLES\MSDN\TECHART\4524\INTERFACE +SAMPLES\MSDN\TECHART\4524\OBJECT +SAMPLES\MSDN\TECHART\4524\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4524\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4524\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4524\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4524\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4524\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4524\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4524\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4524\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4524\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4524\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4524\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4524\CLIENT\RES +SAMPLES\MSDN\TECHART\4524\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4524\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4524\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4524\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4524\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4524\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4524\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4524\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4524\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4524\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4525\CLIENT +SAMPLES\MSDN\TECHART\4525\INTERFACE +SAMPLES\MSDN\TECHART\4525\OBJECT +SAMPLES\MSDN\TECHART\4525\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4525\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4525\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4525\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4525\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4525\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4525\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4525\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4525\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4525\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4525\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4525\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4525\CLIENT\RES +SAMPLES\MSDN\TECHART\4525\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4525\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4525\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4525\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4525\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4525\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4525\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4525\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4525\OBJECT\DB.MAK +SAMPLES\MSDN\TECHART\4525\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4525\OBJECT\DBSRVFACT.CPP +SAMPLES\MSDN\TECHART\4525\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4526\CLIENT +SAMPLES\MSDN\TECHART\4526\INTERFACE +SAMPLES\MSDN\TECHART\4526\OBJECT +SAMPLES\MSDN\TECHART\4526\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4526\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4526\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4526\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4526\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4526\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4526\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4526\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4526\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4526\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4526\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4526\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4526\CLIENT\RES +SAMPLES\MSDN\TECHART\4526\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4526\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4526\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4526\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4526\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4526\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4526\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4526\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4526\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4526\OBJECT\DBSRVIMP.H +SAMPLES\MSDN\TECHART\4526\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4527\CLIENT +SAMPLES\MSDN\TECHART\4527\INTERFACE +SAMPLES\MSDN\TECHART\4527\OBJECT +SAMPLES\MSDN\TECHART\4527\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4527\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4527\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4527\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4527\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4527\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4527\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4527\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4527\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4527\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4527\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4527\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4527\CLIENT\RES +SAMPLES\MSDN\TECHART\4527\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4527\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4527\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4527\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4527\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4527\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4527\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4527\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4527\OBJECT\DB.MAK +SAMPLES\MSDN\TECHART\4527\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4527\OBJECT\DBSRVFACT.CPP +SAMPLES\MSDN\TECHART\4527\OBJECT\DBSRVIMP.H +SAMPLES\MSDN\TECHART\4527\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4528\CLIENT +SAMPLES\MSDN\TECHART\4528\INTERFACE +SAMPLES\MSDN\TECHART\4528\OBJECT +SAMPLES\MSDN\TECHART\4528\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4528\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4528\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4528\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4528\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4528\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4528\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4528\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4528\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4528\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4528\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4528\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4528\CLIENT\RES +SAMPLES\MSDN\TECHART\4528\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4528\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4528\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4528\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4528\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4528\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4528\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4528\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4528\OBJECT\DB.DEF +SAMPLES\MSDN\TECHART\4528\OBJECT\DB.MAK +SAMPLES\MSDN\TECHART\4528\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4528\OBJECT\DBSRVFACT.CPP +SAMPLES\MSDN\TECHART\4528\OBJECT\DBSRVIMP.H +SAMPLES\MSDN\TECHART\4528\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4529\CLIENT +SAMPLES\MSDN\TECHART\4529\INTERFACE +SAMPLES\MSDN\TECHART\4529\OBJECT +SAMPLES\MSDN\TECHART\4529\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4529\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4529\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4529\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4529\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4529\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4529\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4529\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4529\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4529\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4529\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4529\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4529\CLIENT\RES +SAMPLES\MSDN\TECHART\4529\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4529\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4529\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4529\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4529\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4529\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4529\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4529\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4529\OBJECT\DB.DEF +SAMPLES\MSDN\TECHART\4529\OBJECT\DB.MAK +SAMPLES\MSDN\TECHART\4529\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4529\OBJECT\DBSRVFACT.CPP +SAMPLES\MSDN\TECHART\4529\OBJECT\DBSRVIMP.H +SAMPLES\MSDN\TECHART\4529\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4530\CLIENT +SAMPLES\MSDN\TECHART\4530\INTERFACE +SAMPLES\MSDN\TECHART\4530\OBJECT +SAMPLES\MSDN\TECHART\4530\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4530\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4530\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4530\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4530\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4530\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4530\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4530\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4530\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4530\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4530\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4530\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4530\CLIENT\RES +SAMPLES\MSDN\TECHART\4530\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4530\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4530\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4530\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4530\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4530\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4530\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4530\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4530\INTERFACE\GUIDS.CPP +SAMPLES\MSDN\TECHART\4530\OBJECT\DB.DEF +SAMPLES\MSDN\TECHART\4530\OBJECT\DB.MAK +SAMPLES\MSDN\TECHART\4530\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4530\OBJECT\DBSRVFACT.CPP +SAMPLES\MSDN\TECHART\4530\OBJECT\DBSRVIMP.H +SAMPLES\MSDN\TECHART\4530\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4531\CLIENT +SAMPLES\MSDN\TECHART\4531\INTERFACE +SAMPLES\MSDN\TECHART\4531\OBJECT +SAMPLES\MSDN\TECHART\4531\OBJECTEXE +SAMPLES\MSDN\TECHART\4531\PROXYSTUB +SAMPLES\MSDN\TECHART\4531\CLIENT\DB.APS +SAMPLES\MSDN\TECHART\4531\CLIENT\DB.CLW +SAMPLES\MSDN\TECHART\4531\CLIENT\DB.CPP +SAMPLES\MSDN\TECHART\4531\CLIENT\DB.H +SAMPLES\MSDN\TECHART\4531\CLIENT\DB.MAK +SAMPLES\MSDN\TECHART\4531\CLIENT\DB.RC +SAMPLES\MSDN\TECHART\4531\CLIENT\DB.VCP +SAMPLES\MSDN\TECHART\4531\CLIENT\DBDOC.CPP +SAMPLES\MSDN\TECHART\4531\CLIENT\DBDOC.H +SAMPLES\MSDN\TECHART\4531\CLIENT\DBVIEW.CPP +SAMPLES\MSDN\TECHART\4531\CLIENT\DBVIEW.H +SAMPLES\MSDN\TECHART\4531\CLIENT\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4531\CLIENT\MAINFRM.H +SAMPLES\MSDN\TECHART\4531\CLIENT\README.TXT +SAMPLES\MSDN\TECHART\4531\CLIENT\RES +SAMPLES\MSDN\TECHART\4531\CLIENT\RESOURCE.H +SAMPLES\MSDN\TECHART\4531\CLIENT\STDAFX.CPP +SAMPLES\MSDN\TECHART\4531\CLIENT\STDAFX.H +SAMPLES\MSDN\TECHART\4531\CLIENT\RES\DB.ICO +SAMPLES\MSDN\TECHART\4531\CLIENT\RES\DB.RC2 +SAMPLES\MSDN\TECHART\4531\CLIENT\RES\DBDOC.ICO +SAMPLES\MSDN\TECHART\4531\CLIENT\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4531\INTERFACE\DBSRV.H +SAMPLES\MSDN\TECHART\4531\INTERFACE\GUIDS.CPP +SAMPLES\MSDN\TECHART\4531\INTERFACE\IDB.H +SAMPLES\MSDN\TECHART\4531\INTERFACE\IDB.IDL +SAMPLES\MSDN\TECHART\4531\INTERFACE\IDB_I.C +SAMPLES\MSDN\TECHART\4531\INTERFACE\REFSHORT.H +SAMPLES\MSDN\TECHART\4531\INTERFACE\REFSHORT.IDL +SAMPLES\MSDN\TECHART\4531\OBJECT\DB.DEF +SAMPLES\MSDN\TECHART\4531\OBJECT\DB.MAK +SAMPLES\MSDN\TECHART\4531\OBJECT\DB.VCP +SAMPLES\MSDN\TECHART\4531\OBJECT\DBSRV.CPP +SAMPLES\MSDN\TECHART\4531\OBJECT\DBSRVFACT.CPP +SAMPLES\MSDN\TECHART\4531\OBJECT\DBSRVIMP.H +SAMPLES\MSDN\TECHART\4531\OBJECT\STDAFX.H +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCAL.CLW +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCAL.CPP +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCAL.H +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCAL.MAK +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCAL.RC +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCAL.VCP +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCDOC.CPP +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCDOC.H +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCVW.CPP +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\DBLOCVW.H +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\MAINFRM.H +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\README.TXT +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\RES +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\RESOURCE.H +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\STDAFX.CPP +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\STDAFX.H +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\RES\DBLOCAL.ICO +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\RES\DBLOCAL.RC2 +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\RES\DBLOCDOC.ICO +SAMPLES\MSDN\TECHART\4531\OBJECTEXE\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\DLLDATA.C +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\IDBPS.DEF +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\IDBPS.MAK +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\IDBPS.VCP +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\IDBPSREG.CPP +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\IDB_P.C +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\MIDL.BAT +SAMPLES\MSDN\TECHART\4531\PROXYSTUB\MIDLREF.BAT +SAMPLES\MSDN\TECHART\4532\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4532\CGISPAWN.C +SAMPLES\MSDN\TECHART\4532\CGISPAWN.EXE +SAMPLES\MSDN\TECHART\4532\CGISPAWN.H +SAMPLES\MSDN\TECHART\4532\CGISPAWN.MAK +SAMPLES\MSDN\TECHART\4532\CGISPAWN.RC +SAMPLES\MSDN\TECHART\4532\GLOBAL.H +SAMPLES\MSDN\TECHART\4532\PROTO.H +SAMPLES\MSDN\TECHART\4532\RESOURCE.H +SAMPLES\MSDN\TECHART\4532\UTIL.C +SAMPLES\MSDN\TECHART\4532\UTIL.H +SAMPLES\MSDN\TECHART\4535\SETUP +SAMPLES\MSDN\TECHART\4535\VCONTAIN +SAMPLES\MSDN\TECHART\4535\VCONTROL +SAMPLES\MSDN\TECHART\4535\VERIFY.DOC +SAMPLES\MSDN\TECHART\4535\SETUP\MFC40.DLL +SAMPLES\MSDN\TECHART\4535\SETUP\MSVCRT40.DLL +SAMPLES\MSDN\TECHART\4535\SETUP\OLEPRO32.DLL +SAMPLES\MSDN\TECHART\4535\SETUP\README.TXT +SAMPLES\MSDN\TECHART\4535\SETUP\REGISTER.BAT +SAMPLES\MSDN\TECHART\4535\SETUP\REGSVR32.EXE +SAMPLES\MSDN\TECHART\4535\SETUP\VCONTAIN.EXE +SAMPLES\MSDN\TECHART\4535\SETUP\VCONTROL.OCX +SAMPLES\MSDN\TECHART\4535\VCONTAIN\INSERTD.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\INSERTD.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\MAINFRM.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\OLE2UI.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\OLESTD.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\PREVEDLG.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\PREVEDLG.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RES +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RESLTDLG.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RESLTDLG.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RESOURCE.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RESOURCE.HM +SAMPLES\MSDN\TECHART\4535\VCONTAIN\SPINTDLG.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\SPINTDLG.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\STDAFX.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\STDAFX.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCADVSNK.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCADVSNK.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCDATOBJ.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCDATOBJ.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCERRLOG.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCERRLOG.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONCTNR.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONCTNR.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.APS +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.CLW +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.DFL +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.MAK +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.MDP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTAIN.RC +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTDOC.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONTDOC.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONVIEW.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCONVIEW.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCPRPBAG.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VCPRPBAG.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VERIFY.CPP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\VERIFY.H +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RES\VCONTAIN.ICO +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RES\VCONTAIN.RC2 +SAMPLES\MSDN\TECHART\4535\VCONTAIN\RES\VCONTDOC.ICO +SAMPLES\MSDN\TECHART\4535\VCONTROL\RESLTDLG.CPP +SAMPLES\MSDN\TECHART\4535\VCONTROL\RESLTDLG.H +SAMPLES\MSDN\TECHART\4535\VCONTROL\RESOURCE.H +SAMPLES\MSDN\TECHART\4535\VCONTROL\STDAFX.CPP +SAMPLES\MSDN\TECHART\4535\VCONTROL\STDAFX.H +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONCTL.BMP +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONCTL.CPP +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONCTL.H +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONPPG.CPP +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONPPG.H +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTAIN.DFL +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.APS +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.BMP +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.CLW +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.CPP +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.DEF +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.GID +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.H +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.ICO +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.MAK +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.MDP +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.ODL +SAMPLES\MSDN\TECHART\4535\VCONTROL\VCONTROL.RC +SAMPLES\MSDN\TECHART\4536\VALUE.FRM +SAMPLES\MSDN\TECHART\4536\VALUE.FRX +SAMPLES\MSDN\TECHART\4536\VBREG.BAS +SAMPLES\MSDN\TECHART\4536\VBREG.BMP +SAMPLES\MSDN\TECHART\4536\VBREG.EXE +SAMPLES\MSDN\TECHART\4536\VBREG.FRM +SAMPLES\MSDN\TECHART\4536\VBREG.FRX +SAMPLES\MSDN\TECHART\4536\VBREG.ICO +SAMPLES\MSDN\TECHART\4536\VBREG.VBP +SAMPLES\MSDN\TECHART\4537\MAPSCHIO.EPS +SAMPLES\MSDN\TECHART\4537\MAPSCHIO.VSD +SAMPLES\MSDN\TECHART\4537\MAPSCHIO.WMF +SAMPLES\MSDN\TECHART\4538\MAPSCHPM.EPS +SAMPLES\MSDN\TECHART\4538\MAPSCHPM.VSD +SAMPLES\MSDN\TECHART\4538\MAPSCHPM.WMF +SAMPLES\MSDN\TECHART\4539\MAPSPL95.EPS +SAMPLES\MSDN\TECHART\4539\MAPSPL95.VSD +SAMPLES\MSDN\TECHART\4539\MAPSPL95.WMF +SAMPLES\MSDN\TECHART\4540\MAPACC95.EPS +SAMPLES\MSDN\TECHART\4540\MAPACC95.VSD +SAMPLES\MSDN\TECHART\4540\MAPACC95.WMF +SAMPLES\MSDN\TECHART\4541\MAPPRJ95.EPS +SAMPLES\MSDN\TECHART\4541\MAPPRJ95.VSD +SAMPLES\MSDN\TECHART\4541\MAPPRJ95.WMF +SAMPLES\MSDN\TECHART\4542\MPDAO31O.EPS +SAMPLES\MSDN\TECHART\4542\MPDAO31O.VSD +SAMPLES\MSDN\TECHART\4542\MPDAO31O.WMF +SAMPLES\MSDN\TECHART\4543\MAPVB40.EPS +SAMPLES\MSDN\TECHART\4543\MAPVB40.VSD +SAMPLES\MSDN\TECHART\4543\MAPVB40.WMF +SAMPLES\MSDN\TECHART\4559\95THREAD.XLS +SAMPLES\MSDN\TECHART\4559\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4559\APP +SAMPLES\MSDN\TECHART\4559\DLL +SAMPLES\MSDN\TECHART\4559\NTTHREAD.XLS +SAMPLES\MSDN\TECHART\4559\PERSONAL.XLS +SAMPLES\MSDN\TECHART\4559\APP\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4559\APP\EASYVIEW.H +SAMPLES\MSDN\TECHART\4559\APP\FORMAT.TXT +SAMPLES\MSDN\TECHART\4559\APP\INVHELP.CPP +SAMPLES\MSDN\TECHART\4559\APP\INVHELP.H +SAMPLES\MSDN\TECHART\4559\APP\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4559\APP\MAINFRM.H +SAMPLES\MSDN\TECHART\4559\APP\NOTHREADDIALOG.CPP +SAMPLES\MSDN\TECHART\4559\APP\NOTHREADDIALOG.H +SAMPLES\MSDN\TECHART\4559\APP\RES +SAMPLES\MSDN\TECHART\4559\APP\RESOURCE.H +SAMPLES\MSDN\TECHART\4559\APP\STDAFX.CPP +SAMPLES\MSDN\TECHART\4559\APP\STDAFX.H +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTEST.CLW +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTEST.CPP +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTEST.EXE +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTEST.H +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTEST.MAK +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTEST.MDP +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTEST.RC +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTESTDOC.CPP +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTESTDOC.H +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTESTVIEW.CPP +SAMPLES\MSDN\TECHART\4559\APP\THREADLIBTESTVIEW.H +SAMPLES\MSDN\TECHART\4559\APP\XL5EN32.CPP +SAMPLES\MSDN\TECHART\4559\APP\XL5EN32.H +SAMPLES\MSDN\TECHART\4559\APP\RES\THREADLIBTEST.ICO +SAMPLES\MSDN\TECHART\4559\APP\RES\THREADLIBTEST.RC2 +SAMPLES\MSDN\TECHART\4559\APP\RES\THREADLIBTESTDOC.ICO +SAMPLES\MSDN\TECHART\4559\DLL\THRDLIB.CPP +SAMPLES\MSDN\TECHART\4559\DLL\THRDLIB.DLL +SAMPLES\MSDN\TECHART\4559\DLL\THRDLIB.H +SAMPLES\MSDN\TECHART\4559\DLL\THRDLIB.LIB +SAMPLES\MSDN\TECHART\4559\DLL\THRDLIB.MAK +SAMPLES\MSDN\TECHART\4561\95THREAD.XLS +SAMPLES\MSDN\TECHART\4561\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4561\APP +SAMPLES\MSDN\TECHART\4561\DLL +SAMPLES\MSDN\TECHART\4561\NTTHREAD.XLS +SAMPLES\MSDN\TECHART\4561\PERSONAL.XLS +SAMPLES\MSDN\TECHART\4561\APP\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4561\APP\EASYVIEW.H +SAMPLES\MSDN\TECHART\4561\APP\FORMAT.TXT +SAMPLES\MSDN\TECHART\4561\APP\INVHELP.CPP +SAMPLES\MSDN\TECHART\4561\APP\INVHELP.H +SAMPLES\MSDN\TECHART\4561\APP\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4561\APP\MAINFRM.H +SAMPLES\MSDN\TECHART\4561\APP\NOTHREADDIALOG.CPP +SAMPLES\MSDN\TECHART\4561\APP\NOTHREADDIALOG.H +SAMPLES\MSDN\TECHART\4561\APP\RES +SAMPLES\MSDN\TECHART\4561\APP\RESOURCE.H +SAMPLES\MSDN\TECHART\4561\APP\STDAFX.CPP +SAMPLES\MSDN\TECHART\4561\APP\STDAFX.H +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTEST.CLW +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTEST.CPP +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTEST.EXE +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTEST.H +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTEST.MAK +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTEST.MDP +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTEST.RC +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTESTDOC.CPP +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTESTDOC.H +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTESTVIEW.CPP +SAMPLES\MSDN\TECHART\4561\APP\THREADLIBTESTVIEW.H +SAMPLES\MSDN\TECHART\4561\APP\XL5EN32.CPP +SAMPLES\MSDN\TECHART\4561\APP\XL5EN32.H +SAMPLES\MSDN\TECHART\4561\APP\RES\THREADLIBTEST.ICO +SAMPLES\MSDN\TECHART\4561\APP\RES\THREADLIBTEST.RC2 +SAMPLES\MSDN\TECHART\4561\APP\RES\THREADLIBTESTDOC.ICO +SAMPLES\MSDN\TECHART\4561\DLL\THRDLIB.CPP +SAMPLES\MSDN\TECHART\4561\DLL\THRDLIB.DLL +SAMPLES\MSDN\TECHART\4561\DLL\THRDLIB.H +SAMPLES\MSDN\TECHART\4561\DLL\THRDLIB.LIB +SAMPLES\MSDN\TECHART\4561\DLL\THRDLIB.MAK +SAMPLES\MSDN\TECHART\4577\ACCREP.CLS +SAMPLES\MSDN\TECHART\4577\ACCWRK.BAS +SAMPLES\MSDN\TECHART\4577\FRMMAIN.FRM +SAMPLES\MSDN\TECHART\4577\FRMMAIN.FRX +SAMPLES\MSDN\TECHART\4577\REPGEN.EXE +SAMPLES\MSDN\TECHART\4577\REPGEN.TLB +SAMPLES\MSDN\TECHART\4577\REPGEN.VBP +SAMPLES\MSDN\TECHART\4577\REPGEN.VBR +SAMPLES\MSDN\TECHART\4579\FRMMAIN.FRM +SAMPLES\MSDN\TECHART\4579\REPGNTST.EXE +SAMPLES\MSDN\TECHART\4579\REPTEST.VBP +SAMPLES\MSDN\TECHART\4581\DMOMAIN.BAS +SAMPLES\MSDN\TECHART\4581\DMOMAIN.FRM +SAMPLES\MSDN\TECHART\4581\DMOMAIN.FRX +SAMPLES\MSDN\TECHART\4581\DMOSPROC.FRM +SAMPLES\MSDN\TECHART\4581\DMOSPROC.FRX +SAMPLES\MSDN\TECHART\4581\DMOTABLE.FRM +SAMPLES\MSDN\TECHART\4581\DMOTABLE.FRX +SAMPLES\MSDN\TECHART\4581\SQLDMO.VBP +SAMPLES\MSDN\TECHART\4583\MFC +SAMPLES\MSDN\TECHART\4583\SDK +SAMPLES\MSDN\TECHART\4583\MFC\CHILDFRM.CPP +SAMPLES\MSDN\TECHART\4583\MFC\CHILDFRM.H +SAMPLES\MSDN\TECHART\4583\MFC\DOC.CPP +SAMPLES\MSDN\TECHART\4583\MFC\DOC.H +SAMPLES\MSDN\TECHART\4583\MFC\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4583\MFC\MAINFRM.H +SAMPLES\MSDN\TECHART\4583\MFC\README.TXT +SAMPLES\MSDN\TECHART\4583\MFC\RES +SAMPLES\MSDN\TECHART\4583\MFC\RESOURCE.H +SAMPLES\MSDN\TECHART\4583\MFC\STDAFX.CPP +SAMPLES\MSDN\TECHART\4583\MFC\STDAFX.H +SAMPLES\MSDN\TECHART\4583\MFC\VEW.CPP +SAMPLES\MSDN\TECHART\4583\MFC\VIEW.H +SAMPLES\MSDN\TECHART\4583\MFC\XL5EN32.CPP +SAMPLES\MSDN\TECHART\4583\MFC\XL5EN32.H +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.APS +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.CLW +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.CPP +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.EXE +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.H +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.MAK +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.MDP +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.ODL +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.RC +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.REG +SAMPLES\MSDN\TECHART\4583\MFC\XLCLIENT.TLB +SAMPLES\MSDN\TECHART\4583\MFC\RES\DOC.ICO +SAMPLES\MSDN\TECHART\4583\MFC\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4583\MFC\RES\XLCLIENT.ICO +SAMPLES\MSDN\TECHART\4583\MFC\RES\XLCLIENT.RC2 +SAMPLES\MSDN\TECHART\4583\SDK\INVHELP.CPP +SAMPLES\MSDN\TECHART\4583\SDK\INVHELP.H +SAMPLES\MSDN\TECHART\4583\SDK\MAKEFILE +SAMPLES\MSDN\TECHART\4583\SDK\RESOURCE.H +SAMPLES\MSDN\TECHART\4583\SDK\XLCLIENT.CPP +SAMPLES\MSDN\TECHART\4583\SDK\XLCLIENT.DEF +SAMPLES\MSDN\TECHART\4583\SDK\XLCLIENT.EXE +SAMPLES\MSDN\TECHART\4583\SDK\XLCLIENT.H +SAMPLES\MSDN\TECHART\4583\SDK\XLCLIENT.RC +SAMPLES\MSDN\TECHART\4586\ARTICLE.TXT +SAMPLES\MSDN\TECHART\4586\CHARTDLG.CPP +SAMPLES\MSDN\TECHART\4586\CHARTDLG.H +SAMPLES\MSDN\TECHART\4586\CNTRITEM.CPP +SAMPLES\MSDN\TECHART\4586\CNTRITEM.H +SAMPLES\MSDN\TECHART\4586\LEGAL.TXT +SAMPLES\MSDN\TECHART\4586\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4586\MAINFRM.H +SAMPLES\MSDN\TECHART\4586\README.TXT +SAMPLES\MSDN\TECHART\4586\RES +SAMPLES\MSDN\TECHART\4586\RESOURCE.H +SAMPLES\MSDN\TECHART\4586\STDAFX.CPP +SAMPLES\MSDN\TECHART\4586\STDAFX.H +SAMPLES\MSDN\TECHART\4586\XLAUTDOC.CPP +SAMPLES\MSDN\TECHART\4586\XLAUTDOC.H +SAMPLES\MSDN\TECHART\4586\XLAUTO.APS +SAMPLES\MSDN\TECHART\4586\XLAUTO.CLW +SAMPLES\MSDN\TECHART\4586\XLAUTO.CPP +SAMPLES\MSDN\TECHART\4586\XLAUTO.EXE +SAMPLES\MSDN\TECHART\4586\XLAUTO.H +SAMPLES\MSDN\TECHART\4586\XLAUTO.MAK +SAMPLES\MSDN\TECHART\4586\XLAUTO.ODL +SAMPLES\MSDN\TECHART\4586\XLAUTO.RC +SAMPLES\MSDN\TECHART\4586\XLAUTO.REG +SAMPLES\MSDN\TECHART\4586\XLAUTO.TLB +SAMPLES\MSDN\TECHART\4586\XLAUTO.TXT +SAMPLES\MSDN\TECHART\4586\XLAUTO.VCP +SAMPLES\MSDN\TECHART\4586\XLAUTVW.CPP +SAMPLES\MSDN\TECHART\4586\XLAUTVW.H +SAMPLES\MSDN\TECHART\4586\XLCHART.CPP +SAMPLES\MSDN\TECHART\4586\XLCHART.H +SAMPLES\MSDN\TECHART\4586\XLCHTOBJ.CPP +SAMPLES\MSDN\TECHART\4586\XLCHTOBJ.H +SAMPLES\MSDN\TECHART\4586\XLCHTOBS.CPP +SAMPLES\MSDN\TECHART\4586\XLCHTOBS.H +SAMPLES\MSDN\TECHART\4586\XLRANGE.CPP +SAMPLES\MSDN\TECHART\4586\XLRANGE.H +SAMPLES\MSDN\TECHART\4586\XLSHEET.CPP +SAMPLES\MSDN\TECHART\4586\XLSHEET.H +SAMPLES\MSDN\TECHART\4586\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4586\RES\XLAUTDOC.ICO +SAMPLES\MSDN\TECHART\4586\RES\XLAUTO.ICO +SAMPLES\MSDN\TECHART\4586\RES\XLAUTO.RC2 +SAMPLES\MSDN\TECHART\4587\BMPS +SAMPLES\MSDN\TECHART\4587\C.FXP +SAMPLES\MSDN\TECHART\4587\C.PRG +SAMPLES\MSDN\TECHART\4587\CLASSES +SAMPLES\MSDN\TECHART\4587\CONFIG.FPW +SAMPLES\MSDN\TECHART\4587\DBFS +SAMPLES\MSDN\TECHART\4587\FORMS +SAMPLES\MSDN\TECHART\4587\FORMTEST.PRG +SAMPLES\MSDN\TECHART\4587\JKEY.FLL +SAMPLES\MSDN\TECHART\4587\MENUS +SAMPLES\MSDN\TECHART\4587\MOVER1.SCT +SAMPLES\MSDN\TECHART\4587\MOVER1.SCX +SAMPLES\MSDN\TECHART\4587\PRGS +SAMPLES\MSDN\TECHART\4587\SECURITY.APP +SAMPLES\MSDN\TECHART\4587\SECURITY.PJT +SAMPLES\MSDN\TECHART\4587\SECURITY.PJX +SAMPLES\MSDN\TECHART\4587\BMPS\ADD.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\CLOSE.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\COPY.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\CUT.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\DATA.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\DELETE.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\FIND.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\HELP.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\NEXT.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\OPEN.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\PRIOR.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\UNDO.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZBACK.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZEDIT.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZEND.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZNEW.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZNEXT.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZPRINT.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZSAVE.BMP +SAMPLES\MSDN\TECHART\4587\BMPS\WZTOP.BMP +SAMPLES\MSDN\TECHART\4587\CLASSES\MYLIB.VCT +SAMPLES\MSDN\TECHART\4587\CLASSES\MYLIB.VCX +SAMPLES\MSDN\TECHART\4587\DBFS\GROUPS.CDX +SAMPLES\MSDN\TECHART\4587\DBFS\GROUPS.DBF +SAMPLES\MSDN\TECHART\4587\DBFS\GROUPS.FPT +SAMPLES\MSDN\TECHART\4587\DBFS\ITEMS.CDX +SAMPLES\MSDN\TECHART\4587\DBFS\ITEMS.DBF +SAMPLES\MSDN\TECHART\4587\DBFS\RIGHTS.CDX +SAMPLES\MSDN\TECHART\4587\DBFS\RIGHTS.DBF +SAMPLES\MSDN\TECHART\4587\DBFS\SECURITY.DBC +SAMPLES\MSDN\TECHART\4587\DBFS\SECURITY.DCT +SAMPLES\MSDN\TECHART\4587\DBFS\SECURITY.DCX +SAMPLES\MSDN\TECHART\4587\DBFS\USERS.CDX +SAMPLES\MSDN\TECHART\4587\DBFS\USERS.DBF +SAMPLES\MSDN\TECHART\4587\DBFS\USERS.FPT +SAMPLES\MSDN\TECHART\4587\DBFS\USR2GRP.CDX +SAMPLES\MSDN\TECHART\4587\DBFS\USR2GRP.DBF +SAMPLES\MSDN\TECHART\4587\FORMS\ADDMEMB.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\ADDMEMB.SCX +SAMPLES\MSDN\TECHART\4587\FORMS\FORM3.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\FORM3.SCX +SAMPLES\MSDN\TECHART\4587\FORMS\GROUPS.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\GROUPS.SCX +SAMPLES\MSDN\TECHART\4587\FORMS\ITEMS.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\ITEMS.SCX +SAMPLES\MSDN\TECHART\4587\FORMS\LOGIN.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\LOGIN.SCX +SAMPLES\MSDN\TECHART\4587\FORMS\RIGHTS.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\RIGHTS.SCX +SAMPLES\MSDN\TECHART\4587\FORMS\TEST.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\TEST.SCX +SAMPLES\MSDN\TECHART\4587\FORMS\USERS.SCT +SAMPLES\MSDN\TECHART\4587\FORMS\USERS.SCX +SAMPLES\MSDN\TECHART\4587\MENUS\SECURITY.MNT +SAMPLES\MSDN\TECHART\4587\MENUS\SECURITY.MNX +SAMPLES\MSDN\TECHART\4587\MENUS\SECURITY.MPR +SAMPLES\MSDN\TECHART\4587\MENUS\SECURITY.MPX +SAMPLES\MSDN\TECHART\4587\PRGS\CMDADD.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDBOT.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDCANC.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDDEL.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDEDIT.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDEXIT.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDFIND.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDNEXT.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDPREV.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDSAVE.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\CMDTOP.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\DEBUG +SAMPLES\MSDN\TECHART\4587\PRGS\DEBUG.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\FINFIELD.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\GRANTED.FXP +SAMPLES\MSDN\TECHART\4587\PRGS\GRANTED.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\INPUT.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\SECURITY.FXP +SAMPLES\MSDN\TECHART\4587\PRGS\SECURITY.PRG +SAMPLES\MSDN\TECHART\4587\PRGS\STANDARD.PRG +SAMPLES\MSDN\TECHART\4588\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4588\INITSCHEDULE.BAS +SAMPLES\MSDN\TECHART\4588\SAUFORM.EXE +SAMPLES\MSDN\TECHART\4588\SAUFORM.FRM +SAMPLES\MSDN\TECHART\4588\SAUFORM.FRX +SAMPLES\MSDN\TECHART\4588\SAUFORM.VBP +SAMPLES\MSDN\TECHART\4589\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4589\INITSCHEDULE.BAS +SAMPLES\MSDN\TECHART\4589\SPLFORM.EXE +SAMPLES\MSDN\TECHART\4589\SPLFORM.FRM +SAMPLES\MSDN\TECHART\4589\SPLFORM.FRX +SAMPLES\MSDN\TECHART\4589\SPLFORM.VBP +SAMPLES\MSDN\TECHART\4590\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4590\INITSCHEDULE.BAS +SAMPLES\MSDN\TECHART\4590\SPLFORM.EXE +SAMPLES\MSDN\TECHART\4590\SPMFORM.FRM +SAMPLES\MSDN\TECHART\4590\SPMFORM.FRX +SAMPLES\MSDN\TECHART\4590\SPMFORM.VBP +SAMPLES\MSDN\TECHART\4891\README.TXT +SAMPLES\MSDN\TECHART\4891\WZADDIN.MDA +SAMPLES\MSDN\TECHART\4891\WZCODLIB.MDA +SAMPLES\MSDN\TECHART\4892\A_U_SRCH.HTM +SAMPLES\MSDN\TECHART\4892\A_V_CUST.HTM +SAMPLES\MSDN\TECHART\4892\A_V_DATE.HTM +SAMPLES\MSDN\TECHART\4892\A_V_NUMB.HTM +SAMPLES\MSDN\TECHART\4892\DEFAULT.HTM +SAMPLES\MSDN\TECHART\4892\IMAGES +SAMPLES\MSDN\TECHART\4892\JOBFORUM.MDB +SAMPLES\MSDN\TECHART\4892\JOBFOR~1.DOC +SAMPLES\MSDN\TECHART\4892\NEWAVAIL.HTM +SAMPLES\MSDN\TECHART\4892\QUERIES +SAMPLES\MSDN\TECHART\4892\UPDAVAIL.HTM +SAMPLES\MSDN\TECHART\4892\UPDWANT.HTM +SAMPLES\MSDN\TECHART\4892\VIEWAV~1.HTM +SAMPLES\MSDN\TECHART\4892\VIEWWANT.HTM +SAMPLES\MSDN\TECHART\4892\W_U_SRCH.HTM +SAMPLES\MSDN\TECHART\4892\W_V_CUST.HTM +SAMPLES\MSDN\TECHART\4892\W_V_DATE.HTM +SAMPLES\MSDN\TECHART\4892\W_V_NUMB.HTM +SAMPLES\MSDN\TECHART\4892\IMAGES\1PIXLINE.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\1PIXLI~1.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCESS3.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCFQBTN.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCJOB.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCKBBTN.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCMAST.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCSIDE.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCSLBTN.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACCSMALL.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\ACFORUM.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\BULLET2.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\BUT1.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\BUT2.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\BUT3.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\BUT4.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\BUT5.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\BUT6.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\CATBUT.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\CATICON.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\DDHMBTN.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\DDPRDBTN.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\EMPLWANT.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\GR_BUT.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\JOBLIST.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\NUPOWER.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\PIN.GIF +SAMPLES\MSDN\TECHART\4892\IMAGES\POWER.GIF +SAMPLES\MSDN\TECHART\4892\QUERIES\A_DETAIL.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\A_DETAIL.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\A_U_DETL.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\A_U_DETL.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\A_U_SRCH.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\A_U_SRCH.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\A_V_CUST.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\A_V_DATE.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\A_V_NUMB.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\A_V_OPEN.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_AV~1.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_AV~1.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_UPDA.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_UPDA.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_UPDW.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_UPDW.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_WANT.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\CHG_WANT.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\C_JOBCLS.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\C_JOBCLS.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\DELW_90.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\DELW_90.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\DEL_90.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\DEL_90.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\JOBCLASS.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\JOBCLASS.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\LISTID.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\LISTID.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\NEWAVAIL.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\NEWAVAIL.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\NEWWANT.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\NEWWANT.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\SUB_UPDA.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\SUB_UPDA.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\SUB_UPDW.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\SUB_UPDW.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\UPDAVAIL.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\UPDAVAIL.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\UPDWANT.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\UPDWANT.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\U_JOBCLS.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\U_JOBCLS.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\VIEWAV~1.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\VIEWWANT.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\W_DETAIL.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\W_DETAIL.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\W_LISTID.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\W_LISTID.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\W_U_DETL.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\W_U_DETL.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\W_U_SRCH.HTX +SAMPLES\MSDN\TECHART\4892\QUERIES\W_U_SRCH.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\W_V_CUST.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\W_V_DATE.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\W_V_NUMB.IDC +SAMPLES\MSDN\TECHART\4892\QUERIES\W_V_OPEN.IDC +SAMPLES\MSDN\TECHART\4894\ATYPEDLG.CPP +SAMPLES\MSDN\TECHART\4894\ATYPEDLG.H +SAMPLES\MSDN\TECHART\4894\INETACCS.REG +SAMPLES\MSDN\TECHART\4894\ITHREAD.CPP +SAMPLES\MSDN\TECHART\4894\ITHREAD.H +SAMPLES\MSDN\TECHART\4894\MAKEFILE +SAMPLES\MSDN\TECHART\4894\README.TXT +SAMPLES\MSDN\TECHART\4894\RES +SAMPLES\MSDN\TECHART\4894\RESOURCE.H +SAMPLES\MSDN\TECHART\4894\SBEARDLG.CPP +SAMPLES\MSDN\TECHART\4894\SBEARDLG.H +SAMPLES\MSDN\TECHART\4894\STDAFX.CPP +SAMPLES\MSDN\TECHART\4894\STDAFX.H +SAMPLES\MSDN\TECHART\4894\SURFBEAR.CLW +SAMPLES\MSDN\TECHART\4894\SURFBEAR.CPP +SAMPLES\MSDN\TECHART\4894\SURFBEAR.EXE +SAMPLES\MSDN\TECHART\4894\SURFBEAR.H +SAMPLES\MSDN\TECHART\4894\SURFBEAR.RC +SAMPLES\MSDN\TECHART\4894\RES\BMP00001.BMP +SAMPLES\MSDN\TECHART\4894\RES\BOOKS.AVI +SAMPLES\MSDN\TECHART\4894\RES\HELPIMAG.BMP +SAMPLES\MSDN\TECHART\4894\RES\MSDN.ICO +SAMPLES\MSDN\TECHART\4894\RES\SURFBEAR.ICO +SAMPLES\MSDN\TECHART\4894\RES\SURFBEAR.RC2 +SAMPLES\MSDN\TECHART\4895\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4895\DEBUG.H +SAMPLES\MSDN\TECHART\4895\LATENCY.C +SAMPLES\MSDN\TECHART\4895\LATENCY.DEF +SAMPLES\MSDN\TECHART\4895\LATENCY.EXE +SAMPLES\MSDN\TECHART\4895\LATENCY.H +SAMPLES\MSDN\TECHART\4895\LATENCY.ICO +SAMPLES\MSDN\TECHART\4895\LATENCY.MAK +SAMPLES\MSDN\TECHART\4895\LATENCY.MDP +SAMPLES\MSDN\TECHART\4895\LATENCY.RC +SAMPLES\MSDN\TECHART\4895\MAKETHK.BAT +SAMPLES\MSDN\TECHART\4895\MARK40.BAT +SAMPLES\MSDN\TECHART\4895\RESOURCE.H +SAMPLES\MSDN\TECHART\4895\SMALL.ICO +SAMPLES\MSDN\TECHART\4895\THK3216.C +SAMPLES\MSDN\TECHART\4895\THK3216.DEF +SAMPLES\MSDN\TECHART\4895\THK3216.DLL +SAMPLES\MSDN\TECHART\4895\THK3216.H +SAMPLES\MSDN\TECHART\4895\TIMER.C +SAMPLES\MSDN\TECHART\4895\TIMER.H +SAMPLES\MSDN\TECHART\4895\TIMER.THK +SAMPLES\MSDN\TECHART\4895\TIMER16.C +SAMPLES\MSDN\TECHART\4895\TIMER16.DEF +SAMPLES\MSDN\TECHART\4895\TIMER16.DLL +SAMPLES\MSDN\TECHART\4895\TIMER16.H +SAMPLES\MSDN\TECHART\4895\TIMER16.MAK +SAMPLES\MSDN\TECHART\4895\TIMER32.C +SAMPLES\MSDN\TECHART\4895\TIMER32.DLL +SAMPLES\MSDN\TECHART\4895\TIMER32.H +SAMPLES\MSDN\TECHART\4895\TYPES.DEF +SAMPLES\MSDN\TECHART\4918\ABOUT.C +SAMPLES\MSDN\TECHART\4918\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4918\ERROR.C +SAMPLES\MSDN\TECHART\4918\INIT.C +SAMPLES\MSDN\TECHART\4918\MAKEFILE +SAMPLES\MSDN\TECHART\4918\MTTTY.C +SAMPLES\MSDN\TECHART\4918\MTTTY.H +SAMPLES\MSDN\TECHART\4918\MTTTY.ICO +SAMPLES\MSDN\TECHART\4918\MTTTY.MAK +SAMPLES\MSDN\TECHART\4918\MTTTY.RC +SAMPLES\MSDN\TECHART\4918\MTTTY.ZIP +SAMPLES\MSDN\TECHART\4918\MTTTY2.ICO +SAMPLES\MSDN\TECHART\4918\MTTTY3.ICO +SAMPLES\MSDN\TECHART\4918\MTTTY4.ICO +SAMPLES\MSDN\TECHART\4918\READER.C +SAMPLES\MSDN\TECHART\4918\READSTAT.C +SAMPLES\MSDN\TECHART\4918\RESOURCE.H +SAMPLES\MSDN\TECHART\4918\SETTINGS.C +SAMPLES\MSDN\TECHART\4918\STATUS.C +SAMPLES\MSDN\TECHART\4918\TRANSFER.C +SAMPLES\MSDN\TECHART\4918\TTYINFO.H +SAMPLES\MSDN\TECHART\4918\WRITER.C +SAMPLES\MSDN\TECHART\4920\SAMPLE +SAMPLES\MSDN\TECHART\4920\SRC +SAMPLES\MSDN\TECHART\4920\SAMPLE\SAMPLE.FRM +SAMPLES\MSDN\TECHART\4920\SAMPLE\SAMPLE.FRX +SAMPLES\MSDN\TECHART\4920\SAMPLE\SAMPLE.VBP +SAMPLES\MSDN\TECHART\4920\SRC\HLP +SAMPLES\MSDN\TECHART\4920\SRC\NTSERVMSG.MC +SAMPLES\MSDN\TECHART\4920\SRC\NTSERV~1.H +SAMPLES\MSDN\TECHART\4920\SRC\NTSERV~1.RC +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.CPP +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.DEF +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.H +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.HPJ +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.ICO +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.MAK +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.MDP +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.ODL +SAMPLES\MSDN\TECHART\4920\SRC\NTSVC.RC +SAMPLES\MSDN\TECHART\4920\SRC\NTSVCCTL.BMP +SAMPLES\MSDN\TECHART\4920\SRC\NTSVCCTL.CPP +SAMPLES\MSDN\TECHART\4920\SRC\NTSVCCTL.H +SAMPLES\MSDN\TECHART\4920\SRC\RESOURCE.H +SAMPLES\MSDN\TECHART\4920\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\4920\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\4920\SRC\HLP\BULLET.BMP +SAMPLES\MSDN\TECHART\4920\SRC\HLP\NTSVC.HM +SAMPLES\MSDN\TECHART\4920\SRC\HLP\NTSVC.RTF +SAMPLES\MSDN\TECHART\4922\BUILD.TXT +SAMPLES\MSDN\TECHART\4922\DBSSVC +SAMPLES\MSDN\TECHART\4922\ERRSVC +SAMPLES\MSDN\TECHART\4922\LOGSVC +SAMPLES\MSDN\TECHART\4922\REGSVC +SAMPLES\MSDN\TECHART\4922\SYSSVC +SAMPLES\MSDN\TECHART\4922\DBSSVC\DBSSVC.BAS +SAMPLES\MSDN\TECHART\4922\DBSSVC\DBSSVC.CLS +SAMPLES\MSDN\TECHART\4922\DBSSVC\DBSSVC.DLL +SAMPLES\MSDN\TECHART\4922\DBSSVC\DBSSVC.VBP +SAMPLES\MSDN\TECHART\4922\DBSSVC\JET +SAMPLES\MSDN\TECHART\4922\DBSSVC\RDO +SAMPLES\MSDN\TECHART\4922\DBSSVC\JET\DBDSCJET.CLS +SAMPLES\MSDN\TECHART\4922\DBSSVC\JET\DBSJET.BAS +SAMPLES\MSDN\TECHART\4922\DBSSVC\JET\DBSJET.CLS +SAMPLES\MSDN\TECHART\4922\DBSSVC\JET\DBSJET.VBP +SAMPLES\MSDN\TECHART\4922\DBSSVC\JET\DBS_JET.DLL +SAMPLES\MSDN\TECHART\4922\DBSSVC\RDO\DBDSCRDO.CLS +SAMPLES\MSDN\TECHART\4922\DBSSVC\RDO\DBSRDO.BAS +SAMPLES\MSDN\TECHART\4922\DBSSVC\RDO\DBSRDO.CLS +SAMPLES\MSDN\TECHART\4922\DBSSVC\RDO\DBSRDO.VBP +SAMPLES\MSDN\TECHART\4922\DBSSVC\RDO\DBS_RDO.DLL +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRRES +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRSVC.BAS +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRSVC.CLS +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRSVC.DLL +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRSVC.VBP +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRRES\ERRRES.BAS +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRRES\ERRRES.CLS +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRRES\ERRRES.DLL +SAMPLES\MSDN\TECHART\4922\ERRSVC\ERRRES\ERRRES.VBP +SAMPLES\MSDN\TECHART\4922\LOGSVC\DATA +SAMPLES\MSDN\TECHART\4922\LOGSVC\ERRS +SAMPLES\MSDN\TECHART\4922\LOGSVC\INFO +SAMPLES\MSDN\TECHART\4922\LOGSVC\LOGALL.BAS +SAMPLES\MSDN\TECHART\4922\LOGSVC\LOGALL.CLS +SAMPLES\MSDN\TECHART\4922\LOGSVC\LOGALL.VBP +SAMPLES\MSDN\TECHART\4922\LOGSVC\LOGSVC.DLL +SAMPLES\MSDN\TECHART\4922\LOGSVC\DATA\LOGDATA.BAS +SAMPLES\MSDN\TECHART\4922\LOGSVC\DATA\LOGDATA.CLS +SAMPLES\MSDN\TECHART\4922\LOGSVC\DATA\LOGDATA.VBP +SAMPLES\MSDN\TECHART\4922\LOGSVC\DATA\LOG_DATA.DLL +SAMPLES\MSDN\TECHART\4922\LOGSVC\ERRS\LOGERRS.BAS +SAMPLES\MSDN\TECHART\4922\LOGSVC\ERRS\LOGERRS.CLS +SAMPLES\MSDN\TECHART\4922\LOGSVC\ERRS\LOGERRS.VBP +SAMPLES\MSDN\TECHART\4922\LOGSVC\ERRS\LOG_ERRS.DLL +SAMPLES\MSDN\TECHART\4922\LOGSVC\INFO\LOGINFO.BAS +SAMPLES\MSDN\TECHART\4922\LOGSVC\INFO\LOGINFO.CLS +SAMPLES\MSDN\TECHART\4922\LOGSVC\INFO\LOGINFO.VBP +SAMPLES\MSDN\TECHART\4922\LOGSVC\INFO\LOG_INFO.DLL +SAMPLES\MSDN\TECHART\4922\REGSVC\REG.BAS +SAMPLES\MSDN\TECHART\4922\REGSVC\REG.CLS +SAMPLES\MSDN\TECHART\4922\REGSVC\REG.VBP +SAMPLES\MSDN\TECHART\4922\REGSVC\REGSVC.DLL +SAMPLES\MSDN\TECHART\4922\SYSSVC\SYSSVC.BAS +SAMPLES\MSDN\TECHART\4922\SYSSVC\SYSSVC.CLS +SAMPLES\MSDN\TECHART\4922\SYSSVC\SYSSVC.DLL +SAMPLES\MSDN\TECHART\4922\SYSSVC\SYSSVC.VBP +SAMPLES\MSDN\TECHART\4924\FRMBROWSE.FRM +SAMPLES\MSDN\TECHART\4924\FRMBROWSE.FRX +SAMPLES\MSDN\TECHART\4924\SILKSCRN.VBP +SAMPLES\MSDN\TECHART\4925\BIN +SAMPLES\MSDN\TECHART\4925\BIN] +SAMPLES\MSDN\TECHART\4925\CPP4VB.DBG +SAMPLES\MSDN\TECHART\4925\CPP4VB.FRM +SAMPLES\MSDN\TECHART\4925\CPP4VB.FRX +SAMPLES\MSDN\TECHART\4925\CPP4VB.HTM +SAMPLES\MSDN\TECHART\4925\CPP4VB.VBP +SAMPLES\MSDN\TECHART\4925\DEBUG.BAS +SAMPLES\MSDN\TECHART\4925\INCLUDE +SAMPLES\MSDN\TECHART\4925\LIB +SAMPLES\MSDN\TECHART\4925\OLETYPE +SAMPLES\MSDN\TECHART\4925\README.TXT +SAMPLES\MSDN\TECHART\4925\UTILITY.BAS +SAMPLES\MSDN\TECHART\4925\VBUTIL +SAMPLES\MSDN\TECHART\4925\WINTLB +SAMPLES\MSDN\TECHART\4925\BIN\VBUTIL32.DLL +SAMPLES\MSDN\TECHART\4925\BIN\VBUTIL32.TLB +SAMPLES\MSDN\TECHART\4925\BIN\WIN32.TLB +SAMPLES\MSDN\TECHART\4925\INCLUDE\BSTRING.H +SAMPLES\MSDN\TECHART\4925\INCLUDE\OLETYPE.H +SAMPLES\MSDN\TECHART\4925\INCLUDE\OLETYPE.ODL +SAMPLES\MSDN\TECHART\4925\INCLUDE\SAFEARRAY.H +SAMPLES\MSDN\TECHART\4925\INCLUDE\VARIANT.H +SAMPLES\MSDN\TECHART\4925\INCLUDE\WINTYPE.ODL +SAMPLES\MSDN\TECHART\4925\LIB\OLETYPE.LIB +SAMPLES\MSDN\TECHART\4925\LIB\OLETYPED.LIB +SAMPLES\MSDN\TECHART\4925\OLETYPE\BSTRING.CPP +SAMPLES\MSDN\TECHART\4925\OLETYPE\OLETYPE.MAK +SAMPLES\MSDN\TECHART\4925\OLETYPE\OLETYPE.MDP +SAMPLES\MSDN\TECHART\4925\OLETYPE\OLETYPE0 +SAMPLES\MSDN\TECHART\4925\OLETYPE\VARIANT.CPP +SAMPLES\MSDN\TECHART\4925\OLETYPE\OLETYPE0\BSTRING.SBR +SAMPLES\MSDN\TECHART\4925\OLETYPE\OLETYPE0\VARIANT.SBR +SAMPLES\MSDN\TECHART\4925\VBUTIL\TEST.CPP +SAMPLES\MSDN\TECHART\4925\VBUTIL\TEST.H +SAMPLES\MSDN\TECHART\4925\VBUTIL\TOOLS.CPP +SAMPLES\MSDN\TECHART\4925\VBUTIL\TOOLS.H +SAMPLES\MSDN\TECHART\4925\VBUTIL\VBUTIL.CPP +SAMPLES\MSDN\TECHART\4925\VBUTIL\VBUTIL.DEF +SAMPLES\MSDN\TECHART\4925\VBUTIL\VBUTIL.H +SAMPLES\MSDN\TECHART\4925\VBUTIL\VBUTIL.MAK +SAMPLES\MSDN\TECHART\4925\VBUTIL\VBUTIL.MDP +SAMPLES\MSDN\TECHART\4925\VBUTIL\VBUTIL.ODL +SAMPLES\MSDN\TECHART\4925\VBUTIL\VBUTIL.RC +SAMPLES\MSDN\TECHART\4925\VBUTIL\WIN32.CPP +SAMPLES\MSDN\TECHART\4925\VBUTIL\WIN32.H +SAMPLES\MSDN\TECHART\4925\WINTLB\COMCONST.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\COMCTL.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\GDI.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\INTRFACE.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\KERNEL.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\MKWIN.BAT +SAMPLES\MSDN\TECHART\4925\WINTLB\MKWINIDL.BAT +SAMPLES\MSDN\TECHART\4925\WINTLB\NETWORK.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\OLEAUTO.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\REGISTRY.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\SHELL.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\USER.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\WIN.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\WIN16.TLB +SAMPLES\MSDN\TECHART\4925\WINTLB\WIN32.TLB +SAMPLES\MSDN\TECHART\4925\WINTLB\WINBASE.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\WINERR.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\WINMM.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\WINMSG.ODL +SAMPLES\MSDN\TECHART\4925\WINTLB\WINTLB.MAK +SAMPLES\MSDN\TECHART\4925\WINTLB\WINTLB.MDP +SAMPLES\MSDN\TECHART\4925\WINTLB\WINTYPE.ODL +SAMPLES\MSDN\TECHART\4938\DMAINWIZ.MDA +SAMPLES\MSDN\TECHART\4938\DMAINWIZ.MDT +SAMPLES\MSDN\TECHART\4938\README.TXT +SAMPLES\MSDN\TECHART\4938\ZIPSETUP.EXE +SAMPLES\MSDN\TECHART\4939\FUNCWIZ.MDA +SAMPLES\MSDN\TECHART\4939\FUNCWIZ.MDT +SAMPLES\MSDN\TECHART\4939\README.TXT +SAMPLES\MSDN\TECHART\4939\ZIPSETUP.EXE +SAMPLES\MSDN\TECHART\4940\ACCATM.DLL +SAMPLES\MSDN\TECHART\4940\ACCATM.MDB +SAMPLES\MSDN\TECHART\4940\ACCATM.MDT +SAMPLES\MSDN\TECHART\4940\README.TXT +SAMPLES\MSDN\TECHART\4940\REGSVR32.EXE +SAMPLES\MSDN\TECHART\4940\VBSOURCE.EXE +SAMPLES\MSDN\TECHART\4940\ZIPSETUP.EXE +SAMPLES\MSDN\TECHART\4941\ODBCREG.MDA +SAMPLES\MSDN\TECHART\4941\README.TXT +SAMPLES\MSDN\TECHART\4941\ZIPSETUP.EXE +SAMPLES\MSDN\TECHART\4942\README.TXT +SAMPLES\MSDN\TECHART\4942\TBCCWIZ.MDA +SAMPLES\MSDN\TECHART\4942\TBCCWIZ.MDT +SAMPLES\MSDN\TECHART\4942\ZIPSETUP.EXE +SAMPLES\MSDN\TECHART\4943\README.TXT +SAMPLES\MSDN\TECHART\4943\SALES.DAT +SAMPLES\MSDN\TECHART\4943\TEXTWIZ.MDA +SAMPLES\MSDN\TECHART\4943\TEXTWIZ.MDT +SAMPLES\MSDN\TECHART\4943\ZIPSETUP.EXE +SAMPLES\MSDN\TECHART\4944\WIZDESGN.MDB +SAMPLES\MSDN\TECHART\4948\BSAMPLE +SAMPLES\MSDN\TECHART\4948\CSAMPLE +SAMPLES\MSDN\TECHART\4948\MSDNOC~1.DOC +SAMPLES\MSDN\TECHART\4948\MSOC97.H +SAMPLES\MSDN\TECHART\4948\BSAMPLE\MAIN.FRM +SAMPLES\MSDN\TECHART\4948\BSAMPLE\OCBSAMP.VBP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\DOCLIST.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\DOCLIST.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\DOCPROPS.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\DOCPROPS.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\MAINFRM.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\MSOC97.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCDOC.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCDOC.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCDOC.ICO +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCSAMP.APS +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCSAMP.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCSAMP.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCSAMP.ICO +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCSAMP.MAK +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCSAMP.MDP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCSAMP.RC +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCVIEW.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\OCCVIEW.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\README.TXT +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RESOURCE.FD +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RESOURCE.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\STDAFX.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\STDAFX.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\DOCLIST.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\DOCLIST.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\DOCPROPS.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\DOCPROPS.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\MAINFRM.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\MSOC97.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCDOC.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCDOC.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCDOC.ICO +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCSAMP.APS +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCSAMP.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCSAMP.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCSAMP.ICO +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCSAMP.MAK +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCSAMP.MDP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCSAMP.RC +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCVIEW.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\OCCVIEW.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\README.TXT +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\RESOURCE.FD +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\RESOURCE.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\STDAFX.CPP +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\STDAFX.H +SAMPLES\MSDN\TECHART\4948\CSAMPLE\RES\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4949\MSFTEMPLATES.EXE +SAMPLES\MSDN\TECHART\4994\BROWSEDI.CPP +SAMPLES\MSDN\TECHART\4994\BROWSEDI.H +SAMPLES\MSDN\TECHART\4994\CFILEMAP.CPP +SAMPLES\MSDN\TECHART\4994\CFILEMAP.H +SAMPLES\MSDN\TECHART\4994\CLIAPP.CPP +SAMPLES\MSDN\TECHART\4994\CLIAPP.EXE +SAMPLES\MSDN\TECHART\4994\CLIAPP.H +SAMPLES\MSDN\TECHART\4994\CLIAPP.ICO +SAMPLES\MSDN\TECHART\4994\CLIAPP.MAK +SAMPLES\MSDN\TECHART\4994\CLIAPP.MDP +SAMPLES\MSDN\TECHART\4994\CLIAPP.RC +SAMPLES\MSDN\TECHART\4994\CLIAPP.RC2 +SAMPLES\MSDN\TECHART\4994\CLIAPPDO.ICO +SAMPLES\MSDN\TECHART\4994\CLIDOC.CPP +SAMPLES\MSDN\TECHART\4994\CLIDOC.H +SAMPLES\MSDN\TECHART\4994\CLIENT.CPP +SAMPLES\MSDN\TECHART\4994\CLIENT.H +SAMPLES\MSDN\TECHART\4994\CLIVIEW.CPP +SAMPLES\MSDN\TECHART\4994\CLIVIEW.H +SAMPLES\MSDN\TECHART\4994\CMUTEX.CPP +SAMPLES\MSDN\TECHART\4994\CMUTEX.H +SAMPLES\MSDN\TECHART\4994\COMCLASS.CPP +SAMPLES\MSDN\TECHART\4994\COMCLASS.H +SAMPLES\MSDN\TECHART\4994\COMMON.H +SAMPLES\MSDN\TECHART\4994\DBCODE.CPP +SAMPLES\MSDN\TECHART\4994\DBCODE.H +SAMPLES\MSDN\TECHART\4994\DBDIALOG.CPP +SAMPLES\MSDN\TECHART\4994\DBDIALOG.H +SAMPLES\MSDN\TECHART\4994\EASYVIEW.CPP +SAMPLES\MSDN\TECHART\4994\EASYVIEW.H +SAMPLES\MSDN\TECHART\4994\IOCPS.DOC +SAMPLES\MSDN\TECHART\4994\MAINFRM.CPP +SAMPLES\MSDN\TECHART\4994\MAINFRM.H +SAMPLES\MSDN\TECHART\4994\NPIPE.CPP +SAMPLES\MSDN\TECHART\4994\NPIPE.H +SAMPLES\MSDN\TECHART\4994\NPSCESRV.ICO +SAMPLES\MSDN\TECHART\4994\NPSCESRV.RC2 +SAMPLES\MSDN\TECHART\4994\NPSECCLI.ICO +SAMPLES\MSDN\TECHART\4994\NPSECCLI.RC2 +SAMPLES\MSDN\TECHART\4994\PROTOCOL.CPP +SAMPLES\MSDN\TECHART\4994\PROTOCOL.H +SAMPLES\MSDN\TECHART\4994\RESOURCE.H +SAMPLES\MSDN\TECHART\4994\SERVER.EXE +SAMPLES\MSDN\TECHART\4994\SERVER.ICO +SAMPLES\MSDN\TECHART\4994\SERVER.MAK +SAMPLES\MSDN\TECHART\4994\SERVER.MDP +SAMPLES\MSDN\TECHART\4994\SERVER.RC2 +SAMPLES\MSDN\TECHART\4994\SERVERDO.ICO +SAMPLES\MSDN\TECHART\4994\SRVAPP.CPP +SAMPLES\MSDN\TECHART\4994\SRVAPP.H +SAMPLES\MSDN\TECHART\4994\SRVAPP.RC +SAMPLES\MSDN\TECHART\4994\SRVDOC.CPP +SAMPLES\MSDN\TECHART\4994\SRVDOC.H +SAMPLES\MSDN\TECHART\4994\SRVVIEW.CPP +SAMPLES\MSDN\TECHART\4994\SRVVIEW.H +SAMPLES\MSDN\TECHART\4994\STDAFX.CPP +SAMPLES\MSDN\TECHART\4994\STDAFX.H +SAMPLES\MSDN\TECHART\4994\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\4995\CASEPROC.SQL +SAMPLES\MSDN\TECHART\4995\DATALOAD.SQL +SAMPLES\MSDN\TECHART\4995\DBBUILD.SQL +SAMPLES\MSDN\TECHART\4995\INSARTIC.SQL +SAMPLES\MSDN\TECHART\4995\INSMATTE.SQL +SAMPLES\MSDN\TECHART\4995\SQLPO30C.ZIP +SAMPLES\MSDN\TECHART\4996\BUILD421 +SAMPLES\MSDN\TECHART\4996\BUILD4~1 +SAMPLES\MSDN\TECHART\4996\BUILD65 +SAMPLES\MSDN\TECHART\4996\BUILD421\AUTHSUM.SQL +SAMPLES\MSDN\TECHART\4996\BUILD421\DATALOAD.SQL +SAMPLES\MSDN\TECHART\4996\BUILD421\DBBUILD.SQL +SAMPLES\MSDN\TECHART\4996\BUILD421\GETNXTID.SQL +SAMPLES\MSDN\TECHART\4996\BUILD421\INSARTIC.SQL +SAMPLES\MSDN\TECHART\4996\BUILD421\INSMATTE.SQL +SAMPLES\MSDN\TECHART\4996\BUILD421\KEYWORDS.SQL +SAMPLES\MSDN\TECHART\4996\BUILD4~1\AUTHSUM.SQL +SAMPLES\MSDN\TECHART\4996\BUILD4~1\DATALOAD.SQL +SAMPLES\MSDN\TECHART\4996\BUILD4~1\DBBUILD.SQL +SAMPLES\MSDN\TECHART\4996\BUILD4~1\GETNXTID.SQL +SAMPLES\MSDN\TECHART\4996\BUILD4~1\INSARTIC.SQL +SAMPLES\MSDN\TECHART\4996\BUILD4~1\INSMATTE.SQL +SAMPLES\MSDN\TECHART\4996\BUILD4~1\KEYWORDS.SQL +SAMPLES\MSDN\TECHART\4996\BUILD65\CASEPROC.SQL +SAMPLES\MSDN\TECHART\4996\BUILD65\DATALOAD.SQL +SAMPLES\MSDN\TECHART\4996\BUILD65\DBBUILD.SQL +SAMPLES\MSDN\TECHART\4996\BUILD65\INSARTIC.SQL +SAMPLES\MSDN\TECHART\4996\BUILD65\INSMATTE.SQL +SAMPLES\MSDN\TECHART\4997\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\4997\ASSERT.C +SAMPLES\MSDN\TECHART\4997\ASSERT.H +SAMPLES\MSDN\TECHART\4997\AUDIOSTREAM.CPP +SAMPLES\MSDN\TECHART\4997\AUDIOSTREAM.H +SAMPLES\MSDN\TECHART\4997\DEBUG.C +SAMPLES\MSDN\TECHART\4997\DEBUG.H +SAMPLES\MSDN\TECHART\4997\RESOURCE.H +SAMPLES\MSDN\TECHART\4997\STDAFX.H +SAMPLES\MSDN\TECHART\4997\STREAMS.CPP +SAMPLES\MSDN\TECHART\4997\STREAMS.EXE +SAMPLES\MSDN\TECHART\4997\STREAMS.H +SAMPLES\MSDN\TECHART\4997\STREAMS.ICO +SAMPLES\MSDN\TECHART\4997\STREAMS.MAK +SAMPLES\MSDN\TECHART\4997\STREAMS.MDP +SAMPLES\MSDN\TECHART\4997\STREAMS.RC +SAMPLES\MSDN\TECHART\4997\TIMER.CPP +SAMPLES\MSDN\TECHART\4997\TIMER.H +SAMPLES\MSDN\TECHART\4997\WAVEFILE.CPP +SAMPLES\MSDN\TECHART\4997\WAVEFILE.H +SAMPLES\MSDN\TECHART\4998\DOS +SAMPLES\MSDN\TECHART\4998\TIMEWASTER.EXE +SAMPLES\MSDN\TECHART\4998\WINDOWS +SAMPLES\MSDN\TECHART\4998\DOS\AHAB.PCX +SAMPLES\MSDN\TECHART\4998\DOS\MOBY.C +SAMPLES\MSDN\TECHART\4998\DOS\MOBY.EXE +SAMPLES\MSDN\TECHART\4998\DOS\MOBY.PCX +SAMPLES\MSDN\TECHART\4998\DOS\MOBYDICK.EXE +SAMPLES\MSDN\TECHART\4998\DOS\MOBYDICK.PRJ +SAMPLES\MSDN\TECHART\4998\DOS\MOBYMS~1.ZIP +SAMPLES\MSDN\TECHART\4998\DOS\SEA.PCX +SAMPLES\MSDN\TECHART\4998\DOS\SPOUT.PCX +SAMPLES\MSDN\TECHART\4998\DOS\VIDEO.C +SAMPLES\MSDN\TECHART\4998\DOS\VIDEO.H +SAMPLES\MSDN\TECHART\4998\DOS\WAKE.PCX +SAMPLES\MSDN\TECHART\4998\WINDOWS\AHAB.BMP +SAMPLES\MSDN\TECHART\4998\WINDOWS\CLOUD.BMP +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBY.BMP +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBY.CPP +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBY.H +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBY.RC +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBY.RES +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBYDICK.EXE +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBYDICK.MAK +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBYDICK.MDP +SAMPLES\MSDN\TECHART\4998\WINDOWS\MOBYWI~1.ZIP +SAMPLES\MSDN\TECHART\4998\WINDOWS\RESOURCE.H +SAMPLES\MSDN\TECHART\4998\WINDOWS\SEA.BMP +SAMPLES\MSDN\TECHART\4998\WINDOWS\SPOUT.BMP +SAMPLES\MSDN\TECHART\4998\WINDOWS\UNZIP.EXE +SAMPLES\MSDN\TECHART\4998\WINDOWS\WAKE.BMP +SAMPLES\MSDN\TECHART\4999\CNETGET.CPP +SAMPLES\MSDN\TECHART\4999\CNETGET.H +SAMPLES\MSDN\TECHART\4999\MAIN.CPP +SAMPLES\MSDN\TECHART\4999\NETGET.EXT +SAMPLES\MSDN\TECHART\4999\NETGET.KYS +SAMPLES\MSDN\TECHART\4999\NETGET.MAK +SAMPLES\MSDN\TECHART\4999\NETGET.MDP +SAMPLES\MSDN\TECHART\4999\RELEASE +SAMPLES\MSDN\TECHART\4999\RELEASE\NETGET.EXE +SAMPLES\MSDN\TECHART\5000\AHAB.BMP +SAMPLES\MSDN\TECHART\5000\CLOUD.BMP +SAMPLES\MSDN\TECHART\5000\INPUT.CPP +SAMPLES\MSDN\TECHART\5000\INPUT.H +SAMPLES\MSDN\TECHART\5000\MOBY.BMP +SAMPLES\MSDN\TECHART\5000\MOBY.CPP +SAMPLES\MSDN\TECHART\5000\MOBY.H +SAMPLES\MSDN\TECHART\5000\MOBY.RC +SAMPLES\MSDN\TECHART\5000\MOBY.RES +SAMPLES\MSDN\TECHART\5000\MOBYDICK.EXE +SAMPLES\MSDN\TECHART\5000\MOBYDICK.MAK +SAMPLES\MSDN\TECHART\5000\MOBYDICK.MDP +SAMPLES\MSDN\TECHART\5000\RESOURCE.H +SAMPLES\MSDN\TECHART\5000\SEA.BMP +SAMPLES\MSDN\TECHART\5000\SPOUT.BMP +SAMPLES\MSDN\TECHART\5000\UNZIP.EXE +SAMPLES\MSDN\TECHART\5000\WAKE.BMP +SAMPLES\MSDN\TECHART\5001\DIMAIN.CPP +SAMPLES\MSDN\TECHART\5001\DINPUT.EXE +SAMPLES\MSDN\TECHART\5001\DINPUT.MAK +SAMPLES\MSDN\TECHART\5001\DINPUT.MDP +SAMPLES\MSDN\TECHART\5001\DINPUT.RC +SAMPLES\MSDN\TECHART\5001\ICON1.ICO +SAMPLES\MSDN\TECHART\5001\INPUT.CPP +SAMPLES\MSDN\TECHART\5001\INPUT.H +SAMPLES\MSDN\TECHART\5001\OUTPUT.CPP +SAMPLES\MSDN\TECHART\5001\OUTPUT.H +SAMPLES\MSDN\TECHART\5001\RESOURCE.H +SAMPLES\MSDN\TECHART\5002\STOPDLL +SAMPLES\MSDN\TECHART\5002\STOPFIN +SAMPLES\MSDN\TECHART\5002\STOPLITE +SAMPLES\MSDN\TECHART\5002\STOPVB +SAMPLES\MSDN\TECHART\5002\STOPWIZ +SAMPLES\MSDN\TECHART\5002\STOPDLL\MFC40.DLL +SAMPLES\MSDN\TECHART\5002\STOPDLL\MSVCRT40.DLL +SAMPLES\MSDN\TECHART\5002\STOPDLL\OLEPRO32.DLL +SAMPLES\MSDN\TECHART\5002\STOPDLL\STOPDLL.ZIP +SAMPLES\MSDN\TECHART\5002\STOPFIN\HELPERS.CPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\HELPERS.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\README.TXT +SAMPLES\MSDN\TECHART\5002\STOPFIN\RESOURCE.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT +SAMPLES\MSDN\TECHART\5002\STOPFIN\STDAFX.CPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\STDAFX.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOP.GIF +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPFIN.ZIP +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.CPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.DEF +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.ICO +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.MAK +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.MDP +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.ODL +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITE.RC +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITECTL.BMP +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITECTL.CPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITECTL.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITEPPG.CPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\STOPLITEPPG.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\VBAPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT\IOBJSAFE +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT\MARKREG +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT\README.TXT +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT\IOBJSAFE\STOPLITECTL.CPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT\IOBJSAFE\STOPLITECTL.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT\MARKREG\STOPLITECTL.CPP +SAMPLES\MSDN\TECHART\5002\STOPFIN\SAFEALT\MARKREG\STOPLITECTL.H +SAMPLES\MSDN\TECHART\5002\STOPFIN\VBAPP\STOPLTVB.FRM +SAMPLES\MSDN\TECHART\5002\STOPFIN\VBAPP\STOPLTVB.FRX +SAMPLES\MSDN\TECHART\5002\STOPFIN\VBAPP\STOPLTVB.VBP +SAMPLES\MSDN\TECHART\5002\STOPLITE\DEFAULT.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DLLREQ.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE +SAMPLES\MSDN\TECHART\5002\STOPLITE\FILELIST.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE +SAMPLES\MSDN\TECHART\5002\STOPLITE\PAGELIT2.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\PAGELITE.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\SHOWLIT2.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\SHOWLITE.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\STO2731B.GIF +SAMPLES\MSDN\TECHART\5002\STOPLITE\STO2731C.GIF +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOP.GIF +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOPLITE.OCX +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOPLITE.ZIP +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOPLMFC.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOPLMFC1.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOPLTJS.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOPLTVB.EXE +SAMPLES\MSDN\TECHART\5002\STOPLITE\STOPLTVB.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\DEFAULT2.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\HELPERSCPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\HELPERSH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\READMETXT.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\RESOURCEH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STDAFXCPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STDAFXH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITECPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITECTLCPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITECTLH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITEDEF.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITEH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITEODL.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITEPPGCPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITEPPGH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\DONECODE\STOPLITERC.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\DEFAULT1.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\READMETXT.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\RESOURCEH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STDAFXCPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STDAFXH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITECPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITECTLCPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITECTLH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITEDEF.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITEH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITEODL.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITEPPGCPP.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITEPPGH.HTM +SAMPLES\MSDN\TECHART\5002\STOPLITE\ORIGCODE\STOPLITERC.HTM +SAMPLES\MSDN\TECHART\5002\STOPVB\CTL3D32.DL_ +SAMPLES\MSDN\TECHART\5002\STOPVB\MSVCRT20.DL_ +SAMPLES\MSDN\TECHART\5002\STOPVB\MSVCRT40.DL_ +SAMPLES\MSDN\TECHART\5002\STOPVB\OLEPRO32.DL_ +SAMPLES\MSDN\TECHART\5002\STOPVB\SETUP.EXE +SAMPLES\MSDN\TECHART\5002\STOPVB\SETUP.LST +SAMPLES\MSDN\TECHART\5002\STOPVB\SETUP132.EX_ +SAMPLES\MSDN\TECHART\5002\STOPVB\ST4UNST.EX_ +SAMPLES\MSDN\TECHART\5002\STOPVB\STKIT432.DL_ +SAMPLES\MSDN\TECHART\5002\STOPVB\STOPLITE.OC_ +SAMPLES\MSDN\TECHART\5002\STOPVB\STOPLTVB.EX_ +SAMPLES\MSDN\TECHART\5002\STOPVB\STOPVB.ZIP +SAMPLES\MSDN\TECHART\5002\STOPVB\VB40032.DL_ +SAMPLES\MSDN\TECHART\5002\STOPVB\VEN2232.OL_ +SAMPLES\MSDN\TECHART\5002\STOPWIZ\README.TXT +SAMPLES\MSDN\TECHART\5002\STOPWIZ\RESOURCE.H +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STDAFX.CPP +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STDAFX.H +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.CPP +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.DEF +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.H +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.ICO +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.MAK +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.MDP +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.ODL +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITE.RC +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITECTL.BMP +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITECTL.CPP +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITECTL.H +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITEPPG.CPP +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPLITEPPG.H +SAMPLES\MSDN\TECHART\5002\STOPWIZ\STOPWIZ.ZIP +SAMPLES\MSDN\TECHART\5003\CENCRYPT.CPP +SAMPLES\MSDN\TECHART\5003\CENCRYPT.H +SAMPLES\MSDN\TECHART\5003\CRYPTERR.CPP +SAMPLES\MSDN\TECHART\5003\CRYPTERR.H +SAMPLES\MSDN\TECHART\5003\ENCRYPT.MAK +SAMPLES\MSDN\TECHART\5003\ENCRYPT.MDP +SAMPLES\MSDN\TECHART\5003\MAIN.CPP +SAMPLES\MSDN\TECHART\5004\CLSCFBOX.CLS +SAMPLES\MSDN\TECHART\5004\FRMMAIN.FRM +SAMPLES\MSDN\TECHART\5004\VBCRYPTO.VBP +SAMPLES\MSDN\TECHART\5005\CNETGET.CLS +SAMPLES\MSDN\TECHART\5005\FNETGET.FRM +SAMPLES\MSDN\TECHART\5005\FNETGET.FRX +SAMPLES\MSDN\TECHART\5005\NETGET.EXE +SAMPLES\MSDN\TECHART\5005\NETGET.VBP +SAMPLES\MSDN\TECHART\5006\COMDLG.CLS +SAMPLES\MSDN\TECHART\5007\HTTP.FRM +SAMPLES\MSDN\TECHART\5007\HTTP.FRX +SAMPLES\MSDN\TECHART\5007\VBHTTP.VBP +SAMPLES\MSDN\TECHART\5007\VBHTTP.VBW +SAMPLES\MSDN\TECHART\5007\WININET.BAS +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTP.APS +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTP.CLW +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTP.CPP +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTP.H +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTP.MAK +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTP.MDP +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTP.RC +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTPDLG.CPP +SAMPLES\MSDN\TECHART\5008\ADVANCEDFTPDLG.H +SAMPLES\MSDN\TECHART\5008\HLP +SAMPLES\MSDN\TECHART\5008\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\5008\README.TXT +SAMPLES\MSDN\TECHART\5008\RES +SAMPLES\MSDN\TECHART\5008\RESOURCE.H +SAMPLES\MSDN\TECHART\5008\STDAFX.CPP +SAMPLES\MSDN\TECHART\5008\STDAFX.H +SAMPLES\MSDN\TECHART\5008\HLP\ADVANCEDFTP.CNT +SAMPLES\MSDN\TECHART\5008\HLP\ADVANCEDFTP.HLP +SAMPLES\MSDN\TECHART\5008\HLP\ADVANCEDFTP.HM +SAMPLES\MSDN\TECHART\5008\HLP\ADVANCEDFTP.HPJ +SAMPLES\MSDN\TECHART\5008\HLP\AFXDLG.RTF +SAMPLES\MSDN\TECHART\5008\RES\ADVANCEDFTP.ICO +SAMPLES\MSDN\TECHART\5008\RES\ADVANCEDFTP.RC2 +SAMPLES\MSDN\TECHART\5008\RES\AVI2.BIN +SAMPLES\MSDN\TECHART\5008\RES\BOOKS.AVI +SAMPLES\MSDN\TECHART\5038\AHAB.BMP +SAMPLES\MSDN\TECHART\5038\BLOW.WAV +SAMPLES\MSDN\TECHART\5038\BOING.WAV +SAMPLES\MSDN\TECHART\5038\CLOUD.BMP +SAMPLES\MSDN\TECHART\5038\DRAW.CPP +SAMPLES\MSDN\TECHART\5038\DRAW.H +SAMPLES\MSDN\TECHART\5038\MAP.BMP +SAMPLES\MSDN\TECHART\5038\MOBY.BMP +SAMPLES\MSDN\TECHART\5038\MOBY.CPP +SAMPLES\MSDN\TECHART\5038\MOBY.H +SAMPLES\MSDN\TECHART\5038\MOBY.RC +SAMPLES\MSDN\TECHART\5038\MOBY.RES +SAMPLES\MSDN\TECHART\5038\MOBYDI~1.EXE +SAMPLES\MSDN\TECHART\5038\MOBYDI~1.MAK +SAMPLES\MSDN\TECHART\5038\MOBYDI~1.MDP +SAMPLES\MSDN\TECHART\5038\RESOURCE.H +SAMPLES\MSDN\TECHART\5038\SACDAN.MID +SAMPLES\MSDN\TECHART\5038\SOUND.CPP +SAMPLES\MSDN\TECHART\5038\SOUND.H +SAMPLES\MSDN\TECHART\5038\SPOUT.BMP +SAMPLES\MSDN\TECHART\5038\TTFONT.CPP +SAMPLES\MSDN\TECHART\5038\TTFONT.H +SAMPLES\MSDN\TECHART\5038\WAKE.BMP +SAMPLES\MSDN\TECHART\5038\WAVE.CPP +SAMPLES\MSDN\TECHART\5038\WAVE.H +SAMPLES\MSDN\TECHART\5045\AMOCX.CNT +SAMPLES\MSDN\TECHART\5045\AMOCX.HLP +SAMPLES\MSDN\TECHART\5046\AMOVIEJS.ALX +SAMPLES\MSDN\TECHART\5046\AMOVIEJS.HTM +SAMPLES\MSDN\TECHART\5046\AMOVIEVB.ALX +SAMPLES\MSDN\TECHART\5046\AMOVIEVB.HTM +SAMPLES\MSDN\TECHART\5046\HURRICANE.MPEG +SAMPLES\MSDN\TECHART\5047\DMDFM.C +SAMPLES\MSDN\TECHART\5047\DMDFM.H +SAMPLES\MSDN\TECHART\5047\LOADAPPTEST.C +SAMPLES\MSDN\TECHART\5048\CPUTEST +SAMPLES\MSDN\TECHART\5048\IOTEST +SAMPLES\MSDN\TECHART\5048\MULTSORT +SAMPLES\MSDN\TECHART\5048\TRDTEST +SAMPLES\MSDN\TECHART\5048\WEBTEST +SAMPLES\MSDN\TECHART\5048\CPUTEST\CLSDATA.CLS +SAMPLES\MSDN\TECHART\5048\CPUTEST\CPUTEST.VBP +SAMPLES\MSDN\TECHART\5048\CPUTEST\DATATEST.ASP +SAMPLES\MSDN\TECHART\5048\CPUTEST\MACHTIME.MDB +SAMPLES\MSDN\TECHART\5048\IOTEST\CLSIOSIM.CLS +SAMPLES\MSDN\TECHART\5048\IOTEST\IOSIM.ASP +SAMPLES\MSDN\TECHART\5048\IOTEST\IOTEST.VBP +SAMPLES\MSDN\TECHART\5048\IOTEST\IOTEST.VBW +SAMPLES\MSDN\TECHART\5048\MULTSORT\CLSSORT.CLS +SAMPLES\MSDN\TECHART\5048\MULTSORT\MODSORT.BAS +SAMPLES\MSDN\TECHART\5048\MULTSORT\MULTSORT.VBP +SAMPLES\MSDN\TECHART\5048\MULTSORT\MULTSORT.VBW +SAMPLES\MSDN\TECHART\5048\TRDTEST\TRDTEST.FRM +SAMPLES\MSDN\TECHART\5048\TRDTEST\TRDTEST.VBP +SAMPLES\MSDN\TECHART\5048\TRDTEST\TRDTEST.VBW +SAMPLES\MSDN\TECHART\5048\WEBTEST\FRMWEB.FRM +SAMPLES\MSDN\TECHART\5048\WEBTEST\WEBTEST.VBP +SAMPLES\MSDN\TECHART\5048\WEBTEST\WEBTEST.VBW +SAMPLES\MSDN\TECHART\5049\CHECK.PPM +SAMPLES\MSDN\TECHART\5049\D3D.ICO +SAMPLES\MSDN\TECHART\5049\FILE.CPP +SAMPLES\MSDN\TECHART\5049\MAKEFILE +SAMPLES\MSDN\TECHART\5049\PROPS.C +SAMPLES\MSDN\TECHART\5049\PROPS.H +SAMPLES\MSDN\TECHART\5049\RESOURCE.H +SAMPLES\MSDN\TECHART\5049\RMDEMO.H +SAMPLES\MSDN\TECHART\5049\RMTEX.CPP +SAMPLES\MSDN\TECHART\5049\RMTEX.H +SAMPLES\MSDN\TECHART\5049\RMTEX.RC +SAMPLES\MSDN\TECHART\5049\SPHERE4.X +SAMPLES\MSDN\TECHART\5049\TEX1.C +SAMPLES\MSDN\TECHART\5049\TEX1.DEF +SAMPLES\MSDN\TECHART\5049\TEXTURE.EXE +SAMPLES\MSDN\TECHART\5049\TEXTURE.MAK +SAMPLES\MSDN\TECHART\5049\TEXTURE.MDP +SAMPLES\MSDN\TECHART\5050\DATABASE +SAMPLES\MSDN\TECHART\5050\LOGVIEW +SAMPLES\MSDN\TECHART\5050\DATABASE\RXLOG.MDB +SAMPLES\MSDN\TECHART\5050\LOGVIEW\ENTRYDLG.CPP +SAMPLES\MSDN\TECHART\5050\LOGVIEW\ENTRYDLG.H +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVIEW.APS +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVIEW.CLW +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVIEW.CPP +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVIEW.H +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVIEW.MAK +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVIEW.MDP +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVIEW.RC +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVWDLG.CPP +SAMPLES\MSDN\TECHART\5050\LOGVIEW\LOGVWDLG.H +SAMPLES\MSDN\TECHART\5050\LOGVIEW\RELEASE +SAMPLES\MSDN\TECHART\5050\LOGVIEW\RES +SAMPLES\MSDN\TECHART\5050\LOGVIEW\RESOURCE.FD +SAMPLES\MSDN\TECHART\5050\LOGVIEW\RESOURCE.H +SAMPLES\MSDN\TECHART\5050\LOGVIEW\STDAFX.CPP +SAMPLES\MSDN\TECHART\5050\LOGVIEW\STDAFX.H +SAMPLES\MSDN\TECHART\5050\LOGVIEW\RELEASE\LOGVIEW.EXE +SAMPLES\MSDN\TECHART\5050\LOGVIEW\RES\LOGVIEW.ICO +SAMPLES\MSDN\TECHART\5050\LOGVIEW\RES\LOGVIEW.RC2 +SAMPLES\MSDN\TECHART\5051\BANKING.REG +SAMPLES\MSDN\TECHART\5051\BANKSRV.CMP +SAMPLES\MSDN\TECHART\5051\BANKSRV.DLL +SAMPLES\MSDN\TECHART\5051\BANKSRV.EXE +SAMPLES\MSDN\TECHART\5051\CLIENT +SAMPLES\MSDN\TECHART\5051\DB +SAMPLES\MSDN\TECHART\5051\README.TXT +SAMPLES\MSDN\TECHART\5051\SERVER +SAMPLES\MSDN\TECHART\5051\SRC +SAMPLES\MSDN\TECHART\5051\CLIENT\BANKDET.HTM +SAMPLES\MSDN\TECHART\5051\CLIENT\BANKS.HTM +SAMPLES\MSDN\TECHART\5051\CLIENT\DEFAULT.HTM +SAMPLES\MSDN\TECHART\5051\CLIENT\DETACT.HTM +SAMPLES\MSDN\TECHART\5051\CLIENT\DETEDT.HTM +SAMPLES\MSDN\TECHART\5051\CLIENT\DETNEW.HTM +SAMPLES\MSDN\TECHART\5051\CLIENT\EMPTY.HTM +SAMPLES\MSDN\TECHART\5051\DB\BANKING.MDB +SAMPLES\MSDN\TECHART\5051\SERVER\ACCOUNTS.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\BANKDET.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\BANKS.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\COMMIT.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\DEFAULT.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\DETACT.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\DETEDT.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\EMPTY.ASP +SAMPLES\MSDN\TECHART\5051\SERVER\GLOBAL.ASA +SAMPLES\MSDN\TECHART\5051\SRC\BANKSRV.VBP +SAMPLES\MSDN\TECHART\5051\SRC\CACCT.CLS +SAMPLES\MSDN\TECHART\5051\SRC\CADMIN.CLS +SAMPLES\MSDN\TECHART\5051\SRC\CBANK.CLS +SAMPLES\MSDN\TECHART\5052\PALETTE.OCX +SAMPLES\MSDN\TECHART\5052\SRC +SAMPLES\MSDN\TECHART\5052\SRC\BANKVIEW.CTL +SAMPLES\MSDN\TECHART\5052\SRC\BANKVIEW.CTX +SAMPLES\MSDN\TECHART\5052\SRC\PALETTE.VBP +SAMPLES\MSDN\TECHART\5053\CONCON.OCX +SAMPLES\MSDN\TECHART\5053\CONCON.VBG +SAMPLES\MSDN\TECHART\5053\RES +SAMPLES\MSDN\TECHART\5053\SRC +SAMPLES\MSDN\TECHART\5053\TST +SAMPLES\MSDN\TECHART\5053\RES\FIRST.BMP +SAMPLES\MSDN\TECHART\5053\RES\LAST.BMP +SAMPLES\MSDN\TECHART\5053\RES\NEXT.BMP +SAMPLES\MSDN\TECHART\5053\RES\PREV.BMP +SAMPLES\MSDN\TECHART\5053\SRC\BANK.CTL +SAMPLES\MSDN\TECHART\5053\SRC\BANK.CTX +SAMPLES\MSDN\TECHART\5053\SRC\BANKEX.CTL +SAMPLES\MSDN\TECHART\5053\SRC\BANKEX.CTX +SAMPLES\MSDN\TECHART\5053\SRC\CONCON.VBP +SAMPLES\MSDN\TECHART\5053\SRC\LENDER.CTL +SAMPLES\MSDN\TECHART\5053\SRC\PATRON.CTL +SAMPLES\MSDN\TECHART\5053\TST\TEST.FRM +SAMPLES\MSDN\TECHART\5053\TST\TEST.VBP +SAMPLES\MSDN\TECHART\5053\TST\TESTEX.FRM +SAMPLES\MSDN\TECHART\5053\TST\TESTEX.VBP +SAMPLES\MSDN\TECHART\5054\CPRDURL.H +SAMPLES\MSDN\TECHART\5054\DLLDATA.C +SAMPLES\MSDN\TECHART\5054\RDURL.IDL +SAMPLES\MSDN\TECHART\5054\RDURL.OPT +SAMPLES\MSDN\TECHART\5054\RDURLPS.DEF +SAMPLES\MSDN\TECHART\5054\RDURLPS.MK +SAMPLES\MSDN\TECHART\5054\RDURL_I.C +SAMPLES\MSDN\TECHART\5054\RDURL_P.C +SAMPLES\MSDN\TECHART\5054\READURL.APS +SAMPLES\MSDN\TECHART\5054\READURL.CLW +SAMPLES\MSDN\TECHART\5054\READURL.CPP +SAMPLES\MSDN\TECHART\5054\READURL.DEF +SAMPLES\MSDN\TECHART\5054\READURL.DSP +SAMPLES\MSDN\TECHART\5054\READURL.DSW +SAMPLES\MSDN\TECHART\5054\READURL.H +SAMPLES\MSDN\TECHART\5054\READURL.OPT +SAMPLES\MSDN\TECHART\5054\READURL.RC +SAMPLES\MSDN\TECHART\5054\READURL.TLB +SAMPLES\MSDN\TECHART\5054\RESOURCE.H +SAMPLES\MSDN\TECHART\5054\STDAFX.CPP +SAMPLES\MSDN\TECHART\5054\STDAFX.H +SAMPLES\MSDN\TECHART\5054\URLRDR.CPP +SAMPLES\MSDN\TECHART\5054\URLRDR.H +SAMPLES\MSDN\TECHART\5054\URLRDR.RGS +SAMPLES\MSDN\TECHART\5054\VBURLRDR.BAS +SAMPLES\MSDN\TECHART\5054\VBURLRDR.CLS +SAMPLES\MSDN\TECHART\5054\VBURLRDR.FRM +SAMPLES\MSDN\TECHART\5054\VBURLRDR.VBP +SAMPLES\MSDN\TECHART\5054\VBURLRDR.VBW +SAMPLES\MSDN\TECHART\5055\README.TXT +SAMPLES\MSDN\TECHART\5055\SVC +SAMPLES\MSDN\TECHART\5055\SVCVB.DLL +SAMPLES\MSDN\TECHART\5055\TST +SAMPLES\MSDN\TECHART\5055\SVC\CSVC.CLS +SAMPLES\MSDN\TECHART\5055\SVC\CSVCADM.CLS +SAMPLES\MSDN\TECHART\5055\SVC\SVCVB.BAS +SAMPLES\MSDN\TECHART\5055\SVC\SVCVB.VBP +SAMPLES\MSDN\TECHART\5055\TST\FRMMAIN.FRM +SAMPLES\MSDN\TECHART\5055\TST\FRMMAIN.FRX +SAMPLES\MSDN\TECHART\5055\TST\TEST.BAS +SAMPLES\MSDN\TECHART\5055\TST\TEST.VBP +SAMPLES\MSDN\TECHART\5058\CAPS +SAMPLES\MSDN\TECHART\5058\CONV +SAMPLES\MSDN\TECHART\5058\CAPS\CAPS.CPP +SAMPLES\MSDN\TECHART\5058\CAPS\CAPS.DSP +SAMPLES\MSDN\TECHART\5058\CAPS\CAPS.DSW +SAMPLES\MSDN\TECHART\5058\CAPS\RELEASE +SAMPLES\MSDN\TECHART\5058\CAPS\RELEASE\CAPS.EXE +SAMPLES\MSDN\TECHART\5058\CONV\CONV.CPP +SAMPLES\MSDN\TECHART\5058\CONV\CONV.DSP +SAMPLES\MSDN\TECHART\5058\CONV\CONV.DSW +SAMPLES\MSDN\TECHART\5058\CONV\RELEASE +SAMPLES\MSDN\TECHART\5058\CONV\RELEASE\CONV.EXE +SAMPLES\MSDN\TECHART\5059\IMPORT.TXT +SAMPLES\MSDN\TECHART\5059\MAKEFILE +SAMPLES\MSDN\TECHART\5059\PDHFNS.C +SAMPLES\MSDN\TECHART\5059\PDHRES.RC +SAMPLES\MSDN\TECHART\5059\PDHTEST.EXE +SAMPLES\MSDN\TECHART\5059\PDHTEST.H +SAMPLES\MSDN\TECHART\5059\README.TXT +SAMPLES\MSDN\TECHART\5059\RESOURCE.H +SAMPLES\MSDN\TECHART\5059\WINDOW.C +SAMPLES\MSDN\TECHART\5140\CHOOSER.CPP +SAMPLES\MSDN\TECHART\5140\CHOOSER.H +SAMPLES\MSDN\TECHART\5140\CSTM1DLG.CPP +SAMPLES\MSDN\TECHART\5140\CSTM1DLG.H +SAMPLES\MSDN\TECHART\5140\DEBUG.CPP +SAMPLES\MSDN\TECHART\5140\DEBUG.H +SAMPLES\MSDN\TECHART\5140\HLP +SAMPLES\MSDN\TECHART\5140\MAKEHELP.BAT +SAMPLES\MSDN\TECHART\5140\NOTES.TXT +SAMPLES\MSDN\TECHART\5140\ONEWNDWZ.CPP +SAMPLES\MSDN\TECHART\5140\ONEWNDWZ.DSP +SAMPLES\MSDN\TECHART\5140\ONEWNDWZ.DSW +SAMPLES\MSDN\TECHART\5140\ONEWNDWZ.H +SAMPLES\MSDN\TECHART\5140\ONEWNDWZ.HLP +SAMPLES\MSDN\TECHART\5140\ONEWNDWZ.HPJ +SAMPLES\MSDN\TECHART\5140\ONEWNDWZ.RC +SAMPLES\MSDN\TECHART\5140\ONEWNDWZAW.CPP +SAMPLES\MSDN\TECHART\5140\ONEWNDWZAW.H +SAMPLES\MSDN\TECHART\5140\README.TXT +SAMPLES\MSDN\TECHART\5140\RELEASE +SAMPLES\MSDN\TECHART\5140\RES +SAMPLES\MSDN\TECHART\5140\RESOURCE.H +SAMPLES\MSDN\TECHART\5140\STDAFX.CPP +SAMPLES\MSDN\TECHART\5140\STDAFX.H +SAMPLES\MSDN\TECHART\5140\TEMPLATE +SAMPLES\MSDN\TECHART\5140\HLP\ONEWNDWZ.HM +SAMPLES\MSDN\TECHART\5140\RELEASE\ONEWNDWZ.AWX +SAMPLES\MSDN\TECHART\5140\RELEASE\ONEWNDWZ.HLP +SAMPLES\MSDN\TECHART\5140\RES\ONEWNDWZ.ICO +SAMPLES\MSDN\TECHART\5140\TEMPLATE\CONFIRM.INF +SAMPLES\MSDN\TECHART\5140\TEMPLATE\MAINFRM.CPP +SAMPLES\MSDN\TECHART\5140\TEMPLATE\MAINFRM.H +SAMPLES\MSDN\TECHART\5140\TEMPLATE\NEWPROJ.INF +SAMPLES\MSDN\TECHART\5140\TEMPLATE\RESOURCE.H +SAMPLES\MSDN\TECHART\5140\TEMPLATE\STDAFX.CPP +SAMPLES\MSDN\TECHART\5140\TEMPLATE\STDAFX.H +SAMPLES\MSDN\TECHART\5140\TEMPLATE\TBASIC.CPP +SAMPLES\MSDN\TECHART\5140\TEMPLATE\TBASIC.H +SAMPLES\MSDN\TECHART\5140\TEMPLATE\TBASIC.ICO +SAMPLES\MSDN\TECHART\5140\TEMPLATE\TBASIC.RC +SAMPLES\MSDN\TECHART\5140\TEMPLATE\TBASIC.RC2 +SAMPLES\MSDN\TECHART\5141\BACK.BMP +SAMPLES\MSDN\TECHART\5141\BITMAP1.BMP +SAMPLES\MSDN\TECHART\5141\FDO.BMP +SAMPLES\MSDN\TECHART\5141\IE.BMP +SAMPLES\MSDN\TECHART\5141\IM.BMP +SAMPLES\MSDN\TECHART\5141\MSDN.BMP +SAMPLES\MSDN\TECHART\5141\MSFT.BMP +SAMPLES\MSDN\TECHART\5141\REBAR.BMP +SAMPLES\MSDN\TECHART\5141\REBAR.C +SAMPLES\MSDN\TECHART\5141\REBAR.EXE +SAMPLES\MSDN\TECHART\5141\REBAR.H +SAMPLES\MSDN\TECHART\5141\REBAR.ICO +SAMPLES\MSDN\TECHART\5141\REBAR.MAK +SAMPLES\MSDN\TECHART\5141\REBAR.MDP +SAMPLES\MSDN\TECHART\5141\REBAR.RC +SAMPLES\MSDN\TECHART\5141\RESOURCE.H +SAMPLES\MSDN\TECHART\5141\SB.BMP +SAMPLES\MSDN\TECHART\5141\TOOLBAR.BMP +SAMPLES\MSDN\TECHART\5141\WIN32.BMP +SAMPLES\MSDN\TECHART\5142\CLIENT +SAMPLES\MSDN\TECHART\5142\SERVER +SAMPLES\MSDN\TECHART\5142\CLIENT\FSCLIENT.VBG +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC +SAMPLES\MSDN\TECHART\5142\CLIENT\TST +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC\CADMIN.CLS +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC\CFORUM.CLS +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC\CFSEAT.CLS +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC\CMSG.CLS +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC\CSEAT.CLS +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC\FSCLIENT.BAS +SAMPLES\MSDN\TECHART\5142\CLIENT\SRC\FSCLIENT.VBP +SAMPLES\MSDN\TECHART\5142\CLIENT\TST\TEST.FRM +SAMPLES\MSDN\TECHART\5142\CLIENT\TST\TEST.VBP +SAMPLES\MSDN\TECHART\5142\SERVER\ADMIN +SAMPLES\MSDN\TECHART\5142\SERVER\FORUM +SAMPLES\MSDN\TECHART\5142\SERVER\POOL +SAMPLES\MSDN\TECHART\5142\SERVER\ADMIN\SRC +SAMPLES\MSDN\TECHART\5142\SERVER\ADMIN\SRC\CADMIN.CLS +SAMPLES\MSDN\TECHART\5142\SERVER\ADMIN\SRC\FSADMIN.BAS +SAMPLES\MSDN\TECHART\5142\SERVER\ADMIN\SRC\FSADMIN.VBP +SAMPLES\MSDN\TECHART\5142\SERVER\FORUM\SRC +SAMPLES\MSDN\TECHART\5142\SERVER\FORUM\SRC\CFORUM.CLS +SAMPLES\MSDN\TECHART\5142\SERVER\FORUM\SRC\CMSG.CLS +SAMPLES\MSDN\TECHART\5142\SERVER\FORUM\SRC\CSEAT.CLS +SAMPLES\MSDN\TECHART\5142\SERVER\FORUM\SRC\FSFORUM.BAS +SAMPLES\MSDN\TECHART\5142\SERVER\FORUM\SRC\FSFORUM.VBP +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\FSPOOL.EXE +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\FSPOOL.TLB +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\TST +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\CPOOL.CPP +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\CPOOL.H +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\DLLDATA.C +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\FORUMP~2.CPP +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\FORUMP~2.DSP +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\FORUMP~2.DSW +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\FORUMP~2.H +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\FORUMP~2.IDL +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\FORUMP~2.RC +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\FORUMP~2.RGS +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\POOL.RGS +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\RESOURCE.H +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\STDAFX.CPP +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\SRC\STDAFX.H +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\TST\TEST.FRM +SAMPLES\MSDN\TECHART\5142\SERVER\POOL\TST\TEST.VBP +SAMPLES\MSDN\TECHART\5143\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\5143\MAKEFILE +SAMPLES\MSDN\TECHART\5143\PDEBUG.C +SAMPLES\MSDN\TECHART\5143\PEFILE.C +SAMPLES\MSDN\TECHART\5143\PEFILE.DEF +SAMPLES\MSDN\TECHART\5143\PEFILE.H +SAMPLES\MSDN\TECHART\5143\PEFILE.RC +SAMPLES\MSDN\TECHART\5143\PROBE.C +SAMPLES\MSDN\TECHART\5143\PROBE.DEF +SAMPLES\MSDN\TECHART\5143\PROBE.RC +SAMPLES\MSDN\TECHART\5143\PROCSTAT.ICO +SAMPLES\MSDN\TECHART\5143\PSTAT.C +SAMPLES\MSDN\TECHART\5143\PVIEW.C +SAMPLES\MSDN\TECHART\5143\PWALK.C +SAMPLES\MSDN\TECHART\5143\PWALK.H +SAMPLES\MSDN\TECHART\5143\PWALK.ICO +SAMPLES\MSDN\TECHART\5143\PWALK.RC +SAMPLES\MSDN\TECHART\5143\PWALKIO.C +SAMPLES\MSDN\TECHART\5143\SYSSTAT.ICO +SAMPLES\MSDN\TECHART\5146\IKCNTRLS.CAB +SAMPLES\MSDN\TECHART\5147\WIZARD.BAS +SAMPLES\MSDN\TECHART\5147\WIZFORM.FRM +SAMPLES\MSDN\TECHART\5147\WIZFORM.FRX +SAMPLES\MSDN\TECHART\5148\ADDIN.BAS +SAMPLES\MSDN\TECHART\5148\AGENTINI +SAMPLES\MSDN\TECHART\5148\CONNECT.CLS +SAMPLES\MSDN\TECHART\5148\EXPERTAGENT.VBP +SAMPLES\MSDN\TECHART\5148\EXPERTAGENT.VBW +SAMPLES\MSDN\TECHART\5148\EXPERT~1.EXE +SAMPLES\MSDN\TECHART\5148\FRMADDIN.FRM +SAMPLES\MSDN\TECHART\5148\FRMADDIN.FRX +SAMPLES\MSDN\TECHART\5148\FRMPATTERNFINDER.FRM +SAMPLES\MSDN\TECHART\5148\FRMPATTERNFINDER.FRX +SAMPLES\MSDN\TECHART\5148\QA +SAMPLES\MSDN\TECHART\5148\AGENTINI\ADDIN.BAS +SAMPLES\MSDN\TECHART\5148\AGENTINI\AGENTINI.EXE +SAMPLES\MSDN\TECHART\5148\AGENTINI\AGENTINI.VBP +SAMPLES\MSDN\TECHART\5148\AGENTINI\AGENTINI.VBW +SAMPLES\MSDN\TECHART\5148\QA\MAINMOD.BAS +SAMPLES\MSDN\TECHART\5148\QA\OPTIONS.FRM +SAMPLES\MSDN\TECHART\5148\QA\OPTIONS.FRX +SAMPLES\MSDN\TECHART\5148\QA\TESTXAGENT.VBP +SAMPLES\MSDN\TECHART\5148\QA\TESTXAGENT.VBW +SAMPLES\MSDN\TECHART\5149\DEFAULT.ASP +SAMPLES\MSDN\TECHART\5149\DEFAULT.HTM +SAMPLES\MSDN\TECHART\5149\EMAIL.ASP +SAMPLES\MSDN\TECHART\5149\EXAMPLE.ASP +SAMPLES\MSDN\TECHART\5149\EXCLAIM166.GIF +SAMPLES\MSDN\TECHART\5149\GLOBAL.ASA +SAMPLES\MSDN\TECHART\5149\LOGON.INC +SAMPLES\MSDN\TECHART\5149\MESSAGE.ASP +SAMPLES\MSDN\TECHART\5149\OUTLOOK.GIF +SAMPLES\MSDN\TECHART\5149\PHONE164.GIF +SAMPLES\MSDN\TECHART\5149\POSTHELP.ASP +SAMPLES\MSDN\TECHART\5149\README1ST.TXT +SAMPLES\MSDN\TECHART\5149\RENDER.ASP +SAMPLES\MSDN\TECHART\5149\RESOLVED.ASP +SAMPLES\MSDN\TECHART\5149\SMSDATA.MDB +SAMPLES\MSDN\TECHART\5149\TECHDESK.FDM +SAMPLES\MSDN\TECHART\5149\TECHDESK.PST +SAMPLES\MSDN\TECHART\5150\INTGENDB.MDB +SAMPLES\MSDN\TECHART\5151\CLIENT +SAMPLES\MSDN\TECHART\5151\DB +SAMPLES\MSDN\TECHART\5151\FOO.TXT +SAMPLES\MSDN\TECHART\5151\SERVER +SAMPLES\MSDN\TECHART\5151\CLIENT\RES +SAMPLES\MSDN\TECHART\5151\CLIENT\SRC +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\DEL +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\GET +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\INSERT +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\TABLE +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\UPDATE +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\DEL\DELETE.HDR +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\GET\GET.HDR +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\INSERT\INSERT1.DTL +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\TABLE\TB.FTR +SAMPLES\MSDN\TECHART\5151\CLIENT\RES\UPDATE\UPDATE1.DTL +SAMPLES\MSDN\TECHART\5151\CLIENT\SRC\FRMMAIN.FRM +SAMPLES\MSDN\TECHART\5151\DB\INTGEN.MDB +SAMPLES\MSDN\TECHART\5151\SERVER\GENENG.DLL +SAMPLES\MSDN\TECHART\5151\SERVER\SRC +SAMPLES\MSDN\TECHART\5151\SERVER\SRC\BASGEN.BAS +SAMPLES\MSDN\TECHART\5153\ACTMSG.HTM +SAMPLES\MSDN\TECHART\5153\ACTMSG.TXT +SAMPLES\MSDN\TECHART\5153\ACTMSG.VBP +SAMPLES\MSDN\TECHART\5153\MESSAGE.FRM +SAMPLES\MSDN\TECHART\5160\VISUAL~1 +SAMPLES\MSDN\TECHART\5160\VISUAL~2 +SAMPLES\MSDN\TECHART\5160\VISUAL~1\README.TXT +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\ASYCFILT.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\BILLING.EX_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\BUSINESSRULES.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\COMCAT.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\CREDITCARD.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\CTL3D32.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\MSVBVM50.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\OLEAUT32.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\OLEPRO32.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\SETUP.EXE +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\SETUP.LST +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\SETUP1.EX_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\ST5UNST.EX_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\STDOLE2.TL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SETUP\VB5STKIT.DL_ +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\BUSINE~1 +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\CREDIT~1 +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\VBAPP +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\BUSINE~1\ADDRESS.CLS +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\BUSINE~1\BUSINESSRULES.DLL +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\BUSINE~1\BUSINESSRULES.EXP +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\BUSINE~1\BUSINESSRULES.LIB +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\BUSINE~1\BUSINESSRULES.VBP +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\BUSINE~1\BUSINESSRULES.VBW +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\CREDIT~1\CREDITCARD.DLL +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\CREDIT~1\CREDITCARD.EXP +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\CREDIT~1\CREDITCARD.LIB +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\CREDIT~1\CREDITCARD.VBP +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\CREDIT~1\CREDITCARD.VBW +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\CREDIT~1\TRANSACTION.CLS +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\VBAPP\BILLING.EXE +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\VBAPP\BILLING.VBP +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\VBAPP\BILLING.VBW +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\VBAPP\BILLING_INFORMATION.FRM +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\VBAPP\BILLING_INFORMATION.FRX +SAMPLES\MSDN\TECHART\5160\VISUAL~1\SOURCE\VBAPP\GENERAL.BAS +SAMPLES\MSDN\TECHART\5160\VISUAL~2\CONTENT +SAMPLES\MSDN\TECHART\5160\VISUAL~2\README.TXT +SAMPLES\MSDN\TECHART\5160\VISUAL~2\SERVER~1 +SAMPLES\MSDN\TECHART\5160\VISUAL~2\CONTENT\BILLING_INFORMATION.HTM +SAMPLES\MSDN\TECHART\5160\VISUAL~2\CONTENT\PROCESS.ASP +SAMPLES\MSDN\TECHART\5160\VISUAL~2\CONTENT\SHIPPING.GIF +SAMPLES\MSDN\TECHART\5160\VISUAL~2\SERVER~1\BUSINESSRULES.DLL +SAMPLES\MSDN\TECHART\5160\VISUAL~2\SERVER~1\CREDITCARD.DLL +SAMPLES\MSDN\TECHART\5160\VISUAL~2\SERVER~1\REG.BAT +SAMPLES\MSDN\TECHART\5160\VISUAL~2\SERVER~1\REGSVR32.EXE +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL +SAMPLES\MSDN\TECHART\5161\BINARIES +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2 +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTER.CPP +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTER.H +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.APS +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.CLW +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.CPP +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.DEF +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.DSP +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.DSW +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.H +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.ODL +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.OPT +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTERDLL.RC +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\BASELEVELGETTEREXPORT.H +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\ILEVELGETTER.H +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\RES +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\RESOURCE.H +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\STDAFX.CPP +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\STDAFX.H +SAMPLES\MSDN\TECHART\5161\BASELEVELGETTERDLL\RES\BASELEVELGETTERDLL.RC2 +SAMPLES\MSDN\TECHART\5161\BINARIES\GASTANKLEVELGETTER.DLL +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\DLLDATA.C +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\DLLDATAX.C +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\DLLDATAX.H +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.APS +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.CLW +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.CPP +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.DEF +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.DSP +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.DSW +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.H +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.IDL +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.OPT +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.RC +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER.TLB +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTERPS.DEF +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTERPS.MK +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER_I.C +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\FISHTANKLEVELGETTER_P.C +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\LEVELGETTER.CPP +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\LEVELGETTER.H +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\LEVELGETTER.RGS +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\RESOURCE.H +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\STDAFX.CPP +SAMPLES\MSDN\TECHART\5161\FISHTANKLEVELGETTER\STDAFX.H +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTER.CPP +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTER.H +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.APS +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.CLW +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.CPP +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.DEF +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.DSP +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.DSW +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.H +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.ODL +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.OPT +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\HOTTUBLEVELGETTERDLL.RC +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\RES +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\RESOURCE.H +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\STDAFX.CPP +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\STDAFX.H +SAMPLES\MSDN\TECHART\5161\HOTTUBLEVELGETTERDLL\RES\HOTTUBLEVELGETTERDLL.RC2 +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\DLGPROXY.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\DLGPROXY.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\FISHTANKLEVELGETTER.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.APS +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.CLW +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.DSP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.DSW +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.ODL +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.OPT +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.RC +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWER.REG +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWERDLG.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\LEVELVIEWERDLG.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\RES +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\RESOURCE.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\STDAFX.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\STDAFX.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\RES\LEVELVIEWER.ICO +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER\RES\LEVELVIEWER.RC2 +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\DLGPROXY.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\DLGPROXY.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\FISHTANKLEVELGETTER.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.APS +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.CLW +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.DSP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.DSW +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.ODL +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.OPT +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.RC +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWER.REG +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWERDLG.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\LEVELVIEWERDLG.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\RES +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\RESOURCE.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\STDAFX.CPP +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\STDAFX.H +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\RES\LEVELVIEWER.ICO +SAMPLES\MSDN\TECHART\5161\LEVELVIEWER2\RES\LEVELVIEWER.RC2 +SAMPLES\MSDN\TECHART\5162\HANDTECH +SAMPLES\MSDN\TECHART\5162\README.TXT +SAMPLES\MSDN\TECHART\5162\WINCEHTM +SAMPLES\MSDN\TECHART\5162\HANDTECH\1X1.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\FIRST.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\GLOBAL.ASA +SAMPLES\MSDN\TECHART\5162\HANDTECH\HANDTECH.ASP +SAMPLES\MSDN\TECHART\5162\HANDTECH\HDASPVB.DLL +SAMPLES\MSDN\TECHART\5162\HANDTECH\HDASPVB.EXP +SAMPLES\MSDN\TECHART\5162\HANDTECH\HDASPVB.LIB +SAMPLES\MSDN\TECHART\5162\HANDTECH\HIGH.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\LAST.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\LOW.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\NEXT.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\PREV.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\PROG.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\REQLST.TPL +SAMPLES\MSDN\TECHART\5162\HANDTECH\RES.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\UN.BMP +SAMPLES\MSDN\TECHART\5162\HANDTECH\WHITE.BMP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\1X1.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\FIRST.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\HIGH.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\LAST.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\LOW.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\NEXT.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\PREV.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\PROG.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\REQDET.HTM +SAMPLES\MSDN\TECHART\5162\WINCEHTM\REQS.HTM +SAMPLES\MSDN\TECHART\5162\WINCEHTM\RES.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\STDTXT.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\STDTXT.HTM +SAMPLES\MSDN\TECHART\5162\WINCEHTM\STDVOC.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\STDVOC.HTM +SAMPLES\MSDN\TECHART\5162\WINCEHTM\TXTRSP.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\TXTRSP.HTM +SAMPLES\MSDN\TECHART\5162\WINCEHTM\UN.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\VOCTXT.2BP +SAMPLES\MSDN\TECHART\5162\WINCEHTM\VOCTXT.HTM +SAMPLES\MSDN\TECHART\5162\WINCEHTM\WHITE.2BP +SAMPLES\MSDN\TECHART\5163\HANDTECH +SAMPLES\MSDN\TECHART\5163\README.TXT +SAMPLES\MSDN\TECHART\5163\WINCEHTM +SAMPLES\MSDN\TECHART\5163\HANDTECH\1X1.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\FIRST.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\GLOBAL.ASA +SAMPLES\MSDN\TECHART\5163\HANDTECH\HANDTECH.ASP +SAMPLES\MSDN\TECHART\5163\HANDTECH\HDASPVB.DLL +SAMPLES\MSDN\TECHART\5163\HANDTECH\HDASPVB.EXP +SAMPLES\MSDN\TECHART\5163\HANDTECH\HDASPVB.LIB +SAMPLES\MSDN\TECHART\5163\HANDTECH\HIGH.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\LAST.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\LOW.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\NEXT.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\PREV.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\PROG.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\REQLST.TPL +SAMPLES\MSDN\TECHART\5163\HANDTECH\RES.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\UN.BMP +SAMPLES\MSDN\TECHART\5163\HANDTECH\WHITE.BMP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\1X1.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\FIRST.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\HIGH.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\LAST.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\LOW.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\NEXT.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\PREV.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\PROG.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\REQDET.HTM +SAMPLES\MSDN\TECHART\5163\WINCEHTM\REQS.HTM +SAMPLES\MSDN\TECHART\5163\WINCEHTM\RES.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\STDTXT.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\STDTXT.HTM +SAMPLES\MSDN\TECHART\5163\WINCEHTM\STDVOC.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\STDVOC.HTM +SAMPLES\MSDN\TECHART\5163\WINCEHTM\TXTRSP.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\TXTRSP.HTM +SAMPLES\MSDN\TECHART\5163\WINCEHTM\UN.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\VOCTXT.2BP +SAMPLES\MSDN\TECHART\5163\WINCEHTM\VOCTXT.HTM +SAMPLES\MSDN\TECHART\5163\WINCEHTM\WHITE.2BP +SAMPLES\MSDN\TECHART\5164\APPROVE.ASP +SAMPLES\MSDN\TECHART\5164\APPROVE1.ASP +SAMPLES\MSDN\TECHART\5164\CHECK.ASP +SAMPLES\MSDN\TECHART\5164\CHECKSTA.ASP +SAMPLES\MSDN\TECHART\5164\DEFAULT.HTM +SAMPLES\MSDN\TECHART\5164\EXPENSE.ASP +SAMPLES\MSDN\TECHART\5164\EXPENSE.TXT +SAMPLES\MSDN\TECHART\5164\FINALAPP.ASP +SAMPLES\MSDN\TECHART\5164\GLOBAL.ASA +SAMPLES\MSDN\TECHART\5164\GREENLIG.GIF +SAMPLES\MSDN\TECHART\5164\HISTORY1.GIF +SAMPLES\MSDN\TECHART\5164\LOGOFF.ASP +SAMPLES\MSDN\TECHART\5164\LOGON.ASP +SAMPLES\MSDN\TECHART\5164\LOGON.INC +SAMPLES\MSDN\TECHART\5164\MAIL6C.GIF +SAMPLES\MSDN\TECHART\5164\MICROSOF.GIF +SAMPLES\MSDN\TECHART\5164\README.TXT +SAMPLES\MSDN\TECHART\5164\STOPSML.GIF +SAMPLES\MSDN\TECHART\5164\SUBMIT.ASP +SAMPLES\MSDN\TECHART\5164\TARGET.GIF +SAMPLES\MSDN\TECHART\5164\TLIGHT.GIF +SAMPLES\MSDN\TECHART\5164\YELLOWLI.GIF +SAMPLES\MSDN\TECHART\5165\BASGLOB.BAS +SAMPLES\MSDN\TECHART\5165\PACKAGE.VBG +SAMPLES\MSDN\TECHART\5165\SERVERS +SAMPLES\MSDN\TECHART\5165\SERVERS\BASGLOB.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB +SAMPLES\MSDN\TECHART\5165\SERVERS\HDSERVER +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\BASCEXEC.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\CEXEC.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\DBEXEC.RC +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\DBEXEC.RES +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\DBEXEC.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\DBEXEC~1.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\MKRES.DSP +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\RESOURCE.H +SAMPLES\MSDN\TECHART\5165\SERVERS\DBEXEC\SRC\RES_H.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN\SRC +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN\SRC\BASCCLI.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN\SRC\CADMIN.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN\SRC\CSYSPARM.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN\SRC\CSYSPTYP.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN\SRC\HDADMIN.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDADMIN\SRC\HDADMI~1.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\BASCCLI.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CADMIN.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CLOCAT.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CPRIOR.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CREQ.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CREQDET.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CREQDTYP.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CREQSTAT.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CSKILL.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CSTDRESP.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CSYSPARM.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CSYSPTYP.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CTECH.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\CUSER.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\HDCLIENT.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDCLIENT\SRC\HDCLIE~1.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\BASHDEXT.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\HDEXT.APS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\HDEXT.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\HDEXT.RC +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\HDEXT.RES +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\HDEXTLIB.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\HDEXTL~1.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\MKHDEXT.DSP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\RESOURCE.H +SAMPLES\MSDN\TECHART\5165\SERVERS\HDEXTLIB\SRC\RES_H.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDSERVER\SRC +SAMPLES\MSDN\TECHART\5165\SERVERS\HDSERVER\SRC\BASCHDS.BAS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDSERVER\SRC\CTRANS.CLS +SAMPLES\MSDN\TECHART\5165\SERVERS\HDSERVER\SRC\HDSERVER.VBP +SAMPLES\MSDN\TECHART\5165\SERVERS\HDSERVER\SRC\HDSERV~1.VBP +SAMPLES\MSDN\TECHART\5169\ACTIVEXSQL.CTL +SAMPLES\MSDN\TECHART\5169\ACTIVEXSQL.CTX +SAMPLES\MSDN\TECHART\5169\ACTIVEXSQL.OCA +SAMPLES\MSDN\TECHART\5169\ACTIVEXSQL.OCX +SAMPLES\MSDN\TECHART\5169\ACTIVEXSQL.VBP +SAMPLES\MSDN\TECHART\5169\ACTIVEXSQL.VBW +SAMPLES\MSDN\TECHART\5169\ADDDAT~1.FRM +SAMPLES\MSDN\TECHART\5169\ADDDAT~1.FRX +SAMPLES\MSDN\TECHART\5169\ADDDEV~1.FRM +SAMPLES\MSDN\TECHART\5169\ADDDEV~1.FRX +SAMPLES\MSDN\TECHART\5169\PROPPAGEACTIVEXSQL.PAG +SAMPLES\MSDN\TECHART\5169\PUBLICVARIABLES.BAS +SAMPLES\MSDN\TECHART\5171\BUILD.BAT +SAMPLES\MSDN\TECHART\5171\HDDATA.SQL +SAMPLES\MSDN\TECHART\5171\HELPDESK.SQL +SAMPLES\MSDN\TECHART\5172\OUTPUTPARA.FRM +SAMPLES\MSDN\TECHART\5172\OUTPUTPARA.VBP +SAMPLES\MSDN\TECHART\5173\CLIENTS +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\DOMAINS.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\DOMAIN_L.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\DOMAIN_P.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\DOMAIN_S.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMABOUT.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMABOUT.FRX +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMBROWS.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMBROWS.FRX +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMCNTXT.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMDMMNT.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMLOGIN.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMMAIN.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMMAIN.FRX +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMOPT.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMREQDT.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMREQDT.FRX +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMSPLSH.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMSPLSH.FRX +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMSYSPP.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMTCMNT.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\FRMTCREQ.FRM +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\HDEXPLR.APS +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\HDEXPLR.RC +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\HDEXPLR.RES +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\HDEXPLR.VBP +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\HDEXPL~1.VBP +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\HELPDESK.BMP +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\HELPDESK.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\ICO00001.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\ICON1.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\LOCATION.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\MKHDXRES.DSP +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\MODULE1.BAS +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\PRIORITY.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\README.TXT +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\REQDETTY.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\RESOURCE.H +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\RES_H.BAS +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\SKILL.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\STATUS.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\STDTEXTR.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\STDVOCRE.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\SYSPARM.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\SYSPARMT.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\TECHNICI.ICO +SAMPLES\MSDN\TECHART\5173\CLIENTS\VB\HDEXPLR\SRC\TECHSTAT.ICO +SAMPLES\MSDN\TECHART\5174\ALERT +SAMPLES\MSDN\TECHART\5174\MONITOR.EXE +SAMPLES\MSDN\TECHART\5174\SETUPINI +SAMPLES\MSDN\TECHART\5174\ALERT\ALERT_DEMO.DOC +SAMPLES\MSDN\TECHART\5174\ALERT\CLEANUP.SQL +SAMPLES\MSDN\TECHART\5174\ALERT\SEV17_ALERT_TASK.SQL +SAMPLES\MSDN\TECHART\5174\ALERT\SEV17_TEST.SQL +SAMPLES\MSDN\TECHART\5174\SETUPINI\ACCOUNT.DAT +SAMPLES\MSDN\TECHART\5174\SETUPINI\BCP.ERR.TXT +SAMPLES\MSDN\TECHART\5174\SETUPINI\BCP.LOG +SAMPLES\MSDN\TECHART\5174\SETUPINI\BRANCH.DAT +SAMPLES\MSDN\TECHART\5174\SETUPINI\CONGRATS.FRM +SAMPLES\MSDN\TECHART\5174\SETUPINI\DBPARAMS.FRM +SAMPLES\MSDN\TECHART\5174\SETUPINI\DBPARAMS.FRX +SAMPLES\MSDN\TECHART\5174\SETUPINI\DEMOGUIDE.DOC +SAMPLES\MSDN\TECHART\5174\SETUPINI\FUNCTIONS.BAS +SAMPLES\MSDN\TECHART\5174\SETUPINI\GLOBALS.BAS +SAMPLES\MSDN\TECHART\5174\SETUPINI\RESTORE.SQL +SAMPLES\MSDN\TECHART\5174\SETUPINI\SETUP.INI +SAMPLES\MSDN\TECHART\5174\SETUPINI\SETUPINI.EXE +SAMPLES\MSDN\TECHART\5174\SETUPINI\SETUPINI.VBP +SAMPLES\MSDN\TECHART\5174\SETUPINI\SETUPINI.VBW +SAMPLES\MSDN\TECHART\5174\SETUPINI\STATUS.FRM +SAMPLES\MSDN\TECHART\5174\SETUPINI\STATUS.FRX +SAMPLES\MSDN\TECHART\5175\CLIENTS +SAMPLES\MSDN\TECHART\5175\SERVERS +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1 +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\DETLST.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\DETLST~1.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\LIFERI~1.GIF +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\REQDET.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\REQDET~1.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\REQLST.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\REQLST~1.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\RESP.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\TECH.HTM +SAMPLES\MSDN\TECHART\5175\CLIENTS\DHTML\TECHNI~1\SRC\TECH_N~1.HTM +SAMPLES\MSDN\TECHART\5175\SERVERS\BASGLOB.BAS +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\CDETUI.CLS +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\DHTTECH.BAS +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\DHTTECH.VBP +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\DHTTEC~1.VBP +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\SIMPDATA.TLB +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\TDETDSO.CLS +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\TDETOSP.CLS +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\TREQDSO.CLS +SAMPLES\MSDN\TECHART\5175\SERVERS\DHTTECH\SRC\TREQOSP.CLS +SAMPLES\MSDN\TECHART\5176\CLIENTS +SAMPLES\MSDN\TECHART\5176\SERVERS +SAMPLES\MSDN\TECHART\5176\CLIENTS\DHTML +SAMPLES\MSDN\TECHART\5176\CLIENTS\DHTML\MONITOR +SAMPLES\MSDN\TECHART\5176\CLIENTS\DHTML\MONITOR\SRC +SAMPLES\MSDN\TECHART\5176\CLIENTS\DHTML\MONITOR\SRC\MONITOR.HTM +SAMPLES\MSDN\TECHART\5176\CLIENTS\DHTML\MONITOR\SRC\MONITO~1.HTM +SAMPLES\MSDN\TECHART\5176\CLIENTS\DHTML\MONITOR\SRC\TIMELINE.HTM +SAMPLES\MSDN\TECHART\5176\CLIENTS\DHTML\MONITOR\SRC\TIMELI~1.HTM +SAMPLES\MSDN\TECHART\5176\SERVERS\BASGLOB.BAS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONCLI +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONSVR +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONCLI\SRC +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONCLI\SRC\CMONITOR.CLS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONCLI\SRC\CTRACE.CLS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONCLI\SRC\HDMONCLI.BAS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONCLI\SRC\HDMONCLI.VBP +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONCLI\SRC\HDMONC~1.VBP +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT\SRC +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT\SRC\HDMONRPT.BAS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT\SRC\HDMONRPT.VBP +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT\SRC\HDMONR~1.VBP +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT\SRC\MREQDSO.CLS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT\SRC\MREQOSP.CLS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONRPT\SRC\SIMPDATA.TLB +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONSVR\SRC +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONSVR\SRC\CSUMETY.CLS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONSVR\SRC\HDMONSVR.VBP +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONSVR\SRC\HDMONS~1.VBP +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONSVR\SRC\MONSVR.BAS +SAMPLES\MSDN\TECHART\5176\SERVERS\HDMONSVR\SRC\SNAPSHOT.CLS +SAMPLES\MSDN\TECHART\5177\DATA.TAG +SAMPLES\MSDN\TECHART\5177\DATA1.CAB +SAMPLES\MSDN\TECHART\5177\LANG.DAT +SAMPLES\MSDN\TECHART\5177\LAYOUT.BIN +SAMPLES\MSDN\TECHART\5177\OS.DAT +SAMPLES\MSDN\TECHART\5177\SETUP.BMP +SAMPLES\MSDN\TECHART\5177\SETUP.EXE +SAMPLES\MSDN\TECHART\5177\SETUP.INI +SAMPLES\MSDN\TECHART\5177\SETUP.INS +SAMPLES\MSDN\TECHART\5177\SETUP.LID +SAMPLES\MSDN\TECHART\5177\_INST32I.EX_ +SAMPLES\MSDN\TECHART\5177\_ISDEL.EXE +SAMPLES\MSDN\TECHART\5177\_SETUP.DLL +SAMPLES\MSDN\TECHART\5177\_SYS1.CAB +SAMPLES\MSDN\TECHART\5177\_USER1.CAB +SAMPLES\MSDN\TECHART\5178\CLIENTS +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\ASGNOT~1.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\CLAIM.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\CLAIMED.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\COMMENCE.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\INPRG.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\NEW.BMP +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\OPEN.BMP +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\RECV.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\REFRESH.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\REQRES~1.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\RESCNF~1.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\RESOLVE.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\RESOLVED.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\SENT.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\SNDSTXT.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\SNDSVOC.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\SNDTXT.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\UNASSI~1.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\GRAPHICS\UNCLAIM.ICO +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\ABOUT.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\ABOUT.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\HDTECH.VBP +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\HDTECH~1.VBP +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\REQDET.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\REQDET.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\SPLASH.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\SPLASH.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\STDRESP.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\TECHMAIN.BAS +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\TECHREQ.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\TECHREQ.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDTECH\SRC\TEXTRESP.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\ABOUT.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\ABOUT.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\HDUSER.RC +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\HDUSER.RES +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\HDUSER.VBP +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\HDUSER~1.VBP +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\INSREQ.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\MKHDUSER.DSP +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\RESOURCE.H +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\RES_H.BAS +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\SPLASH.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\SPLASH.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\USERMAIN.BAS +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\USERREQ.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\USERREQ.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\USRRQDET.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\USRRQDET.FRX +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\USRTXTRQ.FRM +SAMPLES\MSDN\TECHART\5178\CLIENTS\VB\HDUSER\SRC\USRTXTRQ.FRX +SAMPLES\MSDN\TECHART\5179\COMMON.CPP +SAMPLES\MSDN\TECHART\5179\ORACOMMN.SQL +SAMPLES\MSDN\TECHART\5179\ORADATA.SQL +SAMPLES\MSDN\TECHART\5179\ORADEMO.CPP +SAMPLES\MSDN\TECHART\5179\ORAPROC.SQL +SAMPLES\MSDN\TECHART\5179\ORATABLE.SQL +SAMPLES\MSDN\TECHART\5179\ORAUSER.SQL +SAMPLES\MSDN\TECHART\5179\SSCOMMON.SQL +SAMPLES\MSDN\TECHART\5179\SSDATA.SQL +SAMPLES\MSDN\TECHART\5179\SSDEMO.CPP +SAMPLES\MSDN\TECHART\5179\SSDEMO1.CPP +SAMPLES\MSDN\TECHART\5179\SSDEMO2.CPP +SAMPLES\MSDN\TECHART\5179\SSPROC.SQL +SAMPLES\MSDN\TECHART\5179\SSTABLE.SQL +SAMPLES\MSDN\TECHART\5179\SSUSER.SQL +SAMPLES\MSDN\TECHART\5180\FILTDUMP.EXE +SAMPLES\MSDN\TECHART\5180\FILTREG.EXE +SAMPLES\MSDN\TECHART\5181\EXTCOUNTERS.CPP +SAMPLES\MSDN\TECHART\5181\EXTCOUNTERS.DEF +SAMPLES\MSDN\TECHART\5181\EXTCOUNTERS.DSP +SAMPLES\MSDN\TECHART\5181\EXTCOUNTERS.DSW +SAMPLES\MSDN\TECHART\5181\EXTCOUNTERS.H +SAMPLES\MSDN\TECHART\5181\EXTCOUNTERS.OPT +SAMPLES\MSDN\TECHART\5181\PERFIDS.C +SAMPLES\MSDN\TECHART\5181\PERFINTF.H +SAMPLES\MSDN\TECHART\5181\README.TXT +SAMPLES\MSDN\TECHART\5181\STDAFX.CPP +SAMPLES\MSDN\TECHART\5181\STDAFX.H +SAMPLES\MSDN\TECHART\5182\CFINCNTRS.RGS +SAMPLES\MSDN\TECHART\5182\COUNTERS.H +SAMPLES\MSDN\TECHART\5182\COUNTERS.INI +SAMPLES\MSDN\TECHART\5182\DLLDATA.C +SAMPLES\MSDN\TECHART\5182\FINCTRS.CPP +SAMPLES\MSDN\TECHART\5182\FINCTRS.H +SAMPLES\MSDN\TECHART\5182\FINSESSN.CPP +SAMPLES\MSDN\TECHART\5182\FINSESSN.H +SAMPLES\MSDN\TECHART\5182\FINSESSN.RGS +SAMPLES\MSDN\TECHART\5182\FINSRVR.APS +SAMPLES\MSDN\TECHART\5182\FINSRVR.CLW +SAMPLES\MSDN\TECHART\5182\FINSRVR.CPP +SAMPLES\MSDN\TECHART\5182\FINSRVR.DSP +SAMPLES\MSDN\TECHART\5182\FINSRVR.DSW +SAMPLES\MSDN\TECHART\5182\FINSRVR.H +SAMPLES\MSDN\TECHART\5182\FINSRVR.IDL +SAMPLES\MSDN\TECHART\5182\FINSRVR.OPT +SAMPLES\MSDN\TECHART\5182\FINSRVR.RC +SAMPLES\MSDN\TECHART\5182\FINSRVR.RGS +SAMPLES\MSDN\TECHART\5182\FINSRVR.TLB +SAMPLES\MSDN\TECHART\5182\FINSRVRPS.DEF +SAMPLES\MSDN\TECHART\5182\FINSRVRPS.MK +SAMPLES\MSDN\TECHART\5182\FINSRVR_I.C +SAMPLES\MSDN\TECHART\5182\FINSRVR_P.C +SAMPLES\MSDN\TECHART\5182\PERFCTRS.CPP +SAMPLES\MSDN\TECHART\5182\PERFCTRS.H +SAMPLES\MSDN\TECHART\5182\PERFCTRS.IDL +SAMPLES\MSDN\TECHART\5182\README.TXT +SAMPLES\MSDN\TECHART\5182\REGPCTRS.H +SAMPLES\MSDN\TECHART\5182\REGPCTRS_I.C +SAMPLES\MSDN\TECHART\5182\RESOURCE.H +SAMPLES\MSDN\TECHART\5182\STDAFX.CPP +SAMPLES\MSDN\TECHART\5182\STDAFX.H +SAMPLES\MSDN\TECHART\5183\DLLDATA.C +SAMPLES\MSDN\TECHART\5183\PERFIDS.C +SAMPLES\MSDN\TECHART\5183\PERFINTF.H +SAMPLES\MSDN\TECHART\5183\README.TXT +SAMPLES\MSDN\TECHART\5183\REGPCTRS.APS +SAMPLES\MSDN\TECHART\5183\REGPCTRS.CLW +SAMPLES\MSDN\TECHART\5183\REGPCTRS.CPP +SAMPLES\MSDN\TECHART\5183\REGPCTRS.DEF +SAMPLES\MSDN\TECHART\5183\REGPCTRS.DSP +SAMPLES\MSDN\TECHART\5183\REGPCTRS.DSW +SAMPLES\MSDN\TECHART\5183\REGPCTRS.H +SAMPLES\MSDN\TECHART\5183\REGPCTRS.IDL +SAMPLES\MSDN\TECHART\5183\REGPCTRS.OPT +SAMPLES\MSDN\TECHART\5183\REGPCTRS.RC +SAMPLES\MSDN\TECHART\5183\REGPCTRS.TLB +SAMPLES\MSDN\TECHART\5183\REGPCTRSPS.DEF +SAMPLES\MSDN\TECHART\5183\REGPCTRSPS.MK +SAMPLES\MSDN\TECHART\5183\REGPCTRS_I.C +SAMPLES\MSDN\TECHART\5183\REGPCTRS_P.C +SAMPLES\MSDN\TECHART\5183\REGPOBJ.CPP +SAMPLES\MSDN\TECHART\5183\REGPOBJ.H +SAMPLES\MSDN\TECHART\5183\REGPOBJ.RGS +SAMPLES\MSDN\TECHART\5183\RESOURCE.H +SAMPLES\MSDN\TECHART\5183\STDAFX.CPP +SAMPLES\MSDN\TECHART\5183\STDAFX.H +SAMPLES\MSDN\TECHART\5184\ALERT +SAMPLES\MSDN\TECHART\5184\MONITOR.EXE +SAMPLES\MSDN\TECHART\5184\SETUPINI +SAMPLES\MSDN\TECHART\5184\ALERT\ALERT_DEMO.DOC +SAMPLES\MSDN\TECHART\5184\ALERT\CLEANUP.SQL +SAMPLES\MSDN\TECHART\5184\ALERT\SEV17_ALERT_TASK.SQL +SAMPLES\MSDN\TECHART\5184\ALERT\SEV17_TEST.SQL +SAMPLES\MSDN\TECHART\5184\SETUPINI\ACCOUNT.DAT +SAMPLES\MSDN\TECHART\5184\SETUPINI\BCP.ERR +SAMPLES\MSDN\TECHART\5184\SETUPINI\BCP.LOG +SAMPLES\MSDN\TECHART\5184\SETUPINI\BRANCH.DAT +SAMPLES\MSDN\TECHART\5184\SETUPINI\CONGRATS.FRM +SAMPLES\MSDN\TECHART\5184\SETUPINI\DBPARAMS.FRM +SAMPLES\MSDN\TECHART\5184\SETUPINI\DBPARAMS.FRX +SAMPLES\MSDN\TECHART\5184\SETUPINI\DEMOGUIDE.DOC +SAMPLES\MSDN\TECHART\5184\SETUPINI\FUNCTIONS.BAS +SAMPLES\MSDN\TECHART\5184\SETUPINI\GLOBALS.BAS +SAMPLES\MSDN\TECHART\5184\SETUPINI\RESTORE.SQL +SAMPLES\MSDN\TECHART\5184\SETUPINI\SETUP.INI +SAMPLES\MSDN\TECHART\5184\SETUPINI\SETUPINI.EXE +SAMPLES\MSDN\TECHART\5184\SETUPINI\SETUPINI.VBP +SAMPLES\MSDN\TECHART\5184\SETUPINI\SETUPINI.VBW +SAMPLES\MSDN\TECHART\5184\SETUPINI\STATUS.FRM +SAMPLES\MSDN\TECHART\5184\SETUPINI\STATUS.FRX +SAMPLES\MSDN\TECHART\5185\OUTPUTPARA.FRM +SAMPLES\MSDN\TECHART\5185\OUTPUTPARA.VBP +SAMPLES\MSDN\TECHART\5186\BTRVAPP.C +SAMPLES\MSDN\TECHART\5186\MOREPUBS.SQL +SAMPLES\MSDN\TECHART\5186\MYBTRV32.C +SAMPLES\MSDN\TECHART\5186\ODBCAPP.C +SAMPLES\MSDN\TECHART\5186\SALES.BTR +SAMPLES\MSDN\TECHART\5186\TITLEPUB.BTR +SAMPLES\MSDN\TECHART\5187\CE.APS +SAMPLES\MSDN\TECHART\5187\CE.CFG +SAMPLES\MSDN\TECHART\5187\CE.CLW +SAMPLES\MSDN\TECHART\5187\CE.CPP +SAMPLES\MSDN\TECHART\5187\CE.DSP +SAMPLES\MSDN\TECHART\5187\CE.DSW +SAMPLES\MSDN\TECHART\5187\CE.H +SAMPLES\MSDN\TECHART\5187\CE.OPT +SAMPLES\MSDN\TECHART\5187\CE.RC +SAMPLES\MSDN\TECHART\5187\CEDLG.CPP +SAMPLES\MSDN\TECHART\5187\CEDLG.H +SAMPLES\MSDN\TECHART\5187\README.TXT +SAMPLES\MSDN\TECHART\5187\RECORDDLG.CPP +SAMPLES\MSDN\TECHART\5187\RECORDDLG.H +SAMPLES\MSDN\TECHART\5187\RES +SAMPLES\MSDN\TECHART\5187\RESOURCE.H +SAMPLES\MSDN\TECHART\5187\SKETCHPAD.CPP +SAMPLES\MSDN\TECHART\5187\SKETCHPAD.H +SAMPLES\MSDN\TECHART\5187\STDAFX.CPP +SAMPLES\MSDN\TECHART\5187\STDAFX.H +SAMPLES\MSDN\TECHART\5187\RES\BITMAP1.BMP +SAMPLES\MSDN\TECHART\5187\RES\BMP00001.BMP +SAMPLES\MSDN\TECHART\5187\RES\BMP00002.BMP +SAMPLES\MSDN\TECHART\5187\RES\BMP00003.BMP +SAMPLES\MSDN\TECHART\5187\RES\BMP00004.BMP +SAMPLES\MSDN\TECHART\5187\RES\BMP00005.BMP +SAMPLES\MSDN\TECHART\5187\RES\CE.ICO +SAMPLES\MSDN\TECHART\5187\RES\CE.RC2 +SAMPLES\MSDN\TECHART\72\ABSTRACT.TXT +SAMPLES\MSDN\TECHART\72\EZPRINT.C +SAMPLES\MSDN\TECHART\72\EZPRINT.DEF +SAMPLES\MSDN\TECHART\72\EZPRINT.DLL +SAMPLES\MSDN\TECHART\72\EZPRINT.H +SAMPLES\MSDN\TECHART\72\EZPRINT.LIB +SAMPLES\MSDN\TECHART\72\EZPRINT.MAK +SAMPLES\MSDN\TECHART\72\EZPRINT.RC +SAMPLES\MSDN\TECHART\72\FORM1.FRM +SAMPLES\MSDN\TECHART\72\GLOBAL.BAS +SAMPLES\MSDN\TECHART\72\PRINT.C +SAMPLES\MSDN\TECHART\72\VBTEST.MAK +SAMPLES\MSDN\VM\VM +SAMPLES\MSDN\VM\VMADO +SAMPLES\MSDN\VM\VMENROLL +SAMPLES\MSDN\VM\VMMTS +SAMPLES\MSDN\VM\VMORDER +SAMPLES\MSDN\VM\VMRDO +SAMPLES\MSDN\VM\VM\VMADO +SAMPLES\MSDN\VM\VM\VMENROLL +SAMPLES\MSDN\VM\VM\VMMTS +SAMPLES\MSDN\VM\VM\VMORDER +SAMPLES\MSDN\VM\VM\VMRDO +SAMPLES\MSDN\VM\VM\VMADO\ADO.MDL +SAMPLES\MSDN\VM\VM\VMENROLL\ADDFORM.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\ADDFORM.H +SAMPLES\MSDN\VM\VM\VMENROLL\COURSSET.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\COURSSET.H +SAMPLES\MSDN\VM\VM\VMENROLL\CRSFORM.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\CRSFORM.H +SAMPLES\MSDN\VM\VM\VMENROLL\ECOURSE.H +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLDOC.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLDOC.H +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.APS +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.CLW +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.DSP +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.DSW +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.H +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.ICO +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.MAK +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.MDL +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.OPT +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.RC +SAMPLES\MSDN\VM\VM\VMENROLL\ENROLL.RC2 +SAMPLES\MSDN\VM\VM\VMENROLL\ESECTION.H +SAMPLES\MSDN\VM\VM\VMENROLL\MAINFRM.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\MAINFRM.H +SAMPLES\MSDN\VM\VM\VMENROLL\README.TXT +SAMPLES\MSDN\VM\VM\VMENROLL\RESOURCE.H +SAMPLES\MSDN\VM\VM\VMENROLL\SECTFORM.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\SECTFORM.H +SAMPLES\MSDN\VM\VM\VMENROLL\SECTSET.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\SECTSET.H +SAMPLES\MSDN\VM\VM\VMENROLL\STDAFX.CPP +SAMPLES\MSDN\VM\VM\VMENROLL\STDAFX.H +SAMPLES\MSDN\VM\VM\VMENROLL\STDREG98.MDB +SAMPLES\MSDN\VM\VM\VMENROLL\TOOLBAR.BMP +SAMPLES\MSDN\VM\VM\VMMTS\MTXAS.MDL +SAMPLES\MSDN\VM\VM\VMORDER\ARTICLE.CLS +SAMPLES\MSDN\VM\VM\VMORDER\ARTICLES.CLS +SAMPLES\MSDN\VM\VM\VMORDER\CUSTMERS.CLS +SAMPLES\MSDN\VM\VM\VMORDER\CUSTOMER.CLS +SAMPLES\MSDN\VM\VM\VMORDER\DB.BAS +SAMPLES\MSDN\VM\VM\VMORDER\DLG_ORDE.FRM +SAMPLES\MSDN\VM\VM\VMORDER\DLG_ORDE.FRX +SAMPLES\MSDN\VM\VM\VMORDER\DLG_ORDR.FRM +SAMPLES\MSDN\VM\VM\VMORDER\FISH.ICO +SAMPLES\MSDN\VM\VM\VMORDER\MNGORDER.DOC +SAMPLES\MSDN\VM\VM\VMORDER\ORDER.CLS +SAMPLES\MSDN\VM\VM\VMORDER\ORDERROW.CLS +SAMPLES\MSDN\VM\VM\VMORDER\ORDERSYS.LDB +SAMPLES\MSDN\VM\VM\VMORDER\ORDERSYS.MDB +SAMPLES\MSDN\VM\VM\VMORDER\ORDERSYS.MDL +SAMPLES\MSDN\VM\VM\VMORDER\ORDERSYS.VBP +SAMPLES\MSDN\VM\VM\VMORDER\ORDRSYSM.BAS +SAMPLES\MSDN\VM\VM\VMORDER\PRSSTNCE.CLS +SAMPLES\MSDN\VM\VM\VMRDO\RDO.MDL +SAMPLES\MSDN\VM\VMADO\ADO.MDL +SAMPLES\MSDN\VM\VMENROLL\ADDFORM.CPP +SAMPLES\MSDN\VM\VMENROLL\ADDFORM.H +SAMPLES\MSDN\VM\VMENROLL\COURSSET.CPP +SAMPLES\MSDN\VM\VMENROLL\COURSSET.H +SAMPLES\MSDN\VM\VMENROLL\CRSFORM.CPP +SAMPLES\MSDN\VM\VMENROLL\CRSFORM.H +SAMPLES\MSDN\VM\VMENROLL\ECOURSE.H +SAMPLES\MSDN\VM\VMENROLL\ENROLDOC.CPP +SAMPLES\MSDN\VM\VMENROLL\ENROLDOC.H +SAMPLES\MSDN\VM\VMENROLL\ENROLL.APS +SAMPLES\MSDN\VM\VMENROLL\ENROLL.CLW +SAMPLES\MSDN\VM\VMENROLL\ENROLL.CPP +SAMPLES\MSDN\VM\VMENROLL\ENROLL.DSP +SAMPLES\MSDN\VM\VMENROLL\ENROLL.DSW +SAMPLES\MSDN\VM\VMENROLL\ENROLL.H +SAMPLES\MSDN\VM\VMENROLL\ENROLL.ICO +SAMPLES\MSDN\VM\VMENROLL\ENROLL.MAK +SAMPLES\MSDN\VM\VMENROLL\ENROLL.MDL +SAMPLES\MSDN\VM\VMENROLL\ENROLL.OPT +SAMPLES\MSDN\VM\VMENROLL\ENROLL.RC +SAMPLES\MSDN\VM\VMENROLL\ENROLL.RC2 +SAMPLES\MSDN\VM\VMENROLL\ESECTION.H +SAMPLES\MSDN\VM\VMENROLL\MAINFRM.CPP +SAMPLES\MSDN\VM\VMENROLL\MAINFRM.H +SAMPLES\MSDN\VM\VMENROLL\README.TXT +SAMPLES\MSDN\VM\VMENROLL\RESOURCE.H +SAMPLES\MSDN\VM\VMENROLL\SECTFORM.CPP +SAMPLES\MSDN\VM\VMENROLL\SECTFORM.H +SAMPLES\MSDN\VM\VMENROLL\SECTSET.CPP +SAMPLES\MSDN\VM\VMENROLL\SECTSET.H +SAMPLES\MSDN\VM\VMENROLL\STDAFX.CPP +SAMPLES\MSDN\VM\VMENROLL\STDAFX.H +SAMPLES\MSDN\VM\VMENROLL\STDREG98.MDB +SAMPLES\MSDN\VM\VMENROLL\TOOLBAR.BMP +SAMPLES\MSDN\VM\VMMTS\MTXAS.MDL +SAMPLES\MSDN\VM\VMORDER\ARTICLE.CLS +SAMPLES\MSDN\VM\VMORDER\ARTICLES.CLS +SAMPLES\MSDN\VM\VMORDER\CUSTMERS.CLS +SAMPLES\MSDN\VM\VMORDER\CUSTOMER.CLS +SAMPLES\MSDN\VM\VMORDER\DB.BAS +SAMPLES\MSDN\VM\VMORDER\DLG_ORDE.FRM +SAMPLES\MSDN\VM\VMORDER\DLG_ORDE.FRX +SAMPLES\MSDN\VM\VMORDER\DLG_ORDR.FRM +SAMPLES\MSDN\VM\VMORDER\FISH.ICO +SAMPLES\MSDN\VM\VMORDER\MNGORDER.DOC +SAMPLES\MSDN\VM\VMORDER\ORDER.CLS +SAMPLES\MSDN\VM\VMORDER\ORDERROW.CLS +SAMPLES\MSDN\VM\VMORDER\ORDERSYS.LDB +SAMPLES\MSDN\VM\VMORDER\ORDERSYS.MDB +SAMPLES\MSDN\VM\VMORDER\ORDERSYS.MDL +SAMPLES\MSDN\VM\VMORDER\ORDERSYS.VBP +SAMPLES\MSDN\VM\VMORDER\ORDRSYSM.BAS +SAMPLES\MSDN\VM\VMORDER\PRSSTNCE.CLS +SAMPLES\MSDN\VM\VMRDO\RDO.MDL +SAMPLES\MSDN\WEBDESDK\5042 +SAMPLES\MSDN\WEBDESDK\5043 +SAMPLES\MSDN\WEBDESDK\5042\DCSDK.EXE +SAMPLES\MSDN\WEBDESDK\5043\SETUPDCP.EXE +SAMPLES\REPOSIT\BROWSER +SAMPLES\REPOSIT\FILESYS +SAMPLES\REPOSIT\INCLUDE +SAMPLES\REPOSIT\SAMPLES.WRI +SAMPLES\REPOSIT\BROWSER\BROWSER.FRM +SAMPLES\REPOSIT\BROWSER\BROWSER.FRX +SAMPLES\REPOSIT\BROWSER\BROWSER.VBP +SAMPLES\REPOSIT\BROWSER\MDO.BAS +SAMPLES\REPOSIT\BROWSER\PROPSNEW.FRM +SAMPLES\REPOSIT\BROWSER\REFRESH.FRM +SAMPLES\REPOSIT\FILESYS\DEFTIM.BAS +SAMPLES\REPOSIT\FILESYS\FILESYS.VBP +SAMPLES\REPOSIT\INCLUDE\ODBCOR_G.BAS +SAMPLES\REPOSIT\INCLUDE\ODBEXT_G.BAS +SAMPLES\REPOSIT\INCLUDE\REPAPI.H +SAMPLES\REPOSIT\INCLUDE\REPAUTO.H +SAMPLES\REPOSIT\INCLUDE\REPENG.BAS +SAMPLES\REPOSIT\INCLUDE\REPERR.H +SAMPLES\REPOSIT\INCLUDE\REPMDO.BAS +SAMPLES\REPOSIT\INCLUDE\REPMDO.H +SAMPLES\REPOSIT\INCLUDE\REPTIM.H +SAMPLES\VB98\ACTXDOC +SAMPLES\VB98\ALARM +SAMPLES\VB98\ATM +SAMPLES\VB98\AXDATA +SAMPLES\VB98\BLANKER +SAMPLES\VB98\CALC +SAMPLES\VB98\CALLBACK +SAMPLES\VB98\CALLDLLS +SAMPLES\VB98\CHRTSAMP +SAMPLES\VB98\COFFEE +SAMPLES\VB98\CONTROLS +SAMPLES\VB98\CTLPLUS +SAMPLES\VB98\CTLSADD +SAMPLES\VB98\DATAREPT +SAMPLES\VB98\DATATREE +SAMPLES\VB98\DATAWARE +SAMPLES\VB98\DHSHOWME +SAMPLES\VB98\DIALER +SAMPLES\VB98\ERRORS +SAMPLES\VB98\FILECTS +SAMPLES\VB98\FIRSTAPP +SAMPLES\VB98\GEOFACTS +SAMPLES\VB98\HELLO +SAMPLES\VB98\INTRFACE +SAMPLES\VB98\IOBJSAFE +SAMPLES\VB98\LISTCMBO +SAMPLES\VB98\MCI +SAMPLES\VB98\MDI +SAMPLES\VB98\MESSAGEQ +SAMPLES\VB98\MISC +SAMPLES\VB98\MSCOMM +SAMPLES\VB98\MSFLEXGD +SAMPLES\VB98\OLECONT +SAMPLES\VB98\OPTIMIZE +SAMPLES\VB98\PALMODE +SAMPLES\VB98\PASSTHRU +SAMPLES\VB98\PICCLIP +SAMPLES\VB98\POOLMGR +SAMPLES\VB98\PROGWOB +SAMPLES\VB98\SDI +SAMPLES\VB98\TABORDER +SAMPLES\VB98\VCR +SAMPLES\VB98\VISDATA +SAMPLES\VB98\WCDEMO +SAMPLES\VB98\ACTXDOC\ACTXDOC.VBP +SAMPLES\VB98\ACTXDOC\FIRSTDOC.DOB +SAMPLES\VB98\ACTXDOC\FRMABOUT.FRM +SAMPLES\VB98\ACTXDOC\FRMABOUT.FRX +SAMPLES\VB98\ACTXDOC\FRMAUX.FRM +SAMPLES\VB98\ACTXDOC\MGLOBAL.BAS +SAMPLES\VB98\ACTXDOC\SECNDDOC.DOB +SAMPLES\VB98\ALARM\ALARM.FRM +SAMPLES\VB98\ALARM\ALARM.FRX +SAMPLES\VB98\ALARM\ALARM.VBP +SAMPLES\VB98\ATM\ATM.BAS +SAMPLES\VB98\ATM\ATM.RC +SAMPLES\VB98\ATM\ATM.VBP +SAMPLES\VB98\ATM\ATM32.RES +SAMPLES\VB98\ATM\FRMAMOUN.FRM +SAMPLES\VB98\ATM\FRMINPUT.FRM +SAMPLES\VB98\ATM\OPENBANK.FRM +SAMPLES\VB98\ATM\OPENBANK.FRX +SAMPLES\VB98\AXDATA\AXDATA.VBG +SAMPLES\VB98\AXDATA\CUSTOMER.TXT +SAMPLES\VB98\AXDATA\DATASRC.FRM +SAMPLES\VB98\AXDATA\DATASRC.FRX +SAMPLES\VB98\AXDATA\DATASRC.VBP +SAMPLES\VB98\AXDATA\FIRST.BMP +SAMPLES\VB98\AXDATA\LAST.BMP +SAMPLES\VB98\AXDATA\MYDATA.CTL +SAMPLES\VB98\AXDATA\MYDATA.CTX +SAMPLES\VB98\AXDATA\MYDATAC.VBP +SAMPLES\VB98\AXDATA\MYDATACO.VBP +SAMPLES\VB98\AXDATA\MYDATAS.CLS +SAMPLES\VB98\AXDATA\MYOSPOBJ.CLS +SAMPLES\VB98\AXDATA\NEXT.BMP +SAMPLES\VB98\AXDATA\PREV.BMP +SAMPLES\VB98\BLANKER\BLANKER.FRM +SAMPLES\VB98\BLANKER\BLANKER.FRX +SAMPLES\VB98\BLANKER\BLANKER.VBP +SAMPLES\VB98\CALC\CALC.FRM +SAMPLES\VB98\CALC\CALC.FRX +SAMPLES\VB98\CALC\CALC.ICO +SAMPLES\VB98\CALC\CALC.VBP +SAMPLES\VB98\CALLBACK\CALLBACK.TXT +SAMPLES\VB98\CALLBACK\CLBK_CLI.BAS +SAMPLES\VB98\CALLBACK\CLBK_CLI.CLS +SAMPLES\VB98\CALLBACK\CLBK_CLI.FRM +SAMPLES\VB98\CALLBACK\CLBK_CLI.VBP +SAMPLES\VB98\CALLBACK\CLBK_SVR.BAS +SAMPLES\VB98\CALLBACK\CLBK_SVR.CLS +SAMPLES\VB98\CALLBACK\CLBK_SVR.FRM +SAMPLES\VB98\CALLBACK\CLBK_SVR.VBP +SAMPLES\VB98\CALLDLLS\CALLDLLS.FRM +SAMPLES\VB98\CALLDLLS\CALLDLLS.FRX +SAMPLES\VB98\CALLDLLS\CALLDLLS.VBP +SAMPLES\VB98\CALLDLLS\DECLARES.BAS +SAMPLES\VB98\CALLDLLS\FRMMENUS.FRM +SAMPLES\VB98\CHRTSAMP\CHRTSAMP.VBP +SAMPLES\VB98\CHRTSAMP\FRMCHART.FRM +SAMPLES\VB98\CHRTSAMP\FRMCHART.FRX +SAMPLES\VB98\CHRTSAMP\GAS.XLS +SAMPLES\VB98\CHRTSAMP\MODCHART.BAS +SAMPLES\VB98\COFFEE\ABOUTCOF.TXT +SAMPLES\VB98\COFFEE\CO2CMON.CLS +SAMPLES\VB98\COFFEE\CO2CMON2.CLS +SAMPLES\VB98\COFFEE\CO2CONN.CLS +SAMPLES\VB98\COFFEE\CO2CONN2.CLS +SAMPLES\VB98\COFFEE\CO2MOD1.BAS +SAMPLES\VB98\COFFEE\COFFEE2.VBP +SAMPLES\VB98\COFFEE\COFFWAT2.VBP +SAMPLES\VB98\COFFEE\CWCOFTRK.CLS +SAMPLES\VB98\COFFEE\CWFORM1.FRM +SAMPLES\VB98\COFFEE\CWMOD1.BAS +SAMPLES\VB98\COFFEE\CWNOTME.CLS +SAMPLES\VB98\COFFEE\CWTHREAD.FRM +SAMPLES\VB98\COFFEE\ICOFFNOT.CLS +SAMPLES\VB98\COFFEE\MTCMOD1.BAS +SAMPLES\VB98\COFFEE\MTCOFFEE.CLS +SAMPLES\VB98\COFFEE\MTCOFFEE.VBP +SAMPLES\VB98\COFFEE\XTIMER.CLS +SAMPLES\VB98\COFFEE\XTIMERS.BAS +SAMPLES\VB98\COFFEE\XTIMERS.VBP +SAMPLES\VB98\CONTROLS\BUTTON.FRM +SAMPLES\VB98\CONTROLS\BUTTON.FRX +SAMPLES\VB98\CONTROLS\CHECK.FRM +SAMPLES\VB98\CONTROLS\CLUB.ICO +SAMPLES\VB98\CONTROLS\CONTROLS.VBP +SAMPLES\VB98\CONTROLS\DIAMOND.ICO +SAMPLES\VB98\CONTROLS\HEART.ICO +SAMPLES\VB98\CONTROLS\IMAGES.FRM +SAMPLES\VB98\CONTROLS\IMAGES.FRX +SAMPLES\VB98\CONTROLS\MAIN.FRM +SAMPLES\VB98\CONTROLS\OPTIONS.FRM +SAMPLES\VB98\CONTROLS\SPADE.ICO +SAMPLES\VB98\CONTROLS\TEXT.FRM +SAMPLES\VB98\CONTROLS\TEXT.FRX +SAMPLES\VB98\CONTROLS\WORDWRAP.FRM +SAMPLES\VB98\CTLPLUS\CPSHAPEL.CTL +SAMPLES\VB98\CTLPLUS\CPSHAPEL.CTX +SAMPLES\VB98\CTLPLUS\CPSLGEN.PAG +SAMPLES\VB98\CTLPLUS\CTLPLUS.VBG +SAMPLES\VB98\CTLPLUS\CTLPLUS.VBP +SAMPLES\VB98\CTLPLUS\TCPFORM1.FRM +SAMPLES\VB98\CTLPLUS\TCPFORM1.FRX +SAMPLES\VB98\CTLPLUS\TESTCTLP.VBP +SAMPLES\VB98\CTLSADD\CONTROLS.MDB +SAMPLES\VB98\CTLSADD\CTLCFG.FRM +SAMPLES\VB98\CTLSADD\CTLCFG.FRX +SAMPLES\VB98\CTLSADD\CTLCFG.VBP +SAMPLES\VB98\CTLSADD\CTLVIEW.FRM +SAMPLES\VB98\CTLSADD\CTLVIEW.FRX +SAMPLES\VB98\CTLSADD\CTLVIEW.VBP +SAMPLES\VB98\CTLSADD\README.TXT +SAMPLES\VB98\DATAREPT\DENWIND.DSR +SAMPLES\VB98\DATAREPT\FRMSHOW.FRM +SAMPLES\VB98\DATAREPT\PRJNWIND.VBP +SAMPLES\VB98\DATAREPT\RPTNWIND.DSR +SAMPLES\VB98\DATAREPT\RPTNWIND.DSX +SAMPLES\VB98\DATATREE\DATATREE.VBP +SAMPLES\VB98\DATATREE\TREEVIEW.FRM +SAMPLES\VB98\DATATREE\TREEVIEW.FRX +SAMPLES\VB98\DATAWARE\DATAFORM.FRM +SAMPLES\VB98\DATAWARE\DATAWARE.VBP +SAMPLES\VB98\DATAWARE\MYCONS.CLS +SAMPLES\VB98\DATAWARE\MYSOURCE.CLS +SAMPLES\VB98\DHSHOWME\DHSHOWME.DLL +SAMPLES\VB98\DHSHOWME\DHSHOWME.EXP +SAMPLES\VB98\DHSHOWME\DHSHOWME.LIB +SAMPLES\VB98\DHSHOWME\DHSHOWME.VBP +SAMPLES\VB98\DHSHOWME\EVENTBUB.DSR +SAMPLES\VB98\DHSHOWME\EVENTBUB.HTM +SAMPLES\VB98\DHSHOWME\LAYOUT.DSR +SAMPLES\VB98\DHSHOWME\LAYOUT.HTM +SAMPLES\VB98\DHSHOWME\LISTS.DSR +SAMPLES\VB98\DHSHOWME\LISTS.HTM +SAMPLES\VB98\DHSHOWME\MODDHTML.BAS +SAMPLES\VB98\DHSHOWME\START.DSR +SAMPLES\VB98\DHSHOWME\START.HTM +SAMPLES\VB98\DHSHOWME\STYLES.DSR +SAMPLES\VB98\DHSHOWME\STYLES.HTM +SAMPLES\VB98\DHSHOWME\TEXT.DSR +SAMPLES\VB98\DHSHOWME\TEXT.HTM +SAMPLES\VB98\DIALER\DIALER.FRM +SAMPLES\VB98\DIALER\DIALER.VBP +SAMPLES\VB98\ERRORS\ERRORS.BAS +SAMPLES\VB98\ERRORS\ERRORS.FRM +SAMPLES\VB98\ERRORS\ERRORS.VBP +SAMPLES\VB98\FILECTS\SEEK.FRM +SAMPLES\VB98\FILECTS\WINSEEK.VBP +SAMPLES\VB98\FIRSTAPP\FIRSTAPP.VBP +SAMPLES\VB98\FIRSTAPP\FORM1.FRM +SAMPLES\VB98\FIRSTAPP\FORM1.FRX +SAMPLES\VB98\GEOFACTS\GEOFACTS.BAS +SAMPLES\VB98\GEOFACTS\GEOFACTS.FRM +SAMPLES\VB98\GEOFACTS\GEOFACTS.VBP +SAMPLES\VB98\GEOFACTS\WORLD.XLS +SAMPLES\VB98\HELLO\HELO_CLI.FRM +SAMPLES\VB98\HELLO\HELO_CLI.VBP +SAMPLES\VB98\HELLO\HELO_SVR.CLS +SAMPLES\VB98\HELLO\HELO_SVR.FRM +SAMPLES\VB98\HELLO\HELO_SVR.VBP +SAMPLES\VB98\INTRFACE\GETDATE.CLS +SAMPLES\VB98\INTRFACE\GETTIME.CLS +SAMPLES\VB98\INTRFACE\INTRFACE.TXT +SAMPLES\VB98\INTRFACE\INTR_CLI.FRM +SAMPLES\VB98\INTRFACE\INTR_CLI.VBP +SAMPLES\VB98\INTRFACE\INTR_SVR.CLS +SAMPLES\VB98\INTRFACE\INTR_SVR.VBP +SAMPLES\VB98\IOBJSAFE\IOBJSAFE.CMP +SAMPLES\VB98\IOBJSAFE\IOBJSAFE.CTL +SAMPLES\VB98\IOBJSAFE\IOBJSAFE.HTM +SAMPLES\VB98\IOBJSAFE\IOBJSAFE.ODL +SAMPLES\VB98\IOBJSAFE\IOBJSAFE.TLB +SAMPLES\VB98\IOBJSAFE\IOBJSAFE.VBP +SAMPLES\VB98\IOBJSAFE\MAIN.BAS +SAMPLES\VB98\IOBJSAFE\README.TXT +SAMPLES\VB98\LISTCMBO\FRMABOUT.FRM +SAMPLES\VB98\LISTCMBO\FRMABOUT.FRX +SAMPLES\VB98\LISTCMBO\FRMPUB.FRM +SAMPLES\VB98\LISTCMBO\FRMPUB.FRX +SAMPLES\VB98\LISTCMBO\LISTCMBO.VBP +SAMPLES\VB98\MCI\ABOUTBOX.FRM +SAMPLES\VB98\MCI\ABOUTBOX.FRX +SAMPLES\VB98\MCI\CD.FRM +SAMPLES\VB98\MCI\CD.FRX +SAMPLES\VB98\MCI\GLOBAL.BAS +SAMPLES\VB98\MCI\MCITEST.BAS +SAMPLES\VB98\MCI\MCITEST.FRM +SAMPLES\VB98\MCI\MCITEST.FRX +SAMPLES\VB98\MCI\MCITEST.MID +SAMPLES\VB98\MCI\MCITEST.VBP +SAMPLES\VB98\MCI\MCITEST.WAV +SAMPLES\VB98\MCI\OPENDLG.FRM +SAMPLES\VB98\MCI\WAVE.FRM +SAMPLES\VB98\MDI\FILOPEN.BAS +SAMPLES\VB98\MDI\FIND.FRM +SAMPLES\VB98\MDI\MDI.FRM +SAMPLES\VB98\MDI\MDI.FRX +SAMPLES\VB98\MDI\MDINOTE.BAS +SAMPLES\VB98\MDI\MDINOTE.VBP +SAMPLES\VB98\MDI\NOTEPAD.FRM +SAMPLES\VB98\MESSAGEQ\ACCSTP3.VBP +SAMPLES\VB98\MESSAGEQ\ADMSPT0.VBP +SAMPLES\VB98\MESSAGEQ\CLAIMSP1.VBP +SAMPLES\VB98\MESSAGEQ\CLSSTRBG.CLS +SAMPLES\VB98\MESSAGEQ\FRMADMIN.FRM +SAMPLES\VB98\MESSAGEQ\FRMCLPRC.FRM +SAMPLES\VB98\MESSAGEQ\FRMPROC.FRM +SAMPLES\VB98\MESSAGEQ\FRMQUEUE.FRM +SAMPLES\VB98\MESSAGEQ\FROMADMN.FRM +SAMPLES\VB98\MESSAGEQ\MODIM.BAS +SAMPLES\VB98\MESSAGEQ\MODQS.BAS +SAMPLES\VB98\MESSAGEQ\MODQSH.BAS +SAMPLES\VB98\MESSAGEQ\MSGARRIV.CLS +SAMPLES\VB98\MESSAGEQ\PROCSP2.VBP +SAMPLES\VB98\MESSAGEQ\README.HTM +SAMPLES\VB98\MISC\BOOKSALE +SAMPLES\VB98\MISC\COMPAT +SAMPLES\VB98\MISC\PROPBAG +SAMPLES\VB98\MISC\VBMAIL +SAMPLES\VB98\MISC\BOOKSALE\BOOKSALE.MDB +SAMPLES\VB98\MISC\BOOKSALE\BOOKSALE.TXT +SAMPLES\VB98\MISC\BOOKSALE\BOOKSALE.VBG +SAMPLES\VB98\MISC\BOOKSALE\CLIENT +SAMPLES\VB98\MISC\BOOKSALE\SERVER +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\BIBLE.BMP +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\BOOK_CLI.BAS +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\BOOK_CLI.FRM +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\BOOK_CLI.FRX +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\BOOK_CLI.VBP +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\FRMCHART.FRM +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\FRMCHART.FRX +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\FRMCOGS.FRM +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\GSL.BMP +SAMPLES\VB98\MISC\BOOKSALE\CLIENT\TCN.BMP +SAMPLES\VB98\MISC\BOOKSALE\SERVER\BOOK_SVR.BAS +SAMPLES\VB98\MISC\BOOKSALE\SERVER\BOOK_SVR.FRM +SAMPLES\VB98\MISC\BOOKSALE\SERVER\BOOK_SVR.FRX +SAMPLES\VB98\MISC\BOOKSALE\SERVER\BOOK_SVR.VBP +SAMPLES\VB98\MISC\BOOKSALE\SERVER\MODEL.CLS +SAMPLES\VB98\MISC\BOOKSALE\SERVER\SALES.CLS +SAMPLES\VB98\MISC\BOOKSALE\SERVER\TAXES.CLS +SAMPLES\VB98\MISC\COMPAT\BOOK_SVR.EXE +SAMPLES\VB98\MISC\COMPAT\CLBK_SVR.EXE +SAMPLES\VB98\MISC\COMPAT\HELO_SVR.EXE +SAMPLES\VB98\MISC\COMPAT\IN32_SVR.DLL +SAMPLES\VB98\MISC\COMPAT\PASS_SVR.EXE +SAMPLES\VB98\MISC\COMPAT\PMGR_SVR.EXE +SAMPLES\VB98\MISC\PROPBAG\DHTMLPG1.DSR +SAMPLES\VB98\MISC\PROPBAG\DHTMLPG1.DSX +SAMPLES\VB98\MISC\PROPBAG\DHTMLPG2.DSR +SAMPLES\VB98\MISC\PROPBAG\DHTMLPG2.DSX +SAMPLES\VB98\MISC\PROPBAG\MODULE1.BAS +SAMPLES\VB98\MISC\PROPBAG\PROPBAG.DLL +SAMPLES\VB98\MISC\PROPBAG\PROPBAG.EXP +SAMPLES\VB98\MISC\PROPBAG\PROPBAG.LIB +SAMPLES\VB98\MISC\PROPBAG\PROPBAG.VBP +SAMPLES\VB98\MISC\VBMAIL\FRMLOGON.FRM +SAMPLES\VB98\MISC\VBMAIL\FRMREAD.FRM +SAMPLES\VB98\MISC\VBMAIL\PRJMAPI.VBP +SAMPLES\VB98\MISC\VBMAIL\README.TXT +SAMPLES\VB98\MSCOMM\CANSEND.FRM +SAMPLES\VB98\MSCOMM\FRMPROPS.FRM +SAMPLES\VB98\MSCOMM\FRMPROPS.FRX +SAMPLES\VB98\MSCOMM\VBTERM.FRM +SAMPLES\VB98\MSCOMM\VBTERM.FRX +SAMPLES\VB98\MSCOMM\VBTERM.GLO +SAMPLES\VB98\MSCOMM\VBTERM.VBP +SAMPLES\VB98\MSFLEXGD\FFLEX.FRM +SAMPLES\VB98\MSFLEXGD\FFLEX.FRX +SAMPLES\VB98\MSFLEXGD\FLEX.VBP +SAMPLES\VB98\OLECONT\CONTCHLD.FRM +SAMPLES\VB98\OLECONT\CONTMDI.FRM +SAMPLES\VB98\OLECONT\OLECONT.BAS +SAMPLES\VB98\OLECONT\OLECONT.VBP +SAMPLES\VB98\OPTIMIZE\ABOUT.FRM +SAMPLES\VB98\OPTIMIZE\ABOUT.FRX +SAMPLES\VB98\OPTIMIZE\ALGORITH.FRM +SAMPLES\VB98\OPTIMIZE\CODE.FRM +SAMPLES\VB98\OPTIMIZE\COG.BMP +SAMPLES\VB98\OPTIMIZE\COLLECTN.FRM +SAMPLES\VB98\OPTIMIZE\COLLECTN.FRX +SAMPLES\VB98\OPTIMIZE\EARTH2.ICO +SAMPLES\VB98\OPTIMIZE\EXPLORE.FRM +SAMPLES\VB98\OPTIMIZE\EXPLORE.FRX +SAMPLES\VB98\OPTIMIZE\FACE1.BMP +SAMPLES\VB98\OPTIMIZE\FRMIMAGE.FRM +SAMPLES\VB98\OPTIMIZE\FRMIMAGE.FRX +SAMPLES\VB98\OPTIMIZE\FRMPICS.FRM +SAMPLES\VB98\OPTIMIZE\FRMPICS.FRX +SAMPLES\VB98\OPTIMIZE\FRMSHOW1.FRM +SAMPLES\VB98\OPTIMIZE\FRMSHOW2.FRM +SAMPLES\VB98\OPTIMIZE\GLOBAL.BAS +SAMPLES\VB98\OPTIMIZE\GRAPHICS.FRM +SAMPLES\VB98\OPTIMIZE\GRAPHICS.FRX +SAMPLES\VB98\OPTIMIZE\LITENING.ICO +SAMPLES\VB98\OPTIMIZE\MONITOR.BMP +SAMPLES\VB98\OPTIMIZE\NUMBERS.FRM +SAMPLES\VB98\OPTIMIZE\OPTIMIZE.VBP +SAMPLES\VB98\OPTIMIZE\PAINTPIC.FRM +SAMPLES\VB98\OPTIMIZE\PAINTPIC.FRX +SAMPLES\VB98\OPTIMIZE\RESOURCE.BMP +SAMPLES\VB98\OPTIMIZE\ROOT.BMP +SAMPLES\VB98\OPTIMIZE\SPEED.BMP +SAMPLES\VB98\OPTIMIZE\SPLASH.BMP +SAMPLES\VB98\OPTIMIZE\SPLASH.FRM +SAMPLES\VB98\OPTIMIZE\SPLASH.FRX +SAMPLES\VB98\OPTIMIZE\SPLSHDMO.FRM +SAMPLES\VB98\OPTIMIZE\STRINGS.FRM +SAMPLES\VB98\OPTIMIZE\WRENCH.BMP +SAMPLES\VB98\PALMODE\BANNER.GIF +SAMPLES\VB98\PALMODE\CLOUDS.BMP +SAMPLES\VB98\PALMODE\FOREST.JPG +SAMPLES\VB98\PALMODE\PALETTES.FRM +SAMPLES\VB98\PALMODE\PALETTES.FRX +SAMPLES\VB98\PALMODE\PALETTES.VBP +SAMPLES\VB98\PALMODE\PASTEL.DIB +SAMPLES\VB98\PASSTHRU\PASSTHRU.TXT +SAMPLES\VB98\PASSTHRU\PASS_CLI.FRM +SAMPLES\VB98\PASSTHRU\PASS_CLI.VBP +SAMPLES\VB98\PASSTHRU\PASS_SVR.BAS +SAMPLES\VB98\PASSTHRU\PASS_SVR.CLS +SAMPLES\VB98\PASSTHRU\PASS_SVR.FRM +SAMPLES\VB98\PASSTHRU\PASS_SVR.VBP +SAMPLES\VB98\PICCLIP\INFOFORM.FRM +SAMPLES\VB98\PICCLIP\INFOFORM.FRX +SAMPLES\VB98\PICCLIP\REDTOP.BMP +SAMPLES\VB98\PICCLIP\REDTOP.FRM +SAMPLES\VB98\PICCLIP\REDTOP.FRX +SAMPLES\VB98\PICCLIP\REDTOP.VBP +SAMPLES\VB98\POOLMGR\PMGR_CLI.FRM +SAMPLES\VB98\POOLMGR\PMGR_CLI.VBP +SAMPLES\VB98\POOLMGR\PMGR_SVR.BAS +SAMPLES\VB98\POOLMGR\PMGR_SVR.CLS +SAMPLES\VB98\POOLMGR\PMGR_SVR.FRM +SAMPLES\VB98\POOLMGR\PMGR_SVR.VBP +SAMPLES\VB98\POOLMGR\POOLMNGR.TXT +SAMPLES\VB98\POOLMGR\REGUTIL.BAS +SAMPLES\VB98\PROGWOB\PROGWOB.VBP +SAMPLES\VB98\PROGWOB\PWOBRICK.FRM +SAMPLES\VB98\PROGWOB\PWOCYOCC.FRM +SAMPLES\VB98\PROGWOB\PWOEMPL.CLS +SAMPLES\VB98\PROGWOB\PWOEMPLS.CLS +SAMPLES\VB98\PROGWOB\PWOEVENT.FRM +SAMPLES\VB98\PROGWOB\PWOEVENT.FRX +SAMPLES\VB98\PROGWOB\PWOEVREC.FRM +SAMPLES\VB98\PROGWOB\PWOFRIEN.BAS +SAMPLES\VB98\PROGWOB\PWOFRIEN.FRM +SAMPLES\VB98\PROGWOB\PWOFRIEN.FRX +SAMPLES\VB98\PROGWOB\PWOIDBUG.CLS +SAMPLES\VB98\PROGWOB\PWOIMPLE.FRM +SAMPLES\VB98\PROGWOB\PWOIMPLE.FRX +SAMPLES\VB98\PROGWOB\PWOISHAP.CLS +SAMPLES\VB98\PROGWOB\PWOMAIN.FRM +SAMPLES\VB98\PROGWOB\PWOPOLY.CLS +SAMPLES\VB98\PROGWOB\PWORECT.CLS +SAMPLES\VB98\PROGWOB\PWOSBUS1.CLS +SAMPLES\VB98\PROGWOB\PWOSBUS2.CLS +SAMPLES\VB98\PROGWOB\PWOSBUS3.CLS +SAMPLES\VB98\PROGWOB\PWOSTICK.FRM +SAMPLES\VB98\PROGWOB\PWOSTRAW.FRM +SAMPLES\VB98\PROGWOB\PWOTESTC.CLS +SAMPLES\VB98\PROGWOB\PWOTRNGL.CLS +SAMPLES\VB98\PROGWOB\PWOWIDG.CLS +SAMPLES\VB98\SDI\FILOPEN.BAS +SAMPLES\VB98\SDI\FIND.FRM +SAMPLES\VB98\SDI\FRMSDI.FRM +SAMPLES\VB98\SDI\FRMSDI.FRX +SAMPLES\VB98\SDI\SDINOTE.BAS +SAMPLES\VB98\SDI\SDINOTE.VBP +SAMPLES\VB98\TABORDER\TAB.BMP +SAMPLES\VB98\TABORDER\TAB.ICO +SAMPLES\VB98\TABORDER\TABORDER.BAS +SAMPLES\VB98\TABORDER\TABORDER.DOB +SAMPLES\VB98\TABORDER\TABORDER.DOX +SAMPLES\VB98\TABORDER\TABORDER.DSR +SAMPLES\VB98\TABORDER\TABORDER.RES +SAMPLES\VB98\TABORDER\TABORDER.VBP +SAMPLES\VB98\VCR\BFLY1.BMP +SAMPLES\VB98\VCR\BFLY2.BMP +SAMPLES\VB98\VCR\RECORDER.CLS +SAMPLES\VB98\VCR\SET.FRM +SAMPLES\VB98\VCR\TAPE.CLS +SAMPLES\VB98\VCR\TAPEOUT.BMP +SAMPLES\VB98\VCR\VCR.BAS +SAMPLES\VB98\VCR\VCR.FRM +SAMPLES\VB98\VCR\VCR.FRX +SAMPLES\VB98\VCR\VCR.VBP +SAMPLES\VB98\VISDATA\ABOUTBOX.FRM +SAMPLES\VB98\VISDATA\ABOUTBOX.FRX +SAMPLES\VB98\VISDATA\ADDFIELD.FRM +SAMPLES\VB98\VISDATA\ADDFIELD.FRX +SAMPLES\VB98\VISDATA\ADDINDEX.FRM +SAMPLES\VB98\VISDATA\ADDINDEX.FRX +SAMPLES\VB98\VISDATA\ATTACH.FRM +SAMPLES\VB98\VISDATA\ATTACH.FRX +SAMPLES\VB98\VISDATA\ATTACHED.ICO +SAMPLES\VB98\VISDATA\CLOSE.ICO +SAMPLES\VB98\VISDATA\COMMIT.ICO +SAMPLES\VB98\VISDATA\CPYSTRU.FRM +SAMPLES\VB98\VISDATA\CPYSTRU.FRX +SAMPLES\VB98\VISDATA\DATABASE.FRM +SAMPLES\VB98\VISDATA\DATABASE.FRX +SAMPLES\VB98\VISDATA\DATACTRL.BMP +SAMPLES\VB98\VISDATA\DATACTRL.ICO +SAMPLES\VB98\VISDATA\DATAFORM.FRM +SAMPLES\VB98\VISDATA\DATAFORM.FRX +SAMPLES\VB98\VISDATA\DATAGRID.FRM +SAMPLES\VB98\VISDATA\DATAGRID.FRX +SAMPLES\VB98\VISDATA\DATATYPE.FRM +SAMPLES\VB98\VISDATA\DATATYPE.FRX +SAMPLES\VB98\VISDATA\DBGRID.ICO +SAMPLES\VB98\VISDATA\DBPWD.FRM +SAMPLES\VB98\VISDATA\DBPWD.FRX +SAMPLES\VB98\VISDATA\DCPROP.FRM +SAMPLES\VB98\VISDATA\DCPROP.FRX +SAMPLES\VB98\VISDATA\DFD.FRM +SAMPLES\VB98\VISDATA\DFD.FRX +SAMPLES\VB98\VISDATA\DYNASET.ICO +SAMPLES\VB98\VISDATA\DYNASNAP.FRM +SAMPLES\VB98\VISDATA\DYNASNAP.FRX +SAMPLES\VB98\VISDATA\EDIT.ICO +SAMPLES\VB98\VISDATA\ERRORS.FRM +SAMPLES\VB98\VISDATA\ERRORS.FRX +SAMPLES\VB98\VISDATA\EXPNAME.FRM +SAMPLES\VB98\VISDATA\EXPNAME.FRX +SAMPLES\VB98\VISDATA\FIELD.ICO +SAMPLES\VB98\VISDATA\FIND.FRM +SAMPLES\VB98\VISDATA\FIND.FRX +SAMPLES\VB98\VISDATA\GRPSUSRS.FRM +SAMPLES\VB98\VISDATA\GRPSUSRS.FRX +SAMPLES\VB98\VISDATA\IMPTBLS.FRM +SAMPLES\VB98\VISDATA\IMPTBLS.FRX +SAMPLES\VB98\VISDATA\INDEX.ICO +SAMPLES\VB98\VISDATA\JOIN.FRM +SAMPLES\VB98\VISDATA\JOIN.FRX +SAMPLES\VB98\VISDATA\LOGINFRM.FRM +SAMPLES\VB98\VISDATA\LOGINFRM.FRX +SAMPLES\VB98\VISDATA\MOVE.ICO +SAMPLES\VB98\VISDATA\NEWATTCH.FRM +SAMPLES\VB98\VISDATA\NEWATTCH.FRX +SAMPLES\VB98\VISDATA\NEWPW.FRM +SAMPLES\VB98\VISDATA\NEWPW.FRX +SAMPLES\VB98\VISDATA\NEWUG.FRM +SAMPLES\VB98\VISDATA\NEWUG.FRX +SAMPLES\VB98\VISDATA\NODC.ICO +SAMPLES\VB98\VISDATA\ODBCLOGN.FRM +SAMPLES\VB98\VISDATA\ODBCLOGN.FRX +SAMPLES\VB98\VISDATA\PASSTHRU.ICO +SAMPLES\VB98\VISDATA\PROP.ICO +SAMPLES\VB98\VISDATA\PROPERTY.FRM +SAMPLES\VB98\VISDATA\PROPS.ICO +SAMPLES\VB98\VISDATA\QRY.ICO +SAMPLES\VB98\VISDATA\QUERY.FRM +SAMPLES\VB98\VISDATA\QUERY.FRX +SAMPLES\VB98\VISDATA\QUERY.ICO +SAMPLES\VB98\VISDATA\RECS.ICO +SAMPLES\VB98\VISDATA\REFRESH.ICO +SAMPLES\VB98\VISDATA\REPLACE.FRM +SAMPLES\VB98\VISDATA\REPLACE.FRX +SAMPLES\VB98\VISDATA\ROLLBACK.ICO +SAMPLES\VB98\VISDATA\SEEK.FRM +SAMPLES\VB98\VISDATA\SEEK.FRX +SAMPLES\VB98\VISDATA\SNAPSHOT.ICO +SAMPLES\VB98\VISDATA\SQL.FRM +SAMPLES\VB98\VISDATA\SQL.FRX +SAMPLES\VB98\VISDATA\SQL.ICO +SAMPLES\VB98\VISDATA\TABLE.ICO +SAMPLES\VB98\VISDATA\TABLEOBJ.FRM +SAMPLES\VB98\VISDATA\TABLEOBJ.FRX +SAMPLES\VB98\VISDATA\TABLES.ICO +SAMPLES\VB98\VISDATA\TBLRS.ICO +SAMPLES\VB98\VISDATA\TBLSTRU.FRM +SAMPLES\VB98\VISDATA\TBLSTRU.FRX +SAMPLES\VB98\VISDATA\TRANS.ICO +SAMPLES\VB98\VISDATA\UPDATE.ICO +SAMPLES\VB98\VISDATA\VBIMEX.FRM +SAMPLES\VB98\VISDATA\VBIMEX.FRX +SAMPLES\VB98\VISDATA\VDCLASS.CLS +SAMPLES\VB98\VISDATA\VDMDI.FRM +SAMPLES\VB98\VISDATA\VDMDI.FRX +SAMPLES\VB98\VISDATA\VISDATA.BAS +SAMPLES\VB98\VISDATA\VISDATA.ICO +SAMPLES\VB98\VISDATA\VISDATA.VBP +SAMPLES\VB98\VISDATA\ZOOM.FRM +SAMPLES\VB98\VISDATA\ZOOM.FRX +SAMPLES\VB98\WCDEMO\EXPLORER.BMP +SAMPLES\VB98\WCDEMO\PAGE11.HTM +SAMPLES\VB98\WCDEMO\WBCLS1.DSR +SAMPLES\VB98\WCDEMO\WCDEMO.ASP +SAMPLES\VB98\WCDEMO\WCDEMO.VBP +SAMPLES\VC98\ADDINS +SAMPLES\VC98\APPWIZ +SAMPLES\VC98\ATL +SAMPLES\VC98\COM +SAMPLES\VC98\MFC +SAMPLES\VC98\SDK +SAMPLES\VC98\VCOLEDB +SAMPLES\VC98\ADDINS\API2HELP +SAMPLES\VC98\ADDINS\AUTOBLD +SAMPLES\VC98\ADDINS\BLDREC +SAMPLES\VC98\ADDINS\BOOKNOTE +SAMPLES\VC98\ADDINS\BRKPNTMGR +SAMPLES\VC98\ADDINS\CMDWND +SAMPLES\VC98\ADDINS\PIPE +SAMPLES\VC98\ADDINS\REPLALL +SAMPLES\VC98\ADDINS\VB4ADDIN +SAMPLES\VC98\ADDINS\VB5ADDIN +SAMPLES\VC98\ADDINS\WINS +SAMPLES\VC98\ADDINS\API2HELP\API2HELP.CPP +SAMPLES\VC98\ADDINS\API2HELP\API2HELP.DEF +SAMPLES\VC98\ADDINS\API2HELP\API2HELP.DSP +SAMPLES\VC98\ADDINS\API2HELP\API2HELP.DSW +SAMPLES\VC98\ADDINS\API2HELP\API2HELP.H +SAMPLES\VC98\ADDINS\API2HELP\API2HELP.ODL +SAMPLES\VC98\ADDINS\API2HELP\API2HELP.RC +SAMPLES\VC98\ADDINS\API2HELP\APISPLIT.CPP +SAMPLES\VC98\ADDINS\API2HELP\APISPLIT.H +SAMPLES\VC98\ADDINS\API2HELP\COMMANDS.CPP +SAMPLES\VC98\ADDINS\API2HELP\COMMANDS.H +SAMPLES\VC98\ADDINS\API2HELP\DSADDIN.CPP +SAMPLES\VC98\ADDINS\API2HELP\DSADDIN.H +SAMPLES\VC98\ADDINS\API2HELP\OPTIONS.CPP +SAMPLES\VC98\ADDINS\API2HELP\OPTIONS.H +SAMPLES\VC98\ADDINS\API2HELP\README.TXT +SAMPLES\VC98\ADDINS\API2HELP\RES +SAMPLES\VC98\ADDINS\API2HELP\RESOURCE.H +SAMPLES\VC98\ADDINS\API2HELP\STDAFX.CPP +SAMPLES\VC98\ADDINS\API2HELP\STDAFX.H +SAMPLES\VC98\ADDINS\API2HELP\WELCOME.CPP +SAMPLES\VC98\ADDINS\API2HELP\WELCOME.H +SAMPLES\VC98\ADDINS\API2HELP\RES\API2HELP.RC2 +SAMPLES\VC98\ADDINS\API2HELP\RES\TBARLRGE.BMP +SAMPLES\VC98\ADDINS\API2HELP\RES\TBARMEDM.BMP +SAMPLES\VC98\ADDINS\AUTOBLD\AUTOBLD.CPP +SAMPLES\VC98\ADDINS\AUTOBLD\AUTOBLD.DEF +SAMPLES\VC98\ADDINS\AUTOBLD\AUTOBLD.DSP +SAMPLES\VC98\ADDINS\AUTOBLD\AUTOBLD.DSW +SAMPLES\VC98\ADDINS\AUTOBLD\AUTOBLD.H +SAMPLES\VC98\ADDINS\AUTOBLD\AUTOBLD.ODL +SAMPLES\VC98\ADDINS\AUTOBLD\AUTOBLD.RC +SAMPLES\VC98\ADDINS\AUTOBLD\COMMANDS.CPP +SAMPLES\VC98\ADDINS\AUTOBLD\COMMANDS.H +SAMPLES\VC98\ADDINS\AUTOBLD\CONFIG.CPP +SAMPLES\VC98\ADDINS\AUTOBLD\CONFIG.H +SAMPLES\VC98\ADDINS\AUTOBLD\DSADDIN.CPP +SAMPLES\VC98\ADDINS\AUTOBLD\DSADDIN.H +SAMPLES\VC98\ADDINS\AUTOBLD\PROJECT.ICO +SAMPLES\VC98\ADDINS\AUTOBLD\README.TXT +SAMPLES\VC98\ADDINS\AUTOBLD\RES +SAMPLES\VC98\ADDINS\AUTOBLD\RESOURCE.H +SAMPLES\VC98\ADDINS\AUTOBLD\STDAFX.CPP +SAMPLES\VC98\ADDINS\AUTOBLD\STDAFX.H +SAMPLES\VC98\ADDINS\AUTOBLD\WORKSPCS.CPP +SAMPLES\VC98\ADDINS\AUTOBLD\WORKSPCS.H +SAMPLES\VC98\ADDINS\AUTOBLD\RES\AUTOBLD.RC2 +SAMPLES\VC98\ADDINS\AUTOBLD\RES\TBARLRGE.BMP +SAMPLES\VC98\ADDINS\AUTOBLD\RES\TBARMEDM.BMP +SAMPLES\VC98\ADDINS\BLDREC\BLDREC.CPP +SAMPLES\VC98\ADDINS\BLDREC\BLDREC.DEF +SAMPLES\VC98\ADDINS\BLDREC\BLDREC.DSP +SAMPLES\VC98\ADDINS\BLDREC\BLDREC.DSW +SAMPLES\VC98\ADDINS\BLDREC\BLDREC.H +SAMPLES\VC98\ADDINS\BLDREC\BLDREC.ODL +SAMPLES\VC98\ADDINS\BLDREC\BLDREC.RC +SAMPLES\VC98\ADDINS\BLDREC\COMMANDS.CPP +SAMPLES\VC98\ADDINS\BLDREC\COMMANDS.H +SAMPLES\VC98\ADDINS\BLDREC\DLGFILE.CPP +SAMPLES\VC98\ADDINS\BLDREC\DLGFILE.H +SAMPLES\VC98\ADDINS\BLDREC\DSADDIN.CPP +SAMPLES\VC98\ADDINS\BLDREC\DSADDIN.H +SAMPLES\VC98\ADDINS\BLDREC\RES +SAMPLES\VC98\ADDINS\BLDREC\RESOURCE.H +SAMPLES\VC98\ADDINS\BLDREC\STDAFX.CPP +SAMPLES\VC98\ADDINS\BLDREC\STDAFX.H +SAMPLES\VC98\ADDINS\BLDREC\RES\BLDREC.RC2 +SAMPLES\VC98\ADDINS\BLDREC\RES\TBARLRGE.BMP +SAMPLES\VC98\ADDINS\BLDREC\RES\TBARMEDM.BMP +SAMPLES\VC98\ADDINS\BOOKNOTE\BMP00001.BMP +SAMPLES\VC98\ADDINS\BOOKNOTE\BOOKNOTE.CPP +SAMPLES\VC98\ADDINS\BOOKNOTE\BOOKNOTE.DEF +SAMPLES\VC98\ADDINS\BOOKNOTE\BOOKNOTE.DSP +SAMPLES\VC98\ADDINS\BOOKNOTE\BOOKNOTE.DSW +SAMPLES\VC98\ADDINS\BOOKNOTE\BOOKNOTE.IDL +SAMPLES\VC98\ADDINS\BOOKNOTE\BOOKNOTE.RC +SAMPLES\VC98\ADDINS\BOOKNOTE\DLGNOTE.CPP +SAMPLES\VC98\ADDINS\BOOKNOTE\DLGNOTE.H +SAMPLES\VC98\ADDINS\BOOKNOTE\MARKIT.CPP +SAMPLES\VC98\ADDINS\BOOKNOTE\MARKIT.H +SAMPLES\VC98\ADDINS\BOOKNOTE\MARKIT.RGS +SAMPLES\VC98\ADDINS\BOOKNOTE\MRUSTRINGS.CPP +SAMPLES\VC98\ADDINS\BOOKNOTE\MRUSTRINGS.H +SAMPLES\VC98\ADDINS\BOOKNOTE\RESOURCE.H +SAMPLES\VC98\ADDINS\BOOKNOTE\STDAFX.CPP +SAMPLES\VC98\ADDINS\BOOKNOTE\STDAFX.H +SAMPLES\VC98\ADDINS\BOOKNOTE\TOOLBAR_.BMP +SAMPLES\VC98\ADDINS\BRKPNTMGR\BMP00001.BMP +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTMGR.CPP +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTMGR.DEF +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTMGR.DSP +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTMGR.DSW +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTMGR.IDL +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTMGR.RC +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTS.CPP +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTS.H +SAMPLES\VC98\ADDINS\BRKPNTMGR\BRKPNTS.RGS +SAMPLES\VC98\ADDINS\BRKPNTMGR\DLGADVANCED.CPP +SAMPLES\VC98\ADDINS\BRKPNTMGR\DLGADVANCED.H +SAMPLES\VC98\ADDINS\BRKPNTMGR\DLGBRKPNTS.CPP +SAMPLES\VC98\ADDINS\BRKPNTMGR\DLGBRKPNTS.H +SAMPLES\VC98\ADDINS\BRKPNTMGR\DLGSAVE.CPP +SAMPLES\VC98\ADDINS\BRKPNTMGR\DLGSAVE.H +SAMPLES\VC98\ADDINS\BRKPNTMGR\RESOURCE.H +SAMPLES\VC98\ADDINS\BRKPNTMGR\STDAFX.CPP +SAMPLES\VC98\ADDINS\BRKPNTMGR\STDAFX.H +SAMPLES\VC98\ADDINS\BRKPNTMGR\SUBDIALOG.H +SAMPLES\VC98\ADDINS\BRKPNTMGR\TOOLBAR_.BMP +SAMPLES\VC98\ADDINS\CMDWND\ALL.DSP +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB +SAMPLES\VC98\ADDINS\CMDWND\CMDWND.DSW +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMDSTUBS +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\BMP00001.BMP +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDSTUB.CPP +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDSTUB.DEF +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDSTUB.DSP +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDSTUB.IDL +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDSTUB.RC +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDWND.CPP +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDWND.H +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\CMDWND.RGS +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\DLLDATAX.C +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\DLLDATAX.H +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\RESOURCE.H +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\STDAFX.CPP +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\STDAFX.H +SAMPLES\VC98\ADDINS\CMDWND\CMDSTUB\TOOLBAR_.BMP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\APP_GUID.CPP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\CMDEDIT.CPP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\CMDEDIT.H +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\COMMANDWINDOW.CPP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\COMMANDWINDOW.H +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\DEVCMD.DEF +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\DEVCMD.IDL +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\DEVCMD.MK +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\DEVCMDCP.H +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\MSDEVCMD.CPP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\MSDEVCMD.DSP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\MSDEVCMD.H +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\MSDEVCMD.RC +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\MSDEVCMDDLG.CPP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\MSDEVCMDDLG.H +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\MSDEVCMDSTUBS.DSP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\RES +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\RESOURCE.H +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\STDAFX.CPP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\STDAFX.H +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\_INTERFACES.DSP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\RES\BM_NOTPI.BMP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\RES\BM_PINNE.BMP +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\RES\COMMANDWINDOW.RGS +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\RES\MSDEVCMD.ICO +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMD\RES\MSDEVCMD.RC2 +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMDSTUBS\DEVCMD.DEF +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMDSTUBS\DEVCMD.MK +SAMPLES\VC98\ADDINS\CMDWND\MSDEVCMDSTUBS\MSDEVCMDSTUBS.DSP +SAMPLES\VC98\ADDINS\PIPE\BMP00001.BMP +SAMPLES\VC98\ADDINS\PIPE\DLGFILTER.CPP +SAMPLES\VC98\ADDINS\PIPE\DLGFILTER.H +SAMPLES\VC98\ADDINS\PIPE\MRUSTRINGS.CPP +SAMPLES\VC98\ADDINS\PIPE\MRUSTRINGS.H +SAMPLES\VC98\ADDINS\PIPE\PIPE.CPP +SAMPLES\VC98\ADDINS\PIPE\PIPE.DEF +SAMPLES\VC98\ADDINS\PIPE\PIPE.DSP +SAMPLES\VC98\ADDINS\PIPE\PIPE.DSW +SAMPLES\VC98\ADDINS\PIPE\PIPE.IDL +SAMPLES\VC98\ADDINS\PIPE\PIPE.RC +SAMPLES\VC98\ADDINS\PIPE\PIPEIT.CPP +SAMPLES\VC98\ADDINS\PIPE\PIPEIT.H +SAMPLES\VC98\ADDINS\PIPE\PIPEIT.RGS +SAMPLES\VC98\ADDINS\PIPE\RESOURCE.H +SAMPLES\VC98\ADDINS\PIPE\STDAFX.CPP +SAMPLES\VC98\ADDINS\PIPE\STDAFX.H +SAMPLES\VC98\ADDINS\PIPE\TOOLBAR_.BMP +SAMPLES\VC98\ADDINS\REPLALL\COMMANDS.CPP +SAMPLES\VC98\ADDINS\REPLALL\COMMANDS.H +SAMPLES\VC98\ADDINS\REPLALL\DSADDIN.CPP +SAMPLES\VC98\ADDINS\REPLALL\DSADDIN.H +SAMPLES\VC98\ADDINS\REPLALL\README.TXT +SAMPLES\VC98\ADDINS\REPLALL\REPLACEDLG.CPP +SAMPLES\VC98\ADDINS\REPLALL\REPLACEDLG.H +SAMPLES\VC98\ADDINS\REPLALL\REPLALL.CPP +SAMPLES\VC98\ADDINS\REPLALL\REPLALL.DEF +SAMPLES\VC98\ADDINS\REPLALL\REPLALL.DSP +SAMPLES\VC98\ADDINS\REPLALL\REPLALL.DSW +SAMPLES\VC98\ADDINS\REPLALL\REPLALL.H +SAMPLES\VC98\ADDINS\REPLALL\REPLALL.ODL +SAMPLES\VC98\ADDINS\REPLALL\REPLALL.RC +SAMPLES\VC98\ADDINS\REPLALL\RES +SAMPLES\VC98\ADDINS\REPLALL\RESOURCE.H +SAMPLES\VC98\ADDINS\REPLALL\STDAFX.CPP +SAMPLES\VC98\ADDINS\REPLALL\STDAFX.H +SAMPLES\VC98\ADDINS\REPLALL\RES\REPLALL.RC2 +SAMPLES\VC98\ADDINS\REPLALL\RES\TBARLRGE.BMP +SAMPLES\VC98\ADDINS\REPLALL\RES\TBARMEDM.BMP +SAMPLES\VC98\ADDINS\VB4ADDIN\ADDIN.RC +SAMPLES\VC98\ADDINS\VB4ADDIN\ADDIN.RES +SAMPLES\VC98\ADDINS\VB4ADDIN\ADDIN.VBP +SAMPLES\VC98\ADDINS\VB4ADDIN\COMMANDS.CLS +SAMPLES\VC98\ADDINS\VB4ADDIN\DSADDIN.CLS +SAMPLES\VC98\ADDINS\VB4ADDIN\MODMAIN.BAS +SAMPLES\VC98\ADDINS\VB4ADDIN\README.TXT +SAMPLES\VC98\ADDINS\VB4ADDIN\TBARLRGE.BMP +SAMPLES\VC98\ADDINS\VB4ADDIN\TBARMEDM.BMP +SAMPLES\VC98\ADDINS\VB5ADDIN\ADDIN.RC +SAMPLES\VC98\ADDINS\VB5ADDIN\ADDIN.RES +SAMPLES\VC98\ADDINS\VB5ADDIN\ADDIN.VBP +SAMPLES\VC98\ADDINS\VB5ADDIN\ADDIN.VBW +SAMPLES\VC98\ADDINS\VB5ADDIN\COMMANDS.CLS +SAMPLES\VC98\ADDINS\VB5ADDIN\DSADDIN.CLS +SAMPLES\VC98\ADDINS\VB5ADDIN\README.TXT +SAMPLES\VC98\ADDINS\VB5ADDIN\TBARLRGE.BMP +SAMPLES\VC98\ADDINS\VB5ADDIN\TBARMEDM.BMP +SAMPLES\VC98\ADDINS\WINS\BITMAP1.BMP +SAMPLES\VC98\ADDINS\WINS\BMP00001.BMP +SAMPLES\VC98\ADDINS\WINS\DIRLIST.CPP +SAMPLES\VC98\ADDINS\WINS\DIRLIST.H +SAMPLES\VC98\ADDINS\WINS\DLGWINMGR.CPP +SAMPLES\VC98\ADDINS\WINS\DLGWINMGR.H +SAMPLES\VC98\ADDINS\WINS\FILEITEM.CPP +SAMPLES\VC98\ADDINS\WINS\FILEITEM.H +SAMPLES\VC98\ADDINS\WINS\MYLISTCTRL.CPP +SAMPLES\VC98\ADDINS\WINS\MYLISTCTRL.H +SAMPLES\VC98\ADDINS\WINS\MYTOOLTIP.CPP +SAMPLES\VC98\ADDINS\WINS\MYTOOLTIP.H +SAMPLES\VC98\ADDINS\WINS\RESOURCE.H +SAMPLES\VC98\ADDINS\WINS\STDAFX.CPP +SAMPLES\VC98\ADDINS\WINS\STDAFX.H +SAMPLES\VC98\ADDINS\WINS\TOOLBAR_.BMP +SAMPLES\VC98\ADDINS\WINS\WINDOWSLIST.CPP +SAMPLES\VC98\ADDINS\WINS\WINDOWSLIST.H +SAMPLES\VC98\ADDINS\WINS\WINDOWSLIST.RGS +SAMPLES\VC98\ADDINS\WINS\WINS.CPP +SAMPLES\VC98\ADDINS\WINS\WINS.DEF +SAMPLES\VC98\ADDINS\WINS\WINS.DSP +SAMPLES\VC98\ADDINS\WINS\WINS.DSW +SAMPLES\VC98\ADDINS\WINS\WINS.IDL +SAMPLES\VC98\ADDINS\WINS\WINS.RC +SAMPLES\VC98\ADDINS\WINS\WINSAPP.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ +SAMPLES\VC98\APPWIZ\HIERWIZ +SAMPLES\VC98\APPWIZ\LOGOWIZ +SAMPLES\VC98\APPWIZ\CUSTOMWZ\CHOOSER.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\CHOOSER.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\CUSTOMWZ.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\CUSTOMWZ.DSP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\CUSTOMWZ.DSW +SAMPLES\VC98\APPWIZ\CUSTOMWZ\CUSTOMWZ.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\CUSTOMWZ.RC +SAMPLES\VC98\APPWIZ\CUSTOMWZ\HLP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\MAKEHELP.BAT +SAMPLES\VC98\APPWIZ\CUSTOMWZ\OPTIONS.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\OPTIONS.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\PAINT.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\PAINT.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RESOURCE.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\SAMPLEAW.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\SAMPLEAW.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\SEQDLG.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\SEQDLG.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\STDAFX.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\STDAFX.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TYPEDLG.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TYPEDLG.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\ZAP.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\ZAP.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\ZAPDLG.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\ZAPDLG.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\HLP\CUSTMWZ.HPJ +SAMPLES\VC98\APPWIZ\CUSTOMWZ\HLP\CUSTMWZ.RTF +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\APWZSRC.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\BOTOMDLL.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\BOTOMEXE.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\CUSTOMSR.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\CUSTOMWZ.ICO +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\DEST.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\PROJSRC.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\SEQTOP.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\STEP1A.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\STEP1B.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\STEP1C.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\STEP2.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\STEP2A.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\STEP2B.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\WAND.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\WAND1.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\YELLOWPN.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\RES\ZAP.BMP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\CHOOSER.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\CHOOSER.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\CONFIRM.INF +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\CSTMDLG.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\CSTMDLG.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\DEBUG.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\DEBUG.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\MAKEHELP.BAT +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\NEWAW.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\NEWAW.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\NEWCNFRM.INF +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\NEWNWPRJ.INF +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\NEWPROJ.INF +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\README.TXT +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\RESOURCE.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\ROOT.CLW +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\ROOT.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\ROOT.H +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\ROOT.HPJ +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\ROOT.ICO +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\ROOT.RC +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\ROOT.RTF +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\STDAFX.CPP +SAMPLES\VC98\APPWIZ\CUSTOMWZ\TEMPLATE\STDAFX.H +SAMPLES\VC98\APPWIZ\HIERWIZ\CHOOSER.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\CHOOSER.H +SAMPLES\VC98\APPWIZ\HIERWIZ\CSTM1DLG.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\CSTM1DLG.H +SAMPLES\VC98\APPWIZ\HIERWIZ\DEBUG.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\DEBUG.H +SAMPLES\VC98\APPWIZ\HIERWIZ\EDITDLG.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\EDITDLG.H +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWAW.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWAW.H +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.CLW +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.DOC +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.DSP +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.DSW +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.H +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.ICO +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.MAK +SAMPLES\VC98\APPWIZ\HIERWIZ\HIERWIZ.RC +SAMPLES\VC98\APPWIZ\HIERWIZ\LOADFILE.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\LOADFILE.H +SAMPLES\VC98\APPWIZ\HIERWIZ\NOSAMPLE.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\README.TXT +SAMPLES\VC98\APPWIZ\HIERWIZ\RESOURCE.H +SAMPLES\VC98\APPWIZ\HIERWIZ\SAMPLEFL.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\SAMPLEKB.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\STDAFX.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\STDAFX.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE +SAMPLES\VC98\APPWIZ\HIERWIZ\TVANDTXT.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TVONLY.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\USREDITC.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\USREDITC.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\AFXCORE.RTF +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\AFXPRINT.RTF +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\APPEXIT.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\BULLET.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\CONFIRM.INF +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\CURARW2.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\CURARW4.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\CURHELP.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\EDITCOPY.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\EDITCUT.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\EDITPAST.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\EDITUNDO.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\FILENEW.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\FILEOPEN.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\FILEPRNT.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\FILESAVE.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\HLPSBAR.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\HLPTBAR.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\INPUTTXT.TXT +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\IPFRAME.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\IPFRAME.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ITOOLBAR.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\MAINFRM.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\MAINFRM.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\MAKEFILE +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\MAKEHELP.BAT +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\MFCCLASS.HIE +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\MFCCLASS.TXT +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\NEWPROJ.INF +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\RESOURCE.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ROOT.CLW +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ROOT.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ROOT.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ROOT.HPJ +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ROOT.ICO +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ROOT.RC +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ROOT.REG +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SCMAX.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SCMENU.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SCMIN.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\STDAFX.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\STDAFX.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SVRDOC.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SVRDOC.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SVRDOC.ICO +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SVRITEM.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SVRITEM.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SVRVIEW.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\SVRVIEW.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\TEXTVIEW.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\TEXTVIEW.H +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\TOOLBAR.BMP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ZOOMDLG.CPP +SAMPLES\VC98\APPWIZ\HIERWIZ\TEMPLATE\ZOOMDLG.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\CHOOSER.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\CHOOSER.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\CSTM1DLG.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\CSTM1DLG.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\DEBUG.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\DEBUG.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\HLP +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWAW.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWAW.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.CLW +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.DSP +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.DSW +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.HPJ +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.MAK +SAMPLES\VC98\APPWIZ\LOGOWIZ\LOGOWIZ.RC +SAMPLES\VC98\APPWIZ\LOGOWIZ\MAKEHELP.BAT +SAMPLES\VC98\APPWIZ\LOGOWIZ\README.TXT +SAMPLES\VC98\APPWIZ\LOGOWIZ\RES +SAMPLES\VC98\APPWIZ\LOGOWIZ\RESOURCE.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\STDAFX.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\STDAFX.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE +SAMPLES\VC98\APPWIZ\LOGOWIZ\HLP\LOGOWIZ.RTF +SAMPLES\VC98\APPWIZ\LOGOWIZ\RES\DLGNOHLP.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\RES\DLGWHLP.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\RES\LOGOWIZ.ICO +SAMPLES\VC98\APPWIZ\LOGOWIZ\RES\PRESSME.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\RES\SMLOGO.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\RES\YELLOWPN.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\CONFIRM.INF +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\DIALOG.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\DIALOG.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\DLGALL.RC +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\DLGLOC.RC +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\DLGRES.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\DLGROOT.CLW +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\FROWND.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\FROWNF.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\FROWNU.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\NEWPROJ.INF +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\PRESSDLG.CPP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\PRESSDLG.H +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\README.TXT +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\SMILED.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\SMILEF.BMP +SAMPLES\VC98\APPWIZ\LOGOWIZ\TEMPLATE\SMILEU.BMP +SAMPLES\VC98\ATL\ACTIVEDOC +SAMPLES\VC98\ATL\ASYNC +SAMPLES\VC98\ATL\ATLBUTTON +SAMPLES\VC98\ATL\ATLCON +SAMPLES\VC98\ATL\ATLDUCK +SAMPLES\VC98\ATL\ATLFIRE +SAMPLES\VC98\ATL\ATLMOVIE +SAMPLES\VC98\ATL\ATLTANGRAM +SAMPLES\VC98\ATL\BEEPER +SAMPLES\VC98\ATL\CDINFO +SAMPLES\VC98\ATL\CIRC +SAMPLES\VC98\ATL\CIRCCOLL +SAMPLES\VC98\ATL\COMMAP +SAMPLES\VC98\ATL\CONNECT +SAMPLES\VC98\ATL\DCOM +SAMPLES\VC98\ATL\DIRECT3D +SAMPLES\VC98\ATL\LABRADOR +SAMPLES\VC98\ATL\MFCATL +SAMPLES\VC98\ATL\MINIMAL +SAMPLES\VC98\ATL\OPENGL +SAMPLES\VC98\ATL\POLYGON +SAMPLES\VC98\ATL\SUBEDIT +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVECTL.CPP +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVECTL.H +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.CPP +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.DEF +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.DSP +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.DSW +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.HTM +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.IDL +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.MAK +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.RC +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.RGS +SAMPLES\VC98\ATL\ACTIVEDOC\ACTIVEDOC.TXT +SAMPLES\VC98\ATL\ACTIVEDOC\CREATEDOCFILE.CPP +SAMPLES\VC98\ATL\ACTIVEDOC\ICON1.ICO +SAMPLES\VC98\ATL\ACTIVEDOC\MENU.H +SAMPLES\VC98\ATL\ACTIVEDOC\OLEDOCUMENT.H +SAMPLES\VC98\ATL\ACTIVEDOC\RESOURCE.H +SAMPLES\VC98\ATL\ACTIVEDOC\STDAFX.CPP +SAMPLES\VC98\ATL\ACTIVEDOC\STDAFX.H +SAMPLES\VC98\ATL\ACTIVEDOC\TOOLBAR.BMP +SAMPLES\VC98\ATL\ACTIVEDOC\TOOLBAR.H +SAMPLES\VC98\ATL\ASYNC\ASYNC.CPP +SAMPLES\VC98\ATL\ASYNC\ASYNC.DEF +SAMPLES\VC98\ATL\ASYNC\ASYNC.DSP +SAMPLES\VC98\ATL\ASYNC\ASYNC.DSW +SAMPLES\VC98\ATL\ASYNC\ASYNC.IDL +SAMPLES\VC98\ATL\ASYNC\ASYNC.MAK +SAMPLES\VC98\ATL\ASYNC\ASYNC.RC +SAMPLES\VC98\ATL\ASYNC\ATLASYNC.CPP +SAMPLES\VC98\ATL\ASYNC\ATLASYNC.H +SAMPLES\VC98\ATL\ASYNC\ATLASYNC.HTM +SAMPLES\VC98\ATL\ASYNC\ATLASYNC.RGS +SAMPLES\VC98\ATL\ASYNC\RESOURCE.H +SAMPLES\VC98\ATL\ASYNC\STDAFX.CPP +SAMPLES\VC98\ATL\ASYNC\STDAFX.H +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTN.CPP +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTN.DEF +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTN.DSP +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTN.DSW +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTN.IDL +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTN.MAK +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTN.RC +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTTON.CPP +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTTON.H +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTTON.HTM +SAMPLES\VC98\ATL\ATLBUTTON\ATLBUTTON.RGS +SAMPLES\VC98\ATL\ATLBUTTON\CPATLBUTN.H +SAMPLES\VC98\ATL\ATLBUTTON\DIBAPI.CPP +SAMPLES\VC98\ATL\ATLBUTTON\DIBAPI.H +SAMPLES\VC98\ATL\ATLBUTTON\RESOURCE.H +SAMPLES\VC98\ATL\ATLBUTTON\SAVEHI.BMP +SAMPLES\VC98\ATL\ATLBUTTON\SAVELO.BMP +SAMPLES\VC98\ATL\ATLBUTTON\SAVEST.BMP +SAMPLES\VC98\ATL\ATLBUTTON\STDAFX.CPP +SAMPLES\VC98\ATL\ATLBUTTON\STDAFX.H +SAMPLES\VC98\ATL\ATLCON\ATLCON.CPP +SAMPLES\VC98\ATL\ATLCON\ATLCON.DSP +SAMPLES\VC98\ATL\ATLCON\ATLCON.DSW +SAMPLES\VC98\ATL\ATLCON\ATLCON.IDL +SAMPLES\VC98\ATL\ATLCON\ATLCON.MAK +SAMPLES\VC98\ATL\ATLCON\ATLCON.RC +SAMPLES\VC98\ATL\ATLCON\ATLCON.RGS +SAMPLES\VC98\ATL\ATLCON\ATLCON1.H +SAMPLES\VC98\ATL\ATLCON\ATLCONTROLS.H +SAMPLES\VC98\ATL\ATLCON\ICON1.ICO +SAMPLES\VC98\ATL\ATLCON\PROPBROWSECTL.CPP +SAMPLES\VC98\ATL\ATLCON\PROPBROWSECTL.H +SAMPLES\VC98\ATL\ATLCON\RESOURCE.H +SAMPLES\VC98\ATL\ATLCON\STDAFX.CPP +SAMPLES\VC98\ATL\ATLCON\STDAFX.H +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.CLW +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.CPP +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.DSP +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.DSW +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.IDL +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.MAK +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.RC +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCK.RGS +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCKPS.DEF +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCKPS.EXP +SAMPLES\VC98\ATL\ATLDUCK\ATLDUCKPS.MK +SAMPLES\VC98\ATL\ATLDUCK\CPDUCK.H +SAMPLES\VC98\ATL\ATLDUCK\DUCK +SAMPLES\VC98\ATL\ATLDUCK\DUCKDOER.CPP +SAMPLES\VC98\ATL\ATLDUCK\DUCKDOER.H +SAMPLES\VC98\ATL\ATLDUCK\DUCKDOER.RGS +SAMPLES\VC98\ATL\ATLDUCK\DUCKDOERDLG.CPP +SAMPLES\VC98\ATL\ATLDUCK\DUCKDOERDLG.H +SAMPLES\VC98\ATL\ATLDUCK\IDUCKINT.H +SAMPLES\VC98\ATL\ATLDUCK\RESOURCE.H +SAMPLES\VC98\ATL\ATLDUCK\STDAFX.CPP +SAMPLES\VC98\ATL\ATLDUCK\STDAFX.H +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.APS +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.CLW +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.CPP +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.DSP +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.IDL +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.MAK +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.RC +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCK.RGS +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCKINT.CPP +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCKINT.H +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCKINT.RGS +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCKPS.DEF +SAMPLES\VC98\ATL\ATLDUCK\DUCK\DUCKPS.MK +SAMPLES\VC98\ATL\ATLDUCK\DUCK\MYDLG.CPP +SAMPLES\VC98\ATL\ATLDUCK\DUCK\MYDLG.H +SAMPLES\VC98\ATL\ATLDUCK\DUCK\RESOURCE.H +SAMPLES\VC98\ATL\ATLDUCK\DUCK\STDAFX.CPP +SAMPLES\VC98\ATL\ATLDUCK\DUCK\STDAFX.H +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.CPP +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.DEF +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.DSP +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.DSW +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.ICO +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.IDL +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.MAK +SAMPLES\VC98\ATL\ATLFIRE\ATLFIRE.RC +SAMPLES\VC98\ATL\ATLFIRE\ATLFIREPS.MK +SAMPLES\VC98\ATL\ATLFIRE\FIRETABCTRL.CPP +SAMPLES\VC98\ATL\ATLFIRE\FIRETABCTRL.H +SAMPLES\VC98\ATL\ATLFIRE\FIRETABCTRL.HTM +SAMPLES\VC98\ATL\ATLFIRE\FIRETABCTRL.RGS +SAMPLES\VC98\ATL\ATLFIRE\FIREWND.CPP +SAMPLES\VC98\ATL\ATLFIRE\FIREWND.H +SAMPLES\VC98\ATL\ATLFIRE\PROPDLG.CPP +SAMPLES\VC98\ATL\ATLFIRE\PROPDLG.H +SAMPLES\VC98\ATL\ATLFIRE\RESOURCE.H +SAMPLES\VC98\ATL\ATLFIRE\SIZE.H +SAMPLES\VC98\ATL\ATLFIRE\STDAFX.CPP +SAMPLES\VC98\ATL\ATLFIRE\STDAFX.H +SAMPLES\VC98\ATL\ATLFIRE\VB5TEST.FRM +SAMPLES\VC98\ATL\ATLFIRE\VB5TEST.VBP +SAMPLES\VC98\ATL\ATLFIRE\VB5TEST.VBW +SAMPLES\VC98\ATL\ATLFIRE\VB5TEST2.FRM +SAMPLES\VC98\ATL\ATLMOVIE\ATLMOVIE.CPP +SAMPLES\VC98\ATL\ATLMOVIE\ATLMOVIE.DEF +SAMPLES\VC98\ATL\ATLMOVIE\ATLMOVIE.DSP +SAMPLES\VC98\ATL\ATLMOVIE\ATLMOVIE.DSW +SAMPLES\VC98\ATL\ATLMOVIE\ATLMOVIE.IDL +SAMPLES\VC98\ATL\ATLMOVIE\ATLMOVIE.MAK +SAMPLES\VC98\ATL\ATLMOVIE\ATLMOVIE.RC +SAMPLES\VC98\ATL\ATLMOVIE\MOVIECTL.CPP +SAMPLES\VC98\ATL\ATLMOVIE\MOVIECTL.H +SAMPLES\VC98\ATL\ATLMOVIE\MOVIECTL.HTM +SAMPLES\VC98\ATL\ATLMOVIE\MOVIECTL.RGS +SAMPLES\VC98\ATL\ATLMOVIE\RESOURCE.H +SAMPLES\VC98\ATL\ATLMOVIE\STDAFX.CPP +SAMPLES\VC98\ATL\ATLMOVIE\STDAFX.H +SAMPLES\VC98\ATL\ATLMOVIE\VBTEST +SAMPLES\VC98\ATL\ATLMOVIE\VBTEST\VBTEST.FRM +SAMPLES\VC98\ATL\ATLMOVIE\VBTEST\VBTEST.FRX +SAMPLES\VC98\ATL\ATLMOVIE\VBTEST\VBTEST.VBP +SAMPLES\VC98\ATL\ATLMOVIE\VBTEST\VBTEST.VBW +SAMPLES\VC98\ATL\ATLTANGRAM\ATLEVENT_I.C +SAMPLES\VC98\ATL\ATLTANGRAM\ATLEVENT_I.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLEVENT_I.IDL +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODELPS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAM.DSW +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLWORLDCAT.H +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM +SAMPLES\VC98\ATL\ATLTANGRAM\TANTYPE.H +SAMPLES\VC98\ATL\ATLTANGRAM\TANTYPE.IDL +SAMPLES\VC98\ATL\ATLTANGRAM\UTIL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\UTIL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLD.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLD.DEF +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLD.DSP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLD.IDL +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLD.MAK +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLD.RC +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLDIMPL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLGDIWORLDIMPL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLTANGRAMGDIVISUAL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLTANGRAMGDIVISUAL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\ATLTANGRAMGDIVISUAL.RGS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\RESOURCE.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\STDAFX.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGDIWORLD\STDAFX.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLD.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLD.DEF +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLD.DSP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLD.IDL +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLD.MAK +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLD.RC +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLD.RGS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLDIMPL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLGLWORLDIMPL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLTANGRAMGLVISUAL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLTANGRAMGLVISUAL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\ATLTANGRAMGLVISUAL.RGS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\CGL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\CGL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\CGL-PAL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\RESOURCE.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\STDAFX.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLGLWORLD\STDAFX.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODEL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODEL.DEF +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODEL.DSP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODEL.IDL +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODEL.MAK +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODEL.RC +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODELEXE.DSP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODELEXE.MAK +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLMODELEXE.RGS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLTANGRAMMODEL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLTANGRAMMODEL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\ATLTANGRAMMODEL.RGS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\CPATLMODEL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\RESOURCE.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\STDAFX.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODEL\STDAFX.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODELPS\ATLMODELPS.DEF +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODELPS\ATLMODELPS.DSP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLMODELPS\ATLMODELPS.MAK +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.DEF +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.DSP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.DSW +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.IDL +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.MAK +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.RC +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVAS.RGS +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVASIMPL.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\ATLTANGRAMCANVASIMPL.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\RESOURCE.H +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\STDAFX.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\ATLTANGRAMCANVAS\STDAFX.H +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MAINFRM.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MAINFRM.H +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MFCTANGRAM.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MFCTANGRAM.DSP +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MFCTANGRAM.H +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MFCTANGRAM.MAK +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MFCTANGRAM.RC +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MFCTANGRAMCONFIGDLG.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\MFCTANGRAMCONFIGDLG.H +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\REGISTRY.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\RES +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\RESOURCE.H +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\STDAFX.CPP +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\STDAFX.H +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\RES\MFCTANGRAM.ICO +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\RES\MFCTANGRAM.RC2 +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\RES\MFCTANGRAMDOC.ICO +SAMPLES\VC98\ATL\ATLTANGRAM\MFCTANGRAM\RES\TOOLBAR.BMP +SAMPLES\VC98\ATL\BEEPER\BEEPER.CLW +SAMPLES\VC98\ATL\BEEPER\BEEPER.CPP +SAMPLES\VC98\ATL\BEEPER\BEEPER.DEF +SAMPLES\VC98\ATL\BEEPER\BEEPER.DSP +SAMPLES\VC98\ATL\BEEPER\BEEPER.DSW +SAMPLES\VC98\ATL\BEEPER\BEEPER.FRM +SAMPLES\VC98\ATL\BEEPER\BEEPER.HTM +SAMPLES\VC98\ATL\BEEPER\BEEPER.ICO +SAMPLES\VC98\ATL\BEEPER\BEEPER.IDL +SAMPLES\VC98\ATL\BEEPER\BEEPER.MAK +SAMPLES\VC98\ATL\BEEPER\BEEPER.RC +SAMPLES\VC98\ATL\BEEPER\BEEPER.TXT +SAMPLES\VC98\ATL\BEEPER\BEEPER.VBP +SAMPLES\VC98\ATL\BEEPER\BEEPOBJ.CPP +SAMPLES\VC98\ATL\BEEPER\BEEPOBJ.H +SAMPLES\VC98\ATL\BEEPER\BEEPRES.H +SAMPLES\VC98\ATL\BEEPER\PREBEEP.CPP +SAMPLES\VC98\ATL\BEEPER\PREBEEP.H +SAMPLES\VC98\ATL\CDINFO\CCDINFO.CPP +SAMPLES\VC98\ATL\CDINFO\CCDINFO.H +SAMPLES\VC98\ATL\CDINFO\CCDINFO.INL +SAMPLES\VC98\ATL\CDINFO\CDINFO.CPP +SAMPLES\VC98\ATL\CDINFO\CDINFO.DEF +SAMPLES\VC98\ATL\CDINFO\CDINFO.DSP +SAMPLES\VC98\ATL\CDINFO\CDINFO.DSW +SAMPLES\VC98\ATL\CDINFO\CDINFO.HTM +SAMPLES\VC98\ATL\CDINFO\CDINFO.IDL +SAMPLES\VC98\ATL\CDINFO\CDINFO.MAK +SAMPLES\VC98\ATL\CDINFO\CDINFO.RC +SAMPLES\VC98\ATL\CDINFO\CDINFO.RGS +SAMPLES\VC98\ATL\CDINFO\CDINFO.TXT +SAMPLES\VC98\ATL\CDINFO\CDINFO1.CPP +SAMPLES\VC98\ATL\CDINFO\CDINFO1.H +SAMPLES\VC98\ATL\CDINFO\CPCDINFO.H +SAMPLES\VC98\ATL\CDINFO\RESOURCE.H +SAMPLES\VC98\ATL\CDINFO\STDAFX.CPP +SAMPLES\VC98\ATL\CDINFO\STDAFX.H +SAMPLES\VC98\ATL\CDINFO\TOOLBTN.BMP +SAMPLES\VC98\ATL\CDINFO\VBTEST +SAMPLES\VC98\ATL\CDINFO\VBTEST\FRMCD.FRM +SAMPLES\VC98\ATL\CDINFO\VBTEST\FRMCD.FRX +SAMPLES\VC98\ATL\CDINFO\VBTEST\VBCD.VBP +SAMPLES\VC98\ATL\CIRC\BMP1.BMP +SAMPLES\VC98\ATL\CIRC\CIRC.CPP +SAMPLES\VC98\ATL\CIRC\CIRC.DEF +SAMPLES\VC98\ATL\CIRC\CIRC.DSP +SAMPLES\VC98\ATL\CIRC\CIRC.DSW +SAMPLES\VC98\ATL\CIRC\CIRC.IDL +SAMPLES\VC98\ATL\CIRC\CIRC.MAK +SAMPLES\VC98\ATL\CIRC\CIRC.RC +SAMPLES\VC98\ATL\CIRC\CIRCCTL.CPP +SAMPLES\VC98\ATL\CIRC\CIRCCTL.H +SAMPLES\VC98\ATL\CIRC\CIRCCTL.RGS +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.CPP +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.DEF +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.DSP +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.DSW +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.H +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.MAK +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.RC +SAMPLES\VC98\ATL\CIRC\CIRCPROPS.RGS +SAMPLES\VC98\ATL\CIRC\CIRCPRRES.H +SAMPLES\VC98\ATL\CIRC\CPEVENT.H +SAMPLES\VC98\ATL\CIRC\ICO10.ICO +SAMPLES\VC98\ATL\CIRC\RESOURCE.H +SAMPLES\VC98\ATL\CIRC\STDAFX.CPP +SAMPLES\VC98\ATL\CIRC\STDAFX.H +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.CPP +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.DEF +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.DSP +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.DSW +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.FRM +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.IDL +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.MAK +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.RC +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.TXT +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOLL.VBP +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOPS.DEF +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCOPS.MAK +SAMPLES\VC98\ATL\CIRCCOLL\CIRCCRES.H +SAMPLES\VC98\ATL\CIRCCOLL\OBJECTS.CPP +SAMPLES\VC98\ATL\CIRCCOLL\OBJECTS.H +SAMPLES\VC98\ATL\CIRCCOLL\PRECIRCC.CPP +SAMPLES\VC98\ATL\CIRCCOLL\PRECIRCC.H +SAMPLES\VC98\ATL\CIRCCOLL\TANGLVIS.CPP +SAMPLES\VC98\ATL\COMMAP\AGGREG +SAMPLES\VC98\ATL\COMMAP\CHAIN.CPP +SAMPLES\VC98\ATL\COMMAP\CHAIN.H +SAMPLES\VC98\ATL\COMMAP\CHAIN.RGS +SAMPLES\VC98\ATL\COMMAP\COMMAP.CPP +SAMPLES\VC98\ATL\COMMAP\COMMAP.DEF +SAMPLES\VC98\ATL\COMMAP\COMMAP.DSP +SAMPLES\VC98\ATL\COMMAP\COMMAP.DSW +SAMPLES\VC98\ATL\COMMAP\COMMAP.FRM +SAMPLES\VC98\ATL\COMMAP\COMMAP.HTM +SAMPLES\VC98\ATL\COMMAP\COMMAP.IDL +SAMPLES\VC98\ATL\COMMAP\COMMAP.MAK +SAMPLES\VC98\ATL\COMMAP\COMMAP.RC +SAMPLES\VC98\ATL\COMMAP\COMMAP.TXT +SAMPLES\VC98\ATL\COMMAP\COMMAP.VBP +SAMPLES\VC98\ATL\COMMAP\COMMAPPS.DEF +SAMPLES\VC98\ATL\COMMAP\COMMAPPS.MAK +SAMPLES\VC98\ATL\COMMAP\IE_ANIM.GIF +SAMPLES\VC98\ATL\COMMAP\MAPRES.H +SAMPLES\VC98\ATL\COMMAP\OUTER.CPP +SAMPLES\VC98\ATL\COMMAP\OUTER.H +SAMPLES\VC98\ATL\COMMAP\OUTER.RGS +SAMPLES\VC98\ATL\COMMAP\PREMAP.CPP +SAMPLES\VC98\ATL\COMMAP\PREMAP.H +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGG.CPP +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGG.H +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGG.RGS +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGBLIND.CPP +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGBLIND.H +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGBLIND.RGS +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREG.CPP +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREG.DEF +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREG.DSP +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREG.DSW +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREG.IDL +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREG.MAK +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREG.RC +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREGPS.DEF +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGREGPS.MAK +SAMPLES\VC98\ATL\COMMAP\AGGREG\AGGRES.H +SAMPLES\VC98\ATL\COMMAP\AGGREG\AUTOAGG.CPP +SAMPLES\VC98\ATL\COMMAP\AGGREG\AUTOAGG.H +SAMPLES\VC98\ATL\COMMAP\AGGREG\AUTOAGG.RGS +SAMPLES\VC98\ATL\COMMAP\AGGREG\AUTOAGGB.CPP +SAMPLES\VC98\ATL\COMMAP\AGGREG\AUTOAGGB.H +SAMPLES\VC98\ATL\COMMAP\AGGREG\AUTOAGGB.RGS +SAMPLES\VC98\ATL\COMMAP\AGGREG\PREAGG.CPP +SAMPLES\VC98\ATL\COMMAP\AGGREG\PREAGG.H +SAMPLES\VC98\ATL\CONNECT\CONNECT.CPP +SAMPLES\VC98\ATL\CONNECT\CONNECT.DEF +SAMPLES\VC98\ATL\CONNECT\CONNECT.DSP +SAMPLES\VC98\ATL\CONNECT\CONNECT.DSW +SAMPLES\VC98\ATL\CONNECT\CONNECT.IDL +SAMPLES\VC98\ATL\CONNECT\CONNECT.MAK +SAMPLES\VC98\ATL\CONNECT\CONNECT.RC +SAMPLES\VC98\ATL\CONNECT\CONNECT.TXT +SAMPLES\VC98\ATL\CONNECT\CONNRES.H +SAMPLES\VC98\ATL\CONNECT\DRIVE +SAMPLES\VC98\ATL\CONNECT\MDRIVE +SAMPLES\VC98\ATL\CONNECT\PRECONN.CPP +SAMPLES\VC98\ATL\CONNECT\PRECONN.H +SAMPLES\VC98\ATL\CONNECT\RANDOM.CPP +SAMPLES\VC98\ATL\CONNECT\RANDOM.H +SAMPLES\VC98\ATL\CONNECT\RANDOM.RGS +SAMPLES\VC98\ATL\CONNECT\DRIVE\DRIVE.CPP +SAMPLES\VC98\ATL\CONNECT\DRIVE\DRIVE.DSP +SAMPLES\VC98\ATL\CONNECT\DRIVE\DRIVE.DSW +SAMPLES\VC98\ATL\CONNECT\DRIVE\DRIVE.MAK +SAMPLES\VC98\ATL\CONNECT\DRIVE\PREDRIVE.CPP +SAMPLES\VC98\ATL\CONNECT\DRIVE\PREDRIVE.H +SAMPLES\VC98\ATL\CONNECT\MDRIVE\DRIVEDLG.CPP +SAMPLES\VC98\ATL\CONNECT\MDRIVE\DRIVEDLG.H +SAMPLES\VC98\ATL\CONNECT\MDRIVE\DRIVER.CPP +SAMPLES\VC98\ATL\CONNECT\MDRIVE\DRIVER.H +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVE.CLW +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVE.CPP +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVE.DSP +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVE.DSW +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVE.H +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVE.MAK +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVE.RC +SAMPLES\VC98\ATL\CONNECT\MDRIVE\MDRIVRES.H +SAMPLES\VC98\ATL\CONNECT\MDRIVE\PREMDRIV.CPP +SAMPLES\VC98\ATL\CONNECT\MDRIVE\PREMDRIV.H +SAMPLES\VC98\ATL\CONNECT\MDRIVE\RES +SAMPLES\VC98\ATL\CONNECT\MDRIVE\RES\MDRIVE.ICO +SAMPLES\VC98\ATL\CONNECT\MDRIVE\RES\MDRIVE.RC2 +SAMPLES\VC98\ATL\DCOM\ATLDRAW +SAMPLES\VC98\ATL\DCOM\DCOM.TXT +SAMPLES\VC98\ATL\DCOM\DRAWCTL +SAMPLES\VC98\ATL\DCOM\DRAWSERV +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDDOC.CPP +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDDOC.H +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDRAW.CPP +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDRAW.DSP +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDRAW.DSW +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDRAW.H +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDRAW.MAK +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDRAW.RC +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDRES.H +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDVIEW.CPP +SAMPLES\VC98\ATL\DCOM\ATLDRAW\ATLDVIEW.H +SAMPLES\VC98\ATL\DCOM\ATLDRAW\MAINFRM.CPP +SAMPLES\VC98\ATL\DCOM\ATLDRAW\MAINFRM.H +SAMPLES\VC98\ATL\DCOM\ATLDRAW\PREATLDR.CPP +SAMPLES\VC98\ATL\DCOM\ATLDRAW\PREATLDR.H +SAMPLES\VC98\ATL\DCOM\ATLDRAW\RES +SAMPLES\VC98\ATL\DCOM\ATLDRAW\RES\ATLDDOC.ICO +SAMPLES\VC98\ATL\DCOM\ATLDRAW\RES\ATLDRAW.ICO +SAMPLES\VC98\ATL\DCOM\ATLDRAW\RES\ATLDRAW.RC2 +SAMPLES\VC98\ATL\DCOM\ATLDRAW\RES\TOOLBAR.BMP +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAW.CPP +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAW.H +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.CPP +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.DEF +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.DSP +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.DSW +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.IDL +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.MAK +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.RC +SAMPLES\VC98\ATL\DCOM\DRAWCTL\DRAWCTL.RGS +SAMPLES\VC98\ATL\DCOM\DRAWCTL\RESOURCE.H +SAMPLES\VC98\ATL\DCOM\DRAWCTL\STDAFX.CPP +SAMPLES\VC98\ATL\DCOM\DRAWCTL\STDAFX.H +SAMPLES\VC98\ATL\DCOM\DRAWCTL\TOOLBTN.BMP +SAMPLES\VC98\ATL\DCOM\DRAWSERV\CPIDSERV.H +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWOBJ.CPP +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWOBJ.H +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWOBJ.RGS +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWRES.H +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWSERV.CPP +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWSERV.DSP +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWSERV.DSW +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWSERV.IDL +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWSERV.MAK +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWSERV.RC +SAMPLES\VC98\ATL\DCOM\DRAWSERV\DRAWSERV.RGS +SAMPLES\VC98\ATL\DCOM\DRAWSERV\PREDRAW.CPP +SAMPLES\VC98\ATL\DCOM\DRAWSERV\PREDRAW.H +SAMPLES\VC98\ATL\DCOM\DRAWSERV\RES +SAMPLES\VC98\ATL\DCOM\DRAWSERV\RES\ATLDRAW.ICO +SAMPLES\VC98\ATL\DCOM\DRAWSERV\RES\ATLDRAW.RC2 +SAMPLES\VC98\ATL\DCOM\DRAWSERV\RES\ATLDRAWDOC.ICO +SAMPLES\VC98\ATL\DCOM\DRAWSERV\RES\TOOLBAR.BMP +SAMPLES\VC98\ATL\DIRECT3D\D3DATL.CPP +SAMPLES\VC98\ATL\DIRECT3D\D3DATL.H +SAMPLES\VC98\ATL\DIRECT3D\D3DWND.CPP +SAMPLES\VC98\ATL\DIRECT3D\D3DWND.H +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.CPP +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.DEF +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.DSP +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.DSW +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.HTM +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.IDL +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.MAK +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.RC +SAMPLES\VC98\ATL\DIRECT3D\DIRECT3D.RGS +SAMPLES\VC98\ATL\DIRECT3D\RESOURCE.H +SAMPLES\VC98\ATL\DIRECT3D\STDAFX.CPP +SAMPLES\VC98\ATL\DIRECT3D\STDAFX.H +SAMPLES\VC98\ATL\DIRECT3D\TOOLBTN.BMP +SAMPLES\VC98\ATL\LABRADOR\LABDRIV +SAMPLES\VC98\ATL\LABRADOR\LABOBJ.CPP +SAMPLES\VC98\ATL\LABRADOR\LABOBJ.H +SAMPLES\VC98\ATL\LABRADOR\LABPS.DEF +SAMPLES\VC98\ATL\LABRADOR\LABPS.MAK +SAMPLES\VC98\ATL\LABRADOR\LABRADOR.CPP +SAMPLES\VC98\ATL\LABRADOR\LABRADOR.DSP +SAMPLES\VC98\ATL\LABRADOR\LABRADOR.DSW +SAMPLES\VC98\ATL\LABRADOR\LABRADOR.IDL +SAMPLES\VC98\ATL\LABRADOR\LABRADOR.MAK +SAMPLES\VC98\ATL\LABRADOR\LABRADOR.RC +SAMPLES\VC98\ATL\LABRADOR\LABRADOR.TXT +SAMPLES\VC98\ATL\LABRADOR\LABRES.H +SAMPLES\VC98\ATL\LABRADOR\PRELAB.CPP +SAMPLES\VC98\ATL\LABRADOR\PRELAB.H +SAMPLES\VC98\ATL\LABRADOR\LABDRIV\LABDRIV.CPP +SAMPLES\VC98\ATL\LABRADOR\LABDRIV\LABDRIV.DSP +SAMPLES\VC98\ATL\LABRADOR\LABDRIV\LABDRIV.DSW +SAMPLES\VC98\ATL\LABRADOR\LABDRIV\LABDRIV.MAK +SAMPLES\VC98\ATL\LABRADOR\LABDRIV\PRELABDR.CPP +SAMPLES\VC98\ATL\LABRADOR\LABDRIV\PRELABDR.H +SAMPLES\VC98\ATL\MFCATL\MFCATL.CLW +SAMPLES\VC98\ATL\MFCATL\MFCATL.CPP +SAMPLES\VC98\ATL\MFCATL\MFCATL.DSP +SAMPLES\VC98\ATL\MFCATL\MFCATL.DSW +SAMPLES\VC98\ATL\MFCATL\MFCATL.FRM +SAMPLES\VC98\ATL\MFCATL\MFCATL.H +SAMPLES\VC98\ATL\MFCATL\MFCATL.ICO +SAMPLES\VC98\ATL\MFCATL\MFCATL.MAK +SAMPLES\VC98\ATL\MFCATL\MFCATL.ODL +SAMPLES\VC98\ATL\MFCATL\MFCATL.RC +SAMPLES\VC98\ATL\MFCATL\MFCATL.TXT +SAMPLES\VC98\ATL\MFCATL\MFCATL.VBP +SAMPLES\VC98\ATL\MFCATL\MFCATLDL.CPP +SAMPLES\VC98\ATL\MFCATL\MFCATLDL.H +SAMPLES\VC98\ATL\MFCATL\MFCATRES.H +SAMPLES\VC98\ATL\MFCATL\OBJONE.CPP +SAMPLES\VC98\ATL\MFCATL\OBJONE.H +SAMPLES\VC98\ATL\MFCATL\OBJTWO.CPP +SAMPLES\VC98\ATL\MFCATL\OBJTWO.H +SAMPLES\VC98\ATL\MFCATL\PREMFCAT.CPP +SAMPLES\VC98\ATL\MFCATL\PREMFCAT.H +SAMPLES\VC98\ATL\MINIMAL\MINDRIV +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.CPP +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.DEF +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.DSP +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.DSW +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.H +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.MAK +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.REG +SAMPLES\VC98\ATL\MINIMAL\MINIMAL.TXT +SAMPLES\VC98\ATL\MINIMAL\MINOBJ.CPP +SAMPLES\VC98\ATL\MINIMAL\MINOBJ.H +SAMPLES\VC98\ATL\MINIMAL\PREMIN.CPP +SAMPLES\VC98\ATL\MINIMAL\PREMIN.H +SAMPLES\VC98\ATL\MINIMAL\MINDRIV\MINDRIV.CPP +SAMPLES\VC98\ATL\MINIMAL\MINDRIV\MINDRIV.DSP +SAMPLES\VC98\ATL\MINIMAL\MINDRIV\MINDRIV.DSW +SAMPLES\VC98\ATL\MINIMAL\MINDRIV\MINDRIV.MAK +SAMPLES\VC98\ATL\MINIMAL\MINDRIV\PREMINDR.CPP +SAMPLES\VC98\ATL\MINIMAL\MINDRIV\PREMINDR.H +SAMPLES\VC98\ATL\OPENGL\ICON1.ICO +SAMPLES\VC98\ATL\OPENGL\OPENGL.CPP +SAMPLES\VC98\ATL\OPENGL\OPENGL.DEF +SAMPLES\VC98\ATL\OPENGL\OPENGL.DSP +SAMPLES\VC98\ATL\OPENGL\OPENGL.DSW +SAMPLES\VC98\ATL\OPENGL\OPENGL.HTM +SAMPLES\VC98\ATL\OPENGL\OPENGL.IDL +SAMPLES\VC98\ATL\OPENGL\OPENGL.MAK +SAMPLES\VC98\ATL\OPENGL\OPENGL.RC +SAMPLES\VC98\ATL\OPENGL\OPENGLOBJ.CPP +SAMPLES\VC98\ATL\OPENGL\OPENGLOBJ.H +SAMPLES\VC98\ATL\OPENGL\OPENGLOBJ.RGS +SAMPLES\VC98\ATL\OPENGL\RESOURCE.H +SAMPLES\VC98\ATL\OPENGL\STDAFX.CPP +SAMPLES\VC98\ATL\OPENGL\STDAFX.H +SAMPLES\VC98\ATL\POLYGON\POLYCTL.BMP +SAMPLES\VC98\ATL\POLYGON\POLYCTL.CPP +SAMPLES\VC98\ATL\POLYGON\POLYCTL.H +SAMPLES\VC98\ATL\POLYGON\POLYCTL.HTM +SAMPLES\VC98\ATL\POLYGON\POLYCTL.RGS +SAMPLES\VC98\ATL\POLYGON\POLYGON.CPP +SAMPLES\VC98\ATL\POLYGON\POLYGON.DEF +SAMPLES\VC98\ATL\POLYGON\POLYGON.DSP +SAMPLES\VC98\ATL\POLYGON\POLYGON.DSW +SAMPLES\VC98\ATL\POLYGON\POLYGON.IDL +SAMPLES\VC98\ATL\POLYGON\POLYGON.MAK +SAMPLES\VC98\ATL\POLYGON\POLYGON.PLG +SAMPLES\VC98\ATL\POLYGON\POLYGON.RC +SAMPLES\VC98\ATL\POLYGON\POLYGONCP.H +SAMPLES\VC98\ATL\POLYGON\POLYGONPS.DEF +SAMPLES\VC98\ATL\POLYGON\POLYGONPS.MK +SAMPLES\VC98\ATL\POLYGON\POLYPROP.CPP +SAMPLES\VC98\ATL\POLYGON\POLYPROP.H +SAMPLES\VC98\ATL\POLYGON\POLYPROP.RGS +SAMPLES\VC98\ATL\POLYGON\RESOURCE.H +SAMPLES\VC98\ATL\POLYGON\STDAFX.CPP +SAMPLES\VC98\ATL\POLYGON\STDAFX.H +SAMPLES\VC98\ATL\SUBEDIT\ATLEDIT.CPP +SAMPLES\VC98\ATL\SUBEDIT\ATLEDIT.H +SAMPLES\VC98\ATL\SUBEDIT\ATLEDIT.HTM +SAMPLES\VC98\ATL\SUBEDIT\ATLEDIT.RGS +SAMPLES\VC98\ATL\SUBEDIT\RESOURCE.H +SAMPLES\VC98\ATL\SUBEDIT\STDAFX.CPP +SAMPLES\VC98\ATL\SUBEDIT\STDAFX.H +SAMPLES\VC98\ATL\SUBEDIT\SUBEDIT.CPP +SAMPLES\VC98\ATL\SUBEDIT\SUBEDIT.DEF +SAMPLES\VC98\ATL\SUBEDIT\SUBEDIT.DSP +SAMPLES\VC98\ATL\SUBEDIT\SUBEDIT.DSW +SAMPLES\VC98\ATL\SUBEDIT\SUBEDIT.IDL +SAMPLES\VC98\ATL\SUBEDIT\SUBEDIT.MAK +SAMPLES\VC98\ATL\SUBEDIT\SUBEDIT.RC +SAMPLES\VC98\COM\ACDUAL +SAMPLES\VC98\COM\ADOSAMP +SAMPLES\VC98\COM\ALLINONE +SAMPLES\VC98\COM\COMEXCEL +SAMPLES\VC98\COM\COMIDE +SAMPLES\VC98\COM\COMMAIL +SAMPLES\VC98\COM\COMMAP +SAMPLES\VC98\COM\CONNECT +SAMPLES\VC98\COM\DCOM +SAMPLES\VC98\COM\FREETHRD +SAMPLES\VC98\COM\INPROC +SAMPLES\VC98\COM\LABRADOR +SAMPLES\VC98\COM\MFCCALC +SAMPLES\VC98\COM\ACDUAL\MFCCTRL +SAMPLES\VC98\COM\ACDUAL\README.TXT +SAMPLES\VC98\COM\ACDUAL\SERVER +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTOCLIK.CPP +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTOCLIK.H +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODDLG.CPP +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODDLG.H +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.CLW +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.CPP +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.DSP +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.DSW +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.H +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.MAK +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.OPT +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\AUTODRIV.RC +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\MAKEFILE +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\RES +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\RESOURCE.H +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\STDAFX.CPP +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\STDAFX.H +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\RES\AUTODRIV.ICO +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\RES\AUTODRIV.RC2 +SAMPLES\VC98\COM\ACDUAL\MFCCTRL\RES\ICON1.ICO +SAMPLES\VC98\COM\ACDUAL\SERVER\ACDUAL.DSP +SAMPLES\VC98\COM\ACDUAL\SERVER\ACDUAL.DSW +SAMPLES\VC98\COM\ACDUAL\SERVER\ACDUAL.H +SAMPLES\VC98\COM\ACDUAL\SERVER\ACDUAL.MAK +SAMPLES\VC98\COM\ACDUAL\SERVER\ACDUAL.OPT +SAMPLES\VC98\COM\ACDUAL\SERVER\ACLIKDOC.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\ACLIKDOC.H +SAMPLES\VC98\COM\ACDUAL\SERVER\ACLIKVW.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\ACLIKVW.H +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK.CLW +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK.H +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK.ODL +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK.RC +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK.REG +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK.TLB +SAMPLES\VC98\COM\ACDUAL\SERVER\AUTOCLIK_I.C +SAMPLES\VC98\COM\ACDUAL\SERVER\CHILDFRM.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\CHILDFRM.H +SAMPLES\VC98\COM\ACDUAL\SERVER\CLIKPNT.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\CLIKPNT.H +SAMPLES\VC98\COM\ACDUAL\SERVER\DIALOGS.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\DIALOGS.H +SAMPLES\VC98\COM\ACDUAL\SERVER\INITIIDS.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\MAINFRM.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\MAINFRM.H +SAMPLES\VC98\COM\ACDUAL\SERVER\MFCDUAL.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\MFCDUAL.H +SAMPLES\VC98\COM\ACDUAL\SERVER\RES +SAMPLES\VC98\COM\ACDUAL\SERVER\RESOURCE.H +SAMPLES\VC98\COM\ACDUAL\SERVER\STDAFX.CPP +SAMPLES\VC98\COM\ACDUAL\SERVER\STDAFX.H +SAMPLES\VC98\COM\ACDUAL\SERVER\RES\ACLIKDOC.ICO +SAMPLES\VC98\COM\ACDUAL\SERVER\RES\AUTOCLIK.ICO +SAMPLES\VC98\COM\ACDUAL\SERVER\RES\AUTOCLIK.RC2 +SAMPLES\VC98\COM\ACDUAL\SERVER\RES\TOOLBAR.BMP +SAMPLES\VC98\COM\ADOSAMP\ADOSAMP.TXT +SAMPLES\VC98\COM\ADOSAMP\README.TXT +SAMPLES\VC98\COM\ADOSAMP\RUNADO +SAMPLES\VC98\COM\ADOSAMP\SERVER +SAMPLES\VC98\COM\ADOSAMP\TEST.MDB +SAMPLES\VC98\COM\ADOSAMP\RUNADO\RUNADO.CPP +SAMPLES\VC98\COM\ADOSAMP\RUNADO\RUNADO.DSP +SAMPLES\VC98\COM\ADOSAMP\RUNADO\RUNADO.DSW +SAMPLES\VC98\COM\ADOSAMP\RUNADO\RUNADO.MAK +SAMPLES\VC98\COM\ADOSAMP\RUNADO\RUNADO.OPT +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.APS +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.CLW +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.CPP +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.DEF +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.DSP +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.DSW +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.H +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.IDL +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.MAK +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.OPT +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.RC +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.RGS +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP.TLB +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMPPS.DEF +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMPPS.MAK +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP_I.C +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOSAMP_P.C +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOTIER.CPP +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOTIER.H +SAMPLES\VC98\COM\ADOSAMP\SERVER\ADOTIER.RGS +SAMPLES\VC98\COM\ADOSAMP\SERVER\DLLDATA.C +SAMPLES\VC98\COM\ADOSAMP\SERVER\IADOTIER.RGS +SAMPLES\VC98\COM\ADOSAMP\SERVER\RESOURCE.H +SAMPLES\VC98\COM\ADOSAMP\SERVER\STDAFX.CPP +SAMPLES\VC98\COM\ADOSAMP\SERVER\STDAFX.H +SAMPLES\VC98\COM\ALLINONE\ALLINONE.TXT +SAMPLES\VC98\COM\ALLINONE\COLLECT +SAMPLES\VC98\COM\ALLINONE\README.TXT +SAMPLES\VC98\COM\ALLINONE\SERVER +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLECT.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLECT.DSP +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLECT.DSW +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLECT.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLECT.MAK +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLECT.OPT +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLECT.RC +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLEDOC.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLEDOC.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLEVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\COLLEVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\DWARRYVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\DWARRYVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\INTLSTVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\INTLSTVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\L.JPN +SAMPLES\VC98\COM\ALLINONE\COLLECT\MAINFRM.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\MAINFRM.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\MAPDWVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\MAPDWVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\MAPSSVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\MAPSSVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\PTARRYVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\PTARRYVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\RES +SAMPLES\VC98\COM\ALLINONE\COLLECT\RESOURCE.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\STDAFX.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\STDAFX.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\STRLSTVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\STRLSTVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\TYPARYVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\TYPARYVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\TYPLSTVW.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\TYPLSTVW.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\TYPTRMAP.CPP +SAMPLES\VC98\COM\ALLINONE\COLLECT\TYPTRMAP.H +SAMPLES\VC98\COM\ALLINONE\COLLECT\L.JPN\COLLECT.RC +SAMPLES\VC98\COM\ALLINONE\COLLECT\L.JPN\RES +SAMPLES\VC98\COM\ALLINONE\COLLECT\L.JPN\RES\COLLECT.RC2 +SAMPLES\VC98\COM\ALLINONE\COLLECT\RES\COLLECT.ICO +SAMPLES\VC98\COM\ALLINONE\COLLECT\RES\COLLECT.RC2 +SAMPLES\VC98\COM\ALLINONE\COLLECT\RES\TOOLBAR.BMP +SAMPLES\VC98\COM\ALLINONE\SERVER\CDATA.H +SAMPLES\VC98\COM\ALLINONE\SERVER\DLLDATA.C +SAMPLES\VC98\COM\ALLINONE\SERVER\IDATA.H +SAMPLES\VC98\COM\ALLINONE\SERVER\IDATA.IDL +SAMPLES\VC98\COM\ALLINONE\SERVER\ISTLARRAYS.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\ISTLDWORDARRAY.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\ISTLLISTS.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\ISTLMAPDWORDTOMYSTRUCT.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\ISTLMAPS.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\ISTLMAPSTRINGTOMYOBJECT.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\ISTLMAPSTRINGTOSTRING.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\RESOURCE.H +SAMPLES\VC98\COM\ALLINONE\SERVER\STDAFX.CPP +SAMPLES\VC98\COM\ALLINONE\SERVER\STDAFX.H +SAMPLES\VC98\COM\ALLINONE\SERVER\STLARRAYS.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.APS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.CLW +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.CPP +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.DEF +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.DSP +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.DSW +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.H +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.IDL +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.MAK +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.OPT +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.RC +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL.TLB +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLLPS.DEF +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLLPS.DSP +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLLPS.DSW +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLLPS.MAK +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLLPS.OPT +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL_.CPP +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL_.H +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL_I.C +SAMPLES\VC98\COM\ALLINONE\SERVER\STLCOLL_P.C +SAMPLES\VC98\COM\ALLINONE\SERVER\STLDWORDARRAY.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLLIST1.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLLISTS.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLMAPDWORDTOMYSTRUCT.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLMAPS.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLMAPSTRINGTOMYOBJECT.RGS +SAMPLES\VC98\COM\ALLINONE\SERVER\STLMAPSTRINGTOSTRING.RGS +SAMPLES\VC98\COM\COMEXCEL\COMEXCEL.BAS +SAMPLES\VC98\COM\COMEXCEL\COMEXCEL.FRM +SAMPLES\VC98\COM\COMEXCEL\COMEXCEL.VBP +SAMPLES\VC98\COM\COMEXCEL\COMEXCEL.VBW +SAMPLES\VC98\COM\COMEXCEL\EXCEL7 +SAMPLES\VC98\COM\COMEXCEL\EXCEL8 +SAMPLES\VC98\COM\COMEXCEL\EXCEL7\COMEXCEL.CPP +SAMPLES\VC98\COM\COMEXCEL\EXCEL7\EXCEL7.DSP +SAMPLES\VC98\COM\COMEXCEL\EXCEL7\EXCEL7.DSW +SAMPLES\VC98\COM\COMEXCEL\EXCEL7\EXCEL7.OPT +SAMPLES\VC98\COM\COMEXCEL\EXCEL8\COMEXCEL.CPP +SAMPLES\VC98\COM\COMEXCEL\EXCEL8\COMEXCEL.DSP +SAMPLES\VC98\COM\COMEXCEL\EXCEL8\COMEXCEL.DSW +SAMPLES\VC98\COM\COMEXCEL\EXCEL8\COMEXCEL.OPT +SAMPLES\VC98\COM\COMIDE\COMIDE1 +SAMPLES\VC98\COM\COMIDE\COMIDE2 +SAMPLES\VC98\COM\COMIDE\COMIDE1\COMIDE1.CPP +SAMPLES\VC98\COM\COMIDE\COMIDE1\COMIDE1.DSP +SAMPLES\VC98\COM\COMIDE\COMIDE1\COMIDE1.DSW +SAMPLES\VC98\COM\COMIDE\COMIDE1\COMIDE1.OPT +SAMPLES\VC98\COM\COMIDE\COMIDE2\COMIDE2.CPP +SAMPLES\VC98\COM\COMIDE\COMIDE2\COMIDE2.DSP +SAMPLES\VC98\COM\COMIDE\COMIDE2\COMIDE2.DSW +SAMPLES\VC98\COM\COMMAIL\COMMAIL.CPP +SAMPLES\VC98\COM\COMMAIL\COMMAIL.DSP +SAMPLES\VC98\COM\COMMAIL\COMMAIL.DSW +SAMPLES\VC98\COM\COMMAIL\COMMAIL.FRM +SAMPLES\VC98\COM\COMMAIL\COMMAIL.OPT +SAMPLES\VC98\COM\COMMAIL\COMMAIL.VBP +SAMPLES\VC98\COM\COMMAIL\COMMAIL.VBW +SAMPLES\VC98\COM\COMMAIL\COMMSG.TXT +SAMPLES\VC98\COM\COMMAP\AGGREG +SAMPLES\VC98\COM\COMMAP\CHAIN.CPP +SAMPLES\VC98\COM\COMMAP\CHAIN.H +SAMPLES\VC98\COM\COMMAP\CHAIN.RGS +SAMPLES\VC98\COM\COMMAP\COMMAP.CPP +SAMPLES\VC98\COM\COMMAP\COMMAP.DEF +SAMPLES\VC98\COM\COMMAP\COMMAP.DSP +SAMPLES\VC98\COM\COMMAP\COMMAP.DSW +SAMPLES\VC98\COM\COMMAP\COMMAP.FRM +SAMPLES\VC98\COM\COMMAP\COMMAP.H +SAMPLES\VC98\COM\COMMAP\COMMAP.HTM +SAMPLES\VC98\COM\COMMAP\COMMAP.IDL +SAMPLES\VC98\COM\COMMAP\COMMAP.MAK +SAMPLES\VC98\COM\COMMAP\COMMAP.OPT +SAMPLES\VC98\COM\COMMAP\COMMAP.RC +SAMPLES\VC98\COM\COMMAP\COMMAP.TLB +SAMPLES\VC98\COM\COMMAP\COMMAP.TXT +SAMPLES\VC98\COM\COMMAP\COMMAP.VBP +SAMPLES\VC98\COM\COMMAP\COMMAP.VBW +SAMPLES\VC98\COM\COMMAP\COMMAP_I.C +SAMPLES\VC98\COM\COMMAP\COMMAP_P.C +SAMPLES\VC98\COM\COMMAP\CTLCOMM +SAMPLES\VC98\COM\COMMAP\DLLDATA.C +SAMPLES\VC98\COM\COMMAP\IE_ANIM.GIF +SAMPLES\VC98\COM\COMMAP\MAPRES.H +SAMPLES\VC98\COM\COMMAP\OUTER.CPP +SAMPLES\VC98\COM\COMMAP\OUTER.H +SAMPLES\VC98\COM\COMMAP\OUTER.RGS +SAMPLES\VC98\COM\COMMAP\PREMAP.CPP +SAMPLES\VC98\COM\COMMAP\PREMAP.H +SAMPLES\VC98\COM\COMMAP\AGGREG\AGG.CPP +SAMPLES\VC98\COM\COMMAP\AGGREG\AGG.H +SAMPLES\VC98\COM\COMMAP\AGGREG\AGG.RGS +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGBLIND.CPP +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGBLIND.H +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGBLIND.RGS +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.CPP +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.DEF +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.DSP +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.DSW +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.H +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.IDL +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.MAK +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.OPT +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.RC +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG.TLB +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREGPS.DEF +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREGPS.MAK +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG_I.C +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGREG_P.C +SAMPLES\VC98\COM\COMMAP\AGGREG\AGGRES.H +SAMPLES\VC98\COM\COMMAP\AGGREG\AUTOAGG.CPP +SAMPLES\VC98\COM\COMMAP\AGGREG\AUTOAGG.H +SAMPLES\VC98\COM\COMMAP\AGGREG\AUTOAGG.RGS +SAMPLES\VC98\COM\COMMAP\AGGREG\AUTOAGGB.CPP +SAMPLES\VC98\COM\COMMAP\AGGREG\AUTOAGGB.H +SAMPLES\VC98\COM\COMMAP\AGGREG\AUTOAGGB.RGS +SAMPLES\VC98\COM\COMMAP\AGGREG\DLLDATA.C +SAMPLES\VC98\COM\COMMAP\AGGREG\PREAGG.CPP +SAMPLES\VC98\COM\COMMAP\AGGREG\PREAGG.H +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.CLW +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.CPP +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.DSP +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.DSW +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.H +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.MAK +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.OPT +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMM.RC +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMMDLG.CPP +SAMPLES\VC98\COM\COMMAP\CTLCOMM\CTLCOMMDLG.H +SAMPLES\VC98\COM\COMMAP\CTLCOMM\README.TXT +SAMPLES\VC98\COM\COMMAP\CTLCOMM\RES +SAMPLES\VC98\COM\COMMAP\CTLCOMM\RESOURCE.H +SAMPLES\VC98\COM\COMMAP\CTLCOMM\STDAFX.CPP +SAMPLES\VC98\COM\COMMAP\CTLCOMM\STDAFX.H +SAMPLES\VC98\COM\COMMAP\CTLCOMM\RES\CTLCOMM.ICO +SAMPLES\VC98\COM\COMMAP\CTLCOMM\RES\CTLCOMM.RC2 +SAMPLES\VC98\COM\CONNECT\CONNECT.TXT +SAMPLES\VC98\COM\CONNECT\DRIVE +SAMPLES\VC98\COM\CONNECT\MDRIVE +SAMPLES\VC98\COM\CONNECT\README.TXT +SAMPLES\VC98\COM\CONNECT\SERVER +SAMPLES\VC98\COM\CONNECT\DRIVE\DRIVE.CPP +SAMPLES\VC98\COM\CONNECT\DRIVE\DRIVE.DSP +SAMPLES\VC98\COM\CONNECT\DRIVE\DRIVE.DSW +SAMPLES\VC98\COM\CONNECT\DRIVE\DRIVE.MAK +SAMPLES\VC98\COM\CONNECT\DRIVE\DRIVE.OPT +SAMPLES\VC98\COM\CONNECT\DRIVE\PREDRIVE.CPP +SAMPLES\VC98\COM\CONNECT\DRIVE\PREDRIVE.H +SAMPLES\VC98\COM\CONNECT\MDRIVE\DRIVEDLG.CPP +SAMPLES\VC98\COM\CONNECT\MDRIVE\DRIVEDLG.H +SAMPLES\VC98\COM\CONNECT\MDRIVE\DRIVER.CPP +SAMPLES\VC98\COM\CONNECT\MDRIVE\DRIVER.H +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.CLW +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.CPP +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.DSP +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.DSW +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.H +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.MAK +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.OPT +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVE.RC +SAMPLES\VC98\COM\CONNECT\MDRIVE\MDRIVRES.H +SAMPLES\VC98\COM\CONNECT\MDRIVE\PREMDRIV.CPP +SAMPLES\VC98\COM\CONNECT\MDRIVE\PREMDRIV.H +SAMPLES\VC98\COM\CONNECT\MDRIVE\RES +SAMPLES\VC98\COM\CONNECT\MDRIVE\RES\MDRIVE.ICO +SAMPLES\VC98\COM\CONNECT\MDRIVE\RES\MDRIVE.RC2 +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.CPP +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.DEF +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.DSP +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.DSW +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.H +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.IDL +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.MAK +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.OPT +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.RC +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.TLB +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT.TXT +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT_I.C +SAMPLES\VC98\COM\CONNECT\SERVER\CONNECT_P.C +SAMPLES\VC98\COM\CONNECT\SERVER\CONNRES.H +SAMPLES\VC98\COM\CONNECT\SERVER\DLLDATA.C +SAMPLES\VC98\COM\CONNECT\SERVER\PRECONN.CPP +SAMPLES\VC98\COM\CONNECT\SERVER\PRECONN.H +SAMPLES\VC98\COM\CONNECT\SERVER\RANDOM.CPP +SAMPLES\VC98\COM\CONNECT\SERVER\RANDOM.H +SAMPLES\VC98\COM\CONNECT\SERVER\RANDOM.RGS +SAMPLES\VC98\COM\DCOM\ATLCONT +SAMPLES\VC98\COM\DCOM\ATLDRAW +SAMPLES\VC98\COM\DCOM\DCOM.TXT +SAMPLES\VC98\COM\DCOM\DRAWCTL +SAMPLES\VC98\COM\DCOM\DRAWSERV +SAMPLES\VC98\COM\DCOM\MFCCONT +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.CPP +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.DSP +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.DSW +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.H +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.IDL +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.MAK +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.OPT +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.RC +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.RGS +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT.TLB +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT1.CPP +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT1.H +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT_I.C +SAMPLES\VC98\COM\DCOM\ATLCONT\ATLCONT_P.C +SAMPLES\VC98\COM\DCOM\ATLCONT\DLLDATA.C +SAMPLES\VC98\COM\DCOM\ATLCONT\RESOURCE.H +SAMPLES\VC98\COM\DCOM\ATLCONT\STDAFX.CPP +SAMPLES\VC98\COM\DCOM\ATLCONT\STDAFX.H +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDDOC.CPP +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDDOC.H +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.CLW +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.CPP +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.DSP +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.DSW +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.H +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.MAK +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.OPT +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRAW.RC +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDRES.H +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDVIEW.CPP +SAMPLES\VC98\COM\DCOM\ATLDRAW\ATLDVIEW.H +SAMPLES\VC98\COM\DCOM\ATLDRAW\MAINFRM.CPP +SAMPLES\VC98\COM\DCOM\ATLDRAW\MAINFRM.H +SAMPLES\VC98\COM\DCOM\ATLDRAW\PREATLDR.CPP +SAMPLES\VC98\COM\DCOM\ATLDRAW\PREATLDR.H +SAMPLES\VC98\COM\DCOM\ATLDRAW\RES +SAMPLES\VC98\COM\DCOM\ATLDRAW\RES\ATLDDOC.ICO +SAMPLES\VC98\COM\DCOM\ATLDRAW\RES\ATLDRAW.ICO +SAMPLES\VC98\COM\DCOM\ATLDRAW\RES\ATLDRAW.RC2 +SAMPLES\VC98\COM\DCOM\ATLDRAW\RES\TOOLBAR.BMP +SAMPLES\VC98\COM\DCOM\DRAWCTL\DLLDATA.C +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAW.CPP +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAW.H +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.CPP +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.DEF +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.DSP +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.DSW +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.H +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.IDL +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.MAK +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.OPT +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.RC +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.RGS +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL.TLB +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL_I.C +SAMPLES\VC98\COM\DCOM\DRAWCTL\DRAWCTL_P.C +SAMPLES\VC98\COM\DCOM\DRAWCTL\RESOURCE.H +SAMPLES\VC98\COM\DCOM\DRAWCTL\STDAFX.CPP +SAMPLES\VC98\COM\DCOM\DRAWCTL\STDAFX.H +SAMPLES\VC98\COM\DCOM\DRAWCTL\TOOLBTN.BMP +SAMPLES\VC98\COM\DCOM\DRAWSERV\CPIDSERV.H +SAMPLES\VC98\COM\DCOM\DRAWSERV\DLLDATA.C +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWOBJ.CPP +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWOBJ.H +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWOBJ.RGS +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWRES.H +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.CPP +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.DSP +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.DSW +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.H +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.IDL +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.MAK +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.OPT +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.RC +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.RGS +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV.TLB +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV_I.C +SAMPLES\VC98\COM\DCOM\DRAWSERV\DRAWSERV_P.C +SAMPLES\VC98\COM\DCOM\DRAWSERV\PREDRAW.CPP +SAMPLES\VC98\COM\DCOM\DRAWSERV\PREDRAW.H +SAMPLES\VC98\COM\DCOM\DRAWSERV\RES +SAMPLES\VC98\COM\DCOM\DRAWSERV\RES\ATLDRAW.ICO +SAMPLES\VC98\COM\DCOM\DRAWSERV\RES\ATLDRAW.RC2 +SAMPLES\VC98\COM\DCOM\DRAWSERV\RES\ATLDRAWDOC.ICO +SAMPLES\VC98\COM\DCOM\DRAWSERV\RES\TOOLBAR.BMP +SAMPLES\VC98\COM\DCOM\MFCCONT\DRAWCTL.CPP +SAMPLES\VC98\COM\DCOM\MFCCONT\DRAWCTL.H +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.CLW +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.CPP +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.DSP +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.DSW +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.H +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.MAK +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.OPT +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONT.RC +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONTDLG.CPP +SAMPLES\VC98\COM\DCOM\MFCCONT\MFCCONTDLG.H +SAMPLES\VC98\COM\DCOM\MFCCONT\README.TXT +SAMPLES\VC98\COM\DCOM\MFCCONT\RES +SAMPLES\VC98\COM\DCOM\MFCCONT\RESOURCE.H +SAMPLES\VC98\COM\DCOM\MFCCONT\STDAFX.CPP +SAMPLES\VC98\COM\DCOM\MFCCONT\STDAFX.H +SAMPLES\VC98\COM\DCOM\MFCCONT\RES\MFCCONT.ICO +SAMPLES\VC98\COM\DCOM\MFCCONT\RES\MFCCONT.RC2 +SAMPLES\VC98\COM\FREETHRD\FRECLIEN +SAMPLES\VC98\COM\FREETHRD\README.TXT +SAMPLES\VC98\COM\FREETHRD\SERVER +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\APPUTIL.CPP +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.CPP +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.DSP +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.DSW +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.H +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.ICO +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.MAK +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.OPT +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.RC +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\FRECLIEN.TXT +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\GUIBALL.CPP +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\GUIBALL.H +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\MAKEFILE +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\PRECLIEN.CPP +SAMPLES\VC98\COM\FREETHRD\FRECLIEN\PRECLIEN.H +SAMPLES\VC98\COM\FREETHRD\SERVER\APPUTIL.CPP +SAMPLES\VC98\COM\FREETHRD\SERVER\APPUTIL.H +SAMPLES\VC98\COM\FREETHRD\SERVER\APPUTIL.TXT +SAMPLES\VC98\COM\FREETHRD\SERVER\BALL.CPP +SAMPLES\VC98\COM\FREETHRD\SERVER\BALL.H +SAMPLES\VC98\COM\FREETHRD\SERVER\DLLDATA.C +SAMPLES\VC98\COM\FREETHRD\SERVER\FACTORY.CPP +SAMPLES\VC98\COM\FREETHRD\SERVER\FACTORY.H +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.CPP +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.DEF +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.DSP +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.DSW +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.H +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.ICO +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.MAK +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.OPT +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.RC +SAMPLES\VC98\COM\FREETHRD\SERVER\FRESERVE.TXT +SAMPLES\VC98\COM\FREETHRD\SERVER\IBALL.H +SAMPLES\VC98\COM\FREETHRD\SERVER\IBALL.IDL +SAMPLES\VC98\COM\FREETHRD\SERVER\IBALL.TLB +SAMPLES\VC98\COM\FREETHRD\SERVER\IBALL_I.C +SAMPLES\VC98\COM\FREETHRD\SERVER\IBALL_P.C +SAMPLES\VC98\COM\FREETHRD\SERVER\PRESERVE.CPP +SAMPLES\VC98\COM\FREETHRD\SERVER\PRESERVE.H +SAMPLES\VC98\COM\FREETHRD\SERVER\SERVER.CPP +SAMPLES\VC98\COM\FREETHRD\SERVER\SERVER.H +SAMPLES\VC98\COM\INPROC\IPDRIVE +SAMPLES\VC98\COM\INPROC\README.TXT +SAMPLES\VC98\COM\INPROC\SERVER +SAMPLES\VC98\COM\INPROC\IPDRIVE\DRIVE16.DEF +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIDOC.CPP +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIDOC.H +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.CLW +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.CPP +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.DSP +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.DSW +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.H +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.MAK +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.OPT +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.RC +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.VBP +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVE.VBW +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVW.CPP +SAMPLES\VC98\COM\INPROC\IPDRIVE\IPDRIVW.H +SAMPLES\VC98\COM\INPROC\IPDRIVE\MAINFRM.CPP +SAMPLES\VC98\COM\INPROC\IPDRIVE\MAINFRM.H +SAMPLES\VC98\COM\INPROC\IPDRIVE\RES +SAMPLES\VC98\COM\INPROC\IPDRIVE\RESOURCE.H +SAMPLES\VC98\COM\INPROC\IPDRIVE\STDAFX.CPP +SAMPLES\VC98\COM\INPROC\IPDRIVE\STDAFX.H +SAMPLES\VC98\COM\INPROC\IPDRIVE\VBDRIVE.FRM +SAMPLES\VC98\COM\INPROC\IPDRIVE\RES\IPDRIVE.ICO +SAMPLES\VC98\COM\INPROC\IPDRIVE\RES\IPDRIVE.RC2 +SAMPLES\VC98\COM\INPROC\IPDRIVE\RES\TOOLBAR.BMP +SAMPLES\VC98\COM\INPROC\SERVER\ENUMVAR.CPP +SAMPLES\VC98\COM\INPROC\SERVER\ENUMVAR.H +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.CLW +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.CPP +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.DEF +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.DSP +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.DSW +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.H +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.MAK +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.ODL +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.OPT +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.RC +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.REG +SAMPLES\VC98\COM\INPROC\SERVER\INPROC.TLB +SAMPLES\VC98\COM\INPROC\SERVER\MAKEFILE +SAMPLES\VC98\COM\INPROC\SERVER\RES +SAMPLES\VC98\COM\INPROC\SERVER\RESOURCE.H +SAMPLES\VC98\COM\INPROC\SERVER\STDAFX.CPP +SAMPLES\VC98\COM\INPROC\SERVER\STDAFX.H +SAMPLES\VC98\COM\INPROC\SERVER\STRCOLL.CPP +SAMPLES\VC98\COM\INPROC\SERVER\STRCOLL.H +SAMPLES\VC98\COM\INPROC\SERVER\VARASSOC.CPP +SAMPLES\VC98\COM\INPROC\SERVER\VARASSOC.H +SAMPLES\VC98\COM\INPROC\SERVER\VARMAP.CPP +SAMPLES\VC98\COM\INPROC\SERVER\VARMAP.H +SAMPLES\VC98\COM\INPROC\SERVER\RES\INPROC.ICO +SAMPLES\VC98\COM\INPROC\SERVER\RES\INPROC.RC2 +SAMPLES\VC98\COM\LABRADOR\LABDRIV +SAMPLES\VC98\COM\LABRADOR\LABOBJ.CPP +SAMPLES\VC98\COM\LABRADOR\LABOBJ.H +SAMPLES\VC98\COM\LABRADOR\LABPS.DEF +SAMPLES\VC98\COM\LABRADOR\LABPS.DSP +SAMPLES\VC98\COM\LABRADOR\LABPS.DSW +SAMPLES\VC98\COM\LABRADOR\LABPS.MAK +SAMPLES\VC98\COM\LABRADOR\LABPS.OPT +SAMPLES\VC98\COM\LABRADOR\LABRADOR.CPP +SAMPLES\VC98\COM\LABRADOR\LABRADOR.DSP +SAMPLES\VC98\COM\LABRADOR\LABRADOR.DSW +SAMPLES\VC98\COM\LABRADOR\LABRADOR.H +SAMPLES\VC98\COM\LABRADOR\LABRADOR.IDL +SAMPLES\VC98\COM\LABRADOR\LABRADOR.MAK +SAMPLES\VC98\COM\LABRADOR\LABRADOR.OPT +SAMPLES\VC98\COM\LABRADOR\LABRADOR.RC +SAMPLES\VC98\COM\LABRADOR\LABRADOR.TLB +SAMPLES\VC98\COM\LABRADOR\LABRADOR.TXT +SAMPLES\VC98\COM\LABRADOR\LABRES.H +SAMPLES\VC98\COM\LABRADOR\PRELAB.CPP +SAMPLES\VC98\COM\LABRADOR\PRELAB.H +SAMPLES\VC98\COM\LABRADOR\LABDRIV\LABDRIV.CPP +SAMPLES\VC98\COM\LABRADOR\LABDRIV\LABDRIV.DSP +SAMPLES\VC98\COM\LABRADOR\LABDRIV\LABDRIV.DSW +SAMPLES\VC98\COM\LABRADOR\LABDRIV\LABDRIV.MAK +SAMPLES\VC98\COM\LABRADOR\LABDRIV\LABDRIV.OPT +SAMPLES\VC98\COM\LABRADOR\LABDRIV\PRELABDR.CPP +SAMPLES\VC98\COM\LABRADOR\LABDRIV\PRELABDR.H +SAMPLES\VC98\COM\MFCCALC\CALCDRIV +SAMPLES\VC98\COM\MFCCALC\README.TXT +SAMPLES\VC98\COM\MFCCALC\SERVER +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.CLW +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.CPP +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.DSP +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.DSW +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.H +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.MAK +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.OPT +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\CALCDRIV.RC +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\COMNOTES.TXT +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\L.JPN +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\RES +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\RESOURCE.H +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\STDAFX.CPP +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\STDAFX.H +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\L.JPN\CALCDRIV.RC +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\L.JPN\RES +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\L.JPN\RES\CALCDRIV.RC2 +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\RES\CALCDRIV.ICO +SAMPLES\VC98\COM\MFCCALC\CALCDRIV\RES\CALCDRIV.RC2 +SAMPLES\VC98\COM\MFCCALC\SERVER\CALCDLG.CPP +SAMPLES\VC98\COM\MFCCALC\SERVER\CALCDLG.H +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.CLW +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.CPP +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.DSP +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.DSW +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.H +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.MAK +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.ODL +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.OPT +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.RC +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.REG +SAMPLES\VC98\COM\MFCCALC\SERVER\MFCCALC.TLB +SAMPLES\VC98\COM\MFCCALC\SERVER\RES +SAMPLES\VC98\COM\MFCCALC\SERVER\RESOURCE.H +SAMPLES\VC98\COM\MFCCALC\SERVER\STDAFX.CPP +SAMPLES\VC98\COM\MFCCALC\SERVER\STDAFX.H +SAMPLES\VC98\COM\MFCCALC\SERVER\RES\MFCCALC.ICO +SAMPLES\VC98\COM\MFCCALC\SERVER\RES\MFCCALC.RC2 +SAMPLES\VC98\MFC\ADVANCED +SAMPLES\VC98\MFC\CONTROLS +SAMPLES\VC98\MFC\DATABASE +SAMPLES\VC98\MFC\GENERAL +SAMPLES\VC98\MFC\INTERNET +SAMPLES\VC98\MFC\MKSAMPLE.BAT +SAMPLES\VC98\MFC\OLE +SAMPLES\VC98\MFC\TUTORIAL +SAMPLES\VC98\MFC\UTILITY +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR +SAMPLES\VC98\MFC\ADVANCED\CHATTER +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK +SAMPLES\VC98\MFC\ADVANCED\COLLECT +SAMPLES\VC98\MFC\ADVANCED\CUBE +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE +SAMPLES\VC98\MFC\ADVANCED\FIRE +SAMPLES\VC98\MFC\ADVANCED\MTGDI +SAMPLES\VC98\MFC\ADVANCED\MTMDI +SAMPLES\VC98\MFC\ADVANCED\MTRECALC +SAMPLES\VC98\MFC\ADVANCED\MUTEXES +SAMPLES\VC98\MFC\ADVANCED\OLDBARS +SAMPLES\VC98\MFC\ADVANCED\SPEAKN +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CHATSRVR.CLW +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CHATSRVR.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CHATSRVR.DSP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CHATSRVR.DSW +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CHATSRVR.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CHATSRVR.MAK +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CHATSRVR.RC +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CLNTSOCK.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\CLNTSOCK.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\DIALOGS.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\DIALOGS.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\LSTNSOCK.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\LSTNSOCK.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\MSG.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\MSG.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\RES +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\SRVRDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\SRVRDOC.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\SRVRVW.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\SRVRVW.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\RES\CHATSRVR.ICO +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\RES\CHATSRVR.RC2 +SAMPLES\VC98\MFC\ADVANCED\CHATSRVR\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATDOC.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATSOCK.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATSOCK.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATTER.CLW +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATTER.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATTER.DSP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATTER.DSW +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATTER.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATTER.MAK +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATTER.RC +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATVW.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\CHATVW.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\CHATTER\MSG.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\MSG.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\RES +SAMPLES\VC98\MFC\ADVANCED\CHATTER\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\SENDVW.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\SENDVW.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\SETUPDLG.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\SETUPDLG.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\CHATTER\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\CHATTER\RES\CHATTER.ICO +SAMPLES\VC98\MFC\ADVANCED\CHATTER\RES\CHATTER.RC2 +SAMPLES\VC98\MFC\ADVANCED\CHATTER\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\BOOKVW.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\BOOKVW.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHECKDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHECKDOC.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHECKVW.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHECKVW.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBKFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBKFRM.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.CLW +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.DSP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.DSW +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.MAK +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.RC +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\CHKBOOK.REG +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\DOLLCENT.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\DOLLCENT.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\FXRECDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\FXRECDOC.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\README.TXT +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\RES +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\ROWVIEW.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\ROWVIEW.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\RES\CHECKVW.ICO +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\RES\CHKBOOK.ICO +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\RES\DOC.ICO +SAMPLES\VC98\MFC\ADVANCED\CHKBOOK\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLECT.CLW +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLECT.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLECT.DSP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLECT.DSW +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLECT.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLECT.MAK +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLECT.RC +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLEDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLEDOC.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLEVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\COLLEVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\DWARRYVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\DWARRYVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\INTLSTVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\INTLSTVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\L.JPN +SAMPLES\VC98\MFC\ADVANCED\COLLECT\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\COLLECT\MAPDWVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\MAPDWVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\MAPSSVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\MAPSSVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\PTARRYVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\PTARRYVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\RES +SAMPLES\VC98\MFC\ADVANCED\COLLECT\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\STRLSTVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\STRLSTVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\TYPARYVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\TYPARYVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\TYPLSTVW.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\TYPLSTVW.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\TYPTRMAP.CPP +SAMPLES\VC98\MFC\ADVANCED\COLLECT\TYPTRMAP.H +SAMPLES\VC98\MFC\ADVANCED\COLLECT\L.JPN\COLLECT.RC +SAMPLES\VC98\MFC\ADVANCED\COLLECT\L.JPN\RES +SAMPLES\VC98\MFC\ADVANCED\COLLECT\L.JPN\RES\COLLECT.RC2 +SAMPLES\VC98\MFC\ADVANCED\COLLECT\RES\COLLECT.ICO +SAMPLES\VC98\MFC\ADVANCED\COLLECT\RES\COLLECT.RC2 +SAMPLES\VC98\MFC\ADVANCED\COLLECT\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.CLW +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.CPP +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.DSP +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.DSW +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.H +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.MAK +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBE.RC +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEDOC.H +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEVIEW.CPP +SAMPLES\VC98\MFC\ADVANCED\CUBE\CUBEVIEW.H +SAMPLES\VC98\MFC\ADVANCED\CUBE\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\CUBE\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\CUBE\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\CUBE\RES +SAMPLES\VC98\MFC\ADVANCED\CUBE\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\CUBE\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\CUBE\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\CUBE\RES\CUBE.ICO +SAMPLES\VC98\MFC\ADVANCED\CUBE\RES\CUBE.RC2 +SAMPLES\VC98\MFC\ADVANCED\CUBE\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\DLLHUSK.CLW +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\DLLHUSK.CPP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\DLLHUSK.DSP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\DLLHUSK.DSW +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\DLLHUSK.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\DLLHUSK.MAK +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\DLLHUSK.RC +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\L.JPN +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RES +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL1.CLW +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL1.CPP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL1.DEF +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL1.DSP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL1.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL1.MAK +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL1.RC +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL2.CLW +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL2.CPP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL2.DEF +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL2.DSP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL2.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL2.MAK +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTDLL2.RC +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTRES1.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\TESTRES2.H +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\L.JPN\DLLHUSK.RC +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\L.JPN\TESTDLL1.RC +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\L.JPN\TESTDLL2.RC +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RES\DLLHUSK.ICO +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RES\HELLO.ICO +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RES\LISTOUT.ICO +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RES\TEXTTYPE.ICO +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\DLLHUSK\RES\VBCIRCLE.ICO +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\DLLTRACE.CLW +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\DLLTRACE.CPP +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\DLLTRACE.DSP +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\DLLTRACE.DSW +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\DLLTRACE.MAK +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\DLLTRACE.RC +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\HELLO.ICO +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\L.JPN +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACE.CLW +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACE.CPP +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACE.DEF +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACE.MAK +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACE.RC +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACE1.DSP +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACEAPI.H +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\TRACERES.H +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\L.JPN\DLLTRACE.RC +SAMPLES\VC98\MFC\ADVANCED\DLLTRACE\L.JPN\TRACE.RC +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIRE.CLW +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIRE.CPP +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIRE.DSP +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIRE.DSW +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIRE.H +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIRE.MAK +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIRE.RC +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIREDLG.CPP +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIREDLG.H +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIREWND.CPP +SAMPLES\VC98\MFC\ADVANCED\FIRE\FIREWND.H +SAMPLES\VC98\MFC\ADVANCED\FIRE\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\FIRE\RES +SAMPLES\VC98\MFC\ADVANCED\FIRE\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\FIRE\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\FIRE\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\FIRE\RES\FIRE.ICO +SAMPLES\VC98\MFC\ADVANCED\FIRE\RES\FIRE.RC2 +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDI.CLW +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDI.CPP +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDI.DSP +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDI.DSW +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDI.H +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDI.MAK +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDI.RC +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDIDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDIDOC.H +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDIVW.CPP +SAMPLES\VC98\MFC\ADVANCED\MTGDI\MTGDIVW.H +SAMPLES\VC98\MFC\ADVANCED\MTGDI\RES +SAMPLES\VC98\MFC\ADVANCED\MTGDI\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\MTGDI\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\MTGDI\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\MTGDI\THREADS.CPP +SAMPLES\VC98\MFC\ADVANCED\MTGDI\THREADS.H +SAMPLES\VC98\MFC\ADVANCED\MTGDI\RES\MTGDI.ICO +SAMPLES\VC98\MFC\ADVANCED\MTGDI\RES\MTGDI.RC2 +SAMPLES\VC98\MFC\ADVANCED\MTMDI\BOUNCE.CPP +SAMPLES\VC98\MFC\ADVANCED\MTMDI\BOUNCE.H +SAMPLES\VC98\MFC\ADVANCED\MTMDI\HELLO.CPP +SAMPLES\VC98\MFC\ADVANCED\MTMDI\HELLO.H +SAMPLES\VC98\MFC\ADVANCED\MTMDI\HELLO.ICO +SAMPLES\VC98\MFC\ADVANCED\MTMDI\L.JPN +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MDI.CPP +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MDI.H +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MDI.ICO +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MTBOUNCE.CPP +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MTBOUNCE.H +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MTMDI.CLW +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MTMDI.DSP +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MTMDI.DSW +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MTMDI.MAK +SAMPLES\VC98\MFC\ADVANCED\MTMDI\MTMDI.RC +SAMPLES\VC98\MFC\ADVANCED\MTMDI\README.TXT +SAMPLES\VC98\MFC\ADVANCED\MTMDI\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\MTMDI\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\MTMDI\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\MTMDI\L.JPN\MTMDI.RC +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\CALCTHRD.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\CALCTHRD.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MTRECALC.CLW +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MTRECALC.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MTRECALC.DSP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MTRECALC.DSW +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MTRECALC.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MTRECALC.MAK +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\MTRECALC.RC +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RECALCVW.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RECALCVW.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RECALDOC.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RECALDOC.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RES +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\SLOWCALC.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\SLOWCALC.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\SPEEDDLG.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\SPEEDDLG.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RES\MTRECALC.ICO +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RES\MTRECALC.RC2 +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RES\MY.ICO +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RES\MY.RC2 +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RES\RECALDOC.ICO +SAMPLES\VC98\MFC\ADVANCED\MTRECALC\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXDLG.CPP +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXDLG.H +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXES.CLW +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXES.CPP +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXES.DSP +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXES.DSW +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXES.H +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXES.MAK +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\MUTEXES.RC +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\RES +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\THREADS.CPP +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\THREADS.H +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\RES\MUTEXES.ICO +SAMPLES\VC98\MFC\ADVANCED\MUTEXES\RES\MUTEXES.RC2 +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\GLOBALS.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\GLOBALS.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\MAINFRM.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\MAINFRM.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBADOC.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBADOC.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBARS.CLW +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBARS.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBARS.DSP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBARS.DSW +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBARS.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBARS.MAK +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBARS.RC +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBAVW.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\OLDBAVW.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\RES +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\STATBAR.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\STATBAR.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\TOOLBAR.CPP +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\TOOLBAR.H +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\RES\OLDBADOC.ICO +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\RES\OLDBARS.ICO +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\RES\OLDBARS.RC2 +SAMPLES\VC98\MFC\ADVANCED\OLDBARS\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\L.JPN +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\MAKEFILE +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RESOURCE.H +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\SPEAKN.CLW +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\SPEAKN.CPP +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\SPEAKN.DSP +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\SPEAKN.DSW +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\SPEAKN.H +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\SPEAKN.MAK +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\SPEAKN.RC +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\STDAFX.CPP +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\STDAFX.H +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\L.JPN\LESSONS.RC +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\L.JPN\SPEAKN.RC +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\CORRECT.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\DOG.DIB +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\DOG.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\FACE01.ICO +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\FACE02.ICO +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\FACE03.ICO +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\FACE04.ICO +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\FROG.DIB +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\FROG.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\GIVEUP.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\GOODBYE.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\INCORREC.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\INTRO.DIB +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\LESSONS.RC2 +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\PIG.DIB +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\PIG.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\QUESTION.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\REPLAYD.BMP +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\REPLAYF.BMP +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\REPLAYU.BMP +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\SOUNDS.RC2 +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\SPEAKN.ICO +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\TRAIN.DIB +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\TRAIN.WAV +SAMPLES\VC98\MFC\ADVANCED\SPEAKN\RES\WELCOME.WAV +SAMPLES\VC98\MFC\CONTROLS\BUTTON +SAMPLES\VC98\MFC\CONTROLS\CIRC1 +SAMPLES\VC98\MFC\CONTROLS\CIRC2 +SAMPLES\VC98\MFC\CONTROLS\CIRC3 +SAMPLES\VC98\MFC\CONTROLS\DB +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC +SAMPLES\VC98\MFC\CONTROLS\IMAGE +SAMPLES\VC98\MFC\CONTROLS\LICENSED +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE +SAMPLES\VC98\MFC\CONTROLS\PAL +SAMPLES\VC98\MFC\CONTROLS\PUSH +SAMPLES\VC98\MFC\CONTROLS\REGSVR +SAMPLES\VC98\MFC\CONTROLS\SMILEY +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL +SAMPLES\VC98\MFC\CONTROLS\TESTHELP +SAMPLES\VC98\MFC\CONTROLS\TIME +SAMPLES\VC98\MFC\CONTROLS\XLIST +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BTNCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BTNCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BTNCTL.H +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BTNPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BTNPPG.H +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.CLW +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.CPP +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.DEF +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.DSP +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.DSW +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.H +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.ICO +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.MAK +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.ODL +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.RC +SAMPLES\VC98\MFC\CONTROLS\BUTTON\BUTTON.RC2 +SAMPLES\VC98\MFC\CONTROLS\BUTTON\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\BUTTON\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\BUTTON\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\BUTTON\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.CLW +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.DEF +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.DSP +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.DSW +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.H +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.ICO +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.MAK +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.ODL +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.RC +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1.RC2 +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1CTL.BMP +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1CTL.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1CTL.H +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1PPG.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC1\CIRC1PPG.H +SAMPLES\VC98\MFC\CONTROLS\CIRC1\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\CIRC1\README.TXT +SAMPLES\VC98\MFC\CONTROLS\CIRC1\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\CIRC1\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC1\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.CLW +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.DEF +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.DSP +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.DSW +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.H +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.ICO +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.MAK +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.ODL +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.RC +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2.RC2 +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2CTL.BMP +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2CTL.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2CTL.H +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2PPG.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC2\CIRC2PPG.H +SAMPLES\VC98\MFC\CONTROLS\CIRC2\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\CIRC2\README.TXT +SAMPLES\VC98\MFC\CONTROLS\CIRC2\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\CIRC2\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC2\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.CLW +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.DEF +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.DSP +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.DSW +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.H +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.ICO +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.MAK +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.ODL +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.RC +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3.RC2 +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3CTL.BMP +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3CTL.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3CTL.H +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3PPG.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC3\CIRC3PPG.H +SAMPLES\VC98\MFC\CONTROLS\CIRC3\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\CIRC3\README.TXT +SAMPLES\VC98\MFC\CONTROLS\CIRC3\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\CIRC3\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\CIRC3\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\DB\DB.CLW +SAMPLES\VC98\MFC\CONTROLS\DB\DB.CPP +SAMPLES\VC98\MFC\CONTROLS\DB\DB.DEF +SAMPLES\VC98\MFC\CONTROLS\DB\DB.DSP +SAMPLES\VC98\MFC\CONTROLS\DB\DB.DSW +SAMPLES\VC98\MFC\CONTROLS\DB\DB.H +SAMPLES\VC98\MFC\CONTROLS\DB\DB.ICO +SAMPLES\VC98\MFC\CONTROLS\DB\DB.MAK +SAMPLES\VC98\MFC\CONTROLS\DB\DB.ODL +SAMPLES\VC98\MFC\CONTROLS\DB\DB.RC +SAMPLES\VC98\MFC\CONTROLS\DB\DB.RC2 +SAMPLES\VC98\MFC\CONTROLS\DB\DBCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\DB\DBCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\DB\DBCTL.H +SAMPLES\VC98\MFC\CONTROLS\DB\DBPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\DB\DBPPG.H +SAMPLES\VC98\MFC\CONTROLS\DB\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\DB\README.TXT +SAMPLES\VC98\MFC\CONTROLS\DB\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\DB\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\DB\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.CLW +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.CPP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.DEF +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.DSP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.DSW +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.H +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.ICO +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.MAK +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.ODL +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPIC.RC +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPICC.BMP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPICC.CPP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPICC.H +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPICP.CPP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWPICP.H +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\DRAWPIC.FRM +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\DRAWPICT.VBP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC1.BMP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC1.ICO +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC2.BMP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC2.ICO +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC3.BMP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC3.ICO +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC4.BMP +SAMPLES\VC98\MFC\CONTROLS\DRAWPIC\DRAWVBP\PIC4.ICO +SAMPLES\VC98\MFC\CONTROLS\IMAGE\BMPPROP.CPP +SAMPLES\VC98\MFC\CONTROLS\IMAGE\BMPPROP.H +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.CLW +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.CPP +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.DEF +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.DSP +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.DSW +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.H +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.ICO +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.MAK +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.ODL +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGE.RC +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGECTL.BMP +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGECTL.CPP +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGECTL.H +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGEPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\IMAGE\IMAGEPPG.H +SAMPLES\VC98\MFC\CONTROLS\IMAGE\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\IMAGE\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\IMAGE\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\IMAGE\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENCTL.H +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENPPG.H +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.CLW +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.CPP +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.DEF +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.DSP +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.DSW +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.H +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.ICO +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.LIC +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.MAK +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.ODL +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.RC +SAMPLES\VC98\MFC\CONTROLS\LICENSED\LICENSED.RC2 +SAMPLES\VC98\MFC\CONTROLS\LICENSED\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\LICENSED\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\LICENSED\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\LICENSED\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALCTL.H +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIDE.ODL +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIFR.ODL +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.CLW +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.CPP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.DEF +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.DSP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.DSW +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.H +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.ICO +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.MAK +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.ODL +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.RC +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALIZE.RC2 +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCALPPG.H +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESDE.CPP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESDE.DEF +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESDE.DSP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESDE.MAK +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESDE.RC +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESFR.CPP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESFR.DEF +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESFR.DSP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESFR.MAK +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\LOCRESFR.RC +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\LOCALIZE\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\PAL\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.CLW +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.CPP +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.DEF +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.DSP +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.DSW +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.H +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.ICO +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.MAK +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.ODL +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.RC +SAMPLES\VC98\MFC\CONTROLS\PAL\PAL.RC2 +SAMPLES\VC98\MFC\CONTROLS\PAL\PALCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\PAL\PALCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\PAL\PALCTL.H +SAMPLES\VC98\MFC\CONTROLS\PAL\PALPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\PAL\PALPPG.H +SAMPLES\VC98\MFC\CONTROLS\PAL\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\PAL\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\PAL\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\PUSH\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.CLW +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.CPP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.DEF +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.DSP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.DSW +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.H +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.ICO +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.MAK +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.ODL +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.RC +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSH.RC2 +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHCD.BMP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHCONT.BMP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHCTL.H +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHCU.BMP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\PUSH\PUSHPPG.H +SAMPLES\VC98\MFC\CONTROLS\PUSH\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\PUSH\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\PUSH\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\REGSVR\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\REGSVR\REGSVR.CPP +SAMPLES\VC98\MFC\CONTROLS\REGSVR\REGSVR.RC +SAMPLES\VC98\MFC\CONTROLS\REGSVR\REGSVR.RC2 +SAMPLES\VC98\MFC\CONTROLS\REGSVR\REGSVR32.DSP +SAMPLES\VC98\MFC\CONTROLS\REGSVR\REGSVR32.DSW +SAMPLES\VC98\MFC\CONTROLS\REGSVR\REGSVR32.MAK +SAMPLES\VC98\MFC\CONTROLS\REGSVR\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\REGSVR\VERSION.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\SMILEY\README.TXT +SAMPLES\VC98\MFC\CONTROLS\SMILEY\RES +SAMPLES\VC98\MFC\CONTROLS\SMILEY\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEY.CLW +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEY.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEY.DSP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEY.DSW +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEY.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEY.MAK +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEY.RC +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEYDG.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILEYDG.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\RES\SMILEY.ICO +SAMPLES\VC98\MFC\CONTROLS\SMILEY\RES\SMILEY.RC2 +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\README.TXT +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.CLW +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.DEF +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.DSP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.DSW +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.ICO +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.MAK +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.ODL +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILE.RC +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILECTL.BMP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILECTL.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILECTL.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILEPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\SMILEPPG.H +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\SMILEY\SMILECTL\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINCTL.H +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.CLW +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.CPP +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.DEF +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.DSP +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.DSW +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.H +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.ICO +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.MAK +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.ODL +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.RC +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINDIAL.RC2 +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\SPINPPG.H +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\SPINDIAL\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\HLP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\MAKEHELP.BAT +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.CLW +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.CPP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.DEF +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.DSP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.DSW +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.FTS +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.GID +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.H +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.HLP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.HPJ +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.ICO +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.MAK +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.ODL +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\TESTHELP.RC +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\THELPCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\THELPCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\THELPCTL.H +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\THELPPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\THELPPPG.H +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\HLP\BULLET.BMP +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\HLP\TESTHELP.HM +SAMPLES\VC98\MFC\CONTROLS\TESTHELP\HLP\TESTHELP.RTF +SAMPLES\VC98\MFC\CONTROLS\TIME\CLOCKPIC.BMP +SAMPLES\VC98\MFC\CONTROLS\TIME\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\TIME\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\TIME\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\TIME\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.CLW +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.CPP +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.DEF +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.DSP +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.DSW +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.H +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.ICO +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.MAK +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.ODL +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.RC +SAMPLES\VC98\MFC\CONTROLS\TIME\TIME.RC2 +SAMPLES\VC98\MFC\CONTROLS\TIME\TIMECTL.BMP +SAMPLES\VC98\MFC\CONTROLS\TIME\TIMECTL.CPP +SAMPLES\VC98\MFC\CONTROLS\TIME\TIMECTL.H +SAMPLES\VC98\MFC\CONTROLS\TIME\TIMEPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\TIME\TIMEPPG.H +SAMPLES\VC98\MFC\CONTROLS\XLIST\MAKEFILE +SAMPLES\VC98\MFC\CONTROLS\XLIST\RESOURCE.H +SAMPLES\VC98\MFC\CONTROLS\XLIST\STDAFX.CPP +SAMPLES\VC98\MFC\CONTROLS\XLIST\STDAFX.H +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.CLW +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.CPP +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.DEF +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.DSP +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.DSW +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.H +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.ICO +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.MAK +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.ODL +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.RC +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLIST.RC2 +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLISTCTL.BMP +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLISTCTL.CPP +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLISTCTL.H +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLISTPPG.CPP +SAMPLES\VC98\MFC\CONTROLS\XLIST\XLISTPPG.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL +SAMPLES\VC98\MFC\DATABASE\CATALOG +SAMPLES\VC98\MFC\DATABASE\CATALOG2 +SAMPLES\VC98\MFC\DATABASE\DAOCTL +SAMPLES\VC98\MFC\DATABASE\DAOENROL +SAMPLES\VC98\MFC\DATABASE\DAOTABLE +SAMPLES\VC98\MFC\DATABASE\DAOVIEW +SAMPLES\VC98\MFC\DATABASE\DBFETCH +SAMPLES\VC98\MFC\DATABASE\DYNABIND +SAMPLES\VC98\MFC\DATABASE\EXTBIND +SAMPLES\VC98\MFC\DATABASE\MDIBIND +SAMPLES\VC98\MFC\DATABASE\MFCROWS +SAMPLES\VC98\MFC\DATABASE\ODBCINFO +SAMPLES\VC98\MFC\DATABASE\STDREG +SAMPLES\VC98\MFC\DATABASE\BINDENRL\BINDENRL.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\BINDENRL.DSP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\BINDENRL.DSW +SAMPLES\VC98\MFC\DATABASE\BINDENRL\BINDENRL.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\BINDENRL.MAK +SAMPLES\VC98\MFC\DATABASE\BINDENRL\BINDENRL.RC +SAMPLES\VC98\MFC\DATABASE\BINDENRL\COURSDLG.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\COURSDLG.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\DBLIST.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\DBLIST.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\ENROLDLG.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\ENROLDLG.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\INSTRDLG.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\INSTRDLG.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\BINDENRL\MSMASK.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\MSMASK.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\PROPSHT.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\PROPSHT.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\RDC.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\RDC.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\RES +SAMPLES\VC98\MFC\DATABASE\BINDENRL\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\SECTNDLG.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\SECTNDLG.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\STDREG32.MDB +SAMPLES\VC98\MFC\DATABASE\BINDENRL\STUDDLG.CPP +SAMPLES\VC98\MFC\DATABASE\BINDENRL\STUDDLG.H +SAMPLES\VC98\MFC\DATABASE\BINDENRL\RES\BINDENRL.ICO +SAMPLES\VC98\MFC\DATABASE\BINDENRL\RES\BINDENRL.RC2 +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALDOC.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALDOC.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALOG.CLW +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALOG.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALOG.DSP +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALOG.DSW +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALOG.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALOG.MAK +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALOG.RC +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALVW.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG\CATALVW.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\COLUMNST.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG\COLUMNST.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\L.JPN +SAMPLES\VC98\MFC\DATABASE\CATALOG\MAINFRM.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG\MAINFRM.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\CATALOG\RES +SAMPLES\VC98\MFC\DATABASE\CATALOG\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\TABLESET.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG\TABLESET.H +SAMPLES\VC98\MFC\DATABASE\CATALOG\L.JPN\CATALOG.RC +SAMPLES\VC98\MFC\DATABASE\CATALOG\L.JPN\RES +SAMPLES\VC98\MFC\DATABASE\CATALOG\L.JPN\RES\CATALOG.RC2 +SAMPLES\VC98\MFC\DATABASE\CATALOG\RES\CATALOG.ICO +SAMPLES\VC98\MFC\DATABASE\CATALOG\RES\CATALOG.RC2 +SAMPLES\VC98\MFC\DATABASE\CATALOG\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CAT2DOC.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CAT2DOC.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CAT2VIEW.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CAT2VIEW.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATALOG2.CLW +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATALOG2.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATALOG2.DSP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATALOG2.DSW +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATALOG2.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATALOG2.MAK +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATALOG2.RC +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATSETS.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\CATSETS.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\COLPAGE.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\COLPAGE.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\MAINFRM.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\MAINFRM.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RES +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RESOURCE.HM +SAMPLES\VC98\MFC\DATABASE\CATALOG2\SETTINGS.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\SETTINGS.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\TABPAGE.CPP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\TABPAGE.H +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RES\CAT2DOC.ICO +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RES\CATALOG2.ICO +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RES\CATALOG2.RC2 +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\DATABASE\CATALOG2\RES\TOOLBAR1.BMP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCPICT.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCPICT.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CTRLEXT.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CTRLEXT.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CTRLEXT.INL +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCNDLG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCNDLG.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCONT.CLW +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCONT.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCONT.DSP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCONT.DSW +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCONT.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCONT.MAK +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOCONT.RC +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOEDIT.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\DAOEDIT.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DAOCTL\RES +SAMPLES\VC98\MFC\DATABASE\DAOCTL\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\SAMPDATA.MDB +SAMPLES\VC98\MFC\DATABASE\DAOCTL\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSCTL.BMP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSCTL.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSCTL.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.CLW +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.DEF +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.DSP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.DSW +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.ICO +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.MAK +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.ODL +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPICT.RC +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPPG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\ACCSPPG.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\STRMDIB.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\ACCSPICT\STRMDIB.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOCTL.BMP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOCTL.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOCTL.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.CLW +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.DEF +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.DSP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.DSW +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.ICO +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.MAK +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.ODL +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOEDIT.RC +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOPPG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\DAOPPG.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\CONTROL\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DAOCTL\RES\BITMAP1.BMP +SAMPLES\VC98\MFC\DATABASE\DAOCTL\RES\DAOCONT.ICO +SAMPLES\VC98\MFC\DATABASE\DAOCTL\RES\DAOCONT.RC2 +SAMPLES\VC98\MFC\DATABASE\DAOCTL\RES\TREEIMAG.BMP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\ADDFORM.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\ADDFORM.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\COURSESE.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\COURSESE.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\CRSFORM.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\CRSFORM.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DAOENROL.CLW +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DAOENROL.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DAOENROL.DSP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DAOENROL.DSW +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DAOENROL.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DAOENROL.MAK +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DAOENROL.RC +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DENRLDOC.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\DENRLDOC.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\MAINFRM.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\MAINFRM.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DAOENROL\RES +SAMPLES\VC98\MFC\DATABASE\DAOENROL\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\SECTFORM.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\SECTFORM.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\SECTSET.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\SECTSET.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DAOENROL\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DAOENROL\STDREG32.MDB +SAMPLES\VC98\MFC\DATABASE\DAOENROL\RES\DAOENROL.ICO +SAMPLES\VC98\MFC\DATABASE\DAOENROL\RES\DAOENROL.RC2 +SAMPLES\VC98\MFC\DATABASE\DAOENROL\RES\DENRLDOC.ICO +SAMPLES\VC98\MFC\DATABASE\DAOENROL\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDDBDLG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDDBDLG.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDIXDLG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDIXDLG.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDQYDLG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDQYDLG.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDTBDLG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\ADDTBDLG.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTABLE.CLW +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTABLE.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTABLE.DSP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTABLE.DSW +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTABLE.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTABLE.MAK +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTABLE.RC +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTDLG.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DAOTDLG.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DATABASE.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\DATABASE.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\FIELD.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\FIELD.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\HLP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\INDEX.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\INDEX.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\LISTCTRL.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\LISTCTRL.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\MAKEHELP.BAT +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\QUERYDEF.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\QUERYDEF.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\README.TXT +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\RES +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\RESOURCE.HM +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\TABLEDEF.CPP +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\TABLEDEF.H +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\HLP\DAOTABLE.CNT +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\HLP\DAOTABLE.HPJ +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\HLP\DAOTABLE.PH +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\HLP\DAOTABLE.RTF +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\RES\DAOTABLE.ICO +SAMPLES\VC98\MFC\DATABASE\DAOTABLE\RES\DAOTABLE.RC2 +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\CRACK.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\CRACK.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\CTRLEXT.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\CTRLEXT.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\CTRLEXT.INL +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.CLW +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.DSP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.DSW +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.MAK +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.RC +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVIEW.REG +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVWDOC.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DAOVWDOC.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DLGPARAM.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DLGPARAM.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DLGSQL.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DLGSQL.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DRAGITEM.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\DRAGITEM.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\LISTVIEW.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\LISTVIEW.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\MAINFRM.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\MAINFRM.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\OPTIONSD.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\OPTIONSD.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RENAMEDL.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RENAMEDL.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\SAMPDATA.MDB +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\TREEVIEW.CPP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\TREEVIEW.H +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES\BMP00001.BMP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES\BMP00002.BMP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES\DAOVIEW.ICO +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES\DAOVIEW.RC2 +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES\DAOVWDOC.ICO +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES\IMAGELIS.BMP +SAMPLES\VC98\MFC\DATABASE\DAOVIEW\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\DATABASE\DBFETCH\BULKSET.CPP +SAMPLES\VC98\MFC\DATABASE\DBFETCH\BULKSET.H +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DATADLG.CPP +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DATADLG.H +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DBFETCH.CLW +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DBFETCH.CPP +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DBFETCH.DSP +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DBFETCH.DSW +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DBFETCH.H +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DBFETCH.MAK +SAMPLES\VC98\MFC\DATABASE\DBFETCH\DBFETCH.RC +SAMPLES\VC98\MFC\DATABASE\DBFETCH\FETCHDLG.CPP +SAMPLES\VC98\MFC\DATABASE\DBFETCH\FETCHDLG.H +SAMPLES\VC98\MFC\DATABASE\DBFETCH\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DBFETCH\RES +SAMPLES\VC98\MFC\DATABASE\DBFETCH\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DBFETCH\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DBFETCH\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DBFETCH\RES\DBFETCH.ICO +SAMPLES\VC98\MFC\DATABASE\DBFETCH\RES\DBFETCH.RC2 +SAMPLES\VC98\MFC\DATABASE\DYNABIND\ADDFIELD.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\ADDFIELD.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\COLUMNST.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\COLUMNST.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\COURSSET.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\COURSSET.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\DYNABIND.CLW +SAMPLES\VC98\MFC\DATABASE\DYNABIND\DYNABIND.DSP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\DYNABIND.DSW +SAMPLES\VC98\MFC\DATABASE\DYNABIND\DYNABIND.MAK +SAMPLES\VC98\MFC\DATABASE\DYNABIND\DYNABIND.RC +SAMPLES\VC98\MFC\DATABASE\DYNABIND\ENROLDOC.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\ENROLDOC.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\ENROLL.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\ENROLL.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\L.JPN +SAMPLES\VC98\MFC\DATABASE\DYNABIND\MAINFRM.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\MAINFRM.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\DYNABIND\RES +SAMPLES\VC98\MFC\DATABASE\DYNABIND\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\SECTFORM.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\SECTFORM.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\SECTSET.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\SECTSET.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\DYNABIND\L.JPN\DYNABIND.RC +SAMPLES\VC98\MFC\DATABASE\DYNABIND\L.JPN\RES +SAMPLES\VC98\MFC\DATABASE\DYNABIND\L.JPN\RES\ENROLL.RC2 +SAMPLES\VC98\MFC\DATABASE\DYNABIND\RES\ENROLL.ICO +SAMPLES\VC98\MFC\DATABASE\DYNABIND\RES\ENROLL.RC2 +SAMPLES\VC98\MFC\DATABASE\DYNABIND\RES\IDR_MAIN.BMP +SAMPLES\VC98\MFC\DATABASE\DYNABIND\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\CALENDAR.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\CALENDAR.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\EXTBIND.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\EXTBIND.DSP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\EXTBIND.DSW +SAMPLES\VC98\MFC\DATABASE\EXTBIND\EXTBIND.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\EXTBIND.MAK +SAMPLES\VC98\MFC\DATABASE\EXTBIND\EXTBIND.RC +SAMPLES\VC98\MFC\DATABASE\EXTBIND\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\EXTBIND\MODELDLG.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\MODELDLG.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\MSDGRID.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\MSDGRID.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\MSMASK.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\MSMASK.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\NWINDDLG.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\NWINDDLG.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\PUBS.MDB +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RDC.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RDC.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RES +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RESOURCE.HM +SAMPLES\VC98\MFC\DATABASE\EXTBIND\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RES\EXTBIND.BMP +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RES\EXTBIND.ICO +SAMPLES\VC98\MFC\DATABASE\EXTBIND\RES\EXTBIND.RC2 +SAMPLES\VC98\MFC\DATABASE\MDIBIND\DSNDLG.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\DSNDLG.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\GRIDFRM.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\GRIDFRM.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\GRIDVIEW.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\GRIDVIEW.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MAINFRM.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MAINFRM.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MASKFRM.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MASKFRM.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MASKVIEW.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MASKVIEW.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIBIND.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIBIND.DSP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIBIND.DSW +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIBIND.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIBIND.MAK +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIBIND.RC +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIDOC.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MDIDOC.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MSDGRID.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MSDGRID.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MSMASK.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\MSMASK.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDC.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDC.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDCDLG.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDCDLG.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDCFRM.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDCFRM.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDCVIEW.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDCVIEW.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDOCOL.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDOCOL.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDOCOLS.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDOCOLS.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDORESLT.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RDORESLT.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RES +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\MDIBIND\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RES\GRID.ICO +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RES\MASK.ICO +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RES\MDIBIND.ICO +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RES\MDIBIND.RC2 +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RES\MDIDOC.ICO +SAMPLES\VC98\MFC\DATABASE\MDIBIND\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MAINFRM.CPP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MAINFRM.H +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROW.CPP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROW.DSP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROW.DSW +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROW.H +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROW.MAK +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROW.RC +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROWDOC.CPP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROWDOC.H +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROWSET.CPP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROWSET.H +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROWVIEW.CPP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\MFCROWVIEW.H +SAMPLES\VC98\MFC\DATABASE\MFCROWS\RES +SAMPLES\VC98\MFC\DATABASE\MFCROWS\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\MFCROWS\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\MFCROWS\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\MFCROWS\RES\MFCROW.ICO +SAMPLES\VC98\MFC\DATABASE\MFCROWS\RES\MFCROW.RC2 +SAMPLES\VC98\MFC\DATABASE\MFCROWS\RES\MFCROWDOC.ICO +SAMPLES\VC98\MFC\DATABASE\MFCROWS\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ABOUTDLG.CPP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ABOUTDLG.H +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\CATSETS.CPP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\CATSETS.H +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\DRVINFO.CPP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\DRVINFO.H +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\MYSHEET.CPP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\MYSHEET.H +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ODBCINFO.CLW +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ODBCINFO.CPP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ODBCINFO.DSP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ODBCINFO.DSW +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ODBCINFO.H +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ODBCINFO.MAK +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\ODBCINFO.RC +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\README.TXT +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\RES +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\RES\BITMAP1.BMP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\RES\BMP00002.BMP +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\RES\IDR_MAIN.ICO +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\RES\ODBCINFO.ICO +SAMPLES\VC98\MFC\DATABASE\ODBCINFO\RES\ODBCINFO.RC2 +SAMPLES\VC98\MFC\DATABASE\STDREG\COLUMDLG.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\COLUMDLG.H +SAMPLES\VC98\MFC\DATABASE\STDREG\COURSSET.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\COURSSET.H +SAMPLES\VC98\MFC\DATABASE\STDREG\DIALOG.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\DIALOG.H +SAMPLES\VC98\MFC\DATABASE\STDREG\DSECTSET.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\DSECTSET.H +SAMPLES\VC98\MFC\DATABASE\STDREG\ENROLSET.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\ENROLSET.H +SAMPLES\VC98\MFC\DATABASE\STDREG\INITDATA.H +SAMPLES\VC98\MFC\DATABASE\STDREG\INSTRSET.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\INSTRSET.H +SAMPLES\VC98\MFC\DATABASE\STDREG\MAKEFILE +SAMPLES\VC98\MFC\DATABASE\STDREG\RES +SAMPLES\VC98\MFC\DATABASE\STDREG\RESOURCE.H +SAMPLES\VC98\MFC\DATABASE\STDREG\SECTSET.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\SECTSET.H +SAMPLES\VC98\MFC\DATABASE\STDREG\STDAFX.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\STDAFX.H +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.CLW +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.DSP +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.DSW +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.H +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.MAK +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.RC +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG.REG +SAMPLES\VC98\MFC\DATABASE\STDREG\STDREG32.MDB +SAMPLES\VC98\MFC\DATABASE\STDREG\STDSET.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\STDSET.H +SAMPLES\VC98\MFC\DATABASE\STDREG\TYPEINFO.CPP +SAMPLES\VC98\MFC\DATABASE\STDREG\TYPEINFO.H +SAMPLES\VC98\MFC\DATABASE\STDREG\RES\STDREG.ICO +SAMPLES\VC98\MFC\DATABASE\STDREG\RES\STDREG.RC2 +SAMPLES\VC98\MFC\GENERAL\CLIPART +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1 +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2 +SAMPLES\VC98\MFC\GENERAL\CTRLBARS +SAMPLES\VC98\MFC\GENERAL\CTRLTEST +SAMPLES\VC98\MFC\GENERAL\DBVLIST +SAMPLES\VC98\MFC\GENERAL\DIBLOOK +SAMPLES\VC98\MFC\GENERAL\DLGCBR32 +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL +SAMPLES\VC98\MFC\GENERAL\DYNAMENU +SAMPLES\VC98\MFC\GENERAL\HELLO +SAMPLES\VC98\MFC\GENERAL\HELLOAPP +SAMPLES\VC98\MFC\GENERAL\LISTHDR +SAMPLES\VC98\MFC\GENERAL\MDI +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW +SAMPLES\VC98\MFC\GENERAL\MODELESS +SAMPLES\VC98\MFC\GENERAL\MULTIPAD +SAMPLES\VC98\MFC\GENERAL\NPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG +SAMPLES\VC98\MFC\GENERAL\ROWLIST +SAMPLES\VC98\MFC\GENERAL\SAVER +SAMPLES\VC98\MFC\GENERAL\SNAPVW +SAMPLES\VC98\MFC\GENERAL\TRACKER +SAMPLES\VC98\MFC\GENERAL\VCTERM +SAMPLES\VC98\MFC\GENERAL\VIEWEX +SAMPLES\VC98\MFC\GENERAL\WIZARD97 +SAMPLES\VC98\MFC\GENERAL\CLIPART\COMMDLG.RC +SAMPLES\VC98\MFC\GENERAL\CLIPART\COMMON.RC +SAMPLES\VC98\MFC\GENERAL\CLIPART\COMMON.RES +SAMPLES\VC98\MFC\GENERAL\CLIPART\INDICATE.RC +SAMPLES\VC98\MFC\GENERAL\CLIPART\L.JPN +SAMPLES\VC98\MFC\GENERAL\CLIPART\PROMPTS.RC +SAMPLES\VC98\MFC\GENERAL\CLIPART\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\CLIPART\L.JPN\COMMDLG.RC +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\ANIMCTRL.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\ANIMCTRL.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.APS +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.CLW +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.DSP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.DSW +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.MAK +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.PLG +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\CMNCTRL1.RC +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\DATETIME.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\DATETIME.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\DILLO.AVI +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\FILECOPY.AVI +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\MONTHCAL.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\MONTHCAL.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\MTREECTL.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\MTREECTL.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\NOTIFWDW.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\NOTIFWDW.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\PROPSHT.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\PROPSHT.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\SEARCH.AVI +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TOOLBAR1.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TOOLBAR1.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TOOLBAR2.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TOOLBAR2.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TOOLPAGE.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TOOLPAGE.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TREECPG.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\TREECPG.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\BMP00001.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\BMP00002.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\BMP00003.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\BMTREEBI.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\BMTREEDO.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\BMTREEFI.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\CMNCTRL1.ICO +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\CMNCTRL1.RC2 +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\CPALETTE.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL1\RES\STANDARD.BMP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.APS +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.CLW +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.DSP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.DSW +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.MAK +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.PLG +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\CMNCTRL2.RC +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\NOTIFWDW.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\NOTIFWDW.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\PROGCTRL.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\PROGCTRL.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\PROPSHT.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\PROPSHT.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\RES +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\SLIDCTRL.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\SLIDCTRL.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\SPINCTRL.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\SPINCTRL.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\RES\CMNCTRL2.ICO +SAMPLES\VC98\MFC\GENERAL\CMNCTRL2\RES\CMNCTRL2.RC2 +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\CTRLBARS.CLW +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\CTRLBARS.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\CTRLBARS.DSP +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\CTRLBARS.DSW +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\CTRLBARS.H +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\CTRLBARS.MAK +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\CTRLBARS.RC +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\L.JPN +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\PALETTE.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\PALETTE.H +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\RES +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\L.JPN\CTRLBARS.RC +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\RES\CTRLBARS.ICO +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\RES\PALETTE.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\RES\STYLES.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLBARS\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\BBUTTON.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CTRLTEST.CLW +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CTRLTEST.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CTRLTEST.DSP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CTRLTEST.DSW +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CTRLTEST.H +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CTRLTEST.MAK +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CTRLTEST.RC +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CUSTLIST.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\CUSTMENU.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\DERTEST.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\L.JPN +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\PAREDIT.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\PAREDIT.H +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\PAREDIT2.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\SPINTEST.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\SUBTEST.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\WCLSTEST.CPP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\L.JPN\CTRLTEST.RC +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\L.JPN\RES +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\L.JPN\RES\CTRLTEST.RC2 +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\L.JPN\RES\CTRLTEST.RC3 +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\CANCELD.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\CANCELF.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\CANCELU.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\CTRLTEST.ICO +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\CTRLTEST.RC2 +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\CTRLTEST.RC3 +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\IMAGE1D.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\IMAGE1F.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\IMAGE1U.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\IMAGE2D.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\IMAGE2F.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\IMAGE2U.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\NEXTD.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\NEXTF.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\NEXTU.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\NEXTX.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\OKD.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\OKF.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\OKU.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\OTHERIDS.H +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\PREVD.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\PREVF.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\PREVU.BMP +SAMPLES\VC98\MFC\GENERAL\CTRLTEST\RES\PREVX.BMP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLIST.CLW +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLIST.CPP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLIST.DSP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLIST.DSW +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLIST.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLIST.MAK +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLIST.RC +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLISTDOC.CPP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLISTDOC.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLISTSET.CPP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLISTSET.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLISTVIEW.CPP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\DBVLISTVIEW.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\EMPVIEW.CPP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\EMPVIEW.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\EMP_ALL.MDB +SAMPLES\VC98\MFC\GENERAL\DBVLIST\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\DBVLIST\RES +SAMPLES\VC98\MFC\GENERAL\DBVLIST\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\DBVLIST\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\DBVLIST\RES\DBVLIST.ICO +SAMPLES\VC98\MFC\GENERAL\DBVLIST\RES\DBVLIST.RC2 +SAMPLES\VC98\MFC\GENERAL\DBVLIST\RES\DBVLISTDOC.ICO +SAMPLES\VC98\MFC\GENERAL\DBVLIST\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBAPI.CPP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBAPI.H +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBDOC.CPP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBDOC.H +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.CLW +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.CPP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.DSP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.DSW +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.H +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.MAK +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.RC +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBLOOK.RCM +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBVIEW.CPP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\DIBVIEW.H +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\L.JPN +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\MYFILE.CPP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\RES +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\L.JPN\DIBLOOK.RC +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\RES\DIBDOC.ICO +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\RES\DIBLOOK.ICO +SAMPLES\VC98\MFC\GENERAL\DIBLOOK\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\ABOUTDLG.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\ABOUTDLG.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGBARS.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGBARS.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGCBAR.CLW +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGCBAR.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGCBAR.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGCBAR.RC +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGCBR32.DSP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGCBR32.DSW +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\DLGCBR32.MAK +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\MDLSMAIN.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\MDLSMAIN.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\MODELESS.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\MODELESS.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RATEDLG.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RATEDLG.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RES +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\WNDLIST.CPP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\WNDLIST.H +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RES\DLGCBAR.BMP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RES\DLGCBAR.ICO +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\DLGCBR32\RES\TOOLBAR1.BMP +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\DLGTEMP.CLW +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\DLGTEMP.CPP +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\DLGTEMP.DSP +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\DLGTEMP.DSW +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\DLGTEMP.H +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\DLGTEMP.MAK +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\DLGTEMP.RC +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\ITEMTEMP.CPP +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\ITEMTEMP.H +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\README.TXT +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\RES +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\SETUPDLG.CPP +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\SETUPDLG.H +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\RES\DLGTEMP.ICO +SAMPLES\VC98\MFC\GENERAL\DLGTEMPL\RES\DLGTEMP.RC2 +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKDOC.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKDOC.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKTOOL.CLW +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKTOOL.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKTOOL.DSP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKTOOL.DSW +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKTOOL.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKTOOL.MAK +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKTOOL.RC +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKVW.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\DOCKVW.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\EDITBAR.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\EDITBAR.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\PALETTE.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\PALETTE.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\README.TXT +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\SEARCHBX.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\SEARCHBX.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\TOOLDLG.CPP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\TOOLDLG.H +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\CBROWSE.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\CDEBUG.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\CEDIT.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\CMAIN.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\CPALETTE.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\CRESRC.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\DOCKTOOL.ICO +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\DOCKTOOL.RC2 +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\MBROWSE.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\MDEBUG.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\MEDIT.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\MMAIN.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\MPALETTE.BMP +SAMPLES\VC98\MFC\GENERAL\DOCKTOOL\RES\MRESRC.BMP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\COLOROPT.CPP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\COLOROPT.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DMDOC.CPP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DMDOC.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DMVIEW.CPP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DMVIEW.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DYNAMENU.CLW +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DYNAMENU.CPP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DYNAMENU.DSP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DYNAMENU.DSW +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DYNAMENU.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DYNAMENU.MAK +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\DYNAMENU.RC +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\MDICHILD.CPP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\MDICHILD.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\RES +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\RES\DMDOC.ICO +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\RES\DYNAMENU.ICO +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\RES\DYNAMENU.RC2 +SAMPLES\VC98\MFC\GENERAL\DYNAMENU\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.CLW +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.CPP +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.DSP +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.DSW +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.H +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.ICO +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.MAK +SAMPLES\VC98\MFC\GENERAL\HELLO\HELLO.RC +SAMPLES\VC98\MFC\GENERAL\HELLO\L.JPN +SAMPLES\VC98\MFC\GENERAL\HELLO\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\HELLO\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\HELLO\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\HELLO\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\HELLO\L.JPN\HELLO.RC +SAMPLES\VC98\MFC\GENERAL\HELLOAPP\HELLOAPP.CPP +SAMPLES\VC98\MFC\GENERAL\HELLOAPP\HELLOAPP.DSP +SAMPLES\VC98\MFC\GENERAL\HELLOAPP\HELLOAPP.DSW +SAMPLES\VC98\MFC\GENERAL\HELLOAPP\HELLOAPP.MAK +SAMPLES\VC98\MFC\GENERAL\HELLOAPP\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LHDRDLG.CPP +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LHDRDLG.H +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.APS +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.CLW +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.CPP +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.DSP +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.DSW +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.H +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.MAK +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.PLG +SAMPLES\VC98\MFC\GENERAL\LISTHDR\LISTHDR.RC +SAMPLES\VC98\MFC\GENERAL\LISTHDR\MLISTCTL.CPP +SAMPLES\VC98\MFC\GENERAL\LISTHDR\MLISTCTL.H +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\LISTHDR\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\LISTHDR\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\CURSOR1.CUR +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\HDRICON1.ICO +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\HDRICON2.ICO +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\ICON1.ICO +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\ICON2.ICO +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\ICON3.ICO +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\ICON4.ICO +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\LISTHDR.ICO +SAMPLES\VC98\MFC\GENERAL\LISTHDR\RES\LISTHDR.RC2 +SAMPLES\VC98\MFC\GENERAL\MDI\BOUNCE.CPP +SAMPLES\VC98\MFC\GENERAL\MDI\BOUNCE.H +SAMPLES\VC98\MFC\GENERAL\MDI\HELLO.CPP +SAMPLES\VC98\MFC\GENERAL\MDI\HELLO.H +SAMPLES\VC98\MFC\GENERAL\MDI\HELLO.ICO +SAMPLES\VC98\MFC\GENERAL\MDI\L.JPN +SAMPLES\VC98\MFC\GENERAL\MDI\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\MDI\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\MDI\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.CLW +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.CPP +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.DSP +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.DSW +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.H +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.ICO +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.MAK +SAMPLES\VC98\MFC\GENERAL\MDI\MDI.RC +SAMPLES\VC98\MFC\GENERAL\MDI\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\MDI\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\MDI\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\MDI\L.JPN\MDI.RC +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\BNCDOC.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\BNCDOC.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\BNCFRM.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\BNCFRM.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\BNCVW.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\BNCVW.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\HELLODOC.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\HELLODOC.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\HELLOFRM.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\HELLOFRM.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\HELLOVW.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\HELLOVW.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.CLW +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.DSP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.DSW +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.ICO +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.MAK +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\MDI.RC +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\RES +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\RES\HELLODOC.ICO +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\RES\IDR_BOUN.ICO +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\RES\MDI.ICO +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\RES\MDI.RC2 +SAMPLES\VC98\MFC\GENERAL\MDIDOCVW\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\MODELESS\ADDERDLG.CPP +SAMPLES\VC98\MFC\GENERAL\MODELESS\ADDERDLG.H +SAMPLES\VC98\MFC\GENERAL\MODELESS\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELDLG.CPP +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELDLG.H +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELESS.CLW +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELESS.CPP +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELESS.DSP +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELESS.DSW +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELESS.H +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELESS.MAK +SAMPLES\VC98\MFC\GENERAL\MODELESS\MODELESS.RC +SAMPLES\VC98\MFC\GENERAL\MODELESS\README.TXT +SAMPLES\VC98\MFC\GENERAL\MODELESS\RES +SAMPLES\VC98\MFC\GENERAL\MODELESS\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\MODELESS\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\MODELESS\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\MODELESS\RES\MODELESS.ICO +SAMPLES\VC98\MFC\GENERAL\MODELESS\RES\MODELESS.RC2 +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\L.JPN +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MULTIPAD.CLW +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MULTIPAD.CPP +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MULTIPAD.DSP +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MULTIPAD.DSW +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MULTIPAD.H +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MULTIPAD.MAK +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\MULTIPAD.RC +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\RES +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\UNICODE.UTF +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\L.JPN\MULTIPAD.RC +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\RES\MULTIPAD.ICO +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\RES\PADDOC.ICO +SAMPLES\VC98\MFC\GENERAL\MULTIPAD\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\NPP\COMBOBAR.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\COMBOBAR.H +SAMPLES\VC98\MFC\GENERAL\NPP\FINDDLG.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\FINDDLG.H +SAMPLES\VC98\MFC\GENERAL\NPP\GOTODLG.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\GOTODLG.H +SAMPLES\VC98\MFC\GENERAL\NPP\HISTORY.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\HISTORY.H +SAMPLES\VC98\MFC\GENERAL\NPP\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\NPP\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\NPP\NP.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\NP.H +SAMPLES\VC98\MFC\GENERAL\NPP\NPDOC.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\NPDOC.H +SAMPLES\VC98\MFC\GENERAL\NPP\NPP.CLW +SAMPLES\VC98\MFC\GENERAL\NPP\NPP.DSP +SAMPLES\VC98\MFC\GENERAL\NPP\NPP.DSW +SAMPLES\VC98\MFC\GENERAL\NPP\NPP.MAK +SAMPLES\VC98\MFC\GENERAL\NPP\NPP.RC +SAMPLES\VC98\MFC\GENERAL\NPP\NPVIEW.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\NPVIEW.H +SAMPLES\VC98\MFC\GENERAL\NPP\RES +SAMPLES\VC98\MFC\GENERAL\NPP\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\NPP\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\NPP\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\NPP\RES\NP.ICO +SAMPLES\VC98\MFC\GENERAL\NPP\RES\NP.RC2 +SAMPLES\VC98\MFC\GENERAL\NPP\RES\NPDOC.ICO +SAMPLES\VC98\MFC\GENERAL\NPP\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\COLORPGE.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\COLORPGE.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\L.JPN +SAMPLES\VC98\MFC\GENERAL\PROPDLG\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\PROPDLG\MINIFRM.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\MINIFRM.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PREVIEW.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PREVIEW.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPDLG.CLW +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPDLG.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPDLG.DSP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPDLG.DSW +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPDLG.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPDLG.MAK +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPDLG.RC +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPSHT.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPSHT.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPSHT2.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\PROPSHT2.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\RES +SAMPLES\VC98\MFC\GENERAL\PROPDLG\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\SHAPEDOC.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\SHAPEDOC.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\SHAPEOBJ.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\SHAPEOBJ.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\SHAPESVW.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\SHAPESVW.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\STYLEPGE.CPP +SAMPLES\VC98\MFC\GENERAL\PROPDLG\STYLEPGE.H +SAMPLES\VC98\MFC\GENERAL\PROPDLG\L.JPN\PROPDLG.RC +SAMPLES\VC98\MFC\GENERAL\PROPDLG\L.JPN\RES +SAMPLES\VC98\MFC\GENERAL\PROPDLG\L.JPN\RES\PROPDLG.RC2 +SAMPLES\VC98\MFC\GENERAL\PROPDLG\RES\PROPDLG.ICO +SAMPLES\VC98\MFC\GENERAL\PROPDLG\RES\PROPDLG.RC2 +SAMPLES\VC98\MFC\GENERAL\PROPDLG\RES\SHAPEDOC.ICO +SAMPLES\VC98\MFC\GENERAL\PROPDLG\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\LISTVWEX.CPP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\LISTVWEX.H +SAMPLES\VC98\MFC\GENERAL\ROWLIST\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\ROWLIST\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RLISTDOC.CPP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RLISTDOC.H +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RLISTVW.CPP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RLISTVW.H +SAMPLES\VC98\MFC\GENERAL\ROWLIST\ROWLIST.CLW +SAMPLES\VC98\MFC\GENERAL\ROWLIST\ROWLIST.CPP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\ROWLIST.DSP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\ROWLIST.DSW +SAMPLES\VC98\MFC\GENERAL\ROWLIST\ROWLIST.H +SAMPLES\VC98\MFC\GENERAL\ROWLIST\ROWLIST.MAK +SAMPLES\VC98\MFC\GENERAL\ROWLIST\ROWLIST.RC +SAMPLES\VC98\MFC\GENERAL\ROWLIST\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES\LARGEICO.BMP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES\RLISTDOC.ICO +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES\ROWLIST.ICO +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES\ROWLIST.RC2 +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES\SMALLICO.BMP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES\STATEICO.BMP +SAMPLES\VC98\MFC\GENERAL\ROWLIST\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\SAVER\DRAWWND.CPP +SAMPLES\VC98\MFC\GENERAL\SAVER\DRAWWND.H +SAMPLES\VC98\MFC\GENERAL\SAVER\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\SAVER\README.TXT +SAMPLES\VC98\MFC\GENERAL\SAVER\RES +SAMPLES\VC98\MFC\GENERAL\SAVER\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVER.CLW +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVER.CPP +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVER.DSP +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVER.DSW +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVER.H +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVER.MAK +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVER.RC +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVERDLG.CPP +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVERDLG.H +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVERWND.CPP +SAMPLES\VC98\MFC\GENERAL\SAVER\SAVERWND.H +SAMPLES\VC98\MFC\GENERAL\SAVER\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\SAVER\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\SAVER\RES\CURSOR1.CUR +SAMPLES\VC98\MFC\GENERAL\SAVER\RES\SAVER.ICO +SAMPLES\VC98\MFC\GENERAL\SAVER\RES\SAVER.RC2 +SAMPLES\VC98\MFC\GENERAL\SNAPVW\BKFSTPG.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\BKFSTPG.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\CHILDFRM.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\CHILDFRM.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\DINNERPG.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\DINNERPG.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\LUNCHPG.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\LUNCHPG.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\SNAPVW\RES +SAMPLES\VC98\MFC\GENERAL\SNAPVW\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPDOC.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPDOC.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPPS.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPPS.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVIEW.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVIEW.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVW.CLW +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVW.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVW.DSP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVW.DSW +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVW.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVW.MAK +SAMPLES\VC98\MFC\GENERAL\SNAPVW\SNAPVW.RC +SAMPLES\VC98\MFC\GENERAL\SNAPVW\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\SNAPVW\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\SNAPVW\RES\SNAP.ICO +SAMPLES\VC98\MFC\GENERAL\SNAPVW\RES\SNAP.RC2 +SAMPLES\VC98\MFC\GENERAL\SNAPVW\RES\SNAPDOC.ICO +SAMPLES\VC98\MFC\GENERAL\SNAPVW\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\TRACKER\DIALOGS.CPP +SAMPLES\VC98\MFC\GENERAL\TRACKER\DIALOGS.H +SAMPLES\VC98\MFC\GENERAL\TRACKER\L.JPN +SAMPLES\VC98\MFC\GENERAL\TRACKER\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\TRACKER\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\TRACKER\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\TRACKER\RES +SAMPLES\VC98\MFC\GENERAL\TRACKER\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\TRACKER\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\TRACKER\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKAPP.CPP +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKAPP.H +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKDOC.CPP +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKDOC.H +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKER.CLW +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKER.DSP +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKER.DSW +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKER.MAK +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKER.RC +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKVW.CPP +SAMPLES\VC98\MFC\GENERAL\TRACKER\TRACKVW.H +SAMPLES\VC98\MFC\GENERAL\TRACKER\L.JPN\RES +SAMPLES\VC98\MFC\GENERAL\TRACKER\L.JPN\TRACKER.RC +SAMPLES\VC98\MFC\GENERAL\TRACKER\L.JPN\RES\TRACKER.RC2 +SAMPLES\VC98\MFC\GENERAL\TRACKER\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\TRACKER\RES\TRACKDOC.ICO +SAMPLES\VC98\MFC\GENERAL\TRACKER\RES\TRACKER.ICO +SAMPLES\VC98\MFC\GENERAL\TRACKER\RES\TRACKER.RC2 +SAMPLES\VC98\MFC\GENERAL\VCTERM\CANDLG.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\CANDLG.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\COMMCTRL.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\COMMCTRL.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\INPUTDLG.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\INPUTDLG.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\MAINFRM.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\MAINFRM.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\VCTERM\RES +SAMPLES\VC98\MFC\GENERAL\VCTERM\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\SETDLG.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\SETDLG.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\TERMEDIT.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\TERMEDIT.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.BLD +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.CLW +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.CPP +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.DSP +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.DSW +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.H +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.MAK +SAMPLES\VC98\MFC\GENERAL\VCTERM\VCTERM.RC +SAMPLES\VC98\MFC\GENERAL\VCTERM\RES\TERMDOC.ICO +SAMPLES\VC98\MFC\GENERAL\VCTERM\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\GENERAL\VCTERM\RES\VCTERM.ICO +SAMPLES\VC98\MFC\GENERAL\VCTERM\RES\VCTERM.RC2 +SAMPLES\VC98\MFC\GENERAL\VIEWEX\ENTERDLG.CPP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\ENTERDLG.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\INPUTVW.CPP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\INPUTVW.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\L.JPN +SAMPLES\VC98\MFC\GENERAL\VIEWEX\MAINDOC.CPP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\MAINDOC.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\VIEWEX\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\SIMPVW.CPP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\SIMPVW.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\SPLITTER.CPP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\SPLITTER.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.CLW +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.CPP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.DSP +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.DSW +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.H +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.ICO +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.MAK +SAMPLES\VC98\MFC\GENERAL\VIEWEX\VIEWEX.RC +SAMPLES\VC98\MFC\GENERAL\VIEWEX\L.JPN\VIEWEX.RC +SAMPLES\VC98\MFC\GENERAL\WIZARD97\BANER16.BMP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\BANER256.BMP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\COMPLETE.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\COMPLETE.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\INT1.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\INT1.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\INT2.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\INT2.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\INTROPG.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\INTROPG.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\MAKEFILE +SAMPLES\VC98\MFC\GENERAL\WIZARD97\RES +SAMPLES\VC98\MFC\GENERAL\WIZARD97\RESOURCE.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\SAMPWIZP.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\STDAFX.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\STDAFX.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WATER16.BMP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WATER256.BMP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZARD97.CLW +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZARD97.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZARD97.DSP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZARD97.DSW +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZARD97.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZARD97.MAK +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZARD97.RC +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZSHEET.CPP +SAMPLES\VC98\MFC\GENERAL\WIZARD97\WIZSHEET.H +SAMPLES\VC98\MFC\GENERAL\WIZARD97\RES\WIZARD97.ICO +SAMPLES\VC98\MFC\GENERAL\WIZARD97\RES\WIZARD97.RC2 +SAMPLES\VC98\MFC\INTERNET\COUNTER +SAMPLES\VC98\MFC\INTERNET\FTPTREE +SAMPLES\VC98\MFC\INTERNET\HTTPSVR +SAMPLES\VC98\MFC\INTERNET\MFCIE +SAMPLES\VC98\MFC\INTERNET\MFCUCASE +SAMPLES\VC98\MFC\INTERNET\PINBALL +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER +SAMPLES\VC98\MFC\INTERNET\TEAR +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE +SAMPLES\VC98\MFC\INTERNET\COUNTER\CHARSET.H +SAMPLES\VC98\MFC\INTERNET\COUNTER\CHARSET.H2 +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.CPP +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.DEF +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.DSP +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.DSW +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.H +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.MAK +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.RC +SAMPLES\VC98\MFC\INTERNET\COUNTER\COUNTER.RC2 +SAMPLES\VC98\MFC\INTERNET\COUNTER\MAKEFILE +SAMPLES\VC98\MFC\INTERNET\COUNTER\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTRCTL.CPP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTRCTL.H +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTRDLG.CPP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTRDLG.H +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTREE.CLW +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTREE.CPP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTREE.DSP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTREE.DSW +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTREE.H +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTREE.MAK +SAMPLES\VC98\MFC\INTERNET\FTPTREE\FTPTREE.RC +SAMPLES\VC98\MFC\INTERNET\FTPTREE\MAKEFILE +SAMPLES\VC98\MFC\INTERNET\FTPTREE\RES +SAMPLES\VC98\MFC\INTERNET\FTPTREE\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\FTPTREE\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\FTPTREE\RES\BMDIR.BMP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\RES\BMERROR.BMP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\RES\BMFILE.BMP +SAMPLES\VC98\MFC\INTERNET\FTPTREE\RES\FTPTREE.ICO +SAMPLES\VC98\MFC\INTERNET\FTPTREE\RES\FTPTREE.RC2 +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\DEFAULT.HSC +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\GENPAGE.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\GENPAGE.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTP.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTP.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPDOC.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPDOC.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.BLD +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.CLW +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.DSP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.DSW +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.MAK +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.RC +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPSVR.REG +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPVIEW.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\HTTPVIEW.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\LISTEN.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\LISTEN.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\MAINFRM.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\MAINFRM.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\MAKEFILE +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\NAMEPAGE.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\NAMEPAGE.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\NOROOT.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\NOROOT.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\README.TXT +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\REQSOCK.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\REQSOCK.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\REQUEST.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\REQUEST.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RES +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\ROOTDLG.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\ROOTDLG.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\ROOTPAGE.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\ROOTPAGE.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\SVRADMIN +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RES\HTTPDOC.ICO +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RES\HTTPSVR.RC2 +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RES\IMAGES.BMP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RES\LOGFILE.ICO +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RES\MAINFRM.ICO +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\RES\SMIMAGES.BMP +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\SVRADMIN\BLANK.GIF +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\SVRADMIN\FILE.GIF +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\SVRADMIN\FOLDER.GIF +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\SVRADMIN\HTTPSVR.GIF +SAMPLES\VC98\MFC\INTERNET\HTTPSVR\SVRADMIN\PREV.GIF +SAMPLES\VC98\MFC\INTERNET\MFCIE\MAINFRM.CPP +SAMPLES\VC98\MFC\INTERNET\MFCIE\MAINFRM.H +SAMPLES\VC98\MFC\INTERNET\MFCIE\MAKEFILE +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIE.CLW +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIE.CPP +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIE.DSP +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIE.DSW +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIE.H +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIE.MAK +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIE.RC +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIEDOC.CPP +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIEDOC.H +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIEVW.CPP +SAMPLES\VC98\MFC\INTERNET\MFCIE\MFCIEVW.H +SAMPLES\VC98\MFC\INTERNET\MFCIE\RES +SAMPLES\VC98\MFC\INTERNET\MFCIE\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\MFCIE\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\MFCIE\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\MFCIE\RES\COLDTOOL.BMP +SAMPLES\VC98\MFC\INTERNET\MFCIE\RES\HOTTOOLB.BMP +SAMPLES\VC98\MFC\INTERNET\MFCIE\RES\MFC2.AVI +SAMPLES\VC98\MFC\INTERNET\MFCIE\RES\MFCIE.ICO +SAMPLES\VC98\MFC\INTERNET\MFCIE\RES\MFCIE.RC2 +SAMPLES\VC98\MFC\INTERNET\MFCIE\RES\MFCIEDOC.ICO +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MAKEFILE +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MFCUCASE.CPP +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MFCUCASE.DEF +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MFCUCASE.DSP +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MFCUCASE.DSW +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MFCUCASE.H +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MFCUCASE.MAK +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\MFCUCASE.RC +SAMPLES\VC98\MFC\INTERNET\MFCUCASE\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\PINBALL\CV.GIF +SAMPLES\VC98\MFC\INTERNET\PINBALL\HTML +SAMPLES\VC98\MFC\INTERNET\PINBALL\MARS.JPG +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.CPP +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.DEF +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.DSP +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.DSW +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.H +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.MAK +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.RC +SAMPLES\VC98\MFC\INTERNET\PINBALL\PINBALL.RC2 +SAMPLES\VC98\MFC\INTERNET\PINBALL\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\PINBALL\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\PINBALL\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\PINBALL\TAF.GIF +SAMPLES\VC98\MFC\INTERNET\PINBALL\TZ.GIF +SAMPLES\VC98\MFC\INTERNET\PINBALL\HTML\FORM.HTM +SAMPLES\VC98\MFC\INTERNET\PINBALL\HTML\REDIR.HTM +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKCTRL.TXT +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CNTRITEM.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CNTRITEM.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFC.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFC.DSP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFC.DSW +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFC.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFC.RC +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFC.REG +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFCDOC.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFCDOC.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFCVIEW.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\CONTAINERMFCVIEW.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\FONT.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\FONT.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\MAINFRM.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\MAINFRM.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\README.TXT +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\RES +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\_STOCKTICKERCTRL.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\_STOCKTICKERCTRL.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\RES\CONTAINERMFC.ICO +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\RES\CONTAINERMFC.RC2 +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\CONTAINERMFC\RES\CONTAINERMFCDOC.ICO +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\CPSTOCKQUOTES.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\DLLDATAX.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\ENUMSTOCKS.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\ENUMSTOCKS.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\ENUMSTOCKS.RGS +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\MSG.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.DEF +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.DSP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.DSW +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.IDL +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.MAK +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.RC +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES.RGS +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTESPS.DEF +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTESPS.MK +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES_.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKQUOTES_.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKUPDATENOTIFY.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKQUOTES\STOCKUPDATENOTIFY.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKDATAMGR.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKDATAMGR.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKSOURCEMFC.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKSOURCEMFC.DEF +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKSOURCEMFC.DSP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKSOURCEMFC.DSW +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKSOURCEMFC.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKSOURCEMFC.RC +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKSOURCEMFC\STOCKSOURCEMFC.RC2 +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\CPSTOCKQUOTES.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\DLLDATAX.C +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\DLLDATAX.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\RENDERSTOCKS.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\RENDERSTOCKS.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKSDIALOG.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKSDIALOG.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKSYMBOLS.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.DEF +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.DSP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.DSW +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.HTM +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.IDL +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.RC +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL.RGS +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATLPS.DEF +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATLPS.MK +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL_.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERATL_.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERPROP.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERPROP.H +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\STOCKTICKERPROP.RGS +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\WINDOWLESSOPTIONS.CPP +SAMPLES\VC98\MFC\INTERNET\STOCKTICKER\STOCKTICKERATL\WINDOWLESSOPTIONS.H +SAMPLES\VC98\MFC\INTERNET\TEAR\MAKEFILE +SAMPLES\VC98\MFC\INTERNET\TEAR\TEAR.CPP +SAMPLES\VC98\MFC\INTERNET\TEAR\TEAR.DSP +SAMPLES\VC98\MFC\INTERNET\TEAR\TEAR.DSW +SAMPLES\VC98\MFC\INTERNET\TEAR\TEAR.H +SAMPLES\VC98\MFC\INTERNET\TEAR\TEAR.MAK +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\MAKEFILE +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\QUERIES.CPP +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\QUERIES.H +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\QUOTES.SQL +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\RES +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\RESOURCE.H +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\STDAFX.CPP +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\STDAFX.H +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\WWWQUOTE.CPP +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\WWWQUOTE.DEF +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\WWWQUOTE.DSP +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\WWWQUOTE.DSW +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\WWWQUOTE.H +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\WWWQUOTE.MAK +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\WWWQUOTE.RC +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\ISSUEERR.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\NEXT.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\PREV.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\QUOTEERR.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\QUOTHEAD.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\SELHEAD.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\SELTAIL.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\HTML\WELCOME.HTM +SAMPLES\VC98\MFC\INTERNET\WWWQUOTE\RES\WWWQUOTE.RC2 +SAMPLES\VC98\MFC\OLE\ACDUAL +SAMPLES\VC98\MFC\OLE\BINDSCRB +SAMPLES\VC98\MFC\OLE\CALCDRIV +SAMPLES\VC98\MFC\OLE\DRAWCLI +SAMPLES\VC98\MFC\OLE\HIERSVR +SAMPLES\VC98\MFC\OLE\INPROC +SAMPLES\VC98\MFC\OLE\IPDRIVE +SAMPLES\VC98\MFC\OLE\MFCBIND +SAMPLES\VC98\MFC\OLE\MFCCALC +SAMPLES\VC98\MFC\OLE\OCLIENT +SAMPLES\VC98\MFC\OLE\OLEVIEW +SAMPLES\VC98\MFC\OLE\SUPERPAD +SAMPLES\VC98\MFC\OLE\TSTCON +SAMPLES\VC98\MFC\OLE\WORDPAD +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER +SAMPLES\VC98\MFC\OLE\ACDUAL\VBCTRL +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTOCLIK.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTOCLIK.H +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODDLG.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODDLG.H +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODRIV.CLW +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODRIV.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODRIV.DSP +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODRIV.DSW +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODRIV.H +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODRIV.MAK +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\AUTODRIV.RC +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\INITIIDS.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\MAKEFILE +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\RES +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\RESOURCE.H +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\STDAFX.H +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\RES\AUTODRIV.ICO +SAMPLES\VC98\MFC\OLE\ACDUAL\MFCCTRL\RES\AUTODRIV.RC2 +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\ACDUAL.DSP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\ACDUAL.DSW +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\ACDUAL.MAK +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\ACLIKDOC.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\ACLIKDOC.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\ACLIKVW.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\ACLIKVW.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\AUTOCLIK.CLW +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\AUTOCLIK.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\AUTOCLIK.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\AUTOCLIK.ODL +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\AUTOCLIK.RC +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\AUTOCLIK.REG +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\CHILDFRM.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\CHILDFRM.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\CLIKPNT.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\CLIKPNT.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\DIALOGS.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\DIALOGS.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\INITIIDS.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\MAINFRM.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\MFCDUAL.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\MFCDUAL.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\RES +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\RESOURCE.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\STDAFX.H +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\RES\ACLIKDOC.ICO +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\RES\AUTOCLIK.ICO +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\RES\AUTOCLIK.RC2 +SAMPLES\VC98\MFC\OLE\ACDUAL\SERVER\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\ACDUAL\VBCTRL\AUTODRIV.EXE +SAMPLES\VC98\MFC\OLE\ACDUAL\VBCTRL\AUTODRIV.FRM +SAMPLES\VC98\MFC\OLE\ACDUAL\VBCTRL\AUTODRIV.MAK +SAMPLES\VC98\MFC\OLE\BINDSCRB\IPFRAME.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\IPFRAME.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\MAINFRM.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\MAKEFILE +SAMPLES\VC98\MFC\OLE\BINDSCRB\MAKEHELP.BAT +SAMPLES\VC98\MFC\OLE\BINDSCRB\PENDLG.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\PENDLG.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\RES +SAMPLES\VC98\MFC\OLE\BINDSCRB\RESOURCE.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.DSP +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.DSW +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.HPJ +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.MAK +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.RC +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBBLE.REG +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBDOC.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBDOC.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBFRM.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBFRM.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBITM.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBITM.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBVW.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\SCRIBVW.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\BINDSCRB\STDAFX.H +SAMPLES\VC98\MFC\OLE\BINDSCRB\RES\ITOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\BINDSCRB\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\OLE\BINDSCRB\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\OLE\BINDSCRB\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\OLE\BINDSCRB\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCDRIV.CLW +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCDRIV.CPP +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCDRIV.DSP +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCDRIV.DSW +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCDRIV.H +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCDRIV.MAK +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCDRIV.RC + +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCTYPE.CPP +SAMPLES\VC98\MFC\OLE\CALCDRIV\CALCTYPE.H +SAMPLES\VC98\MFC\OLE\CALCDRIV\L.JPN +SAMPLES\VC98\MFC\OLE\CALCDRIV\MAKEFILE +SAMPLES\VC98\MFC\OLE\CALCDRIV\RES +SAMPLES\VC98\MFC\OLE\CALCDRIV\RESOURCE.H +SAMPLES\VC98\MFC\OLE\CALCDRIV\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\CALCDRIV\STDAFX.H +SAMPLES\VC98\MFC\OLE\CALCDRIV\L.JPN\CALCDRIV.RC +SAMPLES\VC98\MFC\OLE\CALCDRIV\L.JPN\RES +SAMPLES\VC98\MFC\OLE\CALCDRIV\L.JPN\RES\CALCDRIV.RC2 +SAMPLES\VC98\MFC\OLE\CALCDRIV\RES\CALCDRIV.ICO +SAMPLES\VC98\MFC\OLE\CALCDRIV\RES\CALCDRIV.RC2 +SAMPLES\VC98\MFC\OLE\DRAWCLI\CNTRITEM.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\CNTRITEM.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWCLI.CLW +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWCLI.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWCLI.DSP +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWCLI.DSW +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWCLI.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWCLI.MAK +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWCLI.RC +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWDOC.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWDOC.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWOBJ.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWOBJ.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWTOOL.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWTOOL.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWVW.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\DRAWVW.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\L.JPN +SAMPLES\VC98\MFC\OLE\DRAWCLI\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\MAINFRM.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\MAKEFILE +SAMPLES\VC98\MFC\OLE\DRAWCLI\PROPSET.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\PROPSET.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\README.TXT +SAMPLES\VC98\MFC\OLE\DRAWCLI\RECTDLG.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\RECTDLG.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\RES +SAMPLES\VC98\MFC\OLE\DRAWCLI\RESOURCE.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\SETUP.LST +SAMPLES\VC98\MFC\OLE\DRAWCLI\SETUP.RUL +SAMPLES\VC98\MFC\OLE\DRAWCLI\SPLITFRM.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\SPLITFRM.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\STATPAGE.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\STATPAGE.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\STDAFX.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\SUMMINFO.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\SUMMINFO.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\SUMMPAGE.CPP +SAMPLES\VC98\MFC\OLE\DRAWCLI\SUMMPAGE.H +SAMPLES\VC98\MFC\OLE\DRAWCLI\L.JPN\DRAWCLI.RC +SAMPLES\VC98\MFC\OLE\DRAWCLI\L.JPN\RES +SAMPLES\VC98\MFC\OLE\DRAWCLI\L.JPN\RES\DRAWCLI.RC2 +SAMPLES\VC98\MFC\OLE\DRAWCLI\RES\DRAWCLI.ICO +SAMPLES\VC98\MFC\OLE\DRAWCLI\RES\DRAWCLI.RC2 +SAMPLES\VC98\MFC\OLE\DRAWCLI\RES\DRAWDOC.ICO +SAMPLES\VC98\MFC\OLE\DRAWCLI\RES\PENCIL.CUR +SAMPLES\VC98\MFC\OLE\DRAWCLI\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.CLW +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.DSP +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.DSW +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.H +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.MAK +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.RC +SAMPLES\VC98\MFC\OLE\HIERSVR\HIERSVR.REG +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP +SAMPLES\VC98\MFC\OLE\HIERSVR\IPFRAME.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\IPFRAME.H +SAMPLES\VC98\MFC\OLE\HIERSVR\L.JPN +SAMPLES\VC98\MFC\OLE\HIERSVR\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\MAINFRM.H +SAMPLES\VC98\MFC\OLE\HIERSVR\MAKEFILE +SAMPLES\VC98\MFC\OLE\HIERSVR\MAKEHELP.BAT +SAMPLES\VC98\MFC\OLE\HIERSVR\MFCCLASS.HIE +SAMPLES\VC98\MFC\OLE\HIERSVR\MFCCLASS.TXT +SAMPLES\VC98\MFC\OLE\HIERSVR\RES +SAMPLES\VC98\MFC\OLE\HIERSVR\RESOURCE.H +SAMPLES\VC98\MFC\OLE\HIERSVR\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\STDAFX.H +SAMPLES\VC98\MFC\OLE\HIERSVR\SVRDOC.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\SVRDOC.H +SAMPLES\VC98\MFC\OLE\HIERSVR\SVRITEM.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\SVRITEM.H +SAMPLES\VC98\MFC\OLE\HIERSVR\SVRVIEW.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\SVRVIEW.H +SAMPLES\VC98\MFC\OLE\HIERSVR\ZOOMDLG.CPP +SAMPLES\VC98\MFC\OLE\HIERSVR\ZOOMDLG.H +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\AFXCORE.RTF +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\AFXCRMAC.RTF +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\AFXPRINT.RTF +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\AFXPTMAC.RTF +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\APPEXIT.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\BULLET.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\CURARW2.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\CURARW4.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\CURHELP.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\EDITCOPY.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\EDITCUT.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\EDITPAST.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\EDITUNDO.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\FILENEW.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\FILEOPEN.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\FILEPRNT.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\FILESAVE.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\HIERMAC.HPJ +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\HIERSVR.HPJ +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\HLPSBAR.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\HLPTBAR.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\MACCMD.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\SCMAX.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\SCMENU.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\HLP\SCMIN.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\L.JPN\HIERSVR.RC +SAMPLES\VC98\MFC\OLE\HIERSVR\L.JPN\HLP +SAMPLES\VC98\MFC\OLE\HIERSVR\L.JPN\HLP\AFXCORE.RTF +SAMPLES\VC98\MFC\OLE\HIERSVR\L.JPN\HLP\AFXPRINT.RTF +SAMPLES\VC98\MFC\OLE\HIERSVR\RES\HIERSVR.ICO +SAMPLES\VC98\MFC\OLE\HIERSVR\RES\ITOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\HIERSVR\RES\SVRDOC.ICO +SAMPLES\VC98\MFC\OLE\HIERSVR\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\INPROC\ENUMVAR.CPP +SAMPLES\VC98\MFC\OLE\INPROC\ENUMVAR.H +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.CLW +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.CPP +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.DEF +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.DSP +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.DSW +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.H +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.MAK +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.ODL +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.RC +SAMPLES\VC98\MFC\OLE\INPROC\INPROC.REG +SAMPLES\VC98\MFC\OLE\INPROC\MAKEFILE +SAMPLES\VC98\MFC\OLE\INPROC\RES +SAMPLES\VC98\MFC\OLE\INPROC\RESOURCE.H +SAMPLES\VC98\MFC\OLE\INPROC\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\INPROC\STDAFX.H +SAMPLES\VC98\MFC\OLE\INPROC\STRCOLL.CPP +SAMPLES\VC98\MFC\OLE\INPROC\STRCOLL.H +SAMPLES\VC98\MFC\OLE\INPROC\VARASSOC.CPP +SAMPLES\VC98\MFC\OLE\INPROC\VARASSOC.H +SAMPLES\VC98\MFC\OLE\INPROC\VARMAP.CPP +SAMPLES\VC98\MFC\OLE\INPROC\VARMAP.H +SAMPLES\VC98\MFC\OLE\INPROC\RES\INPROC.ICO +SAMPLES\VC98\MFC\OLE\INPROC\RES\INPROC.RC2 +SAMPLES\VC98\MFC\OLE\IPDRIVE\DRIVE16.DEF +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIDOC.CPP +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIDOC.H +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVE.CLW +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVE.CPP +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVE.DSP +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVE.DSW +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVE.H +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVE.MAK +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVE.RC +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVW.CPP +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPDRIVW.H +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPREMOTE.CPP +SAMPLES\VC98\MFC\OLE\IPDRIVE\IPREMOTE.H +SAMPLES\VC98\MFC\OLE\IPDRIVE\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\IPDRIVE\MAINFRM.H +SAMPLES\VC98\MFC\OLE\IPDRIVE\MAKEFILE +SAMPLES\VC98\MFC\OLE\IPDRIVE\RES +SAMPLES\VC98\MFC\OLE\IPDRIVE\RESOURCE.H +SAMPLES\VC98\MFC\OLE\IPDRIVE\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\IPDRIVE\STDAFX.H +SAMPLES\VC98\MFC\OLE\IPDRIVE\VBDRIVE.FRM +SAMPLES\VC98\MFC\OLE\IPDRIVE\RES\IPDRIVE.ICO +SAMPLES\VC98\MFC\OLE\IPDRIVE\RES\IPDRIVE.RC2 +SAMPLES\VC98\MFC\OLE\IPDRIVE\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\MFCBIND\BINDDOC.CPP +SAMPLES\VC98\MFC\OLE\MFCBIND\BINDDOC.H +SAMPLES\VC98\MFC\OLE\MFCBIND\BINDVIEW.CPP +SAMPLES\VC98\MFC\OLE\MFCBIND\BINDVIEW.H +SAMPLES\VC98\MFC\OLE\MFCBIND\CNTRITEM.CPP +SAMPLES\VC98\MFC\OLE\MFCBIND\CNTRITEM.H +SAMPLES\VC98\MFC\OLE\MFCBIND\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\MFCBIND\MAINFRM.H +SAMPLES\VC98\MFC\OLE\MFCBIND\MFCBIND.CLW +SAMPLES\VC98\MFC\OLE\MFCBIND\MFCBIND.CPP +SAMPLES\VC98\MFC\OLE\MFCBIND\MFCBIND.DSP +SAMPLES\VC98\MFC\OLE\MFCBIND\MFCBIND.DSW +SAMPLES\VC98\MFC\OLE\MFCBIND\MFCBIND.H +SAMPLES\VC98\MFC\OLE\MFCBIND\MFCBIND.MAK +SAMPLES\VC98\MFC\OLE\MFCBIND\MFCBIND.RC +SAMPLES\VC98\MFC\OLE\MFCBIND\OBJVIEW.CPP +SAMPLES\VC98\MFC\OLE\MFCBIND\OBJVIEW.H +SAMPLES\VC98\MFC\OLE\MFCBIND\RES +SAMPLES\VC98\MFC\OLE\MFCBIND\RESOURCE.H +SAMPLES\VC98\MFC\OLE\MFCBIND\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\MFCBIND\STDAFX.H +SAMPLES\VC98\MFC\OLE\MFCBIND\RES\BINDDOC.ICO +SAMPLES\VC98\MFC\OLE\MFCBIND\RES\MFCBIND.ICO +SAMPLES\VC98\MFC\OLE\MFCBIND\RES\MFCBIND.RC2 +SAMPLES\VC98\MFC\OLE\MFCBIND\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\MFCCALC\CALCDLG.CPP +SAMPLES\VC98\MFC\OLE\MFCCALC\CALCDLG.H +SAMPLES\VC98\MFC\OLE\MFCCALC\MAKEFILE +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.CLW +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.CPP +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.DSP +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.DSW +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.H +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.MAK +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.ODL +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.RC +SAMPLES\VC98\MFC\OLE\MFCCALC\MFCCALC.REG +SAMPLES\VC98\MFC\OLE\MFCCALC\RES +SAMPLES\VC98\MFC\OLE\MFCCALC\RESOURCE.H +SAMPLES\VC98\MFC\OLE\MFCCALC\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\MFCCALC\STDAFX.H +SAMPLES\VC98\MFC\OLE\MFCCALC\RES\MFCCALC.ICO +SAMPLES\VC98\MFC\OLE\MFCCALC\RES\MFCCALC.RC2 +SAMPLES\VC98\MFC\OLE\OCLIENT\FRAME.CPP +SAMPLES\VC98\MFC\OLE\OCLIENT\FRAME.H +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP +SAMPLES\VC98\MFC\OLE\OCLIENT\L.JPN +SAMPLES\VC98\MFC\OLE\OCLIENT\MAINDOC.CPP +SAMPLES\VC98\MFC\OLE\OCLIENT\MAINDOC.H +SAMPLES\VC98\MFC\OLE\OCLIENT\MAINVIEW.CPP +SAMPLES\VC98\MFC\OLE\OCLIENT\MAINVIEW.H +SAMPLES\VC98\MFC\OLE\OCLIENT\MAKEFILE +SAMPLES\VC98\MFC\OLE\OCLIENT\MAKEHELP.BAT +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.CLW +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.CPP +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.DSP +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.DSW +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.H +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.MAK +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.RC +SAMPLES\VC98\MFC\OLE\OCLIENT\OCLIENT.REG +SAMPLES\VC98\MFC\OLE\OCLIENT\RECTITEM.CPP +SAMPLES\VC98\MFC\OLE\OCLIENT\RECTITEM.H +SAMPLES\VC98\MFC\OLE\OCLIENT\RES +SAMPLES\VC98\MFC\OLE\OCLIENT\RESOURCE.H +SAMPLES\VC98\MFC\OLE\OCLIENT\SPLITFRA.CPP +SAMPLES\VC98\MFC\OLE\OCLIENT\SPLITFRA.H +SAMPLES\VC98\MFC\OLE\OCLIENT\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\OCLIENT\STDAFX.H +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\AFXCORE.RTF +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\AFXCRMAC.RTF +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\AFXPRINT.RTF +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\AFXPTMAC.RTF +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\APPEXIT.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\BULLET.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\CURARW2.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\CURARW4.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\CURHELP.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\EDITCOPY.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\EDITCUT.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\EDITPAST.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\EDITUNDO.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\FILENEW.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\FILEOPEN.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\FILEPRNT.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\FILESAVE.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\HLPSBAR.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\HLPTBAR.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\MACCMD.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\OCLIENT.HPJ +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\OCLIMAC.HPJ +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\SCMAX.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\SCMENU.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\HLP\SCMIN.BMP +SAMPLES\VC98\MFC\OLE\OCLIENT\L.JPN\HLP +SAMPLES\VC98\MFC\OLE\OCLIENT\L.JPN\OCLIENT.RC +SAMPLES\VC98\MFC\OLE\OCLIENT\L.JPN\HLP\AFXCORE.RTF +SAMPLES\VC98\MFC\OLE\OCLIENT\L.JPN\HLP\AFXPRINT.RTF +SAMPLES\VC98\MFC\OLE\OCLIENT\RES\OCLIENT.ICO +SAMPLES\VC98\MFC\OLE\OCLIENT\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\DOC.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\DOC.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS +SAMPLES\VC98\MFC\OLE\OLEVIEW\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\MAINFRM.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\MAKEFILE +SAMPLES\VC98\MFC\OLE\OLEVIEW\OBJ_VW.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\OBJ_VW.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\OLEVIEW.CLW +SAMPLES\VC98\MFC\OLE\OLEVIEW\OLEVIEW.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\OLEVIEW.DSP +SAMPLES\VC98\MFC\OLE\OLEVIEW\OLEVIEW.DSW +SAMPLES\VC98\MFC\OLE\OLEVIEW\OLEVIEW.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\OLEVIEW.MAK +SAMPLES\VC98\MFC\OLE\OLEVIEW\OLEVIEW.RC +SAMPLES\VC98\MFC\OLE\OLEVIEW\REGVIEW.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\REGVIEW.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES +SAMPLES\VC98\MFC\OLE\OLEVIEW\RESOURCE.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\SHADOW.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\SHADOW.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\STDAFX.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\UTIL.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\UTIL.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\VIEW.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\VIEW.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\DATAOBJ.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\DATAOBJ.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\DISPATCH.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\DISPATCH.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\GUID.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IADVSINK.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IADVSINK.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IDATAOBJ.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IDATAOBJ.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEW.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWER.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWER.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.DEF +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.DSP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.DSW +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.MAK +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.RC +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\IVIEWERS.REG +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\MAKEFILE +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\RES +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\RESOURCE.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\SHADOW.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\SHADOW.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\STDAFX.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TLBLIST.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TLBLIST.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TLBODL.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TLBODL.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TLBTREE.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TLBTREE.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TREE.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TREE.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TYPELIB.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\TYPELIB.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\UTIL.CPP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\UTIL.H +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\RES\IDR_TYPE.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\RES\IMAGELIS.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\RES\IVIEWERS.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\RES\IVIEWERS.RC2 +SAMPLES\VC98\MFC\OLE\OLEVIEW\IVIEWERS\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\AUTOMATI.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\AUTOMATI.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\BITMAP1.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\BMP00001.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\BMP00002.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\CONTAINE.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\CONTROL.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\DRAGDROP.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\ICO00001.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\ICO00002.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\ICON1.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\IFACE_C.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\IFACE_I.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\IMAGELIS.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\INSRT132.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\INSRT_32.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\MAGNIFY.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\NA.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\NOICON.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OBJECT.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OBJECT32.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OBJECT_I.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OBJ_C32.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OLE2.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OLE2.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OLE2_1.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OLEVIEW.ICO +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\OLEVIEW.RC2 +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\QUESTION.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\QUESTN32.BMP +SAMPLES\VC98\MFC\OLE\OLEVIEW\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\SUPERPAD\ABOUTBOX.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\ABOUTBOX.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\IPFRAME.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\IPFRAME.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\L.JPN +SAMPLES\VC98\MFC\OLE\SUPERPAD\LINKITEM.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\LINKITEM.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\MAINFRM.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\MAKEFILE +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADDOC.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADDOC.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADFRAME.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADFRAME.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADITEM.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADITEM.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADVIEW.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\PADVIEW.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\PAGESET.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\PAGESET.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\RES +SAMPLES\VC98\MFC\OLE\SUPERPAD\RESOURCE.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\STDAFX.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.CLW +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.DSP +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.DSW +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.MAK +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.RC +SAMPLES\VC98\MFC\OLE\SUPERPAD\SUPERPAD.REG +SAMPLES\VC98\MFC\OLE\SUPERPAD\TABSTOP.CPP +SAMPLES\VC98\MFC\OLE\SUPERPAD\TABSTOP.H +SAMPLES\VC98\MFC\OLE\SUPERPAD\L.JPN\SUPERPAD.RC +SAMPLES\VC98\MFC\OLE\SUPERPAD\RES\ITOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\SUPERPAD\RES\PADDOC.ICO +SAMPLES\VC98\MFC\OLE\SUPERPAD\RES\SUPERPAD.ICO +SAMPLES\VC98\MFC\OLE\SUPERPAD\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\APROP.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\APROP.H +SAMPLES\VC98\MFC\OLE\TSTCON\APROPDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\APROPDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\BINDHOST.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\BINDHOST.H +SAMPLES\VC98\MFC\OLE\TSTCON\COMCATDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\COMCATDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\CONINFDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\CONINFDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\EVLOGPG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\EVLOGPG.H +SAMPLES\VC98\MFC\OLE\TSTCON\EXCEPINF.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\EXCEPINF.H +SAMPLES\VC98\MFC\OLE\TSTCON\EXTCTL.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\EXTCTL.H +SAMPLES\VC98\MFC\OLE\TSTCON\FEATPG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\FEATPG.H +SAMPLES\VC98\MFC\OLE\TSTCON\HLP +SAMPLES\VC98\MFC\OLE\TSTCON\IFACESPG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\IFACESPG.H +SAMPLES\VC98\MFC\OLE\TSTCON\INSCTLDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\INSCTLDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\LOG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\LOG.H +SAMPLES\VC98\MFC\OLE\TSTCON\LOGDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\LOGDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\MACROCB.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\MACROCB.H +SAMPLES\VC98\MFC\OLE\TSTCON\MACRODB.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\MACRODB.H +SAMPLES\VC98\MFC\OLE\TSTCON\MACRODG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\MACRODG.H +SAMPLES\VC98\MFC\OLE\TSTCON\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\MAINFRM.H +SAMPLES\VC98\MFC\OLE\TSTCON\MAKEHELP.BAT +SAMPLES\VC98\MFC\OLE\TSTCON\MAKETCHM.BAT +SAMPLES\VC98\MFC\OLE\TSTCON\METHINFO.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\METHINFO.H +SAMPLES\VC98\MFC\OLE\TSTCON\METHODDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\METHODDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\MFILEWND.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\MFILEWND.H +SAMPLES\VC98\MFC\OLE\TSTCON\NEWAPDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\NEWAPDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\OUTWNDVW.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\OUTWNDVW.H +SAMPLES\VC98\MFC\OLE\TSTCON\PBAGDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\PBAGDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\PCHNGPG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\PCHNGPG.H +SAMPLES\VC98\MFC\OLE\TSTCON\PEDREQPG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\PEDREQPG.H +SAMPLES\VC98\MFC\OLE\TSTCON\PROPBAG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\PROPBAG.H +SAMPLES\VC98\MFC\OLE\TSTCON\REGCTLDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\REGCTLDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\RES +SAMPLES\VC98\MFC\OLE\TSTCON\RESOURCE.H +SAMPLES\VC98\MFC\OLE\TSTCON\RESOURCE.HM +SAMPLES\VC98\MFC\OLE\TSTCON\SCRIPT.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\SCRIPT.H +SAMPLES\VC98\MFC\OLE\TSTCON\SCRIPTS +SAMPLES\VC98\MFC\OLE\TSTCON\SCRMNGR.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\SCRMNGR.H +SAMPLES\VC98\MFC\OLE\TSTCON\SERVPG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\SERVPG.H +SAMPLES\VC98\MFC\OLE\TSTCON\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\STDAFX.H +SAMPLES\VC98\MFC\OLE\TSTCON\TABORDDG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TABORDDG.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCDOC.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCDOC.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCITEM.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCITEM.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS +SAMPLES\VC98\MFC\OLE\TSTCON\TCSPLIT.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCSPLIT.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCTRACE.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCTRACE.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCVIEW.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCVIEW.H +SAMPLES\VC98\MFC\OLE\TSTCON\TESTCON.H +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.DSP +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.DSW +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.H +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.MAK +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.ODL +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.RC +SAMPLES\VC98\MFC\OLE\TSTCON\TSTCON.REG +SAMPLES\VC98\MFC\OLE\TSTCON\TYPEATTR.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TYPEATTR.H +SAMPLES\VC98\MFC\OLE\TSTCON\VARUTILS.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\VARUTILS.H +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\APPEXIT.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\BULLET.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\CURARW2.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\CURARW4.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\CURHELP.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\EDITCOPY.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\EDITCUT.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\EDITPAST.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\EDITUNDO.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\FILENEW.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\FILEOPEN.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\FILEPRNT.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\FILESAVE.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\HLPSBAR.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\HLPTBAR.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\RECFIRST.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\RECLAST.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\RECNEXT.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\RECPREV.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\SCMAX.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\SCMENU.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\SCMIN.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\TSTCON.HM +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\TSTCON.HPJ +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\TSTCON.RTF +SAMPLES\VC98\MFC\OLE\TSTCON\HLP\TSTCON32.CNT +SAMPLES\VC98\MFC\OLE\TSTCON\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\OLE\TSTCON\RES\TSTCON.ICO +SAMPLES\VC98\MFC\OLE\TSTCON\RES\TSTCON.RC2 +SAMPLES\VC98\MFC\OLE\TSTCON\SCRIPTS\SIMON.DSM +SAMPLES\VC98\MFC\OLE\TSTCON\SCRIPTS\SIMON.TCS +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\RESOURCE.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\STDAFX.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCEXTPG.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCEXTPG.H +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCEXTPG.RGS +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCPROPS.CPP +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCPROPS.DEF +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCPROPS.DSP +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCPROPS.IDL +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCPROPS.MAK +SAMPLES\VC98\MFC\OLE\TSTCON\TCPROPS\TCPROPS.RC +SAMPLES\VC98\MFC\OLE\WORDPAD\BUTTONDI.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\BUTTONDI.H +SAMPLES\VC98\MFC\OLE\WORDPAD\CHICDIAL.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\CHICDIAL.H +SAMPLES\VC98\MFC\OLE\WORDPAD\CNTRITEM.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\CNTRITEM.H +SAMPLES\VC98\MFC\OLE\WORDPAD\COLORLIS.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\COLORLIS.H +SAMPLES\VC98\MFC\OLE\WORDPAD\DATEDIAL.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\DATEDIAL.H +SAMPLES\VC98\MFC\OLE\WORDPAD\DDXM.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\DDXM.H +SAMPLES\VC98\MFC\OLE\WORDPAD\DOCOPT.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\DOCOPT.H +SAMPLES\VC98\MFC\OLE\WORDPAD\DOCTYPE.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\DOCTYPE.H +SAMPLES\VC98\MFC\OLE\WORDPAD\FILENEWD.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\FILENEWD.H +SAMPLES\VC98\MFC\OLE\WORDPAD\FORMATBA.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\FORMATBA.H + +SAMPLES\VC98\MFC\OLE\WORDPAD\FORMATPA.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\FORMATPA.H +SAMPLES\VC98\MFC\OLE\WORDPAD\FORMATTA.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\FORMATTA.H +SAMPLES\VC98\MFC\OLE\WORDPAD\HELPIDS.H +SAMPLES\VC98\MFC\OLE\WORDPAD\IPFRAME.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\IPFRAME.H +SAMPLES\VC98\MFC\OLE\WORDPAD\KEY.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\KEY.H +SAMPLES\VC98\MFC\OLE\WORDPAD\LISTDLG.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\LISTDLG.H +SAMPLES\VC98\MFC\OLE\WORDPAD\MAINFRM.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\MAINFRM.H +SAMPLES\VC98\MFC\OLE\WORDPAD\MAKEFILE +SAMPLES\VC98\MFC\OLE\WORDPAD\MSWD6_32.H +SAMPLES\VC98\MFC\OLE\WORDPAD\MSWD6_32.WPC +SAMPLES\VC98\MFC\OLE\WORDPAD\MULTCONV.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\MULTCONV.H +SAMPLES\VC98\MFC\OLE\WORDPAD\OPTIONS.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\OPTIONS.H +SAMPLES\VC98\MFC\OLE\WORDPAD\OPTIONSH.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\OPTIONSH.H +SAMPLES\VC98\MFC\OLE\WORDPAD\PAGESET.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\PAGESET.H +SAMPLES\VC98\MFC\OLE\WORDPAD\RES +SAMPLES\VC98\MFC\OLE\WORDPAD\RESOURCE.H +SAMPLES\VC98\MFC\OLE\WORDPAD\RULER.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\RULER.H +SAMPLES\VC98\MFC\OLE\WORDPAD\SPLASH.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\SPLASH.H +SAMPLES\VC98\MFC\OLE\WORDPAD\SRVRITEM.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\SRVRITEM.H +SAMPLES\VC98\MFC\OLE\WORDPAD\STDAFX.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\STDAFX.H +SAMPLES\VC98\MFC\OLE\WORDPAD\STRINGS.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\STRINGS.H +SAMPLES\VC98\MFC\OLE\WORDPAD\UNITSPAG.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\UNITSPAG.H +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPAD.CLW +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPAD.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPAD.DSP +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPAD.DSW +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPAD.H +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPAD.MAK +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPAD.RC +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPDOC.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPDOC.H +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPVW.CPP +SAMPLES\VC98\MFC\OLE\WORDPAD\WORDPVW.H +SAMPLES\VC98\MFC\OLE\WORDPAD\WRITE32.WPC +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\FONT.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\FORMATBA.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\FORMATBG.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\MAIN1.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\MAIN1B.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\MAINFRM.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\MAINFRMB.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RTFDOC.ICO +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERBL.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERBLM.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERDO.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERDOM.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERTA.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERTAM.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERUP.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\RULERUPM.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\SRVR.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\SRVRBIG.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\TEXTDOC.ICO +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\WORDP48.BMP +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\WORDPAD.ICO +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\WORDPAD.RC2 +SAMPLES\VC98\MFC\OLE\WORDPAD\RES\WRITE.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN +SAMPLES\VC98\MFC\TUTORIAL\ENROLL +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1 +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2 +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3 +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\ACLIKDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\ACLIKDOC.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\ACLIKVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\ACLIKVW.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.CLW +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.DSP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.DSW +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.MAK +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.ODL +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.RC +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\AUTOCLIK.REG +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\DIALOGS.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\DIALOGS.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\RES +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\RES\ACLIKDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\RES\AUTOCLIK.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\RES\AUTOCLIK.RC2 +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP1\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\ACLIKDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\ACLIKDOC.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\ACLIKVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\ACLIKVW.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.CLW +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.DSP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.DSW +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.MAK +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.ODL +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.RC +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\AUTOCLIK.REG +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\DIALOGS.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\DIALOGS.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\RES +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\RES\ACLIKDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\RES\AUTOCLIK.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\RES\AUTOCLIK.RC2 +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP2\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\ACLIKDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\ACLIKDOC.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\ACLIKVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\ACLIKVW.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.CLW +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.DSP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.DSW +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.MAK +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.ODL +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.RC +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTOCLIK.REG +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTODRIV.FRM +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\AUTODRIV.MAK +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\CLIKPNT.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\CLIKPNT.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\DIALOGS.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\DIALOGS.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\RES +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\RES\ACLIKDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\RES\AUTOCLIK.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\RES\AUTOCLIK.RC2 +SAMPLES\VC98\MFC\TUTORIAL\AUTOCLIK\STEP3\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTOCLIK.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTOCLIK.H +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODDLG.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODDLG.H +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODRIV.CLW +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODRIV.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODRIV.DSP +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODRIV.DSW +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODRIV.H +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODRIV.MAK +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\AUTODRIV.RC +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\RES +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\RES\AUTODRIV.ICO +SAMPLES\VC98\MFC\TUTORIAL\AUTODRIV\RES\AUTODRIV.RC2 +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1 +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2 +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CNTRITEM.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CNTRITEM.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.CLW +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.DSP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.DSW +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.MAK +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.RC +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTAIN.REG +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTRDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTRDOC.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTRVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\CONTRVW.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\RES +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\RES\CONTAIN.ICO +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\RES\CONTAIN.RC2 +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\RES\CONTRDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP1\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CNTRITEM.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CNTRITEM.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.CLW +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.DSP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.DSW +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.MAK +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.RC +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTAIN.REG +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTRDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTRDOC.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTRVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\CONTRVW.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\RES +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\RES\CONTAIN.ICO +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\RES\CONTAIN.RC2 +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\RES\CONTRDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\CONTAIN\STEP2\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLDOC.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLL.CLW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLL.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLL.DSP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLL.DSW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLL.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLL.MAK +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\ENROLL.RC +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\RES +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\SECTFORM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\SECTFORM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\SECTSET.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\SECTSET.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\RES\ENROLL.ICO +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\RES\ENROLL.RC2 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP1\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\COURSSET.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\COURSSET.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLDOC.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLL.CLW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLL.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLL.DSP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLL.DSW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLL.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLL.MAK +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\ENROLL.RC +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\RES +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\SECTFORM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\SECTFORM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\SECTSET.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\SECTSET.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\RES\ENROLL.ICO +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\RES\ENROLL.RC2 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP2\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\COURSSET.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\COURSSET.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLDOC.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLL.CLW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLL.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLL.DSP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLL.DSW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLL.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLL.MAK +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\ENROLL.RC +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\RES +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\SECTFORM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\SECTFORM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\SECTSET.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\SECTSET.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\RES\ENROLL.ICO +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\RES\ENROLL.RC2 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP3\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ADDFORM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ADDFORM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\COURSSET.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\COURSSET.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\CRSFORM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\CRSFORM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLDOC.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLL.CLW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLL.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLL.DSP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLL.DSW +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLL.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLL.MAK +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\ENROLL.RC +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\RES +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\SECTFORM.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\SECTFORM.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\SECTSET.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\SECTSET.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\RES\ENROLL.ICO +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\RES\ENROLL.RC2 +SAMPLES\VC98\MFC\TUTORIAL\ENROLL\STEP4\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\RES +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.CLW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.DSP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.DSW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.MAK +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.RC +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBBLE.REG +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBDOC.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\SCRIBVW.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP1\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\RES +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\RESOURCE.FD +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.CLW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.DSP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.DSW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.MAK +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.RC +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBBLE.REG +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBDOC.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\SCRIBVW.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP2\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\PENDLG.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\PENDLG.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\RES +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\RESOURCE.FD +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.CLW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.DSP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.DSW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.MAK +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.RC +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBBLE.REG +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBDOC.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\SCRIBVW.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP3\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\PENDLG.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\PENDLG.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\RES +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\RESOURCE.FD +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.CLW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.DSP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.DSW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.MAK +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.RC +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBBLE.REG +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBDOC.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\SCRIBVW.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP4\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\PENDLG.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\PENDLG.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\RES +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\RESOURCE.FD +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.CLW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.DSP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.DSW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.MAK +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.RC +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBBLE.REG +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBDOC.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\SCRIBVW.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP5\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\MAKEHELP.BAT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\PENDLG.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\PENDLG.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\RES +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\RESOURCE.FD +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.CLW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.DSP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.DSW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.MAK +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.RC +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBBLE.REG +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBDOC.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\SCRIBVW.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\AFXCORE.RTF +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\AFXPRINT.RTF +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\APPEXIT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\BULLET.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\CURARW2.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\CURARW4.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\CURHELP.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\EDITCOPY.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\EDITCUT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\EDITPAST.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\EDITUNDO.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\FILENEW.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\FILEOPEN.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\FILEPRNT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\FILESAVE.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\HLPSBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\HLPTBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\PEN.RTF +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\RECFIRST.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\RECLAST.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\RECNEXT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\RECPREV.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\SCMAX.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\SCMENU.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\SCMIN.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\SCRIBBLE.CNT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\HLP\SCRIBBLE.HPJ +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP6\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\CHILDFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\CHILDFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\IPFRAME.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\IPFRAME.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\MAINFRM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\MAINFRM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\MAKEFILE +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\MAKEHELP.BAT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\PENDLG.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\PENDLG.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\README.TXT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RES +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RESOURCE.FD +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RESOURCE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.CLW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.DSP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.DSW +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.MAK +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.RC +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBBLE.REG +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBDOC.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBDOC.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBITM.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBITM.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBVW.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\SCRIBVW.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\STDAFX.CPP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\STDAFX.H +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\AFXCORE.RTF +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\AFXOLESV.RTF +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\AFXPRINT.RTF +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\APPEXIT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\BULLET.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\CURARW2.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\CURARW4.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\CURHELP.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\EDITCOPY.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\EDITCUT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\EDITPAST.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\EDITUNDO.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\FILENEW.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\FILEOPEN.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\FILEPRNT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\FILESAVE.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\HLPSBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\HLPTBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\PEN.RTF +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\RECFIRST.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\RECLAST.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\RECNEXT.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\RECPREV.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\SCMAX.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\SCMENU.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\SCMIN.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\SCRIBBLE.CNT +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\HLP\SCRIBBLE.HPJ +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RES\ITOOLBAR.BMP +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RES\SCRIBBLE.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RES\SCRIBBLE.RC2 +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RES\SCRIBDOC.ICO +SAMPLES\VC98\MFC\TUTORIAL\SCRIBBLE\STEP7\RES\TOOLBAR.BMP +SAMPLES\VC98\MFC\UTILITY\GUIDGEN +SAMPLES\VC98\MFC\UTILITY\MAKEHM +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF +SAMPLES\VC98\MFC\UTILITY\TRACER +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGDLG.CPP +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGDLG.H +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGEN.CLW +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGEN.CPP +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGEN.DSP +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGEN.DSW +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGEN.H +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGEN.MAK +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\GUIDGEN.RC +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\MAKEFILE +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\RES +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\RESOURCE.H +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\STDAFX.CPP +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\STDAFX.H +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\RES\GUIDGEN.ICO +SAMPLES\VC98\MFC\UTILITY\GUIDGEN\RES\GUIDGEN.RC2 +SAMPLES\VC98\MFC\UTILITY\MAKEHM\MAKEFILE +SAMPLES\VC98\MFC\UTILITY\MAKEHM\MAKEHM.CPP +SAMPLES\VC98\MFC\UTILITY\MAKEHM\MAKEHM.DSP +SAMPLES\VC98\MFC\UTILITY\MAKEHM\MAKEHM.DSW +SAMPLES\VC98\MFC\UTILITY\MAKEHM\MAKEHM.MAK +SAMPLES\VC98\MFC\UTILITY\MAKEHM\MAKEHM.RC +SAMPLES\VC98\MFC\UTILITY\MAKEHM\RESOURCE.H +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\AFXCOLL1.H +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\AFXCOLL1.INL +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\AFXCOLL2.H +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\AFXCOLL2.INL +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\ARRAY.CTT +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\LIST.CTT +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\MAKEFILE +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\MAP.CTT +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\MAP_S.CTT +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\MKCOLL.BAT +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\README.TXT +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\TEMPLDEF.CPP +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\TEMPLDEF.DSP +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\TEMPLDEF.DSW +SAMPLES\VC98\MFC\UTILITY\TEMPLDEF\TEMPLDEF.MAK +SAMPLES\VC98\MFC\UTILITY\TRACER\INTERNAL.MAK +SAMPLES\VC98\MFC\UTILITY\TRACER\L.JPN +SAMPLES\VC98\MFC\UTILITY\TRACER\MAKEFILE +SAMPLES\VC98\MFC\UTILITY\TRACER\RESOURCE.H +SAMPLES\VC98\MFC\UTILITY\TRACER\STDAFX.CPP +SAMPLES\VC98\MFC\UTILITY\TRACER\STDAFX.H +SAMPLES\VC98\MFC\UTILITY\TRACER\TRACER.CLW +SAMPLES\VC98\MFC\UTILITY\TRACER\TRACER.CPP +SAMPLES\VC98\MFC\UTILITY\TRACER\TRACER.DSP +SAMPLES\VC98\MFC\UTILITY\TRACER\TRACER.DSW +SAMPLES\VC98\MFC\UTILITY\TRACER\TRACER.ICO +SAMPLES\VC98\MFC\UTILITY\TRACER\TRACER.MAK +SAMPLES\VC98\MFC\UTILITY\TRACER\TRACER.RC +SAMPLES\VC98\MFC\UTILITY\TRACER\L.JPN\TRACER.RC +SAMPLES\VC98\SDK\BEGIN +SAMPLES\VC98\SDK\BUILDALL.BAT +SAMPLES\VC98\SDK\COM +SAMPLES\VC98\SDK\DBMSG +SAMPLES\VC98\SDK\GRAPHICS +SAMPLES\VC98\SDK\INTERNET +SAMPLES\VC98\SDK\MAKEFILE +SAMPLES\VC98\SDK\NETDS +SAMPLES\VC98\SDK\SDKTOOLS +SAMPLES\VC98\SDK\SYSMGMT +SAMPLES\VC98\SDK\WINBASE +SAMPLES\VC98\SDK\WINUI +SAMPLES\VC98\SDK\BEGIN\DLL +SAMPLES\VC98\SDK\BEGIN\GENERIC +SAMPLES\VC98\SDK\BEGIN\MAKEFILE +SAMPLES\VC98\SDK\BEGIN\SIMPLE +SAMPLES\VC98\SDK\BEGIN\WINHELP +SAMPLES\VC98\SDK\BEGIN\DLL\DEMO.C +SAMPLES\VC98\SDK\BEGIN\DLL\DEMO.DEF +SAMPLES\VC98\SDK\BEGIN\DLL\DEMO.DSP +SAMPLES\VC98\SDK\BEGIN\DLL\DEMO.H +SAMPLES\VC98\SDK\BEGIN\DLL\DEMO.RC +SAMPLES\VC98\SDK\BEGIN\DLL\DEMO.RES +SAMPLES\VC98\SDK\BEGIN\DLL\MAKEFILE +SAMPLES\VC98\SDK\BEGIN\DLL\README.TXT +SAMPLES\VC98\SDK\BEGIN\DLL\SELECT.C +SAMPLES\VC98\SDK\BEGIN\DLL\SELECT.DEF +SAMPLES\VC98\SDK\BEGIN\DLL\SELECT.DLL +SAMPLES\VC98\SDK\BEGIN\DLL\SELECT.EXP +SAMPLES\VC98\SDK\BEGIN\DLL\SELECT.H +SAMPLES\VC98\SDK\BEGIN\DLL\SELECT.LIB +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.BMP +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.C +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.CNT +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.DEF +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.DSP +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.ERR +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.H +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.HLP +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.HPJ +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.ICO +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.RC +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.RES +SAMPLES\VC98\SDK\BEGIN\GENERIC\GENERIC.RTF +SAMPLES\VC98\SDK\BEGIN\GENERIC\HELP.BMP +SAMPLES\VC98\SDK\BEGIN\GENERIC\MAKEFILE +SAMPLES\VC98\SDK\BEGIN\GENERIC\README.TXT +SAMPLES\VC98\SDK\BEGIN\GENERIC\RESOURCE.H +SAMPLES\VC98\SDK\BEGIN\GENERIC\SMALL.ICO +SAMPLES\VC98\SDK\BEGIN\SIMPLE\MAKEFILE +SAMPLES\VC98\SDK\BEGIN\SIMPLE\README.TXT +SAMPLES\VC98\SDK\BEGIN\SIMPLE\SIMPLE.C +SAMPLES\VC98\SDK\BEGIN\SIMPLE\SIMPLE.DSP +SAMPLES\VC98\SDK\BEGIN\WINHELP\EARTH.SHG +SAMPLES\VC98\SDK\BEGIN\WINHELP\HT_00.BMP +SAMPLES\VC98\SDK\BEGIN\WINHELP\JOLLY.WAV +SAMPLES\VC98\SDK\BEGIN\WINHELP\LIGHT.BMP +SAMPLES\VC98\SDK\BEGIN\WINHELP\MAKEFILE +SAMPLES\VC98\SDK\BEGIN\WINHELP\SAMPLE.CNT +SAMPLES\VC98\SDK\BEGIN\WINHELP\SAMPLE.HLP +SAMPLES\VC98\SDK\BEGIN\WINHELP\SAMPLE.HPJ +SAMPLES\VC98\SDK\BEGIN\WINHELP\SAMPLE.LOG +SAMPLES\VC98\SDK\BEGIN\WINHELP\SAMPLE6.RTF +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL +SAMPLES\VC98\SDK\COM\COM +SAMPLES\VC98\SDK\COM\DCOM +SAMPLES\VC98\SDK\COM\INOLE2 +SAMPLES\VC98\SDK\COM\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT +SAMPLES\VC98\SDK\COM\OLESTD.HLP +SAMPLES\VC98\SDK\COM\README.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\ABOUT.CXX +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\ABOUT.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\ASSERT.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\BITMAPS.CXX +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\BITMAPS.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\DFV.DLG +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\DFV.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\DFV.ICO +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\DFV.RC +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\DFV.RES +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\DFVIEW.DSP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\DOCUMENT.BMP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\FOLDER.BMP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\MESSAGE.CXX +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\MESSAGE.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\MWCLASS.CXX +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\MWCLASS.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\STREAM.ICO +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\STRMVWR.CXX +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\STRMVWR.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DFV\WINMAIN.CXX +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\CLSFACT.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\CLSFACT.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DATAOBJ.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DATAOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DEBUG +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DOSERVER.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DOSERVER.DSP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DOSERVER.DSW +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DOSERVER.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DOSERVER.RC +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\MAINICON.ICO +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OIPAOBJ.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OIPAOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OIPOBJ.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OIPOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OLEDOC.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OLEDOC.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OLEDOCVW.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OLEDOCVW.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OLEOBJ.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\OLEOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\PERFILE.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\PERFILE.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\PERSTOR.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\PERSTOR.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\RESOURCE.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\UTILS.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\UTILS.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\DOSERVER\DEBUG\DOSERVER.RES +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\DEBUG +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\FRAMER.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\FRAMER.DSP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\FRAMER.DSW +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\FRAMER.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\FRAMER.ICO +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\FRAMER.RC +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\ICLISITE.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\IDOCSITE.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\IIPSITE.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\RESOURCE.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\SITE.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\SITE.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\FRAMER\DEBUG\FRAMER.RES +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\CACHE.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\CALLBACK.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\CALLBACK.HPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\DOWNLOAD.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\RANGE.C +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\RANGE.DSP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\RANGE.H +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\RECVBUF.CPP +SAMPLES\VC98\SDK\COM\ACTIVEDOCUMENT\RANGE\RECVBUF.HPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\LIB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARD.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARD.DEF +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARD.DSP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARD.ODL +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARD.RC +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARD.TLB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARDCTL.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARDCTL.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARDDRAW.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARDDRAW.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARDINTERFACES.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARDPPG.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CARDPPG.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CATHELP.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\CATHELP.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\DEBUG +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\DISPIDS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\DWINVERS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\GUIDS.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\GUIDS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\LOCALOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\POKER +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RESOURCE.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\SOLITAIR +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\DEBUG\CARD.EXP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\DEBUG\CARD.LIB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\DEBUG\CARD.OCX +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\DEBUG\CARD.RES +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\POKER\HELP.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\POKER\MAIN.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\POKER\PAYTABLE.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\POKER\POKER.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\POKER\SIDE.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\POKER\STATS.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK1.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK10.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK11.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK12.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK2.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK3.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK4.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK5.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK6.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK7.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK8.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\BACK9.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\FACES.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\ICON.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\JOKER.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\RES\SYMS.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\SOLITAIR\SOL.ALX +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\CARD\SOLITAIR\SOL.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\AUTOOBJ.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CLASSF.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CLASSF.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLEMBED.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLFWD32.DSP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLHELP.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLHELP.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLMISC.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLOCX96.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLPSST.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLVIEW.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\CTLWRAP.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\DEBUG +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\DEBUG.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\DWINVERS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\EXTOBJ.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\GLOBALS.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\INTERNET.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\IPSERVER.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\PROPPAGE.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\STDENUM.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\UNKNOWN.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\UTIL.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\FRAMEWRK\DEBUG\CTLFWD32.LIB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\AUTOOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\CTRLOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\DEBUG.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\EXTOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\GLOBALS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\INTERNET.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\IPSERVER.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\LOCALSRV.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\PROPPAGE.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\STDENUM.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\STRCOLL.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\UNKNOWN.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\UTIL.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\INCLUDE\VC41WARN.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\LIB\CTLFWD32.LIB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\CDOCOBJ.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\CDOCOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEBUG +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEFAULT.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DISPIDS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DOREG.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DWINVERS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\GUIDS.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\GUIDS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\IODOC.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\IODOCVW.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\LOCALOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\MENU.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\RESOURCE.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\SAMPLE.TDO +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOCTL.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOCTL.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOCTL.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOPPG.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOPPG.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOSVR.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOSVR.DEF +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOSVR.DSP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOSVR.ODL +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\TODOSVR.RC +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEBUG\TODOSVR.EXP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEBUG\TODOSVR.LIB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEBUG\TODOSVR.OCX +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEBUG\TODOSVR.RES +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEBUG\TODOSVR.TLB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\BASECTL\TODOSVR\DEBUG\TODOSVRIFC.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CATHELP.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CATHELP.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DEBUG +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DIBCLS.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DIBCLS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DISPIDS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DWINVERS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\GUIDS.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\GUIDS.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\LOCALOBJ.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\MAKEFILE +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\README.TXT +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\RESOURCE.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\SHOWWIMG.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMG.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMG.DEF +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMG.DSP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMG.ODL +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMG.RC +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMG.TLB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMGCTL.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMGCTL.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMGCTL.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMGINTERFACES.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMGPPG.CPP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WIMGPPG.H +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\WINNET24.BMP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\ALPHA +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\SHOWWIMG.HTM +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\WIMG.CAB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\WIMG.INF +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\X86 +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\ALPHA\WIMG.CAB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\ALPHA\WIMG.INF +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\X86\WIMG.CAB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\CABS\X86\WIMG.INF +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DEBUG\WIMG.EXP +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DEBUG\WIMG.LIB +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DEBUG\WIMG.OCX +SAMPLES\VC98\SDK\COM\ACTIVEXCONTROL\WEBIMAGE\DEBUG\WIMG.RES +SAMPLES\VC98\SDK\COM\COM\BIN +SAMPLES\VC98\SDK\COM\COM\BTTNCUR +SAMPLES\VC98\SDK\COM\COM\CMALLSPY +SAMPLES\VC98\SDK\COM\COM\COMMON +SAMPLES\VC98\SDK\COM\COM\DECODE +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR +SAMPLES\VC98\SDK\COM\COM\INCLUDE +SAMPLES\VC98\SDK\COM\COM\LIB +SAMPLES\VC98\SDK\COM\COM\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT +SAMPLES\VC98\SDK\COM\COM\OBJECT +SAMPLES\VC98\SDK\COM\COM\OLEAPT +SAMPLES\VC98\SDK\COM\COM\OLESTD +SAMPLES\VC98\SDK\COM\COM\OUTLINE +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR +SAMPLES\VC98\SDK\COM\COM\SIMPDND +SAMPLES\VC98\SDK\COM\COM\SIMPSVR +SAMPLES\VC98\SDK\COM\COM\WINHLPRS +SAMPLES\VC98\SDK\COM\COM\BIN\BTTNCUR.DLL +SAMPLES\VC98\SDK\COM\COM\BIN\GIZMOBAR.DLL +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.C +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.DEF +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.DLL +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.DSP +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.EXP +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.LIB +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.RC +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.RCV +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCUR.RES +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\BTTNCURI.H +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\CURSORS.C +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\HARROWS.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\HELP.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\LARROWS.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\MAGNIFY.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\NESWARRS.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\NODROP.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\NWSEARRS.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\RARROW.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\SARROWS.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\SIZEBARH.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\SIZEBARV.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\SPLITH.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\SPLITV.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\STDIM120.BMP +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\STDIM72.BMP +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\STDIM96.BMP +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\TABLETOP.CUR +SAMPLES\VC98\SDK\COM\COM\BTTNCUR\RES\VARROWS.CUR +SAMPLES\VC98\SDK\COM\COM\CMALLSPY\CMALLSPY.CXX +SAMPLES\VC98\SDK\COM\COM\CMALLSPY\CMALLSPY.HXX +SAMPLES\VC98\SDK\COM\COM\CMALLSPY\CMALLSPY.LIB +SAMPLES\VC98\SDK\COM\COM\CMALLSPY\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\CMALLSPY\README.TXT +SAMPLES\VC98\SDK\COM\COM\CMALLSPY\TEST.CXX +SAMPLES\VC98\SDK\COM\COM\CMALLSPY\TEST.DSP +SAMPLES\VC98\SDK\COM\COM\COMMON\ALTASSRT.CXX +SAMPLES\VC98\SDK\COM\COM\COMMON\ASSERT.H +SAMPLES\VC98\SDK\COM\COM\COMMON\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\COMMON\SDKUTIL.DSP +SAMPLES\VC98\SDK\COM\COM\COMMON\SDKUTIL.LIB +SAMPLES\VC98\SDK\COM\COM\COMMON\STABLIZE.CXX +SAMPLES\VC98\SDK\COM\COM\DECODE\DECODE.CPP +SAMPLES\VC98\SDK\COM\COM\DECODE\DECODE.DSP +SAMPLES\VC98\SDK\COM\COM\DECODE\DECODE.H +SAMPLES\VC98\SDK\COM\COM\DECODE\DECODE.ICO +SAMPLES\VC98\SDK\COM\COM\DECODE\DECODE.RC +SAMPLES\VC98\SDK\COM\COM\DECODE\DECODE.RES +SAMPLES\VC98\SDK\COM\COM\DECODE\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\DECODE\README.TXT +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\API.C +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMO.C +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMO.H +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.C +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.DEF +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.DLL +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.DSP +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.EXP +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.LIB +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.RC +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.RCV +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOBAR.RES +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\GIZMOINT.H +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\INIT.C +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\PAINT.C +SAMPLES\VC98\SDK\COM\COM\GIZMOBAR\WIN1632.H +SAMPLES\VC98\SDK\COM\COM\INCLUDE\ANSIAPI.H +SAMPLES\VC98\SDK\COM\COM\INCLUDE\ASSERT.H +SAMPLES\VC98\SDK\COM\COM\INCLUDE\BTTNCUR.H +SAMPLES\VC98\SDK\COM\COM\INCLUDE\GIZMOBAR.H +SAMPLES\VC98\SDK\COM\COM\INCLUDE\MSGFILTR.H +SAMPLES\VC98\SDK\COM\COM\INCLUDE\OLESAMPL.MAK +SAMPLES\VC98\SDK\COM\COM\INCLUDE\OLESTD.H +SAMPLES\VC98\SDK\COM\COM\INCLUDE\STABLIZE.H +SAMPLES\VC98\SDK\COM\COM\LIB\BTTNCUR.LIB +SAMPLES\VC98\SDK\COM\COM\LIB\GIZMOBAR.LIB +SAMPLES\VC98\SDK\COM\COM\LIB\OLESTD.LIB +SAMPLES\VC98\SDK\COM\COM\LIB\SDKUTIL.LIB +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN +SAMPLES\VC98\SDK\COM\COM\MFRACT\DIRS.TXT +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL +SAMPLES\VC98\SDK\COM\COM\MFRACT\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\README.TXT +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\ABOUT.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\ABOUT.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\CHNGDIM.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\CHNGDIM.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\DIB.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\DIB.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\ENGNLIST.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\ENGNLIST.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FCLASS.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FCLASS.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FRACTAL.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FRACTAL.DEF +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FRACTAL.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FRACTAL.ICO +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FRACTAL.RC +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\FRACTAL.RES +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\MFRACT.DSP +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\STMDIB.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\APP\STMDIB.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\JULIA.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\MANDEL.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\MFRACT.HLP +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\MFRACT.REG +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\PLASMA.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\QUAD.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\RGEN.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\BIN\TERRAIN.PAL +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.DSP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.EXP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.LIB +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.RC +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIA.RES +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\JULIAOB.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\JULIA\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.DSP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.EXP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.LIB +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.RC +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDEL.RES +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\MANDEL\MANDELOB.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMA.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMA.DLG +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMA.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMA.DSP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMA.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMA.RC +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMA.RES +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\PLASMA\PLASMAOB.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\QUAD.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\QUAD.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\QUAD.DSP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\QUAD.EXP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\QUAD.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\QUAD.LIB +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\QUAD\QUADOBJ.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\CHOOSE.CUR +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\GENWIN.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\GENWIN.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\POLAR.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\POLAR.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.DLG +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.DLL +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.DSP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.EXP +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.LIB +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.RC +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGEN.RES +SAMPLES\VC98\SDK\COM\COM\MFRACT\ENGINES\RGEN\RGENOB.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\DLLDATA.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FGUIDS.DSP +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FGUIDS.LIB +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRCNGN.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRCNGN.IDL +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRCNGN_I.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRCNGN_P.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRHOST.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRHOST.IDL +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRHOST_I.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\FRHOST_P.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\JULIACID.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\JULIACID.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\MANDCID.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\MANDCID.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\PALSIZE.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\PLASMCID.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\PLASMCID.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUADCID.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUADCID.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDCLN.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDCLN.IDL +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDCLN_I.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDCLN_P.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDNGN.H +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDNGN.IDL +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDNGN_I.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\QUDNGN_P.C +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\RGENCID.CXX +SAMPLES\VC98\SDK\COM\COM\MFRACT\IDL\RGENCID.H +SAMPLES\VC98\SDK\COM\COM\OBJECT\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\CHELLO.CXX +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\CLIENT.CXX +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\DLLDATA.C +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\ERROR.CXX +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO.DEF +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO.DLL +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO.EXP +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO.H +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO.IDL +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO.LIB +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO_I.C +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\OHELLO_P.C +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\README.TXT +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\SERVER.CXX +SAMPLES\VC98\SDK\COM\COM\OBJECT\OHELLO\SERVER.DSP +SAMPLES\VC98\SDK\COM\COM\OLEAPT\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OLEAPT\OLEAPT.CPP +SAMPLES\VC98\SDK\COM\COM\OLEAPT\OLEAPT.DSP +SAMPLES\VC98\SDK\COM\COM\OLEAPT\README.TXT +SAMPLES\VC98\SDK\COM\COM\OLESTD\ANSIAPI.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\ASSERT.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\COMMON.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\DBALLOC.CPP +SAMPLES\VC98\SDK\COM\COM\OLESTD\DBALLOC.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\DBGUTIL.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\DEBUG.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\DRAWICON.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\ENUMFETC.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\ENUMSTAT.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\GETICON.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\HATCH.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OLESTD\MALSPY.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\MALSPY.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\MSGFILTR.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\OBJFDBK.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\OLE2UI.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\OLE2UI.RC +SAMPLES\VC98\SDK\COM\COM\OLESTD\OLE2UI.RES +SAMPLES\VC98\SDK\COM\COM\OLESTD\OLESTD.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\OLESTD.DSP +SAMPLES\VC98\SDK\COM\COM\OLESTD\OLESTD.LIB +SAMPLES\VC98\SDK\COM\COM\OLESTD\OLEUTL.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\README.TXT +SAMPLES\VC98\SDK\COM\COM\OLESTD\REGDB.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES +SAMPLES\VC98\SDK\COM\COM\OLESTD\STDPAL.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\STDPAL.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\SUMINFO.CPP +SAMPLES\VC98\SDK\COM\COM\OLESTD\SUMINFO.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\TARGTDEV.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\UTILITY.C +SAMPLES\VC98\SDK\COM\COM\OLESTD\UTILITY.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\WN_DOS.H +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\JPN +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\STATIC +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\USA +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\JPN\STRINGS.RC +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\STATIC\EGARES.BMP +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\STATIC\HIVGARES.BMP +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\STATIC\VGARES.BMP +SAMPLES\VC98\SDK\COM\COM\OLESTD\RES\USA\STRINGS.RC +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ANSIAPI.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ASSERT.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CLASSFAC.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CLIPBRD.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTRBASE.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTRINPL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTRLINE.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL.DEF +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL.ICO +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL.RC +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTRRC.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DEBUG.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DEBUG.RC +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DEBUG2.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DEFGUID.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DIALOGS.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DIALOGS.DLG +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DRAGCOPY.CUR +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DRAGDROP.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DRAGLINK.CUR +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DRAGMOVE.CUR +SAMPLES\VC98\SDK\COM\COM\OUTLINE\DRAGNONE.CUR +SAMPLES\VC98\SDK\COM\COM\OUTLINE\FRAMETLS.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\FRAMETLS.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\HEADING.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\HEADING.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL.DEF +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL.ICO +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL.RC +SAMPLES\VC98\SDK\COM\COM\OUTLINE\IMAGE120.BMP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\IMAGE72.BMP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\IMAGE96.BMP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL.DEF +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL.ICO +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL.RC +SAMPLES\VC98\SDK\COM\COM\OUTLINE\LINKING.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\MAIN.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OUTLINE\MEMMGR.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\MESSAGE.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OLE2.BMP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OLEAPP.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OLEDOC.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OLEOUTL.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLAPP.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLDOC.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE.DEF +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE.ICO +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE.MK +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE.RC +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE.REG +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLLINE.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLLIST.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLNAME.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLNTBL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLRC.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLTXTL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\README.TXT +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SELCROSS.CUR +SAMPLES\VC98\SDK\COM\COM\OUTLINE\STATUS.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\STATUS.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVRBASE.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVRINPL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL.DEF +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL.H +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL.ICO +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL.RC +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVRPSOBJ.C +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL\CNTROUTL.DSP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL\CNTROUTL.RES +SAMPLES\VC98\SDK\COM\COM\OUTLINE\CNTROUTL\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL\ICNTROTL.DSP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL\ICNTROTL.RES +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ICNTROTL\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL\ISVROTL.DSP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL\ISVROTL.RES +SAMPLES\VC98\SDK\COM\COM\OUTLINE\ISVROTL\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE\OUTLINE.DSP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\OUTLINE\OUTLINE.RES +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL\SVROUTL.DSP +SAMPLES\VC98\SDK\COM\COM\OUTLINE\SVROUTL\SVROUTL.RES +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\APP.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\APP.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\ASSERT.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\DOC.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\DOC.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IAS.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IAS.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IOCS.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IOCS.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IOIPF.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IOIPF.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IOIPS.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\IOIPS.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\PRE.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\README.TXT +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\RESOURCE.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SIMPCNTR.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SIMPCNTR.DEF +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SIMPCNTR.DSP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SIMPCNTR.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SIMPCNTR.ICO +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SIMPCNTR.RC +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SIMPCNTR.RES +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SITE.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\SITE.H +SAMPLES\VC98\SDK\COM\COM\SIMPCNTR\STDPAL.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\APP.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\APP.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\ASSERT.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\DOC.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\DOC.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\DXFEROBJ.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\DXFEROBJ.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IAS.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IAS.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IDS.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IDS.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IDT.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IDT.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IOCS.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\IOCS.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\SIMPDND\PRE.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\README.TXT +SAMPLES\VC98\SDK\COM\COM\SIMPDND\RESOURCE.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SIMPDND.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SIMPDND.DEF +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SIMPDND.DSP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SIMPDND.H +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SIMPDND.ICO +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SIMPDND.RC +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SIMPDND.RES +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SITE.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPDND\SITE.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\APP.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\APP.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\ASSERT.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\DOC.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\DOC.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\ICF.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\ICF.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IDO.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IDO.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IEC.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IEC.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IOIPAO.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IOIPAO.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IOIPO.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IOIPO.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IOO.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IOO.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IPS.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\IPS.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\OBJ.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\OBJ.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\PRE.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\README.TXT +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\RESOURCE.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.CPP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.DEF +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.DSP +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.H +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.ICO +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.RC +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.REG +SAMPLES\VC98\SDK\COM\COM\SIMPSVR\SIMPSVR.RES +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\CDIALOG.CXX +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\CDIALOG.H +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\CWINDOW.CXX +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\CWINDOW.H +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\MAKEFILE +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\STRMHELP.CXX +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\STRMHELP.H +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\WINHLPRS.DSP +SAMPLES\VC98\SDK\COM\COM\WINHLPRS\WINHLPRS.LIB +SAMPLES\VC98\SDK\COM\DCOM\COMPERF +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM +SAMPLES\VC98\SDK\COM\DCOM\MAKEFILE +SAMPLES\VC98\SDK\COM\DCOM\README.TXT +SAMPLES\VC98\SDK\COM\DCOM\SECURE +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\COMPERF.CPP +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\COMPERF.DSP +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\DLLDATA.C +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\MAKEFILE +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF.DEF +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF.DLL +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF.EXP +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF.H +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF.IDL +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF.LIB +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF_I.C +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\PSPERF_P.C +SAMPLES\VC98\SDK\COM\DCOM\COMPERF\README.TXT +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\ACLMGMT.CPP +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\DCOMPERM.CPP +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\DCOMPERM.DSP +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\DCOMPERM.H +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\LISTACL.CPP +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\MAKEFILE +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\README.TXT +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\SDMGMT.CPP +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\SRVCMGMT.CPP +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\UTILS.CPP +SAMPLES\VC98\SDK\COM\DCOM\DCOMPERM\WRAPPERS.CPP +SAMPLES\VC98\SDK\COM\DCOM\SECURE\DLLDATA.C +SAMPLES\VC98\SDK\COM\DCOM\SECURE\INSTALL.BAT +SAMPLES\VC98\SDK\COM\DCOM\SECURE\MAKEFILE +SAMPLES\VC98\SDK\COM\DCOM\SECURE\MYPROP.H +SAMPLES\VC98\SDK\COM\DCOM\SECURE\MYPROP.IDL +SAMPLES\VC98\SDK\COM\DCOM\SECURE\MYPROP_I.C +SAMPLES\VC98\SDK\COM\DCOM\SECURE\MYPROP_P.C +SAMPLES\VC98\SDK\COM\DCOM\SECURE\PSMYPROP.DEF +SAMPLES\VC98\SDK\COM\DCOM\SECURE\PSMYPROP.DLL +SAMPLES\VC98\SDK\COM\DCOM\SECURE\PSMYPROP.EXP +SAMPLES\VC98\SDK\COM\DCOM\SECURE\PSMYPROP.LIB +SAMPLES\VC98\SDK\COM\DCOM\SECURE\README.TXT +SAMPLES\VC98\SDK\COM\DCOM\SECURE\RESOURCE.H +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECCLNT.CPP +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECCLNT.H +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECCLNT.RC +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECCLNT.RES +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECSVR.CPP +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECSVR.DSP +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECSVR.H +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECSVR.RC +SAMPLES\VC98\SDK\COM\DCOM\SECURE\SECSVR.RES +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE\INSTALL.BAT +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE\MAKEFILE +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE\README.TXT +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE\SCLIENT.CPP +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE\SSERVER.CPP +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE\SSERVER.DSP +SAMPLES\VC98\SDK\COM\DCOM\SIMPLE\SSERVER.REG +SAMPLES\VC98\SDK\COM\INOLE2\16BITOLE.WRI +SAMPLES\VC98\SDK\COM\INOLE2\APPA.WRI +SAMPLES\VC98\SDK\COM\INOLE2\APPB.WRI +SAMPLES\VC98\SDK\COM\INOLE2\BUGFIXES.DOC +SAMPLES\VC98\SDK\COM\INOLE2\BUILD +SAMPLES\VC98\SDK\COM\INOLE2\BUILD.TXT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP03 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP25 +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB +SAMPLES\VC98\SDK\COM\INOLE2\CONTENTS.TXT +SAMPLES\VC98\SDK\COM\INOLE2\ERRATA.TXT +SAMPLES\VC98\SDK\COM\INOLE2\INC +SAMPLES\VC98\SDK\COM\INOLE2\INOLE +SAMPLES\VC98\SDK\COM\INOLE2\INOLE-A.MAK +SAMPLES\VC98\SDK\COM\INOLE2\INOLE-B.MAK +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC +SAMPLES\VC98\SDK\COM\INOLE2\LIB +SAMPLES\VC98\SDK\COM\INOLE2\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\MKSAMP1.BAT +SAMPLES\VC98\SDK\COM\INOLE2\MKSAMP2.BAT +SAMPLES\VC98\SDK\COM\INOLE2\MKSAMP3.BAT +SAMPLES\VC98\SDK\COM\INOLE2\OLE1.WRI +SAMPLES\VC98\SDK\COM\INOLE2\README.TXT +SAMPLES\VC98\SDK\COM\INOLE2\BUILD\INOLE-A.MAK +SAMPLES\VC98\SDK\COM\INOLE2\BUILD\INOLE-B.MAK +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO01.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO01.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\COSMO01.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON01.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON01.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PATRON01.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP01\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMC.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMCPP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\ENUMRECT.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\IENUM.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\ENUMRECT\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\MALLOC1.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC1\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\MALLOC2.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\MALLOC2\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\INTERFAC.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\OBJECT1.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\OBJECT1.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\OBJECT2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\OBJECT2.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\OBJECT3.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\OBJECT3.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\QUERY.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\QUERY\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\ANIMAL.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\ANIMAL.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\INTERFAC.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\KOALAA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\KOALAA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\KOALAC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\KOALAC.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\REUSE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP02\REUSE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP03\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP03\README.TXT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNECT.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\CONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\FLAP.WAV +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\INTERFAC.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\OBJECT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\OBJECT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\PADDLE.WAV +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\QUACK.WAV +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\SINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP04\CONNECT\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO5.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO5.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\COCOSMO5.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\COCOSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\DKOALA1.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA1\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\DKOALA2.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA2\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.LIC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\DKOALA3.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\DKOALA3\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\EKOALA1.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\EKOALA1.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\EKOALA1.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\EKOALA1.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\EKOALA1.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\EKOALA1.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\EKOALA1.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\KOALA.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA1\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\EKOALA2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\EKOALA2.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\EKOALA2.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\EKOALA2.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\EKOALA2.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\EKOALA2.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\EKOALA2.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\KOALA.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\EKOALA2\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\LICUSER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\LICUSER\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\OBJUSER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\OBJUSER\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\DLLPOLY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\IPOLYLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLY05.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLY05.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLY05.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLY05.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLYLINE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLYLINE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\POLYLINE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\SELFREG.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP05\SELFREG\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\EKOALA3.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\KOALA.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\MSGFILT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA3\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\EKOALA4.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\EKOALA4.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\EKOALA4.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\EKOALA4.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\EKOALA4.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\EKOALA4.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\EKOALA4.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\KOALA.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA4\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\EKOALA5.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\EKOALA5.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\EKOALA5.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\EKOALA5.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\EKOALA5.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\EKOALA5.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\EKOALA5.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\KOALA.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\EKOALA5\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\DLLDATA.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.IDL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL_I.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\IANIMAL_P.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\LIBMAIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IANIMAL\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\DLLDATA.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.IDL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA_I.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\IKOALA_P.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\LIBMAIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\IKOALA\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\IMARSHAL.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALA.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\KOALAPRX.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\KOALAPRX\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\MSGFILT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\OBJUSER2.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER2\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\OBJUSER3.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP06\OBJUSER3\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO07.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO07.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\COSMO07.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\FRAGMENT.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\FRAGMENT\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON07.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON07.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PATRON07.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP07\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO8.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO8.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\COCOSMO8.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\COCOSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\DLLPOLY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\IPERSTMI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\IPOLYLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLY08.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLY08.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLY08.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLY08.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLYLINE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLYLINE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP08\POLYLINE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\DLLDATA.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.IDL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP_I.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\IDESCRIP_P.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\LIBMAIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\IDESCRIP\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\CONTITEM.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\FILEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\IDESCRIP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\IOLECONT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\LINKSRC.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\OBJECTS.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\SIMPITEM.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKSRC\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\LINKUSER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP09\LINKUSER\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\TARGDEV +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOS10.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOS10.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOS10.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\COCOSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\COCOSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\DATAUSER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DATAUSER\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\ADVISOR.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DATAOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\DDATAOBJ.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\IENUMFE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\RENDER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\DDATAOBJ\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\ADVISOR.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\DATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\DATAOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\EDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\EDATAOBJ.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\EDATAOBJ.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\EDATAOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\EDATAOBJ.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\EDATAOBJ.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\EDATAOBJ.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\IENUMFE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\RENDER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\EDATAOBJ\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\DLLPOLY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\IPERSTMI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\IPOLYLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLY10.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLY10.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLY10.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLY10.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLYLINE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLYLINE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\POLYLINE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\RES\16.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\RES\256.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\RES\64.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP10\TARGDEV\TARGDEV.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\APP.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\FREELOAD.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\FREELOAD.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\FREELOAD.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\FREELOAD.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\FREELOAD.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\FREELOAD.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\FREELOAD.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\STDGZ120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\STDGZ72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\STDGZ96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP11\FREELOAD\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOS12.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOS12.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOS12.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\COCOSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COCOSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO12.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO12.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\COSMO12.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATAOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\DATATRAN.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\IENUMFE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\DATATRAN\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PAGEMOUS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON12.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON12.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PATRON12.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\TENANT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP12\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOS13.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOS13.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOS13.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\COCOSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COCOSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO13.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO13.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\COSMO13.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\DRAGDROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PAGEMOUS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON13.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON13.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PATRON13.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\TENANT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP13\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPHELP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPTEST +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\BEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\BEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER1.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER1.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER1.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\DBEEPER1.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER1\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\BEEP0000.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\BEEP0000.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\BEEP0007.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\BEEP0007.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\BEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\BEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER2.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER2.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER2.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\DBEEPER2.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\IBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER2\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\BEEP0000.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\BEEP0000.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\BEEP0007.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\BEEP0007.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\BEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\BEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER3.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER3.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER3.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\DBEEPER3.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\IBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER3\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\BEEP0000.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\BEEP0000.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\BEEP0007.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\BEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\BEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER4.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER4.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER4.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\DBEEPER4.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\IBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER4\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\BEEP0000.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\BEEP0000.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\BEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\BEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER5.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER5.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER5.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\DBEEPER5.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\IBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPER5\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPHELP\BEEP0000.HLP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPHELP\BEEP0000.HPJ +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPHELP\BEEP0000.RTF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPHELP\BEEP0007.HLP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPHELP\BEEP0007.HPJ +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPHELP\BEEP0007.RTF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPTEST\DISPTEST +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPTEST\NEWVB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPTEST\DISPTEST\TESTBEEP.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPTEST\DISPTEST\TESTBEEP.MAK +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPTEST\NEWVB\TESTBEEP.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\BEEPTEST\NEWVB\TESTBEEP.MAK +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\AUTOAPP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\AUTOBASE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\AUTOFIG.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\AUTOFIGS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO000.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO000.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO14.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO14.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\COSMO14.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\ICOSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\DISPTEST +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\NEWVB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\DISPTEST\COSMOTST.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\DISPTEST\COSMOTST.MAK +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\DISPTEST\SAMP1.COS +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\DISPTEST\SAMP2.COS +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\NEWVB\COSMOTST.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\NEWVB\COSMOTST.MAK +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\NEWVB\SAMP1.COS +SAMPLES\VC98\SDK\COM\INOLE2\CHAP14\COSMOTST\NEWVB\SAMP2.COS +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\AUTOCLI.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\AUTOCLI\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\ISQUARE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\SQUARE.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\SQUARE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\ANIMATE.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\GLOBAL.BAS +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\NEWVB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\SQUARE.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\SQUARE.MAK +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\NEWVB\ANIMATE.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\NEWVB\GLOBAL.BAS +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\NEWVB\ROTATE.FRM +SAMPLES\VC98\SDK\COM\INOLE2\CHAP15\VBSQUARE\NEWVB\ROTATE.MAK +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\AUTOCLI2.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\AUTOCLI2\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEP0000.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEP0000.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEP0007.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEP0007.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEPER.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\BEEPER.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\CONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\DBEEPER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\DBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\DBEEPER6.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\DBEEPER6.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\DBEEPER6.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\DBEEPER6.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\IBEEPER.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPER6\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\BEEPPROP.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP16\BEEPPROP\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\DRAGDROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\ICLISITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PAGEMOUS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON17.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON17.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PATRON17.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\TENANT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\TENANT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP17\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0 +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO18.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO18.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMO18.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\COSMOLE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\FIGURE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\CLIP.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COMMDLG.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO0.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO0.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO0.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO0.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\COSMO0.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\EXIT.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\FILE.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\FILEIO.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\INIT.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\MISC.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLECLIP.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEDOC.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEEXIT.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEFILE.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEGLOBL.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEGLOBL.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEINIT.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEINST.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEINST.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEMISC.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEOBJ.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLESVR.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\OLEVTBL.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\POLYLINE.C +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP18\COSMO1.0\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\COCOSMO\README.TXT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\FIGURE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO19.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO19.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO19.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\HCOSMO19.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\IVIEWOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\HCOSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\DLLPOLY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\IPERSTMI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\IPOLYLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\IRUNOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\IVIEWOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLY19.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLY19.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLY19.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLY19.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLYLINE.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLYLINE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLYLINE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP19\POLYLINE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\DLLASSIS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\DLLASSIS.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\LNKASSIS.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\LNKASSIS\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\DRAGDROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\ICLISITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\IUILINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PAGEMOUS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON20.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON20.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PATRON20.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\TENANT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\TENANT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP20\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COCOSMO\README.TXT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO21.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO21.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMO21.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\COSMOLE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\FIGURE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\IPERFILE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\DRAGDROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\ICLISITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\IOLECONT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\IPERFILE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\IUILINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PAGEMOUS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON21.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON21.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PATRON21.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\TENANT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\TENANT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\DLLPOLY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IEXTCONN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IPERSTMI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IPOLYLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IRUNOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\IVIEWOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLY21.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLY21.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLY21.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLY21.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLYLINE.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLYLINE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLYLINE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP21\POLYLINE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\DRAGDROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\ICLISITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\IIPSITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\IIPUIWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\IOLECONT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\IPERFILE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\IUILINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PAGEMOUS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON22.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON22.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PATRON22.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\TENANT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\TENANT.DIF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\TENANT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP22\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COCOSMO\README.TXT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO23.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO23.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMO23.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\COSMOLE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\FIGURE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\IIPAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\IIPOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\IPERFILE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\COSMO\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\DLLPOLY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IEXTCONN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IIPAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IIPOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IPERSTMI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IPOLYLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IRUNOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\IVIEWOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLY23.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLY23.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLY23.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLY23.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLYLINE.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLYLINE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLYLINE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP23\POLYLINE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\COCOSMO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\COCOSMO\README.TXT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\AMBIENTS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\CLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\CONNECT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\DOCUMENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\DRAGDROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\DROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\DROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\EVENTS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\EVENTS.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\GIZMO120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\GIZMO72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\GIZMO96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\ICLISITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\ICONSITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\IIPSITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\IIPUIWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\IOLECONT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\IPERFILE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\IUILINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PAGE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PAGEMOUS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PAGES.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PAGES.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PAGEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON24.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON24.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PATRON24.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PRINT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\PRINT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\TENANT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\TENANT.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\PATRON\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\CONTROL.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\DLLPOLY.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IEXTCONN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IIPAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IIPOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IPERSTMI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IPOLY.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IPOLYLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IRUNOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\IVIEWOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLY24.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLY24.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLY24.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLY24.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYLINE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYLINE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYLINE.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYLINE.ODL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYLINE.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYLINE.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYLINE.TLB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\POLYWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\PRECOMP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\RESOURCE.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYLINE\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.DLL +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.H +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.RC +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\POLYPROP.RES +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\WIN16.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CHAP24\POLYPROP\WIN32.REG +SAMPLES\VC98\SDK\COM\INOLE2\CHAP25\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CHAP25\README.TXT +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\APP.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CCLIENT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CDOCUMNT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CFRAME.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CHATCH.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CHOURGLS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CLASSLIB.H +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CLASSLIB.RC +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CLASSMDI.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CLASSMDI.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CLASSRES.H +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CSTATLIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CSTRTABL.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CTOOLBAR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\CWINDOW.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\DOCWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\FRAMEWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\STDGZ120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\STDGZ72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\STDGZ96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\ABOUT.DLG +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\APP.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\DOCUMENT.ICO +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\SKEL.CPP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\SKEL.DSP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\SKEL.EXP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\SKEL.LIB +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\SKEL.RC +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\SKEL.RES +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\STDGZ120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\STDGZ72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\STDGZ96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\CLASSLIB\SKEL\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\INC\BOOK1632.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\BOOKGUID.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\BTTNCUR.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\CLASSLIB.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\CLASSRES.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\DBGOUT.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\GIZMOBAR.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IANIM16.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IANIMAL.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IDESCRIP.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IKOALA.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IKOALA16.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\INOLE.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IPOLY10.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IPOLY5.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\IPOLY8.H +SAMPLES\VC98\SDK\COM\INOLE2\INC\STASTRIP.H +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\ANSI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\BTTNCUR.C +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\BTTNCURI.H +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\CURSORS.C +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\GIZMO.C +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\GIZMOAPI.C +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\GIZMOBAR.C +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\GIZMOINT.H +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\HELPERS.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLE.DLL +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLE.DSP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLE.EXP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLE.LIB +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLE.RC +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLE.RES +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\INOLEDLL.H +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\MAKEFILE +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\STASTRIP.C +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\STATINT.H +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\UIEFFECT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\WIN16.DEF +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\WIN32.DEF +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\XFORM.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\HARROWS.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\HELP.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\LARROWS.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\MAGNIFY.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\NESWARRS.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\NODROP.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\NWSEARRS.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\RARROW.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\SARROWS.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\SIZEBARH.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\SIZEBARV.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\SPLITH.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\SPLITV.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\STDIM120.BMP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\STDIM72.BMP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\STDIM96.BMP +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\TABLETOP.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INOLE\RES\VARROWS.CUR +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IADVSINK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IADVSINK.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IADVSNK2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IADVSNK2.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICLASSF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICLASSF.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICLASSF2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICLASSF2.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICLISITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICLISITE.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONNPT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONNPT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONNPTC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONNPTC.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONSITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONSITE.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONTROL.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ICONTROL.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDATAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDATAOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDISPAT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDISPAT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDROPSRC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDROPSRC.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDROPTGT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IDROPTGT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMCON.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMCON.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMCP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMCP.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMFE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMFE.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMSTR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMSTR.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMUNK.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMUNK.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMVRB.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IENUMVRB.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IEXTCONN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IEXTCONN.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPAOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPAOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPFRAME.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPFRAME.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPSITE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPSITE.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPUIWIN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IIPUIWIN.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ILOCKBYT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ILOCKBYT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMALLOC.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMALLOC.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMARSHAL.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMARSHAL.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMONIKER.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMONIKER.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMSGFILT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IMSGFILT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IOLECONT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IOLECONT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IOLEOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IOLEOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPARSEDN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPARSEDN.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERFILE.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERFILE.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERPBRO.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERPBRO.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERSTMI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERSTMI.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERSTOR.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERSTOR.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERSTRM.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPERSTRM.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPNOT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPNOT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPPG.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPPG.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPPG2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPPG2.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPPSI.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROPPSI.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROVINF.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IPROVINF.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IRUNOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IRUNOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ISIMPSIT.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ISIMPSIT.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ISPPROPP.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\ISPPROPP.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IUNKNOWN.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IUNKNOWN.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IVIEWOB2.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IVIEWOB2.H +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IVIEWOBJ.CPP +SAMPLES\VC98\SDK\COM\INOLE2\INTERFAC\IVIEWOBJ.H +SAMPLES\VC98\SDK\COM\INOLE2\LIB\CLASSMDI.LIB +SAMPLES\VC98\SDK\COM\INOLE2\LIB\INOLE.LIB +SAMPLES\VC98\SDK\COM\INOLE2\LIB\OLESVR32.LIB +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2 +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO +SAMPLES\VC98\SDK\COM\OLEAUT\LINES +SAMPLES\VC98\SDK\COM\OLEAUT\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2 +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\ALIAS.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSECF.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.DLL +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.H +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.LOG +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.ODL +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.RC +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.REG +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.RES +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH.TLB +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\BROWSEH_I.C +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\COCLASS.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\COLLECT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\CONSTANT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\DISPFACE.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\ENUM.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\ENUMVAR.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\FUNCTION.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\INTFACE.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MODULE.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MYDISP.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MYDISP.H +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MYDISP.LOG +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MYDISP.ODL +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\MYDISP.TLB +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\PARAM.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\PROPERTY.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\STRUCT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\TLB.H +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\TYPE.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\TYPEINFO.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\TYPELIB.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\UNION.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\VB.FRM +SAMPLES\VC98\SDK\COM\OLEAUT\BROWSEH\VB.VBP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\CLSID.C +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\CLSID.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.RC +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.REG +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\DISPCALC.RES +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\HOSTENV.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\IDATA.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\RESOURCE.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPCALC\WINMAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\CLSID.C +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\CLSID.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\CREMPOLY.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\CREMPOLY.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\DISPDEMO.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\DISPDEMO.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\DISPDEMO.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\DISPDEMO.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\DISPDEMO.RC +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\DISPDEMO.RES +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\HOSTENV.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\MISC.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\RESOURCE.H +SAMPLES\VC98\SDK\COM\OLEAUT\DISPDEMO\WINMAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\CALCTYPE.H +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\CALCTYPE.LOG +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\CALCTYPE.ODL +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\CALCTYPE_I.C +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\CLSID.C +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\CLSID.H +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.H +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.RC +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.REG +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.RES +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\DSPCALC2.TLB +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\HOSTENV.H +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\MAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\DSPCALC2\RESOURCE.H +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\HELLCTRL.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\HELLCTRL.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\HELLCTRL.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\HELLCTRL.H +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\HELLCTRL.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\HELLCTRL.RC +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\HELLCTRL.RES +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLCTRL\TLB.H +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.H +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.LOG +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.ODL +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.RC +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.REG +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.RES +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO.TLB +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLOCF.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\HELLO_I.C +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\MAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\HELLO\HELLO\TLB.H +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\APP.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\APPCF.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\ENUMVAR.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\ERRINFO.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINE.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.H +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.LOG +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.ODL +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.RC +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.REG +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.RES +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES.TLB +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\LINES_I.C +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\MAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\PANE.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\POINT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\POINTS.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\LINES\TLB.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CENUMPT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CENUMPT.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CLSID.C +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CLSID.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CPOINT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CPOINT.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CPOLY.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\CPOLY.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\HOSTENV.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\MISC.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\RESOURCE.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\SPOLY.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\SPOLY.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\SPOLY.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\SPOLY.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\SPOLY.RC +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\SPOLY.REG +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\SPOLY.RES +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\STATBAR.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\STATBAR.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY\WINMAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CENUMPT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CENUMPT.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CLSID.C +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CLSID.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CPOINT.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CPOINT.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CPOLY.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\CPOLY.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\HOSTENV.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\MISC.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\RESOURCE.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\SPOLY.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\SPOLY2.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\SPOLY2.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\SPOLY2.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\SPOLY2.RC +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\SPOLY2.REG +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\SPOLY2.RES +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\STATBAR.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\STATBAR.H +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\TDATA.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\SPOLY2\WINMAIN.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\MAKEFILE +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\README.TXT +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\RESOURCE.H +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\TIBROWSE.CPP +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\TIBROWSE.DEF +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\TIBROWSE.DSP +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\TIBROWSE.H +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\TIBROWSE.ICO +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\TIBROWSE.RC +SAMPLES\VC98\SDK\COM\OLEAUT\TIBROWSE\TIBROWSE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\ACTIVEX.GIF +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\BULLET.GIF +SAMPLES\VC98\SDK\COM\TUTSAMP\CLEANALL.BAT +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\INC +SAMPLES\VC98\SDK\COM\TUTSAMP\LESSONS.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\LOGMALL.BAT +SAMPLES\VC98\SDK\COM\TUTSAMP\LOGO.GIF +SAMPLES\VC98\SDK\COM\TUTSAMP\MAKEALL.BAT +SAMPLES\VC98\SDK\COM\TUTSAMP\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2 +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\NAVBTN.GIF +SAMPLES\VC98\SDK\COM\TUTSAMP\NEXT.GIF +SAMPLES\VC98\SDK\COM\TUTSAMP\PAGETOP.GIF +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\PREV.GIF +SAMPLES\VC98\SDK\COM\TUTSAMP\README.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\README.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\REGALL.BAT +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\TUTORIAL.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\TUTORIAL.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\TUTORIAL.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\UNREGALL.BAT +SAMPLES\VC98\SDK\COM\TUTSAMP\USING.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL\APPUTIL.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL\APPUTIL.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL\APPUTIL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL\APPUTIL.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL\APPUTIL.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\APPUTIL\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\APTCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\APTCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\APTCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\APTCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\APTCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\APTCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\UTCRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\UTCRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTCLIEN\TEMP\APTCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\APTSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\APTSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\APTSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\APTSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\APTSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\APTSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\CAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\CAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\CRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\CRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\UTILCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\UTILCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\APTSERVE\TEMP\APTSERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\CAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\CAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.H +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJ.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\COMOBJI.H +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\CRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\CRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\UTILCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\UTILCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\COMOBJ\TEMP\COMOBJ.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\COMOBJ.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\COMUSER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\COMUSER.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\COMUSER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\COMUSER.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\COMUSER.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\COMUSER.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\UTCRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\UTCRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\COMUSER\TEMP\COMUSER.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\CONCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\CONCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\CONCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\CONCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\CONCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\CONCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\GUIBALL.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\GUIBALL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\SINK.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\SINK.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONCLIEN\TEMP\CONCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\BALL.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\BALL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONNECT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONNECT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\CONSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\CONSERVE\TEMP\CONSERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\DCDMARSH.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\DCDMARSH.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\DCDMARSH.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\DCDMARSH.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\DCDMARSH.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\DCDMARSH.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\DLLDATA.C +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\PAPINT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\PAPINT.IDL +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\PAPINT_I.C +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDMARSH\PAPINT_P.C +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\CONNECT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\CONNECT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\DCDSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\DCDSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\DCDSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\DCDSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\DCDSERVE.PAP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\DCDSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\DCDSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\PAPER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\PAPER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCDSERVE\TEMP\DCDSERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\DCOMDRAW.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\DCOMDRAW.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\DCOMDRAW.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\DCOMDRAW.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\DCOMDRAW.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\DCOMDRAW.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\GUIPAPER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\GUIPAPER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\PENCURF.CUR +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\PENCURM.CUR +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\PENCURN.CUR +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\PENCURT.CUR +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\SINK.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\SINK.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\DCOMDRAW\TEMP\DCOMDRAW.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\DLLCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\DLLCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\DLLCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\DLLCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\DLLCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\DLLCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\UTCRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\UTCRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLCLIEN\TEMP\DLLCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\CAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\CAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\CRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\CRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\DLLSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\SAMPLE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\SAMPLE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\UTILCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\UTILCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSERVE\TEMP\DLLSERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKEL.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\DLLSKELI.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLSKEL\TEMP\DLLSKEL.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\DLLSKEL.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\DLLUSER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\DLLUSER.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\DLLUSER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\DLLUSER.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\DLLUSER.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\DLLUSER.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\DLLUSER\TEMP\DLLUSER.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\EXESKEL.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\EXESKEL.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\EXESKEL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\EXESKEL.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\EXESKEL.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\EXESKEL.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\EXESKEL\TEMP\EXESKEL.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\FRECLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\FRECLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\FRECLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\FRECLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\FRECLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\FRECLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\GUIBALL.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\GUIBALL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRECLIEN\TEMP\FRECLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\BALL.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\BALL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\FRESERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\FRESERVE\TEMP\FRESERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\APPUTIL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\BALLGUID.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\CARGUIDS.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\COMOBJ.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\DLLSKEL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\IBALL.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\ICARS.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\IPAGES.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\IPAPER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\MICARS.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\PAGEGUID.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\PAPGUIDS.H +SAMPLES\VC98\SDK\COM\TUTSAMP\INC\PAPINT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LIB\APPUTIL.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\LIB\COMOBJ.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\LIB\DLLSKEL.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\LICCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\LICCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\LICCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\LICCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\LICCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\LICCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\UTCRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\UTCRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LICCLIEN\TEMP\LICCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\CRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\CRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.LIC +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\LICSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\SAMPLE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\SAMPLE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\LICSERVE\TEMP\LICSERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\LOCCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\LOCCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\LOCCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\LOCCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\LOCCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\LOCCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\UTCRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\UTCRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCCLIEN\TEMP\LOCCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\CAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\CAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\CRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\CRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\LOCSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\LOCSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\LOCSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\LOCSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\LOCSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\LOCSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\UTILCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\UTILCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\LOCSERVE\TEMP\LOCSERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\DLLDATA.C +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MARSHAL.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MARSHAL.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MARSHAL.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MARSHAL.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MARSHAL.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MARSHAL.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MICARS.H +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MICARS.IDL +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MICARS_I.C +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL\MICARS_P.C +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\DLLDATA.C +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MARSHAL2.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MICARS.H +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MICARS.IDL +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MICARS_I.C +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\MICARS_P.C +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\MARSHAL2\TEMP\MARSHAL2.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\DRAWSINK.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\DRAWSINK.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\GUIDRAW.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\GUIDRAW.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\GUILIST.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\GUILIST.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\GUITEXT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\GUITEXT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\LISTSINK.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\LISTSINK.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\LISTWIN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\LISTWIN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PAGEFILE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PAGEFILE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PENCIL.CUR +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PERCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PERCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PERCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PERCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PERCLIEN.PAG +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PERCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\PERCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\RESDEF.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\TEXTSINK.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\TEXTSINK.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\TEXTWIN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\TEXTWIN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERCLIEN\TEMP\PERCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\CONNECT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\CONNECT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\DRAWPAGE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\DRAWPAGE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\PERDRAW.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERDRAW\TEMP\PERDRAW.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\CONNECT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\CONNECT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PAGELIST.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PAGELIST.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\PERSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERSERVE\TEMP\PERSERVE.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\CONNECT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\CONNECT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\PERTEXT.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\TEXTPAGE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\TEXTPAGE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\PERTEXT\TEMP\PERTEXT.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\READTUT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\READTUT.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\READTUT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\READTUT.HTM +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\READTUT.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\READTUT.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\READTUT.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\READTUT\TEMP\READTUT.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\REGISTER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\REGISTER.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\REGISTER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\REGISTER.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\REGISTER.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\REGISTER.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\REGISTER\TEMP\REGISTER.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\REMCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\REMCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\REMCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\REMCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\REMCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\REMCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\UTCRUCAR.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\UTCRUCAR.H +SAMPLES\VC98\SDK\COM\TUTSAMP\REMCLIEN\TEMP\REMCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\GUIPAPER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\GUIPAPER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\PAPFILE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\PAPFILE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\PENCIL.CUR +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\SINK.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\SINK.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\STOCLIEN.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\STOCLIEN.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\STOCLIEN.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\STOCLIEN.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\STOCLIEN.PAP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\STOCLIEN.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\STOCLIEN.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOCLIEN\TEMP\STOCLIEN.RES +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\CONNECT.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\CONNECT.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\FACTORY.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\FACTORY.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\MAKEFILE +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\PAPER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\PAPER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\SERVER.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\SERVER.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.CPP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.DEF +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.DLL +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.DSP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.EXP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.H +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.ICO +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.LIB +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.RC +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\STOSERVE.TXT +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\TEMP +SAMPLES\VC98\SDK\COM\TUTSAMP\STOSERVE\TEMP\STOSERVE.RES +SAMPLES\VC98\SDK\DBMSG\ADO +SAMPLES\VC98\SDK\DBMSG\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI +SAMPLES\VC98\SDK\DBMSG\ODBC +SAMPLES\VC98\SDK\DBMSG\OLEDB +SAMPLES\VC98\SDK\DBMSG\SQL +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI +SAMPLES\VC98\SDK\DBMSG\ADO\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ADO\READ +SAMPLES\VC98\SDK\DBMSG\ADO\VBS +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\ADOEMP.TXT +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\DEBUG +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMP.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMP.DSP +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMP.H +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMP.MAK +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMP.RC +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMPBIZ.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMPBIZ.H +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMPDLG.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\EMPDLG.H +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\RES +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\STDAFX.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\STDAFX.H +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\DEBUG\EMP.BSC +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\DEBUG\EMP.RES +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\DEBUG\STDAFX.SBR +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\RES\EMP.ICO +SAMPLES\VC98\SDK\DBMSG\ADO\EMPLOYEE\RES\EMP.RC2 +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\DEBUG +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETRDLG.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETRDLG.H +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETROWS.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETROWS.DSP +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETROWS.H +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETROWS.MAK +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETROWS.RC +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\GETROWS.TXT +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\RES +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\STDAFX.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\STDAFX.H +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\DEBUG\GETROWS.BSC +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\DEBUG\GETROWS.RES +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\RES\GETROWS.ICO +SAMPLES\VC98\SDK\DBMSG\ADO\GETROWS\RES\GETROWS.RC2 +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\ADOISAPI.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\ADOISAPI.DEF +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\ADOISAPI.DSP +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\ADOISAPI.HTM +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\ADOISAPI.MAK +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\ADOISAPI.RC +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\ADOISAPI.TXT +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG\ADOISAPI.BSC +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG\ADOISAPI.DLL +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG\ADOISAPI.EXP +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG\ADOISAPI.LIB +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG\ADOISAPI.RES +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG\MSADO15.TLH +SAMPLES\VC98\SDK\DBMSG\ADO\ISAPI\DEBUG\MSADO15.TLI +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADORDDLG.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADORDDLG.H +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADOREAD.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADOREAD.DSP +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADOREAD.H +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADOREAD.MAK +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADOREAD.RC +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADOREAD.RC2 +SAMPLES\VC98\SDK\DBMSG\ADO\READ\ADOREAD.TXT +SAMPLES\VC98\SDK\DBMSG\ADO\READ\DEBUG +SAMPLES\VC98\SDK\DBMSG\ADO\READ\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ADO\READ\RES +SAMPLES\VC98\SDK\DBMSG\ADO\READ\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\ADO\READ\STDAFX.CPP +SAMPLES\VC98\SDK\DBMSG\ADO\READ\STDAFX.H +SAMPLES\VC98\SDK\DBMSG\ADO\READ\DEBUG\ADOREAD.BSC +SAMPLES\VC98\SDK\DBMSG\ADO\READ\DEBUG\ADOREAD.RES +SAMPLES\VC98\SDK\DBMSG\ADO\READ\RES\ADOREAD.ICO +SAMPLES\VC98\SDK\DBMSG\ADO\READ\RES\ADOREAD.RC2 +SAMPLES\VC98\SDK\DBMSG\ADO\VBS\ADOVBS.HTM +SAMPLES\VC98\SDK\DBMSG\ADO\VBS\ADOVBS.TXT +SAMPLES\VC98\SDK\DBMSG\ADO\VBS\CLDSHALF.JPG +SAMPLES\VC98\SDK\DBMSG\ADO\VBS\IE_ANIM.GIF +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB +SAMPLES\VC98\SDK\DBMSG\MAPI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP +SAMPLES\VC98\SDK\DBMSG\MAPI\PROFILE.CLI +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT +SAMPLES\VC98\SDK\DBMSG\MAPI\README.WRI +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\CHECK.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\CHECKDTA.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\CHKRFORM.CFG +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\DBUGIT.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\DLG.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\FORM.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\FORM.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\MAKEFILE.16 +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\MOVELIST.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\PIECE.CUR +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.DLG +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.RCV +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.REG +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECK16.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\WCHECKS.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE\CHECK.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE\DEBUGIO.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE\LUT.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE\PRUNE.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE\QUALITY.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHECKERS.FRM\ENGINE\VALID.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\ALLSTRS.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CHSFLD32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\CLSFLD.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\OPENFLD.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\ROOTFLD.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\TVDLG.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\TVNODE.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\CHSFLD.CLI\TVSTACK.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI.C +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI.H +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI16.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI2.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\CMCCLI32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\MAKEFILE.16 +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\READ.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\READA.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\UNREAD.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\UNREADA.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\CMC.CLI\XCMCX.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\CMDEXT32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\EXTBTN.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMAND.EXT\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\CHSFLD.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\CINDEX.C +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\CINDEX.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\CTL3D.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\IMEM.C +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\LASTERR.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\LASTERR.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\MAPIBASE.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\MAPIDBG.C +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\PDKVER.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\PVALLOC.C +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\PVALLOC.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\SMPAB.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\SMPMS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\SMPXP.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\TRACES.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\TRACES.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\WEP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\WIN16.MAK +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\WRAP3D.C +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\WRAP3D.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\XVPORT.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\XVPORT16.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\_SCODE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\COMMON\_TAGS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\DLL16.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MAKEFILE.16 +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSP.DLG +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSP.H +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSP.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPATCH.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPFLD.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPGLE.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPGUID.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPINIT.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPLOGON.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPMISC.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPMS.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPMSG.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPNTFY.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPOBJ.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPRC.H +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPRFS.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\MSPTBL.C +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\SMPMS.INF +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\SMPMS32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\SMPMS32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\SMPMS32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\SMPMS32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\SMPMS32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\DOCFILE.MS\SMPMS32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVEXT32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVEXT32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVEXT32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVEXT32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVEXT32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVEXT32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVNTEXT.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVNTEXT.H +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\EVNTEXT.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\PRSHTDLG.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\EVENTS.EXT\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABCONT.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABCTBL.H +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABCTBL1.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABCTBL2.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABCTBL3.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABGUID.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABLOGON.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABP.H +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABSEARCH.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ABUSER.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ADDRBOOK.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\DLL16.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\MAKEFILE.16 +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\OOTID.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\OOUSER.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\ROOT.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SAMPAB.SAB +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SAMPABP.DLG +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SAMPABP.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SAMPABP.RH +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SMPAB.INF +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SMPAB32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SMPAB32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SMPAB32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SMPAB32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SMPAB32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\SMPAB32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\STATUS.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\TID.C +SAMPLES\VC98\SDK\DBMSG\MAPI\FLATFILE.AB\WRAP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\DOWN.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\DOWNDIS.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\DOWNINV.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH.DLG +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH.INF +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMH32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHARC.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHATP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHCFG.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHGUID.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHINPXP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHMDB.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHNLS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHOLE.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHOOF.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHPS.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHRC.H +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHRK.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHTB.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHWB.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\SMHWIZ.C +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\TOOLBAR.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\UP.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\UPDIS.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\UPINV.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\_PCH.H +SAMPLES\VC98\SDK\DBMSG\MAPI\MANAGER.SH\_SMH.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\DLL16.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\MAKEFILE.16 +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\SMPXP.INF +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\SMPXP32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\SMPXP32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\SMPXP32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\SMPXP32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\SMPXP32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\SMPXP32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPBASE.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPBASE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPDIALOG.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPDIALOG.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPGUID.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPLOGGER.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPLOGGER.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPOPTION.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPOPTION.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPPCH.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPPCH.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPQUEUE.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPQUEUE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPRCVMSG.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPRESRC.DLG +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPRESRC.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPRESRC.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPSNDMSG.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPSOF.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPSOF.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPSTATUS.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPSTATUS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PEER.XP\XPTXTMSG.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PROFILE.CLI\CREATEPR.C +SAMPLES\VC98\SDK\DBMSG\MAPI\PROFILE.CLI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\PROFILE.CLI\MKPROF32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EPRSHT32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EPRSHT32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EPRSHT32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EPRSHT32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EPRSHT32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EPRSHT32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EXTPRSHT.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EXTPRSHT.H +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\EXTPRSHT.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\PRSHTDLG.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\PROPSH.EXT\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\ADMDLIST.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\ADMIN.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\ADMIN.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\ADMINUI.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\ADMMBOX.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\ADMNOTIF.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\COMMON.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\COMMON.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\ICONS.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\NOTIFY.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\RABRPC.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\RADMRPC.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\RMSRPC.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\RXPRPC.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\SERVICE.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\STORAGE.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\SUPPORT.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\TOOLBAR.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WDSADM.ACF +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WDSADM.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WDSADM.IDL +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WDSADM_C.C +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WDSADM_S.C +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDS.ACF +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDS.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDS.IDL +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSADM.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSADM.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSADM.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSADM.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSADM.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSGBL.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSRC.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSSRV.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDSSRV.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDS_C.C +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\WINDS_S.C +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.SRV\_WINDS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\COMWINDS.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\COMWINDS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\UISRVCS.DLG +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\UISRVCS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\WINDS.ACF +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\WINDS.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\WINDS.IDL +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\WINDSGBL.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\WINDS_C.C +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\WINDS_S.C +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPFOLDER.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPLIST.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPLIST.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPLOGON.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPPROV.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPSRVCE.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPSTATUS.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPSTREAM.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPSTREAM.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR.H +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR.INF +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR32.DLL +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR32.EXP +SAMPLES\VC98\SDK\DBMSG\MAPI\REMOTE.XP\XPWDSR32.LIB +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\BITMAP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\BITMAP.H +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\CLIENT.C +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\CLIENT.H +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\CLIENT.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\CLIENT.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\CLIENT2.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\ENVELOPE.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\MAKEFILE.16 +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\ROUTE.C +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\ROUTE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\ROUTE16.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\ROUTE32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\ROUTE.CLI\ROUTE32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\BITMAP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\BITMAP.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\CLIENT.C +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\CLIENT.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\CLIENT.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\CLIENT.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\CLIENT2.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\ENVELOPE.BMP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\MAKEFILE.16 +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\SMAPI.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\SMPCLI16.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\SMPCLI32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.CLI\SMPCLI32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\FORMBASE.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\FORMBASE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\FORMWND.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\GUID.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\GUID.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\ICLASSF.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\MAIN.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\PRECOMP.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\README.TXT +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRM.CFG +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRM.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRM.REG +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRM32.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRM32.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRM32.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRML.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRMS.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\SMPFRMSM.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\VIEWNTFR.CPP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLE.FRM\VIEWNTFR.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPI.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIAPP.C +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIAPP.DEF +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIAPP.DSP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIAPP.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIAPP.ICO +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIAPP.RC +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIAPP.RES +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPIC.HLP +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPINIT.C +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\MAPINIT.H +SAMPLES\VC98\SDK\DBMSG\MAPI\SIMPLEMAPI\README.TXT +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO +SAMPLES\VC98\SDK\DBMSG\ODBC\CONVDSN +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO +SAMPLES\VC98\SDK\DBMSG\ODBC\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ADMNDEMO.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ADMNDEMO.DEF +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ADMNDEMO.DLG +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ADMNDEMO.DSP +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ADMNDEMO.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ADMNDEMO.ICO +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ADMNDEMO.RC +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\CHILD.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\CONNECT.ICO +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\DIALOGS.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\DIALOGS.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ERRCHECK.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\ERRCHECK.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\EXECUTE.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\EXECUTE.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\INFO.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\INFO.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\INI.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\INI.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\MENU.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\MENU.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\RESULTS.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\RESULTS.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\RESULTS.ICO +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\STANDARD.C +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\STANDARD.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\STRINGS.H +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\WIN32 +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\ODBC\ADMNDEMO\WIN32\DEBUG\ADMNDEMO.RES +SAMPLES\VC98\SDK\DBMSG\ODBC\CONVDSN\CONVDSN.C +SAMPLES\VC98\SDK\DBMSG\ODBC\CONVDSN\CONVDSN.DSP +SAMPLES\VC98\SDK\DBMSG\ODBC\CONVDSN\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CHILD.C +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CHILD.ICO +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CRSRDEMO.C +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CRSRDEMO.DEF +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CRSRDEMO.DSP +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CRSRDEMO.H +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CRSRDEMO.ICO +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\CRSRDEMO.RC +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\DIALOGS.C +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\FRAME.C +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\HEADERS.C +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\HEADERS.H +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\WIN32 +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\ODBC\CRSRDEMO\WIN32\DEBUG\CRSRDEMO.RES +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\AUTOTEST.H +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\CUSTOM.C +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\CUSTOM.H +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\CUSTOM.RC +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\DLLSTUB.C +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\QUIKTEST.C +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\QUIKTEST.DEF +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\QUIKTEST.DSP +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\QUIKTEST.H +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\QUIKTEST.RC +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\WIN32 +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\WIN32\DEBUG\QUIKTEST.DLL +SAMPLES\VC98\SDK\DBMSG\ODBC\QUIKTEST\WIN32\DEBUG\QUIKTEST.RES +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\MAIN.C +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\NEWQUERY.BMP +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\QUERY.C +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\QUERYWDW.ICO +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\QURYDEMO.DEF +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\QURYDEMO.DSP +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\QURYDEMO.H +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\QURYDEMO.ICO +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\QURYDEMO.RC +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\RUNQUERY.BMP +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\WIN32 +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\ODBC\QURYDEMO\WIN32\DEBUG\QURYDEMO.RES +SAMPLES\VC98\SDK\DBMSG\OLEDB\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\MAIN.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\NEWQUERY.BMP +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QUERY.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QUERYWDW.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYDEMO.DEF +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYDEMO.DSP +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYDEMO.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYDEMO.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYDEMO.MAK +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYDEMO.RC +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYDEMO.RC2 +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\QURYVER.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\RUNQUERY.BMP +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\X86_DEBU +SAMPLES\VC98\SDK\DBMSG\OLEDB\QURYDEMO\X86_DEBU\QURYDEMO.RES +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\CUSTOMER.CSV +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\DUMP.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\SAMPCLNT.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\SAMPCLNT.DSP +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\SAMPCLNT.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\SAMPCLNT.MAK +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\SAMPCLNT.RC +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\SAMPCLNT.RC2 +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\SAMPVER.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\X86_DEBU +SAMPLES\VC98\SDK\DBMSG\OLEDB\SAMPCLNT\X86_DEBU\SAMPCLNT.RES +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\CATALOG.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\COLUMN.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\COLUMNLONG.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\COLUMNREAD.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\COMMON.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\COMMON.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\DATASOURCE.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\DATASOURCE.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\ERROR.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\ERROR.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\INDEX.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\LIST.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\PRIMARYKEY.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\PROGRESS.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\PROGRESS.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\PROPERTY.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\PROPERTY.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\RESOURCE.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\SCHEMA.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\SPY.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\SPY.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\STEP1.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\STEP2.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\STEP3.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\STEP4.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\SYNONYM.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\SYSTABLE.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLE.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLE.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLE.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLECOPY.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLECOPY.DSP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLECOPY.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLECOPY.MAK +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLECOPY.RC +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLECOPY.RC2 +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TABLE_CO.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\TYPE.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\VERSION.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\VIEW.ICO +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\WINMAIN.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\WINMAIN.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\WIZARD.CPP +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\WIZARD.H +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\X86_RELE +SAMPLES\VC98\SDK\DBMSG\OLEDB\TABLECOPY\X86_RELE\TABLECOPY.RES +SAMPLES\VC98\SDK\DBMSG\SQL\BUILDALL.BAT +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB +SAMPLES\VC98\SDK\DBMSG\SQL\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC +SAMPLES\VC98\SDK\DBMSG\SQL\ODS +SAMPLES\VC98\SDK\DBMSG\SQL\OLEAUTO +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE1 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE2 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE3 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE4 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE5 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE6 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE7 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE8 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\NMPSDMP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\README.TXT +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLCURS +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLEXAMP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTC +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TWOPHASE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE1\EXAMPLE1.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE1\EXAMPLE1.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE1\EXAMPLE1.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE1\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE2\DATAFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE2\EXAMPLE2.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE2\EXAMPLE2.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE2\EXAMPLE2.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE2\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE3\EXAMPLE3.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE3\EXAMPLE3.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE3\EXAMPLE3.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE3\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE4\EXAMPLE4.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE4\EXAMPLE4.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE4\EXAMPLE4.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE4\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE5\EXAMPLE5.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE5\EXAMPLE5.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE5\EXAMPLE5.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE5\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE6\DATAFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE6\EXAMPLE6.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE6\EXAMPLE6.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE6\EXAMPLE6.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE6\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE7\EXAMPLE7.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE7\EXAMPLE7.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE7\EXAMPLE7.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE7\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE8\EXAMPLE8.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE8\EXAMPLE8.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE8\EXAMPLE8.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\EXAMPLE8\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLCOMMN.LOC +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLTESTR +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLTESTR\BUILDBOR.BAT +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLTESTR\BUILDBOR.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLTESTR\BUILDR.BAT +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLTESTR\BUILDR.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLTESTR\SQLTESTR.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\MSDOS\SQLTESTR\SQLTESTR.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\NMPSDMP\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\NMPSDMP\NMPSDMP.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\NMPSDMP\NMPSDMP.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\NMPSDMP\NMPSDMP.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLCURS\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLCURS\SQLCURS.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLCURS\SQLCURS.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLCURS\SQLCURS.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLEXAMP\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLEXAMP\SQLEXAMP.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLEXAMP\SQLEXAMP.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLEXAMP\SQLEXAMP.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTC\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTC\SQLTESTC.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTC\SQLTESTC.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTC\SQLTESTC.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\SQLTESTN.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\SQLTESTN.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\SQLTESTN.H +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\SQLTESTN.ICO +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\SQLTESTN.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\SQLTESTN.RC +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\WIN32 +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\SQLTESTN\WIN32\DEBUG\SQLTESTN.RES +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY\GETOPT.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY\GETOPT.H +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY\TEXTCOPY.CPP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY\TEXTCOPY.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY\TEXTCOPY.H +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TEXTCOPY\TEXTCOPY.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TWOPHASE\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TWOPHASE\TWOPHASE.C +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TWOPHASE\TWOPHASE.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\DBLIB\C\TWOPHASE\TWOPHASE.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\DBLIB +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\ODBC +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\README.TXT +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\TSQL +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\DBLIB\DBLIB.CPP +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\DBLIB\DBLIB.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\DBLIB\DBLIB.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\DBLIB\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\ODBC\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\ODBC\ODBC.CPP +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\ODBC\ODBC.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\ODBC\ODBC.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\ODBC\ODBC.NCB +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\TSQL\CHGADDR.SQL +SAMPLES\VC98\SDK\DBMSG\SQL\MSDTC\TSQL\UPDADR.SQL +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\GATEWAY +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\PROCSRV +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\README.TXT +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\GATEWAY\GATECBS.C +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\GATEWAY\GATEWAY.C +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\GATEWAY\GATEWAY.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\GATEWAY\GATEWAY.DSW +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\GATEWAY\GATEWAY.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\GATEWAY\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\PROCSRV\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\PROCSRV\PROCSRV.C +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\PROCSRV\PROCSRV.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\PROCSRV\SALES.DBF +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\PROCSRV\SERVICE.C +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\PROCSRV\SERVICE.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\INSTXP.SQL +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\WIN32 +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\XP.C +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\XP.DEF +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\XP.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\XP.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\WIN32\DEBUG\XP.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\WIN32\DEBUG\XP.EXP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP\WIN32\DEBUG\XP.LIB +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\WIN32 +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\XP_DBLIB.C +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\XP_DBLIB.DEF +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\XP_DBLIB.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\XP_DBLIB.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\XP_DBLIB.SQL +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\WIN32\DEBUG\XP_DBLIB.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\WIN32\DEBUG\XP_DBLIB.EXP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_DBLIB\WIN32\DEBUG\XP_DBLIB.LIB +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\ODBCSS.H +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\WIN32 +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\XP_ODBC.C +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\XP_ODBC.DEF +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\XP_ODBC.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\XP_ODBC.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\XP_ODBC.SQL +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\WIN32\DEBUG +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\WIN32\DEBUG\XP_ODBC.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\WIN32\DEBUG\XP_ODBC.EXP +SAMPLES\VC98\SDK\DBMSG\SQL\ODS\XP_ODBC\WIN32\DEBUG\XP_ODBC.LIB +SAMPLES\VC98\SDK\DBMSG\SQL\OLEAUTO\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\OLEAUTO\README.TXT +SAMPLES\VC98\SDK\DBMSG\SQL\OLEAUTO\TRAVERSE +SAMPLES\VC98\SDK\DBMSG\SQL\OLEAUTO\TRAVERSE\TRAVERSE.SQL +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\C +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\CPP +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\README.TXT +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\C\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\C\SOC +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\C\SOC\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\C\SOC\SOC.C +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\C\SOC\SOC.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\C\SOC\SOC.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\CPP\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\CPP\SOCPP +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\CPP\SOCPP\MAKEFILE +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\CPP\SOCPP\SOCPP.CPP +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\CPP\SOCPP\SOCPP.DSP +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\CPP\SOCPP\SOCPP.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB\EXPLORE +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB\GENERIC +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB\EXPLORE\EXPLORE.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB\EXPLORE\EXPLORE.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB\EXPLORE\EXPLORE.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB\GENERIC\GENERIC.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\SQLDMO\VB\GENERIC\GENERIC.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\ABOUT.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\ADBABOUT.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\ADBABOUT.FRX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\ADBGLOB.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\ADBLOGON.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\ADBPUBS.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\ADBSQL.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\AUTHORS.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\AUTHORS.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\AUTHORS.FRX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\BLOGIN.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\BROWSE.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\BROWSE.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\BROWSE.FRX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\BROWSE.ICO +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\BROWSE.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\CHNGDB.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\CURSORS.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\CURSORS.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\CURSORS.FRX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\CURSORS.ICO +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\CURSORS.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\DBNMP3.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\GENGLOB.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\IMAGE.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\IMAGE.BMP +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\IMAGE.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\IMAGE.FRX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\IMAGE.ICO +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\IMAGE.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\INIEXITW.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\LOGIN.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MDIMA.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MDIMA.FRX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSCOMSTF.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSCPYDIS.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSCPYDIS.INC +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSCUISTF.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSDBLIB3.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSDETECT.INC +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSDETSTF.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSINSSTF.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSSHLSTF.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\MSUILSTF.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\PUBS1.HLP +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\QUERY.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\README.TXT +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\RESULTSW.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\RPC.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\RPC.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\RPC.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\RPCLOGIN.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\SETUP.INI +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\SETUPAPI.INC +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\TEXT.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\TEXT.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\TEXT.FRX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\TEXT.ICO +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\TEXT.MAK +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBCONST.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBQUERY.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBQUERY.FRM +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBSQL.BI +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBSQL.HLP +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBSQL.INF +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBSQL.MST +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBSQL.VBX +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VBSQLGEN.BAS +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\VER.DLL +SAMPLES\VC98\SDK\DBMSG\SQL\VBSQL\W3DBLIB.DLL +SAMPLES\VC98\SDK\GRAPHICS\AUDIO +SAMPLES\VC98\SDK\GRAPHICS\BA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX +SAMPLES\VC98\SDK\GRAPHICS\GDI +SAMPLES\VC98\SDK\GRAPHICS\ICM20 +SAMPLES\VC98\SDK\GRAPHICS\INPUT +SAMPLES\VC98\SDK\GRAPHICS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AACHOOSE.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AADRVS.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AAFILE.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AAINIT.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AAPLYREC.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AAPROPS.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AASYSINF.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\AAWAVDEV.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMAPP16.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMTHUNK.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\ACMTHUNK.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\APPPORT.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\MULDIV32.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\TLB.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\TLB.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\WAVEIO.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\ACMAPP\WAVEIO.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\DRAWSTR.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\DRAWSTR.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\GLOBALS.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\HEAD.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDF.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDF.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDFEDIT.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDFEDIT.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDFEDIT.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDFEDIT.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDFEDIT.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\IDFEDT32.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\MAIN.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\OLDIDF.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\PIANO.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\RES.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\SLIDER.CUR +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\TRIDEE.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\IDFEDIT\TRIDEE.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\LOWPASS.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\LOWPASS.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\LOWPASS.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\LOWPASS.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\LOWPASS.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\LOWPASS.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\LOWPASS.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\STRINGS.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\LOWPASS\STRINGS.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\APP.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\APP.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\APPINIT.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\APPPORT.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP16.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\MCIAPP32.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIAPP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MCIPLAY.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MCIPLAY.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MCIPLAY.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MCIPLAY.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MCIPLAY.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MCIPLAY.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\MCIPLAY.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPLAY\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MCIPUZZL.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MCIPUZZL.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MCIPUZZL.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MCIPUZZL.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MCIPUZZL.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MCIPUZZL.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\MCIPUZZL.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\PUZZLE.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\PUZZLE.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\PUZZPROC.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\PUZZPROC.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MCIPUZZL\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\ABOUT.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\ABOUT.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\CALLBACK.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\CALLBACK.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\CALLBACK.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\CIRCBUF.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\CIRCBUF.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\DISPLAY.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\DISPLAY.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\FILTER.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\FILTER.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\INSTDATA.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\INSTDATA.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIM32.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMN16.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMN16.MK +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMNCB.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMON.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMON.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMON.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMON.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMON.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\MIDIMON.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\PREFER.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\PREFER.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIMON\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\GLOBAL.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MAINWND.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MIDIPL32.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MIDIPLYR.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MIDIPLYR.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MIDIPLYR.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MIDIPLYR.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MIDIPLYR.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MIDIPLYR.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\MULDIV32.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\SEQ.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\SEQUENCE.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\SMF.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\SMF.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\SMFI.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\SMFREAD.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\TIMEWND.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\TOOLBAR.BMP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIDIPLYR\UIUTILS.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\APPPORT.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MACTRLS.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MACUSTOM.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MAFADER.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MAINIT.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MALINES.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MALIST.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MAMETER.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MANUMBER.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MASLIDER.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MASWITCH.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MATIME.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MIXAPP.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MIXAPP.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MIXAPP.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MIXAPP.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MIXAPP.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MIXAPP.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MIXAPP.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\MULDIV32.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\TLB.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MIXAPP\TLB.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\APPPORT.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\LOWLEVEL.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MIDSPIDS.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\MMCAPS32.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\ZYZTLB.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\MMCAPS\ZYZTLB.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\REVERSE.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\REVERSE.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\REVERSE.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\REVERSE.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\REVERSE.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\REVERSE.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\REVERSE.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\STRINGS.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\REVERSE\STRINGS.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\SOUNDAPP.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\SOUNDAPP.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\SOUNDAPP.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\SOUNDAPP.ICO +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\SOUNDAPP.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\SOUNDAPP.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\SOUNDAPP\SOUNDAPP.RES +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\EXTRA.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\EXTRA.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\FACTORY1.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\MULDIV32.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEF32.DEF +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEF32.DLL +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEF32.DSP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEF32.EXP +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEF32.LIB +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEFILE.C +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEFILE.H +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEFILE.RC +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEFILE.RCV +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEFILE.REG +SAMPLES\VC98\SDK\GRAPHICS\AUDIO\WAVEFILE\WAVEFILE.RES +SAMPLES\VC98\SDK\GRAPHICS\BA\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\BA\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\SCHSAMP.CAB +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\SCHSAMP.HTM +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\SUPPORT +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\SUPPORT\SCHSAMP.DDF +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\SUPPORT\SCHSAMP.DLL +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\SUPPORT\SCHSAMP.INF +SAMPLES\VC98\SDK\GRAPHICS\BA\SCHSAMP\SUPPORT\TSSADMIN.DLL +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\DLGPROXY.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\DLGPROXY.H +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\RES +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\STDAFX.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\STDAFX.H +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVDISP.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVDISP.H +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVDISP.ODL +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVDISPID.H +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMP.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMP.DSP +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMP.H +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMP.ODL +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMP.RC +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMP.REG +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMPDLG.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\TVXSAMPDLG.H +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\DEBUG\TVXSAMP.RES +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\DEBUG\TVXSAMP.TLB +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\RES\TVXSAMP.ICO +SAMPLES\VC98\SDK\GRAPHICS\BA\TVXSAMP\RES\TVXSAMP.RC2 +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\WEBTUNE +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\BPCBASE.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\BPCBASE.H +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\BPCDEV.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\BPCDEV.H +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\BPCVID.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\BPCVID.H +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\RES +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\STDAFX.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\STDAFX.H +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\VDMFC.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\VDMFC.H +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\VDMFC.MAK +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\VDMFC.RC +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\VDMFCDLG.CPP +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\VDMFCDLG.H +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\VIDEOMFC.TXT +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\RES\VDMFC.ICO +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\VIDEOMFC\RES\VDMFC.RC2 +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\WEBTUNE\VID_TEST.HTM +SAMPLES\VC98\SDK\GRAPHICS\BA\USEVIDEO\WEBTUNE\WEBTUNE.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\CONTENTS.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\START.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\RELNOTDA.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\D3DLT.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\D3DNRM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DANIMLT.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DANIMNRM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DA_WHOOSH.MPA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DIRECTX.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DPLAYLT.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DPLAYNRM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DSHOWLT.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\DSHOWNRM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\LIGHTS.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\LIGHTS1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\LIGHTS2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\LIGHTS3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\SHELLD.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\ART\SHELLDXM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\BUTTONS.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTROL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DALEGAL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DEFAULT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\HEADGRPH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\NAVBAR.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\SAMPLES.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\2DSPACE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\3DAXES.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\ACTMVLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\ACTMVNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\ALLC1_1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\APPDVLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\APPDVNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\APPNDLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\APPNDNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\AQUA.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\ARROW3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\ARROWB.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\BASICLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\BASICNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\BRITGOLD.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\BULLET1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\BULLET2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\CCREFLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\CCREFNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\CNTRLLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\CNTRLNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DAARCH.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DABK.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DA_LT.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DA_NRM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DOCSH.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DS_LT.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DS_NRM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\DWNLD1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\D_CONT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\D_HOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\D_INDEX.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\D_LOCAL.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\D_NEXT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\D_PREV.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\EXAMPLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\EXAMPNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\EXTERNAL.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\EXT_ANI.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GAIN1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GAIN2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GETSTLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GETSTNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GLOSSLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GLOSSNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GTSTRLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\GTSTRNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\HOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\HOME1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\IE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\IE_ANI.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\IMPLANE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\INTENSIT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\JAVACO60.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\JAVAHOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\JAVALT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\JAVANRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\JAXAHOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\LOGO.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\MSFT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\MSHOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\MSLOGO.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\PERCAM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\POWDER.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\PROD.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\PROD_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\PROGLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\PROGNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\RNOTELT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\RNOTENRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SAMPH.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SAMPLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SAMPNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SBUTTON1.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SCBASLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SCBASNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SCRPTLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SCRPTNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SDKCTLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SDKCTNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SEARCH.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SEARCH_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SHELLDXM.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SHOP.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SHOP_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SKY.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SPACER.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SPOTLITE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SUPPORT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\SUPPORT_.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\TUTORLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\TUTORNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\USER01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\USER02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\USER03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\U_CONT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\U_HOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\U_INDEX.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\U_LOCAL.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\U_NEXT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\U_PREV.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\WRITE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\WRITE_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\XXX.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\XYAXES.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\ART\ZBUF.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\COPYRITE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0000.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0003.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0004.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0005.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0006.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0007.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0008.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0009.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0010.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0011.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0012.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0013.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0014.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0015.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0016.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0017.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0018.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0019.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0020.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0021.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0022.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0023.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0024.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0025.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0026.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0027.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0028.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0029.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0030.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0031.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0032.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0033.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0034.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0035.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0036.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0037.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0038.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0039.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0040.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0041.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0042.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0043.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0044.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0045.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0046.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0047.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0048.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0049.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0050.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0051.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0052.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0053.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0054.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0055.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0056.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0057.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0058.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0059.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0060.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0061.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0062.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0063.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0064.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0065.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0066.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0067.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0068.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0069.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0070.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0071.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0072.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0073.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0074.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0075.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0076.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0077.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0078.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0079.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0080.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0081.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0082.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0083.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0084.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0085.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0086.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0087.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0088.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0089.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0090.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0091.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0092.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0093.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0094.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0095.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0096.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0097.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0098.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0099.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0100.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0101.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0102.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0103.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0104.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0105.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0106.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0107.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0108.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0109.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0110.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0111.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0112.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0113.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0114.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0115.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0116.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0117.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0118.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0119.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0120.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0121.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0122.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0123.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0124.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0125.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0126.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0127.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0128.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0129.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0130.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0131.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0132.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0133.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0134.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0135.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0136.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0137.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0138.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0139.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0140.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0141.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0142.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0143.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0144.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0145.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0146.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0147.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0148.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0149.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0150.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0151.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0152.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0153.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0154.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0155.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0156.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0157.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0158.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0159.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0160.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0161.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0162.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0163.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0164.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0165.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0166.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0167.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0168.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0169.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0170.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0171.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0172.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0173.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0174.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0175.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0176.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0177.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0178.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0179.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0180.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0181.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0182.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0183.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0184.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0185.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0186.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0187.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0188.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0189.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0190.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0191.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0192.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0193.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0194.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0195.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0196.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0197.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0198.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0199.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0200.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0201.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0202.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0203.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0204.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0205.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0206.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0207.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0208.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0209.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0210.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0211.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0212.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0213.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0214.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0215.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0216.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0217.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0218.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0219.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0220.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0221.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0222.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0223.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0224.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0225.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0226.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0227.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0228.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0229.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0230.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0231.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0232.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0233.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0234.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0235.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0236.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0237.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0238.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0239.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0240.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0241.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0242.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0243.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0244.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0245.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0246.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0247.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0248.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0249.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0250.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0251.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0252.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0253.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0254.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0255.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0256.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0257.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0258.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0259.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0260.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0261.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0262.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0263.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0264.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0265.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0266.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0267.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0268.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0269.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0270.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0271.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0272.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0273.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\DA_E0274.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\INDEX.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\INDEX001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\INDEX002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\INDEX003.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\INDEX004.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\INDEX005.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\CONTENTS\INDEX006.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\3DCUBE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\ARCS.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\ARRAY.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\BUTTON.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\CANDLE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\CLOCK1.MP2 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\CODE.HTM + +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\CUBE.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\CYCLE1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\DISPLAY.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\DSLINE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\FAN.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\FISH.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\GLOBE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\HATCHB.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\HATCHCR.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\HATCHF.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\HATCHH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\HATCHV.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\MATTE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\MOVECIR.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\OPAC.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PAN.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PATH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PATHWZRD.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PICK.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PIE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PIN.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PTH-KEYFRAME.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PTH-OVAL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PTH-POLYGON.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PTH-POLYLINE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PTH-RECT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PTH-SPLINE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\PTH-TARGET.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\RECT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\RECT.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\ROTATE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SBUTTON1.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SEQSAMP.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-ARC.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-DRAWINGSURFACE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-OVAL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-PIE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-POLYGON.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-POLYLINE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-RECT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-ROTATE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-ROUNDRECT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-SCALE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-SETGRADIENTFILL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-SETTEXTUREFILL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SG-SOURCEURL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SGDRAW.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SGFXWZRD.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SIMPLE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SPR-3STATE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SPR-MOUSEOVER.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SPR-ONFRAMEMARKER.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\SPRITE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\STAR.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\STRUCTUR.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\TEXT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\TOAST.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DA\DOCSAMPS\VECTOR.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\AMOCX.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\BUTTONS.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\CONTENTS.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\COPYRITE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DEFAULT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0000.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0003.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0004.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0005.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0006.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0007.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0008.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0009.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0010.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0011.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0012.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0013.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0014.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0015.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0016.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0017.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0018.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0019.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0020.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0021.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0022.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0023.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0024.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0025.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0026.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0027.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0028.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0029.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0030.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0031.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0032.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0033.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0034.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0035.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0036.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0037.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0038.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0039.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0040.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0041.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0042.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0043.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0044.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0045.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0046.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0047.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0048.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0049.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0050.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0051.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0052.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0053.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0054.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0055.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0056.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0057.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0058.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0059.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0060.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0061.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0062.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0063.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0064.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0065.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0066.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0067.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0068.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0069.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0070.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0071.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0072.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0073.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0074.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0075.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0076.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0077.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0078.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0079.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0080.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0081.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0082.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0083.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0084.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0085.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0086.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0087.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0088.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0089.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0090.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0091.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0092.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0093.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0094.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0095.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0096.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0097.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0098.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0099.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0100.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0101.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0102.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0103.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0104.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0105.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0106.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0107.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0108.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0109.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0110.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0111.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0112.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0113.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0114.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0115.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0116.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0117.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0118.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0119.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0120.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0121.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0122.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0123.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0124.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0125.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0126.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0127.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0128.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0129.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0130.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0131.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0132.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0133.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0134.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0135.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0136.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0137.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0138.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0139.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0140.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0141.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0142.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0143.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0144.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0145.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0146.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0147.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0148.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0149.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0150.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0151.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0152.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0153.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0154.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0155.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0156.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0157.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0158.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0159.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0160.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0161.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0162.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0163.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0164.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0165.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0166.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0167.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0168.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0169.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0170.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0171.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0172.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0173.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0174.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0175.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0176.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0177.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0178.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0179.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0180.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0181.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0182.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0183.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0184.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0185.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0186.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0187.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0188.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0189.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0190.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0191.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0192.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0193.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0194.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0195.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0196.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0197.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0198.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0199.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0200.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0201.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0202.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0203.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0204.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0205.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0206.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0207.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0208.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0209.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0210.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0211.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0212.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0213.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0214.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0215.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0216.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0217.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0218.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0219.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0220.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0221.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0222.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0223.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0224.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0225.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0226.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0227.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0228.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0229.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0230.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0231.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0232.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0233.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0234.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0235.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0236.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0237.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0238.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0239.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0240.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0241.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0242.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0243.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0244.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0245.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0246.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0247.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0248.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0249.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0250.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0251.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0252.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0253.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0254.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0255.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0256.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0257.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0258.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0259.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0260.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0261.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0262.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0263.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0264.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0265.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0266.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0267.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0268.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0269.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0270.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0271.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0272.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0273.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0274.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0275.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0276.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0277.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0278.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0279.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0280.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0281.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0282.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0283.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0284.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0285.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0286.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0287.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0288.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0289.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0290.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0291.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0292.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0293.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0294.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0295.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0296.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0297.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0298.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0299.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0300.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0301.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0302.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0303.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0304.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0305.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0306.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0307.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0308.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0309.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0310.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0311.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0312.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0313.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0314.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0315.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0316.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0317.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0318.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0319.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0320.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0321.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0322.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0323.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0324.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0325.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0326.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0327.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0328.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0329.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0330.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0331.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0332.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0333.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0334.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0335.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0336.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0337.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0338.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0339.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0340.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0341.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0342.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0343.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0344.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0345.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0346.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0347.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0348.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0349.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0350.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0351.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0352.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0353.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0354.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0355.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0356.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0357.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0358.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0359.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0360.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0361.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0362.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0363.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0364.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0365.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0366.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0367.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0368.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0369.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0370.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0371.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0372.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0373.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0374.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0375.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0376.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0377.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0378.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0379.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0380.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0381.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0382.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0383.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0384.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0385.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0386.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0387.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0388.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0389.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0390.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0391.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0392.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0393.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0394.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0395.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0396.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0397.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0398.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0399.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0400.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0401.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0402.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0403.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0404.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0405.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0406.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0407.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0408.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0409.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\DSSD0410.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\HEADGRPH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND00000.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND00001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND00002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND00003.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND00004.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND01000.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND01001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND01002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND01003.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND01004.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND02000.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND02001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND02002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND03000.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND03001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND03002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\IND04000.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX001.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX002.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX003.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX004.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX005.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX006.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX007.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX008.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX009.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\INDEX010.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\NAVBAR.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACAPGRF1.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACAPGRF1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACAPGRF2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACAPGRF3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACAPGRF4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACAPGRF5.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACAPGRF6.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACTMVLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ACTMVNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\AMOCX1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\AMOCX2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\AMOCX3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\AMOCX4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\AMOCX5.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\APPDVLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\APPDVNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\APPNDLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\APPNDNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ARCH1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ARCH2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ARCH3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ARCH4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\ARROW3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BASECL1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BASECL2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BASECL3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BASECL4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BASECL5.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BASECL6.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BULLET1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BULLET2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\BUTT_ORG.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CBASE01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CBASE02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CBASE03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CCREFLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CCREFNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CLOUDS.JPG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\COM01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CPLAY1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CPROP01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL05.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL06.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL07.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL08.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL09.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL10.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL11.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL12.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL13.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\CUTIL14.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DABK.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DCLOCK01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DDEXLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DDEXNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DEBUG01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DEVCONT1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DEVCONT2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DEVCONT3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DEVGLOSS.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DSHOWLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DSHOWNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DSNOTLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DSNOTNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DV1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DV2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI5.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI6.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI7.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVAVI8.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\DVD01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\D_CONT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\D_HOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\D_INDEX.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\D_LOCAL.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\D_NEXT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\D_PREV.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\EXT_ANI.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\F&SLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\F&SNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER05.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER06.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER07.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER08.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER09.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FILTER10.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FLTDVLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FLTDVNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\FOURCC01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT05.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT06.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT07.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GEDIT08.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GLOSYLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GLOSYNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GTSTRLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\GTSTRNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\HOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\HOME1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\IE_ANI.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\INTR_00.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\INTR_01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\INTR_02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\INTR_03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\LIST01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\LIST02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\LOGODS.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MISCL1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MISCL2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MISCL3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MISCL4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MMARCH1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MMOBJS1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MSFT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MSHOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MSLOGO.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MTHRD01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MTHRD02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MTYPE01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MULTILT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\MULTINRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\OPUT01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\PROD.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\PROD_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\PSTRM01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\PULPIN01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\RBASE01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\RBASE02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\RBASE03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\RBASE04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\RCLOCK01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\RTIME01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SCHED01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SCLOCK01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SDKCNLT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SDKCNNRM.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SEARCH.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SEARCH_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SHOP.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SHOP_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SOURCE01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SOURCE02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SPACER.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\STRMCAP1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\STRMCAP2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\STRMCAP3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\STRMCAP4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\STRMCTL1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SUPPORT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\SUPPORT_.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TFILTR04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TFILTR05.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TFRM01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TFRM02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TFRM03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TITLE_4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TITLE_6.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TSIP01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TSIP02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\TSIP03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\UTIL01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\UTIL02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\UTIL03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\UTIL04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\UTIL05.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\UTIL06.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\U_CONT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\U_HOME.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\U_INDEX.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\U_LOCAL.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\U_NEXT.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\U_PREV.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBASE01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBASE02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBASE03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBASE04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBBLD01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBBLD02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBDEMO01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBDEMO02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBDEMO03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBDEMO04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBOCX01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBOCX02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBOCX03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VBOCX04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VCTL03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VCTL04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VCTL05.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\VTSIP01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WCTRL01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WCTRL02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WDMIMG1.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WDMIMG2.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WDMIMG3.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WDMIMG4.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WRITE.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WRITE_O.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WUTIL01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WUTIL02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WUTIL03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WUTIL04.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WUTIL05.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WUTIL06.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WXBUG01.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WXBUG02.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\HELP\DS\ART\WXBUG03.GIF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++ +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\PICK3 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\TILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\UNION +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\DDUTIL.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\DDUTIL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\DONUT.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\DONUT.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\DONUT.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\DXA.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\DXA.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\DONUT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\PICK3\DXA.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\PICK3\DXA.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\PICK3\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\PICK3\PICK3.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\TILE\DXA.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\TILE\DXA.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\TILE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\TILE\TILE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\UNION\DXA.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\UNION\DXA.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\UNION\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\C++\SHOWCASE\UNION\UNION.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\ANIFILT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\BUTTONS.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\CLOCK.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\COMPLEX.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\COUNT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\FILTER.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\GLOBE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\MEGA.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\PATH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\SG-DRAWINGSURFACE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\SG-PRESERVE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\SPINIE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\TEXTMASK.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\SAMPLES\DA\CONTROLS\YOYO.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\CONTROL_MAIN.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\JAVA_MAIN.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\JAVA_RIGHT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\JSCRIPT_MAIN.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\JSCRIPT_RIGHT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_CONTROL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_JAVA_EX.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_JAVA_SHH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_JAVA_SHL.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_JAVA_TE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_JSCRIPT_EX.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_JSCRIPT_SH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_JSCRIPT_TE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_TUT_SH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_TUT_TE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_VBSCRIPT_SH.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TOC_VBSCRIPT_TE.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TUTORIAL.CSS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TUTORIAL_MAIN.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\TUTORIAL_RIGHT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\VBSCRIPT_MAIN.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\VBSCRIPT_RIGHT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\VB_MAIN.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTANIMATION\WEBCD\DA\VB_RIGHT.HTM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXSETENV.BAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\EGG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FACES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLY +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\GLOBE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER1 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER2 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MORPH +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\QUAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SHADOW +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX1 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX3 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX4 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX5 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRANS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\UVIS +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\BELLHOP.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\BELLHOP.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\BELLHOP.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\BELLHOP.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\BELLHOP.MAK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\BELLHOP.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\CGRPTREE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\CGRPTREE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\CLOSDOOR.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\CONNSET.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\DIALOG.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\FRIENDS.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\GROUP1.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\ICON1.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\LOBBY.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\OPENDOOR.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\SASESINP.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\SPECT.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BELLHOP\DEBUG\BELLHOP.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\BOIDS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\BOIDS.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\BOIDS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\BOIDS2.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\BOIDS2.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\COMMON.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3D.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DSCENE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DTEX.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DTEX.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DUTILS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DUTILS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DUTILS.INL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DWIN.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\D3DWIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\DEBUG.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\DRVMGR.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\DRVMGR.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\DX5.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\FLOCK.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\GETDXVER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\WINMAIN.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\WINMAIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\WINPROC.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\WINPROC.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\BOIDS\DEBUG\BOIDS.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\D3DEX1.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\D3DEX1.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\D3DEX1.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\D3DEX1.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\ICON1.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\NOWARN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX1\DEBUG\D3DEX1.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\D3DEX2.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\D3DEX2.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\D3DEX2.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\D3DEX2.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\ICON1.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\NOWARN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\D3DEX2\DEBUG\D3DEX2.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\DDEX1.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\DDEX1.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\DDEX1.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\DDEX1.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX1\DEBUG\DDEX1.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\BACK.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\DDEX2.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\DDEX2.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\DDEX2.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\DDEX2.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX2\DEBUG\DDEX2.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\DDEX3.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\DDEX3.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\DDEX3.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\DDEX3.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\FRNTBACK.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX3\DEBUG\DDEX3.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\ALL.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\DDEX4.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\DDEX4.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\DDEX4.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\DDEX4.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX4\DEBUG\DDEX4.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\ALL.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\DDEX5.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\DDEX5.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\DDEX5.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\DDEX5.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DDEX5\DEBUG\DDEX5.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\DIEX1.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\DIEX1.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\DIEX1.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\DIEX1.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX1\DEBUG\DIEX1.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\DIEX2.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\DIEX2.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\DIEX2.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\DIEX2.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX2\DEBUG\DIEX2.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\DIEX3.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\DIEX3.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\DIEX3.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\DIEX3.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX3\DEBUG\DIEX3.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\DIEX4.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\DIEX4.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\DIEX4.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\DIEX4.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIEX4\DEBUG\DIEX4.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\DIFF1.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\DIFF1.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\DIFF1.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\DIFF1.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DIFF1\DEBUG\DIFF1.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\DONUT.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\DONUT.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\DONUT.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\DONUT.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\DONUT.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUT\DEBUG\DONUT.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\BANGBANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\BOUNCE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\C_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DONUTS.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DONUTS.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DONUTS.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DONUTS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DONUTS.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DONUTS.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\D_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\GUNFIRE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\HUM.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\INPUT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\INPUT.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\LEVEL.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\P_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\REV.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\SHIELD.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\SKID.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\SPLASH.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\S_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DONUTS\DEBUG\DONUTS.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DIALOG.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DPCHAT.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DPCHAT.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DPCHAT.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DPCHAT.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DPCHAT.REG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\LOBBY.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPCHAT\DEBUG\DPCHAT.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\DPLAUNCH.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\DPLAUNCH.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\DPLAUNCH.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPLAUNCH\DEBUG\DPLAUNCH.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\CLIENT.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DIALOG.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DPSLOTS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DPSLOTS.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DPSLOTS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DPSLOTS.MAK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DPSLOTS.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\LOBBY.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\MEDIA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\SERVER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\SLOTSDB.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\DEBUG\DPSLOTS.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\MEDIA\DING.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\MEDIA\LOSE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\MEDIA\WHEEL.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DPSLOTS\MEDIA\WIN.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DSENUM.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DSENUM.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DSSHOW.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DSSHOW.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DSSHOW.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\GENERIC.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\ICON1.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\ICON2.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\ICON3.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\SHELL.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\SHELL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\WASSERT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\WASSERT.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\WAVE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\WAVE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSHOW\DEBUG\DSSHOW.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DSSTREAM.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DSSTREAM.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DSSTREAM.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DSSTREAM.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DSSTREAM.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DSTRENUM.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DSTRWAVE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\ICON2.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\ICON3.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\NOTIFY.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\WASSERT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\WASSERT.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DSSTREAM\DEBUG\DSSTREAM.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\BFIRE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\COMM.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\COMM.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\CSESSION.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DDUTIL.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DDUTIL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DS3DUTIL.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DS3DUTIL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DUEL.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DUEL.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DUEL.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DUEL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DUEL.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DUEL.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\GAMEPROC.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\GAMEPROC.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\GFX.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\GFX.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\INPUT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\INPUT.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\LBOOM.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\LOBBY.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\LOBBY.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\OSESSION.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\PLAYER.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SBOOM.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SBOUNCE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SENGINE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SFX.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SFX.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SPLASH.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SSTART.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\SSTOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\UTIL.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\UTIL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\WIZARD.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\WIZARD.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DUEL\DEBUG\DUEL.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXBUG\DEVNODE1.DLL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXBUG\DEVNODE2.DLL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXBUG\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DINPUT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DXPRINT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DXVIEW.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DXVIEW.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DXVIEW.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DXVIEW.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DXVIEW.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\FOLDER.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\FOLDEROP.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\SPLIT.CUR +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\DXVIEW\DEBUG\DXVIEW.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\EGG\EGG.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\EGG\EGG.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\EGG\EGG.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\EGG\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\EGG\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FACES\FACES.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FACES\FACES.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FACES\FACES.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FACES\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FACES\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\FASTFILE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\FASTFILE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\FFCREATE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\FFCREATE.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\FFCREATE.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\FFENT.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FASTFILE\DEBUG\FASTFILE.LIB +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FDAUDIO.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FDAUDIO.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FDFILTER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FDFILTER.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FDFILTER.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FDFILTER.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FDFILTER.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FILTER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\FILTER.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\GARGLE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\ICON1.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\RESHEAD.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FDFILTER\DEBUG\FDFILTER.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\BANGBANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\BOUNCE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\C_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\DONUTS.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\DONUTS.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\D_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\FFDONUTS.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\FFDONUTS.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\FFDONUTS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\FFDONUTS.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\GUNFIRE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\HUM.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\INPUT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\INPUT.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\LEVEL.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\P_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\REV.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\SHIELD.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\SKID.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\SPLASH.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\S_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FFDONUTS\DEBUG\FFDONUTS.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\DUMB3D.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\DUMB3D.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\FIXED.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\FLIP2D.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\FLIPCUBE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\FLIPCUBE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\FLIPCUBE.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\FLIPCUBE.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\TRI.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP2D\DEBUG\FLIPCUBE.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\CHECKER.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\D3DTEX.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\D3DTEX.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\DUMB3D.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\DUMB3D.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\FLIP3D.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\FLIPCUBE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\FLIPCUBE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\FLIPCUBE.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\FLIPCUBE.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\WIN95.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLIP3D\DEBUG\FLIP3D.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLY\FLY.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLY\FLY.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLY\FLY.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLY\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FLY\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\BACKLIST.DAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\BMP.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\DDRAW.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FBSOUND.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FBSOUND.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FORELIST.DAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FOX.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FOXBEAR.ART +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FOXBEAR.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FOXBEAR.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FOXBEAR.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FOXBEAR.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\FOXBEAR.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\GAMEPROC.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\GAMEPROC.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\GFX.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\GFX.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\JUMP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\MIDLIST.DAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\MISS01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\MISS02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\PLANE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\PLANE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\RCIDS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\RGB332.PAL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\SPRITE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\SPRITE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\STOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\STRIKE01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\STRIKE02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\STUNNED.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\SURFLIST.DAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\THROW.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\TILE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\TILE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\DEBUG\FOXBEAR.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22 +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\JUMP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\MISS01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\MISS02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\STOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\STRIKE01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\STRIKE02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\STUNNED.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-22\THROW.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\JUMP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\MISS01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\MISS02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\STOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\STRIKE01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\STRIKE02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\STUNNED.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\16-44\THROW.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\JUMP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\MISS01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\MISS02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\STOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\STRIKE01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\STRIKE02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\STUNNED.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-11\THROW.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\JUMP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\MISS01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\MISS02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\STOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\STRIKE01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\STRIKE02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\STUNNED.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\FOXBEAR\WAVDATA\8-22\THROW.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\GLOBE\GLOBE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\GLOBE\GLOBE.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\GLOBE\GLOBE.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\GLOBE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\GLOBE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER1\HIER1.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER1\HIER1.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER1\HIER1.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER1\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER1\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER2\HIER2.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER2\HIER2.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER2\HIER2.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER2\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\HIER2\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BANANA.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BANANA.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BANGBANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BIGSHIP1.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BLOW1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BLOW2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\BOUNCE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\CAMERA.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\CHAINSW.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\CHECKER.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\CHECKER.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\CHERRY.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\CUBE.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\C_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\DROPSHIP.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\D_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\EGG.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\GUNFIRE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\HUM.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\JUMP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\LAKE.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\LAKE.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\LAND4.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\LEVEL.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\MISS01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\MISS02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\MSLOGO.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\MULTI.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\NCUBE.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\NYUK.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PIEHIT2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PLANE.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_BSHIP.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_CAM.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_CHRRY.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_CUBE.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_DSHIP.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_EGG.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_LAND4.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_MSLOG.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_MULTI.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_RMLOG.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_SPH0.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_SPH1.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_SPH2.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_SPH3.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_SPH4.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_TORUS.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_TPOT.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_TPOT0.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_TPOT1.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_TPOT2.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_TPOT3.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\PM_TREE.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\P_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\REV.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\RMLOGO.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\RUN.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\SHIELD.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\SKID.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\SPHERE0.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\SPHERE1.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\SPHERE2.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\SPHERE3.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\SPHERE4.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\STOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\STRIKE01.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\STRIKE02.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\STUNNED.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\S_BANG.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEAPOT.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX1.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX1.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX2.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX2.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX3.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX3.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX4.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX4.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX5.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX5.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX6.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX6.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX7.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TEX7.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\THROW.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TORUS.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TPOT0.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TPOT1.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TPOT2.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TPOT3.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\TREE.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\WALK.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\WIN95.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\WIN95.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MEDIA\WOOB.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\D3D.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\D3DMACS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\D3DMAIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\D3DMAIN.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\D3DUTILS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\D3DUTILS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\D3DUTILS.INL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DDCALLS.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DDMM.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DDMM.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DDUTIL.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DDUTIL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DDUTIL2.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DDUTIL2.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DSUTIL.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DSUTIL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\GETDXVER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\LBPRINTF.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\LBPRINTF.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\MISC.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\MULTIMON.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMDEMO.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMERROR.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMERROR.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMFULL.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMFULL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMFULL.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMFULLRC.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMMAIN.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMMAIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMMAIN.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\RMSTATS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\SCLBLT.ASM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MISC\DEBUG\RMMAIN.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MORPH\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MORPH\MORPH.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MORPH\MORPH.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MORPH\MORPH.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MORPH\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUIT1.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUIT2.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUIT3.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUITO.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUITO.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUITO.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUITO.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\MOSQUITO.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\MOSQUITO\DEBUG\MOSQUITO.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\OVERRIDE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\OVERRIDE.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\OVERRIDE.MAK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\OVERRIDE.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\OVERRIDE\DEBUG\OVERRIDE.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\PALETTE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\PALETTE.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\PALETTE.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\PALETTE.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PALETTE\DEBUG\PALETTE.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\COMMON.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\D3D.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\D3DSCENE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\D3DUTILS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\D3DUTILS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\D3DUTILS.INL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\D3DWIN.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\D3DWIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\DEBUG.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\DRVMGR.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\DRVMGR.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\GETDXVER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\PPLANE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\PPLANE.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\PPLANE.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\PPLANE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\PPLANE.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\WINMAIN.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\WINMAIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\WINPROC.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\WINPROC.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\PPLANE\DEBUG\PPLANE.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\QUAT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\QUAT\QUAT.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\QUAT\QUAT.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\QUAT\QUAT.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\QUAT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\ARENA.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\BLOCK1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\BLOCK2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\BLOCK3.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\CBOO.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\CLOOP.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\CONTROL.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\CONTROL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\CYEAH.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEBRIS_B.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEBRIS_R.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEFEND1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEFEND2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECH.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHBK.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHBT.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHCH.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHGR.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHH1.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHH2.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHHD.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHHN.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHLA.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHLL.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHUA.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEMECHUL.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DIRECTX.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DIRECTX.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\GDK_FILL.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\HEAD.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\INTRO.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\MIDI.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\MIDI.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\PUNCH.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\PUNCH1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\PUNCH2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\PUNCH3.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\PUNCH4.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RANDOM1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RANDOM2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RANDOM3.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RANDOM4.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RANDOM5.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RANDOM6.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\REVDN1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\REVDN2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\REVDN3.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\REVUP1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\REVUP2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\REVUP3.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RM.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\RM.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\ROCKEM3D.BIN + +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\ROCKEM3D.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\ROCKEM3D.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\ROCKEM3D.MID +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\ROCKEM3D.PAL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\ROCKEM3D.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECH.X +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHBK.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHBT.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHCH.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHGR.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHHN.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHJD.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHLA.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHLL.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHUA.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SKMECHUL.PPM +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\SPLASH.PAL +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\WALK0.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\WALK1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\WHOOSH1.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\WHOOSH2.WAV +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\WINMAIN.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\WINMAIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\ROCKEM\DEBUG\ROCKEM3D.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\SCRAWL.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\SCRAWL.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\SCRAWL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\SCRAWL.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\SCRAWL2.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SCRAWL\DEBUG\SCRAWL.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\AUTORUN.INF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\DINSTALL.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\DINSTALL.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\DINSTALL.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\DINSTALL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\DINSTALL.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\REBOOT.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\SETUP.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\SIGNON.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SETUP\DEBUG\DINSTALL.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SHADOW\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SHADOW\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SHADOW\SHADOW.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SHADOW\SHADOW.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\SHADOW\SHADOW.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\DONUT.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\STRETCH.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\STRETCH.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\STRETCH.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\STRETCH.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\WATCOM.MK +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH\DEBUG\STRETCH.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\DONUT.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\SOURCES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\STRETCH.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\STRETCH2.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\STRETCH2.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\STRETCH2.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH2\DEBUG\STRETCH2.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\DDMM.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\DDMM.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\DONUT.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\MAKEFILE.WAT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\MULTIMON.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\SOURCES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\STRETCH.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\STRETCH3.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\STRETCH3.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\STRETCH3.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\STRETCH3\DEBUG\STRETCH3.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX1\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX1\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX1\TEX1.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX1\TEX1.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX1\TEX1.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX3\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX3\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX3\TEX3.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX3\TEX3.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX3\TEX3.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX4\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX4\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX4\TEX4.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX4\TEX4.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX4\TEX4.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX5\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX5\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX5\TEX5.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX5\TEX5.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TEX5\TEX5.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRANS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRANS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRANS\TRANS.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRANS\TRANS.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRANS\TRANS.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3D.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DAPP.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DAPP.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DAPPI.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DCALLS.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DDEMO.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DMACS.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DMAIN.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DMAIN.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DMAIN.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DMATH.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DRES.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\D3DSPHR.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\DDCALLS.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\LCLIB.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\LCLIB.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\MISC.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\STATS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\TEXTURE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\TRI3.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\TRI3.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\TRIANGLE.C +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\TRI3\DEBUG\D3DMAIN.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\UVIS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\UVIS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\UVIS\UVIS.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\UVIS\UVIS.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\UVIS\UVIS.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\COLOR.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\FILE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\GETDXVER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\RODCONE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\RODCONE.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\SEL.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\SEL.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\VIEWER.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\VIEWER.DEF +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\VIEWER.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\VIEWER.H +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\VIEWER.ICO +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\VIEWER.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\VIEWER\DEBUG\VIEWER.RES +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\DEBUG +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\WORMHOLE.BMP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\WORMHOLE.CPP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\WORMHOLE.DSP +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\WORMHOLE.RC +SAMPLES\VC98\SDK\GRAPHICS\DIRECTX\WORMHOLE\DEBUG\WORMHOLE.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO +SAMPLES\VC98\SDK\GRAPHICS\GDI\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL +SAMPLES\VC98\SDK\GRAPHICS\GDI\METAFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\CSTEXT.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\CSTEXT.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\CSTEXT.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\CSTEXT.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\CSTEXT.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\COMPLEXSCRIPT\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\DIALOGS.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\DISPLAY.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTHELP.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.DLG +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.ERR +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.HLP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.HPJ +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.RTF +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\FONTVIEW.SHG +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\SCREEN1.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\SCREEN1.SHG +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\SCREEN2.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\SCREEN2.SHG +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\STATUS.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\TOOLS.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\FONTVIEW\ZOOM.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\APP.CXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\APP.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\APP.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\APP.HXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\APP.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\APP.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\BOX.CXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\BOX.HXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\CANVAS.HXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\CSET.CXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\CSET.HXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\FONT.CXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\FONT.HXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\GRID.CXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\GRID.HXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\GRID.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\GRIDFONT.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\MAKEFILE.W16 +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\VIEW.CXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\GRIDFONT\VIEW.HXX +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\ALLFONT.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\BMDEVICE.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\BMTT.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\DIALOGS.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\DISPLAY.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TOOLBAR.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.ERR +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.HLP +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.HPJ +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.PH +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\FONTS\TTFONTS\TTFONTS.RTF +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\BOUNCE.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\BOUNCE.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\DIALOG.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\DRAW.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\DRAW.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\GDIDEMO.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\GDIDEMO.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\GDIDEMO.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\GDIDEMO.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\GDIDEMO.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\GDIDEMO.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\GDIDEMO.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\INIT.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\MAZE.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\MAZE.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\POLY.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\POLY.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\WININFO.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\XFORM.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\GDIDEMO\XFORM.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\BNDSCAN.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\BNDSCAN.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\DIBMP.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\DIBMP.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\JTYPES.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\JULIA.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\JULIA.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\JULIA.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\JULIA.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\JULIA.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\LOADBMP.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\OBJ +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\PRINTER.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\PRINTER.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\RSC +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\SAVEBMP.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\OBJ\JULIA.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\RSC\EYE.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\RSC\FLOOD.CUR +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\RSC\JULIA.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\RSC\JULIA.RLE +SAMPLES\VC98\SDK\GRAPHICS\GDI\MANDEL\RSC\VIEWER.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\METAFILE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MYPAL.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MYPAL.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MYPAL.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MYPAL.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MYPAL.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MYPAL.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\MYPAL.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\PALETTE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\COMMON.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\ENUMPRT.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\ENUMPRT.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETCAPS.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETCAPS.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETPDRIV.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETPDRIV.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PAINT.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PAINT.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\STRINGS.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\BLANK.CUR +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\REV.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\REVERSI.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\REVERSI.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\REVERSI.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\REVERSI.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\REVERSI.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\REVERSI\REVERSI.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\SETDISP.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\SETDISP.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\SETDISP.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\SETDISP.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\SETDISP.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\SETDISP\SETDISP.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\CRAK1.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\DIB.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\DLGOPEN.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\DRAWDIB.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\PRINT.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.DLG +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\SHOWDIB\SHOWDIB.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\FX.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\FX.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\GUIDE.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\GUIDE.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\TEXTFX.BMP +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\TEXTFX.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\TEXTFX.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\TEXTFX.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\TEXTFX.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\TEXTFX.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\TEXTFX\TEXTFX.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\BITMAP.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\BITMAP.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\PLGBLT.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\PLGBLT.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\PLGBLT.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\PLGBLT.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\PLGBLT.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\PLGBLT.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\PLGBLT.RES +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\TRACK.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\PLGBLT\TRACK.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\WXFORM.C +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\WXFORM.DEF +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\WXFORM.DSP +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\WXFORM.H +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\WXFORM.ICO +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\WXFORM.RC +SAMPLES\VC98\SDK\GRAPHICS\GDI\WINNT\WXFORM\WXFORM.RES +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW +SAMPLES\VC98\SDK\GRAPHICS\ICM20\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\ICM20\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\APPINIT.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\APPINIT.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\CDERR.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\CHILD.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\CHILD.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DEBUG.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DEBUG.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DIALOGS.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DIALOGS.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DIBINFO.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DIBINFO.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DIBS.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\DIBS.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.DEF +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.DSP +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.EXP +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.ICO +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.LIB +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.RC +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\ICMVIEW.RES +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\PRINT.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\PRINT.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\REGUTIL.C +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\REGUTIL.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\RESOURCE.H +SAMPLES\VC98\SDK\GRAPHICS\ICM20\ICMVIEW\SMALL.ICO +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY +SAMPLES\VC98\SDK\GRAPHICS\INPUT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\BTNSND1.WAV +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\BTNSND2.WAV +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\HOLE.ICO +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\JOYTOY.C +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\JOYTOY.H +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\JOYTOY.ICO +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\JOYTOY.RC +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\JOYTOY.RCV +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\JOYTOY.RES +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\JOYTOY32.DSP +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\INPUT\JOYTOY\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AUDIO.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AUDIO.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AVIEDI32.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AVIEDIT.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AVIEDIT.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AVIEDIT.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AVIEDIT.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AVIEDIT.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\AVIEDIT.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\MULDIV32.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIEDIT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AUDPLAY.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AUDPLAY.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIBALL.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIBALL.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIVIEW.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIVIEW.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIVIEW.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIVIEW.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIVIEW.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIVIEW.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\AVIVIEW.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\CDIB.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\GUID.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\MULDIV32.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\REGOBJS.CPP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\AVIVIEW\REGOBJS.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.DLG +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\CAPTEST.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\DIALOGS.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\DIALOGS.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\CAPTEST\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\DSEQF.CPP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\DSEQF32.DEF +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\DSEQF32.DLL +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\DSEQF32.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\DSEQF32.EXP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\DSEQF32.LIB +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\DSEQFILE.REG +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\FACTORY.CPP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\HANDLER.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\HANDLER.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\HANDLER.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\HANDLER.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\DSEQFILE\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\LANGPLAY.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\LANGPLAY.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\LANGPLAY.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\LANGPLAY.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\LANGPLAY.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\LANGPLAY.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\LANGPLAY.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\LANGPLAY\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY1.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY2.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\MOVPLAY2.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MOVPLAY\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MPLAY.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MPLAY.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MPLAY.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MPLAY.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MPLAY.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MPLAY.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\MPLAY.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\MPLAY\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\DIBMAP.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\DIBMAP.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP32.DEF +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP32.DLL +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP32.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP32.EXP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP32.LIB +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\PALMAP32.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\PALMAP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\DRVPROC.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\OEMSETUP.INF +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT32.DEF +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT32.DLL +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT32.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT32.EXP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\TEXTOUT\TXTOUT32.LIB +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\ARROW.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\ARROW.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\BUTTONS.BMP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\DIALOGS.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\DIALOGS.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\HELP.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\HELP.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\PROFILE.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\PROFILE.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\RLMETER.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\RLMETER.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\STATUS.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\STATUS.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\TOOLBAR.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\TOOLBAR.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.DLG +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.HLP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP.RES +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDCAP32.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDFRAME.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\VIDCAP\VIDFRAME.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\MAKEFILE +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\README.TXT +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\WRITEAVI.C +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\WRITEAVI.DSP +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\WRITEAVI.H +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\WRITEAVI.ICO +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\WRITEAVI.RC +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\WRITEAVI.RCV +SAMPLES\VC98\SDK\GRAPHICS\VIDEO\WRITEAVI\WRITEAVI.RES +SAMPLES\VC98\SDK\INTERNET\INDEX +SAMPLES\VC98\SDK\INTERNET\MAKEALL.BAT +SAMPLES\VC98\SDK\INTERNET\MAKEFILE +SAMPLES\VC98\SDK\INTERNET\README.TXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING +SAMPLES\VC98\SDK\INTERNET\WEBPOST +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER +SAMPLES\VC98\SDK\INTERNET\INDEX\MAKEFILE +SAMPLES\VC98\SDK\INTERNET\INDEX\README.TXT +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\ANCHOR.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\ANCHOR.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\ASSERT.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\BAG.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\BAG.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\CHARHASH.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\CHARHASH.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\CODEPAGE.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\CODEPAGE.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\DEBUG.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\EXCEPT.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\EXCEPT.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\FILTER.H +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\FILTER.REG +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\FILTERR.H +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\GLOBAL.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLELEM.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLELEM.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLFILT.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLFILT.DEF +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLFILT.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLFILT.RC +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLGUID.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLGUID.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLIFLT.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLIFLT.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLSCAN.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\HTMLSCAN.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\IMAGETAG.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\IMAGETAG.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\INPSTRM.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\INPSTRM.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\INPUTTAG.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\INPUTTAG.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\MAIN.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\MAKEFILE +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\METATAG.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\METATAG.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\MMBUF.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\MMSCBUF.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\MMSCBUF.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\MMSTRM.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\MMSTRM.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\OSV.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\PCH.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\PMMSTRM.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\PROPSPEC.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\PROPSPEC.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\PROPTAG.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\PROPTAG.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\README.TXT +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\REGACC32.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\REGACC32.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\SCRIPTAG.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\SCRIPTAG.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\SERSTRM.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\SERSTRM.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\START.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\START.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\STGPROP.H +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\TEXTELEM.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\TEXTELEM.HXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\TITLETAG.CXX +SAMPLES\VC98\SDK\INTERNET\INDEX\IFILTER\TITLETAG.HXX +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\MAKEFILE +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\APP.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\APP.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DATA +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DEBUG +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DEBUG.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DISPIDS.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\GAME.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\GAME.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\GAMEOA.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\GUIDS.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\GUIDS.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\HELPERS.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\INC_EXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\MAIN.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\MAKEFILE +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\MSGLOOP.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\MSGLOOP.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\OLEAUTO.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\OLEAUTO.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\PLUS.BMP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\README.TXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\RESOURCE.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SCORE.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SCORE.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SHIP.BMP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPR.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPR.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPROA.CPP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDP.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDP.HH +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDP.PIX +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.BMP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.CUR +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.DSP +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.DSW +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.ICO +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.ODL +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.RC +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\SPRUUIDS.RC2 +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DATA\GAME1.TXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DATA\GAME2.TXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DATA\GAME3.TXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DATA\GAMEDBG.TXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DATA\GAMEFULL.TXT +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DEBUG\SPRUUIDS.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DEBUG\SPRUUIDS.RES +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\DEBUG\SPRUUIDS.TLB +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\INC_EXT\ACTIVSCP.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\INC_EXT\COMPMGR.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\INC_EXT\MULTINFO.H +SAMPLES\VC98\SDK\INTERNET\SCRIPTING\SPRUUIDS\INC_EXT\VBSGUIDS.H +SAMPLES\VC98\SDK\INTERNET\WEBPOST\MAKEFILE +SAMPLES\VC98\SDK\INTERNET\WEBPOST\README.TXT +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\DLLDATA.C +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\MAKEFILE +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\README.TXT +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\WBPOST.CPP +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\WBPOST.DSP +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\WBPOST.H +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\WBPOST.MAK +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\WPSPI.H +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\WPSPI_I.C +SAMPLES\VC98\SDK\INTERNET\WEBPOST\WBPOST\WPSPI_P.C +SAMPLES\VC98\SDK\NETDS\ADSI +SAMPLES\VC98\SDK\NETDS\DLC +SAMPLES\VC98\SDK\NETDS\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RAS +SAMPLES\VC98\SDK\NETDS\RPC +SAMPLES\VC98\SDK\NETDS\RRAS +SAMPLES\VC98\SDK\NETDS\SNA +SAMPLES\VC98\SDK\NETDS\SNMP +SAMPLES\VC98\SDK\NETDS\WINNT +SAMPLES\VC98\SDK\NETDS\WINSOCK +SAMPLES\VC98\SDK\NETDS\ADSI\MAKEFILE +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\DSBROWSE +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\INCLUDE +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\VJ +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\ADSCMD.DSP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\DUMP.CXX +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\ENUM.CXX +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\MAIN.CXX +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\MAIN.HXX +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\MAKEFILE +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\README.TXT +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\ADSCMD\UTIL.CXX +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\DSBROWSE\DSVW.RES +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\DSBROWSE\MAIN.FRM +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\DSBROWSE\PROPERTY.FRM +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\DSBROWSE\PROPERTY.FRX +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\DSBROWSE\README.TXT +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\DSBROWSE\VBADS.BAS +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\INCLUDE\ADSCONST.BAS +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\VJ\DSCONN +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\VJ\MAKEFILE +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\VJ\README.TXT +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPAPP\VJ\DSCONN\DSCONN.MAK +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\ADSSMP.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\ADSSMP.DEF +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\ADSSMP.DSP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\ADSSMP.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CCLSOBJ.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CCLSOBJ.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CDISPMGR.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CDISPMGR.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMNS.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMNS.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMOBJ.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMOBJ.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMSCH.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMSCH.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMVAR.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CENUMVAR.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CGENOBJ.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CGENOBJ.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CMACRO.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CNAMCF.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CNAMCF.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CNAMESP.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CNAMESP.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\COMMON.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\COMMON.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CORE.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CORE.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPROPS.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPROPS.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPROV.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPROV.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPROVCF.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPROVCF.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPRPOBJ.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CPRPOBJ.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CSCHOBJ.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\CSCHOBJ.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\FORMTRCK.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\GETOBJ.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\GETOBJ.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\GLOBALS.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\GLOBALS.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\GUID.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\GUID.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\INTF.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\LIBMAIN.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\LIBMAIN.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\MACRO.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\MAKEFILE +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\MEMORY.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\MEMORY.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\OBJECT.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\OBJECT.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\PACK.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\PACK.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\PARSE.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\PARSE.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\PROPERTY.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\PROPERTY.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\REGDSAPI.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\REGDSAPI.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\SETUP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\SMPOPER.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\SMPOPER.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\SMPTYPES.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\STDFACT.CPP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\UTIL.H +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\WIN32 +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\SETUP\ADSSMP.INF +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\SETUP\INSTALL.BAT +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\SETUP\README.TXT +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\WIN32\DEBUG +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\WIN32\DEBUG\ADSSMP.DLL +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\WIN32\DEBUG\ADSSMP.EXP +SAMPLES\VC98\SDK\NETDS\ADSI\SAMPPROV\WIN32\DEBUG\ADSSMP.LIB +SAMPLES\VC98\SDK\NETDS\DLC\DLCDEBUG.C +SAMPLES\VC98\SDK\NETDS\DLC\DLCDEBUG.H +SAMPLES\VC98\SDK\NETDS\DLC\MAKEFILE +SAMPLES\VC98\SDK\NETDS\DLC\README.TXT +SAMPLES\VC98\SDK\NETDS\DLC\SIMPLEX.C +SAMPLES\VC98\SDK\NETDS\DLC\SIMPLEX.DSP +SAMPLES\VC98\SDK\NETDS\RAS\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY +SAMPLES\VC98\SDK\NETDS\RAS\WINNT +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\ABOUT.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\ABOUT.DLG +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\AUTHDLG.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\AUTHDLG.DLG +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\AUTHDLG.H +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\DIALDLG.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\DIALDLG.DLG +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\DIALDLG.H +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\DISPATCH.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\GLOBALS.H +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\INIT.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\MISC.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\PHBKDLG.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\PHBKDLG.DLG +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\PHBKDLG.H +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASBERRY.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASBERRY.DEF +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASBERRY.DSP +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASBERRY.ICO +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASBERRY.RC +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASBERRY.RES +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASUTIL.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\RASUTIL.H +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\README.TXT +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\STATDLG.C +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\STATDLG.DLG +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\STATDLG.H +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\WIN16EXT.H +SAMPLES\VC98\SDK\NETDS\RAS\RASBERRY\WINMAIN.C +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.CPP +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.DEF +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.DLL +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.DSP +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.EXP +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.H +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.HLP +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.LIB +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.RC +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RASHOST.RES +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\README.TXT +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\RESOURCE.H +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASHOST\SECHOST.H +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\ADMAPI.C +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\ADMAPI.DSP +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\ADMINDLL.C +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\ADMINDLL.DEF +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\ADMINDLL.DLL +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\ADMINDLL.EXP +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\ADMINDLL.LIB +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RAS\WINNT\RASSAPI\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID +SAMPLES\VC98\SDK\NETDS\RPC\DATA +SAMPLES\VC98\SDK\NETDS\RPC\DICT +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES +SAMPLES\VC98\SDK\NETDS\RPC\HELLO +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP +SAMPLES\VC98\SDK\NETDS\RPC\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD +SAMPLES\VC98\SDK\NETDS\RPC\NS +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE +SAMPLES\VC98\SDK\NETDS\RPC\PIPES +SAMPLES\VC98\SDK\NETDS\RPC\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC +SAMPLES\VC98\SDK\NETDS\RPC\STROUT +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP +SAMPLES\VC98\SDK\NETDS\RPC\YIELD +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALL.ACF +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALL.H +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALL.IDL +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALLC.C +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALLP.C +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALLS.C +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALLS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALL_C.C +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\CALL_S.C +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\CALLBACK\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUID.ACF +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUID.H +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUID.IDL +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUIDC.C +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUIDP.C +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUIDS.C +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUIDS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUID_C.C +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\CLUUID_S.C +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\CLUUID\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT +SAMPLES\VC98\SDK\NETDS\RPC\DATA\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNION.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNION.H +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNION.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNIONC.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNIONP.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNIONS.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNIONS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNION_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\DUNION_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\DATA\DUNION\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUT.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUT.H +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUT.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUTC.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUTP.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUTS.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUTS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUT_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\INOUT_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\DATA\INOUT\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPAS.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASC.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASC.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASC.H +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASCU.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASP.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASS.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASS.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASS.H +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPASSU.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPAS_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\REPAS\REPAS_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMIT.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMIT.H +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMIT.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMITC.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMITP.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMITS.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMITS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMITU.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMITU.H +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMIT_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DATA\XMIT\XMIT_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\CLIENT.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\CLIENT.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DICT\DICT0.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\DICT0.H +SAMPLES\VC98\SDK\NETDS\RPC\DICT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DICT\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\DICT\PLAY.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\PLAY.H +SAMPLES\VC98\SDK\NETDS\RPC\DICT\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DICT\REPLAY.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DICT\REPLAY.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\REPLAY.H +SAMPLES\VC98\SDK\NETDS\RPC\DICT\REPLAY.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DICT\REPLAY_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\REPLAY_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\SERVER.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\UTIL0.C +SAMPLES\VC98\SDK\NETDS\RPC\DICT\UTIL0.H +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTOR.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTOR.H +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTOR.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTORC.C +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTORP.C +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTORS.C +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTORS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTOR_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\DOCTOR_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\DOCTOR\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPT.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPT.H +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPT.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPTC.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPTP.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPTS.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPTS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPT_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\DYNEPT_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\DYNEPT\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUT.ACF +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUT.H +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUT.IDL +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUTC.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUTP.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUTS.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUTS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUT_C.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\DYNOUT_S.C +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\DYNOUT\XX_MIDL.BAT +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTO.ACF +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTO.H +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTO.IDL +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTOC.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTOP.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTOS.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTOS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTO_C.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\AUTO_S.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\AUTO\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDL.ACF +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDL.H +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDL.IDL +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDLC.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDLP.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDLS.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDLS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDL_C.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\CXHNDL_S.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\CXHNDL\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEF.ACF +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEF.H +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEF.IDL +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEFC.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEFP.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEFS.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEFS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEF_C.C +SAMPLES\VC98\SDK\NETDS\RPC\HANDLES\USRDEF\USRDEF_S.C +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLO.ACF +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLO.H +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLO.IDL +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLOC.C +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLOP.C +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLOS.C +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLOS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLO_C.C +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\HELLO_S.C +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\HELLO\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\CLIENT.C +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\DCEPORT.H +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MAKEFILE.DCE +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MANAGER.C +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MIDLUSER.C +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MSG.ACF +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MSG.H +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MSG.IDL +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MSG_C.C +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\MSG_S.C +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\SERVER.C +SAMPLES\VC98\SDK\NETDS\RPC\INTEROP\SERVER.DSP +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\CALC.C +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MAKEFILE.WIN +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MANDEL.C +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MANDEL.DEF +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MANDEL.H +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MANDEL.RBJ +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MANDEL.RC +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MANDEL.RES +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MDLRPC.ACF +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MDLRPC.H +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MDLRPC.IDL +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MDLRPC_C.C +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\MDLRPC_S.C +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\REMOTE.C +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\RPC.ICO +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\SERVER.C +SAMPLES\VC98\SDK\NETDS\RPC\MANDEL\SERVER.DSP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\BITMAP.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\BLOCKS.WAV +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\CRCTABLE.H +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\DOG.WAV +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\DRAW.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\DRONES.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\GRIDS.RC +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\INITMAZE.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\LASER.WAV +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZE.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZE.DEF +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZE.DSP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZE.ICO +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZE.RC +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZE.RES +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZEDLG.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZEDLG.DLG +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZEDLG.H +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZEWND.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\MAZPROTO.H +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\NET.H +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\NETWORK.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\OTHRLASR.WAV +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\READSGRD.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\SANCTU.WAV +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\SCOREWND.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\SQUISH.WAV +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\TELE.WAV +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\TEXTWND.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\TOPWND.C +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\WINMAZE.H +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FADE1.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FADE2.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHB.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHBM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHF.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHFM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHL.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHLM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHR.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\FISHRM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\MAZE.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPB.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPBM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPF.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPFM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPL.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPLM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPR.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\REAPRM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBOB.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBOBM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBOF.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBOFM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBOL.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBOLM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBOR.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\ROBORM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SHOT1.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SHOT2.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILB.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILBM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILF.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILFM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILL.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILLM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILR.BMP +SAMPLES\VC98\SDK\NETDS\RPC\MAZELORD\RSC\SMILRM.BMP +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS +SAMPLES\VC98\SDK\NETDS\RPC\NS\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSICLT.ACF +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSICLT.IDL +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSICOM.ACF +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSICOM.IDL +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSIMGM.ACF +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSIMGM.IDL +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSISVR.ACF +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\NSISVR.IDL +SAMPLES\VC98\SDK\NETDS\RPC\NS\CDS\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLO.H +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLO.IDL +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLOC.C +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLOP.C +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLOS.C +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLOS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLO_C.C +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NHELLO_S.C +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\NSSERV.C +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\SERVICE.C +SAMPLES\VC98\SDK\NETDS\RPC\NS\NHELLO\SERVICE.H +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\PICKLP.ACF +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\PICKLP.H +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\PICKLP.IDL +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\PICKLPC.C +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\PICKLPC.DSP +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\PICKLP_C.C +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\PICKLP_S.C +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLP\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\MAKEFILE.DOS +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\PICKLT.ACF +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\PICKLT.H +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\PICKLT.IDL +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\PICKLTC.C +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\PICKLTC.DSP +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\PICKLT_C.C +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\PICKLT_S.C +SAMPLES\VC98\SDK\NETDS\RPC\PICKLE\PICKLT\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\COMMON.H +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\MAKEFILE.UNI +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPE.ACF +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPE.H +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPE.IDL +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPEC.C +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPEPROC.C +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPES.C +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPE_C.C +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\PIPE_S.C +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\PIPES\SERVER.DSP +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSM.ACF +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSM.H +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSM.IDL +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSMC.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSMP.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSMS.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSMS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSM_C.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSSM\RPCSSM_S.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\CLIENT.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\RPCSVC.ACF +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\RPCSVC.DSP +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\RPCSVC.H +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\RPCSVC.IDL +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\RPCSVC_C.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\RPCSVC_S.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\SERVER.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\SERVICE.C +SAMPLES\VC98\SDK\NETDS\RPC\RPCSVC\SERVICE.H +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\CLIENT.C +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\COMMON.H +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\MAKEFILE.UNI +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\REMOTE.C +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\SERVER.C +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\SERVER.DSP +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\STROUT.ACF +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\STROUT.H +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\STROUT.IDL +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\STROUT_C.C +SAMPLES\VC98\SDK\NETDS\RPC\STROUT\STROUT_S.C +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\MAKEFILE.WIN +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\RPC.ICO +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.ACF +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.DEF +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.DLG +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.H +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.IDL +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.RBJ +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.RC +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO.RES +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLOC.C +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLOC.H +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLOP.C +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLOS.C +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLOS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO_C.C +SAMPLES\VC98\SDK\NETDS\RPC\WHELLO\WHELLO_S.C +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIENT.C +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIENT.DSP +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIENT.H +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIENT.ICO +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIENT.RBJ +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIENT.RC +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIENT.RES +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\CLIRES.H +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\COMMON.H +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\MAKEFILE.UNI +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\REMOTE.C +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\SERVER.C +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\WINTYP.ACF +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\WINTYP.H +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\WINTYP.IDL +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\WINTYP_C.C +SAMPLES\VC98\SDK\NETDS\RPC\WINTYP\WINTYP_S.C +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\MAKEFILE.WIN +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\README.TXT +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\RPC.ICO +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELD.ACF +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELD.H +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELD.IDL +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDC.C +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDC.DEF +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDC.DLG +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDC.H +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDC.RC +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDP.C +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDS.C +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELDS.DSP +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELD_C.C +SAMPLES\VC98\SDK\NETDS\RPC\YIELD\YIELD_S.C +SAMPLES\VC98\SDK\NETDS\RRAS\EAP +SAMPLES\VC98\SDK\NETDS\RRAS\LOOKUP +SAMPLES\VC98\SDK\NETDS\RRAS\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.C +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.DEF +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.DLL +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.DSP +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.EXP +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.H +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.LIB +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\EAP.RC +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\RRAS\EAP\README.TXT +SAMPLES\VC98\SDK\NETDS\RRAS\LOOKUP\ALGO.C +SAMPLES\VC98\SDK\NETDS\RRAS\LOOKUP\STRUCTS.H +SAMPLES\VC98\SDK\NETDS\SNA\APING +SAMPLES\VC98\SDK\NETDS\SNA\APPC +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE +SAMPLES\VC98\SDK\NETDS\SNA\AREXEC +SAMPLES\VC98\SDK\NETDS\SNA\CPIC +SAMPLES\VC98\SDK\NETDS\SNA\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\MPING +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270 +SAMPLES\VC98\SDK\NETDS\SNA\SHARED +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270 +SAMPLES\VC98\SDK\NETDS\SNA\SNAENV.BAT +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP +SAMPLES\VC98\SDK\NETDS\SNA\APING\APING.C +SAMPLES\VC98\SDK\NETDS\SNA\APING\APINGD.C +SAMPLES\VC98\SDK\NETDS\SNA\APING\APINGD.DSP +SAMPLES\VC98\SDK\NETDS\SNA\APING\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\APING\MAKEPING.MAK +SAMPLES\VC98\SDK\NETDS\SNA\APPC\MAKEAPPC.MAK +SAMPLES\VC98\SDK\NETDS\SNA\APPC\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\APPC\RECVTP.DSP +SAMPLES\VC98\SDK\NETDS\SNA\APPC\SENDRECV.C +SAMPLES\VC98\SDK\NETDS\SNA\APPC\SENDRECV.H +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\APPCLIB.C +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\APPCLIB.H +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\AREMOTE.C +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\AREMOTE.H +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\ARSETUP.C +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\ARSETUP.DEF +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\ARSETUP.DSP +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\ARSETUP.H +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\ARSETUP.RC +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\ARSETUP.RES +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\CLIENT.C +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\QUEUE.C +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\QUEUE.H +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\SERVER.C +SAMPLES\VC98\SDK\NETDS\SNA\AREMOTE\SETUPDLG.H +SAMPLES\VC98\SDK\NETDS\SNA\AREXEC\AREXEC.C +SAMPLES\VC98\SDK\NETDS\SNA\AREXEC\AREXECD.C +SAMPLES\VC98\SDK\NETDS\SNA\AREXEC\AREXECD.DSP +SAMPLES\VC98\SDK\NETDS\SNA\AREXEC\MAKEEXEC.MAK +SAMPLES\VC98\SDK\NETDS\SNA\AREXEC\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\CPIC\CPICRECV.DSP +SAMPLES\VC98\SDK\NETDS\SNA\CPIC\CPICSR.C +SAMPLES\VC98\SDK\NETDS\SNA\CPIC\CPICSR.H +SAMPLES\VC98\SDK\NETDS\SNA\CPIC\MAKECPIC.MAK +SAMPLES\VC98\SDK\NETDS\SNA\CPIC\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\MPING\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\MPING\MAKEMULT.MAK +SAMPLES\VC98\SDK\NETDS\SNA\MPING\MPINGD.C +SAMPLES\VC98\SDK\NETDS\SNA\MPING\MPINGD.DSP +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MRCV.C +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MRCV.H +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MRCV.ICO +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MRCV.MAK +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MRCV.RC +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSEND.C +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSEND.DSP +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSEND.H +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSEND.ICO +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSEND.MAK +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSEND.RC +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSENDRCV.C +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSENDRCV.H +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSENDRCV.ICO +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSENDRCV.MAK +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\MSENDRCV.RC +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\WIN32 +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\WIN32\DEBUG +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\WIN32\DEBUG\MRCV.RES +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\WIN32\DEBUG\MSEND.RES +SAMPLES\VC98\SDK\NETDS\SNA\MSENDRCV\WIN32\DEBUG\MSENDRCV.RES +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\DRUI3270.MAK +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\NRUI3270.MAK +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\ORUI3270.MAK +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\RUI3270.C +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\RUI3270.DEF +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\RUI3270.DSP +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\RUI3270.LNK +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\WRUI3270.C +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\WRUI3270.DEF +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\WRUI3270.LNK +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\WRUI3270.MAK +SAMPLES\VC98\SDK\NETDS\SNA\RUI3270\WRUI3270.RC +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\CPICDEFS.H +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\CPICERR.C +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\CPICERRS.H +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\CPICINIT.C +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\CPICINIT.H +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\CPICPORT.C +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\CPICPORT.H +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\GETOPT.C +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\GETOPT.H +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\SHARED.DSP +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\WIN32 +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\WIN32\DEBUG +SAMPLES\VC98\SDK\NETDS\SNA\SHARED\WIN32\DEBUG\SHARED.LIB +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\NSLI3270.MAK +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\OSLI3270.MAK +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\SLI3270.C +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\WSLI3270.C +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\WSLI3270.DEF +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\WSLI3270.DSP +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\WSLI3270.LNK +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\WSLI3270.MAK +SAMPLES\VC98\SDK\NETDS\SNA\SLI3270\WSLI3270.RC +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\DIALOGS.H +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\INSTALL.C +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\INSTALL.DEF +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\INSTALL.DSP +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\INSTALL.H +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\INSTALL.LNK +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\INSTALL.RC +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\MAKEFILE.NT +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\MAKEFILE.WIN +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\NTMAIN.DLG +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\WIN32 +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\WINMAIN.DLG +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\WIN32\DEBUG +SAMPLES\VC98\SDK\NETDS\SNA\TPSETUP\WIN32\DEBUG\INSTALL.RES +SAMPLES\VC98\SDK\NETDS\SNMP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNMP\SNMPUTIL +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL +SAMPLES\VC98\SDK\NETDS\SNMP\SNMPUTIL\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNMP\SNMPUTIL\README.TXT +SAMPLES\VC98\SDK\NETDS\SNMP\SNMPUTIL\SNMPUTIL.C +SAMPLES\VC98\SDK\NETDS\SNMP\SNMPUTIL\SNMPUTIL.DSP +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\MAKEFILE +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTDLL.C +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTDLL.DEF +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTDLL.DLL +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTDLL.DSP +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTDLL.EXP +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTDLL.LIB +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTMIB.C +SAMPLES\VC98\SDK\NETDS\SNMP\TESTDLL\TESTMIB.H +SAMPLES\VC98\SDK\NETDS\WINNT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\CHNGPASS +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETMSG +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSHARE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSMPLE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NULLSESS +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\README.TXT +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\CHNGPASS\CHNGPASS.C +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\CHNGPASS\CHNGPASS.DSP +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\CHNGPASS\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\CHNGPASS\README.TXT +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETMSG\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETMSG\NETMSG.C +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETMSG\NETMSG.DSP +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETMSG\README.TXT +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSHARE\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSHARE\NETSHARE.C +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSHARE\NETSHARE.DSP +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSHARE\README.TXT +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSMPLE\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSMPLE\NETSMPLE.C +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSMPLE\NETSMPLE.DSP +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NETSMPLE\README.TXT + +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NULLSESS\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NULLSESS\NULLSESS.C +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NULLSESS\NULLSESS.DSP +SAMPLES\VC98\SDK\NETDS\WINNT\NETAPI\NULLSESS\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\APPLETALK +SAMPLES\VC98\SDK\NETDS\WINSOCK\BCAST +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT +SAMPLES\VC98\SDK\NETDS\WINSOCK\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK +SAMPLES\VC98\SDK\NETDS\WINSOCK\OVERLAP +SAMPLES\VC98\SDK\NETDS\WINSOCK\PING +SAMPLES\VC98\SDK\NETDS\WINSOCK\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR +SAMPLES\VC98\SDK\NETDS\WINSOCK\SIMPLE +SAMPLES\VC98\SDK\NETDS\WINSOCK\SOCKSPX +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4 +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK +SAMPLES\VC98\SDK\NETDS\WINSOCK\APPLETALK\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\APPLETALK\PRPERF.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\APPLETALK\PRPERF.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\APPLETALK\PRSAMP.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\APPLETALK\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\BCAST\BCAST.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\BCAST\BCAST.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\BCAST\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\BCAST\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\CSTACK.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DBGSPEC.DOC +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.CPP +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.DLL +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.EXP +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.LIB +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.RC +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\DT_DLL.RES +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\HANDLERS.CPP +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\HANDLERS.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\HUERROR.CPP +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\HUERROR.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\NIDEQUE.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\NOWARN.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\DT_DLL\STACK.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\ABOUT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\ABOUT.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\CONNECT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\CONNECT.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\DISPATCH.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\GLOBALS.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\GLOBCL.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\GLOBCL.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\GLOBCL.ICO +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\GLOBCL.RC +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\GLOBCL.RES +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\INIT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\MISC.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\SELECT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\SELECT.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\CLIENT\WINMAIN.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\ABOUT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\ABOUT.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\DISPATCH.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\GLOBALS.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\GLOBCHAT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\GLOBCHAT.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\GLOBCHAT.ICO +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\GLOBCHAT.RC +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\GLOBCHAT.RES +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\INIT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\MISC.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\GLOBCHAT\SERVER\WINMAIN.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\COMMDEF.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\SOCKCLI.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\SOCKCLI.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\SOCKSRV.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\SOCKSRV.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\IOCOMPLT\SOCKSRV.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\ABOUT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\ABOUT.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\CONNECT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\CONNECT.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\DISPATCH.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\GLOBALS.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\INIT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\IPXCHAT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\IPXCHAT.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\IPXCHAT.ICO +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\IPXCHAT.RC +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\IPXCHAT.RES +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\LISTEN.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\LISTEN.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\MISC.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\IPXCHAT\WINMAIN.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\NULLPDEF.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\NULLPROV.CPP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\NULLPROV.DEF +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\NULLPROV.DLL +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\NULLPROV.EXP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\NULLPROV.LIB +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\SRTEST.CPP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NULLPROV\SRTEST.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\CONNECT +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGRECV +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGSEND +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\PING +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\CONNECT\CONNECT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\CONNECT\CONNECT.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\CONNECT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGRECV\DGRECV.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGRECV\DGRECV.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGRECV\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGSEND\DGSEND.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGSEND\DGSEND.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\DGSEND\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\BLOCK +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\NONBLOCK +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\BLOCK\LISTEN.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\BLOCK\LISTEN.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\BLOCK\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\NONBLOCK\LISTEN.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\NONBLOCK\LISTEN.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\LISTEN\NONBLOCK\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\PING\DOS +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\PING\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\PING\PING.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\PING\PING.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\PING\DOS\DOSPING.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\CMDLINE.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\DPERROR.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\DSTRERR.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\ERRMSG.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\EXTERNS.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\GETERROR.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\MEMORY.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\NETPRINT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\TESTLIB.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\TESTLIB.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\TESTLIB.LIB +SAMPLES\VC98\SDK\NETDS\WINSOCK\NWLINK\TESTLIB\WPERROR.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\OVERLAP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\OVERLAP\OVERLAP.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\OVERLAP\OVERLAP.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\OVERLAP\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\PING\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\PING\PING.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\PING\PING.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\PING\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRCLNT +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSETUP +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSRV +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRCLNT\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRCLNT\RNRCLNT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRCLNT\RNRCLNT.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSETUP\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSETUP\RNRSETUP.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSETUP\RNRSETUP.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSRV\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSRV\RNRSRV.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\RNR\RNRSRV\RNRSRV.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\SIMPLE\IOCTL.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\SIMPLE\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\SIMPLE\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\SIMPLE\SIMPLEC.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\SIMPLE\SIMPLEC.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\SIMPLE\SIMPLES.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\SOCKSPX\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\SOCKSPX\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\SOCKSPX\SOCKSPX.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\SOCKSPX\SOCKSPX.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4\CLIENT.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4\LICENSE.WRI +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4\SERVER.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4\SERVER.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\TP4\TP4WSOCK.WRI +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\DIALOGS.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\MAKEFILE +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\README.TXT +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.C +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.DEF +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.DLG +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.DSP +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.H +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.ICO +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.RC +SAMPLES\VC98\SDK\NETDS\WINSOCK\WSOCK\WSOCK.RES +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT +SAMPLES\VC98\SDK\SDKTOOLS\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\MC +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE +SAMPLES\VC98\SDK\SDKTOOLS\SPY +SAMPLES\VC98\SDK\SDKTOOLS\TLIST +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF +SAMPLES\VC98\SDK\SDKTOOLS\WINNT +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIBTN.FNT +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANICMD.C +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANICUR.H +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIDEFS.H +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIDLGS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIDLGS.H +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIEDIT.C +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIEDIT.DEF +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIEDIT.DSP +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIEDIT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIEDIT.RC +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIEDIT.RES +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIFILE.C +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIMSG.H +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIMSG.MC +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANIMSG.RC +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\ANISTR.C +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\MSG00001.BIN +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\NEWCOLR.CUR +SAMPLES\VC98\SDK\SDKTOOLS\ANIEDIT\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FCNTL.H +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLCLR.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLCPY.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLHAT.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLINV.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLLFT.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLPST.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLSOL.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FILLTOP.CUR +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTCHAR.C +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTCVT.C +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTDLG.C +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTEDIT.C +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTEDIT.DSP +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTEDIT.H +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTEDIT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTEDIT.RC +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTEDIT.RES +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTHEAD.C +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\FONTLOAD.C +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\SAMPLE.FNT +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\TYPECVT.C +SAMPLES\VC98\SDK\SDKTOOLS\FONTEDIT\TYPECVT.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\BIN +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\LIB +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMEDIT +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\BIN\SYMCVT.DLL +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\BROWSE.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\CONTEXT.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\CONTROLS.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\CRASHLIB.DSP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\CRASHLIB.LIB +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DEBUG.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DIALOGS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DISASM.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DISASM.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DRWATSON.ICO +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DRWATSON.RC +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DRWATSON.RES +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DRWTSN32.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DUMP.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\ERROR.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\EVENTLOG.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\GETTEB.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\LOG.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\MESSAGES.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\MESSAGES.MC +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\MESSAGES.RC +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\MODULE.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\MSG00001.BIN +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\NOTIFY.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\PROCESS.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\REGISTRY.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\REGS.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\REGS.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\SYMBOLS.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\UI.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\UTIL.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\WALK.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE\CV.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE\CVEXEFMT.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE\CVFMT.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE\CVINFO.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE\DRWATSON.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE\PROTO.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\INCLUDE\RESOURCE.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\CRASH.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\CV.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\CVCOMMON.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\CVEXEFMT.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\CVINFO.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\CVTYPES.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\DBAPIVER.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\DBGVER.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\MIPSINST.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\PPCINST.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\SYMCVT.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\INCLUDE\TYPES.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\LIB\SYMCVT.EXP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\LIB\SYMCVT.LIB +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT\COFFTOCV.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT\CVCOMMON.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT\FILE.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT\SYMCVT.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT\SYMCVT.DEF +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMCVT\SYMTOCV.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMEDIT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMEDIT\STRINGS.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\SYMEDIT\SYMEDIT.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\DEBUG.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\ERROR.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\ERRORMSG.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\ERRORMSG.MC +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\ERRORMSG.RC +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\INIT.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\MODULE.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\MSG00001.BIN +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PFMON.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PFMON.RC +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PFMON.RES +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PFMONP.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PROCESS.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PSAPI.DSP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PSAPI.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\PSAPI.LIB +SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\COLORWP.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\DEVINFO.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\DIALOGS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\DIALOGS.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\FILE.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\GLOBALS.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\GLOBALS.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\ICCLIP.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IDS.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IEFUNCS.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IEHELP.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGE.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGEDC.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGEDIT.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGEDIT.DSP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGEDIT.H +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGEDLG.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGLINK.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\IMAGUNDO.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\MENUCMD.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\OBJ +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\PROPBAR.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES.RC +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RWBMP.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RWICOCUR.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RWPAL.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\TOOLBOX.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\UTIL.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\VIEWWP.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\WORKWP.C +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\OBJ\IMAGEDIT.RES +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\BRUSH.CUR +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\CROSS.CUR +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\FLOOD.CUR +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\HOTSPOT.CUR +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\IMAGEDIT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\PENCIL.CUR +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDBRUSH.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDCIRCLE.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDFLOOD.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDHOTSPT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDLINE.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDPENCIL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDRECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDSCIRCL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDSELECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TDSRECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUBRUSH.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUCIRCLE.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUFLOOD.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUHOTSPT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TULINE.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUPENCIL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TURECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUSCIRCL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUSELECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\IMAGEDIT\RES\TUSRECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\MC\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\MC\MC.C +SAMPLES\VC98\SDK\SDKTOOLS\MC\MC.DSP +SAMPLES\VC98\SDK\SDKTOOLS\MC\MC.H +SAMPLES\VC98\SDK\SDKTOOLS\MC\MC.TXT +SAMPLES\VC98\SDK\SDKTOOLS\MC\MCLEX.C +SAMPLES\VC98\SDK\SDKTOOLS\MC\MCOUT.C +SAMPLES\VC98\SDK\SDKTOOLS\MC\MCPARSE.C +SAMPLES\VC98\SDK\SDKTOOLS\MC\MCUTIL.C +SAMPLES\VC98\SDK\SDKTOOLS\MC\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.C +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.DEF +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.DLL +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.EXP +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.H +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.INI +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.LIB +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.RC +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORT.RES +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTPRIV.H +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTSTAT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOJ.DLG +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.C +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.DEF +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.DLG +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.DSP +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.EXP +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.H +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.ICO +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.LIB +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.RC +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PORTTOOL.RES +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PTBKPORT.C +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PTDLGS.C +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PTFILE.C +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PTFIND.C +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\PTPRINT.C +SAMPLES\VC98\SDK\SDKTOOLS\PORTTOOL\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\COMSTRIN.H +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\CPARROW.C +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\CPARROW.H +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\CPHELP.H +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\SCRNSAVE.DSP +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\SCRNSAVE.LIB +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\SKELETON.C +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\STRINGS.RC +SAMPLES\VC98\SDK\SDKTOOLS\SCRNSAVE\UNICONV.H +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL +SAMPLES\VC98\SDK\SDKTOOLS\SPY\HOOK.H +SAMPLES\VC98\SDK\SDKTOOLS\SPY\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\SPY\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\DIALOGS.C +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\DIALOGS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\DIALOGS.H +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\HOOK.C +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\MISC.C +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\SPY.C +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\SPY.DSP +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\SPY.H +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\SPY.ICO +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\SPY.RC +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\SPY.RES +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\SPYFUNCS.H +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\WM.C +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\WPRINTF.C +SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\WPRINTF.H +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL\HOOK.C +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL\HOOK.DEF +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL\HOOK.DLL +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL\HOOK.DSP +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL\HOOK.EXP +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL\HOOK.LIB +SAMPLES\VC98\SDK\SDKTOOLS\SPY\DLL\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\TLIST\COMMON.C +SAMPLES\VC98\SDK\SDKTOOLS\TLIST\COMMON.H +SAMPLES\VC98\SDK\SDKTOOLS\TLIST\KILL.C +SAMPLES\VC98\SDK\SDKTOOLS\TLIST\KILL.DSP +SAMPLES\VC98\SDK\SDKTOOLS\TLIST\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\TLIST\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\TLIST\TLIST.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\BAR.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\COMPITEM.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\COMPITEM.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\COMPLIST.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\COMPLIST.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\FILE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\FILE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GBIT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GDATE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GMEM.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.DEF +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.DLL +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.EXP +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.LIB +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILS.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\GUTILSRC.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\HORZLINE.CUR +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\LINE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\LINE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\LIST.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\LIST.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\SCANDIR.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\SCANDIR.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\SECTION.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\SECTION.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\STATE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\STATUS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TABLE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TABLE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TPAINT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TPRINT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TPRIV.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TREE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TREE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\TSCROLL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\UTILS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\VERTLINE.CUR +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\VIEW.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\VIEW.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WDIFFRC.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WINDIFF.C +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WINDIFF.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WINDIFF.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WINDIFF.H +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WINDIFF.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WINDIFF.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINDIFF\WINDIFF.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DBMON +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\ACCACC.CXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\ACCACC.HXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\ACCOUNT.CXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\ACCOUNT.HXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\CACLS.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\CACLS.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\CACLS.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\CACLSMSG.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\CACLSMSG.MC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\CACLSMSG.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\DACLWRAP.CXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\DACLWRAP.HXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\DUMPSEC.CXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\DUMPSEC.HXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\FILEENUM.CXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\FILEENUM.HXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\FILESEC.CXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\FILESEC.HXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\MSG00001.BIN +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\T2.CXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\CACLS\T2.HXX +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\COMPACT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\COMPACT.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\COMPACT.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\COMPACT.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\MSG.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\MSG.MC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\MSG.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\MSG00001.BIN +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\SUPPORT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\COMPACT\SUPPORT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DBMON\DBMON.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DBMON\DBMON.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DBMON\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DBMON\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DDESPY.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DDESPY.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DDESPY.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DDESPY.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DDESPY.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DDESPY.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DDESPY.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\DIALOG.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\GLOBALS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\LISTS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\LISTS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DDESPY\TESTSUBS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\ADDCTRL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\CTRLPROC.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\CUSTCNTL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DIALOGS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DIALOGS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DIALOGS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGEDIT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGEDIT.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGEDIT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGEDIT.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGEDIT.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGEXTRN.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGFUNCS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DLGHELP.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\DRAG.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\FILE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\GLOBALS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\GROUPDLG.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\IDS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\INCLUDE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\MENU.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RESLIST.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RESTODLG.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RESUTIL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RWDLG.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RWINC.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RWRES.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\SELECT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\STATUS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\STYLES.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\TOOLBOX.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\UTIL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\VIEWINC.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ABOTTOM.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\AHORZ.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ALEFT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\APBBOTTM.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\APBRIGHT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ARIGHT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ASPCHORZ.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ASPCVERT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ASZHGHT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ASZWIDTH.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ATOP.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\AVERT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTCHECK.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTCOMBO.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTCUSTOM.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTEDIT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTFRAME.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTGROUP.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTHSCROL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTICON.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTLIST.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTPUSH.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTRADIO.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTRECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTTEXT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\CTVSCROL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\DLGEDIT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\DROPTOOL.CUR +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\HANDLE.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\HANDLE2.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\ICONICON.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\INSERT.CUR +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\MOVE.CUR +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\OUTSEL.CUR +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TABSTOP.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDCHECK.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDCOMBO.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDCUSTOM.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDEDIT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDFRAME.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDGROUP.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDHSCROL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDICON.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDLIST.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDPOINTR.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDPUSH.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDRADIO.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDRECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDTEXT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TDVSCROL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUCHECK.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUCOMBO.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUCUSTOM.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUEDIT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUFRAME.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUGROUP.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUHSCROL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUICON.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TULIST.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUPOINTR.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUPUSH.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TURADIO.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TURECT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUTEXT.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\DLGEDIT\RES\TUVSCROL.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\COMMON.VER +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\FILEBMPS.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NET.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NETWATCH.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NETWATCH.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NETWATCH.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NETWATCH.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NETWATCH.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NETWATCH.RCV +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\NETWATCH.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\OFF.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\ON.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\RCIDS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\UTILS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\NETWATCH\VERSION.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ADDLINE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ADDLINE.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ADDLINE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ADDLOG.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ADDLOG.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ADDLOG.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ALERT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ALERT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ALERTS.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ALRTDISP.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\ALRTOPTN.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\BOOKMARK.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\BOOKMARK.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\CHOSECOM.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\CHOSECOM.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\COMMAND.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\COMMAND.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\COUNTERS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\COUNTERS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\DATASRC.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\DATASRC.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\DATASRC.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\DIALOGS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\DIALOGS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\DISPOPTN.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\DLGIDS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\EXPORT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\EXPORT.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\FILEOPEN.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\FILEOPEN.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\FILESAVE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\FILEUTIL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\FILEUTIL.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\GLOBALS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\GRAFDATA.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\GRAFDATA.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\GRAFDISP.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\GRAFDISP.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\GRAPH.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\GRAPH.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\HELPLINE.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\INIT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\INIT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\INTRLINE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\INTRLINE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LEGEND.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LEGEND.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LINE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LINE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LOG.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LOG.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LOGDISP.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LOGOPTNS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LOGOPTNS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LOGOPTNS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\LOGS.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\MEMORY.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\MENUIDS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\MENUS.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\OWNDRAW.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFDATA.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFDATA.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFERR.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMON.BMP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMON.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMON.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMON.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMON.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMON.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMON.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMOPS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMOPS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PERFMRC.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PLAYBACK.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PLAYBACK.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PMEMORY.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PMHELPID.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\PMRC.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\REGISTRY.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\REGISTRY.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\REPORT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\REPORT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\RPTFCT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\RPTOPTNS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\RPTOPTNS.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\RPTOPTNS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\SIZES.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\STATUS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\STATUS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\STRIDS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\STRINGS.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\SYSTEM.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\SYSTEM.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TIMEFRM.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TIMEFRM.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TIMEFRM.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TIMELINE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TIMELINE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TOOLBAR.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TOOLBAR.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\TYPEDEFS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\UIEXPRT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\UTILS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\UTILS.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\VALUEBAR.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\VALUEBAR.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PERFMON\WINHELPR.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\CNTRDATA.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\INSTDATA.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\OBJDATA.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PERFDATA.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PERFDATA.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEW.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEW.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEW.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEWDAT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEWDAT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEWDLG.DLG +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEWDLG.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEWER.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\PVIEWER.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\PVIEWER\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\CLIENT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\COMMON.VER +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\PIPEEX.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\RDSRELAY.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\RDSRELAY.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTE.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTE.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTE.RCV +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTE.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTEDS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTEDS.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTEDS.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTEDS.RCV +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\REMOTEDS.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SERVER.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SERVER.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVAD.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVCHILD.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVCTOS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVHSHAK.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVLIST.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVLIST.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVMAIN.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVQUERY.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVSTOC.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\REMOTE\SRVUTIL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER\SWITCHER.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER\SWITCHER.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER\SWITCHER.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER\SWITCHER.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\SWITCHER\SWITCHER.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\DIALOGS.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\INSTALL.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\INSTALL.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.ERR +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.HLP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.HPJ +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.PH +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\UCONVERT\UCONVERT.RTF +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PDEBUG.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.DEF +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.DLL +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.EXP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.LIB +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PEFILE.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROBE.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROBE.DEF +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROBE.DLL +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROBE.EXP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROBE.LIB +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROBE.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROBE.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PROCSTAT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PSTAT.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PVIEW.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PWALK.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PWALK.DSP +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PWALK.H +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PWALK.ICO +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PWALK.RC +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PWALK.RES +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PWALKIO.C +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\SYSSTAT.ICO +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\MAKEFILE +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\OBJ +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\README.TXT +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\ZOOMIN.C +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\ZOOMIN.DSP +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\ZOOMIN.H +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\ZOOMIN.ICO +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\ZOOMIN.RC +SAMPLES\VC98\SDK\SDKTOOLS\ZOOMIN\OBJ\ZOOMIN.RES +SAMPLES\VC98\SDK\SYSMGMT\LSAPI +SAMPLES\VC98\SDK\SYSMGMT\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\MSI +SAMPLES\VC98\SDK\SYSMGMT\SETUP +SAMPLES\VC98\SDK\SYSMGMT\SMS +SAMPLES\VC98\SDK\SYSMGMT\TASKSCHED +SAMPLES\VC98\SDK\SYSMGMT\LSAPI\CHALLENG.C +SAMPLES\VC98\SDK\SYSMGMT\LSAPI\CHALLENG.DSP +SAMPLES\VC98\SDK\SYSMGMT\LSAPI\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\LSAPI\MD4.H +SAMPLES\VC98\SDK\SYSMGMT\LSAPI\MD4C.C +SAMPLES\VC98\SDK\SYSMGMT\LSAPI\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\LSAPI\SIMPLE.C +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1 +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1 +SAMPLES\VC98\SDK\SYSMGMT\MSI\INSTMSI +SAMPLES\VC98\SDK\SYSMGMT\MSI\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSI.TXT +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD +SAMPLES\VC98\SDK\SYSMGMT\MSI\SCHEMA.MSI +SAMPLES\VC98\SDK\SYSMGMT\MSI\SEQUENCE +SAMPLES\VC98\SDK\SYSMGMT\MSI\TEMPLATE.MSI +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\APITSTDB.CPP +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\APITSTDB.DSP +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\DEBUG\OBJECT +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\DEBUG\OBJECT\APITSTDB.LRF +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\DEBUG\OBJECT\APITSTDB.RC +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\DEBUG\OBJECT\APITSTDB.RES +SAMPLES\VC98\SDK\SYSMGMT\MSI\APITSTDB\DEBUG\OBJECT\OBJ.TMP +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\CUSTACT1.CPP +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\CUSTACT1.DSP +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\CUSTACT1.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\CUSTACT1.EXP +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\CUSTACT1.LIB +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\OBJECT +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\OBJECT\CUSTACT1.LRF +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\OBJECT\CUSTACT1.RC +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\OBJECT\CUSTACT1.RES +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTACT1\DEBUG\OBJECT\OBJ.TMP +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\CUSTEXE1.CPP +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\CUSTEXE1.DSP +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\DEBUG\OBJECT +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\DEBUG\OBJECT\CUSTEXE1.LRF +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\DEBUG\OBJECT\CUSTEXE1.RC +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\DEBUG\OBJECT\CUSTEXE1.RES +SAMPLES\VC98\SDK\SYSMGMT\MSI\CUSTEXE1\DEBUG\OBJECT\OBJ.TMP +SAMPLES\VC98\SDK\SYSMGMT\MSI\INSTMSI\INITMSI.CPP +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\MSIMERG.CPP +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\MSIMERG.DSP +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\DEBUG\OBJECT +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\DEBUG\OBJECT\MSIMERG.LRF +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\DEBUG\OBJECT\MSIMERG.RES +SAMPLES\VC98\SDK\SYSMGMT\MSI\MSIMERG\DEBUG\OBJECT\OBJ.TMP +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386 +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY.MSI +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\BIN +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\SPYARA.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\SPYDEU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\SPYENU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\SPYJPN.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\BIN\MSISPYU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\BIN\SPYDEU.HLP +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\ALPHA\MSISPY\BIN\SPYENU.HLP +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPYD.MSI +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\BIN +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\SPYARA.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\SPYDEU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\SPYENU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\SPYJPN.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\BIN\MSISPYU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\BIN\SPYDEU.HLP +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\DEBUG\MSISPY\BIN\SPYENU.HLP +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY.MSI +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\BIN +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\SPYARA.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\SPYDEU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\SPYENU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\SPYJPN.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\BIN\MSISPYU.DLL +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\BIN\SPYDEU.HLP +SAMPLES\VC98\SDK\SYSMGMT\MSI\SAMPPROD\I386\MSISPY\BIN\SPYENU.HLP +SAMPLES\VC98\SDK\SYSMGMT\MSI\SEQUENCE\SEQUENCE.BAS +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST +SAMPLES\VC98\SDK\SYSMGMT\SETUP\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\AUTORUN.INF +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\DOINST.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INFDESC.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INFINST.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INFINST.DSP +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INFINST.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INSTWIZ.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INSTWIZ.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INSTWIZ.RC +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\INSTWIZ.RES +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\LICENSE.TXT +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\OPT2.TXT +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\PRODUCT.DLL +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\PRODUCT.INF +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\RESOURCE.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\INFINST\SETUP.ICO +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\MIGINF.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\MIGINF.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\NT5 +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\POOLMEM.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\POOLMEM.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\PVIEW.DSP +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\PVIEW.MAK +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\PVIEWEX.DEF +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\PVIEWMIG.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\PVIEWMIG.DEF +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\NT5\SETUPAPI.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\PVIEW\NT5\SETUPAPI.LIB +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\DATACONV.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\MIGINF.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\MIGINF.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\MIGRATE.DEF +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\MIGRATE.DSP +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\MIGRATE.MAK +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\NT5 +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\PCH.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\POOLMEM.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\POOLMEM.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\SAVECFG.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\SCRNSAVE.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\SCRNSAVE.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\UTILS.C +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\NT5\SETUPAPI.H +SAMPLES\VC98\SDK\SYSMGMT\SETUP\WIN9XMIG\SCRNSAVE\NT5\SETUPAPI.LIB +SAMPLES\VC98\SDK\SYSMGMT\SMS\DEMODB +SAMPLES\VC98\SDK\SYSMGMT\SMS\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI +SAMPLES\VC98\SDK\SYSMGMT\SMS\DEMODB\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\DEMODB\SMS.SQL +SAMPLES\VC98\SDK\SYSMGMT\SMS\DEMODB\SMSDMP.DAT +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\BROWSER.C +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\BROWSER.DEF +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\BROWSER.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\BROWSER.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\BROWSER.RC +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\HOSTANNC.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\MAIN.C +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\WIN32 +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\WIN32\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\WIN32\DEBUG\BROWSER.DLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\WIN32\DEBUG\BROWSER.EXP +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\WIN32\DEBUG\BROWSER.LIB +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\BROWSER\WIN32\DEBUG\BROWSER.RES +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\REMAPI.C +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\REMAPI.DEF +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\REMAPI.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\REMAPI.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\WIN32 +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\WIN32\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\WIN32\DEBUG\REMAPI.DLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\WIN32\DEBUG\REMAPI.EXP +SAMPLES\VC98\SDK\SYSMGMT\SMS\NETMON\REMAPI\WIN32\DEBUG\REMAPI.LIB +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ATTRIBUT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\COMMON +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\DELJOB +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ENUMOBJ +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\MGRP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWJOB +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWPKG +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\PATHS.MK +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\PATHS.VC4 +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\PDF +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\SRVINST +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TESTALL +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TREE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ATTRIBUT\ATTRIBUT.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ATTRIBUT\ATTRIBUT.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ATTRIBUT\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ATTRIBUT\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\3D.RC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\3DCHECK.BMP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\BROWSER.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\BROWSER.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\BROWSER.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\BROWSER.RC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\RESOURCE.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\WIN32 +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\WIN32\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\BROWSER\WIN32\DEBUG\BROWSER.RES +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\COMMON\STATUS.INC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\DELJOB\DELJOB.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\DELJOB\DELJOB.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\DELJOB\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\DELJOB\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ENUMOBJ\ENUMOBJ.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ENUMOBJ\ENUMOBJ.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ENUMOBJ\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\ENUMOBJ\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\MGRP\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\MGRP\MGRP.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\MGRP\MGRP.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\MGRP\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWJOB\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWJOB\NEWJOB.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWJOB\NEWJOB.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWJOB\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWPKG\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWPKG\NEWPKG.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWPKG\NEWPKG.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\NEWPKG\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\PDF\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\PDF\PDF.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\PDF\PDF.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\PDF\VC4.MK +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\EYE.BMP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\EYE.ICO +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\EYEMASK.BMP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\RESDLL.C +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\RESDLL.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\RESDLL.RC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\WIN32 +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\WIN32\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\WIN32\DEBUG\RESDLL.DLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\RESDLL\WIN32\DEBUG\RESDLL.RES +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\SRVINST\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\SRVINST\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\SRVINST\SRVINST.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\SRVINST\SRVINST.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TESTALL\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TESTALL\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TESTALL\TESTALL.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TESTALL\TESTALL.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TREE\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TREE\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TREE\TREE.CPP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSAPI\TREE\TREE.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\SMS.DOT +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\SMSDB.MDB +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\SMSSMPL.XLS +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\SMSTRAIN.DOC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\SMSVIEW.DOC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\WBODBC.WLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\3DCHECK.BMP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\RESOURCE.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEW.C +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEW.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEW.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEW.ICO +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEW.MAK +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEW.RC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEW.STR +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\SMSVIEWS.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\WIN32 +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\VIEWDLL.C +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\VIEWDLL.DSP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\VIEWDLL.MAK +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\VIEWDLL.MK +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\VIEWDLL.RC +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\VIEWDLLS.H +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\WIN32 +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\WIN32\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\WIN32\DEBUG\VIEWDLL.DLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\WIN32\DEBUG\VIEWDLL.EXP +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\WIN32\DEBUG\VIEWDLL.LIB +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\VIEWDLL\WIN32\DEBUG\VIEWDLL.RES +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\WIN32\DEBUG +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\WIN32\DEBUG\SMSVIEW.RES +SAMPLES\VC98\SDK\SYSMGMT\SMS\SMSVIEW\NT\WIN32\DEBUG\VIEWDLL.DLL +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\COMMON +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\DLLS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\COMMON\OBJECTTY.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\COMMON\QRYCODES.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\COMMON\SMSAPI.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\COMMON\SMSINFO.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\COMMON\VB4SMS32.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\DLLS\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\BROWSER +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\BROWSER\BROWSER.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\BROWSER\BROWSER.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\BROWSER\BROWSER.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\BROWSER\BROWSER.VBP +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\BROWSER\NEWCONTA.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\BROWSER\NEWCONTA.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\CONSTANT.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\DATACONS.TXT +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\DBLOGIN.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\DBLOGIN.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\DBLOGIN.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\PROGRESS.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\SMSABOUT.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\SMSABOUT.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\SMSABOUT.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\STATBAR.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\COMMON\WINSTUFF.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\GENERIC.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\GENERIC.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\GLOBAL.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHGRP.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHGRP.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHGRP.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHGRP.RPT +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHINE.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHINE.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHINE.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MACHPROP.RPT +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MDIREPRT.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MDIREPRT.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\MDIREPRT.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\NEWREPRT.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\NEWREPRT.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\PICKMACH.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\PICKMACH.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\PICKMACH.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\PICKPROP.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\PICKPROP.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\PICKPROP.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\REPORT.VBP +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\SITEHIER.BAS +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\SITEHIER.FRM +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\SITEHIER.FRX +SAMPLES\VC98\SDK\SYSMGMT\SMS\VBSMSAPI\SAMPLES\REPORT\SITEHIER.RPT +SAMPLES\VC98\SDK\SYSMGMT\TASKSCHED\MAKEFILE +SAMPLES\VC98\SDK\SYSMGMT\TASKSCHED\README.TXT +SAMPLES\VC98\SDK\SYSMGMT\TASKSCHED\SA.CPP +SAMPLES\VC98\SDK\SYSMGMT\TASKSCHED\SA.DSP +SAMPLES\VC98\SDK\WINBASE\CLUSTER +SAMPLES\VC98\SDK\WINBASE\DEBUG +SAMPLES\VC98\SDK\WINBASE\FIBERS +SAMPLES\VC98\SDK\WINBASE\IO +SAMPLES\VC98\SDK\WINBASE\IPC +SAMPLES\VC98\SDK\WINBASE\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\MEMORY +SAMPLES\VC98\SDK\WINBASE\REGISTRY +SAMPLES\VC98\SDK\WINBASE\SECURITY +SAMPLES\VC98\SDK\WINBASE\WINNT +SAMPLES\VC98\SDK\WINBASE\CLUSTER\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\CLUSTER\README.TXT +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\TEMPLATE +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP.DSP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP.DSW +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP.MAK +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\READRES.TXT +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\RESDLL.MAK +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.C +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.CLW +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.DEF +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.DLL +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.DSP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.EXP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.LIB +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.RC +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMP\SMBSMP.RES +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\BASEPAGE.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\BASEPAGE.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\BASEPAGE.INL +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\DDXDDV.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\DDXDDV.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\EXTOBJ.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\EXTOBJ.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\EXTOBJID.IDL +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\PROPLIST.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\PROPLIST.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\READEX.TXT +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\REGEXT.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\REGEXT.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\RES +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\RESDLLEX.MAK +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\RESOURCE.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\RESPROP.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\RESPROP.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\SMBSMPEX.CLW +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\SMBSMPEX.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\SMBSMPEX.DEF +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\SMBSMPEX.DSP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\SMBSMPEX.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\SMBSMPEX.RC +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\STDAFX.CPP +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\STDAFX.H +SAMPLES\VC98\SDK\WINBASE\CLUSTER\SMBSMP\SMBSMPEX\RES\SMBSMPEX.RC2 +SAMPLES\VC98\SDK\WINBASE\CLUSTER\TEMPLATE\RESTYP5.AWX +SAMPLES\VC98\SDK\WINBASE\CLUSTER\TEMPLATE\RESTYPAW.AWX +SAMPLES\VC98\SDK\WINBASE\CLUSTER\TEMPLATE\RESTYPAW.HLP +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB +SAMPLES\VC98\SDK\WINBASE\DEBUG\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.BMP +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.DEF +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.DLG +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.DSP +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.H +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.HLP +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.HPJ +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.PH +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.RC +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.RES +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB.RTF +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB1.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB2.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB3.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB4.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB5.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB6.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB7.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEB8.ICO +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEBDEBUG.C +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEBDEBUG.H +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEBMAIN.C +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEBMAIN.H +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEBMISC.C +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEBMISC.H +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\LINKLIST.C +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\LINKLIST.DEF +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\LINKLIST.DLL +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\LINKLIST.EXP +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\LINKLIST.H +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\LINKLIST.LIB +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\README.TXT +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\TOOLBAR.BMP +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\TOOLBAR.C +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\TOOLBAR.DEF +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\TOOLBAR.DLL +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\TOOLBAR.EXP +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\TOOLBAR.H +SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\TOOLBAR.LIB +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\README.TXT +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\WDBGEXTS.C +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\WDBGEXTS.DEF +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\WDBGEXTS.DLL +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\WDBGEXTS.DSP +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\WDBGEXTS.EXP +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\WDBGEXTS.LIB +SAMPLES\VC98\SDK\WINBASE\DEBUG\WDBGEXTS\WINDBGKD.H +SAMPLES\VC98\SDK\WINBASE\FIBERS\FIBERS.C +SAMPLES\VC98\SDK\WINBASE\FIBERS\FIBERS.DSP +SAMPLES\VC98\SDK\WINBASE\FIBERS\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\ASYNCIO +SAMPLES\VC98\SDK\WINBASE\IO\FILER +SAMPLES\VC98\SDK\WINBASE\IO\FLOPPY +SAMPLES\VC98\SDK\WINBASE\IO\FWATCH +SAMPLES\VC98\SDK\WINBASE\IO\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL +SAMPLES\VC98\SDK\WINBASE\IO\WINNT +SAMPLES\VC98\SDK\WINBASE\IO\ASYNCIO\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\ASYNCIO\PDC.C +SAMPLES\VC98\SDK\WINBASE\IO\ASYNCIO\PDC.DSP +SAMPLES\VC98\SDK\WINBASE\IO\ASYNCIO\PDC.H +SAMPLES\VC98\SDK\WINBASE\IO\ASYNCIO\README.TXT +SAMPLES\VC98\SDK\WINBASE\IO\FILER\CD.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\CD2.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\DRVPROC.C +SAMPLES\VC98\SDK\WINBASE\IO\FILER\DRVPROC.H +SAMPLES\VC98\SDK\WINBASE\IO\FILER\ENUMDRV.C +SAMPLES\VC98\SDK\WINBASE\IO\FILER\ENUMDRV.H +SAMPLES\VC98\SDK\WINBASE\IO\FILER\EXPDIR.C +SAMPLES\VC98\SDK\WINBASE\IO\FILER\EXPDIR.H +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FILER.C +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FILER.DLG +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FILER.DSP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FILER.H +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FILER.ICO +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FILER.RC +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FILER.RES +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FIXED.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FIXED2.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FLOPPY.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\FLOPPY2.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\GLOBALS.H +SAMPLES\VC98\SDK\WINBASE\IO\FILER\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\FILER\README.TXT +SAMPLES\VC98\SDK\WINBASE\IO\FILER\REMOTE.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FILER\REMOTE2.BMP +SAMPLES\VC98\SDK\WINBASE\IO\FLOPPY\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\FLOPPY\MFMT.C +SAMPLES\VC98\SDK\WINBASE\IO\FLOPPY\MFMT.DSP +SAMPLES\VC98\SDK\WINBASE\IO\FLOPPY\README.TXT +SAMPLES\VC98\SDK\WINBASE\IO\FWATCH\FWATCH.C +SAMPLES\VC98\SDK\WINBASE\IO\FWATCH\FWATCH.DSP +SAMPLES\VC98\SDK\WINBASE\IO\FWATCH\FWATCH.INI +SAMPLES\VC98\SDK\WINBASE\IO\FWATCH\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\FWATCH\README.TXT +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\README.TXT +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\RESOURCE.H +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.BMP +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.C +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.DEF +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.DSP +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.H +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.ICO +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.RC +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\TTY.RES +SAMPLES\VC98\SDK\WINBASE\IO\SERIAL\VERSION.H +SAMPLES\VC98\SDK\WINBASE\IO\WINNT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\WINNT\UNBUFCPY +SAMPLES\VC98\SDK\WINBASE\IO\WINNT\UNBUFCPY\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IO\WINNT\UNBUFCPY\README.TXT +SAMPLES\VC98\SDK\WINBASE\IO\WINNT\UNBUFCPY\UNBUFCP1.C +SAMPLES\VC98\SDK\WINBASE\IO\WINNT\UNBUFCPY\UNBUFCP2.C +SAMPLES\VC98\SDK\WINBASE\IO\WINNT\UNBUFCPY\UNBUFCP2.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML +SAMPLES\VC98\SDK\WINBASE\IPC\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEMO +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\README.TXT +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLIENT.DEF +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLIENT.DLG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLIENT.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLIENT.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLIENT.ICO +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLIENT.RC +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLIENT.RES +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CLINIT.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\CONV.ICO +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\DDE.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\DDEMLCL.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\DIALOG.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\DIALOG.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\HUGE.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\HUGE.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\INFOCTRL.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\INFOCTRL.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\LIST.ICO +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\MEM.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\TRACK.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLIENT\TRACK.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCK.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCK.DEF +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCK.DLG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCK.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCK.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCK.ICO +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCKRES.RC +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\CLOCKRES.RES +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\CLOCK\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEADD.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEDLG.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEDLG.DLG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEDLG.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEGLBL.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEINST.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEINST.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEMAIN.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEPROCS.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DDEXTRN.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DIALOGS.DLG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\DIALOGS.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\INSTALL.DLG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\INSTALL.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\INSTALL.ICO +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\INSTALL.RC +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\INSTALL.RES +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEINST\README.TXT +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEMO\DDEMO.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEMO\DDEMO.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEMO\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PHTEST.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PHTEST.DLG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PHTEST.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PHTEST.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PHTEST.RBJ +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PHTEST.RC +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PHTEST.RES +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PROGHELP.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PROGHELP.DEF +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PROGHELP.DLL +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PROGHELP.EXP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PROGHELP.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\DDEPROG\PROGHELP.LIB +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\DDE.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\DDEMLSV.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\DIALOG.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\DIALOG.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\HUGE.C +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\HUGE.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\SERVER.DEF +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\SERVER.DLG +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\SERVER.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\SERVER.H +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\SERVER.ICO +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\SERVER.RC +SAMPLES\VC98\SDK\WINBASE\IPC\DDEML\SERVER\SERVER.RES +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\CONSOLE +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\CONSOLE\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\CONSOLE\NMPIPE.C +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\CONSOLE\NMPIPE.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\CONSOLE\README.TXT +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT\CLIENT32.C +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT\CLIENT32.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT\CLIENT32.H +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT\CLIENT32.RC +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT\CLIENT32.RES +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPCLIENT\README.TXT +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\ENDDEAD.BMP +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\ENDLIVE.BMP +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\MIDDEAD.BMP +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\MIDLIVE.BMP +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\NPSERVER.ICO +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\README.TXT +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\SERVER32.C +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\SERVER32.DSP +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\SERVER32.H +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\SERVER32.RC +SAMPLES\VC98\SDK\WINBASE\IPC\NAMEPIPE\NPSERVER\SERVER32.RES +SAMPLES\VC98\SDK\WINBASE\MEMORY\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\MEMORY\MEMORY.C +SAMPLES\VC98\SDK\WINBASE\MEMORY\MEMORY.DEF +SAMPLES\VC98\SDK\WINBASE\MEMORY\MEMORY.DSP +SAMPLES\VC98\SDK\WINBASE\MEMORY\MEMORY.H +SAMPLES\VC98\SDK\WINBASE\MEMORY\MEMORY.RC +SAMPLES\VC98\SDK\WINBASE\MEMORY\MEMORY.RES +SAMPLES\VC98\SDK\WINBASE\MEMORY\NMMEMCLI.C +SAMPLES\VC98\SDK\WINBASE\MEMORY\NMMEMSRV.C +SAMPLES\VC98\SDK\WINBASE\MEMORY\README.TXT +SAMPLES\VC98\SDK\WINBASE\REGISTRY\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\REGISTRY\MONKEY.C +SAMPLES\VC98\SDK\WINBASE\REGISTRY\MONKEY.DSP +SAMPLES\VC98\SDK\WINBASE\REGISTRY\MONKEY.H +SAMPLES\VC98\SDK\WINBASE\REGISTRY\MONKEY.RC +SAMPLES\VC98\SDK\WINBASE\REGISTRY\MONKEY.RES +SAMPLES\VC98\SDK\WINBASE\REGISTRY\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO +SAMPLES\VC98\SDK\WINBASE\SECURITY\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\ATL.CPP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT.CPP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT.DEF +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT.IDL +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT.RC +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT.RES +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT.TLB +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT_I.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\CERTEXIT_P.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\DLLDATA.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\EXIT.CPP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\EXIT.DLL +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\EXIT.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\EXIT.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\PCH.CPP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\EXIT\RESOURCE.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\CONST.BAS +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\MAIN.BAS +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\MSSCCPRJ.SCC +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\POLICY.CLS +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\POLICYVB.FRM +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\POLICYVB.VBP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\POLICYVB.VBW +SAMPLES\VC98\SDK\WINBASE\SECURITY\CERTSVR\POLICYVB\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENUMALGS +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\INITUSER +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\SIGN +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CD.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CD2.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CF.BUG +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CF.HLP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CF.HPJ +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CF.RTF +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CFILER.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CFILER.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CFILER.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CFILER.ICO +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CFILER.RC +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CFILER.RES +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CRP.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\CRP.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\DRVPROC.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\DRVPROC.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\ENUMDRV.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\ENUMDRV.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\EXPDIR.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\EXPDIR.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\FILLFILE.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\FILLFILE.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\FIXED.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\FIXED2.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\FLOPPY.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\FLOPPY2.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\GLOBALS.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\MYCURSOR.CUR +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\MYICON.ICO +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\REMOTE.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\REMOTE2.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\RESOURCE.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\TABLE.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\CFILER\TABLE.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT\DECRYPT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT\DECRYPT.CCRYPT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT\DECRYPT.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT\ENCRYPT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT\ENCRYPT.CCRYPT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENCRYPT\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENUMALGS\ENUMALGS.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENUMALGS\ENUMALGS.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENUMALGS\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\ENUMALGS\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\INITUSER\INITUSER.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\INITUSER\INITUSER.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\INITUSER\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\INITUSER\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\SIGN\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\SIGN\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\SIGN\SIGNFILE.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\SIGN\VERIFILE.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\CRYPTO\SIGN\VERIFILE.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\ACLAPI +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\AUDIT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\CHECK_SD +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DISPTRUS +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DOMTRUST +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\INCLUDE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSAPRIVS +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSASAMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\MACHACCT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\RCMD +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECPERF +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SIDCLN +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TAKEOWN +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TEXTSID +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\ACLAPI\ACLAPI.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\ACLAPI\ACLAPI.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\ACLAPI\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\ACLAPI\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\AUDIT\AUDIT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\AUDIT\AUDIT.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\AUDIT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\CHECK_SD\CHECK_SD.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\CHECK_SD\CHECK_SD.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\CHECK_SD\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\CHECK_SD\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\CHECK_SD\XTRA_NFO.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DISPTRUS\DISPTRUS.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DISPTRUS\DISPTRUS.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DISPTRUS\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DOMTRUST\DOMTRUST.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DOMTRUST\DOMTRUST.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\DOMTRUST\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\DEBUG.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\DEBUG.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\DIALOGS.RC +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.DEF +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.DLL +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.EXP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.HLP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.LIB +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINA.RES +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINADLG.DLG +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GINADLG.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\GLOBALS.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\LOCKED.BMP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\LOCKED.ICO +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\LOGON.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\NEWUSER.ICO +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\OPTIONS.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\OUT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\PROTOS.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\RES.RC +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\RESIDS.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\RESOURCE.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\SHUTDOWN.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\SHUTDOWN.ICO +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\STRUCTS.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\USER.ICO +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\UTIL.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINA\WELCOME.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\GINASTUB.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\GINASTUB.DEF +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\GINASTUB.DLL +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\GINASTUB.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\GINASTUB.EXP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\GINASTUB.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\GINASTUB.LIB +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\GINASTUB\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\CONST.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\GET_SOCK.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\HTTPAUTH.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\HTTPAUTH.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\HTTPAUTH.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\HTTPAUTH.HTM +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\HTTPGET.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\PROTO.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\HTTPAUTH\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\INCLUDE\ISSPER16.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\INCLUDE\ISSPERR.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\INCLUDE\SSPI.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\INCLUDE\SUBAUTH.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSAPRIVS\LSAPRIVS.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSAPRIVS\LSAPRIVS.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSAPRIVS\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSASAMP\LSAAPI.HLP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSASAMP\LSASAMP.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSASAMP\LSASAMP.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSASAMP\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\LSASAMP\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\MACHACCT\MACHACCT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\MACHACCT\MACHACCT.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\MACHACCT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\RCMD\CLIENT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\RCMD\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\RCMD\SERVER.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\RCMD\SERVER.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY\CHGFLPSD.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY\CHGFLPSD.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY\FLOPLOCK.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY\INSTSRV.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SD_FLPPY\SD_FLPPY.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECFILE\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECFILE\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECFILE\SECFILE.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECFILE\SECFILE.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECPERF\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECPERF\SECPERF.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SECPERF\SECPERF.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SIDCLN\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SIDCLN\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SIDCLN\SIDCLEAN.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SIDCLN\SIDCLEAN.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\CLIENT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\CLIENT.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\COLLECT.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\COLLECT.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\COMM.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\COMM.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\KERBAUTH +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\NEGOAUTH +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\SECURITY.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\SECURITY.H +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\SERVER.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\KERBAUTH\SECURITY.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SOCKAUTH\NEGOAUTH\SECURITY.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\SUBAUTH.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\SUBAUTH.DEF +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\SUBAUTH.DLL +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\SUBAUTH.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\SUBAUTH.EXP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\SUBAUTH\SUBAUTH.LIB +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TAKEOWN\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TAKEOWN\README.TXT +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TAKEOWN\TAKEOWN.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TAKEOWN\TAKEOWN.DSP +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TEXTSID\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TEXTSID\TEXTSID.C +SAMPLES\VC98\SDK\WINBASE\SECURITY\WINNT\TEXTSID\TEXTSID.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3 +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\MPHEAP.C +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\MPHEAP.DEF +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\MPHEAP.DLL +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\MPHEAP.EXP +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\MPHEAP.H +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\MPHEAP.LIB +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\README.TXT +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\TMPHEAP.C +SAMPLES\VC98\SDK\WINBASE\WINNT\MPHEAP\TMPHEAP.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\PROCLIST +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\PROCLIST\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\PROCLIST\PROCLIST.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\PROCLIST\PROCLIST.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\PROCLIST\PROCLIST.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\PROCLIST\PROCLIST.RES +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\ABOUTDLG.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\ABOUTDLG.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\HELP.BMP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\MAINWND.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\MAINWND.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\README.TXT +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\RESOURCE.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\SMALL.ICO +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.BMP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.CNT +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.DEF +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.ERR +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.HLP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.HPJ +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.ICO +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.RES +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\STATLIST.RTF +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\WINUTILS.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PDH\STATLIST\WINUTILS.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\INC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\README.TXT +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL\APPMEMA.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL\APPMEMA.DEF +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL\APPMEMA.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL\APPMEMA.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL\APPMEMA.RES +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL\DLLINIT.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\APPDLL\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\INC\APPMEMI.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\APPMEM.DEF +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\DATAMEM.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\DATAMEM.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\MEMCTRS.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\MEMCTRS.MC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\MEMCTRS.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\MSG00001.BIN +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\PERFMEM.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\PERFMEM.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\PERFMEM.RES +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\PERFMSG.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\PERFUTIL.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\PERFUTIL.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PERFDLL\SHAREMEM.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEM.DLL +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEM.EXP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEM.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEM.INI +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEM.LIB +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEM.REG +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEMA.DLL +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEMA.EXP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\APPMEMA.LIB +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\APPMEM\PUB\MEMCTRNM.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.BMP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.CNT +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.DEF +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.ERR +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.HLP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.HPJ +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.ICO +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.RES +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\LEAKYBIN.RTF +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\README.TXT +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\RESOURCE.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\LEAKYBIN\SMALL.ICO +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\DATAGEN.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\DATAGEN.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\GENCTRNM.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\GENCTRS.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\GENCTRS.MC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\GENCTRS.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\MSG00001.BIN +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.DEF +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.DLL +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.EXP +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.INI +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.LIB +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.REG +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFGEN.RES +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFMSG.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFUTIL.C +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\PERFUTIL.H +SAMPLES\VC98\SDK\WINBASE\WINNT\PERFTOOL\PERFDLLS\PERFGEN\README.TXT +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\DEBUG.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\DEBUG.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\EVENTS.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\GLOBALS.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\MSG00001.BIN +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\PARAM.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3CTX.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3EVNT.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3EVNT.MC +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3EVNT.RC +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3EVNT.RES +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3SRV.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3SRV.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3SRV.INI +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POP3SRVP.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POPFILE.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\POPFILE.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\PROTOS.H +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\README.TXT +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\SERVICE.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\SOCKET.C +SAMPLES\VC98\SDK\WINBASE\WINNT\POP3\THREADS.C +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE\CLIENT.C +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE\CLIENT.DSP +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE\MAKEFILE +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE\README.TXT +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE\SERVICE.C +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE\SERVICE.H +SAMPLES\VC98\SDK\WINBASE\WINNT\SERVICE\SIMPLE.C +SAMPLES\VC98\SDK\WINUI\CLIPTEXT +SAMPLES\VC98\SDK\WINUI\CMDDLG +SAMPLES\VC98\SDK\WINUI\COMCTL +SAMPLES\VC98\SDK\WINUI\COMMCTRL +SAMPLES\VC98\SDK\WINUI\CONGUI +SAMPLES\VC98\SDK\WINUI\CONSOLE +SAMPLES\VC98\SDK\WINUI\CONTROLS +SAMPLES\VC98\SDK\WINUI\CURSOR +SAMPLES\VC98\SDK\WINUI\INPUT +SAMPLES\VC98\SDK\WINUI\MAKEFILE +SAMPLES\VC98\SDK\WINUI\MDI +SAMPLES\VC98\SDK\WINUI\MENU +SAMPLES\VC98\SDK\WINUI\OWNCOMBO +SAMPLES\VC98\SDK\WINUI\PROPSHEET +SAMPLES\VC98\SDK\WINUI\RESOURCE +SAMPLES\VC98\SDK\WINUI\SHELL +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\CLIPTEXT.C +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\CLIPTEXT.DEF +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\CLIPTEXT.DSP +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\CLIPTEXT.H +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\CLIPTEXT.RBJ +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\CLIPTEXT.RC +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\CLIPTEXT.RES +SAMPLES\VC98\SDK\WINUI\CLIPTEXT\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32 +SAMPLES\VC98\SDK\WINUI\CMDDLG\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\ABOUT.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\CDTEST.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\CDTEST.DSP +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\CDTEST.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\CDTEST.ICO +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\CDTEST.RES +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\CLRTEMP.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\COLORS.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\COLORS.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\COLORS.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\DEVMODE.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\DEVMODE.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\DEVNAMES.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\DEVNAMES.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FIND.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FIND.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FIND.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FONT.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FONT.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FONT.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FONTTEMP.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\FTTEMP.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\LOGFONT.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\LOGFONT.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\OPEN.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\OPEN.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\OPEN.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\OPENTEMP.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\PRINT.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\PRINT.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\PRINT.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\PRTEMP.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\README.TXT +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\REPLACE.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\REPLACE.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\RES.RC +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\SAVE.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\SAVE.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\TITLE.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\TITLE.DLG +SAMPLES\VC98\SDK\WINUI\CMDDLG\CDTEST\TITLE.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\COMDLG32.C +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\COMDLG32.DSP +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\COMDLG32.H +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\COMDLG32.ICO +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\COMDLG32.RC +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\COMDLG32.RES +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\README.TXT +SAMPLES\VC98\SDK\WINUI\CMDDLG\COMDLG32\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\COMCTL\MAKEFILE +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\ANSIAPI.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\COMMON.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\DBUGIT.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\DRAWICON.C +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\FRMTBAR.BMP +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\FRMTBAR.C +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\FRMTBAR.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\FRMTBAR.RC +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\MAKEFILE +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\MALSPY.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\OLESTD.C +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\OLESTD.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\OLEUTL.C +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\PREINC.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\README.TXT +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REGUID.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.C +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.DLG +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.DSP +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.H +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.ICO +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.R +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.RC +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.RES +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP.RH +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\REITP2.DLG +SAMPLES\VC98\SDK\WINUI\COMCTL\REITP\UTILITY.H +SAMPLES\VC98\SDK\WINUI\COMMCTRL\MAKEFILE +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\BACKGRND.BMP +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\DEBUG +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\LOGO.BMP +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\MAINICON.ICO +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\MAKEFILE +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\README.TXT +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\REBAR.C +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\REBAR.DSP +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\REBAR.DSW +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\REBAR.RC +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\COMMCTRL\REBAR\DEBUG\REBAR.RES +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\DEBUG +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\DISK.ICO +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\MAKEFILE +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\README.TXT +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\VLISTVW.C +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\VLISTVW.DSP +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\VLISTVW.DSW +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\VLISTVW.H +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\VLISTVW.RC +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\WINDOWS.ICO +SAMPLES\VC98\SDK\WINUI\COMMCTRL\VLISTVW\DEBUG\VLISTVW.RES +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.DLG +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.DSP +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.ERR +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.H +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.HLP +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.HPJ +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.ICO +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.RC +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.RES +SAMPLES\VC98\SDK\WINUI\CONGUI\CONGUI.RTF +SAMPLES\VC98\SDK\WINUI\CONGUI\CONSOLE.C +SAMPLES\VC98\SDK\WINUI\CONGUI\GUI.C +SAMPLES\VC98\SDK\WINUI\CONGUI\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CONGUI\README.TXT +SAMPLES\VC98\SDK\WINUI\CONSOLE\ALOCFREE.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\CODEPAGE.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONINFO.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONMODE.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONSOLE.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONSOLE.DSP +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONSOLE.H +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONSOLE.ICO +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONSOLE.RC +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONSOLE.RES +SAMPLES\VC98\SDK\WINUI\CONSOLE\CONTITLE.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\CREATE.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\CURSOR.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\FILLATT.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\FILLCHAR.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\FLUSH.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\GETLRGST.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\GETNUMEV.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\HANDLER.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CONSOLE\NUMBUT.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\READCHAR.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\README.TXT +SAMPLES\VC98\SDK\WINUI\CONSOLE\READOUT.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\SCROLL.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\SIZE.C +SAMPLES\VC98\SDK\WINUI\CONSOLE\SIZE.H +SAMPLES\VC98\SDK\WINUI\CONSOLE\WRITEIN.C +SAMPLES\VC98\SDK\WINUI\CONTROLS\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\MAKEFILE +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\PAINT.C +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\PAINT.H +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\README.TXT +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.C +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.DEF +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.DLL +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.EXP +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.H +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.LIB +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.RC +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINCUBE.RES +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.C +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.DEF +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.DLG +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.DSP +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.H +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.ICO +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.RC +SAMPLES\VC98\SDK\WINUI\CONTROLS\SPINCUBE\SPINTEST.RES +SAMPLES\VC98\SDK\WINUI\CURSOR\BULLSEYE.CUR +SAMPLES\VC98\SDK\WINUI\CURSOR\CURSOR.C +SAMPLES\VC98\SDK\WINUI\CURSOR\CURSOR.DEF +SAMPLES\VC98\SDK\WINUI\CURSOR\CURSOR.DSP +SAMPLES\VC98\SDK\WINUI\CURSOR\CURSOR.H +SAMPLES\VC98\SDK\WINUI\CURSOR\CURSOR.RBJ +SAMPLES\VC98\SDK\WINUI\CURSOR\CURSOR.RC +SAMPLES\VC98\SDK\WINUI\CURSOR\CURSOR.RES +SAMPLES\VC98\SDK\WINUI\CURSOR\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\IME +SAMPLES\VC98\SDK\WINUI\INPUT\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\A +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\COMP.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\DATA.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\IMEAPPS.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\IMEAPPS.H +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\IMEAPPS.ICO +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\IMEAPPS.RC +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\IMEAPPS.RCV +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\IMEMENU.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\M +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\MODE.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\PAINT.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\PCH.H +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\SETCOMP.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\STATUS.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\SUBS.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\TOOLBAR.BMP +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\TOOLBAR.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\TOOLBAR.H +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\W +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\WAPI.H +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\WSUBS.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\A\IMEAPPS.DSP +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\A\IMEAPPS.RES +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\A\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\M\IMEAPPS.RES +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\M\IMEAPPSM.DSP +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\M\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\W\IMEAPPS.RES +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\W\IMEAPPSW.DSP +SAMPLES\VC98\SDK\WINUI\INPUT\IME\IMEAPPS\W\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\DATA.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\DLGS.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MULTIUI.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MULTIUI.DSP +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MULTIUI.H +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MULTIUI.ICO +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MULTIUI.RC +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MULTIUI.RES +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\MULTIWND.C +SAMPLES\VC98\SDK\WINUI\INPUT\IME\MULTIUI\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\MAKEFILE +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\MOUSINFO.C +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\MOUSINFO.DSP +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\MOUSINFO.H +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\MOUSINFO.ICO +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\MOUSINFO.RC +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\MOUSINFO.RES +SAMPLES\VC98\SDK\WINUI\INPUT\MOUSEINFO\README.TXT +SAMPLES\VC98\SDK\WINUI\MDI\MAKEFILE +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MAKEFILE +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MP300.ICO +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MPFILE.C +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MPFIND.C +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MPINIT.C +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MPOPEN.C +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MPPRINT.C +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MULTIPAD.C +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MULTIPAD.DEF +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MULTIPAD.DLG +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MULTIPAD.H +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MULTIPAD.RC +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\MULTIPAD.RES +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\NOTE300.ICO +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\README.TXT +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\REGDB.C +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\REGDB.H +SAMPLES\VC98\SDK\WINUI\MDI\REGMPAD\REGMPAD.DSP +SAMPLES\VC98\SDK\WINUI\MENU\CHECKOFF.BMP +SAMPLES\VC98\SDK\WINUI\MENU\CHECKON.BMP +SAMPLES\VC98\SDK\WINUI\MENU\MAKEFILE +SAMPLES\VC98\SDK\WINUI\MENU\MENU.C +SAMPLES\VC98\SDK\WINUI\MENU\MENU.DEF +SAMPLES\VC98\SDK\WINUI\MENU\MENU.DLG +SAMPLES\VC98\SDK\WINUI\MENU\MENU.DSP +SAMPLES\VC98\SDK\WINUI\MENU\MENU.H +SAMPLES\VC98\SDK\WINUI\MENU\MENU.ICO +SAMPLES\VC98\SDK\WINUI\MENU\MENU.RBJ +SAMPLES\VC98\SDK\WINUI\MENU\MENU.RC +SAMPLES\VC98\SDK\WINUI\MENU\MENU.RES +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\MAKEFILE +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.C +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.DEF +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.DLG +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.DSP +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.H +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.ICO +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.RBJ +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.RC +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\OWNCOMBO.RES +SAMPLES\VC98\SDK\WINUI\OWNCOMBO\README.TXT +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL +SAMPLES\VC98\SDK\WINUI\PROPSHEET\MAKEFILE +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\MAKEFILE +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\MAKEFILE +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\WIZARD.C +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\WIZARD.DSP +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\WIZARD.H +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\WIZARD.ICO +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\WIZARD.RC +SAMPLES\VC98\SDK\WINUI\PROPSHEET\COMCTL\WIZARD\WIZARD.RES +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO +SAMPLES\VC98\SDK\WINUI\RESOURCE\MAKEFILE +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.C +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.DSP +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.ERR +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.H +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.HLP +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.HPJ +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.ICO +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.PH +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.RC +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.RES +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\DYNDLG.RTF +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\MAKEFILE +SAMPLES\VC98\SDK\WINUI\RESOURCE\DYNDLG\README.TXT +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\DIB.C +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\DIB.H +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.C +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.DSP +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.H +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.HLP +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.HPJ +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.ICO +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.PH +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.RC +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONPRO.RTF +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONS.C +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\ICONS.H +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\MAKEFILE +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\MDICHILD.C +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\MDICHILD.H +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\OBJ +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\README.TXT +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\RESOURCE\ICONPRO\OBJ\ICONPRO.RES +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MAKEFILE +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MESSAGES.DLL +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MESSAGES.H +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MESSAGES.MC +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MESSAGES.RC +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MESSAGES.RES +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MSG00409.BIN +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MSG00411.BIN +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MSGTEST.C +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\MSGTEST.DSP +SAMPLES\VC98\SDK\WINUI\RESOURCE\MSGTABLE\README.TXT +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER +SAMPLES\VC98\SDK\WINUI\SHELL\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\BANDOBJS.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\BANDOBJS.DEF +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\BANDOBJS.DSP +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\BANDOBJS.DSW +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\CLSFACT.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\CLSFACT.H +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\COMMBAND.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\COMMBAND.H +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\DEBUG +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\DESKBAND.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\DESKBAND.H +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\EXPLRBAR.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\EXPLRBAR.H +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\GLOBALS.H +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\GUID.H +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\README.HTM +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\DEBUG\BANDOBJS.DLL +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\DEBUG\BANDOBJS.EXP +SAMPLES\VC98\SDK\WINUI\SHELL\BANDOBJS\DEBUG\BANDOBJS.LIB +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DEFCLSF.C +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.C +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.DEF +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.DLL +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.DSP +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.EXP +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.H +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.LIB +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.RC +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.RCV +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\DROPEXT.REG +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\PRIV.H +SAMPLES\VC98\SDK\WINUI\SHELL\DROPEXT\README.TXT +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\CSTATHLP.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\CSTATHLP.H +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\CSTRTABL.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\CSTRTABL.H +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\DBGOUT.H +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FILEVIEW.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FILEVIEW.H +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FLATTEXT.TXT +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVINIT.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVPROC.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.DEF +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.DLL +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.DSP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.EXP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.H +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.LIB +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.RC +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.RCV +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.REG +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\FVTEXT.RES +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\IFILEVW.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\IPERFILE.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\README.TXT +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW\TOOLS.BMP +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\ENTRY.H +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\FPARSER.REG +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\README.TXT +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\SODEFS.H +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VSASC.DEF +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VSCTOP.H +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VSDTOP.H +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VSD_ASC.C +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VSP_ASC.H +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VS_ASC.C +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VS_ASC.DLL +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VS_ASC.DSP +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VS_ASC.EXP +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VS_ASC.H +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VS_ASC.LIB +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VS_ASC.PRO +SAMPLES\VC98\SDK\WINUI\SHELL\FPARSER\VWDEFS.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\BINARY.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\CLSFACT.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\CLSFACT.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\DEBUG +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\DOCKWNDW.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\DOCKWNDW.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\ENUMIDL.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\ENUMIDL.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\EXTRICON.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\EXTRICON.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\FOLDER.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\FOLDEROP.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\GUID.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\INFOTIP.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\INFOTIP.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\PIDLMGR.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\PIDLMGR.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\README.HTM +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\REGVIEW.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\REGVIEW.DEF +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\REGVIEW.DSP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\REGVIEW.DSW +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\REGVIEW.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\REGVIEW.RC +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\SHLFLDR.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\SHLFLDR.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\SHLVIEW.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\SHLVIEW.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\STRING.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\TOOLS.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\UTILITY.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\UTILITY.H +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\DEBUG\REGVIEW.DLL +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\DEBUG\REGVIEW.EXP +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\DEBUG\REGVIEW.LIB +SAMPLES\VC98\SDK\WINUI\SHELL\REGVIEW\DEBUG\REGVIEW.RES +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\COPYHOOK.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\CTXMENU.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\GAK.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\GAK2.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\GAK3.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\ICONHDLR.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\PRIV.H +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\PROPSHET.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\README.TXT +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.DEF +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.DLL +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.DSP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.EXP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.H +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.LIB +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.RC +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.REG +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHELLEXT.RES +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\SHEXINIT.CPP +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\TEST.GAK +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\TEST1.GAK +SAMPLES\VC98\SDK\WINUI\SHELL\SHELLEXT\TEST2.GAK +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.C +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.DEF +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.DSP +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.H +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.RC +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.RCV +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\APP32.RES +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\MAKEFILE +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\RESOURCE.H +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\STATE11.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\STATE12.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\STATE21.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\STATE22.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\STATE31.ICO +SAMPLES\VC98\SDK\WINUI\SHELL\TRAYNOT\STATE32.ICO +SAMPLES\VC98\VCOLEDB\CONSUMER +SAMPLES\VC98\VCOLEDB\PROVIDER +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\AGENT.MDB +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\AGENTCTL.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\AGENTCTL.H +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\AGENTCTL.RGS +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\ATLAGENT.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\ATLAGENT.DEF +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\ATLAGENT.DSP +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\ATLAGENT.DSW +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\ATLAGENT.HTM +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\ATLAGENT.IDL + +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\ATLAGENT.RC +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\COFECUP.JPG +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\GUIDS.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\RESOURCE.H +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\STDAFX.H +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\VBTEST +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\VBTEST\FORM1.FRM +SAMPLES\VC98\VCOLEDB\CONSUMER\ATLAGENT\VBTEST\VBTEST.VBP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDB.CLW +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDB.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDB.DSP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDB.DSW +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDB.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDB.MAK +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDB.RC +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDBDOC.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDBDOC.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDBVW.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\CATDBVW.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\COLPAGE.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\COLPAGE.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\MAINFRM.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\MAINFRM.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\RES +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\RESOURCE.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\STDAFX.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\TABLEPAG.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\TABLEPAG.H +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\RES\CATDB.ICO +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\RES\CATDB.RC2 +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\RES\CATDBDOC.ICO +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\RES\TOOLBAR.BMP +SAMPLES\VC98\VCOLEDB\CONSUMER\CATDB\RES\TOOLBAR1.BMP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXCTL.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXCTL.H +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXCTL.RGS +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXDB.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXDB.DEF +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXDB.DSP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXDB.DSW +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXDB.IDL +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\COMPLEXDB.RC +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\RESOURCE.H +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\STDAFX.H +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\MFCBIND.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\MFCBIND.DSP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\MFCBIND.DSW +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\MFCBIND.H +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\MFCBIND.RC +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\MFCBINDDLG.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\MFCBINDDLG.H +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\RES +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\RESOURCE.H +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\STDAFX.H +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\RES\MFCBIND.ICO +SAMPLES\VC98\VCOLEDB\CONSUMER\COMPLEXDB\MFCBIND\RES\MFCBIND.RC2 +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\CTRLEXT.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\CTRLEXT.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\CTRLEXT.INL +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBDOC.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBDOC.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBEXCEPT.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBEXCEPT.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBLISTVW.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBLISTVW.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBTREEVW.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBTREEVW.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWER.CLW +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWER.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWER.DSP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWER.DSW +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWER.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWER.RC +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWVW.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DBVIEWVW.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DLGSQL.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\DLGSQL.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\EDITDLG.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\EDITDLG.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\ERRORDLG.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\ERRORDLG.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\MAINFRM.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\MAINFRM.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\OPTIONDG.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\OPTIONDG.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\RES +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\RESOURCE.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\STDAFX.H +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\RES\BMP00002.BMP +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\RES\DBDOC.ICO +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\RES\DBVIEWER.ICO +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\RES\DBVIEWER.RC2 +SAMPLES\VC98\VCOLEDB\CONSUMER\DBVIEWER\RES\TOOLBAR.BMP +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\DBREAD.H +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\MULTIDLG.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\MULTIDLG.H +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\MULTIREAD.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\MULTIREAD.DSP +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\MULTIREAD.IDL +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\MULTIREAD.RC +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\MULTIREAD.RGS +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\RESOURCE.H +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\CONSUMER\MULTIREAD\STDAFX.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTO.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTO.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTO.DSP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTO.DSW +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTO.IDL +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTO.RC +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTOPS.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\ATLMTOPS.MK +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\MTOPROV.RGS +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\MTOPROVDS.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\MTOPROVGUIDS.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\MTOPROVRS.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\MTOPROVRS.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\MTOPROVSESS.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\PARAMS.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\PARAMS.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\PARSER.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\PARSER.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\RESOURCE.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\STDAFX.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\ACCOUNTS.MDB +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\CHECKING_ACCOUNT.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\MTODATA.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\MTODATA.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\MTODATA.RGS +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\RESOURCE.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\STDAFX.H +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\TESTMTO.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\TESTMTO.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\TESTMTO.DSP +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\TESTMTO.IDL +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\TESTMTO.RC +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\TESTMTOPS.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\ATLMTO\TESTMTO\TESTMTOPS.MK +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\FOO.TXT +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.CLW +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.DSP +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.DSW +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.IDL +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.NCB +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.OPT +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROV.RC +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVIDER.RGS +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVIDERDS.H +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVIDERGUIDS.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVIDERRS.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVIDERRS.H +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVIDERSESS.H +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVPS.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\MYPROVPS.MK +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\RESOURCE.H +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\ROWLOC.H +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\MYPROV\STDAFX.H +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\COMMAND.RGS +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\DATASRC.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\DATASRC.H +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\DATASRC.RGS +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\GMGUIDS.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDER.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDER.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDER.DSP +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDER.DSW +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDER.IDL +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDER.RC +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDERPS.DEF +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\PROVIDERPS.MK +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\RESOURCE.H +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\ROWSET.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\ROWSET.H +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\ROWSET.RGS +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\SESSION.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\SESSION.H +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\SESSION.RGS +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\STDAFX.CPP +SAMPLES\VC98\VCOLEDB\PROVIDER\PROVIDER\STDAFX.H +SAMPLES\VFP98\CLASSES +SAMPLES\VFP98\CSAPP +SAMPLES\VFP98\DATA +SAMPLES\VFP98\SERVERS +SAMPLES\VFP98\SOLUTION +SAMPLES\VFP98\TASTRADE +SAMPLES\VFP98\CLASSES\BUTTONS.VCT +SAMPLES\VFP98\CLASSES\BUTTONS.VCX +SAMPLES\VFP98\CLASSES\CANCEL.BMP +SAMPLES\VFP98\CLASSES\CANCEL.MSK +SAMPLES\VFP98\CLASSES\CHECKER.BMP +SAMPLES\VFP98\CLASSES\CLOCK.BMP +SAMPLES\VFP98\CLASSES\DRAGMOVE.CUR +SAMPLES\VFP98\CLASSES\HELP.BMP +SAMPLES\VFP98\CLASSES\HELP.MSK +SAMPLES\VFP98\CLASSES\MOVERBOX.BMP +SAMPLES\VFP98\CLASSES\NODROP01.CUR +SAMPLES\VFP98\CLASSES\OK.BMP +SAMPLES\VFP98\CLASSES\OK.MSK +SAMPLES\VFP98\CLASSES\REGISTRY.PRG +SAMPLES\VFP98\CLASSES\SAMPLES.VCT +SAMPLES\VFP98\CLASSES\SAMPLES.VCX +SAMPLES\VFP98\CLASSES\SMMAIL.BMP +SAMPLES\VFP98\CLASSES\TYPELIB.VCT +SAMPLES\VFP98\CLASSES\TYPELIB.VCX +SAMPLES\VFP98\CLASSES\UTILITY.VCT +SAMPLES\VFP98\CLASSES\UTILITY.VCX +SAMPLES\VFP98\CLASSES\WATCH.BMP +SAMPLES\VFP98\CSAPP\BIZRULES.DBF +SAMPLES\VFP98\CSAPP\BIZRULES.EXE +SAMPLES\VFP98\CSAPP\BIZRULES.PJT +SAMPLES\VFP98\CSAPP\BIZRULES.PJX +SAMPLES\VFP98\CSAPP\BIZRULES.PRG +SAMPLES\VFP98\CSAPP\BIZRULES.TLB +SAMPLES\VFP98\CSAPP\BIZRULES.VBR +SAMPLES\VFP98\CSAPP\CS.DBC +SAMPLES\VFP98\CSAPP\CS.DCT +SAMPLES\VFP98\CSAPP\CS.DCX +SAMPLES\VFP98\CSAPP\CSDEFS.H +SAMPLES\VFP98\CSAPP\CSMAIN.PRG +SAMPLES\VFP98\CSAPP\CSPROCS.PRG +SAMPLES\VFP98\CSAPP\EMPLOYEE.DBF +SAMPLES\VFP98\CSAPP\EMPLOYEE.FPT +SAMPLES\VFP98\CSAPP\EMP_INIT.DBF +SAMPLES\VFP98\CSAPP\EMP_INIT.FPT +SAMPLES\VFP98\CSAPP\LVIEW.BMP +SAMPLES\VFP98\CSAPP\LVIEW.MSK +SAMPLES\VFP98\CSAPP\RVIEW.BMP +SAMPLES\VFP98\CSAPP\RVIEW.MSK +SAMPLES\VFP98\CSAPP\SAMPLE.APP +SAMPLES\VFP98\CSAPP\SAMPLE.PJT +SAMPLES\VFP98\CSAPP\SAMPLE.PJX +SAMPLES\VFP98\CSAPP\SAMPLE.VCT +SAMPLES\VFP98\CSAPP\SAMPLE.VCX +SAMPLES\VFP98\CSAPP\TABLE.BMP +SAMPLES\VFP98\CSAPP\TABLE.MSK +SAMPLES\VFP98\DATA\COMBOJ.QPR +SAMPLES\VFP98\DATA\COUNTRY.DBF +SAMPLES\VFP98\DATA\CUSTOMER.CDX +SAMPLES\VFP98\DATA\CUSTOMER.DBF +SAMPLES\VFP98\DATA\EMPLOYEE.CDX +SAMPLES\VFP98\DATA\EMPLOYEE.DBF +SAMPLES\VFP98\DATA\EMPLOYEE.FPT +SAMPLES\VFP98\DATA\FOUTERJ.QPR +SAMPLES\VFP98\DATA\GRAPHICS +SAMPLES\VFP98\DATA\INNERJ.QPR +SAMPLES\VFP98\DATA\INSUBQ.PRG +SAMPLES\VFP98\DATA\LOUTERJ.QPR +SAMPLES\VFP98\DATA\NESTED.QPR +SAMPLES\VFP98\DATA\ORDERS.CDX +SAMPLES\VFP98\DATA\ORDERS.DBF +SAMPLES\VFP98\DATA\ORDITEMS.CDX +SAMPLES\VFP98\DATA\ORDITEMS.DBF +SAMPLES\VFP98\DATA\PRODUCTS.CDX +SAMPLES\VFP98\DATA\PRODUCTS.DBF +SAMPLES\VFP98\DATA\QUERIES.DBF +SAMPLES\VFP98\DATA\QUERIES.FPT +SAMPLES\VFP98\DATA\QUERIES.PJT +SAMPLES\VFP98\DATA\QUERIES.PJX +SAMPLES\VFP98\DATA\ROUTERJ.QPR +SAMPLES\VFP98\DATA\TESTDATA.DBC +SAMPLES\VFP98\DATA\TESTDATA.DCT +SAMPLES\VFP98\DATA\TESTDATA.DCX +SAMPLES\VFP98\DATA\TOPTEN.QPR +SAMPLES\VFP98\DATA\WORSTTEN.QPR +SAMPLES\VFP98\DATA\GRAPHICS\BRIDJUST.GIF +SAMPLES\VFP98\DATA\GRAPHICS\BUCHSTEV.GIF +SAMPLES\VFP98\DATA\GRAPHICS\CALLLAUR.GIF +SAMPLES\VFP98\DATA\GRAPHICS\DAVONANC.GIF +SAMPLES\VFP98\DATA\GRAPHICS\DODSANNE.GIF +SAMPLES\VFP98\DATA\GRAPHICS\FULLANDR.GIF +SAMPLES\VFP98\DATA\GRAPHICS\HELLALBE.GIF +SAMPLES\VFP98\DATA\GRAPHICS\KINGROBE.GIF +SAMPLES\VFP98\DATA\GRAPHICS\LEVEJANE.GIF +SAMPLES\VFP98\DATA\GRAPHICS\MARTXAVI.GIF +SAMPLES\VFP98\DATA\GRAPHICS\PATTCARO.GIF +SAMPLES\VFP98\DATA\GRAPHICS\PEACMARG.GIF +SAMPLES\VFP98\DATA\GRAPHICS\PERELAUR.GIF +SAMPLES\VFP98\DATA\GRAPHICS\SMITTIM.GIF +SAMPLES\VFP98\DATA\GRAPHICS\SUYAMICH.GIF +SAMPLES\VFP98\SERVERS\FOXISAPI +SAMPLES\VFP98\SERVERS\GOPHER +SAMPLES\VFP98\SERVERS\POOLMGR +SAMPLES\VFP98\SERVERS\FOXISAPI\CSOURCE +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXISAPI.DLL +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXISAPI.INI +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXWEB +SAMPLES\VFP98\SERVERS\FOXISAPI\HTML.HTM +SAMPLES\VFP98\SERVERS\FOXISAPI\TOOLS +SAMPLES\VFP98\SERVERS\FOXISAPI\CSOURCE\FOXISAPI.CPP +SAMPLES\VFP98\SERVERS\FOXISAPI\CSOURCE\FOXISAPI.DEF +SAMPLES\VFP98\SERVERS\FOXISAPI\CSOURCE\FOXISAPI.MAK +SAMPLES\VFP98\SERVERS\FOXISAPI\CSOURCE\FOXISAPI.RC +SAMPLES\VFP98\SERVERS\FOXISAPI\CSOURCE\RESOURCE.H +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\CONFIG.FPW +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\EMPLOYEE.VCT +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\EMPLOYEE.VCX +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\FOXIS.PJT +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\FOXIS.PJX +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\HTML.CDX +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\HTML.DBF +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\HTML.FPT +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\ISAPI.VCT +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\ISAPI.VCX +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\MAIN.PRG +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXIS\T1.PRG +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXWEB\FOXWEB.PJT +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXWEB\FOXWEB.PJX +SAMPLES\VFP98\SERVERS\FOXISAPI\FOXWEB\FOXWEB.PRG +SAMPLES\VFP98\SERVERS\FOXISAPI\TOOLS\ODEBUG.PRG +SAMPLES\VFP98\SERVERS\GOPHER\FOXSRCH.PJT +SAMPLES\VFP98\SERVERS\GOPHER\FOXSRCH.PJX +SAMPLES\VFP98\SERVERS\GOPHER\README.TXT +SAMPLES\VFP98\SERVERS\GOPHER\SRCHDATA.PRG +SAMPLES\VFP98\SERVERS\GOPHER\WING1.SCT +SAMPLES\VFP98\SERVERS\GOPHER\WING1.SCX +SAMPLES\VFP98\SERVERS\GOPHER\WTHOT.BMP +SAMPLES\VFP98\SERVERS\POOLMGR\DUMMY.PRG +SAMPLES\VFP98\SERVERS\POOLMGR\JOBMGR.PRG +SAMPLES\VFP98\SERVERS\POOLMGR\POOL.PJT +SAMPLES\VFP98\SERVERS\POOLMGR\POOL.PJX +SAMPLES\VFP98\SERVERS\POOLMGR\POOL.SCT +SAMPLES\VFP98\SERVERS\POOLMGR\POOL.SCX +SAMPLES\VFP98\SERVERS\POOLMGR\POOLMGR.PRG +SAMPLES\VFP98\SERVERS\POOLMGR\README.TXT +SAMPLES\VFP98\SOLUTION\APILIBRA.BMP +SAMPLES\VFP98\SOLUTION\APPS.BMP +SAMPLES\VFP98\SOLUTION\BLDQUERY.VCT +SAMPLES\VFP98\SOLUTION\BLDQUERY.VCX +SAMPLES\VFP98\SOLUTION\BTS.BMP +SAMPLES\VFP98\SOLUTION\BTS.MSK +SAMPLES\VFP98\SOLUTION\CONNECTN.BMP +SAMPLES\VFP98\SOLUTION\CONTROLS +SAMPLES\VFP98\SOLUTION\DATABASE.BMP +SAMPLES\VFP98\SOLUTION\DB +SAMPLES\VFP98\SOLUTION\FFC +SAMPLES\VFP98\SOLUTION\FORMS +SAMPLES\VFP98\SOLUTION\FORMS.BMP +SAMPLES\VFP98\SOLUTION\FOX.BMP +SAMPLES\VFP98\SOLUTION\FOX.MSK +SAMPLES\VFP98\SOLUTION\INDEXES.BMP +SAMPLES\VFP98\SOLUTION\LEAF.BMP +SAMPLES\VFP98\SOLUTION\MAIN.PRG +SAMPLES\VFP98\SOLUTION\MENU.BMP +SAMPLES\VFP98\SOLUTION\MENUS +SAMPLES\VFP98\SOLUTION\NEXT.BMP +SAMPLES\VFP98\SOLUTION\NEXT.MSK +SAMPLES\VFP98\SOLUTION\OLE +SAMPLES\VFP98\SOLUTION\PININ.BMP +SAMPLES\VFP98\SOLUTION\PINOUT.BMP +SAMPLES\VFP98\SOLUTION\PSCHECK.BMP +SAMPLES\VFP98\SOLUTION\PSCMD.BMP +SAMPLES\VFP98\SOLUTION\PSDROPDN.BMP +SAMPLES\VFP98\SOLUTION\PSEDITBX.BMP +SAMPLES\VFP98\SOLUTION\PSGRID.BMP +SAMPLES\VFP98\SOLUTION\PSLISTBX.BMP +SAMPLES\VFP98\SOLUTION\PSOLE.BMP +SAMPLES\VFP98\SOLUTION\PSPGFR.BMP +SAMPLES\VFP98\SOLUTION\PSRADIO.BMP +SAMPLES\VFP98\SOLUTION\PSSPIN.BMP +SAMPLES\VFP98\SOLUTION\PSTIMER.BMP +SAMPLES\VFP98\SOLUTION\PSTXTBX.BMP +SAMPLES\VFP98\SOLUTION\QUERY.BMP +SAMPLES\VFP98\SOLUTION\REFTEXT.CDX +SAMPLES\VFP98\SOLUTION\REFTEXT.DBF +SAMPLES\VFP98\SOLUTION\REPORT.BMP +SAMPLES\VFP98\SOLUTION\REPORTS +SAMPLES\VFP98\SOLUTION\SHAPER.BMP +SAMPLES\VFP98\SOLUTION\SOLUTION.APP +SAMPLES\VFP98\SOLUTION\SOLUTION.CDX +SAMPLES\VFP98\SOLUTION\SOLUTION.DBF +SAMPLES\VFP98\SOLUTION\SOLUTION.FPT +SAMPLES\VFP98\SOLUTION\SOLUTION.PJT +SAMPLES\VFP98\SOLUTION\SOLUTION.PJX +SAMPLES\VFP98\SOLUTION\SOLUTION.SCT +SAMPLES\VFP98\SOLUTION\SOLUTION.SCX +SAMPLES\VFP98\SOLUTION\SOLUTION.VCT +SAMPLES\VFP98\SOLUTION\SOLUTION.VCX +SAMPLES\VFP98\SOLUTION\TABLE.BMP +SAMPLES\VFP98\SOLUTION\TAHOE +SAMPLES\VFP98\SOLUTION\TOOLBAR2.BMP +SAMPLES\VFP98\SOLUTION\TOOLBARS +SAMPLES\VFP98\SOLUTION\VOLUME01.ICO +SAMPLES\VFP98\SOLUTION\WINAPI +SAMPLES\VFP98\SOLUTION\XREF.CDX +SAMPLES\VFP98\SOLUTION\XREF.DBF +SAMPLES\VFP98\SOLUTION\CONTROLS\BUTTONS +SAMPLES\VFP98\SOLUTION\CONTROLS\CHECKBOX +SAMPLES\VFP98\SOLUTION\CONTROLS\COMBOBOX +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS +SAMPLES\VFP98\SOLUTION\CONTROLS\PGFRAME +SAMPLES\VFP98\SOLUTION\CONTROLS\TIMER +SAMPLES\VFP98\SOLUTION\CONTROLS\TXT_EDT +SAMPLES\VFP98\SOLUTION\CONTROLS\BUTTONS\CMDBTN.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\BUTTONS\CMDBTN.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\BUTTONS\QUIZ.DBF +SAMPLES\VFP98\SOLUTION\CONTROLS\BUTTONS\QUIZ.FPT +SAMPLES\VFP98\SOLUTION\CONTROLS\BUTTONS\QUIZ.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\BUTTONS\QUIZ.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\CHECKBOX\CHECKBOX.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\CHECKBOX\CHECKBOX.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\COMBOBOX\LOOKUP.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\COMBOBOX\LOOKUP.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\1_MANY.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\1_MANY.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\CALC.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\CALC.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\CONTROLS.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\CONTROLS.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\DYNGRID.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\GRID\DYNGRID.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\DBLVIEW.BMP +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\DBLVIEW.MSK +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\DBRVIEW.BMP +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\DBRVIEW.MSK +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\DBTABLE.BMP +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\DBTABLE.MSK +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LADD.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LADD.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LMOVER.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LMOVER.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LMSEL.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LMSEL.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LMULCOL.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LMULCOL.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LSORT.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\LSORT.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\MULTDAT1.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\MULTDAT1.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\MULTFILE.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\MULTFILE.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\PICLIST.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\PICLIST.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\LISTS\REGION.QPR +SAMPLES\VFP98\SOLUTION\CONTROLS\PGFRAME\MSGBOX.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\PGFRAME\MSGBOX.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\PGFRAME\PFSAM1.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\PGFRAME\PFSAM1.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\PGFRAME\PFSAM2.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\PGFRAME\PFSAM2.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\TIMER\CLOCK.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\TIMER\CLOCK.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\TIMER\SWATCH.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\TIMER\SWATCH.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\TIMER\TIMECOMM.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\TIMER\TIMECOMM.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\TXT_EDT\EDITBOX.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\TXT_EDT\EDITBOX.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\TXT_EDT\TEXT.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\TXT_EDT\TEXT.SCX +SAMPLES\VFP98\SOLUTION\CONTROLS\TXT_EDT\TEXTBOX.SCT +SAMPLES\VFP98\SOLUTION\CONTROLS\TXT_EDT\TEXTBOX.SCX +SAMPLES\VFP98\SOLUTION\DB\IDS.CDX +SAMPLES\VFP98\SOLUTION\DB\IDS.DBF +SAMPLES\VFP98\SOLUTION\DB\INDEX1.SCT +SAMPLES\VFP98\SOLUTION\DB\INDEX1.SCX +SAMPLES\VFP98\SOLUTION\DB\INDEX2.SCT +SAMPLES\VFP98\SOLUTION\DB\INDEX2.SCX +SAMPLES\VFP98\SOLUTION\DB\INFO.SCT +SAMPLES\VFP98\SOLUTION\DB\INFO.SCX +SAMPLES\VFP98\SOLUTION\DB\NEWID.DBC +SAMPLES\VFP98\SOLUTION\DB\NEWID.DCT +SAMPLES\VFP98\SOLUTION\DB\NEWID.DCX +SAMPLES\VFP98\SOLUTION\DB\NEWID.SCT +SAMPLES\VFP98\SOLUTION\DB\NEWID.SCX +SAMPLES\VFP98\SOLUTION\DB\ORDER.SCT +SAMPLES\VFP98\SOLUTION\DB\ORDER.SCX +SAMPLES\VFP98\SOLUTION\DB\ORDITEMS.CDX +SAMPLES\VFP98\SOLUTION\DB\ORDITEMS.DBF +SAMPLES\VFP98\SOLUTION\DB\TABLE1.CDX +SAMPLES\VFP98\SOLUTION\DB\TABLE1.DBF +SAMPLES\VFP98\SOLUTION\DB\TABLE2.CDX +SAMPLES\VFP98\SOLUTION\DB\TABLE2.DBF +SAMPLES\VFP98\SOLUTION\DB\TRANSACT.SCT +SAMPLES\VFP98\SOLUTION\DB\TRANSACT.SCX +SAMPLES\VFP98\SOLUTION\FFC\ARRAYS.SCT +SAMPLES\VFP98\SOLUTION\FFC\ARRAYS.SCX +SAMPLES\VFP98\SOLUTION\FFC\AUTOMATE.SCT +SAMPLES\VFP98\SOLUTION\FFC\AUTOMATE.SCX +SAMPLES\VFP98\SOLUTION\FFC\BUTTONS.SCT +SAMPLES\VFP98\SOLUTION\FFC\BUTTONS.SCX +SAMPLES\VFP98\SOLUTION\FFC\CONFLICT.SCT +SAMPLES\VFP98\SOLUTION\FFC\CONFLICT.SCX +SAMPLES\VFP98\SOLUTION\FFC\DATACAL.SCT +SAMPLES\VFP98\SOLUTION\FFC\DATACAL.SCX +SAMPLES\VFP98\SOLUTION\FFC\DATAEDIT.SCT +SAMPLES\VFP98\SOLUTION\FFC\DATAEDIT.SCX +SAMPLES\VFP98\SOLUTION\FFC\DATANAV.SCT +SAMPLES\VFP98\SOLUTION\FFC\DATANAV.SCX +SAMPLES\VFP98\SOLUTION\FFC\DATAQRY.SCT +SAMPLES\VFP98\SOLUTION\FFC\DATAQRY.SCX +SAMPLES\VFP98\SOLUTION\FFC\DATASORT.SCT +SAMPLES\VFP98\SOLUTION\FFC\DATASORT.SCX +SAMPLES\VFP98\SOLUTION\FFC\DIALOGS.SCT +SAMPLES\VFP98\SOLUTION\FFC\DIALOGS.SCX +SAMPLES\VFP98\SOLUTION\FFC\DOHTML.SCT +SAMPLES\VFP98\SOLUTION\FFC\DOHTML.SCX +SAMPLES\VFP98\SOLUTION\FFC\DSESSION.SCT +SAMPLES\VFP98\SOLUTION\FFC\DSESSION.SCX +SAMPLES\VFP98\SOLUTION\FFC\DTEDIT2.SCT +SAMPLES\VFP98\SOLUTION\FFC\DTEDIT2.SCX +SAMPLES\VFP98\SOLUTION\FFC\DTLOOK2.SCT +SAMPLES\VFP98\SOLUTION\FFC\DTLOOK2.SCX +SAMPLES\VFP98\SOLUTION\FFC\ENVIRON.SCT +SAMPLES\VFP98\SOLUTION\FFC\ENVIRON.SCX +SAMPLES\VFP98\SOLUTION\FFC\ERROR.SCT +SAMPLES\VFP98\SOLUTION\FFC\ERROR.SCX +SAMPLES\VFP98\SOLUTION\FFC\GETPROJ.SCT +SAMPLES\VFP98\SOLUTION\FFC\GETPROJ.SCX +SAMPLES\VFP98\SOLUTION\FFC\GRAPHREC.SCT +SAMPLES\VFP98\SOLUTION\FFC\GRAPHREC.SCX +SAMPLES\VFP98\SOLUTION\FFC\HYPERLNK.SCT +SAMPLES\VFP98\SOLUTION\FFC\HYPERLNK.SCX +SAMPLES\VFP98\SOLUTION\FFC\MOUSEFX.SCT +SAMPLES\VFP98\SOLUTION\FFC\MOUSEFX.SCX +SAMPLES\VFP98\SOLUTION\FFC\MOVERS.SCT +SAMPLES\VFP98\SOLUTION\FFC\MOVERS.SCX +SAMPLES\VFP98\SOLUTION\FFC\NEWMENU.SCT +SAMPLES\VFP98\SOLUTION\FFC\NEWMENU.SCX +SAMPLES\VFP98\SOLUTION\FFC\OUTPUT.SCT +SAMPLES\VFP98\SOLUTION\FFC\OUTPUT.SCX +SAMPLES\VFP98\SOLUTION\FFC\THERM.SCT +SAMPLES\VFP98\SOLUTION\FFC\THERM.SCX +SAMPLES\VFP98\SOLUTION\FFC\WEBVWR.SCT +SAMPLES\VFP98\SOLUTION\FFC\WEBVWR.SCX +SAMPLES\VFP98\SOLUTION\FFC\WHANDLER.SCT +SAMPLES\VFP98\SOLUTION\FFC\WHANDLER.SCX +SAMPLES\VFP98\SOLUTION\FORMS\CRESIZE.SCT +SAMPLES\VFP98\SOLUTION\FORMS\CRESIZE.SCX +SAMPLES\VFP98\SOLUTION\FORMS\DATALOOK.SCT +SAMPLES\VFP98\SOLUTION\FORMS\DATALOOK.SCX +SAMPLES\VFP98\SOLUTION\FORMS\DDROP.SCT +SAMPLES\VFP98\SOLUTION\FORMS\DDROP.SCX +SAMPLES\VFP98\SOLUTION\FORMS\FOX.AVI +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS +SAMPLES\VFP98\SOLUTION\FORMS\IMAGE.SCT +SAMPLES\VFP98\SOLUTION\FORMS\IMAGE.SCX +SAMPLES\VFP98\SOLUTION\FORMS\LAUNCH.SCT +SAMPLES\VFP98\SOLUTION\FORMS\LAUNCH.SCX +SAMPLES\VFP98\SOLUTION\FORMS\LOGFORM.SCT +SAMPLES\VFP98\SOLUTION\FORMS\LOGFORM.SCX +SAMPLES\VFP98\SOLUTION\FORMS\LOGIN.CDX +SAMPLES\VFP98\SOLUTION\FORMS\LOGIN.DBF +SAMPLES\VFP98\SOLUTION\FORMS\LOGIN.SCT +SAMPLES\VFP98\SOLUTION\FORMS\LOGIN.SCX +SAMPLES\VFP98\SOLUTION\FORMS\MAKESQL.SCT +SAMPLES\VFP98\SOLUTION\FORMS\MAKESQL.SCX +SAMPLES\VFP98\SOLUTION\FORMS\MANY.SCT +SAMPLES\VFP98\SOLUTION\FORMS\MANY.SCX +SAMPLES\VFP98\SOLUTION\FORMS\MCI_PLAY.SCT +SAMPLES\VFP98\SOLUTION\FORMS\MCI_PLAY.SCX +SAMPLES\VFP98\SOLUTION\FORMS\MENUS.BMP +SAMPLES\VFP98\SOLUTION\FORMS\MULTI.SCT +SAMPLES\VFP98\SOLUTION\FORMS\MULTI.SCX +SAMPLES\VFP98\SOLUTION\FORMS\OBJECTS.SCT +SAMPLES\VFP98\SOLUTION\FORMS\OBJECTS.SCX +SAMPLES\VFP98\SOLUTION\FORMS\PARAM.SCT +SAMPLES\VFP98\SOLUTION\FORMS\PARAM.SCX +SAMPLES\VFP98\SOLUTION\FORMS\PARAMASK.SCT +SAMPLES\VFP98\SOLUTION\FORMS\PARAMASK.SCX +SAMPLES\VFP98\SOLUTION\FORMS\QBE.VCT +SAMPLES\VFP98\SOLUTION\FORMS\QBE.VCX +SAMPLES\VFP98\SOLUTION\FORMS\QBF.SCT +SAMPLES\VFP98\SOLUTION\FORMS\QBF.SCX +SAMPLES\VFP98\SOLUTION\FORMS\QBF_TRAN.SCT +SAMPLES\VFP98\SOLUTION\FORMS\QBF_TRAN.SCX +SAMPLES\VFP98\SOLUTION\FORMS\SCREEN.BMP +SAMPLES\VFP98\SOLUTION\FORMS\SDIFORM.MNT +SAMPLES\VFP98\SOLUTION\FORMS\SDIFORM.MNX +SAMPLES\VFP98\SOLUTION\FORMS\SDIFORM.MPR +SAMPLES\VFP98\SOLUTION\FORMS\SDIFORM.SCT +SAMPLES\VFP98\SOLUTION\FORMS\SDIFORM.SCX +SAMPLES\VFP98\SOLUTION\FORMS\SDITBAR.VCT +SAMPLES\VFP98\SOLUTION\FORMS\SDITBAR.VCX +SAMPLES\VFP98\SOLUTION\FORMS\SINGLE.SCT +SAMPLES\VFP98\SOLUTION\FORMS\SINGLE.SCX +SAMPLES\VFP98\SOLUTION\FORMS\TOOLBAR1.BMP +SAMPLES\VFP98\SOLUTION\FORMS\VIDEO.SCT +SAMPLES\VFP98\SOLUTION\FORMS\VIDEO.SCX +SAMPLES\VFP98\SOLUTION\FORMS\WHATTHIS.HLP +SAMPLES\VFP98\SOLUTION\FORMS\WHATTHIS.HPJ +SAMPLES\VFP98\SOLUTION\FORMS\WHATTHIS.RTF +SAMPLES\VFP98\SOLUTION\FORMS\WHATTHIS.SCT +SAMPLES\VFP98\SOLUTION\FORMS\WHATTHIS.SCX +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\ANIM.PRG +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\ANIM.SCT +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\ANIM.SCX +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\ANIM.VCT +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\ANIM.VCX +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\ARW08DN.BMP +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\ARW08UP.BMP +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\CGRAPH.PRG +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\DEMO.DBF +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\FDMAIN.SCT +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\FDMAIN.SCX +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\FDPROC.PRG +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\FOXDRAW.H +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\FOXDRAW.VCT +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\FOXDRAW.VCX +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\FRAMES.DBF +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\GRAPH.DBF +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\GRAPH.FPT +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\GRAPH.SCT +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\GRAPH.SCX +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\INS.DBF +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\INS.FPT +SAMPLES\VFP98\SOLUTION\FORMS\GRAPHICS\PGRAPH.PRG +SAMPLES\VFP98\SOLUTION\MENUS\BLUE.BMP +SAMPLES\VFP98\SOLUTION\MENUS\CHECK.BMP +SAMPLES\VFP98\SOLUTION\MENUS\CHKMENU.MNT +SAMPLES\VFP98\SOLUTION\MENUS\CHKMENU.MNX +SAMPLES\VFP98\SOLUTION\MENUS\CHKMENU.MPR +SAMPLES\VFP98\SOLUTION\MENUS\CHKMENU.SCT +SAMPLES\VFP98\SOLUTION\MENUS\CHKMENU.SCX +SAMPLES\VFP98\SOLUTION\MENUS\DYNAMIC.MNT +SAMPLES\VFP98\SOLUTION\MENUS\DYNAMIC.MNX +SAMPLES\VFP98\SOLUTION\MENUS\DYNAMIC.MPR +SAMPLES\VFP98\SOLUTION\MENUS\DYNSHORT.SCT +SAMPLES\VFP98\SOLUTION\MENUS\DYNSHORT.SCX +SAMPLES\VFP98\SOLUTION\MENUS\EDTSHORT.MNT +SAMPLES\VFP98\SOLUTION\MENUS\EDTSHORT.MNX +SAMPLES\VFP98\SOLUTION\MENUS\EDTSHORT.MPR +SAMPLES\VFP98\SOLUTION\MENUS\FILLMENU.SCT +SAMPLES\VFP98\SOLUTION\MENUS\FILLMENU.SCX +SAMPLES\VFP98\SOLUTION\MENUS\FRMSHORT.MNT +SAMPLES\VFP98\SOLUTION\MENUS\FRMSHORT.MNX +SAMPLES\VFP98\SOLUTION\MENUS\FRMSHORT.MPR +SAMPLES\VFP98\SOLUTION\MENUS\GREEN.BMP +SAMPLES\VFP98\SOLUTION\MENUS\ITEM1.BMP +SAMPLES\VFP98\SOLUTION\MENUS\ITEM2.BMP +SAMPLES\VFP98\SOLUTION\MENUS\ITEM3.BMP +SAMPLES\VFP98\SOLUTION\MENUS\ITEM4.BMP +SAMPLES\VFP98\SOLUTION\MENUS\ITEM5.BMP +SAMPLES\VFP98\SOLUTION\MENUS\PREVIEW.BMP +SAMPLES\VFP98\SOLUTION\MENUS\RED.BMP +SAMPLES\VFP98\SOLUTION\MENUS\SHORTCUT.SCT +SAMPLES\VFP98\SOLUTION\MENUS\SHORTCUT.SCX +SAMPLES\VFP98\SOLUTION\MENUS\TOOLMENU.MNT + +SAMPLES\VFP98\SOLUTION\MENUS\TOOLMENU.MNX +SAMPLES\VFP98\SOLUTION\MENUS\TOOLMENU.MPR +SAMPLES\VFP98\SOLUTION\MENUS\TOOLMENU.SCT +SAMPLES\VFP98\SOLUTION\MENUS\TOOLMENU.SCX +SAMPLES\VFP98\SOLUTION\MENUS\WHITE.BMP +SAMPLES\VFP98\SOLUTION\MENUS\WHITE.MSK +SAMPLES\VFP98\SOLUTION\OLE\ACPOWER.BMP +SAMPLES\VFP98\SOLUTION\OLE\BLDTREE.SCT +SAMPLES\VFP98\SOLUTION\OLE\BLDTREE.SCX +SAMPLES\VFP98\SOLUTION\OLE\COMMDLOG.SCT +SAMPLES\VFP98\SOLUTION\OLE\COMMDLOG.SCX +SAMPLES\VFP98\SOLUTION\OLE\FOXRAIN.AVI +SAMPLES\VFP98\SOLUTION\OLE\GRAPH.DBF +SAMPLES\VFP98\SOLUTION\OLE\GRAPH.FPT +SAMPLES\VFP98\SOLUTION\OLE\MMSAMPLE.H +SAMPLES\VFP98\SOLUTION\OLE\MMSAMPLE.SCT +SAMPLES\VFP98\SOLUTION\OLE\MMSAMPLE.SCX +SAMPLES\VFP98\SOLUTION\OLE\OLEAUT1.SCT +SAMPLES\VFP98\SOLUTION\OLE\OLEAUT1.SCX +SAMPLES\VFP98\SOLUTION\OLE\OLEGRAPH.SCT +SAMPLES\VFP98\SOLUTION\OLE\OLEGRAPH.SCX +SAMPLES\VFP98\SOLUTION\OLE\OLEWORD.SCT +SAMPLES\VFP98\SOLUTION\OLE\OLEWORD.SCX +SAMPLES\VFP98\SOLUTION\OLE\OLEXL.SCT +SAMPLES\VFP98\SOLUTION\OLE\OLEXL.SCX +SAMPLES\VFP98\SOLUTION\OLE\OUTLINE.SCT +SAMPLES\VFP98\SOLUTION\OLE\OUTLINE.SCX +SAMPLES\VFP98\SOLUTION\OLE\RMOTVIEW.BMP +SAMPLES\VFP98\SOLUTION\OLE\RTF.DBF +SAMPLES\VFP98\SOLUTION\OLE\RTF.FPT +SAMPLES\VFP98\SOLUTION\OLE\RTF.SCT +SAMPLES\VFP98\SOLUTION\OLE\RTF.SCX +SAMPLES\VFP98\SOLUTION\OLE\SENDMAIL.SCT +SAMPLES\VFP98\SOLUTION\OLE\SENDMAIL.SCX +SAMPLES\VFP98\SOLUTION\OLE\SLIDER.SCT +SAMPLES\VFP98\SOLUTION\OLE\SLIDER.SCX +SAMPLES\VFP98\SOLUTION\OLE\STOCK.SCT +SAMPLES\VFP98\SOLUTION\OLE\STOCK.SCX +SAMPLES\VFP98\SOLUTION\OLE\STOCK1.DBF +SAMPLES\VFP98\SOLUTION\OLE\SYSINFO.H +SAMPLES\VFP98\SOLUTION\OLE\SYSINFO.SCT +SAMPLES\VFP98\SOLUTION\OLE\SYSINFO.SCX +SAMPLES\VFP98\SOLUTION\REPORTS\COLORS.FRT +SAMPLES\VFP98\SOLUTION\REPORTS\COLORS.FRX +SAMPLES\VFP98\SOLUTION\REPORTS\CUST.LBT +SAMPLES\VFP98\SOLUTION\REPORTS\CUST.LBX +SAMPLES\VFP98\SOLUTION\REPORTS\DATEPICK.PRG +SAMPLES\VFP98\SOLUTION\REPORTS\DBCTOFRX.FRT +SAMPLES\VFP98\SOLUTION\REPORTS\DBCTOFRX.FRX +SAMPLES\VFP98\SOLUTION\REPORTS\DBCTOFRX.SCT +SAMPLES\VFP98\SOLUTION\REPORTS\DBCTOFRX.SCX +SAMPLES\VFP98\SOLUTION\REPORTS\INVOICE.FRT +SAMPLES\VFP98\SOLUTION\REPORTS\INVOICE.FRX +SAMPLES\VFP98\SOLUTION\REPORTS\LEDGER.FRT +SAMPLES\VFP98\SOLUTION\REPORTS\LEDGER.FRX +SAMPLES\VFP98\SOLUTION\REPORTS\LOGO.BMP +SAMPLES\VFP98\SOLUTION\REPORTS\ORDGRAPH.FRT +SAMPLES\VFP98\SOLUTION\REPORTS\ORDGRAPH.FRX +SAMPLES\VFP98\SOLUTION\REPORTS\ORDGRAPH.SCT +SAMPLES\VFP98\SOLUTION\REPORTS\ORDGRAPH.SCX +SAMPLES\VFP98\SOLUTION\REPORTS\PERCENT.FRT +SAMPLES\VFP98\SOLUTION\REPORTS\PERCENT.FRX +SAMPLES\VFP98\SOLUTION\REPORTS\PRINT.SCT +SAMPLES\VFP98\SOLUTION\REPORTS\PRINT.SCX +SAMPLES\VFP98\SOLUTION\REPORTS\WRAPPING.FRT +SAMPLES\VFP98\SOLUTION\REPORTS\WRAPPING.FRX +SAMPLES\VFP98\SOLUTION\TAHOE\AA_FUN.SCT +SAMPLES\VFP98\SOLUTION\TAHOE\AA_FUN.SCX +SAMPLES\VFP98\SOLUTION\TAHOE\AA_OUTL.SCT +SAMPLES\VFP98\SOLUTION\TAHOE\AA_OUTL.SCX +SAMPLES\VFP98\SOLUTION\TAHOE\ACC_ASGN.VCT +SAMPLES\VFP98\SOLUTION\TAHOE\ACC_ASGN.VCX +SAMPLES\VFP98\SOLUTION\TAHOE\ACTDOC.PJT +SAMPLES\VFP98\SOLUTION\TAHOE\ACTDOC.PJX +SAMPLES\VFP98\SOLUTION\TAHOE\ACTDOC.SCT +SAMPLES\VFP98\SOLUTION\TAHOE\ACTDOC.SCX +SAMPLES\VFP98\SOLUTION\TAHOE\ACTDOC.VCT +SAMPLES\VFP98\SOLUTION\TAHOE\ACTDOC.VCX +SAMPLES\VFP98\SOLUTION\TAHOE\ACTTRACK.SCT +SAMPLES\VFP98\SOLUTION\TAHOE\ACTTRACK.SCX +SAMPLES\VFP98\SOLUTION\TAHOE\BUTTBLUE.GIF +SAMPLES\VFP98\SOLUTION\TAHOE\BUTTMAGE.GIF +SAMPLES\VFP98\SOLUTION\TAHOE\DRAGMEC.BMP +SAMPLES\VFP98\SOLUTION\TAHOE\LISTDD.SCT +SAMPLES\VFP98\SOLUTION\TAHOE\LISTDD.SCX +SAMPLES\VFP98\SOLUTION\TAHOE\OLEDD.SCT +SAMPLES\VFP98\SOLUTION\TAHOE\OLEDD.SCX +SAMPLES\VFP98\SOLUTION\TAHOE\PROJHOOK.VCT +SAMPLES\VFP98\SOLUTION\TAHOE\PROJHOOK.VCX +SAMPLES\VFP98\SOLUTION\TAHOE\QUERYDD.SCT +SAMPLES\VFP98\SOLUTION\TAHOE\QUERYDD.SCX +SAMPLES\VFP98\SOLUTION\TAHOE\TRACK.PJT +SAMPLES\VFP98\SOLUTION\TAHOE\TRACK.PJX +SAMPLES\VFP98\SOLUTION\TOOLBARS\FORMAT.SCT +SAMPLES\VFP98\SOLUTION\TOOLBARS\FORMAT.SCX +SAMPLES\VFP98\SOLUTION\WINAPI\GETVER.SCT +SAMPLES\VFP98\SOLUTION\WINAPI\GETVER.SCX +SAMPLES\VFP98\SOLUTION\WINAPI\REGFILE.SCT +SAMPLES\VFP98\SOLUTION\WINAPI\REGFILE.SCX +SAMPLES\VFP98\SOLUTION\WINAPI\REGFOX.SCT +SAMPLES\VFP98\SOLUTION\WINAPI\REGFOX.SCX +SAMPLES\VFP98\SOLUTION\WINAPI\REGODBC.SCT +SAMPLES\VFP98\SOLUTION\WINAPI\REGODBC.SCX +SAMPLES\VFP98\SOLUTION\WINAPI\SYSCOLOR.SCT +SAMPLES\VFP98\SOLUTION\WINAPI\SYSCOLOR.SCX +SAMPLES\VFP98\SOLUTION\WINAPI\SYSTIME.SCT +SAMPLES\VFP98\SOLUTION\WINAPI\SYSTIME.SCX +SAMPLES\VFP98\SOLUTION\WINAPI\TYPELIB.SCT +SAMPLES\VFP98\SOLUTION\WINAPI\TYPELIB.SCX +SAMPLES\VFP98\TASTRADE\BITMAPS +SAMPLES\VFP98\TASTRADE\DATA +SAMPLES\VFP98\TASTRADE\FORMS +SAMPLES\VFP98\TASTRADE\HELP +SAMPLES\VFP98\TASTRADE\INCLUDE +SAMPLES\VFP98\TASTRADE\LIBS +SAMPLES\VFP98\TASTRADE\MENUS +SAMPLES\VFP98\TASTRADE\OTHER +SAMPLES\VFP98\TASTRADE\PROGS +SAMPLES\VFP98\TASTRADE\REPORTS +SAMPLES\VFP98\TASTRADE\TASTRADE.APP +SAMPLES\VFP98\TASTRADE\TASTRADE.INI +SAMPLES\VFP98\TASTRADE\TASTRADE.PJT +SAMPLES\VFP98\TASTRADE\TASTRADE.PJX +SAMPLES\VFP98\TASTRADE\BITMAPS\BEVERAGE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\BHIND.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\BHIND_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\BHIND_S.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\BOX.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\BRIDJUST.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\BUCHSTEV.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\CALLLAUR.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\CATGRY.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\CHECKBX.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\CLOSE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\CLOSE.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\COMBO.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\CONDIMEN.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\CONFECTI.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\CUST.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\DAIRYPRO.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\DATAGRID.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\DAVONANC.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\DODSANNE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\EDITBOX.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\EMPLY.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\FORM.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\FORMPG.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\FRSREC_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\FRSREC_S.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\FULLANDR.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\GRAINSCE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\HELLALBE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\HVLINE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\INTELL_B.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\INTELL_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\KINGROBE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LABEL.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LEVEJANE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LFSCROLL.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LIBRARY.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LINE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LISTBOX.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LOCATE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LOCATE.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\LOCK.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LOGINP_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LOGIN_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LSTREC_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\LSTREC_S.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\MARTXAVI.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\MEATPOUL.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\NEW.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\NEW.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\NXTREC_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\NXTREC_S.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\OHIST.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\OLE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\ORDERS.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\PATTCARO.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\PEACMARG.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\PERELAUR.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\POINTER.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\PROD1.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\PRODUCE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\PRVREC_S.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\PRVREC_S.MSK +SAMPLES\VFP98\TASTRADE\BITMAPS\PUSHB.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\RADIOB.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\RTSCROLL.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SAVE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SEAFOOD.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SEP.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SHAPE.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SHPPRS1.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\SMITTIM.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SPINNER.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SPLASH.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\SPPLRS.ICO +SAMPLES\VFP98\TASTRADE\BITMAPS\SUYAMICH.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\TEXTBOX.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\TIMER.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\TOOLBAR.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\TTRADELG.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\TTRADESM.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\UNDO.BMP +SAMPLES\VFP98\TASTRADE\BITMAPS\WIZARD.BMP +SAMPLES\VFP98\TASTRADE\DATA\BEHINDSC.CDX +SAMPLES\VFP98\TASTRADE\DATA\BEHINDSC.DBF +SAMPLES\VFP98\TASTRADE\DATA\BEHINDSC.FPT +SAMPLES\VFP98\TASTRADE\DATA\CATEGORY.CDX +SAMPLES\VFP98\TASTRADE\DATA\CATEGORY.DBF +SAMPLES\VFP98\TASTRADE\DATA\CATEGORY.FPT +SAMPLES\VFP98\TASTRADE\DATA\CUSTOMER.CDX +SAMPLES\VFP98\TASTRADE\DATA\CUSTOMER.DBF +SAMPLES\VFP98\TASTRADE\DATA\EMPLOYEE.CDX +SAMPLES\VFP98\TASTRADE\DATA\EMPLOYEE.DBF +SAMPLES\VFP98\TASTRADE\DATA\EMPLOYEE.FPT +SAMPLES\VFP98\TASTRADE\DATA\ORDERS.CDX +SAMPLES\VFP98\TASTRADE\DATA\ORDERS.DBF +SAMPLES\VFP98\TASTRADE\DATA\ORDERS.FPT +SAMPLES\VFP98\TASTRADE\DATA\ORDITEMS.CDX +SAMPLES\VFP98\TASTRADE\DATA\ORDITEMS.DBF +SAMPLES\VFP98\TASTRADE\DATA\PRODUCTS.CDX +SAMPLES\VFP98\TASTRADE\DATA\PRODUCTS.DBF +SAMPLES\VFP98\TASTRADE\DATA\REPOLIST.CDX +SAMPLES\VFP98\TASTRADE\DATA\REPOLIST.DBF +SAMPLES\VFP98\TASTRADE\DATA\SETUP.CDX +SAMPLES\VFP98\TASTRADE\DATA\SETUP.DBF +SAMPLES\VFP98\TASTRADE\DATA\SHIPPERS.CDX +SAMPLES\VFP98\TASTRADE\DATA\SHIPPERS.DBF +SAMPLES\VFP98\TASTRADE\DATA\SUPPLIER.CDX +SAMPLES\VFP98\TASTRADE\DATA\SUPPLIER.DBF +SAMPLES\VFP98\TASTRADE\DATA\TASTRADE.DBC +SAMPLES\VFP98\TASTRADE\DATA\TASTRADE.DCT +SAMPLES\VFP98\TASTRADE\DATA\TASTRADE.DCX +SAMPLES\VFP98\TASTRADE\DATA\USER_LEV.CDX +SAMPLES\VFP98\TASTRADE\DATA\USER_LEV.DBF +SAMPLES\VFP98\TASTRADE\DATA\USER_LEV.FPT +SAMPLES\VFP98\TASTRADE\FORMS\BEHINDSC.SCT +SAMPLES\VFP98\TASTRADE\FORMS\BEHINDSC.SCX +SAMPLES\VFP98\TASTRADE\FORMS\CASESTDY.SCT +SAMPLES\VFP98\TASTRADE\FORMS\CASESTDY.SCX +SAMPLES\VFP98\TASTRADE\FORMS\CATEGORY.SCT +SAMPLES\VFP98\TASTRADE\FORMS\CATEGORY.SCX +SAMPLES\VFP98\TASTRADE\FORMS\CHNGPSWD.SCT +SAMPLES\VFP98\TASTRADE\FORMS\CHNGPSWD.SCX +SAMPLES\VFP98\TASTRADE\FORMS\CUSTADD.SCT +SAMPLES\VFP98\TASTRADE\FORMS\CUSTADD.SCX +SAMPLES\VFP98\TASTRADE\FORMS\CUSTOMER.SCT +SAMPLES\VFP98\TASTRADE\FORMS\CUSTOMER.SCX +SAMPLES\VFP98\TASTRADE\FORMS\EMPLOYEE.SCT +SAMPLES\VFP98\TASTRADE\FORMS\EMPLOYEE.SCX +SAMPLES\VFP98\TASTRADE\FORMS\GETINV.SCT +SAMPLES\VFP98\TASTRADE\FORMS\GETINV.SCX +SAMPLES\VFP98\TASTRADE\FORMS\GETTITLE.SCT +SAMPLES\VFP98\TASTRADE\FORMS\GETTITLE.SCX +SAMPLES\VFP98\TASTRADE\FORMS\ORDENTRY.SCT +SAMPLES\VFP98\TASTRADE\FORMS\ORDENTRY.SCX +SAMPLES\VFP98\TASTRADE\FORMS\ORDHIST.SCT +SAMPLES\VFP98\TASTRADE\FORMS\ORDHIST.SCX +SAMPLES\VFP98\TASTRADE\FORMS\PRODUCT.SCT +SAMPLES\VFP98\TASTRADE\FORMS\PRODUCT.SCX +SAMPLES\VFP98\TASTRADE\FORMS\REBUILD.SCT +SAMPLES\VFP98\TASTRADE\FORMS\REBUILD.SCX +SAMPLES\VFP98\TASTRADE\FORMS\REPORTS.SCT +SAMPLES\VFP98\TASTRADE\FORMS\REPORTS.SCX +SAMPLES\VFP98\TASTRADE\FORMS\SHIPPER.SCT +SAMPLES\VFP98\TASTRADE\FORMS\SHIPPER.SCX +SAMPLES\VFP98\TASTRADE\FORMS\SUPPLIER.SCT +SAMPLES\VFP98\TASTRADE\FORMS\SUPPLIER.SCX +SAMPLES\VFP98\TASTRADE\FORMS\VIEWCODE.SCT +SAMPLES\VFP98\TASTRADE\FORMS\VIEWCODE.SCX +SAMPLES\VFP98\TASTRADE\HELP\TTRADE.BMP +SAMPLES\VFP98\TASTRADE\HELP\TTRADE.DBF +SAMPLES\VFP98\TASTRADE\HELP\TTRADE.FPT +SAMPLES\VFP98\TASTRADE\INCLUDE\STRINGS.H +SAMPLES\VFP98\TASTRADE\INCLUDE\TASTRADE.H +SAMPLES\VFP98\TASTRADE\LIBS\ABOUT.VCT +SAMPLES\VFP98\TASTRADE\LIBS\ABOUT.VCX +SAMPLES\VFP98\TASTRADE\LIBS\LOGIN.VCT +SAMPLES\VFP98\TASTRADE\LIBS\LOGIN.VCX +SAMPLES\VFP98\TASTRADE\LIBS\MAIN.VCT +SAMPLES\VFP98\TASTRADE\LIBS\MAIN.VCX +SAMPLES\VFP98\TASTRADE\LIBS\ORDERS.VCT +SAMPLES\VFP98\TASTRADE\LIBS\ORDERS.VCX +SAMPLES\VFP98\TASTRADE\LIBS\TSBASE.VCT +SAMPLES\VFP98\TASTRADE\LIBS\TSBASE.VCX +SAMPLES\VFP98\TASTRADE\LIBS\TSGEN.VCT +SAMPLES\VFP98\TASTRADE\LIBS\TSGEN.VCX +SAMPLES\VFP98\TASTRADE\MENUS\INTRO.MNT +SAMPLES\VFP98\TASTRADE\MENUS\INTRO.MNX +SAMPLES\VFP98\TASTRADE\MENUS\INTRO.MPR +SAMPLES\VFP98\TASTRADE\MENUS\MAIN.MNT +SAMPLES\VFP98\TASTRADE\MENUS\MAIN.MNX +SAMPLES\VFP98\TASTRADE\MENUS\MAIN.MPR +SAMPLES\VFP98\TASTRADE\MENUS\NAVIGATE.MNT +SAMPLES\VFP98\TASTRADE\MENUS\NAVIGATE.MNX +SAMPLES\VFP98\TASTRADE\MENUS\ORDENTRY.MNT +SAMPLES\VFP98\TASTRADE\MENUS\ORDENTRY.MNX +SAMPLES\VFP98\TASTRADE\MENUS\ORDENTRY.MPR +SAMPLES\VFP98\TASTRADE\MENUS\WINDOW.MNT +SAMPLES\VFP98\TASTRADE\MENUS\WINDOW.MNX +SAMPLES\VFP98\TASTRADE\OTHER\NOTES.TXT +SAMPLES\VFP98\TASTRADE\PROGS\MAIN.PRG +SAMPLES\VFP98\TASTRADE\PROGS\UTILITY.PRG +SAMPLES\VFP98\TASTRADE\REPORTS\BEHINDSC.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\BEHINDSC.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\CASESTDY.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\CASESTDY.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\DBCTOFRX.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\DBCTOFRX.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\DBCTOFRX.SCT +SAMPLES\VFP98\TASTRADE\REPORTS\DBCTOFRX.SCX +SAMPLES\VFP98\TASTRADE\REPORTS\LISTCAT.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\LISTCAT.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\LISTCUST.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\LISTCUST.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\LISTEMPL.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\LISTEMPL.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\LISTPROD.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\LISTPROD.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\LISTSHIP.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\LISTSHIP.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\LISTSUPP.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\LISTSUPP.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\ORDERS.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\ORDERS.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\SALESDET.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\SALESDET.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\SALESSUM.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\SALESSUM.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\TOPCUST.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\TOPCUST.FRX +SAMPLES\VFP98\TASTRADE\REPORTS\VIEWCODE.FRT +SAMPLES\VFP98\TASTRADE\REPORTS\VIEWCODE.FRX +SAMPLES\VID98\CONTENT +SAMPLES\VID98\DATABASE +SAMPLES\VID98\GALLERY.INF +SAMPLES\VID98\CONTENT\APPLET +SAMPLES\VID98\CONTENT\APPLETA.HTM +SAMPLES\VID98\CONTENT\APPLETB.HTM +SAMPLES\VID98\CONTENT\CODE.ASP +SAMPLES\VID98\CONTENT\CONTROLA.HTM +SAMPLES\VID98\CONTENT\CONTROLB.HTM +SAMPLES\VID98\CONTENT\CONTROLS +SAMPLES\VID98\CONTENT\COUNTER +SAMPLES\VID98\CONTENT\COUNTERA.HTM +SAMPLES\VID98\CONTENT\COUNTERB.HTM +SAMPLES\VID98\CONTENT\DEFAULT.HTM +SAMPLES\VID98\CONTENT\DENTRY +SAMPLES\VID98\CONTENT\DENTRYA.HTM +SAMPLES\VID98\CONTENT\DENTRYB.HTM +SAMPLES\VID98\CONTENT\GLOBAL.ASA +SAMPLES\VID98\CONTENT\GRID +SAMPLES\VID98\CONTENT\GRIDA.HTM +SAMPLES\VID98\CONTENT\GRIDB.HTM +SAMPLES\VID98\CONTENT\GUESTBK +SAMPLES\VID98\CONTENT\GUESTBKA.HTM +SAMPLES\VID98\CONTENT\GUESTBKB.HTM +SAMPLES\VID98\CONTENT\IE4 +SAMPLES\VID98\CONTENT\IE4A.HTM +SAMPLES\VID98\CONTENT\IE4B.HTM +SAMPLES\VID98\CONTENT\IMAGES +SAMPLES\VID98\CONTENT\LEGEND.ASP +SAMPLES\VID98\CONTENT\MMEDIA +SAMPLES\VID98\CONTENT\MMEDIAA.HTM +SAMPLES\VID98\CONTENT\MMEDIAB.HTM +SAMPLES\VID98\CONTENT\PREFA.HTM +SAMPLES\VID98\CONTENT\PREFB.HTM +SAMPLES\VID98\CONTENT\PREFER +SAMPLES\VID98\CONTENT\QUERY +SAMPLES\VID98\CONTENT\QUERYA.HTM +SAMPLES\VID98\CONTENT\QUERYB.HTM +SAMPLES\VID98\CONTENT\QUOTE +SAMPLES\VID98\CONTENT\QUOTEA.HTM +SAMPLES\VID98\CONTENT\QUOTEB.HTM +SAMPLES\VID98\CONTENT\RANDADA.HTM +SAMPLES\VID98\CONTENT\RANDADB.HTM +SAMPLES\VID98\CONTENT\RANDOMAD +SAMPLES\VID98\CONTENT\SAMPHDR.ASP +SAMPLES\VID98\CONTENT\SAMPINTR.HTM +SAMPLES\VID98\CONTENT\SAMPLE.ASP +SAMPLES\VID98\CONTENT\SAMPTOC.HTM +SAMPLES\VID98\CONTENT\SHOPCART +SAMPLES\VID98\CONTENT\SHOPCRTA.HTM +SAMPLES\VID98\CONTENT\SHOPCRTB.HTM +SAMPLES\VID98\CONTENT\SURVEY +SAMPLES\VID98\CONTENT\SURVEYA.HTM +SAMPLES\VID98\CONTENT\SURVEYB.HTM +SAMPLES\VID98\CONTENT\THEMEA.HTM +SAMPLES\VID98\CONTENT\THEMEB.HTM +SAMPLES\VID98\CONTENT\THEMES +SAMPLES\VID98\CONTENT\TIMELINE +SAMPLES\VID98\CONTENT\TIMELNA.HTM +SAMPLES\VID98\CONTENT\TIMELNB.HTM +SAMPLES\VID98\CONTENT\USERNOTE +SAMPLES\VID98\CONTENT\USERNTA.HTM +SAMPLES\VID98\CONTENT\USERNTB.HTM +SAMPLES\VID98\CONTENT\VIEWSRC.ASP +SAMPLES\VID98\CONTENT\APPLET\APPLET.ASP +SAMPLES\VID98\CONTENT\APPLET\APPLETS +SAMPLES\VID98\CONTENT\APPLET\SOURCE +SAMPLES\VID98\CONTENT\APPLET\APPLETS\DBLBUFF.CLS +SAMPLES\VID98\CONTENT\APPLET\APPLETS\HEADLINE.CLS +SAMPLES\VID98\CONTENT\APPLET\APPLETS\TEXTJUMP.CLS +SAMPLES\VID98\CONTENT\APPLET\SOURCE\DBLBUFF.JAV +SAMPLES\VID98\CONTENT\APPLET\SOURCE\HEADLINE.DSP +SAMPLES\VID98\CONTENT\APPLET\SOURCE\HEADLINE.DSW +SAMPLES\VID98\CONTENT\APPLET\SOURCE\HEADLINE.HTM +SAMPLES\VID98\CONTENT\APPLET\SOURCE\HEADLINE.JAV +SAMPLES\VID98\CONTENT\APPLET\SOURCE\HEADLINE.NCB +SAMPLES\VID98\CONTENT\APPLET\SOURCE\HEADLINE.OPT +SAMPLES\VID98\CONTENT\APPLET\SOURCE\HEADLINE.PLG +SAMPLES\VID98\CONTENT\APPLET\SOURCE\TEXTJUMP.JAV +SAMPLES\VID98\CONTENT\CONTROLS\DTCTEST.ASP +SAMPLES\VID98\CONTENT\CONTROLS\DTCTEST.HTM +SAMPLES\VID98\CONTENT\COUNTER\COUNTER.ASP +SAMPLES\VID98\CONTENT\DENTRY\ENTRY.ASP +SAMPLES\VID98\CONTENT\GRID\GRID.ASP +SAMPLES\VID98\CONTENT\GUESTBK\GUESTBK.ASP +SAMPLES\VID98\CONTENT\IE4\FILTER.HTM +SAMPLES\VID98\CONTENT\IE4\IE4.ASP +SAMPLES\VID98\CONTENT\IE4\IE4.HTM +SAMPLES\VID98\CONTENT\IE4\MAIN.HTM +SAMPLES\VID98\CONTENT\IE4\TRANS.HTM +SAMPLES\VID98\CONTENT\IMAGES\BANNER1.GIF +SAMPLES\VID98\CONTENT\IMAGES\BANNER2.GIF +SAMPLES\VID98\CONTENT\IMAGES\BANNER3.GIF +SAMPLES\VID98\CONTENT\IMAGES\BANNER4.GIF +SAMPLES\VID98\CONTENT\IMAGES\CLDTILE.JPG +SAMPLES\VID98\CONTENT\IMAGES\CLOUDS.JPG +SAMPLES\VID98\CONTENT\IMAGES\DSS.GIF +SAMPLES\VID98\CONTENT\IMAGES\GLOBE.GIF +SAMPLES\VID98\CONTENT\MMEDIA\CLOCK.AVI +SAMPLES\VID98\CONTENT\MMEDIA\GLOBE.AVI +SAMPLES\VID98\CONTENT\MMEDIA\MMEDIA.HTM +SAMPLES\VID98\CONTENT\MMEDIA\UTOPIA.WAV +SAMPLES\VID98\CONTENT\PREFER\PREFER.ASP +SAMPLES\VID98\CONTENT\QUERY\QUERY.ASP +SAMPLES\VID98\CONTENT\QUOTE\QUOTE.ASP +SAMPLES\VID98\CONTENT\RANDOMAD\ADREDIR.ASP +SAMPLES\VID98\CONTENT\RANDOMAD\RANDOMAD.ASP +SAMPLES\VID98\CONTENT\RANDOMAD\RANDOMAD.TXT +SAMPLES\VID98\CONTENT\SHOPCART\ADDCART.ASP +SAMPLES\VID98\CONTENT\SHOPCART\PRODUCTS.ASP +SAMPLES\VID98\CONTENT\SHOPCART\SAVORDER.ASP +SAMPLES\VID98\CONTENT\SHOPCART\SCCLEAR.ASP +SAMPLES\VID98\CONTENT\SHOPCART\SCDELETE.ASP +SAMPLES\VID98\CONTENT\SHOPCART\SCMAIN.HTM +SAMPLES\VID98\CONTENT\SHOPCART\SCMENU.HTM +SAMPLES\VID98\CONTENT\SHOPCART\SCUPDATE.ASP +SAMPLES\VID98\CONTENT\SHOPCART\SHOPCART.HTM +SAMPLES\VID98\CONTENT\SHOPCART\VIEWCART.ASP +SAMPLES\VID98\CONTENT\SURVEY\SURVEY.ASP +SAMPLES\VID98\CONTENT\THEMES\NATURE +SAMPLES\VID98\CONTENT\THEMES\NOTHEME.HTM +SAMPLES\VID98\CONTENT\THEMES\THEME1.HTM +SAMPLES\VID98\CONTENT\THEMES\THEME2.HTM +SAMPLES\VID98\CONTENT\THEMES\THEMEHDR.HTM +SAMPLES\VID98\CONTENT\THEMES\THEMES.HTM +SAMPLES\VID98\CONTENT\THEMES\TRAVEL +SAMPLES\VID98\CONTENT\THEMES\NATURE\ANABNR2.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\ANABULL1.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\ANABULL2.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\ANABULL3.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\ANARULE.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\COLOR0.CSS +SAMPLES\VID98\CONTENT\THEMES\NATURE\COLOR1.CSS +SAMPLES\VID98\CONTENT\THEMES\NATURE\CUSTOM.CSS +SAMPLES\VID98\CONTENT\THEMES\NATURE\GRAPH0.CSS +SAMPLES\VID98\CONTENT\THEMES\NATURE\GRAPH1.CSS +SAMPLES\VID98\CONTENT\THEMES\NATURE\NABKGND.JPG +SAMPLES\VID98\CONTENT\THEMES\NATURE\NABNR.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NABULL1.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NABULL2.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NABULL3.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAGLB.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAHBH.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAHBP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAHBS.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAHOME.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAHOMEH.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAHOMEP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAHOMES.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NANEXT.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NANEXTH.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NANEXTP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NANEXTS.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPHB.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPHBP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPREV.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPREVH.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPREVP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPREVS.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPVB.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAPVBP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NARULE.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NATURE.INF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NATURE.UTF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAUP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAUPH.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAUPP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAUPS.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAVBH.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAVBP.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\NAVBS.GIF +SAMPLES\VID98\CONTENT\THEMES\NATURE\THEME.CSS +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\COLOR0.CSS +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\COLOR1.CSS +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\CUSTOM.CSS +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\GRAPH0.CSS +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\GRAPH1.CSS +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\THEME.CSS +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABACHA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABACNA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABACND.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABACSA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABANNA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABANND.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABUL1A.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABUL1D.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABUL2A.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABUL2D.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABUL3A.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRABUL3D.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAHOMHA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAHOMNA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAHOMND.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAHOMSA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAHSEPA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAHSEPD.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANAVGL.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANEXHA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANEXNA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANEXND.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANEXSA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVHHA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVHNA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVHND.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVHSA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVHSD.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVVHA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVVNA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVVND.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVVSA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRANVVSD.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRATILEA.JPG +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAUPBHA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAUPBNA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAUPBND.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAUPBSA.GIF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAVEL.INF +SAMPLES\VID98\CONTENT\THEMES\TRAVEL\TRAVEL.UTF +SAMPLES\VID98\CONTENT\TIMELINE\FISHLEFT.GIF +SAMPLES\VID98\CONTENT\TIMELINE\FISHRGHT.GIF +SAMPLES\VID98\CONTENT\TIMELINE\TLFISH.HTM +SAMPLES\VID98\CONTENT\USERNOTE\DELNOTE.ASP +SAMPLES\VID98\CONTENT\USERNOTE\SENDNOTE.ASP +SAMPLES\VID98\CONTENT\USERNOTE\USERNOTE.ASP +SAMPLES\VID98\DATABASE\GALLERY.MDB +SAMPLES\VJ98\VJ6SAMPL.EXE +SAMPLES\VM\VMADO +SAMPLES\VM\VMENROLL +SAMPLES\VM\VMMTS +SAMPLES\VM\VMORDER +SAMPLES\VM\VMRDO +SAMPLES\VM\VMADO\ADO.MDL +SAMPLES\VM\VMENROLL\ADDFORM.CPP +SAMPLES\VM\VMENROLL\ADDFORM.H +SAMPLES\VM\VMENROLL\COURSSET.CPP +SAMPLES\VM\VMENROLL\COURSSET.H +SAMPLES\VM\VMENROLL\CRSFORM.CPP +SAMPLES\VM\VMENROLL\CRSFORM.H +SAMPLES\VM\VMENROLL\ECOURSE.H +SAMPLES\VM\VMENROLL\ENROLDOC.CPP +SAMPLES\VM\VMENROLL\ENROLDOC.H +SAMPLES\VM\VMENROLL\ENROLL.APS +SAMPLES\VM\VMENROLL\ENROLL.CLW +SAMPLES\VM\VMENROLL\ENROLL.CPP +SAMPLES\VM\VMENROLL\ENROLL.DSP +SAMPLES\VM\VMENROLL\ENROLL.DSW +SAMPLES\VM\VMENROLL\ENROLL.H +SAMPLES\VM\VMENROLL\ENROLL.ICO +SAMPLES\VM\VMENROLL\ENROLL.MAK +SAMPLES\VM\VMENROLL\ENROLL.MDL +SAMPLES\VM\VMENROLL\ENROLL.OPT +SAMPLES\VM\VMENROLL\ENROLL.RC +SAMPLES\VM\VMENROLL\ENROLL.RC2 +SAMPLES\VM\VMENROLL\ESECTION.H +SAMPLES\VM\VMENROLL\MAINFRM.CPP +SAMPLES\VM\VMENROLL\MAINFRM.H +SAMPLES\VM\VMENROLL\README.TXT +SAMPLES\VM\VMENROLL\RESOURCE.H +SAMPLES\VM\VMENROLL\SECTFORM.CPP +SAMPLES\VM\VMENROLL\SECTFORM.H +SAMPLES\VM\VMENROLL\SECTSET.CPP +SAMPLES\VM\VMENROLL\SECTSET.H +SAMPLES\VM\VMENROLL\STDAFX.CPP +SAMPLES\VM\VMENROLL\STDAFX.H +SAMPLES\VM\VMENROLL\STDREG98.MDB +SAMPLES\VM\VMENROLL\TOOLBAR.BMP +SAMPLES\VM\VMMTS\MTXAS.MDL +SAMPLES\VM\VMORDER\ARTICLE.CLS +SAMPLES\VM\VMORDER\ARTICLES.CLS +SAMPLES\VM\VMORDER\CUSTMERS.CLS +SAMPLES\VM\VMORDER\CUSTOMER.CLS +SAMPLES\VM\VMORDER\DB.BAS +SAMPLES\VM\VMORDER\DLG_ORDE.FRM +SAMPLES\VM\VMORDER\DLG_ORDE.FRX +SAMPLES\VM\VMORDER\DLG_ORDR.FRM +SAMPLES\VM\VMORDER\FISH.ICO +SAMPLES\VM\VMORDER\MNGORDER.DOC +SAMPLES\VM\VMORDER\ORDER.CLS +SAMPLES\VM\VMORDER\ORDERROW.CLS +SAMPLES\VM\VMORDER\ORDERSYS.LDB +SAMPLES\VM\VMORDER\ORDERSYS.MDB +SAMPLES\VM\VMORDER\ORDERSYS.MDL +SAMPLES\VM\VMORDER\ORDERSYS.VBP +SAMPLES\VM\VMORDER\ORDRSYSM.BAS +SAMPLES\VM\VMORDER\PRSSTNCE.CLS +SAMPLES\VM\VMRDO\RDO.MDL +SAMPLES\VS98\README.HTM +SAMPLES\VS98\SAMPLEA +SAMPLES\VS98\SAMPLEC +SAMPLES\VS98\SAMPLEA\READMEA.HTM +SAMPLES\VS98\SAMPLEA\REMPACKA.EXE +SAMPLES\VS98\SAMPLEA\SETUPA.EXE +SAMPLES\VS98\SAMPLEC\CLIENT.EXE +SAMPLES\VS98\SAMPLEC\DATABASE.EXE +SAMPLES\VS98\SAMPLEC\READMEC.HTM +SAMPLES\VS98\SAMPLEC\REMPACKC.EXE +SAMPLES\VS98\SAMPLEC\SERVER.EXE +SAMPLES\VS98\SAMPLEC\SOURCE.EXE +\MSDASDK\samples\acw\OLEDBLst +\MSDASDK\samples\acw\OLEDBLst\dispids.h +\MSDASDK\samples\acw\OLEDBLst\guids.cpp +\MSDASDK\samples\acw\OLEDBLst\guids.h +\MSDASDK\samples\acw\OLEDBLst\localobj.h +\MSDASDK\samples\acw\OLEDBLst\OLEDBList.bmp +\MSDASDK\samples\acw\OLEDBLst\OLEDBList.cpp +\MSDASDK\samples\acw\OLEDBLst\OLEDBList.def +\MSDASDK\samples\acw\OLEDBLst\OLEDBList.dsp +\MSDASDK\samples\acw\OLEDBLst\OLEDBList.ico +\MSDASDK\samples\acw\OLEDBLst\OLEDBList.odl +\MSDASDK\samples\acw\OLEDBLst\OLEDBList.rc +\MSDASDK\samples\acw\OLEDBLst\OLEDBListCtl.cpp +\MSDASDK\samples\acw\OLEDBLst\OLEDBListCtl.h +\MSDASDK\samples\acw\OLEDBLst\OLEDBListPPG.cpp +\MSDASDK\samples\acw\OLEDBLst\OLEDBListPPG.h +\MSDASDK\samples\acw\OLEDBLst\resource.h +\MSDASDK\samples\acw\OLEDBLst\resrc.h +\MSDASDK\samples\acw\OLEDBLst\resrc.rc +\MSDASDK\samples\acw\SimpText\dispids.h +\MSDASDK\samples\acw\SimpText\guids.cpp +\MSDASDK\samples\acw\SimpText\guids.h +\MSDASDK\samples\acw\SimpText\localobj.h +\MSDASDK\samples\acw\SimpText\resource.h +\MSDASDK\samples\acw\SimpText\resrc.h +\MSDASDK\samples\acw\SimpText\resrc.rc +\MSDASDK\samples\acw\SimpText\SimpText.bmp +\MSDASDK\samples\acw\SimpText\SimpText.cpp +\MSDASDK\samples\acw\SimpText\SimpText.def +\MSDASDK\samples\acw\SimpText\SimpText.dsp +\MSDASDK\samples\acw\SimpText\SimpText.ico +\MSDASDK\samples\acw\SimpText\SimpText.odl +\MSDASDK\samples\acw\SimpText\SimpText.rc +\MSDASDK\samples\acw\SimpText\SimpTextCtl.cpp +\MSDASDK\samples\acw\SimpText\SimpTextCtl.h +\MSDASDK\samples\acw\SimpText\SimpTextPPG.cpp +\MSDASDK\samples\acw\SimpText\SimpTextPPG.h +\MSDASDK\samples\acw\VBSample\Form1.frm +\MSDASDK\samples\acw\VBSample\Form1.frx +\MSDASDK\samples\acw\VBSample\Project1.vbp +\MSDASDK\samples\ado\asp\ADOASP.TXT +\MSDASDK\samples\ado\asp\cldshalf.jpg +\MSDASDK\samples\ado\asp\cmpprice.asp +\MSDASDK\samples\ado\asp\cmpsales.asp +\MSDASDK\samples\ado\asp\cmpsales.mdb +\MSDASDK\samples\ado\asp\ie_anim.gif +\MSDASDK\samples\ado\isapi\ADOISAPI.CPP +\MSDASDK\samples\ado\isapi\ADOISAPI.DEF +\MSDASDK\samples\ado\isapi\ADOISAPI.HTM +\MSDASDK\samples\ado\isapi\ADOISAPI.MAK +\MSDASDK\samples\ado\isapi\adoisapi.rc +\MSDASDK\samples\ado\isapi\ADOISAPI.TXT +\MSDASDK\samples\ado\java\ado_recordset.java +\MSDASDK\samples\ado\java\ADOJAVA.TXT +\MSDASDK\samples\ado\java\adosample.mak +\MSDASDK\samples\ado\java\simpleado.html +\MSDASDK\samples\ado\java\simpleado.java +\MSDASDK\samples\ado\java\simpleadoframe.java +\MSDASDK\samples\ado\vbs\ADOVBS.ASP +\MSDASDK\samples\ado\vbs\adovbs.htm +\MSDASDK\samples\ado\vbs\ADOVBS.TXT +\MSDASDK\samples\ado\vbs\cldshalf.jpg +\MSDASDK\samples\ado\vbs\ie_anim.gif +\MSDASDK\samples\mdac\DBSetup.exe +\MSDASDK\samples\mdac\MDACSAMP.HTM +\MSDASDK\samples\mdac\WebSetup.exe +\MSDASDK\samples\odbc\admin\ADEMO.BAT +\MSDASDK\samples\odbc\admin\ADEMO.MAK +\MSDASDK\samples\odbc\admin\ADMNDEMO.C +\MSDASDK\samples\odbc\admin\ADMNDEMO.DEF +\MSDASDK\samples\odbc\admin\ADMNDEMO.DLG +\MSDASDK\samples\odbc\admin\ADMNDEMO.H +\MSDASDK\samples\odbc\admin\ADMNDEMO.ICO +\MSDASDK\samples\odbc\admin\ADMNDEMO.RC +\MSDASDK\samples\odbc\admin\CHILD.H +\MSDASDK\samples\odbc\admin\CONNECT.ICO +\MSDASDK\samples\odbc\admin\DIALOGS.C +\MSDASDK\samples\odbc\admin\DIALOGS.H +\MSDASDK\samples\odbc\admin\ERRCHECK.C +\MSDASDK\samples\odbc\admin\ERRCHECK.H +\MSDASDK\samples\odbc\admin\EXECUTE.C +\MSDASDK\samples\odbc\admin\EXECUTE.H +\MSDASDK\samples\odbc\admin\INFO.C +\MSDASDK\samples\odbc\admin\INFO.H +\MSDASDK\samples\odbc\admin\INI.C +\MSDASDK\samples\odbc\admin\INI.H +\MSDASDK\samples\odbc\admin\MENU.C +\MSDASDK\samples\odbc\admin\MENU.H +\MSDASDK\samples\odbc\admin\RESULTS.C +\MSDASDK\samples\odbc\admin\RESULTS.H +\MSDASDK\samples\odbc\admin\RESULTS.ICO +\MSDASDK\samples\odbc\admin\STANDARD.C +\MSDASDK\samples\odbc\admin\STANDARD.H +\MSDASDK\samples\odbc\admin\STRINGS.H +\MSDASDK\samples\odbc\convdsn\CDSNBLD.BAT +\MSDASDK\samples\odbc\convdsn\CDSNBLD.MAK +\MSDASDK\samples\odbc\convdsn\CONVDSN.C +\MSDASDK\samples\odbc\cursor\CHILD.C +\MSDASDK\samples\odbc\cursor\CHILD.ICO +\MSDASDK\samples\odbc\cursor\CRSRDEMO.BAT +\MSDASDK\samples\odbc\cursor\CRSRDEMO.C +\MSDASDK\samples\odbc\cursor\CRSRDEMO.DEF +\MSDASDK\samples\odbc\cursor\CRSRDEMO.H +\MSDASDK\samples\odbc\cursor\CRSRDEMO.ICO +\MSDASDK\samples\odbc\cursor\CRSRDEMO.MAK +\MSDASDK\samples\odbc\cursor\CRSRDEMO.RC +\MSDASDK\samples\odbc\cursor\DIALOGS.C +\MSDASDK\samples\odbc\cursor\FRAME.C +\MSDASDK\samples\odbc\cursor\HEADERS.C +\MSDASDK\samples\odbc\cursor\HEADERS.H +\MSDASDK\samples\odbc\cursor\RESOURCE.H +\MSDASDK\samples\odbc\query\MAIN.C +\MSDASDK\samples\odbc\query\NEWQUERY.BMP +\MSDASDK\samples\odbc\query\QUERY.C +\MSDASDK\samples\odbc\query\QUERYWDW.ICO +\MSDASDK\samples\odbc\query\QURYBLD.BAT +\MSDASDK\samples\odbc\query\QURYDEMO.DEF +\MSDASDK\samples\odbc\query\QURYDEMO.H +\MSDASDK\samples\odbc\query\QURYDEMO.ICO +\MSDASDK\samples\odbc\query\QURYDEMO.RC +\MSDASDK\samples\odbc\query\QURYMAK.MAK +\MSDASDK\samples\odbc\query\RUNQUERY.BMP +\MSDASDK\samples\odbc\quiktest\AUTOTEST.H +\MSDASDK\samples\odbc\quiktest\CUSTOM.C +\MSDASDK\samples\odbc\quiktest\CUSTOM.H +\MSDASDK\samples\odbc\quiktest\CUSTOM.RC +\MSDASDK\samples\odbc\quiktest\DLLSTUB.C +\MSDASDK\samples\odbc\quiktest\QTBUILD.BAT +\MSDASDK\samples\odbc\quiktest\QTMAKE.MAK +\MSDASDK\samples\odbc\quiktest\QUIKTEST.C +\MSDASDK\samples\odbc\quiktest\QUIKTEST.H +\MSDASDK\samples\odbc\setup\BUILD.BAT +\MSDASDK\samples\odbc\setup\INSTALL.C +\MSDASDK\samples\odbc\setup\INSTALL.H +\MSDASDK\samples\odbc\setup\MAKEFILE +\MSDASDK\samples\odbc\smpldrv\BUILD.BAT +\MSDASDK\samples\odbc\smpldrv\CONFDSN.C +\MSDASDK\samples\odbc\smpldrv\MAKEFILE +\MSDASDK\samples\odbc\smpldrv\SMPLDRV.C +\MSDASDK\samples\odbc\smpldrv\SMPLDRV.RC +\MSDASDK\samples\odbc\trace\BUILD.BAT +\MSDASDK\samples\odbc\trace\DLGDFTS.H +\MSDASDK\samples\odbc\trace\DOTRACE.C +\MSDASDK\samples\odbc\trace\GETTRACE.C +\MSDASDK\samples\odbc\trace\HEADERS.C +\MSDASDK\samples\odbc\trace\HEADERS.H +\MSDASDK\samples\odbc\trace\TRACE.H +\MSDASDK\samples\odbc\trace\TRACE.MAK +\MSDASDK\samples\odbc\trace\TRACECON.H +\MSDASDK\samples\odbc\trace\TRC_READ.TXT +\MSDASDK\samples\oledb\olap\data\BobsVid.cub +\MSDASDK\samples\oledb\olap\dtstvwr\CDataset.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\CDataset.h +\MSDASDK\samples\oledb\olap\dtstvwr\cdialog.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\cdialog.h +\MSDASDK\samples\oledb\olap\dtstvwr\cenum.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\cenum.h +\MSDASDK\samples\oledb\olap\dtstvwr\common.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\common.h +\MSDASDK\samples\oledb\olap\dtstvwr\crowset.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\crowset.h +\MSDASDK\samples\oledb\olap\dtstvwr\datasrc.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\datasrc.h +\MSDASDK\samples\oledb\olap\dtstvwr\DtstVwr.dsp +\MSDASDK\samples\oledb\olap\dtstvwr\DtstVwr.exe +\MSDASDK\samples\oledb\olap\dtstvwr\DtstVwr.RC +\MSDASDK\samples\oledb\olap\dtstvwr\DtstVwr.rc2 +\MSDASDK\samples\oledb\olap\dtstvwr\error.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\error.h +\MSDASDK\samples\oledb\olap\dtstvwr\list.h +\MSDASDK\samples\oledb\olap\dtstvwr\main.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\main.h +\MSDASDK\samples\oledb\olap\dtstvwr\property.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\property.h +\MSDASDK\samples\oledb\olap\dtstvwr\res +\MSDASDK\samples\oledb\olap\dtstvwr\res\after.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\before.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\change.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\check.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\column.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\Dataset.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\delete.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\insert.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\menu.bmp +\MSDASDK\samples\oledb\olap\dtstvwr\res\normal.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\readonly.bmp +\MSDASDK\samples\oledb\olap\dtstvwr\res\readonly.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\row.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\stop.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\table.ico +\MSDASDK\samples\oledb\olap\dtstvwr\res\toolbar.bmp +\MSDASDK\samples\oledb\olap\dtstvwr\res\uncheck.ico +\MSDASDK\samples\oledb\olap\dtstvwr\resource.h +\MSDASDK\samples\oledb\olap\dtstvwr\spy.cpp +\MSDASDK\samples\oledb\olap\dtstvwr\spy.h +\MSDASDK\samples\oledb\olap\dtstvwr\version.h +\MSDASDK\samples\oledb\olap\mdxsampl\About.frm +\MSDASDK\samples\oledb\olap\mdxsampl\About.frx +\MSDASDK\samples\oledb\olap\mdxsampl\Connect.frm +\MSDASDK\samples\oledb\olap\mdxsampl\Connect.frx +\MSDASDK\samples\oledb\olap\mdxsampl\Globals.bas +\MSDASDK\samples\oledb\olap\mdxsampl\Main.frm +\MSDASDK\samples\oledb\olap\mdxsampl\Main.frx +\MSDASDK\samples\oledb\olap\mdxsampl\MDXQuery.mdx +\MSDASDK\samples\oledb\olap\mdxsampl\MDXSampl.vbp +\MSDASDK\samples\oledb\olap\mdxsampl\MetaData.ctl +\MSDASDK\samples\oledb\olap\mdxsampl\MetaData.ctx +\MSDASDK\samples\oledb\olap\mdxsampl\QryFile.cls +\MSDASDK\samples\oledb\olap\mdxsampl\QtextPn.ctl +\MSDASDK\samples\oledb\olap\mdxsampl\QueryPn.ctl +\MSDASDK\samples\oledb\olap\mdxsampl\Results.ctl +\MSDASDK\samples\oledb\olap\mdxsampl\SplitRgn.ctl +\MSDASDK\samples\oledb\olap\mdxsampl\SplitRgn.ctx +\MSDASDK\samples\oledb\olap\mdxsampl\Utils.bas +\MSDASDK\samples\oledb\olap\Olapcnsl\Axismbr.cpp +\MSDASDK\samples\oledb\olap\Olapcnsl\Axismbr.h +\MSDASDK\samples\oledb\olap\Olapcnsl\Bobsvid.mdx +\MSDASDK\samples\oledb\olap\Olapcnsl\Cellcrd.h +\MSDASDK\samples\oledb\olap\Olapcnsl\msmd.h +\MSDASDK\samples\oledb\olap\Olapcnsl\Olapcnsl.dsp +\MSDASDK\samples\oledb\olap\Olapcnsl\Olapcnsl.exe +\MSDASDK\samples\oledb\olap\Olapcnsl\OlapDemo.cpp +\MSDASDK\samples\oledb\olap\Olapcnsl\OlapDemo.h +\MSDASDK\samples\oledb\olap\Olapcnsl\QryDemo.cpp +\MSDASDK\samples\oledb\olap\Olapcnsl\Schdemo.cpp +\MSDASDK\samples\oledb\olap\Olapcnsl\schrest.h +\MSDASDK\samples\oledb\QuryDemo\MAIN.CPP +\MSDASDK\samples\oledb\QuryDemo\NEWQUERY.BMP +\MSDASDK\samples\oledb\QuryDemo\QUERY.CPP +\MSDASDK\samples\oledb\QuryDemo\QUERYWDW.ICO +\MSDASDK\samples\oledb\QuryDemo\QURYDEMO.DEF +\MSDASDK\samples\oledb\QuryDemo\QURYDEMO.dsp +\MSDASDK\samples\oledb\QuryDemo\QURYDEMO.H +\MSDASDK\samples\oledb\QuryDemo\QURYDEMO.ICO +\MSDASDK\samples\oledb\QuryDemo\QURYDEMO.MAK +\MSDASDK\samples\oledb\QuryDemo\QURYDEMO.RC +\MSDASDK\samples\oledb\QuryDemo\QURYDEMO.RC2 +\MSDASDK\samples\oledb\QuryDemo\quryver.h +\MSDASDK\samples\oledb\QuryDemo\RESOURCE.H +\MSDASDK\samples\oledb\QuryDemo\RUNQUERY.BMP +\MSDASDK\samples\oledb\RowsetViewer\CDialog.cpp +\MSDASDK\samples\oledb\RowsetViewer\CDialog.h +\MSDASDK\samples\oledb\RowsetViewer\CEnum.cpp +\MSDASDK\samples\oledb\RowsetViewer\CEnum.h +\MSDASDK\samples\oledb\RowsetViewer\COMMON.CPP +\MSDASDK\samples\oledb\RowsetViewer\COMMON.H +\MSDASDK\samples\oledb\RowsetViewer\CTable.cpp +\MSDASDK\samples\oledb\RowsetViewer\CTable.h +\MSDASDK\samples\oledb\RowsetViewer\DataSource.cpp +\MSDASDK\samples\oledb\RowsetViewer\DataSource.h +\MSDASDK\samples\oledb\RowsetViewer\Error.cpp +\MSDASDK\samples\oledb\RowsetViewer\Error.h +\MSDASDK\samples\oledb\RowsetViewer\List.h +\MSDASDK\samples\oledb\RowsetViewer\Main.cpp +\MSDASDK\samples\oledb\RowsetViewer\Main.h +\MSDASDK\samples\oledb\RowsetViewer\Property.cpp +\MSDASDK\samples\oledb\RowsetViewer\Property.h +\MSDASDK\samples\oledb\RowsetViewer\res\After.ico +\MSDASDK\samples\oledb\RowsetViewer\res\Before.ico +\MSDASDK\samples\oledb\RowsetViewer\res\change.ico +\MSDASDK\samples\oledb\RowsetViewer\res\Check.ico +\MSDASDK\samples\oledb\RowsetViewer\res\Column.ico +\MSDASDK\samples\oledb\RowsetViewer\res\delete.ico +\MSDASDK\samples\oledb\RowsetViewer\res\insert.ico +\MSDASDK\samples\oledb\RowsetViewer\res\menu.bmp +\MSDASDK\samples\oledb\RowsetViewer\res\Normal.ico +\MSDASDK\samples\oledb\RowsetViewer\res\readonly.bmp +\MSDASDK\samples\oledb\RowsetViewer\res\ReadOnly.ico +\MSDASDK\samples\oledb\RowsetViewer\res\Row.ico +\MSDASDK\samples\oledb\RowsetViewer\res\RowsetViewer.ico +\MSDASDK\samples\oledb\RowsetViewer\res\Stop.ico +\MSDASDK\samples\oledb\RowsetViewer\res\Table.ico +\MSDASDK\samples\oledb\RowsetViewer\res\Toolbar.bmp +\MSDASDK\samples\oledb\RowsetViewer\res\UnCheck.ico +\MSDASDK\samples\oledb\RowsetViewer\resource.h +\MSDASDK\samples\oledb\RowsetViewer\RowsetViewer.dsp +\MSDASDK\samples\oledb\RowsetViewer\RowsetViewer.mak +\MSDASDK\samples\oledb\RowsetViewer\RowsetViewer.RC +\MSDASDK\samples\oledb\RowsetViewer\RowsetViewer.rc2 +\MSDASDK\samples\oledb\RowsetViewer\Spy.cpp +\MSDASDK\samples\oledb\RowsetViewer\Spy.h +\MSDASDK\samples\oledb\RowsetViewer\VERSION.H +\MSDASDK\samples\oledb\SampClnt\customer.csv +\MSDASDK\samples\oledb\SampClnt\DUMP.CPP +\MSDASDK\samples\oledb\SampClnt\RESOURCE.H +\MSDASDK\samples\oledb\SampClnt\SAMPCLNT.CPP +\MSDASDK\samples\oledb\SampClnt\SAMPCLNT.dsp +\MSDASDK\samples\oledb\SampClnt\SAMPCLNT.H +\MSDASDK\samples\oledb\SampClnt\SAMPCLNT.MAK +\MSDASDK\samples\oledb\SampClnt\SAMPCLNT.RC +\MSDASDK\samples\oledb\SampClnt\SAMPCLNT.RC2 +\MSDASDK\samples\oledb\SampClnt\SAMPVER.H +\MSDASDK\samples\oledb\SampProv\ACCESSOR.CPP +\MSDASDK\samples\oledb\SampProv\ASSERTS.CPP +\MSDASDK\samples\oledb\SampProv\ASSERTS.H +\MSDASDK\samples\oledb\SampProv\BITARRAY.CPP +\MSDASDK\samples\oledb\SampProv\BITARRAY.H +\MSDASDK\samples\oledb\SampProv\CLASSFAC.CPP +\MSDASDK\samples\oledb\SampProv\CLASSFAC.H +\MSDASDK\samples\oledb\SampProv\COLINFO.CPP +\MSDASDK\samples\oledb\SampProv\CRTSESS.CPP +\MSDASDK\samples\oledb\SampProv\cvttype.cpp +\MSDASDK\samples\oledb\SampProv\DATASRC.CPP +\MSDASDK\samples\oledb\SampProv\DATASRC.H +\MSDASDK\samples\oledb\SampProv\DBINIT.CPP +\MSDASDK\samples\oledb\SampProv\DBPROP.CPP +\MSDASDK\samples\oledb\SampProv\DBSESS.CPP +\MSDASDK\samples\oledb\SampProv\DBSESS.H +\MSDASDK\samples\oledb\SampProv\EXTBUFF.CPP +\MSDASDK\samples\oledb\SampProv\EXTBUFF.H +\MSDASDK\samples\oledb\SampProv\FILEIDX.CPP +\MSDASDK\samples\oledb\SampProv\FILEIDX.H +\MSDASDK\samples\oledb\SampProv\FILEIO.CPP +\MSDASDK\samples\oledb\SampProv\FILEIO.H +\MSDASDK\samples\oledb\SampProv\GLOBALS.CPP +\MSDASDK\samples\oledb\SampProv\GUIDS.H +\MSDASDK\samples\oledb\SampProv\HASHTBL.CPP +\MSDASDK\samples\oledb\SampProv\HASHTBL.H +\MSDASDK\samples\oledb\SampProv\HEADERS.CPP +\MSDASDK\samples\oledb\SampProv\HEADERS.H +\MSDASDK\samples\oledb\SampProv\irowset.cpp +\MSDASDK\samples\oledb\SampProv\LOCAL.RC +\MSDASDK\samples\oledb\SampProv\OPNROWST.CPP +\MSDASDK\samples\oledb\SampProv\persist.cpp +\MSDASDK\samples\oledb\SampProv\RC.H +\MSDASDK\samples\oledb\SampProv\ROWCHNG.CPP +\MSDASDK\samples\oledb\SampProv\ROWINFO.CPP +\MSDASDK\samples\oledb\SampProv\ROWSET.CPP +\MSDASDK\samples\oledb\SampProv\ROWSET.H +\MSDASDK\samples\oledb\SampProv\SAMPPROV.DEF +\MSDASDK\samples\oledb\SampProv\SAMPPROV.H +\MSDASDK\samples\oledb\SampProv\SAMPPROV.MAK +\MSDASDK\samples\oledb\SampProv\SAMPPROV.RC +\MSDASDK\samples\oledb\SampProv\SAMPVER.H +\MSDASDK\samples\oledb\SampProv\UTILPROP.CPP +\MSDASDK\samples\oledb\SampProv\UTILPROP.H +\MSDASDK\samples\oledb\tablecopy\catalog.ico +\MSDASDK\samples\oledb\tablecopy\column.ico +\MSDASDK\samples\oledb\tablecopy\columnlong.ico +\MSDASDK\samples\oledb\tablecopy\columnread.ico +\MSDASDK\samples\oledb\tablecopy\common.cpp +\MSDASDK\samples\oledb\tablecopy\common.h +\MSDASDK\samples\oledb\tablecopy\DataSource.cpp +\MSDASDK\samples\oledb\tablecopy\DataSource.h +\MSDASDK\samples\oledb\tablecopy\Error.cpp +\MSDASDK\samples\oledb\tablecopy\Error.h +\MSDASDK\samples\oledb\tablecopy\index.ico +\MSDASDK\samples\oledb\tablecopy\List.h +\MSDASDK\samples\oledb\tablecopy\PrimaryKey.ico +\MSDASDK\samples\oledb\tablecopy\progress.cpp +\MSDASDK\samples\oledb\tablecopy\progress.h +\MSDASDK\samples\oledb\tablecopy\Property.cpp +\MSDASDK\samples\oledb\tablecopy\Property.h +\MSDASDK\samples\oledb\tablecopy\RESOURCE.H +\MSDASDK\samples\oledb\tablecopy\schema.ico +\MSDASDK\samples\oledb\tablecopy\Spy.cpp +\MSDASDK\samples\oledb\tablecopy\Spy.h +\MSDASDK\samples\oledb\tablecopy\STEP1.CPP +\MSDASDK\samples\oledb\tablecopy\STEP2.CPP +\MSDASDK\samples\oledb\tablecopy\STEP3.CPP +\MSDASDK\samples\oledb\tablecopy\STEP4.CPP +\MSDASDK\samples\oledb\tablecopy\synonym.ico +\MSDASDK\samples\oledb\tablecopy\systable.ico +\MSDASDK\samples\oledb\tablecopy\Table.cpp +\MSDASDK\samples\oledb\tablecopy\Table.h +\MSDASDK\samples\oledb\tablecopy\TABLE.ICO +\MSDASDK\samples\oledb\tablecopy\TABLE_CO.ICO +\MSDASDK\samples\oledb\tablecopy\TableCopy.cpp +\MSDASDK\samples\oledb\tablecopy\TableCopy.dsp +\MSDASDK\samples\oledb\tablecopy\TableCopy.h +\MSDASDK\samples\oledb\tablecopy\TableCopy.mak +\MSDASDK\samples\oledb\tablecopy\TableCopy.rc +\MSDASDK\samples\oledb\tablecopy\TableCopy.rc2 +\MSDASDK\samples\oledb\tablecopy\type.ico +\MSDASDK\samples\oledb\tablecopy\VERSION.H +\MSDASDK\samples\oledb\tablecopy\view.ico +\MSDASDK\samples\oledb\tablecopy\WinMain.cpp +\MSDASDK\samples\oledb\tablecopy\WinMain.h +\MSDASDK\samples\oledb\tablecopy\Wizard.cpp +\MSDASDK\samples\oledb\tablecopy\Wizard.h +\MSDASDK\samples\osp\Customer.txt +\MSDASDK\samples\osp\RegisterProvider.reg +\MSDASDK\samples\osp\RegisterProvider.txt +\MSDASDK\samples\osp\vb\MyDataSource.cls +\MSDASDK\samples\osp\vb\MyOSPObject.cls +\MSDASDK\samples\osp\vb\ospsampb.dll +\MSDASDK\samples\osp\vb\SampleOSP_VB.reg +\MSDASDK\samples\osp\vb\SampleOSP_VB.vbp +\MSDASDK\samples\osp\vc\CExList.h +\MSDASDK\samples\osp\vc\Common.cpp +\MSDASDK\samples\osp\vc\Common.h +\MSDASDK\samples\osp\vc\MyClassFactory.cpp +\MSDASDK\samples\osp\vc\MyClassFactory.h +\MSDASDK\samples\osp\vc\MyDataSource.cpp +\MSDASDK\samples\osp\vc\MyDataSource.h +\MSDASDK\samples\osp\vc\MyOSPObject.cpp +\MSDASDK\samples\osp\vc\MyOSPObject.h +\MSDASDK\samples\osp\vc\ospsampc.dll +\MSDASDK\samples\osp\vc\SampleOSP_VC.def +\MSDASDK\samples\osp\vc\SampleOSP_VC.dsp +\MSDASDK\samples\osp\vc\SampleOSP_VC.reg +\MSDASDK\samples\osp\vj\MyDataSource.class +\MSDASDK\samples\osp\vj\MyDataSource.java +\MSDASDK\samples\osp\vj\MyOSPObject.class +\MSDASDK\samples\osp\vj\MyOSPObject.java +\MSDASDK\samples\osp\vj\SampleOSP_VJ.dsp +\MSDASDK\samples\osp\vj\SampleOSP_VJ.reg +\MSDASDK\samples\rds\Handler\msdfmap.ini +\MSDASDK\samples\rds\Handler\vb\Events.cls +\MSDASDK\samples\rds\Handler\vb\msdfhdl.tlb +\MSDASDK\samples\rds\Handler\vb\msdfmap.bas +\MSDASDK\samples\rds\Handler\vb\msdfmap.cls +\MSDASDK\samples\rds\Handler\vb\msdfmap.vbp +\MSDASDK\samples\rds\Handler\vb\msdfmap.vbw +\MSDASDK\samples\rds\Handler\vc\adoid.h +\MSDASDK\samples\rds\Handler\vc\adoint.h +\MSDASDK\samples\rds\Handler\vc\const.cpp +\MSDASDK\samples\rds\Handler\vc\Handler.cpp +\MSDASDK\samples\rds\Handler\vc\HANDLER.h +\MSDASDK\samples\rds\Handler\vc\msdfhdl.idl +\MSDASDK\samples\rds\Handler\vc\msdfmap.cpp +\MSDASDK\samples\rds\Handler\vc\msdfmap.def +\MSDASDK\samples\rds\Handler\vc\msdfmap.dsp +\MSDASDK\samples\rds\Handler\vc\msdfmap.dsw +\MSDASDK\samples\rds\Handler\vc\msdfmap.idl +\MSDASDK\samples\rds\Handler\vc\msdfmap.rc +\MSDASDK\samples\rds\Handler\vc\Resource.h +\MSDASDK\samples\rds\Handler\vc\StdAfx.cpp +\MSDASDK\samples\rds\Handler\vc\StdAfx.h +\MSDASDK\samples\rds\Handler\vc\util.cpp +\MSDASDK\samples\rds\Handler\vc\util.h +\MSDASDK\samples\rds\Handler\vc\utiltest.cpp +adctest.asp +advworks.mdb +addrbook.asp +Arcadia.gif +SampleEmp.sql +Tutorial.asp +ASP.gif +SampStart.asp +ShowCode.asp +ADCAuto.asp +ADCtoADF.asp +ADCtoVB.asp +SrcForm.inc +Setup.SWT +VBtoADF.dob +VBtoADF.dll +VBtoADFDoc.vbd +VBtoADF.vbp +VBtoADF.CAB +VBtoADF.HTM +VBtoADFdoc.VBD +Setup.SWT +VBtoVB.dob +VBtoVB.dll +VBtoVBDoc.vbd +VBtoVB.vbp +VBtoVB.CAB +VBtoVB.HTM +VBtoVBdoc.VBD +VbBusObj.dll +Vbbusobj.vbp +VbBusObjCls.cls +VbBusObjMod.bas + +The following files are all found under the following path on any client installation of the Application Performance Explorer: +\Program Files\Microsoft Visual Studio\Common\Tools\APE\Source +\Aeclient\AECLIENT.RC +\Aeclient\AECLIENT.RES +\Aeclient\AECLIENT.VBP +\Aeclient\CLIENT.CLS +\Aeclient\CLIENT.ICO +\Aeclient\CLSCALBK.CLS +\Aeclient\CLSCNTSV.CLS +\Aeclient\CLSDRTTL.CLS +\Aeclient\CLSPOOTL.CLS +\Aeclient\CLSQUETL.CLS +\Aeclient\FRMCLNT.FRM +\Aeclient\FRMCLNT.FRX +\Aeclient\MODCLNT.BAS +\Aecompat\AECLIENT.CMP +\Aecompat\AEEXPDTR.CMP +\Aecompat\AEINSTNR.CMP +\Aecompat\AELOGGER.CMP +\Aecompat\AEMTSSVC.CMP +\Aecompat\AEPOOL.CMP +\Aecompat\AEQUEUE.CMP +\Aecompat\AESERVIC.CMP +\Aecompat\AEWORKER.CMP +\Aecompat\AEWRKPVD.CMP +\Aeexpdtr\AEEXPDTR.RC +\Aeexpdtr\AEEXPDTR.RES +\Aeexpdtr\AEEXPDTR.VBP +\Aeexpdtr\CALLBKRF.CLS +\Aeexpdtr\EXPEDITR.CLS +\Aeexpdtr\EXPETITR.ICO +\Aeexpdtr\FRMEXPDT.FRM +\Aeexpdtr\FRMEXPDT.FRX +\Aeexpdtr\MODEXPDT.BAS +\Aeexpdtr\SYNCRTRN.CLS +\Aeinclud\CLSPOSFM.CLS +\Aeinclud\CLSWKMAC.CLS +\Aeinclud\CLSWORKR.CLS +\Aeinclud\ENUMS.CLS +\Aeinclud\MODAECON.BAS +\Aeinclud\MODAEGLB.BAS +\Aeinclud\MODVBERR.BAS +\Aeinclud\MODWINER.BAS +\Aeinclud\UTILITY.BAS +\Aeinclud\LOCALIZE.BAS +\Aeinclud\ODBCAPI.RC +\Aeinclud\ODBCAPI.RES +\Aeinclud\RC.BAT +\Aeinclud\ODBCAPI.BAS +\Aeinstnr\AEINSTNR.VBP +\Aeinstnr\INSTANCR.ICO +\Aeinstnr\INSTNCER.CLS +\Aeinstnr\MODINSTR.BAS +\Aeintrfc\BUILD.BAT +\Aelogger\AELOGGER.RC +\Aelogger\AELOGGER.RES +\Aelogger\AELOGGER.VBP +\Aelogger\FRMLOGGR.FRM +\Aelogger\FRMLOGGR.FRX +\Aelogger\LOGGER.CLS +\Aelogger\LOGGER.ICO +\Aelogger\MODLOGGR.BAS +\Aemtssvc\ACCOUNT.CLS +\Aemtssvc\AEMTSSVC.VBP +\Aemtssvc\MOVEMONY.CLS +\Aemtssvc\AEMTSSVC.RC +\Aemtssvc\AEMTSSVC.RES +\Aemtssvc\MTSSVC.BAS +\Aemtssvc\RC.BAT +\Aepool\AEPOOL.RC +\Aepool\AEPOOL.RES +\Aepool\AEPOOL.VBP +\Aepool\FRMPOOL.FRM +\Aepool\FRMPOOL.FRX +\Aepool\MODPOOL.BAS +\Aepool\POOL.CLS +\Aepool\POOL.ICO +\Aepool\POOLMGR.CLS +\Aequeue\AEQUEUE.RC +\Aequeue\AEQUEUE.RES +\Aequeue\AEQUEUE.VBP +\Aequeue\CLSQUEDL.CLS +\Aequeue\CLSSERVC.CLS +\Aequeue\FRMQUEUE.FRM +\Aequeue\FRMQUEUE.FRX +\Aequeue\MODQUEUE.BAS +\Aequeue\QMANAGER.ICO +\Aequeue\QUEUE.CLS +\Aequeue\QUEUEMGR.CLS +\Aeservic\AESERVIC.RC +\Aeservic\AESERVIC.RES +\Aeservic\AESERVIC.VBP +\Aeservic\MODSERVC.BAS +\Aeservic\SERVICE.CLS +\Aeservic\SERVICE.ICO +\Aeservic\SERVICE.FRM +\Aeservic\SERVICE.FRX +\Aeworker\AEWORKER.RC +\Aeworker\AEWORKER.RES +\Aeworker\AEWORKER.VBP +\Aeworker\MODWORKR.BAS +\Aeworker\WORKER.CLS +\Aeworker\WORKER.ICO +\Aewrkpvd\AEWRKPVD.RC +\Aewrkpvd\AEWRKPVD.RES +\Aewrkpvd\AEWRKPVD.VBP +\Aewrkpvd\BASWRKPD.BAS +\Aewrkpvd\CLSWRKPD.CLS +\Aewrkpvd\WRKPVD.ICO + + diff --git a/cadVb/COMMON/TOOLS/APE/AECLIENT.EXE b/cadVb/COMMON/TOOLS/APE/AECLIENT.EXE new file mode 100644 index 0000000..cad1e9f Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AECLIENT.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEEXPDTR.EXE b/cadVb/COMMON/TOOLS/APE/AEEXPDTR.EXE new file mode 100644 index 0000000..9f6cd4e Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEEXPDTR.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEEXPDTR.TLB b/cadVb/COMMON/TOOLS/APE/AEEXPDTR.TLB new file mode 100644 index 0000000..cc5c384 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEEXPDTR.TLB differ diff --git a/cadVb/COMMON/TOOLS/APE/AEINSTNR.EXE b/cadVb/COMMON/TOOLS/APE/AEINSTNR.EXE new file mode 100644 index 0000000..fe761f5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEINSTNR.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEINTRFC.TLB b/cadVb/COMMON/TOOLS/APE/AEINTRFC.TLB new file mode 100644 index 0000000..97657a2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEINTRFC.TLB differ diff --git a/cadVb/COMMON/TOOLS/APE/AELOGGER.EXE b/cadVb/COMMON/TOOLS/APE/AELOGGER.EXE new file mode 100644 index 0000000..b886d8f Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AELOGGER.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEMANAGR.EXE b/cadVb/COMMON/TOOLS/APE/AEMANAGR.EXE new file mode 100644 index 0000000..2393c5f Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEMANAGR.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEMANAGR.INI b/cadVb/COMMON/TOOLS/APE/AEMANAGR.INI new file mode 100644 index 0000000..79ca022 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/AEMANAGR.INI @@ -0,0 +1,2039 @@ +[ֵ, ͬ (CPU, Pool)] +Model=2 +Use Pool Manager=True +Show Pool=False +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣ첽 (CPU, Job)] +Model=0 +Use Pool Manager=False +Show Pool=False +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=True +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣ첽 (DB, Job)] +Model=0 +Use Pool Manager=False +Show Pool=False +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=True +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣ첽 (DB, Job, visible)] +Model=0 +Use Pool Manager=False +Show Pool=True +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=True +Log Expediter=True +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣ첽 (CPU, Job, visible)] +Model=0 +Use Pool Manager=False +Show Pool=True +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=True +Log Expediter=True +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣͬ (CPU, direct, visible)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣͬ (CPU, direct)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣͬ (DB, direct)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣͬ (DB, direct, visible)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣͬ (CPU, Pool, visible)] +Model=2 +Use Pool Manager=True +Show Pool=True +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣͬ (DB, Pool, visible)] +Model=2 +Use Pool Manager=True +Show Pool=True +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ֵܣͬ (DB, Pool)] +Model=2 +Use Pool Manager=True +Show Pool=False +Log Pool=True +Number of Clients=1 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=1 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=1 +Clients Pass Bytes, Upper=1 +Clients Pass Rows=1 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=1 +Clients Pass Rows, Upper=1 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=1 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=1 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=1 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=1 +Task Duration, Randomize=False +Task Duration, Lower=1 +Task Duration, Upper=1 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=1 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=1 +Services Send Bytes, Upper=1 +Services Send Rows=1 +Services Send Rows, Randomize=False +Services Send Rows, Lower=1 +Services Send Rows, Upper=1 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣ첽 (DB, Job)] +Model=0 +Use Pool Manager=False +Show Pool=False +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=True +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣ첽 (DB, Job, visible)] +Model=0 +Use Pool Manager=False +Show Pool=True +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=True +Log Expediter=True +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣ첽 (CPU, Job, visible)] +Model=0 +Use Pool Manager=False +Show Pool=True +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=True +Log Expediter=True +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣ첽 (CPU, Job)] +Model=0 +Use Pool Manager=False +Show Pool=False +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=True +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (CPU, direct)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (CPU, direct, visible)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (DB, direct, visible)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (DB, direct)] +Model=2 +Use Pool Manager=False +Show Pool=False +Log Pool=False +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=False +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=False +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (CPU, Pool)] +Model=2 +Use Pool Manager=True +Show Pool=False +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (CPU, Pool, visible)] +Model=2 +Use Pool Manager=True +Show Pool=True +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=4 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=False +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (DB, Pool, visible)] +Model=2 +Use Pool Manager=True +Show Pool=True +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=True +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=True +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 + +[ܣͬ (DB, Pool)] +Model=2 +Use Pool Manager=True +Show Pool=False +Log Pool=True +Number of Clients=5 +Allow Externally Hosted Clients=False +Time Between Calls=0 +Time Between Calls, Randomize=False +Time Between Calls, Lower=0 +Time Between Calls, Upper=0 +Test Duration in Number of Calls=100 +Test Duration in Minutes=10 +Test Duration Mode=1 +Pass Data to Services=True +Clients Pass Bytes/Row=10 +Clients Pass Bytes, Randomize=False +Clients Pass Bytes, Lower=10 +Clients Pass Bytes, Upper=10 +Clients Pass Rows=5 +Clients Pass Rows, Randomize=False +Clients Pass Rows, Lower=5 +Clients Pass Rows, Upper=5 +Clients Pass Type=1 +Log Clients=True +Show Clients=False +Use Remote Clients=False +Clients per Machine=5 +Client Machine Names= +Include Local Client Machine=True +Callback Mode=1 +Show Queue=False +Log Queue=True +Show Expediter=False +Log Expediter=False +Early Bind Services=True +Number of Workers=3 +Retain service References=True +Preload Services=True +Log Workers=True +Use Remote Workers=False +Workers per Machine=3 +Worker Machine Names= +Include Server as Worker Machine=True +Task Duration=50 +Task Duration, Randomize=False +Task Duration, Lower=50 +Task Duration, Upper=50 +Sleep Duration=0 +Sleep Duration, Randomize=False +Sleep Duration, Lower=0 +Sleep Duration, Upper=0 +Return Data=True +Services Send Bytes/Row=10 +Services Send Bytes, Randomize=False +Services Send Bytes, Lower=10 +Services Send Bytes, Upper=10 +Services Send Rows=5 +Services Send Rows, Randomize=False +Services Send Rows, Lower=5 +Services Send Rows, Upper=5 +Services Send Type=1 +Specify Service=False +Service Specified= +Use Processor Cycles=1 +Query Name=Simple Read +Log MTS=False +Show MTS=False +Log Database=True +Log File=AE.LOG +Auto Write Log=True +Logger Threshold=100 +Overwrite Log=True +Log Summaries=True +Show Logger=False +Maximum Log Size=5 +Limit Log Size=True +Remote Server=False +Use NetOLE=False +Network Address= +Protocol=ncacn_ip_tcp +Authentication=1 +Database Connection=0 +Database Server=0 diff --git a/cadVb/COMMON/TOOLS/APE/AEMTSSVC.DLL b/cadVb/COMMON/TOOLS/APE/AEMTSSVC.DLL new file mode 100644 index 0000000..20fab14 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEMTSSVC.DLL differ diff --git a/cadVb/COMMON/TOOLS/APE/AEMTSSVC.PAK b/cadVb/COMMON/TOOLS/APE/AEMTSSVC.PAK new file mode 100644 index 0000000..3cc85ee --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/AEMTSSVC.PAK @@ -0,0 +1,80 @@ +[{63E1ECAD-A520-11D1-9D8B-0020781039AF} - I1] +Roles=0 +InterfaceID={63E1ECAC-A520-11D1-9D8B-0020781039AF} +Description= +AuthLevel=4 +ProxyStubDLL= +[{63E1ECAD-A520-11D1-9D8B-0020781039AF} - I2] +Roles=0 +InterfaceID={C93809AB-684C-11D1-9D3E-0020781039AF} +Description= +AuthLevel=4 +ProxyStubDLL= +[{21D61CE6-A517-11D1-9D8B-0020781039AF} - C1] +Roles=0 +Clsid={63E1ECAD-A520-11D1-9D8B-0020781039AF} +Description=APE MTS Transaction Account Component +ProgID=AEMTSSvc.Account +Transaction=Required +RunInASP=Y +InProc=N +Local=Y +Remote=N +Internet=N +Security=Y +AuthLevel=4 +System=N +Origin=Install +Wrapped=Y +CompDLL=AEMTSSvc.dll +TypeLib=AEMTSSvc.dll +Interfaces=2 +[{63E1ECAF-A520-11D1-9D8B-0020781039AF} - I1] +Roles=0 +InterfaceID={63E1ECAE-A520-11D1-9D8B-0020781039AF} +Description= +AuthLevel=4 +ProxyStubDLL= +[{63E1ECAF-A520-11D1-9D8B-0020781039AF} - I2] +Roles=0 +InterfaceID={C93809AC-684C-11D1-9D3E-0020781039AF} +Description= +AuthLevel=4 +ProxyStubDLL= +[{21D61CE6-A517-11D1-9D8B-0020781039AF} - C2] +Roles=0 +Clsid={63E1ECAF-A520-11D1-9D8B-0020781039AF} +Description=APE MTS Transaction MoveMoney Component +ProgID=AEMTSSvc.MoveMoney +Transaction=Required +RunInASP=Y +InProc=N +Local=Y +Remote=N +Internet=N +Security=Y +AuthLevel=4 +System=N +Origin=Install +Wrapped=Y +CompDLL=AEMTSSvc.dll +TypeLib=AEMTSSvc.dll +Interfaces=2 +[{21D61CE6-A517-11D1-9D8B-0020781039AF}] +Name=Visual Studio APE Package +Description=APE MTS Transaction Package for Microsoft Visual Studio 6.0 +System=N +Latency=3 +Shutdown=N +Security=N +AuthLevel=4 +Components=2 +Roles=0 +Activation=Local +Changeable=Y +Deleteable=Y +[Packages] +Package1={21D61CE6-A517-11D1-9D8B-0020781039AF} +Packages=1 +Version=2.01 +ExtendedVersion=2.01 diff --git a/cadVb/COMMON/TOOLS/APE/AEPOOL.EXE b/cadVb/COMMON/TOOLS/APE/AEPOOL.EXE new file mode 100644 index 0000000..9460b92 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEPOOL.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEQUEUE.EXE b/cadVb/COMMON/TOOLS/APE/AEQUEUE.EXE new file mode 100644 index 0000000..0b71307 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEQUEUE.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AESERVIC.DLL b/cadVb/COMMON/TOOLS/APE/AESERVIC.DLL new file mode 100644 index 0000000..fae33ad Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AESERVIC.DLL differ diff --git a/cadVb/COMMON/TOOLS/APE/AESVRMGR.EXE b/cadVb/COMMON/TOOLS/APE/AESVRMGR.EXE new file mode 100644 index 0000000..e9c48d4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AESVRMGR.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEWORKER.EXE b/cadVb/COMMON/TOOLS/APE/AEWORKER.EXE new file mode 100644 index 0000000..df423bc Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEWORKER.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/AEWRKPVD.EXE b/cadVb/COMMON/TOOLS/APE/AEWRKPVD.EXE new file mode 100644 index 0000000..bb756bf Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/AEWRKPVD.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/APEDBSET.DLL b/cadVb/COMMON/TOOLS/APE/APEDBSET.DLL new file mode 100644 index 0000000..432db2e Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/APEDBSET.DLL differ diff --git a/cadVb/COMMON/TOOLS/APE/APEMREG.EXE b/cadVb/COMMON/TOOLS/APE/APEMREG.EXE new file mode 100644 index 0000000..71985c6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/APEMREG.EXE differ diff --git a/cadVb/COMMON/TOOLS/APE/APETEST.MDB b/cadVb/COMMON/TOOLS/APE/APETEST.MDB new file mode 100644 index 0000000..aac2e24 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/APETEST.MDB differ diff --git a/cadVb/COMMON/TOOLS/APE/ODBCTOOL.DLL b/cadVb/COMMON/TOOLS/APE/ODBCTOOL.DLL new file mode 100644 index 0000000..c7dd4c8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/ODBCTOOL.DLL differ diff --git a/cadVb/COMMON/TOOLS/APE/REGTOOL5.DLL b/cadVb/COMMON/TOOLS/APE/REGTOOL5.DLL new file mode 100644 index 0000000..f7324e7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/REGTOOL5.DLL differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.RC new file mode 100644 index 0000000..697486e --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.RC @@ -0,0 +1,66 @@ +STRINGTABLE DISCARDABLE +BEGIN + //Logging strings + 1 "*** Do *NOT* Localize any string that starts with '***'. They are comments to be used by localizers to identify sections. They also mark the beginning of a new 'section' within the String Table." + 2 "Client" + 3 "Callback Received" + 4 "Callback Error Received" + 5 "Asynchronous Service Posted" + + 7 "Error: RunTest" + 9 "RunTest Collision Retry" + + 12 "Error: WaitPeriod property" + 13 "Start Test Received" + 14 "Stop Test Received" + 16 "Test Started" + 17 "Test Complete" + 18 "Calls Complete" + 19 "Callbacks Complete" + 20 "Initializing Test" + + 21 "Synchronous Service Posted" + 22 "DoService Posted" + 23 "Writing Temporary Log File" + 24 "No authentication used" + 26 "Disk full, logging turned off." + 27 "PoolMgr rejection retries exhausted." + 28 "Could not create MTS Service. Check the documentation for further help." + 29 "*** Font information for all forms. Index 30 is the Character set, Index 31 is Font name, Index 32 is Font Size" + 30 "0" + 31 "Tahoma" + 32 "10" + 50 "Error: " + + //U/I captions + 100 "*** U/I captions" + 101 "Client" //Form Caption + 102 "Calls Made" //Calls Made Caption + 103 "Calls Returned" //Calls Returned Caption + + 110 "Successful Transactions:" + 111 "Aborted Transactions:" + 112 "Begin MTS Transaction" + 113 "End MTS Transaction - Failed" + 114 "End MTS Transaction - Succeeded" + 115 "MTS Transaction Status" + + //Racreg32 error codes with 200 added for offset + 200 "*** Racreg32 error codes with 200 added for offset" + 201 "Unknown run time error occurred" + 202 "No protocol was specified" + 203 "No server machine name was specified" + 204 "An error occurred reading from the registry" + 205 "An error occurred writing to the registry" + 206 "Both the ProgID and CLSID parameters were missing" + 207 "There is no local server (either in-process or cross-process, 16-bit or 32-bit)" + 208 "There was an error looking for the Proxy DLLs, check that they were installed properly" + + //Errors + 32000 "Error descriptions" + 32767 "OLE collision retries exhausted" + 32765 "A required parameter is missing." + 32750 "An error occurred changing server connection settings: ." + 32740 "An error occured during communication with remote services. Refer to the APE troubleshooting in help." + 32739 "Remote Automation Failure: Microsoft Windows 95 cannot create named pipes. Select a different Remote Automation protocol." +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.RES new file mode 100644 index 0000000..6062c1a Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.VBP new file mode 100644 index 0000000..285a821 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/AECLIENT.VBP @@ -0,0 +1,64 @@ +Type=OleExe +Reference=*\G{244D13BD-AFDB-11CE-85D1-00AA00695286}#1.1#0#C:\WINNT\System32\RACREG32.DLL#RacReg +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#0#..\AEIntrfc\AEIntrfc.TLB#Application Performance Explorer 2.0 Interfaces +Reference=*\G{133C84D0-7340-11D1-9D4A-0020781039AF}#1.0#0#..\AEIntrfc\AEExpdtr.tlb#Application Performance Explorer Expediter Event Return Interfaces +Reference=*\G{00000200-0000-0010-8000-00AA006D2EA4}#2.0#0#C:\Program Files\Common Files\System\ADO\msado15.dll#Microsoft ActiveX Data Objects 2.0 Library +Reference=*\G{00025E01-0000-0000-C000-000000000046}#4.0#0#C:\Program Files\Common Files\Microsoft Shared\DAO\DAO350.DLL#Microsoft DAO 3.51 Object Library +Reference=*\G{EE008642-64A8-11CE-920F-08002B369A33}#2.0#0#C:\WINNT\System32\msrdo20.dll#Microsoft Remote Data Object 2.0 +Class=Client; client.cls +Module=modClient; modclnt.bas +Class=clsCallback; clscalbk.cls +Class=clsClientService; clscntsv.cls +Class=clsDirectTestTool; clsdrttl.cls +Class=clsQueueTestTool; clsquetl.cls +Module=modAEConstants; ..\AEInclud\modaecon.bas +Module=modVBErrors; ..\AEInclud\modvberr.bas +Module=modWin32Errors; ..\AEInclud\modwiner.bas +Class=clsPositionForm; ..\AEInclud\clsposfm.cls +Form=frmclnt.frm +Class=clsPoolTestTool; clsPooTl.cls +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +Module=Utility; ..\AEInclud\Utility.bas +Module=Localize; ..\AEInclud\Localize.bas +Form=..\AEServic\Service.frm +Object={6FBA474E-43AC-11CE-9A0E-00AA0062BB4C}#1.0#0; SYSINFO.OCX +ResFile32="aeclient.res" +Module=ODBCAPI; ..\AEInclud\ODBCAPI.bas +IconForm="frmClient" +Startup="(None)" +HelpFile="" +Title="APE Client" +ExeName32="AEClient.exe" +Path32="..\..\Retail" +Command32="" +Name="AEClient" +HelpContextID="0" +Description="Application Performance Explorer Client" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AEClient.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Client" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Client" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLIENT.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLIENT.CLS new file mode 100644 index 0000000..2aaa71c --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLIENT.CLS @@ -0,0 +1,892 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = 0 'False + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "Client" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Client" +Option Explicit + +Implements APEInterfaces.IClient + +'Private class level variables +Private mbFirstClientOnMachine As Boolean 'If true, this is the first Client application + 'started on this machine +'***************** +'Public Properties +'***************** + +Public Property Set IClient_Explorer(ByVal oExplorer As APEInterfaces.IManagerCallback) +Attribute IClient_Explorer.VB_Description = "Set the Manager object that the Client will use to notify test completion." + '------------------------------------------------------------------------- + 'Purpose: To give the client a reference to AEManager.Explorer + 'IN: + ' [oExplorer] + ' must be valid reference to a AEManager.Explorer class object + 'Effects: + ' [goExplorer] + ' Set equal to parameter + '------------------------------------------------------------------------- + Set goExplorer = oExplorer +End Property + +Public Property Get IClient_MachineName() As String +Attribute IClient_MachineName.VB_Description = "Returns the computer name that the Client is instanciated on." + 'Get the local computer name + Dim l As Long + Dim s As String + s = Space$(255) + l = GetComputerName(s, 255) + l = InStr(s, vbNullChar) + s = Left$(s, l - 1) + IClient_MachineName = s +End Property + +Public Property Let IClient_ConnectionAddress(ByVal sAddress As String) +Attribute IClient_ConnectionAddress.VB_Description = "Set the network address for the location of the APE server." + '------------------------------------------------------------------------- + 'Purpose: The netaddress used for remote connections + 'Effects: + ' [gsConnectionAddress] + ' Set equal to parameter + '------------------------------------------------------------------------- + gsConnectionAddress = sAddress +End Property + +Public Property Get IClient_ConnectionAddress() As String + IClient_ConnectionAddress = gsConnectionAddress +End Property + +Public Property Let IClient_ConnectionProtocol(ByVal sProtocol As String) +Attribute IClient_ConnectionProtocol.VB_Description = "Sets the protocol to be used for Remote Automation connections." + '------------------------------------------------------------------------- + 'Purpose: The RPC protocol to use for all remote connections. + 'Effects: + ' [gsConnectionProtocol] + ' Set equal to parameter + '------------------------------------------------------------------------- + gsConnectionProtocol = sProtocol +End Property + +Public Property Get IClient_ConnectionProtocol() As String + IClient_ConnectionProtocol = gsConnectionProtocol +End Property + +Public Property Let IClient_ConnectionAuthentication(ByVal lAuthentication As Long) +Attribute IClient_ConnectionAuthentication.VB_Description = "Sets the authentication level to be used for Remote Automation connections." + '------------------------------------------------------------------------- + 'Purpose: The RPC authenticaion to enforce for all remote connections. + 'Effects: + ' [gsConnectionAuthentication] + ' Set equal to parameter + '------------------------------------------------------------------------- + glConnectionAuthentication = lAuthentication +End Property + +Public Property Get IClient_ConnectionAuthentication() As Long + IClient_ConnectionAuthentication = glConnectionAuthentication +End Property + +Public Property Let IClient_ConnectionRemote(ByVal bRemote As Boolean) +Attribute IClient_ConnectionRemote.VB_Description = "Determines if the Client will connect to a remote APE server or to a local APE server." + '------------------------------------------------------------------------- + 'Purpose: If true server is remote and ConnectionAddress, ConnectionProtocol, + ' ConnectionNetOLE, and ConnectionAuthentication apply + 'Effects: + ' [gsConnectionRemote] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbConnectionRemote = bRemote +End Property + +Public Property Get IClient_ConnectionRemote() As Boolean + IClient_ConnectionRemote = gbConnectionRemote +End Property + +Public Property Let IClient_ConnectionNetOLE(ByVal bNetOLE As Boolean) +Attribute IClient_ConnectionNetOLE.VB_Description = "Determines if the Client will use DCOM to connect to the APE server." + '------------------------------------------------------------------------- + 'Purpose: If true use NetOLE (DCOM) for remote connection, instead of + ' Remote Automation + 'Effects: + ' [gsConnectionNetOLE] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbConnectionNetOLE = bNetOLE +End Property + +Public Property Get IClient_ConnectionNetOLE() As Boolean + IClient_ConnectionNetOLE = gbConnectionNetOLE +End Property + +Public Property Let IClient_ID(ByVal lID As Long) +Attribute IClient_ID.VB_Description = "Sets and returns the Client ID for Client management." + '------------------------------------------------------------------------- + 'Purpose: Unique ID for the client in this test. ID is used to seperate + ' Clients log records and differentiate title bars + 'Effects: + ' [glClientID] + ' Set equal to parameter + '------------------------------------------------------------------------- + glClientID = lID +End Property + +Public Property Get IClient_ID() As Long + IClient_ID = glClientID +End Property + +Public Property Let IClient_Model(ByVal lModel As Long) +Attribute IClient_Model.VB_Description = "Determines what test model the Client will perform." + '------------------------------------------------------------------------- + 'Purpose: 'What model to use for this test. + ' 0 or giMODEL_QUEUE - Queue Management + ' 2 or gimodel_direct - Direct Instanciation + 'Effects: + ' [glModel] + ' Set equal to parameter + '------------------------------------------------------------------------- + glModel = lModel +End Property + +Public Property Get IClient_Model() As Long + IClient_Model = glModel +End Property + +Public Property Let IClient_Show(ByVal bShow As Boolean) +Attribute IClient_Show.VB_Description = "Determines if the Client will show a form." + '------------------------------------------------------------------------- + 'Purpose: If true, show the Client's U/I + 'Effects: + ' [gbShow] + ' Set equal to parameter + ' [frmClient.Visible] + ' Set equal to parameter + '------------------------------------------------------------------------- + frmClient.Visible = bShow + gbShow = bShow + If bShow Then + 'Update values on U/I + With frmClient + .lblCallsMade.Caption = 0 + .lblCallsReturned.Caption = 0 + .lblCallsMade.Refresh + .lblCallsReturned.Refresh + End With + End If +End Property + +Public Property Get IClient_Show() As Boolean + IClient_Show = gbShow +End Property + +Public Property Let IClient_Log(ByVal bLog As Boolean) +Attribute IClient_Log.VB_Description = "Determines if the Client logs its events and errors." + '------------------------------------------------------------------------- + 'Purpose: If true, log events in the Client + 'Effects: + ' [gbLog] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbLog = bLog +End Property + +Public Property Get IClient_Log() As Boolean + IClient_Log = gbLog +End Property + +Public Property Let IClient_CallbackMode(ByVal lCallbackMode As APECallbackNotificationConstants) +Attribute IClient_CallbackMode.VB_Description = "Determines what Callback mode that will be used." + '------------------------------------------------------------------------- + 'Purpose: Determines if and how client receives results from + ' services requested from QueueManager + ' see "Callback mode keys" in modAEConstants + 'Effects: + ' [glCallbackMode] + ' Set equal to parameter + '------------------------------------------------------------------------- + Select Case lCallbackMode + Case giUSE_DEFAULT_CALLBACK, giUSE_PASSED_CALLBACK, giRETURN_BY_SYNC_EVENT + glCallbackMode = lCallbackMode + Case Else + 'Default callback mode + glCallbackMode = giUSE_PASSED_CALLBACK + End Select +End Property + +Public Property Get IClient_CallbackMode() As APECallbackNotificationConstants + IClient_CallbackMode = glCallbackMode +End Property + +'How many Kb should the log collection be allowed to take +'before it is cached to a temporary file? +'If zero, the log is not cached to a file. +Public Property Let IClient_LogThreshold(ByVal lKB As Long) +Attribute IClient_LogThreshold.VB_Description = "Sets the log threshold in kilobytes that determines when log records are written to a file and purged from memory." + '------------------------------------------------------------------------- + 'Purpose: Client uses the LogThreshold property to determine how many + ' kilobytes should be held in memory before writing to a file + ' and emptying log record array. + 'Effects: [glLogThreshold] + ' Becomes equal to the passed parameter + ' [glLogThresholdRecs] + ' Becomes an estimated number of records equivalent + '------------------------------------------------------------------------- + On Error Resume Next + glLogThreshold = lKB + glLogThresholdRecs = lKB * giLOG_RECORD_KILOBYTES +End Property + +Public Property Get IClient_LogThreshold() As Long + IClient_LogThreshold = glLogThreshold +End Property + +Public Property Let IClient_PreLoadServices(ByVal bPreLoad As Boolean) +Attribute IClient_PreLoadServices.VB_Description = "Determines if LoadServiceObject will be called on a directly instantiated AEWorker.Worker object before beginning the test." + '------------------------------------------------------------------------- + 'Purpose: If true, call the Worker's PreLoadService method before + ' starting test + 'Effects: + ' [gbPreloadServices] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbPreloadServices = bPreLoad +End Property + +Public Property Get IClient_PreLoadServices() As Boolean + IClient_PreLoadServices = gbPreloadServices +End Property + +Public Property Let IClient_PersistentServices(ByVal bPersistent As Boolean) +Attribute IClient_PersistentServices.VB_Description = "Sets the value that is used to set the PersistentServices property of a directly instantiated AEWorker.Worker object." + '------------------------------------------------------------------------- + 'Purpose: Sets the Worker's PersistentServices property + 'Effects: + ' [gbPersistentServices] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbPersistentServices = bPersistent +End Property + +Public Property Get IClient_PersistentServices() As Boolean + IClient_PersistentServices = gbPersistentServices +End Property + +Public Property Let IClient_LogWorker(ByVal bLog As Boolean) +Attribute IClient_LogWorker.VB_Description = "Sets the value that is used to set the Log property of a directly instantiated AEWorker.Worker object." + '------------------------------------------------------------------------- + 'Purpose: Sets the Worker's Log property + 'Effects: + ' [gbLogWorker] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbLogWorker = bLog +End Property + +Public Property Get IClient_LogWorker() As Boolean + IClient_Log = gbLogWorker +End Property + +Public Property Let IClient_EarlyBindServices(ByVal bEarlyBind As Boolean) +Attribute IClient_EarlyBindServices.VB_Description = "Sets the value that is used to set the EarlyBindServices property of a directly instantiated AEWorker.Worker object." + '------------------------------------------------------------------------- + 'Purpose: Sets the Worker's EarlyBindServices property + 'Effects: + ' [gbEarlyBindServices] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbEarlyBindServices = bEarlyBind +End Property + +Public Property Get IClient_EarlyBindServices() As Boolean + IClient_EarlyBindServices = gbEarlyBindServices +End Property + +'************************ +'Public Methods +'************************ + +Function IClient_GetStatistics() As Variant +Attribute IClient_GetStatistics.VB_Description = "Returns a variant array of test statistics." + '------------------------------------------------------------------------- + 'Purpose: Get the all summary status from the client. + 'Return: Returns a single dimension long array in which + ' element 0 = number of calls, 1 = Begin Milliseonds, + ' and 2 = End Milliseconds + '------------------------------------------------------------------------- + 'Returns statistical data for Explorer computation + Dim lReturn(giSTAT_ARRAY_DIMENSION) As Long + lReturn(giNUM_CALLS_ELEMENT) = glCallsReturned + lReturn(giBEGIN_TICKS_ELEMENT) = glFirstServiceTick + lReturn(giEND_TICKS_ELEMENT) = glLastCallbackTick + IClient_GetStatistics = lReturn() +End Function + +Public Function IClient_GetRecords() As Variant +Attribute IClient_GetRecords.VB_Description = "Returns a variant array of log records." + '------------------------------------------------------------------------- + 'Purpose: Use to retrieve all of the log records created by the client + ' Keep calling until, it does not return a variant array + 'Return: Returns a two dimension array in which + ' the first four elements of the first dimension + ' are Component(string), ServiceID(Long),Comment(string), + ' and Milliseconds(long) respectively + ' the second dimension represents the number of log records + ' User Defined Types can not be returned from public + ' procedures of public classes + 'Effects: [gaLog] + ' Redimensioned after calling GetRecords to not have empty + ' records at the end + ' [glLastAddedRecord] + ' becomes equal to giNO_RECORDS + '------------------------------------------------------------------------- + + GetWrittenLog + 'Trim the array to only send the filled elements + If glLastAddedRecord >= 0 Then + If UBound(gaLog, 2) <> glLastAddedRecord Then ReDim Preserve gaLog(giLOG_ARRAY_DIMENSION_ONE, glLastAddedRecord) + IClient_GetRecords = gaLog() + 'Setting the glLastAddedRecord flag to giNO_RECORD will cause + 'Write log to ignore records on the next call + glLastAddedRecord = giNO_RECORD + Else + IClient_GetRecords = Null + End If +End Function + +Public Sub IClient_StartTest(Optional ByVal lStartDelay As Long = -1&) +Attribute IClient_StartTest.VB_Description = "Starts a test." + '------------------------------------------------------------------------- + 'Purpose: Tells the client to start its Test + 'IN: + ' [lStartDelay] + ' If present it will be used as the timer interval so the start test + ' can be delayed. If missing, a default will be used. + 'Assumes: All properties have already been set + 'Effects: + ' [gbRunCompleteProcedure] + ' becomes false + ' [tmrStartTest] + ' becomes enabled + '------------------------------------------------------------------------- + Dim s As String + + If gbTestInProcess Then Exit Sub + s = LoadResString(giSTART_TEST) + If gbLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + ' Display or hide MTS Transaction status dialog + If glModel = giMODEL_POOL And gvServiceConfiguration(ape_conShowMTSTransactions) _ + And (giServiceTask = (giMASK_USE_DB_TASK Or giMASK_WRITE_MTS_TRANSACTION)) Then + With frmService + .Show vbModeless, frmClient + .Reset + End With + Else + Unload frmService + End If + 'Start timer and release the calling program. When trmStarTest + 'get's its first event it will set its inteval to 0 and call + 'RunTest. + gbRunCompleteProcedure = False + gbStopping = False + With frmClient.tmrStartTest + If lStartDelay <= 0 Then lStartDelay = giDEFAULT_TIMER_INTERVAL + .Interval = lStartDelay + .Enabled = True + End With + Exit Sub +End Sub + + +Public Sub IClient_StopTest() +Attribute IClient_StopTest.VB_Description = "Ends a test." + '------------------------------------------------------------------------- + 'Purpose: Tells the client to Stop its Test + '------------------------------------------------------------------------- + gStopTest +End Sub + +Public Sub IClient_SetSendData(ByVal lContainerType As APEDatasetTypeConstants, ByVal lRowSize As Long, _ + Optional ByVal bRandomizeRowSize As Variant, Optional ByVal lRowSizeMin As Variant, _ + Optional ByVal lRowSizeMax As Variant, _ + Optional ByVal lNumRows As Variant, Optional ByVal bRandomizeNumRows As Variant, _ + Optional ByVal lNumRowsMin As Variant, Optional ByVal lNumRowsMax As Variant) +Attribute IClient_SetSendData.VB_Description = "Determines the type and size of data that will be passed with Service Requests." + '------------------------------------------------------------------------- + 'Purpose: Set all of the parameter for data being passed + ' in with the Service Request from the client. + 'In: + ' [lContainerType] + ' A code specifying the type of data to send with the Service + ' Request. See modAECon.bas for constants + ' [lRowSize] + ' The size of the row in bytes + ' [bRandomizeRowSize] + ' If true Client will pick a random RowSize for every Service + ' Request. lRowSizeMin will become the Lower bound of the range + ' and lRowSizeMax will become the upper bound. + ' [lRowSizeMin] + ' Required if bRandomizeRowSize is true + ' [lRowSizemax] + ' Required if bRandomizeRowSize is true + ' [lNumRows] + ' The number of rows of data to send with the Service Request + ' [bRandomizeNumRows + ' If true Client will pick a random NumRows for every Service + ' Request. lNumRowsMin will become the Lower bound of the range + ' and lNumRowsMax will become the upper bound. + ' [lNumRowsMin] + ' Required if bRandomizeNumRows is true + ' [lNumRowsMax] + ' Required if bRandomizeNumRows is true + 'Effects: + ' [gudtSendNumRows] + ' becomes value of lNumRows + ' [gudtSendRowSize] + ' becomes value of lRowSize + ' [glSendContainerType] + ' becomes value of lContainerType + '------------------------------------------------------------------------- + glSendContainerType = lContainerType + With gudtSendRowSize + .SpecificValue = lRowSize + If IsMissing(bRandomizeRowSize) Then .Random = False Else .Random = CBool(bRandomizeRowSize) + If .Random Then + If IsMissing(lRowSizeMin) Or IsMissing(lRowSizeMax) Then + GoTo SetSendData_InvalidParameter + Else + .LowerValue = lRowSizeMin + .UpperValue = lRowSizeMax + End If + End If + End With + + With gudtSendNumRows + If Not IsMissing(lNumRows) Then .SpecificValue = lNumRows + If IsMissing(bRandomizeNumRows) Then .Random = False Else .Random = CBool(bRandomizeNumRows) + If .Random Then + If IsMissing(lNumRowsMin) Or IsMissing(lNumRowsMax) Then + GoTo SetSendData_InvalidParameter + Else + .LowerValue = lNumRowsMin + .UpperValue = lNumRowsMax + End If + End If + End With + Exit Sub +SetSendData_InvalidParameter: + Err.Raise giREQUIRED_PARAMETER_IS_MISSING + vbObjectError, , LoadResString(giREQUIRED_PARAMETER_IS_MISSING) +End Sub + +Public Sub IClient_SetReceiveData(ByVal lContainerType As APEDatasetTypeConstants, ByVal lRowSize As Long, _ + Optional ByVal bRandomizeRowSize As Variant, Optional ByVal lRowSizeMin As Variant, _ + Optional ByVal lRowSizeMax As Variant, _ + Optional ByVal lNumRows As Variant, Optional ByVal bRandomizeNumRows As Variant, _ + Optional ByVal lNumRowsMin As Variant, Optional ByVal lNumRowsMax As Variant) +Attribute IClient_SetReceiveData.VB_Description = "Determines the type and size of data that will be returned as Service Request results. " + '------------------------------------------------------------------------- + 'Purpose: Set all of the parameter for data being passed + ' to the client as results of the Service Request. + 'In: + ' [lContainerType] + ' A code specifying the type of data to return from the Service + ' Request. See modAECon.bas for constants + ' [lRowSize] + ' The size of the row in bytes + ' [bRandomizeRowSize] + ' If true Client will pick a random RowSize for every Service + ' Request. lRowSizeMin will become the Lower bound of the range + ' and lRowSizeMax will become the upper bound. + ' [lRowSizeMin] + ' Required if bRandomizeRowSize is true + ' [lRowSizemax] + ' Required if bRandomizeRowSize is true + ' [lNumRows] + ' The number of rows of data to return from the Service Request + ' [bRandomizeNumRows + ' If true Client will pick a random NumRows for every Service + ' Request. lNumRowsMin will become the Lower bound of the range + ' and lNumRowsMax will become the upper bound. + ' [lNumRowsMin] + ' Required if bRandomize NumRows is true + ' [lNumRowsMax] + ' Required if bRandomizeNumRows is true + 'Effects: + ' [gudtSendNumRows] + ' becomes value of lNumRows + ' [gudtSendRowSize] + ' becomes value of lRowSize + ' [glSendContainerType] + ' becomes value of lContainerType + '------------------------------------------------------------------------- + glReceiveContainerType = lContainerType + With gudtReceiveRowSize + .SpecificValue = lRowSize + If IsMissing(bRandomizeRowSize) Then .Random = False Else .Random = CBool(bRandomizeRowSize) + If .Random Then + If IsMissing(lRowSizeMin) Or IsMissing(lRowSizeMax) Then + GoTo SetReceiveData_InvalidParameter + Else + .LowerValue = lRowSizeMin + .UpperValue = lRowSizeMax + End If + End If + End With + + With gudtReceiveNumRows + If Not IsMissing(lNumRows) Then .SpecificValue = lNumRows + If IsMissing(bRandomizeNumRows) Then .Random = False Else .Random = CBool(bRandomizeNumRows) + If .Random Then + If IsMissing(lNumRowsMin) Or IsMissing(lNumRowsMax) Then + GoTo SetReceiveData_InvalidParameter + Else + .LowerValue = lNumRowsMin + .UpperValue = lNumRowsMax + End If + End If + End With + Exit Sub +SetReceiveData_InvalidParameter: + Err.Raise giREQUIRED_PARAMETER_IS_MISSING + vbObjectError, , LoadResString(giREQUIRED_PARAMETER_IS_MISSING) +End Sub + +Public Sub IClient_SetServiceConfiguration(ByVal vServiceConfiguration As Variant) + gvServiceConfiguration = vServiceConfiguration +End Sub + +Public Sub IClient_SetProperties(ByVal bShow As Boolean, Optional ByVal bLog As Variant, Optional ByVal lID As Variant, Optional ByVal lModel As Variant, _ + Optional ByVal lLogThreshold As Variant, Optional ByVal iCallbackMode As Variant) +Attribute IClient_SetProperties.VB_Description = "Sets the Client related properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the Client properties in one method call + 'Effects: Sets the following properties to parameter values + ' Show, Log, Model, NumberOfCalls, WaitPeriod, ServiceCommand, + ' ServiceMilliseconds, UseProcessor, LogThreshold, UseDefaultCallback + '------------------------------------------------------------------------- + Me.IClient_Show = bShow + DisplayStatus LoadResString(giINITIALIZING_TEST) + If Not IsMissing(bLog) Then gbLog = bLog + If Not IsMissing(lID) Then Me.IClient_ID = lID + If Not IsMissing(lModel) Then glModel = lModel + If Not IsMissing(lLogThreshold) Then Me.IClient_LogThreshold = lLogThreshold + If Not IsMissing(iCallbackMode) Then Me.IClient_CallbackMode = iCallbackMode +End Sub + +Public Sub IClient_SetTestDuration(Optional ByVal lNumberOfCalls As Variant, _ + Optional ByVal lNumberOfMilliseconds As Variant) +Attribute IClient_SetTestDuration.VB_Description = "Sets how long a test will last in number of calls or number of milliseconds." + '------------------------------------------------------------------------- + 'Purpose: The the parameters effecting the TestDuration + 'In: If no parameters are present then the test will continue + ' until interupted by the Stop test method. + ' [lNumberOfCalls] + ' If present, the test duration will last for a number of + ' calls specified by this parameter + ' [lNumberOfMilliseconds] + ' If present and lNumberOfCalls is missing, the test duration + ' will last for the number of milliseconds specified by this + ' parameter. + '------------------------------------------------------------------------- + If Not IsMissing(lNumberOfCalls) Then + giTestDurationMode = giTEST_DURATION_CALLS + glNumberOfCalls = lNumberOfCalls + ElseIf Not IsMissing(lNumberOfMilliseconds) Then + giTestDurationMode = giTEST_DURATION_TICKS + glTestDurationInTicks = lNumberOfMilliseconds + Else + giTestDurationMode = giTEST_DURATION_CONTINUE + End If +End Sub + +Public Sub IClient_SetWaitPeriod(ByVal lMilliseconds As Long, Optional ByVal bRandom As Variant, _ + Optional ByVal lMillisecondsMin As Variant, _ + Optional ByVal lMillisecondsMax As Variant) +Attribute IClient_SetWaitPeriod.VB_Description = "Sets how long the Client will wait between submitting Service Requests in milliseconds." + '------------------------------------------------------------------------- + 'Purpose: Specifies how many Milliseconds to wait between each call + 'Effects: + ' [gudtWaitPeriod] + ' Set equal to parameter + '------------------------------------------------------------------------- + With gudtWaitPeriod + .SpecificValue = lMilliseconds + If IsMissing(bRandom) Then .Random = False Else .Random = CBool(bRandom) + If .Random Then + If IsMissing(lMillisecondsMin) Or IsMissing(lMillisecondsMax) Then + GoTo SetWaitPeriod_InvalidParameter + Else + .LowerValue = lMillisecondsMin + .UpperValue = lMillisecondsMax + End If + End If + End With + Exit Sub +SetWaitPeriod_InvalidParameter: + Err.Raise giREQUIRED_PARAMETER_IS_MISSING + vbObjectError, , LoadResString(giREQUIRED_PARAMETER_IS_MISSING) +End Sub + +Public Sub IClient_SetTaskDuration(ByVal lMilliseconds As Long, Optional ByVal bRandom As Variant, _ + Optional ByVal lMillisecondsMin As Variant, _ + Optional ByVal lMillisecondsMax As Variant) +Attribute IClient_SetTaskDuration.VB_Description = "Sets how long the default service object's task will execute in milliseconds." + '------------------------------------------------------------------------- + 'Purpose: Specifies how many milliseconds the Service should use the processor on each call + 'Effects: + ' [gudtTaskDuration] + ' Set equal to parameter + '------------------------------------------------------------------------- + With gudtTaskDuration + .SpecificValue = lMilliseconds + If IsMissing(bRandom) Then .Random = False Else .Random = CBool(bRandom) + If .Random Then + If IsMissing(lMillisecondsMin) Or IsMissing(lMillisecondsMax) Then + GoTo SetTaskDuration_InvalidParameter + Else + .LowerValue = lMillisecondsMin + .UpperValue = lMillisecondsMax + End If + End If + End With + Exit Sub +SetTaskDuration_InvalidParameter: + Err.Raise giREQUIRED_PARAMETER_IS_MISSING + vbObjectError, , LoadResString(giREQUIRED_PARAMETER_IS_MISSING) +End Sub + +Public Sub IClient_SetSleepPeriod(ByVal lMilliseconds As Long, Optional ByVal bRandom As Variant, _ + Optional ByVal lMillisecondsMin As Variant, _ + Optional ByVal lMillisecondsMax As Variant) + '------------------------------------------------------------------------- + 'Purpose: Specifies how many milliseconds the Service should sleep on each call + 'Effects: + ' [gudtSleepPeriod] + ' Set equal to parameter + '------------------------------------------------------------------------- + With gudtSleepPeriod + .SpecificValue = lMilliseconds + If IsMissing(bRandom) Then .Random = False Else .Random = CBool(bRandom) + If .Random Then + If IsMissing(lMillisecondsMin) Or IsMissing(lMillisecondsMax) Then + GoTo SetSleepPeriod_InvalidParameter + Else + .LowerValue = lMillisecondsMin + .UpperValue = lMillisecondsMax + End If + End If + End With + Exit Sub +SetSleepPeriod_InvalidParameter: + Err.Raise giREQUIRED_PARAMETER_IS_MISSING + vbObjectError, , LoadResString(giREQUIRED_PARAMETER_IS_MISSING) +End Sub + +Public Sub IClient_SetServiceTask(ByVal iServiceTask As Integer) +Attribute IClient_SetServiceTask.VB_Description = "Sets the task that the default service will execute." + '------------------------------------------------------------------------- + 'Purpose: To instruct Client what task to require from AEService.Service + 'Effects: + ' [giServiceTask] + ' Set equal to parameter + '------------------------------------------------------------------------- + giServiceTask = iServiceTask +End Sub + +Public Sub IClient_SetDatabaseQuery(ByVal sQuery As String) + '------------------------------------------------------------------------- + 'Purpose: Specifies the query used for a database task + 'Effects: + ' [gsDatabaseQuery] + ' Set equal to parameter + '------------------------------------------------------------------------- + gsDatabaseQuery = sQuery +End Sub + +Public Sub IClient_SetServiceCommand(ByVal bUseDefaultService As Boolean, Optional ByVal sName As Variant) +Attribute IClient_SetServiceCommand.VB_Description = "Determines if the default Service object or a custom service object will be used." + '------------------------------------------------------------------------- + 'Purpose: Specifies what ProgID to and command to use for Service + ' requests + 'IN: + ' [bUseDefaultService] + ' If true use default service, else use require following parameter + ' as service command + ' [sName] + ' Required if bUseDefaultService is False + ' Ex: "Library.Class.Method" + 'Effects: + ' [gsServiceCommand] + ' Set equal to parameter + '------------------------------------------------------------------------- + gbUseDefaultService = bUseDefaultService + If Not bUseDefaultService Then + If IsMissing(sName) Then + GoTo SetServiceCommand_InvalidParameter + ElseIf VarType(sName) <> vbString Then + GoTo SetServiceCommand_InvalidParameter + Else + gsServiceCommand = sName + End If + End If + Exit Sub +SetServiceCommand_InvalidParameter: + Err.Raise giREQUIRED_PARAMETER_IS_MISSING + vbObjectError, , LoadResString(giREQUIRED_PARAMETER_IS_MISSING) +End Sub + +Public Sub IClient_SetWorkerProperties(ByVal bLog As Boolean, Optional ByVal bEarlyBindServices As Variant, _ + Optional ByVal bPersistentServices As Variant, Optional ByVal bPreloadServices As Variant) +Attribute IClient_SetWorkerProperties.VB_Description = "Sets all Worker related properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the Worker properties in one method call + 'Effects: Sets the following properties to parameter values + ' ShowWorker, LogWorker, EarlyBindServices, PersistentServices + ' PreloadServices + '------------------------------------------------------------------------- + gbLogWorker = bLog + If Not IsMissing(bEarlyBindServices) Then gbEarlyBindServices = bEarlyBindServices + If Not IsMissing(bPersistentServices) Then IClient_PersistentServices = bPersistentServices + If Not IsMissing(bPreloadServices) Then gbPreloadServices = bPreloadServices + +End Sub + +Public Sub IClient_SetConnectionProperties(ByVal bRemote As Boolean, Optional ByVal bNetOLE As Variant, _ + Optional ByVal sAddress As Variant, Optional ByVal sProtocol As Variant, _ + Optional ByVal lAuthentication As Variant) +Attribute IClient_SetConnectionProperties.VB_Description = "Sets the connection properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the Connection Settings that the Client will use to + ' connect to a remote Worker + 'In: + ' [bRemote] + ' If true connect to a remote Worker instead of a local one + ' [bNetOLE] + ' If true use NetOLE (DCOM) instead of Remote Automation + ' [sAddress] + ' Machine name to connect to + ' [sProtocol] + ' Protocol sequence to use when connecting to remote objects + ' [lAuthentication] + ' Authentication level to use + 'Effects: The following globals are set to the value of the corresponding + ' parameters: + ' gbConnectionRemote, gbConnectionNetOLE, gsConnectionAddress + ' gsConnectionProtocol, glConnectionAuthentication + '------------------------------------------------------------------------- + gbConnectionRemote = bRemote + If Not IsMissing(bNetOLE) Then gbConnectionNetOLE = bNetOLE + If Not IsMissing(sAddress) Then gsConnectionAddress = sAddress + If Not IsMissing(sProtocol) Then gsConnectionProtocol = sProtocol + If Not IsMissing(lAuthentication) Then glConnectionAuthentication = lAuthentication + +End Sub + +'****************** +'Private Procedures +'****************** + +Private Sub RestoreLocalConnSettings() + '------------------------------------------------------------------------- + 'Purpose: If this AEClient was the first client created on the local + ' machine, restores the Connections Settings of the Worker and + ' the QueueMgr to local. Settings need to be restored to + ' local incase machine is used as a server in another session. + '------------------------------------------------------------------------- + Dim iResult As Integer + 'Called by Class_Terminate + + If mbFirstClientOnMachine Then + iResult = goRegClass.SetAutoServerSettings(False, "AEWorker.Worker") + iResult = goRegClass.SetAutoServerSettings(False, "AEQueueMgr.Queue") + iResult = goRegClass.SetAutoServerSettings(False, "AEPoolMgr.Pool") + End If +End Sub + +Private Sub Class_Initialize() + On Error GoTo Class_InitializeError + '------------------------------------------------------------------------- + 'Purpose: If this is the first instanciation + ' Put the Client in a "Ready" state. Load RacReg, set property + ' defaults + 'Effects: + ' [glInstances] + ' increments it by one + '------------------------------------------------------------------------- + 'Keep track of the number of instances + 'to responsd to the first instancing + glInstances = glInstances + 1 + If glInstances = 1 Then + If Not App.PrevInstance Then mbFirstClientOnMachine = True + 'Make sure we don't get a timeout when starting OLE server across the net. + App.OleServerBusyRaiseError = True + App.OleServerBusyTimeout = 10000 + 'Create Objects + Set goRegClass = New RacReg.RegClass + + Set gcServices = New Collection + glLastAddedRecord = giNO_RECORD + 'Get a temp file name + gsTempFile = GetTempFile + 'Default Properties and variables + glModel = giMODEL_QUEUE + gbTestInProcess = False + glSendContainerType = giCONTAINER_TYPE_VARRAY + glReceiveContainerType = giCONTAINER_TYPE_VARRAY + gbShow = True + gbLog = True + glModel = giMODEL_QUEUE + glCallsMade = 0 + gbShow = True + gbLog = True + gbLogWorker = True + glLogThreshold = 0 + 'Set status flags + gbStopping = False + End If + Exit Sub +Class_InitializeError: + LogError Err + Resume Next +End Sub + +Private Sub Class_Terminate() + '------------------------------------------------------------------------- + 'Purpose: If the last reference to the Client is destroyed + ' Close the Client + 'Effects: + ' Restore Local connection settings + ' Run gStopTest + ' Delete Temporary file + ' [glInstances] + ' decrements it by one + '------------------------------------------------------------------------- + On Error GoTo Class_TerminateError + glInstances = glInstances - 1 + If glInstances <= 0 Then + 'There is one internal reference to the Client class in the form module. So, + 'we need to terminate when glInstances = 1 not 0. + 'Call gStopTest so that Services are cancelled + 'and set flag for shut down after Services are cancelled + RestoreLocalConnSettings + Close 'close in case getting logs was canceled + Kill gsTempFile + gbShutDown = True + gStopTest + Set goExplorer = Nothing + End If + Exit Sub +Class_TerminateError: + Select Case Err.Number + Case ERR_FILE_NOT_FOUND + 'There is no file to kill + Resume Next + Case Else + LogError Err + Resume Next + End Select +End Sub + + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLIENT.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLIENT.ICO new file mode 100644 index 0000000..02bc5a6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLIENT.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSCALBK.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSCALBK.CLS new file mode 100644 index 0000000..ab88a77 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSCALBK.CLS @@ -0,0 +1,36 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "clsCallback" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "Callback object passed to AEQueueMgr.Queue for the return of Service Request results." +Option Explicit + '------------------------------------------------------------------------- + 'Used to for callback objects to be sent with Service Requests to QueueMgr. + '------------------------------------------------------------------------- +Implements APEInterfaces.IClientCallback + +Private Sub IClientCallback_CallBack(ByVal sServiceID As String, ByVal vServiceReturn As Variant, ByVal sServiceError As String) + '------------------------------------------------------------------------- + 'Purpose: Used by the Expediter to notify a Client when an Service is complete. + 'IN: + ' [sServiceID] + ' Service Request ID + ' [vServiceReturn] + ' Data returned by Service Request + ' [sServiceError] + ' Error information for errors that occured processing Service Request. + ' Information is delimited by a semi-colon and a space in the following + ' format: "number; source; description" + 'Effects: + ' Calls CallbackHandler procedure + '------------------------------------------------------------------------- + CallBackHandler sServiceID, vServiceReturn, sServiceError +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSCNTSV.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSCNTSV.CLS new file mode 100644 index 0000000..c498137 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSCNTSV.CLS @@ -0,0 +1,23 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "clsClientService" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'This class is used a structure for information about expected +'Service Request callbacks. Objects of this class are +'added to the gcService collection +'------------------------------------------------------------------------- + +Public sID As String 'Service Request ID +Public sCommand As String 'Service Request Command +Public lStartTicks As Long 'Tick Count of when call was made + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSDRTTL.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSDRTTL.CLS new file mode 100644 index 0000000..fb3e3cf --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSDRTTL.CLS @@ -0,0 +1,254 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "clsDirectTestTool" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'This class provides a RunTest method to be called to run a Direct +'Instanciation model test. +'------------------------------------------------------------------------- + +Public Sub RunTest() + '------------------------------------------------------------------------- + 'Purpose: Executes a loop for glNumberOfCalls each time calling + ' AEWorker.Worker.DoActivity. This method actually runs + ' a test according to set properties + 'Assumes: All Client properties have been set. + 'Effects: + ' Calls CompleteTest when finished calling Worker + ' [gbRunning] + ' Is true during procedure + ' [glFirstServiceTick] + ' becomes the tick count of when the test is started + ' [glLastCallbackTick] + ' becomes the tick count of when the last call is made + ' [glCallsMade] + ' is incremented every time the Worker is called + '------------------------------------------------------------------------- + + 'Called by tmrStartTest so that the StartTest method can release + 'the calling program. + + Const lMAX_COUNT = 2147483647 + Dim s As String 'Error message + Dim sServiceID As String 'Service Request ID + Dim lTicks As Long 'Tick Count + Dim lEndTick As Long 'DoEvents loop until this Tick Count + Dim lCallNumber As Long 'Number of calls to Worker + Dim lNumberOfCalls As Long 'Test duration in number of calls + Dim iDurationMode As Integer 'Test duration mode + Dim lDurationTicksEnd As Long 'Tick that test should end on + Dim bPostingServices As Boolean 'In main loop of procedure + Dim iRetry As Integer 'Number of call reties made by error handling resume + Dim vSendData As Variant 'Data to send with Service request + Dim bRandomSendData As Boolean 'If true vSendData needs generated before each new request + Dim sSendCommand As String 'Command string to be sent with Service Request + Dim bRandomCommand As Boolean 'If true sSendCommand needs generated before each new request + Dim lCallWait As Long 'Number of ticks to wait between calls + Dim bRandomWait As Boolean 'If true lCallWait needs generated before each new request + Dim bSendSomething As Boolean 'If true data needs passed with request + Dim bReceiveSomething As Boolean 'If true data is expected back from request + Dim oWorker As APEInterfaces.IWorker 'Local reference to the Worker + Dim bLog As Boolean 'If true log records + Dim bShow As Boolean 'If true update display + + On Error GoTo RunTestError + 'If there is reentry by a timer click exit sub + If gbRunning Then Exit Sub + gbRunning = True + + 'Set the local variables to direct the testing + Set oWorker = CreateObject("AEWorker.Worker") + 'Pass configuration settings to the Worker + With oWorker + .SetProperties gbLogWorker, gbEarlyBindServices, gbPersistentServices, glClientID 'The Worker ID is the same as the Clients' ID in direct case + If gbPreloadServices Then + .LoadServiceObject IIf(gbUseDefaultService, gsSERVICE_LIB_CLASS, gsServiceCommand), gvServiceConfiguration + End If + End With + + bRandomSendData = GetTestData(bSendSomething, bReceiveSomething, vSendData) + lCallWait = GetValueFromRange(gudtWaitPeriod, bRandomWait) + sSendCommand = GetServiceCommand(bRandomCommand) + bLog = gbLog + bShow = gbShow + + s = LoadResString(giTEST_STARTED) + If bLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + glFirstServiceTick = GetTickCount() + glLastCallbackTick = glFirstServiceTick ' If 0 calls are completed, the time spent will be 0 ticks + + 'Test duration variables + iDurationMode = giTestDurationMode + If iDurationMode = giTEST_DURATION_CALLS Then + lNumberOfCalls = glNumberOfCalls + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + lDurationTicksEnd = glFirstServiceTick + glTestDurationInTicks + End If + + bPostingServices = True +KeepPostingServices: + Do While Not gbStopping + 'Check if new data needs generated because of randomization + If bRandomSendData Then bRandomSendData = GetTestData(bSendSomething, bReceiveSomething, vSendData) + If bRandomWait Then lCallWait = GetValueFromRange(gudtWaitPeriod, bRandomWait) + If bRandomCommand Then sSendCommand = GetServiceCommand(bRandomCommand) + + 'Increment number of calls made + lCallNumber = glCallsMade + 1 + 'Post the service to a worker + 'Post a synchronous service + sServiceID = glClientID & "." & lCallNumber + iRetry = 0 + 'Display CallsMade + If bShow Then + With frmClient + .lblCallsMade = lCallNumber + .lblCallsMade.Refresh + End With + End If + If bSendSomething Then + oWorker.DoService sServiceID, sSendCommand, vSendData + Else + oWorker.DoService sServiceID, sSendCommand + End If + glLastCallbackTick = GetTickCount + 'Display CallsReturned + If bShow Then + With frmClient + .lblCallsReturned = lCallNumber + .lblCallsReturned.Refresh + End With + End If + 'If gbStopping Then Exit Do + 'Go into an idle loop util the next call. + If lCallWait > 0 Then + lEndTick = GetTickCount + lCallWait + Do While GetTickCount() < lEndTick And Not gbStopping + DoEvents + Loop + End If + glCallsMade = lCallNumber + glCallsReturned = lCallNumber + + 'See if it is time to stop the test + If iDurationMode = giTEST_DURATION_CALLS Then + If lCallNumber >= lNumberOfCalls Then Exit Do + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + If GetTickCount >= lDurationTicksEnd Then Exit Do + End If + Loop +StopTestNow: + bPostingServices = False + gbRunning = False + Set oWorker = Nothing + If gbStopping Then + 'Someone hit the stop button on the Explorer. + gStopTest + Exit Sub + End If + If bLog Then AddLogRecord gsNULL_SERVICE_ID, LoadResString(giSERVICES_POSTED), GetTickCount(), False + CompleteTest + Exit Sub +RunTestError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check if stopping test + If gbStopping Then GoTo StopTestNow + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giQUEUE_SERVICE_COLLISION_RETRY), GetTickCount(), False + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + If gbStopping Then Resume Next Else Resume + Else + 'We reached our max retries + s = LoadResString(giCOLLISION_ERROR) + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + Exit Sub + End If + Case ERR_OBJECT_VARIABLE_NOT_SET + 'Worker was not successfully created + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + StopOnError s + Exit Sub + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set oWorker = oInstancer.object("AEWorker.Worker") + Set oInstancer = Nothing + Resume Next + Case RPC_S_UNKNOWN_AUTHN_TYPE + Dim iResult As Integer + 'Tried to connect to a server that does not support + 'specified authentication level. Display message and + 'switch to no authentication and try again + s = LoadResString(giUSING_NO_AUTHENTICATION) + DisplayStatus s + AddLogRecord gsNULL_SERVICE_ID, s, 0, False + glConnectionAuthentication = RPC_C_AUTHN_LEVEL_NONE + iResult = goRegClass.SetAutoServerSettings(True, "AEWorker.Worker", , gsConnectionAddress, gsConnectionProtocol, glConnectionAuthentication) + Resume + Case ERR_OVER_FLOW + s = CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + lCallNumber = 0 + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + Case giRPC_ERROR_ACCESSING_COLLECTION + Set oWorker = Nothing + s = LoadResString(giRPC_ERROR_ACCESSING_COLLECTION) + DisplayStatus s + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + StopOnError s + Exit Sub + Case RPC_PROTOCOL_SEQUENCE_NOT_FOUND + 'Most probably because of an attempt to create a Named Pipe under Win95 + If frmClient.SysInfo.OSPlatform = 1 And gbConnectionNetOLE = False And gbConnectionRemote = True _ + And gsConnectionProtocol = "ncacn_np" Then + Set oWorker = Nothing + s = LoadResString(giNO_NAMED_PIPES_UNDER_WIN95) + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + Exit Sub + End If + Case Else + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + If bPostingServices Then + StopOnError s + Exit Sub + Else + Resume Next + End If + End Select +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSPOOTL.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSPOOTL.CLS new file mode 100644 index 0000000..b48d3b3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSPOOTL.CLS @@ -0,0 +1,546 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "clsPoolTestTool" +Attribute VB_GlobalNameSpace = True +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'This class provides a RunTest method to be called to run a Pool +'Management model test. +'------------------------------------------------------------------------- + +Public Sub RunTest() + '------------------------------------------------------------------------- + 'Purpose: Executes a loop for glNumberOfCalls each time calling + ' AEWorker.Worker.DoActivity. Before each call a Worker + ' is Requested from AEPoolMgr.Pool after each call the + ' Worker is released and PoolMgr is called again to + ' notify of release. This method actually runs + ' a test according to set properties + 'Assumes: All Client properties have been set. + 'Effects: + ' Calls CompleteTest when finished calling Worker + ' [gbRunning] + ' Is true during procedure + ' [glFirstServiceTick] + ' becomes the tick count of when the test is started + ' [glLastCallbackTick] + ' becomes the tick count of when the last call is made + ' [glCallsMade] + ' is incremented every time the Worker is called + ' Exceptions: + ' If only an MTS transaction is being performed, the MTS, not APE's + ' Pool Manager, provides the pool management services. + '------------------------------------------------------------------------- + + 'Called by tmrStartTest so that the StartTest method can release + 'the calling program. + + Const lMAX_COUNT = 2147483647 + Dim s As String 'Error message + Dim sServiceID As String 'Service Request ID + Dim lTicks As Long 'Tick Count + Dim lEndTick As Long 'DoEvents loop until this Tick Count + Dim lCallNumber As Long 'Number of calls to Worker + Dim lNumberOfCalls As Long 'Test duration in number of calls + Dim iDurationMode As Integer 'Test duration mode + Dim lDurationTicksEnd As Long 'Tick that test should end on + Dim bPostingServices As Boolean 'In main loop of procedure + Dim iRetry As Integer 'Number of call reties made by error handling resume + Dim vSendData As Variant 'Data to send with Service request + Dim bRandomSendData As Boolean 'If true vSendData needs generated before each new request + Dim sSendCommand As String 'Command string to be sent with Service Request + Dim bRandomCommand As Boolean 'If true sSendCommand needs generated before each new request + Dim lCallWait As Long 'Number of ticks to wait between calls + Dim bRandomWait As Boolean 'If true lCallWait needs generated before each new request + Dim bSendSomething As Boolean 'If true data needs passed with request + Dim bReceiveSomething As Boolean 'If true data is expected back from request + Dim oWorker As APEInterfaces.IWorker 'Local reference to the Worker + Dim oPool As APEInterfaces.IPool + Dim bLog As Boolean 'If true log records + Dim bShow As Boolean 'If true update display + Dim iPoolWaitRetryCount As Integer 'Number of times retry is need for each call loop + Dim bReleaseWorker As Boolean ' If True, the worker needs to be released before leaving the procedure + + bReleaseWorker = False + + On Error GoTo RunTestError + 'If there is reentry by a timer click exit sub + If gbRunning Then Exit Sub + gbRunning = True + + ' If only an MTS transaction is being performed, use MTS as pool manager + If (giServiceTask = (giMASK_USE_DB_TASK Or giMASK_WRITE_MTS_TRANSACTION)) Then + RunMTSTest + Exit Sub + End If + + 'Set the local variables to direct the testing + Set oPool = CreateObject("AEPoolMgr.Pool") + + bRandomSendData = GetTestData(bSendSomething, bReceiveSomething, vSendData) + lCallWait = GetValueFromRange(gudtWaitPeriod, bRandomWait) + sSendCommand = GetServiceCommand(bRandomCommand) + bLog = gbLog + bShow = gbShow + + s = LoadResString(giTEST_STARTED) + If bLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + glFirstServiceTick = GetTickCount() + glLastCallbackTick = glFirstServiceTick ' If 0 calls are completed, the time spent will be 0 ticks + + 'Test duration variables + iDurationMode = giTestDurationMode + If iDurationMode = giTEST_DURATION_CALLS Then + lNumberOfCalls = glNumberOfCalls + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + lDurationTicksEnd = glFirstServiceTick + glTestDurationInTicks + End If + + bPostingServices = True + Do While Not gbStopping + 'Check if new data needs generated because of randomization + If bRandomSendData Then bRandomSendData = GetTestData(bSendSomething, bReceiveSomething, vSendData) + If bRandomWait Then lCallWait = GetValueFromRange(gudtWaitPeriod, bRandomWait) + If bRandomCommand Then sSendCommand = GetServiceCommand(bRandomCommand) + + 'Increment number of calls made + lCallNumber = glCallsMade + 1 + 'Get a Worker from the PoolMgr + 'Post the service to a worker + 'Post a synchronous service + sServiceID = glClientID & "." & lCallNumber + iRetry = 0 + iPoolWaitRetryCount = 0 +RunTest_GetWorkerRetry: + Set oWorker = oPool.GetWorker + 'Pool Manager may reject request for worker + 'If it does wait sometime and retry + If oWorker Is Nothing Then GoTo RunTest_WaitForPool + bReleaseWorker = True + iRetry = 0 + iPoolWaitRetryCount = 0 + 'Display CallsMade + If bShow Then + With frmClient + .lblCallsMade = lCallNumber + .lblCallsMade.Refresh + End With + End If + If bSendSomething Then + oWorker.DoService sServiceID, sSendCommand, vSendData + Else + oWorker.DoService sServiceID, sSendCommand + End If + glLastCallbackTick = GetTickCount + Set oWorker = Nothing + oPool.ReleaseWorker + bReleaseWorker = False + + 'Display CallsReturned + If bShow Then + With frmClient + .lblCallsReturned = lCallNumber + .lblCallsReturned.Refresh + End With + End If + 'If gbStopping Then Exit Do + 'Go into an idle loop util the next call. + If lCallWait > 0 Then + lEndTick = GetTickCount + lCallWait + Do While GetTickCount() < lEndTick And Not gbStopping + DoEvents + Loop + End If + glCallsMade = lCallNumber + glCallsReturned = lCallNumber + + 'See if it is time to stop the test + If iDurationMode = giTEST_DURATION_CALLS Then + If lCallNumber >= lNumberOfCalls Then Exit Do + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + If GetTickCount >= lDurationTicksEnd Then Exit Do + End If + Loop +StopTestNow: + bPostingServices = False + gbRunning = False + Set oWorker = Nothing + If gbStopping Then + 'Someone hit the stop button on the Explorer. + gStopTest + GoTo CleanupAndExit + End If + If bLog Then AddLogRecord gsNULL_SERVICE_ID, LoadResString(giSERVICES_POSTED), GetTickCount(), False + CompleteTest + GoTo CleanupAndExit +RunTest_WaitForPool: + If iPoolWaitRetryCount <= giMAX_ALLOWED_RETRIES Then + iPoolWaitRetryCount = iPoolWaitRetryCount + 1 + lEndTick = GetTickCount + lCallWait + giPOOL_WAIT_RETRY_MIN + Do While GetTickCount() < lEndTick And Not gbStopping + DoEvents + Loop + GoTo RunTest_GetWorkerRetry + Else + 'We reached our max retries + s = LoadResString(giPOOL_MGR_REJECTION_WAITS_EXHAUSTED) + If bLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + Exit Sub + End If + Exit Sub +RunTestError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check if stopping test + If gbStopping Then GoTo StopTestNow + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giQUEUE_SERVICE_COLLISION_RETRY), GetTickCount(), False + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + If gbStopping Then Resume Next Else Resume + Else + 'We reached our max retries + s = LoadResString(giCOLLISION_ERROR) + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + GoTo CleanupAndExit + End If + Case ERR_OBJECT_VARIABLE_NOT_SET + 'Worker was not successfully created + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + StopOnError s + Exit Sub + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set oWorker = oInstancer.object("AEWorker.Worker") + Set oInstancer = Nothing + Resume Next + Case RPC_S_UNKNOWN_AUTHN_TYPE + 'Tried to connect to a server that does not support + 'specified authentication level. Display message and + 'switch to no authentication and try again + Dim iResult As Integer + s = LoadResString(giUSING_NO_AUTHENTICATION) + DisplayStatus s + AddLogRecord gsNULL_SERVICE_ID, s, 0, False + glConnectionAuthentication = RPC_C_AUTHN_LEVEL_NONE + iResult = goRegClass.SetAutoServerSettings(True, "AEPoolMgr.Pool", , gsConnectionAddress, gsConnectionProtocol, glConnectionAuthentication) + Resume + Case ERR_OVER_FLOW + s = CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + lCallNumber = 0 + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + Case giRPC_ERROR_ACCESSING_COLLECTION + Set oWorker = Nothing + oPool.ReleaseWorker + bReleaseWorker = False + s = LoadResString(giRPC_ERROR_ACCESSING_COLLECTION) + DisplayStatus s + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + StopOnError s + Exit Sub + Case RPC_PROTOCOL_SEQUENCE_NOT_FOUND + 'Most probably because of an attempt to create a Named Pipe under Win95 + If frmClient.SysInfo.OSPlatform = 1 And gbConnectionNetOLE = False And gbConnectionRemote = True _ + And gsConnectionProtocol = "ncacn_np" Then + Set oWorker = Nothing + oPool.ReleaseWorker + bReleaseWorker = False + s = LoadResString(giNO_NAMED_PIPES_UNDER_WIN95) + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + Exit Sub + End If + Case Else + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + If bPostingServices Then + StopOnError s + GoTo CleanupAndExit + Else + Resume Next + End If + End Select + +CleanupAndExit: + On Error Resume Next + If bReleaseWorker And Not oPool Is Nothing Then + oPool.ReleaseWorker + End If +End Sub + +Public Sub RunMTSTest() + ' Similar to RunTest, but specifically for using MTS, not APE's Pool Manager, for pooling objects. + ' This occurs when an MTS transaction (and no CPU task) is being performed. + Const lMAX_COUNT = 2147483647 + + Const miMinQueryRetryDelay As Integer = 20 ' Min delay (ms) between retries of a query that failed due to a locking contention + Const miMaxQueryRetryDelay As Integer = 100 ' Max delay (ms) between retries of a query that failed due to a locking contention + + Dim s As String 'Error message + Dim lTicks As Long 'Tick Count + Dim lEndTick As Long 'DoEvents loop until this Tick Count + Dim lCallNumber As Long 'Number of calls to Worker + Dim lNumberOfCalls As Long 'Test duration in number of calls + Dim iDurationMode As Integer 'Test duration mode + Dim lDurationTicksEnd As Long 'Tick that test should end on + Dim bPostingServices As Boolean 'In main loop of procedure + Dim iRetry As Integer 'Number of call reties made by error handling resume + Dim lCallWait As Long 'Number of ticks to wait between calls + Dim bRandomWait As Boolean 'If true lCallWait needs generated before each new request + Dim bLog As Boolean 'If true log records + Dim bShow As Boolean 'If true update display + Dim oMoveMoney As APEInterfaces.IMTSMoveMoney + Dim sConnect As String ' Connect string + Dim eConnectOptions As ape_DbConnectionOptions ' Database connection option + Dim bLogMTSTransactions As Boolean ' If True, log MTS events + Dim bShowMTSTransactions As Boolean ' If True, show MTS events + Dim iTransferRetries As Integer ' Number of attempts at performing the transfer + + On Error GoTo RunMTSTestError + bLog = gbLog + bShow = gbShow + + ' Set up connect string and database connection options + sConnect = gvServiceConfiguration(ape_conConnectionString) + eConnectOptions = gvServiceConfiguration(ape_conConnectionOption) + bLogMTSTransactions = gvServiceConfiguration(ape_conLogMTSTransactions) + bShowMTSTransactions = gvServiceConfiguration(ape_conShowMTSTransactions) + + s = LoadResString(giTEST_STARTED) + If bLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + Randomize + glFirstServiceTick = GetTickCount() + glLastCallbackTick = glFirstServiceTick ' If 0 calls are completed, the time spent will be 0 ticks + + 'Test duration variables + iDurationMode = giTestDurationMode + If iDurationMode = giTEST_DURATION_CALLS Then + lNumberOfCalls = glNumberOfCalls + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + lDurationTicksEnd = glFirstServiceTick + glTestDurationInTicks + End If + + bPostingServices = True + Do While Not gbStopping + 'Increment number of calls made + lCallNumber = glCallsMade + 1 + 'Get a Worker from the PoolMgr + 'Post the service to a worker + 'Post a synchronous service + iRetry = 0 + + ' Create the appropriate MoveMoney object + Set oMoveMoney = CreateObject("AEMTSSvc.MoveMoney") + + iRetry = 0 + If bLogMTSTransactions Then + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giBEGIN_MTS_TRANSACTION), GetTickCount(), False + End If + On Error Resume Next + Const iMAX_ACCOUNT_NO = 1000 ' Highest account number (1 is presumed to be the lowest) + Dim lFromAccount As Long, lToAccount As Long + lFromAccount = 1 + Int(iMAX_ACCOUNT_NO * Rnd) + lToAccount = 1 + Int(iMAX_ACCOUNT_NO * Rnd) + iTransferRetries = 0 + + Dim bRetry As Boolean + Do + bRetry = False + oMoveMoney.Transfer sConnect, eConnectOptions, lFromAccount, lToAccount, 1 + glLastCallbackTick = GetTickCount + Dim lError As Long + lError = Err.Number + On Error GoTo RunMTSTestError + ' If the error is due to a locking contention, try again + If lError <> 0 And iTransferRetries < giMAX_ALLOWED_RETRIES Then + Select Case eConnectOptions + Case ape_idcADO + bRetry = (lError = -2147467259) + Case ape_idcDAO + If lError = 3146 Then + ' First make sure the cause really is a locking contention + Dim DAOErr As DAO.Error + For Each DAOErr In DBEngine.Errors + If DAOErr.Number = 1205 Then ' 1205 = SQL Server record locking contention + bRetry = True + End If + Next + End If + Case ape_idcRDO + If lError = 40002 Then + ' First make sure the cause really is a locking contention + Dim RDOErr As RDO.rdoError + For Each RDOErr In rdoEngine.rdoErrors + If RDOErr.Number = 1205 Then ' 1205 = SQL Server record locking contention + bRetry = True + End If + Next + End If + Case ape_idcODBC + bRetry = (lError = ErrorResourceDeadlock) + End Select + If bRetry Then + iTransferRetries = iTransferRetries + 1 + Sleep miMinQueryRetryDelay + (miMaxQueryRetryDelay - miMinQueryRetryDelay) * Rnd ' Randomize the delay to avoid repeated contentions + DoEvents + End If + End If + Loop While bRetry + If bLogMTSTransactions Then + AddLogRecord gsNULL_SERVICE_ID, LoadResString(IIf(lError = 0, giEND_MTS_TRANSACTION_SUCCEEDED, _ + giEND_MTS_TRANSACTION_FAILED)), GetTickCount(), False + End If + If bShowMTSTransactions Then + frmService.MTSResults (lError = 0) + End If + Set oMoveMoney = Nothing + + 'Display CallsMade + If bShow Then + With frmClient + .lblCallsMade = lCallNumber + .lblCallsReturned = lCallNumber + .lblCallsMade.Refresh + .lblCallsReturned.Refresh + End With + End If + 'If gbStopping Then Exit Do + 'Go into an idle loop util the next call. + If lCallWait > 0 Then + lEndTick = GetTickCount + lCallWait + Do While GetTickCount() < lEndTick And Not gbStopping + DoEvents + Loop + End If + glCallsMade = lCallNumber + glCallsReturned = lCallNumber + + 'See if it is time to stop the test + If iDurationMode = giTEST_DURATION_CALLS Then + If lCallNumber >= lNumberOfCalls Then Exit Do + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + If GetTickCount >= lDurationTicksEnd Then Exit Do + End If + Loop +StopMTSTestNow: + bPostingServices = False + gbRunning = False + Set oMoveMoney = Nothing + If gbStopping Then + 'Someone hit the stop button on the Explorer. + gStopTest + Exit Sub + End If + If bLog Then AddLogRecord gsNULL_SERVICE_ID, LoadResString(giSERVICES_POSTED), GetTickCount(), False + CompleteTest + Exit Sub +RunMTSTestError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check if stopping test + If gbStopping Then GoTo StopMTSTestNow + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giQUEUE_SERVICE_COLLISION_RETRY), GetTickCount(), False + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + If gbStopping Then Resume Next Else Resume + Else + 'We reached our max retries + s = LoadResString(giCOLLISION_ERROR) + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + Exit Sub + End If + Case ERR_OBJECT_VARIABLE_NOT_SET + 'Worker was not successfully created + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + StopOnError s + Exit Sub + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set oMoveMoney = oInstancer.object("AEMTSService.MoveMoney") + Set oInstancer = Nothing + Resume Next + Case ERR_OVER_FLOW + s = CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + lCallNumber = 0 + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + Case ERR_CANT_CREATE_OBJECT ' CreateObject failed + s = LoadResString(giERROR_CREATE_MTS_OBJECT) + DisplayStatus s + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + StopOnError s + Exit Sub + Case Else + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + If bPostingServices Then + StopOnError s + Exit Sub + Else + Resume Next + End If + End Select + +End Sub + + + + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSQUETL.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSQUETL.CLS new file mode 100644 index 0000000..26ad4ba --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/CLSQUETL.CLS @@ -0,0 +1,329 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "clsQueueTestTool" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'This class provides a RunTest method to be called to run a Queue Manager +'model test +'------------------------------------------------------------------------- +Private WithEvents moEventReturn As AEExpediter.EventReturn 'Expediter may raise an event +Attribute moEventReturn.VB_VarHelpID = -1 + 'to return results + +Public Sub RunTest() + '------------------------------------------------------------------------- + 'Purpose: Executes a loop for glNumberOfCalls each time calling + ' AEQueueMgr.Queue.Add. This method actually runs + ' a test according to set properties + 'Assumes: All Client properties have been set. + 'Effects: + ' Calls CompleteTest when finished calling QueueMgr if no + ' callbacks are expected + ' Calls AddServiceRecord procedure after each call to QueueMgr + ' if callbacks are expected + ' [gbRunning] + ' Is true during procedure + ' [glFirstServiceTick] + ' becomes the tick count of when the test is started + ' [glLastCallbackTick] + ' becomes the tick count of when the last call is made + ' [glCallsMade] + ' is incremented every time the QueueMgr is called + ' [glCallsReturned] + ' is incremented every time the QueueMgr is called if no + ' callback is expected + '------------------------------------------------------------------------- + Const lMAX_COUNT = 2147483647 + Dim s As String 'Error message to log and display + Dim sServiceID As String 'Service Request ID + Dim lTicks As Long 'Tick Count in milliseconds + Dim lEndTick As Long 'DoEvents loop until this tick count + Dim lCallNumber As Long 'Number of calls + Dim lNumberOfCalls As Long 'Test duration in number of calls + Dim iDurationMode As Integer 'Test duration mode + Dim lDurationTicksEnd As Long 'Tick that test should end on + Dim iRetry As Integer 'Number of call retries made because call rejection + Dim bPostingServices As Boolean 'If true, in main loop of procedure + Dim vSendData As Variant 'Data to send with Service Request + Dim bRandomSendData As Boolean 'If true vSendData needs generated before each new request + Dim sSendCommand As String 'Command string to be sent with Service Request + Dim bRandomCommand As Boolean 'If true sSendCommand needs generated before each new request + Dim lCallWait As Long 'Number of ticks to wait between calls + Dim bRandomWait As Boolean 'If true lCallWait needs generated before each new request + Dim bSendSomething As Boolean 'If true data needs passed with request + Dim bReceiveSomething As Boolean 'If true something is expeted back + Dim oCallback As clsCallback 'Callback object to pass with requests + Dim bLog As Boolean 'If true log records + Dim bShow As Boolean 'If true update display + Dim iCallbackMode As Integer 'Determines if and how results are returned from QueueMgr + Dim oQueue As APEInterfaces.IQueue 'Queue object to post service requests to + + On Error GoTo RunTestError + + 'If there is reentry by a timer click exit sub + If gbRunning Then Exit Sub + gbRunning = True + + 'Set the local variables to direct the testing + Set oQueue = CreateObject("AEQueueMgr.Queue") + Set oCallback = New clsCallback + bRandomSendData = GetTestData(bSendSomething, bReceiveSomething, vSendData) + lCallWait = GetValueFromRange(gudtWaitPeriod, bRandomWait) + sSendCommand = GetServiceCommand(bRandomCommand) + bLog = gbLog + bShow = gbShow + iCallbackMode = glCallbackMode + + 'Set the DefaultCallback property if it will be needed + 'Setting the default callback even when the client will be passing + 'a callback every call improves performance by keeping RemAuto and DCOM + 'form tearing down the stub and proxy for the callback object + 'when the expediter's reference count of the callback object is zero + 'Having one reference always on the server side keeps the stub and proxy + 'from being torn done, which removes the need for the stub and proxy to have + 'to be continually recreated during the test + If iCallbackMode = giUSE_DEFAULT_CALLBACK Or giUSE_PASSED_CALLBACK Then Set oQueue.DefaultCallBack = oCallback + 'Set the withevents object if it will be needed + If iCallbackMode = giRETURN_BY_SYNC_EVENT Then Set moEventReturn = oQueue.GetEventObject + + s = LoadResString(giTEST_STARTED) + If bLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + glFirstServiceTick = GetTickCount() + glLastCallbackTick = glFirstServiceTick ' If 0 calls are completed, the time spent will be 0 ticks + + 'Test duration variables + iDurationMode = giTestDurationMode + If iDurationMode = giTEST_DURATION_CALLS Then + lNumberOfCalls = glNumberOfCalls + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + lDurationTicksEnd = glFirstServiceTick + glTestDurationInTicks + End If + + bPostingServices = True + Do While Not gbStopping + 'Check if new data needs generated because of randomization + If bRandomSendData Then bRandomSendData = GetTestData(bSendSomething, bReceiveSomething, vSendData) + If bRandomWait Then lCallWait = GetValueFromRange(gudtWaitPeriod, bRandomWait) + If bRandomCommand Then sSendCommand = GetServiceCommand(bRandomCommand) + + 'Increment number of calls made + lCallNumber = glCallsMade + 1 + 'Queue the Service + 'Post this Service to the queue + 'Queue an asynchronous Service + sServiceID = glClientID & "." & lCallNumber + iRetry = 0 + lTicks = GetTickCount + + 'Display CallsMade + If bShow Then + With frmClient.lblCallsMade + .Caption = lCallNumber + .Refresh + End With + End If + + If bReceiveSomething Then + Dim bProcessed As Boolean + 'We are expecting a callback. + Select Case iCallbackMode + Case giUSE_DEFAULT_CALLBACK, giRETURN_BY_SYNC_EVENT + bProcessed = oQueue.Add(sSendCommand, sServiceID, iCallbackMode, vSendData) + Case giUSE_PASSED_CALLBACK + bProcessed = oQueue.Add(sSendCommand, sServiceID, iCallbackMode, vSendData, oCallback) + End Select + 'If not bProcessed then QueueMgr did not process Service request + 'because it was stopped. + If Not bProcessed Then Exit Do + AddServiceRecord sServiceID, sSendCommand, GetTickCount() + ElseIf bSendSomething Then + 'Sending data but nothing comming back. + 'Dont receive a callback. + oQueue.Add sSendCommand, sServiceID, giNO_CALLBACK, vSendData + glLastCallbackTick = GetTickCount + 'Increment the CallsReturned global + glCallsReturned = glCallsReturned + 1 + If bShow Then + With frmClient.lblCallsReturned + .Caption = glCallsReturned + .Refresh + End With + End If + Else + 'Just make the call, nothing else. + oQueue.Add sSendCommand, sServiceID, giNO_CALLBACK + glLastCallbackTick = GetTickCount + 'Increment the CallsReturned global + glCallsReturned = glCallsReturned + 1 + If bShow Then + With frmClient.lblCallsReturned + .Caption = glCallsReturned + .Refresh + End With + End If + End If + If bLog Then AddLogRecord sServiceID, LoadResString(giQUEUE_SERVICE) & gsSEPERATOR & sSendCommand, lTicks, False + + 'If gbStopping Then Exit Do + 'Go into an idle loop util the next call. + 'Also go into idle loop if difference between + 'calls sent and calls received is greater than giCALL_SENT_AND_RECEIVED_MAX_DIFFERENCE + If lCallWait > 0 Or (lCallNumber - glCallsReturned) > giCALL_SENT_AND_RECEIVED_MAX_DIFFERENCE Then + lEndTick = GetTickCount + lCallWait + Do While ((GetTickCount() < lEndTick) Or ((lCallNumber - glCallsReturned) > giCALL_SENT_AND_RECEIVED_MAX_DIFFERENCE)) And Not gbStopping + DoEvents + Loop + End If + glCallsMade = lCallNumber + + 'See if it is time to stop the test + If iDurationMode = giTEST_DURATION_CALLS Then + If lCallNumber >= lNumberOfCalls Then Exit Do + ElseIf iDurationMode = giTEST_DURATION_TICKS Then + If GetTickCount >= lDurationTicksEnd Then Exit Do + End If + Loop +StopTestNow: + bPostingServices = False + gbRunning = False + If gbStopping Then + 'Someone hit the stop button on the Explorer. + gStopTest + Exit Sub + End If + If bLog Then AddLogRecord gsNULL_SERVICE_ID, LoadResString(giSERVICES_POSTED), GetTickCount(), False + If Not bReceiveSomething Or glCallsReturned = glCallsMade Then + 'Not expecting callbacks. The test is done. + CompleteTest + End If + Set oCallback = Nothing + Set oQueue = Nothing + Exit Sub +RunTestError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check if stopping test + If gbStopping Then GoTo StopTestNow + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giQUEUE_SERVICE_COLLISION_RETRY), GetTickCount(), False + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + If gbStopping Then Resume Next Else Resume + Else + 'We reached our max retries + s = LoadResString(giCOLLISION_ERROR) + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + Exit Sub + End If + Case giQUEUE_MGR_IS_BUSY + vbObjectError + lEndTick = GetTickCount + lCallWait + giQUEUE_WAIT_RETRY_MIN + AddLogRecord sServiceID, Err.Description, GetTickCount, False + Do While GetTickCount() < lEndTick And Not gbStopping + DoEvents + Loop + Resume + Case ERR_OBJECT_VARIABLE_NOT_SET + 'QueueMgr was not successfully created + 'stop client + 'If gbStopping is true the error occurred + 'because StopOnError was already called when + 'handling a callback + If Not gbStopping Then + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + StopOnError s + End If + Exit Sub + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set oQueue = oInstancer.object("AEQueueMgr.Queue") + Set oInstancer = Nothing + Resume Next + Case RPC_S_UNKNOWN_AUTHN_TYPE + 'Tried to connect to a server that does not support + 'specified authentication level. Display message and + 'switch to no authentication and try again + Dim iResult As Integer + s = LoadResString(giUSING_NO_AUTHENTICATION) + DisplayStatus s + AddLogRecord gsNULL_SERVICE_ID, s, 0, False + glConnectionAuthentication = RPC_C_AUTHN_LEVEL_NONE + iResult = goRegClass.SetAutoServerSettings(True, "AEQueueMgr.Queue", , gsConnectionAddress, gsConnectionProtocol, glConnectionAuthentication) + Resume + Case ERR_OVER_FLOW + s = CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + If lCallNumber = glMAX_LONG Then lCallNumber = 0 + If glCallsReturned = glMAX_LONG Then glCallsReturned = 0 + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + Case RPC_PROTOCOL_SEQUENCE_NOT_FOUND + 'Most probably because of an attempt to create a Named Pipe under Win95 + If frmClient.SysInfo.OSPlatform = 1 And gbConnectionNetOLE = False And gbConnectionRemote = True _ + And gsConnectionProtocol = "ncacn_np" Then + s = LoadResString(giNO_NAMED_PIPES_UNDER_WIN95) + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + StopOnError s + Exit Sub + End If + Case Else + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + If bPostingServices Then + StopOnError s + Exit Sub + Else + Resume Next + End If + End Select +End Sub + +Private Sub moEventReturn_ServiceResult(ByVal sServiceID As String, ByVal vServiceReturn As Variant, ByVal sServiceError As String) + '------------------------------------------------------------------------- + 'Purpose: Event raised by Expediter class object to return results + 'IN: + ' [sServiceID] + ' Service Request ID + ' [vServiceReturn] + ' Data returned by Service Request + ' [sServiceError] + ' Error information for errors that occured processing Service Request. + ' Information is delimited by a semi-colon and a space in the following + ' format: "number; source; description" + 'Effects: + ' Calls CallbackHandler procedure + '------------------------------------------------------------------------- + CallBackHandler sServiceID, vServiceReturn, sServiceError +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/FRMCLNT.FRM b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/FRMCLNT.FRM new file mode 100644 index 0000000..ce7a4df --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/FRMCLNT.FRM @@ -0,0 +1,222 @@ +VERSION 5.00 +Object = "{6FBA474E-43AC-11CE-9A0E-00AA0062BB4C}#1.0#0"; "SYSINFO.OCX" +Begin VB.Form frmClient + BorderStyle = 1 'Fixed Single + Caption = "Client" + ClientHeight = 2145 + ClientLeft = 270 + ClientTop = 1860 + ClientWidth = 3915 + ClipControls = 0 'False + Icon = "frmclnt.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + ScaleHeight = 2145 + ScaleWidth = 3915 + StartUpPosition = 3 'Windows Default + Begin SysInfoLib.SysInfo SysInfo + Left = 1680 + Top = 840 + _ExtentX = 1005 + _ExtentY = 1005 + _Version = 393216 + End + Begin VB.Timer tmrStartTest + Enabled = 0 'False + Interval = 10 + Left = 240 + Top = 1200 + End + Begin VB.ListBox lstLog + Height = 585 + IntegralHeight = 0 'False + Left = 840 + TabIndex = 0 + Top = 1080 + Visible = 0 'False + Width = 645 + End + Begin VB.Label lblCallsReturnedCaption + BackStyle = 0 'Transparent + Caption = "Calls Returned" + BeginProperty Font + Name = "Tahoma" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Left = 180 + TabIndex = 5 + Top = 480 + Width = 2535 + End + Begin VB.Label lblCallsReturned + BackStyle = 0 'Transparent + BeginProperty Font + Name = "Tahoma" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Left = 2800 + TabIndex = 4 + Top = 480 + Width = 1000 + End + Begin VB.Label lblCallsMade + BackStyle = 0 'Transparent + Caption = "9999999999" + BeginProperty Font + Name = "Tahoma" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Left = 2800 + TabIndex = 3 + Top = 150 + Width = 1000 + End + Begin VB.Label lblStatus + BackStyle = 0 'Transparent + BeginProperty Font + Name = "Tahoma" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 980 + Left = 180 + TabIndex = 2 + Top = 1000 + Width = 3550 + WordWrap = -1 'True + End + Begin VB.Label lblCallsCaption + BackStyle = 0 'Transparent + Caption = "Calls Made" + BeginProperty Font + Name = "Tahoma" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Left = 180 + TabIndex = 1 + Top = 150 + Width = 2535 + End +End +Attribute VB_Name = "frmClient" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Private Sub Form_Load() + '------------------------------------------------------------------------- + 'Effects: + ' Position form and load captions from string resource + '------------------------------------------------------------------------- + 'Use clsPositionForm object to move + 'Form to settings saved in registry + Dim oPosition As clsPositionForm + + Set oPosition = New clsPositionForm + + 'Set Captions + ApplyFontToForm Me + Caption = LoadResString(giFORM_CAPTION) + lblCallsCaption.Caption = LoadResString(giCALLS_MADE_CAPTION) + lblCallsReturnedCaption.Caption = LoadResString(giCALLS_RETURNED_CAPTION) + + 'Conditional compile toggles between release mode + 'and a debug mode which displays a list box and + 'list events as they occur in the box + #If ccShowList Then + lstLog.Visible = True + lblStatus.Visible = False + lblCallsCaption.Visible = False + lblCallsMade.Visible = False + lblCallsReturned.Visible = False + lblCallsReturnedCaption.Visible = False + oPosition.Move Me, True + #Else + oPosition.Move Me, False + Width = giDEFAULT_FORM_WIDTH + Height = giDEFAULT_FORM_HEIGHT + #End If +End Sub + + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + If UnloadMode = vbFormControlMenu And Not gbShutDown Then Cancel = True +End Sub + + +Private Sub Form_Resize() + #If ccShowList Then + Dim lX As Long + Dim lY As Long + If Me.ScaleHeight >= 2 * glFORM_MARGIN Then lY = (Me.ScaleHeight - (2 * glFORM_MARGIN)) Else lY = (2 * glFORM_MARGIN) - Me.ScaleHeight + If Me.ScaleWidth >= 2 * glFORM_MARGIN Then lX = (Me.ScaleWidth - (2 * glFORM_MARGIN)) Else lX = (2 * glFORM_MARGIN) - Me.ScaleWidth + lstLog.Move glFORM_MARGIN, glFORM_MARGIN, lX, lY + #End If +End Sub + +Private Sub Form_Unload(Cancel As Integer) + 'Use clsPositionForm object to save + 'forms position in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + oPosition.Save Me +End Sub + +Private Sub tmrStartTest_Timer() + '------------------------------------------------------------------------- + 'Purpose: + ' Calls Complete test or ConfigureTest and a RunTest method, depending + ' on gbRunCompleteProcedure flag + '------------------------------------------------------------------------- + Static stbInTimer As Boolean + tmrStartTest.Enabled = False + On Error GoTo tmrStartTestError + + If Not stbInTimer Then + stbInTimer = True + If gbRunCompleteProcedure Then + CompleteTest + Else + ConfigureTest + goTestTool.RunTest + End If + stbInTimer = False + End If + Exit Sub +tmrStartTestError: + LogError Err + StopOnError Err.Description + stbInTimer = False + Exit Sub +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/FRMCLNT.FRX b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/FRMCLNT.FRX new file mode 100644 index 0000000..8d0a238 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/FRMCLNT.FRX differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/MODCLNT.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/MODCLNT.BAS new file mode 100644 index 0000000..e3237eb --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AECLIENT/MODCLNT.BAS @@ -0,0 +1,938 @@ +Attribute VB_Name = "modClient" +Option Explicit +'------------------------------------------------------------------------- +'The project is the Client component of the Application Performance Explorer +'This client is designed to be instanciated by and configured by the APE +'Manager. It can generate Service Request by calling the QueueManager. +'Or it can call the Worker to produce synchronous work. In either of these +'sinarios the frequency can vary, and the type and size of data it passes +'can vary. +' +'Key Files: +' frmClnt.frm The only form in the app +' Client.cls Single-use, creatable, public class that provides +' OLE interface for Manager to instanciate and configure +' clsCalbk.cls Not creatable, but public class that is passed to the +' QueueMgr to receive call backs +' clsCntSv.cls Class used to store data on expected callbacks +' clsDrtTl.cls Class providing a runtest method for running direct +' instanciation tests +' clsPosFm.cls Tool form saving form position to registry +' clsQueTl.cls Class providing a runtest method for running Queue +' manager tests +'------------------------------------------------------------------------- + +'Declares +#If UNICODE Then + Declare Function GetTempFileName Lib "Kernel32" Alias "GetTempFileNameW" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long + Declare Function GetTempPath Lib "Kernel32" Alias "GetTempPathW" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long + Public Declare Function GetComputerName Lib "Kernel32" Alias "GetComputerNameW" (ByVal lpBuffer As String, nSize As Long) As Long +#Else + Declare Function GetTempFileName Lib "Kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long + Declare Function GetTempPath Lib "Kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long + Public Declare Function GetComputerName Lib "Kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long +#End If +Public Declare Function GetTickCount Lib "Kernel32" () As Long +Public Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) + +'Caption String Constants +Public Const giFORM_CAPTION As Integer = 101 'Form Caption +Public Const giCALLS_MADE_CAPTION As Integer = 102 +Public Const giCALLS_RETURNED_CAPTION As Integer = 103 + +'Log String Constants +Public Const giCOMPONENT_NAME As Integer = 2 +Public Const giCALLBACK_RECEIVED As Integer = 3 +Public Const giCALLBACK_ERROR_RECEIVED As Integer = 4 +Public Const giQUEUE_SERVICE As Integer = 5 +Public Const giQUEUE_SERVICE_ERROR As Integer = 7 +Public Const giQUEUE_SERVICE_COLLISION_RETRY As Integer = 9 +Public Const giWAIT_PERIOD_ERROR As Integer = 12 +Public Const giSTART_TEST As Integer = 13 +Public Const giSTOP_TEST As Integer = 14 +Public Const giTEST_STARTED As Integer = 16 +Public Const giTEST_COMPLETE As Integer = 17 +Public Const giSERVICES_POSTED As Integer = 18 +Public Const giCALLBACKS_COMPLETE As Integer = 19 +Public Const giINITIALIZING_TEST As Integer = 20 +Public Const giDIRECT_SERVICE As Integer = 21 +Public Const giWRITING_TEMP_FILE As Integer = 23 +Public Const giUSING_NO_AUTHENTICATION As Integer = 24 +Public Const giDISK_FULL As Integer = 26 +Public Const giPOOL_MGR_REJECTION_WAITS_EXHAUSTED As Integer = 27 +Public Const giERROR_CREATE_MTS_OBJECT As Integer = 28 + +Public Const giFONT_CHARSET_INDEX As Integer = 30 +Public Const giFONT_NAME_INDEX As Integer = 31 +Public Const giFONT_SIZE_INDEX As Integer = 32 + +Public Const giERROR_PREFIX As Integer = 50 ' "Error: " + +' MTS Transaction-related text +Public Const giSUCCEEDED_TRANSACTIONS_CAPTION As Integer = 110 +Public Const giABORTED_TRANSACTIONS_CAPTION As Integer = 111 +Public Const giBEGIN_MTS_TRANSACTION As Integer = 112 +Public Const giEND_MTS_TRANSACTION_FAILED As Integer = 113 +Public Const giEND_MTS_TRANSACTION_SUCCEEDED As Integer = 114 +Public Const giMTS_FORM_CAPTION As Integer = 115 + +Public Const giRACREG_ERROR_CODE_OFFSET As Integer = 200 'Add offset to racreg32 error codes + 'to make corresponding resource string key +'Application Error Constants +Public Const giCOLLISION_ERROR As Integer = 32767 'OLE collision retries exausted +Public Const giREQUIRED_PARAMETER_IS_MISSING As Integer = 32765 +Public Const giPOOLMGR_RETURNED_NOTHING As Integer = 32766 +Public Const giCONNECTION_SETTING_FAILED As Integer = 32750 'An error was returned by RacReg32 +Public Const giNO_NAMED_PIPES_UNDER_WIN95 As Integer = 32739 ' Named pipes cannot be created under Win95 +'Queue Manager errors +Public Const giQUEUE_MGR_IS_BUSY As Integer = 32749 + +'Other Constants +Public Const giCALL_SENT_AND_RECEIVED_MAX_DIFFERENCE As Integer = 200 'If the number of calls that the + 'client has made is this much greater than + 'the number of calls received back then + 'pause making calls until callbacks catch up +Public Const giREDIM_CHUNK_SIZE As Integer = 100 'Size of redimension chunks of log array +Public Const giNO_RECORD As Integer = -1 'Flag value meaning no records +Public Const giMAX_ALLOWED_RETRIES As Integer = 500 'Max allowed OLE automation call retries +Public Const giRETRY_WAIT_MIN As Integer = 1000 'Retry Wait is measure in DoEvent cyles +Public Const giRETRY_WAIT_MAX As Integer = 5000 +Public Const giROWS_RETURNED_PER_GET_RECORDS As Integer = 500 'Max number of records returned for + 'each call of GetRecords +Public Const RPC_C_AUTHN_LEVEL_NONE As Integer = 1 'Remote Automation Authentication level constant +Public Const giPOOL_WAIT_RETRY_MIN As Integer = 1000 'The minum milliseconds to wait if the Pool Manager + 'rejects request for a Worker +Public Const giQUEUE_WAIT_RETRY_MIN As Integer = 3000 'The minimum to wait in milliseconds if the Queue + 'raises an error that it is to busy to process + 'a Service Request +Public Const glMAX_LONG As Long = 2147483647 +Public Const giDEFAULT_TIMER_INTERVAL As Integer = 100 +Public Const giSLEEP_INCREMENT As Integer = 500 ' Time (ms) to sleep on each iteration of a delay loop + +'Type +Public Type RANDOM_DATA_GROUP + Random As Boolean + SpecificValue As Long + UpperValue As Long + LowerValue As Long +End Type + +'Global Variables and Objects +Public goTestTool As Object 'Object of a class having RunTest method + 'actually runs the test. Different classes + 'are used for different types of tests +Public gcServices As Collection 'Collection of clsCllietnService class objects + 'stores expected callback information +Public gaLog() As Variant 'Array that stores log records +Public glCallsMade As Long 'Number of calls made in test +Public glCallsReturned As Long 'Number of callbacks made in a test +Public glInstances As Long 'Count of intances of Client class +Public glLogThresholdRecs As Long 'Log threshold in record count +Public goRegClass As RacReg.RegClass 'RacReg used to change connection settings +Public glLastAddedRecord As Long 'Last added log record array index +Public glFirstServiceTick As Long 'Milliseconds of test start +Public glLastCallbackTick As Long 'Milliseconds of end of test +Public gsTempFile As String 'Temporary log file name + +'Flags +Public gbTestInProcess As Boolean 'If true, test is in process +Public gbStopping As Boolean 'If true, stopping test, procedures check it +Public gbShutDown As Boolean 'If true, shutting down client +Public gbRunCompleteProcedure As Boolean 'Timer will run CompleteTest +Public gbRunning As Boolean 'In a RunTest method +Public gbGetWrittenLogCalled As Boolean 'GetWritten log was called + +'Public Property Variables +Public gsServiceCommand As String 'Command string to pass to Queue.Add +Public gbUseDefaultService As Boolean 'If true use default service object +Public gudtWaitPeriod As RANDOM_DATA_GROUP 'How long to wait between calls +Public glNumberOfCalls As Long 'Number of Calls to make in test +Public glTestDurationInTicks As Long 'Number of Milliseconds for Test to last +Public giTestDurationMode As Integer 'Mode of determining test duration +Public gudtSendNumRows As RANDOM_DATA_GROUP 'Number of rows of data to send with Service request +Public gudtSendRowSize As RANDOM_DATA_GROUP 'Number of bytes of data to put in each row of data +Public glSendContainerType As Long 'Type of data to send with Service request +Public gudtReceiveNumRows As RANDOM_DATA_GROUP 'Number of rows to request back from Service request +Public gudtReceiveRowSize As RANDOM_DATA_GROUP 'Size of each row in bytes to request back +Public glReceiveContainerType As Long 'Container type to request back from Service request +Public gudtTaskDuration As RANDOM_DATA_GROUP 'Length of time a Service request should use the processor +Public gudtSleepPeriod As RANDOM_DATA_GROUP 'Length of time a Service request should sleep +Public giServiceTask As Integer 'Code for whether Service should use processor cycles during +Public gsDatabaseQuery As String 'Query for the Service to use to execute a database request +Public giUseProcPercent As Integer 'Percentage of requests that services should use processor +Public gvServiceConfiguration As Variant 'Service configuration information + +Public gbShow As Boolean 'If true, show frmClient during test +Public gbLog As Boolean 'If true log events during test +Public glCallbackMode As Long 'Determines if and how client receives results from + 'services requested from QueueManager + 'see "Callback mode keys" in modAEConstants +Public gbLogWorker As Boolean 'If true, have directly instanciated worker log +Public gbPreloadServices As Boolean 'If true, have directly instanciated worker preload + 'needed service object +Public gbPersistentServices As Boolean 'If true, have directly instanciated worker retain + 'references to Service objects +Public gbEarlyBindServices As Boolean 'If true, have directly instanciated workers use + 'earlybound service objects +Public glModel As Long 'APE framework model to use during test +Public glClientID As Long 'Client ID Manager uses to manager Client object +Public gsConnectionAddress As String 'Net address of APE server objects to use +Public gsConnectionProtocol As String 'Protocol to connect with +Public glConnectionAuthentication As String 'Authentiation level to use +Public gbConnectionRemote As Boolean 'If true, connect to a remote server not local +Public gbConnectionNetOLE As Boolean 'If true, use NetOLE (DCOM) instead of Remote Automation +Public goExplorer As APEInterfaces.IManagerCallback 'Explorer object passed to client from Manager + 'Client calls manager back with this +Public glLogThreshold As Long 'Log threshodl in kilobytes + +Public Sub CompleteTest() + '------------------------------------------------------------------------- + 'Purpose: Release objects used during test, and call Manager with + ' notification the test. + 'Effects: + ' [gbTestInProcess] + ' becomes false + ' [goTesttool] destroyed + ' [goExplorer] destroyed + ' [gcServices] destroyed + '------------------------------------------------------------------------- + Dim s As String + Static stbInCompleteTest As Boolean 'If true already in this procedure + + 'Exit if reentry caused by timer click + 'while calling goExplorer + + If stbInCompleteTest Then Exit Sub + stbInCompleteTest = True + On Error GoTo CompleteTestError + s = LoadResString(giTEST_COMPLETE) + If gbLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + If Not goExplorer Is Nothing Then goExplorer.Done ape_ctClient + Set goTestTool = Nothing + Set gcServices = Nothing + stbInCompleteTest = False + gbTestInProcess = False + Exit Sub +CompleteTestError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim iRetry As Integer + Dim il As Integer + Dim ir As Integer + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giQUEUE_SERVICE_COLLISION_RETRY), GetTickCount(), False + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + Resume + Else + 'We reached our max retries + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giCOLLISION_ERROR), GetTickCount(), False + Resume Next + End If + Case Else + s = LoadResString(giQUEUE_SERVICE_ERROR) & CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + stbInCompleteTest = False + Err.Raise Err.Number, Err.Source, Err.Description + Exit Sub + End Select +End Sub + + +Public Sub gStopTest() + '------------------------------------------------------------------------- + 'Purpose: To stop cancel the current test + 'Assumes: If gbRunning is true, a method procedure or a callback method + ' are being processed. We can exit this procedure and one of those + ' methods will check the gbStopping flag and call gStopTest again + ' If gbShutDown is true, then this procedure was called by the + ' Terminate event of the Client class on the release of its last + ' reference + 'Effects: + ' [gbTestInProcess] + ' becomes false + ' [goTesttool] destroyed + ' [goExplorer] destroyed + ' [gcServices] destroyed + ' [goRegClass] + ' If gbShutDown is true destroy goRegClass + ' [frmClient] + ' If gbShutDown is true unload + '------------------------------------------------------------------------- + Dim oCA As clsClientService + Dim s As String + On Error GoTo gStopTestError + + gbStopping = True + s = LoadResString(giSTOP_TEST) + If gbLog Then AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus s + 'Make sure we are not in the middle of queueing an Service. + 'If we are, get out. QueueService will check the gbStopping flag + 'and call the gStopTest method again when it's done. + If gbRunning Then Exit Sub + Set goTestTool = Nothing + Set gcServices = Nothing + gbTestInProcess = False + 'See if this was called by Terminate if it was unload form + If gbShutDown Then + Set goRegClass = Nothing + Unload frmClient + End If + Exit Sub +gStopTestError: + Select Case Err.Number + Case Else + LogError Err + If glInstances > 0 Then Err.Raise Err.Number, Err.Source, Err.Description + Resume Next + End Select +End Sub + + +Public Sub AddServiceRecord(sID As String, sCommand As String, lTicks As Long) + '------------------------------------------------------------------------- + 'Purpose: Put a new Service Request in the Service collection. + 'In: + ' [sID] Service Request ID + ' [sCommand] + ' Service Request Command sent to QueueMgr + ' [lTicks] + ' Tick count at time of call to QueueMgr + 'Effects: + ' [gcServices] + ' Adds a clsClientService class object to collection + '------------------------------------------------------------------------- + Dim oCA As clsClientService 'Object with properties designed to store + 'Service request information + + Set oCA = New clsClientService + With oCA + .sID = sID + .sCommand = sCommand + .lStartTicks = lTicks + End With + gcServices.Add oCA, oCA.sID +End Sub + +Public Sub WriteLog() + '------------------------------------------------------------------------- + 'Purpose: Writes the current log records to a temp file and + ' removes the records from memory + 'Assumes: If gbGetWrittenLogCalled is true, any records currently in the + ' temporary file are no longer needed, but the file may still be + ' open. + 'Effects: + ' All records currently in gaLog are written to a temporary file + ' and removed from the array + ' [gbGetWrittenLogCalled] + ' becomes false + ' [glLastAddedRecord] + ' becomes giNO_RECORD + ' [gaLog] becomes redimension to store new records + '------------------------------------------------------------------------- + 'Don't save the Component name because the component + 'is always the same + Dim sServiceID As String + Dim sComment As String + Dim lMilliseconds As Long + Dim lFile As Long + Dim l As Long + On Error GoTo WriteLogError + If glLastAddedRecord > giNO_RECORD Then + If gbLog Then + AddLogRecord gsNULL_SERVICE_ID, LoadResString(giWRITING_TEMP_FILE), GetTickCount, False + End If + + 'Check to see if the contents of the temp file + 'need deleted first, the reason it is not delete + 'when the flag is flipped is to give one the chance + 'of rescueing it if the Manager fails to retreive + 'the records from it + If gbGetWrittenLogCalled Then + Close 'Close in case last GetWrittenLogs cancelled + Kill gsTempFile + gbGetWrittenLogCalled = False + End If + + lFile = FreeFile + Open gsTempFile For Append As lFile + For l = 0 To glLastAddedRecord + sServiceID = gaLog(giSERVICE_ELEMENT, l) + sComment = gaLog(giCOMMENT_ELEMENT, l) + lMilliseconds = gaLog(giMILLI_SECONDS_ELEMENT, l) + Write #lFile, sServiceID, sComment, lMilliseconds + 'Reset logrecord counter no after writing the first record + 'so that records are not added after the count that is being + 'written and therefore, lost. This also protects from + 'Addlogrecord trying to write a record greater than + 'giREDIM_CHUNK_SIZE write after gaLog is redimensioned + If l = 0 Then glLastAddedRecord = giNO_RECORD + Next + Close #lFile + 'Remove LogRecords from memory + 'Preserve is used because there is a potential + 'for a log record to be added after the above line + 'but before the following one + ReDim Preserve gaLog(giLOG_ARRAY_DIMENSION_ONE, giREDIM_CHUNK_SIZE) + End If + Exit Sub +WriteLogError: + Select Case Err.Number + Case ERR_DISK_FULL + 'Turn off logging erase array + 'leave present file for later retrieval + DisplayStatus LoadResString(giDISK_FULL) + Close lFile + Erase gaLog + gbLog = False + Exit Sub + Case ERR_FILE_NOT_FOUND + 'There is no temp file to kill + Resume Next + Case Else + Close lFile + Err.Raise Err.Number, Err.Source, Err.Description + Exit Sub + End Select +End Sub + + +Public Sub GetWrittenLog() + '------------------------------------------------------------------------- + 'Purpose: Checks to see if there is log records written to a temp file + ' If there are it inputs it and adds it to the gaLog array + ' If it reaches the chunk size for passing log records it will + ' exit the loop, leaving the file open. It is necessary to keep + ' calling this function until no records or added. Do not call + ' this function more than once until the array that was filled + ' was erased. The external process that is calling a method that + ' calls this procedure should be responsible for calling until + ' all records have been attained. + 'Effects: + ' [gbGetWrittenLogCalled] becomes true + ' Temp file may be left open if all records are not read + ' AddlogRecord is called for each record read + 'Assumption: + ' If gbGetWrittenLogCalled is true then the temp file is already + ' open, ready for the next record to be read. + ' If the EOF is not reached before the glROWS_RETURNED_PER_GET_RECORDS + ' is reached then the external process that called Logger.GetRecords + ' will call it again, to get the rest of the records + '------------------------------------------------------------------------- + + Static stlFile As Long 'File number + Dim sPath As String 'Path and file name of temporary file + Dim sServiceID As String 'Service Request ID + Dim sComment As String 'Comment in log record + Dim lMilliseconds As Long 'Milliseconds in log record + Dim lAddedCount As Long 'Count of how many records have been read and added to memory + + On Error GoTo GetWrittenLogError + sPath = gsTempFile + + 'Open file if it is not open yet + If Not gbGetWrittenLogCalled Then + 'Write records in memory first to order the records + 'with any records that may have already been written + WriteLog + gbGetWrittenLogCalled = True + stlFile = FreeFile + Open sPath For Input As stlFile + End If + + Do Until EOF(stlFile) + 'Component was not saved to temp file because + 'the component name is always the same in this file + Input #stlFile, sServiceID, sComment, lMilliseconds + AddLogRecord sServiceID, sComment, lMilliseconds, True + lAddedCount = lAddedCount + 1 + 'Exit here if max record size was reached + If lAddedCount = giROWS_RETURNED_PER_GET_RECORDS Then Exit Sub + Loop + Close + Exit Sub +GetWrittenLogError: + Select Case Err.Number + Case ERR_FILE_NOT_FOUND + 'There are no written records so exit + Exit Sub + Case ERR_BAD_FILE_NAME + 'We have already reached the end of the file + 'and it has been closed + Exit Sub + Case Else + Close + Err.Raise Err.Number, Err.Source, Err.Description + Exit Sub + End Select +End Sub + + +Public Function GetTempFile() As String + '------------------------------------------------------------------------- + 'Purpose: Gets a temp file name from the system + 'Return: a valid temporary file name + '------------------------------------------------------------------------- + Dim lSize As Long + Dim sPath As String + Dim sName As String + Dim lResult As Long + + sPath = Space(255) + lResult = GetTempPath(255, sPath) + sPath = Left$(sPath, lResult) + sName = Space(255) + lResult = GetTempFileName(sPath, "AEC", 0, sName) + lResult = InStr(sName, vbNullChar) + sName = Left$(sName, lResult - 1) + + GetTempFile = sName +End Function + +Public Sub DisplayString(s As String) + '------------------------------------------------------------------------- + 'Purpose: Adds the passed text to to the list box. Only used if conditional + ' compile ccShowList is true. + 'Assumes: If gbShow is true, form is visible + ' If ccShowList is true, lstLog is visible and positioned + '------------------------------------------------------------------------- + If gbShow Then + With frmClient.lstLog + If .ListCount = giLIST_BOX_MAX Then .Clear + .AddItem s, 0 + End With + End If +End Sub + +Public Sub DisplayStatus(s As String) + '------------------------------------------------------------------------- + 'Purpose: If gbShow is true, displays passed string on forms status box + 'Assumes: If gbShow is true, form is loaded and visible + '------------------------------------------------------------------------- + If gbShow Then + AlignTextToBottom frmClient.lblStatus, s + End If +End Sub + + +'Puts a new log record into the private log array and updates the listbox +'if the the UI is visible. The logs will besent to the manager later. +Public Sub AddLogRecord(sServiceID As String, sComment As String, lMilliseconds As Long, bIgnoreThreshod As Boolean) + '------------------------------------------------------------------------- + 'Purpose: Called to add a record to the gaLog. + 'In: [sServiceID] Service ID that will be added + ' [sComment] Comment that will be added + ' [lMilliseconds] Milliseconds that will be added + ' [bIgnoreThreshold] + ' If true, procedure ignores the Threshold property + ' It will not write the records to a file and + ' remove them from the array + 'Effects: [gaLog] May be redimensioned (preserve) to increase + ' its size + ' [glLastAddedRecord] + ' will be increased by one + '------------------------------------------------------------------------- + Dim lU As Long 'Ubound of array + Dim lIndex As Long 'array index to put records in + + On Error GoTo AddLogRecordError +AddLogRecordTop: + + 'Check if the array needs dimensioned + If glLastAddedRecord = giNO_RECORD Then + ReDim gaLog(giLOG_ARRAY_DIMENSION_ONE, giREDIM_CHUNK_SIZE) + glLastAddedRecord = 0 + lIndex = glLastAddedRecord + Else + lU = UBound(gaLog, 2) + glLastAddedRecord = glLastAddedRecord + 1 + lIndex = glLastAddedRecord + If glLastAddedRecord > lU Then + 'Redim gaRecords to increase size + lU = lU + giREDIM_CHUNK_SIZE + ReDim Preserve gaLog(giLOG_ARRAY_DIMENSION_ONE, lU) + End If + End If + gaLog(giCOMPONENT_ELEMENT, lIndex) = LoadResString(giCOMPONENT_NAME) & Str$(glClientID) + gaLog(giSERVICE_ELEMENT, lIndex) = sServiceID + gaLog(giCOMMENT_ELEMENT, lIndex) = sComment + gaLog(giMILLI_SECONDS_ELEMENT, lIndex) = lMilliseconds + If Not bIgnoreThreshod And glLogThresholdRecs > 0 And glLogThresholdRecs = glLastAddedRecord Then + 'Write the log file + WriteLog + End If + #If ccShowList Then + DisplayString sServiceID & gsSEPERATOR & sComment: DoEvents + #End If + Exit Sub +AddLogRecordError: + Select Case Err.Number + Case ERR_SUBSCRIPT_OUT_OF_RANGE + 'Synchronicity issues caused this + 'Got the glLastAddedRecord write before it got changed + 'but tried to put record in array right after it got redim'ed + Dim bTried + 'If already tried raise error + If bTried Then Err.Raise Err.Number, Err.Source, Err.Description + bTried = True + 'Try the at the top again, getting a new glLastAddedRecord + GoTo AddLogRecordTop + Case Else + DisplayStatus Err.Description + Exit Sub + End Select +End Sub + +Public Sub LogError(ByVal oErr As ErrObject) + '------------------------------------------------------------------------- + 'Purpose: Display error description on forms Status box if the form is + ' visible + 'In: [oErr] + ' Valid error object + '------------------------------------------------------------------------- + Dim s As String + s = LoadResString(giERROR_PREFIX) & Str$(oErr.Number) & gsSEPERATOR & oErr.Source & gsSEPERATOR & oErr.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + DisplayStatus oErr.Description +End Sub + +Function GetValueFromRange(udtRangeData As RANDOM_DATA_GROUP, bRandomValueRequired As Boolean) As Long + Dim lReturn As Long + + With udtRangeData + If .Random Then + Randomize + lReturn = CLng((.UpperValue - .LowerValue + 1) * Rnd + .LowerValue) + Else + lReturn = .SpecificValue + End If + If Not bRandomValueRequired Then bRandomValueRequired = .Random + End With + GetValueFromRange = lReturn +End Function + +Function GetServiceCommand(bRandomCommandRequired As Boolean) As String + Dim sSendCommand As String + Dim iRandom As Integer + + bRandomCommandRequired = False + 'Get ServiceCommand to use + If gbUseDefaultService Then + sSendCommand = gsSERVICE_LIB_CLASS & "." & giServiceTask + Else + sSendCommand = gsServiceCommand + End If + GetServiceCommand = sSendCommand +End Function + + +Function GetTestData(bSendSomething As Boolean, bReceiveSomething As Boolean, vSendData As Variant) As Boolean + Dim s As String + Dim i As Integer + Dim lSendNumRows As Long + Dim lSendRowSize As Long + Dim lReceiveNumRows As Long + Dim lReceiveRowSize As Long + Dim cData As Collection + Dim aData() As Variant + Dim lSendContainerType As Long + Dim lReceiveContainerType As Long + Dim bRandomDataRequired As Boolean + Dim lTaskDuration As Long, lSleepPeriod As Long + + lReceiveContainerType = glReceiveContainerType + lSendContainerType = glSendContainerType + + 'Get Data that will be worked with + lSendNumRows = GetValueFromRange(gudtSendNumRows, bRandomDataRequired) + lSendRowSize = GetValueFromRange(gudtSendRowSize, bRandomDataRequired) + lReceiveNumRows = GetValueFromRange(gudtReceiveNumRows, bRandomDataRequired) + lReceiveRowSize = GetValueFromRange(gudtReceiveRowSize, bRandomDataRequired) + lTaskDuration = GetValueFromRange(gudtTaskDuration, bRandomDataRequired) + lSleepPeriod = GetValueFromRange(gudtSleepPeriod, bRandomDataRequired) + + 'Check if we are sending or receiving any data + 'Clear the data structures + bSendSomething = True + bReceiveSomething = False + + Set cData = New Collection + ReDim aData(0) As Variant + 'Anything to send to the Service? + If (lSendNumRows = 0 Or lSendRowSize = 0) And (lReceiveNumRows = 0 Or lReceiveRowSize = 0) And _ + lTaskDuration = 0 And lSleepPeriod = 0 Then + 'Nothing to send to the Service + ' bSendSomething = False We need to send the service configuration information with each call + Else + bSendSomething = True + 'Fill the data class send data for passing to the Service + s = Space(lSendRowSize) + Select Case lSendContainerType + Case giCONTAINER_TYPE_VARRAY + ReDim Preserve aData(giRECORD_DATA_BEGIN + lSendNumRows - 1) As Variant + For i = giRECORD_DATA_BEGIN To giRECORD_DATA_BEGIN + lSendNumRows - 1 + aData(i) = s + Next i + Case giCONTAINER_TYPE_VCOLLECTION + For i = 1 To lSendNumRows + cData.Add s + Next i + End Select + End If + 'Anything to receive back from the Service? + If (lReceiveNumRows = 0 Or lReceiveRowSize = 0 Or lReceiveContainerType = giCONTAINER_TYPE_NULL) Then + bReceiveSomething = False + lReceiveNumRows = 0 + lReceiveRowSize = 0 + lReceiveContainerType = giCONTAINER_TYPE_NULL + Else + bReceiveSomething = True + End If + 'Some data may actually be sent if something is expected back or a + 'Milliseconds to be used is specified, but only enough data to instruct + 'the Service on what to do. + If bReceiveSomething Or bSendSomething Then + 'Fill the global data class receive parameters for passing to the Service + Select Case lSendContainerType + Case giCONTAINER_TYPE_VARRAY + 'Make sure we have records in our array to fill + If UBound(aData) < giRECORD_DATA_BEGIN - 1 Then + ReDim aData(giRECORD_DATA_BEGIN - 1) As Variant + End If + aData(giRECORD_NUMROWS) = lReceiveNumRows + aData(giRECORD_ROWSIZE) = lReceiveRowSize + aData(giRECORD_TASK_DURATION) = lTaskDuration + aData(giRECORD_SLEEP_PERIOD) = lSleepPeriod + aData(giRECORD_CONTAINER_TYPE) = lReceiveContainerType + aData(giRECORD_DATABASE_QUERY) = gsDatabaseQuery + aData(giRECORD_SERVICE_CONFIGURATION) = gvServiceConfiguration + Case giCONTAINER_TYPE_VCOLLECTION + cData.Add lReceiveNumRows, CStr(giRECORD_NUMROWS) + cData.Add lReceiveRowSize, CStr(giRECORD_ROWSIZE) + cData.Add lTaskDuration, CStr(giRECORD_TASK_DURATION) + cData.Add lSleepPeriod, CStr(giRECORD_SLEEP_PERIOD) + cData.Add lReceiveContainerType, CStr(giRECORD_CONTAINER_TYPE) + cData.Add gsDatabaseQuery, CStr(giRECORD_DATABASE_QUERY) + cData.Add gvServiceConfiguration, CStr(giRECORD_SERVICE_CONFIGURATION) + End Select + End If + + 'Set return value and out parameters + Select Case lSendContainerType + Case giCONTAINER_TYPE_VARRAY + vSendData = aData() + Case giCONTAINER_TYPE_VCOLLECTION + Set vSendData = cData + End Select + GetTestData = bRandomDataRequired +End Function + +Sub ConfigureTest() + '------------------------------------------------------------------------- + 'Purpose: Configure the Client to run a test according to its current + ' properties. + 'Effects: U/I is reset for a new test + ' Remote Connection settings are made useing RacReg + ' [glCallsMade] + ' becomes 0 + ' [glCallsReturned] + ' becomes 0 + ' [gbTestInProcess] + ' becomes true + ' [gbStopping] + ' becomes false + ' [gcServices] + ' is destroyed and reinstanciated + ' [goTestTool] + ' is instanciated with the correct class having a RunTest method + 'Assumption: + ' A test is not already in process + '------------------------------------------------------------------------- + 'Configure test mode and connection settings + Dim iResult As Integer + + 'Set the global status flags + 'If there is reentry by a timer click exit sub + If gbTestInProcess Then Exit Sub + gbTestInProcess = True + 'Clear the Services collection + Set gcServices = Nothing + Set gcServices = New Collection + 'Set global variables + glCallsMade = 0 + glCallsReturned = 0 + 'Display the stautus defaults + If gbShow Then + With frmClient + .lblCallsMade.Caption = 0 + .lblCallsReturned.Caption = 0 + .lblCallsMade.Refresh + .lblCallsReturned.Refresh + End With + End If + 'Set the connection settings for AEWorker.Worker, AEQueueMgr.Queue, AEPoolMgr.Pool + With goRegClass + If gbConnectionRemote Then + If gbConnectionNetOLE Then + iResult = .SetNetOLEServerSettings(True, "AEQueueMgr.Queue", , gsConnectionAddress) + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + iResult = .SetNetOLEServerSettings(True, "AEWorker.Worker", , gsConnectionAddress) + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + iResult = .SetNetOLEServerSettings(True, "AEPoolMgr.Pool", , gsConnectionAddress) + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + Else + iResult = .SetAutoServerSettings(True, "AEQueueMgr.Queue", , gsConnectionAddress, gsConnectionProtocol, glConnectionAuthentication) + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + iResult = .SetAutoServerSettings(True, "AEWorker.Worker", , gsConnectionAddress, gsConnectionProtocol, glConnectionAuthentication) + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + iResult = .SetAutoServerSettings(True, "AEPoolMgr.Pool", , gsConnectionAddress, gsConnectionProtocol, glConnectionAuthentication) + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + End If + Else + iResult = .SetAutoServerSettings(False, "AEQueueMgr.Queue") + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + iResult = .SetAutoServerSettings(False, "AEWorker.Worker") + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + iResult = .SetAutoServerSettings(False, "AEPoolMgr.Pool") + If iResult <> 0 Then GoTo ConfigureTest_RacRegError + End If + End With + 'Check our mode and create instances of the correct objects. + Select Case glModel + Case giMODEL_QUEUE + Set goTestTool = New clsQueueTestTool + Case giMODEL_DIRECT + Set goTestTool = New clsDirectTestTool + Case giMODEL_POOL + Set goTestTool = New clsPoolTestTool + End Select + Exit Sub +ConfigureTest_RacRegError: + Err.Raise giCONNECTION_SETTING_FAILED, , ReplaceString(LoadResString(giCONNECTION_SETTING_FAILED), gsNAME_TOKEN, LoadResString(giRACREG_ERROR_CODE_OFFSET + iResult)) +End Sub + +Sub StopOnError(sMessage As String) + '------------------------------------------------------------------------- + 'Purpose: Stop current test immediately + 'Effects: + ' Calls goExplorer.Done + ' [glLastCallbackTick] + ' becomes value of GetTickCount + ' [goTestTool] is destroyed + ' [gcServices] is destroyed + ' [goExplorer] is destroyed + ' [gbTestInProcess] + ' becomes false + '------------------------------------------------------------------------- + On Error GoTo StopOnError_Error + glLastCallbackTick = GetTickCount() + gbRunning = False + gbStopping = True 'This flags will cause callbacks to be ignored + If gbLog Then AddLogRecord gsNULL_SERVICE_ID, LoadResString(giSERVICES_POSTED), GetTickCount(), False + goExplorer.Done ape_ctClient, sMessage + Set goTestTool = Nothing + Set gcServices = Nothing + gbTestInProcess = False + Exit Sub +StopOnError_Error: + If gbLog Then AddLogRecord gsNULL_SERVICE_ID, LoadResString(giSERVICES_POSTED), GetTickCount(), False + LogError Err + Resume Next +End Sub + +Public Sub CallBackHandler(sServiceID As String, vServiceReturn As Variant, sServiceError As String) + '------------------------------------------------------------------------- + 'Purpose: Called by clsCallback Callback method or . + 'IN: + ' [sServiceID] + ' Service Request ID + ' [vServiceReturn] + ' Data returned by Service Request + ' [sServiceError] + ' Error information for errors that occured processing Service Request. + ' Information is delimited by a semi-colon and a space in the following + ' format: "number; source; description" + 'Effects: + ' May call CompleteTest procedure if all ServiceRequest have been returned + ' [glCallsReturned] + ' Increments by one + ' [gcServices] + ' Removes respective item + '------------------------------------------------------------------------- + Dim lTicks As Long 'Milliseconds + Dim oClientService As clsClientService 'Object storing Service Request information + 'one will be removed from gcServices + Dim s As String + + On Error GoTo CallBackHandlerError + 'Grab the tics, keep a global copy of the last callback tick count for statistics. + glLastCallbackTick = GetTickCount() + 'Exit sub if Stopping test + If gbStopping Then Exit Sub + 'Lookup the Service + If IsNumeric(sServiceID) Then + 'This is a valid Service. + 'Look up the ID in our collection. + Set oClientService = gcServices.Item(sServiceID) + 'No error. This Service is in our Service collection + 'Increment the CallsReturned global + glCallsReturned = glCallsReturned + 1 + If gbShow Then + With frmClient.lblCallsReturned + .Caption = glCallsReturned + .Refresh + End With + End If + If gbLog Then AddLogRecord sServiceID, LoadResString(giCALLBACK_RECEIVED), glLastCallbackTick, False + 'Remove the Service from the collection + gcServices.Remove (sServiceID) + End If + If Len(sServiceError) > 0 Then + 'It's an error message. Log it. + 'And abort test + s = LoadResString(giCALLBACK_ERROR_RECEIVED) & gsSEPERATOR & sServiceError + If gbLog Then AddLogRecord sServiceID, s, lTicks, False + StopOnError s + + End If + 'Are we through with the test yet? + Dim bDone As Boolean + Select Case giTestDurationMode + Case giTEST_DURATION_CALLS + bDone = (glCallsReturned = glNumberOfCalls) + Case giTEST_DURATION_TICKS + bDone = (glCallsReturned = glCallsMade) And Not gbRunning + Case Else + bDone = False + End Select + If bDone Then + 'All Services have been queud and callbacks received. + If gbLog Then AddLogRecord gsNULL_SERVICE_ID, LoadResString(giCALLBACKS_COMPLETE), GetTickCount(), False + 'Release the Explorer before running CompleteTest + gbRunCompleteProcedure = True + frmClient.tmrStartTest.Enabled = True + End If + Exit Sub +CallBackHandlerError: + Select Case Err.Number + Case ERR_INVALID_PROCEDURE_CALL + 'The ServiceID was not found in the Services collection. + LogError Err + Case ERR_OVER_FLOW + s = CStr(Err.Number) & gsSEPERATOR & Err.Source & gsSEPERATOR & Err.Description + glCallsReturned = 0 + DisplayStatus Err.Description + AddLogRecord gsNULL_SERVICE_ID, s, GetTickCount(), False + Case Else + 'Do not raise an error back to the expediter + LogError Err + End Select + Exit Sub +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AECLIENT.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AECLIENT.CMP new file mode 100644 index 0000000..0458be4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AECLIENT.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEEXPDTR.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEEXPDTR.CMP new file mode 100644 index 0000000..05f5927 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEEXPDTR.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEINSTNR.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEINSTNR.CMP new file mode 100644 index 0000000..b985af5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEINSTNR.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AELOGGER.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AELOGGER.CMP new file mode 100644 index 0000000..8994093 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AELOGGER.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEMTSSVC.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEMTSSVC.CMP new file mode 100644 index 0000000..3731dc4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEMTSSVC.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEPOOL.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEPOOL.CMP new file mode 100644 index 0000000..58a49e3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEPOOL.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEQUEUE.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEQUEUE.CMP new file mode 100644 index 0000000..00935f5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEQUEUE.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AESERVIC.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AESERVIC.CMP new file mode 100644 index 0000000..d9a3b94 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AESERVIC.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEWORKER.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEWORKER.CMP new file mode 100644 index 0000000..438deb3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEWORKER.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEWRKPVD.CMP b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEWRKPVD.CMP new file mode 100644 index 0000000..29c8bb9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AECOMPAT/AEWRKPVD.CMP differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.RC new file mode 100644 index 0000000..c170c55 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.RC @@ -0,0 +1,27 @@ +STRINGTABLE DISCARDABLE +BEGIN + 1 "*** Do *NOT* Localize any string that starts with '***'." + 2 "*** They are comments to be used by localizers to identify sections." + 3 "*** They also mark the beginning of a new 'section' within the String Table." + 4 "Callback Called" + 5 "Expediter" + 7 "Calling Callback" + 8 "StopTest Received" + 9 "Call reject retries exhausted" //message displayed when retry callbacks to + //to clients are exhausted + 10 "Retrying rejected callback." + 11 "GetServiceResults called with results returned" + 12 "Could not find EventReturn object" + 13 "Error: " + 29 "*** Font information for all forms. Index 30 is the Character set, Index 31 is Font name, Index 32 is Font Size" + 30 "0" + 31 "Tahoma" + 32 "10" + + //U/I captions + 100 "*** Form U/I captions" + 101 "Expediter" //Form Caption + 102 "Current Backlog" //Current Backlog caption + 103 "Peak Backlog" //Peak Backlog caption + 104 "Total Callbacks" //Total Callbacks caption +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.RES new file mode 100644 index 0000000..037ed40 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.VBP new file mode 100644 index 0000000..1132fc1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/AEEXPDTR.VBP @@ -0,0 +1,53 @@ +Type=OleExe +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#0#..\AEINTRFC\AEIntrfc.tlb#Application Performance Explorer 2.0 Interfaces +Module=modExpediter; modexpdt.bas +Class=CallBackRef; callbkrf.cls +Module=modAEConstants; ..\AEInclud\modaecon.bas +Module=modVBErrors; ..\AEInclud\modvberr.bas +Module=modWin32Errors; ..\AEInclud\modwiner.bas +Class=clsPositionForm; ..\AEInclud\clsposfm.cls +Form=frmexpdt.frm +Class=Expediter; expeditr.cls +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +Class=EventReturn; SyncRtrn.cls +Module=Utility; ..\AEInclud\Utility.bas +Module=Localize; ..\AEInclud\Localize.bas +ResFile32="aeexpdtr.res" +IconForm="frmExpediter" +Startup="Sub Main" +HelpFile="" +Title="APE Expediter" +ExeName32="AEExpdtr.exe" +Path32="..\..\Retail" +Command32="" +Name="AEExpediter" +HelpContextID="0" +Description="Application Performance Explorer Expediter" +CompatibleMode="2" +CompatibleEXE32="..\AECompat\AEExpdtr.cmp" +VersionCompatible32="1" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Expediter" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Expediter" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/CALLBKRF.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/CALLBKRF.CLS new file mode 100644 index 0000000..2d4239f --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/CALLBKRF.CLS @@ -0,0 +1,48 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "CallBackRef" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'Purpose: This class forms a data structure to store Service request +' information. New CallBacksRef objects can be added to a +' collection to store the data +'------------------------------------------------------------------------- +Private mvResult As Variant ' Stores the data to be returned + +Public ServiceID As String 'Service Request ID +Public Object As APEInterfaces.IClientCallback 'Callback object that will be called +Public SyncObject As EventReturn +Public Error As String 'Error description that occurred in Worker + 'while processing task. +Public UseSyncEvent As Boolean +Public CallAttempts As Long 'The number of failed attempts to call the + 'Callback method of the Object property + +Public Property Get Result() As Variant + Select Case VarType(mvResult) + Case vbEmpty, vbNull + Result = Null + Case vbObject, vbError, vbDataObject + Set Result = mvResult + Case Else + Result = mvResult + End Select +End Property + +Public Property Let Result(ByVal vNewValue As Variant) + mvResult = vNewValue +End Property + +Public Property Set Result(ByVal vNewValue As Variant) + Set mvResult = vNewValue +End Property + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/EXPEDITR.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/EXPEDITR.CLS new file mode 100644 index 0000000..8ad4816 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/EXPEDITR.CLS @@ -0,0 +1,230 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "Expediter" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Expediter" +Option Explicit +'------------------------------------------------------------------------- +'The Class is the only public class in this project. See notes in +'modExpediter for purpose. +' It implements the IExpediter interface. +'------------------------------------------------------------------------- + +Implements APEInterfaces.IExpediter + +'*********************** +'Public Properties +'*********************** + +Public Property Set IExpediter_QueueMgrRef(ByVal oQueueMgr As APEInterfaces.IQueueDelegator) +Attribute IExpediter_QueueMgrRef.VB_Description = "Sets the QueueDelegator object that the Expediter uses to receive Service Request results from the AEQueueMgr." + '------------------------------------------------------------------------- + 'Purpose: Called by the the QueueMgr to pass a reference of itself to + ' the Expediter + 'In: [oQueueMgr] + ' A valid reference to a QueueMgr class object + 'Effects: [goQueueDelegator] + ' Sets the global object variable equal to the passed reference + '------------------------------------------------------------------------- + Set goQueueDelegator = oQueueMgr + +End Property + +Public Property Let IExpediter_Show(ByVal bShow As Boolean) +Attribute IExpediter_Show.VB_Description = "Determines whether the Expediter shows a form." + '------------------------------------------------------------------------- + 'Purpose: Show property determines whether or not a form + ' is displayed while expediter is loaded + 'Effects: [gbShow] becomes value of parameter + ' If parameter is true frmExpediter is show, else form + ' is hidden. Form is never unloaded because the timer is needed + '------------------------------------------------------------------------- + + If Not gbShow = bShow Then + gbShow = bShow + If bShow = True Then + frmExpediter.Show + 'Update U/I values + With frmExpediter + .lblBacklog.Caption = glBacklog + .lblPeak = glPeakBacklog + .lblBacklog.Refresh + .lblPeak.Refresh + End With + Else + 'Never Unload form because it has a timer + frmExpediter.Hide + End If + End If + +End Property + +Public Property Get IExpediter_Show() As Boolean + IExpediter_Show = gbShow +End Property + +Public Property Let IExpediter_Log(ByVal bLog As Boolean) +Attribute IExpediter_Log.VB_Description = " Determines if the Expediter logs its events and errors to the AELogger.Logger object." + '------------------------------------------------------------------------- + 'Purpose: If log is true create logger class object and log Services + 'Effects: [gbLog] becomes value of parameter + ' [goLogger] is set to a new AELogger.Logger object if parameter + ' is true. If false goLogger is destroyed + '------------------------------------------------------------------------- + + If Not gbLog = bLog Then + gbLog = bLog + If bLog = True Then + Set goLogger = CreateObject("AELogger.Logger") + Else + Set goLogger = Nothing + End If + End If +End Property + +Public Property Get IExpediter_Log() As Boolean + IExpediter_Log = gbLog +End Property + +'***************** +'Public Methods +'***************** + +Public Sub IExpediter_SetProperties(ByVal bShow As Boolean, Optional ByVal bLog As Variant) +Attribute IExpediter_SetProperties.VB_Description = "Sets properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the Logger properties in one method call + 'Effects: Sets the following properties to parameter values + ' Show, Log + '------------------------------------------------------------------------- + With Me + .IExpediter_Show = bShow + If Not IsMissing(bLog) Then .IExpediter_Log = bLog + End With +End Sub + +Public Sub IExpediter_StopTest() +Attribute IExpediter_StopTest.VB_Description = "Causes the Expediter to stop processing Service Request results and to empty its queue." + '------------------------------------------------------------------------- + 'Purpose: Call this to halt the Expediter and have its + ' collection of Service requests and their + ' respective CallBack objects removed + 'Effects: + ' DestroyReferences may be called + ' [gbStopTest] + ' becomes true + '------------------------------------------------------------------------- + + gbStopTest = True + If Not gbBusy Then DestroyReferences +End Sub + +Public Sub IExpediter_StartTest() +Attribute IExpediter_StartTest.VB_Description = "Prepares the Expediter to process Service Request results after StopTest has been called." + '------------------------------------------------------------------------- + 'Purpose: Call this to allow processing of Services + ' after calling StopTest + 'Effects: + ' Reinitialize values on U/I + ' [gcCallback] + ' Make sure it is a zero count collection + ' [gbStopTest] + ' becomes false + ' [frmExpediter.tmrExpediter] + ' becomes enabled + '------------------------------------------------------------------------- + glPeakBacklog = 0 + glBacklog = 0 + glTotalCallBacks = 0 + With frmExpediter + .lblPeak = 0 + .lblCount = 0 + .lblBacklog = 0 + .lblPeak.Refresh + .lblCount.Refresh + .lblBacklog.Refresh + End With + gbStopTest = False + DisplayStatus "" + Set gcCallBack = Nothing + Set gcCallBack = New Collection + If Not goQueueDelegator Is Nothing Then frmExpediter.tmrExpediter.Interval = giTIMER_INTERVAL +End Sub + +Public Function IExpediter_GetEventObject() As Object + Set IExpediter_GetEventObject = New EventReturn +End Function + +'******************** +'Private Procedures +'******************** + +Private Sub Class_Initialize() + '------------------------------------------------------------------------- + 'Purpose: If this is the first instance, initialize the whole application + ' Set defaults and create needed objects + 'Effects: + ' [glInstances] + ' iterated once to count instances + '------------------------------------------------------------------------- + 'Count how many times this class is instanced + 'to react to the first instance or the release + 'of the last instance. + On Error GoTo Class_InitializeError + glInstances = glInstances + 1 + If glInstances = 1 Then + App.OleServerBusyRaiseError = True + App.OleServerBusyTimeout = 10000 + gbUnloading = False + 'Set default property values + 'Create Logger class object if gbLog is true + If gbLog Then Set goLogger = CreateObject("AELogger.Logger") + gbShow = gbSHOW_FORM_DEFAULT + gbLog = gbLOG_DEFAULT + 'Create gcCallBack collection + Set gcCallBack = New Collection + 'Load frmExpediter because it has a timer + Load frmExpediter + 'Only show the form if gbShow is true + If gbShow Then frmExpediter.Show + End If + Exit Sub +Class_InitializeError: + LogError Err, 0 + Resume Next +End Sub + +Private Sub Class_Terminate() + '------------------------------------------------------------------------- + 'Purpose: If this is the last termination unload form and destroy objects + 'Effects: + ' [glInstances] + ' decrease once to count instances + '------------------------------------------------------------------------- + 'Count how many times this class is instanced + 'so subtract one every terminate event + 'If the last terminate event is occuring + 'make sure forms are unloaded and objects + 'are released + On Error GoTo Class_TerminateError + glInstances = glInstances - 1 + If glInstances = 0 Then + gbUnloading = True + IExpediter_StopTest + End If + Exit Sub +Class_TerminateError: + LogError Err, 0 + Resume Next +End Sub + + + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/EXPETITR.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/EXPETITR.ICO new file mode 100644 index 0000000..05f03d8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/EXPETITR.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/FRMEXPDT.FRM b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/FRMEXPDT.FRM new file mode 100644 index 0000000..3ad125c --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/FRMEXPDT.FRM @@ -0,0 +1,254 @@ +VERSION 5.00 +Begin VB.Form frmExpediter + BorderStyle = 1 'Fixed Single + Caption = "Expediter" + ClientHeight = 2175 + ClientLeft = 10575 + ClientTop = 4875 + ClientWidth = 3915 + ClipControls = 0 'False + Icon = "frmexpdt.frx":0000 + LinkTopic = "Form1" + MaxButton = 0 'False + ScaleHeight = 2175 + ScaleWidth = 3915 + StartUpPosition = 3 'Windows Default + Begin VB.ListBox lstLog + Height = 525 + IntegralHeight = 0 'False + Left = 2880 + TabIndex = 0 + Top = 1350 + Visible = 0 'False + Width = 525 + End + Begin VB.Timer tmrExpediter + Left = 3420 + Top = 1620 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = "Current Backlog" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 0 + Left = 200 + TabIndex = 7 + Top = 120 + Width = 2535 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = "Peak Backlog" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 1 + Left = 200 + TabIndex = 6 + Top = 480 + Width = 2535 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = "Total Callbacks" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 2 + Left = 200 + TabIndex = 5 + Top = 840 + Width = 2535 + End + Begin VB.Label lblBacklog + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2760 + TabIndex = 4 + Top = 120 + Width = 1095 + End + Begin VB.Label lblPeak + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2760 + TabIndex = 3 + Top = 480 + Width = 1095 + End + Begin VB.Label lblCount + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2760 + TabIndex = 2 + Top = 840 + Width = 1095 + End + Begin VB.Label lblStatus + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 800 + Left = 200 + TabIndex = 1 + Top = 1200 + Width = 3450 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmExpediter" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + + +Private Sub Form_Load() + '------------------------------------------------------------------------- + 'Effects: + ' Position form and load captions from string resource + '------------------------------------------------------------------------- + 'Use clsPositionForm object to move + 'Form to settings saved in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + + 'Set the U/I values + ApplyFontToForm Me + Caption = LoadResString(giFORM_CAPTION) + lblCaption(0).Caption = LoadResString(giCURRENT_BACKLOG_CAPTION) + lblCaption(1).Caption = LoadResString(giPEAK_BACKLOG_CAPTION) + lblCaption(2).Caption = LoadResString(giTOTAL_CALLBACK_CAPTION) + + 'Condition compile toggles between a debug + 'mode that displays a list box with displaying + 'all loggable events. + #If ccShowList Then + oPosition.Move Me, True + lstLog.Visible = True + lblStatus.Visible = False + lblBacklog.Visible = False + lblPeak.Visible = False + lblCount.Visible = False + #Else + oPosition.Move Me, False + Width = giDEFAULT_FORM_WIDTH + Height = giDEFAULT_FORM_HEIGHT + #End If +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + 'If user unloads form cancel unload + Dim oPosition As clsPositionForm + 'Use clsPositionForm object to save + 'forms position in registry + Set oPosition = New clsPositionForm + If Me.Visible Then oPosition.Save Me + If UnloadMode = vbFormControlMenu And glInstances <> 0 Then + Cancel = True + End If + +End Sub + +Private Sub Form_Resize() + #If ccShowList Then + Dim lX As Long + Dim lY As Long + If Me.ScaleHeight >= 2 * glFORM_MARGIN Then lY = (Me.ScaleHeight - (2 * glFORM_MARGIN)) Else lY = (2 * glFORM_MARGIN) - Me.ScaleHeight + If Me.ScaleWidth >= 2 * glFORM_MARGIN Then lX = (Me.ScaleWidth - (2 * glFORM_MARGIN)) Else lX = (2 * glFORM_MARGIN) - Me.ScaleWidth + lstLog.Move glFORM_MARGIN, glFORM_MARGIN, lX, lY + #End If +End Sub + +Private Sub tmrExpediter_Timer() + '------------------------------------------------------------------------- + 'Effects: + ' Polls the QueueMgr for Service Results. If any are received the + ' Expediter will attempt to call all the callbacks and deliver the + ' the results + ' + ' If gbStopTest became true during this process DestroyReferences + ' will be called at end of procedure + ' [gbBusy] + ' Is true during procedure + '------------------------------------------------------------------------- + On Error GoTo tmrExpediter_Timer + 'Exit if already entered this procedure + If gbBusy Or gbStopTest Then Exit Sub + gbBusy = True + If PollQueue Then + tmrExpediter.Interval = 0 + DeliverResults + End If + If gbStopTest Then + 'References to Expediter may have + 'been destroyed while PollQueue or DeliverResults + 'was busy. If gbBusy was true when Expediter's references + 'were destoyed, DestroyReferences needs called again to + 'make sure logger and form is destroyed + DestroyReferences + End If + gbBusy = False + Exit Sub +tmrExpediter_Timer: + LogError Err, 0 + Exit Sub +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/FRMEXPDT.FRX b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/FRMEXPDT.FRX new file mode 100644 index 0000000..cf4b203 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/FRMEXPDT.FRX differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/MODEXPDT.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/MODEXPDT.BAS new file mode 100644 index 0000000..f1d463f --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/MODEXPDT.BAS @@ -0,0 +1,452 @@ +Attribute VB_Name = "modExpediter" +Option Explicit +'------------------------------------------------------------------------- +'The project is the Expediter component of the Application Performance Explorer +'The Expediter is a multi-use server that is instanced by the QueueMgr. +'The Expediter pulls Service Results data and Callbacks objects from +'the QueueMgr and then sends the Service Results using the Callback objects +' +'Key Files: +' frmExpdt.frm Only form in this project +' CallbkRf.cls Class used to store callback object and related +' Service request data +' clsPosFm.cls Class used to store Form position in registry +' Expeditr.cls Multi-use creatable class provides OLE interface to app +'------------------------------------------------------------------------- + +'Declares +Declare Function GetTickCount Lib "Kernel32" () As Long + +'U/I captions resource string keys +Public Const giFORM_CAPTION As Integer = 101 +Public Const giCURRENT_BACKLOG_CAPTION As Integer = 102 +Public Const giPEAK_BACKLOG_CAPTION As Integer = 103 +Public Const giTOTAL_CALLBACK_CAPTION As Integer = 104 + +'Constants +Public Const gbSHOW_FORM_DEFAULT As Boolean = False +Public Const gbLOG_DEFAULT As Boolean = False +Public Const glMAX_COUNT As Long = 2147483647 'max size of long data type +Public Const giMAX_ALLOWED_RETRIES As Integer = 500 'maximum number of times one object can be + 'called with call rejection before giving up +Public Const giRETRIES_ALLOWED_BEFORE_MOVING_ON = 10 'Number of retries made on a callback before + 'it is skipped to try again later +Public Const giRETRY_WAIT_MIN As Integer = 500 'Retry Wait is measure in DoEvent cyles +Public Const giRETRY_WAIT_MAX As Integer = 2500 +Public Const giTIMER_INTERVAL As Integer = 1000 + +'Message Constants, resourse string +Public Const giCALLBACK_CALLED As Integer = 4 +Public Const giEXPEDITER_NAME As Integer = 5 +Public Const giCALLING_CALLBACK As Integer = 7 +Public Const giSTOP_TEST_RECEIVED As Integer = 8 +Public Const giCALL_REJECTED_RETRIES_EXHAUSTED As Integer = 9 +Public Const giRETRY_CALLBACK As Integer = 10 +Public Const giGETRESULTS_CALLED_WITH_RETURN = 11 +Public Const giCOULD_NOT_FIND_SYNC_OBJECT = 12 +Public Const giERROR_PREFIX = 13 +Public Const giFONT_CHARSET_INDEX As Integer = 30 +Public Const giFONT_NAME_INDEX As Integer = 31 +Public Const giFONT_SIZE_INDEX As Integer = 32 + +'Public Variables + +Public gbShow As Boolean 'If true show form +Public glInstances As Long 'Count of created instances of Expediter Class +Public gcCallBack As Collection 'Collection of CallBackRef class +Public gbLog As Boolean 'If true log Service +Public goLogger As APEInterfaces.ILogger 'Logger class object +Public goQueueDelegator As APEInterfaces.IQueueDelegator 'QueueMgr object +Public gbStopTest As Boolean 'Flag used to stop processing +Public glBacklog As Long 'The current number of Callbacks ready to be called +Public glPeakBacklog As Long 'The largest that of Callbacks that were ready to be + 'called has been as once +Public glTotalCallBacks As Long 'The total number of Callbacks made +Public gbBusy As Boolean 'If true in frmExpediter.tmrExpediter.Timer event +Public gbUnloading As Boolean 'If true Class_Terminate of Expediter has been entered + +Sub Main() +End Sub + +Public Function PollQueue() As Boolean + '------------------------------------------------------------------------- + 'Purpose: Get Service Results and corresponding Callback objects from the + ' QueueMgr + 'Return: True if one or more Service Result was received from the QueueMgr + 'Assumes: + ' [goQueueDelegator] + ' is a valid AEQueueMgr.QueueDelegator object + ' [gcCallback] + ' is a valid collection object + 'Effects: + ' [gcCallback] + ' A CallBkRf object will be added for every Service Result received + ' from the QueueMgr. + '------------------------------------------------------------------------- + Dim vaResults As Variant 'Variant array that will be received from call + 'to the QueueMgr. Two dimensions: first dimension + 'is fixed each index representing a Service Result + 'element; the second dimension each index represents + 'one Service result. See index constants in + 'modAEConstants + Dim lCount As Long 'Counter used to loop through indexes of the + 'arrays second dimension + Dim oCallBkRef As CallBackRef 'Object to store service results in and add + 'to gcCallback + Dim bReturn As Boolean 'Value to be returned by this function + Dim lUB As Long 'Ubound + + On Error GoTo PollQueueError + bReturn = False + + 'Call the QueueMgr + vaResults = goQueueDelegator.GetServiceResults + + 'Check to see if results were returned + If VarType(vaResults) = vbArray + vbVariant Then + 'Results were returned + bReturn = True + LogEvent giGETRESULTS_CALLED_WITH_RETURN, 0 + 'Put each service result in a CallBackRef object + 'and at it to the gcCallback collection + lUB = UBound(vaResults, 2) + For lCount = 0 To lUB + Set oCallBkRef = New CallBackRef + With oCallBkRef + .ServiceID = vaResults(giRESULT_ID_ELEMENT, lCount) + If vaResults(giRESULT_CALLBACK_TYPE_ELEMENT, lCount) = giRETURN_BY_SYNC_EVENT Then + .UseSyncEvent = True + Set .SyncObject = vaResults(giRESULT_CALLBACK_ELEMENT, lCount) + Else + .UseSyncEvent = False + Set .Object = vaResults(giRESULT_CALLBACK_ELEMENT, lCount) + End If + .Error = vaResults(giRESULT_ERROR_ELEMENT, lCount) + 'Check what data type the data element is + 'in order to determine how to handle it + Select Case VarType(vaResults(giRESULT_DATA_ELEMENT, lCount)) + Case vbEmpty, vbNull + .Result = Null + Case vbObject, vbError, vbDataObject + Set .Result = vaResults(giRESULT_DATA_ELEMENT, lCount) + Case Else + .Result = vaResults(giRESULT_DATA_ELEMENT, lCount) + End Select + End With + gcCallBack.Add oCallBkRef + Set oCallBkRef = Nothing + Next + 'Update Expediter U/I + glBacklog = glBacklog + lUB + 1 + If glBacklog > glPeakBacklog Then + glPeakBacklog = glBacklog + End If + If gbShow Then + With frmExpediter + .lblBacklog.Caption = glBacklog + .lblPeak = glPeakBacklog + .lblBacklog.Refresh + .lblPeak.Refresh + End With + End If + End If + PollQueue = bReturn + Exit Function +PollQueueError: + Dim iRetry As Integer + Dim il As Integer + Dim ir As Integer + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + 'First check for stop test + If gbStopTest Then Exit Function + If iRetry < giRETRIES_ALLOWED_BEFORE_MOVING_ON Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + If gbStopTest Then Exit For + Next il + 'Stop test may have been called during doevents loop + If gbStopTest Then Exit Function Else Resume + End If + Case Else + LogError Err, 0 + End Select + PollQueue = bReturn +End Function + +Public Sub DeliverResults() + '------------------------------------------------------------------------- + 'Purpose: Try to make calls to Callback objects, to deliver Service Results + ' to the corresponding Callback objects. After all callback are + ' at least attempted to be called, call PollQueue to get more + ' Service Results. Try to make calls to all the new Callback + ' objects. Continue cycle until the QueueMgr does not return + ' new Service Results. If the cycle is broken because the QueueMgr + ' did not return Service Results, start the timer so that it + ' will poll the QueueMgr until ServiceResults are obtained + 'Assumes: + ' [gcCallback] + ' is a valid collection object + ' [oCallBkRf.Object] + ' has a valid Callback method + 'Effects: + ' [gcCallback] + ' Is decreased by one CallBkRf object every time a callback is + ' successfully made. + ' After polling the QueueMgr the count will increment for every + ' received Service Result. + '------------------------------------------------------------------------- + Dim oCallBkRf As CallBackRef 'Object for storing Service Result data and + 'its callback + Dim lCurrentIndex As Long 'Index of oCallBkRf in gcCallBack currently + 'being processed + Dim sCurrentID As String 'Current Service ID being processed + 'used for reporting and logging errors + Dim bResult As Boolean 'Result from Calling PollQueue + Dim iRetry As Integer 'Number of retries made to call a specific + 'object using a resume statement + On Error GoTo DeliverResultsError + lCurrentIndex = 1 + +TryNextCallback: + Do While lCurrentIndex <= gcCallBack.Count And Not gbStopTest + Set oCallBkRf = gcCallBack.Item(lCurrentIndex) + sCurrentID = oCallBkRf.ServiceID + 'Call Callback object + LogEvent giCALLING_CALLBACK, sCurrentID + iRetry = 0 + If oCallBkRf.UseSyncEvent Then + oCallBkRf.SyncObject.RaiseServiceResult sCurrentID, oCallBkRf.Result, oCallBkRf.Error + Else + oCallBkRf.Object.CallBack sCurrentID, oCallBkRf.Result, oCallBkRf.Error + End If + LogEvent giCALLBACK_CALLED, sCurrentID + 'Explicitely set callback object to nothing + Set oCallBkRf.Object = Nothing + Set gcCallBack.Item(lCurrentIndex).Object = Nothing + gcCallBack.Remove lCurrentIndex + + 'Update Expediter U/I + glBacklog = glBacklog - 1 + glTotalCallBacks = glTotalCallBacks + 1 + If gbShow Then + With frmExpediter + .lblBacklog.Caption = glBacklog + .lblCount.Caption = glTotalCallBacks + .lblBacklog.Refresh + .lblCount.Refresh + End With + End If + + 'Loop without iterating lCurrentIndex because the lCurrentIndex item + 'will be replaced by one above it after it is removed. + 'lCurrentIndex is only iterated by Error Handling, which will move + 'the process on to another callback after a few retries. + Loop + + 'After going through the whole gcCallBack collection + 'Poll the queuemgr trying to get more ServiceResults + 'Go back to the top of the Loop using index 1 if + 'there are items in gcCallBack after Polling the QueueMgr + bResult = PollQueue + lCurrentIndex = 1 + 'Got to top of loop if there are any items in gcCallBack + 'Do not use the result of the PollQueue function because + 'even if the QueueMgr did not return results there may + 'be items in gcCallBack representing exhausted Callbacks + 'that need to be tried again. + If gcCallBack.Count > 0 And Not gbStopTest Then GoTo TryNextCallback + + 'Before exiting the function start the timer + 'so that the Expediter will keep polling the QueueMgr + frmExpediter.tmrExpediter.Interval = giTIMER_INTERVAL + Exit Sub + +DeliverResultsError: + Dim il As Integer + Dim ir As Integer + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + 'First check for stop test + If gbStopTest Then Exit Sub + If iRetry < giRETRIES_ALLOWED_BEFORE_MOVING_ON Then + 'Iterate the object's retry count + oCallBkRf.CallAttempts = oCallBkRf.CallAttempts + 1 + 'Iterate the number of try's make with Resume + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + LogEvent giRETRY_CALLBACK, sCurrentID + Resume + Else + 'We reached our max retries either move on + 'to the next object in the collection leaving this + 'object to be tried again later or remove the object + 'because this object was had too many callattempts on + 'it specifically. + If oCallBkRf.CallAttempts >= giMAX_ALLOWED_RETRIES Then + 'Give up trying to call this particulary object + 'it will be removed at the end of Select Case block + 'Since it is being removed do not iterate the lCurrenIndex + LogEvent giCALL_REJECTED_RETRIES_EXHAUSTED, sCurrentID + DisplayStatus LoadResString(giCALL_REJECTED_RETRIES_EXHAUSTED) + Else + 'Iterate the lCurrentIndex and do not remove this + 'object. It will be reattempted later + lCurrentIndex = lCurrentIndex + 1 + Resume TryNextCallback + End If + End If + Case ERR_OVER_FLOW + glTotalCallBacks = 0 + LogError Err, sCurrentID + Resume Next + Case ERR_CALL_FAILED_DIDNOT_EXECUTE + LogError Err, sCurrentID + Case Else + LogError Err, sCurrentID + End Select + On Error Resume Next + 'Explicitely set callback object to nothing + Set oCallBkRf.Object = Nothing + Set gcCallBack.Item(lCurrentIndex).Object = Nothing + gcCallBack.Remove lCurrentIndex + Exit Sub +End Sub + +Public Sub LogEvent(intMessage As Integer, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: Receives Message key which is used to look + ' up a resource string. The logrecord is sent to the + ' Logger object if gbLog is true + 'In: [intMessage] + ' A valid Resource string key for the message to be logged + ' [sServiceID] + ' Service Request ID to be logged + 'Assumption: + ' If gbLog is true then goLogger is a valid reference to + ' AELogger.Logger class object + '------------------------------------------------------------------------- + + On Error GoTo LogEventError + If gbLog And Not gbStopTest Then + goLogger.Record LoadResString(giEXPEDITER_NAME), sServiceID, LoadResString(intMessage), GetTickCount() + End If + 'If the form is visible display log on form + #If ccShowList Then + DisplayString sServiceID & gsSEPERATOR & LoadResString(intMessage) + #End If + Exit Sub +LogEventError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim iRetry As Integer + Dim il As Integer + Dim ir As Integer + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + Resume + Else + 'We reached our max retries + 'This would occur when clients are sending + 'there logs + LogError Err, sServiceID + Exit Sub + End If + Case Else + LogError Err, sServiceID + Exit Sub + End Select + Exit Sub +End Sub + +Public Sub LogError(ByVal oErr As ErrObject, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: Display error description on forms Status box if the form is + ' visible; log error if logging is on + 'In: [oErr] + ' Valid error object + ' [sServiceID] + ' Service Request ID logged with the error message + 'Assumption: + ' If gbShow is true the form is loaded and visible + ' If gbLog is true the goLogger is a valid AELogger.Logger class + ' object + '------------------------------------------------------------------------- + + Dim s As String + s = LoadResString(giERROR_PREFIX) & Str$(oErr.Number) & gsSEPERATOR & oErr.Source & gsSEPERATOR & oErr.Description + #If ccShowList Then + If Not gbShow Then + frmExpediter.Show + gbShow = True + End If + DisplayString s + #Else + If Err.Number <> 0 Then DisplayStatus oErr.Description + #End If + If gbLog And glInstances <> 0 Then + goLogger.Record LoadResString(giEXPEDITER_NAME), sServiceID, s, GetTickCount() + End If + Exit Sub +End Sub + +Sub DisplayStatus(s As String) + '------------------------------------------------------------------------- + 'Purpose: If gbShow is true, displays passed string on forms status box + 'Assumes: If gbShow is true, form is loaded and visible + '------------------------------------------------------------------------- + If gbShow Then AlignTextToBottom frmExpediter.lblStatus, s +End Sub + +Sub DisplayString(sText As String) + '------------------------------------------------------------------------- + 'Purpose: Adds the passed text to to the list box. Only used if conditional + ' compile ccShowList is true. + 'Assumes: If gbShow is true, form is visible + ' If ccShowList is true, lstLog is visible and positioned + '------------------------------------------------------------------------- + 'Controls the length of the list box + 'and adds items to the top + #If ccShowList Then + Dim lstLog As ListBox + If gbShow Then + Set lstLog = frmExpediter.lstLog + If lstLog.ListCount = glLIST_BOX_MAX Then lstLog.Clear + lstLog.AddItem sText, 0 + DoEvents + End If + #End If +End Sub + +Sub DestroyReferences() + '------------------------------------------------------------------------- + 'Purpose: Called by in the event of a StopTest call + ' to destroy callback objects + '------------------------------------------------------------------------- + + Dim oCallback As CallBackRef + LogEvent giSTOP_TEST_RECEIVED, 0 + frmExpediter.tmrExpediter.Interval = 0 + For Each oCallback In gcCallBack + Set oCallback.Object = Nothing + Next + Set gcCallBack = Nothing + Set gcCallBack = New Collection + Set goQueueDelegator = Nothing + If gbUnloading Then + If gbLog Then Set goLogger = Nothing + Unload frmExpediter + End If +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/SYNCRTRN.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/SYNCRTRN.CLS new file mode 100644 index 0000000..8a96163 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEEXPDTR/SYNCRTRN.CLS @@ -0,0 +1,28 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "EventReturn" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = True +Attribute VB_Description = "APE Expediter Event Return Interface" +Option Explicit + +'****************** +'Events +'****************** +Public Event ServiceResult(ByVal sServiceID As String, ByVal vServiceReturn As Variant, ByVal sServiceError As String) +Attribute ServiceResult.VB_Description = "Returns a Service Request result" + +'******************* +'Friend methods +'******************* +Friend Sub RaiseServiceResult(sServiceID As String, vServiceReturn As Variant, sServiceError As String) + RaiseEvent ServiceResult(sServiceID, vServiceReturn, sServiceError) +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSPOSFM.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSPOSFM.CLS new file mode 100644 index 0000000..c0a1d5b --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSPOSFM.CLS @@ -0,0 +1,231 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "clsPositionForm" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'This class must be used with modPositionForm which supplys +'declarations, and types +'This class is intended to be used with any Automation Explorer application +'for saving form positions in the registry +'and moving forms back to that position when loaded again +'If more than one form of the same name is loaded, cascading +'will occur only in relationship with each other. +'Use Move method on form_load event +'Use Save method on form_unload event +'To use this class with a application that is not +'apart of the Automation Explorer project change the +'constant msPROJECT_NAME +'------------------------------------------------------------------------- + +#If UNICODE Then + Private Declare Function GetClassName Lib "user32" Alias "GetClassNameW" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long + Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextW" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long +#Else + Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long + Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long +#End If +Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long +Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long +Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long + +'Types +Private Type RECT + Left As Long + Top As Long + Right As Long + Bottom As Long +End Type + +'Public Constants +Private Const GW_HWNDNEXT As Integer = 2 +Private Const GW_HWNDFIRST As Integer = 0 +Private Const SM_CYBORDER As Integer = 6 +Private Const SM_CYCAPTION As Integer = 4 +Private Const msSECTION_NAME As String = "Form Positions" + +Public Sub Move(frmNew As Form, bSize As Boolean, Optional sComparableCharacters As String = "", Optional sngDefaultWidth As Single = 0, Optional sngDefaultHeight As Single = 0) + '------------------------------------------------------------------------- + 'Purpose: This method moves the passed form to the position saved + ' in the registry. It also cascades the forms position from + ' the first form it finds with the same caption or that contains + ' vComparableCharachters at the beginning of the caption. + 'IN: + ' [frmNew] + ' Form to position + ' [bSize] If true also size the passed form + ' [sComparableCharacters] + ' String to compare to other form captions for cascading instead + ' of passed forms captions. If "Client" was passed, forms with + ' captions "Client - 1", "Client - 2", "Client - N" would be compared + '------------------------------------------------------------------------- + Dim sWinName As String 'Window caption + Dim sWinClass As String 'Window class + Dim sDefault As String 'Default position of form in string format + Dim sReturn As String 'Saved positon of form in string format + Dim lResult As Long + Dim lHwnd As Long, hWndNew As Long + Dim tRect As RECT + Dim lFactor As Long 'Factor for cascading form + Dim iPos1 As Integer 'Position one in string + Dim iPos2 As Integer 'Position two in string + Dim lState As Long 'Window state + Dim sngLeft As Single + Dim sngTop As Single + Dim sngWidth As Single + Dim sngHeight As Single + Dim lDefaultX As Long + Dim lDefaultY As Long + Dim sngScreenWidth As Single + + On Error Resume Next + If sComparableCharacters = "" Then sComparableCharacters = frmNew.Caption + 'Create the default string + If Not (sngDefaultWidth = 0) Then lDefaultX = sngDefaultWidth Else lDefaultX = giDEFAULT_FORM_WIDTH + If Not (sngDefaultHeight = 0) Then lDefaultY = sngDefaultHeight Else lDefaultY = giDEFAULT_FORM_HEIGHT + sDefault = CStr(-1) & "," & CStr(-1) & "," & CStr(lDefaultX) & "," & CStr(lDefaultY) & "," & CStr(vbNormal) & ",1" + sReturn = GetRegSetting(gsREGISTRY_KEY, msSECTION_NAME, frmNew.Name, sDefault) + 'Parse values from returned string "left, top, width, height, state" + iPos1 = InStr(sReturn, ",") + sngLeft = CSng(Left$(sReturn, (iPos1 - 1))) + iPos2 = InStr((iPos1 + 1), sReturn, ",") + sngTop = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + iPos1 = iPos2 + iPos2 = InStr((iPos1 + 1), sReturn, ",") + sngWidth = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + iPos1 = iPos2 + iPos2 = InStr((iPos1 + 1), sReturn, ",") + sngHeight = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + iPos1 = iPos2 + iPos2 = InStr((iPos1 + 1), sReturn, ",") + lState = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + sngScreenWidth = CLng(Right$(sReturn, Len(sReturn) - iPos2)) + 'If this is not the first instance or if more than one form + 'is loaded find a handle to the next window + 'in the z-order with the same class name and window text + 'move the change the coordinates to one's that represent + 'a cascaded position in relation + 'ship to the next window + sWinName = frmNew.Caption + hWndNew = frmNew.hWnd + sWinClass = Space$(255) + lResult = GetClassName(hWndNew, sWinClass, 255) + sWinClass = Left$(sWinClass, lResult) + 'Perform a loop checking previous windows in z-order + 'until window with same title and class name is found + 'or hwnd = 0 + lHwnd = GetWindow(hWndNew, GW_HWNDFIRST) + Do Until lHwnd = 0 + If lHwnd <> hWndNew Then + 'check the window's class name + sReturn = Space$(255) + lResult = GetClassName(lHwnd, sReturn, 255) + sReturn = Left$(sReturn, lResult) + If sReturn = sWinClass Then + 'check the window's title + sReturn = Space$(255) + lResult = GetWindowText(lHwnd, sReturn, 255) + sReturn = Left$(sReturn, lResult) + If Left$(sReturn, Len(sComparableCharacters)) = Left$(sWinName, Len(sComparableCharacters)) Then + 'Get the windows position and calculate + 'the position for the new window + lResult = GetWindowRect(lHwnd, tRect) + 'Get the system size of title bar and border + lFactor = GetSystemMetrics(SM_CYBORDER) + GetSystemMetrics(SM_CYCAPTION) + 'If cascaded position will not put the form + 'off the screen change the left and top position + 'to represent a cascaded position + 'else leave the coordinates equal to what + 'was retrieved from the registry + If Not ((tRect.Left + lFactor) * Screen.TwipsPerPixelX) + sngWidth > Screen.Width Then sngLeft = (tRect.Left + lFactor) * Screen.TwipsPerPixelX + If Not ((tRect.Top + lFactor) * Screen.TwipsPerPixelY) + sngHeight > Screen.Height Then sngTop = (tRect.Top + lFactor) * Screen.TwipsPerPixelY + Exit Do + End If + End If + End If + ' Get the next window in the z-order for the next loop + lHwnd = GetWindow(lHwnd, GW_HWNDNEXT) + Loop + 'If the screen width is less than + 'when form position was saved, do not + 'position form according to saved position, + 'because the saved position and size may be off + 'the screen. Instead, let form be positioned to windows + 'default. + If sngScreenWidth <= Screen.Width Then + 'If the passed bSize flag is true + 'size and move, else just move + If sngTop <> -1 Then frmNew.Top = sngTop + If sngLeft <> -1 Then frmNew.Left = sngLeft + If bSize Then + frmNew.Width = sngWidth + frmNew.Height = sngHeight + End If + Else + 'Apply default width and height + If bSize Then + If sngDefaultWidth <> 0 Then frmNew.Width = sngDefaultWidth + If sngDefaultHeight <> 0 Then frmNew.Height = sngDefaultHeight + End If + End If + frmNew.WindowState = lState +End Sub + + +Public Sub Save(frmSave As Form) + '------------------------------------------------------------------------- + 'Purpose: This method saves the forms size and position in the registry + ' using the form name as the label and string format + ' "left, top, width, height + 'IN: + ' [frmSave] + ' Form to save position of + 'Effects: The Forms position is saved to the registry + '------------------------------------------------------------------------- + Dim iPos1 As Integer 'Position one in string + Dim iPos2 As Integer 'Position two in string + Dim sngLeft As Single + Dim sngTop As Single + Dim sngWidth As Single + Dim sngHeight As Single + Dim sDefault As String 'Default position of form in string format + Dim sReturn As String 'Saved positon of form in string format + Dim lState As Long + Dim sngScreenWidth As Single + If frmSave.WindowState = vbNormal Then + sReturn = CStr(frmSave.Left) & "," & CStr(frmSave.Top) & "," & CStr(frmSave.Width) & "," & CStr(frmSave.Height) & "," & CStr(frmSave.WindowState) & "," & CStr(Screen.Width) + Else + 'Read the current settings and then only change the Widowstate value + 'and the screen width + 'Create the default string + sDefault = CStr(-1) & "," & CStr(-1) & "," & CStr(giDEFAULT_FORM_WIDTH) & "," & CStr(giDEFAULT_FORM_HEIGHT) & "," & CStr(vbNormal) & ",1" + sReturn = GetRegSetting(gsREGISTRY_KEY, msSECTION_NAME, frmSave.Name, sDefault) + 'Parse values from returned string "left, top, width, height, state" + iPos1 = InStr(sReturn, ",") + sngLeft = CSng(Left$(sReturn, (iPos1 - 1))) + iPos2 = InStr((iPos1 + 1), sReturn, ",") + sngTop = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + iPos1 = iPos2 + iPos2 = InStr((iPos1 + 1), sReturn, ",") + sngWidth = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + iPos1 = iPos2 + iPos2 = InStr((iPos1 + 1), sReturn, ",") + sngHeight = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + iPos1 = iPos2 + iPos2 = InStr((iPos1 + 1), sReturn, ",") + lState = CSng(Mid$(sReturn, (iPos1 + 1), (iPos2 - 1 - iPos1))) + sngScreenWidth = CLng(Right$(sReturn, Len(sReturn) - iPos2)) + sReturn = CStr(sngLeft) & "," & CStr(sngTop) & "," & CStr(sngWidth) & "," & CStr(sngHeight) & "," & CStr(frmSave.WindowState) & "," & CStr(sngScreenWidth) + End If + SaveRegSetting gsREGISTRY_KEY, msSECTION_NAME, frmSave.Name, sReturn + +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSWKMAC.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSWKMAC.CLS new file mode 100644 index 0000000..6908024 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSWKMAC.CLS @@ -0,0 +1,29 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "clsWorkerMachines" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +'------------------------------------------------------------------------- +'This class is used for storing related data +'that will be added to a collection +'Stores a Machine name that Workers are instanciated on +'------------------------------------------------------------------------- +Public MachineName As String 'Machine name +Public WorkerProvider As APEInterfaces.IWorkerProvider 'Server that can be instanciated on remote + 'machines to provide Worker objects +Public Remote As Boolean 'If true, this represents a remote machine + 'rather that the local machine. +Public WorkerKeys As Collection 'Collection of longs, representing the keys + 'of Workers stored in the gcWorkers collection + 'that are on the machine represented by this + 'object +Private Sub Class_Initialize() + Set WorkerKeys = New Collection +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSWORKR.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSWORKR.CLS new file mode 100644 index 0000000..d0db18d --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/CLSWORKR.CLS @@ -0,0 +1,27 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "clsWorker" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'This class is used for storing related data +'that will be added to a collection +'Stores a Worker object and data related to managing that Worker object +'------------------------------------------------------------------------- +Public ID As Long 'ID of the Worker, it should be the same + 'as the Workers ID property and the same + 'as the key an object of this class is stored + 'in gcWorkers collection with +Public Busy As Boolean 'Worker is processing a Service Request +Public Worker As APEInterfaces.IWorker 'A valid Worker class object +Public RemoveMe As Boolean 'If true the Worker is marked for removal + 'from the PoolMgr's or QueueMgr's + 'collection of Workers diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ENUMS.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ENUMS.CLS new file mode 100644 index 0000000..3667899 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ENUMS.CLS @@ -0,0 +1,155 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "Enums" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit + +' APE Component Types +Public Enum ape_ComponentTypes + ape_ctManager + ape_ctClient + ape_ctWorker + ape_ctService + ape_ctMTSService + ape_ctQueueManager + ape_ctPoolManager + ape_ctLogger + ape_ctServerManager +End Enum + +'ClientOptions Dialog +Public Enum ape_CliTestDurationOptions + ape_ictdUntilStopped = 0 + ape_ictdNumCalls = 1 + ape_ictdNumMinutes = 2 +End Enum + +Public Enum ape_CliLocalComponentOptions + ape_iclrLocalActiveX = 0 + ape_iclrLocalJava = 1 +End Enum + +Public Enum ape_CliClientTypeOptions + ape_icatWinClient = 0 + ape_icatWebClient = 1 +End Enum + +Public Enum ape_CliDataOptions + ape_icdtActiveResultSet = 0 + ape_icdtUdtArray = 1 + ape_icdtVarArray = 2 + ape_icdtVarCollection = 3 +End Enum + +Public Enum ape_CliCallbackOptions + ape_icctOnlyOnce = 0 + ape_icctEveryRequest = 1 + ape_icctUseEventSinking = 2 +End Enum + +'Service Connection Options Dialog +Public Enum ape_SvcConnOptions + ape_iscDCOM = 0 + ape_iscASP = 1 + ape_iscRA = 2 +End Enum + +Public Enum ape_SvcRaConnOptions + ape_iscrNetBIOS_TCP = 0 + ape_iscrNetBIOS_SPX = 1 + ape_iscrNetBIOS_NetBEUI = 2 + ape_iscrTCPIP = 3 + ape_iscrSPX = 4 + ape_iscrNamedPipes = 5 + ape_iscrDECnetTransport = 6 + ape_iscrDatagram_UDP = 7 + ape_iscrDatagram_IPX = 8 +End Enum + +'ServiceOptions Dialog +Public Enum ape_SvcDbTaskOptions + ape_isdtMTS = 0 + ape_isdtOLAP = 1 + ape_isdtQuery = 2 +End Enum + +Public Enum ape_SvcPoolResOptions + ape_isprJobMngr = 0 + ape_isprPoolMngr = 1 +End Enum + +Public Enum ape_SvcLanguageOptions + ape_islLangVB = 0 + ape_islLangVC = 1 + ape_islLangVJ = 2 +End Enum + +'Database Connection Options Dialog +Public Enum ape_DbConnectionOptions + ape_idcADO = 0 + ape_idcRDO = 1 + ape_idcDAO = 2 + ape_idcODBC = 3 + ape_idcOracle = 4 +End Enum + +'DatabaseServerOptions Dialog +Public Enum ape_DbServerOptions + ape_idsJet = 0 + ape_idsSqlServer = 1 + ape_idsOracle = 2 + ape_idsOther = 3 +End Enum + +'AdminOptions Dialog +Public Enum ape_AdmWhenToWriteLogOptions + ape_iawlEndOfTest = 0 + ape_iawlLogSizeLimit = 1 +End Enum + +Public Enum ape_UpdateDisplayOptions + ape_udoAll = 0 + ape_udoClient = 1 + ape_udoServiceConnection = 2 + ape_udoService = 3 + ape_udoDatabaseConnection = 4 + ape_udoDatabase = 5 +End Enum + +Public Enum ape_CallResultCodes + ape_retSuccess = 0 + ape_retFailure + ape_retBadSendDataValues + ape_retBadReturnDataValues + ape_retInvalidParameter + ape_retPrevTestInProgress + ape_retInvalidCallbackObject +End Enum + +' Error Codes +Public Enum MTSSvcErrors + errAccountCreateFailed = vbObjectError + 1 + errAccountTransactionFailed + errInsufficientFunds + errInvalidAccount + errDatabaseOperationFailed +End Enum + +'Service component configuration +Public Enum ServiceConfigurationInfomation + FirstMember + ape_conConnectionString + ape_conConnectionOption + ape_conLogMTSTransactions + ape_conShowMTSTransactions + ape_conLogDatabaseEvents + LastMember +End Enum diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/LOCALIZE.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/LOCALIZE.BAS new file mode 100644 index 0000000..5b29dcc --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/LOCALIZE.BAS @@ -0,0 +1,129 @@ +Attribute VB_Name = "Localize" +Option Explicit +'------------------------------------------------------------ +'- Localization Declares... +'------------------------------------------------------------ +Private Declare Function GetSystemDefaultLCID Lib "Kernel32" () As Long + +'------------------------------------------------------------ +'- Localization Fonts Charicter sets... +'------------------------------------------------------------ +Public Const CHARSET_DEFAULT = 1 +Public Const CHARSET_SHIFTJIS = 128 +Public Const CHARSET_HANGEUL = 129 +Public Const CHARSET_CHINESESIMPLIFIED = 134 +Public Const CHARSET_CHINESEBIG5 = 136 +Public Const CHARSET_HEBREW = 177 +Public Const CHARSET_ARABIC = 178 + +'------------------------------------------------------------ +' Primary language IDs. +'------------------------------------------------------------ +Public Const LANG_ARABIC = &H1 ' added 10-14-97 +Public Const LANG_CHINESE = &H4 +Public Const LANG_HEBREW = &HD ' added 10-14-97 +Public Const LANG_JAPANESE = &H11 +Public Const LANG_KOREAN = &H12 + +'------------------------------------------------------------ +' Sublanguage IDs. +'------------------------------------------------------------ +' The name immediately following SUBLANG_ dictates which primary +' language ID that sublanguage ID can be combined with to form a +' valid language ID. +'------------------------------------------------------------ +Public Const SUBLANG_CHINESE_TRADITIONAL = &H1 ' Chinese (Taiwan) +Public Const SUBLANG_CHINESE_SIMPLIFIED = &H2 ' Chinese (PR China) +Public Const SUBLANG_KOREAN = &H1 ' Korean (Extended Wansung) ' added 10-14-97 +Public Const SUBLANG_KOREAN_JOHAB = &H2 ' Korean (Johab) ' added 10-14-97 + +Public Sub ApplyFontToForm(frmForm As Form) +' Applies the appropriate font for the locale to all the controls of the specified form. + Dim ctl As Control + Dim sFont As String + Dim nFont As Integer, nCharset As Integer + + On Error Resume Next + GetFontInfo sFont, nFont, nCharset + For Each ctl In frmForm.Controls + ' If the control does not have Font property, + ' this line will be skipped. + With ctl.Font + .Name = sFont + .Size = nFont + .Charset = nCharset + End With + Next + With frmForm.Font + .Name = sFont + .Size = nFont + .Charset = nCharset + End With +End Sub + +'------------------------------------------------------- +Public Sub GetFontInfo(sFont As String, nFont As Integer, nCharset As Integer) +'------------------------------------------------------- + Static ssFont As String ' the cached name of the font + Static snFont As Integer ' the cached size of the font + Static snCharset As Integer ' the cached charset of the font + + ' if font is set, used the cached values + If ssFont <> "" Then + sFont = ssFont + nFont = snFont + nCharset = snCharset + Exit Sub + End If +'------------------------------------------------------- + Dim LCID As Integer + Dim PLangId As Integer + Dim sLangId As Integer +'------------------------------------------------------- + LCID = GetSystemDefaultLCID ' get current system LCID + PLangId = (LCID And &H3FF) ' LCID's Primary language id + sLangId = (LCID / (2 ^ 10)) ' LCID's Sub language id + + Select Case PLangId ' determine primary language id + Case LANG_CHINESE + If (sLangId = SUBLANG_CHINESE_TRADITIONAL) Then + sFont = ChrW$(&H65B0) & ChrW$(&H7D30) & ChrW$(&H660E) & ChrW$(&H9AD4) ' New Ming-Li + nFont = 9 + nCharset = CHARSET_CHINESEBIG5 + ElseIf (sLangId = SUBLANG_CHINESE_SIMPLIFIED) Then + sFont = ChrW$(&H5B8B) & ChrW$(&H4F53) + nFont = 9 + nCharset = CHARSET_CHINESESIMPLIFIED + End If + Case LANG_JAPANESE + sFont = ChrW$(&HFF2D) & ChrW$(&HFF33) & ChrW$(&H20) & ChrW$(&HFF30) & _ + ChrW$(&H30B4) & ChrW$(&H30B7) & ChrW$(&H30C3) & ChrW$(&H30AF) + nFont = 9 + nCharset = CHARSET_SHIFTJIS + Case LANG_KOREAN + If (sLangId = SUBLANG_KOREAN) Then + sFont = ChrW$(&HAD74) & ChrW$(&HB9BC) + ElseIf (sLangId = SUBLANG_KOREAN_JOHAB) Then + sFont = ChrW$(&HAD74) & ChrW$(&HB9BC) + End If + nFont = 9 + nCharset = CHARSET_HANGEUL + Case LANG_ARABIC + sFont = "Tahoma" + nFont = 8 + nCharset = CHARSET_ARABIC + Case LANG_HEBREW + sFont = "Tahoma" + nFont = 8 + nCharset = CHARSET_HEBREW + Case Else + sFont = "Tahoma" + nFont = 8 + nCharset = CHARSET_DEFAULT + End Select + ssFont = sFont + snFont = nFont + snCharset = nCharset +'------------------------------------------------------- +End Sub +'------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODAECON.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODAECON.BAS new file mode 100644 index 0000000..76bd533 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODAECON.BAS @@ -0,0 +1,144 @@ +Attribute VB_Name = "modAEConstants" +Option Explicit +'------------------------------------------------------------------------- +'This Module provides constants shared by multiple APE Components +'------------------------------------------------------------------------- + +Public Const giDEFAULT_FORM_WIDTH As Integer = 4000 +Public Const giDEFAULT_FORM_HEIGHT As Integer = 2500 +Public Const giFORM_MARGIN As Integer = 75 'Used to size and position + 'controls in a sizable form and keep + 'consitency between forms +Public Const giLIST_BOX_MAX As Integer = 1000 'Used to control the length of a list box + +Public Const gsLOG_FILE_EXTENSION As String = ".LOG" +'Service command constants +Public Const gsSERVICE_USE_PROCESSOR As String = "UseProcessor" +Public Const gsSERVICE_DONT_USE_PROCESSOR As String = "DontUseProcessor" +Public Const gsSERVICE_READ_DATA As String = "ReadData" +Public Const gsSERVICE_WRITE_DATA As String = "WriteData" +Public Const gsSERVICE_READWRITE_DATA As String = "ReadWriteData" +Public Const gsSERVICE_WRITE_MTS_TRANSACTIONS As String = "WriteMTSTransactions" + +Public Const gsSERVICE_LIB_CLASS As String = "AEService.Service" +Public Const glSERVICE_MAX_DURATION As Long = 60000 'The longest an Service is allowed to take +Public Const giLOG_RECORD_KILOBYTES As Integer = 3 'Estimated number of log records in a KB + +'Record Constants +Public Const giRECORD_NUMROWS As Integer = 0 +Public Const giRECORD_ROWSIZE As Integer = 1 +Public Const giRECORD_TASK_DURATION As Integer = 2 +Public Const giRECORD_SLEEP_PERIOD As Integer = 3 +Public Const giRECORD_CONTAINER_TYPE As Integer = 4 +Public Const giRECORD_DATABASE_QUERY As Integer = 5 +Public Const giRECORD_SERVICE_CONFIGURATION As Integer = 6 +Public Const giRECORD_DATA_BEGIN As Integer = 7 + +'Return Container Constants +Public Const giCONTAINER_TYPE_NULL As Integer = 0 +Public Const giCONTAINER_TYPE_VARRAY As Integer = 1 +Public Const giCONTAINER_TYPE_VCOLLECTION As Integer = 2 +Public Const giCONTAINER_TYPE_RECORDSET As Integer = 3 + +Public Const gsSEPERATOR As String = " - " + +Public Const giMODEL_QUEUE As Integer = 0 +Public Const giMODEL_POOL As Integer = 1 +Public Const giMODEL_DIRECT As Integer = 2 + +'Service Task Option bit field mask values +Public Const giMASK_USE_DB_TASK As Integer = 2 ^ 0 +Public Const giMASK_WRITE_MTS_TRANSACTION As Integer = 2 ^ 1 ' Toggle bit - 0 => Perform database query +Public Const giMASK_USE_CPU_TASK As Integer = 2 ^ 2 + +'Test Duration mode constants +Public Const giTEST_DURATION_CONTINUE As Integer = 0 'Continue the test until interupted by StopTest +Public Const giTEST_DURATION_CALLS As Integer = 1 'Continue the test for specified number of calls +Public Const giTEST_DURATION_TICKS As Integer = 2 'Continue the test for specified number of milliseconds + +'Return value of clsQueueDelegator.GetServiceRequest method that instructs Worker to +'Close. This is returned instead of Service Request Data +Public Const giCLOSE_WORKER_NOW As Integer = -1 + +'Log Record array elements +'Represents the element definition of the first dimension +'of a two dimensional array passed to the AEManager.clsExplorer +'by clients and the logger +Public Const giCOMPONENT_ELEMENT As Integer = 0 +Public Const giSERVICE_ELEMENT As Integer = 1 +Public Const giCOMMENT_ELEMENT As Integer = 2 +Public Const giMILLI_SECONDS_ELEMENT As Integer = 3 +Public Const giLOG_ARRAY_DIMENSION_ONE As Integer = 3 + +'Worker Property array elements +'For passing properties from +'ServerMgr to Manager +Public Const giLOG_WORKER_ELEMENT As Integer = 0 +Public Const giEARLYBIND_SERVICES_ELEMENT As Integer = 1 +Public Const giPERSISTENT_SERVICES_ELEMENT As Integer = 2 +Public Const giPRELOAD_SERVICES_ELEMENT As Integer = 3 + +'Service Request Data array elements +'For passing Service data from +'QueueMgr to worker +Public Const giSERVICE_ID_ELEMENT As Integer = 0 +Public Const giCOMMAND_ELEMENT As Integer = 1 +Public Const giSERVICE_DATA_ELEMENT As Integer = 2 +Public Const giDATA_PRESENT_ELEMENT As Integer = 3 + +'Service Results Data array elements +'For passing Service data from the +'QueueMgr to the Expediter +Public Const giRESULT_ID_ELEMENT As Integer = 0 +Public Const giRESULT_CALLBACK_ELEMENT As Integer = 1 +Public Const giRESULT_DATA_ELEMENT As Integer = 2 +Public Const giRESULT_ERROR_ELEMENT As Integer = 3 +Public Const giRESULT_CALLBACK_TYPE_ELEMENT As Integer = 4 +Public Const giRESULT_DIMENSION_ONE As Integer = 4 + +'Performance Statistics array elements +'Array returned by GetStatistics method +'of AEClient.Client. Called by AEManager +Public Const giNUM_CALLS_ELEMENT As Integer = 0 +Public Const giBEGIN_TICKS_ELEMENT As Integer = 1 +Public Const giEND_TICKS_ELEMENT As Integer = 2 +Public Const giSTAT_ARRAY_DIMENSION As Integer = 2 + +'RacReg GetAutoServerSettings array elements +Public Const giREMOTE_ELEMENT As Integer = 1 +Public Const giADDRESS_ELEMENT As Integer = 2 +Public Const giPROTOCOL_ELEMENT As Integer = 3 +Public Const giAUTHENTICATION_ELEMENT As Integer = 4 +Public Const giNET_OLE_ELEMENT As Integer = 5 +Public Const giFIRST_RACREG_ELEMENT As Integer = 1 +Public Const giLAST_RACREG_ELEMENT As Integer = 5 + +'Callback mode keys +Public Const giNO_CALLBACK As Integer = 0 +Public Const giUSE_PASSED_CALLBACK As Integer = 1 +Public Const giUSE_DEFAULT_CALLBACK As Integer = 2 +Public Const giRETURN_BY_SYNC_EVENT As Integer = 3 + +'Resource String replacement tokens +Public Const gsNUMBER_TOKEN As String = "" +Public Const gsNAME_TOKEN As String = "" + +'Automation errors +Public Const E_INVALIDARG = &H80070057 +Public Const E_NOTIMPL = &H80004001 +Public Const E_UNEXPECTED = &H8000FFFF + +' Miscellaneous constants +Public Const gsODBC_INI_REG_KEY = "Software\ODBC\ODBC.INI" ' Registry path to DSNs +Public Const gsREGISTRY_KEY As String = "Software\Microsoft\VSEE\APE" +Public Const gsNULL_SERVICE_ID As String = "-" ' Null Service ID + +'MRU server name constants +Public Const giMAX_MRU_SIZE As Integer = 8 +Public Const giMAX_REG_DATA_LENGTH As Integer = 200 ' Maximum length of registry data string +Public Const glMAX_NAME_LENGTH As Long = 250 ' Max length for a server name +Public Const CB_LIMITTEXT = &H141 + +' Shared custom error constants +Public Const giRPC_ERROR_ACCESSING_COLLECTION As Integer = 32740 + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODAEGLB.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODAEGLB.BAS new file mode 100644 index 0000000..acfa266 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODAEGLB.BAS @@ -0,0 +1,136 @@ +Attribute VB_Name = "modAEGlobals" +Option Explicit + +'================================================== +' Routine: ReplaceString +' +' Purpose: Replaces specified string in a target +' string with a new string +' Arguments: +' sTarget: string to work on +' sSearch: string to replace in sTarget +' sNew: value to replace sSearch with +' Outputs: +' Revised version of sTarget (Note: sTarget is +' NOT modified.) +'================================================== +Function ReplaceString(ByVal sTarget As String, sSearch As String, sNew As String) As String + Dim p As Integer + Do + p = InStr(sTarget, sSearch) + If p Then + sTarget = Left(sTarget, p - 1) + sNew + Mid(sTarget, p + Len(sSearch)) + End If + Loop While p + ReplaceString = sTarget +End Function + +'================================================== +' Routine: Round +' +' Purpose: Converts the passed Single value to the +' nearest integer value +' In contrast to CInt or Clng which convert +' single values to the nearest even integer +'================================================== +Public Function Round(sngIn As Single) As Long + If (sngIn Mod 1) < 0.5 Then + Round = Fix(sngIn) + Else + Round = Fix(sngIn) + 1 + End If +End Function + +Public Function FormatPath(sPath As String) As String + '------------------------------------------------------------------------- + 'Purpose: Assures that the passed path has a "\" at the end of it + 'IN: + ' [sPath] + ' a valid path name + 'Return: the same path with a "\" on the end if it did not already + ' have one. + '------------------------------------------------------------------------- + If Right$(sPath, 1) <> "\" Then sPath = sPath & "\" + FormatPath = sPath +End Function + +Public Function GetArrayFromDelimited(sDelimited As String, sa() As String, Optional sDelimiter As String = ",") As Boolean + '------------------------------------------------------------------------- + 'Purpose: Fills the passed a single dimension string array with the + ' values in the specified delimited string. Leading and trailing spaces are trimmed + ' from each substring before adding them to the array. + 'IN: + ' [sDelimited] + ' Delimited string + ' [sDelimiter] + ' Delimiter + 'Out: + ' [sa()] Single dimension array that will be erased and redimensioned to + ' add values from delimited string + 'Return: True if any items were added to array, False if array was + ' left empty + '------------------------------------------------------------------------- + Dim l As Long, lCount As Long, lStart As Long, lEnd As Long, lDelimiterLength As Long + + lDelimiterLength = Len(sDelimiter) + If sDelimited = "" Then + Erase sa + GetArrayFromDelimited = False + Else + lCount = 0 + lStart = 1 - lDelimiterLength + Do + lCount = lCount + 1 + lStart = InStr(lStart + lDelimiterLength, sDelimited, sDelimiter) + Loop While lStart > 0 + ReDim sa(0 To lCount - 1) + lStart = 1 + For l = LBound(sa) To UBound(sa) - 1 ' Process all but the last item in the list + lEnd = InStr(lStart, sDelimited, sDelimiter) + Debug.Assert lEnd <> 0 + sa(l) = Trim(Mid(sDelimited, lStart, lEnd - lStart)) + lStart = lEnd + lDelimiterLength + Next + sa(l) = Trim(Mid(sDelimited, lStart)) ' Final string in the list + GetArrayFromDelimited = True + End If +End Function + +Public Function GetDelimitedFromArray(sa() As String, Optional sDelimiter As String = ",") As String + '------------------------------------------------------------------------- + 'Purpose: Reads all the strings in the passed array and + ' creates a delimited string + 'IN: + ' [sa()] + ' A single dimension string array + ' [sDelimiter] + ' Delimiter + 'Returns: a delimited string + '------------------------------------------------------------------------- + + Dim sString As String + Dim l As Long + + If Not ArrayHasElements(sa) Then + GetDelimitedFromArray = "" + Else + sString = "" + For l = LBound(sa) To UBound(sa) + sString = sString & sDelimiter & sa(l) ' Always prepend delimiter (even to the first element) + Next + GetDelimitedFromArray = Mid(sString, Len(sDelimiter) + 1) ' Drop the leading delimiter + End If +End Function + +Public Function ArrayHasElements(ByVal v As Variant) As Boolean +' Returns True if the specified variant contains an array that contains any elements, else returns False. + If Not IsArray(v) Then + ArrayHasElements = False + Else + Dim l As Long + On Error Resume Next + l = LBound(v) + ArrayHasElements = (Err.Number <> ERR_SUBSCRIPT_OUT_OF_RANGE) + End If +End Function + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODVBERR.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODVBERR.BAS new file mode 100644 index 0000000..6c337ee --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODVBERR.BAS @@ -0,0 +1,66 @@ +Attribute VB_Name = "modVBErrors" +Option Explicit +'------------------------------------------------------------------------- +'This Module provides VB4 Error constants +'------------------------------------------------------------------------- + +'VB4 Errors +Public Const ERR_RETURN_WITHOUT_GOSUB As Integer = 3 'Return without GoSub +Public Const ERR_INVALID_PROCEDURE_CALL As Integer = 5 'Invalid procedure call +Public Const ERR_OVER_FLOW As Integer = 6 'Overflow +Public Const ERR_OUT_OF_MEMORY As Integer = 7 'Out of memory +Public Const ERR_SUBSCRIPT_OUT_OF_RANGE As Integer = 9 'Subscript out of range +Public Const ERR_ARRAY_FIXED_OR_LOCKED As Integer = 10 'This array is fixed or temporarily locked +Public Const ERR_DIVISION_BY_ZERO As Integer = 11 'Division by zero +Public Const ERR_TYPE_MISMATCH As Integer = 13 'Type mismatch +Public Const ERR_OUT_OF_STRING_SPACE As Integer = 14 'Out of string space +Public Const ERR_EXPRESSION_TOO_COMPLEX As Integer = 16 'Expression Too Complex +Public Const ERR_CANT_PERFORM_OPERATION As Integer = 17 'Can 't perform requested operation +Public Const ERR_USER_INTERRUPT As Integer = 18 'User interrupt occurred +Public Const ERR_RESUME_WITHOUT_ERROR As Integer = 20 'Resume without error +Public Const ERR_OUT_OF_STACK_SPACE As Integer = 28 'Out of stack space +Public Const ERR_PROCEDURE_NOT_DEFINED As Integer = 35 'Sub, Function, or Property not defined +Public Const ERR_TOO_MANY_DLL_CLIENTS As Integer = 47 'Too many DLL application clients +Public Const ERR_ERROR_LOADING_DLL As Integer = 48 'Error in loading DLL +Public Const ERR_BAD_DLL_CALL As Integer = 49 'Bad DLL calling convention +Public Const ERR_INTERNAL_ERROR As Integer = 51 'Internal Error +Public Const ERR_BAD_FILE_NAME As Integer = 52 'Bad file name or number +Public Const ERR_FILE_NOT_FOUND As Integer = 53 'File Not found +Public Const ERR_BAD_FILE_MODE As Integer = 54 'Bad file mode +Public Const ERR_FILE_ALREADY_OPEN As Integer = 55 'File already open +Public Const ERR_DEVICE_IO_ERROR As Integer = 57 'Device I/O error +Public Const ERR_FILE_ALREADY_EXISTS As Integer = 58 'File already exists +Public Const ERR_BAD_RECORD_LENGTH As Integer = 59 'Bad record length +Public Const ERR_DISK_FULL As Integer = 61 'Disk full +Public Const ERR_IPUT_PAST_EOF As Integer = 62 'Input past end of file +Public Const ERR_BAD_RECORD_NUMBER As Integer = 63 'Bad record number +Public Const ERR_TOO_MANY_FILES As Integer = 67 'Too many files +Public Const ERR_DEVICE_UNAVAILABLE As Integer = 68 'Device unavailable +Public Const ERR_PERMISSION_DENIED As Integer = 70 'Permission denied +Public Const ERR_DISK_NOT_READY As Integer = 71 'Disk Not ready +Public Const ERR_CANT_RENAME_WITH_DIFFERENT_DRIVE As Integer = 74 'Can 't rename with different drive +Public Const ERR_PATH_OR_FILE_ACCESS_ERROR As Integer = 75 'Path/File access error +Public Const ERR_PATH_NOT_FOUND As Integer = 76 'Path Not found +Public Const ERR_OBJECT_VARIABLE_NOT_SET As Integer = 91 'Object variable or With block variable not set +Public Const ERR_FOR_LOOP_NOT_INITIALIZED As Integer = 92 'For loop not initialized +Public Const ERR_INVALID_PATTERN_STRING As Integer = 93 'Invalid pattern string +Public Const ERR_INVALID_USE_OF_NULL As Integer = 94 'Invalid use of Null +Public Const ERR_CONTROL_ARRAY_ELEMENT_DOESNOT_EXIST = 340 +Public Const ERR_INVALID_PROPERTY_VALUE As Integer = 380 'Invalid property value +Public Const ERR_INVALID_PROPERTY_ARRAY_INDEX As Integer = 381 +Public Const ERR_PROPERTY_IS_READ_ONLY As Integer = 383 +Public Const ERR_CANT_CREATE_OBJECT As Integer = 429 'OLE Automation server can't create object +Public Const ERR_METHOD_NOT_APPLICABLE As Integer = 444 'Method not applicable in this context +Public Const ERR_INVALID_ORDINAL As Integer = 452 'Invalid ordinal +Public Const ERR_DLL_FUNCITON_NOT_FOUND As Integer = 453 'Specified DLL function not found +Public Const ERR_DUPLICATE_KEY As Integer = 457 'Duplicate Key +Public Const ERR_INVALID_CLIPBOARD_FORMAT As Integer = 460 'Invalid Clipboard format +Public Const ERR_FORMAT_DOESNT_MATCH_DATA As Integer = 461 'Specified format doesn't match format of data +Public Const ERR_CANT_CREATE_AUTOREDRAW As Integer = 480 'Can 't create AutoRedraw image +Public Const ERR_INVALID_PICTURE As Integer = 481 'Invalid Picture +Public Const ERR_PRINTER_ERROR As Integer = 482 'Printer Error +Public Const ERR_PRINTER_DRIVE_RPROPERTY_INVALID As Integer = 483 'Printer driver does not support specified property +Public Const ERR_PRINTER_SYSTEM_INFO_PROBLEM As Integer = 484 'Problem getting printer information from the system. Make sure the printer is set up correctly +Public Const ERR_INVALID_PICTURE_TYPE As Integer = 485 'Invalid picture type +Public Const ERR_CANT_EMPTY_CLIPBOARD As Integer = 520 'Can 't empty Clipboard +Public Const ERR_CANT_OPEN_CLIPBOARD As Integer = 521 'Can 't open Clipboard diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODWINER.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODWINER.BAS new file mode 100644 index 0000000..83288c5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/MODWINER.BAS @@ -0,0 +1,21 @@ +Attribute VB_Name = "modWin32Errors" +Option Explicit +'------------------------------------------------------------------------- +'This Module provides Windows Error constants +'------------------------------------------------------------------------- + +Public Const ERR_ACCESS_DENIED As Integer = 5 +Public Const RPC_E_CALL_REJECTED = &H80010001 +Public Const RPC_E_SERVER_DIED_DNE = &H80010012 +Public Const RPC_S_INVALID_RPC_PROTSEQ As Integer = 1704 +Public Const RPC_S_PROTSEQ_NOT_SUPPORTED As Integer = 1703 +Public Const ERR_CANT_FIND_KEY_IN_REGISTRY = &H80040152 'Occurs when a client app tries to Create an object + 'that was previously created while registered remotely + 'then registered locally +Public Const ERR_CALL_FAILED_DIDNOT_EXECUTE = &H80010012 +Public Const ERR_NO_MORE_ENDPOINTS = &H800706D9 'There are no more endpoints available from the endpoint mapper. +Public Const RPC_S_UNKNOWN_AUTHN_TYPE = &H800706CD 'Error occurs when trying to connect using an authentication type + 'not supported by the server +Public Const REGDB_E_IIDNOTREG = &H80040155 'Interface not registered +Public Const RPC_PROTOCOL_SEQUENCE_NOT_FOUND = &H800706D0 'The RPC protocol sequence was not found + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.BAS new file mode 100644 index 0000000..9faa977 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.BAS @@ -0,0 +1,109 @@ +Attribute VB_Name = "ODBCAPI" +Option Explicit + +Public Declare Function SQLAllocHandle Lib "odbc32.dll" (ByVal iHandleType As Integer, ByVal lInputHandle As Long, lOutputHandlePtr As Long) As Integer +Public Declare Function SQLFreeHandle Lib "odbc32.dll" (ByVal iHandleType As Integer, ByVal lHandle As Long) As Integer + +Public Declare Function SQLDriverConnect Lib "odbc32.dll" (ByVal hConnection As Long, ByVal hWnd As Long, ByVal sInConnectionString As String, ByVal iStringLength1 As Integer, ByVal sOutConnectionString As String, ByVal iBufferLength As Integer, iStringLength2Ptr As Integer, ByVal iDriverCompletion As Integer) As Integer +Public Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal hdbc As Long) As Integer + +Public Declare Function SQLSetEnvAttr Lib "odbc32.dll" (ByVal hEnv As Long, ByVal lAttribute As Long, ByVal sValuePtr As String, ByVal lStringLength As Long) As Integer +Public Declare Function SQLSetEnvAttrLong Lib "odbc32.dll" Alias "SQLSetEnvAttr" (ByVal hEnv As Long, ByVal lAttribute As Long, ByVal lValue As Long, ByVal lStringLength As Long) As Integer +Public Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal hstmt As Long, ByVal szSqlStr As String, ByVal cbSqlStr As Long) As Integer +Public Declare Function SQLEndTran Lib "odbc32.dll" (ByVal iHandleType As Integer, ByVal hConnection As Long, ByVal iCompletionType As Integer) As Integer +Public Declare Function SQLFetch Lib "odbc32.dll" (ByVal hstmt As Long) As Integer +Public Declare Function SQLFetchScroll Lib "odbc32.dll" (ByVal hStatement As Long, ByVal iFetchOrientation As Integer, ByVal FetchOffset As Long) As Integer +Public Declare Function SQLSetStmtAttrLong Lib "odbc32.dll" Alias "SQLSetStmtAttr" (ByVal hStatement As Long, ByVal lAttribute As Long, ByVal lValue As Long, ByVal lStringLength As Long) As Integer +Public Declare Function SQLCloseCursor Lib "odbc32.dll" (ByVal hStatement As Long) As Integer +Public Declare Function SQLGetDataLong Lib "odbc32.dll" Alias "SQLGetData" (ByVal hStatement As Long, ByVal iColumn As Integer, ByVal iTargetType As Integer, lValue As Long, ByVal lValueLength As Long, lActualLen As Long) As Integer +Public Declare Function SQLGetDiagRec Lib "odbc32.dll" (ByVal iHandleType As Integer, ByVal hHandle As Long, ByVal iRecNumber As Integer, ByVal sSQLState As String, lNativeErrorPtr As Long, ByVal sMessageText As String, ByVal iBufferLength As Integer, iTextLengthPtr As Integer) As Integer + +' Options for SQLAllocHandle +Public Const SQL_HANDLE_ENV = 1 +Public Const SQL_HANDLE_DBC = 2 +Public Const SQL_HANDLE_STMT = 3 +Public Const SQL_HANDLE_DESC = 4 +Public Const SQL_NULL_HANDLE = 0& + +Public Const SQL_ATTR_ODBC_VERSION = 200 +Public Const SQL_OV_ODBC3 = 3& + +' Options for SQLDriverConnect +Public Const SQL_DRIVER_NOPROMPT As Long = 0 +Public Const SQL_DRIVER_COMPLETE As Long = 1 +Public Const SQL_DRIVER_PROMPT As Long = 2 +Public Const SQL_DRIVER_COMPLETE_REQUIRED As Long = 3 + +' Options for SQLEndTran +Public Const SQL_COMMIT = 0 +Public Const SQL_ROLLBACK = 1 + +' Options for SQLFetchScroll +Public Const SQL_FETCH_NEXT = 1 +Public Const SQL_FETCH_FIRST = 2 +Public Const SQL_FETCH_LAST = 3 +Public Const SQL_FETCH_PRIOR = 4 +Public Const SQL_FETCH_ABSOLUTE = 5 +Public Const SQL_FETCH_RELATIVE = 6 + +' RETCODEs +Public Const SQL_SUCCESS As Long = 0 +Public Const SQL_SUCCESS_WITH_INFO As Long = 1 +Public Const SQL_ERROR As Long = -1 +Public Const SQL_INVALID_HANDLE As Long = -2 +Public Const SQL_NO_DATA As Long = 100 + +' Statement attributes +Public Const SQL_ATTR_CURSOR_SCROLLABLE = -1 +Public Const SQL_ATTR_CURSOR_SENSITIVITY = -2 +Public Const SQL_CURSOR_TYPE = 6 + +' SQL_ATTR_CURSOR_SCROLLABLE values +Public Const SQL_NONSCROLLABLE = 0 +Public Const SQL_SCROLLABLE = 1 + +' SQL_CURSOR_TYPE options +Public Const SQL_CURSOR_FORWARD_ONLY = 0 +Public Const SQL_CURSOR_KEYSET_DRIVEN = 1 +Public Const SQL_CURSOR_DYNAMIC = 2 +Public Const SQL_CURSOR_STATIC = 3 +Public Const SQL_CURSOR_TYPE_DEFAULT = SQL_CURSOR_FORWARD_ONLY ' Default value + +' SQL data type codes +Public Const SQL_UNKNOWN_TYPE = 0 +Public Const SQL_CHAR = 1 +Public Const SQL_NUMERIC = 2 +Public Const SQL_DECIMAL = 3 +Public Const SQL_INTEGER = 4 +Public Const SQL_SMALLINT = 5 +Public Const SQL_FLOAT = 6 +Public Const SQL_REAL = 7 +Public Const SQL_DOUBLE = 8 +Public Const SQL_DATETIME = 9 +Public Const SQL_VARCHAR = 12 + +' Error numbers raised when a call fails - These are also resource IDs for the corresponding error description. +Public Enum ODBCAPIErrors + ErrorAllocateHandle = 20000 + ErrorSetAttribute = 20001 + ErrorConnectDriver = 20002 + ErrorExecuteQuery = 20003 + ErrorFetchRecord = 20004 + ErrorCloseCursor = 20005 + ErrorFreeHandle = 20006 + ErrorDisconnectDriver = 20007 + ErrorGetData = 20008 + ErrorEndTransaction = 20009 + ErrorResourceDeadlock = 20010 +End Enum + +Public Function ODBCAPICallSuccessful(lReturnCode As Long) As Boolean +' Returns True if the specified return code from an ODBC API call indicates that the operation was successful, else +' returns False + Select Case lReturnCode + Case SQL_SUCCESS, SQL_SUCCESS_WITH_INFO + ODBCAPICallSuccessful = True + Case Else + ODBCAPICallSuccessful = False + End Select +End Function diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.RC new file mode 100644 index 0000000..dcf8e7a --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.RC @@ -0,0 +1,14 @@ +STRINGTABLE DISCARDABLE +BEGIN + 20000 "Error allocating handle" + 20001 "Error setting attribute" + 20002 "Error connecting driver" + 20003 "Error executing query" + 20004 "Error fetching record" + 20005 "Error closing cursor" + 20006 "Error freeing handle" + 20007 "Error disconnecting driver" + 20008 "Error getting data" + 20009 "Error ending transaction" + 20010 "Resource deadlock error" +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.RES new file mode 100644 index 0000000..bda3b44 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/ODBCAPI.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/RC.BAT b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/RC.BAT new file mode 100644 index 0000000..04069f4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/RC.BAT @@ -0,0 +1,2 @@ +rc.exe /foODBCAPI.res ODBCAPI.rc +pause \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/UTILITY.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/UTILITY.BAS new file mode 100644 index 0000000..e65a61b --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINCLUD/UTILITY.BAS @@ -0,0 +1,483 @@ +Attribute VB_Name = "Utility" +Option Explicit + +' Registry access API +Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long +Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long +Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long +Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, ByVal lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, ByVal lpftLastWriteTime As Long) As Long +Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long +Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long +Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long +Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long + +Declare Function GetTempPath Lib "Kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long +Declare Function GetTempFileNameAPI Lib "Kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long +Public Const MAX_PATH = 260 + +' Registry constants +Public Const ERROR_SUCCESS = 0 +Public Const HKEY_CURRENT_USER = &H80000001 +Public Const HKEY_LOCAL_MACHINE = &H80000002 +Public Const REG_OPTION_NON_VOLATILE = 0 +Public Const KEY_ALL_ACCESS = &HF003F ' ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) +Public Const REG_SZ = 1 + +Public Function AddItemToList(ctrControl As Control, ByVal sItem As String) As Boolean +' Adds an item to the control's list if it is not a duplicate +' Returns true if the item was added + Dim i As Integer + Dim bAddItem As Boolean + + sItem = Trim(sItem) + With ctrControl + bAddItem = True + For i = 0 To .ListCount - 1 + If StrComp(sItem, .List(i), vbTextCompare) = 0 Then + bAddItem = False + Exit For + End If + Next + If bAddItem Then + .AddItem sItem + End If + AddItemToList = bAddItem + End With +End Function + +Sub AlignTextToBottom(ctlControl As Control, sText As String) +' Sets the default property of the specified control to the specified text such that the text is aligned to +' to the bottom of the control. Wordwrap must be set to True. +' Currently, only Label controls are supported. + Debug.Assert TypeName(ctlControl) = "Label" + Dim iMaxLines As Integer ' The max number of lines the control can handle + Dim iNumLines As Integer ' The number of lines in the current message + With ctlControl + iMaxLines = Int(.Height / .Parent.TextHeight("A")) + iNumLines = Int(.Parent.TextWidth(sText) / .Width) + 1 ' Leave an additional line for wordwrap overflow + If iNumLines < iMaxLines Then + ctlControl = String(iMaxLines - iNumLines, vbCrLf) & sText ' Pad with blank lines + Else + ctlControl = sText + End If + .Refresh + End With +End Sub + +Sub LoadResStrings(frm As Form) + On Error Resume Next + + Dim ctl As Control + Dim Obj As Object + Dim iResID As Integer, i As Integer + + 'set the form's caption + If IsNumeric(frm.Tag) Then + frm.Caption = LoadResString(CInt(frm.Tag)) + End If + + 'set the controls' captions using the caption + 'property for menu items and the Tag property + 'for all other controls + For Each ctl In frm.Controls + Err.Clear + Select Case TypeName(ctl) + Case "Menu": + iResID = CInt(Left$(ctl.Caption, 5)) ' Upto first 5 characters for res id, pad with spaces + If Err = 0 Then + ctl.Caption = LoadResString(iResID) + End If + Case "SSTab": + For i = 0 To ctl.Tabs - 1 + iResID = CInt(Left$(ctl.TabCaption(i), 5)) ' Upto first 5 characters for res id, pad with spaces + If Err = 0 Then + ctl.TabCaption(i) = LoadResString(iResID) + End If + Next + Case "TabStrip": + For Each Obj In ctl.Tabs + Err.Clear + If IsNumeric(Obj.Tag) Then + Obj.Caption = LoadResString(CInt(Obj.Tag)) + End If + 'check for a tooltip + If IsNumeric(Obj.ToolTipText) Then + If Err = 0 Then + Obj.ToolTipText = LoadResString(CInt(Obj.ToolTipText)) + End If + End If + Next + Case "Toolbar": + For Each Obj In ctl.Buttons + Err.Clear + If IsNumeric(Obj.Tag) Then + Obj.ToolTipText = LoadResString(CInt(Obj.Tag)) + End If + Next + Case "ListView": + For Each Obj In ctl.ColumnHeaders + Err.Clear + If IsNumeric(Obj.Tag) Then + Obj.Text = LoadResString(CInt(Obj.Tag)) + End If + Next + Case Else + If IsNumeric(ctl.Tag) Then + If Err = 0 Then + ctl.Caption = LoadResString(CInt(ctl.Tag)) + End If + End If + 'check for a tooltip + If IsNumeric(ctl.ToolTipText) Then + If Err = 0 Then + ctl.ToolTipText = LoadResString(CInt(ctl.ToolTipText)) + End If + End If + End Select + Next +End Sub + +Public Function RegKeyExists(hRootKey As Long, sKey As String) As Boolean +' Returns True if the specified key exists under the specified root key, else returns False + Dim hKey As Long + If RegOpenKeyEx(hRootKey, sKey, 0, KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then + RegCloseKey hKey + RegKeyExists = True + Else + RegKeyExists = False + End If +End Function + +Public Function SaveRegSetting(strMainKey As String, strSubKey As String, strValueName As String, _ + strValue As String) As Boolean +' Saves the specified value in the registry under the key composed of the specified key and subkey. +' Only string values supported for now. +' Returns true if successful + Dim hKey As Long, cbData As Long + Dim strKey As String + + On Error GoTo SaveRegSettingError + + If strSubKey = "" Then + strKey = strMainKey + Else + strKey = strMainKey & "\" & strSubKey + End If + If (RegCreateKeyEx(HKEY_LOCAL_MACHINE, strKey, 0, vbNullString, _ + REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, hKey, 0)) = ERROR_SUCCESS Then + cbData = LenB(StrConv(strValue, vbFromUnicode)) + If RegSetValueEx(hKey, strValueName, 0, REG_SZ, ByVal strValue, cbData) <> ERROR_SUCCESS Then + RegCloseKey hKey + Err.Raise E_UNEXPECTED + End If + RegCloseKey hKey + SaveRegSetting = True + Else + Err.Raise E_UNEXPECTED + End If + +SaveRegSettingResume: + Exit Function + +SaveRegSettingError: + SaveRegSetting = False + Resume SaveRegSettingResume +End Function + +Public Sub SelectListItem(ctlList As Control, strValue As String) +' Selects the item that matches strValue in ctlList (ListBox or Combo) + + Dim i As Integer, iNewIndex As Integer + + Debug.Assert TypeName(ctlList) = "ComboBox" Or TypeName(ctlList) = "ListBox" + + With ctlList + iNewIndex = -1 + For i = 0 To .ListCount - 1 + If .List(i) = strValue Then iNewIndex = i + Next + .ListIndex = iNewIndex + End With +End Sub + +Public Function GetRegSetting(strMainKey As String, strSubKey As String, strValueName As String, _ + Optional strDefault As String = "", Optional hRootKey As Long = HKEY_LOCAL_MACHINE) As String +' Gets the specified value from the registry key composed of the specified key and subkey. +' Only string values supported for now. + Dim hKey As Long, cbData As Long, lType As Long + Dim strKey As String, strData As String * glMAX_NAME_LENGTH + + If strSubKey = "" Then + strKey = strMainKey + Else + strKey = strMainKey & "\" & strSubKey + End If + + If RegOpenKeyEx(hRootKey, strKey, 0, KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then + cbData = LenB(StrConv(strData, vbFromUnicode)) + Dim lReserved As Long + If RegQueryValueEx(hKey, strValueName, 0, lType, ByVal strData, cbData) = ERROR_SUCCESS Then + GetRegSetting = TruncateAtNull(strData) + Else + GetRegSetting = strDefault + End If + RegCloseKey hKey + Else + GetRegSetting = strDefault + End If +End Function + +Public Function GetTempDir() As String +' Returns the temp directory path + Dim TmpDirLen As Long + Dim TmpDir As String + Dim TmpDirLenActual As Long + + TmpDirLen = GetTempPath(0, TmpDir) ' Get the length needed for the temp directory + TmpDir = Space(TmpDirLen) ' Create enough space for it then get it + TmpDirLenActual = GetTempPath(TmpDirLen, TmpDir) + ' Strip off any extra stuff + If TmpDirLen > TmpDirLenActual Then + GetTempDir = Left(TmpDir, TmpDirLenActual) + Else + GetTempDir = App.Path & "\" ' This code should never get executed - but, just in case + End If +End Function + +Public Function GetTempFileName() As String +' Returns a unique filename. + Dim sTempDir As String, sFileName As String + + sTempDir = GetTempDir + sFileName = Space$(MAX_PATH) + If GetTempFileNameAPI(sTempDir, "ape", 0, sFileName) <> 0 Then + GetTempFileName = TruncateAtNull(sFileName) + Else + GetTempFileName = "" + End If +End Function + +Function Substitute(sString As String, sFind As String, sReplace As String) As String +' Substitutes string sReplace in place of string sFind in sString + Dim lStart As Long, lEnd As Long, lFindLength As Long + Dim sNewString As String + + sNewString = "" + lFindLength = Len(sFind) + lStart = 1 + lEnd = InStr(lStart, sString, sFind) + Do While lEnd > 0 + sNewString = sNewString & Mid(sString, lStart, lEnd - lStart) & sReplace + lStart = lEnd + lFindLength + lEnd = InStr(lStart, sString, sFind) + Loop + Substitute = sNewString & Mid(sString, lStart) +End Function + +Public Function RemoveAmpersands(strString As String) As String +' Removes the ampersands in the specified string. + RemoveAmpersands = Substitute(strString, "&", "") +End Function + +Public Function DSNExists(sDSN As String) As Boolean +' Returns True if the specified DSN exists, else returns False. + If sDSN = "" Then + DSNExists = False + Else + DSNExists = RegKeyExists(HKEY_CURRENT_USER, gsODBC_INI_REG_KEY & "\" & sDSN) + End If +End Function + +Public Function GetDSNValue(sDSN As String, sValueName As String) As String +' Returns the specified value (sValueName) of the specified DSN (sDSN) + GetDSNValue = GetRegSetting(gsODBC_INI_REG_KEY, sDSN, sValueName, "", HKEY_CURRENT_USER) +End Function + +Public Function GetAllRegSettings(strMainKey As String, strSubKey As String) As Variant +' Returns an array of all values under the registry key composed of the specified key and subkey. +' Only string values supported for now. + Dim hKey As Long, cbData As Long, cbValueName As Long, lType As Long + Dim strKey As String, strData As String * giMAX_REG_DATA_LENGTH, strValueName As String * glMAX_NAME_LENGTH + Dim aValues() As String + + If strSubKey = "" Then + strKey = strMainKey + Else + strKey = strMainKey & "\" & strSubKey + End If + If (RegCreateKeyEx(HKEY_LOCAL_MACHINE, strKey, 0, vbNullString, _ + REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, hKey, 0)) = ERROR_SUCCESS Then + ' Iterate over all the values in this key + Dim strClass As String * glMAX_NAME_LENGTH + Dim cbClass As Long, cSubKeys As Long, cbMaxSubKeyLen As Long, cbMaxClassLen As Long, lReserved As Long + Dim cValues As Long, cbMaxValueNameLen As Long, cbMaxValueLen As Long, cbSecurityDescriptor As Long + + cbClass = LenB(StrConv(strClass, vbFromUnicode)) + If RegQueryInfoKey(hKey, strClass, cbClass, lReserved, cSubKeys, cbMaxSubKeyLen, cbMaxClassLen, cValues, cbMaxValueNameLen, _ + cbMaxValueLen, cbSecurityDescriptor, 0) = ERROR_SUCCESS Then + If cValues > 0 Then + ReDim aValues(0 To cValues - 1, 0 To 1) + Dim i As Long + For i = 0 To cValues - 1 + cbValueName = LenB(StrConv(strValueName, vbFromUnicode)) + cbData = LenB(StrConv(strData, vbFromUnicode)) + If RegEnumValue(hKey, i, strValueName, cbValueName, 0, lType, strData, cbData) = ERROR_SUCCESS Then + aValues(i, 0) = TruncateAtNull(strValueName) + aValues(i, 1) = TruncateAtNull(strData) + End If + Next + GetAllRegSettings = aValues + End If + End If + RegCloseKey hKey + End If +End Function + +Public Function DeleteRegSettings(strMainKey As String, strSubKey As String) As Boolean +' Deletes the specified key and all its sub keys +' Returns true is successful + Dim strKey As String + + If strSubKey = "" Then + strKey = strMainKey + Else + strKey = strMainKey & "\" & strSubKey + End If + DeleteRegSettings = (RegDeleteKey(HKEY_LOCAL_MACHINE, strKey) = ERROR_SUCCESS) +End Function + +Public Function Min(a, b) + If a < b Then + Min = a + Else + Min = b + End If +End Function + +Public Function Max(a, b) + If b > a Then + Max = b + Else + Max = a + End If +End Function + +Public Function TruncateAtNull(ByVal strText As String) As String +' Returns the specified string truncated at the first null character + Dim lLen As Long + + lLen = InStr(strText, Chr(0)) + If lLen < 1 Then + TruncateAtNull = strText + Else + TruncateAtNull = Left(strText, lLen - 1) + End If +End Function + +Public Function TruncateFile(sFileName As String, dSize As Double) +' Truncates the specified file to lSize bytes. Truncation occurs at the beginning of the file. + Const CHUNK_SIZE = 65535 ' Size of chunk for copying file contents + + Dim dOverflow As Double + dOverflow = CDbl(FileLen(sFileName)) - dSize + If dOverflow > 0 Then + Dim sTempFile As String, baChunk(CHUNK_SIZE) As Byte + Dim lFileNum As Long, lTempFileNum As Long + sTempFile = GetTempFileName + lFileNum = FreeFile + Open sFileName For Binary Access Read As lFileNum + lTempFileNum = FreeFile + Open sTempFile For Binary Access Write As lTempFileNum + Seek lFileNum, dOverflow + 1 + ' Start copying file from first complete line - fill the very first (incomplete) line with "." characters. + Get lFileNum, , baChunk + Dim l As Long + For l = LBound(baChunk) To UBound(baChunk) + If baChunk(l) <> 13 Then ' = vbCr + baChunk(l) = 46 ' = Asc(".") + Else + Put lTempFileNum, , baChunk + Exit For + End If + Next + Do While Not EOF(lFileNum) + Get lFileNum, , baChunk + Put lTempFileNum, , baChunk + Loop + Close lFileNum + Close lTempFileNum + FileCopy sTempFile, sFileName + Kill sTempFile + End If +End Function + +Public Function StripPath(strFileName As String, Optional bStripExtension As Boolean = False) As String +' Strips the path off the specified fully qualified filename. If bStripExtension is True, the file extension is stripped as well. + Dim iStart As Integer, iNext As Integer, iActualStart As Integer + + ' First, find the beginning of the actual filename + iStart = 0 + Do + iNext = InStr(iStart + 1, strFileName, "\") + If iNext = 0 Then + Exit Do + End If + iStart = iNext + Loop + iActualStart = iStart + 1 ' Point to beginning of actual filename + ' Next, find the beginning of the extension (which immediately follows the last period in the filename) + If bStripExtension Then + Do + iNext = InStr(iStart + 1, strFileName, ".") + If iNext = 0 Then + Exit Do + End If + iStart = iNext + Loop + End If + If iStart = iActualStart - 1 Then ' If no extension + StripPath = Mid(strFileName, iActualStart) + Else + StripPath = Mid(strFileName, iActualStart, iStart - iActualStart) + End If +End Function + +Public Sub SizeToFit(ctl As Control) +' Resizes the control to fit the displayed text + With ctl + Select Case TypeName(ctl) + Case "CheckBox", "OptionButton" + .Width = .Parent.TextWidth(.Caption) + .Height ' Compensate for non-text area + Case Else + Debug.Assert False + End Select + End With +End Sub + +Public Function SubstituteParams(bstrString As String, ParamArray aParams()) As String +' Substitutes the parameters in the paramarray for placeholders in the string. The placeholders are of the format +' '%n' where 'n' represents the index of the parameter in the paramarray. +' A maximum of 10 parameters (0 - 9) are supported. + + Dim iStart As Integer, iPtr As Integer, iParamNum As Integer + Dim cChar As String * 1 + Dim bstrReturn As String + + iStart = 1 + iPtr = InStr(bstrString, "%") + Do While iPtr > 0 And iPtr < Len(bstrString) + bstrReturn = bstrReturn & Mid$(bstrString, iStart, iPtr - iStart) + cChar = Mid(bstrString, iPtr + 1, 1) + If IsNumeric(cChar) Then + iParamNum = Val(cChar) + If iParamNum <= UBound(aParams) Then + bstrReturn = bstrReturn & aParams(iParamNum) + End If + End If + iStart = iPtr + 2 + iPtr = InStr(iStart, bstrString, "%") + Loop + SubstituteParams = bstrReturn & Mid(bstrString, iStart) +End Function + + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/AEINSTNR.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/AEINSTNR.VBP new file mode 100644 index 0000000..60ccc19 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/AEINSTNR.VBP @@ -0,0 +1,40 @@ +Type=OleExe +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#9#..\AEIntrfc\AEIntrfc.TLB#Application Performance Explorer 2.0 Interfaces +Class=Instancer; instncer.cls +Module=modInstancer; modinstr.bas +Startup="Sub Main" +HelpFile="" +Title="APE Instancer" +ExeName32="AEInstnr.exe" +Path32="..\..\Retail" +Command32="" +Name="AEInstancer" +HelpContextID="0" +Description="Application Performance Explorer Instancer" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AEInstnr.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Instancer" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Instancer" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/INSTANCR.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/INSTANCR.ICO new file mode 100644 index 0000000..79636ed Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/INSTANCR.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/INSTNCER.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/INSTNCER.CLS new file mode 100644 index 0000000..5c6cf0e --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/INSTNCER.CLS @@ -0,0 +1,38 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "Instancer" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Instance Manager" +Option Explicit + +Implements APEInterfaces.IInstancer + +Private Function IInstancer_Object(ByVal sProgID As String) As Object + '------------------------------------------------------------------------- + 'Purpose: + ' This public class is a work around for error + ' -2147221166 (80040152) which occurrs every time a client + ' object creates an instance of a remote server, + ' destroys it, registers it local, and tries to + ' create a local instance. The client can not + ' create an object registered locally after it created + ' an instance while it was registered remotely + ' until it shuts down and restart. Therefore, + ' it works to call another process to create the + ' local instance and pass it back. + 'In: + ' [sProgID] + ' ProgID of needed object + 'Return: + ' Object created using the passed progId + '------------------------------------------------------------------------- + Set IInstancer_Object = CreateObject(sProgID) +End Function diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/MODINSTR.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/MODINSTR.BAS new file mode 100644 index 0000000..ee45390 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINSTNR/MODINSTR.BAS @@ -0,0 +1,9 @@ +Attribute VB_Name = "modInstancer" +Option Explicit +'------------------------------------------------------------------------- +'See comments in Instancer class module +'------------------------------------------------------------------------- + +Sub Main() + +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEINTRFC/BUILD.BAT b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINTRFC/BUILD.BAT new file mode 100644 index 0000000..7a378df --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEINTRFC/BUILD.BAT @@ -0,0 +1,4 @@ +@echo off +midl /nologo /no_warn AEIntrfc.IDL /tlb AEIntrfc.TLB +midl /nologo /no_warn AEExpdtr.IDL /tlb AEExpdtr.TLB +pause diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.RC new file mode 100644 index 0000000..5e887d3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.RC @@ -0,0 +1,15 @@ +STRINGTABLE DISCARDABLE +BEGIN + 1 "*** Do *NOT* Localize any string that starts with '***'. They are comments to be used by localizers to identify sections. They also mark the beginning of a new 'section' within the String Table." + //Logging strings + 2 "Logger" //Component name + //Display string + 3 "Disk full, logging turned off." + 4 "Writing Temporary log file." + //U/I strings + 5 "Logger" //Form Caption + 29 "*** Font information for all forms. Index 30 is the Character set, Index 31 is Font name, Index 32 is Font Size" + 30 "0" + 31 "Tahoma" + 32 "10" +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.RES new file mode 100644 index 0000000..dc5666c Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.VBP new file mode 100644 index 0000000..c4a516d --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/AELOGGER.VBP @@ -0,0 +1,49 @@ +Type=OleExe +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#9#..\AEIntrfc\AEIntrfc.TLB#Application Performance Explorer 2.0 Interfaces +Module=modLogger; modloggr.bas +Module=modAEConstants; ..\AEInclud\modaecon.bas +Module=modVBErrors; ..\AEInclud\modvberr.bas +Class=clsPositionForm; ..\AEInclud\clsposfm.cls +Form=frmloggr.frm +Class=Logger; logger.cls +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +Module=Utility; ..\AEInclud\Utility.bas +Module=Localize; ..\AEInclud\Localize.bas +ResFile32="aelogger.res" +IconForm="frmLogger" +Startup="Sub Main" +HelpFile="" +Title="APE Logger" +ExeName32="AELogger.exe" +Path32="..\..\Retail" +Command32="" +Name="AELogger" +HelpContextID="0" +Description="Application Performance Explorer Logger" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AELogger.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Logger" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Logger" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/FRMLOGGR.FRM b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/FRMLOGGR.FRM new file mode 100644 index 0000000..94575a9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/FRMLOGGR.FRM @@ -0,0 +1,66 @@ +VERSION 5.00 +Begin VB.Form frmLogger + BorderStyle = 1 'Fixed Single + Caption = "Logger" + ClientHeight = 2100 + ClientLeft = 1380 + ClientTop = 1980 + ClientWidth = 4200 + ClipControls = 0 'False + Icon = "frmloggr.frx":0000 + LinkTopic = "Form1" + MaxButton = 0 'False + ScaleHeight = 2100 + ScaleWidth = 4200 + StartUpPosition = 3 'Windows Default + Begin VB.Label lblStatus + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 1170 + Left = 70 + TabIndex = 0 + Top = 900 + Width = 3835 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmLogger" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Private Sub Form_Load() + 'Use clsPositionForm object to move + 'Form to settings saved in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + oPosition.Move Me, False + Width = giDEFAULT_FORM_WIDTH + Height = giDEFAULT_FORM_HEIGHT + 'Set Form Caption + ApplyFontToForm Me + Caption = LoadResString(giFORM_CAPTION) + +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + 'Don't unload unless called from code. + If UnloadMode = vbFormControlMenu Then Cancel = False +End Sub + +Private Sub Form_Unload(Cancel As Integer) + 'Use clsPositionForm object to save + 'forms position in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + oPosition.Save Me + gbShowForm = False +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/FRMLOGGR.FRX b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/FRMLOGGR.FRX new file mode 100644 index 0000000..acfccb3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/FRMLOGGR.FRX differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/LOGGER.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/LOGGER.CLS new file mode 100644 index 0000000..ffe82a7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/LOGGER.CLS @@ -0,0 +1,202 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "Logger" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Logger" +Option Explicit +'------------------------------------------------------------------------- +'This is the only public class in this application. See modLogger for +'purpose. +' This class implements the ILogger interface. +'------------------------------------------------------------------------- + +Implements APEInterfaces.ILogger + +Public Property Let ILogger_Show(ByVal bShow As Boolean) +Attribute ILogger_Show.VB_Description = "Determines whether the Logger shows a form." + '------------------------------------------------------------------------- + 'Purpose: Show property determines whether or not a form is displayed + ' while the logger is loaded. + ' + 'Effects: [gbShowForm] + ' Becomes equal to the passed parameter + ' [frmLogger] + ' Becomes loaded and visible if parameter is true, but is + ' unloaded if parameter is false + '------------------------------------------------------------------------- + If Not gbShowForm = bShow Then + gbShowForm = bShow + If bShow = True Then + frmLogger.Show + Else + Unload frmLogger + End If + End If +End Property + +Public Property Get ILogger_Show() As Boolean + ILogger_Show = gbShowForm +End Property + +Public Property Let ILogger_AutomaticWrite(ByVal bWrite As Boolean) +Attribute ILogger_AutomaticWrite.VB_Description = "Determines whether log records are written to a file and purged from memory when the log threshold is reached." + '------------------------------------------------------------------------- + 'Purpose: AutomaticWrite property determines if the Logger should + ' automatically write to a file when a record threshold is met. + 'Effects: [gbWriteRecords] + ' Becomes equal to the passed parameter + '------------------------------------------------------------------------- + gbWriteRecords = bWrite +End Property + +Public Property Get ILogger_AutomaticWrite() As Boolean + ILogger_AutomaticWrite = gbWriteRecords +End Property + +Public Property Let ILogger_Threshold(ByVal lThreshold As Long) +Attribute ILogger_Threshold.VB_Description = "Sets the log threshold in kilobytes that determines when log records are written to a file and purged from memory." + '------------------------------------------------------------------------- + 'Purpose: If AutomaticWrite property is true, logger uses the + ' Threshold property to determine how many kilobytes should + ' be held in memory before writing to a file and emptying + ' log record array. + 'Effects: [glThreshold] + ' Becomes equal to the passed parameter + ' [glThresholdRecs] + ' Becomes an estimated number of records equivalent + '------------------------------------------------------------------------- + On Error Resume Next + glThreshold = lThreshold + glThresholdRecs = lThreshold * giLOG_RECORD_KILOBYTES +End Property + +Public Property Get ILogger_Threshold() As Long + ILogger_Threshold = glThreshold +End Property + +'************************ +'Public Methods +'************************ + +Public Sub ILogger_SetProperties(ByVal bShow As Boolean, Optional ByVal bAutomaticWrite As Variant, Optional ByVal lThreshold As Variant) +Attribute ILogger_SetProperties.VB_Description = "Sets all Logger properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: Provided so that properties can be set by one method call + 'Effects: Sets the following properties: + ' Show, AutomaticWrite, Threshold + '------------------------------------------------------------------------- + Me.ILogger_Show = bShow + If Not IsMissing(bAutomaticWrite) Then gbWriteRecords = bAutomaticWrite + If Not IsMissing(lThreshold) Then Me.ILogger_Threshold = lThreshold +End Sub + +Public Sub ILogger_Record(ByVal sComponent As String, ByVal sServiceID As String, ByVal sComment As String, ByVal lMilliseconds As Long) +Attribute ILogger_Record.VB_Description = "Adds a log record." + '------------------------------------------------------------------------- + 'Purpose: Provided for any app to call to add one log record + 'Effects: Calls AddLogRecord + ' Calls WriteRecords when the Threshold is reached + '------------------------------------------------------------------------- + AddLogRecord sComponent, sServiceID, sComment, lMilliseconds + If gbWriteRecords Then + If glLastAddedRecord >= glThresholdRecs And glThresholdRecs > 0 Then + WriteRecords + End If + End If +End Sub + +Public Function ILogger_GetRecords() As Variant +Attribute ILogger_GetRecords.VB_Description = "Returns a variant array containing log records. Must be called multiple times until until Null is returned." + '------------------------------------------------------------------------- + 'Purpose: Use to retrieve all of the log records passed to the Logger + ' Keep calling until, it returns does not return a variant array + 'Return: Returns a two dimension array in which + ' the first four elements of the first dimension + ' are Component(string), ServiceID(Long),Comment(string), + ' and Milliseconds(long) respectively + ' the second dimension represents the number of log records + ' User Defined Types can not be returned from public + ' procedures of public classes + 'Effects: [gaRecords] + ' Redimensioned after calling GetRecords to not have empty + ' records at the end + ' [glLastAddedRecord] + ' becomes equal to giNO_RECORDS + '------------------------------------------------------------------------- + + GetWrittenLog + 'Trim the array to only send the filled elements + If glLastAddedRecord >= 0 Then + If UBound(gaRecords, 2) <> glLastAddedRecord Then ReDim Preserve gaRecords(giLOG_ARRAY_DIMENSION_ONE, glLastAddedRecord) + ILogger_GetRecords = gaRecords() + 'Changing the glLastAddedRecord flag to giNO_RECORDS causes + 'WriteRecords to ignore records at next call + glLastAddedRecord = giNO_RECORDS + Else + ILogger_GetRecords = Null + End If +End Function + +'******************* +'Private Procedures +'******************* + +Private Sub Class_Initialize() + '------------------------------------------------------------------------- + 'Purpose: Set the initial state of the logger when the first logger + ' class object is initialized + 'Effects: [glInstances] + ' Iterates it once + '------------------------------------------------------------------------- + 'Count how many times this class is instanced + 'to react to the first instance or the release + 'of the last instance. + glInstances = glInstances + 1 + If glInstances = 1 Then + 'Set default property values + gbShowForm = gbSHOW_FORM_DEFAULT + gbWriteRecords = gbWRITE_RECORDS_DEFAULT + Me.ILogger_Threshold = gbTHRESHOLD_DEFAULT + gsFileName = GetTempFile + glLastAddedRecord = giNO_RECORDS + 'Load frmLogger if gbShowForm is True + If gbShowForm Then frmLogger.Show + End If +End Sub + +Private Sub Class_Terminate() + '------------------------------------------------------------------------- + 'Purpose: Closes the form and destroys the tempfile when the last + ' instance is terminated + 'Effects: [glInstances] + ' decreases by one + '------------------------------------------------------------------------- + 'Count how many times this class is instanced + 'so subtract one every terminate event + 'If the last terminate event is occuring + 'make sure forms are unloaded and write records + On Error GoTo Class_TerminateError + glInstances = glInstances - 1 + If glInstances = 0 Then + Unload frmLogger + Close 'Close here incase getting logs got canceled + Kill gsFileName + End If + Exit Sub +Class_TerminateError: + Select Case Err.Number + Case ERR_FILE_NOT_FOUND + 'There is no file to kill + Resume Next + Case Else + Resume Next + End Select +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/LOGGER.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/LOGGER.ICO new file mode 100644 index 0000000..f14b758 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/LOGGER.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/MODLOGGR.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/MODLOGGR.BAS new file mode 100644 index 0000000..40026fe --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AELOGGER/MODLOGGR.BAS @@ -0,0 +1,305 @@ +Attribute VB_Name = "modLogger" +Option Explicit +'------------------------------------------------------------------------- +'The project is the Logger component of the Application Performance Explorer +'The Logger is a multiuse server that objects can call to pass log records +'The logger will store the records, either in memory or in a temp file. +'The logger will then return the records the the Manager when it calls GetRecords +' +'Key Files: +' frmLoggr.frm Only form in app +' clsPosFm.cls Tool used to save form position in registry +' Logger.cls Multi-Use public class providing only OLE interface +'------------------------------------------------------------------------- + +'API Declares +#If UNICODE Then + Declare Function GetTempFileName Lib "Kernel32" Alias "GetTempFileNameW" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long + Declare Function GetTempPath Lib "Kernel32" Alias "GetTempPathW" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long +#Else + Declare Function GetTempFileName Lib "Kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long + Declare Function GetTempPath Lib "Kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long +#End If +Declare Function GetTickCount Lib "Kernel32" () As Long + +'Public Constants +Public Const glROWS_RETURNED_PER_GET_RECORDS As Long = 500 'Max number of records returned for + 'each call of GetRecords +'Property Defaults +Public Const gbSHOW_FORM_DEFAULT As Boolean = False +Public Const gbWRITE_RECORDS_DEFAULT As Boolean = False +Public Const gbTHRESHOLD_DEFAULT As Long = 2000 +Public Const glREDIM_CHUNK_SIZE As Long = 100 +Public Const giNO_RECORDS As Integer = -1 + +'Resource string constants +Public Const giLOGGER_NAME As Integer = 2 +Public Const giDISK_FULL As Integer = 3 +Public Const giWRITING_TEMP_FILE As Integer = 4 +Public Const giFORM_CAPTION As Integer = 5 +Public Const giFONT_CHARSET_INDEX As Integer = 30 +Public Const giFONT_NAME_INDEX As Integer = 31 +Public Const giFONT_SIZE_INDEX As Integer = 32 + +'Global Variables +Public gbShowForm As Boolean 'If true show form +Public gbWriteRecords As Boolean 'If true write records to file when Record + 'Threshold is reached. +Public glThreshold As Long 'Record threshold in kilobytes +Public glThresholdRecs As Long 'Record threshold in number of records +Public gsFileName As String 'FileName to write records to +Public gaRecords() As Variant 'Array used to store log records before they are written +Public glInstances As Long 'Counter of how many instances of Logger are instanciated +Public glLastAddedRecord As Long 'Last index of gaRecords that a record was added to +Public gbWritingFile As Boolean 'If true we are in WriteRecords procedure +Public gbDiskFull As Boolean 'If true Disk Full error occured +Public gbGetWrittenLogCalled As Boolean 'Get Written Log has been called by Manager + 'Now logger is expecting GetWrittenLog to be called + 'until all records are received. The next time a record + 'is written the temp file will be deleated assuming that all + 'records were received. + + +Sub Main() +End Sub + +Public Sub WriteRecords() + '------------------------------------------------------------------------- + 'Purpose: WriterRecords procedure writes all the log records currently + ' in the global array + 'Effects: + ' [gbGetWrittenLogCalled] becomes false + ' The temp file is deleted if gbGetWrittenLogCalled is true + ' [glLastAddedRecord] is set to giNO_RECORDS + ' [gaRecords]is redimensioned to glREDIM_CHUNK_SIZE + 'Assumption: + ' gsFileName is a valid temporary file name + ' If gbGetWrittenLogCalled is true then all the records in + ' the temp file have been retrieved by the manager through + ' the GetRecords method + '------------------------------------------------------------------------- + + Dim iFile As Integer 'File number + Dim l As Long 'For...Next counter + Dim sComponent As String 'APE Component name being written + Dim sServiceID As String 'Service ID (Task request ID) being written + Dim sComment As String 'Comment being written + Dim lMilliseconds As Long 'Milliseconds being written + + On Error GoTo WriteRecordsError + + 'Check to see if the contents of the temp file + 'need deleted first, the reason it is not delete + 'when the flag is flipped is to give one the chance + 'of rescueing it if the Manager fails to retreive + 'the records from it + If gbGetWrittenLogCalled Then + Close 'Close in case Getting log was cancelled + Kill gsFileName + gbGetWrittenLogCalled = False + End If + + If glLastAddedRecord > giNO_RECORDS Then + AddLogRecord LoadResString(giLOGGER_NAME), 0, LoadResString(giWRITING_TEMP_FILE), GetTickCount + iFile = FreeFile + Open gsFileName For Append As iFile + 'Iterate through array writing record and + For l = 0 To glLastAddedRecord + sComponent = gaRecords(giCOMPONENT_ELEMENT, l) + sServiceID = gaRecords(giSERVICE_ELEMENT, l) + sComment = gaRecords(giCOMMENT_ELEMENT, l) + lMilliseconds = gaRecords(giMILLI_SECONDS_ELEMENT, l) + Write #iFile, sComponent, sServiceID, sComment, lMilliseconds + 'Reset logrecord counter no after writing the first record + 'so that records are not added after the count that is being + 'written and therefore, lost. This also protects from + 'Addlogrecord trying to write a record greater than + 'giRedimChunkSize write after gaRecords is redimensioned + If l = 0 Then glLastAddedRecord = giNO_RECORDS + Next + Close iFile + 'Redimension array + 'Preserve is used because there is a potential + 'for a log record to be added after the above line + 'but before the following one + ReDim Preserve gaRecords(giLOG_ARRAY_DIMENSION_ONE, glREDIM_CHUNK_SIZE) + End If + + Exit Sub +WriteRecordsError: + Select Case Err.Number + Case ERR_DISK_FULL + 'Turn off logging erase array + 'leave present file for later retrieval + DisplayStatus LoadResString(giDISK_FULL) + Close iFile + Erase gaRecords + gbDiskFull = True + Exit Sub + Case ERR_FILE_NOT_FOUND + 'There is no temp file to kill + Resume Next + Case Else + Close iFile + Err.Raise Err.Number, Err.Source, Err.Description + Exit Sub + End Select +End Sub + +Public Sub GetWrittenLog() + '------------------------------------------------------------------------- + 'Purpose: Checks to see if there is log records written to a temp file + ' If there are it inputs it and adds it to the gaRecords array + ' If it reaches the chunk size for passing log records it will + ' exit the loop, leaving the file open. It is necessary to keep + ' calling this function until no records or added. Do not call + ' this function more than once until the array that was filled + ' was erased. The external process that is calling a method that + ' calls this procedure should be responsible for calling until + ' all records have been attained. + 'Effects: + ' [gbGetWrittenLogCalled] becomes true + ' Temp file may be left open if all records are not read + ' AddlogRecord is called for each record read + 'Assumption: + ' If gbGetWrittenLogCalled is true then the temp file is already + ' open, ready for the next record to be read. + ' If the EOF is not reached before the glROWS_RETURNED_PER_GET_RECORDS + ' is reached then the external process that called Logger.GetRecords + ' will call it again, to get the rest of the records + '------------------------------------------------------------------------- + + Static stlFile As Long 'File number of file that may be left open between calls + Dim sComponent As String 'APE Component name that will be read from file + Dim sServiceID As String 'Service ID that will be read from file + Dim sComment As String 'Comment that will be read from file + Dim lMilliseconds As Long 'Milliseconds that will be read from file + Dim lAddedCount As Long 'Used to count how many records have been read and + 'added to global array + + On Error GoTo GetWrittenLogError + 'Open file if not open yet + If Not gbGetWrittenLogCalled Then + 'Write records in memory first to order the records + 'with any records that may have already been written + WriteRecords + gbGetWrittenLogCalled = True + stlFile = FreeFile + Open gsFileName For Input As stlFile + End If + + + Do Until EOF(stlFile) + Input #stlFile, sComponent, sServiceID, sComment, lMilliseconds + AddLogRecord sComponent, sServiceID, sComment, lMilliseconds + lAddedCount = lAddedCount + 1 + 'Exit here if max record size was reached + If lAddedCount = glROWS_RETURNED_PER_GET_RECORDS Then Exit Sub + Loop + Close + Exit Sub +GetWrittenLogError: + Select Case Err.Number + Case ERR_FILE_NOT_FOUND + 'There are no written records so exit without calling gSendLog + Exit Sub + Case ERR_BAD_FILE_NAME + 'We have already reached the end of the file + 'and it has been closed + Exit Sub + Case ERR_IPUT_PAST_EOF + 'This could occur if a temp file was artificially made that + 'had an invalid format + Close stlFile + Exit Sub + Case Else + Close stlFile + Err.Raise Err.Number, Err.Source, Err.Description + Exit Sub + End Select +End Sub + +Public Sub AddLogRecord(sComponent As String, sServiceID As String, sComment As String, lMilliseconds As Long) + '------------------------------------------------------------------------- + 'Purpose: Called to add a record to the gaRecords. + 'In: [sComponent] APE component name that will be added + ' [sServiceID] Service ID that will be added + ' [sComment] Comment that will be added + ' [lMilliseconds] Milliseconds that will be added + 'Effects: [gaRecords] May be redimensioned (preserve) to increase + ' its size + ' [glLastAddedRecord] + ' will be increased by one + '------------------------------------------------------------------------- + Dim lU As Long 'The UBound of the the 2nd dimension of gaRecords + On Error GoTo AddLogRecordError +AddLogRecordTop: + 'If diskfull error occured immediately exit + If gbDiskFull Then Exit Sub + + If glLastAddedRecord = giNO_RECORDS Then + ReDim gaRecords(giLOG_ARRAY_DIMENSION_ONE, glREDIM_CHUNK_SIZE) + glLastAddedRecord = 0 + Else + lU = UBound(gaRecords, 2) + glLastAddedRecord = glLastAddedRecord + 1 + If glLastAddedRecord > lU Then + 'Redim gaRecords to increase size + lU = lU + glREDIM_CHUNK_SIZE + ReDim Preserve gaRecords(giLOG_ARRAY_DIMENSION_ONE, lU) + End If + End If + gaRecords(giCOMPONENT_ELEMENT, glLastAddedRecord) = sComponent + gaRecords(giSERVICE_ELEMENT, glLastAddedRecord) = sServiceID + gaRecords(giCOMMENT_ELEMENT, glLastAddedRecord) = sComment + gaRecords(giMILLI_SECONDS_ELEMENT, glLastAddedRecord) = lMilliseconds + Exit Sub +AddLogRecordError: + Select Case Err.Number + Case ERR_SUBSCRIPT_OUT_OF_RANGE + 'Synchronicity issues caused this + 'Got the glLastAddedRecord write before it got changed + 'but tried to put record in array right after it got redim'ed + Dim bTried + 'If already tried raise error + If bTried Then Err.Raise Err.Number, Err.Source, Err.Description + bTried = True + 'Try the at the top again, getting a new glLastAddedRecord + GoTo AddLogRecordTop + Case Else + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Sub + +'Puts a message in the status label +Public Sub DisplayStatus(s As String) + '------------------------------------------------------------------------- + 'Purpose: Displays passed string in the Logger form's status box if + ' the form is visible. + 'Assumtions: + ' If gbShowForm is true the form is loaded and visible + '------------------------------------------------------------------------- + If gbShowForm Then AlignTextToBottom frmLogger.lblStatus, s +End Sub + +Public Function GetTempFile() As String + '------------------------------------------------------------------------- + 'Purpose: Gets a temp file name from the system + 'Return: a valid temporary file name + '------------------------------------------------------------------------- + Dim lSize As Long + Dim sPath As String + Dim sName As String + Dim lResult As Long + + sPath = Space(255) + lResult = GetTempPath(255, sPath) + sPath = Left$(sPath, lResult) + sName = Space(255) + lResult = GetTempFileName(sPath, "AEL", 0, sName) + lResult = InStr(sName, vbNullChar) + sName = Left$(sName, lResult - 1) + + GetTempFile = sName +End Function + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/ACCOUNT.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/ACCOUNT.CLS new file mode 100644 index 0000000..b55ce31 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/ACCOUNT.CLS @@ -0,0 +1,297 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "Account" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE MTS Transaction Service (Account)" +Option Explicit + +Implements APEInterfaces.IMTSAccount + +Private Const E_NOTIMPL = &H80004001 +Private Const mlSTARTINGBALANCE = 1000000 ' Starting + +Public Sub Post(sConnect As String, eConnectOptions As ape_DbConnectionOptions, lAccountNo As Long, lAmount As Long) + '------------------------------------------------------------------------- + 'Purpose: + ' Provides an interface for late binding. Late binding is only provided + ' for test comparison. Other custom services should only use the implemented + ' interface. + '------------------------------------------------------------------------- + IMTSAccount_Post sConnect, eConnectOptions, lAccountNo, lAmount +End Sub + +Private Sub IMTSAccount_Post(sConnect As String, eConnectOptions As APEInterfaces.ape_DbConnectionOptions, lAccountNo As Long, lAmount As Long) + Dim lBalance As Long + Dim sSQLUpdate As String + Dim sSQLBalance As String + + ' Get our object context + Dim ctxObject As ObjectContext + Set ctxObject = GetObjectContext() + + sSQLUpdate = "UPDATE Account SET Balance = Balance + " + Str$(lAmount) + " WHERE AccountNo = " + Str$(lAccountNo) + sSQLBalance = "SELECT Balance FROM Account WHERE AccountNo = " + Str$(lAccountNo) + On Error GoTo PostError + + Select Case eConnectOptions + Case ape_DbConnectionOptions.ape_idcADO + If lAmount < 0 Then ' If debit, then get balance + PostADO sConnect, sSQLUpdate, sSQLBalance, lBalance + Else + PostADO sConnect, sSQLUpdate, sSQLBalance + End If + Case ape_DbConnectionOptions.ape_idcRDO + If lAmount < 0 Then ' If debit, then get balance + PostRDO sConnect, sSQLUpdate, sSQLBalance, lBalance + Else + PostRDO sConnect, sSQLUpdate, sSQLBalance + End If + Case ape_DbConnectionOptions.ape_idcDAO + If lAmount < 0 Then ' If debit, then get balance + PostDAO sConnect, sSQLUpdate, sSQLBalance, lBalance + Else + PostDAO sConnect, sSQLUpdate, sSQLBalance + End If + Case ape_DbConnectionOptions.ape_idcODBC + If lAmount < 0 Then ' If debit, then get balance + PostODBCAPI sConnect, sSQLUpdate, sSQLBalance, lBalance + Else + PostODBCAPI sConnect, sSQLUpdate, sSQLBalance + End If + Case Else + Err.Raise E_NOTIMPL + End Select + If lAmount < 0 And lBalance < 0 Then ' If a debit and acount is overdrawn + IMTSAccount_Post sConnect, eConnectOptions, lAccountNo, mlSTARTINGBALANCE ' Give a new starting balance + End If + + ctxObject.SetComplete ' Transaction completed + Exit Sub + +PostError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + ctxObject.SetAbort ' Transaction aborted + ' Need to explicitly set the error source to AEMTSSvc + Err.Raise lErrorNumber, "AEMTSSvc", LoadResString(ERROR_POSTING_TO_ACCOUNT) & " (" & sErrorDescription & ")" +End Sub + +Private Sub PostADO(sConnect As String, sSQLUpdate As String, sSQLBalance As String, Optional lBalance As Long) + ' If adoConnection throws an exception + On Error GoTo PostadoError + + ' Obtain the ADO connection + Dim adoConn As New ADODB.Connection + adoConn.Open sConnect + + ' Update the balance + adoConn.Execute sSQLUpdate + If Not IsMissing(lBalance) Then + ' Get resulting balance which may have been further updated via triggers + Dim adoRS As ADODB.Recordset + Set adoRS = adoConn.Execute(sSQLBalance) + If Not adoRS.EOF Then + lBalance = adoRS.Fields("Balance").Value + Else + Err.Raise errInvalidAccount + End If + adoRS.Close + End If + + adoConn.Close + Exit Sub + +PostadoError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + If Not adoRS Is Nothing Then + adoRS.Close + End If + If Not adoConn Is Nothing Then + adoConn.Close + End If + If lErrorNumber <> 0 Then + Err.Raise lErrorNumber, , sErrorDescription + End If +End Sub + +Private Sub PostRDO(sConnect As String, sSQLUpdate As String, sSQLBalance As String, Optional lBalance As Long) + ' If rdoConnection throws an exception + On Error GoTo PostRDOError + + ' Obtain the RDO environment and connection + Dim rdoConn As rdoConnection + Set rdoConn = rdoEngine.rdoEnvironments(0).OpenConnection("", rdDriverNoPrompt, False, sConnect) + + ' Update the balance + rdoConn.Execute sSQLUpdate + + If Not IsMissing(lBalance) Then + ' Get resulting balance which may have been further updated via triggers + Dim rdoRS As rdoResultset + Set rdoRS = rdoConn.OpenResultset(sSQLBalance) + If Not rdoRS.EOF Then + lBalance = rdoRS.rdoColumns("Balance") + Else + Err.Raise errInvalidAccount + End If + rdoRS.Close + End If + + rdoConn.Close + Exit Sub + +PostRDOError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + If Not rdoRS Is Nothing Then + rdoRS.Close + End If + If Not rdoConn Is Nothing Then + rdoConn.Close + End If + If lErrorNumber <> 0 Then + Err.Raise lErrorNumber, , sErrorDescription + End If +End Sub + +Private Sub PostDAO(sConnect As String, sSQLUpdate As String, sSQLBalance As String, Optional lBalance As Long) + ' If daoConnection throws an exception + On Error GoTo PostDAOError + + ' Obtain the DAO workspace and connection + Dim daoWorkspace As Workspace + Dim daoConn As Connection + Set daoWorkspace = CreateWorkspace("", "", "", dbUseODBC) + Set daoConn = daoWorkspace.OpenConnection("", dbDriverNoPrompt, False, "ODBC;" & sConnect) + + ' Update the balance + daoConn.Execute sSQLUpdate + + If Not IsMissing(lBalance) Then + ' Get resulting balance which may have been further updated via triggers + Dim daoRS As Recordset + Set daoRS = daoConn.OpenRecordset(sSQLBalance) + If Not daoRS.EOF Then + lBalance = daoRS.Fields("Balance").Value + Else + Err.Raise errInvalidAccount + End If + daoRS.Close + End If + + daoConn.Close + Exit Sub + +PostDAOError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + If Not daoRS Is Nothing Then + daoRS.Close + End If + If Not daoConn Is Nothing Then + daoConn.Close + End If + If lErrorNumber <> 0 Then + Err.Raise lErrorNumber, , sErrorDescription + End If +End Sub + +Private Sub PostODBCAPI(sConnect As String, sSQLUpdate As String, sSQLBalance As String, Optional lBalance As Long) + ' Handles for the ODBC API calls + Dim hEnvironment As Long + Dim hConnection As Long + Dim hStatement As Long + Dim iConnectLength As Integer + + On Error GoTo PostODBCAPIError + If Not ODBCAPICallSuccessful(SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, hEnvironment)) Then + Err.Raise ErrorAllocateHandle, , LoadResString(ErrorAllocateHandle) + End If + If Not ODBCAPICallSuccessful(SQLSetEnvAttrLong(hEnvironment, SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3, 0)) Then + Err.Raise ErrorSetAttribute, , LoadResString(ErrorSetAttribute) + End If + If Not ODBCAPICallSuccessful(SQLAllocHandle(SQL_HANDLE_DBC, hEnvironment, hConnection)) Then + Err.Raise ErrorAllocateHandle, , LoadResString(ErrorAllocateHandle) + End If + + If Not ODBCAPICallSuccessful(SQLDriverConnect(hConnection, 0, sConnect, _ + LenB(sConnect), vbNullString, 0, iConnectLength, SQL_DRIVER_NOPROMPT)) Then + Err.Raise ErrorConnectDriver, , LoadResString(ErrorConnectDriver) + End If + If Not ODBCAPICallSuccessful(SQLAllocHandle(SQL_HANDLE_STMT, hConnection, hStatement)) Then + Err.Raise ErrorAllocateHandle, , LoadResString(ErrorAllocateHandle) + End If + If Not ODBCAPICallSuccessful(SQLSetStmtAttrLong(hStatement, SQL_CURSOR_TYPE, SQL_CURSOR_STATIC, 0)) Then + Err.Raise ErrorSetAttribute, , LoadResString(ErrorSetAttribute) + End If + + If Not ODBCAPICallSuccessful(SQLExecDirect(hStatement, sSQLUpdate, Len(sSQLUpdate))) Then + ' See if the error is due to a resource deadlock + Dim iRecNum As Integer, iTextLen As Integer + Dim sSQLState As String * 5, sMsgText As String * 1 + Dim lNativeErrorPtr As Long + iRecNum = 1 + Do While ODBCAPICallSuccessful(SQLGetDiagRec(SQL_HANDLE_STMT, hStatement, iRecNum, sSQLState, lNativeErrorPtr, _ + sMsgText, 0, iTextLen)) + If sSQLState = "40001" Then + Err.Raise ErrorResourceDeadlock, , LoadResString(ErrorResourceDeadlock) + End If + iRecNum = iRecNum + 1 + Loop + ' Else, raise generic error + Err.Raise ErrorExecuteQuery, , LoadResString(ErrorExecuteQuery) + End If + + If Not IsMissing(lBalance) Then + ' Get resulting balance + If Not ODBCAPICallSuccessful(SQLExecDirect(hStatement, sSQLBalance, Len(sSQLBalance))) Then + Err.Raise ErrorExecuteQuery, , LoadResString(ErrorExecuteQuery) + End If + + Select Case SQLFetchScroll(hStatement, SQL_FETCH_FIRST, 0) + Case SQL_NO_DATA + Err.Raise ErrorFetchRecord, , LoadResString(ErrorFetchRecord) + Case SQL_SUCCESS, SQL_SUCCESS_WITH_INFO + ' Do nothing + Case Else + Err.Raise ErrorFetchRecord, , LoadResString(ErrorFetchRecord) + End Select + + Dim lBalanceLength As Long + If Not ODBCAPICallSuccessful(SQLGetDataLong(hStatement, 1, SQL_INTEGER, lBalance, 0, lBalanceLength)) Then + Err.Raise ErrorGetData, , LoadResString(ErrorGetData) + End If + End If + +PostODBCAPIError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + SQLCloseCursor hStatement + SQLFreeHandle SQL_HANDLE_STMT, hStatement + SQLDisconnect hConnection + SQLFreeHandle SQL_HANDLE_DBC, hConnection + SQLFreeHandle SQL_HANDLE_ENV, hEnvironment + If lErrorNumber <> 0 Then + Err.Raise lErrorNumber, , sErrorDescription + End If +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.RC new file mode 100644 index 0000000..59118fe --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.RC @@ -0,0 +1,6 @@ +#include "..\AEInclud\ODBCAPI.rc" +STRINGTABLE DISCARDABLE +BEGIN + 1000 "Could not create account object" + 1001 "Error posting to account" +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.RES new file mode 100644 index 0000000..be8d6b3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.VBP new file mode 100644 index 0000000..3b271b5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/AEMTSSVC.VBP @@ -0,0 +1,54 @@ +Type=OleDll +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT\System32\STDOLE2.TLB#Standard OLE Types +Reference=*\G{74C08640-CEDB-11CF-8B49-00AA00B8A790}#1.0#0#..\..\EXTERNAL\mtxas.tlb#Microsoft Transaction Server 1.0 Type Library +Reference=*\G{EE008642-64A8-11CE-920F-08002B369A33}#2.0#0#C:\WINNT\system32\MSRDO20.DLL#Microsoft Remote Data Object 2.0 +Reference=*\G{00025E01-0000-0000-C000-000000000046}#4.0#0#C:\PROGRA~1\COMMON~1\MICROS~1\DAO\dao350.dll#Microsoft DAO 3.5 Object Library +Reference=*\G{00000200-0000-0010-8000-00AA006D2EA4}#2.0#0#C:\Program Files\common files\system\ado\msado15C:\P#Microsoft ActiveX Data Objects 2.0 Library +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#9#..\AEINTRFC\AEIntrfc.tlb#Application Performance Explorer 2.0 Interfaces +Class=Account; Account.cls +Class=MoveMoney; MoveMony.cls +Module=ODBCAPI; ..\AEInclud\ODBCAPI.bas +RelatedDoc=AEMTSSvc.rc +Module=modMTSSvc; MTSSvc.bas +ResFile32="AEMTSSvc.res" +Startup="(None)" +HelpFile="" +Title="APE MTS Service" +ExeName32="AEMTSSvc.dll" +Path32="..\..\Retail" +Command32="" +Name="AEMTSSvc" +HelpContextID="0" +Description="Application Performance Explorer MTS Service" +CompatibleMode="2" +CompatibleEXE32="..\AECompat\AEMTSSvc.cmp" +VersionCompatible32="1" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer MTS Service" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer MTS Service" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=-1 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 + +[MS Transaction Server] +AutoRefresh=1 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/MOVEMONY.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/MOVEMONY.CLS new file mode 100644 index 0000000..2380f54 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/MOVEMONY.CLS @@ -0,0 +1,58 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "MoveMoney" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE MTS Transaction Service (MoveMoney)" +Option Explicit + +Implements APEInterfaces.IMTSMoveMoney + +Public Sub Transfer(sConnect As String, eConnectOptions As ape_DbConnectionOptions, lFromAccount As Long, lToAccount As Long, lAmount As Long) + '------------------------------------------------------------------------- + 'Purpose: + ' Provides an interface for late binding. Late binding is only provided + ' for test comparison. Other custom services should only use the implemented + ' interface. + '------------------------------------------------------------------------- + IMTSMoveMoney_Transfer sConnect, eConnectOptions, lFromAccount, lToAccount, lAmount +End Sub + +Private Sub IMTSMoveMoney_Transfer(sConnect As String, eConnectOptions As APEInterfaces.ape_DbConnectionOptions, lFromAccount As Long, lToAccount As Long, lAmount As Long) + ' get our object context + Dim ctxObject As ObjectContext + Set ctxObject = GetObjectContext() + + On Error GoTo TransferError + + ' create the account object using our context + Dim objAccount As APEInterfaces.IMTSAccount + Set objAccount = ctxObject.CreateInstance("AEMTSSvc.Account") + + If objAccount Is Nothing Then + Err.Raise errAccountCreateFailed, , LoadResString(ERROR_COULD_NOT_CREATE_ACCOUNT_OBJECT) + End If + + ' do the credit + objAccount.Post sConnect, eConnectOptions, lToAccount, lAmount + ' then do the debit + objAccount.Post sConnect, eConnectOptions, lFromAccount, -lAmount + ctxObject.SetComplete + Exit Sub + +TransferError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + ctxObject.SetAbort + Err.Raise lErrorNumber, , sErrorDescription +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/MTSSVC.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/MTSSVC.BAS new file mode 100644 index 0000000..29436be --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/MTSSVC.BAS @@ -0,0 +1,3 @@ +Attribute VB_Name = "modMTSSvc" +Public Const ERROR_COULD_NOT_CREATE_ACCOUNT_OBJECT As Integer = 1000 +Public Const ERROR_POSTING_TO_ACCOUNT As Integer = 1001 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/RC.BAT b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/RC.BAT new file mode 100644 index 0000000..b13684f --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEMTSSVC/RC.BAT @@ -0,0 +1,2 @@ +rc.exe /foAEMTSSvc.res AEMTSSvc.rc +pause \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.RC new file mode 100644 index 0000000..df1cab1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.RC @@ -0,0 +1,43 @@ +STRINGTABLE DISCARDABLE +BEGIN + 1 "*** Do *NOT* Localize any string that starts with '***'. They are comments to be used by localizers to identify sections. They also mark the beginning of a new 'section' within the String Table." + 2 "Pool Manager" + 3 "GetWorker Method received" + 4 "ReleaseWorker Method received" + 11 "Call rejected retry" + 12 "Because the specified authentication level is not supported on the remote machine, Worker will be created with no authentication on the machine, ." + 13 "Only workers were created and configured, because available machines were lacking." + //Remote Worker creation error message + 14 "Could not create or configure a worker on machine, ." + //No errors creating remote workers message + 15 "All requested workers were successfully created." + 16 "Could not create or configure local worker object." + 17 "Error: " + + 29 "*** Font information for all forms. Index 30 is the Character set, Index 31 is Font name, Index 32 is Font Size" + 30 "0" + 31 "Tahoma" + 32 "10" + + 49 "*** Form U/I captions" + 50 "Requests Satisfied" + 51 "Requests Rejected" + 52 "Number of Workers" + 53 "Pool Manager" + + 200 "*** Racreg32 error codes with 200 added for offset" + 201 "Unknown run time error occurred" + 202 "No protocol was specified" + 203 "No server machine name was specified" + 204 "An error occurred reading from the registry" + 205 "An error occurred writing to the registry" + 206 "Both the ProgID and CLSID parameters were missing" + 207 "There is no local server (either in-process or cross-process, 16-bit or 32-bit)" + 208 "There was an error looking for the Proxy DLLs, check that they were installed properly" + + 32700 "*** Error Descriptions" + 32750 "An error occurred changing server connection settings: ." + + 32765 "Invalid Parameter" + 32764 "No Workers could be created." +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.RES new file mode 100644 index 0000000..87970ea Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.VBP new file mode 100644 index 0000000..4111947 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/AEPOOL.VBP @@ -0,0 +1,55 @@ +Type=OleExe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT\System32\STDOLE2.TLB#OLE Automation +Reference=*\G{244D13BD-AFDB-11CE-85D1-00AA00695286}#1.1#0#..\..\EXTERNAL\racreg32.dll#RacReg +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#9#..\AEIntrfc\AEIntrfc.TLB#Application Performance Explorer 2.0 Interfaces +Module=modPoolMgr; modpool.bas +Form=frmpool.frm +Class=Pool; pool.cls +Class=PoolMgr; poolmgr.cls +Module=modAEConstants; ..\AEInclud\modaecon.bas +Class=clsPositionForm; ..\AEInclud\clsposfm.cls +Class=clsWorker; ..\AEInclud\clsworkr.cls +Module=modWin32Errors; ..\AEInclud\modwiner.bas +Class=clsWorkerMachines; ..\AEInclud\clswkmac.cls +Module=modVBErrors; ..\AEInclud\modvberr.bas +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +Module=Utility; ..\AEInclud\Utility.bas +Module=Localize; ..\AEInclud\Localize.bas +ResFile32="aepool.res" +IconForm="frmPoolMgr" +Startup="Sub Main" +HelpFile="" +Title="APE Pool Manager" +ExeName32="AEPool.exe" +Path32="..\..\Retail" +Command32="" +Name="AEPoolMgr" +HelpContextID="0" +Description="Application Performance Explorer Pool Manager" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AEPool.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Pool Manager" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Pool Manager" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/FRMPOOL.FRM b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/FRMPOOL.FRM new file mode 100644 index 0000000..d7620c3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/FRMPOOL.FRM @@ -0,0 +1,204 @@ +VERSION 5.00 +Begin VB.Form frmPoolMgr + BorderStyle = 1 'Fixed Single + Caption = "Pool Manager" + ClientHeight = 2175 + ClientLeft = 6780 + ClientTop = 1620 + ClientWidth = 3915 + ClipControls = 0 'False + Icon = "frmpool.frx":0000 + LinkTopic = "Form1" + MaxButton = 0 'False + ScaleHeight = 2175 + ScaleWidth = 3915 + StartUpPosition = 3 'Windows Default + Begin VB.ListBox lstLog + Height = 645 + IntegralHeight = 0 'False + Left = 3270 + TabIndex = 0 + Top = 540 + Visible = 0 'False + Width = 855 + End + Begin VB.Label lblSatisfiedCap + BackStyle = 0 'Transparent + Caption = "Requests Satisfied" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 200 + TabIndex = 7 + Top = 120 + Width = 2535 + End + Begin VB.Label lblRejectedCap + BackStyle = 0 'Transparent + Caption = "Requests Rejected" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 200 + TabIndex = 6 + Top = 480 + Width = 2535 + End + Begin VB.Label lblWorkersCap + BackStyle = 0 'Transparent + Caption = "Number of Workers" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 200 + TabIndex = 5 + Top = 840 + Width = 2535 + End + Begin VB.Label lblSatisfied + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2820 + TabIndex = 4 + Top = 120 + Width = 1000 + End + Begin VB.Label lblRejected + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2820 + TabIndex = 3 + Top = 480 + Width = 1000 + End + Begin VB.Label lblWorkers + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2820 + TabIndex = 2 + Top = 840 + Width = 1000 + End + Begin VB.Label lblStatus + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 780 + Left = 195 + TabIndex = 1 + Top = 1200 + Width = 3570 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmPoolMgr" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + + +Private Sub Form_Load() + 'Use clsPositionForm object to move + 'Form to settings saved in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + + 'Set U/I captions + ApplyFontToForm Me + lblRejectedCap.Caption = LoadResString(giLBL_REJECTED) + lblSatisfiedCap.Caption = LoadResString(giLBL_SATISFIED) + lblWorkersCap.Caption = LoadResString(giLBL_NUM_WORKERS) + Caption = LoadResString(giPOOLMGR_CAPTION) + + #If ccShowList Then + oPosition.Move Me, True + lstLog.Visible = True + lblStatus.Visible = False + #Else + oPosition.Move Me, False + Width = giDEFAULT_FORM_WIDTH + Height = giDEFAULT_FORM_HEIGHT + #End If +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + 'Don't unload unless called from code. + If UnloadMode = vbFormControlMenu Then Cancel = False +End Sub + +Private Sub Form_Resize() + #If ccShowList Then + Dim lX As Long + Dim lY As Long + If Me.ScaleHeight >= 2 * glFORM_MARGIN Then lY = (Me.ScaleHeight - (2 * glFORM_MARGIN)) Else lY = (2 * glFORM_MARGIN) - Me.ScaleHeight + If Me.ScaleWidth >= 2 * glFORM_MARGIN Then lX = (Me.ScaleWidth - (2 * glFORM_MARGIN)) Else lX = (2 * glFORM_MARGIN) - Me.ScaleWidth + lstLog.Move glFORM_MARGIN, glFORM_MARGIN, lX, lY + #End If +End Sub + +Private Sub Form_Unload(Cancel As Integer) + 'Use clsPositionForm object to save + 'forms position in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + oPosition.Save Me + gbShow = False +End Sub + + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/FRMPOOL.FRX b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/FRMPOOL.FRX new file mode 100644 index 0000000..6b1d97a Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/FRMPOOL.FRX differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/MODPOOL.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/MODPOOL.BAS new file mode 100644 index 0000000..55306c8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/MODPOOL.BAS @@ -0,0 +1,540 @@ +Attribute VB_Name = "modPoolMgr" +Option Explicit +'Declarations +Declare Function GetTickCount Lib "Kernel32" () As Long + +'Constants +Public Const gbSHOW_FORM_DEFAULT As Boolean = False +Public Const gbLOG_DEFAULT As Boolean = False +Public Const glWORKER_QUANTITY_DEFAULT As Long = 1 +Public Const glLIST_BOX_MAX As Long = 500 +Public Const giMAX_ALLOWED_RETRIES = 500 +Public Const giRETRY_WAIT_MIN As Integer = 500 'Retry Wait is measure in DoEvent cycles +Public Const giRETRY_WAIT_MAX As Integer = 2500 +Public Const gsPROTOCOL_DEFAULT As String = "ncacn_ip_tcp" +Public Const glAUTHENTICATION_DEFAULT As Long = 1 +Public Const giWORKER_QUANTITY_DEFAULT As Integer = 1 +Public Const gbWORKER_EARLYBIND_DEFAULT As Integer = True +Public Const giERROR_THRESHOLD As Integer = 32700 +Public Const glMAX_LONG As Long = 2147483647 + +'User Defined Errors which also serve as string +'resource indexes +Public Const giNO_WORKERS_CREATED As Integer = 32764 +Public Const giINVALID_PARAMETER As Integer = 32765 +Public Const giCONNECTION_SETTING_FAILED As Integer = 32750 'An error was returned by RacReg32 + +'String resourse keys for logging messages +Public Const giPOOL_NAME As Integer = 2 +Public Const giGET_WORKER As Integer = 3 +Public Const giRELEASE_WORKER As Integer = 4 +Public Const giCALL_REJECTED_RETRY As Integer = 11 +Public Const giUSING_NO_AUTHENTICATION As Integer = 12 +Public Const giONLY_N_WORKERS_CREATED As Integer = 13 +Public Const giCOULD_NOT_CREATE_WORKER_ON_MACHINE As Integer = 14 +Public Const giALL_WORKERS_CREATED As Integer = 15 +Public Const giCOULD_NOT_CREATE_LOCAL_WORKER As Integer = 16 +Public Const giERROR_PREFIX As Integer = 17 + +Public Const giFONT_CHARSET_INDEX As Integer = 30 +Public Const giFONT_NAME_INDEX As Integer = 31 +Public Const giFONT_SIZE_INDEX As Integer = 32 + +'String resource keys for Form captions +Public Const giLBL_SATISFIED As Integer = 50 +Public Const giLBL_REJECTED As Integer = 51 +Public Const giLBL_NUM_WORKERS As Integer = 52 +Public Const giPOOLMGR_CAPTION As Integer = 53 + +Public Const giRACREG_ERROR_CODE_OFFSET = 200 'Add offset to racreg32 error codes + 'to make corresponding resource string key + +'Public variables +Public gcWorkers As Collection 'This is basically the pool of available workers +Public gcWorkerMachines As Collection 'Collection of clsWorkerMachines objects used + 'keep track of how many worker objects are on + 'each remote worker machine. +Public glInstances As Long 'A count of the number of instances made of PoolMgr +Public gbShow As Boolean 'If true show PoolMgr form +Public gbLog As Boolean 'If True log PoolMgr Events +Public goLogger As APEInterfaces.ILogger +Public gbLogWorkers As Boolean 'Flag to track status of + 'Worker property Log +Public gbUnloading As Boolean 'Flag used by Class_terminate +Public giWorkerCount As Integer 'Number of Worker instanciated, This can be different + 'than gcWorkers.Count if a Worker in the collection + 'is marked for removal it will not be included in giWorkerCount +Public gbPersistentServices As Boolean 'Flag keeps track of Worker + 'property PersistentServices + 'If true Workers keep reference to + 'all Service objects used else they + 'drop references after each use. +Public gbEarlyBindServices As Boolean 'Flag to track status of + 'Worker property EarlyBound +Public gbStopTest As Boolean 'Stop Test flag, checked by many procedures + 'that will discontinue their processes if true +Public gsProtocol As String 'Protocol sequence to use when connecting to Workers +Public glAuthentication As Long 'Authentication level to use when connecting to Workers +Public gbUseDCOM As Boolean 'If true use DCOM to create workers instead of Remote Automation +Public glRequestsSatisfied As Long +Public glRequestsRejected As Long + +Public Sub CountInitialize() + '------------------------------------------------------------------------- + 'Purpose: Keep track of number instances of PoolMgr and Pool + ' To be called by a public creatable class in its initialize + ' event. To keep track of how many public creatable objects + ' are initialized. Initialize the PoolMgr application if + ' this is the first time it is called. + 'Effects: + ' If this is the first instanciation + ' Put the PoolMgr in a "Ready" state. Load Workers + ' Set default properties, Show form and load logger if necessary. + ' [glInstances] + ' increments by one + '------------------------------------------------------------------------- + Dim i As Integer + Dim oWork As clsWorker 'Object storing Workers and related informantion + Dim oWorkerMachine As clsWorkerMachines 'Object that stores how many + 'Workers are on what machines + Dim sReturn As String 'Return of SetWorkersOnMachine function + + On Error GoTo CountInitializeError + + glInstances = glInstances + 1 + If glInstances = 1 Then + App.OleServerBusyRaiseError = True + App.OleServerBusyTimeout = 10000 + 'Set default property values + gbShow = gbSHOW_FORM_DEFAULT + gbLog = gbLOG_DEFAULT + gsProtocol = gsPROTOCOL_DEFAULT + glAuthentication = glAUTHENTICATION_DEFAULT + gbEarlyBindServices = gbWORKER_EARLYBIND_DEFAULT + 'Create Logger class object early so + 'potential errors could be logged + If gbLog Then Set goLogger = CreateObject("AELogger.Logger") + 'Create collection objects + Set gcWorkers = New Collection + Set gcWorkerMachines = New Collection + 'Add an item to represent number of workers on the local machine + Set oWorkerMachine = New clsWorkerMachines + gcWorkerMachines.Add oWorkerMachine + 'Load the default amount of workers and add + 'them to the gcWorkers Collection + sReturn = SetWorkersOnMachine(False, "", giWORKER_QUANTITY_DEFAULT) + + 'Only show the form if gbShow is true + If gbShow Then + With frmPoolMgr + .Show + .lblStatus.Caption = "" + .lblWorkers.Caption = CStr(giWorkerCount) + .lblSatisfied.Caption = 0 + .lblRejected.Caption = 0 + End With + End If + gbUnloading = False + End If + Exit Sub +CountInitializeError: + Select Case Err.Number + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set goLogger = oInstancer.Object("AELogger.Logger") + Set oInstancer = Nothing + Resume Next + Case Else + LogError Err + Resume Next + End Select +End Sub + +Public Sub CountTerminate() + '------------------------------------------------------------------------- + 'Purpose: Keep track of number instances of PoolMgr and Pool + ' To be called by a public creatable class in its terminate + ' event. To keep track of how many public creatable objects + ' are initialized. Terminate the PoolMgr application if + ' this is the last time called. + 'Effects: + ' Unload all objects, and unload form so that this application + ' will close + ' [glInstances] + ' decrements by one + '------------------------------------------------------------------------- + Dim oWorker As clsWorker + On Error GoTo Class_TerminateError + glInstances = glInstances - 1 + 'If already started unloading don't check + 'instance count again + If Not gbUnloading Then + If glInstances = 0 Then + gbUnloading = True + For Each oWorker In gcWorkers + Set oWorker.Worker = Nothing + Set oWorker = Nothing + Next + Set goLogger = Nothing + Set gcWorkers = Nothing + Set gcWorkerMachines = Nothing + giWorkerCount = 0 + Unload frmPoolMgr + End If + End If + Exit Sub +Class_TerminateError: + LogError Err + Resume Next +End Sub + +Public Sub LogEvent(intMessage As Integer) + 'Receives Message key which is used to look + 'up a resource string. The logrecord is sent to the + 'Logger object if gbLog is true + On Error GoTo LogEventError + If gbLog Then + goLogger.Record LoadResString(giPOOL_NAME), 0, LoadResString(intMessage), GetTickCount() + End If + #If ccShowList Then + 'If the form is visible display log on form + If gbShow Then + DisplayString "0" & gsSEPERATOR & LoadResString(intMessage) + End If + #End If + Exit Sub +LogEventError: + LogError Err + Exit Sub +End Sub + +Public Sub LogError(ByVal oErr As ErrObject) + 'Display error on form with no user input required + 'Log error if logging is on + Dim s As String + s = LoadResString(giERROR_PREFIX) & Str$(oErr.Number) & gsSEPERATOR & oErr.Source & gsSEPERATOR & oErr.Description + #If ccShowList Then + If Not gbShow Then + frmPoolMgr.Show + gbShow = True + End If + DisplayString s + #Else + DisplayStatus s + #End If + If gbLog And glInstances <> 0 Then + goLogger.Record LoadResString(giPOOL_NAME), 0, LoadResString(giERROR_PREFIX) & Str$(oErr.Number) & gsSEPERATOR & oErr.Source & gsSEPERATOR & oErr.Description, GetTickCount() + End If +End Sub + +Sub DisplayStatus(sText As String) + If gbShow Then AlignTextToBottom frmPoolMgr.lblStatus, sText +End Sub + +Sub DisplayString(sText As String) + #If ccShowList Then + 'Controls the length of the list box + 'and sets ListIndex + Dim lstLog As ListBox + If gbShow Then + Set lstLog = frmPoolMgr.lstLog + If lstLog.ListCount = glLIST_BOX_MAX Then lstLog.Clear + lstLog.AddItem sText, 0 + End If + #End If +End Sub + +Sub Main() + +End Sub + +Public Function SetWorkersOnMachine(bRemote As Boolean, sMachineName As String, lQuantityOnMachine As Long) As String + '------------------------------------------------------------------------- + 'Purpose: Sets the quantity of instanciated Workers on a particular machine + 'IN: + ' [bRemote] + ' If true adjust number of workers on a remote machine; else, + ' adjust the number on the local machine. + ' [sMachineName] + ' Name of machine to adjust the level of instanciated Workers + ' [lQuantityOnMachine] + ' Number of Instantiated Workers that should be on specified + ' machine. + 'Return: Discription of Errors that should be displayed to user + 'Effects: + ' [gcWorkers] + ' The number of Workers in this collection will be adjusted + ' [gcWorkerMachines] + ' An item may be added or removed or edited + '------------------------------------------------------------------------- + Dim oRacReg As RacReg.RegClass 'Object to set automation connection settings + Dim oWorkerMachine As clsWorkerMachines 'Object that stores how many workers are on + 'a machine, retrieved from global collection + Dim oWorkerProvider As APEInterfaces.IWorkerProvider 'Server that can be instanciated on remote + 'machines to provide Worker objects + Dim lWorkerToRemove As Long 'ID of Worker found to remove + Dim oWork As clsWorker 'clsWorker object that hold reference to a Worker + 'and information related to it + Dim lAdd As Long 'New ID for New Worker + Dim sErrors As String 'Discription of Errors that will be returned + Dim bAddingWorker As Boolean 'If true, adding and configuring worker + 'used by error handling + + Dim iRetry As Integer 'Error retry counter + Dim iResult As Integer 'RacReg error code + + On Error GoTo SetWorkersOnMachineError + + 'Validate lQuantityOnMachine + If lQuantityOnMachine < 0 Then lQuantityOnMachine = 0 + + 'Set registry for local or remote machine name + Set oRacReg = New RacReg.RegClass + If bRemote Then + If gbUseDCOM Then + iResult = oRacReg.SetDCOMServerSettings(True, "AEWorkerProvider.WorkerProvider", , sMachineName) + Else + iResult = oRacReg.SetAutoServerSettings(True, "AEWorkerProvider.WorkerProvider", , sMachineName, gsProtocol, glAuthentication) + End If + Else + 'Make sure the Machine name string is zero length + sMachineName = "" + 'Make sure AEWorker.Worker is registered for local instanciation + 'Because Clients may have been run on this machine and may have + 'left the connection settings remote if they did not unload properly + iResult = oRacReg.SetAutoServerSettings(False, "AEWorker.Worker") + + End If + If iResult <> 0 Then GoTo SetWorkersOnMachine_RacRegError + + 'Get the clsWorkerMachines object to store information in + If Not bRemote Then + 'it is definitely the first item in the collection + Set oWorkerMachine = gcWorkerMachines.Item(1) + Else + 'if it is in the collection it is stored by a key + 'equaling the machine name + 'If error equals ERR_INVALID_PROCEDURE_CALL there + 'are no Workers on specified machine and no clsWorkerMachines + 'class object to represent them + On Error Resume Next + Set oWorkerMachine = gcWorkerMachines.Item(sMachineName) + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + On Error GoTo SetWorkersOnMachineError + 'Don't create a new clsWorkerMachine object of + 'lQuantityOnMachine is zero + If lQuantityOnMachine <= 0 Then Exit Function + Set oWorkerMachine = New clsWorkerMachines + 'If an error occurs creating WorkerProvider the current machine name + 'can not be used. Treat error as if a Worker can not be created on + 'paticular machine. + bAddingWorker = True + Set oWorkerMachine.WorkerProvider = CreateObject("AEWorkerProvider.WorkerProvider") + bAddingWorker = False + + gcWorkerMachines.Add oWorkerMachine, sMachineName + With oWorkerMachine + .Remote = True + .MachineName = sMachineName + End With + End If + On Error GoTo SetWorkersOnMachineError + Set oWorkerProvider = oWorkerMachine.WorkerProvider + End If + + 'Now see if more workers need destroyed on this machine + With oWorkerMachine + If .WorkerKeys.Count > lQuantityOnMachine Then + Do Until .WorkerKeys.Count <= lQuantityOnMachine + Debug.Assert .WorkerKeys.Count = gcWorkers.Count + 'Find a worker on this machine + lWorkerToRemove = .WorkerKeys(.WorkerKeys.Count) + .WorkerKeys.Remove .WorkerKeys.Count + 'Remove the found worker + 'Do not destroy the Worker if it is busy + 'instead just flip its RemoveMe flag + giWorkerCount = giWorkerCount - 1 + If gcWorkers.Item(CStr(lWorkerToRemove)).Busy Then + gcWorkers.Item(CStr(lWorkerToRemove)).RemoveMe = True + Else + iRetry = 0 + Set oWork = gcWorkers.Item(CStr(lWorkerToRemove)) + oWork.Worker.ShutDown + Set gcWorkers.Item(CStr(lWorkerToRemove)).Worker = Nothing + gcWorkers.Remove CStr(lWorkerToRemove) + End If + Loop + Else + 'Else lQuantityOnMachine must be greater than .WorkerKeys.count + 'So add to the collection + bAddingWorker = True + Do Until .WorkerKeys.Count = lQuantityOnMachine + 'Choose a unique key + lAdd = gcWorkers.Count + 1 + Set oWork = New clsWorker + oWork.Busy = False + oWork.ID = lAdd + 'Get a new Worker object + If bRemote Then + Set oWork.Worker = oWorkerProvider.GetWorker + Else + Set oWork.Worker = CreateObject("AEWorker.Worker") + End If + 'Set the WorkerID property of AEWorker.Worker + 'Set the new worker property to the properties + 'that have been set for the any other workers + iRetry = 0 + oWork.Worker.SetProperties gbLogWorkers, gbEarlyBindServices, _ + gbPersistentServices, lAdd + 'Add the clsWorker class object which holds a + 'reference to the Worker class object to gcWorkers collection + 'Use the WorkerID as the key + .WorkerKeys.Add lAdd + gcWorkers.Add oWork, CStr(lAdd) + giWorkerCount = giWorkerCount + 1 + iRetry = 0 + Loop + bAddingWorker = False + End If + End With +SetWorkersOnMachineEnd: + 'Update the WorkerCount label in the U/I + 'Set connection settings back to local + iResult = oRacReg.SetAutoServerSettings(False, "AEWorkerProvider.WorkerProvider") + If iResult <> 0 Then GoTo SetWorkersOnMachine_RacRegError + + If gbShow Then + With frmPoolMgr.lblWorkers + .Caption = gcWorkers.Count + .Refresh + End With + End If + + 'If the WorkerKeys.count = 0 and bRemote is true + 'then the clsWorkerMachines class + 'object in gcWorkerMachines should be removed + 'Don't remove the clsWorkerMachines object representing the + 'local machine. Index one is reserved for the local machine. + If oWorkerMachine.WorkerKeys.Count = 0 And bRemote Then + On Error Resume Next + gcWorkerMachines.Remove sMachineName + End If + SetWorkersOnMachine = sErrors + Exit Function +SetWorkersOnMachine_RacRegError: + Err.Raise giCONNECTION_SETTING_FAILED +SetWorkersOnMachineError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check for stop test + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + LogEvent giCALL_REJECTED_RETRY + Resume + Else + 'We reached our max retries + GoTo SetWorkersOnMachineUnexpectedError + End If + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set oWorkerProvider = oInstancer.Object("AEWorkerProvider.WorkerProvider") + Set oInstancer = Nothing + Resume Next + Case RPC_S_UNKNOWN_AUTHN_TYPE + 'Tried to connect to a server that does not support + 'specified authentication level. Display message and + 'switch to no authentication and try again + Dim s As String + s = ReplaceString(LoadResString(giUSING_NO_AUTHENTICATION), gsNAME_TOKEN, sMachineName) + LogText s + sErrors = s & vbCrLf + iResult = oRacReg.SetAutoServerSettings(True, "AEWorkerProvider.WorkerProvider", , sMachineName, gsProtocol, glAUTHENTICATION_DEFAULT) + Resume + Case giCONNECTION_SETTING_FAILED + sErrors = ReplaceString(LoadResString(giCONNECTION_SETTING_FAILED), gsNAME_TOKEN, LoadResString(giRACREG_ERROR_CODE_OFFSET + iResult)) + Err.Raise giNO_WORKERS_CREATED, , sErrors & vbCrLf & LoadResString(giNO_WORKERS_CREATED) + Case Else +SetWorkersOnMachineUnexpectedError: + 'There are three cases to respond to if there is an unexpected error + '1- If the error occured while NOT adding a worker it most likely + ' occured while removing one. Resume Next to insure that the worker + ' is removed from the workers collection. + '2- If we were adding a worker and the worker class was registered local + ' log the error, and add it to the sError string, but raise the + ' giNO_WORKERS_CREATED error, because the system has a critical problem + ' if a local worker can not be created. + '3- If we were adding a worker and the worker class was registered remote + ' log the error, and add it to the sError string. Exit procedure so + ' that calling procedure can try creating workers on another machine + Dim sSource As String + sSource = Err.Source + sErrors = sErrors & sMachineName & gsSEPERATOR & sSource & gsSEPERATOR & Err.Description & vbCrLf + LogError Err + If Not bAddingWorker Then + Resume Next + Else + If bRemote Then + sErrors = sErrors & vbCrLf & ReplaceString(LoadResString(giCOULD_NOT_CREATE_WORKER_ON_MACHINE), gsNAME_TOKEN, sMachineName) + Resume SetWorkersOnMachineEnd + Else + iResult = oRacReg.SetAutoServerSettings(False, "AEWorkerProvider.WorkerProvider") + sErrors = sErrors & vbCrLf & LoadResString(giCOULD_NOT_CREATE_LOCAL_WORKER) + Err.Raise giNO_WORKERS_CREATED, sSource, sErrors & vbCrLf & LoadResString(giNO_WORKERS_CREATED) + End If + End If + End Select +End Function + +Public Sub LogText(sMsg As String) + '------------------------------------------------------------------------- + 'Purpose: Passes that passed string as a log record + ' to the logger + 'In: [sMsg] + ' String to be logged + 'Assumption: + ' If gbLog is true then goLogger is a valid reference to + ' AELogger.Logger class object + '------------------------------------------------------------------------- + On Error GoTo LogTextError + If gbLog And Not gbStopTest Then + goLogger.Record LoadResString(giPOOL_NAME), 0, sMsg, GetTickCount() + End If + 'If the form is visible display log on form + #If ccShowList Then + DisplayString sMsg + #End If + Exit Sub +LogTextError: + LogError Err + Exit Sub +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOL.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOL.CLS new file mode 100644 index 0000000..70e19fa --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOL.CLS @@ -0,0 +1,130 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "Pool" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Pool Manager" +Option Explicit + +Implements APEInterfaces.IPool + +'Private variable to hold the WorkerID of the Worker which was +'passed to a client +Private mlWorkerID As Long +'A count of references is kept to keep track of +'how many references to this same worker it has. +'When the count is 0, moWorker is added back into +'the global collection and set to nothing. +Private mlReferenceCount As Long + +Public Function IPool_GetWorker() As APEInterfaces.IWorker +Attribute IPool_GetWorker.VB_Description = "Returns a AEWorker.Worker object and reserves it for the calling applications use." + 'A client uses this method to get a reference to a worker + 'Find a worker that is not busy (passed to another client). + 'Mark the Worker as busy + 'Store the WorkerID in the Private Class Module level + 'mlWorkerID + Dim oWork As clsWorker + Dim bFoundWorker As Boolean + On Error GoTo GetWorkerError + LogEvent giGET_WORKER + 'If mlWorkerID does not equal zero then the client + 'that has reference to this instance of this class + 'already has a worker. Therefore just pass a reference + 'to the same worker. + If mlWorkerID <> 0 Then + mlReferenceCount = mlReferenceCount + 1 + Set IPool_GetWorker = gcWorkers.Item(CStr(mlWorkerID)).Worker + glRequestsSatisfied = glRequestsSatisfied + 1 + If gbShow Then + With frmPoolMgr.lblSatisfied + .Caption = CStr(glRequestsSatisfied) + .Refresh + End With + End If + Else + 'The client does not have any other references to a Worker + 'Find a worker that does not have any connections made + 'by other clients + bFoundWorker = False + For Each oWork In gcWorkers + If Not oWork.Busy Then + oWork.Busy = True + mlWorkerID = oWork.ID + mlReferenceCount = mlReferenceCount + 1 + bFoundWorker = True + Set IPool_GetWorker = oWork.Worker + 'Update statistics + glRequestsSatisfied = glRequestsSatisfied + 1 + If gbShow Then + With frmPoolMgr.lblSatisfied + .Caption = CStr(glRequestsSatisfied) + .Refresh + End With + End If + Exit For + End If + Next oWork + If Not bFoundWorker Then + 'All workers are being used by other clients + 'set function equal to nothing + Set IPool_GetWorker = Nothing + glRequestsRejected = glRequestsRejected + 1 + If gbShow Then + With frmPoolMgr.lblRejected + .Caption = CStr(glRequestsRejected) + .Refresh + End With + End If + End If + End If + Exit Function +GetWorkerError: + Select Case Err.Number + Case ERR_OVER_FLOW + LogError Err + If glRequestsSatisfied = glMAX_LONG Then glRequestsSatisfied = 0 + If glRequestsRejected = glMAX_LONG Then glRequestsRejected = 0 + Resume Next + Case Else + LogError Err + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Function + +Public Sub IPool_ReleaseWorker() +Attribute IPool_ReleaseWorker.VB_Description = "Notifies the AEPoolMgr that an AEWorker.Worker object received by GetWorker is no longer referenced by the calling application." + 'Called by a client when it destroys a reference to + 'a worker that it received by calling GetWorker + 'Check to see if the client has another reference to + 'the worker. If it does not, mark the worker that was passed + 'to the client as not busy and set mlWorkerID = to 0. + LogEvent giRELEASE_WORKER + 'If ReferenceCount is zero then this method is being called without + 'having an unreleased reference to the worker + If mlReferenceCount = 0 Then Exit Sub + mlReferenceCount = mlReferenceCount - 1 + 'If ReferenceCount = 0 now then client has released + 'its only reference to a worker + If mlReferenceCount = 0 Then + gcWorkers.Item(CStr(mlWorkerID)).Busy = False + mlWorkerID = 0 + End If +End Sub + +Private Sub Class_Initialize() + CountInitialize +End Sub + +Private Sub Class_Terminate() + CountTerminate +End Sub + + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOL.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOL.ICO new file mode 100644 index 0000000..c8773eb Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOL.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOLMGR.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOLMGR.CLS new file mode 100644 index 0000000..6b0f3cf --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEPOOL/POOLMGR.CLS @@ -0,0 +1,599 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "PoolMgr" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Pool Manager" +Option Explicit +'------------------------------------------------------------------------- +'This public multi-use class provides the OLE interface for the APE Manager +'or another application designed to be the Manager +' It implements the IPoolManager interface +'------------------------------------------------------------------------- + +Implements APEInterfaces.IPoolManager + +'*********************** +'Public Properties +'*********************** + +Public Property Let IPoolManager_ShowPool(ByVal bShow As Boolean) +Attribute IPoolManager_ShowPool.VB_Description = "Determines whether the AEPoolMgr shows a form." + '------------------------------------------------------------------------- + 'Purpose: Show property determines whether or not a form + ' is displayed while PoolMgr is loaded + 'Effects: [gbShow] becomes value of parameter + ' If parameter is true frmPoolMgr is show, else form + ' is Unloaded. + '------------------------------------------------------------------------- + If Not gbShow = bShow Then + gbShow = bShow + If bShow Then + With frmPoolMgr + .Show + .lblWorkers.Caption = gcWorkers.Count + .lblSatisfied.Caption = CStr(glRequestsSatisfied) + .lblRejected.Caption = CStr(glRequestsRejected) + End With + Else + Unload frmPoolMgr + End If + End If +End Property + +Public Property Get IPoolManager_ShowPool() As Boolean + IPoolManager_ShowPool = gbShow +End Property + +Public Property Let IPoolManager_LogPool(ByVal bLog As Boolean) +Attribute IPoolManager_LogPool.VB_Description = "Determines if the AEPoolMgrr logs its events and errors to the AELogger.Logger object." + '------------------------------------------------------------------------- + 'Purpose: If log is true create logger class object and log Services + 'Effects: [gbLog] becomes value of parameter + ' [goLogger] is set to a new AELogger.Logger object if parameter + ' is true. If false goLogger is destroyed + '------------------------------------------------------------------------- + On Error GoTo LogPoolError + If Not gbLog = bLog Then + gbLog = bLog + If bLog Then + Set goLogger = CreateObject("AELogger.Logger") + Else + Set goLogger = Nothing + End If + End If + Exit Property +LogPoolError: + Select Case Err.Number + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set goLogger = oInstancer.Object("AELogger.Logger") + Set oInstancer = Nothing + Resume Next + Case Else + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Property + +Public Property Get IPoolManager_LogPool() As Boolean + IPoolManager_LogPool = gbLog +End Property + +'******************** +'Worker Properties +'******************** +Public Property Let IPoolManager_LogWorkers(ByVal bLog As Boolean) +Attribute IPoolManager_LogWorkers.VB_Description = "Sets the value that is used to set the Log property of AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the Log property of all the Workers + 'Effects: + ' [gbLogWorkers] + ' becomes equal to the passed parameter + 'Assumes: There is a collection of one or more valid Worker objects + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to all the Workers + Dim oWork As clsWorker + If Not bLog = gbLogWorkers Then + For Each oWork In gcWorkers + oWork.Worker.Log = bLog + Next oWork + gbLogWorkers = bLog + End If +End Property + +Public Property Get IPoolManager_LogWorkers() As Boolean + IPoolManager_LogWorkers = gbLogWorkers +End Property + +Public Property Let IPoolManager_PersistentServices(ByVal bPersistent As Boolean) +Attribute IPoolManager_PersistentServices.VB_Description = "Sets the value that is used to set the PersistentServices property of AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the PersistentServices property of all the Workers + 'Effects: + ' [gbPersistentServices] + ' becomes equal to the passed parameter + 'Assumes: There is a collection of one or more valid Worker objects + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to all the Workers + Dim oWork As clsWorker + If Not bPersistent = gbPersistentServices Then + For Each oWork In gcWorkers + oWork.Worker.PersistentServices = bPersistent + Next oWork + gbPersistentServices = bPersistent + End If +End Property + +Public Property Get IPoolManager_PersistentServices() As Boolean + IPoolManager_PersistentServices = gbPersistentServices +End Property + +Public Property Let IPoolManager_EarlyBindServices(ByVal bEarlyBind As Boolean) +Attribute IPoolManager_EarlyBindServices.VB_Description = "Sets the value that is used to set the EarlyBindServices property of AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the EarlyBindServices property of all the Workers + 'Effects: + ' [gbEarlyBindServices] + ' becomes equal to the passed parameter + 'Assumes: There is a collection of one or more valid Worker objects + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to all the Workers + Dim oWork As clsWorker + If Not bEarlyBind = gbEarlyBindServices Then + For Each oWork In gcWorkers + oWork.Worker.EarlyBindServices = bEarlyBind + Next oWork + gbEarlyBindServices = bEarlyBind + End If +End Property + +Public Property Get IPoolManager_EarlyBindServices() As Boolean + IPoolManager_EarlyBindServices = gbEarlyBindServices +End Property + +'**************************** +'Public Methods +'**************************** + +Public Sub IPoolManager_SetProperties(ByVal bShow As Boolean, Optional ByVal bLog As Variant) +Attribute IPoolManager_SetProperties.VB_Description = "Sets all of the AEPoolMgr.PoolMgr related properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the PoolMgr properties in one method call + 'Effects: Sets the following properties to parameter values + ' ShowPool, LogPool, WorkerQuantity + '------------------------------------------------------------------------- + With Me + .IPoolManager_ShowPool = bShow + If Not IsMissing(bLog) Then .IPoolManager_LogPool = bLog + End With +End Sub + +Public Sub IPoolManager_SetWorkerProperties(ByVal bLog As Boolean, Optional ByVal bEarlyBindServices As Variant, _ + Optional ByVal bPersistentServices As Variant) +Attribute IPoolManager_SetWorkerProperties.VB_Description = "Sets all of the AEWorker.Worker related properties on one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the Worker properties in one method call + 'Effects: Sets the following properties to parameter values + ' ShowWorkers, LogWorkers, EarlyBindServices, PersistentServices + '------------------------------------------------------------------------- + Dim oWork As clsWorker + gbLogWorkers = bLog + If Not IsMissing(bEarlyBindServices) Then gbEarlyBindServices = bEarlyBindServices + If Not IsMissing(bPersistentServices) Then IPoolManager_PersistentServices = bPersistentServices + For Each oWork In gcWorkers + oWork.Worker.SetProperties gbLogWorkers, gbEarlyBindServices, gbPersistentServices + Next oWork +End Sub + +Public Sub IPoolManager_SetConnectionProperties(ByVal bUseDCOM As Boolean, Optional ByVal sProtocol As Variant, _ + Optional ByVal lAuthentication As Variant) +Attribute IPoolManager_SetConnectionProperties.VB_Description = "Sets the connection parameters to be used when creating remote AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the Connection Settings that the PoolMgr will use + ' to connect to remote Workers + 'In: + ' [bUseDCOM] + ' If true workers will be created using DCOM instead of + ' Remote Automation. + ' [sProtocol] + ' Protocol sequence to use when connecting to remote objects + ' [lAuthentication] + ' Authentication level to use + 'Effects: + ' [gbUseDCOM] + ' becomes equal to bUseDCOM parameter + ' [gsProtocol] + ' becomes equal to sProtocol parameter + ' [glAuthentication] + ' becomes equal to lAuthentication parameter + '------------------------------------------------------------------------- + Dim iVarType As Integer 'Variant type code of lAuthentication + gbUseDCOM = bUseDCOM + If Not IsMissing(sProtocol) Then + If VarType(sProtocol) = vbString Then gsProtocol = sProtocol + End If + If Not IsMissing(lAuthentication) Then + iVarType = VarType(lAuthentication) + If iVarType = vbLong Or iVarType = vbInteger Or iVarType = vbDouble Or iVarType = vbSingle Then + glAuthentication = lAuthentication + End If + End If +End Sub + +Public Function IPoolManager_CreateWorkers(ByVal bRemoteWorkers As Boolean, Optional ByVal lWorkerQuantity As Variant, _ + Optional ByVal lWorkersPerMachine As Variant, Optional ByVal vaMachineList As Variant, _ + Optional ByVal bUseLocalMachine As Variant) As String +Attribute IPoolManager_CreateWorkers.VB_Description = "Creates AEWorker.Worker objects. Returns a string that describes any errors that occurred." + '------------------------------------------------------------------------- + 'Purpose: Sets the settings for remote workers. These settings provide + ' The PoolMgr the information needed to create Workers on several + ' remote machines rather than just the local one. + 'IN: + ' [bRemoteWorkers] + ' If true, the PoolMgr will create Workers on remote machines. + ' If false, the PoolMgr will only create Workers on the local machine. + ' [lWorkerQuantity] + ' The total number of Workers to be created. + ' [lWorkersPerMachine] + ' A variant long specifing the maximum allowed number of Workers + ' to create on a single machine. + ' [vaMachineList] + ' A string array, providing the list of machine names + ' to create the workers on. If this is not a valid + ' array of strings it will be treated like no machine + ' names were specified + ' [bUseLocalMachine] + ' If true, include local machine in list of remote machine names + 'Return: String to display to user and print to log file. Will contain + ' any error information and the total number of workers created + '------------------------------------------------------------------------- + + Static stbUseDCOM As Boolean 'Last DCom automation setting used + Static stsProtocol As String 'Last Automation protocol setting used + Static stlAuthentication As Long 'Last Automation Authentication setting used + Dim sResult As String 'Result of SetWorkersOnMachine function + Dim sErrors As String 'String with error descriptions to return for + 'display to user + Dim oWorkerMachine As clsWorkerMachines 'Object in gcWorkerMachines collection + 'that stores how many workers are instanciated + 'on a particular machine + Dim lUB As Long 'Ubound of passed array + Dim bListExists As Boolean 'True if a array of machine names exists + Dim bInList As Boolean 'If true the Machine Name is in the passed array + Dim i As Integer 'For...Next loop counter + Dim lAdd As Long 'Number of Workers to add on machine + Dim lNumOnMach As Long 'Number of workers on a machine + Dim iVarType As Integer 'Variant data type of a parameter + + On Error GoTo CreateWorkersError + + 'Validate the parameters + 'validate lWorkerQuantity + iVarType = VarType(lWorkerQuantity) + If Not (iVarType = vbLong Or iVarType = vbInteger Or iVarType = vbSingle Or iVarType = vbDouble) Then + Err.Raise giINVALID_PARAMETER, , LoadResString(giINVALID_PARAMETER) + End If + If bRemoteWorkers Then + 'validate vaMachineList + iVarType = VarType(vaMachineList) + If (iVarType = vbArray + vbString) Or (iVarType = vbArray + vbVariant) Then + On Error Resume Next + lUB = UBound(vaMachineList) + If Err.Number <> ERR_SUBSCRIPT_OUT_OF_RANGE Then + bListExists = True + End If + On Error GoTo CreateWorkersError + End If + 'validate lworkerspermachine + iVarType = VarType(lWorkersPerMachine) + If Not (iVarType = vbLong Or iVarType = vbInteger Or iVarType = vbSingle Or iVarType = vbDouble) Then + Err.Raise giINVALID_PARAMETER, , LoadResString(giINVALID_PARAMETER) + End If + 'validate bUseLocalMachine + On Error Resume Next + bUseLocalMachine = CBool(bUseLocalMachine) + If Err.Number = ERR_TYPE_MISMATCH Then + On Error GoTo CreateWorkersError + Err.Raise giINVALID_PARAMETER, , LoadResString(giINVALID_PARAMETER) + Else + On Error GoTo CreateWorkersError + End If + End If + + 'First destroy all workers that can not be used any more + 'If connection settings have been changed or if bRemoteWorkers + 'is false all Workers on remote machines must be destroyed + If (Not bRemoteWorkers) Or (stbUseDCOM <> gbUseDCOM) Or (stsProtocol <> gsProtocol) Or (stlAuthentication <> glAuthentication) Then + 'Reset the Last Connection setting static variables + stbUseDCOM = gbUseDCOM + stsProtocol = gsProtocol + stlAuthentication = glAuthentication + 'Destroy all remote Workers + For Each oWorkerMachine In gcWorkerMachines + If oWorkerMachine.Remote Then + sResult = SetWorkersOnMachine(True, oWorkerMachine.MachineName, 0) + sErrors = sErrors & sResult + End If + Next + Else + 'If we did not destroy all workers on remote machines + 'destroy workers that are on machines that are not + 'in the passed list of remote worker machines + + 'Check if the machine names currently in gcWorkerMachines + 'are in the passed array + For Each oWorkerMachine In gcWorkerMachines + If oWorkerMachine.Remote Then + bInList = False + If bListExists Then + For i = 0 To lUB + If vaMachineList(i) = oWorkerMachine.MachineName Then + bInList = True + Exit For + End If + Next + End If + If Not bInList Then + sResult = SetWorkersOnMachine(True, oWorkerMachine.MachineName, 0) + sErrors = sErrors & sResult + End If + End If + Next + End If + + 'See if Workers on local machine need destroyed + If bRemoteWorkers Then + If Not bUseLocalMachine Then + sResult = SetWorkersOnMachine(False, "", 0) + sErrors = sErrors & sResult + End If + End If + + 'Create Workers + If Not bRemoteWorkers Then + 'Just create all workers on local machine + sResult = SetWorkersOnMachine(False, "", CLng(lWorkerQuantity)) + sErrors = sErrors & sResult + Else + 'Now loop through machine name list and add workers + 'to each machine until giWorkerCount equals + 'lWorkerQuantity or the end of the machine list is + 'reached + If giWorkerCount <= lWorkerQuantity Then + 'First create workers on local machine + If bUseLocalMachine Then + 'Get the number of workers currently on this machine + lNumOnMach = gcWorkerMachines.Item(1).WorkerKeys.Count + 'Set number of Workers to be on current machine + lAdd = lWorkersPerMachine + If lAdd > (lWorkerQuantity + lNumOnMach) - giWorkerCount Then lAdd = (lWorkerQuantity + lNumOnMach) - giWorkerCount + sResult = SetWorkersOnMachine(False, "", lAdd) + sErrors = sErrors & sResult + End If + + If bListExists Then + Do Until (i > lUB Or giWorkerCount = lWorkerQuantity) + On Error Resume Next + 'Get the number of workers currently on this machine + Set oWorkerMachine = gcWorkerMachines.Item(vaMachineList(i)) + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + lNumOnMach = 0 + Else + lNumOnMach = oWorkerMachine.WorkerKeys.Count + End If + On Error GoTo CreateWorkersError + 'Set number of Workers to be on current machine + lAdd = lWorkersPerMachine + If lAdd > (lWorkerQuantity + lNumOnMach) - giWorkerCount Then lAdd = (lWorkerQuantity + lNumOnMach) - giWorkerCount + sResult = SetWorkersOnMachine(True, CStr(vaMachineList(i)), lAdd) + sErrors = sErrors & sResult + i = i + 1 + Loop + End If + Else + 'There may be too many workers, so destroy workers to + 'make the right count + If bListExists Then + i = lUB + Do While i >= 0 + On Error Resume Next + 'Get the number of workers currently on this machine + Set oWorkerMachine = gcWorkerMachines.Item(vaMachineList(i)) + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + lNumOnMach = 0 + Else + lNumOnMach = oWorkerMachine.WorkerKeys.Count + End If + On Error GoTo CreateWorkersError + If lNumOnMach > 0 Then + lAdd = 0 + If lNumOnMach > (giWorkerCount - lWorkerQuantity) Then lAdd = lNumOnMach - (giWorkerCount - lWorkerQuantity) + sResult = SetWorkersOnMachine(True, CStr(vaMachineList(i)), lAdd) + sErrors = sErrors & sResult + End If + i = i - 1 + Loop + End If + + 'if there are still too many workers + 'reduce the number of workers on the local machine + If giWorkerCount > lWorkerQuantity Then + lNumOnMach = gcWorkerMachines.Item(1).WorkerKeys.Count + lAdd = 0 + If lNumOnMach > (giWorkerCount - lWorkerQuantity) Then lAdd = lNumOnMach - (giWorkerCount - lWorkerQuantity) + sResult = SetWorkersOnMachine(False, "", lAdd) + sErrors = sErrors & sResult + End If + End If + End If + + 'Check if any workers were created and raise error if none were created + If giWorkerCount < lWorkerQuantity Then + If giWorkerCount = 0 Then + Err.Raise giNO_WORKERS_CREATED, , sErrors & vbCrLf & LoadResString(giNO_WORKERS_CREATED) + Else + sErrors = sErrors & vbCrLf & ReplaceString(LoadResString(giONLY_N_WORKERS_CREATED), gsNUMBER_TOKEN, CStr(giWorkerCount)) + End If + Else + sErrors = sErrors & vbCrLf & LoadResString(giALL_WORKERS_CREATED) + End If + + IPoolManager_CreateWorkers = sErrors + Exit Function +CreateWorkersError: + Select Case Err.Number + Case Is > giERROR_THRESHOLD + Err.Raise Err.Number + vbObjectError, Err.Source, Err.Description + Case Else + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Function + +Public Function IPoolManager_GetRemoteLoggerCollection() As Collection +Attribute IPoolManager_GetRemoteLoggerCollection.VB_Description = "Returns a collection of remote AELogger.Logger objects that were created by remote AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: Returnse the collection of loggers created on the same + ' machines as remote Workers + 'Assumes: + ' [gcWorkerMachines] + ' a valid collection of clsWorkerMachines object + ' [clsWorkerMachines] + ' If .Remote is true .WorkerKeys.Count is > 0 + '------------------------------------------------------------------------- + Dim cRemoteLoggers As Collection 'Collection to return + Dim oWorkerMachine As clsWorkerMachines 'Object representing each Worker machine + Dim oLogger As APEInterfaces.ILogger 'Valid logger object or nothing + + Set cRemoteLoggers = New Collection + + For Each oWorkerMachine In gcWorkerMachines + With oWorkerMachine + If .Remote Then + Dim oWork As clsWorker + Set oWork = gcWorkers.Item(CStr(.WorkerKeys(1))) + Set oLogger = oWork.Worker.GetLogger + If Not oLogger Is Nothing Then + cRemoteLoggers.Add oLogger + End If + End If + End With + Next + If cRemoteLoggers.Count = 0 Then Set cRemoteLoggers = Nothing + Set IPoolManager_GetRemoteLoggerCollection = cRemoteLoggers +End Function + +Public Sub IPoolManager_LoadServiceObject(ByVal ServiceLibClass As String, ByVal vServiceConfiguration As Variant) +Attribute IPoolManager_LoadServiceObject.VB_Description = "Causes all created AEWorker.Worker objects to create an object whose ProgID matches ServiceLibClass." + '------------------------------------------------------------------------- + 'Purpose: Purpose is to call LoadServiceObject method in each + ' instanciated worker. It is ignored if gbPeristentServices + ' is false + 'Assumes: + ' [gcWorkers] + ' Is a collection of valid AEWorker.Worker objects + '------------------------------------------------------------------------- + Dim oWork As clsWorker + If gbPersistentServices Then + For Each oWork In gcWorkers + oWork.Worker.LoadServiceObject ServiceLibClass, vServiceConfiguration + Next oWork + End If +End Sub + +Public Sub IPoolManager_StopTest() +Attribute IPoolManager_StopTest.VB_Description = "Notifies AEPoolMgr that Worker requests and releases are being stopped." + '------------------------------------------------------------------------- + 'Purpose: Stops all Pool Managers processes + ' [gbStopTest] + ' Becomes true + '------------------------------------------------------------------------- + 'Call this to halt the Pool Manager and the Expediter + gbStopTest = True + Exit Sub +End Sub + +Public Sub IPoolManager_StartTest() +Attribute IPoolManager_StartTest.VB_Description = "Prepares the AEPoolMgr to manage AEWorker.Worker objects after StopTest has been called." + '------------------------------------------------------------------------- + 'Purpose: Call this to allow processing of GetWorker calls + 'Effects: + ' Resets U/I to look like PoolMgr just started + ' Call Workers StartTest method to reset them + ' [gbStopTest] + ' Becomes False + '------------------------------------------------------------------------- + Dim oWork As clsWorker + Dim iRetry As Integer + + 'Reset stats + gbStopTest = False + glRequestsSatisfied = 0 + glRequestsRejected = 0 + If gbShow Then + With frmPoolMgr + .lblStatus.Caption = "" + .lblWorkers.Caption = CStr(giWorkerCount) + .lblSatisfied.Caption = 0 + .lblRejected.Caption = 0 + End With + End If + Exit Sub +StartTestError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check for stop test + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + LogEvent giCALL_REJECTED_RETRY + Resume + Else + 'We reached our max retries + Resume Next + End If + Case Else + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Sub + +'******************** +'Private Procedures +'******************** + +Private Sub Class_Initialize() + CountInitialize +End Sub + +Private Sub Class_Terminate() + CountTerminate +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.RC new file mode 100644 index 0000000..65c28ac --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.RC @@ -0,0 +1,52 @@ +STRINGTABLE DISCARDABLE +BEGIN + 1 "*** Do *NOT* Localize any string that starts with '***'. They are comments to be used by localizers to identify sections. They also mark the beginning of a new 'section' within the String Table." + 2 "Job Manager" + 3 "Add Method received" + 4 "GetServiceRequest received with return of new Service" + 5 "GetServiceRequest call returned Service results" + 6 "GetServiceResults received with return of results" + + 10 "StopTest Received" + 11 "Call rejected retry" + 12 "Because the specified authentication level is not supported on the remote machine, Worker will be created with no authentication on the machine, ." + 13 "Only workers were created and configured, because available machines were lacking." + //Remote Worker creation error message + 14 "Could not create or configure a worker on machine, ." + //No errors creating remote workers message + 15 "All requested workers were successfully created." + 16 "Could not create or configure local worker object." + 17 "Error: " + + 29 "*** Font information for all forms. Index 30 is the Character set, Index 31 is Font name, Index 32 is Font Size" + 30 "0" + 31 "Tahoma" + 32 "10" + + 100 "*** Form U/I Captions" + 101 "Job Manager" //Form Caption + 102 "Current Queue Size" //Current Queue Size label + 103 "Peak Queue Size" //Peak Queue Size label + 104 "Total Call Count" //Total Call count label + 105 "Worker Count" //Worker Count label + + //Racreg32 error codes with 200 added for offset + 200 "*** Racreg32 error codes with 200 added for offset" + 201 "Unknown run time error occurred" + 202 "No protocol was specified" + 203 "No server machine name was specified" + 204 "An error occurred reading from the registry" + 205 "An error occurred writing to the registry" + 206 "Both the ProgID and CLSID parameters were missing" + 207 "There is no local server (either in-process or cross-process, 16-bit or 32-bit)" + 208 "There was an error looking for the Proxy DLLs, check that they were installed properly" + + 32700 "*** Error Descriptions" + 32749 "The Job Manager is busy. Please resubmit Service Request later." + 32750 "An error occurred changing server connection settings: ." + 32762 "An error occurred instantiating AEExpediter.Expediter. Callbacks can not be made." + 32763 "You must first get a WithEvents object before requesting a callback through event sinking." + 32766 "Invalid Callback Object" + 32765 "Invalid Parameter" + 32764 "No Workers could be created." +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.RES new file mode 100644 index 0000000..81de809 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.VBP new file mode 100644 index 0000000..5c14dac --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/AEQUEUE.VBP @@ -0,0 +1,56 @@ +Type=OleExe +Reference=*\G{244D13BD-AFDB-11CE-85D1-00AA00695286}#1.1#0#..\..\EXTERNAL\racreg32.dll#RacReg +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#0#..\AEINTRFC\AEIntrfc.tlb#Application Performance Explorer 2.0 Interfaces +Class=QueueMgr; queuemgr.cls +Module=modQueueMgr; modqueue.bas +Class=clsService; clsservc.cls +Module=modAEConstants; ..\AEInclud\modaecon.bas +Module=modVBErrors; ..\AEInclud\modvberr.bas +Module=modWin32Errors; ..\AEInclud\modwiner.bas +Class=clsPositionForm; ..\AEInclud\clsposfm.cls +Class=clsWorker; ..\AEInclud\clsworkr.cls +Class=clsQueueDelegator; clsquedl.cls +Class=Queue; queue.cls +Form=frmqueue.frm +Class=clsWorkerMachines; ..\AEInclud\clswkmac.cls +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +Module=Utility; ..\AEInclud\Utility.bas +Module=Localize; ..\AEInclud\Localize.bas +ResFile32="aequeue.res" +IconForm="frmQueueMgr" +Startup="(None)" +HelpFile="" +Title="APE Job Manager" +ExeName32="AEQueue.exe" +Path32="..\..\Retail" +Command32="" +Name="AEQueueMgr" +HelpContextID="0" +Description="Application Performance Explorer Job Manager" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AEQueue.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Job Manager" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Job Manager" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/CLSQUEDL.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/CLSQUEDL.CLS new file mode 100644 index 0000000..13cbc7d --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/CLSQUEDL.CLS @@ -0,0 +1,345 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "clsQueueDelegator" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "Provides an interface for the AEExpediter and the AEWorker to interact with the AEQueueMgr." +Option Explicit +'------------------------------------------------------------------------- +'The Class is public but not creatable. It is provide as an OLE interface +'for the Expediter and Workers to call. The Worker calls the GetServiceRequest Method +'to return Service results and retrieve a new Service Request. +'------------------------------------------------------------------------- + +Implements APEInterfaces.IQueueDelegator + + +Private Function IQueueDelegator_GetServiceRequest(ByVal lWorkerID As Long, Optional ByVal sReturnServiceID As String, Optional ByVal vReturnData As Variant, Optional ByVal sReturnError As String = "") As Variant + '------------------------------------------------------------------------- + 'Purpose: Worker should call this method to poll for a + ' Service Request to satisfy. + 'IN: + ' [lWorkerID] + ' Worker's ID, it is the same as its key to the gcWorkers collection + 'Optional IN: + ' The following optional parameters allow a Worker to return + ' the results of a service request at the same time it is + ' calling for a new service to accomplish. + ' [sReturnServiceID] + ' Service Request ID of Service whose results are being returned + ' Store the returned results so the Expediter can get them + ' and return them to the client application + ' [vReturnData] + ' Return data from the accomplished service or task. Unknown + ' data type. Just store it and Expediter will get it to pass + ' back to client application + ' [sReturnError] + ' String that contains error information that occured during + ' service competion. Expediter will get this to pass back + ' to client application. + 'Return: Is a variant array with Service Request data if the QueueMgr + ' has a Service Request for it to satify. Otherwise, a Null + ' is returned. The Service ID, the Command string, UseCallback + ' flag, Data Present flag, and ServiceData are passed in the + ' returned array + 'Effects: + ' [gbBusyGetServiceRequest] + ' is true during procedure + ' [gcQueue] + ' The Service Request item, a clsService class object, in the + ' collection will have its status property changed to giDELEGATED_TO_WORKER + ' if it is returned to the Worker + ' Another Service Request item in the collection whose results + ' are being returned may have it status property changed to + ' giHAVE_SERVICE_RESULTS + ' [gcWorkers] + ' An item's Busy flag that corresponds with calling Worker is + ' flipped to false if no Service Request is returned. If a + ' Service Request is returned it is set to true. + 'Assumes: + ' [gcWorkers] + ' Is a collection of valid AEWorker.Worker objects + ' [Calling Object] + ' Is a Worker in the gcWorkers collection and is passing an + ' ID that matches the key to it in the gcWorkers collection + ' [gcQueue] + ' Is a collection of clsService objects + '------------------------------------------------------------------------- + 'First check to see if there is an Service request in the queue + 'Pass back a variant array to the Worker if there is another Service + Dim oService As clsService 'Will be the clsService object to store the + 'passed results in and then it will be the + 'clsService object to retrieve Service Request + 'Data from and pass back to worker + Dim sKeyToRemove As String 'Key of clsService object in gcQueue to remove + Dim oa As clsService 'clsService object used in For...Next loop + Dim bGotService As Boolean 'Flag meaing Service Request is chosen to pass back + Dim vServiceData(3) As Variant 'Array that will contain Service request data + 'to be returned to Worker + Dim lCount As Long 'Count of items in gcQueue + Dim l As Long 'For...Next counter + Dim oWork As clsWorker 'clsWorker object that contains a reference to the + 'calling Worker object + On Error GoTo QueueDelegator_GetServiceRequestError + + gbBusyGetServiceRequest = True + + 'Get the clsWorker object that contains the Worker that is calling + Set oWork = gcWorkers.Item(CStr(lWorkerID)) + + 'See if Service Request results were returned. If they were + 'store the Service Request results in gcQueue in the clsService + 'object if the objects UseCallback property is true. If it is + 'false, ignore any results and remove item from queue now. + If IsNumeric(sReturnServiceID) And (Not gbStopTest) Then + 'We have a return, now see if results should be stored + 'for expediter to get and return to client application + Set oService = gcQueue.Item(sReturnServiceID) + With oService + Select Case .CallBackMode + Case giUSE_DEFAULT_CALLBACK, giUSE_PASSED_CALLBACK, giRETURN_BY_SYNC_EVENT + 'store values and change status flag + LogEvent giGETREQUEST_RECEIVED_RETURNED_RESULTS, sReturnServiceID + .Status = giHAVE_SERVICE_RESULTS + .ReturnError = sReturnError + If Not IsMissing(vReturnData) Then + 'Check what data type vReturnData is + 'in order to determine how to handle it + Select Case VarType(vReturnData) + Case vbEmpty, vbNull + .ReturnData = Null + Case vbObject, vbError, vbDataObject + Set .ReturnData = vReturnData + Case Else + .ReturnData = vReturnData + End Select + End If + gbHaveServiceResults = True + Case Else + 'if a callback is not to be returned just + 'remove the clsService object from gcQueue + gcQueue.Remove sReturnServiceID + End Select + End With + Set oService = Nothing + End If + + 'Exit sub if Stopping Queue + If gbStopTest Then + GoTo NoServiceToReturn + End If + + 'See if the calling Worker is Marked for removal. If it is + 'return the integer value giCLOSE_WORKER_NOW instead of returning + 'a Service request. Also, remove the clsWorker object from + 'gcWorkers so that when the local reference to it (oWork) + 'goes out of scope the Worker will unload + lCount = gcQueue.Count + + If oWork.RemoveMe Then + gcWorkers.Remove CStr(lWorkerID) + 'Update worker count U/I + If gbShow Then + With frmQueueMgr.lblWorkerCount + .Caption = gcWorkers.Count + .Refresh + End With + End If + IQueueDelegator_GetServiceRequest = giCLOSE_WORKER_NOW + Exit Function + Else + If lCount > 0 Then + 'Pass another Service throught the parameters passed ByRef + 'It seems that this procedure or the Delegate procedure is dropped into + 'using the same oService in gcQueue so Status flag is + 'added so it can be flipped immediately + bGotService = False + 'Use For...Next instead of For...Each to make sure that + 'correct priority is given to items in the collection + For l = 1 To gcQueue.Count + 'If an item is removed during this loop by another process + 'an Invalid Procedure call error will be produced if + 'try to reference a object that no longer exists + On Error Resume Next + Set oa = gcQueue(l) + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + On Error GoTo QueueDelegator_GetServiceRequestError + Exit For + End If + On Error GoTo QueueDelegator_GetServiceRequestError + If oa.Status = giWAITING_FOR_WORKER Then + oa.Status = giDELEGATED_TO_WORKER + sKeyToRemove = CStr(oa.ID) + Set oService = oa + bGotService = True + Exit For + End If + Next + If Not bGotService Then + 'event though gcQueue.Count is greater than + 'zero all the items are already delgated so + 'Mark the worker as not busy and exit + GoTo NoServiceToReturn + End If + + 'Fill the variant array to be returned + With oService + LogEvent giGETREQUEST_RECEIVED_NEW_SERVICE, .ID + vServiceData(giSERVICE_ID_ELEMENT) = .ID + vServiceData(giCOMMAND_ELEMENT) = .Command + vServiceData(giDATA_PRESENT_ELEMENT) = .DataPresent + If .DataPresent Then + 'Check what data type vService return is + 'in order to determine how to handle it + Select Case VarType(.Data) + Case vbEmpty, vbNull + vServiceData(giSERVICE_DATA_ELEMENT) = Null + Case vbObject, vbError, vbDataObject + Set vServiceData(giSERVICE_DATA_ELEMENT) = .Data + Case Else + vServiceData(giSERVICE_DATA_ELEMENT) = .Data + End Select + End If + End With + Set oService = Nothing + + IQueueDelegator_GetServiceRequest = vServiceData() + On Error GoTo QueueDelegator_GetServiceRequestError + Else +NoServiceToReturn: + 'If there is not pending Service request + 'mark Busy equal false in the clsWorker class + 'object that has a reference to the Worker + 'calling the GetServiceRequest method. + If gbShow Then frmQueueMgr.lblQueue = 0 + oWork.Busy = False + IQueueDelegator_GetServiceRequest = Null + End If + End If + + 'Display stats + If gbShow Then frmQueueMgr.lblQueue = lCount + If lCount > glPeakQueueSize Then + glPeakQueueSize = lCount + If gbShow Then frmQueueMgr.lblPeak = glPeakQueueSize + End If + + gbBusyGetServiceRequest = False + If gbStopTest And Not gbBusyAdding And Not gbBusyGetServiceResults Then StopQueue + Exit Function +QueueDelegator_GetServiceRequestError: + LogError Err, gsNULL_SERVICE_ID + Err.Raise Err.Number, Err.Source, Err.Description + Exit Function + +End Function + +Private Function IQueueDelegator_GetServiceResults() As Variant + '------------------------------------------------------------------------- + 'Purpose: This method is provided for the Expediter to call and retrieve + ' all completed Service Request results and there respective + ' callback objects + 'Return: Is a variant array with Service Results if the QueueMgr + ' has completed Service Results for it to satify. Otherwise, a Null + ' is returned. The Service ID, the Data to be returned, the Callback + ' object, and the Error description string are returned with in + ' The variant array for each Service Result returned. The array + ' will have two dimensions. The first dimension will have an + ' index to represent each data element of the Service Results -- + ' see modAEConstants for the index constants--the second dimension + ' will have an index for each Service Result + 'Effects: + ' [gbBusyGetServiceResults] + ' Is true during this procedure + ' [gcQueue] + ' Any clsService object with its Status property equaling + ' giHAVE_SERVICE_RESULTS will be removed. + '------------------------------------------------------------------------- + Dim vaResults As Variant 'Variant array to be returned to Expediter + Dim lResultCount As Long 'Count of results added to Result array + Dim oService As clsService 'Object for For...Each loop + Dim lUB As Long 'Upper Bound of the 2nd dimension of vaResults + + gbBusyGetServiceResults = True + + 'Check the gbHaveServiceResults flag so we don't check ever + 'clsService object in gcQueue if we know that there are no + 'ready Service Results + If gbHaveServiceResults Then + gbHaveServiceResults = False + + ReDim vaResults(giRESULT_DIMENSION_ONE, giRESULT_ARRAY_REDIM_CHUNK_SIZE) + lUB = giRESULT_ARRAY_REDIM_CHUNK_SIZE + + 'Check if any clsService objects in gcQueue are ready to be returned + For Each oService In gcQueue + With oService + If oService.Status = giHAVE_SERVICE_RESULTS Then + 'Put the data of this clsService object in + 'the array then remove the object from the collection + 'See if vaResults needs redimensioned + If lResultCount > lUB Then + lUB = lUB + giRESULT_ARRAY_REDIM_CHUNK_SIZE + ReDim Preserve vaResults(giRESULT_DIMENSION_ONE, lUB) + End If + + 'Get values + vaResults(giRESULT_ID_ELEMENT, lResultCount) = .ID + vaResults(giRESULT_CALLBACK_TYPE_ELEMENT, lResultCount) = .CallBackMode + Select Case .CallBackMode + Case giUSE_PASSED_CALLBACK, giUSE_DEFAULT_CALLBACK + Set vaResults(giRESULT_CALLBACK_ELEMENT, lResultCount) = .CallBack + Case giRETURN_BY_SYNC_EVENT + Set vaResults(giRESULT_CALLBACK_ELEMENT, lResultCount) = .EventObject + End Select + vaResults(giRESULT_ERROR_ELEMENT, lResultCount) = .ReturnError + 'Check what data type .ReturnData is + 'in order to determine how to handle it + Select Case VarType(.ReturnData) + Case vbEmpty, vbNull + vaResults(giRESULT_DATA_ELEMENT, lResultCount) = Null + Case vbObject, vbError, vbDataObject + Set vaResults(giRESULT_DATA_ELEMENT, lResultCount) = .ReturnData + Case Else + vaResults(giRESULT_DATA_ELEMENT, lResultCount) = .ReturnData + End Select + + 'Remove the current clsService object from gcQueue + gcQueue.Remove CStr(.ID) + lResultCount = lResultCount + 1 + 'exit the loop if the array has reached the max size + 'the rest of the results will be returned on another call + If lResultCount - 1 = giRESULT_ARRAY_MAX_SIZE Then + gbHaveServiceResults = True ' Make sure the remaining items are processed + Exit For + End If + End If + End With + Next + + 'Check if any results were put in the array + 'If they were redimension the array to trim of indexes that do not have + 'data in them and return the array as the result of this function + 'If no results were put in the array return null + If lResultCount >= 1 Then + LogEvent giGETRESULTS_RECEIVED_RETURNED_RESULTS, gsNULL_SERVICE_ID + ReDim Preserve vaResults(giRESULT_DIMENSION_ONE, lResultCount - 1) + IQueueDelegator_GetServiceResults = vaResults + Else + IQueueDelegator_GetServiceResults = Null + End If + End If + + 'Display stats + If gbShow Then frmQueueMgr.lblQueue = gcQueue.Count + + If gbStopTest And Not gbBusyGetServiceRequest And Not gbBusyAdding Then StopQueue + gbBusyGetServiceResults = False +End Function diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/CLSSERVC.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/CLSSERVC.CLS new file mode 100644 index 0000000..c458874 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/CLSSERVC.CLS @@ -0,0 +1,36 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "clsService" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit +'------------------------------------------------------------------------- +'This class is used a structure for holding queued +'Service requests. Objects of this class are +'added to the gcQueue collection +'------------------------------------------------------------------------- +Public ID As String 'Service Request ID +Public Command As String 'Service Command used passed to Worker +Public Data As Variant 'Service Data passed to Worker +Public CallBack As APEInterfaces.IClientCallback 'Callback object Expediter will use to call + 'Client application back +Public CallBackMode As Integer 'Defines if and how data should be returned + 'to client. See "Callback mode keys" in modAEConstants +Public EventObject As Object 'sync object to return results through + 'back to calling client +Public Status As Integer 'Status flag, see global constants +Public DataPresent As Boolean 'Flag, if true, data needs to goto to Service object + 'Pass Data to Service object +Public ReturnData As Variant 'Data to be returned to Client application. The + 'results of a Service Request processed by a + 'worker. The Expediter will get this. +Public ReturnError As String 'Error description to return to client. Description + 'of error that occured while processing service + 'request. diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/FRMQUEUE.FRM b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/FRMQUEUE.FRM new file mode 100644 index 0000000..2f6c434 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/FRMQUEUE.FRM @@ -0,0 +1,258 @@ +VERSION 5.00 +Begin VB.Form frmQueueMgr + BorderStyle = 1 'Fixed Single + Caption = "Queue Manager" + ClientHeight = 2175 + ClientLeft = 7170 + ClientTop = 1785 + ClientWidth = 3915 + ClipControls = 0 'False + Icon = "frmqueue.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + ScaleHeight = 2175 + ScaleWidth = 3915 + StartUpPosition = 3 'Windows Default + Begin VB.ListBox lstLog + Height = 525 + IntegralHeight = 0 'False + Left = 3330 + TabIndex = 0 + Top = 1440 + Visible = 0 'False + Width = 525 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = "Worker Count" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 3 + Left = 195 + TabIndex = 9 + Top = 1200 + Width = 2535 + End + Begin VB.Label lblWorkerCount + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2800 + TabIndex = 8 + Top = 1200 + Width = 1000 + End + Begin VB.Label lblCount + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2800 + TabIndex = 7 + Top = 840 + Width = 1000 + End + Begin VB.Label lblPeak + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2800 + TabIndex = 6 + Top = 480 + Width = 1000 + End + Begin VB.Label lblQueue + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 2800 + TabIndex = 5 + Top = 120 + Width = 1000 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = "Total Call Count" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 2 + Left = 195 + TabIndex = 4 + Top = 840 + Width = 2535 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = "Peak Queue Size" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 1 + Left = 195 + TabIndex = 3 + Top = 480 + Width = 2535 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = "Current Queue Size" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 0 + Left = 195 + TabIndex = 2 + Top = 120 + Width = 2535 + End + Begin VB.Label lblStatus + BackStyle = 0 'Transparent + BeginProperty Font + Name = "MS Sans Serif" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 500 + Left = 200 + TabIndex = 1 + Top = 1570 + Width = 3500 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmQueueMgr" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Private Sub Form_Load() + '------------------------------------------------------------------------- + 'Effects: + ' Position form and load captions from string resource + '------------------------------------------------------------------------- + + 'Use clsPositionForm object to move + 'Form to settings saved in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + + 'Set U/I captions + ApplyFontToForm Me + Caption = LoadResString(giFORM_CAPTI0N) + lblCaption(0).Caption = LoadResString(giCURRENT_QUEUE_CAPTION) + lblCaption(1).Caption = LoadResString(giPEAK_QUEUE_CAPTION) + lblCaption(2).Caption = LoadResString(giTOTAL_CALL_CAPTION) + lblCaption(3).Caption = LoadResString(giWORKER_COUNT_CAPTION) + + 'Condition compile toggles between retail U/I and + 'Debug U/I that displays a list box that displays all + 'events as they occur + #If ccShowList Then + oPosition.Move Me, True + lstLog.Visible = True + lblStatus.Visible = False + lblPeak.Visible = False + lblCount.Visible = False + lblQueue.Visible = False + lblCaption(0).Visible = False + lblCaption(1).Visible = False + lblCaption(2).Visible = False + #Else + oPosition.Move Me, False + Width = giDEFAULT_FORM_WIDTH + Height = giDEFAULT_FORM_HEIGHT + #End If +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + 'Only unload if called by code. + If UnloadMode = vbFormControlMenu Then Cancel = True +End Sub + +Private Sub Form_Resize() + #If ccShowList Then + Dim lX As Long + Dim lY As Long + If Me.ScaleHeight >= 2 * glFORM_MARGIN Then lY = (Me.ScaleHeight - (2 * glFORM_MARGIN)) Else lY = (2 * glFORM_MARGIN) - Me.ScaleHeight + If Me.ScaleWidth >= 2 * glFORM_MARGIN Then lX = (Me.ScaleWidth - (2 * glFORM_MARGIN)) Else lX = (2 * glFORM_MARGIN) - Me.ScaleWidth + lstLog.Move glFORM_MARGIN, glFORM_MARGIN, lX, lY + #End If +End Sub + +Private Sub Form_Unload(Cancel As Integer) + 'Use clsPositionForm object to save + 'forms position in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + oPosition.Save Me + gbShow = False +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/FRMQUEUE.FRX b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/FRMQUEUE.FRX new file mode 100644 index 0000000..a81807a Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/FRMQUEUE.FRX differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/MODQUEUE.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/MODQUEUE.BAS new file mode 100644 index 0000000..dc5d83d --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/MODQUEUE.BAS @@ -0,0 +1,700 @@ +Attribute VB_Name = "modQueueMgr" +Option Explicit +'------------------------------------------------------------------------- +'The project is the QueueMgr component of the Application Performance Explorer +'The QueueManager receives Service Requests from Client applications and +'places the requests in a Queue. When it receives a request it passes +'a received callback object to the Expediter if needed. Workers poll the +'QueueMgr taking Service Requests and accomplishing the service. When +'the Worker takes a Service request it is removed from the Queue. +'The Queue Manager creates the Worker(s), the Logger, and the Expediter +' +'Key Files: +' frmQueue.frm Is the only and main form of the app +' clsPosFm.cls Is a tool to save the forms position to the registry +' clsServc.cls Is a class used to store Service Request Data +' clsWorkr.cls Is a class used to store a Worker object and its related +' data +' QueueMgr.cls Is a creatable multi-use class that provides the +' OLE interface for the APE Manager to call +' clsQueDl.cls Is a non-creatable public class that is instanciated and +' passed to the Workers and expediter for them to call +' Queue.cls Is a creatable multi-use class that provides the OLE +' interface for client applications to add service +' requests to the Queue +'------------------------------------------------------------------------- + +'Declarations +Declare Function GetTickCount Lib "Kernel32" () As Long + +'U/I Caption ResourceString keys +Public Const giFORM_CAPTI0N As Integer = 101 +Public Const giCURRENT_QUEUE_CAPTION As Integer = 102 +Public Const giPEAK_QUEUE_CAPTION As Integer = 103 +Public Const giTOTAL_CALL_CAPTION As Integer = 104 +Public Const giWORKER_COUNT_CAPTION As Integer = 105 + +'Constants +Public Const gbSHOW_FORM_DEFAULT As Boolean = False +Public Const gbLOG_DEFAULT As Boolean = False +Public Const gsPROTOCOL_DEFAULT As String = "ncacn_ip_tcp" +Public Const glAUTHENTICATION_DEFAULT As Long = 1 +Public Const giWORKER_QUANTITY_DEFAULT As Integer = 1 +Public Const gbWORKER_EARLYBIND_DEFAULT As Integer = True +Public Const gbPERSISTENT_QUEUE_DEFAULT As Boolean = False +Public Const glMAX_QUEUE_SIZE_DEFAULT As Long = 20000 'This was chosen as the ideal MaxQueue size on + 'on a Pentium 100 with 32 meg, running NT4 + 'This allows the queue to get large enough for + 'the user to see a performance hit, but not so + 'large that recovery is difficult +Public Const giERROR_THRESHOLD As Integer = 32700 +Public Const glMAX_ID As Long = 2147483647 +Public Const giMAX_WORKERS As Integer = 30 +Public Const giMAX_ALLOWED_RETRIES As Integer = 500 +Public Const giRETRY_WAIT_MIN As Integer = 500 'Retry Wait is measure in DoEvent cycles +Public Const giRETRY_WAIT_MAX As Integer = 2500 +Public Const giRESULT_ARRAY_REDIM_CHUNK_SIZE = 20 +Public Const giRESULT_ARRAY_MAX_SIZE = 200 + +Public Const giRACREG_ERROR_CODE_OFFSET = 200 'Add offset to racreg32 error codes + 'to make corresponding resource string key + +'Status codes for Status property of clsService +Public Const giCLIENT_IS_ADDING As Integer = 0 'Client is currently in the Add method for the + 'respective Service reaquest. The request should + 'not be delegated yet. +Public Const giWAITING_FOR_WORKER As Integer = 1 'Service request is ready to be taken by worker +Public Const giDELEGATED_TO_WORKER As Integer = 2 'Worker is processing this service request +Public Const giHAVE_SERVICE_RESULTS As Integer = 3 'Worker has returned results for this Service + 'request. It is ready to be taken by Expediter + +'User Defined Errors which also serve as string +'resource indexes +Public Const giQUEUE_MGR_IS_BUSY As Integer = 32749 +Public Const giFIRST_GET_WITHEVENTS_OBJECT As Integer = 32763 +Public Const giNO_WORKERS_CREATED As Integer = 32764 +Public Const giINVALID_PARAMETER As Integer = 32765 +Public Const giINVALID_CALLBACK As Integer = 32766 +Public Const giCOULD_NOT_CREATE_EXPEDITER As Integer = 32762 +Public Const giCONNECTION_SETTING_FAILED As Integer = 32750 'An error was returned by RacReg32 + +'String resourse strings for logging messages +Public Const giQUEUE_NAME As Integer = 2 +Public Const giADD_RECEIVED As Integer = 3 +Public Const giGETREQUEST_RECEIVED_NEW_SERVICE As Integer = 4 +Public Const giGETREQUEST_RECEIVED_RETURNED_RESULTS As Integer = 5 +Public Const giGETRESULTS_RECEIVED_RETURNED_RESULTS As Integer = 6 + +Public Const giSTOP_TEST_RECEIVED As Integer = 10 +Public Const giCALL_REJECTED_RETRY As Integer = 11 +Public Const giUSING_NO_AUTHENTICATION As Integer = 12 +Public Const giONLY_N_WORKERS_CREATED As Integer = 13 +Public Const giCOULD_NOT_CREATE_WORKER_ON_MACHINE As Integer = 14 +Public Const giALL_WORKERS_CREATED As Integer = 15 +Public Const giCOULD_NOT_CREATE_LOCAL_WORKER As Integer = 16 +Public Const giERROR_PREFIX As Integer = 17 + +Public Const giFONT_CHARSET_INDEX As Integer = 30 +Public Const giFONT_NAME_INDEX As Integer = 31 +Public Const giFONT_SIZE_INDEX As Integer = 32 + +'Global variables +Public glMaxQueueSize As Long 'Maximum allowed size of gcQueue +Public glAddCallCount As Long 'Total calls made to Queue.Add +Public glPeakQueueSize As Long 'Largest size of the collection of Service requests +Public gbLog As Boolean 'If True log QueueMgr Events +Public goExpediter As APEInterfaces.IExpediter 'Expediter class object +Public gcQueue As Collection 'Collection of clsService class objects + 'which contain a data structure for holding + 'Service request. +Public gcWorkers As Collection 'Collection of clsWorker class objects +Public gcWorkerMachines As Collection 'Collection of clsWorkerMachines objects used + 'keep track of how many worker objects are on + 'each remote worker machine. +Public goLogger As APEInterfaces.ILogger 'Logger object + +Public gbShow As Boolean 'If True show frmQueueMgr +Public glInstances As Long 'Count of number of instances + 'of this class +Public giWorkerCount As Integer 'Number of Worker instanciated, This can be different + 'than gcWorkers.Count if a Worker in the collection + 'is marked for removal it will not be included in giWorkerCount +Public gbLogWorkers As Boolean 'Flag to track status of + 'Worker property Log +Public gbPersistentServices As Boolean 'Flag keeps track of Worker + 'property PersistentServices + 'If true Workers keep reference to + 'all Service objects used else they + 'drop references after each use. +Public gbEarlyBindServices As Boolean 'Flag to track status of + 'Worker property EarlyBound +Public gbShowExpediter As Boolean 'Stores current Expediter property Show +Public gbLogExpediter As Boolean 'Stores current Expediter property Log +Public gbStopTest As Boolean 'Stop Test flag, checked by many procedures + 'that will discontinue their processes if true +Public gbBusyAdding As Boolean 'If true, in Queue.Add method +Public gbBusyGetServiceRequest As Boolean 'If true, in clsQueueDelegator.GetServiceRequest method +Public gbBusyGetServiceResults As Boolean 'If true, in clsQueueDelegator.GetServiceResults method +Public gbUnloading As Boolean 'Flag used by Class_terminate +Public gbHaveServiceResults As Boolean 'If true, there are Service Request results to return + 'to the Expediter when it polls +Public gsProtocol As String 'Protocol sequence to use when connecting to Workers +Public glAuthentication As Long 'Authentication level to use when connecting to Workers +Public gbUseDCOM As Boolean 'If true use DCOM to create workers instead of Remote Automation +Public gbFailedToCreateExpediter As Boolean + +Public Sub CountInitialize() + '------------------------------------------------------------------------- + 'Purpose: Keep track of number instances of QueueMgr and Queue + ' To be called by a public creatable class in its initialize + ' event. To keep track of how many public creatable objects + ' are initialized. Initialize the QueueMgr application if + ' this is the first time it is called. + 'Effects: + ' If this is the first instanciation + ' Put the QueueMgr in a "Ready" state. Load expediter, and Workers + ' Set default properties, Show form and load logger if necessary. + ' [glInstances] + ' increments by one + '------------------------------------------------------------------------- + Dim i As Integer + Dim oWork As clsWorker 'Object storing Workers and related informantion + Dim oService As clsService 'Object storing service requests and results + Dim oWorkerMachine As clsWorkerMachines 'Object that stores how many + 'Workers are on what machines + Dim sProgID As String 'ProgID trying to be created + 'used for error handling + Dim sReturn As String 'Return of SetWorkersOnMachine function + Dim bCreatingExpediter As Boolean + + On Error GoTo CountInitializeError + + glInstances = glInstances + 1 + If glInstances = 1 Then + App.OleServerBusyRaiseError = True + App.OleServerBusyTimeout = 10000 + 'Set default property values + gbShow = gbSHOW_FORM_DEFAULT + gbLog = gbLOG_DEFAULT + gsProtocol = gsPROTOCOL_DEFAULT + glAuthentication = glAUTHENTICATION_DEFAULT + gbEarlyBindServices = gbWORKER_EARLYBIND_DEFAULT + glMaxQueueSize = glMAX_QUEUE_SIZE_DEFAULT + 'Create Logger class object early so + 'potential errors could be logged + sProgID = "AELogger.Logger" + If gbLog Then Set goLogger = CreateObject("AELogger.Logger") + 'gbPersistentQueue = gbPERSISTENT_QUEUE_DEFAULT + 'Create Expediter class object + sProgID = "AEExpediter.Expediter" + bCreatingExpediter = True + Set goExpediter = CreateObject("AEExpediter.Expediter") + Set goExpediter.QueueMgrRef = New clsQueueDelegator + bCreatingExpediter = False + 'Load frmQueueMgr because it has a timer + Load frmQueueMgr + 'Create collection objects + Set gcWorkers = New Collection + Set gcQueue = New Collection + Set gcWorkerMachines = New Collection + 'Add an item to represent number of workers on the local machine + Set oWorkerMachine = New clsWorkerMachines + gcWorkerMachines.Add oWorkerMachine + 'Load the default amount of workers and add + 'them to the gcWorkers Collection + sReturn = SetWorkersOnMachine(False, "", giWORKER_QUANTITY_DEFAULT) + + 'Only show the form if gbShow is true + If gbShow Then + frmQueueMgr.Show + With frmQueueMgr + .lblCount.Caption = 0 + .lblPeak.Caption = 0 + .lblQueue.Caption = 0 + .lblWorkerCount.Caption = gcWorkers.Count + .lblCount.Refresh + .lblPeak.Refresh + .lblQueue.Refresh + .lblWorkerCount.Refresh + End With + End If + gbUnloading = False + 'call start test in the Expediter so it + 'will start polling the QueueMgr + goExpediter.StartTest + End If + Exit Sub +CountInitializeError: + Select Case Err.Number + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Select Case sProgID + Case "AELogger.Logger" + Set goLogger = oInstancer.Object("AELogger.Logger") + Case "AEExpediter.Expediter" + Set goExpediter = oInstancer.Object("AEExpediter.Expediter") + End Select + Set oInstancer = Nothing + Resume Next + Case Else + If bCreatingExpediter Then gbFailedToCreateExpediter = True + LogError Err, gsNULL_SERVICE_ID + Resume Next + End Select +End Sub + +Public Sub CountTerminate() + '------------------------------------------------------------------------- + 'Purpose: Keep track of number instances of QueueMgr and Queue + ' To be called by a public creatable class in its terminate + ' event. To keep track of how many public creatable objects + ' are initialized. Terminate the QueueMgr application if + ' this is the last time called. + 'Effects: + ' Unload all objects, and unload form so that this application + ' will close + ' [glInstances] + ' decrements by one + '------------------------------------------------------------------------- + Dim oWorker As clsWorker + On Error GoTo Class_TerminateError + glInstances = glInstances - 1 + 'If already started unloading don't check + 'instance count again + If Not gbUnloading Then + If glInstances = 0 Then + gbUnloading = True + goExpediter.StopTest + For Each oWorker In gcWorkers + oWorker.Worker.ShutDown + Next + For Each oWorker In gcWorkers + Set oWorker.Worker = Nothing + Set oWorker = Nothing + Next + Set goLogger = Nothing + Set gcWorkers = Nothing + giWorkerCount = 0 + Set gcWorkerMachines = Nothing + Set goExpediter = Nothing + Set gcQueue = Nothing + Unload frmQueueMgr + End If + End If + Exit Sub +Class_TerminateError: + LogError Err, gsNULL_SERVICE_ID + Resume Next +End Sub + +Public Sub LogEvent(intMessage As Integer, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: Receives Message key which is used to look + ' up a resource string. The logrecord is sent to the + ' Logger object if gbLog is true + 'In: [intMessage] + ' A valid Resource string key for the message to be logged + ' [sServiceID] + ' Service Request ID to be logged + 'Assumption: + ' If gbLog is true then goLogger is a valid reference to + ' AELogger.Logger class object + '------------------------------------------------------------------------- + On Error GoTo LogEventError + If gbLog And Not gbStopTest Then + goLogger.Record LoadResString(giQUEUE_NAME), sServiceID, LoadResString(intMessage), GetTickCount() + End If + 'If the form is visible display log on form + #If ccShowList Then + DisplayString sServiceID & gsSEPERATOR & LoadResString(intMessage) + #End If + Exit Sub +LogEventError: + LogError Err, sServiceID + Exit Sub +End Sub + +Public Sub LogText(sMsg As String, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: Passes that passed string and ServiceID as a log record + ' to the logger + 'In: [sMsg] + ' String to be logged + ' [sServiceID] + ' Service Request ID to be logged + 'Assumption: + ' If gbLog is true then goLogger is a valid reference to + ' AELogger.Logger class object + '------------------------------------------------------------------------- + On Error GoTo LogTextError + If gbLog And Not gbStopTest Then + goLogger.Record LoadResString(giQUEUE_NAME), sServiceID, sMsg, GetTickCount() + End If + 'If the form is visible display log on form + #If ccShowList Then + DisplayString sServiceID & gsSEPERATOR & sMsg + #End If + Exit Sub +LogTextError: + LogError Err, sServiceID + Exit Sub +End Sub + +Public Sub LogError(ByVal oErr As ErrObject, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: Display error description on forms Status box if the form is + ' visible; log error if logging is on + 'In: [oErr] + ' Valid error object + ' [sServiceID] + ' Service Request ID logged with the error message + 'Assumption: + ' If gbShow is true the form is loaded and visible + ' If gbLog is true the goLogger is a valid AELogger.Logger class + ' object + '------------------------------------------------------------------------- + + Dim s As String + s = LoadResString(giERROR_PREFIX) & Str$(oErr.Number) & gsSEPERATOR & oErr.Source & gsSEPERATOR & oErr.Description + #If ccShowList Then + If Not gbShow Then + frmQueueMgr.Show + gbShow = True + End If + DisplayString s + #Else + If oErr.Number <> 0 Then DisplayStatus oErr.Description + #End If + If gbLog And glInstances <> 0 Then + goLogger.Record LoadResString(giQUEUE_NAME), sServiceID, s, GetTickCount() + End If +End Sub + +Sub DisplayStatus(s As String) + '------------------------------------------------------------------------- + 'Purpose: If gbShow is true, displays passed string on forms status box + 'Assumes: If gbShow is true, form is loaded and visible + '------------------------------------------------------------------------- + If gbShow Then AlignTextToBottom frmQueueMgr.lblStatus, s +End Sub + +Sub DisplayString(sText As String) + '------------------------------------------------------------------------- + 'Purpose: Adds the passed text to to the list box. Only used if conditional + ' compile ccShowList is true. + 'Assumes: If gbShow is true, form is visible + ' If ccShowList is true, lstLog is visible and positioned + '------------------------------------------------------------------------- + 'Controls the length of the list box + 'and sets ListIndex + #If ccShowList Then + Dim lstLog As ListBox + If gbShow Then + Set lstLog = frmQueueMgr.lstLog + If lstLog.ListCount = giLIST_BOX_MAX Then lstLog.Clear + lstLog.AddItem sText, 0 + DoEvents + End If + #End If +End Sub + +Function gFormatPath(sPath As String) As String + '------------------------------------------------------------------------- + 'Purpose: Assures that the passed path has a "\" at the end of it + 'IN: + ' [sPath] + ' a valid path name + 'Return: the same path with a "\" on the end if it did not already + ' have one. + '------------------------------------------------------------------------- + If Right$(sPath, 1) <> "\" Then + gFormatPath = sPath & "\" + Else + gFormatPath = sPath + End If +End Function + +Sub StopQueue() + '------------------------------------------------------------------------- + 'Purpose: Stops processing of Service Requests by deleging the pending + ' requests + 'Assumes: Assumes that clients have already stopped posting new requests + '------------------------------------------------------------------------- + LogEvent giSTOP_TEST_RECEIVED, gsNULL_SERVICE_ID + DisplayStatus LoadResString(giSTOP_TEST_RECEIVED) + Set gcQueue = Nothing + Set gcQueue = New Collection +End Sub + +Public Function SetWorkersOnMachine(bRemote As Boolean, sMachineName As String, lQuantityOnMachine As Long) As String + '------------------------------------------------------------------------- + 'Purpose: Sets the quantity of instanciated Workers on a particular machine + 'IN: + ' [bRemote] + ' If true adjust number of workers on a remote machine; else, + ' adjust the number on the local machine. + ' [sMachineName] + ' Name of machine to adjust the level of instanciated Workers + ' [lQuantityOnMachine] + ' Number of Instantiated Workers that should be on specified + ' machine. + 'Return: Discription of Errors that should be displayed to user + 'Effects: + ' [gcWorkers] + ' The number of Workers in this collection will be adjusted + ' [gcWorkerMachines] + ' An item may be added or removed or edited + '------------------------------------------------------------------------- + Dim oRacReg As RacReg.RegClass 'Object to set automation connection settings + Dim oWorkerMachine As clsWorkerMachines 'Object that stores how many workers are on + 'a machine, retrieved from global collection + Dim lWorkerToRemove As Long 'ID of Worker found to remove + Dim oWork As clsWorker 'clsWorker object that hold reference to a Worker + 'and information related to it + Dim oWorkerProvider As APEInterfaces.IWorkerProvider 'Server that can be instanciated on remote + 'machines to provide Worker objects + Dim lAdd As Long 'New ID for New Worker + Dim sErrors As String 'Discription of Errors that will be returned + Dim bAddingWorker As Boolean 'If true, adding and configuring worker + 'used by error handling + Dim iRetry As Integer 'Error retry counter + Dim iResult As Integer 'RacReg error code + + On Error GoTo SetWorkersOnMachineError + + 'Validate lQuantityOnMachine + If lQuantityOnMachine < 0 Then lQuantityOnMachine = 0 + + 'Set registry for local or remote machine name + Set oRacReg = New RacReg.RegClass + If bRemote Then + If gbUseDCOM Then + iResult = oRacReg.SetDCOMServerSettings(True, "AEWorkerProvider.WorkerProvider", , sMachineName) + Else + iResult = oRacReg.SetAutoServerSettings(True, "AEWorkerProvider.WorkerProvider", , sMachineName, gsProtocol, glAuthentication) + End If + Else + 'Make sure the Machine name string is zero length + sMachineName = "" + 'Make sure AEWorker.Worker is registered for local instanciation + 'Because Clients may have been run on this machine and may have + 'left the connection settings remote if they did not unload properly + iResult = oRacReg.SetAutoServerSettings(False, "AEWorker.Worker") + + End If + If iResult <> 0 Then GoTo SetWorkersOnMachine_RacRegError + + 'Get the clsWorkerMachines object to store information in + If Not bRemote Then + 'it is definitely the first item in the collection + Set oWorkerMachine = gcWorkerMachines.Item(1) + Else + 'if it is in the collection it is stored by a key + 'equaling the machine name + 'If error equals ERR_INVALID_PROCEDURE_CALL there + 'are no Workers on specified machine and no clsWorkerMachines + 'class object to represent them + On Error Resume Next + Set oWorkerMachine = gcWorkerMachines.Item(sMachineName) + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + On Error GoTo SetWorkersOnMachineError + 'Don't create a new clsWorkerMachine object of + 'lQuantityOnMachine is zero + If lQuantityOnMachine <= 0 Then Exit Function + Set oWorkerMachine = New clsWorkerMachines + 'If an error occurs creating WorkerProvider the current machine name + 'can not be used. Treat error as if a Worker can not be created on + 'paticular machine. + bAddingWorker = True + Set oWorkerMachine.WorkerProvider = CreateObject("AEWorkerProvider.WorkerProvider") + bAddingWorker = False + gcWorkerMachines.Add oWorkerMachine, sMachineName + With oWorkerMachine + .Remote = True + .MachineName = sMachineName + End With + End If + On Error GoTo SetWorkersOnMachineError + Set oWorkerProvider = oWorkerMachine.WorkerProvider + End If + + 'Now see if more workers need destroyed on this machine + With oWorkerMachine + If .WorkerKeys.Count > lQuantityOnMachine Then + Do Until .WorkerKeys.Count <= lQuantityOnMachine + 'Find a worker on this machine + lWorkerToRemove = .WorkerKeys(.WorkerKeys.Count) + .WorkerKeys.Remove .WorkerKeys.Count + 'Remove the found worker + 'Do not destroy the Worker if it is busy + 'instead just flip its RemoveMe flag + giWorkerCount = giWorkerCount - 1 + If gcWorkers.Item(CStr(lWorkerToRemove)).Busy Then + gcWorkers.Item(CStr(lWorkerToRemove)).RemoveMe = True + Else + iRetry = 0 + Set oWork = gcWorkers.Item(CStr(lWorkerToRemove)) + oWork.Worker.ShutDown + Set gcWorkers.Item(CStr(lWorkerToRemove)).Worker = Nothing + gcWorkers.Remove CStr(lWorkerToRemove) + End If + Loop + Else + 'Else lQuantityOnMachine must be greater than .WorkerKeys.count + 'So add to the collection + bAddingWorker = True + Do Until .WorkerKeys.Count = lQuantityOnMachine + 'Choose a unique key + lAdd = GetUniqueID + Set oWork = New clsWorker + oWork.Busy = False + 'Get a new Worker object + If bRemote Then + Set oWork.Worker = oWorkerProvider.GetWorker + Else + Set oWork.Worker = CreateObject("AEWorker.Worker") + End If + 'Set the WorkerID property of AEWorker.Worker + 'Set the new worker property to the properties + 'that have been set for the any other workers + iRetry = 0 + oWork.Worker.SetProperties gbLogWorkers, gbEarlyBindServices, _ + gbPersistentServices, lAdd + 'Add the clsWorker class object which holds a + 'reference to the Worker class object to gcWorkers collection + 'Use the WorkerID as the key + .WorkerKeys.Add lAdd + gcWorkers.Add oWork, CStr(lAdd) + giWorkerCount = giWorkerCount + 1 + iRetry = 0 + Set oWork.Worker.QueueMgrRef = New clsQueueDelegator + oWork.Worker.StartPollingQueue + Loop + bAddingWorker = False + End If + End With +SetWorkersOnMachineEnd: + 'Update the WorkerCount label in the U/I + 'Set connection settings back to local + iResult = oRacReg.SetAutoServerSettings(False, "AEWorkerProvider.WorkerProvider") + If iResult <> 0 Then GoTo SetWorkersOnMachine_RacRegError + + If gbShow Then + With frmQueueMgr.lblWorkerCount + .Caption = gcWorkers.Count + .Refresh + End With + End If + + 'If the WorkerKeys.count = 0 and bRemote is true + 'then the clsWorkerMachines class + 'object in gcWorkerMachines should be removed + 'Don't remove the clsWorkerMachines object representing the + 'local machine. Index one is reserved for the local machine. + If oWorkerMachine.WorkerKeys.Count = 0 And bRemote Then + On Error Resume Next + gcWorkerMachines.Remove sMachineName + End If + SetWorkersOnMachine = sErrors + Exit Function + +SetWorkersOnMachine_RacRegError: + Err.Raise giCONNECTION_SETTING_FAILED + +SetWorkersOnMachineError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check for stop test + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + LogEvent giCALL_REJECTED_RETRY, gsNULL_SERVICE_ID + Resume + Else + 'We reached our max retries + GoTo SetWorkersOnMachineUnexpectedError + End If + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set oWorkerProvider = oInstancer.Object("AEWorkerProvider.WorkerProvider") + Set oInstancer = Nothing + Resume Next + Case RPC_S_UNKNOWN_AUTHN_TYPE + 'Tried to connect to a server that does not support + 'specified authentication level. Display message and + 'switch to no authentication and try again + Dim s As String + s = sMachineName & gsSEPERATOR & LoadResString(giUSING_NO_AUTHENTICATION) + LogText s, gsNULL_SERVICE_ID + sErrors = s & vbCrLf + iResult = oRacReg.SetAutoServerSettings(True, "AEWorkerProvider.WorkerProvider", , sMachineName, gsProtocol, glAUTHENTICATION_DEFAULT) + Resume + Case giCONNECTION_SETTING_FAILED + sErrors = ReplaceString(LoadResString(giCONNECTION_SETTING_FAILED), gsNAME_TOKEN, LoadResString(giRACREG_ERROR_CODE_OFFSET + iResult)) + Err.Raise giNO_WORKERS_CREATED, , sErrors & vbCrLf & LoadResString(giNO_WORKERS_CREATED) + Case Else +SetWorkersOnMachineUnexpectedError: + 'There are three cases to respond to if there is an unexpected error + '1- If the error occured while NOT adding a worker it most likely + ' occured while removing one. Resume Next to insure that the worker + ' is removed from the workers collection. + '2- If we were adding a worker and the worker class was registered local + ' log the error, and add it to the sError string, but raise the + ' giNO_WORKERS_CREATED error, because the system has a critical problem + ' if a local worker can not be created. + '3- If we were adding a worker and the worker class was registered remote + ' log the error, and add it to the sError string. Exit procedure so + ' that calling procedure can try creating workers on another machine + Dim sSource As String + sSource = Err.Source + sErrors = sErrors & sMachineName & gsSEPERATOR & sSource & gsSEPERATOR & Err.Description & vbCrLf + LogError Err, gsNULL_SERVICE_ID + If Not bAddingWorker Then + Resume Next + Else + If bRemote Then + sErrors = sErrors & vbCrLf & ReplaceString(LoadResString(giCOULD_NOT_CREATE_WORKER_ON_MACHINE), gsNAME_TOKEN, sMachineName) + Resume SetWorkersOnMachineEnd + Else + iResult = oRacReg.SetAutoServerSettings(False, "AEWorkerProvider.WorkerProvider") + sErrors = sErrors & vbCrLf & LoadResString(giCOULD_NOT_CREATE_LOCAL_WORKER) + Err.Raise giNO_WORKERS_CREATED, sSource, sErrors & vbCrLf & LoadResString(giNO_WORKERS_CREATED) + End If + End If + End Select +End Function + +Private Function GetUniqueID() As Long +' Returns a unique Long value on each call + Static lID As Long + lID = lID + 1 + GetUniqueID = lID +End Function diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QMANAGER.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QMANAGER.ICO new file mode 100644 index 0000000..d21f3d7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QMANAGER.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QUEUE.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QUEUE.CLS new file mode 100644 index 0000000..ae00f8d --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QUEUE.CLS @@ -0,0 +1,284 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "Queue" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Job Manager" +Option Explicit +'------------------------------------------------------------------------- +'The Class is public, creatable, multi-use. It is provide as an OLE interface +'for the Client applications to call, adding Service Requests to the Queue +' It implements the IQueue interface +'------------------------------------------------------------------------- + +Implements APEInterfaces.IQueue + +Public Enum APECallbackNotificationConstants + apeCallbackModeNone = giNO_CALLBACK + apeCallbackModeRegisterEveryRequest = giUSE_PASSED_CALLBACK + apeCallbackModeRegisterOnce = giUSE_DEFAULT_CALLBACK + apeCallbackModeUseRaiseEvent = giRETURN_BY_SYNC_EVENT +End Enum + +Private moDefaultCallback As APEInterfaces.IClientCallback 'See DefaultCallback property comments +Private moEventObject As Object +Private mbHaveEventObject As Boolean + +'****************** +'Public Properties +'****************** + +Public Property Set IQueue_DefaultCallBack(ByVal oCallback As APEInterfaces.IClientCallback) +Attribute IQueue_DefaultCallBack.VB_Description = "Set the callback object to use when apeCallbackModeRegisterOnce is passed to the Add method as the callback mode." + '------------------------------------------------------------------------- + 'Purpose: The property allows a client to set a default + ' callback specific to the Queue class object + ' that is referenced by the client. By setting + ' this property a client can omit the CallBack parameter + ' of the Queue.Add method and QueueMgr will use + ' the default callback if a call back is required + 'In: + ' [oCallback] + ' Must be a valid callback object having a callback method + 'Effects: + ' [moDefaultCallback] + ' Class level variable is set equal to the passed object + '------------------------------------------------------------------------- + + If oCallback Is Nothing Then Err.Raise giINVALID_CALLBACK + vbObjectError, Err.Source, LoadResString(giINVALID_CALLBACK) + Set moDefaultCallback = oCallback +End Property + +Public Property Get IQueue_DefaultCallBack() As APEInterfaces.IClientCallback + Set IQueue_DefaultCallBack = moDefaultCallback + +End Property + +'***************** +'Public Methods +'***************** + +Private Function IQueue_Add(ByVal sCommand As String, ByVal sServiceID As String, _ + ByVal iCallBackMode As APEInterfaces.APECallbackNotificationConstants, Optional ByVal vData As Variant, _ + Optional ByVal CallBack As APEInterfaces.IClientCallback) As Boolean + '------------------------------------------------------------------------- + 'Purpose: Called by client Applications to add a Service request to the + ' Queue. + 'IN: + ' [sCommand] + ' The string that will be given to a worker with the passed data + ' The worker uses this string to determine what OLE Server to + ' use as a Service provider. Part of the string is passed to the + ' Service provider from the Worker. + ' [sServiceID] + ' An ID that identifies the service request + ' [iCallBackMode] + ' Defines if and how data is returned to client calling this function + ' [vData] + ' (Optional) Variant data that will be given to the Worker also. + ' The Worker and the QueueMgr do not know what type of data this is + ' The Worker will just pass it the the Service provider + ' [Callback] + ' (Optional) Callback object. If present, it will be immediately passed + ' to the Expediter. The expediter will use it to callback + ' delivering results that the Worker gives to it + 'Return: True if the Service request was processed + ' else returns false. + 'Effects: + ' The Expediter will get called if a Callback is passed or bUseDefaultCallback + ' is true + ' [gbBusyAdding] + ' is true during this procedure + ' [gcQueue] + ' will get a clsService class object, storing the Service request + ' information. + 'Assumptions: + ' [gcQueue] + ' Is a valid collection object + '------------------------------------------------------------------------- + Dim oService As clsService 'clsService class object which is filled + 'with Service request data and added to collection + Dim bDataPresent As Boolean 'Flag that data is present + Dim oCallback As APEInterfaces.IClientCallback 'Callback object that will be passed to Expediter + + Dim lCount As Long 'gcQueue.count + + On Error GoTo AddError + + IQueue_Add = False + + 'Exit sub if Stopping Queue + If gbStopTest Then Exit Function + + gbBusyAdding = True + 'Check if the QueueMgr is too busy to process request + If gcQueue.Count >= glMaxQueueSize Then Err.Raise giQUEUE_MGR_IS_BUSY + 'Check if data was passed + If IsMissing(vData) Then bDataPresent = False Else bDataPresent = True + 'Validate that the Expediter was created successfully + If iCallBackMode <> giNO_CALLBACK Then + If gbFailedToCreateExpediter Then Err.Raise giCOULD_NOT_CREATE_EXPEDITER + End If + 'Validate callback object + Select Case iCallBackMode + Case giUSE_PASSED_CALLBACK + If CallBack Is Nothing Then + Err.Raise giINVALID_CALLBACK + Else + Set oCallback = CallBack + End If + Case giUSE_DEFAULT_CALLBACK + If moDefaultCallback Is Nothing Then + Err.Raise giINVALID_CALLBACK + Else + Set oCallback = moDefaultCallback + End If + Case giRETURN_BY_SYNC_EVENT + If Not mbHaveEventObject Then Err.Raise giFIRST_GET_WITHEVENTS_OBJECT + End Select + + 'Iterate count of this method call + glAddCallCount = glAddCallCount + 1 + + 'Update U/I if form is visible + If gbShow Then frmQueueMgr.lblCount = glAddCallCount + + Set oService = New clsService + + LogEvent giADD_RECEIVED, sServiceID + + 'Create the put the Service request values + 'in the clsService object + With oService + .ID = sServiceID + .Command = sCommand + .CallBackMode = iCallBackMode + Select Case iCallBackMode + Case giUSE_PASSED_CALLBACK, giUSE_DEFAULT_CALLBACK + Set .CallBack = oCallback + Case giRETURN_BY_SYNC_EVENT + Set .EventObject = moEventObject + End Select + .DataPresent = bDataPresent + 'Check what data type vData return is + 'in order to determine how to handle it + If bDataPresent Then + Select Case VarType(vData) + Case vbEmpty, vbNull + .Data = Null + Case vbObject, vbError, vbDataObject + Set .Data = vData + Case Else + .Data = vData + End Select + End If + End With + 'Add oService to Queue using ID as Key + gcQueue.Add oService, sServiceID + + 'Display stats + lCount = gcQueue.Count + If gbShow Then frmQueueMgr.lblQueue = lCount + If lCount > glPeakQueueSize Then + glPeakQueueSize = lCount + If gbShow Then frmQueueMgr.lblPeak = glPeakQueueSize + End If + + If gbStopTest And Not gbBusyGetServiceRequest And Not gbBusyGetServiceResults Then StopQueue + + 'Flip the status flag right before the calling client is released + 'A worker should not be allowed to take an activity request + 'until the client is released. This keeps the the expediter + 'from calling the client with Service results before the client + 'is released with the return value, the Service ID + oService.Status = giWAITING_FOR_WORKER + Set oService = Nothing + gbBusyAdding = False + + IQueue_Add = True + + Exit Function +AddError: + Select Case Err.Number + Case giQUEUE_MGR_IS_BUSY + gbBusyAdding = False + Err.Raise Err.Number + vbObjectError, Err.Source, LoadResString(Err.Number) + Exit Function + Case Is > giERROR_THRESHOLD + LogError Err, gsNULL_SERVICE_ID + gbBusyAdding = False + Err.Raise Err.Number + vbObjectError, Err.Source, LoadResString(Err.Number) + Exit Function + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim iRetry As Integer + Dim il As Integer + Dim ir As Integer + 'First check for stop test + If gbStopTest And Not gbBusyGetServiceRequest Then StopQueue: Exit Function + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + LogEvent giCALL_REJECTED_RETRY, sServiceID + Resume + Else + 'We reached our max retries + LogError Err, sServiceID + gbBusyAdding = False + Err.Raise Err.Number, Err.Source, Err.Description + End If + Case giCOULD_NOT_CREATE_EXPEDITER + LogError Err, sServiceID + gbBusyAdding = False + Err.Raise giCOULD_NOT_CREATE_EXPEDITER + vbObjectError, Err.Source, LoadResString(giCOULD_NOT_CREATE_EXPEDITER) + Case giFIRST_GET_WITHEVENTS_OBJECT + LogError Err, sServiceID + gbBusyAdding = False + Err.Raise giFIRST_GET_WITHEVENTS_OBJECT + vbObjectError, Err.Source, LoadResString(giFIRST_GET_WITHEVENTS_OBJECT) + Case giINVALID_CALLBACK + LogError Err, sServiceID + gbBusyAdding = False + Err.Raise giINVALID_CALLBACK + vbObjectError, Err.Source, LoadResString(giINVALID_CALLBACK) + Case ERR_OVER_FLOW + LogError Err, sServiceID + If glAddCallCount = glMAX_ID Then glAddCallCount = 0 + Resume + Case Else + LogError Err, sServiceID + gbBusyAdding = False + Err.Raise Err.Number, Err.Source, Err.Description + Exit Function + End Select +End Function + +Public Function IQueue_GetEventObject() As Object +Attribute IQueue_GetEventObject.VB_Description = "Returns the event source object that a client must respond to when apeCallbackModeUseRaiseEvent is passed to the Add method as the callback mode." + If Not mbHaveEventObject Then + Set moEventObject = goExpediter.GetEventObject + mbHaveEventObject = True + End If + Set IQueue_GetEventObject = moEventObject +End Function + +'******************* +'Private methods +'******************* + +Private Sub Class_Initialize() + CountInitialize +End Sub + +Private Sub Class_Terminate() + CountTerminate +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QUEUEMGR.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QUEUEMGR.CLS new file mode 100644 index 0000000..3530097 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEQUEUE/QUEUEMGR.CLS @@ -0,0 +1,723 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "QueueMgr" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Job Manager" +Option Explicit +'------------------------------------------------------------------------- +'This public multi-use class provides the OLE interface for the APE Manager +'or another application designed to be the Manager +' It implements the IQueueManager interface +'------------------------------------------------------------------------- + +Implements APEInterfaces.IQueueManager + +'*********************** +'Public Properties +'*********************** +Private Property Get IQueueManager_IsIdle() As Boolean + '------------------------------------------------------------------------- + 'Purpose: Returns True if the Queue is idle. + '------------------------------------------------------------------------- + If gcQueue.Count = 0 Then + Dim oWorker As clsWorker + IQueueManager_IsIdle = True + For Each oWorker In gcWorkers + If oWorker.Busy Then + IQueueManager_IsIdle = False + Exit For + End If + Next + Else + IQueueManager_IsIdle = False + End If +End Property + +Public Property Let IQueueManager_MaxQueueSize(ByVal lMax As Long) +Attribute IQueueManager_MaxQueueSize.VB_Description = "Sets or returns the value that controls the size of the Queue that causes Service Requests to be rejected." + '------------------------------------------------------------------------- + 'Purpose: MaxQueueSize property determines the maximum amount + ' of ServiceRequests that will be allowed to back up + 'Effects: [glMax] becomes value of parameter + '------------------------------------------------------------------------- + glMaxQueueSize = lMax +End Property + +Public Property Get IQueueManager_MaxQueueSize() As Long + IQueueManager_MaxQueueSize = glMaxQueueSize +End Property + +Public Property Let IQueueManager_ShowQueue(ByVal bShow As Boolean) +Attribute IQueueManager_ShowQueue.VB_Description = "Determines whether the AEQueueMgr shows a form." + '------------------------------------------------------------------------- + 'Purpose: Show property determines whether or not a form + ' is displayed while QueueMgr is loaded + 'Effects: [gbShow] becomes value of parameter + ' If parameter is true frmQueueMgr is show, else form + ' is Unloaded. + '------------------------------------------------------------------------- + If Not gbShow = bShow Then + gbShow = bShow + If bShow Then + With frmQueueMgr + .Show + .lblCount.Caption = glAddCallCount + .lblPeak.Caption = glPeakQueueSize + .lblQueue.Caption = gcQueue.Count + .lblWorkerCount.Caption = gcWorkers.Count + End With + Else + Unload frmQueueMgr + End If + End If + +End Property + +Public Property Get IQueueManager_ShowQueue() As Boolean + IQueueManager_ShowQueue = gbShow +End Property + +Public Property Let IQueueManager_LogQueue(ByVal bLog As Boolean) +Attribute IQueueManager_LogQueue.VB_Description = "Determines if the AEQueueMgr logs its events and errors to the AELogger.Logger object." + '------------------------------------------------------------------------- + 'Purpose: If log is true create logger class object and log Services + 'Effects: [gbLog] becomes value of parameter + ' [goLogger] is set to a new AELogger.Logger object if parameter + ' is true. If false goLogger is destroyed + '------------------------------------------------------------------------- + On Error GoTo LogQueueError + If Not gbLog = bLog Then + gbLog = bLog + If bLog Then + Set goLogger = CreateObject("AELogger.Logger") + Else + Set goLogger = Nothing + End If + End If + Exit Property +LogQueueError: + Select Case Err.Number + Case ERR_CANT_FIND_KEY_IN_REGISTRY + 'AEInstancer.Instancer is a work around for error + '-2147221166 which occurrs every time a client + 'object creates an instance of a remote server, + 'destroys it, registers it local, and tries to + 'create a local instance. The client can not + 'create an object registered locally after it created + 'an instance while it was registered remotely + 'until it shuts down and restarts. Therefore, + 'it works to call another process to create the + 'local instance and pass it back. + Dim oInstancer As APEInterfaces.IInstancer + Set oInstancer = CreateObject("AEInstancer.Instancer") + Set goLogger = oInstancer.Object("AELogger.Logger") + Set oInstancer = Nothing + Resume Next + Case Else + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Property + +Public Property Get IQueueManager_LogQueue() As Boolean + IQueueManager_LogQueue = gbLog +End Property + +'******************** +'Worker Properties +'******************** +Public Property Let IQueueManager_LogWorkers(ByVal bLog As Boolean) +Attribute IQueueManager_LogWorkers.VB_Description = "Sets the value that is used to set the Log property of AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the Log property of all the Workers + 'Effects: + ' [gbLogWorkers] + ' becomes equal to the passed parameter + 'Assumes: There is a collection of one or more valid Worker objects + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to all the Workers + Dim oWork As clsWorker + If Not bLog = gbLogWorkers Then + For Each oWork In gcWorkers + oWork.Worker.Log = bLog + Next oWork + gbLogWorkers = bLog + End If +End Property + +Public Property Get IQueueManager_LogWorkers() As Boolean + IQueueManager_LogWorkers = gbLogWorkers +End Property + +Public Property Let IQueueManager_PersistentServices(ByVal bPersistent As Boolean) +Attribute IQueueManager_PersistentServices.VB_Description = "Sets the value that is used to set the PersistentServices property of AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the PersistentServices property of all the Workers + 'Effects: + ' [gbPersistentServices] + ' becomes equal to the passed parameter + 'Assumes: There is a collection of one or more valid Worker objects + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to all the Workers + Dim oWork As clsWorker + If Not bPersistent = gbPersistentServices Then + For Each oWork In gcWorkers + oWork.Worker.PersistentServices = bPersistent + Next oWork + gbPersistentServices = bPersistent + End If +End Property + +Public Property Get IQueueManager_PersistentServices() As Boolean + IQueueManager_PersistentServices = gbPersistentServices +End Property + +Public Property Let IQueueManager_EarlyBindServices(ByVal bEarlyBind As Boolean) +Attribute IQueueManager_EarlyBindServices.VB_Description = "Sets the value that is used to set the EarlyBindServices property of AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the EarlyBindServices property of all the Workers + 'Effects: + ' [gbEarlyBindServices] + ' becomes equal to the passed parameter + 'Assumes: There is a collection of one or more valid Worker objects + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to all the Workers + Dim oWork As clsWorker + If Not bEarlyBind = gbEarlyBindServices Then + For Each oWork In gcWorkers + oWork.Worker.EarlyBindServices = bEarlyBind + Next oWork + gbEarlyBindServices = bEarlyBind + End If +End Property + +Public Property Get IQueueManager_EarlyBindServices() As Boolean + IQueueManager_EarlyBindServices = gbEarlyBindServices +End Property + +'******************** +'Expediter Properties +'******************** + +Public Property Let IQueueManager_ShowExpediter(ByVal bShow As Boolean) +Attribute IQueueManager_ShowExpediter.VB_Description = "Sets the Show property of the AEExpediter.Expediter object." + '------------------------------------------------------------------------- + 'Purpose: To set the Show property of the Expediter + 'Effects: + ' [gbShowExpediter] + ' becomes equal to the passed parameter + 'Assumes: + ' [goExpediter] + ' Is a valid AEExpediter.Expediter object + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to the expediter + If Not bShow = gbShowExpediter Then + goExpediter.Show = bShow + gbShowExpediter = bShow + End If +End Property + +Public Property Get IQueueManager_ShowExpediter() As Boolean + IQueueManager_ShowExpediter = gbShowExpediter +End Property + +Public Property Let IQueueManager_LogExpediter(ByVal bLog As Boolean) +Attribute IQueueManager_LogExpediter.VB_Description = "Set the Log property of the AEExpediter.Expediter object." + '------------------------------------------------------------------------- + 'Purpose: To set the Log property of the Expediter + 'Effects: + ' [gbLogExpediter] + ' becomes equal to the passed parameter + 'Assumes: + ' [goExpediter] + ' Is a valid AEExpediter.Expediter object + '------------------------------------------------------------------------- + 'If the property setting actually + 'changes the current property pass + 'the property change to the expediter + If Not bLog = gbLogExpediter Then + goExpediter.Log = bLog + gbLogExpediter = bLog + End If +End Property + +Public Property Get IQueueManager_LogExpediter() As Boolean + IQueueManager_LogExpediter = gbLogExpediter +End Property + +'**************************** +'Public Methods +'**************************** + +Public Sub IQueueManager_SetProperties(ByVal bShow As Boolean, Optional ByVal bLog As Variant) +Attribute IQueueManager_SetProperties.VB_Description = "Sets all of the AEQueueMgr.QueueMgr related properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the QueueMgr properties in one method call + 'Effects: Sets the following properties to parameter values + ' ShowQueue, LogQueue, WorkerQuantity + '------------------------------------------------------------------------- + With Me + .IQueueManager_ShowQueue = bShow + If Not IsMissing(bLog) Then .IQueueManager_LogQueue = bLog + End With +End Sub + +Public Sub IQueueManager_SetWorkerProperties(ByVal bLog As Boolean, Optional ByVal bEarlyBindServices As Variant, _ + Optional ByVal bPersistentServices As Variant) +Attribute IQueueManager_SetWorkerProperties.VB_Description = "Sets all of the AEWorker.Worker related properties on one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the Worker properties in one method call + 'Effects: Sets the following properties to parameter values + ' ShowWorkers, LogWorkers, EarlyBindServices, PersistentServices + '------------------------------------------------------------------------- + Dim oWork As clsWorker + gbLogWorkers = bLog + If Not IsMissing(bEarlyBindServices) Then gbEarlyBindServices = bEarlyBindServices + If Not IsMissing(bPersistentServices) Then IQueueManager_PersistentServices = bPersistentServices + For Each oWork In gcWorkers + oWork.Worker.SetProperties gbLogWorkers, gbEarlyBindServices, gbPersistentServices + Next oWork +End Sub + +Public Sub IQueueManager_SetExpediterProperties(ByVal bShow As Boolean, Optional ByVal bLog As Variant) +Attribute IQueueManager_SetExpediterProperties.VB_Description = "Sets all of the AEExpediter.Expediter related properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: To set the Expediter properties in one method call + 'Effects: Sets the following properties to parameter values + ' ShowExpediter, LogExpediter + '------------------------------------------------------------------------- + gbShowExpediter = bShow + If Not IsMissing(bLog) Then gbLogExpediter = bLog + goExpediter.SetProperties gbShowExpediter, gbLogExpediter + +End Sub + +Public Sub IQueueManager_SetConnectionProperties(ByVal bUseDCOM As Boolean, Optional ByVal sProtocol As Variant, _ + Optional ByVal lAuthentication As Variant) +Attribute IQueueManager_SetConnectionProperties.VB_Description = "Sets the connection parameters to be used when creating remote AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: To set the Connection Settings that the QueueMgr will use + ' to connect to remote Workers + 'In: + ' [bUseDCOM] + ' If true workers will be created using DCOM instead of + ' Remote Automation. + ' [sProtocol] + ' Protocol sequence to use when connecting to remote objects + ' [lAuthentication] + ' Authentication level to use + 'Effects: + ' [gbUseDCOM] + ' becomes equal to bUseDCOM parameter + ' [gsProtocol] + ' becomes equal to sProtocol parameter + ' [glAuthentication] + ' becomes equal to lAuthentication parameter + '------------------------------------------------------------------------- + Dim iVarType As Integer 'Variant type code of lAuthentication + gbUseDCOM = bUseDCOM + If Not IsMissing(sProtocol) Then + If VarType(sProtocol) = vbString Then gsProtocol = sProtocol + End If + If Not IsMissing(lAuthentication) Then + iVarType = VarType(lAuthentication) + If iVarType = vbLong Or iVarType = vbInteger Or iVarType = vbDouble Or iVarType = vbSingle Then + glAuthentication = lAuthentication + End If + End If +End Sub + +Public Function IQueueManager_CreateWorkers(ByVal bRemoteWorkers As Boolean, Optional ByVal lWorkerQuantity As Variant, _ + Optional ByVal lWorkersPerMachine As Variant, Optional ByVal vaMachineList As Variant, _ + Optional ByVal bUseLocalMachine As Variant) As String +Attribute IQueueManager_CreateWorkers.VB_Description = "Creates AEWorker.Worker objects. Returns a string that describes any errors that occurred." + '------------------------------------------------------------------------- + 'Purpose: Sets the settings for remote workers. These settings provide + ' The QueueMgr the information needed to create Workers on several + ' remote machines rather than just the local one. + 'IN: + ' [bRemoteWorkers] + ' If true, the QueueMgr will create Workers on remote machines. + ' If false, the QueueMgr will only create Workers on the local machine. + ' [lWorkerQuantity] + ' The total number of Workers to be created. + ' [lWorkersPerMachine] + ' A variant long specifing the maximum allowed number of Workers + ' to create on a single machine. + ' [vaMachineList] + ' A string array, providing the list of machine names + ' to create the workers on. If this is not a valid + ' array of strings it will be treated like no machine + ' names were specified + ' [bUseLocalMachine] + ' If true, include local machine in list of remote machine names + 'Return: String to display to user and print to log file. Will contain + ' any error information and the total number of workers created + '------------------------------------------------------------------------- + + Static stbUseDCOM As Boolean 'Last DCom automation setting used + Static stsProtocol As String 'Last Automation protocol setting used + Static stlAuthentication As Long 'Last Automation Authentication setting used + Dim sResult As String 'Result of SetWorkersOnMachine function + Dim sErrors As String 'String with error descriptions to return for + 'display to user + Dim oWorkerMachine As clsWorkerMachines 'Object in gcWorkerMachines collection + 'that stores how many workers are instanciated + 'on a particular machine + Dim lUB As Long 'Ubound of passed array + Dim bListExists As Boolean 'True if a array of machine names exists + Dim bInList As Boolean 'If true the Machine Name is in the passed array + Dim i As Integer 'For...Next loop counter + Dim lAdd As Long 'Number of Workers to add on machine + Dim lNumOnMach As Long 'Number of workers on a machine + Dim iVarType As Integer 'Variant data type of a parameter + + On Error GoTo CreateWorkersError + + 'Validate the parameters + 'validate lWorkerQuantity + iVarType = VarType(lWorkerQuantity) + If Not (iVarType = vbLong Or iVarType = vbInteger Or iVarType = vbSingle Or iVarType = vbDouble) Then + Err.Raise giINVALID_PARAMETER, , LoadResString(giINVALID_PARAMETER) + ElseIf lWorkerQuantity <= 0 Then + 'Make sure at least one worker is created + lWorkerQuantity = 1 + End If + If bRemoteWorkers Then + 'validate vaMachineList + iVarType = VarType(vaMachineList) + If (iVarType = vbArray + vbString) Or (iVarType = vbArray + vbVariant) Then + On Error Resume Next + lUB = UBound(vaMachineList) + If Err.Number <> ERR_SUBSCRIPT_OUT_OF_RANGE Then + bListExists = True + End If + On Error GoTo CreateWorkersError + End If + 'validate lworkerspermachine + iVarType = VarType(lWorkersPerMachine) + If Not (iVarType = vbLong Or iVarType = vbInteger Or iVarType = vbSingle Or iVarType = vbDouble) Then + Err.Raise giINVALID_PARAMETER, , LoadResString(giINVALID_PARAMETER) + ElseIf lWorkersPerMachine <= 0 Then + lWorkersPerMachine = 1 + End If + 'validate bUseLocalMachine + On Error Resume Next + bUseLocalMachine = CBool(bUseLocalMachine) + If Err.Number = ERR_TYPE_MISMATCH Then + On Error GoTo CreateWorkersError + Err.Raise giINVALID_PARAMETER, , LoadResString(giINVALID_PARAMETER) + Else + On Error GoTo CreateWorkersError + End If + End If + + 'First destroy all workers that can not be used any more + 'If connection settings have been changed or if bRemoteWorkers + 'is false all Workers on remote machines must be destroyed + If (Not bRemoteWorkers) Or (stbUseDCOM <> gbUseDCOM) Or (stsProtocol <> gsProtocol) Or (stlAuthentication <> glAuthentication) Then + 'Reset the Last Connection setting static variables + stbUseDCOM = gbUseDCOM + stsProtocol = gsProtocol + stlAuthentication = glAuthentication + 'Destroy all remote Workers + For Each oWorkerMachine In gcWorkerMachines + If oWorkerMachine.Remote Then + sResult = SetWorkersOnMachine(True, oWorkerMachine.MachineName, 0) + sErrors = sErrors & sResult + End If + Next + Else + 'If we did not destroy all workers on remote machines + 'destroy workers that are on machines that are not + 'in the passed list of remote worker machines + + 'Check if the machine names currently in gcWorkerMachines + 'are in the passed array + For Each oWorkerMachine In gcWorkerMachines + If oWorkerMachine.Remote Then + bInList = False + If bListExists Then + For i = 0 To lUB + If vaMachineList(i) = oWorkerMachine.MachineName Then + bInList = True + Exit For + End If + Next + End If + If Not bInList Then + sResult = SetWorkersOnMachine(True, oWorkerMachine.MachineName, 0) + sErrors = sErrors & sResult + End If + End If + Next + End If + + 'See if Workers on local machine need destroyed + If bRemoteWorkers Then + If Not bUseLocalMachine Then + sResult = SetWorkersOnMachine(False, "", 0) + sErrors = sErrors & sResult + End If + End If + + 'Create Workers + If Not bRemoteWorkers Then + 'Just create all workers on local machine + sResult = SetWorkersOnMachine(False, "", CLng(lWorkerQuantity)) + sErrors = sErrors & sResult + Else + 'Now loop through machine name list and add workers + 'to each machine until giWorkerCount equals + 'lWorkerQuantity or the end of the machine list is + 'reached + If giWorkerCount <= lWorkerQuantity Then + 'First create workers on local machine + If bUseLocalMachine Then + 'Get the number of workers currently on this machine + lNumOnMach = gcWorkerMachines.Item(1).WorkerKeys.Count + 'Set number of Workers to be on current machine + lAdd = lWorkersPerMachine + If lAdd > (lWorkerQuantity + lNumOnMach) - giWorkerCount Then lAdd = (lWorkerQuantity + lNumOnMach) - giWorkerCount + sResult = SetWorkersOnMachine(False, "", lAdd) + sErrors = sErrors & sResult + End If + + If bListExists Then + Do Until (i > lUB Or giWorkerCount = lWorkerQuantity) + On Error Resume Next + 'Get the number of workers currently on this machine + Set oWorkerMachine = gcWorkerMachines.Item(vaMachineList(i)) + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + lNumOnMach = 0 + Else + lNumOnMach = oWorkerMachine.WorkerKeys.Count + End If + On Error GoTo CreateWorkersError + 'Set number of Workers to be on current machine + lAdd = lWorkersPerMachine + If lAdd > (lWorkerQuantity + lNumOnMach) - giWorkerCount Then lAdd = (lWorkerQuantity + lNumOnMach) - giWorkerCount + sResult = SetWorkersOnMachine(True, CStr(vaMachineList(i)), lAdd) + sErrors = sErrors & sResult + i = i + 1 + Loop + End If + Else + 'There may be too many workers, so destroy workers to + 'make the right count + If bListExists Then + i = lUB + Do While i >= 0 + On Error Resume Next + 'Get the number of workers currently on this machine + Set oWorkerMachine = gcWorkerMachines.Item(vaMachineList(i)) + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + lNumOnMach = 0 + Else + lNumOnMach = oWorkerMachine.WorkerKeys.Count + End If + On Error GoTo CreateWorkersError + If lNumOnMach > 0 Then + lAdd = 0 + If lNumOnMach > (giWorkerCount - lWorkerQuantity) Then lAdd = lNumOnMach - (giWorkerCount - lWorkerQuantity) + sResult = SetWorkersOnMachine(True, CStr(vaMachineList(i)), lAdd) + sErrors = sErrors & sResult + End If + i = i - 1 + Loop + End If + + 'if there are still too many workers + 'reduce the number of workers on the local machine + If giWorkerCount > lWorkerQuantity Then + lNumOnMach = gcWorkerMachines.Item(1).WorkerKeys.Count + lAdd = 0 + If lNumOnMach > (giWorkerCount - lWorkerQuantity) Then lAdd = lNumOnMach - (giWorkerCount - lWorkerQuantity) + sResult = SetWorkersOnMachine(False, "", lAdd) + sErrors = sErrors & sResult + End If + End If + End If + + 'Check if any workers were created and raise error if none were created + If giWorkerCount < lWorkerQuantity Then + If giWorkerCount = 0 Then + Err.Raise giNO_WORKERS_CREATED, , sErrors & vbCrLf & LoadResString(giNO_WORKERS_CREATED) + Else + sErrors = sErrors & vbCrLf & ReplaceString(LoadResString(giONLY_N_WORKERS_CREATED), gsNUMBER_TOKEN, CStr(giWorkerCount)) + End If + Else + sErrors = sErrors & vbCrLf & LoadResString(giALL_WORKERS_CREATED) + End If + + IQueueManager_CreateWorkers = sErrors + Exit Function +CreateWorkersError: + Select Case Err.Number + Case Is > giERROR_THRESHOLD + Err.Raise Err.Number + vbObjectError, Err.Source, Err.Description + Case Else + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Function + +Public Function IQueueManager_GetRemoteLoggerCollection() As Collection +Attribute IQueueManager_GetRemoteLoggerCollection.VB_Description = "Returns a collection of remote AELogger.Logger objects that were created by remote AEWorker.Worker objects." + '------------------------------------------------------------------------- + 'Purpose: Returnse the collection of loggers created on the same + ' machines as remote Workers + 'Assumes: + ' [gcWorkerMachines] + ' a valid collection of clsWorkerMachines object + ' [clsWorkerMachines] + ' If .Remote is true .WorkerKeys.Count is > 0 + '------------------------------------------------------------------------- + Dim cRemoteLoggers As Collection 'Collection to return + Dim oWorkerMachine As clsWorkerMachines 'Object representing each Worker machine + Dim oLogger As APEInterfaces.ILogger 'Valid logger object or nothing + + Set cRemoteLoggers = New Collection + + For Each oWorkerMachine In gcWorkerMachines + With oWorkerMachine + If .Remote Then + Dim oWork As clsWorker + Set oWork = gcWorkers.Item(CStr(.WorkerKeys(1))) + Set oLogger = oWork.Worker.GetLogger + If Not oLogger Is Nothing Then + cRemoteLoggers.Add oLogger + End If + End If + End With + Next + + If cRemoteLoggers.Count = 0 Then Set cRemoteLoggers = Nothing + Set IQueueManager_GetRemoteLoggerCollection = cRemoteLoggers +End Function + +Public Sub IQueueManager_LoadServiceObject(ByVal ServiceLibClass As String, ByVal vServiceConfiguration As Variant) +Attribute IQueueManager_LoadServiceObject.VB_Description = "Causes all created AEWorker.Worker objects to create an object whose ProgID matches ServiceLibClass." + '------------------------------------------------------------------------- + 'Purpose: Purpose is to call LoadServiceObject method in each + ' instanciated worker. It is ignored if gbPeristentServices + ' is false + 'Assumes: + ' [gcWorkers] + ' Is a collection of valid AEWorker.Worker objects + '------------------------------------------------------------------------- + Dim oWork As clsWorker + If gbPersistentServices Then + For Each oWork In gcWorkers + oWork.Worker.LoadServiceObject ServiceLibClass, vServiceConfiguration + Next oWork + End If +End Sub + +Public Sub IQueueManager_StopTest() +Attribute IQueueManager_StopTest.VB_Description = "Causes the AEQueueMgr to stop processing Service Requests and to empty its queue." + '------------------------------------------------------------------------- + 'Purpose: Stops all Queue Managers processes + 'Effects: + ' May call StopQueue + ' [gbStopTest] + ' Becomes true + '------------------------------------------------------------------------- + 'Call this to halt the Queue Manager and the Expediter + goExpediter.StopTest + gbStopTest = True + If Not gbBusyAdding And Not gbBusyGetServiceRequest Then StopQueue + Exit Sub +End Sub + +Public Sub IQueueManager_StartTest() +Attribute IQueueManager_StartTest.VB_Description = "Prepares the AEQueueMgr to process Service Requests after StopTest has been called." + '------------------------------------------------------------------------- + 'Purpose: Call this to allow processing of Services after calling StopTest + 'Effects: + ' Resets U/I to look like QueueMgr just started + ' [gbStopTest] + ' Becomes False + '------------------------------------------------------------------------- + + Dim oWork As clsWorker + Dim iRetry As Integer + + On Error GoTo StartTestError + + 'Reset stats + gbStopTest = False + + With goExpediter + iRetry = 0 + '.QueueMgrRef must be set before StartTest is called + Set .QueueMgrRef = New clsQueueDelegator + .StartTest + End With + If gbShow Then + DisplayStatus "" + glAddCallCount = 0 + glPeakQueueSize = 0 + With frmQueueMgr + .lblCount.Caption = 0 + .lblPeak.Caption = 0 + .lblQueue.Caption = 0 + .lblWorkerCount.Caption = gcWorkers.Count + .lblCount.Refresh + .lblPeak.Refresh + .lblQueue.Refresh + .lblWorkerCount.Refresh + End With + End If + Exit Sub +StartTestError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + 'First check for stop test + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + LogEvent giCALL_REJECTED_RETRY, gsNULL_SERVICE_ID + Resume + Else + 'We reached our max retries + LogError Err, gsNULL_SERVICE_ID + Resume Next + End If + Case Else + Err.Raise Err.Number, Err.Source, Err.Description + End Select +End Sub + +'******************** +'Private Procedures +'******************** + +Private Sub Class_Initialize() + CountInitialize +End Sub + +Private Sub Class_Terminate() + CountTerminate +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.RC new file mode 100644 index 0000000..fb0fdfe --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.RC @@ -0,0 +1,31 @@ +#include "..\AEInclud\ODBCAPI.rc" +STRINGTABLE DISCARDABLE +BEGIN + + 2 "Service" + 3 "Begin MTS Transaction" + 4 "End MTS Transaction - Failed" + 5 "End MTS Transaction - Succeeded" + 6 "MTS Transaction Status" + 7 "Successful Transactions:" + 8 "Aborted Transactions:" + 9 "Begin Database Query" + 10 "End Database Query" + + 20 "Error opening service connection" + 21 "Error in Execute method" + 22 "Error performing database query" + 23 "Error parsing database query" + 24 "Could not create MTS Service. Check the documentation for further help." + + // "*** Font information for all forms. Index 30 is the Character set, Index + // 31 is Font name, Index 32 is Font Size" + 30 "0" + 31 "Tahoma" + 32 "10" + + //Error Strings + 32766 "Invalid data was found in the variant" + 32765 "The Activity Duration was negative or greater than ." + 32764 "Invalid data container type" +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.RES new file mode 100644 index 0000000..e0c0bcf Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.VBP new file mode 100644 index 0000000..9648da2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/AESERVIC.VBP @@ -0,0 +1,55 @@ +Type=OleDll +Reference=*\G{00025E01-0000-0000-C000-000000000046}#4.0#0#..\..\EXTERNAL\dao350.dll#Microsoft DAO 3.5 Object Library +Reference=*\G{EE008642-64A8-11CE-920F-08002B369A33}#2.0#0#..\..\EXTERNAL\msrdo20.dll#Microsoft Remote Data Object 2.0 +Reference=*\G{00000200-0000-0010-8000-00AA006D2EA4}#2.0#0#C:\Program Files\Common Files\System\ADO\msado15C:\P#Microsoft ActiveX Data Objects 2.0 Library +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#9#..\AEIntrfc\AEIntrfc.TLB#Application Performance Explorer 2.0 Interfaces +Class=Service; service.cls +Module=modAEConstants; ..\AEInclud\modaecon.bas +Module=modService; modservc.bas +Module=modVBErrors; ..\AEInclud\modvberr.bas +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +Class=clsPositionForm; ..\AEInclud\clsPosFm.cls +RelatedDoc=AEServic.rc +Form=Service.frm +Module=Utility; ..\AEInclud\Utility.bas +Module=ODBCAPI; ..\AEInclud\ODBCAPI.bas +Module=Localize; ..\AEInclud\Localize.bas +ResFile32="aeservic.res" +Startup="Sub Main" +HelpFile="" +Title="APE Service" +ExeName32="AEServic.dll" +Path32="..\..\Retail" +Command32="" +Name="AEService" +HelpContextID="0" +Description="Application Performance Explorer Service" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AEServic.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +DllBaseAddress=&H10000000 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Service" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Service" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +ThreadingModel=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/MODSERVC.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/MODSERVC.BAS new file mode 100644 index 0000000..9e1b225 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/MODSERVC.BAS @@ -0,0 +1,162 @@ +Attribute VB_Name = "modService" +Option Explicit +'------------------------------------------------------------------------- +'The project is a default Service object provided with APE. +'It is loaded and called by the Worker. There are +'configurations for this object exposed on the AEManager U/I. All it does +'is resond to an Execute method. In response to the data it receives, it +'may return data of different sizes are types and/or sleep or burn processor +'cycles for a certain amount of time. +'------------------------------------------------------------------------- + +'Declares +Public Declare Function GetTickCount Lib "Kernel32" () As Long +Public Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) + +'General Service Constants +Public Const glMAX_DURATION As Long = 60000 'The longest an Service is allowed to take + +'Service Error Constants +Public Const giERROR_THRESHOLD As Long = 32000 'Any error above this number is application defined +Public Const giTIMER_INTERVAL As Integer = 500 +Public Const giMAX_ALLOWED_RETRIES As Integer = 500 +Public Const giRETRY_WAIT_MIN As Integer = 500 'Retry Wait is measure in DoEvent cyles +Public Const giRETRY_WAIT_MAX As Integer = 2500 + +'Also used to lookup error strings from the RES file +'The actual error number raised to the calling program +'is "cont + vbObjectError" +Public Const giBAD_DATA As Long = 32766 +Public Const giBAD_DURATION As Long = 32765 +Public Const giBAD_DATA_TYPE As Long = 32764 + +'Data Access constants +Public Const gsDBName As String = "AEServic.mdb" +Public Const gsFIND_CRITERIA As String = "OrderID=1" +Public Const gsFIELD_TO_READ As String = "Balance" + +Public Const gsERROR_PREFIX As String = "Error: " +Public Const giServiceName As Integer = 2 +Public Const giBEGIN_MTS_TRANSACTION As Integer = 3 +Public Const giEND_MTS_TRANSACTION_FAILED As Integer = 4 +Public Const giEND_MTS_TRANSACTION_SUCCEEDED As Integer = 5 +Public Const giMTS_FORM_CAPTION As Integer = 6 +Public Const giSUCCEEDED_TRANSACTIONS_CAPTION As Integer = 7 +Public Const giABORTED_TRANSACTIONS_CAPTION As Integer = 8 +Public Const giBEGIN_DATABASE_QUERY As Integer = 9 +Public Const giEND_DATABASE_QUERY As Integer = 10 + +Public Const giERROR_OPENING_SERVICE_CONNECTION As Integer = 20 +Public Const giERROR_EXECUTE_METHOD As Integer = 21 +Public Const giERROR_PERFORM_DATABASE_QUERY As Integer = 22 +Public Const giERROR_PARSING_QUERY As Integer = 23 +Public Const giERROR_CREATE_MTS_OBJECT As Integer = 24 + +Public Const giFONT_CHARSET_INDEX As Integer = 30 +Public Const giFONT_NAME_INDEX As Integer = 31 +Public Const giFONT_SIZE_INDEX As Integer = 32 + +Public goLogger As APEInterfaces.ILogger + +Public Const RPC_E_CALL_REJECTED = &H80010001 + +Sub Main() + Set goLogger = CreateObject("AELogger.Logger") +End Sub + +Public Sub LogEvent(intMessage As Integer, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: Receives Message key which is used to look + ' up a resource string. The logrecord is sent to the + ' Logger object if gbLog is true + 'In: [intMessage] + ' A valid Resource string key for the message to be logged + ' [sServiceID] + ' Service Request ID to be logged + 'Assumption: + ' If gbLog is true then goLogger is a valid reference to + ' AELogger.Logger class object + '------------------------------------------------------------------------- + + On Error GoTo LogEventError + + goLogger.Record LoadResString(giServiceName), sServiceID, LoadResString(intMessage), GetTickCount() + Exit Sub +LogEventError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim iRetry As Integer + Dim il As Integer + Dim ir As Integer + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + Resume + Else + 'We reached our max retries + 'This would occur when clients are sending + 'there logs + LogError Err, sServiceID + Exit Sub + End If + Case Else + LogError Err, sServiceID + Exit Sub + End Select + Exit Sub +End Sub + +Public Sub LogError(ByVal oErr As ErrObject, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: To add an error record to the AELogger.Logger object + 'In: [oErr] + ' Error object which hold the error information that will + ' form the log record + ' [sServiceID] + ' The ID of the Service or Task request that will form part of + ' the log record + 'Assumption: + ' goLogger is a valid AELogger.Logger object + '------------------------------------------------------------------------- + goLogger.Record LoadResString(giServiceName), sServiceID, gsERROR_PREFIX & Str$(oErr.Number) & gsSEPERATOR & oErr.Source & gsSEPERATOR & oErr.Description, GetTickCount() +End Sub + +Public Function NestedErrorDescription(iMainDescriptionResourceID As Integer, sNestedErrorDescription As String) As String + 'Creates a nested string for error descriptions. + NestedErrorDescription = LoadResString(iMainDescriptionResourceID) & " (" & sNestedErrorDescription & ")" +End Function + +Public Sub ParseQuery(sQuery As String) +' Parses the specified query string and performs substitutions such as random numbers where required. +' Currently supported substitutions are: +' %-% = a random value in the range of through (e.g., "%1-1000%") + Dim lStart As Long, lEnd As Long, lHyphenPos As Long + Dim lMin As Long, lMax As Long + Dim sToken As String + + On Error GoTo ParseError + lStart = InStr(sQuery, "%") ' Find starting % + Do While lStart > 0 + lEnd = InStr(lStart + 1, sQuery, "%") ' Find ending % + If lEnd = 0 Then + Exit Do + End If + sToken = Mid$(sQuery, lStart + 1, lEnd - lStart - 1) + ' Check if the token specifies a random range + lHyphenPos = InStr(sToken, "-") + If lHyphenPos > 0 Then + lMin = Left$(sToken, lHyphenPos - 1) + lMax = Mid$(sToken, lHyphenPos + 1) + sQuery = Left$(sQuery, lStart - 1) & Int(Min(lMin, lMax) + Rnd * (Abs(lMax - lMin) + 1)) & Mid$(sQuery, lEnd + 1) ' Perform substitution + End If + lStart = InStr(lEnd + 1, sQuery, "%") ' Find starting % + Loop + Exit Sub + +ParseError: + Err.Raise Err.Number, , LoadResString(giERROR_PARSING_QUERY) +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.CLS new file mode 100644 index 0000000..5291116 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.CLS @@ -0,0 +1,757 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "Service" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Service" +Option Explicit + +Implements APEInterfaces.IService + +Private Const msJetDBName = "APETest.mdb" ' Name of Jet database used for database tests + +' Text of "DRIVER" specifications of connect string for supported database types +Private Const msAccessDriver = "Microsoft Access Driver (*.mdb)" +Private Const msSQLServerDriver = "SQL Server" + +Private Const miMinQueryRetryDelay As Integer = 20 ' Min delay (ms) between retries of a query that failed due to a locking contention +Private Const miMaxQueryRetryDelay As Integer = 100 ' Max delay (ms) between retries of a query that failed due to a locking contention + +Private moWorkspace As Object ' The workspace for the connection +Private moConnection As Object ' The connection established by calling the Initialize method +Private moDatabase As DAO.Database ' The database used for DAO operations +Private mvServiceConfiguration As Variant ' Service configuration options (array) +Private mbConnectionOpen As Boolean ' Flag indicating that there is a connection opened in the Initialize procedure +Private mbLogDatabaseEvents As Boolean +Private mbLogMTSTransactions As Boolean +Private mbShowMTSTransactions As Boolean +Private msServiceID As String +Private mDBType As ape_DbServerOptions ' Type of database that the service connects to + +' Handles for the ODBC API calls +Private mhEnvironment As Long +Private mhConnection As Long +Private mhStatement As Long +Const msERROR_SOURCE As String = "AEService" + +Public Sub Execute(ByRef sServiceID As String, ByRef sCommand As String, Optional ByRef vServiceData As Variant, Optional ByRef vReturn As Variant) +Attribute Execute.VB_Description = "AEWorker.Worker objects call this method when using late binding." + '------------------------------------------------------------------------- + 'Purpose: + ' Provides an interface for late binding. Late binding is only provided + ' for test comparison. Other custom services should only use the implemented + ' interface. + '------------------------------------------------------------------------- + Dim bDataMissing As Boolean + Dim bReturnMissing As Boolean + bDataMissing = IsMissing(vServiceData) + bReturnMissing = IsMissing(vReturn) + If bDataMissing And bReturnMissing Then + IService_Execute sServiceID, sCommand + ElseIf bReturnMissing Then + IService_Execute sServiceID, sCommand, vServiceData + ElseIf bDataMissing Then + IService_Execute sServiceID, sCommand, , vReturn + Else + IService_Execute sServiceID, sCommand, vServiceData, vReturn + End If +End Sub + +Public Sub Initialize(vServiceConfiguration As Variant) + '------------------------------------------------------------------------- + 'Purpose: + ' Provides an interface for late binding. Late binding is only provided + ' for test comparison. Other custom services should only use the implemented + ' interface. + '------------------------------------------------------------------------- + IService_Initialize vServiceConfiguration +End Sub + +Private Sub IService_Execute(sServiceID As String, sCommand As String, Optional vServiceData As Variant, Optional vReturn As Variant) + '------------------------------------------------------------------------- + 'Purpose: + ' In response to the data it receives, it may return data of different + ' sizes are types and/or sleep or burn processor cycles for a certain + ' amount of time. + 'In: + ' [sCommand] + ' A string the represents what this procedure should do. It is intended + ' be used to case and call an appropriate procedure in response if this + ' was a real solution service provider. This object expects either + ' "UseProcessor" or "DontUserProcessor". + ' [vServiceData] + ' This object expects a variant array or variant collection in which + ' the elements of the array or collection specify how much data to + ' return, what type of data to return, and how long to wait before + ' releasing the calling worker. + 'Out: + ' [vReturn] + ' This could be a variant array or collection of any specified size + ' it will be returned by the calling worker to the client or the + ' expediter + '------------------------------------------------------------------------- + 'sCommand What to do. Ex: "Method" + 'vServiceData The data needed to carrry out sCommand. + Dim iLensCommand As Integer + Dim iChar As Integer + Dim iLastChar As Integer + Dim lEndTicks As Long + Dim lRecordNumRows As Long + Dim lRecordRowSize As Long + Dim lRecordTaskDuration As Long, lRecordSleepPeriod As Long + Dim lRecordContainerType As Long + Dim sRecordDatabaseQuery As String + Dim rsService As Recordset + Dim s As String + Dim i As Integer + Dim v() As Variant + + msServiceID = sServiceID + On Error GoTo Service_ExecuteError + If Not IsMissing(vServiceData) Then + 'Are we using a Varriant Array or Collection? + If VarType(vServiceData) = (vbArray + vbVariant) Then + 'It's an array + lRecordNumRows = vServiceData(giRECORD_NUMROWS) + lRecordRowSize = vServiceData(giRECORD_ROWSIZE) + lRecordTaskDuration = vServiceData(giRECORD_TASK_DURATION) + lRecordSleepPeriod = vServiceData(giRECORD_SLEEP_PERIOD) + lRecordContainerType = vServiceData(giRECORD_CONTAINER_TYPE) + sRecordDatabaseQuery = vServiceData(giRECORD_DATABASE_QUERY) + mvServiceConfiguration = vServiceData(giRECORD_SERVICE_CONFIGURATION) + Else + 'It's a collection + lRecordNumRows = vServiceData.Item(CStr(giRECORD_NUMROWS)) + lRecordRowSize = vServiceData.Item(CStr(giRECORD_ROWSIZE)) + lRecordTaskDuration = vServiceData.Item(CStr(giRECORD_TASK_DURATION)) + lRecordSleepPeriod = vServiceData.Item(CStr(giRECORD_SLEEP_PERIOD)) + lRecordContainerType = vServiceData.Item(CStr(giRECORD_CONTAINER_TYPE)) + sRecordDatabaseQuery = vServiceData.Item(CStr(giRECORD_DATABASE_QUERY)) + mvServiceConfiguration = vServiceData.Item(CStr(giRECORD_SERVICE_CONFIGURATION)) + End If + 'Do we need to do anything? + If lRecordTaskDuration < 0 Or lRecordTaskDuration > glMAX_DURATION Then Err.Raise giBAD_DURATION + End If + + Dim iCommand As Integer + iCommand = CInt(sCommand) + + If (iCommand And giMASK_USE_CPU_TASK) Then 'If use processor always + If lRecordTaskDuration > 0 Then + lEndTicks = GetTickCount() + lRecordTaskDuration + Do While lEndTicks > GetTickCount() + 'Using Cycles + Loop + End If + If lRecordSleepPeriod > 0 Then + Sleep lRecordSleepPeriod + End If + End If + + If (iCommand And giMASK_USE_DB_TASK) Then 'If a database task + On Error GoTo 0 ' Do not trap MTS errors or PerformQuery errors. + If (iCommand And giMASK_WRITE_MTS_TRANSACTION) <> 0 Then + WriteMTSTransaction mvServiceConfiguration(ape_conConnectionString), mvServiceConfiguration(ape_conConnectionOption) + Else ' Perform query + PerformQuery sRecordDatabaseQuery + End If + On Error GoTo Service_ExecuteError + End If + + If (Not IsMissing(vReturn)) And lRecordContainerType <> giCONTAINER_TYPE_NULL And lRecordNumRows <> 0 And lRecordRowSize <> 0 Then + 'Return something + Select Case lRecordContainerType + Case giCONTAINER_TYPE_VARRAY + s = Space(lRecordRowSize) + ReDim v(lRecordNumRows - 1) As Variant + For i = 0 To lRecordNumRows - 1 + v(i) = s + Next i + vReturn = v + Case giCONTAINER_TYPE_VCOLLECTION + Set vReturn = New Collection + s = Space(lRecordRowSize) + For i = 1 To lRecordNumRows + vReturn.Add s + Next i + Case giCONTAINER_TYPE_RECORDSET + 'Not yet implemented + Set vReturn = Nothing + Case Else + 'Some unknown ContainterTypeValue + Err.Raise giBAD_DATA_TYPE + End Select + End If + Exit Sub + +Service_ExecuteError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + lErrorNumber = Err.Number + sErrorDescription = Err.Description + Select Case lErrorNumber + Case ERR_TYPE_MISMATCH, ERR_OVER_FLOW + 'vServiceData contained a bad data type. Raise an appliction defined error. + Err.Raise giBAD_DATA, msERROR_SOURCE, NestedErrorDescription(giERROR_EXECUTE_METHOD, LoadResString(giBAD_DATA)) + Case giBAD_DURATION + 'They wanted to sleep more than glMAX_DURATION + Err.Raise lErrorNumber, msERROR_SOURCE, NestedErrorDescription(giERROR_EXECUTE_METHOD, _ + ReplaceString(LoadResString(giBAD_DURATION), gsNUMBER_TOKEN, CStr(glMAX_DURATION))) + Case Is > giERROR_THRESHOLD + 'Application defined error. Since this is the only public method + 'all errors raised there will be returned to the calling program. + Err.Raise lErrorNumber + vbObjectError, msERROR_SOURCE, NestedErrorDescription(giERROR_EXECUTE_METHOD, sErrorDescription) + Case Else + 'VB error + Err.Raise lErrorNumber, msERROR_SOURCE, NestedErrorDescription(giERROR_EXECUTE_METHOD, sErrorDescription) + End Select +End Sub + +Public Sub IService_Initialize(vServiceConfiguration As Variant) + + ' If a connection is already open, then close it (object is being reinitialized) + If Not IsEmpty(mvServiceConfiguration) Then + If (mvServiceConfiguration(ape_conConnectionOption) <> vServiceConfiguration(ape_conConnectionOption) Or _ + mvServiceConfiguration(ape_conConnectionString) <> vServiceConfiguration(ape_conConnectionString)) Then + Debug.Assert mbConnectionOpen + Select Case mvServiceConfiguration(ape_conConnectionOption) + Case ape_idcODBC + SQLFreeHandle SQL_HANDLE_STMT, mhStatement + SQLEndTran SQL_HANDLE_DBC, mhConnection, SQL_COMMIT + SQLDisconnect mhConnection + Case Else + If Not moConnection Is Nothing Then + moConnection.Close + Set moConnection = Nothing + End If + End Select + mbConnectionOpen = False + End If + End If + mvServiceConfiguration = vServiceConfiguration + ' Open a connection if a connection string is specified + If Not (mbConnectionOpen Or IsEmpty(mvServiceConfiguration(ape_conConnectionString))) Then + OpenServiceConnection + mbConnectionOpen = True + End If + mbLogMTSTransactions = mvServiceConfiguration(ape_conLogMTSTransactions) + If mbShowMTSTransactions <> mvServiceConfiguration(ape_conShowMTSTransactions) Then + mbShowMTSTransactions = mvServiceConfiguration(ape_conShowMTSTransactions) + If mbShowMTSTransactions Then + frmService.Show + Else + Unload frmService + End If + End If + mbLogDatabaseEvents = mvServiceConfiguration(ape_conLogDatabaseEvents) + frmService.Reset +End Sub + +Private Sub ExecuteADOCommand(sQuery As String) + Dim conConnection As ADODB.Connection + Dim rsRecordset As New ADODB.Recordset + Dim s As String + Dim lErrorNumber As Long + Dim sa() As String + Dim iRetries As Integer + + iRetries = 0 + On Error GoTo ADOTransactionError + Set conConnection = moConnection + + ' Get array of queries + If GetArrayFromDelimited(sQuery, sa, "//") Then +TryAgain: + conConnection.BeginTrans + Dim i As Integer + For i = LBound(sa) To UBound(sa) + If Left(sa(i), 6) = "SELECT" Then + ' Only SELECT queries return records + rsRecordset.Open sa(i), conConnection, adOpenKeyset ' Default CursorType (adOpenForwardOnly) doesn't support MoveLast + rsRecordset.MoveFirst + Do While Not rsRecordset.EOF + rsRecordset.MoveNext + Loop + rsRecordset.Close + Else + conConnection.Execute sa(i) + End If + Next + conConnection.CommitTrans + End If + Exit Sub + +ADOTransactionError: + ' If the error is due to a locking contention, roll back the transaction and try again + If Err.Number = -2147467259 And iRetries < giMAX_ALLOWED_RETRIES Then + conConnection.RollbackTrans + iRetries = iRetries + 1 + Sleep miMinQueryRetryDelay + (miMaxQueryRetryDelay - miMinQueryRetryDelay) * Rnd ' Randomize the delay to avoid repeated contentions + Resume TryAgain + End If + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + conConnection.RollbackTrans + Err.Raise lErrorNumber, , sErrorDescription + End Sub + +Private Sub ExecuteRDOCommand(sQuery As String) + Dim conConnection As rdoConnection + Dim rsResultset As rdoResultset + Dim s As String + Dim lErrorNumber As Long + Dim sa() As String + Dim iRetries As Integer + + iRetries = 0 + On Error GoTo RDOTransactionError + + Set conConnection = moConnection + If GetArrayFromDelimited(sQuery, sa, "//") Then +TryAgain: + conConnection.BeginTrans + Dim i As Integer + For i = LBound(sa) To UBound(sa) + If Left(sa(i), 6) = "SELECT" Then + ' Only SELECT queries return records + Set rsResultset = conConnection.OpenResultset(sa(i), dbOpenDynaset) + rsResultset.MoveFirst + Do While Not rsResultset.EOF + rsResultset.MoveNext + Loop + rsResultset.Close + Else + conConnection.Execute sa(i) + End If + Next + conConnection.CommitTrans + End If + Exit Sub + +RDOTransactionError: + ' If the error is due to a locking contention, roll back the transaction and try again + If Err.Number = 40002 And iRetries < giMAX_ALLOWED_RETRIES Then + ' First make sure the cause really is a locking contention + ' Determine which database-specific error number to check for + Select Case mDBType + Case ape_idsJet + lErrorNumber = -1102 + Case ape_idsSqlServer + lErrorNumber = 1205 + Case Else + Err.Raise E_NOTIMPL + End Select + Dim RDOErr As RDO.rdoError + For Each RDOErr In rdoEngine.rdoErrors + If RDOErr.Number = lErrorNumber Then + conConnection.RollbackTrans + iRetries = iRetries + 1 + Sleep miMinQueryRetryDelay + (miMaxQueryRetryDelay - miMinQueryRetryDelay) * Rnd ' Randomize the delay to avoid repeated contentions + Resume TryAgain + End If + Next + End If + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + conConnection.RollbackTrans + Err.Raise lErrorNumber, , sErrorDescription +End Sub + +Private Sub ExecuteDAOCommand(sQuery As String) + Dim rsRecordset As DAO.Recordset + Dim s As String + Dim lErrorNumber As Long + Dim sa() As String + Dim iRetries As Integer + + iRetries = 0 + On Error GoTo DAOTransactionError + + If GetArrayFromDelimited(sQuery, sa, "//") Then +TryAgain: + moWorkspace.BeginTrans + Dim i As Integer + For i = LBound(sa) To UBound(sa) + If Left(sa(i), 6) = "SELECT" Then + ' Only SELECT queries return records + Set rsRecordset = moDatabase.OpenRecordset(sa(i), dbOpenDynaset, dbSQLPassThrough) + rsRecordset.MoveFirst + Do While Not rsRecordset.EOF + rsRecordset.MoveNext + Loop + rsRecordset.Close + Else + moDatabase.Execute sa(i), dbSQLPassThrough + End If + Next + moWorkspace.CommitTrans + End If + Exit Sub + +DAOTransactionError: + ' If the error is due to a locking contention, roll back the transaction and try again + If Err.Number = 3146 And iRetries < giMAX_ALLOWED_RETRIES Then + ' First make sure the cause really is a locking contention + ' Determine which database-specific error number to check for + Select Case mDBType + Case ape_idsJet + lErrorNumber = -1102 + Case ape_idsSqlServer + lErrorNumber = 1205 + Case Else + Err.Raise E_NOTIMPL + End Select + Dim DAOErr As DAO.Error + For Each DAOErr In DBEngine.Errors + If DAOErr.Number = lErrorNumber Then + moWorkspace.Rollback + iRetries = iRetries + 1 + Sleep miMinQueryRetryDelay + (miMaxQueryRetryDelay - miMinQueryRetryDelay) * Rnd ' Randomize the delay to avoid repeated contentions + Resume TryAgain + End If + Next + End If + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + moWorkspace.Rollback + Err.Raise lErrorNumber, , sErrorDescription +End Sub + +Private Sub ExecuteODBCAPICommand(sQuery As String) + Dim lErrorNumber As Long + Dim sa() As String + Dim iRetries As Integer + + iRetries = 0 + On Error GoTo ODBCAPITransactionError + + If GetArrayFromDelimited(sQuery, sa, "//") Then +TryAgain: + Dim i As Integer + For i = LBound(sa) To UBound(sa) + If Left(sa(i), 6) = "SELECT" Then + ' Only SELECT queries return records + If Not ODBCAPICallSuccessful(SQLExecDirect(mhStatement, sa(i), Len(sa(i)))) Then + Err.Raise ErrorExecuteQuery, , LoadResString(ErrorExecuteQuery) + End If + Dim bEOF As Boolean + Select Case SQLFetchScroll(mhStatement, SQL_FETCH_FIRST, 0) + Case SQL_NO_DATA + bEOF = True + Case SQL_SUCCESS, SQL_SUCCESS_WITH_INFO + bEOF = False + Case Else + SQLCloseCursor mhStatement + Err.Raise ErrorFetchRecord, , LoadResString(ErrorFetchRecord) + End Select + Do While Not bEOF + Select Case SQLFetchScroll(mhStatement, SQL_FETCH_NEXT, 0) + Case SQL_NO_DATA + bEOF = True + Case SQL_SUCCESS, SQL_SUCCESS_WITH_INFO + bEOF = False + Case Else + SQLCloseCursor mhStatement + Err.Raise ErrorFetchRecord, , LoadResString(ErrorFetchRecord) + End Select + Loop + SQLCloseCursor mhStatement + Else + If Not ODBCAPICallSuccessful(SQLExecDirect(mhStatement, sa(i), Len(sa(i)))) Then + Err.Raise ErrorExecuteQuery, , LoadResString(ErrorExecuteQuery) + End If + End If + Next + If Not ODBCAPICallSuccessful(SQLEndTran(SQL_HANDLE_DBC, mhConnection, SQL_COMMIT)) Then + Err.Raise ErrorEndTransaction, , LoadResString(ErrorEndTransaction) + End If + End If + Exit Sub + +ODBCAPITransactionError: + ' If the error is due to a resource deadlock, roll back the transaction and try again + If Err.Number = ErrorExecuteQuery And iRetries < giMAX_ALLOWED_RETRIES Then + Dim iRecNum As Integer, iTextLen As Integer + Dim sSQLState As String * 5, sMsgText As String * 1 + Dim lNativeErrorPtr As Long + iRecNum = 1 + Do While ODBCAPICallSuccessful(SQLGetDiagRec(SQL_HANDLE_STMT, mhStatement, iRecNum, sSQLState, lNativeErrorPtr, _ + sMsgText, 0, iTextLen)) + If sSQLState = "40001" Then + SQLEndTran SQL_HANDLE_DBC, mhConnection, SQL_ROLLBACK + iRetries = iRetries + 1 + Sleep miMinQueryRetryDelay + (miMaxQueryRetryDelay - miMinQueryRetryDelay) * Rnd ' Randomize the delay to avoid repeated contentions + Resume TryAgain + End If + iRecNum = iRecNum + 1 + Loop + End If + Dim sErrorDescription As String + sErrorDescription = Err.Description + lErrorNumber = Err.Number + SQLEndTran SQL_HANDLE_DBC, mhConnection, SQL_ROLLBACK + Err.Raise lErrorNumber, , sErrorDescription +End Sub + +Private Sub PerformQuery(sRecordDatabaseQuery As String) + ' Performs the database queries + Dim bConnectionOpenedInExecute As Boolean + + On Error GoTo PerformQueryError + bConnectionOpenedInExecute = False + If mbLogDatabaseEvents Then + LogEvent giBEGIN_DATABASE_QUERY, msServiceID + End If + If Not mbConnectionOpen Then + On Error GoTo 0 ' Do not trap OpenServiceConnection errors. + OpenServiceConnection + On Error GoTo PerformQueryError + bConnectionOpenedInExecute = True + End If + ParseQuery sRecordDatabaseQuery + If mvServiceConfiguration(ape_conConnectionOption) = ape_idcODBC Then + ExecuteODBCAPICommand (sRecordDatabaseQuery) + If bConnectionOpenedInExecute Then + If Not ODBCAPICallSuccessful(SQLFreeHandle(SQL_HANDLE_STMT, mhStatement)) Then + Err.Raise ErrorFreeHandle, , LoadResString(ErrorFreeHandle) + End If + If Not ODBCAPICallSuccessful(SQLEndTran(SQL_HANDLE_DBC, mhConnection, SQL_COMMIT)) Then + Err.Raise ErrorEndTransaction, , LoadResString(ErrorEndTransaction) + End If + If Not ODBCAPICallSuccessful(SQLDisconnect(mhConnection)) Then + Err.Raise ErrorDisconnectDriver, , LoadResString(ErrorDisconnectDriver) + End If + End If + Else + Select Case mvServiceConfiguration(ape_conConnectionOption) + Case ape_idcADO + ExecuteADOCommand (sRecordDatabaseQuery) + Case ape_idcRDO + ExecuteRDOCommand (sRecordDatabaseQuery) + Case ape_idcDAO + ExecuteDAOCommand (sRecordDatabaseQuery) + Case Else + Err.Raise E_NOTIMPL + End Select + If bConnectionOpenedInExecute And Not moConnection Is Nothing Then + moConnection.Close + bConnectionOpenedInExecute = False + End If + End If + If mbLogDatabaseEvents Then + LogEvent giEND_DATABASE_QUERY, msServiceID + End If + Exit Sub + +PerformQueryError: + Dim lErrorNumber As Long + Dim sErrorDescription As String + lErrorNumber = Err.Number + sErrorDescription = Err.Description + If bConnectionOpenedInExecute Then + Select Case mvServiceConfiguration(ape_conConnectionOption) + Case ape_idcODBC + SQLFreeHandle SQL_HANDLE_STMT, mhStatement + SQLEndTran SQL_HANDLE_DBC, mhConnection, SQL_COMMIT + SQLDisconnect mhConnection + Case Else + If Not moConnection Is Nothing Then + moConnection.Close + End If + End Select + End If + Err.Raise lErrorNumber, msERROR_SOURCE, NestedErrorDescription(giERROR_PERFORM_DATABASE_QUERY, sErrorDescription) +End Sub + +Private Sub WriteMTSTransaction(ByVal sConnect As String, ByVal eConnectOptions As ape_DbConnectionOptions) + ' Create the appropriate MoveMoney object + Dim objMoveMoney As APEInterfaces.IMTSMoveMoney + + Const miMinQueryRetryDelay As Integer = 20 ' Min delay (ms) between retries of a query that failed due to a locking contention + Const miMaxQueryRetryDelay As Integer = 100 ' Max delay (ms) between retries of a query that failed due to a locking contention + Const miMAX_ALLOWED_RETRIES As Integer = 500 ' Maximum number of retries of a query that failed due to a locking contention + + Dim iTransferRetries As Integer + iTransferRetries = 0 + + On Error GoTo ErrorHandler + Set objMoveMoney = CreateObject("AEMTSSvc.MoveMoney") + If mbLogMTSTransactions Then + LogEvent giBEGIN_MTS_TRANSACTION, msServiceID + End If + + Const iMAX_ACCOUNT_NO = 1000 ' Highest account number (1 is presumed to be the lowest) + Dim lFromAccount As Long, lToAccount As Long + lFromAccount = 1 + Int(iMAX_ACCOUNT_NO * Rnd) + lToAccount = 1 + Int(iMAX_ACCOUNT_NO * Rnd) + objMoveMoney.Transfer sConnect, eConnectOptions, lFromAccount, lToAccount, 1 + + If mbLogMTSTransactions Then + LogEvent giEND_MTS_TRANSACTION_SUCCEEDED, msServiceID + End If + + If mbShowMTSTransactions Then + frmService.MTSResults True + End If + Exit Sub + +ErrorHandler: + ' If the error is due to a locking contention, try again + If iTransferRetries < miMAX_ALLOWED_RETRIES Then + Dim bRetry As Boolean + bRetry = False + Select Case eConnectOptions + Case ape_idcADO + bRetry = (Err.Number = -2147467259) + Case ape_idcDAO + If Err.Number = 3146 Then + ' First make sure the cause really is a locking contention + Dim DAOErr As DAO.Error + For Each DAOErr In DBEngine.Errors + If DAOErr.Number = 1205 Then ' 1205 = SQL Server record locking contention + bRetry = True + End If + Next + End If + Case ape_idcRDO + If Err.Number = 40002 Then + ' First make sure the cause really is a locking contention + Dim RDOErr As RDO.rdoError + For Each RDOErr In rdoEngine.rdoErrors + If RDOErr.Number = 1205 Then ' 1205 = SQL Server record locking contention + bRetry = True + End If + Next + End If + Case ape_idcODBC + bRetry = (Err.Number = ErrorResourceDeadlock) + End Select + If bRetry Then + iTransferRetries = iTransferRetries + 1 + Sleep miMinQueryRetryDelay + (miMaxQueryRetryDelay - miMinQueryRetryDelay) * Rnd ' Randomize the delay to avoid repeated contentions + DoEvents + Resume + End If + End If + Dim lErrorNumber As Long + Dim sErrorSource As String + Dim sErrorDescription As String + lErrorNumber = Err.Number + sErrorSource = Err.Source + If Err.Number = ERR_CANT_CREATE_OBJECT Then + sErrorDescription = LoadResString(giERROR_CREATE_MTS_OBJECT) + Else + sErrorDescription = Err.Description + End If + If mbLogMTSTransactions Then + LogEvent giEND_MTS_TRANSACTION_FAILED, msServiceID + End If + If mbShowMTSTransactions Then + frmService.MTSResults False + End If + Err.Raise lErrorNumber, sErrorSource, sErrorDescription +End Sub + +Private Sub OpenServiceConnection() + Debug.Assert Not IsEmpty(mvServiceConfiguration) ' mvServiceConfiguration must be set before calling this method + ' Make the current directory the app path (usually starts out being the Windows System[32] directory) which is where the + ' Jet database is stored. + On Error GoTo ErrorHandler + ChDir App.Path + ChDrive App.Path + ' Set the database type + If InStr(mvServiceConfiguration(ape_conConnectionString), "DRIVER={" & msSQLServerDriver & "}") > 0 Then + mDBType = ape_idsSqlServer + ElseIf InStr(mvServiceConfiguration(ape_conConnectionString), "DRIVER={" & msAccessDriver & "}") > 0 Then + mDBType = ape_idsJet + Else + Err.Raise E_NOTIMPL + End If + Select Case mvServiceConfiguration(ape_conConnectionOption) + Case ape_idcADO + Set moConnection = New ADODB.Connection + moConnection.Open mvServiceConfiguration(ape_conConnectionString) + Case ape_idcRDO + Set moWorkspace = rdoEngine.rdoEnvironments(0) + Set moConnection = moWorkspace.OpenConnection("", rdDriverNoPrompt, , _ + mvServiceConfiguration(ape_conConnectionString)) + Case ape_idcDAO + Set moWorkspace = DBEngine.Workspaces(0) + ' Special handling is required for Jet databases + If mDBType = ape_idsJet Then + Set moDatabase = DBEngine.OpenDatabase(msJetDBName, False, False) + Else + Set moDatabase = DBEngine.OpenDatabase("", False, False, "ODBC;" & mvServiceConfiguration(ape_conConnectionString)) + End If + Case ape_idcODBC + Dim iConnectLength As Integer + If Not ODBCAPICallSuccessful(SQLDriverConnect(mhConnection, 0, mvServiceConfiguration(ape_conConnectionString), _ + LenB(mvServiceConfiguration(ape_conConnectionString)), vbNullString, 0, iConnectLength, SQL_DRIVER_NOPROMPT)) Then + Err.Raise ErrorConnectDriver, , LoadResString(ErrorConnectDriver) + End If + If Not ODBCAPICallSuccessful(SQLAllocHandle(SQL_HANDLE_STMT, mhConnection, mhStatement)) Then + SQLDisconnect mhConnection + Err.Raise ErrorAllocateHandle, , LoadResString(ErrorAllocateHandle) + End If + If Not ODBCAPICallSuccessful(SQLSetStmtAttrLong(mhStatement, SQL_CURSOR_TYPE, SQL_CURSOR_STATIC, 0)) Then + SQLFreeHandle SQL_HANDLE_STMT, mhStatement + SQLDisconnect mhConnection + Err.Raise ErrorSetAttribute, , LoadResString(ErrorSetAttribute) + End If + Case Else + Err.Raise E_NOTIMPL + End Select + Exit Sub + +ErrorHandler: + Err.Raise Err.Number, msERROR_SOURCE, NestedErrorDescription(giERROR_OPENING_SERVICE_CONNECTION, Err.Description) +End Sub + +Private Sub Class_Initialize() + Randomize + mbConnectionOpen = False + mbLogMTSTransactions = False + mbShowMTSTransactions = False + + If Not ODBCAPICallSuccessful(SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, mhEnvironment)) Then + Err.Raise ErrorAllocateHandle, , LoadResString(ErrorAllocateHandle) + End If + If Not ODBCAPICallSuccessful(SQLSetEnvAttrLong(mhEnvironment, SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3, 0)) Then + SQLFreeHandle SQL_HANDLE_ENV, mhEnvironment + Err.Raise ErrorSetAttribute, , LoadResString(ErrorSetAttribute) + End If + If Not ODBCAPICallSuccessful(SQLAllocHandle(SQL_HANDLE_DBC, mhEnvironment, mhConnection)) Then + SQLFreeHandle SQL_HANDLE_ENV, mhEnvironment + Err.Raise ErrorAllocateHandle, , LoadResString(ErrorAllocateHandle) + End If +End Sub + +Private Sub Class_Terminate() + On Error Resume Next + Unload frmService + If mbConnectionOpen Then + Select Case mvServiceConfiguration(ape_conConnectionOption) + Case ape_idcODBC + SQLDisconnect mhConnection + Case ape_idcDAO + moDatabase.Close + Case Else + moConnection.Close + End Select + End If + + SQLFreeHandle SQL_HANDLE_DBC, mhConnection + SQLFreeHandle SQL_HANDLE_ENV, mhEnvironment +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.FRM b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.FRM new file mode 100644 index 0000000..0f9ac77 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.FRM @@ -0,0 +1,156 @@ +VERSION 5.00 +Begin VB.Form frmService + BorderStyle = 1 'Fixed Single + Caption = ".MTS Transaction Status" + ClientHeight = 2175 + ClientLeft = 10575 + ClientTop = 4875 + ClientWidth = 3915 + ClipControls = 0 'False + Icon = "Service.frx":0000 + LinkTopic = "Form1" + MaxButton = 0 'False + ScaleHeight = 2175 + ScaleWidth = 3915 + StartUpPosition = 3 'Windows Default + Tag = "6" + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = ".Successful Transactions:" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 0 + Left = 200 + TabIndex = 3 + Tag = "7" + Top = 120 + Width = 2775 + End + Begin VB.Label lblCaption + BackStyle = 0 'Transparent + Caption = ".Aborted Transactions:" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Index = 1 + Left = 200 + TabIndex = 2 + Tag = "8" + Top = 480 + Width = 2775 + End + Begin VB.Label lblSuccessCount + BackStyle = 0 'Transparent + Caption = "0" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 3120 + TabIndex = 1 + Top = 120 + Width = 800 + End + Begin VB.Label lblAbortedCount + BackStyle = 0 'Transparent + Caption = "0" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 300 + Left = 3120 + TabIndex = 0 + Top = 480 + Width = 800 + End +End +Attribute VB_Name = "frmService" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Private mcMTSSucceeded As Long +Private mcMTSFailed As Long + +Public Sub UpdateUI() + lblSuccessCount.Caption = mcMTSSucceeded + lblAbortedCount.Caption = mcMTSFailed + lblSuccessCount.Refresh + lblAbortedCount.Refresh +End Sub + +Private Sub Form_Load() + '------------------------------------------------------------------------- + 'Effects: + ' Position form and load captions from string resource + '------------------------------------------------------------------------- + 'Use clsPositionForm object to move + 'Form to settings saved in registry + Dim oPosition As clsPositionForm + Set oPosition = New clsPositionForm + + 'Set the U/I values + ApplyFontToForm Me + Caption = LoadResString(giMTS_FORM_CAPTION) + lblCaption(0).Caption = LoadResString(giSUCCEEDED_TRANSACTIONS_CAPTION) + lblCaption(1).Caption = LoadResString(giABORTED_TRANSACTIONS_CAPTION) + oPosition.Move Me, False + Width = giDEFAULT_FORM_WIDTH + Height = giDEFAULT_FORM_HEIGHT +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + 'If user unloads form cancel unload + Dim oPosition As clsPositionForm + 'Use clsPositionForm object to save + 'forms position in registry + Set oPosition = New clsPositionForm + If Me.Visible Then oPosition.Save Me + If UnloadMode = vbFormControlMenu Then + Cancel = True + End If +End Sub + +Public Sub MTSResults(bSucceeded As Boolean) + If bSucceeded Then + mcMTSSucceeded = mcMTSSucceeded + 1 + Else + mcMTSFailed = mcMTSFailed + 1 + End If + UpdateUI +End Sub + +Public Sub Reset() + mcMTSFailed = 0 + mcMTSSucceeded = 0 + UpdateUI +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.FRX b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.FRX new file mode 100644 index 0000000..4b955fb Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.FRX differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.ICO new file mode 100644 index 0000000..1bbfe44 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AESERVIC/SERVICE.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.RC new file mode 100644 index 0000000..0894a9c --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.RC @@ -0,0 +1,15 @@ +STRINGTABLE DISCARDABLE +BEGIN + 3 "Execute Method Begin" + 4 "Execute Method End" + 6 "Ready Method Begin" + 7 "Worker" + 8 "Ready Method End, New Service" + 9 "Ready Method End, No Service" + 10 "DoService Received" + 11 "Call rejected retry" + 12 "Error: " + + //User defined errors + 32767 "Invalid Lib.Class.Method parameter" +END diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.RES new file mode 100644 index 0000000..c0bb54d Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.VBP new file mode 100644 index 0000000..9a3fb07 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/AEWORKER.VBP @@ -0,0 +1,45 @@ +Type=OleExe +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#9#..\AEIntrfc\AEIntrfc.TLB#Application Performance Explorer 2.0 Interfaces +Module=modWorker; modworkr.bas +Module=modAEConstants; ..\AEInclud\modaecon.bas +Module=modVBErrors; ..\AEInclud\modvberr.bas +Module=modWin32Errors; ..\AEInclud\modwiner.bas +Class=Worker; worker.cls +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +ResFile32="aeworker.res" +Startup="(None)" +HelpFile="" +Title="APE Worker" +ExeName32="AEWorker.exe" +Path32="..\..\Retail" +Command32="" +Name="AEWorker" +HelpContextID="0" +Description="Application Performance Explorer Worker" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AEWorker.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Worker" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Worker" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=-1 +ThreadPerObject=-1 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/MODWORKR.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/MODWORKR.BAS new file mode 100644 index 0000000..91600ea --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/MODWORKR.BAS @@ -0,0 +1,666 @@ +Attribute VB_Name = "modWorker" +Option Explicit +'------------------------------------------------------------------------- +'The project is the Worker component of the Application Performance Explorer +'The Worker is designed to function as a thread per object or +'single-use OLE Server to be created by the QueueMgr +'component. The Worker loads Service provider objects to accomplish +'tasks. The Worker gets task requests from the Queue Manager and returns +'results to the back to the Queue Manager. +' +'Key Files: +' Worker.cls public class used as controling OLE interface +'------------------------------------------------------------------------- +'Declares +Private Declare Function GetTickCount Lib "kernel32" () As Long +Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long +Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long + +'Public Constants +Public Const giERROR_THRESHOLD As Integer = 32000 +Public Const giTIMER_INTERVAL As Integer = 500 +Public Const giMAX_ALLOWED_RETRIES As Integer = 500 +Public Const giRETRY_WAIT_MIN As Integer = 500 'Retry Wait is measure in DoEvent cyles +Public Const giRETRY_WAIT_MAX As Integer = 2500 + +'Property defaults +Public Const gbLOG_DEFAULT As Boolean = False +Public Const gbPERSISTENCE_DEFAULT As Boolean = True +Public Const gbEARLY_BIND_DEFAULT As Boolean = True +Public Const gsCOMMAND_DELIMITER As String * 1 = "." + +'Message Constants, resourse string +Public Const giEXECUTE_BEGIN As Integer = 3 +Public Const giEXECUTE_END As Integer = 4 +Public Const giGET_REQUEST_BEGIN As Integer = 6 +Public Const giWORKER_NAME As Integer = 7 +Public Const giGET_REQUEST_END_NEW_SERVICE As Integer = 8 +Public Const giGET_REQUEST_END_NO_SERVICE As Integer = 9 +Public Const giDO_SERVICE_RECEIVED As Integer = 10 +Public Const giCALL_REJECTED_RETRY As Integer = 11 +Public Const giERROR_PREFIX As Integer = 12 + +'User Defined Error Codes which serve as resource string Indexes +Public Const giINVALID_COMMAND_PARAMETER As Integer = 32767 + +'Default Timer interval +Private Const mlDEFAULT_INTERVAL As Long = 1 + +'User Defined Type +Public Type Service + ID As String 'The ID of the Service Request, known by QueueMgr, and Expediter + Command As String 'Format is "Library.Class.Method" + Data As Variant 'Variant received by Queue Mgr pass from a client + Return As Variant 'Variant returned by Service object + DataPresent As Boolean 'Flag received by QueueMgr, if true pass data to Service object +End Type + +Public glWorkerID As Long 'This is given by the queue manager +Public gbLog As Boolean 'If true log Service +Public gbPersistent As Boolean 'If true, the worker keeps reference to + 'every Service object it has used, else + 'worker releases Service object after + 'each use. +Public gbEarlyBind As Boolean 'If true, the worker uses code that utilizes + 'early binding. This option is only + 'available for Service objects classes that + 'were developed with the worker class, + 'because early binding is only available + 'if class names are hard coded. +Public goLogger As APEInterfaces.ILogger 'Logger object +Public goQueueDelegator As APEInterfaces.IQueueDelegator 'QueueManager class object +Public gcServices As Collection 'Collection of Service objects, using + '"Library.Class" as the key + 'Object and its name +Public gcServiceConfigurations As New Collection ' Collection of Service Configuration Options variants + ' indexed by "Library.Class" +Public gudtService As Service 'Stores the Service Request that needs processed +Public gbNewService As Boolean 'If true a new Service is being processed. + 'Do not retrieve another +Public gbShutDown As Boolean + +'The following object variable is only used if gbEarlyBind is true +Public goEarlyBoundService As APEInterfaces.IService +'The following variables are used to speed up successive +'Service request that have the same Command value (Lib.Class.Method) +Public goLastServiceUsed As Object +Public gsLastCommandUsed As String +Public gsLastMethodUsed As String +Public gsLastLibClassUsed As String + + + +'Timer related variables +Private mlTimerID As Long 'The ID of the system timer created by this object +Private mlInterval As Long 'The interval of this timer +Private mbTimerStarted As Boolean 'If true, a system timer is set for this object +Private mbTimerEnabled As Boolean 'Equals the enabled property of this object + +'*********************** +'Public Procedures +'*********************** + +Public Sub GetLibClassMethod(sLibClass As String, sMethod As String, sReceived As String) + '------------------------------------------------------------------------- + 'Purpose: Called by the DoService and CheckService procedure. Get the + ' library.class and the method from sReceived. sReceived is in + ' the format "library.class.method". + 'In: [sReceive] + ' Is the Command received by a client or the QueueMgr, in the + ' format "library.class.method" + 'Out: [sLibClass] + ' Returns the "library.class" of sReceive + ' [sMethod] + ' Returns the "method" of sReceive + '------------------------------------------------------------------------- + Dim iPos As Integer + + iPos = InStr(sReceived, gsCOMMAND_DELIMITER) + If iPos = 0 Then Err.Raise giINVALID_COMMAND_PARAMETER, , LoadResString(giINVALID_COMMAND_PARAMETER) + iPos = InStr((iPos + 1), sReceived, gsCOMMAND_DELIMITER) + If iPos = 0 Then Err.Raise giINVALID_COMMAND_PARAMETER, , LoadResString(giINVALID_COMMAND_PARAMETER) + sLibClass = Left$(sReceived, (iPos - 1)) + sMethod = Right$(sReceived, (Len(sReceived) - iPos)) +End Sub + +Public Function GetServiceObject(sLibClass As String) As Object + '------------------------------------------------------------------------- + 'Purpose: Called by CheckService and LoadServiceObject. Loads the Server + ' object specified by sLibClass. If mbPerssistent is true, see + ' if the object is already loaded and in gcServices collection. + ' If it isn't in collection, load it and add it to the collection + 'In: [sLibClass] + ' ProgID of needed server object + 'Return: Object specified by passed ProgID + 'Assumption: + ' gcServices is a valid collection object if gbPersistent is true + ' gcServiceConfigurations contains an object indexed by sLibClass + '------------------------------------------------------------------------- + Dim oService As Object 'Object that will be return after being + 'created a retrieved according to ProgID + If gbPersistent Then + 'Turn off error handling in case + 'the key sLibClass does not exist in the collection + Err.Clear + On Error Resume Next + Set oService = gcServices.Item(sLibClass) + 'If Error, Object variable or With block variable not set occured + 'Create object and add it to gcServices + If Err.Number = ERR_INVALID_PROCEDURE_CALL Then + 'Use user defined function that handles + 'Late binding versus early binding options + On Error GoTo 0 + Set oService = CreateObject(sLibClass) + gcServices.Add oService, sLibClass + End If + Else + Set oService = CreateObject(sLibClass) + End If + oService.Initialize gcServiceConfigurations(sLibClass) + Set GetServiceObject = oService +End Function + +Public Sub LogEvent(intMessage As Integer, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: To add a record to the AELogger.Logger object, if logging is on. + 'In: [intMessage] + ' Resource string key of the string that should put in the log + ' record + ' [sServiceID] + ' The ID of the Service or Task request that will form part of + ' the log record + 'Assumption: + ' goLogger is a valid AELogger.Logger object if gbLog is true + '------------------------------------------------------------------------- + On Error GoTo LogEventError + If gbLog Then + goLogger.Record LoadResString(giWORKER_NAME) & Str$(glWorkerID), sServiceID, LoadResString(intMessage), GetTickCount() + End If + Exit Sub +LogEventError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim iRetry As Integer + Dim il As Integer + Dim ir As Integer + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + Resume + Else + 'We reached our max retries + 'This would occur when clients are sending + 'there logs + LogError Err, gudtService.ID + Exit Sub + End If + Case Else + LogError Err, gudtService.ID + Exit Sub + End Select + Exit Sub +End Sub + +Public Sub LogError(ByVal oErr As ErrObject, sServiceID As String) + '------------------------------------------------------------------------- + 'Purpose: To add an error record to the AELogger.Logger object + ' + 'In: [oErr] + ' Error object which hold the error information that will + ' form the log record + ' [sServiceID] + ' The ID of the Service or Task request that will form part of + ' the log record + 'Assumption: + ' goLogger is a valid AELogger.Logger object + '------------------------------------------------------------------------- + goLogger.Record LoadResString(giWORKER_NAME) & Str$(glWorkerID), sServiceID, LoadResString(giERROR_PREFIX) & Str$(oErr.Number) & gsSEPERATOR & oErr.Source & gsSEPERATOR & oErr.Description, GetTickCount() +End Sub + +Public Sub SetInterval(lInterval As Long) + '------------------------------------------------------------------------- + 'Purpose: Changes the interval of the Timer + 'In: [lInterval] + ' The new interval to set the timer to. + 'Effects: [mlInterval] + ' Becomes equal to lInterval + ' Calls SetInterval only if there is a system timer corresponding + ' to this object + '------------------------------------------------------------------------- + If mlInterval <> lInterval Then + mlInterval = lInterval + If mbTimerStarted Then + ChangeInterval lInterval, mlTimerID + End If + End If +End Sub + +Public Sub SetEnabled(bEnabled As Boolean) + '------------------------------------------------------------------------- + 'Purpose: Starts a system timer if bEnabled is true + ' Stops the timer if bEnabled is false + 'Effects: [mbTimerEnabled] is set equal to bEnabled + ' [mbTimerStarted] is set to true if StartTimer succeeds + ' is set to false if StopTimer succeeds + ' If true a new system timer is started and the TimerID + ' is stored in a class level variable so that this object + ' can effect the specific system timer. + '------------------------------------------------------------------------- + Dim lReturn As Long + 'If shut down flag is true always disable timer + If gbShutDown Then bEnabled = False + + mbTimerEnabled = bEnabled 'Even if calling KillTimer fails + 'This flag will stop processing of TimerProc events + If bEnabled <> mbTimerStarted Then + If bEnabled Then + mlTimerID = StartTimer(mlInterval) + If mlTimerID <> 0 Then + mbTimerStarted = True + End If + Else + lReturn = StopTimer(mlTimerID) + If lReturn = 1 Then + mbTimerStarted = False + End If + End If + End If +End Sub + +Public Sub CacheServiceConfiguration(sLibClass As String, vServiceConfiguration As Variant) + Dim vTemp As Variant + Dim lError As Long + + On Error Resume Next + vTemp = gcServiceConfigurations(sLibClass) + lError = Err.Number + On Error GoTo 0 + Select Case lError + Case 0 ' Item exists + If IsDifferent(vTemp, vServiceConfiguration) Then ' Update configuration + With gcServiceConfigurations + .Remove sLibClass + .Add vServiceConfiguration, sLibClass + End With + End If + Case ERR_INVALID_PROCEDURE_CALL ' Item doesn't exist + gcServiceConfigurations.Add vServiceConfiguration, sLibClass + Case Else + Err.Raise lError + End Select +End Sub + +'******************** +'Private Procedures +'******************** +Private Function IsDifferent(vA As Variant, vB As Variant) As Boolean +' Compares two variants and returns True if they are different. + If VarType(vA) <> VarType(vB) Then + IsDifferent = True + Else + Select Case VarType(vA) + Case vbArray Or (VarType(vA) Xor vbArray) + ' Presumes array of intrinsic types + If LBound(vA) = LBound(vB) And UBound(vA) = UBound(vB) Then + Dim i As Long + IsDifferent = False + For i = LBound(vA) To UBound(vA) + If vA(i) <> vB(i) Then + IsDifferent = True + Exit For + End If + Next + Else + IsDifferent = True + End If + Case vbObject, vbDataObject + IsDifferent = Not (vA Is vB) + Case Else + IsDifferent = (vA <> vB) + End Select + End If +End Function + +Private Sub CheckService() + '------------------------------------------------------------------------- + 'Purpose: Called by the PollQueue procedure. Checks to see of service + ' task request data was returned by call to QueueMgr. If it + ' was, CheckService loads the needed Service provider object + ' and calls it to accomplish the task. The this procedure poles + ' the QueueMgr again to get a new task request. In the same call + ' the finished service request results are returned as parameters. + ' The new service request is received as the result. + ' If no task, request is returned + ' the timer is started which will continue poling the queue. + ' Otherwise, CheckService will continue a cycle as long as the + ' the QueueMgr returns a task request when poled. + 'Assumptions: + ' If [gbNewService] is true, there is valid task request data + ' in the [gudtService] type. + ' [goQueueDelegator] is a valid reference to AEQueueMgr.clsQueueDelegator + ' if the goQueueDelegator.GetServiceRequest returns an integer value of giCLOSE_WORKER_NOW + ' then the Worker object has been released from the QueueMgr. + 'Effects: + ' If the goQueueDelegator.GetServiceRequest returns a value of giCLOSE_WORKER_NOW + ' this procedure will close this Worker application + ' [gudtService] + ' After using the data in this type, this procedure will call + ' the QueueMgr again, and fill this type with new data if a + ' task request was returned. + ' [goEarlyBoundService] + ' Set equal to AEService.Service class object if passed ProgID + ' equals "AEService.Service" + ' [gsLastCommandUsed] + ' Will get updated with the current value of gudtService.Command + ' [gsLastLibClassUsed] + ' Will get updated with the current Lib.Class portion of + ' of gudtService.Command + ' [gsLastMethodUsed] + ' Will get updated with the current .Method portion of + ' gudtService.Command + ' [goLastServiceUsed] + ' Set equal to the object created using the passed ProgID + ' Timer is disabled on entrance and enabled if + ' loop is exited becaue QueueMgr did not return a task request + '------------------------------------------------------------------------- + Dim sError As String 'Error handling places error information into + 'this string in the format of "number; source; description" + 'passed to QueueMgr with return data. Client + 'receives this. Elements of error collection + 'are delimited by a semicolon and a space. + Dim iRetry As Integer 'Counter for how many attempts are made to call + 'an OLE server. + Dim vServiceData As Variant 'value returned by QueueMgr as a variant array + 'Elements of it are placed into gudtService type + Dim bCallingQueue As Boolean + + On Error GoTo CheckServiceError + 'Disable timer because it only needs enabled + 'When there is a new Service + SetEnabled False + 'If there is a new Service process it + If gbNewService Then + Do + iRetry = 0 + + If Not gsLastCommandUsed = gudtService.Command Or goLastServiceUsed Is Nothing Then + 'Get the library.class from gudtService.Command + 'gudtService.Command is in the format "library.class.method" + gsLastCommandUsed = gudtService.Command + GetLibClassMethod gsLastLibClassUsed, gsLastMethodUsed, gudtService.Command + If (VarType(gudtService.Data) And vbArray) <> 0 Then + CacheServiceConfiguration gsLastLibClassUsed, gudtService.Data(giRECORD_SERVICE_CONFIGURATION) + Else + CacheServiceConfiguration gsLastLibClassUsed, gudtService.Data(CStr(giRECORD_SERVICE_CONFIGURATION)) + End If + 'Get the Service object + Set goLastServiceUsed = GetServiceObject(gsLastLibClassUsed) + If gbEarlyBind Then + Set goEarlyBoundService = goLastServiceUsed + End If + End If + 'Call the execute method of the class object + 'passing the method string and the send data as variant, + 'and the return data as variant by reference + LogEvent giEXECUTE_BEGIN, gudtService.ID + If gbEarlyBind Then + 'Use the Earlybound object reference + If gudtService.DataPresent Then + goEarlyBoundService.Execute gudtService.ID, gsLastMethodUsed, gudtService.Data, gudtService.Return + Else + goEarlyBoundService.Execute gudtService.ID, gsLastMethodUsed + End If + Else + If gudtService.DataPresent Then + goLastServiceUsed.Execute gudtService.ID, gsLastMethodUsed, gudtService.Data, gudtService.Return + Else + goLastServiceUsed.Execute gudtService.ID, gsLastMethodUsed + End If + End If + LogEvent giEXECUTE_END, gudtService.ID + +SendServiceResult: + + 'Notify QueueManager that Service is completed + 'And worker is ready for a new Service + 'QueueMgr can return another Service + 'In the same call pass the Service Request results + 'to the QueueMgr as parameters. The Expediter will + 'get the Service results from the Queue manager + LogEvent giGET_REQUEST_BEGIN, gudtService.ID + iRetry = 0 + + 'Call the QueueMgr to get a new Service Request + bCallingQueue = True + vServiceData = goQueueDelegator.GetServiceRequest(glWorkerID, gudtService.ID, gudtService.Return, CVar(sError)) + bCallingQueue = False + + 'Check if results were returned + 'The QueueMgr will not return results if it has no Service Requests + 'The QueueMgr may return an integer value of giCLOSE_WORKER_NOW + 'If it does close this worker + If VarType(vServiceData) = (vbArray + vbVariant) Then + 'Results were returned + With gudtService + .ID = vServiceData(giSERVICE_ID_ELEMENT) + .Command = vServiceData(giCOMMAND_ELEMENT) + .DataPresent = vServiceData(giDATA_PRESENT_ELEMENT) + Select Case VarType(vServiceData(giSERVICE_DATA_ELEMENT)) + Case vbNull, vbEmpty + .Data = Null + Case vbObject, vbError, vbDataObject + Set .Data = vServiceData(giSERVICE_DATA_ELEMENT) + Case Else + .Data = vServiceData(giSERVICE_DATA_ELEMENT) + End Select + End With + 'If an Service was passed back call CheckService again + 'Log whether or not a new Service was received + LogEvent giGET_REQUEST_END_NEW_SERVICE, gudtService.ID + gbNewService = True + Else + 'Check to see if the Worker should shut down!!!! + If VarType(vServiceData) = vbInteger Then + If vServiceData = giCLOSE_WORKER_NOW Then + 'Close the Worker + Exit Sub 'The Worker Terminate event will do the rest + End If + End If + + 'Results were not returned. See if Worker needs kept alive by Setting + 'a timer or if it needs shutdown because ShutDown was called. + LogEvent giGET_REQUEST_END_NO_SERVICE, gudtService.ID + gbNewService = False + If Not gbShutDown Then + SetEnabled True + End If + End If + Loop Until (VarType(vServiceData) <> vbArray + vbVariant) Or gbShutDown + End If + Exit Sub +CheckServiceError: + Dim il As Integer + Dim ir As Integer + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + 'Shutdown may be called during DoEvents loop + If gbShutDown Then + Exit Sub + Else + LogEvent giCALL_REJECTED_RETRY, gudtService.ID + Resume + End If + Else + 'We reached our max retries + LogError Err, gudtService.ID + End If + Case Is > giERROR_THRESHOLD + 'Create error string and pass it back to the client + 'Through the QueueMgr and Expediter + sError = Err.Source & "; " & CStr(Err.Number + vbObjectError) & "; " & Err.Source & gsSEPERATOR & Err.Description + LogError Err, gudtService.ID + Resume SendServiceResult + Case ERR_OBJECT_VARIABLE_NOT_SET + LogError Err, gudtService.ID + If Not bCallingQueue Then + sError = Err.Source & "; " & CStr(Err.Number) & "; " & Err.Description + Resume SendServiceResult + End If + Case Else + LogError Err, gudtService.ID + sError = Err.Source & "; " & CStr(Err.Number) & "; " & Err.Description + Resume SendServiceResult + End Select + 'Reset timer and flag so that Worker will continue + 'processing other Services even though this one may have failed. + SetEnabled True + gbNewService = False + Exit Sub +End Sub + +Private Sub PollQueue() + '------------------------------------------------------------------------- + 'Purpose: Called by the TimerProc. Calls QueueMgr to + ' received task request data. If data is returned, timer is + ' disabled and CheckService is called to process it. + 'Assumptions: + ' If CheckService is processing a TaskRequest [gbNewService] is true. + ' [moQueueDelegatorMgr] is a valid refererence to AEQueueMgr.goQueueDelegator + 'Effects: + ' [gudtService] + ' is filled with task request data if call to QueueMgr + ' returns a task request. + ' Timer is disabled if task request is received + ' [gbNewService] is made true if a task request is received + '------------------------------------------------------------------------- + Dim vServiceData As Variant 'Return value of moQueueDelegatorMgr.GetServiceRequest + 'if a task request is returned this will be + 'a variant array. Elements of the array will + 'be placed in the gudtService type + On Error GoTo PoleQueueError + 'If I am already processing a Service do not pole the QueueManager + If gbNewService Or gbShutDown Then Exit Sub + vServiceData = goQueueDelegator.GetServiceRequest(glWorkerID) + If VarType(vServiceData) = vbArray + vbVariant Then + With gudtService + .ID = vServiceData(giSERVICE_ID_ELEMENT) + .Command = vServiceData(giCOMMAND_ELEMENT) + .DataPresent = vServiceData(giDATA_PRESENT_ELEMENT) + Select Case VarType(vServiceData(giSERVICE_DATA_ELEMENT)) + Case vbNull, vbEmpty + .Data = Null + Case vbObject, vbError, vbDataObject + Set .Data = vServiceData(giSERVICE_DATA_ELEMENT) + Case Else + .Data = vServiceData(giSERVICE_DATA_ELEMENT) + End Select + End With + 'If an Service was passed back call CheckService again + 'Log whether or not a new Service was received + LogEvent giGET_REQUEST_END_NEW_SERVICE, gudtService.ID + gbNewService = True + SetEnabled False + CheckService + Else + gbNewService = False + SetEnabled True + End If + Exit Sub +PoleQueueError: + Select Case Err.Number + Case RPC_E_CALL_REJECTED + 'Collision error, the OLE server is busy + Dim il As Integer + Dim ir As Integer + Dim iRetry As Integer + If iRetry < giMAX_ALLOWED_RETRIES Then + iRetry = iRetry + 1 + ir = Int((giRETRY_WAIT_MAX - giRETRY_WAIT_MIN + 1) * Rnd + giRETRY_WAIT_MIN) + For il = 0 To ir + DoEvents + Next il + 'Shutdown may be called during DoEvents loop + If gbShutDown Then Exit Sub Else Resume + Else + 'We reached our max retries + LogError Err, gudtService.ID + Exit Sub + End If + Case Is > giERROR_THRESHOLD + 'Create error string and pass it back to the client + 'Through the expediter and QueueMgr + LogError Err, gudtService.ID + SetEnabled True + Exit Sub + Case Else + LogError Err, gudtService.ID + SetEnabled True + Exit Sub + End Select +End Sub + +Private Function StartTimer(lInterval As Long) As Long + '------------------------------------------------------------------------- + 'Purpose: Starts a system timer + 'In: [lInterval] + ' The interval in milliseconds for the desired timer + 'Effects: Calls the SetTimer API, passing the AddressOF the TimerProc + ' Function and lInterval + '------------------------------------------------------------------------- + StartTimer = SetTimer(0, 0, lInterval, AddressOf TimerProc) +End Function + +Private Function StopTimer(lTimerID As Long) As Long + '------------------------------------------------------------------------- + 'Purpose: Stops a specific system timer + 'In: [lTimerID] + ' The ID of the specific system timer to stop + 'Effects: Calls the KillTimerID API, passing lTimerID + '------------------------------------------------------------------------- + StopTimer = KillTimer(0, lTimerID) +End Function + +Private Sub ChangeInterval(lInterval As Long, lTimerID As Long) + '------------------------------------------------------------------------- + 'Purpose: Changes the interval of an alreading existing system timer + 'In: [lTimerID] + ' The ID of the specific system timer to change + ' [lInterval] + ' The interval to change the timer to. + 'Effects: Calls the SetTimer API, passing lTimerID, lInterval, and the + ' AddressOf TimerProc + '------------------------------------------------------------------------- + Dim lResult As Long + lResult = SetTimer(0, lTimerID, lInterval, AddressOf TimerProc) +End Sub + +Private Sub TimerProc(ByVal lHwnd As Long, ByVal lMsg As Long, ByVal lTimerID As Long, ByVal lTime As Long) + '------------------------------------------------------------------------- + 'Purpose: Address of this function is passed in the SetTimer API. When + ' a system timer is started it calls this function every set + ' interval + '------------------------------------------------------------------------- + Static stbInPollQueue As Boolean 'Static flag is used to keep PollQueue + 'from being entered while it is in a + 'DoEvents loop to handle error + 'RPC_E_CALL_REJECTED + On Error Resume Next + If mbTimerEnabled And (Not stbInPollQueue) Then + stbInPollQueue = True + PollQueue + stbInPollQueue = False + End If +End Sub + + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/WORKER.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/WORKER.CLS new file mode 100644 index 0000000..d563899 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/WORKER.CLS @@ -0,0 +1,382 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = 0 'False + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "Worker" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Worker" +Option Explicit +'------------------------------------------------------------------------- +'The Class is the only public class in this project. See notes in +'modWorker for purpose. +' It implements the IWorker interface. +'------------------------------------------------------------------------- + +Implements APEInterfaces.IWorker + +'*********************** +'Public Properties +'*********************** + +Public Property Set IWorker_QueueMgrRef(ByVal oQueueMgr As APEInterfaces.IQueueDelegator) +Attribute IWorker_QueueMgrRef.VB_Description = "Sets the QueueDelegator object that the Worker uses to receive Service Requests and to return Service Request results to the AEQueueMgr." + '------------------------------------------------------------------------- + 'Purpose: Called by the the QueueMgr to pass a reference of itself to + ' the Worker. + 'In: [oQueueMgr] + ' A valid reference to a QueueMgr class object + 'Effects: [goQueueDelegator] + ' Sets the global object variable equal to the passed reference + '------------------------------------------------------------------------- + Set goQueueDelegator = oQueueMgr + +End Property + +Public Property Let IWorker_Log(ByVal bLog As Boolean) +Attribute IWorker_Log.VB_Description = "Determines if the Worker logs its events and errors to the AELogger.Logger object." + '------------------------------------------------------------------------- + 'Purpose: If property is true, the Worker worker generates log records + ' for events and passes the records to the logger. + 'Effects: [goLogger] + '------------------------------------------------------------------------- + gbLog = bLog +End Property + +Public Property Get IWorker_Log() As Boolean + IWorker_Log = gbLog +End Property + +Public Property Let IWorker_ID(ByVal lID As Long) +Attribute IWorker_ID.VB_Description = "Returns or Sets the ID used by the AEQueueMgr or AEPoolMgr to manage this Worker." + '------------------------------------------------------------------------- + 'Purpose: Called by QueueMgr to give the Worker a unique ID. This ID + ' can only be set once. The Worker must have this ID to poll + ' the QueueMgr. + 'Effects: + ' [glWorkerID] + ' Is set equal to the passed long, if it has not already happened + '------------------------------------------------------------------------- + Static stbAlreadySet As Boolean + If Not stbAlreadySet Then + glWorkerID = lID + stbAlreadySet = True + End If +End Property + +Public Property Get IWorker_ID() As Long + IWorker_ID = glWorkerID +End Property + +Public Property Let IWorker_PersistentServices(ByVal bPersistent As Boolean) +Attribute IWorker_PersistentServices.VB_Description = "Determines whether the Worker retains references to service objects that it instantiates or if it releases their references after each use." + '------------------------------------------------------------------------- + 'Purpose: If true, the worker keeps reference to + ' every Service object it has used, else + ' worker releases Service object after + ' each use. + 'Effects: + ' [gcServices] + ' If property is being changed to false + ' then set collection of Service Object + ' references to nothing, if it is change + ' to true set equal to new collection + '------------------------------------------------------------------------- + If gbPersistent <> bPersistent Then + gbPersistent = bPersistent + If Not bPersistent Then + Set gcServices = Nothing + Else + Set gcServices = New Collection + End If + End If +End Property + +Public Property Get IWorker_PersistentServices() As Boolean + IWorker_PersistentServices = gbPersistent +End Property + +Public Property Let IWorker_EarlyBindServices(ByVal bEarlyBind As Boolean) +Attribute IWorker_EarlyBindServices.VB_Description = "Specifies whether service objects should be instantiated as APEInterfaces.Service class objects or as Object class objects. If true, all service objects must implement the APEInterfaces.Service interface." + '------------------------------------------------------------------------- + 'Purpose: If true, the worker uses code that utilizes + ' early binding. This option is only + ' available for Service objects classes that + ' were developed with the worker class, + ' because early binding is only available + ' if class names are hard coded. + 'Effects: + ' [gbEarlyBind] is made equal to passed Boolean + '------------------------------------------------------------------------- + gbEarlyBind = bEarlyBind +End Property + +Public Property Get IWorker_EarlyBindServices() As Boolean + IWorker_EarlyBindServices = gbEarlyBind +End Property + +'************************ +'Public Methods +'************************ +Public Sub IWorker_SetProperties(Optional ByVal bLog As Variant, _ + Optional ByVal bEarlyBindServices As Variant, _ + Optional ByVal bPersistentServices As Variant, _ + Optional ByVal lID As Variant) +Attribute IWorker_SetProperties.VB_Description = "Sets Worker properties in one method call." + '------------------------------------------------------------------------- + 'Purpose: Called by QueueMgr or Client to set properties with one method + ' call + 'Effects: + ' [Properties] + ' Log, EarlyBindServices, ID, PersistentServices, UseQueueMgr + '------------------------------------------------------------------------- + With Me + .IWorker_Log = bLog + If Not IsMissing(bEarlyBindServices) Then gbEarlyBind = bEarlyBindServices + If Not IsMissing(lID) Then .IWorker_ID = lID + If Not IsMissing(bPersistentServices) Then .IWorker_PersistentServices = bPersistentServices + End With + ' If a Service object already exists, initialize it because a new test is starting + If Not goLastServiceUsed Is Nothing Then + goLastServiceUsed.Initialize gcServiceConfigurations(gsLastLibClassUsed) + End If +End Sub + +Public Function IWorker_DoService(ByVal sServiceID As String, ByVal sCommand As String, Optional ByVal vData As Variant) As Variant +Attribute IWorker_DoService.VB_Description = "Receives a Service Request, loads the object needed to fulfill the Service Request, and returns the results." + '------------------------------------------------------------------------- + 'Purpose: This method allows a client to accomplish the same tasks + ' accomplished by the return of a task request when the worker calls + ' the QueueMgr in PollQueue or CheckService, but uses a synchronous + ' process instead of asynchronous. + ' This method is intended to be called directly by a client rather than + ' the QueueMgr. It is provided for using a Pool Manager system or + ' Direct instanciation system + ' + ' This loads a service object, and may or may not keep it in a collection + ' for future use. The service object is called to accomplish the + ' requested task and then the return results of the service object + ' are returned directly to the calling client + 'IN: + ' [sServiceID] + ' An ID for the requested Service request. It is only useful for + ' tracing log records. + ' [sCommand] + ' ProgID and Method or Task name in the formate of "Library.Class.Method" + ' The "Library.Class" is used to load the needed Service object. The + ' "Method" string is passed to the Execute method of the service object + ' [vData] + ' (Optional) Data passed by the client that gets passed to the Service + ' object. This data is not manipulated by the Worker at all. + 'Return: + ' Variant: this value is obtained by calling the service object. It is + ' the results of the task accomplished by the service object. It is not + ' manipulated by the Worker at all. + 'Effects: + ' [goEarlyBoundService] + ' Set equal to AEService.Service class object if passed ProgID + ' equals "AEService.Service" + ' [gsLastCommandUsed] + ' Set equal to sCommand parameter + ' [gsLastLibClassUsed] + ' Set equal to the Library.Class in the sCommand Parameter + ' [gsLastMethodUsed] + ' Set equal to the method portion of the passed sCommand parameter + ' [goLastServiceUsed] + ' Set equal to the object created using the passed ProgID + '------------------------------------------------------------------------- + Dim vReturn As Variant + Dim bDataPresent As Boolean + If Not IsMissing(vData) Then bDataPresent = True Else bDataPresent = False + If Not gsLastCommandUsed = sCommand Or goLastServiceUsed Is Nothing Then + 'Get the library.class from sCommand + 'sCommand is in the format "library.class.method" + GetLibClassMethod gsLastLibClassUsed, gsLastMethodUsed, sCommand + ' Cache the service configuration options + Debug.Assert bDataPresent ' Service configuration options must be specified + If (VarType(vData) And vbArray) <> 0 Then + CacheServiceConfiguration gsLastLibClassUsed, vData(giRECORD_SERVICE_CONFIGURATION) + Else + ' If the RPC call is rejected we report a special error message + On Error Resume Next + CacheServiceConfiguration gsLastLibClassUsed, vData(CStr(giRECORD_SERVICE_CONFIGURATION)) + Dim lError As Long + lError = IIf(Err.Number = RPC_E_CALL_REJECTED, giRPC_ERROR_ACCESSING_COLLECTION, Err.Number) + On Error GoTo 0 + If lError <> 0 Then + Err.Raise lError + End If + End If + 'Get the Service object + Set goLastServiceUsed = GetServiceObject(gsLastLibClassUsed) + If gbEarlyBind Then + Set goEarlyBoundService = goLastServiceUsed + End If + gsLastCommandUsed = sCommand + End If + + 'Call the execute method of the class object + 'passing the method string and the send data as variant, + 'and the return data as variant by reference + LogEvent giEXECUTE_BEGIN, sServiceID + If gbEarlyBind Then + 'Use the Earlybound object reference + If bDataPresent Then + goEarlyBoundService.Execute sServiceID, gsLastMethodUsed, vData, vReturn + Else + goEarlyBoundService.Execute sServiceID, gsLastMethodUsed + End If + Else + If bDataPresent Then + goLastServiceUsed.Execute sServiceID, gsLastMethodUsed, vData, vReturn + Else + goLastServiceUsed.Execute sServiceID, gsLastMethodUsed + End If + End If + LogEvent giEXECUTE_END, sServiceID + 'Return the data + Select Case VarType(vReturn) + Case vbNull, vbEmpty + IWorker_DoService = Null + Case vbObject, vbError, vbDataObject + Set IWorker_DoService = vReturn + Case Else + IWorker_DoService = vReturn + End Select +End Function + + +Public Sub IWorker_LoadServiceObject(ByVal ServiceLibClass As String, ByVal vServiceConfiguration As Variant) +Attribute IWorker_LoadServiceObject.VB_Description = "Loads an object whose ProgID matches ServiceLibClass, if PersistentServices is true." + '------------------------------------------------------------------------- + 'Purpose: Method is provided to instruct worker to Load an Service + ' object without calling the execute method of the Service + ' object. + 'IN: + ' [ServiceLibClass] + ' String that contains a ProgID. ServiceLibClass may be in the + ' format "library.class.method" or "library.class" + 'Effects: + ' [goEarlyBoundService] + ' Set equal to AEService.Service class object if passed ProgID + ' equals "AEService.Service" + ' [gsLastCommandUsed] + ' Set equal to ServiceLibClass parameter + ' [gsLastLibClassUsed] + ' Set equal to the Library.Class in the ServiceLibClass Parameter + ' [gsLastMethodUsed] + ' Set equal to the method portion of the passed ServiceLibClass parameter + ' [goLastServiceUsed] + ' Set equal to the object created using the passed ProgID + '------------------------------------------------------------------------- + 'Method is provided to instruct worker to Load an Service + 'object without calling the execute method of the Service + 'object + Dim oService As Object + Dim sMethod As String + Dim iPos As Integer + gsLastCommandUsed = ServiceLibClass + 'Get the library.class from ServiceLibClass + 'ServiceLibClass may be in the format "library.class.method" + 'or "library.class" + iPos = InStr(ServiceLibClass, gsCOMMAND_DELIMITER) + If iPos = 0 Then Err.Raise giINVALID_COMMAND_PARAMETER, , LoadResString(giINVALID_COMMAND_PARAMETER) + iPos = InStr((iPos + 1), ServiceLibClass, gsCOMMAND_DELIMITER) + If iPos = 0 Then + gsLastLibClassUsed = ServiceLibClass + Else + gsLastLibClassUsed = Left$(ServiceLibClass, (iPos - 1)) + gsLastMethodUsed = Right$(ServiceLibClass, Len(ServiceLibClass) - iPos) + End If + 'Get the Service object + CacheServiceConfiguration gsLastLibClassUsed, vServiceConfiguration + Set goLastServiceUsed = GetServiceObject(gsLastLibClassUsed) + If gbEarlyBind Then + Set goEarlyBoundService = goLastServiceUsed + End If +End Sub + +Public Sub IWorker_ShutDown() +Attribute IWorker_ShutDown.VB_Description = "Causes Worker to stop processing a Service Requests and destroy its QueueDelegator object." + '------------------------------------------------------------------------- + 'Purpose: Shut down the Worker. Timer is Killed. Reference to Queue + ' Manager is destroyed. + 'Effects: + ' [gbShutDown] + ' Is set to false. + '------------------------------------------------------------------------- + gbShutDown = True + SetEnabled False +End Sub + +Public Function IWorker_GetLogger() As APEInterfaces.ILogger +Attribute IWorker_GetLogger.VB_Description = "Returns the AELogger.Logger object instantiated by this Worker." + '------------------------------------------------------------------------- + 'Purpose: Get the logger object local to this worker + 'Return: A valid AELogger.Logger object on the same machine as + ' this Worker class object + '------------------------------------------------------------------------- + Set IWorker_GetLogger = goLogger +End Function + +Public Sub IWorker_StartPollingQueue() +Attribute IWorker_StartPollingQueue.VB_Description = "Causes the Worker to start polling the GetServiceRequest method of the QueueDelegator object, if the QueueDelegator object is set." + '------------------------------------------------------------------------- + 'Purpose: Provided for the QueueMgr to cause the Worker to start + ' polling the QueueMgr + 'Effects: + ' Starts timer so that Worker begins polling Queue + '------------------------------------------------------------------------- + 'Start timer to pole queuemgr if not processing a service already + If (Not gbNewService) And (Not goQueueDelegator Is Nothing) Then SetEnabled True +End Sub + +'********************* +'Private procedures +'********************* + +Private Sub Class_Initialize() + On Error GoTo Class_InitializeError + '------------------------------------------------------------------------- + 'Purpose: Puts Worker in its initial state setting many globals + ' to their defaults, if mlInstances = 1 after adding one to it. + '------------------------------------------------------------------------- + App.OleServerBusyRaiseError = True + App.OleServerBusyTimeout = 10000 + 'Set default property values + Set goLogger = CreateObject("AELogger.Logger") + gbLog = gbLOG_DEFAULT + gbPersistent = gbPERSISTENCE_DEFAULT + gbEarlyBind = gbEARLY_BIND_DEFAULT + 'Create cServices collection if gbPersistent + If gbPersistent Then Set gcServices = New Collection + SetInterval giTIMER_INTERVAL + Exit Sub +Class_InitializeError: + LogError Err, gsNULL_SERVICE_ID + Resume Next +End Sub + +Private Sub Class_Terminate() + '------------------------------------------------------------------------- + 'Purpose: Shuts down Worker and destroys objects that it has created, + ' if mlInstances = 0 + '------------------------------------------------------------------------- + On Error GoTo Class_TerminateError + SetEnabled False + Set goLogger = Nothing + Set goLastServiceUsed = Nothing + Set goEarlyBoundService = Nothing + If gbPersistent Then Set gcServices = Nothing + Exit Sub +Class_TerminateError: + LogError Err, gsNULL_SERVICE_ID + Resume Next +End Sub + diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/WORKER.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/WORKER.ICO new file mode 100644 index 0000000..fcba2e2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWORKER/WORKER.ICO differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.RC b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.RC new file mode 100644 index 0000000..d6cdc21 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.RC @@ -0,0 +1,15 @@ +STRINGTABLE DISCARDABLE +BEGIN + //Racreg32 error codes with 200 added for offset + 201 "Unknown run time error occurred" + 202 "No protocol was specified" + 203 "No server machine name was specified" + 204 "An error occurred reading from the registry" + 205 "An error occurred writing to the registry" + 206 "Both the ProgID and CLSID parameters were missing" + 207 "There is no local server (either in-process or cross-process, 16-bit or 32-bit)" + 208 "There was an error looking for the Proxy DLLs, check that they were installed properly" + + //Errors + 32750 "An error occured changing server connection settings: ." +END \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.RES b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.RES new file mode 100644 index 0000000..8dcdb72 Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.RES differ diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.VBP b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.VBP new file mode 100644 index 0000000..cfd9aee --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/AEWRKPVD.VBP @@ -0,0 +1,46 @@ +Type=OleExe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT\System32\STDOLE2.TLB#OLE Automation +Reference=*\G{244D13BD-AFDB-11CE-85D1-00AA00695286}#1.1#0#..\..\EXTERNAL\racreg32.dll#RacReg +Reference=*\G{C93809A0-684C-11D1-9D3E-0020781039AF}#1.0#9#..\AEIntrfc\AEIntrfc.TLB#Application Performance Explorer 2.0 Interfaces +Class=WorkerProvider; clsWrkPd.cls +Module=basWrkPd; basWrkPd.bas +Module=modAEGlobals; ..\AEInclud\modAEGlb.bas +Module=modAEConstants; ..\AEInclud\modAECon.bas +Module=modVBErrors; ..\AEInclud\modVBErr.bas +ResFile32="AEWrkPvd.res" +Startup="(None)" +HelpFile="" +Title="APE Worker Provider" +ExeName32="AEWrkPvd.exe" +Path32="..\..\Retail" +Command32="" +Name="AEWorkerProvider" +HelpContextID="0" +Description="Application Performance Explorer Worker Provider" +CompatibleMode="1" +CompatibleEXE32="..\AECompat\AEWrkPvd.cmp" +MajorVer=2 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Application Performance Explorer Worker Provider" +VersionLegalCopyright="Copyright 1996-1998 Microsoft Corp." +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" +VersionProductName="Application Performance Explorer Worker Provider" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/BASWRKPD.BAS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/BASWRKPD.BAS new file mode 100644 index 0000000..c3a8279 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/BASWRKPD.BAS @@ -0,0 +1,10 @@ +Attribute VB_Name = "basWrkPd" +Option Explicit + +'Constants +Public Const giRACREG_ERROR_CODE_OFFSET = 200 'Add this offset to a RacReg.RegClas error code + 'to convert to corresponding resource + 'string key +Public Const giRACREG_ERROR = 32750 'Error value to raise if RacReg error code + 'is returned by RacReg. + 'Value is also a String Resource key. diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/CLSWRKPD.CLS b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/CLSWRKPD.CLS new file mode 100644 index 0000000..6434f30 --- /dev/null +++ b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/CLSWRKPD.CLS @@ -0,0 +1,48 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = 0 'False + Persistable = 0 'False + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 0 'vbNone +END +Attribute VB_Name = "WorkerProvider" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "APE Worker Provider" +Option Explicit + +Implements APEInterfaces.IWorkerProvider + +Private moInitialErr As ErrObject 'Error that occurred during Class_Initialize + +Public Function IWorkerProvider_GetWorker() As APEInterfaces.IWorker +Attribute IWorkerProvider_GetWorker.VB_Description = "Returns a new AEWorker.Worker instance." + 'Raise error if error occured during Class_Initialize + If Not moInitialErr Is Nothing Then + Err.Raise Err.Number, , Err.Description + End If + + Set IWorkerProvider_GetWorker = CreateObject("AEWorker.Worker") +End Function + +Private Sub Class_Initialize() + 'Make sure the AEWorker.Worker Class is registered + 'local because AEClient may have run on machine + 'previously. It could leave AEWorker.Worker registered + 'remote if it did not unload properly. + Dim oRacReg As RacReg.RegClass + Dim iResult As Integer 'Error return code + On Error GoTo Class_InitializeError + + Set oRacReg = New RacReg.RegClass + iResult = oRacReg.SetAutoServerSettings(False, "AEWorker.Worker") + If iResult > 0 Then + 'Error occurred in RacReg + Err.Raise giRACREG_ERROR + vbObjectError, , ReplaceString(LoadResString(giRACREG_ERROR), gsNAME_TOKEN, LoadResString(iResult + giRACREG_ERROR_CODE_OFFSET)) + End If + Exit Sub +Class_InitializeError: + Set moInitialErr = Err +End Sub diff --git a/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/WRKPVD.ICO b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/WRKPVD.ICO new file mode 100644 index 0000000..5a7474e Binary files /dev/null and b/cadVb/COMMON/TOOLS/APE/SOURCE/AEWRKPVD/WRKPVD.ICO differ diff --git a/cadVb/COMMON/TOOLS/CLIREG/CLIREG32.EXE b/cadVb/COMMON/TOOLS/CLIREG/CLIREG32.EXE new file mode 100644 index 0000000..68669ae Binary files /dev/null and b/cadVb/COMMON/TOOLS/CLIREG/CLIREG32.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/ADODCCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/ADODCCHS.CAB new file mode 100644 index 0000000..01162b7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/ADODCCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/CMCT2CHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/CMCT2CHS.CAB new file mode 100644 index 0000000..aae137d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/CMCT2CHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/CMCT3CHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/CMCT3CHS.CAB new file mode 100644 index 0000000..9869937 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/CMCT3CHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/CMCTLCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/CMCTLCHS.CAB new file mode 100644 index 0000000..7bb7753 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/CMCTLCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/CMDLGCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/CMDLGCHS.CAB new file mode 100644 index 0000000..2c4c74b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/CMDLGCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/COMCT232.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/COMCT232.CAB new file mode 100644 index 0000000..701932e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/COMCT232.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/COMCT332.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/COMCT332.CAB new file mode 100644 index 0000000..80afb51 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/COMCT332.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/COMCTL32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/COMCTL32.CAB new file mode 100644 index 0000000..8c83adc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/COMCTL32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/COMDLG32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/COMDLG32.CAB new file mode 100644 index 0000000..a65d92f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/COMDLG32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DATGDCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DATGDCHS.CAB new file mode 100644 index 0000000..ec5ae17 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DATGDCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DATLSCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DATLSCHS.CAB new file mode 100644 index 0000000..0ff986f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DATLSCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DATRPCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DATRPCHS.CAB new file mode 100644 index 0000000..c2b62dd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DATRPCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DBGRDCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DBGRDCHS.CAB new file mode 100644 index 0000000..027068d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DBGRDCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DBGRID32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DBGRID32.CAB new file mode 100644 index 0000000..33bbd9f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DBGRID32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DBLIST32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DBLIST32.CAB new file mode 100644 index 0000000..e9ab1be Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DBLIST32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DBLSTCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DBLSTCHS.CAB new file mode 100644 index 0000000..c3b8be3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DBLSTCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/DBRPRCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/DBRPRCHS.CAB new file mode 100644 index 0000000..c2ec11a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/DBRPRCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/FLXGDCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/FLXGDCHS.CAB new file mode 100644 index 0000000..4ed5ad4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/FLXGDCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/HTMPRCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/HTMPRCHS.CAB new file mode 100644 index 0000000..e0afad2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/HTMPRCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/INETCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/INETCHS.CAB new file mode 100644 index 0000000..76f6649 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/INETCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MCI32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MCI32.CAB new file mode 100644 index 0000000..d964f5e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MCI32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MCICHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MCICHS.CAB new file mode 100644 index 0000000..b1ae2f6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MCICHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MDAC20.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MDAC20.CAB new file mode 100644 index 0000000..ca7cdcf --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CABINETS/MDAC20.CAB @@ -0,0 +1,6 @@ +MDAC20.cab Чʹ MDAC_TYP.EXE + MDAC 2.0 SDK Visual Studio 98 CD ҵļ + +MDAC_TYP.CAB Ϊʹ VB װṩġ +MDAC_TYP.CAB Ϊ HTML ҳе Codebase ǩ׼ġ +ûҪڹվ MDAC2.0 ĹܣӦִ MDAC_TYP.EXE ļװ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MDAC_TYP.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MDAC_TYP.CAB new file mode 100644 index 0000000..82eb8ff Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MDAC_TYP.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSADODC.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSADODC.CAB new file mode 100644 index 0000000..9c86846 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSADODC.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSBIND.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSBIND.CAB new file mode 100644 index 0000000..ea20e8a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSBIND.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCC2CHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCC2CHS.CAB new file mode 100644 index 0000000..e584268 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCC2CHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCH2CHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCH2CHS.CAB new file mode 100644 index 0000000..21d4f7d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCH2CHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCHRT20.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCHRT20.CAB new file mode 100644 index 0000000..942e2d2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCHRT20.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCMCCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCMCCHS.CAB new file mode 100644 index 0000000..e36f9d5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCMCCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCHS.CAB new file mode 100644 index 0000000..542dbb6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCT2.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCT2.CAB new file mode 100644 index 0000000..aca4cbd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCT2.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCTL.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCTL.CAB new file mode 100644 index 0000000..03cc134 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMCTL.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMM32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMM32.CAB new file mode 100644 index 0000000..efae89d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSCOMM32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSDAO350.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDAO350.CAB new file mode 100644 index 0000000..d53e788 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDAO350.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATGRD.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATGRD.CAB new file mode 100644 index 0000000..188f675 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATGRD.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATLST.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATLST.CAB new file mode 100644 index 0000000..3fcc891 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATLST.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATREP.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATREP.CAB new file mode 100644 index 0000000..44bfb40 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDATREP.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSDBRPTR.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDBRPTR.CAB new file mode 100644 index 0000000..3175fa8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSDBRPTR.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSFLXGRD.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSFLXGRD.CAB new file mode 100644 index 0000000..62f8677 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSFLXGRD.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSHFGCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSHFGCHS.CAB new file mode 100644 index 0000000..ba59074 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSHFGCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSHFLXGD.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSHFLXGD.CAB new file mode 100644 index 0000000..a402f28 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSHFLXGD.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSHTMPGR.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSHTMPGR.CAB new file mode 100644 index 0000000..41a3697 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSHTMPGR.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSINET.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSINET.CAB new file mode 100644 index 0000000..c6a02aa Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSINET.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSMAPI32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMAPI32.CAB new file mode 100644 index 0000000..9fc9571 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMAPI32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSMASK32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMASK32.CAB new file mode 100644 index 0000000..8dda2a8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMASK32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSMPICHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMPICHS.CAB new file mode 100644 index 0000000..a4ff44e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMPICHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSMSKCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMSKCHS.CAB new file mode 100644 index 0000000..cb5fe7a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSMSKCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSPRPCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSPRPCHS.CAB new file mode 100644 index 0000000..725dec5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSPRPCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSRACLI.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSRACLI.CAB new file mode 100644 index 0000000..5e3b447 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSRACLI.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSRDC20.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSRDC20.CAB new file mode 100644 index 0000000..d6c30c2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSRDC20.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSRDO20.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSRDO20.CAB new file mode 100644 index 0000000..b054ee3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSRDO20.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSSTDFMT.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSSTDFMT.CAB new file mode 100644 index 0000000..23b4ced Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSSTDFMT.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSSTKPRP.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSSTKPRP.CAB new file mode 100644 index 0000000..fd7229d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSSTKPRP.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSVBVM60.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSVBVM60.CAB new file mode 100644 index 0000000..f4a2bc5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSVBVM60.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSVCRT40.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSVCRT40.CAB new file mode 100644 index 0000000..474e626 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSVCRT40.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSWCRCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSWCRCHS.CAB new file mode 100644 index 0000000..84599e0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSWCRCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSWCRUN.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSWCRUN.CAB new file mode 100644 index 0000000..e5354a3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSWCRUN.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/MSWINSCK.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/MSWINSCK.CAB new file mode 100644 index 0000000..78aa4b4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/MSWINSCK.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/OLEAUT.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/OLEAUT.CAB new file mode 100644 index 0000000..1665f2d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/OLEAUT.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/PCCLPCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/PCCLPCHS.CAB new file mode 100644 index 0000000..3304de6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/PCCLPCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/PICCLP32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/PICCLP32.CAB new file mode 100644 index 0000000..74a836a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/PICCLP32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/RCHTXCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/RCHTXCHS.CAB new file mode 100644 index 0000000..6a5282b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/RCHTXCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/RDC20CHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/RDC20CHS.CAB new file mode 100644 index 0000000..9d5dd32 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/RDC20CHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/RDO20CHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/RDO20CHS.CAB new file mode 100644 index 0000000..a399439 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/RDO20CHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/RICHTX32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/RICHTX32.CAB new file mode 100644 index 0000000..fa488cb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/RICHTX32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/STDFTCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/STDFTCHS.CAB new file mode 100644 index 0000000..3c00907 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/STDFTCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/SYSINCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/SYSINCHS.CAB new file mode 100644 index 0000000..a4e5952 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/SYSINCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/SYSINFO.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/SYSINFO.CAB new file mode 100644 index 0000000..daa3907 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/SYSINFO.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/TABCTCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/TABCTCHS.CAB new file mode 100644 index 0000000..1e398af Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/TABCTCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/TABCTL32.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/TABCTL32.CAB new file mode 100644 index 0000000..59b21c8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/TABCTL32.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/VB6CHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/VB6CHS.CAB new file mode 100644 index 0000000..e3c004a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/VB6CHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/VBRUN60.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/VBRUN60.CAB new file mode 100644 index 0000000..dfc50f2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/VBRUN60.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CABINETS/WINSKCHS.CAB b/cadVb/COMMON/TOOLS/VB/CABINETS/WINSKCHS.CAB new file mode 100644 index 0000000..91f4651 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CABINETS/WINSKCHS.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/CONTROLS/DBGRDCHS.DLL b/cadVb/COMMON/TOOLS/VB/CHINESE/CONTROLS/DBGRDCHS.DLL new file mode 100644 index 0000000..d034474 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/CONTROLS/DBGRDCHS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/CONTROLS/MSCHTCHS.DLL b/cadVb/COMMON/TOOLS/VB/CHINESE/CONTROLS/MSCHTCHS.DLL new file mode 100644 index 0000000..f348c57 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/CONTROLS/MSCHTCHS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/CRYSREPT/CC245CHS.DLL b/cadVb/COMMON/TOOLS/VB/CHINESE/CRYSREPT/CC245CHS.DLL new file mode 100644 index 0000000..9179c0a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/CRYSREPT/CC245CHS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/MSAGENT/MSAGENT.CHS.EXE b/cadVb/COMMON/TOOLS/VB/CHINESE/MSAGENT/MSAGENT.CHS.EXE new file mode 100644 index 0000000..aca49d7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/MSAGENT/MSAGENT.CHS.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/JSCHS.DLL b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/JSCHS.DLL new file mode 100644 index 0000000..2753297 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/JSCHS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRCHS.DLL b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRCHS.DLL new file mode 100644 index 0000000..a530d96 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRCHS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRIPT.CNT b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRIPT.CNT new file mode 100644 index 0000000..be71497 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRIPT.CNT @@ -0,0 +1,59 @@ +:Base MSScript.hlp>Langref +:Title Microsoft Script ؼ +1 йصĸ +1 ʹ Microsoft Script ؼ=scconUsingMicrosoftScriptControl +2 Script ؼӶģ=scconAddingRuntimeFunctionalityToScriptControl +3 Script =scconCreatingSimpleScriptProject +2 ʹ Modules =scconUsingModulesCollection +1 +2 ScriptControl =sccstScriptControl +1 Ϣ +2 ִУнű=scmsgCantExecute +2 UseSafeSubset =scmsgCantSetUseSafeSubset +2 ִнűʱ=scmsgScriptTimedOut +2 δ=scmsgLanguagePropertyNotSet +2 ѡĽű治ָ֧óԱ=scmsgMemberNotSupported +2 Ч=scmsgObjectIsNoLongerValid +1 ¼ +2 Error ¼ (Script ؼ)=scevtError +2 Timeout Event (Script ؼ)=scevtTimeout +1 +2 Add (Script ؼ)=scmthAdd +2 AddCode (Script ؼ)=scmthAddCode +2 AddObject (Script ؼ)=scmthAddObject +2 Clear (Script ؼ)=scmthClear +2 Eval (Script ؼ)=scmthEval +2 ExecuteStatement =scmthExecuteStatement +2 Item (Script ؼ)=scmthItem +2 Reset (Script ؼ)=scmthReset +2 Run (Script ؼ)=scmthRun +1 +2 Error (Script ؼ)=scobjError +2 Module (Script ؼ)=scobjModule +2 Modules (Script ؼ)=sccolModules +2 Procedure (Script ؼ)=scobjProcedure +2 Procedures (Script ؼ)=sccolProcedures +2 ScriptControl =scobjScriptControl +1 +2 AllowUI (Script ؼ)=scproAllowUI +2 CodeObject (Script ؼ)=scproCodeObject +2 Column (Script ؼ)=scproColumn +2 Count (Script ؼ)=scproCount +2 Description (Script ؼ)=scproDescription +2 Error (Script ؼ)=scproError +2 HasReturnValue (Script ؼ)=scproHasReturnValue +2 HelpContext (Script ؼ)=scproHelpContext +2 HelpFile (Script ؼ)=scproHelpFile +2 Language (Script ؼ)=scproLanguage +2 Line (Script ؼ)=scproLine +2 Modules (Script ؼ)=scproModules +2 Name (Script ؼ)=scproName +2 NumArgs (Script ؼ)=scproNumArgs +2 Number (Script ؼ)=scproNumber +2 Procedures (Script ؼ)=scproProcedures +2 SitehWnd (Script ؼ)=scproSitehWnd +2 Source (Script ؼ)=scproSource +2 State (Script ؼ)=scproState +2 Text (Script ؼ)=scproText +2 Timeout (Script ؼ)=scproTimeout +2 UseSafeSubset (Script ؼ)=scproUseSafeSubset diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRIPT.HLP b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRIPT.HLP new file mode 100644 index 0000000..a45bef4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/MSSCRIPT.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/VBSCHS.DLL b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/VBSCHS.DLL new file mode 100644 index 0000000..971200b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/SCRIPT/VBSCHS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/LTWTCT98.CHI b/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/LTWTCT98.CHI new file mode 100644 index 0000000..7a54925 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/LTWTCT98.CHI differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/LTWTCT98.CHM b/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/LTWTCT98.CHM new file mode 100644 index 0000000..65b804b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/LTWTCT98.CHM differ diff --git a/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/MSWLSCHS.DLL b/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/MSWLSCHS.DLL new file mode 100644 index 0000000..af88b11 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CHINESE/WINLESS/MSWLSCHS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/ANIBTN32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/ANIBTN32.OCX new file mode 100644 index 0000000..fcb2136 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/ANIBTN32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/BIDI/GRID32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/BIDI/GRID32.OCX new file mode 100644 index 0000000..a7b2346 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/BIDI/GRID32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/CTRLREF.CNT b/cadVb/COMMON/TOOLS/VB/CONTROLS/CTRLREF.CNT new file mode 100644 index 0000000..23a5785 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CONTROLS/CTRLREF.CNT @@ -0,0 +1,98 @@ +:Index Crystal Reports Help=crw.hlp +:Index Custom Control Reference=ctrlref.hlp +:Index Data Manager Help=datamgr.hlp +:Index Enterprise Edition Help=entprise.hlp +:Index Product Support Help=pss.hlp +:Index Samples Help=samples.hlp +:Index Setup Wizard Help=setupwiz.hlp +:Index Visual Basic Help=vb.hlp +:Index Visual Basic Readme=readme.hlp +1 Read Me=contents@readme.hlp +1 Visual Basic Help +2 What's New=vbconwhatsnew@vb.hlp>main +2 Contents Topic=vbidxmaincontents@vb.hlp>Main +2 Programming Language +3 Language Summary=idxreallangref@vb.hlp>right +3 Functions=vbidxrealfunctions@vb.hlp>right +3 Methods=vbidxrealmethods@vb.hlp>right +3 Events=vbidxrealevents@vb.hlp>right +3 Properties=vbidxrealproperties@vb.hlp>right +3 Statements=vbidxrealstatements@vb.hlp>right +3 Objects=vbidxrealobjects@vb.hlp>right +3 Trappable Errors=idxrealmsgtrap@vb.hlp>right +3 Keywords by Task=vaidxrealkeywordsbytask@vb.hlp>right +2 Using Visual Basic +3 How To Information Summary=vbidxHowToSummary@vb.hlp>Right +3 Learning Visual Basic=vbidxLearningVB@vb.hlp>Right +3 Creating the Interface=vbidxcreatinginterface@vb.hlp>Right +3 Setting Properties=vbidxsettingproperties@vb.hlp>Right +3 Writing and Debugging Code=vbidxwritingdebugging@vb.hlp>Right +3 Creating Your Own Objects=vbidxcreatingobjects@vb.hlp>right +3 Creating Distribution Media With the Setup Toolkit=vbidxrealcreatingdistributionsetup@vb.hlp>Right +1 Data Access=daidxRealDataAccess@vb.hlp>Main +1 Glossary=vbidxRealDefs@vb.hlp>Right +1 Development Environment=idxdevelopmentenvironment@vb.hlp>Right +1 Miscellaneous Information=idxinterfaceandOther@vb.hlp>Right +1 Using the Microsoft Knowledge Base=kbkb_Help_Contents@vb.hlp +1 Text Files=vbidxTextFiles@vb.hlp>Main +1 Other Help Files=vbidxhelpfiles@vb.hlp>Main +1 Copyright Information=vbidxCopyright@vb.hlp>main +1 Custom Control Help +2 Contents Topic=ccr_contents32@ctrlref.hlp>Main +2 Windows 95 Controls +3 ImageList=cpobjimagelist@ctrlref.hlp>main +3 ListView=cpobjlistview@ctrlref.hlp>main +3 ProgressBar=cpobjprogressbar@ctrlref.hlp>main +3 RichTextBox=cpobjrichedit@ctrlref.hlp>main +3 Slider=cpobjslider@ctrlref.hlp>main +3 StatusBar=cpobjstatusbar@ctrlref.hlp>main +3 TabStrip=cpobjtabcontrol@ctrlref.hlp>main +3 Toolbar=cpobjtoolbar@ctrlref.hlp>main +3 TreeView=cpobjTreeView@ctrlref.hlp>Main +2 3D Controls +3 3D Check Box=ctl3dchkbox@ctrlref.hlp>main +3 3D Command Button=ctl3dcmd@ctrlref.hlp>main +3 3D Frame=ctl3dframe@ctrlref.hlp>main +3 3D Group Push Button=ctl3dgroup@ctrlref.hlp>main +3 3D Option Button=ctl3doption@ctrlref.hlp>main +3 3D Panel=ctl3dpanel@ctrlref.hlp>main +2 System Controls +3 Communications=ctlcomm@ctrlref.hlp>MAIN +3 Key State=ctlkeystate@ctrlref.hlp>main +3 MAPI Message=ctlmapim@ctrlref.hlp>main +3 MAPI Session=ctlmapis@ctrlref.hlp>main +3 Multimedia MCI=ctlmci@ctrlref.hlp>main +2 Miscellaneous Controls +3 Animated Button=ctlanibttn@ctrlref.hlp>main +3 Gauge=ctlgauge@ctrlref.hlp>main +3 Graph=ctlgraph@ctrlref.hlp>main +3 Masked Edit=ctlmaskedit@ctrlref.hlp>main +3 Outline=ctloutline@ctrlref.hlp>main +3 Picture Clip=ctlpicclip@ctrlref.hlp>Main +3 Spin Button=ctlspin@ctrlref.hlp>main +3 SSTab Dialog=cpobjtabbeddialog@ctrlref.hlp>main +2 Constants and Other Information +3 Visual Basic Custom Control Constants=vbidxvisualbasiccustomconstants@ctrlref.hlp>main +3 Creating, Running, and Distributing Executable (.EXE) Files=ccr_exe@ctrlref.hlp>Main +3 Object Type=ccr_objecttype@ctrlref.hlp>Main +3 Registering OLE Custom Controls=ccr_regolecc@ctrlref.hlp>main +3 Trappable Errors for Windows 95 Custom Controls=msgWindows95controlserrors@ctrlref.hlp>main +3 Using Custom Properties Dialog Boxes=vbhowusingcustompropertydialogboxes@ctrlref.hlp>main +1 Enterprise Help +2 Remote Data Objects and the RemoteData Control +3 Using Remote Data Objects and the RemoteData Control=rdidxMainContents@entprise.hlp>Main +3 RemoteData Control=rdobjremotedata@entprise.hlp>Main +3 Remote Data Objects Language Summary=rdidxrdolanguagesummary@entprise.hlp>Right +3 Constants=rdcstRemoteDataConstants@entprise.hlp>Main +3 Events=rdidxREalEvents@entprise.hlp>Right +3 Methods=rdidxRealMethods@entprise.hlp>Right +3 Objects and Collections=rdidxRealObjects@entprise.hlp>Right +3 Properties=rdidxRealProperties@entprise.hlp>Right +3 Remote Data Object Model=rdidxremotedataobjectmodel@entprise.hlp>Main +3 Trappable Errors=rdidxRemoteDataTrappableErrors@entprise.hlp>Right +3 Conceptual Information Summary=rdidxrealrdconinfosum@entprise.hlp>Right +3 Glossary=rdidxrealglossary@entprise.hlp>Right +2 Component Manager +3 Using the Component Manager=cmidxComponentManager@entprise.hlp>Main +3 How-to Information=cmidxHowtoInformation@entprise.hlp>Right +3 Interface Information=cmidxInterfaceInformation@entprise.hlp>Right diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/CTRLREF.HLP b/cadVb/COMMON/TOOLS/VB/CONTROLS/CTRLREF.HLP new file mode 100644 index 0000000..5448495 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/CTRLREF.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID.REG b/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID.REG new file mode 100644 index 0000000..9291c6f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID.REG @@ -0,0 +1,6 @@ +REGEDIT +HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. + +// The DBGrid Control license follows: +HKEY_CLASSES_ROOT\Licenses\556C75F1-EFBC-11CF-B9F3-00A0247033C4 = xybiedobrqsprbijaegcbislrsiucfjdhisl + diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID32.DEP b/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID32.DEP new file mode 100644 index 0000000..e51cdf8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID32.DEP @@ -0,0 +1,127 @@ + +; Dependency file for setup wizards. + +[Version] +Version=5.1.81.4 + +[DBGrid32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=5.1.81.4 +Uses1=ComCat.dll +Uses2= +CABFileName=DBGRID32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGRID32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[DBGrid32.ocx <0007>] +Uses1=DBGrdDE.dll +Uses2= + +[DBGrdDE.dll <0007>] +Uses1= +CABFileName=DBGrdDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdDE.inf + +; ** French (FR) *** +; (000C = French) +; +[DBGrid32.ocx <000C>] +Uses1=DBGrdFR.dll +Uses2= + +[DBGrdFR.dll <000C>] +Uses1= +CABFileName=DBGrdFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[DBGrid32.ocx <0010>] +Uses1=DBGrdIT.dll +Uses2= + +[DBGrdIT.dll <0010>] +Uses1= +CABFileName=DBGrdIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[DBGrid32.ocx <000A>] +Uses1=DBGrdES.dll +Uses2= + +[DBGrdES.dll <000A>] +Uses1= +CABFileName=DBGrdES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[DBGrid32.ocx <0011>] +Uses1=DBGrdJP.dll +Uses2= + +[DBGrdJP.dll <0011>] +Uses1= +CABFileName=DBGrdJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[DBGrid32.ocx <0012>] +Uses1=DBGrdKO.dll +Uses2= + +[DBGrdKO.dll <0012>] +Uses1= +CABFileName=DBGrdKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[DBGrid32.ocx <0404>] +Uses1=DBGrdCHT.dll +Uses2= + +[DBGrdCHT.dll <0404>] +Uses1= +CABFileName=DBGrdCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[DBGrid32.ocx <0804>] +Uses1=DBGrdCHS.dll +Uses2= + +[DBGrdCHS.dll <0804>] +Uses1= +CABFileName=DBGrdCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBGrdCHS.inf + diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID32.OCX new file mode 100644 index 0000000..fd19c9a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/DBGRID32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/GAUGE32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/GAUGE32.OCX new file mode 100644 index 0000000..a7f9984 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/GAUGE32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/GRAPH32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/GRAPH32.OCX new file mode 100644 index 0000000..bc82967 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/GRAPH32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/GRID32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/GRID32.OCX new file mode 100644 index 0000000..968940d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/GRID32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/GSW32.EXE b/cadVb/COMMON/TOOLS/VB/CONTROLS/GSW32.EXE new file mode 100644 index 0000000..4cc2e88 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/GSW32.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/GSWDLL32.DLL b/cadVb/COMMON/TOOLS/VB/CONTROLS/GSWDLL32.DLL new file mode 100644 index 0000000..aeb57e4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/GSWDLL32.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/JTRESENU.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/JTRESENU.CAB new file mode 100644 index 0000000..7c0dd3f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/JTRESENU.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/KEYSTA32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/KEYSTA32.OCX new file mode 100644 index 0000000..dcb4289 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/KEYSTA32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.DEP b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.DEP new file mode 100644 index 0000000..75e44c2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.80.79 + +; Dependencies for MSChart.ocx + +; Default Dependencies ---------------------------------------------- + +[MSChart.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.80.79 +Uses1=ComCat.dll +Uses2= +CABFileName=MSChart.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChart.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSChart.ocx <0007>] +Uses1=MSChtDE.dll +Uses2= + +[MSChtDE.dll <0007>] +Uses1= +CABFileName=MSChtDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSChart.ocx <000C>] +Uses1=MSChtFR.dll +Uses2= + +[MSChtFR.dll <000C>] +Uses1= +CABFileName=MSChtFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSChart.ocx <0010>] +Uses1=MSChtIT.dll +Uses2= + +[MSChtIT.dll <0010>] +Uses1= +CABFileName=MSChtIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSChart.ocx <000A>] +Uses1=MSChtES.dll +Uses2= + +[MSChtES.dll <000A>] +Uses1= +CABFileName=MSChtES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSChart.ocx <0011>] +Uses1=MSChtJP.dll +Uses2= + +[MSChtJP.dll <0011>] +Uses1= +CABFileName=MSChtJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSChart.ocx <0012>] +Uses1=MSChtKO.dll +Uses2= + +[MSChtKO.dll <0012>] +Uses1= +CABFileName=MSChtKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSChart.ocx <0404>] +Uses1=MSChtCHT.dll +Uses2= + +[MSChtCHT.dll <0404>] +Uses1= +CABFileName=MSChtCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSChart.ocx <0804>] +Uses1=MSChtCHS.dll +Uses2= + +[MSChtCHS.dll <0804>] +Uses1= +CABFileName=MSChtCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSChtCHS.inf + diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.OCX new file mode 100644 index 0000000..3d139b9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.REG b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.REG new file mode 100644 index 0000000..4725423 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSCHART.REG @@ -0,0 +1,5 @@ +REGEDIT +HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. + +// MSCHART license key +HKEY_CLASSES_ROOT\Licenses\7C35CA30-D112-11cf-8E72-00A0C90F26F8 = whmhmhohmhiorhkouimhihihwiwinhlosmsl diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSDERUN.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSDERUN.CAB new file mode 100644 index 0000000..5e983d0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSDERUN.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSEXCL35.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSEXCL35.CAB new file mode 100644 index 0000000..9455f19 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSEXCL35.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSJET35.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSJET35.CAB new file mode 100644 index 0000000..3c65e24 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSJET35.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSLTUS35.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSLTUS35.CAB new file mode 100644 index 0000000..7388f11 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSLTUS35.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSOUTL32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSOUTL32.OCX new file mode 100644 index 0000000..a7f0a05 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSOUTL32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSPDOX35.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSPDOX35.CAB new file mode 100644 index 0000000..ec129aa Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSPDOX35.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSTEXT35.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSTEXT35.CAB new file mode 100644 index 0000000..01e8de7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSTEXT35.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/MSXBSE35.CAB b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSXBSE35.CAB new file mode 100644 index 0000000..c691947 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/MSXBSE35.CAB differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/README.TXT b/cadVb/COMMON/TOOLS/VB/CONTROLS/README.TXT new file mode 100644 index 0000000..1bc4aeb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CONTROLS/README.TXT @@ -0,0 +1,49 @@ +\Tools\Controls + +This directory contains all of the ActiveX Controls that shipped with Visual +Basic 4.0/5.0 Professional and Enterprise Editions, which are no longer shipping +with Visual Basic 6.0. + +AniBtn32.ocx +Gauge32.ocx +Graph32.ocx +Gsw32.EXE +Gswdll32.DLL +Grid32.ocx +KeySta32.ocx +MSOutl32.ocx +Spin32.ocx +Threed32.ocx +MSChart.ocx + +The \Tools\Controls\BiDi directory contains a Bi-directional version of +Grid32.Ocx. + +If you have Visual Basic 5.0 Professional or Enterprise Editions installed on +your machine, you should already have these ActiveX controls available to you in +Visual Basic 6.0. + +Graph32.ocx has been updated to work properly in Visual Basic 6.0 and it +requires two additional support files: gsw32.exe and gswdll32.dll. You must +place the three files together in the \Windows\System directory or the control +will not function properly. + +If you do not have these controls and wish to use these in Visual Basic 6.0, you +can install them by: + +1. Copy all of the files in this directory to your \WINDOWS\SYSTEM directory. + +2. Register the controls by either Browsing to them in Visual Basic itself, or +manually register them using RegSvr32.Exe. RegSvr32.EXE can be found in the +\Tools\RegistrationUtilities directory. The command line is: + +regsvr32.exe grid32.ocx + +3. Register the design time licenses for the controls. To do this, merge the +vbctrls.reg file found in this directory into your registry. You can merge this +file into your registry using RegEdit.Exe (Win95 or WinNT4) or RegEd32.Exe +(WinNT3.51): + +regedit vbctrls.reg (or other reg files associated with the controls) + + diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/SPIN32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/SPIN32.OCX new file mode 100644 index 0000000..12e5e64 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/SPIN32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/THREED32.OCX b/cadVb/COMMON/TOOLS/VB/CONTROLS/THREED32.OCX new file mode 100644 index 0000000..2756634 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CONTROLS/THREED32.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/CONTROLS/VBCTRLS.REG b/cadVb/COMMON/TOOLS/VB/CONTROLS/VBCTRLS.REG new file mode 100644 index 0000000..bb57eab --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CONTROLS/VBCTRLS.REG @@ -0,0 +1,16 @@ +REGEDIT +HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. + +// The 16 bit and 32-bit OCX Professional license follows: +HKEY_CLASSES_ROOT\Licenses\DB4C0D00-400B-101B-A3C9-08002B2F49FB = mgkgtgnnmnmninigthkgogggvmkhinjggnvm + +// The 32 bit OCX Professional license follows: +HKEY_CLASSES_ROOT\Licenses\7BC20EDC-4A42-101B-A3C9-08002B2F49FB = gifblihbhiiihbciocfbkifbqcfcdiebbiqh + +// spin32 DB key +// anibtn DB key +// gauge 7B key +// grid DB key +// keysta DB key +// msoutl DB key +// threed DB key \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/CRYSREPT/CRW.HLP b/cadVb/COMMON/TOOLS/VB/CRYSREPT/CRW.HLP new file mode 100644 index 0000000..f289879 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CRYSREPT/CRW.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/CRYSREPT/CRYSTL32.EXE b/cadVb/COMMON/TOOLS/VB/CRYSREPT/CRYSTL32.EXE new file mode 100644 index 0000000..e5fa58d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/CRYSREPT/CRYSTL32.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/CRYSREPT/README.TXT b/cadVb/COMMON/TOOLS/VB/CRYSREPT/README.TXT new file mode 100644 index 0000000..9359c94 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/CRYSREPT/README.TXT @@ -0,0 +1,10 @@ +Crystal Reports for Visual Basic 6.0 Readme + + +This readme includes the limitation of Crystal Reports for Visual Basic 6.0. + +1. This Crystal Reports is same version as one in Visual Basic 5.0. + +2. Some "Visual Basic 5.0" word remains in Readme.hlp and Crw.hlp. But you can read it as "Visual Basic 6.0" word. + +3. You can execute Crystal Reports by clicking "Crw.exe" from the installed folder directly or by selecting "Crystal Reports" from Add-In menu. This menu is added by Crystal setup. Crystal Reports isn't registried to Windows "Start" menu. diff --git a/cadVb/COMMON/TOOLS/VB/HCW/DATA.Z b/cadVb/COMMON/TOOLS/VB/HCW/DATA.Z new file mode 100644 index 0000000..44211f1 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/HCW/DATA.Z differ diff --git a/cadVb/COMMON/TOOLS/VB/HCW/DISK1.ID b/cadVb/COMMON/TOOLS/VB/HCW/DISK1.ID new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/HCW/DISK1.ID @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/HCW/README.TXT b/cadVb/COMMON/TOOLS/VB/HCW/README.TXT new file mode 100644 index 0000000..5d29dbc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/HCW/README.TXT @@ -0,0 +1,17 @@ +Help Compiler Workshop +====================== + +What is Help Workshop? +---------------------- + +Help Workshop is a program that you use to create Help (.hlp) files, edit +project and contents files, and test and report on help files. Help Workshop +takes the information in the project (.hpj) file to combine the topic (.rtf) +files, bitmaps, and other sources into one Help file that can be viewed using +the Microsoft Windows Help program. + +Installation +------------ + +Run Setup.exe from the \Tools\HCW directory and the Help Compiler Workshop will +be installed to your computer. diff --git a/cadVb/COMMON/TOOLS/VB/HCW/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/HCW/SETUP.EXE new file mode 100644 index 0000000..ff77875 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/HCW/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/HCW/SETUP.INS b/cadVb/COMMON/TOOLS/VB/HCW/SETUP.INS new file mode 100644 index 0000000..d7bd20c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/HCW/SETUP.INS differ diff --git a/cadVb/COMMON/TOOLS/VB/HCW/SETUP.PKG b/cadVb/COMMON/TOOLS/VB/HCW/SETUP.PKG new file mode 100644 index 0000000..c8dbed6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/HCW/SETUP.PKG differ diff --git a/cadVb/COMMON/TOOLS/VB/HCW/_SETUP.DLL b/cadVb/COMMON/TOOLS/VB/HCW/_SETUP.DLL new file mode 100644 index 0000000..58d6230 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/HCW/_SETUP.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/HCW/_SETUP.LIB b/cadVb/COMMON/TOOLS/VB/HCW/_SETUP.LIB new file mode 100644 index 0000000..9c3637e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/HCW/_SETUP.LIB differ diff --git a/cadVb/COMMON/TOOLS/VB/IDGEN/GUIDGEN.EXE b/cadVb/COMMON/TOOLS/VB/IDGEN/GUIDGEN.EXE new file mode 100644 index 0000000..bf70de0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/IDGEN/GUIDGEN.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/IDGEN/README.TXT b/cadVb/COMMON/TOOLS/VB/IDGEN/README.TXT new file mode 100644 index 0000000..a350dff --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/IDGEN/README.TXT @@ -0,0 +1,31 @@ +IDGEN +----- + +Both GUIDGEN and UUIDGEN are tools for generating globally unique identifiers +known as GUIDs. GUIDS are commonly used in OLE to identify classes (CLSID) or +interfaces (IID.) These utilities are included with VB for developers who want +to generate IDL (Interface Description Language) or ODL (Object Description +Language.) IDL and ODL are used with the MIDL.EXE and MKTYPLIB.EXE tools to +generate type libraries that can be used with VB. + +GUIDGEN.EXE +----------- + +GUIDGEN is a windows program that generates GUIDs in several different formats. +GUIDGEN places GUIDs in the clipboard so that you can paste them where you need +to use them. + +UUIDGEN.EXE +----------- + +UUIDGEN is a command line utility that also generates GUIDs in different formats. +You use UUIDGEN as follows: + +UUIDGEN [-isonvh?] + + i - Output UUID in an IDL interface template + s - Output UUID as an initialized C struct + o - redirect output to a file, specified immediately after o + n - Number of UUIDs to generate, specified immediately after n + v - display version information about uuidgen + h,? - Display command option summary \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/IDGEN/UUIDGEN.EXE b/cadVb/COMMON/TOOLS/VB/IDGEN/UUIDGEN.EXE new file mode 100644 index 0000000..67c5e59 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/IDGEN/UUIDGEN.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/IMAGEDIT/IMAGEDIT.EXE b/cadVb/COMMON/TOOLS/VB/IMAGEDIT/IMAGEDIT.EXE new file mode 100644 index 0000000..d3fe92f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/IMAGEDIT/IMAGEDIT.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/IMAGEDIT/IMAGEDIT.HLP b/cadVb/COMMON/TOOLS/VB/IMAGEDIT/IMAGEDIT.HLP new file mode 100644 index 0000000..cea6f3c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/IMAGEDIT/IMAGEDIT.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/IMAGEDIT/README.TXT b/cadVb/COMMON/TOOLS/VB/IMAGEDIT/README.TXT new file mode 100644 index 0000000..8069288 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/IMAGEDIT/README.TXT @@ -0,0 +1,13 @@ +Image Edit +---------- + +Image Edit is an application that lets you create and edit Icons, Bitmaps, +and Cursors. + + +Installation +------------ + +To run Image Edit copy IMAGEDIT.EXE and the corresponding .HLP file to your +local hard disk. More information on the use of ImagEdit is available in the +accompanying IMAGEDIT.HLP file. diff --git a/cadVb/COMMON/TOOLS/VB/LPK_TOOL/LPK_TOOL.EXE b/cadVb/COMMON/TOOLS/VB/LPK_TOOL/LPK_TOOL.EXE new file mode 100644 index 0000000..5fd6f39 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/LPK_TOOL/LPK_TOOL.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/LPK_TOOL/LPK_TOOL.HLP b/cadVb/COMMON/TOOLS/VB/LPK_TOOL/LPK_TOOL.HLP new file mode 100644 index 0000000..7025d3d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/LPK_TOOL/LPK_TOOL.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/LPK_TOOL/README.TXT b/cadVb/COMMON/TOOLS/VB/LPK_TOOL/README.TXT new file mode 100644 index 0000000..82ab0a8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/LPK_TOOL/README.TXT @@ -0,0 +1,84 @@ +README file for the License Package Authoring Tool - LPK_TOOL.EXE +================================================================= + +Description +=========== + +The License Package Authoring Tool (LPK) allows you to author an +LPK file. + +An HTML Page with licensed controls requires a single associated +license package which stores the run-time licenses for all the +controls used on the page. The HTML page should point to a license +package via a relative URL. This tool allows you to author a +license package file. + +For more information on Licensing, please refer to the following +document. + +Title: Online Licensing of ActiveX controls. + + +Using LPK_TOOL +============== + +LPK_TOOL displays two list boxes. + +Available Controls List Box +=========================== +The first list box, "Available Controls", lists all controls registered +in your system. + +Contorls in License Package List Box +==================================== +The second list box, "Controls in License Package", lists all +controls, whose licensing information, if available, will be stored in +the LPK file. The Licensing information will be save when you invoke +the 'Save & Exit' button. + +Add Button +========== +You can select 'controls' in the 'Available Control List Box' and +use the 'Add' button to instruct the tool to add it to the LPK file. +LPK_TOOL will respond by moving the selected controls to the "Controls +in License Package" List Box. + +Remove Button +============= +You can select 'controls' in the 'Controls in License Package List Box' +and use the 'Remove' button to instruct the tool not to add it to the +LPK file. The LPK_TOOL will respond by moving the selected controls +to the 'Available Control List Box'. + +Save & Exit Button +================== +The 'Save & Exit' button will instruct the tool to save the licensing +information to the LPK file. LPK_TOOL will prompt for a file name and +save the Licensing information in the file name provided. LPK_TOOL will +terminate after saving the file. + +Cancel Button +============= +The 'Cancel Button' will terminate the application without creating the +LPK file. + +About Button +============= +The 'About Button' will display the version information. + +Help Button +=========== +The 'Help Button' will dislay the help file for the tool. + +Show only Controls that support Licensing Check Box +=================================================== +When checked, LPK_TOOL will display only those controls, which support +Licenses (IClassFactory2) interface. + +Note: +===== +This tool makes use of the License Manager components. Please make +sure the License Manager is installed on your system and registered +before you use this tool. + +< end of document> diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/AGENTDL.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/AGENTDL.HTM new file mode 100644 index 0000000..1cf6e4a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/AGENTDL.HTM @@ -0,0 +1,77 @@ + +Microsoft Agent Component Installation + + + + +Microsoft Agent + +

Component Installation

+ +Instructions +

Simply click on any link below to install the corresponding component. +When prompted, choose Open it or Run this program from its current location. + +

+System requirements +

    +
  1. Windows 95 or Windows NT® 4.00(x86) +
  2. Internet Explorer version 3.0 or later +
  3. A Pentium 100 MHz PC (or faster) +
  4. At least 16MB of RAM +
  5. At least 661K free disk space for the core components, +plus at least 1.26 MB if you plan to use speech output, +and an additional 6.68 MB if you plan to use speech input +
  6. A Windows-compatible sound card +
  7. A compatible set of speakers and microphone (recommended) +
+ +

+Agent Essentials +

+ +

+Speech Engines +

+ +

+Character and Sound Editors +

+ +

  +

+© 1998 Microsoft Corporation. All rights reserved. + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS.HTM new file mode 100644 index 0000000..4683abb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS.HTM @@ -0,0 +1,112 @@ + +Microsoft Agent Character Data + + + + +Microsoft Agent + +

Character Data

+ +Microsoft Agent provides three standard characters: Genie, Merlin, and Robby. +For each character, three types of character data are available: +
    + +
  • HTTP Access to Animations +
    All the animations for each standard character are available from a World Wide Web server +maintained by Microsoft. Individual animations can be downloaded from this server after +a character is loaded using an HTTP URL. + + +
  • File Access to Animations +
    As an alternative to using HTTP access, the complete set of animations for each +standard character is available in a single, downloadable file. +This file can be accessed using a local or UNC path, but cannot be accessed via HTTP URL. + + +
  • Images Only +
    Static and dynamic images, in GIF format, for each standard character. +Can be used to visually represent a character in an application or web page. +
+ +

HTTP Access to Animations +

A complete set of animations for each of the three characters is maintained +on a World Wide Web server at http://agent.microsoft.com/characters/. Each character +is found is a separate directory with the same name as the character. For example, +the Genie character is found at http://agent.microsoft.com/characters/genie/genie.acf. +

To access character animations via HTTP from a web page, you specify the correct +URL for the character you want to use in the Load request. +Once the Load has succeeded, all subsequent Get requests for that character's animations will automatically +go to the specified URL and download the animation into the user's cache of temporary internet files. + +

File Access to Animations +

These files contain the animation data +for the three standard Microsoft Agent characters. If you are developing an intranet application for Microsoft Agent, these files provide the animations you will need. +You can install these files on a user's machine along with your application, +and load the character data into your application using a local path. +Alternately, you can publish these files on a network share and load +the character data into your application using a UNC path. Note that both if these +uses are subject to the terms of the +Microsoft Agent License and Redistribution agreement. +These files cannot be accessed using an HTTP URL. + +

Instructions +

Simply click on any link below to +install these files into a new location. When prompted, choose Save this file to disk. +The standard location for character animation files is \<Windows Directory>\MSAgent\Chars\. +

+ +

Images Only + +

These are static and animated images +for the three standard Microsoft Agent characters. +The images are supplied in GIF format. They can be hosted directly +on HTML pages or within the WebBrowser control in Visual Basic® or C++ applications. +They can be used in any situation where a visual representation of one or more standard characters is needed. +

To copy an image file, right-click on an image below and +select Save Picture As... from the shortcut menu. + +

+

+ + + +
+Animated Images +
+genieg.gif + +merling.gif + +robbyg.gif +
+Static Images +
+genier.gif + +merlinr.gif + +robbyr.gif +
+
+ + +

  +

+© 1998 Microsoft Corporation. All rights reserved. + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/GENIE.ACS b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/GENIE.ACS new file mode 100644 index 0000000..e33d02c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/GENIE.ACS differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/MERLIN.ACS b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/MERLIN.ACS new file mode 100644 index 0000000..47a3550 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/MERLIN.ACS differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/MERLINSFX.ACS b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/MERLINSFX.ACS new file mode 100644 index 0000000..2790e38 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/MERLINSFX.ACS differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/ROBBY.ACS b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/ROBBY.ACS new file mode 100644 index 0000000..6f0931a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/CHARS/ROBBY.ACS differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DEFAULT.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/DEFAULT.HTM new file mode 100644 index 0000000..7118534 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/DEFAULT.HTM @@ -0,0 +1,61 @@ + +Microsoft Agent + + + + +Microsoft Agent + +

ActiveX™ Technology for Interactive Software Agents

+ +
+ +
+Merlin + +Genie + +Robby +
+
+ + + +
+ + + + +Microsoft® Agent is a set of software services that supports +the presentation of software agents as interactive personalities +within the Microsoft Windows® interface. +The conversational interface approach facilitated by the +Microsoft Agent services is an extension and enhancement of the +existing interactive modalities of the Windows interface. +For further information, read +Introduction to Microsoft Agent. +
+
+ +

  +

+© 1998 Microsoft Corporation. All rights reserved. + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOC.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOC.HTM new file mode 100644 index 0000000..0d1c54e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOC.HTM @@ -0,0 +1,115 @@ + +Microsoft Agent Documentation + + + + +Microsoft Agent + +

Documentation

+ +Note: +The documents below are in Microsoft® Word format. +

+Introduction +

    +
  • Introduction +
    +A brief overview of Microsoft Agent. + +
  • Update +
    +Description of changes in the update to the Microsoft Agent Final Commercial Release. +
+

+Using Microsoft Agent +

    +
  • User Interface +
    +A concise description of the user interface elements. + +
  • Troubleshooting for End Users +
    +If you are having trouble using a page with a Microsoft Agent character, this list of symptoms and steps can help isolate and solve the problems. +
+

+Programming for Microsoft Agent +

+

+Creating Characters for Microsoft Agent +

+

+Licensing and Redistribution +

+ +

  +

+© 1998 Microsoft Corporation. All rights reserved. + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ACE.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ACE.DOC new file mode 100644 index 0000000..0e91f88 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ACE.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/APIOVW.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/APIOVW.DOC new file mode 100644 index 0000000..19fca88 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/APIOVW.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/CONTROL.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/CONTROL.DOC new file mode 100644 index 0000000..4b2fc3c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/CONTROL.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/DESCHAR.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/DESCHAR.DOC new file mode 100644 index 0000000..9fa8515 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/DESCHAR.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ERR.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ERR.DOC new file mode 100644 index 0000000..5a72330 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ERR.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/EULA.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/EULA.DOC new file mode 100644 index 0000000..5010d5d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/EULA.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/GENIEAL.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/GENIEAL.DOC new file mode 100644 index 0000000..5e5f014 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/GENIEAL.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/GUIDE.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/GUIDE.DOC new file mode 100644 index 0000000..cc35e12 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/GUIDE.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/INTRO.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/INTRO.DOC new file mode 100644 index 0000000..2127bb2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/INTRO.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/LISET.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/LISET.DOC new file mode 100644 index 0000000..871f6d3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/LISET.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/MERLINAL.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/MERLINAL.DOC new file mode 100644 index 0000000..fa2e076 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/MERLINAL.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/MERLINSL.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/MERLINSL.DOC new file mode 100644 index 0000000..213f5b3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/MERLINSL.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ROBBYAL.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ROBBYAL.DOC new file mode 100644 index 0000000..c0fc3d3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/ROBBYAL.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/SERVER.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/SERVER.DOC new file mode 100644 index 0000000..0cfcdc8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/SERVER.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/SPEECHRQ.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/SPEECHRQ.DOC new file mode 100644 index 0000000..e3e99c0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/SPEECHRQ.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TAGS.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TAGS.DOC new file mode 100644 index 0000000..e529960 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TAGS.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TECHFAQ.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TECHFAQ.DOC new file mode 100644 index 0000000..4fb5843 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TECHFAQ.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TSHOOT.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TSHOOT.DOC new file mode 100644 index 0000000..49d713e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/TSHOOT.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/UI.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/UI.DOC new file mode 100644 index 0000000..7a96fac Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/UI.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/UPDATE.DOC b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/UPDATE.DOC new file mode 100644 index 0000000..0ae4d59 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/DOCS/UPDATE.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/FAQ.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/FAQ.HTM new file mode 100644 index 0000000..fc0f331 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/FAQ.HTM @@ -0,0 +1,27 @@ + +Microsoft Agent Frequently Asked Questions + + + + +Microsoft Agent + +

Frequently Asked Questions

+ + +
  • Troubleshooting for End Users +
    +If you are having trouble using a page with a Microsoft Agent character, this list of symptoms and steps can help isolate and solve the problems. + + +
  • Technical FAQ and Troubleshooting +
    +Answers to technical questions for developers. + +

      +

    +© 1998 Microsoft Corporation. All rights reserved. + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIEG.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIEG.GIF new file mode 100644 index 0000000..bff610b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIEG.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIER.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIER.GIF new file mode 100644 index 0000000..e8b51ed Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIER.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIES.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIES.GIF new file mode 100644 index 0000000..9ff372c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/GENIES.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLING.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLING.GIF new file mode 100644 index 0000000..5ec0266 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLING.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLINR.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLINR.GIF new file mode 100644 index 0000000..078848b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLINR.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLINS.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLINS.GIF new file mode 100644 index 0000000..998aa9a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/MERLINS.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYG.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYG.GIF new file mode 100644 index 0000000..47c1737 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYG.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYR.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYR.GIF new file mode 100644 index 0000000..90c5fcf Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYR.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYS.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYS.GIF new file mode 100644 index 0000000..9735318 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/ROBBYS.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/TITLE.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/TITLE.GIF new file mode 100644 index 0000000..0bfa613 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/IMAGES/TITLE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/ACE.EXE b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/ACE.EXE new file mode 100644 index 0000000..01b50ad Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/ACE.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/ACTCNC.EXE b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/ACTCNC.EXE new file mode 100644 index 0000000..ca20ac5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/ACTCNC.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/CGRAM.EXE b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/CGRAM.EXE new file mode 100644 index 0000000..2249a7a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/CGRAM.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/LISET.EXE b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/LISET.EXE new file mode 100644 index 0000000..3a9c4ba Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/LISET.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/MSAGENT.EXE b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/MSAGENT.EXE new file mode 100644 index 0000000..47b8572 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/INSTALL/MSAGENT.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/LICENSE.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/LICENSE.HTM new file mode 100644 index 0000000..1396237 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/LICENSE.HTM @@ -0,0 +1,30 @@ + +Microsoft Agent Licensing and Redistribution + + + + +Microsoft Agent + +

    Licensing and Redistribution

    + +

    The following uses for Microsoft Agent Version 1 are currently royalty-free, subject to the End-User License Agreement, and do not require a redistribution license: +

      +
    • You can automatically cause Microsoft Agent to download from the Microsoft site by including the CLSID for Microsoft Agent in an HTML <OBJECT> tag on one of your site's pages. +
    • You can also automatically cause the Microsoft Command and Control speech recognition engine and the Lernout & Hauspie® TruVoice Text-To-Speech Engine for Microsoft Agent to download from the Microsoft site, by including their CLSIDs in an HTML <OBJECT> tag on one of your site's pages, provided that these engines are only downloaded and installed for use with Microsoft Agent. +
    • You can load Microsoft's designated characters or images from the Microsoft Web site in your script code using the Microsoft Agent Load and Get (Prepare) methods. +
    + +

    However, to add or include Microsoft Agent and any of its components to or with an application, or post Microsoft Agent and any of its components on a server, or distribute Microsoft Agent and any of its components using other electronic media, you must first obtain and submit a redistribution license for Microsoft Agent. The Microsoft Agent character files, the Microsoft Command and Control speech engine, +and the Lernout & Hauspie TruVoice Text-To-Speech Engine cannot be redistributed without Microsoft Agent. This license for Microsoft Agent Version 1 is currently royalty-free to redistribute within your organization or to your customers. The license does not include the Microsoft Agent Character Editor or the Microsoft Linguistic Sound Editing Tool. +

    To request a redistribution license or further information, contact the Microsoft Agent Product Group at +msagent@microsoft.com. +

    + +

      +

    +© 1998 Microsoft Corporation. All rights reserved. + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES.HTM new file mode 100644 index 0000000..5770d21 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES.HTM @@ -0,0 +1,58 @@ + +Microsoft Agent Samples + + + + +Microsoft Agent + +

    Samples

    + +

    +Visual Basic +

    +See the readme.txt file in the sample directory +for instructions on building and running the sample. +The instructions assume that you are using Microsoft Visual Basic®. +You need to install the required components before running the sample. +

      + +
    • Hello World (VB) +
      Illustrates the most basic use of Microsoft Agent from Visual Basic. +
      Requires: Agent Core Components, Text-To-Speech Engine. +
    + +Visual Basic Scripting Edition +

    +These HTML pages demonstrate how to use Microsoft Agent characters from VBScript. +You can browse a sample by clicking its link below. Each sample will attempt to +install its required components if they are not already installed. +These samples download their character animations from +http://activex.microsoft.com/characters/, so you must be connected to the internet. + +

      + +
    • Hello World +
      Illustrates the most basic use of Microsoft Agent from VBScript. +
      Requires: Agent Core Components, Text-To-Speech Engine. + + +
    • Hello World Plus +
      A revised version of the Hello World sample that uses Request objects +and the RequestComplete event to manage errors and report progress. +
      Requires: Agent Core Components, Text-To-Speech Engine. + + +
    • Goodbye World +
      Demonstrates the basics of scripting a Microsoft Agent character to respond to voice commands on a web page. +
      Requires: Agent Core Components, Text-To-Speech Engine, Command and Control Engine. +
    + + +

      +

    +© 1998 Microsoft Corporation. All rights reserved. + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/AGTICON.GIF b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/AGTICON.GIF new file mode 100644 index 0000000..f8304c3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/AGTICON.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/GOODBYE.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/GOODBYE.HTM new file mode 100644 index 0000000..7fe5cb9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/GOODBYE.HTM @@ -0,0 +1,179 @@ + + +Microsoft Agent Goodbye World Sample + + + + + +

    +

    Microsoft Agent Sample

    +

    Goodbye World

    + + +
    +

    This variation on the Hello World example demonstrates scripting +
    a Microsoft Agent character to respond to voice commands. + +

    Be patient! Loading of Genie may take a few minutes. +
    Once Genie appears, right-click on him to see what commands he is +
    listening for. While holding down the Scroll Lock key, try saying +
    one of these commands. If Genie doesn't respond, here are some +
    troubleshooting hints. + +

    This sample loads its character from an HTTP URL, so you must be +
    connected to the WWW and be able to reach the server at +
    http://agent.microsoft.com, or the sample will not work properly. + +

    If you have never installed the Lernout & Hauspie TTS Engine, +
    you will be prompted to install it. Without the TTS Engine, +
    characters will not produce speech output. + +

    If you have never installed the Microsoft Command and Control +
    Engine, you will be prompted to do so. Characters will not +
    be able to recognize spoken commands without the C & C Engine. + +

    Right-click on the page and select View Source +
    to examine the HTML code for this page. +


    +
    + + + + + + + + + + + + + + +

      +

      +

      +

      + +

    Troubleshooting Hints

    +
      +
    1. You must hold the Scroll Lock down before speaking; +
      this causes the character to listen for a command. +
    2. Be sure that you've installed the Microsoft Command and Control Engine. +
    3. There should be a working microphone connected +
      to the correct input port on your system. +
    4. Use the microphone wizard to adjust your microphone level: +
    5. +
        +
      • Right-click the Agent icon icon in the task bar. +
      • Select Microsoft Agent Properties. +
      • Click the Speech Input tab. +
      • Click the Adjust Microphone button. +
      • Follow the instructions of the Microphone Wizard. +
      • When you are done adjusting your microphone, +
        click the OK button to dismiss the Properties dialog box. +
      +
    +

    +Back to Top + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/HELLO1.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/HELLO1.HTM new file mode 100644 index 0000000..c693659 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/HELLO1.HTM @@ -0,0 +1,104 @@ + + +Microsoft Agent Hello World (VBScript) Sample + + + + +

    +

    Microsoft Agent Sample

    +

    Hello World
    (VBScript)

    + + +
    +

    This page illustrates the most basic use of Microsoft Agent. +
    Once the character and its animations have been successfully +
    loaded, Robby will appear, say hello, and disappear. +
    You can refresh the page to make this happen again. +

    Be patient! Loading of the character may take a few minutes. +

    This sample loads its character from an HTTP URL, +
    so you must be connected to the WWW and be able to +
    reach the server at http://agent.microsoft.com, +
    or the sample will not work properly. +

    If you have never installed the Lernout & Hauspie TTS Engine, +
    you will be prompted to install it. Without the TTS Engine, +
    characters will not produce speech output. +

    Right-click on the page and select View Source +
    to examine the HTML code for this page. +


    +
    + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/HELLO3.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/HELLO3.HTM new file mode 100644 index 0000000..278d589 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/HELLO3.HTM @@ -0,0 +1,262 @@ + + +Microsoft Agent Hello World (with Error Handling) Sample + + + + +
    +

    Microsoft Agent Sample

    +

    Hello World
    (with Error Handling)

    + + +
    +

    This page is a revised version of the Hello World sample. +
    It illustrates some basic error handling techniques. + +

    + +to make Robby appear, say hello, and disappear. +
    + +

    Notice that clicking the button before Robby's animations +
    have been loaded displays an error message. +
    Watch the Status Bar to monitor loading progress. +

    This sample loads its character from an HTTP URL, +
    so you must be connected to the WWW and be able to +
    reach the server at http://agent.microsoft.com, +
    or the sample will not work properly. +

    If you have never installed the Lernout & Hauspie TTS Engine, +
    you will be prompted to install it. Without the TTS Engine, +
    characters will not produce speech output. +

    Right-click on the page and select View Source +
    to examine the HTML code for this page. +


    +
    + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/HELLO.FRM b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/HELLO.FRM new file mode 100644 index 0000000..d0e04ea --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/HELLO.FRM @@ -0,0 +1,59 @@ +VERSION 5.00 +Object = "{F5BE8BC2-7DE6-11D0-91FE-00C04FD701A5}#1.5#0"; "AGENTCTL.DLL" +Begin VB.Form Form1 + Caption = "Hello, World" + ClientHeight = 1680 + ClientLeft = 60 + ClientTop = 345 + ClientWidth = 4680 + LinkTopic = "Form1" + ScaleHeight = 1680 + ScaleWidth = 4680 + StartUpPosition = 3 'Windows Default + Begin VB.TextBox TextBox + Appearance = 0 'Flat + Height = 615 + Left = 240 + MultiLine = -1 'True + TabIndex = 1 + ToolTipText = "Type something in here for the Genie to say, then press the Say it! button" + Top = 120 + Width = 4335 + End + Begin VB.CommandButton Button + Caption = "Say it!" + Height = 495 + Left = 1920 + TabIndex = 0 + ToolTipText = "Type some text into the text box, then press this button to hear Genie say it" + Top = 960 + Width = 1215 + End + Begin AgentObjectsCtl.Agent Agent1 + Left = 480 + Top = 960 + End +End +Attribute VB_Name = "Form1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Dim Genie As IAgentCtlCharacter +Const DATAPATH = "\windows\msagent\chars\genie.acs" + + +Private Sub Form_Load() + Agent1.Characters.Load "Genie", DATAPATH + Set Genie = Agent1.Characters("Genie") + TextBox.Text = "Hello World!" +End Sub + +Private Sub Button_Click() + Genie.Show + Genie.Speak TextBox.Text + Genie.Hide +End Sub + + + diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/HELLO.VBP b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/HELLO.VBP new file mode 100644 index 0000000..e71c30b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/HELLO.VBP @@ -0,0 +1,30 @@ +Type=Exe +Form=HELLO.FRM +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\WINDOWS\SYSTEM\StdOle2.tlb#OLE Automation +Object={F5BE8BC2-7DE6-11D0-91FE-00C04FD701A5}#1.5#0; AGENTCTL.DLL +IconForm="Form1" +Startup="Form1" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="MS" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/README.TXT b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/README.TXT new file mode 100644 index 0000000..b9f7259 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SAMPLES/VBHELLO/README.TXT @@ -0,0 +1,22 @@ +Hello World (VB) Sample for Microsoft Agent +------------------------------------------- + +*** Required components *** + +1. This sample requires the Microsoft Agent Core Components and the +TruVoice Text-To-Speech Engine. These should be installed before +running this sample. + +2. This sample reads character animations from the following +path: \Windows\MSAgent\Chars\. +The character animation file Genie.acs should be copied to that +location before running this sample. + + +*** To run the sample *** + +1. Start up Microsoft Visual Basic. From the File menu, select +Open Project. Navigate to the folder containing this Readme file. +Select the project file (hello.vbp) for this sample. Click Open. + +2. From the Run menu, select Start. \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/MSAGENT/SUPPORT.HTM b/cadVb/COMMON/TOOLS/VB/MSAGENT/SUPPORT.HTM new file mode 100644 index 0000000..fceb420 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/MSAGENT/SUPPORT.HTM @@ -0,0 +1,32 @@ + +Microsoft Agent Support + + + + + +Microsoft Agent + +

    Support

    + +

    For peer support and general troubleshooting questions, use the public newsgroup: +microsoft.public.msagent. + +

    For reporting bugs, obtaining updates, and reading the latest Microsoft Agent news, +visit our web site at + +http://www.microsoft.com/workshop/prog/agent/. + + +

    For information on redistributing or licensing Microsoft Agent, +contact us through our e-mail alias: +msagent@microsoft.com. +(We are not able to answer troubleshooting questions via this e-mail alias.) + +

      +

    +© 1998 Microsoft Corporation. All rights reserved. + + + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/ABOUT.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/ABOUT.FRM new file mode 100644 index 0000000..1920604 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/ABOUT.FRM @@ -0,0 +1,57 @@ +VERSION 5.00 +Begin VB.Form formAbout + Caption = "About" + ClientHeight = 2925 + ClientLeft = 1290 + ClientTop = 1545 + ClientWidth = 5790 + Height = 3330 + Left = 1230 + LinkTopic = "formAbout" + ScaleHeight = 2925 + ScaleWidth = 5790 + Top = 1200 + Width = 5910 + Begin VB.CommandButton btnOK + Caption = "OK" + Height = 372 + Left = 1920 + TabIndex = 0 + Top = 2160 + Width = 1692 + End + Begin VB.Label Label2 + Alignment = 2 'Center + Caption = "Copyright (c) 1995 Microsoft Corporation" + Height = 372 + Left = 960 + TabIndex = 2 + Top = 1560 + Width = 4092 + End + Begin VB.Label Label1 + Alignment = 2 'Center + Caption = "OLE Messaging Sample" + Height = 252 + Left = 1680 + TabIndex = 1 + Top = 480 + Width = 2172 + End +End +Attribute VB_Name = "formAbout" +Attribute VB_Base = "0{CFF16A23-C697-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Attribute VB_Customizable = False +Option Explicit + +Private Sub btnOK_Click() + Unload Me + +End Sub + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/CAL.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/CAL.FRM new file mode 100644 index 0000000..e63f636 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/CAL.FRM @@ -0,0 +1,905 @@ +VERSION 5.00 +Begin VB.Form frmCalender + BackColor = &H00C0C0C0& + Caption = "Calendar" + ClientHeight = 4830 + ClientLeft = 885 + ClientTop = 1245 + ClientWidth = 4230 + ClipControls = 0 'False + FillColor = &H00FFFFFF& + ForeColor = &H00000000& + Height = 5235 + KeyPreview = -1 'True + Left = 825 + LinkTopic = "Form1" + ScaleHeight = 3.354 + ScaleMode = 5 'Inch + ScaleWidth = 2.937 + Top = 900 + Width = 4350 + Begin VB.Frame fraCalender + BackColor = &H00C0C0C0& + Caption = "Dates:" + Height = 4335 + Left = 360 + TabIndex = 0 + Top = 360 + Width = 3615 + Begin VB.PictureBox picWeekdays + Appearance = 0 'Flat + AutoRedraw = -1 'True + BackColor = &H00C0C0C0& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 225 + Left = 120 + ScaleHeight = 225 + ScaleWidth = 2415 + TabIndex = 4 + Top = 600 + Width = 2415 + End + Begin VB.PictureBox picCal + Appearance = 0 'Flat + AutoRedraw = -1 'True + BackColor = &H00C0C0C0& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1452 + Left = 120 + ScaleHeight = 1455 + ScaleWidth = 2415 + TabIndex = 3 + Top = 872 + Width = 2412 + End + Begin VB.CommandButton cmdOK + Caption = "&OK" + Default = -1 'True + Height = 372 + Left = 120 + TabIndex = 2 + Top = 2760 + Width = 1092 + End + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "&Cancel" + Height = 372 + Left = 1320 + TabIndex = 1 + Top = 2760 + Width = 1092 + End + Begin VB.Line linDivider + BorderColor = &H00FFFFFF& + Index = 3 + X1 = 120 + X2 = 2640 + Y1 = 2416 + Y2 = 2416 + End + Begin VB.Line linDivider + BorderColor = &H00808080& + Index = 2 + X1 = 120 + X2 = 2640 + Y1 = 2400 + Y2 = 2400 + End + Begin VB.Line linDivider + BorderColor = &H00FFFFFF& + Index = 1 + X1 = 120 + X2 = 2640 + Y1 = 856 + Y2 = 856 + End + Begin VB.Line linDivider + BorderColor = &H00808080& + Index = 0 + X1 = 120 + X2 = 2640 + Y1 = 840 + Y2 = 840 + End + Begin VB.Label lblMonth + Alignment = 2 'Center + BackColor = &H00C0C0C0& + Caption = "Deciembre 1943" + BeginProperty Font + Name = "MS Sans Serif" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 240 + Left = 960 + TabIndex = 5 + Top = 240 + Width = 1812 + End + Begin VB.Image picGoMonth + Height = 180 + Index = 1 + Left = 2880 + Picture = "CAL.frx":0000 + Top = 300 + Width = 180 + End + Begin VB.Image picGoMonth + Height = 180 + Index = 0 + Left = 600 + Picture = "CAL.frx":04D2 + Top = 300 + Width = 180 + End + End +End +Attribute VB_Name = "frmCalender" +Attribute VB_Base = "0{CFF16A29-C697-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Attribute VB_Customizable = False +Option Explicit + +Dim fDirty% + +Dim fRet As Boolean + +Const kfMultiselectDates = False '** can multiple dates be selected at a time? + +Const kiDayIndexMax = 41 '** picCal displays 41 visible dates +Private Type SingleDay '** each visible date has info in a SingleDate rec + iTop As Integer + iLeft As Integer + lForeColor As Long '** kBlack = current month; kDkGray = prev/next month + sCaption As String '** date text ("1"-"31") +End Type + +Dim gfrmCal As Form '** form containing cal frame + +'** cal graphic-related vars +Dim giCurYear%, giCurMonth% '** current month/year visible +Dim giDayWidth%, giDayHeight% '** dimensions of the 41 visible dates +Dim gsMonthes$(1 To 12) '** stores month names +Dim gaDays(0 To 41) As SingleDay '** array of info on visible dates +Dim giTodayIndex% '** if current month visible then giTodayIndex is graphical inset +Dim gfCreateNewCal% +Dim fFirstClick% +Dim gsUsername$ + +'** cal date selection vars +'** cal has two kinds of selections +'** main selection: made by click, shift-click, or drag +'** ctrl selections: made by ctrl-click +Dim gdSelStart As Date '** start of main selection block +Dim gdSelEnd As Date '** end of main selection block +Dim gadCtrlSelect(0 To 100) As Date '** array of current ctrl-clicked dates; erased on non-ctrl-mousedown + '** if date in main sel then non-selected, else then selected +Dim giMaxCtrlSelectIndex As Integer '** highest index of gadCtrlSelect in use; init to -1 + +'** cal mouse vars +Dim giLastSelIndex As Integer '** last index selected by drag; used to validate MouseOver calls during drags +Dim gdLastDateClicked As Date '** last index clicked; used as next start for selection block +Dim gfExitedGray% '** after dragging over gray date to switch month, has mouse left gray dates on new month yet? + + +'** colors used cal +Const kLtGray = &HC0C0C0 +Const kDkGray = &H808080 +Const kBlack = &H0& +Const kWhite = &HFFFFFF +Const kBlue = &HFF0000 + +Private Sub ClearOldSelection(ByVal dStartNew As Date, ByVal dEndNew As Date, ByVal dStartOld As Date, ByVal dEndOld As Date) + '** redraws all dates between dStartOld & dStartNew but not between dStartNew & dEndNew + '** as unselected. + '** CalMousedown uses ClearOldSelection to deselect dates in the previous selection + '** block that are not in the new selection block + + Dim dTmp As Date '** used as utility date + Dim dFirstDate As Date '** first date vis in picCal; may be gray from previous month + Dim iIndex% '** gaDay index to deselect + + If dEndOld = 0 Or dStartOld = 0 Then Exit Sub + + '** switch dStartNew with dEndNew if dStartNew is higher + If dStartNew > dEndNew Then + dTmp = dStartNew + dStartNew = dEndNew + dEndNew = dTmp + End If + '** switch dStartOld with dEndOld if dStartOld is higher + If dStartOld > dEndOld Then + dTmp = dStartOld + dStartOld = dEndOld + dEndOld = dTmp + End If + + '** if dStartOld comes before the dates visible, + '** then set dStartOld to first date visible + If gaDays(0).lForeColor = kDkGray Then + dFirstDate = DateSerial(giCurYear, giCurMonth - 1, CInt(gaDays(0).sCaption)) + Else + dFirstDate = DateSerial(giCurYear, giCurMonth, CInt(gaDays(0).sCaption)) + End If + If dFirstDate > dStartOld Then dStartOld = dFirstDate + + '** if dEndOld comes after the dates visible, + '** then set dEndOld to last date visible + If gaDays(kiDayIndexMax).lForeColor = kDkGray Then + dTmp = DateSerial(giCurYear, giCurMonth + 1, CInt(gaDays(kiDayIndexMax).sCaption)) + Else + dTmp = DateSerial(giCurYear, giCurMonth, CInt(gaDays(kiDayIndexMax).sCaption)) + End If + If dTmp < dEndOld Then dEndOld = dTmp + + '** deselect all dates necessary + For dTmp = dStartOld To dEndOld + If dTmp < dStartNew Or dTmp > dEndNew Then + iIndex = dTmp - dFirstDate + DrawDay iIndex, kLtGray + End If + Next dTmp +End Sub + + +Private Sub DrawDay(ByVal iIndex%, ByVal lColor&) + Dim picCal As PictureBox '** vb4 workaround + + Set picCal = gfrmCal!picCal + '** draws an individual day + + '** draw background of day + '** lColor = kBlue if selected, ltGray if unselected + picCal.Line (gaDays(iIndex).iLeft, gaDays(iIndex).iTop)-(gaDays(iIndex).iLeft + giDayWidth - Screen.TwipsPerPixelX, gaDays(iIndex).iTop + giDayHeight - Screen.TwipsPerPixelY), lColor&, BF + + '** if this day is today, inset in 3d + If iIndex = giTodayIndex Then + ThreeDRect picCal, gaDays(iIndex).iLeft + Screen.TwipsPerPixelX * 1, gaDays(iIndex).iTop + Screen.TwipsPerPixelY * 1, gaDays(iIndex).iLeft + giDayWidth - Screen.TwipsPerPixelX * 1, gaDays(iIndex).iTop + giDayHeight - Screen.TwipsPerPixelX * 1, True + End If + + '** print the number of the day + picCal.CurrentX = (giDayWidth - picCal.TextWidth(gaDays(iIndex).sCaption)) / 2 + gaDays(iIndex).iLeft + picCal.CurrentY = (giDayHeight - picCal.TextHeight(gaDays(iIndex).sCaption)) / 2 + gaDays(iIndex).iTop + If lColor = kBlue And gaDays(iIndex).lForeColor <> kDkGray Then + picCal.ForeColor = kWhite '** if selected, kWhite + Else + picCal.ForeColor = gaDays(iIndex).lForeColor + End If + picCal.Print gaDays(iIndex).sCaption +End Sub + + + + + +Private Sub fMoreGrayDates() + +End Sub +Private Function fIsDateSelected%(ByVal iYear%, ByVal iMonth%, ByVal iDay%) + Dim dSrc As Date, i% + + dSrc = DateSerial(iYear, iMonth, iDay) + If (dSrc <= gdSelEnd And dSrc >= gdSelStart) Or (dSrc >= gdSelEnd And dSrc <= gdSelStart) Then + fIsDateSelected = True + End If + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) = dSrc Then + If fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + fIsDateSelected = False + Else + fIsDateSelected = True + End If + End If + Next i +End Function + + +Private Sub InitCalControls() + Dim i%, sWeekdays$ + Dim iOldScaleMode%, iOnePixelX%, iOnePixelY% + Dim iRow%, iColumn% + Dim picWeekdays As PictureBox '** vb4 workaround + + Set picWeekdays = gfrmCal!picWeekdays + iOldScaleMode = gfrmCal.ScaleMode + gfrmCal.ScaleMode = 1 + iOnePixelX = Screen.TwipsPerPixelX + iOnePixelY = Screen.TwipsPerPixelY + + gfrmCal!lblMonth.Left = (gfrmCal!fraCalender.Width - gfrmCal!lblMonth.Width) / 2 + gfrmCal!picGoMonth(0).Left = gfrmCal!lblMonth.Left - (gfrmCal!picGoMonth(0).Width + 3 * iOnePixelX) + gfrmCal!picGoMonth(1).Left = gfrmCal!lblMonth.Left + gfrmCal!lblMonth.Width + 3 * iOnePixelX + + gfrmCal!cmdOK.Top = gfrmCal!fraCalender.Height - (8 * iOnePixelY + gfrmCal!cmdOK.Height) + gfrmCal!cmdCancel.Top = gfrmCal!fraCalender.Height - (8 * iOnePixelY + gfrmCal!cmdCancel.Height) + gfrmCal!picCal.Width = gfrmCal!fraCalender.Width - 16 * iOnePixelX + gfrmCal!picCal.Height = gfrmCal!cmdOK.Top - (gfrmCal!picCal.Top) - 10 * iOnePixelY + + giDayHeight = gfrmCal!picCal.Height / 6 + giDayWidth = gfrmCal!picCal.Width / 7 + picWeekdays.Width = gfrmCal!picCal.Width + picWeekdays.Left = gfrmCal!picCal.Left + + gfrmCal!linDivider(0).X1 = gfrmCal!picCal.Left + gfrmCal!linDivider(0).X2 = gfrmCal!picCal.Left + gfrmCal!picCal.Width + gfrmCal!linDivider(2).Y1 = gfrmCal!picCal.Top + gfrmCal!picCal.Height + iOnePixelY + gfrmCal!linDivider(2).Y2 = gfrmCal!linDivider(2).Y1 + gfrmCal!linDivider(3).Y1 = gfrmCal!linDivider(2).Y1 + iOnePixelY + gfrmCal!linDivider(3).Y2 = gfrmCal!linDivider(2).Y1 + iOnePixelY + + For i = 1 To 3 + gfrmCal!linDivider(i).X1 = gfrmCal!linDivider(0).X1 + gfrmCal!linDivider(i).X2 = gfrmCal!linDivider(0).X2 + Next i + + sWeekdays = "SMTWTFS" + For i = 0 To 6 + picWeekdays.CurrentX = i * giDayWidth + giDayWidth / 2 + picWeekdays.Print Mid(sWeekdays, i + 1, 1); + Next i + + For i = 0 To kiDayIndexMax '41 number of days + gaDays(i).iLeft = iColumn * giDayWidth + gaDays(i).iTop = iRow * giDayHeight + iColumn = iColumn + 1 + If iColumn = 7 Then + iColumn = 0 + iRow = iRow + 1 + End If + Next i + gfrmCal.ScaleMode = iOldScaleMode +End Sub + + + +Function iDayIndex%(iYear%, iMonth%, iDay%) + + iDayIndex = WeekDay(DateSerial(iYear, iMonth, 1)) + iDay - 2 +End Function + +Private Sub MakeSelection(ByVal dStartNew As Date, ByVal dEndNew As Date, ByVal dStartOld As Date, ByVal dEndOld As Date) + Dim dTmp + Dim dFirstDate As Date + Dim iDayDiff% + + If dEndOld = 0 Or dStartOld = 0 Then Exit Sub + If dStartNew > dEndNew Then + dTmp = dStartNew + dStartNew = dEndNew + dEndNew = dTmp + End If + If dStartOld > dEndOld Then + dTmp = dStartOld + dStartOld = dEndOld + dEndOld = dTmp + End If + 'reset dStartOld to first of cal if efficient + If gaDays(0).lForeColor = kDkGray Then + dFirstDate = DateSerial(giCurYear, giCurMonth - 1, CInt(gaDays(0).sCaption)) + Else + dFirstDate = DateSerial(giCurYear, giCurMonth, CInt(gaDays(0).sCaption)) + End If + If dFirstDate > dStartNew Then dStartNew = dFirstDate + + 'reset dEndOld to first of cal if efficient + If gaDays(kiDayIndexMax).lForeColor = kDkGray Then + dTmp = DateSerial(giCurYear, giCurMonth + 1, CInt(gaDays(kiDayIndexMax).sCaption)) + Else + dTmp = DateSerial(giCurYear, giCurMonth, CInt(gaDays(kiDayIndexMax).sCaption)) + End If + If dTmp < dEndNew Then dEndNew = dTmp + + For dTmp = dStartNew To dEndNew '** ALERT: THIS DOES NOT INCLUDE OLD NOT SELOTHERS!!! + If dTmp >= dEndOld Or dTmp <= dStartOld Then + iDayDiff = dTmp - dFirstDate + DrawDay iDayDiff, kBlue + End If + Next dTmp +End Sub + +Private Sub DrawCalender() + '** draws the current dates and selection + + Dim dStartDate As Date '** first date of month + Dim iDayOfWeek% + Dim iDaysInMonth% + Dim i% + Dim iDayInPrevMonth% + Dim iCurDay% + + gfrmCal!lblMonth = gsMonthes(giCurMonth) & " " & CStr(giCurYear) '** set month label + dStartDate = DateSerial(giCurYear, giCurMonth, 1) + + '** if this is current month, find which index is today + If (giCurYear = Year(Now)) And (Month(Now) = giCurMonth) Then + giTodayIndex = iDayIndex(Year(Now), Month(Now), day(Now)) + Else + giTodayIndex = -1 + End If + + '** find how many days are in current month + '** to get: subtract first day of next month by first day of this month + If giCurMonth = 12 Then + iDaysInMonth = DateSerial(giCurYear + 1, 1, 1) - dStartDate + Else + iDaysInMonth = DateSerial(giCurYear, giCurMonth + 1, 1) - dStartDate + End If + + iDayOfWeek = WeekDay(dStartDate) '** set day of week which the first day of the month falls on + '** draw all the days of this month + For i = iDayOfWeek - 1 To (iDayOfWeek - 1) + iDaysInMonth - 1 + iCurDay% = iCurDay% + 1 + gaDays(i).sCaption = Str(iCurDay%) + If fIsDateSelected(giCurYear, giCurMonth, iCurDay%) Then + gaDays(i).lForeColor = kBlack + DrawDay i, kBlue + Else + gaDays(i).lForeColor = kBlack + DrawDay i, kLtGray + End If + Next i + + '** calculate the number of days in previous month + If giCurMonth = 1 Then + iDayInPrevMonth = dStartDate - DateSerial(giCurYear - 1, 12, 1) + Else + iDayInPrevMonth = dStartDate - DateSerial(giCurYear, giCurMonth - 1, 1) + End If + + '** draw in the last gray days of previous month + For i = 0 To iDayOfWeek - 2 + iCurDay% = iDayInPrevMonth - (iDayOfWeek - i) + 2 + gaDays(i).sCaption = iCurDay% + gaDays(i).lForeColor = kDkGray + If fIsDateSelected(giCurYear, giCurMonth - 1, iCurDay%) Then + DrawDay i, kBlue + Else + DrawDay i, kLtGray + End If + Next i + + '** draw in the first gray days of next month + iCurDay% = 0 + For i = (iDayOfWeek - 1) + iDaysInMonth To 41 + iCurDay% = iCurDay% + 1 + gaDays(i).lForeColor = kDkGray + gaDays(i).sCaption = iCurDay% + If fIsDateSelected(giCurYear, giCurMonth + 1, iCurDay%) Then + DrawDay i, kBlue + Else + DrawDay i, kLtGray + End If + Next i +End Sub + +Private Sub CalInitialize(frmCal As Form) + '** initializes cal vars and controls + '** frmCal = the form with cal frame control + + fRet = False + + Dim i% + + Set gfrmCal = frmCal + InitCalControls '** place and initialize controls in cal frame control + + '** init global cal variables + giCurYear = Year(Now) + giCurMonth = Month(Now) + For i = LBound(gadCtrlSelect) To UBound(gadCtrlSelect) + gadCtrlSelect(i) = 0 + Next i + + gdSelStart = DateSerial(Year(Now), Month(Now), day(Now)) '** init main selection to today + gdSelEnd = gdSelStart + giMaxCtrlSelectIndex = -1 + + giLastSelIndex = -1 + gfExitedGray = True + + For i = 1 To 12 '** fill gsMonthes array with month names + gsMonthes(i) = Format$(DateSerial(giCurYear, i, 1), "mmmm") + Next + + DrawCalender '** draw the current month + fFirstClick = True +End Sub + +Private Sub ThreeDRect(picCanvas As PictureBox, iLeft%, iTop%, iRight%, iBottom%, fOut%) + Dim lColor1&, lColor2& + + If fOut Then + lColor1 = kDkGray + lColor2 = kWhite + Else + lColor1 = kWhite + lColor2 = kDkGray + End If + + picCanvas.ForeColor = lColor1 + picCanvas.Line (iLeft - 1, iTop - 2)-(iLeft - 1, iBottom + 2) + picCanvas.Line (iLeft - 2, iTop - 2)-(iLeft - 2, iBottom + 2) + picCanvas.Line (iLeft - 2, iTop - 1)-(iRight + 2, iTop - 1) + picCanvas.Line (iLeft - 2, iTop - 2)-(iRight + 2, iTop - 2) + + picCanvas.ForeColor = lColor2 + picCanvas.Line (iRight + 1, iTop - 1)-(iRight + 1, iBottom + 2) + picCanvas.Line (iRight + 2, iTop - 2)-(iRight + 2, iBottom + 2) + picCanvas.Line (iLeft - 1, iBottom + 1)-(iRight + 2, iBottom + 1) + picCanvas.Line (iLeft - 2, iBottom + 2)-(iRight + 2, iBottom + 2) +End Sub + + + +Private Sub CalMouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) + '** select or de-select a date + '** handles click, shift-click and ctrl-click + '** MouseOver calls CalMousedown with shift for dragging + + Dim dNewDate As Date '** date selected + Dim iIndex% '** gaDay index of date clicked + Dim iDay% '** current day (1-31) + + '** if not left mouse button then exit + If (Button And vbLeftButton) <= 0 Then Exit Sub + + If fFirstClick = True Then Shift = 0 + fFirstClick = False + + '** find the gaDay index of date clicked on + iIndex = (Int(Y / giDayHeight) * 7) + Int(X / giDayWidth) + If iIndex < 0 Or iIndex > kiDayIndexMax Then Exit Sub + + iDay = CInt(gaDays(iIndex).sCaption) + + '** if the click is on a grayed out date then make new month visible + If gaDays(iIndex).lForeColor = kDkGray Then + If iDay < 15 Then + CalGoMonth 1 '** switch to prev month + Else + CalGoMonth 0 '** switch to next month + End If + iIndex = iDayIndex(giCurYear, giCurMonth, iDay) '** adjust iIndex to new month + If (Shift And vbShiftMask) > 0 Then gfExitedGray = False '** set flag to prevent another month switch if new month + End If '** has grayed out date under mouse + + dNewDate = DateSerial(giCurYear, giCurMonth, iDay) + If kfMultiselectDates And (Shift And vbShiftMask) > 0 Then '** shift-key down + ClearCtrlSelects '** clear all ctrl-key selected dates + ClearOldSelection gdLastDateClicked, dNewDate, gdSelStart, gdSelEnd + MakeSelection gdLastDateClicked, dNewDate, gdSelStart, gdSelEnd + gdSelEnd = dNewDate + gdSelStart = gdLastDateClicked + ElseIf kfMultiselectDates And (Shift And vbCtrlMask) > 0 Then '** ctrl-key down + CtrlSelectDate iIndex, dNewDate + Else '**simple mouse click, no keys down + ClearCtrlSelects '** clear all ctrl-key selected dates + ClearOldSelection dNewDate, dNewDate, gdSelStart, gdSelEnd + gdSelStart = dNewDate + gdSelEnd = dNewDate + DrawDay iIndex, kBlue + gdLastDateClicked = dNewDate + End If + +End Sub + +Private Sub CalGoMonth(iIndex%) + '** if index = 0, make previous month visible + '** else, make next month visible + + If iIndex% = 0 Then + giCurMonth = giCurMonth - 1 + If giCurMonth = 0 Then + giCurMonth = 12 + giCurYear = giCurYear - 1 + End If + Else + giCurMonth = giCurMonth + 1 + If giCurMonth = 13 Then + giCurMonth = 1 + giCurYear = giCurYear + 1 + End If + End If + DrawCalender '** draw new month +End Sub + +Private Sub CalMouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) + Dim iIndex% '** index of gaDay that mouse is over + + '** set gfExitedGray to true if mouse is not over gray date + iIndex = (Int(Y / giDayHeight) * 7) + Int(X / giDayWidth) '** calculate index + If iIndex >= 0 And iIndex <= kiDayIndexMax Then + If gaDays(iIndex).lForeColor = kBlack Then + gfExitedGray = True + End If + End If + + '** if the mouse is not on the same index as last mousemove + '** and the left mouse button is down + If kfMultiselectDates And ((Button And vbLeftButton) > 0) And (Shift And vbShiftMask) = 0 And (Shift And vbCtrlMask) = 0 And iIndex <> giLastSelIndex And gfExitedGray = True Then + giLastSelIndex = iIndex + CalMouseDown Button, vbShiftMask, X, Y '** simulate mousedown with shiftkey + End If + +End Sub + +Private Function fDateInBetween(dSrc As Date, dStart As Date, dEnd As Date) + If (dSrc <= dEnd And dSrc >= dStart) Or (dSrc >= dEnd And dSrc <= dStart) Then + fDateInBetween = True + End If + +End Function + +Private Sub ClearCtrlSelects() + '** clear gadCtrlSelect array; no ctrl-key selection blocks + '** redraw the ex-ctrl-selected dates + + Dim i%, dFirstDate As Date, iIndex% + + If gaDays(0).lForeColor = kDkGray Then + dFirstDate = DateSerial(giCurYear, giCurMonth - 1, CInt(gaDays(0).sCaption)) + Else + dFirstDate = DateSerial(giCurYear, giCurMonth, CInt(gaDays(0).sCaption)) + End If + + For i = 0 To giMaxCtrlSelectIndex '** loop through gadCtrlSelect array + If gadCtrlSelect(i) <> 0 Then '** if valid ctrl-selection + If fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then '** redraw as selected day + iIndex = gadCtrlSelect(i) - dFirstDate + If iIndex > -1 And iIndex <= kiDayIndexMax Then + DrawDay iIndex, kBlue + End If + Else '** redraw as unselected day (not in selection) + iIndex = gadCtrlSelect(i) - dFirstDate + If iIndex > -1 And iIndex <= kiDayIndexMax Then + DrawDay iIndex, kLtGray + End If + End If + End If + gadCtrlSelect(i) = 0 '** clear to 0 (turn off) + Next i + giMaxCtrlSelectIndex = -1 +End Sub + + +Private Sub CtrlSelectDate(iIndex%, dNewDate As Date) + '** perform a ctrl-click on a dNewDate + '** if this date was selected then deselect; if this date was unselected then select + '** at least one date MUST be selected at any time + + Dim fValid% '** is this ctrl-click valid? + Dim i%, dTmp As Date '** utility variables + Dim iExists% '** does this date exist in gadCtrlSelect array? if yes, holds index + Dim iStep% '** which way do we loop? + Dim iNumSelMain%, iNumSelCtrl% '** number of dates highlighted in main sel block/ctrl-click array + + + '** first, check if this is a valid ctrl-click + '** if this causes no dates to be selected than it is INVALID + + '** how many dates are selected within the main selection block? + If gdSelStart > gdSelEnd Then '** do we have to loop through selection backwards? + iStep = -1 '** yes, gdSelEnd comes first + Else + iStep = 1 '** no, gsSelStart comes first + End If + + '** loop through main selection block keeping tally of selected dates within + For dTmp = gdSelStart To gdSelEnd Step iStep + If fIsDateSelected(Year(dTmp), Month(dTmp), day(dTmp)) = True Then + iNumSelMain = iNumSelMain + 1 + If iNumSelMain > 1 Then Exit For + End If + Next dTmp + dTmp = 0 '** clear loop variable + + If iNumSelMain > 1 Then '** multiple dates selected, ok to ctrl-click + fValid = True + Else '** if 0 or 1 dates are selected, ctrl-click may not be valid + '** how many ctrl-click dates are selected? keep tally in iNumSelCtrl + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) > 0 And Not fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + iNumSelCtrl = iNumSelCtrl + 1 + If iNumSelCtrl > 1 Then Exit For + End If + Next i + + If iNumSelMain = 0 And iNumSelCtrl = 1 Then '** if we only have one selected date + '** and it is a ctrl-click + '** find that date; store in dTmp + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) > 0 And Not fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + dTmp = gadCtrlSelect(i) + Exit For + End If + Next i + If dTmp <> dNewDate Then '** ctrl-click valid if selected date does + fValid = True '** not equal the clicked + End If + ElseIf iNumSelMain = 1 And iNumSelCtrl = 0 Then '** if we have one selected date + '** and it is in the main sel block + '** if the date just ctrl-clicked isn't the sole selected date than valid + If Not fIsDateSelected(Year(dNewDate), Month(dNewDate), day(dNewDate)) Then + fValid = True + End If + Else + fValid = True '** valid; multiple ctrl-click selections + End If + End If + + If fValid = True Then '** this is a valid ctrl click + '** does this ctrl-click already exist in the gadCtrlSelect array? if so, find it + iExists = -1 + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) = dNewDate Then + iExists = i + Exit For + End If + Next i + + If iExists > -1 Then '** yes, this ctrl-click already exists + '** since the user is reclicking an already selected ctrl-click, + '** this is essentially identical to clearing it + '** first, draw the selection/deselection + If fDateInBetween(gadCtrlSelect(iExists), gdSelStart, gdSelEnd) Then + DrawDay iIndex, kBlue + Else + DrawDay iIndex, kLtGray + End If + + gadCtrlSelect(iExists) = 0 '** clear this ctrl-click from array + '** adjust giMaxCtrlSelectIndex to point to last valid ctrl-click + '** in the gadCtrlSelect array + If iExists = giMaxCtrlSelectIndex Then + giMaxCtrlSelectIndex = giMaxCtrlSelectIndex - 1 + If giMaxCtrlSelectIndex > -1 Then + While giMaxCtrlSelectIndex > 0 And gadCtrlSelect(giMaxCtrlSelectIndex) = 0 + giMaxCtrlSelectIndex = giMaxCtrlSelectIndex - 1 + Wend + If giMaxCtrlSelectIndex = 0 And gadCtrlSelect(0) = 0 Then giMaxCtrlSelectIndex = -1 + End If + End If + Else '** this ctrl-click does not exist already + '** find the first available (empty) gadCtrlSelect date + i = 0 + While gadCtrlSelect(i) <> 0 + i = i + 1 + Wend + + gadCtrlSelect(i) = dNewDate '** set to new date + '** draw this ctrl-click + If fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + DrawDay iIndex, kLtGray + Else + DrawDay iIndex, kBlue + End If + If i > giMaxCtrlSelectIndex Then giMaxCtrlSelectIndex = i '** reset giMax if necessary + End If + gdLastDateClicked = dNewDate + End If +End Sub + + + +Private Function ValidatePayPeriod(dateToValidate As Date) As Boolean +'in this sample we require that date identifying a pay period be a Friday + +If WeekDay(dateToValidate, vbSunday) = vbFriday Then + ValidatePayPeriod = True +Else + MsgBox "The date has to be a Friday" + ValidatePayPeriod = False +End If + +End Function + + + + + + + +Private Sub JumpToFirstSelected() + '** set the month/year to the month/year with first selected date + + Dim i% + Dim dFirstDate As Date + + If gdSelStart < gdSelEnd Then + dFirstDate = gdSelStart + Else + dFirstDate = gdSelEnd + End If + + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) < dFirstDate And Not fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + dFirstDate = gadCtrlSelect(i) + End If + Next i + giCurMonth = Month(dFirstDate) + giCurYear = Year(dFirstDate) + DrawCalender +End Sub + + + +Public Function GetDate(DateToSet As Date) As Boolean + +frmCalender.Show 1 + +If fRet Then + DateToSet = gdSelStart + GetDate = True +Else + GetDate = False +End If + +End Function + + + + + +Private Sub cmdCancel_Click() + +fRet = False + +Unload Me + +End Sub + +Private Sub cmdOK_Click() + +If ValidatePayPeriod(gdSelStart) Then + fRet = True + Unload Me +End If + +End Sub + +Private Sub Form_Load() + CalInitialize Me +End Sub + + + + + + + + +Private Sub picCal_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) + fDirty = True + CalMouseDown Button, Shift, X, Y +End Sub + +Private Sub picCal_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) + CalMouseMove Button, Shift, X, Y +End Sub + +Private Sub picCal_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) + giLastSelIndex = -1 +End Sub + +Private Sub picGoMonth_Click(Index As Integer) + CalGoMonth Index +End Sub + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/CAL.FRX b/cadVb/COMMON/TOOLS/VB/OLEMSG/CAL.FRX new file mode 100644 index 0000000..4e6def3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLEMSG/CAL.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/CLIENT.BAS b/cadVb/COMMON/TOOLS/VB/OLEMSG/CLIENT.BAS new file mode 100644 index 0000000..eae37c5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/CLIENT.BAS @@ -0,0 +1,72 @@ +Attribute VB_Name = "client" +Option Explicit + + +Global objSession As Object + +Type WeekDataType + Day(7) As Double +End Type + + + +Sub Main() + +Dim bFlag As Boolean + +On Error GoTo error_olemsg + +'create session and logon +bFlag = Util_CreateSessionAndLogon() + +If Not bFlag Then Exit Sub + +'go try to find request message and show the report form +formReport.Init + +If Not objSession Is Nothing Then + 'logoff + objSession.Logoff +End If + + +Exit Sub + + +error_olemsg: + If Not bFlag Then + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + End + End If + + +End Sub + +Function Util_CreateSessionAndLogon() As Boolean + 'create session and logon + On Error GoTo err_CreateSessionAndLogon + + Set objSession = CreateObject("MAPI.Session") + objSession.Logon + Util_CreateSessionAndLogon = True + Exit Function + +err_CreateSessionAndLogon: + Set objSession = Nothing + + If Not (Err = -2147221229) Then 'if not user cancel + MsgBox "Unrecoverable Error:" & Err + End If + + Util_CreateSessionAndLogon = False + Exit Function + +error_olemsg: + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + Resume Next + +End Function + + + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/MAINSVR.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/MAINSVR.FRM new file mode 100644 index 0000000..d120b17 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/MAINSVR.FRM @@ -0,0 +1,759 @@ +VERSION 5.00 +Begin VB.Form formmainsvr + AutoRedraw = -1 'True + BorderStyle = 1 'Fixed Single + Caption = "Time Card Server" + ClientHeight = 6795 + ClientLeft = 1410 + ClientTop = 1515 + ClientWidth = 8880 + Height = 7200 + Left = 1350 + LinkTopic = "Form2" + ScaleHeight = 6795 + ScaleWidth = 8880 + Top = 1170 + Width = 9000 + Begin VB.ListBox lstUsers + Height = 4575 + Left = 480 + TabIndex = 7 + Top = 720 + Width = 3372 + End + Begin VB.CommandButton btnAddUsr + Caption = "&Add" + Height = 372 + Left = 480 + TabIndex = 6 + Top = 5880 + Width = 1212 + End + Begin VB.CommandButton btnRemoveAllUsers + Caption = "&Remove All" + Height = 372 + Left = 2640 + TabIndex = 5 + Top = 5880 + Width = 1212 + End + Begin VB.TextBox txtCat + Height = 372 + Left = 4920 + TabIndex = 3 + Top = 720 + Width = 3372 + End + Begin VB.ListBox lstCat + Height = 3795 + ItemData = "mainsvr.frx":0000 + Left = 4920 + List = "mainsvr.frx":0007 + TabIndex = 2 + Top = 1500 + Width = 3372 + End + Begin VB.CommandButton btnAddCat + Caption = "A&dd" + Default = -1 'True + Enabled = 0 'False + Height = 372 + Left = 4920 + TabIndex = 1 + Top = 5880 + Width = 1212 + End + Begin VB.CommandButton btnRemoveCat + Caption = "Remo&ve" + Enabled = 0 'False + Height = 372 + Left = 7080 + TabIndex = 0 + Top = 5880 + Width = 1212 + End + Begin VB.Label Label1 + Caption = "User List" + Height = 252 + Left = 480 + TabIndex = 8 + Top = 240 + Width = 1572 + End + Begin VB.Label lblName + Caption = "Category to add" + Height = 252 + Left = 4800 + TabIndex = 4 + Top = 240 + Width = 1572 + End + Begin VB.Line Line1 + X1 = 4440 + X2 = 4440 + Y1 = 0 + Y2 = 6840 + End + Begin VB.Menu mnuFile + Caption = "&File" + Begin VB.Menu mnuSave + Caption = "&Save" + End + Begin VB.Menu mnus + Caption = "-" + Index = 1 + End + Begin VB.Menu mnuExit + Caption = "E&xit" + End + End + Begin VB.Menu mnuReport + Caption = "&Report" + Begin VB.Menu mnuSend + Caption = "&Send Requests" + End + Begin VB.Menu mnuGenerate + Caption = "&Generate Report" + End + Begin VB.Menu mnuse + Caption = "-" + End + Begin VB.Menu mnuCleanUp + Caption = "&Clean Up Receiving Folder" + End + End + Begin VB.Menu mnuHelp + Caption = "&Help" + Begin VB.Menu mnuAbout + Caption = "&About" + End + End +End +Attribute VB_Name = "formmainsvr" +Attribute VB_Base = "0{CFF16A11-C697-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Attribute VB_Customizable = False +Option Explicit + + + + +Sub GetCategoryList() + +ReDim CategoryList.aCats(lstCat.ListCount) As String +Dim ind As Integer + +CategoryList.cCats = lstCat.ListCount + +ind = 0 +Do While ind < CategoryList.cCats + CategoryList.aCats(ind) = lstCat.List(ind) + ind = ind + 1 +Loop + +End Sub + + + + +Public Sub SendRequest(cCats As Integer, Cats() As String, PayPrd As Date, Reminder As Boolean) +'sends request message + +On Error GoTo error_olemsg + +Dim objmessage As Object +Dim prop As Object +Dim objRecip As Object +Dim objRecipCol As Object +Dim objFieldCol As Object +Dim objAttachmentCol As Object +Dim objAtt As Object +Dim ind As Integer +Dim msgBody As String + + +If UserList.cUsers = 0 Then + MsgBox "User List is empty" + Exit Sub +End If + +If cCats = 0 Then + MsgBox "Category list is empty" + Exit Sub +End If + +If Not Reminder Then + If Not frmCalender.GetDate(PayPrd) Then + Exit Sub + End If +End If + +If objSession Is Nothing Then + MsgBox "Not logged on" + Exit Sub +End If + +'create new message in the outbox +Set objmessage = objSession.Outbox.Messages.Add +If objmessage Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub +End If + + +If Not Reminder Then + objmessage.Subject = "Time to fill out your time report" + msgBody = "" +Else + objmessage.Subject = "SECOND NOTICE: Time to fill out your time report" + msgBody = "Your time report has not been received. " +End If + +msgBody = msgBody & "Please run the attached application (double click on the attachment) and fill out the form" +'set the body of the message +objmessage.Text = msgBody + +'set the message class +objmessage.Type = RequestMsgType + +'open recipients collection +Set objRecipCol = objmessage.Recipients +If objRecipCol Is Nothing Then + MsgBox "Can't open msg's recipients" + Exit Sub +End If + +'add recipients +For ind = 0 To UserList.cUsers - 1 + If Not Reminder Then 'send to everybody + Set objRecip = objRecipCol.Add(EntryID:=UserList.aUsers(ind).EntryID, _ + Name:=UserList.aUsers(ind).DisplayName) + + Else 'if this is a reminder, send only to the people we don't have reports from + If UserList.aUsers(ind).ReportIndex = E_NOT_FOUND Then + Set objRecip = objRecipCol.Add(EntryID:=UserList.aUsers(ind).EntryID, _ + Name:=UserList.aUsers(ind).DisplayName) + Else + GoTo continue + End If + + End If + If objRecip Is Nothing Then + MsgBox "Can't add recipient" + Exit Sub + End If +continue: +Next ind + + +'open msg's field collection +Set objFieldCol = objmessage.Fields +If objFieldCol Is Nothing Then + MsgBox "Can't open msg's fields collection" + Exit Sub +End If + + +'set the report categories +'we can't write: +'Set prop = objFieldCol.Add(Name:=CatPropName, _ + Class:=vbString + vbArray, _ + Value:=Cats) +'because of the way VB passes array parameters +'so we first add a property and then set its value +Set prop = objFieldCol.Add(Name:=CatPropName, _ + Class:=vbString + vbArray) +If prop Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub + End If +prop.Value = Cats + +'set the number of report categories +Set prop = objFieldCol.Add(Name:=NumCatPropName, _ + Class:=vbInteger, _ + Value:=cCats) +If prop Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub + End If + +'set the report payperiod +Set prop = objFieldCol.Add(Name:=PayPeriodPropName, _ + Class:=vbDate, _ + Value:=PayPrd) +If prop Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub +End If + +'open msg's attachment collection +Set objAttachmentCol = objmessage.Attachments +If objAttachmentCol Is Nothing Then + MsgBox "Can't open attachment collection" + Exit Sub +End If + +'create a new attachment +Set objAtt = objAttachmentCol.Add +If objAtt Is Nothing Then + MsgBox "Can't add attachment" + Exit Sub +End If + +'send the client.exe as an attachment +objAtt.Type = mapiFileData 'means the file is contained withing the message +objAtt.position = 0 'no particular position +objAtt.ReadFromFile ClientExePath 'read in the file +objAtt.Name = ClientExeName 'set the file name + +objmessage.Send showDialog:=False + +Exit Sub + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Sub + + + +Private Sub btnAddCat_Click() + lstCat.AddItem txtCat.Text ' Add a client name to the list box. + txtCat.Text = "" ' Clear the text box. + txtCat.SetFocus ' Place focus back to the text box. + +End Sub + + +Private Sub btnAddUsr_Click() +Dim objNewUsers As Object +Dim ind As Integer + +On Error GoTo err_btnAdd_Click + +If objSession Is Nothing Then + MsgBox "must first create MAPI session and logon" + Exit Sub +End If + +Set objNewUsers = objSession.AddressBook( _ + Title:="Select Users", _ + forceResolution:=True, _ + recipLists:=1, _ + toLabel:="&New Users") ' appears on button + +ReDim Preserve UserList.aUsers(UserList.cUsers + objNewUsers.Count) + +With objNewUsers +For ind = 0 To (objNewUsers.Count - 1) Step 1 + With .Item(ind + 1) + UserList.aUsers(UserList.cUsers + ind).DisplayName = .Name + UserList.aUsers(UserList.cUsers + ind).EntryID = .addressentry.id + UserList.aUsers(UserList.cUsers + ind).ReportIndex = E_NOT_FOUND + End With +Next ind +End With + + +UserList.cUsers = UserList.cUsers + objNewUsers.Count + +PopulateUserList + +Exit Sub + +err_btnAdd_Click: + If Not (err = 91) Then ' object not set + MsgBox "Unrecoverable Error:" & err + End If + + +End Sub + +Private Sub btnRemoveAllUsers_Click() + lstUsers.Clear ' Empty the list box. + btnRemoveAllUsers.Enabled = False + + UserList.cUsers = 0 +End Sub + + +Private Sub btnRemoveCat_Click() +Dim ind As Integer + + ind = lstCat.ListIndex ' Get index. + If ind >= 0 Then ' Make sure a list item is selected. + lstCat.RemoveItem ind ' Remove the item from the list box. + Else + Beep ' This should never occur, because Remove is always disabled if no entry is selected. + End If + ' Disable the Remove button if no entries are selected in the list box. + btnRemoveCat.Enabled = (lstCat.ListIndex <> -1) + +End Sub + + +Private Sub Form_Load() +Dim bFlag As Boolean + +On Error GoTo error_olemsg + +bFlag = Util_CreateSessionAndLogon() + +If Not bFlag Then End + + +InitUserList +PopulateUserList + +InitCategorylist +PopulateCatList + +InitPayPeriod + + +Exit Sub + + +error_olemsg: + If Not bFlag Then + MsgBox "Error " & Str(err) & ": " & Error$(err) + End + End If + + +End Sub + +Private Sub Form_Unload(Cancel As Integer) +If Not objSession Is Nothing Then + objSession.logoff + End If + + +End Sub + + +Private Sub lstCat_Click() + btnRemoveCat.Enabled = (lstCat.ListIndex <> -1) + +End Sub + +Private Sub lstUsers_Click() + btnRemoveAllUsers.Enabled = (lstUsers.ListIndex <> -1) + +End Sub + +Private Sub lstUsers_DblClick() +On Error GoTo err + +Dim ind As Integer +Dim AddrEntry As Object + + ind = lstUsers.ListIndex + If ind >= 0 Then + Set AddrEntry = objSession.GetAddressEntry(UserList.aUsers(ind).EntryID) + If AddrEntry Is Nothing Then Exit Sub + AddrEntry.details + + Else + Beep + End If + +Exit Sub + +err: + If Not (err = -2147221229) Then ' object not set + MsgBox "Unrecoverable Error:" & err + End If + +End Sub + + +Private Sub mnuAbout_Click() + formAbout.Show 1 + +End Sub + + +Private Sub mnuCleanUp_Click() + +On Error GoTo error_olemsg + +Dim objReceivFolder As Object +Dim objmessages As Object +Dim objmessage As Object + +If objSession Is Nothing Then + MsgBox "Not logged on" + Exit Sub +End If + +GetReceivIPCFolder objReceivFolder +If objReceivFolder Is Nothing Then + MsgBox "Can't open receive folder" + Exit Sub +End If + +Set objmessages = objReceivFolder.Messages +If objmessages Is Nothing Then + MsgBox "Failed to open folder's Messages collection" + Exit Sub +End If + +Set objmessage = objmessages.getfirst(ReportMsgType) +Do While Not objmessage Is Nothing + + If Not objmessage.Unread Then + objmessage.Delete + End If + + Set objmessage = objmessages.getnext +Loop + +Exit Sub + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Sub + +Private Sub mnuExit_Click() + + Unload Me + 'End +End Sub + +Private Sub mnuGenerate_Click() + +If formReport.CompileReport Then + formReport.Show 1 +End If + +'user list may have changed +PopulateUserList + +End Sub + + +Private Sub SaveCats() +On Error GoTo CheckError + +Dim ind As Integer + + +Open CatsListFile For Output As #1 + +Write #1, CategoryList.cCats + +ind = 0 +Do While ind < CategoryList.cCats + Print #1, CategoryList.aCats(ind) + ind = ind + 1 +Loop + +Close #1 + +Exit Sub + +CheckError: +MsgBox "Error saving user list" + +End Sub + +Private Sub SaveUsers() + +On Error GoTo CheckError + +Dim ind As Integer + +'If UserList.cUsers = 0 Then Exit Sub + + +Open UserListFile For Output As #1 + +Write #1, UserList.cUsers + +ind = 0 +Do While ind < UserList.cUsers + Print #1, UserList.aUsers(ind).DisplayName + Print #1, UserList.aUsers(ind).EntryID + ind = ind + 1 +Loop + +Close #1 + +Exit Sub + +CheckError: +MsgBox "Error saving user list" + +End Sub + + + +Private Sub mnuSave_Click() + +GetUserList +SaveUsers + +GetCategoryList +SaveCats + +End Sub + +Private Sub mnuSend_Click() + +GetUserList +GetCategoryList + +MousePointer = WaitCursor +SendRequest CategoryList.cCats, CategoryList.aCats, PayPeriod, False +MousePointer = DefaultCursor + +End Sub + + +Function Util_CreateSessionAndLogon() As Boolean + On Error GoTo err_CreateSessionAndLogon + + Set objSession = CreateObject("MAPI.Session") + If Not objSession Is Nothing Then + objSession.Logon + Else + Util_CreateSessionAndLogon = False + Exit Function + End If + Util_CreateSessionAndLogon = True + + Exit Function + +err_CreateSessionAndLogon: + Set objSession = Nothing + + If (err <> -2147221229) Then ' VB4.0 uses "Err.Number" + MsgBox "Unrecoverable Error:" & err + End If + Util_CreateSessionAndLogon = False + Exit Function + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Function + + +Sub GetUserList() +'empty for now +End Sub + +Sub InitPayPeriod() + + PayPeriod = Date +End Sub + +Sub InitUserList() + +On Error GoTo CheckError + +Dim ind As Integer +Dim cSavedUsers As Integer + +Open UserListFile For Input As #1 + +Input #1, cSavedUsers +Debug.Print "found " & cSavedUsers & " saved users" + +ReDim UserList.aUsers(cSavedUsers) + +ind = 0 +Do While ind < cSavedUsers + Line Input #1, UserList.aUsers(ind).DisplayName + Line Input #1, UserList.aUsers(ind).EntryID + UserList.aUsers(ind).ReportIndex = E_NOT_FOUND + ind = ind + 1 +Loop + +Close #1 + +UserList.cUsers = cSavedUsers + +Exit Sub + +CheckError: +UserList.cUsers = 0 + +End Sub + + + + +Sub InitCategorylist() +'Read saved cats from file + +On Error GoTo CheckError + +Dim ind As Integer +Dim cSavedCats As Integer + +Open CatsListFile For Input As #1 + +Input #1, cSavedCats +Debug.Print "found " & cSavedCats & " saved categories" + +ReDim CategoryList.aCats(cSavedCats) + +ind = 0 +Do While ind < cSavedCats + Line Input #1, CategoryList.aCats(ind) + ind = ind + 1 +Loop + +Close #1 + +CategoryList.cCats = cSavedCats + +Exit Sub + +CheckError: +CategoryList.cCats = 0 + +End Sub + + + +Private Sub txtCat_Change() + ' Enable the Add button if at least one character in the name is entered or changed. + btnAddCat.Enabled = (Len(txtCat.Text) > 0) + +End Sub +Sub PopulateUserList() + +Dim ind As Integer + +lstUsers.Clear + +For ind = 0 To UserList.cUsers - 1 + lstUsers.AddItem UserList.aUsers(ind).DisplayName +Next ind + +End Sub + + + +Private Sub PopulateCatList() +Dim ind As Integer + +lstCat.Clear + +For ind = 0 To CategoryList.cCats - 1 + lstCat.AddItem CategoryList.aCats(ind) +Next ind + +End Sub diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/MAINSVR.FRX b/cadVb/COMMON/TOOLS/VB/OLEMSG/MAINSVR.FRX new file mode 100644 index 0000000..e160eb5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLEMSG/MAINSVR.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/OLEMSG.XLS b/cadVb/COMMON/TOOLS/VB/OLEMSG/OLEMSG.XLS new file mode 100644 index 0000000..e2bd0d8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLEMSG/OLEMSG.XLS differ diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/OLEMSG2.HLP b/cadVb/COMMON/TOOLS/VB/OLEMSG/OLEMSG2.HLP new file mode 100644 index 0000000..5a8c4b3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLEMSG/OLEMSG2.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/README.TXT b/cadVb/COMMON/TOOLS/VB/OLEMSG/README.TXT new file mode 100644 index 0000000..fb049b5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/README.TXT @@ -0,0 +1,18 @@ +OLE Messaging +------------- + +OLEMSG.HLP is a Windows Help file that documents the entire OLE +Messaging library. It includes complete reference information, a +programmer's guide, and many brief code examples. + +OLEMSG.XLS is a Microsoft Excel spreadsheet containing all the +sample source code that appears in the OLE Messaging +documentation. There are no complete sample programs, but many +short routines illustrating how to use various OLE messaging features. + +TIMECARD.CLI is a directory containing a complete OLE Messaging +sample application, written for Visual Basic. There is a server +program which maintains a list of users and summarizes their +timecard reports, and a client program that is used to fill out a +timecard. Refer to README.TXT in the TIMECARD.CLI directory +for more details. diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/SERVER.BAS b/cadVb/COMMON/TOOLS/VB/OLEMSG/SERVER.BAS new file mode 100644 index 0000000..7221082 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/SERVER.BAS @@ -0,0 +1,78 @@ +Attribute VB_Name = "servermain" +Option Explicit + +Public Type UserType + DisplayName As String ' user's name + EntryID As String ' entryid + ReportIndex As Integer ' index of the corresponding entry in aReport +End Type + +Public Type UserListType + cUsers As Integer 'number of elements in aUsers + aUsers() As UserType +End Type + +Public Type CategoryListType + cCats As Integer 'number of elements in cCats + aCats() As String +End Type + + +Global objSession As Object 'session object + +Global UserList As UserListType 'list of all the users +Global CategoryList As CategoryListType 'for sending request +Global PayPeriod As Date 'for sending + +Global Const UserListFile As String = "Users.dat" 'file to save users to +Global Const CatsListFile As String = "categs.dat" 'file to save categories to +Global Const ClientExePath As String = "d:\mapisamp\timecard.cli\client\tmcli.exe" 'path to the client executable +Global Const ClientExeName As String = "tmcli.exe" + + +Global Const mapiFileData As Integer = 1 +Global Const E_NOT_FOUND As Integer = -1 + + +Public Sub GetReceivIPCFolder(objFolder As Object) +'Finds the receiving folder for IPC messages, which is the +'top folder of the default message store. +'This is the only folder that is its own parent. + +On Error GoTo error_olemsg + +Dim objReceivFolder As Object +Dim objRecFolParent As Object +Dim parentid As String + +If objSession Is Nothing Then + MsgBox "Not logged on" + Exit Sub +End If + +Set objRecFolParent = objSession.inbox +If objRecFolParent Is Nothing Then + Exit Sub +End If + +Do + Set objReceivFolder = objRecFolParent + parentid = objReceivFolder.folderid 'get parent's id + + Set objRecFolParent = objSession.getfolder(parentid) + + If objRecFolParent Is Nothing Then Exit Sub 'error + +Loop While Not objReceivFolder.id = parentid + + +Set objFolder = objReceivFolder + +Exit Sub + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Sub + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/CLIENT.BAS b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/CLIENT.BAS new file mode 100644 index 0000000..eae37c5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/CLIENT.BAS @@ -0,0 +1,72 @@ +Attribute VB_Name = "client" +Option Explicit + + +Global objSession As Object + +Type WeekDataType + Day(7) As Double +End Type + + + +Sub Main() + +Dim bFlag As Boolean + +On Error GoTo error_olemsg + +'create session and logon +bFlag = Util_CreateSessionAndLogon() + +If Not bFlag Then Exit Sub + +'go try to find request message and show the report form +formReport.Init + +If Not objSession Is Nothing Then + 'logoff + objSession.Logoff +End If + + +Exit Sub + + +error_olemsg: + If Not bFlag Then + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + End + End If + + +End Sub + +Function Util_CreateSessionAndLogon() As Boolean + 'create session and logon + On Error GoTo err_CreateSessionAndLogon + + Set objSession = CreateObject("MAPI.Session") + objSession.Logon + Util_CreateSessionAndLogon = True + Exit Function + +err_CreateSessionAndLogon: + Set objSession = Nothing + + If Not (Err = -2147221229) Then 'if not user cancel + MsgBox "Unrecoverable Error:" & Err + End If + + Util_CreateSessionAndLogon = False + Exit Function + +error_olemsg: + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + Resume Next + +End Function + + + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/REPORT.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/REPORT.FRM new file mode 100644 index 0000000..7fe90af --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/REPORT.FRM @@ -0,0 +1,657 @@ +VERSION 5.00 +Begin VB.Form formReport + Caption = "Time Report Form" + ClientHeight = 5295 + ClientLeft = 930 + ClientTop = 2175 + ClientWidth = 10485 + Height = 5700 + Left = 870 + LinkTopic = "Form1" + ScaleHeight = 5295 + ScaleWidth = 10485 + Top = 1830 + Width = 10605 + Begin VB.TextBox txtTo + Height = 288 + Left = 1080 + TabIndex = 25 + Top = 120 + Width = 5052 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 8 + Left = 8760 + TabIndex = 24 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 7 + Left = 7680 + TabIndex = 23 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 6 + Left = 6600 + TabIndex = 22 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 5 + Left = 5520 + TabIndex = 21 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 4 + Left = 4440 + TabIndex = 20 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 3 + Left = 3360 + TabIndex = 19 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 2 + Left = 2280 + TabIndex = 18 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 1 + Left = 1200 + TabIndex = 17 + Top = 2160 + Width = 972 + End + Begin VB.TextBox txtCell + Height = 288 + Index = 0 + Left = 120 + TabIndex = 14 + Top = 2160 + Width = 972 + End + Begin VB.CommandButton btnClear + Caption = "&Clear All" + Height = 372 + Left = 8400 + TabIndex = 5 + Top = 120 + Width = 852 + End + Begin VB.CommandButton btnSend + Caption = "&Send" + Height = 372 + Left = 7080 + TabIndex = 4 + Top = 120 + Width = 972 + End + Begin VB.TextBox txtPayPeriod + Height = 288 + Left = 7080 + TabIndex = 16 + Top = 960 + Width = 2172 + End + Begin VB.TextBox txtName + Height = 288 + Left = 1080 + TabIndex = 1 + Top = 960 + Width = 4452 + End + Begin VB.Line Line2 + X1 = 0 + X2 = 9720 + Y1 = 1560 + Y2 = 1560 + End + Begin VB.Label Label13 + Alignment = 2 'Center + Caption = "Total" + Height = 252 + Left = 8880 + TabIndex = 15 + Top = 1800 + Width = 732 + End + Begin VB.Label Label12 + Alignment = 2 'Center + Caption = "Sat" + Height = 252 + Left = 7800 + TabIndex = 13 + Top = 1800 + Width = 732 + End + Begin VB.Label Label11 + Alignment = 2 'Center + Caption = "Fri" + Height = 252 + Left = 6720 + TabIndex = 12 + Top = 1800 + Width = 732 + End + Begin VB.Label Label10 + Alignment = 2 'Center + Caption = "Thu" + Height = 252 + Left = 5640 + TabIndex = 11 + Top = 1800 + Width = 732 + End + Begin VB.Label Label9 + Alignment = 2 'Center + Caption = "Wed" + Height = 252 + Left = 4560 + TabIndex = 10 + Top = 1800 + Width = 732 + End + Begin VB.Label Label8 + Alignment = 2 'Center + Caption = "Tue" + Height = 252 + Left = 3480 + TabIndex = 9 + Top = 1800 + Width = 732 + End + Begin VB.Label Label7 + Alignment = 2 'Center + Caption = "Mon" + Height = 252 + Left = 2400 + TabIndex = 8 + Top = 1800 + Width = 732 + End + Begin VB.Label Label6 + Alignment = 2 'Center + Caption = "Sun" + Height = 252 + Left = 1320 + TabIndex = 7 + Top = 1800 + Width = 732 + End + Begin VB.Label lblCategories + Alignment = 2 'Center + Caption = "Categories" + Height = 252 + Left = 240 + TabIndex = 6 + Top = 1800 + Width = 852 + End + Begin VB.Label Label4 + Caption = "Pay Period" + Height = 252 + Left = 5880 + TabIndex = 3 + Top = 960 + Width = 852 + End + Begin VB.Label Label2 + Caption = "Name:" + Height = 252 + Left = 120 + TabIndex = 2 + Top = 960 + Width = 492 + End + Begin VB.Line Line1 + X1 = 0 + X2 = 9720 + Y1 = 720 + Y2 = 720 + End + Begin VB.Label Label1 + Caption = "To:" + Height = 252 + Left = 240 + TabIndex = 0 + Top = 120 + Width = 492 + End +End +Attribute VB_Name = "formReport" +Attribute VB_Base = "0{D624D371-C698-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Attribute VB_Customizable = False +Const RowSize As Integer = 9 + +Dim objRequestMsg As Object 'the request message +Dim ReportCategories As Variant +Dim CatNum As Integer 'number of report categories in ReportCategories +Dim PayPeriod As Date + +Dim ReportData() As WeekDataType + +Public Sub Init() +'if there is a request message in the inbox, show the form +If FindRequestMsg Then + ShowReportForm +End If + +End Sub + +Function NumFromString(txtstr As String) As Double + +If IsNumeric(txtstr) Then + NumFromString = Val(txtstr) +Else + NumFromString = 0 +End If + +End Function + +Public Function ShowReportForm() As Boolean +'if can succesfully extract necessary prop from the +'request message show the form + + On Error GoTo error_olemsg + + If objRequestMsg Is Nothing Then + MsgBox "No active request message" + ShowReportForm = False + Exit Function + End If + + If Not ExtractProps Then + ShowReportForm = False + Exit Function + End If + + formReport.Show 1 + + ShowReportForm = True + Exit Function + +error_olemsg: + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + Resume Next + +End Function + +Private Function ExtractProps() As Boolean +'Reads number of report categories, report categiry names +' and pay period from the reques message + +Dim objFields As Object + +On Error GoTo error_olemsg + +If objRequestMsg Is Nothing Then + MsgBox "no message" + ExtractProps = False + Exit Function +End If + +'get msg's fields collection +Set objFields = objRequestMsg.Fields +If objFields Is Nothing Then + MsgBox "Error reading request message" + Exit Function +End If + +'number of categories +CatNum = objFields.Item(NumCatPropName).Value + +'report categories +ReportCategories = objFields.Item(CatPropName).Value + +'pay period +PayPeriod = objFields.Item(PayPeriodPropName) + +ExtractProps = True +Exit Function + +error_olemsg: + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + ExtractProps = False + Exit Function + +End Function + + +Private Function FindRequestMsg() As Boolean +'finds request message in the inbox +'(request message has message class RequestMsgType) +'RequestMsgType is a const defined in tmcrdcmn.bas +'This functon doesn't deal very well with the situation when +'there are more than one request message in the inbox, +'It just gets the one returned by Inbox.Messges.GetFirst(RequestMsgType) +'This can be changed to showing the listbox with all the request messages +'and letting user choose the one he/she wants to user + +On Error GoTo error_olemsg + +Dim objInbox As Object +Dim objMessages As Object +Dim objMessage As Object + + If objSession Is Nothing Then + MsgBox "Not logged on" + FindRequestMsg = False + Exit Function + End If + + 'get the inbox + Set objInbox = objSession.Inbox + If objInbox Is Nothing Then + MsgBox "Failed to open Inbox" + FindRequestMsg = False + Exit Function + End If + + 'get the inbox's message collection + Set objMessages = objInbox.Messages + If objMessages Is Nothing Then + MsgBox "Failed to open folder's Messages collection" + FindRequestMsg = False + Exit Function + End If + + Set objMessage = objMessages.GetFirst(RequestMsgType) + If objMessage Is Nothing Then + MsgBox "no request msg found" + FindRequestMsg = False + Exit Function + End If + + Set objRequestMsg = objMessage + + FindRequestMsg = True + Exit Function + +error_olemsg: + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + Resume Next + +End Function + + +Private Sub ShowGrid() +'displays the a appropriate number of edit boxes +'on the form + +Const initX As Integer = 120 +Const initY As Integer = 2160 +Const deltaX As Integer = 1080 +Const deltaY As Integer = 600 + +Dim row As Integer +Dim col As Integer +Dim ind As Integer + + +For row = 1 To CatNum - 1 + For col = 1 To RowSize + ind = row * RowSize + col - 1 + Load txtCell(ind) + txtCell(ind).Top = initY + row * deltaY + txtCell(ind).Left = initX + (col - 1) * deltaX + txtCell(ind).Visible = True + Next col +Next row + +For row = 0 To CatNum - 1 + txtCell(row * RowSize).Text = ReportCategories(row) + txtCell(row * RowSize).Enabled = False + txtCell((row + 1) * RowSize - 1).Enabled = False +Next row + +End Sub + + +Function SumUpRow(RowNum As Integer) As Double + +Dim ind As Integer +Dim total As Double + +total = 0 + +For ind = 1 To RowSize - 2 Step 1 + total = total + NumFromString(txtCell.Item((RowNum - 1) * RowSize + ind).Text) +Next ind + +SumUpRow = total + +End Function + + +Private Sub btnClear_Click() + +Dim row As Integer +Dim col As Integer +Dim ind As Integer + +For row = 0 To CatNum - 1 Step 1 + For col = 2 To RowSize + ind = row * RowSize + col - 1 + txtCell(ind).Text = "" + Next col +Next row +End Sub + +Private Sub btnSend_Click() +'generates and sends a report message + +On Error GoTo error_olemsg + +Dim objReportMsg As Object +Dim obj As Object +Dim objR As Object +Dim prop As Object +Dim objFields As Object + +Dim PropName As String +Dim row As Integer +Dim col As Integer +Dim ind As Integer + +MousePointer = WaitCursor + +ReDim ReportData(CatNum) + +Dim dbgstr As String + +dbgstr = "" + +'get the data +For row = 0 To CatNum - 1 Step 1 + For col = 2 To RowSize - 1 'don't need total + ind = row * RowSize + col - 1 + ReportData(row).Day(col - 2) = NumFromString(txtCell(ind).Text) + dbgstr = dbgstr & ReportData(row).Day(col - 2) & " " + Next col + Debug.Print dbgstr + dbgstr = "" +Next row + +If objSession Is Nothing Then + MsgBox "Not logged on" + Exit Sub +End If + +'create a new message in the outbox +Set objReportMsg = objSession.Outbox.Messages.Add +If objReportMsg Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub +End If + +'set the message class +objReportMsg.Type = ReportMsgType + +'address the message to the sender of the request message +Set objR = objReportMsg.Recipients.Add(EntryId:=objRequestMsg.Sender.ID, _ + Name:=objRequestMsg.Sender.Name) +If objR Is Nothing Then + MsgBox "Can't set recipient" + Exit Sub +End If + +'get msg field collection +Set objFields = objReportMsg.Fields +If objFields Is Nothing Then + MsgBox "Internal error. (can't access msg's field collecton)" + Exit Sub +End If + +'report data is transmitted in named properties. +'name for the property containing data for the i-th category is "i" +'i = 1, 2, ..., NumberOfCategories +For row = 1 To CatNum Step 1 + PropName = RepDataPropPrefix & Str(row) + 'we can't write: + 'Set obj = objFields.Add(Name:=PropName, _ + Class:=vbDouble + vbArray, _ + Value:=ReportData(row - 1.Day) + 'because of the way VB passes array parameters + 'so we first add a property and then set its value + Set obj = objFields.Add(Name:=PropName, _ + Class:=vbDouble + vbArray) + If obj Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub + End If + obj.Value = ReportData(row - 1).Day +Next row + +Set obj = objFields.Add(Name:=CatPropName, _ + Class:=vbString + vbArray) +If obj Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub + End If +obj.Value = ReportCategories + +Set obj = objFields.Add(Name:=NumCatPropName, _ + Class:=vbInteger, _ + Value:=CatNum) +If obj Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub +End If + +Set prop = objFields.Add(Name:=PayPeriodPropName, _ + Class:=vbDate, _ + Value:=PayPeriod) +If prop Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub +End If + +'$for testing only, later this field (txtName) +'will be read-only +'Set obj = objFields.Add(Name:=NamePropName, _ + Class:=vbString, _ + Value:=txtName.Text) +'If obj Is Nothing Then +' MsgBox "Can't add a prop" +' Exit Sub +'End If + +objReportMsg.Send showDialog:=False + +MousePointer = DefaultCursor + +Unload Me + +Exit Sub + +error_olemsg: + MsgBox "Error " & Str(Err) & ": " & Error$(Err) + Resume Next + +End Sub + +Private Sub Categories_Click() + +End Sub + +Private Sub Form_Load() + txtTo.Text = objRequestMsg.Sender.Name + txtTo.Enabled = False + + txtName.Text = objSession.CurrentUser.Name + txtName.Enabled = False + + txtPayPeriod.Text = PayPeriod + txtPayPeriod.Enabled = False + + ShowGrid + +End Sub + + + + + +Private Sub Form_Unload(Cancel As Integer) + + CatNum = 0 + Set objRequestMsg = Nothing + +End Sub + + + + +Private Sub txtCell_LostFocus(Index As Integer) +'do some validation +Dim indTot As Integer + If (Index Mod RowSize = 0) Or ((Index + 1) Mod RowSize = 0) Then + Debug.Print "LostFocus from a disable control" + Exit Sub + End If + + If txtCell.Item(Index).Text = "" Then + Exit Sub + End If + + If IsNumeric(txtCell.Item(Index).Text) And _ + Val(txtCell.Item(Index).Text) >= 0 And _ + Val(txtCell.Item(Index).Text) <= 24 Then + + indTot = (Index \ RowSize) * RowSize + RowSize - 1 + txtCell.Item(indTot).Text = SumUpRow(Index \ RowSize + 1) + Else + MsgBox "Has to be number of hours." + Chr(13) + _ + "(Can not be greater than 24)" + txtCell(Index).SetFocus + End If + +End Sub + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/TMCLI.VBP b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/TMCLI.VBP new file mode 100644 index 0000000..75e45b0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/CLIENT/TMCLI.VBP @@ -0,0 +1,30 @@ +Type=Exe +Reference=*\G{3FA7DEA7-6438-101B-ACC1-00AA00423326}#1.0#0#..\..\..\..\WINDOWS\SYSTEM\MDISP32.TLB#OLE/Messaging 1.0 Object Library +Module=client; client.bas +Module=common; ..\tmcrdcmn.bas +Form=report.frm +Startup="Sub Main" +HelpFile="" +ExeName32="tmcli.exe" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CompilationType=-1 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/README.TXT b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/README.TXT new file mode 100644 index 0000000..08ae79e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/README.TXT @@ -0,0 +1,114 @@ +Time Card Sample + +This sample application illustrates using MAPI OLE Messaging in VB +applications. + +OLE Messaging features illustrated: ++ creating a MAPI session object and logging on ++ creating new messages ++ using standard message properties: subject, body, recipients, + attachments ++ sending and receiving both IPM and IPC messages ++ using custom fields and multi-valued fields ++ browsing through messages in a folder and through folders in + personal/public folders ++ using Session.AddressBook dialog ++ saving address book entries between sessions + +Installation: +In order to use the sample, first compile the client executable +(tmcli.exe) in the client directory. +Next, in file server\server.bas set the value of constant +ClientExePath to the full path to the client executable (tmcli.exe). +Finally, recompile the tmserv.exe. + +Terminology: +server app (server) - a program that keeps a list of all the users, +sends out time report requests to each user on the list, and produces +a summary report for all the users for a given pay period. +client app (client) - a program that scans the inbox for a request +from the server. If a request is found, it displays and prompts the +user to fill out a time report form. +request message (request)- an IPM message sent from the server app to +the users. This message contains client.exe as an attachment and +report categories, number of report categories, pay period saved in +the message's named properties. +report message (report) - an IPC message sent from a client app to the +server. This message contains all the information that request does +plus number of hours user worked divided by report categories and +days of the week saved in the message's named properties. +pay period - pay period for this sample is a week (Sunday through +Saturday) that is identified by the date of its Friday. + +Description: +The sample performs collecting of time information for hourly +employees for payroll purposes. It consists of two standalone parts: +a server (tmserv.exe) and a client (tmcli.exe). + +Server: +The main window of the server is divided into two parts: a list of +users and a list of report categories. Each part has "Add" and +"Remove" buttons to manipulate the contents of the corresponding list. +The File menu Save command saves both user and category lists to files +so that next time you start up the server they are there. +The Report menu "Send Requests" command first asks list owner for a +pay period and then sends requests to all the users on the list. +The Report menu "Generate Report" command first asks user for a pay +period and then generates a report for the given pay period. +The Report menu "Clean Up" command deletes all processed messages of +the report message class from the topmost folder of the default +message store. + +Client: +When launched, the client app searches its inbox for a request +message. Then it displays a form based on the data in the message. +When user is done filling out the form, the information is sent to the +server in a report message. + +How it works: +The request message contains three named properties: ++ "NumReportCategories" - number of report categories (integer) ++ "ReportCategories" - report categories (multi-valued string) ++ "PayPeriod" - pay period (date) +The report message contains all of the request message named +properties plus one multi-valued property (array of doubles) for every +report category. Names of these properties are "ReportedTimek", k = 1, +2, ... NumberOfCategories. For example, the name of the data property +corresponding to the first report category, which name is the first +element of the array stored in the report categories property, is +"ReportedTime1". + + +Issues to consider: +Following is a list of some of questions that everybody who writes an +application similar to this one has to face. Some of them are solved +in this sample, for others a possible solution is proposed. + +1. If there is more than one request message in user's inbox, the server +app can display a listbox showing pay-period and time received for +each message and let user choose the one that he wants to use. +2. If a user unintentionally sends more than one message for the same pay +period, the client app can remove the request message after it is used, +but then users will not be able to resubmit report in case of an +error. +3. Suppose a user made a mistake in his report and wants to resubmit it. +The server can use the latest report message from the user for a given +report period.. Whoever runs the server app has to make sure that he +waits until all the report messages are received or regenerates the +report after new submissions. This would also be a solution for 2. On +the client side: after reading a request message, client can scan the +SentMail folder and if it finds a message for the requested pay period, +it intializes the form with the data from the message. +4. If some report messages are lost either in transmission or due to +corruption of the store on the server side, "Remind" button on the +Report dialog can be used to send out new requests to the users whose +reports were lost. If the solution for 3. is implemented then the only +thing the user will have to do after launching the form is to hit the +"Send" button. +5. If a report from somebody not on the user list is received, the server +can either ignore it or give the list owner an option to add the user +to the list. +6. Validating pay period. In this sample the validation is performed in +frmCalendar.ValidatePayPeriod function. To change the definition of +the pay period modify the logic of this function. + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/ABOUT.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/ABOUT.FRM new file mode 100644 index 0000000..1920604 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/ABOUT.FRM @@ -0,0 +1,57 @@ +VERSION 5.00 +Begin VB.Form formAbout + Caption = "About" + ClientHeight = 2925 + ClientLeft = 1290 + ClientTop = 1545 + ClientWidth = 5790 + Height = 3330 + Left = 1230 + LinkTopic = "formAbout" + ScaleHeight = 2925 + ScaleWidth = 5790 + Top = 1200 + Width = 5910 + Begin VB.CommandButton btnOK + Caption = "OK" + Height = 372 + Left = 1920 + TabIndex = 0 + Top = 2160 + Width = 1692 + End + Begin VB.Label Label2 + Alignment = 2 'Center + Caption = "Copyright (c) 1995 Microsoft Corporation" + Height = 372 + Left = 960 + TabIndex = 2 + Top = 1560 + Width = 4092 + End + Begin VB.Label Label1 + Alignment = 2 'Center + Caption = "OLE Messaging Sample" + Height = 252 + Left = 1680 + TabIndex = 1 + Top = 480 + Width = 2172 + End +End +Attribute VB_Name = "formAbout" +Attribute VB_Base = "0{CFF16A23-C697-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Attribute VB_Customizable = False +Option Explicit + +Private Sub btnOK_Click() + Unload Me + +End Sub + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/CAL.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/CAL.FRM new file mode 100644 index 0000000..e63f636 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/CAL.FRM @@ -0,0 +1,905 @@ +VERSION 5.00 +Begin VB.Form frmCalender + BackColor = &H00C0C0C0& + Caption = "Calendar" + ClientHeight = 4830 + ClientLeft = 885 + ClientTop = 1245 + ClientWidth = 4230 + ClipControls = 0 'False + FillColor = &H00FFFFFF& + ForeColor = &H00000000& + Height = 5235 + KeyPreview = -1 'True + Left = 825 + LinkTopic = "Form1" + ScaleHeight = 3.354 + ScaleMode = 5 'Inch + ScaleWidth = 2.937 + Top = 900 + Width = 4350 + Begin VB.Frame fraCalender + BackColor = &H00C0C0C0& + Caption = "Dates:" + Height = 4335 + Left = 360 + TabIndex = 0 + Top = 360 + Width = 3615 + Begin VB.PictureBox picWeekdays + Appearance = 0 'Flat + AutoRedraw = -1 'True + BackColor = &H00C0C0C0& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 225 + Left = 120 + ScaleHeight = 225 + ScaleWidth = 2415 + TabIndex = 4 + Top = 600 + Width = 2415 + End + Begin VB.PictureBox picCal + Appearance = 0 'Flat + AutoRedraw = -1 'True + BackColor = &H00C0C0C0& + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 1452 + Left = 120 + ScaleHeight = 1455 + ScaleWidth = 2415 + TabIndex = 3 + Top = 872 + Width = 2412 + End + Begin VB.CommandButton cmdOK + Caption = "&OK" + Default = -1 'True + Height = 372 + Left = 120 + TabIndex = 2 + Top = 2760 + Width = 1092 + End + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "&Cancel" + Height = 372 + Left = 1320 + TabIndex = 1 + Top = 2760 + Width = 1092 + End + Begin VB.Line linDivider + BorderColor = &H00FFFFFF& + Index = 3 + X1 = 120 + X2 = 2640 + Y1 = 2416 + Y2 = 2416 + End + Begin VB.Line linDivider + BorderColor = &H00808080& + Index = 2 + X1 = 120 + X2 = 2640 + Y1 = 2400 + Y2 = 2400 + End + Begin VB.Line linDivider + BorderColor = &H00FFFFFF& + Index = 1 + X1 = 120 + X2 = 2640 + Y1 = 856 + Y2 = 856 + End + Begin VB.Line linDivider + BorderColor = &H00808080& + Index = 0 + X1 = 120 + X2 = 2640 + Y1 = 840 + Y2 = 840 + End + Begin VB.Label lblMonth + Alignment = 2 'Center + BackColor = &H00C0C0C0& + Caption = "Deciembre 1943" + BeginProperty Font + Name = "MS Sans Serif" + Size = 9.75 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 240 + Left = 960 + TabIndex = 5 + Top = 240 + Width = 1812 + End + Begin VB.Image picGoMonth + Height = 180 + Index = 1 + Left = 2880 + Picture = "CAL.frx":0000 + Top = 300 + Width = 180 + End + Begin VB.Image picGoMonth + Height = 180 + Index = 0 + Left = 600 + Picture = "CAL.frx":04D2 + Top = 300 + Width = 180 + End + End +End +Attribute VB_Name = "frmCalender" +Attribute VB_Base = "0{CFF16A29-C697-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Attribute VB_Customizable = False +Option Explicit + +Dim fDirty% + +Dim fRet As Boolean + +Const kfMultiselectDates = False '** can multiple dates be selected at a time? + +Const kiDayIndexMax = 41 '** picCal displays 41 visible dates +Private Type SingleDay '** each visible date has info in a SingleDate rec + iTop As Integer + iLeft As Integer + lForeColor As Long '** kBlack = current month; kDkGray = prev/next month + sCaption As String '** date text ("1"-"31") +End Type + +Dim gfrmCal As Form '** form containing cal frame + +'** cal graphic-related vars +Dim giCurYear%, giCurMonth% '** current month/year visible +Dim giDayWidth%, giDayHeight% '** dimensions of the 41 visible dates +Dim gsMonthes$(1 To 12) '** stores month names +Dim gaDays(0 To 41) As SingleDay '** array of info on visible dates +Dim giTodayIndex% '** if current month visible then giTodayIndex is graphical inset +Dim gfCreateNewCal% +Dim fFirstClick% +Dim gsUsername$ + +'** cal date selection vars +'** cal has two kinds of selections +'** main selection: made by click, shift-click, or drag +'** ctrl selections: made by ctrl-click +Dim gdSelStart As Date '** start of main selection block +Dim gdSelEnd As Date '** end of main selection block +Dim gadCtrlSelect(0 To 100) As Date '** array of current ctrl-clicked dates; erased on non-ctrl-mousedown + '** if date in main sel then non-selected, else then selected +Dim giMaxCtrlSelectIndex As Integer '** highest index of gadCtrlSelect in use; init to -1 + +'** cal mouse vars +Dim giLastSelIndex As Integer '** last index selected by drag; used to validate MouseOver calls during drags +Dim gdLastDateClicked As Date '** last index clicked; used as next start for selection block +Dim gfExitedGray% '** after dragging over gray date to switch month, has mouse left gray dates on new month yet? + + +'** colors used cal +Const kLtGray = &HC0C0C0 +Const kDkGray = &H808080 +Const kBlack = &H0& +Const kWhite = &HFFFFFF +Const kBlue = &HFF0000 + +Private Sub ClearOldSelection(ByVal dStartNew As Date, ByVal dEndNew As Date, ByVal dStartOld As Date, ByVal dEndOld As Date) + '** redraws all dates between dStartOld & dStartNew but not between dStartNew & dEndNew + '** as unselected. + '** CalMousedown uses ClearOldSelection to deselect dates in the previous selection + '** block that are not in the new selection block + + Dim dTmp As Date '** used as utility date + Dim dFirstDate As Date '** first date vis in picCal; may be gray from previous month + Dim iIndex% '** gaDay index to deselect + + If dEndOld = 0 Or dStartOld = 0 Then Exit Sub + + '** switch dStartNew with dEndNew if dStartNew is higher + If dStartNew > dEndNew Then + dTmp = dStartNew + dStartNew = dEndNew + dEndNew = dTmp + End If + '** switch dStartOld with dEndOld if dStartOld is higher + If dStartOld > dEndOld Then + dTmp = dStartOld + dStartOld = dEndOld + dEndOld = dTmp + End If + + '** if dStartOld comes before the dates visible, + '** then set dStartOld to first date visible + If gaDays(0).lForeColor = kDkGray Then + dFirstDate = DateSerial(giCurYear, giCurMonth - 1, CInt(gaDays(0).sCaption)) + Else + dFirstDate = DateSerial(giCurYear, giCurMonth, CInt(gaDays(0).sCaption)) + End If + If dFirstDate > dStartOld Then dStartOld = dFirstDate + + '** if dEndOld comes after the dates visible, + '** then set dEndOld to last date visible + If gaDays(kiDayIndexMax).lForeColor = kDkGray Then + dTmp = DateSerial(giCurYear, giCurMonth + 1, CInt(gaDays(kiDayIndexMax).sCaption)) + Else + dTmp = DateSerial(giCurYear, giCurMonth, CInt(gaDays(kiDayIndexMax).sCaption)) + End If + If dTmp < dEndOld Then dEndOld = dTmp + + '** deselect all dates necessary + For dTmp = dStartOld To dEndOld + If dTmp < dStartNew Or dTmp > dEndNew Then + iIndex = dTmp - dFirstDate + DrawDay iIndex, kLtGray + End If + Next dTmp +End Sub + + +Private Sub DrawDay(ByVal iIndex%, ByVal lColor&) + Dim picCal As PictureBox '** vb4 workaround + + Set picCal = gfrmCal!picCal + '** draws an individual day + + '** draw background of day + '** lColor = kBlue if selected, ltGray if unselected + picCal.Line (gaDays(iIndex).iLeft, gaDays(iIndex).iTop)-(gaDays(iIndex).iLeft + giDayWidth - Screen.TwipsPerPixelX, gaDays(iIndex).iTop + giDayHeight - Screen.TwipsPerPixelY), lColor&, BF + + '** if this day is today, inset in 3d + If iIndex = giTodayIndex Then + ThreeDRect picCal, gaDays(iIndex).iLeft + Screen.TwipsPerPixelX * 1, gaDays(iIndex).iTop + Screen.TwipsPerPixelY * 1, gaDays(iIndex).iLeft + giDayWidth - Screen.TwipsPerPixelX * 1, gaDays(iIndex).iTop + giDayHeight - Screen.TwipsPerPixelX * 1, True + End If + + '** print the number of the day + picCal.CurrentX = (giDayWidth - picCal.TextWidth(gaDays(iIndex).sCaption)) / 2 + gaDays(iIndex).iLeft + picCal.CurrentY = (giDayHeight - picCal.TextHeight(gaDays(iIndex).sCaption)) / 2 + gaDays(iIndex).iTop + If lColor = kBlue And gaDays(iIndex).lForeColor <> kDkGray Then + picCal.ForeColor = kWhite '** if selected, kWhite + Else + picCal.ForeColor = gaDays(iIndex).lForeColor + End If + picCal.Print gaDays(iIndex).sCaption +End Sub + + + + + +Private Sub fMoreGrayDates() + +End Sub +Private Function fIsDateSelected%(ByVal iYear%, ByVal iMonth%, ByVal iDay%) + Dim dSrc As Date, i% + + dSrc = DateSerial(iYear, iMonth, iDay) + If (dSrc <= gdSelEnd And dSrc >= gdSelStart) Or (dSrc >= gdSelEnd And dSrc <= gdSelStart) Then + fIsDateSelected = True + End If + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) = dSrc Then + If fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + fIsDateSelected = False + Else + fIsDateSelected = True + End If + End If + Next i +End Function + + +Private Sub InitCalControls() + Dim i%, sWeekdays$ + Dim iOldScaleMode%, iOnePixelX%, iOnePixelY% + Dim iRow%, iColumn% + Dim picWeekdays As PictureBox '** vb4 workaround + + Set picWeekdays = gfrmCal!picWeekdays + iOldScaleMode = gfrmCal.ScaleMode + gfrmCal.ScaleMode = 1 + iOnePixelX = Screen.TwipsPerPixelX + iOnePixelY = Screen.TwipsPerPixelY + + gfrmCal!lblMonth.Left = (gfrmCal!fraCalender.Width - gfrmCal!lblMonth.Width) / 2 + gfrmCal!picGoMonth(0).Left = gfrmCal!lblMonth.Left - (gfrmCal!picGoMonth(0).Width + 3 * iOnePixelX) + gfrmCal!picGoMonth(1).Left = gfrmCal!lblMonth.Left + gfrmCal!lblMonth.Width + 3 * iOnePixelX + + gfrmCal!cmdOK.Top = gfrmCal!fraCalender.Height - (8 * iOnePixelY + gfrmCal!cmdOK.Height) + gfrmCal!cmdCancel.Top = gfrmCal!fraCalender.Height - (8 * iOnePixelY + gfrmCal!cmdCancel.Height) + gfrmCal!picCal.Width = gfrmCal!fraCalender.Width - 16 * iOnePixelX + gfrmCal!picCal.Height = gfrmCal!cmdOK.Top - (gfrmCal!picCal.Top) - 10 * iOnePixelY + + giDayHeight = gfrmCal!picCal.Height / 6 + giDayWidth = gfrmCal!picCal.Width / 7 + picWeekdays.Width = gfrmCal!picCal.Width + picWeekdays.Left = gfrmCal!picCal.Left + + gfrmCal!linDivider(0).X1 = gfrmCal!picCal.Left + gfrmCal!linDivider(0).X2 = gfrmCal!picCal.Left + gfrmCal!picCal.Width + gfrmCal!linDivider(2).Y1 = gfrmCal!picCal.Top + gfrmCal!picCal.Height + iOnePixelY + gfrmCal!linDivider(2).Y2 = gfrmCal!linDivider(2).Y1 + gfrmCal!linDivider(3).Y1 = gfrmCal!linDivider(2).Y1 + iOnePixelY + gfrmCal!linDivider(3).Y2 = gfrmCal!linDivider(2).Y1 + iOnePixelY + + For i = 1 To 3 + gfrmCal!linDivider(i).X1 = gfrmCal!linDivider(0).X1 + gfrmCal!linDivider(i).X2 = gfrmCal!linDivider(0).X2 + Next i + + sWeekdays = "SMTWTFS" + For i = 0 To 6 + picWeekdays.CurrentX = i * giDayWidth + giDayWidth / 2 + picWeekdays.Print Mid(sWeekdays, i + 1, 1); + Next i + + For i = 0 To kiDayIndexMax '41 number of days + gaDays(i).iLeft = iColumn * giDayWidth + gaDays(i).iTop = iRow * giDayHeight + iColumn = iColumn + 1 + If iColumn = 7 Then + iColumn = 0 + iRow = iRow + 1 + End If + Next i + gfrmCal.ScaleMode = iOldScaleMode +End Sub + + + +Function iDayIndex%(iYear%, iMonth%, iDay%) + + iDayIndex = WeekDay(DateSerial(iYear, iMonth, 1)) + iDay - 2 +End Function + +Private Sub MakeSelection(ByVal dStartNew As Date, ByVal dEndNew As Date, ByVal dStartOld As Date, ByVal dEndOld As Date) + Dim dTmp + Dim dFirstDate As Date + Dim iDayDiff% + + If dEndOld = 0 Or dStartOld = 0 Then Exit Sub + If dStartNew > dEndNew Then + dTmp = dStartNew + dStartNew = dEndNew + dEndNew = dTmp + End If + If dStartOld > dEndOld Then + dTmp = dStartOld + dStartOld = dEndOld + dEndOld = dTmp + End If + 'reset dStartOld to first of cal if efficient + If gaDays(0).lForeColor = kDkGray Then + dFirstDate = DateSerial(giCurYear, giCurMonth - 1, CInt(gaDays(0).sCaption)) + Else + dFirstDate = DateSerial(giCurYear, giCurMonth, CInt(gaDays(0).sCaption)) + End If + If dFirstDate > dStartNew Then dStartNew = dFirstDate + + 'reset dEndOld to first of cal if efficient + If gaDays(kiDayIndexMax).lForeColor = kDkGray Then + dTmp = DateSerial(giCurYear, giCurMonth + 1, CInt(gaDays(kiDayIndexMax).sCaption)) + Else + dTmp = DateSerial(giCurYear, giCurMonth, CInt(gaDays(kiDayIndexMax).sCaption)) + End If + If dTmp < dEndNew Then dEndNew = dTmp + + For dTmp = dStartNew To dEndNew '** ALERT: THIS DOES NOT INCLUDE OLD NOT SELOTHERS!!! + If dTmp >= dEndOld Or dTmp <= dStartOld Then + iDayDiff = dTmp - dFirstDate + DrawDay iDayDiff, kBlue + End If + Next dTmp +End Sub + +Private Sub DrawCalender() + '** draws the current dates and selection + + Dim dStartDate As Date '** first date of month + Dim iDayOfWeek% + Dim iDaysInMonth% + Dim i% + Dim iDayInPrevMonth% + Dim iCurDay% + + gfrmCal!lblMonth = gsMonthes(giCurMonth) & " " & CStr(giCurYear) '** set month label + dStartDate = DateSerial(giCurYear, giCurMonth, 1) + + '** if this is current month, find which index is today + If (giCurYear = Year(Now)) And (Month(Now) = giCurMonth) Then + giTodayIndex = iDayIndex(Year(Now), Month(Now), day(Now)) + Else + giTodayIndex = -1 + End If + + '** find how many days are in current month + '** to get: subtract first day of next month by first day of this month + If giCurMonth = 12 Then + iDaysInMonth = DateSerial(giCurYear + 1, 1, 1) - dStartDate + Else + iDaysInMonth = DateSerial(giCurYear, giCurMonth + 1, 1) - dStartDate + End If + + iDayOfWeek = WeekDay(dStartDate) '** set day of week which the first day of the month falls on + '** draw all the days of this month + For i = iDayOfWeek - 1 To (iDayOfWeek - 1) + iDaysInMonth - 1 + iCurDay% = iCurDay% + 1 + gaDays(i).sCaption = Str(iCurDay%) + If fIsDateSelected(giCurYear, giCurMonth, iCurDay%) Then + gaDays(i).lForeColor = kBlack + DrawDay i, kBlue + Else + gaDays(i).lForeColor = kBlack + DrawDay i, kLtGray + End If + Next i + + '** calculate the number of days in previous month + If giCurMonth = 1 Then + iDayInPrevMonth = dStartDate - DateSerial(giCurYear - 1, 12, 1) + Else + iDayInPrevMonth = dStartDate - DateSerial(giCurYear, giCurMonth - 1, 1) + End If + + '** draw in the last gray days of previous month + For i = 0 To iDayOfWeek - 2 + iCurDay% = iDayInPrevMonth - (iDayOfWeek - i) + 2 + gaDays(i).sCaption = iCurDay% + gaDays(i).lForeColor = kDkGray + If fIsDateSelected(giCurYear, giCurMonth - 1, iCurDay%) Then + DrawDay i, kBlue + Else + DrawDay i, kLtGray + End If + Next i + + '** draw in the first gray days of next month + iCurDay% = 0 + For i = (iDayOfWeek - 1) + iDaysInMonth To 41 + iCurDay% = iCurDay% + 1 + gaDays(i).lForeColor = kDkGray + gaDays(i).sCaption = iCurDay% + If fIsDateSelected(giCurYear, giCurMonth + 1, iCurDay%) Then + DrawDay i, kBlue + Else + DrawDay i, kLtGray + End If + Next i +End Sub + +Private Sub CalInitialize(frmCal As Form) + '** initializes cal vars and controls + '** frmCal = the form with cal frame control + + fRet = False + + Dim i% + + Set gfrmCal = frmCal + InitCalControls '** place and initialize controls in cal frame control + + '** init global cal variables + giCurYear = Year(Now) + giCurMonth = Month(Now) + For i = LBound(gadCtrlSelect) To UBound(gadCtrlSelect) + gadCtrlSelect(i) = 0 + Next i + + gdSelStart = DateSerial(Year(Now), Month(Now), day(Now)) '** init main selection to today + gdSelEnd = gdSelStart + giMaxCtrlSelectIndex = -1 + + giLastSelIndex = -1 + gfExitedGray = True + + For i = 1 To 12 '** fill gsMonthes array with month names + gsMonthes(i) = Format$(DateSerial(giCurYear, i, 1), "mmmm") + Next + + DrawCalender '** draw the current month + fFirstClick = True +End Sub + +Private Sub ThreeDRect(picCanvas As PictureBox, iLeft%, iTop%, iRight%, iBottom%, fOut%) + Dim lColor1&, lColor2& + + If fOut Then + lColor1 = kDkGray + lColor2 = kWhite + Else + lColor1 = kWhite + lColor2 = kDkGray + End If + + picCanvas.ForeColor = lColor1 + picCanvas.Line (iLeft - 1, iTop - 2)-(iLeft - 1, iBottom + 2) + picCanvas.Line (iLeft - 2, iTop - 2)-(iLeft - 2, iBottom + 2) + picCanvas.Line (iLeft - 2, iTop - 1)-(iRight + 2, iTop - 1) + picCanvas.Line (iLeft - 2, iTop - 2)-(iRight + 2, iTop - 2) + + picCanvas.ForeColor = lColor2 + picCanvas.Line (iRight + 1, iTop - 1)-(iRight + 1, iBottom + 2) + picCanvas.Line (iRight + 2, iTop - 2)-(iRight + 2, iBottom + 2) + picCanvas.Line (iLeft - 1, iBottom + 1)-(iRight + 2, iBottom + 1) + picCanvas.Line (iLeft - 2, iBottom + 2)-(iRight + 2, iBottom + 2) +End Sub + + + +Private Sub CalMouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) + '** select or de-select a date + '** handles click, shift-click and ctrl-click + '** MouseOver calls CalMousedown with shift for dragging + + Dim dNewDate As Date '** date selected + Dim iIndex% '** gaDay index of date clicked + Dim iDay% '** current day (1-31) + + '** if not left mouse button then exit + If (Button And vbLeftButton) <= 0 Then Exit Sub + + If fFirstClick = True Then Shift = 0 + fFirstClick = False + + '** find the gaDay index of date clicked on + iIndex = (Int(Y / giDayHeight) * 7) + Int(X / giDayWidth) + If iIndex < 0 Or iIndex > kiDayIndexMax Then Exit Sub + + iDay = CInt(gaDays(iIndex).sCaption) + + '** if the click is on a grayed out date then make new month visible + If gaDays(iIndex).lForeColor = kDkGray Then + If iDay < 15 Then + CalGoMonth 1 '** switch to prev month + Else + CalGoMonth 0 '** switch to next month + End If + iIndex = iDayIndex(giCurYear, giCurMonth, iDay) '** adjust iIndex to new month + If (Shift And vbShiftMask) > 0 Then gfExitedGray = False '** set flag to prevent another month switch if new month + End If '** has grayed out date under mouse + + dNewDate = DateSerial(giCurYear, giCurMonth, iDay) + If kfMultiselectDates And (Shift And vbShiftMask) > 0 Then '** shift-key down + ClearCtrlSelects '** clear all ctrl-key selected dates + ClearOldSelection gdLastDateClicked, dNewDate, gdSelStart, gdSelEnd + MakeSelection gdLastDateClicked, dNewDate, gdSelStart, gdSelEnd + gdSelEnd = dNewDate + gdSelStart = gdLastDateClicked + ElseIf kfMultiselectDates And (Shift And vbCtrlMask) > 0 Then '** ctrl-key down + CtrlSelectDate iIndex, dNewDate + Else '**simple mouse click, no keys down + ClearCtrlSelects '** clear all ctrl-key selected dates + ClearOldSelection dNewDate, dNewDate, gdSelStart, gdSelEnd + gdSelStart = dNewDate + gdSelEnd = dNewDate + DrawDay iIndex, kBlue + gdLastDateClicked = dNewDate + End If + +End Sub + +Private Sub CalGoMonth(iIndex%) + '** if index = 0, make previous month visible + '** else, make next month visible + + If iIndex% = 0 Then + giCurMonth = giCurMonth - 1 + If giCurMonth = 0 Then + giCurMonth = 12 + giCurYear = giCurYear - 1 + End If + Else + giCurMonth = giCurMonth + 1 + If giCurMonth = 13 Then + giCurMonth = 1 + giCurYear = giCurYear + 1 + End If + End If + DrawCalender '** draw new month +End Sub + +Private Sub CalMouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) + Dim iIndex% '** index of gaDay that mouse is over + + '** set gfExitedGray to true if mouse is not over gray date + iIndex = (Int(Y / giDayHeight) * 7) + Int(X / giDayWidth) '** calculate index + If iIndex >= 0 And iIndex <= kiDayIndexMax Then + If gaDays(iIndex).lForeColor = kBlack Then + gfExitedGray = True + End If + End If + + '** if the mouse is not on the same index as last mousemove + '** and the left mouse button is down + If kfMultiselectDates And ((Button And vbLeftButton) > 0) And (Shift And vbShiftMask) = 0 And (Shift And vbCtrlMask) = 0 And iIndex <> giLastSelIndex And gfExitedGray = True Then + giLastSelIndex = iIndex + CalMouseDown Button, vbShiftMask, X, Y '** simulate mousedown with shiftkey + End If + +End Sub + +Private Function fDateInBetween(dSrc As Date, dStart As Date, dEnd As Date) + If (dSrc <= dEnd And dSrc >= dStart) Or (dSrc >= dEnd And dSrc <= dStart) Then + fDateInBetween = True + End If + +End Function + +Private Sub ClearCtrlSelects() + '** clear gadCtrlSelect array; no ctrl-key selection blocks + '** redraw the ex-ctrl-selected dates + + Dim i%, dFirstDate As Date, iIndex% + + If gaDays(0).lForeColor = kDkGray Then + dFirstDate = DateSerial(giCurYear, giCurMonth - 1, CInt(gaDays(0).sCaption)) + Else + dFirstDate = DateSerial(giCurYear, giCurMonth, CInt(gaDays(0).sCaption)) + End If + + For i = 0 To giMaxCtrlSelectIndex '** loop through gadCtrlSelect array + If gadCtrlSelect(i) <> 0 Then '** if valid ctrl-selection + If fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then '** redraw as selected day + iIndex = gadCtrlSelect(i) - dFirstDate + If iIndex > -1 And iIndex <= kiDayIndexMax Then + DrawDay iIndex, kBlue + End If + Else '** redraw as unselected day (not in selection) + iIndex = gadCtrlSelect(i) - dFirstDate + If iIndex > -1 And iIndex <= kiDayIndexMax Then + DrawDay iIndex, kLtGray + End If + End If + End If + gadCtrlSelect(i) = 0 '** clear to 0 (turn off) + Next i + giMaxCtrlSelectIndex = -1 +End Sub + + +Private Sub CtrlSelectDate(iIndex%, dNewDate As Date) + '** perform a ctrl-click on a dNewDate + '** if this date was selected then deselect; if this date was unselected then select + '** at least one date MUST be selected at any time + + Dim fValid% '** is this ctrl-click valid? + Dim i%, dTmp As Date '** utility variables + Dim iExists% '** does this date exist in gadCtrlSelect array? if yes, holds index + Dim iStep% '** which way do we loop? + Dim iNumSelMain%, iNumSelCtrl% '** number of dates highlighted in main sel block/ctrl-click array + + + '** first, check if this is a valid ctrl-click + '** if this causes no dates to be selected than it is INVALID + + '** how many dates are selected within the main selection block? + If gdSelStart > gdSelEnd Then '** do we have to loop through selection backwards? + iStep = -1 '** yes, gdSelEnd comes first + Else + iStep = 1 '** no, gsSelStart comes first + End If + + '** loop through main selection block keeping tally of selected dates within + For dTmp = gdSelStart To gdSelEnd Step iStep + If fIsDateSelected(Year(dTmp), Month(dTmp), day(dTmp)) = True Then + iNumSelMain = iNumSelMain + 1 + If iNumSelMain > 1 Then Exit For + End If + Next dTmp + dTmp = 0 '** clear loop variable + + If iNumSelMain > 1 Then '** multiple dates selected, ok to ctrl-click + fValid = True + Else '** if 0 or 1 dates are selected, ctrl-click may not be valid + '** how many ctrl-click dates are selected? keep tally in iNumSelCtrl + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) > 0 And Not fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + iNumSelCtrl = iNumSelCtrl + 1 + If iNumSelCtrl > 1 Then Exit For + End If + Next i + + If iNumSelMain = 0 And iNumSelCtrl = 1 Then '** if we only have one selected date + '** and it is a ctrl-click + '** find that date; store in dTmp + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) > 0 And Not fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + dTmp = gadCtrlSelect(i) + Exit For + End If + Next i + If dTmp <> dNewDate Then '** ctrl-click valid if selected date does + fValid = True '** not equal the clicked + End If + ElseIf iNumSelMain = 1 And iNumSelCtrl = 0 Then '** if we have one selected date + '** and it is in the main sel block + '** if the date just ctrl-clicked isn't the sole selected date than valid + If Not fIsDateSelected(Year(dNewDate), Month(dNewDate), day(dNewDate)) Then + fValid = True + End If + Else + fValid = True '** valid; multiple ctrl-click selections + End If + End If + + If fValid = True Then '** this is a valid ctrl click + '** does this ctrl-click already exist in the gadCtrlSelect array? if so, find it + iExists = -1 + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) = dNewDate Then + iExists = i + Exit For + End If + Next i + + If iExists > -1 Then '** yes, this ctrl-click already exists + '** since the user is reclicking an already selected ctrl-click, + '** this is essentially identical to clearing it + '** first, draw the selection/deselection + If fDateInBetween(gadCtrlSelect(iExists), gdSelStart, gdSelEnd) Then + DrawDay iIndex, kBlue + Else + DrawDay iIndex, kLtGray + End If + + gadCtrlSelect(iExists) = 0 '** clear this ctrl-click from array + '** adjust giMaxCtrlSelectIndex to point to last valid ctrl-click + '** in the gadCtrlSelect array + If iExists = giMaxCtrlSelectIndex Then + giMaxCtrlSelectIndex = giMaxCtrlSelectIndex - 1 + If giMaxCtrlSelectIndex > -1 Then + While giMaxCtrlSelectIndex > 0 And gadCtrlSelect(giMaxCtrlSelectIndex) = 0 + giMaxCtrlSelectIndex = giMaxCtrlSelectIndex - 1 + Wend + If giMaxCtrlSelectIndex = 0 And gadCtrlSelect(0) = 0 Then giMaxCtrlSelectIndex = -1 + End If + End If + Else '** this ctrl-click does not exist already + '** find the first available (empty) gadCtrlSelect date + i = 0 + While gadCtrlSelect(i) <> 0 + i = i + 1 + Wend + + gadCtrlSelect(i) = dNewDate '** set to new date + '** draw this ctrl-click + If fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + DrawDay iIndex, kLtGray + Else + DrawDay iIndex, kBlue + End If + If i > giMaxCtrlSelectIndex Then giMaxCtrlSelectIndex = i '** reset giMax if necessary + End If + gdLastDateClicked = dNewDate + End If +End Sub + + + +Private Function ValidatePayPeriod(dateToValidate As Date) As Boolean +'in this sample we require that date identifying a pay period be a Friday + +If WeekDay(dateToValidate, vbSunday) = vbFriday Then + ValidatePayPeriod = True +Else + MsgBox "The date has to be a Friday" + ValidatePayPeriod = False +End If + +End Function + + + + + + + +Private Sub JumpToFirstSelected() + '** set the month/year to the month/year with first selected date + + Dim i% + Dim dFirstDate As Date + + If gdSelStart < gdSelEnd Then + dFirstDate = gdSelStart + Else + dFirstDate = gdSelEnd + End If + + For i = 0 To giMaxCtrlSelectIndex + If gadCtrlSelect(i) < dFirstDate And Not fDateInBetween(gadCtrlSelect(i), gdSelStart, gdSelEnd) Then + dFirstDate = gadCtrlSelect(i) + End If + Next i + giCurMonth = Month(dFirstDate) + giCurYear = Year(dFirstDate) + DrawCalender +End Sub + + + +Public Function GetDate(DateToSet As Date) As Boolean + +frmCalender.Show 1 + +If fRet Then + DateToSet = gdSelStart + GetDate = True +Else + GetDate = False +End If + +End Function + + + + + +Private Sub cmdCancel_Click() + +fRet = False + +Unload Me + +End Sub + +Private Sub cmdOK_Click() + +If ValidatePayPeriod(gdSelStart) Then + fRet = True + Unload Me +End If + +End Sub + +Private Sub Form_Load() + CalInitialize Me +End Sub + + + + + + + + +Private Sub picCal_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) + fDirty = True + CalMouseDown Button, Shift, X, Y +End Sub + +Private Sub picCal_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) + CalMouseMove Button, Shift, X, Y +End Sub + +Private Sub picCal_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) + giLastSelIndex = -1 +End Sub + +Private Sub picGoMonth_Click(Index As Integer) + CalGoMonth Index +End Sub + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/CAL.FRX b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/CAL.FRX new file mode 100644 index 0000000..4e6def3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/CAL.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/MAINSVR.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/MAINSVR.FRM new file mode 100644 index 0000000..d120b17 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/MAINSVR.FRM @@ -0,0 +1,759 @@ +VERSION 5.00 +Begin VB.Form formmainsvr + AutoRedraw = -1 'True + BorderStyle = 1 'Fixed Single + Caption = "Time Card Server" + ClientHeight = 6795 + ClientLeft = 1410 + ClientTop = 1515 + ClientWidth = 8880 + Height = 7200 + Left = 1350 + LinkTopic = "Form2" + ScaleHeight = 6795 + ScaleWidth = 8880 + Top = 1170 + Width = 9000 + Begin VB.ListBox lstUsers + Height = 4575 + Left = 480 + TabIndex = 7 + Top = 720 + Width = 3372 + End + Begin VB.CommandButton btnAddUsr + Caption = "&Add" + Height = 372 + Left = 480 + TabIndex = 6 + Top = 5880 + Width = 1212 + End + Begin VB.CommandButton btnRemoveAllUsers + Caption = "&Remove All" + Height = 372 + Left = 2640 + TabIndex = 5 + Top = 5880 + Width = 1212 + End + Begin VB.TextBox txtCat + Height = 372 + Left = 4920 + TabIndex = 3 + Top = 720 + Width = 3372 + End + Begin VB.ListBox lstCat + Height = 3795 + ItemData = "mainsvr.frx":0000 + Left = 4920 + List = "mainsvr.frx":0007 + TabIndex = 2 + Top = 1500 + Width = 3372 + End + Begin VB.CommandButton btnAddCat + Caption = "A&dd" + Default = -1 'True + Enabled = 0 'False + Height = 372 + Left = 4920 + TabIndex = 1 + Top = 5880 + Width = 1212 + End + Begin VB.CommandButton btnRemoveCat + Caption = "Remo&ve" + Enabled = 0 'False + Height = 372 + Left = 7080 + TabIndex = 0 + Top = 5880 + Width = 1212 + End + Begin VB.Label Label1 + Caption = "User List" + Height = 252 + Left = 480 + TabIndex = 8 + Top = 240 + Width = 1572 + End + Begin VB.Label lblName + Caption = "Category to add" + Height = 252 + Left = 4800 + TabIndex = 4 + Top = 240 + Width = 1572 + End + Begin VB.Line Line1 + X1 = 4440 + X2 = 4440 + Y1 = 0 + Y2 = 6840 + End + Begin VB.Menu mnuFile + Caption = "&File" + Begin VB.Menu mnuSave + Caption = "&Save" + End + Begin VB.Menu mnus + Caption = "-" + Index = 1 + End + Begin VB.Menu mnuExit + Caption = "E&xit" + End + End + Begin VB.Menu mnuReport + Caption = "&Report" + Begin VB.Menu mnuSend + Caption = "&Send Requests" + End + Begin VB.Menu mnuGenerate + Caption = "&Generate Report" + End + Begin VB.Menu mnuse + Caption = "-" + End + Begin VB.Menu mnuCleanUp + Caption = "&Clean Up Receiving Folder" + End + End + Begin VB.Menu mnuHelp + Caption = "&Help" + Begin VB.Menu mnuAbout + Caption = "&About" + End + End +End +Attribute VB_Name = "formmainsvr" +Attribute VB_Base = "0{CFF16A11-C697-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Attribute VB_Customizable = False +Option Explicit + + + + +Sub GetCategoryList() + +ReDim CategoryList.aCats(lstCat.ListCount) As String +Dim ind As Integer + +CategoryList.cCats = lstCat.ListCount + +ind = 0 +Do While ind < CategoryList.cCats + CategoryList.aCats(ind) = lstCat.List(ind) + ind = ind + 1 +Loop + +End Sub + + + + +Public Sub SendRequest(cCats As Integer, Cats() As String, PayPrd As Date, Reminder As Boolean) +'sends request message + +On Error GoTo error_olemsg + +Dim objmessage As Object +Dim prop As Object +Dim objRecip As Object +Dim objRecipCol As Object +Dim objFieldCol As Object +Dim objAttachmentCol As Object +Dim objAtt As Object +Dim ind As Integer +Dim msgBody As String + + +If UserList.cUsers = 0 Then + MsgBox "User List is empty" + Exit Sub +End If + +If cCats = 0 Then + MsgBox "Category list is empty" + Exit Sub +End If + +If Not Reminder Then + If Not frmCalender.GetDate(PayPrd) Then + Exit Sub + End If +End If + +If objSession Is Nothing Then + MsgBox "Not logged on" + Exit Sub +End If + +'create new message in the outbox +Set objmessage = objSession.Outbox.Messages.Add +If objmessage Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub +End If + + +If Not Reminder Then + objmessage.Subject = "Time to fill out your time report" + msgBody = "" +Else + objmessage.Subject = "SECOND NOTICE: Time to fill out your time report" + msgBody = "Your time report has not been received. " +End If + +msgBody = msgBody & "Please run the attached application (double click on the attachment) and fill out the form" +'set the body of the message +objmessage.Text = msgBody + +'set the message class +objmessage.Type = RequestMsgType + +'open recipients collection +Set objRecipCol = objmessage.Recipients +If objRecipCol Is Nothing Then + MsgBox "Can't open msg's recipients" + Exit Sub +End If + +'add recipients +For ind = 0 To UserList.cUsers - 1 + If Not Reminder Then 'send to everybody + Set objRecip = objRecipCol.Add(EntryID:=UserList.aUsers(ind).EntryID, _ + Name:=UserList.aUsers(ind).DisplayName) + + Else 'if this is a reminder, send only to the people we don't have reports from + If UserList.aUsers(ind).ReportIndex = E_NOT_FOUND Then + Set objRecip = objRecipCol.Add(EntryID:=UserList.aUsers(ind).EntryID, _ + Name:=UserList.aUsers(ind).DisplayName) + Else + GoTo continue + End If + + End If + If objRecip Is Nothing Then + MsgBox "Can't add recipient" + Exit Sub + End If +continue: +Next ind + + +'open msg's field collection +Set objFieldCol = objmessage.Fields +If objFieldCol Is Nothing Then + MsgBox "Can't open msg's fields collection" + Exit Sub +End If + + +'set the report categories +'we can't write: +'Set prop = objFieldCol.Add(Name:=CatPropName, _ + Class:=vbString + vbArray, _ + Value:=Cats) +'because of the way VB passes array parameters +'so we first add a property and then set its value +Set prop = objFieldCol.Add(Name:=CatPropName, _ + Class:=vbString + vbArray) +If prop Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub + End If +prop.Value = Cats + +'set the number of report categories +Set prop = objFieldCol.Add(Name:=NumCatPropName, _ + Class:=vbInteger, _ + Value:=cCats) +If prop Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub + End If + +'set the report payperiod +Set prop = objFieldCol.Add(Name:=PayPeriodPropName, _ + Class:=vbDate, _ + Value:=PayPrd) +If prop Is Nothing Then + MsgBox "Can't add a prop" + Exit Sub +End If + +'open msg's attachment collection +Set objAttachmentCol = objmessage.Attachments +If objAttachmentCol Is Nothing Then + MsgBox "Can't open attachment collection" + Exit Sub +End If + +'create a new attachment +Set objAtt = objAttachmentCol.Add +If objAtt Is Nothing Then + MsgBox "Can't add attachment" + Exit Sub +End If + +'send the client.exe as an attachment +objAtt.Type = mapiFileData 'means the file is contained withing the message +objAtt.position = 0 'no particular position +objAtt.ReadFromFile ClientExePath 'read in the file +objAtt.Name = ClientExeName 'set the file name + +objmessage.Send showDialog:=False + +Exit Sub + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Sub + + + +Private Sub btnAddCat_Click() + lstCat.AddItem txtCat.Text ' Add a client name to the list box. + txtCat.Text = "" ' Clear the text box. + txtCat.SetFocus ' Place focus back to the text box. + +End Sub + + +Private Sub btnAddUsr_Click() +Dim objNewUsers As Object +Dim ind As Integer + +On Error GoTo err_btnAdd_Click + +If objSession Is Nothing Then + MsgBox "must first create MAPI session and logon" + Exit Sub +End If + +Set objNewUsers = objSession.AddressBook( _ + Title:="Select Users", _ + forceResolution:=True, _ + recipLists:=1, _ + toLabel:="&New Users") ' appears on button + +ReDim Preserve UserList.aUsers(UserList.cUsers + objNewUsers.Count) + +With objNewUsers +For ind = 0 To (objNewUsers.Count - 1) Step 1 + With .Item(ind + 1) + UserList.aUsers(UserList.cUsers + ind).DisplayName = .Name + UserList.aUsers(UserList.cUsers + ind).EntryID = .addressentry.id + UserList.aUsers(UserList.cUsers + ind).ReportIndex = E_NOT_FOUND + End With +Next ind +End With + + +UserList.cUsers = UserList.cUsers + objNewUsers.Count + +PopulateUserList + +Exit Sub + +err_btnAdd_Click: + If Not (err = 91) Then ' object not set + MsgBox "Unrecoverable Error:" & err + End If + + +End Sub + +Private Sub btnRemoveAllUsers_Click() + lstUsers.Clear ' Empty the list box. + btnRemoveAllUsers.Enabled = False + + UserList.cUsers = 0 +End Sub + + +Private Sub btnRemoveCat_Click() +Dim ind As Integer + + ind = lstCat.ListIndex ' Get index. + If ind >= 0 Then ' Make sure a list item is selected. + lstCat.RemoveItem ind ' Remove the item from the list box. + Else + Beep ' This should never occur, because Remove is always disabled if no entry is selected. + End If + ' Disable the Remove button if no entries are selected in the list box. + btnRemoveCat.Enabled = (lstCat.ListIndex <> -1) + +End Sub + + +Private Sub Form_Load() +Dim bFlag As Boolean + +On Error GoTo error_olemsg + +bFlag = Util_CreateSessionAndLogon() + +If Not bFlag Then End + + +InitUserList +PopulateUserList + +InitCategorylist +PopulateCatList + +InitPayPeriod + + +Exit Sub + + +error_olemsg: + If Not bFlag Then + MsgBox "Error " & Str(err) & ": " & Error$(err) + End + End If + + +End Sub + +Private Sub Form_Unload(Cancel As Integer) +If Not objSession Is Nothing Then + objSession.logoff + End If + + +End Sub + + +Private Sub lstCat_Click() + btnRemoveCat.Enabled = (lstCat.ListIndex <> -1) + +End Sub + +Private Sub lstUsers_Click() + btnRemoveAllUsers.Enabled = (lstUsers.ListIndex <> -1) + +End Sub + +Private Sub lstUsers_DblClick() +On Error GoTo err + +Dim ind As Integer +Dim AddrEntry As Object + + ind = lstUsers.ListIndex + If ind >= 0 Then + Set AddrEntry = objSession.GetAddressEntry(UserList.aUsers(ind).EntryID) + If AddrEntry Is Nothing Then Exit Sub + AddrEntry.details + + Else + Beep + End If + +Exit Sub + +err: + If Not (err = -2147221229) Then ' object not set + MsgBox "Unrecoverable Error:" & err + End If + +End Sub + + +Private Sub mnuAbout_Click() + formAbout.Show 1 + +End Sub + + +Private Sub mnuCleanUp_Click() + +On Error GoTo error_olemsg + +Dim objReceivFolder As Object +Dim objmessages As Object +Dim objmessage As Object + +If objSession Is Nothing Then + MsgBox "Not logged on" + Exit Sub +End If + +GetReceivIPCFolder objReceivFolder +If objReceivFolder Is Nothing Then + MsgBox "Can't open receive folder" + Exit Sub +End If + +Set objmessages = objReceivFolder.Messages +If objmessages Is Nothing Then + MsgBox "Failed to open folder's Messages collection" + Exit Sub +End If + +Set objmessage = objmessages.getfirst(ReportMsgType) +Do While Not objmessage Is Nothing + + If Not objmessage.Unread Then + objmessage.Delete + End If + + Set objmessage = objmessages.getnext +Loop + +Exit Sub + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Sub + +Private Sub mnuExit_Click() + + Unload Me + 'End +End Sub + +Private Sub mnuGenerate_Click() + +If formReport.CompileReport Then + formReport.Show 1 +End If + +'user list may have changed +PopulateUserList + +End Sub + + +Private Sub SaveCats() +On Error GoTo CheckError + +Dim ind As Integer + + +Open CatsListFile For Output As #1 + +Write #1, CategoryList.cCats + +ind = 0 +Do While ind < CategoryList.cCats + Print #1, CategoryList.aCats(ind) + ind = ind + 1 +Loop + +Close #1 + +Exit Sub + +CheckError: +MsgBox "Error saving user list" + +End Sub + +Private Sub SaveUsers() + +On Error GoTo CheckError + +Dim ind As Integer + +'If UserList.cUsers = 0 Then Exit Sub + + +Open UserListFile For Output As #1 + +Write #1, UserList.cUsers + +ind = 0 +Do While ind < UserList.cUsers + Print #1, UserList.aUsers(ind).DisplayName + Print #1, UserList.aUsers(ind).EntryID + ind = ind + 1 +Loop + +Close #1 + +Exit Sub + +CheckError: +MsgBox "Error saving user list" + +End Sub + + + +Private Sub mnuSave_Click() + +GetUserList +SaveUsers + +GetCategoryList +SaveCats + +End Sub + +Private Sub mnuSend_Click() + +GetUserList +GetCategoryList + +MousePointer = WaitCursor +SendRequest CategoryList.cCats, CategoryList.aCats, PayPeriod, False +MousePointer = DefaultCursor + +End Sub + + +Function Util_CreateSessionAndLogon() As Boolean + On Error GoTo err_CreateSessionAndLogon + + Set objSession = CreateObject("MAPI.Session") + If Not objSession Is Nothing Then + objSession.Logon + Else + Util_CreateSessionAndLogon = False + Exit Function + End If + Util_CreateSessionAndLogon = True + + Exit Function + +err_CreateSessionAndLogon: + Set objSession = Nothing + + If (err <> -2147221229) Then ' VB4.0 uses "Err.Number" + MsgBox "Unrecoverable Error:" & err + End If + Util_CreateSessionAndLogon = False + Exit Function + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Function + + +Sub GetUserList() +'empty for now +End Sub + +Sub InitPayPeriod() + + PayPeriod = Date +End Sub + +Sub InitUserList() + +On Error GoTo CheckError + +Dim ind As Integer +Dim cSavedUsers As Integer + +Open UserListFile For Input As #1 + +Input #1, cSavedUsers +Debug.Print "found " & cSavedUsers & " saved users" + +ReDim UserList.aUsers(cSavedUsers) + +ind = 0 +Do While ind < cSavedUsers + Line Input #1, UserList.aUsers(ind).DisplayName + Line Input #1, UserList.aUsers(ind).EntryID + UserList.aUsers(ind).ReportIndex = E_NOT_FOUND + ind = ind + 1 +Loop + +Close #1 + +UserList.cUsers = cSavedUsers + +Exit Sub + +CheckError: +UserList.cUsers = 0 + +End Sub + + + + +Sub InitCategorylist() +'Read saved cats from file + +On Error GoTo CheckError + +Dim ind As Integer +Dim cSavedCats As Integer + +Open CatsListFile For Input As #1 + +Input #1, cSavedCats +Debug.Print "found " & cSavedCats & " saved categories" + +ReDim CategoryList.aCats(cSavedCats) + +ind = 0 +Do While ind < cSavedCats + Line Input #1, CategoryList.aCats(ind) + ind = ind + 1 +Loop + +Close #1 + +CategoryList.cCats = cSavedCats + +Exit Sub + +CheckError: +CategoryList.cCats = 0 + +End Sub + + + +Private Sub txtCat_Change() + ' Enable the Add button if at least one character in the name is entered or changed. + btnAddCat.Enabled = (Len(txtCat.Text) > 0) + +End Sub +Sub PopulateUserList() + +Dim ind As Integer + +lstUsers.Clear + +For ind = 0 To UserList.cUsers - 1 + lstUsers.AddItem UserList.aUsers(ind).DisplayName +Next ind + +End Sub + + + +Private Sub PopulateCatList() +Dim ind As Integer + +lstCat.Clear + +For ind = 0 To CategoryList.cCats - 1 + lstCat.AddItem CategoryList.aCats(ind) +Next ind + +End Sub diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/MAINSVR.FRX b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/MAINSVR.FRX new file mode 100644 index 0000000..e160eb5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/MAINSVR.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/REPORT.FRM b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/REPORT.FRM new file mode 100644 index 0000000..8d002c3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/REPORT.FRM @@ -0,0 +1,493 @@ +VERSION 5.00 +Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "FLEXGRID.OCX" +Begin VB.Form formReport + Caption = "Report" + ClientHeight = 4380 + ClientLeft = 885 + ClientTop = 2100 + ClientWidth = 9330 + LinkTopic = "Form1" + ScaleHeight = 4380 + ScaleWidth = 9330 + Begin MSFlexGridLib.MSFlexGrid gridReport + Height = 3375 + Left = 120 + TabIndex = 4 + Top = 840 + Width = 7695 + _ExtentX = 13573 + _ExtentY = 5953 + BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} + Name = "MS Sans Serif" + Size = 8.25 + Charset = 1 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + End + Begin VB.CommandButton btnSave + Caption = "&Save" + Height = 375 + Left = 7920 + TabIndex = 3 + Top = 1320 + Width = 1212 + End + Begin VB.CommandButton btnClose + Caption = "&Close" + Height = 375 + Left = 7920 + TabIndex = 1 + Top = 1800 + Width = 1212 + End + Begin VB.CommandButton btnRemind + Caption = "&Remind" + Enabled = 0 'False + Height = 375 + Left = 7920 + TabIndex = 0 + Top = 840 + Width = 1212 + End + Begin VB.Label lblHeader + Alignment = 2 'Center + Caption = "Time Report for Pay Period Ending 1/1/2095" + BeginProperty Font + Name = "MS Sans Serif" + Size = 13.5 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 495 + Left = 240 + TabIndex = 2 + Top = 120 + Width = 8775 + End +End +Attribute VB_Name = "formReport" +Attribute VB_Base = "0{19C4F559-DF36-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Dim aReport() As Double '3D : days x categories x users +Dim cReceivedReports As Integer 'number of received reports +Dim cReportCategories As Integer 'number of report categories in ReportCategorylist +Dim ReportCategoryList As Variant 'Report categories +Dim ReportPayPeriod As Date 'report payperiod +Dim ReportDate() As Date 'when user sent the report + +Public Function CompileReport() As Boolean +'Iterates through all the report messages and extract info +'for the current pay period +On Error GoTo error_olemsg + +Dim objReceivFolder As Object +Dim objRepMsg As Object +Dim objmessages As Object + +If Not frmCalender.GetDate(ReportPayPeriod) Then + Exit Function +End If + + +If objSession Is Nothing Then + MsgBox "Not logged on" + CompileReport = False + Exit Function +End If + +'get the receiving folder +GetReceivIPCFolder objReceivFolder +If objReceivFolder Is Nothing Then + MsgBox "Can't open receive folder" + CompileReport = False + Exit Function +End If + +'Get message collection from the receiving folder +Set objmessages = objReceivFolder.Messages +If objmessages Is Nothing Then + MsgBox "Failed to open folder's Messages collection" + CompileReport = False + Exit Function +End If + +'start iterating throuhg the messages +Set objRepMsg = objmessages.getfirst(ReportMsgType) +If objRepMsg Is Nothing Then + MsgBox "no report msgs found" + CompileReport = False + Exit Function +End If + + +cReceivedReports = 0 +Do While Not objRepMsg Is Nothing 'while there are messages + If Not ProcessMessage(objRepMsg) Then + CompileReport = False + Exit Function + End If + Set objRepMsg = Nothing + Set objRepMsg = objmessages.getnext 'next message +Loop + + +CompileReport = True + +Exit Function + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Function + + + + +Function ProcessMessage(objmsg As Object) As Boolean +'If the message is for the right pay period extract and store info + +On Error GoTo error_olemsg + +Dim tmpPayPeriod As Date +Dim tmpcRepCats As Integer +Dim tmpRepCats As Variant +Dim ind As Integer +Dim PropName As String +Dim var As Variant +Dim day As Integer +Dim userindex As Integer +Dim usrName As String +Dim response As Integer +Dim objFields As Object +Dim msgSentDate As Date + +'Get msg's fields collection +Set objFields = objmsg.Fields +If objFields Is Nothing Then + ProcessMessage = True 'ignore this msg + Exit Function +End If + +'get the pay-period +tmpPayPeriod = objFields.Item(PayPeriodPropName) + +If tmpPayPeriod <> ReportPayPeriod Then + ProcessMessage = True 'not intrested in this one + Exit Function +End If + +objmsg.Unread = False +objmsg.Update + +If cReceivedReports = 0 Then 'first report, has to get the categ. lits + cReportCategories = objFields.Item(NumCatPropName).Value + If cReportCategories = 0 Then + Debug.Print "impossible happend: cReportCats = 0" + Exit Function + End If + ReportCategoryList = objFields.Item(CatPropName).Value + ReDim aReport(7, cReportCategories, UserList.cUsers) + ReDim ReportDate(UserList.cUsers) + +Else 'let's do some validation + tmpcRepCats = objFields.Item(NumCatPropName).Value + If tmpcRepCats <> cReportCategories Then + Debug.Print "number of categories do not match, skipping this message..." + ProcessMessage = True + Exit Function + End If + tmpRepCats = objFields.Item(CatPropName).Value + For ind = 0 To tmpcRepCats + If tmpRepCats(ind) <> ReportCategoryList(ind) Then + Debug.Print "categories do not match, skipping message..." + ProcessMessage = True + Exit Function + End If + Next ind + +End If + +usrName = objmsg.sender.Name +'usrName = objFields.Item(NamePropName).Value + +userindex = FindUser(usrName) + +If E_NOT_FOUND = userindex Then 'the user is not on the list + response = MsgBox("Received a report from user " & usrName & _ + " who is not on the user list." & Chr(13) & _ + "Would you like to add him/her to the list?", _ + vbYesNo + vbQuestion) + + If response = vbYes Then + 'allocate space for the new guy + ReDim Preserve UserList.aUsers(UserList.cUsers + 1) + ReDim Preserve aReport(7, cReportCategories, UserList.cUsers + 1) + ReDim Preserve ReportDate(UserList.cUsers + 1) + + 'enter him in the list + UserList.aUsers(UserList.cUsers).DisplayName = usrName + UserList.aUsers(UserList.cUsers).EntryID = objmsg.sender.id + UserList.aUsers(UserList.cUsers).ReportIndex = E_NOT_FOUND + + 'set the index + userindex = UserList.cUsers + + UserList.cUsers = UserList.cUsers + 1 + + Else + ProcessMessage = True 'don't care about this one + Exit Function + End If + +End If + + +'If we are here, everything is cool. Get the data. + +'remember when the msg was sent +msgSentDate = objmsg.timesent + +If UserList.aUsers(userindex).ReportIndex = E_NOT_FOUND Then + 'if first report from the user + For ind = 1 To cReportCategories Step 1 + PropName = RepDataPropPrefix & Str(ind) + var = objFields.Item(PropName) + For day = 0 To 6 Step 1 + aReport(day, ind - 1, cReceivedReports) = var(day) + Next day + Next ind + + UserList.aUsers(userindex).ReportIndex = cReceivedReports + ReportDate(userindex) = msgSentDate + cReceivedReports = cReceivedReports + 1 +Else + 'if there are more than one report from the same user, user the + 'one that was sent later + '$ + 'make the two loops into one, when sure that they work + Debug.Print "There is more than one report from " & usrName + + If msgSentDate > ReportDate(userindex) Then + For ind = 1 To cReportCategories Step 1 + PropName = RepDataPropPrefix & Str(ind) + var = objFields.Item(PropName) + For day = 0 To 6 Step 1 + aReport(day, ind - 1, UserList.aUsers(userindex).ReportIndex) = var(day) + Next day + Next ind + ReportDate(userindex) = msgSentDate + End If + +End If + + +ProcessMessage = True +Exit Function + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Function + +Function FindUser(strName As String) As Integer +'finds user's positions in the user list given user name +Dim ind As Integer + +ind = 0 +Do While ind < UserList.cUsers + If UserList.aUsers(ind).DisplayName = strName Then + FindUser = ind + Exit Function + End If + ind = ind + 1 +Loop + +FindUser = E_NOT_FOUND +Exit Function + +End Function + + +Sub ShowGrid() +'uses the extracted data to display the report + +Const strNoData As String = "No data" +Const FirstColW As Integer = 2250 +Const BorderW As Integer = 30 +Dim strDays As Variant +Dim indDays As Integer +Dim indCats As Integer +Dim indUsrs As Integer +Dim indRprt As Integer +Dim sum As Double +Dim total As Double +Dim CellW As Double + +strDays = Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Total") + +gridReport.Cols = 9 'number of elements in strDays+1 +gridReport.Rows = UserList.cUsers + 1 + +'resize columns +CellW = (gridReport.Width - FirstColW - BorderW * gridReport.Cols) _ + / (gridReport.Cols - 1) +gridReport.ColWidth(0) = FirstColW +For indDays = 1 To gridReport.Cols - 1 + gridReport.ColWidth(indDays) = CellW +Next indDays + +'display the first row +gridReport.Row = 0 +For indDays = 0 To gridReport.Cols - 2 + gridReport.Col = indDays + 1 + gridReport.Text = strDays(indDays) +Next indDays + +'display the rest of the grid +For indUsrs = 0 To UserList.cUsers - 1 'for all users + indRprt = UserList.aUsers(indUsrs).ReportIndex + gridReport.Row = indUsrs + 1 + gridReport.Col = 0 + gridReport.Text = UserList.aUsers(indUsrs).DisplayName + total = 0 + For indDays = 0 To 6 'for each day + gridReport.Col = indDays + 1 + If indRprt = E_NOT_FOUND Then + 'no report received from this user + gridReport.Text = strNoData + btnRemind.Enabled = True + Else + sum = 0 'sum for cats per day + For indCats = 0 To cReportCategories - 1 + sum = sum + aReport(indDays, indCats, indRprt) + Next indCats + gridReport.Text = Str(sum) + total = total + sum 'total for the week + End If + Next indDays + + 'last column is total + gridReport.Col = gridReport.Cols - 1 + + If indRprt <> E_NOT_FOUND Then + gridReport.Text = Str(total) + Else + gridReport.Text = strNoData + End If +Next indUsrs + +lblHeader = "Time Report for Pay Period Ending " & ReportPayPeriod + +End Sub + + +Private Sub btnClose_Click() + Unload Me + +End Sub + + +Private Sub btnRemind_Click() +'sends second request message to the users who haven't submitted report + +Dim ind As Integer +Dim tmpCats() As String + +ReDim tmpCats(cReportCategories) + +'put all the cats from variant into a string array +For ind = 0 To cReportCategories - 1 + tmpCats(ind) = ReportCategoryList(ind) +Next ind + +formmainsvr.SendRequest cReportCategories, tmpCats, _ + ReportPayPeriod, True +End Sub + + +Private Sub btnSave_Click() +'save report + +On Error GoTo CheckError + +Dim indUsrs As Integer +Dim indRprt As Integer +Dim indDays As Integer +Dim indCats As Integer + +Open "Report.dat" For Output As #1 + +Print #1, Tab(24); "Time Report" +Print #1, Tab(20); "Pay period ending " & ReportPayPeriod + + +For indUsrs = 0 To UserList.cUsers - 1 + Print #1, + Print #1, + Print #1, "======================================================================" + Print #1, "Employee: ", UserList.aUsers(indUsrs).DisplayName + indRprt = UserList.aUsers(indUsrs).ReportIndex + If Not indRprt = E_NOT_FOUND Then + Print #1, Tab(20); _ + "Sun Mon Tue Wed Thu Fri Sat" + For indCats = 0 To cReportCategories - 1 + Print #1, ReportCategoryList(indCats), Tab(20); + For indDays = 0 To 6 + Print #1, aReport(indDays, indCats, indRprt); Tab(20 + (1 + indDays) * 8); + Next indDays + Print #1, + Next indCats + Else + Print #1, "No data submitted" + End If +Next indUsrs + +Close #1 + +Exit Sub + +CheckError: +MsgBox "Error saving user list" + + +End Sub + + +Private Sub Form_Load() + ShowGrid + +End Sub + + +Private Sub Form_Unload(Cancel As Integer) +'deinit variables global to this module + +Dim ind As Integer + +For ind = 0 To UserList.cUsers - 1 + UserList.aUsers(ind).ReportIndex = E_NOT_FOUND +Next ind + +cReceivedReports = 0 +cReportCategories = 0 +ReportPayPeriod = Date +ReDim aReport(0, 0, 0) + + +End Sub + + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/SERVER.BAS b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/SERVER.BAS new file mode 100644 index 0000000..7221082 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/SERVER.BAS @@ -0,0 +1,78 @@ +Attribute VB_Name = "servermain" +Option Explicit + +Public Type UserType + DisplayName As String ' user's name + EntryID As String ' entryid + ReportIndex As Integer ' index of the corresponding entry in aReport +End Type + +Public Type UserListType + cUsers As Integer 'number of elements in aUsers + aUsers() As UserType +End Type + +Public Type CategoryListType + cCats As Integer 'number of elements in cCats + aCats() As String +End Type + + +Global objSession As Object 'session object + +Global UserList As UserListType 'list of all the users +Global CategoryList As CategoryListType 'for sending request +Global PayPeriod As Date 'for sending + +Global Const UserListFile As String = "Users.dat" 'file to save users to +Global Const CatsListFile As String = "categs.dat" 'file to save categories to +Global Const ClientExePath As String = "d:\mapisamp\timecard.cli\client\tmcli.exe" 'path to the client executable +Global Const ClientExeName As String = "tmcli.exe" + + +Global Const mapiFileData As Integer = 1 +Global Const E_NOT_FOUND As Integer = -1 + + +Public Sub GetReceivIPCFolder(objFolder As Object) +'Finds the receiving folder for IPC messages, which is the +'top folder of the default message store. +'This is the only folder that is its own parent. + +On Error GoTo error_olemsg + +Dim objReceivFolder As Object +Dim objRecFolParent As Object +Dim parentid As String + +If objSession Is Nothing Then + MsgBox "Not logged on" + Exit Sub +End If + +Set objRecFolParent = objSession.inbox +If objRecFolParent Is Nothing Then + Exit Sub +End If + +Do + Set objReceivFolder = objRecFolParent + parentid = objReceivFolder.folderid 'get parent's id + + Set objRecFolParent = objSession.getfolder(parentid) + + If objRecFolParent Is Nothing Then Exit Sub 'error + +Loop While Not objReceivFolder.id = parentid + + +Set objFolder = objReceivFolder + +Exit Sub + +error_olemsg: + MsgBox "Error " & Str(err) & ": " & Error$(err) + Resume Next + +End Sub + diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/TMSERV.VBP b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/TMSERV.VBP new file mode 100644 index 0000000..5330544 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/SERVER/TMSERV.VBP @@ -0,0 +1,34 @@ +Type=Exe +Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; FLEXGRID.OCX +Form=mainsvr.frm +Module=servermain; server.bas +Module=common; ..\tmcrdcmn.bas +Form=report.frm +Form=about.frm +Form=cal.frm +IconForm="formmainsvr" +Startup="formmainsvr" +HelpFile="" +ExeName32="tmserv.exe" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CompilationType=-1 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/TMCRDCMN.BAS b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/TMCRDCMN.BAS new file mode 100644 index 0000000..bb6bdc3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TIMECARD.CLI/TMCRDCMN.BAS @@ -0,0 +1,20 @@ +Attribute VB_Name = "common" +Option Explicit + +'named property names +Global Const CatPropName As String = "ReportCategories" +Global Const NumCatPropName As String = "NumReportCategories" +Global Const PayPeriodPropName As String = "PayPeriod" +Global Const RepDataPropPrefix As String = "ReportedTime" +'$for testing +'Global Const NamePropName As String = "UserName" + +'messages class names +'request is an IPM message so that a user can see it in the inbox +Global Const RequestMsgType = "IPM.TimeCardSample.Request" +'report is an IPC message +Global Const ReportMsgType = "IPC.TimeCardSample.Report" + +'vb constants for mouse pointer +Global Const WaitCursor As Integer = 11 +Global Const DefaultCursor As Integer = 0 diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TMCLI.VBP b/cadVb/COMMON/TOOLS/VB/OLEMSG/TMCLI.VBP new file mode 100644 index 0000000..75e45b0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TMCLI.VBP @@ -0,0 +1,30 @@ +Type=Exe +Reference=*\G{3FA7DEA7-6438-101B-ACC1-00AA00423326}#1.0#0#..\..\..\..\WINDOWS\SYSTEM\MDISP32.TLB#OLE/Messaging 1.0 Object Library +Module=client; client.bas +Module=common; ..\tmcrdcmn.bas +Form=report.frm +Startup="Sub Main" +HelpFile="" +ExeName32="tmcli.exe" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CompilationType=-1 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TMCRDCMN.BAS b/cadVb/COMMON/TOOLS/VB/OLEMSG/TMCRDCMN.BAS new file mode 100644 index 0000000..bb6bdc3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TMCRDCMN.BAS @@ -0,0 +1,20 @@ +Attribute VB_Name = "common" +Option Explicit + +'named property names +Global Const CatPropName As String = "ReportCategories" +Global Const NumCatPropName As String = "NumReportCategories" +Global Const PayPeriodPropName As String = "PayPeriod" +Global Const RepDataPropPrefix As String = "ReportedTime" +'$for testing +'Global Const NamePropName As String = "UserName" + +'messages class names +'request is an IPM message so that a user can see it in the inbox +Global Const RequestMsgType = "IPM.TimeCardSample.Request" +'report is an IPC message +Global Const ReportMsgType = "IPC.TimeCardSample.Report" + +'vb constants for mouse pointer +Global Const WaitCursor As Integer = 11 +Global Const DefaultCursor As Integer = 0 diff --git a/cadVb/COMMON/TOOLS/VB/OLEMSG/TMSERV.VBP b/cadVb/COMMON/TOOLS/VB/OLEMSG/TMSERV.VBP new file mode 100644 index 0000000..5330544 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLEMSG/TMSERV.VBP @@ -0,0 +1,34 @@ +Type=Exe +Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; FLEXGRID.OCX +Form=mainsvr.frm +Module=servermain; server.bas +Module=common; ..\tmcrdcmn.bas +Form=report.frm +Form=about.frm +Form=cal.frm +IconForm="formmainsvr" +Startup="formmainsvr" +HelpFile="" +ExeName32="tmserv.exe" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CompilationType=-1 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/DEFO2V32.DLL b/cadVb/COMMON/TOOLS/VB/OLETOOLS/DEFO2V32.DLL new file mode 100644 index 0000000..02de55f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/DEFO2V32.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/DFVIEW.EXE b/cadVb/COMMON/TOOLS/VB/OLETOOLS/DFVIEW.EXE new file mode 100644 index 0000000..61cf659 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/DFVIEW.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/DOBJVIEW.EXE b/cadVb/COMMON/TOOLS/VB/OLETOOLS/DOBJVIEW.EXE new file mode 100644 index 0000000..dc05d35 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/DOBJVIEW.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/IROTVIEW.EXE b/cadVb/COMMON/TOOLS/VB/OLETOOLS/IROTVIEW.EXE new file mode 100644 index 0000000..3c11fbe Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/IROTVIEW.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/IVIEWERS.DLL b/cadVb/COMMON/TOOLS/VB/OLETOOLS/IVIEWERS.DLL new file mode 100644 index 0000000..a1d712a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/IVIEWERS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLE2VIEW.HLP b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLE2VIEW.HLP new file mode 100644 index 0000000..55086e5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLE2VIEW.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLE2VW32.EXE b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLE2VW32.EXE new file mode 100644 index 0000000..2c9902b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLE2VW32.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLETOOLS.HLP b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLETOOLS.HLP new file mode 100644 index 0000000..2b370ba Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLETOOLS.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLEVIEW.EXE b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLEVIEW.EXE new file mode 100644 index 0000000..ce8538a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/OLETOOLS/OLEVIEW.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/OLETOOLS/README.TXT b/cadVb/COMMON/TOOLS/VB/OLETOOLS/README.TXT new file mode 100644 index 0000000..df82450 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/OLETOOLS/README.TXT @@ -0,0 +1,22 @@ +OLE Tools +--------- + +The OLETools directory contains five tools for working with OLE applications. +For more information on all these tools consult OLETOOLS.HLP. + +DFVIEW.EXE - The DocFile Viewer is used to display the contents of an OLE + DocFile. + +DOBJVIEW.EXE - The Data Object Viewer is a tool for viewing objects that support + the IDataObject interface. This includes objects placed on the + clipboard as well as objects that are transferred via drag-drop. + +IROTVIEW.EXE - The Running Object Table Viewer displays the contents of OLE's + running object table. + +OLE2VW32.EXE - The OLE 2.0 Object Viewer is a tool designed to help implementors + of OLE 2.0 enabled applications better understand what is + happening in their systems. OLE2VW32.EXE uses DEFO2V32.DLL. + +OLEVIEW.EXE - Another OLE 2.0 Object Viewer. OLEVIEW.EXE uses IVIEWERS.DLL and + MFC 4.2. \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP.EXE new file mode 100644 index 0000000..80d8506 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP1.RC new file mode 100644 index 0000000..8dce109 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP1.RC @@ -0,0 +1,198 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Ĺ +// +#include "commonrc.rc" + +// +//ȫ +// +resSETMSG "װϢ" + +// +//frmBegin +// +resSPECDEST "ðť |1 װָĿĿ¼" +resSPECNODEST "ðť |1 װļϡ" + +// +//frmWelcome +// +resWELCOME "ӭʹ |1 װ" + +// +//frmPath +// +resSRCPROMPT " |1 Դļ·" +resDESTPROMPT "ѡĿĿ¼" +resDESTDIR "ĿĿ¼" +resCREATE "ڡϣĿ¼" +resCHANGEDIR "ıĿ¼" +resINSTFROM "װԴ" + +// +//Setup1.Bas +// +resCALCSPACE "̿ռʱ" +resDRVREAD "ܶ" +resDRVCHK "ȷǷؽǷʽԼûд" +resCANTOPEN "ָܴļ" +resCANTREAD "ָܴļ룺" +resCANTWRITE "дָļ" +resCHKSPACE "ȷĿ㹻Ĵ̿ռ䡣" +resMAKEDIR "ܴĿ¼" +resASKEXIT "ȷҪ˳" +resINTERRUPTED "|1 װȫװ֮ǰжϡ" +resCANRUN "Ժ |1 װɰװ" +resINCOMPLETE "װδ" +resQUITNOW "˳ȷװòƷ" +resQUITSETUP "˳Ʒװ" +resSUCCESS "|1 װɹ" +resERROR "|1 װɹ" +resALLOCUNIT "ȷķ䵥Ԫ" +resSAMEASSRC "λڰװԴļĿ¼һͬĿ¼" +resNOCREATE "ָܴļ" +resNOTPROTECT "ȷĿûд" +resINSERT "̣" +resDISK "' " +resINTO "' " +resSECTNAME "ڣ " +resINVLINE "װϢļеЧУ" +resDIRSPECIFIED "ָĿ¼" +resDIRINVALID "Чδɻдȫ·磺'C:\\APPS'" +resNOTEXIST "Ŀ¼ڣ" +resDIRINVNAME "Ŀ¼Ч" +resWRITEPROT "Ŀļд" +resINUSE "ĿļʹС뱣֤йӦóѹرա" +resOUTOFSPACE "Ŀ̿ռ䲻" +resACCESSVIOLATION "ļʱʳͻ" +resSHARINGVIOLATION "ļʱͻ" +resOUTOFMEMORY "ļڴ" +resCANNOTCREATE "ܴʱļ" +resCANNOTDELETE "ɾִĿļ" +resCANNOTRENAME "ʱļ" +resCANNOTREADSRC "ܶԴļ" +resCANNOTREADDST "ܶĿļԡ" +resBUFFTOOSMALL "ڲƴ" +resNOINSTALL " ļܰװ" +resCHKCONNECT "鵽" +resWARNIGNORE "ԸƴļơӦóпܲȷԸô" +resTEMPDRIVE " 'TMP' 'TEMP' ָδ" +resERR_VSHARE " SYSTEM.INI ļ [386Enh] Ӧһ 'device=vshare.386' ȷȷС" +resCANTREADUNC "ܶ· '|1'" +resCHECKUNC "ȷ·ǷȷԼǷзȨޡ" +resCANTFINDAPPREMOVALLOG "Ӧóɾ־ļ '|1' δҵܼ" +resBADCOMMANDLINE "Ƿвܼ" +resCANTFINDAPPREMOVALEXE "Ӧóɾִļ '|1' δҵܼ" +resAPPREMOVALICONNAME "ɾ |1" +resCANTREGISTERAPPREMOVER " Windows עӦóʱɾִļ" +resCANTCREATEAPPREMOVALICON "ΪӦóɾʵùߴͼʱ" +resOVERWRITEPRIVATE "װ滻ǰڵļִӦóʧݡ" +resOVERWRITEPRIVATE2 "װѴڵİװûɾ𻵰װ½ɾʱʧܡ" +resCANCELSETUP "ȡװ" +resCHOOSENEWDEST "аװΪӦóļѡһλá" +resVERIFYCONTINUE "ȷҪ" +resERR_REG " Windows ¼ݿʱ" +resMICROSOFTSHARED " Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP " '|1' ʱ" +resCANTCREATEPROGRAMICON "Ϊ '|1' ͼʱ" +resCANTCOPYLOG " '|1' ӦóĿ¼ʱ" +resCANTFINDREGFILE "ļ '|1' ܱעᣬδҵ" +resCANTRUNPROGRAM "Windows г '|1'ϵͳڴ治㣬Ҳ" +resREMOTELINENOTFOUND ": 'SETUP.LST' עԶ̲ '|1' йϢЩϢӦ SETUP.LST '|2' ؼҵ" +resPROGRAMMANAGER "" +resUNEXPECTEDRPCREGDAT " '|1' ʱδ֪" +resCANTCOPYPATHTOOLONG "ܸļĿ·̫" +resCANTCREATEICONPATHTOOLONG "ܴжװͼ꣬Ŀ·̫" +resICONMISSING " SETUP.LST ûΪ |1 ָͼꡣϣڲͼ¼𣿵ǡ˳װ" + +// +//Setup1.Frm +// +resBADDEFDIR "װܾЧȱʡĿĿ¼ҪָĿĿ¼" +resDISKSPACE "װڼҪĴ̿ռ..." +resPROGMAN "װڴ..." +resUPDATING "װڸϵͳ..." +resNOEXE "ȷӦóִļ" +resSETUP "|1 װ" +resNOSETUPLST "ļ SETUP.LST ѻҲ" +resUNEXPECTED "δ֪İװ" +resNOFOLDERFORICON "װƴҪΪ |1 ͼ꣬Ϊûдļл顣" +resSTILLWITHINACTION "װ󣺶ʧ 'CommitAction()' 'AbortAction()'" +resREMAUTGROUPNAME "ԶԶ" +resAUTMGR32ICON "Զ" +resRACMGR32ICON "ԶԶӹ" +resNT4WithoutSP2 "棺Ϊ Windows NT 4.0 װ Service Pack 2Ӧóȷ" +resINSTALLADO "ڰװ Data Access ..." +resREBOOT "ϵͳҪʹĶЧ\n\nھϵͳ" +resREBOOTNO "ϵͳ֮ǰӦó޷" + +// +//Common.Bas +// +resDISKSPCERR "ȷĴʣռʱ" + +// +///ؼַ +// +//resBTNINSTALL "װ(&)" +resFRMDIRECTORY "Ŀ¼" +resBTNCHGDIR "Ŀ¼(&C)" +resBTNEXIT "˳װ(&X)" +resLBLBEGIN "İťʼװ" +resBTNCANCEL "ȡ" +resLBLDESTFILE "Ŀļ" +resBTNINSTALLNOW "̰װ(&I)" +resBTNCHGDRV "(&C)" +resLBLDRIVE "" +resLBLAVAIL "ÿռ" +resLBLNEEDED "ռ" +resLBLREQUIRED "Ҫռ" +resLBLNOSPACE "һû㹻Ĵ̿ռ䡣" +resBTNOK "ȷ" +resLBLDRIVES "(&V)" +resLBLDIRS "Ŀ¼(&D)" +resLBLPATH "·(&P)" +resLBLRUNNING "װܰװϵͳļʹõĹļڼ֮ǰرκеӦó" +resBTNTOOLTIPBEGIN "ڴ˴Կʼװ" +// +// Group.Frm +// +resGROUPFRM "|1 - ѡ" +resGROUPLBLMAIN "װĿСµִбѡһ" +resGROUPLBLGROUP "(&P)" +resGROUPLBLGROUPS "ִ(&X)" +resGROUPBTNCONTINUE "(&C)" +resGROUPINVALIDGROUPNAME "ȱ |1 ַҲܰκַ|2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "ַ(&A)" +resNETWORKPROTOCOL "Э(&P)" +resOK "(&C)" +resCANCEL "˳װ(&X)" +resREMOTESERVERDETAILSTITLE "Զ ActiveX " +resREMOTESERVERDETAILSLBL "дйԶ̲ҪϢ" +resNOTEPROTOSEQNOTSUPPORTED "Э |1 (|2) ̨ϲֻ֧򲻿" +resNOTEPROTOSEQINVALID "Э |1 (|2) Ч" +resPROTOSEQUNEXPECTEDERR "ȷϿõЭʱ" +resNOPROTOCOLSINSETUPLST "װ󣺴 SETUP.LST ļЭʱ" +resNOPROTOCOLSSUPPORTED1 "ûһӦóҪЭԵÿûװ̨ϡ" +resNOPROTOCOLSSUPPORTED2 "ΪȷаװҪȰװЭ֮һ" +resSELECTEDPROTONOTSUPPORTED "ӦóܷԶ̲ '|1'ֱװЭ '|2'" + +resOVERWRITEFORM "汾ͻ" +resOVERWRITEINFO "Ҫļϵͳеļİ汾ϣ鱣еļ" +resOVERWRITEFILE "ļ: '|1'" +resOVERWRITEDESC ": '|1'" +resOVERWRITEVER "汾: '|1'" +resOVERWRITEKEEP "뱣ļ" +resOVERNOTOALL "ȫ(&A)" +resOVERYES "(&Y)" +resOVERNO "(&N)" +END diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP1.RES new file mode 100644 index 0000000..14e8cb3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHS/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP.EXE new file mode 100644 index 0000000..70ab682 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP1.RC new file mode 100644 index 0000000..f0d14cd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP1.RC @@ -0,0 +1,207 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Common with bootstrapper +// +#include "commonrc.rc" + +// +// Global Font settings for Setup1 project. To override, +// set font properties in code after Form_Load. +// +resFONTNAME "sө" // Don't translate this +resFONTSIZE "9" // Don't translate this +resFONTBOLD "False" // Don't translate this +resFONTNAMEBACKUP1 "ө" // Don't translate this +resFONTNAMEBACKUP2 "System" // Don't translate this + +// +//Global +// +resSETMSG "w˰T" + +// +//frmBegin +// +resSPECDEST "@UsӦw |1 nwؿWC" +resSPECNODEST "@UsӦw |1 nzqWC" + +// +//frmWelcome +// +resWELCOME "wϥ |1 w˵{C" + +// +//frmPath +// +resSRCPROMPT "пJ]t |1 ӷɪϺоθ|W١C" +resDESTPROMPT "пJοتؿC" +resDESTDIR "تؿ:" +resCREATE "sbCzƱw˵{۰ʫإߦؿ?" +resCHANGEDIR "ܧؿ" +resINSTFROM "w˦" + +// +//Setup1.Bas +// +resCALCSPACE "pһݪϺЪŶɡAoͿ~C" +resDRVREAD "LkŪϺо " +resDRVCHK "нTwϤwJϺоAӸӺϤw榡ƥBSDC" +resCANTOPEN "Lk}ɮ:" +resCANTREAD "LkŪɮ:" +resCANTWRITE "LkgJɮ:" +resCHKSPACE "нTwتϺоŶC" +resMAKEDIR "Lkإߥؿ:" +resASKEXIT "zTwn}?" +resINTERRUPTED "|1 w˹L{beQ_C" +resCANRUN "ziHyA |1 w˵{AӧwˤC" +resINCOMPLETE "w˩|C" +resQUITNOW "pGz{b}A~NLk\wˡC" +resQUITSETUP "zn~w˶?" +resSUCCESS "|1 w˦\C" +resERROR "|1 wˤ\C" +resALLOCUNIT "MwUCϺоtmɡAoͿ~: Ϻо " +resSAMEASSRC "Ow˨ӷɩҦbؿCпJ䥦ؿC" +resNOCREATE "Lkإɮ:" +resNOTPROTECT "нTwتϺоSgO@C" +resINSERT "бNХܤUCҪϤ:" +resDISK "uϤ " +resINTO "vJϺо " +resSECTNAME "Ϭq: " +resINVLINE "w˸TɤA]tTԭz!" +resDIRSPECIFIED "wؿ:" +resDIRINVALID "TBBεLkgJCпJ]tϺоr|AҦpuC:\\APPSvC" +resNOTEXIST "wؿsb!" +resDIRINVNAME "TؿW" +resWRITEPROT "تɮר㦳gO@C" +resINUSE "تɮץQϥΤCнTw䥦ε{wgC" +resOUTOFSPACE "UCϺоŶ: Ϻо " +resACCESSVIOLATION "ƻsɮ׮ɡAoͦs~C" +resSHARINGVIOLATION "ƻsɮ׮ɡAoͦ@ο~C" +resOUTOFMEMORY "O餣ALkƻsɮסC" +resCANNOTCREATE "Lkإ߼ȦsɡC" +resCANNOTDELETE "LkRwsbتɡC" +resCANNOTRENAME "LksRWȦsɡC" +resCANNOTREADSRC "LkŪӷɡC" +resCANNOTREADDST "LkŪتɮתݩʡC" +resBUFFTOOSMALL "ƻs~C" +resNOINSTALL " ɮ׵LkQwˡC" +resCHKCONNECT "ˬdPUCϺоsu: Ϻо " +resWARNIGNORE "pGzɮתƻs~AhɮױN|QƻsAε{i|LkTaCzQn~?" +resTEMPDRIVE "uTMPvΡuTEMPvܼƩҫwϺо|NC" +resERR_VSHARE "FTOzsn`aAzb SYSTEM.INI ɤ [386Enh] ϥ[J@udevice=vshare.386vC" +resCANTREADUNC "LkŪ|u|1vC" +resCHECKUNC "нTw|OTAåBzsvC" +resCANTFINDAPPREMOVALLOG "䤣ε{O:u|1vCLk~C" +resBADCOMMANDLINE "TROCѼơCLk~C" +resCANTFINDAPPREMOVALEXE "䤣ε{{u|1vCLk~C" +resAPPREMOVALICONNAME " |1" +resCANTREGISTERAPPREMOVER "Uε{{ɡAoͿ~C" +resCANTCREATEAPPREMOVALICON "إε{ε{ϥܮɡAoͿ~" +resOVERWRITEPRIVATE "w˵{N|mYӤwsbɮסCoi|ɭP{sε{ƿ򥢡C" +resOVERWRITEPRIVATE2 "b|w˦nε{eANi歫ƦwˡAi|oͦw˿~ξɭPLkC" +resCANCELSETUP "w˶?" +resCHOOSENEWDEST "Эsw˵{Aìε{sw˦mC" +resVERIFYCONTINUE "zTwn~?" +resERR_REG "s Windows UƮwɡAoͿ~C" +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "إߵ{sաu|1vɡAoͿ~" +resCANTCREATEPROGRAMICON "إߡu|1vϥܮɡAoͿ~" +resCANTCOPYLOG "ƻsu|1vε{ؿɡAoͿ~" +resCANTFINDREGFILE "䤣ɮסu|1vA]LkUC" +resCANTRUNPROGRAM "{u|1vLkCiOtΰO餣Χ䤣ӵ{C" +resREMOTELINENOTFOUND "~:uSETUP.LSTvS]tpUݤu|1vTCSETUP.LST u|2vXѦTC" +resPROGRAMMANAGER "{޲z" +resUNEXPECTEDRPCREGDAT "إߡu|1vɡAo͵Lkw~:" +resCANTCOPYPATHTOOLONG "LkƻsɮסAئa|W٤ӪFC" +resCANTCREATEICONPATHTOOLONG "Lkإ߸Ѱw˪ϥܡAئa|W٤ӪFC" +resICONMISSING "SETUP.LST èSw |1 ϥܡCznbSإߦϥܪpU~? Ы@UuOv~AΫ@Uu_v}w˵{C" + +// +//Setup1.Frm +// +resBADDEFDIR "w˵{LkTww]w˥ؿAzw@Ӧw˥ؿC" +resDISKSPACE "w˵{bˬdһݪϺЪŶ..." +resPROGMAN "w˵{bإߵ{ϥ..." +resUPDATING "w˵{bszt..." +resNOEXE "LkTwε{ɦW١C" +resSETUP "|1 w˵{" +resNOSETUPLST "SETUP.LST wlεLkC" +resUNEXPECTED "o͵Lkww˿~!" +resNOFOLDERFORICON "w˦ۭq~: |1 إ߹ϥܡAèSإߩһݪɮקε{޲zsաC" +resSTILLWITHINACTION "w˿~: 䤣uCommitAction()vΡuAbortAction()vC" +resREMAUTGROUPNAME "Remote Automation ޲zu" +resAUTMGR32ICON "Automation Manager" +resRACMGR32ICON "RemAuto su޲z" +resNT4WithoutSP2 "ĵi: ijzb Windows NT 4.0 Ҥw Service Pack 2C_hAε{iLkTaC" +resINSTALLADO "bw˸Ʀs..." +resREBOOT "ztλݭnsҰʥHstγ]wȡC\n\nnߧYsҰʱztζ?" +resREBOOTNO "bzsҰʨtΤeAzε{iLk`B@C" +// +//Common.Bas +// +resDISKSPCERR "ˬdUCϺоѾlŶɡAoͿ~: Ϻо " + +// +//Forms/Controls Strings +// +//resBTNINSTALL "&Install" +resFRMDIRECTORY "ؿ:" +resBTNCHGDIR "ܧؿ(&C)" +resBTNEXIT "w(&X)" +resLBLBEGIN "Ы@UUsӶiwˡC" +resBTNCANCEL "" +resLBLDESTFILE "تɮ:" +resBTNINSTALLNOW "iw(&I)" +resBTNCHGDRV "ܧϺо(&C)" +resLBLDRIVE "Ϻ" +resLBLAVAIL "ѾlŶ" +resLBLNEEDED "һݪŶ" +resLBLREQUIRED "һݪŶ" +resLBLNOSPACE "ϺоWSѾlŶC" +resBTNOK "Tw" +resLBLDRIVES "Ϻо(&V):" +resLBLDIRS "ؿ(&D):" +resLBLPATH "|(&P):" +resLBLRUNNING "w˵{Lkw˨ϥΤtɮסA]LksϥΤ@ɮסCijzbw˫eAҦε{C" +resBTNTOOLTIPBEGIN "Ы@UsӶiwˡC" +// +// Group.Frm +// +resGROUPFRM "|1 - ܵ{s" +resGROUPLBLMAIN "w˵{Nbs (ܩu{sաv) [JءCziHJssզW١Aαqu{sաvM椤@ӸsաC" +resGROUPLBLGROUP "{s(&P):" +resGROUPLBLGROUPS "{s(&X):" +resGROUPBTNCONTINUE "~(&C)" +resGROUPINVALIDGROUPNAME "{sժW٥֩ |1 ӦrAB]AUCr: |2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "}(&A)" +resNETWORKPROTOCOL "qTw(&P)" +resOK "~(&C)" +resCANCEL "w(&X)" +resREMOTESERVERDETAILSTITLE " ActiveX 󪺳]w" +resREMOTESERVERDETAILSLBL "пJUCݤ󪺳]wT:" +resNOTEPROTOSEQNOTSUPPORTED "qS䴩qTw |1 (|2)" +resNOTEPROTOSEQINVALID "qTwu|1v(u|2v) T" +resPROTOSEQUNEXPECTEDERR "T{qWqTwɡAo͵Lkw~C" +resNOPROTOCOLSINSETUPLST "w˿~Gq SETUP.LST ɤŪqTwɡAoͿ~C" +resNOPROTOCOLSSUPPORTED1 "ε{һݭnqTwSw˩εLkϥΩ󦹹qWC" +resNOPROTOCOLSSUPPORTED2 "Fন\w˵{AzwˤUCqTw@: " +resSELECTEDPROTONOTSUPPORTED "ε{bw˳qTwu|2vA~sݤu|1vC" + +resOVERWRITEFORM "Ĭ" +resOVERWRITEINFO "{bbƻsɮפztΥثe֦ɮ׭n¡CijzOdثe֦ɮסC" +resOVERWRITEFILE "ɦW: '|1'" +resOVERWRITEDESC "yz: '|1'" +resOVERWRITEVER "z: '|1'" +resOVERWRITEKEEP "nOdɮ׶?" +resOVERNOTOALL "ڵ(&A)" +resOVERYES "O(&Y)" +resOVERNO "_(&N)" +END diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP1.RES new file mode 100644 index 0000000..d97ff3e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/CHT/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP.EXE new file mode 100644 index 0000000..94234f0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP1.RC new file mode 100644 index 0000000..b154c94 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP1.RC @@ -0,0 +1,198 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Common with bootstrapper +// +#include "commonrc.rc" + +// +//Global +// +resSETMSG "Setup-Meldung" + +// +//frmBegin +// +resSPECDEST "Klicken Sie auf diese Schaltflche, um |1-Software in das angegebene Verzeichnis zu installieren." +resSPECNODEST "Klicken Sie auf diese Schaltflche, um |1-Software auf Ihrem System zu installieren." + +// +//frmWelcome +// +resWELCOME "Willkommen zum |1-Installationsprogramm." + +// +//frmPath +// +resSRCPROMPT "Bitte geben Sie den Pfad fr die |1-Quelldateien an." +resDESTPROMPT "Bitte geben Sie ein Zielverzeichnis ein oder whlen Sie eins aus." +resDESTDIR "Das Zielverzeichnis:" +resCREATE "existiert nicht. Soll dieses Verzeichnis erstellt werden?" +resCHANGEDIR "Verzeichnis wechseln" +resINSTFROM "Installieren von" + +// +//Setup1.Bas +// +resCALCSPACE "Fehler beim Ermitteln des bentigten Speicherplatzes" +resDRVREAD "Kein Lesen mglich von Laufwerk " +resDRVCHK "Stellen Sie sicher, da das Laufwerk geschlossen und die Diskette formatiert und nicht beschdigt ist." +resCANTOPEN "Folgende Datei konnte nicht geffnet werden:" +resCANTREAD "Aus folgender Datei konnte nicht gelesen werden:" +resCANTWRITE "In folgende Datei konnte nicht geschrieben werden:" +resCHKSPACE "Bitte stellen Sie sicher, da das Ziellaufwerk gengend freien Speicher hat" +resMAKEDIR "Verzeichnis kann nicht erstellt werden:" +resASKEXIT "Sind Sie sicher, da Sie die Anwendung beenden mchten?" +resINTERRUPTED "|1-Setup wurde unterbrochen, bevor die Software vollstndig installiert werden konnte." +resCANRUN "Sie knnen das |1-Setup spter vollstndig wiederholen, um die Installation zu abzuschlieen." +resINCOMPLETE "Setup ist noch nicht vollstndig abgeschlossen." +resQUITNOW "Wenn Sie Setup jetzt beenden, ist das Produkt noch nicht vollstndig installiert." +resQUITSETUP "Mchten Sie Setup wirklich beenden?" +resSUCCESS "|1-Setup wurde erfolgreich abgeschlossen" +resERROR "|1-Setup wurde nicht erfolgreich abgeschlossen" +resALLOCUNIT "Fehler beim Ermitteln der Zuteilungseinheit des Laufwerks " +resSAMEASSRC "ist im Setup-Quellverzeichnis. Bitte geben Sie ein anderes Verzeichnis an." +resNOCREATE "Folgende Datei kann nicht erstellt werden:" +resNOTPROTECT "Bitte stellen Sie sicher, da das Ziellaufwerk nicht schreibgeschtzt ist." +resINSERT "Bitte legen Sie die folgende Diskette ein:" +resDISK "'Diskette " +resINTO "' in Laufwerk " +resSECTNAME "Bereich: " +resINVLINE "Ungltige Zeile in Setup-Informationsdatei!" +resDIRSPECIFIED "Das angegebene Verzeichnis:" +resDIRINVALID "ist ungltig, unvollstndig, oder schreibgeschtzt. Bitte geben Sie einen vollstndigen Pfad mit Laufwerkbuchstaben an, zum Beispiel 'C:\\Anwendungen'." +resNOTEXIST "Das Verzeichnis existiert nicht!" +resDIRINVNAME "Ungltiger Verzeichnisname" +resWRITEPROT "Die Zieldatei ist schreibgeschtzt." +resINUSE "Die Zieldatei wird verwendet. Bitte stellen Sie sicher, da alle anderen Anwendungen geschlossen sind" +resOUTOFSPACE "Nicht gengend Speicherplatz auf dem Ziellaufwerk " +resACCESSVIOLATION "Eine Zugriffsverletzung ist beim Kopieren der Datei aufgetreten." +resSHARINGVIOLATION "Ein Fehler durch gemeinsamen Zugriff ist beim Kopieren der Datei aufgetreten." +resOUTOFMEMORY "Nicht gengend Speicher zum Kopieren der Datei." +resCANNOTCREATE "Temporre Datei kann nicht angelegt werden." +resCANNOTDELETE "Bestehende Zieldatei kann nicht gelscht werden." +resCANNOTRENAME "Temporre Datei kann nicht umbenannt werden." +resCANNOTREADSRC "Quelldatei kann nicht gelesen werden." +resCANNOTREADDST "Attribute der Zieldatei knnen nicht gelesen werden." +resBUFFTOOSMALL "Interner Kopierfehler." +resNOINSTALL " Datei kann nicht installiert werden." +resCHKCONNECT "Bitte berprfen Sie die Verbindung zum Laufwerk " +resWARNIGNORE "Wenn Sie einen Kopierfehler ignorieren, wird die Datei nicht kopiert. Aus diesem Grund funktioniert die Anwendung mglicherweise nicht ordnungsgem. Mchten Sie diesen Fehler ignorieren?" +resTEMPDRIVE "Das Laufwerk, das in der Umgebungsvariable 'TMP' oder 'TEMP' angegeben ist, ist nicht betriebsbereit." +resERR_VSHARE "Die Zeile 'device=vshare.386' mu mglicherweise zum Abschnitt [386Enh] der Datei SYSTEM.INI hinzugefgt werden, um eine fehlerfreie Ausfhrung der neuen Software zu ermglichen." +resCANTREADUNC "Netzwerkpfad '|1' kann nicht gelesen werden" +resCHECKUNC "Bitte stellen Sie sicher, da der Pfad richtig ist und da Sie die ntigen Zugriffsrechte haben." +resCANTFINDAPPREMOVALLOG "Protokolldatei '|1' zum Entfernen von Anwendungen nicht gefunden. Anwendung wird beendet." +resBADCOMMANDLINE "Ungltige Befehlszeilenargumente. Anwendung wird beendet." +resCANTFINDAPPREMOVALEXE "Datei '|1' fr Programm zum Entfernen von Anwendungen nicht gefunden. Anwendung wird beendet." +resAPPREMOVALICONNAME "|1 entfernen" +resCANTREGISTERAPPREMOVER "Fehler beim Registrieren des Programms zum Entfernen von Anwendungen" +resCANTCREATEAPPREMOVALICON "Fehler beim Erstellen des Programm-Manager-Symbols fr das Programm zum Entfernen von Anwendungen" +resOVERWRITEPRIVATE "Setup wird nun vorhandene Dateien ersetzen. Dies kann mglicherweise zu Datenverlust in vorhandenen Anwendungen fhren." +resOVERWRITEPRIVATE2 "Eine Installation ber eine bereits vorhandene Installation, ohne diese zuvor zu entfernen, kann zu einer fehlerhaften Installation fhren oder zur Folge haben, da zuknftige Versuche, die Installation zu entfernen, fehlschlagen." +resCANCELSETUP "Mchten Sie Setup abbrechen?" +resCHOOSENEWDEST "Fhren Sie Setup bitte erneut aus, und whlen Sie einen neuen Pfad fr Anwendungsdateien aus." +resVERIFYCONTINUE "Sind Sie sicher, da Sie fortfahren mchten?" +resERR_REG "Fehler beim Aktualisieren der Registrierungsdatenbank von Windows" +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "Fehler beim Erstellen der Programmgruppe '|1'" +resCANTCREATEPROGRAMICON "Fehler beim Erstellen eines Programmsymbols fr '|1'" +resCANTCOPYLOG "Fehler beim Kopieren von '|1' in das Anwendungsverzeichnis" +resCANTFINDREGFILE "Datei '1' kann nicht registriert werden, da sie nicht gefunden werden konnte" +resCANTRUNPROGRAM "Windows kann die Anwendung '|1' nicht ausfhren. Ihr System hat mglicherweise nicht gengend Speicher, oder die Anwendung konnte nicht gefunden werden." +resREMOTELINENOTFOUND "Fehler: 'SETUP.LST' beinhaltet keine Information ber die Registrierung von der Remote-Komponente '|1'. Diese Informationen sollten unter dem Schlssel '|2' in SETUP.LST eingetragen sein." +resPROGRAMMANAGER "Programm-Manager" +resUNEXPECTEDRPCREGDAT "Unerwarteter Fehler beim Erstellen von '|1':" +resCANTCOPYPATHTOOLONG "Kopieren von Datei nicht mglich, Zielpfad zu lang." +resCANTCREATEICONPATHTOOLONG "Symbol fr Deinstallation kann nicht erstellt werden, Zielpfad ist zu lang." +resICONMISSING "In SETUP.LST wurde kein Symbol fr |1 angegeben. Mchten Sie fortfahren, ohne dieses Symbol zu erstellen? Klicken Sie auf 'Ja', um fortzufahren. Klicken Sie auf 'Nein', um Setup zu beenden." + +// +//Setup1.Frm +// +resBADDEFDIR "Setup kann kein gltiges Standardverzeichnis ermitteln. Bitte geben Sie ein Zielverzeichnis an." +resDISKSPACE "Setup berprft, ob gengend Speicherplatz verfgbar ist..." +resPROGMAN "Setup erstellt Programmsymbole..." +resUPDATING "Setup aktualisiert Ihr System..." +resNOEXE "Name der ausfhrbaren Datei der Anwendung kann nicht ermittelt werden" +resSETUP "|1-Setup" +resNOSETUPLST "Die Datei SETUP.LST ist beschdigt oder kann nicht gefunden werden" +resUNEXPECTED "Unerwarteter Setup-Fehler aufgetreten!" +resNOFOLDERFORICON "Fehler bei Anpassung von Setup: Fr |1 mu ein Symbol erstellt werden, es wurde aber kein Ordner oder keine Programmgruppe dafr angelegt" +resSTILLWITHINACTION "Setup-Fehler: 'CommitAction()' oder 'AbortAction()' fehlt" +resREMAUTGROUPNAME "Remote-Automatisierung" +resAUTMGR32ICON "Automatisierungs-Manager" +resRACMGR32ICON "RemAuto-Verbindungs-Manager" +resNT4WithoutSP2 "Achtung: Sie sollten Service Pack 2 fr Windows NT 4.0 installieren. Diese Anwendung kann andernfalls mglicherweise nicht ordnungsgem ausgefhrt werden." +resINSTALLADO "Datenzugriffskomponenten werden installiert..." +resREBOOT "Sie mssen einen Neustart durchfhren, um die Systemeinstellungen zu aktualisieren.\n\nMchten Sie Ihr System jetzt neu starten?" +resREBOOTNO "Ihre Anwendung arbeitet mglicherweise erst dann korrekt, wenn Sie Ihr System neu gestartet haben." +// +//Common.Bas +// +resDISKSPCERR "Fehler beim Ermitteln des verfgbaren Speichers fr Laufwerk " + +// +//Forms/Controls Strings +// +//resBTNINSTALL "&Install" +resFRMDIRECTORY "Verzeichnis:" +resBTNCHGDIR "&Verzeichnis wechseln" +resBTNEXIT "Setup b&eenden" +resLBLBEGIN "Starten Sie die Installation, indem Sie auf die Schaltflche klicken." +resBTNCANCEL "Abbrechen" +resLBLDESTFILE "Zieldatei:" +resBTNINSTALLNOW "&Jetzt installieren" +resBTNCHGDRV "&Laufwerk wechseln" +resLBLDRIVE "Laufwerk" +resLBLAVAIL "Verfgbarer Speicherplatz" +resLBLNEEDED "Bentigter Speicherplatz" +resLBLREQUIRED "Erforderlicher Speicherplatz" +resLBLNOSPACE "Nicht gengend Speicherplatz auf mindestens einem Laufwerk." +resBTNOK "OK" +resLBLDRIVES "Lauf&werke:" +resLBLDIRS "Ver&zeichnisse:" +resLBLPATH "&Pfad:" +resLBLRUNNING "Setup kann Systemdateien oder gemeinsame Dateien nicht aktualisieren, wenn Sie bereits verwendet werden. Bevor Sie fortfahren, sollten Sie alle geffneten Anwendungen schlieen." +resBTNTOOLTIPBEGIN "Klicken Sie hier, um Setup zu starten" +// +// Group.Frm +// +resGROUPFRM "|1 - Programmgruppe whlen" +resGROUPLBLMAIN "Setup fgt Elemente zu der im Feld 'Programmgruppe' angezeigten Gruppe hinzu. Sie knnen einen neuen Gruppennamen eingeben oder einen Namen aus der Liste 'Vorhandene Gruppen' auswhlen." +resGROUPLBLGROUP "&Programmgruppe:" +resGROUPLBLGROUPS "&Vorhandene Gruppen:" +resGROUPBTNCONTINUE "&Weiter" +resGROUPINVALIDGROUPNAME "Der Name einer Progammgruppe darf hchstens |1 Zeichen lang sein und darf keine der folgenden Zeichen enthalten: |2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "&Netzwerkadresse" +resNETWORKPROTOCOL "Netzwerk&protokoll" +resOK "&Weiter" +resCANCEL "Setup b&eenden" +resREMOTESERVERDETAILSTITLE "Konfiguration von Remote-ActiveX-Komponenten" +resREMOTESERVERDETAILSLBL "Geben Sie bitte die angeforderten Informationen zur folgenden Remote-Komponente ein:" +resNOTEPROTOSEQNOTSUPPORTED "Protokollsequenz |1 (|2) wird nicht untersttzt oder ist auf diesem System nicht vorhanden" +resNOTEPROTOSEQINVALID "Protokollsequenz '|1' ('|2') ist ungltig" +resPROTOSEQUNEXPECTEDERR "Unerwarteter Fehler beim Ermitteln der Protokollsequenzen, die auf diesem System verfgbar sind" +resNOPROTOCOLSINSETUPLST "Setup-Fehler: Fehler beim Lesen der Protokolle aus der Datei SETUP.LST" +resNOPROTOCOLSSUPPORTED1 "Keines der von dieser Anwendung bentigten Protokolle scheint auf diesem System verfgbar oder installiert zu sein." +resNOPROTOCOLSSUPPORTED2 "Um Setup erfolgreich auszufhren, mssen Sie zuerst eine der folgenden Netzwerk-Protokollsequenzen installieren: " +resSELECTEDPROTONOTSUPPORTED "Diese Anwendung kann erst auf die Remote-Komponente '|1' zugreifen, wenn das Protokoll '|2' installiert ist." + +resOVERWRITEFORM "Versionskonflikt" +resOVERWRITEINFO "Eine Datei, die gerade kopiert wird, ist lter als die Datei, die sich momentan auf Ihrem System befindet. Es wird empfohlen, die vorhandene Datei zu behalten." +resOVERWRITEFILE "Dateiname: '|1'" +resOVERWRITEDESC "Beschreibung: '|1'" +resOVERWRITEVER "Ihre Version: '|1'" +resOVERWRITEKEEP "Mchten Sie diese Datei behalten?" +resOVERNOTOALL "Nein fr &alle" +resOVERYES "&Ja" +resOVERNO "&Nein" + +END \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP1.RES new file mode 100644 index 0000000..78aaf29 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/DEU/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP.EXE new file mode 100644 index 0000000..40044cd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP1.RC new file mode 100644 index 0000000..e24f1ad --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP1.RC @@ -0,0 +1,197 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Common with bootstrapper +// +#include "commonrc.rc" + +// +//Global +// +resSETMSG "Setup Message" + +// +//frmBegin +// +resSPECDEST "Click this button to install |1 software to the specified destination directory." +resSPECNODEST "Click this button to install |1 software to your computer." + +// +//frmWelcome +// +resWELCOME "Welcome to the |1 installation program." + +// +//frmPath +// +resSRCPROMPT "Please enter the drive or path containing the |1 source files." +resDESTPROMPT "Enter or select a destination directory." +resDESTDIR "The destination directory:" +resCREATE "does not exist. Do you want the directory to be created?" +resCHANGEDIR "Change Directory" +resINSTFROM "Install From" + +// +//Setup1.Bas +// +resCALCSPACE "An error occurred while calculating required disk space." +resDRVREAD "Cannot read drive " +resDRVCHK "Please verify the drive door is closed and that the disk is formatted and free of errors." +resCANTOPEN "Could not open the file named:" +resCANTREAD "Could not read from the file named:" +resCANTWRITE "Could not write to the file named:" +resCHKSPACE "Please verify that the destination drive has enough disk space." +resMAKEDIR "Could not create directory:" +resASKEXIT "Are you sure you want to Exit?" +resINTERRUPTED "|1 Setup was interrupted before your new software was fully installed." +resCANRUN "You can run |1 Setup in its entirety at a later time to complete the installation." +resINCOMPLETE "Setup is not yet complete." +resQUITNOW "If you quit now, this product will not be correctly installed." +resQUITSETUP "Quit the setup of this product?" +resSUCCESS "|1 Setup was completed successfully." +resERROR "|1 Setup was not completed successfully." +resALLOCUNIT "Error determining allocation unit for drive " +resSAMEASSRC "is in the Setup source files directory. Please type a different directory." +resNOCREATE "Could not create the file named:" +resNOTPROTECT "Please verify that destination drive is not write protected." +resINSERT "Please insert the disk labeled:" +resDISK "'Disk " +resINTO "' into drive " +resSECTNAME "Section: " +resINVLINE "Invalid line in setup information file!" +resDIRSPECIFIED "The specified directory:" +resDIRINVALID "is invalid, incomplete, or write protected. Please type a full path with drive letter; for example 'C:\\APPS'." +resNOTEXIST "The directory doesn't exist!" +resDIRINVNAME "Invalid Directory Name" +resWRITEPROT "The destination file is write protected." +resINUSE "The destination file in in-use. Please ensure that all other applications are closed." +resOUTOFSPACE "Out of space on destination drive " +resACCESSVIOLATION "An access violation occurred while copying the file." +resSHARINGVIOLATION "A sharing violation occurred while copying the file." +resOUTOFMEMORY "Out of memory trying to copy the file." +resCANNOTCREATE "Cannot create temporary file." +resCANNOTDELETE "Cannot delete existing destination file." +resCANNOTRENAME "Cannot rename temporary file." +resCANNOTREADSRC "Cannot read source file." +resCANNOTREADDST "Cannot read destination file attributes." +resBUFFTOOSMALL "Internal copy error." +resNOINSTALL " The file could not be installed." +resCHKCONNECT "Please check the connection to drive " +resWARNIGNORE "If you ignore a copy error, the file will not be copied. The application may not function properly as a result. Do you want to ignore the error?" +resTEMPDRIVE "The drive specified by the 'TMP' or 'TEMP' environment variable is not ready." +resERR_VSHARE "The line 'device=vshare.386' may need to be added to the [386Enh] section of your SYSTEM.INI file to ensure proper operation of your new software." +resCANTREADUNC "Cannot read network path '|1'." +resCHECKUNC "Please verify that this path is correct and that you have permission to access it." +resCANTFINDAPPREMOVALLOG "Application removal logfile '|1' not found. Unable to continue." +resBADCOMMANDLINE "Invalid command-line parameters. Unable to continue." +resCANTFINDAPPREMOVALEXE "Application removal executable '|1' not found. Unable to continue." +resAPPREMOVALICONNAME "Remove |1" +resCANTREGISTERAPPREMOVER "Error registering the application removal executable with Windows" +resCANTCREATEAPPREMOVALICON "Error creating a Program Manager icon for the application removal utility" +resOVERWRITEPRIVATE "Setup is about to replace a pre-existing file(s). This may cause loss of data for an existing application." +resOVERWRITEPRIVATE2 "Installing over an existing installation without first removing it may damage that installation or cause future attempts to remove the installation to fail." +resCANCELSETUP "Cancel setup?" +resCHOOSENEWDEST "Please run setup again and select a new location for application files." +resVERIFYCONTINUE "Are you sure you want to continue?" +resERR_REG "An error occurred trying to update the Windows registration database." +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "An error occurred trying to create the program group '|1'" +resCANTCREATEPROGRAMICON "An error occurred trying to create a program icon for '|1'" +resCANTCOPYLOG "An error occurred trying to copy '|1' to the application directory" +resCANTFINDREGFILE "The file '|1' could not be registered because it was not found." +resCANTRUNPROGRAM "Windows was unable to run the program '|1'. Your system may be low on memory, or the program may not have been found." +resREMOTELINENOTFOUND "Error: 'SETUP.LST' contains no information on how to register the remote component '|1'. This information should have been found in a '|2' key in SETUP.LST" +resPROGRAMMANAGER "Program Manager" +resUNEXPECTEDRPCREGDAT "Unexpected error creating '|1':" +resCANTCOPYPATHTOOLONG "Cannot copy file, Destination Path is too long." +resCANTCREATEICONPATHTOOLONG "Cannot create Uninstall Icon, Destination Path is too long." +resICONMISSING "No icon was specified in SETUP.LST for |1. Do you want to continue without creating this icon? Click Yes to continue. Click No to Exit Setup." + +// +//Setup1.Frm +// +resBADDEFDIR "Setup was unable to determine a valid default destination directory. You will need to specify a destination directory." +resDISKSPACE "Setup is checking for necessary disk space..." +resPROGMAN "Setup is creating program icons..." +resUPDATING "Setup is updating your system..." +resNOEXE "The name of the application's executable file could not be determined." +resSETUP "|1 Setup" +resNOSETUPLST "The SETUP.LST file is corrupt or could not be found." +resUNEXPECTED "An unexpected setup error has occurred!" +resNOFOLDERFORICON "Setup customization error: An icon needs to be created for |1, but no folder or Program Manager group was created for this purpose." +resSTILLWITHINACTION "Setup error: Missing 'CommitAction()' or 'AbortAction()'." +resREMAUTGROUPNAME "Remote Automation Management" +resAUTMGR32ICON "Automation Manager" +resRACMGR32ICON "RemAuto Connection Manager" +resNT4WithoutSP2 "Warning: It is recommended that you install Service Pack 2 for Windows NT 4.0. This application may not work properly without it." +resINSTALLADO "Installing Data Access components..." +resREBOOT "Your system needs to be rebooted to update system settings.\n\nWould you like to reboot your system now?" +resREBOOTNO "Your application may not work correctly until you have rebooted your system." +// +//Common.Bas +// +resDISKSPCERR "Error determining disk space free for drive " + +// +//Forms/Controls Strings +// +//resBTNINSTALL "&Install" +resFRMDIRECTORY "Directory:" +resBTNCHGDIR "&Change Directory" +resBTNEXIT "E&xit Setup" +resLBLBEGIN "Begin the installation by clicking the button below." +resBTNCANCEL "Cancel" +resLBLDESTFILE "Destination File:" +resBTNINSTALLNOW "&Install Now" +resBTNCHGDRV "&Change Drive" +resLBLDRIVE "Drive" +resLBLAVAIL "Space Available" +resLBLNEEDED "Space Needed" +resLBLREQUIRED "Space Required" +resLBLNOSPACE "There is not enough free disk space on one or more drives." +resBTNOK "OK" +resLBLDRIVES "Dri&ves:" +resLBLDIRS "&Directories:" +resLBLPATH "&Path:" +resLBLRUNNING "Setup cannot install system files or update shared files if they are in use. Before proceeding, we recommend that you close any applications you may be running." +resBTNTOOLTIPBEGIN "Click here to begin setup" +// +// Group.Frm +// +resGROUPFRM "|1 - Choose Program Group" +resGROUPLBLMAIN "Setup will add items to the group shown in the Program Group box. You can enter a new group name or select one from the Existing Groups list." +resGROUPLBLGROUP "&Program Group:" +resGROUPLBLGROUPS "E&xisting Groups:" +resGROUPBTNCONTINUE "&Continue" +resGROUPINVALIDGROUPNAME "A program group name must be less than |1 characters long and cannot contain any of the following characters: |2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "Network &Address" +resNETWORKPROTOCOL "Network &Protocol" +resOK "&Continue" +resCANCEL "E&xit Setup" +resREMOTESERVERDETAILSTITLE "Remote ActiveX Component Configuration" +resREMOTESERVERDETAILSLBL "Please fill in the requested configuration information about the following remote component:" +resNOTEPROTOSEQNOTSUPPORTED "The protocol sequence |1 (|2) is not supported or available on this machine" +resNOTEPROTOSEQINVALID "The protocol sequence '|1' ('|2') is invalid" +resPROTOSEQUNEXPECTEDERR "An unexpected error occurred while determining the protocol sequences available on this machine" +resNOPROTOCOLSINSETUPLST "Setup error: An error occurred trying to read protocols from the SETUP.LST file." +resNOPROTOCOLSSUPPORTED1 "None of the protocols needed by this application appear to be available or installed on this machine." +resNOPROTOCOLSSUPPORTED2 "In order to run Setup successfully, you will need to first install one of the following network protocol sequences: " +resSELECTEDPROTONOTSUPPORTED "This application will not be able to access the remote component '|1' until the protocol '|2' is installed." + +resOVERWRITEFORM "Version Conflict" +resOVERWRITEINFO "A file being copied is older than the file currently on your system. It is recommended that you keep your existing file." +resOVERWRITEFILE "File name: '|1'" +resOVERWRITEDESC "Description: '|1'" +resOVERWRITEVER "Your version: '|1'" +resOVERWRITEKEEP "Do you want to keep this file?" +resOVERNOTOALL "No to &All" +resOVERYES "&Yes" +resOVERNO "&No" +END diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP1.RES new file mode 100644 index 0000000..b3b909c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ENU/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP.EXE new file mode 100644 index 0000000..c3b3ae9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP1.RC new file mode 100644 index 0000000..c13dfa7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP1.RC @@ -0,0 +1,207 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Common with bootstrapper +// +#include "commonrc.rc" + +// +// Global Font settings for Setup1 project. To override, +// set font properties in code after Form_Load. +// +resFONTNAME "MS Sans Serif" // Don't translate this +resFONTSIZE "8" // Don't translate this +resFONTBOLD "False" // Don't translate this +resFONTNAMEBACKUP1 "Arial" // Don't translate this +resFONTNAMEBACKUP2 "System" // Don't translate this + +// +//Global +// +resSETMSG "Mensaje de instalacin" + +// +//frmBegin +// +resSPECDEST "Haga clic en este botn para instalar el software de |1 en el directorio de destino especificado." +resSPECNODEST "Haga clic en este botn para instalar el software de |1 en su equipo." + +// +//frmWelcome +// +resWELCOME "Bienvenidos al Programa de instalacin de |1." + +// +//frmPath +// +resSRCPROMPT "Especifique la unidad o la ruta que contiene los archivos de origen de |1." +resDESTPROMPT "Especifique o seleccione un directorio de destino." +resDESTDIR "El directorio de destino:" +resCREATE "no existe. Desea crearlo?" +resCHANGEDIR "Cambiar directorio" +resINSTFROM "Instalar desde" + +// +//Setup1.Bas +// +resCALCSPACE "Error al calcular el espacio de disco necesario." +resDRVREAD "No se puede leer la unidad de disco " +resDRVCHK "Compruebe que la unidad est cerrada y que el disco est formateado y no tiene errores." +resCANTOPEN "No se puede abrir el archivo:" +resCANTREAD "No se puede leer del archivo:" +resCANTWRITE "No se puede escribir en el archivo:" +resCHKSPACE "Compruebe que la unidad de destino tiene espacio suficiente." +resMAKEDIR "No se puede crear el directorio:" +resASKEXIT "Realmente desea salir?" +resINTERRUPTED "La instalacin de |1 se interrumpi antes de que se instalara completamente el nuevo software." +resCANRUN "Puede ejecutar la instalacin completa de |1 posteriormente para terminar la instalacin." +resINCOMPLETE "La instalacin an no ha finalizado." +resQUITNOW "Si sale ahora, este producto no se instalar correctamente." +resQUITSETUP "Desea salir de la instalacin de este producto?" +resSUCCESS "La instalacin de |1 ha finalizado correctamente." +resERROR "La instalacin de |1 no ha finalizado correctamente." +resALLOCUNIT "Error al determinar la unidad de asignacin para la unidad de disco " +resSAMEASSRC "est en el directorio 'Setup' de archivos de origen. Escriba un directorio distinto." +resNOCREATE "No se puede crear el archivo:" +resNOTPROTECT "Compruebe que la unidad de destino no est protegida contra escritura." +resINSERT "Inserte el disco con la etiqueta:" +resDISK "'Disco " +resINTO "' en la unidad" +resSECTNAME "Seccin: " +resINVLINE "Hay una lnea no vlida en el archivo de informacin de instalacin." +resDIRSPECIFIED "El directorio especificado:" +resDIRINVALID "no es vlido, no est completo o est protegido contra escritura. Escriba una ruta completa con la letra de la unidad, por ejemplo 'C:\APPS'." +resNOTEXIST "El directorio no existe." +resDIRINVNAME "El nombre de directorio no es vlido" +resWRITEPROT "El archivo de destino est protegido contra escritura." +resINUSE "El archivo de destino est en uso. Asegrese de que todas las dems aplicaciones estn cerradas." +resOUTOFSPACE "Espacio insuficiente en la unidad de destino " +resACCESSVIOLATION "Infraccin de acceso al copiar el archivo." +resSHARINGVIOLATION "Infraccin de recurso compartido al copiar el archivo." +resOUTOFMEMORY "Memoria insuficiente para copiar el archivo." +resCANNOTCREATE "No se puede crear el archivo temporal." +resCANNOTDELETE "No se puede eliminar el archivo de destino existente." +resCANNOTRENAME "No se puede cambiar el nombre del archivo temporal." +resCANNOTREADSRC "No se puede leer el archivo de origen." +resCANNOTREADDST "No se pueden leer los atributos del archivo destino." +resBUFFTOOSMALL "Error interno de copia." +resNOINSTALL " No se puede instalar el archivo." +resCHKCONNECT "Compruebe la conexin con la unidad" +resWARNIGNORE "Si pasa por alto un error de copia, el archivo no se copiar. Puede que la aplicacin no funcione correctamente. Desea pasar por alto el error?" +resTEMPDRIVE "La unidad especificada por la variable de entorno 'TMP' o 'TEMP' no est lista." +resERR_VSHARE "Debe agregar la lnea 'device=vshare.386' a la seccin [386Enh] del archivo SYSTEM.INI para asegurar el correcto funcionamiento de su software nuevo." +resCANTREADUNC "No se puede leer la ruta de red '|1'." +resCHECKUNC "Compruebe que la ruta es correcta y que tiene permiso de acceso a la misma." +resCANTFINDAPPREMOVALLOG "No se puede encontrar el archivo de registro de operaciones '|1' para quitar la aplicacin. No se puede continuar." +resBADCOMMANDLINE "Los parmetros de la lnea de comandos no son vlidos. No se puede continuar." +resCANTFINDAPPREMOVALEXE "No se encuentra el ejecutable '|1' para quitar la aplicacin. No se puede continuar." +resAPPREMOVALICONNAME "Quitar |1" +resCANTREGISTERAPPREMOVER "Error al registrar el ejecutable para quitar la aplicacin en Windows" +resCANTCREATEAPPREMOVALICON "Error al crear un icono del Administrador de programas para el programa para quitar la aplicacin" +resOVERWRITEPRIVATE "El programa de instalacin va a reemplazar unos archivos ya existentes. Esto puede causar la prdida de datos para alguna aplicacin existente." +resOVERWRITEPRIVATE2 "Si instala sobre una instalacin existente sin quitarla primero puede daar dicha instalacin o puede hacer que fallen los intentos futuros de quitarla." +resCANCELSETUP "Desea cancelar la instalacin?" +resCHOOSENEWDEST "Ejecute Instalar de nuevo y seleccione una nueva ubicacin para los archivos de la aplicacin." +resVERIFYCONTINUE "Realmente desea continuar?" +resERR_REG "Error al intentar actualizar la base de datos de registro de Windows." +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "Error al crear el grupo de programas '|1'" +resCANTCREATEPROGRAMICON "Error al crear un icono de programa para '|1'" +resCANTCOPYLOG "Error al copiar '|1' al directorio de la aplicacin" +resCANTFINDREGFILE "No se pudo registrar el archivo '|1' porque no se encontr." +resCANTRUNPROGRAM "Windows no pudo ejecutar el programa '|1'. Posiblemente su sistema no tiene suficiente memoria o puede que no se haya encontrado el programa." +resREMOTELINENOTFOUND "Error: 'SETUP.LST' no contiene informacin sobre cmo registrar el componente remoto '|1'. Esta informacin debe estar en una clave '|2' en SETUP.LST" +resPROGRAMMANAGER "Administrador de programas" +resUNEXPECTEDRPCREGDAT "Error inesperado al crear '|1':" +resCANTCOPYPATHTOOLONG "No se puede copiar el archivo; la ruta de destino es demasiado larga." +resCANTCREATEICONPATHTOOLONG "No se puede crear el icono para desinstalar; la ruta de destino es demasiado larga." +resICONMISSING "No se especific en SETUP.LST ningn icono para |1. Desea continuar sin crear este icono? Haga clic en 'S' para continuar. Haga clic en 'No' para salir de la instalacin." + +// +//Setup1.Frm +// +resBADDEFDIR "El programa de instalacin no pudo determinar un directorio de destino predeterminado. Tendr que especificar un directorio de destino." +resDISKSPACE "El programa de instalacin est comprobando el espacio necesario en disco..." +resPROGMAN "El programa de instalacin est creando los iconos de programa..." +resUPDATING "El programa de instalacin est actualizando el sistema..." +resNOEXE "No se puede determinar el nombre del archivo ejecutable de la aplicacin." +resSETUP "Instalacin de |1" +resNOSETUPLST "El archivo SETUP.LST est daado o no se pudo encontrar." +resUNEXPECTED "Error inesperado de instalacin." +resNOFOLDERFORICON "Error de personalizacin de instalacin: es necesario crear un icono para |1, pero no se ha creado ninguna carpeta o grupo del Administrador de programas para este propsito." +resSTILLWITHINACTION "Error de instalacin: falta 'CommitAction()' o 'AbortAction()'." +resREMAUTGROUPNAME "Administracin de automatizacin remota" +resAUTMGR32ICON "Administrador de automatizacin" +resRACMGR32ICON "Administrador de conexiones" +resNT4WithoutSP2 "Advertencia: se recomienda instalar el Service Pack 2 de Windows NT 4.0. Puede que esta aplicacin no funcione correctamente sin l." +resINSTALLADO "Instalando componentes de acceso a datos..." +resREBOOT "Debe reiniciar el sistema para actualizar la configuracin del sistema.\n\nDesea reiniciar el sistema ahora?" +resREBOOTNO "Puede que la aplicacin no funcione correctamente hasta que haya reiniciado el sistema." +// +//Common.Bas +// +resDISKSPCERR "Error al determinar el espacio libre en la unidad " + +// +//Forms/Controls Strings +// +//resBTNINSTALL "&Install" +resFRMDIRECTORY "Directorio:" +resBTNCHGDIR "&Cambiar directorio" +resBTNEXIT "&Salir" +resLBLBEGIN "Inicie la instalacin; para ello, haga clic en el botn que aparece abajo." +resBTNCANCEL "Cancelar" +resLBLDESTFILE "Archivo de destino:" +resBTNINSTALLNOW "&Instalar ahora" +resBTNCHGDRV "&Cambiar unidad" +resLBLDRIVE "Unidad" +resLBLAVAIL "Espacio disponible" +resLBLNEEDED "Espacio necesario" +resLBLREQUIRED "Espacio requerido" +resLBLNOSPACE "No hay espacio suficiente en disco en una o varias unidades." +resBTNOK "Aceptar" +resLBLDRIVES "&Unidades:" +resLBLDIRS "&Directorios:" +resLBLPATH "&Ruta:" +resLBLRUNNING "El programa de instalacin no puede instalar los archivos del sistema o actualizar los archivos compartidos si estn en uso. Antes de continuar, le recomendamos que cierre cualquier aplicacin que se est ejecutando." +resBTNTOOLTIPBEGIN "Haga clic aqu para iniciar la instalacin" +// +// Group.Frm +// +resGROUPFRM "|1 - Elegir grupo de programas" +resGROUPLBLMAIN "El programa de instalacin agregar los elementos al grupo mostrado en el cuadro Grupo de programa. Puede escribir un nombre de grupo nuevo o seleccionar uno de la lista Grupos existentes." +resGROUPLBLGROUP "Gru&po de programas:" +resGROUPLBLGROUPS "Grupos e&xistentes:" +resGROUPBTNCONTINUE "&Continuar" +resGROUPINVALIDGROUPNAME "Un nombre de grupo de programas debe tener menos de |1 caracteres y no puede contener ninguno de los siguientes caracteres: |2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "&Direccin de red" +resNETWORKPROTOCOL "&Protocolo de red" +resOK "&Continuar" +resCANCEL "&Salir" +resREMOTESERVERDETAILSTITLE "Configuracin de componentes ActiveX remotos" +resREMOTESERVERDETAILSLBL "Complete la informacin de configuracin solicitada sobre el siguiente componente remoto:" +resNOTEPROTOSEQNOTSUPPORTED "La secuencia de protocolo |1 (|2) no es compatible o no est disponible en esta mquina" +resNOTEPROTOSEQINVALID "La secuencia de protocolo '|1' ('|2') no es vlida" +resPROTOSEQUNEXPECTEDERR "Error inesperado al determinar las secuencias de protocolo disponibles en este equipo" +resNOPROTOCOLSINSETUPLST "Error de instalacin: error al intentar leer protocolos desde el archivo SETUP.LST." +resNOPROTOCOLSSUPPORTED1 "Ninguno de los protocolos que necesita esta aplicacin parecen estar disponibles o instalados en este equipo." +resNOPROTOCOLSSUPPORTED2 "Para poder ejecutar correctamente el programa de instalacin deber instalar primero una de las siguientes secuencias de protocolo de red: " +resSELECTEDPROTONOTSUPPORTED "Esta aplicacin no podr tener acceso al componente remoto '|1' hasta que el protocolo '|2' est instalado." + +resOVERWRITEFORM "Conflicto de versiones" +resOVERWRITEINFO "Se est copiando un archivo ms antiguo que el que hay actualmente en el sistema. Se recomienda que conserve el archivo." +resOVERWRITEFILE "Nombre de archivo: '|1'" +resOVERWRITEDESC "Descripcin: '|1'" +resOVERWRITEVER "Su versin: '|1'" +resOVERWRITEKEEP "Desea conservar este archivo?" +resOVERNOTOALL "No a &todo" +resOVERYES "&S" +resOVERNO "&No" +END \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP1.RES new file mode 100644 index 0000000..4e53fed Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ESP/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP.EXE new file mode 100644 index 0000000..040b15b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP1.RC new file mode 100644 index 0000000..ce91134 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP1.RC @@ -0,0 +1,207 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Common with bootstrapper +// +#include "commonrc.rc" + +// +// Global Font settings for Setup1 project. To override, +// set font properties in code after Form_Load. +// +resFONTNAME "MS Sans Serif" // Don't translate this +resFONTSIZE "8" // Don't translate this +resFONTBOLD "False" // Don't translate this +resFONTNAMEBACKUP1 "Arial" // Don't translate this +resFONTNAMEBACKUP2 "System" // Don't translate this + +// +//Global +// +resSETMSG "Message d'installation" + +// +//frmBegin +// +resSPECDEST "Cliquez sur ce bouton pour installer le logiciel |1 dans le dossier de destination spcifi." +resSPECNODEST "Cliquez sur ce bouton pour installer le logiciel |1 sur votre ordinateur." + +// +//frmWelcome +// +resWELCOME "Programme d'installation de |1." + +// +//frmPath +// +resSRCPROMPT "Veuillez entrer le lecteur ou le chemin contenant les fichiers source de |1." +resDESTPROMPT "Entrez ou slectionnez un dossier de destination." +resDESTDIR "Le dossier de destination:" +resCREATE "n'existe pas. Voulez-vous le crer?" +resCHANGEDIR "Changer de dossier" +resINSTFROM "Installer partir de" + +// +//Setup1.Bas +// +resCALCSPACE "Une erreur s'est produite lors du calcul de l'espace disque ncessaire." +resDRVREAD "Impossible de lire le lecteur " +resDRVCHK "Veuillez vrifier que le volet du lecteur est bien ferm et que la disquette est format et sans erreur." +resCANTOPEN "Impossible d'ouvrir le fichier:" +resCANTREAD "Impossible de lire partir du fichier:" +resCANTWRITE "Impossible d'crire dans le fichier:" +resCHKSPACE "Veuillez vrifier que le lecteur de destination dispose de suffisamment d'espace disque." +resMAKEDIR "Impossible de crer le dossier:" +resASKEXIT "Voulez-vous vraiment quitter?" +resINTERRUPTED "L'installation de |1 a t interrompue avant l'installation complte de votre nouveau logiciel." +resCANRUN "Vous pouvez effectuer la suite de l'installation de |1 ultrieurement." +resINCOMPLETE "L'installation n'est pas encore termine." +resQUITNOW "Si vous quittez maintenant, ce produit ne sera pas correctement install." +resQUITSETUP "Quitter l'installation?" +resSUCCESS "L'installation de |1 a russi." +resERROR "L'installation complte de |1 n'a pas russi." +resALLOCUNIT "Erreur lors de la lecture de l'unit d'allocation pour le lecteur" +resSAMEASSRC "se trouve dans le dossier des fichiers source d'installation. Veuillez entrer un dossier diffrent." +resNOCREATE "Impossible de crer le fichier:" +resNOTPROTECT "Veuillez vrifier que le lecteur de destination n'est pas protg en criture." +resINSERT "Veuillez introduire la disquette portant l'tiquette:" +resDISK "'Disquette " +resINTO "' dans le lecteur " +resSECTNAME "Section: " +resINVLINE "Ligne incorrecte dans le fichier d'information d'installation!" +resDIRSPECIFIED "Le dossier spcifi:" +resDIRINVALID "est incorrect, incomplet ou protg en criture. Veuillez entrer un chemin complet, comprenant le lecteur. Par exemple: 'C:\APPS'." +resNOTEXIST "Le dossier n'existe pas!" +resDIRINVNAME "Nom de dossier incorrect" +resWRITEPROT "Le fichier de destination est protg en criture." +resINUSE "Le fichier de destination est en cours d'utilisation. Veuillez vous assurer que toutes les autres applications sont fermes." +resOUTOFSPACE "Espace insuffisant sur le lecteur de destination " +resACCESSVIOLATION "Une violation d'accs s'est produite au cours de la copie du fichier." +resSHARINGVIOLATION "Une violation de partage s'est produite au cours de la copie du fichier." +resOUTOFMEMORY "Mmoire insuffisante lors de la copie du fichier." +resCANNOTCREATE "Impossible de crer le fichier temporaire." +resCANNOTDELETE "Impossible de supprimer le fichier de destination existant." +resCANNOTRENAME "Impossible de renommer le fichier temporaire." +resCANNOTREADSRC "Impossible de lire le fichier source." +resCANNOTREADDST "Impossible de lire les attributs du fichier de destination." +resBUFFTOOSMALL "Erreur de copie interne." +resNOINSTALL " Le fichier n'a pas pu tre install." +resCHKCONNECT "Veuillez vrifier la connexion au lecteur " +resWARNIGNORE "Si vous ignorez une erreur de copie, le fichier ne sera pas copi. L'application risque alors de ne pas fonctionner correctement. Voulez-vous ignorer l'erreur?" +resTEMPDRIVE "Le lecteur spcifi par la variable d'environnement 'TMP' ou 'TEMP' n'est pas prt." +resERR_VSHARE "Il est ncessaire d'ajouter la ligne 'device=vshare.386' la section [386Enh] de votre fichier SYSTEM.INI afin d'assurer un fonctionnement correct de votre logiciel." +resCANTREADUNC "Impossible de lire le chemin rseau '|1'." +resCHECKUNC "Veuillez vrifier que ce chemin est correct et que vous disposez des droits d'accs." +resCANTFINDAPPREMOVALLOG "Le fichier journal de suppression d'application '|1' est introuvable. Impossible de continuer." +resBADCOMMANDLINE "Paramtres de ligne de commande incorrects. Impossible de continuer." +resCANTFINDAPPREMOVALEXE "L'excutable de suppression d'application '|1' est introuvable. Impossible de continuer." +resAPPREMOVALICONNAME "Supprimer |1" +resCANTREGISTERAPPREMOVER "Erreur d'inscription de l'excutable de suppression d'application dans Windows" +resCANTCREATEAPPREMOVALICON "Erreur lors de la cration d'une icne du Gestionnaire de programmes pour l'utilitaire de suppression d'application" +resOVERWRITEPRIVATE "L'installation va remplacer des fichiers existants. Ceci risque de causer une perte de donnes pour une application existante." +resOVERWRITEPRIVATE2 "Une installation sans suppression pralable d'une installation existante peut porter prjudice la nouvelle installation ou causer l'chec des futures tentatives de suppression." +resCANCELSETUP "Annuler l'installation?" +resCHOOSENEWDEST "Veuillez excuter l'installation de nouveau et slectionner un nouvel emplacement pour les fichiers de l'application." +resVERIFYCONTINUE "Voulez-vous vraiment continuer?" +resERR_REG "Une erreur s'est produite lors de la mise jour de la base de registres de Windows." +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "Une erreur s'est produite lors de la cration du groupe de programmes '|1'." +resCANTCREATEPROGRAMICON "Une erreur s'est produite lors de la cration de l'icne de programme pour '|1'." +resCANTCOPYLOG "Une erreur s'est produite lors de la copie de '|1' dans le dossier de l'application." +resCANTFINDREGFILE "Le fichier '|1' ne peut pas tre inscrit parce qu'il est introuvable." +resCANTRUNPROGRAM "Windows n'a pas pu excuter le programme '|1'. La mmoire est insuffisante ou le programme est introuvable." +resREMOTELINENOTFOUND "Erreur: 'SETUP.LST' ne contient pas d'informations sur l'inscription du composant distant '|1'. Ces informations devraient figurer dans une cl '|2' de SETUP.LST." +resPROGRAMMANAGER "Gestionnaire de programmes" +resUNEXPECTEDRPCREGDAT "Erreur inattendue lors de la cration de '|1':" +resCANTCOPYPATHTOOLONG "Impossible de copier le fichier, le chemin de destination est trop long." +resCANTCREATEICONPATHTOOLONG "Impossible de crer l'icne de dsinstallation, le chemin de destination est trop long." +resICONMISSING "Aucune icne n'est spcifie dans SETUP.LST pour |1. Voulez-vous continuer sans crer cette icne? Cliquez sur Oui pour continuer ou sur Non pour quitter l'installation." + +// +//Setup1.Frm +// +resBADDEFDIR "Le programme d'installation n'a pas pu dterminer un dossier de destination par dfaut valide. Vous devrez spcifier un dossier de destination." +resDISKSPACE "Le programme d'installation vrifie l'espace disque ncessaire..." +resPROGMAN "Le programme d'installation cre les icnes du programme..." +resUPDATING "Le programme d'installation met jour votre systme..." +resNOEXE "Impossible de dterminer le nom du fichier excutable de l'application." +resSETUP "Installation de |1" +resNOSETUPLST "Le fichier SETUP.LST est endommag ou introuvable." +resUNEXPECTED "Une erreur d'installation inattendue s'est produite!" +resNOFOLDERFORICON "Erreur de personnalisation de l'installation: une icne doit tre cre pour |1 mais aucun dossier ni groupe du Gestionnaire de programmes n'a t cr cet effet." +resSTILLWITHINACTION "Erreur d'installation: 'CommitAction()' ou 'AbortAction()' absent." +resREMAUTGROUPNAME "Gestionnaire d'automation distance" +resAUTMGR32ICON "Automation Manager" +resRACMGR32ICON "Gestionnaire de connexion" +resNT4WithoutSP2 "Avertissement: il est recommand d'installer le Service Pack 2 pour Windows NT 4.0. dfaut, cette application risque de ne pas fonctionner correctement." +resINSTALLADO "Installation des composants d'accs aux donnes..." +resREBOOT "Le systme doit redmarrer pour mettre jour les paramtres de l'utilisateur..\n\nVoulez-vous redmarrer votre ordinateur maintenant?" +resREBOOTNO "Votre application peut ne pas fonctionner correctement tant que vous n'avez pas re dmarrer votre systme." +// +//Common.Bas +// +resDISKSPCERR "Erreur lors de la lecture de l'espace disponible sur le lecteur " + +// +//Forms/Controls Strings +// +//resBTNINSTALL "&Install" +resFRMDIRECTORY "Dossier:" +resBTNCHGDIR "&Changer de dossier" +resBTNEXIT "&Quitter l'installation" +resLBLBEGIN "Commencer l'installation en cliquant sur le bouton ci-dessous." +resBTNCANCEL "Annuler" +resLBLDESTFILE "Fichier de destination:" +resBTNINSTALLNOW "&Installer" +resBTNCHGDRV "&Changer de lecteur" +resLBLDRIVE "Lecteur" +resLBLAVAIL "Espace disponible" +resLBLNEEDED "Espace ncessaire" +resLBLREQUIRED "Espace requis" +resLBLNOSPACE "L'espace disque est insuffisant sur un ou plusieurs lecteurs." +resBTNOK "OK" +resLBLDRIVES "&Lecteurs:" +resLBLDIRS "&Dossiers:" +resLBLPATH "&Chemin d'accs:" +resLBLRUNNING "L'installation ne peut pas installer les fichiers systme ou mettre jour les fichiers partags s'ils sont utiliss. Avant de poursuivre, fermez toutes les applications en cours." +resBTNTOOLTIPBEGIN "Cliquez ici pour commencer l'installation." +// +// Group.Frm +// +resGROUPFRM "|1 - Choisir le groupe de programmes" +resGROUPLBLMAIN "L'installation va ajouter des lments au groupe prsent dans la bote Groupe de programmes. Vous pouvez entrer un nouveau nom de groupe de programmes ou en slectionner un existant dans la liste Groupes existants." +resGROUPLBLGROUP "&Groupe de programmes:" +resGROUPLBLGROUPS "Groupes e&xistants:" +resGROUPBTNCONTINUE "&Continuer" +resGROUPINVALIDGROUPNAME "Un nom de groupe de programmes doit comporter moins de |1 caractres et ne contenir aucun des caractres suivants: |2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "&Adresse rseau" +resNETWORKPROTOCOL "&Protocole rseau" +resOK "&Continuer" +resCANCEL "&Quitter l'installation" +resREMOTESERVERDETAILSTITLE "Configuration des composants ActiveX distants" +resREMOTESERVERDETAILSLBL "Veuillez renseigner les informations de configuration relatives au composant distant suivant:" +resNOTEPROTOSEQNOTSUPPORTED "La squence de protocole |1 (|2) n'est pas gre ou pas disponible sur cette machine." +resNOTEPROTOSEQINVALID "La squence de protocole |1 (|2) est incorrecte." +resPROTOSEQUNEXPECTEDERR "Une erreur inattendue s'est produite lors de la lecture des squences de protocole disponibles sur cette machine." +resNOPROTOCOLSINSETUPLST "Erreur d'installation: Une erreur inattendue s'est produite lors de la lecture des squences de protocole dans le fichier SETUP.LST." +resNOPROTOCOLSSUPPORTED1 "Aucun des protocoles requis par cette application n'est disponible ou install sur cette machine." +resNOPROTOCOLSSUPPORTED2 "Pour excuter correctement l'installation, vous devrez commencer par installer une des squences de protocole rseau suivantes" +resSELECTEDPROTONOTSUPPORTED "Cette application ne peut pas accder au composant distant '|1' si le protocole '|2' n'est pas install." + +resOVERWRITEFORM "Conflit de version" +resOVERWRITEINFO "Un fichier en cours de copie est plus ancien que celui de votre systme. Il est recommand de conserver votre fichier existant." +resOVERWRITEFILE "Nom de fichier: '|1'" +resOVERWRITEDESC "Description: '|1'" +resOVERWRITEVER "Votre version: '|1'" +resOVERWRITEKEEP "Voulez-vous conserver ce fichier?" +resOVERNOTOALL "Non &tout" +resOVERYES "&Oui" +resOVERNO "&Non" +END \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP1.RES new file mode 100644 index 0000000..34f753d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/FRN/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP.EXE new file mode 100644 index 0000000..9b8c1b4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP1.RC new file mode 100644 index 0000000..ac5e128 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP1.RC @@ -0,0 +1,207 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Common with bootstrapper +// +#include "commonrc.rc" + +// +// Global Font settings for Setup1 project. To override, +// set font properties in code after Form_Load. +// +resFONTNAME "MS Sans Serif" // Don't translate this +resFONTSIZE "8" // Don't translate this +resFONTBOLD "False" // Don't translate this +resFONTNAMEBACKUP1 "Arial" // Don't translate this +resFONTNAMEBACKUP2 "Sistema" // Don't translate this + +// +//Global +// +resSETMSG "Messaggio di installazione" + +// +//frmBegin +// +resSPECDEST "Fare clic su questo pulsante per installare il software di |1 nella directory di destinazione specificata." +resSPECNODEST "Fare clic su questo pulsante per installare il software di |1 nel computer in uso." + +// +//frmWelcome +// +resWELCOME "Programma di installazione di |1." + +// +//frmPath +// +resSRCPROMPT "Immettere l'unit e il percorso per i file di origine di |1." +resDESTPROMPT "Immettere o selezionare una directory di destinazione." +resDESTDIR "La directory di destinazione:" +resCREATE "non esiste. Creare la directory?" +resCHANGEDIR "Cambia directory" +resINSTFROM "Installa da" + +// +//Setup1.Bas +// +resCALCSPACE "Errore durante il calcolo dello spazio su disco necessario." +resDRVREAD "Impossibile leggere dall'unit " +resDRVCHK "Verificare che lo sportello sia chiuso e che il disco sia formattato e privo di difetti." +resCANTOPEN "Impossibile aprire il file:" +resCANTREAD "Impossibile leggere dal file:" +resCANTWRITE "Impossibile scrivere nel file:" +resCHKSPACE "Verificare che lo spazio su disco nell'unit di destinazione sia sufficiente." +resMAKEDIR "Impossibile creare la directory:" +resASKEXIT "Uscire?" +resINTERRUPTED "Il programma di installazione di |1 stato interrotto prima del completamento dell'installazione del nuovo software." +resCANRUN " possibile eseguire nuovamente il programma di installazione di |1 in un secondo momento per completare l'installazione." +resINCOMPLETE "Installazione non ancora completata." +resQUITNOW "Se si esce ora, l'applicazione non verr installata correttamente." +resQUITSETUP "Uscire dal programma di installazione?" +resSUCCESS "Installazione di |1 completata." +resERROR "L'installazione di |1 non stata completata." +resALLOCUNIT "Errore nella determinazione dell'unit di allocazione per l'unit " +resSAMEASSRC "si trova nella directory dei file di origine del programma di installazione. Immettere una directory diversa." +resNOCREATE "Impossibile creare il file:" +resNOTPROTECT "Verificare che l'unit di destinazione non sia protetta dalla scrittura." +resINSERT "Inserire il disco con etichetta:" +resDISK "'Disco " +resINTO "' nell'unit " +resSECTNAME "Sezione: " +resINVLINE "Riga non valida nel file di informazioni dell'installazione." +resDIRSPECIFIED "La directory specificata:" +resDIRINVALID " incompleta, protetta dalla scrittura o non valida. Digitare un percorso completo indicando la lettera di unit, ad esempio 'c:\apps'." +resNOTEXIST "La directory non esiste." +resDIRINVNAME "Nome di directory non valido" +resWRITEPROT "Il file di destinazione protetto dalla scrittura." +resINUSE "Il file di destinazione in uso. Verificare che tutte le altre applicazioni siano chiuse." +resOUTOFSPACE "Spazio insufficiente nell'unit di destinazione " +resACCESSVIOLATION "Violazione di accesso durante la copia del file." +resSHARINGVIOLATION "Errore di condivisione durante la copia del file." +resOUTOFMEMORY "Memoria esaurita durante la copia del file." +resCANNOTCREATE "Impossibile creare un file temporaneo." +resCANNOTDELETE "Impossibile eliminare un file di destinazione esistente." +resCANNOTRENAME "Impossibile rinominare un file temporaneo." +resCANNOTREADSRC "Impossibile leggere un file di origine." +resCANNOTREADDST "Impossibile leggere gli attributi di un file di destinazione." +resBUFFTOOSMALL "Errore di copia interno." +resNOINSTALL " Impossibile installare il file." +resCHKCONNECT "Controllare la connessione dell'unit " +resWARNIGNORE "Se si ignora un errore di copia, il file non verr copiato e l'applicazione potrebbe non funzionare correttamente. Ignorare l'errore?" +resTEMPDRIVE "L'unit specificata dalla variabile di ambiente 'TMP' o 'TEMP' non pronta." +resERR_VSHARE "Per ottenere il corretto funzionamento della nuova applicazione, potrebbe essere necessario aggiungere la riga 'device=vshare.386' nella sezione [386Enh] del file System.ini." +resCANTREADUNC "Impossibile leggere il percorso di rete '|1'." +resCHECKUNC "Verificare che il percorso sia corretto e che siano disponibili le autorizzazioni necessarie per accedervi." +resCANTFINDAPPREMOVALLOG "Impossibile trovare il file registro '|1' per la disinstallazione dell'applicazione. Impossibile continuare." +resBADCOMMANDLINE "Parametri della riga di comando non validi. Impossibile continuare." +resCANTFINDAPPREMOVALEXE "Impossibile trovare il file eseguibile '|1' per la disinstallazione dell'applicazione. Impossibile continuare." +resAPPREMOVALICONNAME "Rimuovi |1" +resCANTREGISTERAPPREMOVER "Errore durante la registrazione del file eseguibile per la disinstallazione dell'applicazione in Windows" +resCANTCREATEAPPREMOVALICON "Errore durante la creazione di un'icona per l'utilit di disinstallazione dell'applicazione in Program Manager" +resOVERWRITEPRIVATE "Uno o pi file gi esistenti verranno sostituiti. Potrebbe verificarsi una perdita di dati per un'applicazione esistente." +resOVERWRITEPRIVATE2 "Se si installa un'applicazione su un'applicazione esistente, questa potrebbe venire danneggiata oppure potrebbe non essere pi possibile rimuoverla." +resCANCELSETUP "Annullare l'installazione?" +resCHOOSENEWDEST "Eseguire nuovamente il programma di installazione e selezionare una nuova posizione per i file dell'applicazione." +resVERIFYCONTINUE "Si desidera continuare?" +resERR_REG "Errore durante l'aggiornamento del registro di configurazione di Windows." +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "Errore durante la creazione del gruppo di programmi '|1'" +resCANTCREATEPROGRAMICON "Errore durante la creazione di un'icona di programma per '|1'" +resCANTCOPYLOG "Errore durante il tentativo di copia di '|1' nella directory dell'applicazione" +resCANTFINDREGFILE "Impossibile trovare e quindi registrare il file '|1'." +resCANTRUNPROGRAM "Impossibile eseguire il programma '|1'. La memoria disponibile nel sistema potrebbe non essere sufficiente o il programma potrebbe non essere stato trovato." +resREMOTELINENOTFOUND "Errore: Setup.lst non contiene informazioni sulla registrazione del componente remoto '|1'. Le informazioni dovrebbero essere disponibili in una chiave '|2' di Setup.lst" +resPROGRAMMANAGER "Program Manager" +resUNEXPECTEDRPCREGDAT "Errore imprevisto durante la creazione di '|1':" +resCANTCOPYPATHTOOLONG "Impossibile copiare il file. Percorso di destinazione troppo lungo." +resCANTCREATEICONPATHTOOLONG "Impossibile creare l'icona del programma di disinstallazione. Percorso di destinazione troppo lungo." +resICONMISSING "Nessuna icona specificata nel file Setup.lst per |1. Continuare senza creare l'icona? Fare clic su S per continuare oppure su No per uscire dal programma di installazione." + +// +//Setup1.Frm +// +resBADDEFDIR "Impossibile determinare una directory di destinazione predefinita valida. Sar necessario specificare una directory di destinazione." +resDISKSPACE "Controllo dello spazio disponibile su disco in corso..." +resPROGMAN "Creazione delle icone dei programmi in corso..." +resUPDATING "Aggiornamento del sistema in corso..." +resNOEXE "Impossibile determinare il nome del file eseguibile dell'applicazione." +resSETUP "Programma di installazione di |1" +resNOSETUPLST "Il file Setup.lst non stato trovato o danneggiato." +resUNEXPECTED "Errore imprevisto del programma di installazione." +resNOFOLDERFORICON "Errore di personalizzazione dell'applicazione: necessaria un'icona per |1 ma non sono stati creati gruppi di Program Manager o cartelle a tale scopo." +resSTILLWITHINACTION "Errore dell'installazione: manca 'CommitAction()' o 'AbortAction()'." +resREMAUTGROUPNAME "Programmi di gestione dell'automazione remota" +resAUTMGR32ICON "Automation Manager" +resRACMGR32ICON "Gestione connessione automazione remota" +resNT4WithoutSP2 "Avviso: consigliabile installare Service Pack 2 per Windows NT 4.0. In caso contrario, questa applicazione potrebbe non funzionare." +resINSTALLADO "Installazione dei componenti per l'accesso ai dati in corso..." +resREBOOT " necessario riavviare il sistema per aggiornare le impostazioni.\n\nRiavviare?" +resREBOOTNO "Se il sistema non viene riavviato, potrebbero verificarsi problemi di funzionamento dell'applicazione." +// +//Common.Bas +// +resDISKSPCERR "Errore nella determinazione dello spazio su disco disponibile per l'unit " + +// +//Forms/Controls Strings +// +//resBTNINSTALL "&Install" +resFRMDIRECTORY "Directory:" +resBTNCHGDIR "&Cambia directory" +resBTNEXIT "&Esci dall'installazione" +resLBLBEGIN "Fare clic sul pulsante qui sotto per iniziare l'installazione." +resBTNCANCEL "Annulla" +resLBLDESTFILE "File di destinazione:" +resBTNINSTALLNOW "&Installa ora" +resBTNCHGDRV "&Cambia unit" +resLBLDRIVE "Unit" +resLBLAVAIL "Spazio disponibile" +resLBLNEEDED "Spazio necessario" +resLBLREQUIRED "Spazio richiesto" +resLBLNOSPACE "Spazio su disco insufficiente in una o pi unit." +resBTNOK "OK" +resLBLDRIVES "&Unit:" +resLBLDIRS "&Directory:" +resLBLPATH "&Percorso:" +resLBLRUNNING "Impossibile installare i file di sistema o aggiornare i file condivisi se questi sono in uso. Prima di continuare, consigliabile chiudere le eventuali applicazioni in esecuzione." +resBTNTOOLTIPBEGIN "Fare clic qui per iniziare l'installazione" +// +// Group.Frm +// +resGROUPFRM "|1 - Seleziona gruppo di programmi" +resGROUPLBLMAIN "Verranno inseriti nuovi elementi nel gruppo visualizzato nella casella Gruppo di programmi. possibile digitare un nuovo nome per il gruppo o selezionarne uno nell'elenco Gruppi esistenti." +resGROUPLBLGROUP "&Gruppo di programmi:" +resGROUPLBLGROUPS "Gruppi &esistenti:" +resGROUPBTNCONTINUE "&Continua" +resGROUPINVALIDGROUPNAME "La lunghezza dei nomi dei gruppi di programmi deve essere inferiore a |1 caratteri. Tali nomi non possono includere i seguenti caratteri: |2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "&Indirizzo di rete" +resNETWORKPROTOCOL "&Protocollo di rete" +resOK "&Continua" +resCANCEL "&Esci dall'installazione" +resREMOTESERVERDETAILSTITLE "Configurazione componente ActiveX remoto" +resREMOTESERVERDETAILSLBL "Inserire le informazioni di configurazione richieste per il seguente componente remoto:" +resNOTEPROTOSEQNOTSUPPORTED "La sequenza di protocollo |1 (|2) non supportata o disponibile in questo computer" +resNOTEPROTOSEQINVALID "La sequenza di protocollo '|1' ('|2') non valida" +resPROTOSEQUNEXPECTEDERR "Errore imprevisto durante la determinazione delle sequenze di protocollo disponibili in questo computer" +resNOPROTOCOLSINSETUPLST "Errore dell'installazione: si verificato un errore durante la lettura dei protocolli dal file Setup.lst." +resNOPROTOCOLSSUPPORTED1 "Nessuno dei protocolli necessari per l'applicazione sembra essere disponibile o installato in questo computer." +resNOPROTOCOLSSUPPORTED2 "Per eseguire correttamente l'installazione, innanzitutto necessario installare una delle seguenti sequenze di protocolli di rete: " +resSELECTEDPROTONOTSUPPORTED "L'applicazione non in grado di accedere al componente remoto '|1' se non viene installato il protocollo '|2'." + +resOVERWRITEFORM "Conflitto di versione" +resOVERWRITEINFO "La versione di uno dei file che stanno per essere copiati meno recente della versione presente nel sistema. consigliabile evitare di sostituire il file esistente." +resOVERWRITEFILE "Nome file: '|1'" +resOVERWRITEDESC "Descrizione: '|1'" +resOVERWRITEVER "Versione: '|1'" +resOVERWRITEKEEP "Mantenere il file?" +resOVERNOTOALL "No a &Tutti" +resOVERYES "&S" +resOVERNO "&No" +END \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP1.RES new file mode 100644 index 0000000..8647b05 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/ITL/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP.EXE new file mode 100644 index 0000000..d490475 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP1.RC new file mode 100644 index 0000000..d8d7446 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP1.RC @@ -0,0 +1,199 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//ްĽׯ ۸ы +// +#include "commonrc.rc" + +// +//Global +// +resSETMSG "ı ү" + +// +//frmBegin +// +resSPECDEST "݂د |1 ع݂w肳ꂽިڸ؂ɾı߂܂B" +resSPECNODEST "݂دƁA|1 ع݂߭ɾı߂܂B" + +// +//frmWelcome +// +resWELCOME "|1 ̾ı߂n߂܂B" + +// +//frmPath +// +resSRCPROMPT "|1 ̧قި ײނ܂ިڸ؂w肵ĂB" +resDESTPROMPT "ıߐިڸ؂w肵ĂB" +resDESTDIR "ıߐިڸ:" +resCREATE "́A݂܂Bިڸ؂쐬܂?" +resCHANGEDIR "ިڸؕύX" +resINSTFROM "ıߌ" + +// +//Setup1.Bas +// +resCALCSPACE "Kvިeʂ̌vZɴװ܂B" +resDRVREAD "ײނǂ߂܂B:ײ" +resDRVCHK "ײނި}Ă邩A܂ި̫ϯĂĂ邩mFĂB" +resCANTOPEN "̧ق݂ł܂:" +resCANTREAD "̧قǂ߂܂:" +resCANTWRITE "̧ق֏߂܂:" +resCHKSPACE "ıߐײނɏ\ȋ󂫗eʂ邱ƂmFĂB" +resMAKEDIR "ިڸ؂쐬ł܂:" +resASKEXIT "I܂B낵ł?" +resINTERRUPTED "|1 ı߂́Af܂B߰ĂȂ̧ق܂B" +resCANRUN "ı߂ɂ́Axŏ |1 ı߂sĂB" +resINCOMPLETE "ı߂͊Ă܂B" +resQUITNOW "ŏIƁAı߂܂B" +resQUITSETUP "ı߂I܂?" +resSUCCESS "|1 ̾ı߂܂B" +resERROR "|1 ı߂͐ɏI܂łB" +resALLOCUNIT "ײނ̋󂫗eʂ̎擾Ɏs܂:ײ " +resSAMEASSRC "́Aıߌިڸ؂łBႤިڸ؂w肵ĂB" +resNOCREATE "̧ق쐬ł܂:" +resNOTPROTECT "ıߐײނ݋֎~ł͂ȂƂmFĂB" +resINSERT "قި}Ă:" +resDISK "'ި " +resINTO "' ײ " +resSECTNAME ": " +resINVLINE "ıߏ̧قɕsȍs܂B" +resDIRSPECIFIED "w肳ꂽިڸ:" +resDIRINVALID "͖AsS܂͏݋֎~łB ײޖ߽œ͂Ă; 'C:\\APPS'B" +resNOTEXIST "ިڸ؂݂͑܂B" +resDIRINVNAME "sިڸؖ" +resWRITEPROT "ıߐ̧ق͏݋֎~łB" +resINUSE "ıߐ̧ق́A̱ع݂ŎgĂ܂Bgp̱ع݂IĂB" +resOUTOFSPACE "ıߐײނɏ\ȗeʂ܂: ײ " +resACCESSVIOLATION "̧ق̺߰ɴװ܂B" +resSHARINGVIOLATION "̧ق̺߰ɋLᔽ܂B" +resOUTOFMEMORY "̧ق̺߰؂ȂȂ܂B" +resCANNOTCREATE "ꎞ̧ق쐬ł܂B" +resCANNOTDELETE "ıߐ̧̊ق폜ł܂B" +resCANNOTRENAME "ꎞ̧ق̖OύXł܂B" +resCANNOTREADSRC "ıߌ̧قǂݍ߂܂B" +resCANNOTREADDST "ıߐ̧ق̑ǂ߂܂B" +resBUFFTOOSMALL "̴̺߰װłB" +resNOINSTALL " ̧ق͑gݍ߂܂łB" +resCHKCONNECT "ײނւ̐ڑmFĂ: ײ " +resWARNIGNORE "̧ ߰ װ𖳎ƁA̧ق͑gݍ܂܂B̏ꍇAع݂삵ȂȂ”\܂Bװ𖳎܂?" +resTEMPDRIVE "'TMP' ܂ 'TEMP' ‹ϐŐݒ肳ĂײނLł͂܂B" +resERR_VSHARE "ع݂s邽߂ SYSTEM.INI [386Enh] ݂ 'device=vshare.386' ̍s̒ljKvȉ”\܂B" +resCANTREADUNC "ȯܰ ߽ '|1' ǂݍ߂܂B" +resCHECKUNC "߽A߽ɑ΂鱸邱ƂmFĂB" +resCANTFINDAPPREMOVALLOG "عݍ폜p۸ ̧ '|1' ܂Bpł܂B" +resBADCOMMANDLINE "ײ݂słBpł܂B" +resCANTFINDAPPREMOVALEXE "عݍ폜հèè '|1' ܂Bpł܂B" +resAPPREMOVALICONNAME "|1 ϼ݂폜܂B" +resCANTREGISTERAPPREMOVER "عݍ폜۸т̓o^Ɏs܂B" +resCANTCREATEAPPREMOVALICON "عݍ폜հèè۸ Ȱެ ݂̍쐬Ɏs܂B" +resOVERWRITEPRIVATE "ı߂̧͊ق㏑悤ƂĂ܂BɂA̱ع݂ްj󂳂”\܂B" +resOVERWRITEPRIVATE2 "̱ع݂폜Ȃ܂܁AV̧قı߂ƁA̾ıߍƂэ̱عݍ폜Ƃs”\܂B" +resCANCELSETUP "ı߂𒆒f܂?" +resCHOOSENEWDEST "xı߂sāAع ̧ق̐VʒuIĂB" +resVERIFYCONTINUE "p܂?" +resERR_REG "Windows ڼ޽؂̍XVɎs܂B" +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "۸ ٰ '|1' ̍쐬Ɏs܂B" +resCANTCREATEPROGRAMICON "'|1' ۸ ݂̍쐬Ɏs܂B" +resCANTCOPYLOG "'|1' ع ިڸ؂ɺ߰悤ƂĎs܂B" +resCANTFINDREGFILE "̧ '|1' ‚Ȃߓo^܂łB" +resCANTRUNPROGRAM "۸ '|1' ͎sł܂łB؂Ȃ۸т‚܂B" +resREMOTELINENOTFOUND "װ: 'SETUP.LST' '|2' ɂ́AӰ ߰ '|1' ̓o^񂪐ݒ肳Ă܂B" +resPROGRAMMANAGER "۸ Ȱެ" +resUNEXPECTEDRPCREGDAT "'|1' 쐬ɗ\ʴװ܂:" +resCANTCOPYPATHTOOLONG "̧ق߰ł܂B߽߰܂B" +resCANTCREATEICONPATHTOOLONG "ع݂̍폜݂쐬ł܂B쐬߽܂B" +resICONMISSING "SETUP.LST |1 ̱݂w肳Ă܂łB ̱݂쐬Ȃős܂ ? [͂] دƑs܂B [] دƾı߂I܂B" + +// +//Setup1.Frm +// +resBADDEFDIR "ıߐިڸ؂ƂāAK؂ިڸ؂‚܂łBıߐިڸ؂w肵ĂB" +resDISKSPACE "Kvިeʂ𒲂ׂĂ܂..." +resPROGMAN "۸ ݂쐬Ă܂..." +resUPDATING "ѐݒXVĂ܂..." +resNOEXE "ع݂̎s”\̧ق̖O𔻕ʂł܂łB" +resSETUP "|1 ı " +resNOSETUPLST "SETUP.LST ̧قĂ邩A‚܂B" +resUNEXPECTED "\Ȃװ܂B" +resNOFOLDERFORICON "ı ϲް̴݂װ: |1 p̱݂쐬悤Ƃ܂A̫ނ۸ Ȱެ ٰ߂݂Ă܂B" +resSTILLWITHINACTION "ı װ: 'CommitAction()' 'AbortAction()' ܂B" +resREMAUTGROUPNAME "Ӱ Ұ Ȱ" +resAUTMGR32ICON "Ұ Ȱެ" +resRACMGR32ICON "Ӱ ҰݐڑȰެ" +resNT4WithoutSP2 "x: Windows NT 4.0 gp̏ꍇ́A޽ ߯ 2 ȍ~ı߂邱Ƃ߂܂B" +resINSTALLADO "ް ߰ĂݽİقĂ܂..." +resREBOOT "ѐݒXV邽߂ɂͺ߭ċNKv܂B\n\nċN܂?" +resREBOOTNO "ع݂삷邽߂ɂͺ߭ċNKv܂B" + +// +//Common.Bas +// +resDISKSPCERR "ި󂫗eʂ̎擾Ɏs܂:ײ " + +// +//Forms/Controls Strings +// +//resBTNINSTALL "&Install" +resFRMDIRECTORY "ިڸ:" +resBTNCHGDIR "ިڸؕύX(&C)" +resBTNEXIT "I(&X)" +resLBLBEGIN "ı߂Jnɂ͎݂دĂB" +resBTNCANCEL "ݾ" +resLBLDESTFILE "ıߐ̧:" +resBTNINSTALLNOW "ıߊJn(&I)" +resBTNCHGDRV "ײނ̕ύX(&C)" +resLBLDRIVE "ײ" +resLBLAVAIL "󂫗e" +resLBLNEEDED "sĂe" +resLBLREQUIRED "Kvȗe" +resLBLNOSPACE "ި̋󂫗eʂ܂B" +resBTNOK "OK" +resLBLDRIVES "ײ(&V):" +resLBLDIRS "ިڸ(&D):" +resLBLPATH "߽(&P):" +resLBLRUNNING "ı ۸тł́A ̧ق⋤Ļقgp̂ƂA̧ق̒ljXV͂ł܂BNĂ鑼̱ع݂I邱Ƃ߂܂B" +resBTNTOOLTIPBEGIN "دƾı߂Jn܂" +// +// Group.Frm +// +resGROUPFRM "|1 - ۸ ٰ߂̑I" +resGROUPLBLMAIN "ı߂ [۸ ٰ] ޯɕ\ꂽٰ߂ɍڂlj܂B Vٰߖ͂邱ƂA̸ٰ ؽĂI邱Ƃł܂B" +resGROUPLBLGROUP "۸ ٰ(&P):" +resGROUPLBLGROUPS "̸ٰ(&X):" +resGROUPBTNCONTINUE "p(&C)" +resGROUPINVALIDGROUPNAME "۸ ٰߖ |1 Ŏw肷Kv܂B܂A̕܂ނƂ͂ł܂: |2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "ȯܰ ڽ(&A)" +resNETWORKPROTOCOL "ȯܰ ĺ(&P)" +resOK "p(&C)" +resCANCEL "I(&X)" +resREMOTESERVERDETAILSTITLE "Ӱ ActiveX ߰Ă̐ݒ" +resREMOTESERVERDETAILSLBL "Ӱ ߰ĂɊւ [KvȐݒ] ɓ͂Ă:" +resNOTEPROTOSEQNOTSUPPORTED "ĺ |1 (|2) ̺͂߭ł͗Lł͂܂B" +resNOTEPROTOSEQINVALID "ĺ '|1' ('|2') ͕słB" +resPROTOSEQUNEXPECTEDERR "̺߭ŗLĺق擾ɗ\ʴװ܂B" +resNOPROTOCOLSINSETUPLST "ı װ: SETUP.LST ĺق̓ǂݍ݂Ɏs܂B" +resNOPROTOCOLSSUPPORTED1 "̱ع݂̎sɕKvĺقgݍ܂Ă܂B" +resNOPROTOCOLSSUPPORTED2 "ı߂𐳏Ɏsɂ́A܂ȉȯܰ ĺ ݽgݍޕKv܂: " +resSELECTEDPROTONOTSUPPORTED "̱ع݂́Aĺ '|2' gݍ܂܂ŁAӰ ߰ '|1' ɱł܂B" + +resOVERWRITEFORM "ްޮ݂̋" +resOVERWRITEINFO "߰悤ƂĂ̧قV̧قтɑ݂܂B̧݂ق̂܂܎gp邱Ƃ߂܂B" +resOVERWRITEFILE "̧ٖ: '|1'" +resOVERWRITEDESC "ڍ: '|1'" +resOVERWRITEVER "ްޮ: '|1'" +resOVERWRITEKEEP "̧݂قێ܂?" +resOVERNOTOALL "ׂĖ(&A)" +resOVERYES "͂(&Y)" +resOVERNO "(&N)" + +END diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP1.RES new file mode 100644 index 0000000..0fa7dad Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/JPN/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP.EXE b/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP.EXE new file mode 100644 index 0000000..357de3e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP1.RC b/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP1.RC new file mode 100644 index 0000000..52e1617 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP1.RC @@ -0,0 +1,207 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//ƮƮ α׷ +// +#include "commonrc.rc" + +// +// Setup1 Ʈ ۲ . Ϸ +// Form_Load ڵ忡 ִ ۲ Ӽ մϴ. +// +resFONTNAME "" +resFONTSIZE "9" +resFONTBOLD "False" // Don't translate this +resFONTNAMEBACKUP1 "Arial" // Don't translate this +resFONTNAMEBACKUP2 "System" // Don't translate this + +// +// +// +resSETMSG "ġ ޽" + +// +//frmBegin +// +resSPECDEST " ߸ |1 Ʈ ͸ ġմϴ." +resSPECNODEST " ߸ |1 Ʈ ǻͿ ġմϴ." + +// +//frmWelcome +// +resWELCOME "|1 ġ α׷ ϰ ǽ ȯմϴ!" + +// +//frmPath +// +resSRCPROMPT "|1 ִ ̺곪 θ ԷϽʽÿ." +resDESTPROMPT " ͸ Էϰų մϴ." +resDESTDIR " ͸:" +resCREATE " ʴ ͸Դϴ. ðڽϱ?" +resCHANGEDIR ͸ " +resINSTFROM "ġ " + +// +//Setup1.Bas +// +resCALCSPACE "ʿ ũ ϴ ߻Ͽϴ." +resDRVREAD "̺긦 ϴ. " +resDRVCHK "̺ Ǵ ũ ˵Ǿ ȮϽʽÿ." +resCANTOPEN " :" +resCANTREAD " :" +resCANTWRITE " :" +resCHKSPACE " ̺꿡 ũ ִ ȮϽʽÿ." +resMAKEDIR " 丮:" +resASKEXIT "ðڽϱ?" +resINTERRUPTED " Ʈ ġϱ |1 ġ ߴϿϴ." +resCANRUN "߿ |1 ġ ϰ Ͽ ġ Ϸ ֽϴ." +resINCOMPLETE " ġ Ϸ ʾҽϴ." +resQUITNOW " α׷ ùٸ ġ ʽϴ." +resQUITSETUP " α׷ ġ ðڽϱ?" +resSUCCESS "|1 ġ ϷǾϴ." +resERROR "|1 ġ Ϸ ʾҽϴ." +resALLOCUNIT "̺ Ҵ " +resSAMEASSRC "() ġ ͸ ֽϴ. ٸ ͸ ԷϽʽÿ." +resNOCREATE " :" +resNOTPROTECT " ̺꿡 Ǿ ȮϽʽÿ." +resINSERT "̺꿡 ũ:" +resDISK "'ũ " +resINTO "' ̺ " +resSECTNAME ": " +resINVLINE "ġ Ͽ ߸ ֽϴ!" +resDIRSPECIFIED " ͸:" +resDIRINVALID " ʰų ҿϰų, Ǿ ֽϴ. 'C:\\APPS' ̺ ڸ Ͽ θ ԷϽʽÿ." +resNOTEXIST "ش ͸ ϴ!" +resDIRINVNAME "߸ ͸ ̸" +resWRITEPROT " Ǿ ֽϴ." +resINUSE " ϰ ֽϴ. ٸ α׷ ִ ȮϽʽÿ." +resOUTOFSPACE " ̺ մϴ." +resACCESSVIOLATION " ϴ ׼ Ͽϴ." +resSHARINGVIOLATION " ϴ Ͽϴ." +resOUTOFMEMORY " ϴ ޸𸮰 մϴ." +resCANNOTCREATE "ӽ ϴ." +resCANNOTDELETE " ϴ." +resCANNOTRENAME "ӽ ̸ ٲ ϴ." +resCANNOTREADSRC " ϴ." +resCANNOTREADDST " Ӽ ϴ." +resBUFFTOOSMALL " Դϴ." +resNOINSTALL " ġ ϴ." +resCHKCONNECT "̺ ȮϽʽÿ." +resWARNIGNORE " ϸ ʽϴ. α׷ ۵ ֽϴ. ׷ Ͻðڽϱ?" +resTEMPDRIVE "'TMP' Ǵ 'TEMP' ȯ ̺갡 غ ʾҽϴ." +resERR_VSHARE "'device=vshare.386' SYSTEM.INI [386Enh] ߰Ͽ Ʈ ۵ϵ ؾ մϴ." +resCANTREADUNC "'|1' Ʈũ θ ϴ." +resCHECKUNC "ΰ Ȯ Ǵ θ ׼ ִ ִ ȮϽʽÿ." +resCANTFINDAPPREMOVALLOG " α׷ α '|1'() ϴ. ϴ." +resBADCOMMANDLINE "߸ Ű Դϴ. ϴ." +resCANTFINDAPPREMOVALEXE " α׷ '|1'() ϴ. ϴ." +resAPPREMOVALICONNAME "|1 " +resCANTREGISTERAPPREMOVER "Windows ִ α׷ Դϴ." +resCANTCREATEAPPREMOVALICON " α׷ ƿƼ [α׷ ] ۼ Դϴ." +resOVERWRITEPRIVATE "ġ α׷ () ٲߴϴ. ̷ α׷ ͸ ֽϴ." +resOVERWRITEPRIVATE2 " ġ ä ġϸ ġ ջŰų ߿ ߻ų ֽϴ." +resCANCELSETUP "ġ Ͻðڽϱ?" +resCHOOSENEWDEST "ٽ ġϿ α׷ ġ Ͻʽÿ." +resVERIFYCONTINUE "Ͻðڽϱ?" +resERR_REG "Windows ͺ̽ ƮϷ ߿ ߻Ͽϴ." +resMICROSOFTSHARED "Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP "'|1' α׷ ׷ ۼ ߻Ͽϴ." +resCANTCREATEPROGRAMICON "'|1' α׷ ۼ ߻Ͽϴ." +resCANTCOPYLOG " α׷ 丮 '|1' ߻Ͽϴ." +resCANTFINDREGFILE "'|1' ϴ." +resCANTRUNPROGRAM "Windows '|1' α׷ ϴ. ý ޸𸮰 ϰų α׷ ֽϴ." +resREMOTELINENOTFOUND ": '|1' 'SETUP.LST' ϴ. SETUP.LST '|2' Ű ־ մϴ." +resPROGRAMMANAGER "α׷ " +resUNEXPECTEDRPCREGDAT "ġ '|1' ۼ :" +resCANTCOPYPATHTOOLONG " θ ʹ ϴ." +resCANTCREATEICONPATHTOOLONG " θ ʹ [ġ ] ϴ." +resICONMISSING "|1 SETUP. LST Ͽ ʾҽϴ. ʰ Ͻðڽϱ? ġ Ϸ [] , Ϸ [ƴϿ] ϴ." + +// +//Setup1.Frm +// +resBADDEFDIR "ġ α׷ ùٸ ⺻ 丮 ϴ. 丮 ؾ մϴ." +resDISKSPACE "ġ α׷ ִ ũ Ȯϰ ֽϴ..." +resPROGMAN "ġ α׷ α׷ ֽϴ..." +resUPDATING "ġ α׷ ý ġ ֽϴ..." +resNOEXE " α׷ ̸ Ǻ ϴ." +resSETUP "|1 ġ" +resNOSETUPLST "SETUP.LST ջǾų ã ϴ." +resUNEXPECTED "ġ ġ ߻Ͽϴ!" +resNOFOLDERFORICON " ġ : |1 ϴµ, 뵵 α׷ ׷ ϴ." +resSTILLWITHINACTION "ġ : 'CommitAction()' Ǵ 'AbortAction()' ϴ." +resREMAUTGROUPNAME " ڵȭ " +resAUTMGR32ICON "ڵȭ " +resRACMGR32ICON " ڵȭ " +resNT4WithoutSP2 ": Windows NT 4.0 Service Pack 2 ġϴ ϴ. α׷ α׷ ۵ ֽϴ." +resINSTALLADO " ׼ Ҹ ġϰ ֽϴ..." +resREBOOT "ý ƮϷ ý Ͽ մϴ.\n\n ý ٽ Ͻðڽϱ?" +resREBOOTNO "ý ٽ α׷ ۵ ֽϴ." +// +//Common.Bas +// +resDISKSPCERR "̺꿡 ִ ũ " + +// +///Ʈ ڿ +// +//resBTNINSTALL "ġ(&I)" +resFRMDIRECTORY "ġ(&I)" +resBTNCHGDIR "͸ ٲٱ(&C)" +resBTNEXIT "ġ (&X)" +resLBLBEGIN "Ʒ ߸ ġ մϴ." +resBTNCANCEL "" +resLBLDESTFILE " : " +resBTNINSTALLNOW " ġ(&I)" +resBTNCHGDRV "̺ ٲٱ(&C)" +resLBLDRIVE "̺" +resLBLAVAIL " " +resLBLNEEDED "ʿ " +resLBLREQUIRED "ּ ʿ " +resLBLNOSPACE "ϳ ̻ ̺꿡 ִ ũ մϴ." +resBTNOK "Ȯ" +resLBLDRIVES "̺(&V): " +resLBLDIRS "丮(&D):" +resLBLPATH "(&P): " +resLBLRUNNING "ϰ ġ α׷ ý ġϰų ĥ ϴ. ϱ α׷ ݵ մϴ." +resBTNTOOLTIPBEGIN "⸦ ġ մϴ." +// +// Group.Frm +// +resGROUPFRM "|1 - α׷ ׷ " +resGROUPLBLMAIN "[α׷ ׷] ȭ ڿ Ÿ ׷쿡 ׸ ߰մϴ. ׷ ̸ Էϰų ׷ Ͽ ϳ ֽϴ." +resGROUPLBLGROUP "α׷ ׷(&P):" +resGROUPLBLGROUPS " ׷(&X):" +resGROUPBTNCONTINUE "(&C)" +resGROUPINVALIDGROUPNAME "α׷ ׷ ̸ |1 ̾ ϸ, |2() ڸ ϴ." +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "Ʈũ ּ(&A)" +resNETWORKPROTOCOL "Ʈũ (&P)" +resOK "(&C)" +resCANCEL "ġ (&X)" +resREMOTESERVERDETAILSTITLE " ActiveX ȯ " +resREMOTESERVERDETAILSLBL " ҿ ʿ ȯ äʽÿ." +resNOTEPROTOSEQNOTSUPPORTED "|1(|2) ʰų ǻͿ ϴ." +resNOTEPROTOSEQINVALID "'|1'('|2') ߸Ǿϴ." +resPROTOSEQUNEXPECTEDERR "ǻͿ ִ ϴ ġ ߻Ͽϴ." +resNOPROTOCOLSINSETUPLST "ġ : SETUP.LST Ͽ ߻Ͽϴ." +resNOPROTOCOLSSUPPORTED1 " α׷ ʿ ϴ ǻͿ ų ġǾ ʽϴ." +resNOPROTOCOLSSUPPORTED2 "ġ α׷ Ϸ Ʈũ ϳ ġؾ մϴ." +resSELECTEDPROTONOTSUPPORTED " α׷ '|2' ġؾ '|1' Ҹ ׼ ֽϴ." + +resOVERWRITEFORM " ʽϴ." +resOVERWRITEINFO "Ϸ ý Ϻ Դϴ. ϴ ϴ." +resOVERWRITEFILE " ̸: '|1'" +resOVERWRITEDESC ": '|1'" +resOVERWRITEVER ": '|1'" +resOVERWRITEKEEP " Ͻðڽϱ?" +resOVERNOTOALL " ƴϿ(&A)" +resOVERYES "(&Y)" +resOVERNO "ƴϿ(&N)" +END diff --git a/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP1.RES b/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP1.RES new file mode 100644 index 0000000..b993d6c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PDWIZARD/KOR/SETUP1.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/PSPY/MEMMON.VXD b/cadVb/COMMON/TOOLS/VB/PSPY/MEMMON.VXD new file mode 100644 index 0000000..b52833f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PSPY/MEMMON.VXD differ diff --git a/cadVb/COMMON/TOOLS/VB/PSPY/PERFINFO.DLL b/cadVb/COMMON/TOOLS/VB/PSPY/PERFINFO.DLL new file mode 100644 index 0000000..7369779 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PSPY/PERFINFO.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/PSPY/PSPY.EXE b/cadVb/COMMON/TOOLS/VB/PSPY/PSPY.EXE new file mode 100644 index 0000000..7c4c3bb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PSPY/PSPY.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PSPY/README.TXT b/cadVb/COMMON/TOOLS/VB/PSPY/README.TXT new file mode 100644 index 0000000..8dee62b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PSPY/README.TXT @@ -0,0 +1,146 @@ +This document contains the installation instructions for +the Process Viewer - PSpy.EXE. + +Table of Contents: + I. Installation for users of Windows NT 3.51/4 + II. Installation for users of Windows 95 +III. Running PSpy + IV. What PSPY is + V. What PSPY is Not + VI. Working Sets + + +I. Installation for users of Windows NT 3.51/4: +--------------------------------------------- +1. PSpy requires that Visual Basic is installed. +2. PSpy will now run from the CD. + +3. If you want to install PSpy to your machine, copy the +following files to your \System32 directory: + PERFINFO.DLL + WORKSET.DLL +4. Copy PSPY.EXE to your hard drive, and create a Program +Manager icon for it. + +II. Installation for users of Windows 95: +----------------------------------------- +1. PSpy requires that Visual Basic is installed. +2. Copy the following file to your \System directory: + MEMMON.VXD +3. Copy the following file to the \System\VMM32 directory: + VMM.VXD +4. Add the following line to the [386Enh] section of your +SYSTEM.INI file: + Device=memmon.vxd +5. Restart Windows 95. +6. PSpy will now run from the CD. + +7. If you want to install PSpy to your machine, copy the +following files to your \System32 directory: + PERFINFO.DLL + WORKSET.DLL +8. Copy PSPY.EXE to your hard drive, and create a Program +Manager icon for it. + +III. Running PSpy: +------------------ +1. To spy on a process, choose the 'Examine' option from +the Process menu. +2. Click and drag the magnifying glass on the Process you +wish to view information. +3. Click OK. +4. Click on a file name on the left half of the window to show +details for that file. +5. Click the "Flush" button to flush the active working set +for the program you are spying on (see below). +6. Click the "Refresh" button to refresh the working set +display for the program. +7. Right clicking on either pane will bring up a context +menu. From here you can change the view and copy the +display to the clipboard. + +IV. What PSPY is: +----------------- +1. A tool to help you locate where DLLs in memory are +loaded from - much like WPS.EXE in Windows 3.1. +2. A tool to identify the versions of all DLL's that +your program is using. +3. A tool to provide information on the Working Set of a +process. See below for a description of what the Working +Set for a process is. + +V. What PSPY is Not: +-------------------- +1. PSpy is not supported by PSS, though they may have you +use it to help debug a problem. +2. PSpy does not trap window messages like the Spy and +Spy++ utilities shipped in Microsoft Visual C++. + +VI. Working Sets: +----------------- +32 bit operating systems like Windows 95 and Windows NT +support memory paging. This means that blocks of memory +that haven't been used for a while can be "paged" to a +temporary file on disk, which frees up memory for other +programs to use. This mechanism allows you to run more +programs than you would otherwise have memory for, and +makes the operating system run smoother because it doesn't +need to keep so much information in physical RAM. This +memory paging happens automatically; programs are oblivious +to any paging activity. + +The "Working Set" of a program is the amount of +physical RAM that the operating system is currently giving +your program. As a simple example, let's say you have +a program that creates a byte array that contains 5 million +elements but you only access the first ten. If other programs +need more memory, the operating system will page out all but +the ten elements that you are using. Your program doesn't +know the difference and doesn't pay any speed penalty. If, +however, you later try to access element 1 million, there +will be a slight delay while the operating system fetches +the memory block that contains element 1 million from disk. + +A programs data is not the only component of the working +set. The actual program code is another component. PSpy +can break out the program code from the data and show which +modules are using how much memory. It can also "Flush" the +working set. This is a special command to the operating +system that says, "make this program take NO physical RAM". +As long as the program is idle, it won't take any memory. +As soon as the program needs to execute code, however, the +OS will page memory back in. Flushing is a good way to find +out how much memory a particular operation takes. For example, +to find out how much memory is taken by loading a file in +an application, you would perform the following steps in PSpy: + + 1. Start PSpy and the application you want to check. + Begin spying on the app. + + 2. Click the flush button of PSpy to flush the app's + working set. + + 3. Open a file with the application. + + 4. Click the refresh button on PSpy. This will refresh + the working set numbers for the application. + +The working set numbers that are now displayed on PSpy reflect +the amount of RAM required by your program to load the file. + +Advanced topic: Working Set on Windows 95 vs Windows NT + +Windows 95 treats shared DLL's differently than Windows NT. Under +Windows NT, the working set for a shared DLL accurately reflects +the working set of the DLL for the process being monitored. Windows +95, however, uses a shared address space for shared DLL's. Working +set numbers for shared DLL's under Windows 95 reflect the combined +working set for all processes that use the DLL. This causes working +set numbers under Windows 95 to appear higher than on Windows NT. +For example, a minimal application will show a subtantial working +set contribution from kernel32 because this DLL is also in use by +the system. + +If you are curious about the working set or how paging works, see +"Examples of Memory Activity and Paging" in the Windows NT Resource +Kit under the section, "Optimizing Windows NT". diff --git a/cadVb/COMMON/TOOLS/VB/PSPY/VMM.VXD b/cadVb/COMMON/TOOLS/VB/PSPY/VMM.VXD new file mode 100644 index 0000000..2d58f27 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PSPY/VMM.VXD differ diff --git a/cadVb/COMMON/TOOLS/VB/PSPY/WORKSET.DLL b/cadVb/COMMON/TOOLS/VB/PSPY/WORKSET.DLL new file mode 100644 index 0000000..6f12d49 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PSPY/WORKSET.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/PVIEW/PVIEW.EXE b/cadVb/COMMON/TOOLS/VB/PVIEW/PVIEW.EXE new file mode 100644 index 0000000..30cfc87 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PVIEW/PVIEW.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PVIEW/PVIEW95.EXE b/cadVb/COMMON/TOOLS/VB/PVIEW/PVIEW95.EXE new file mode 100644 index 0000000..af96463 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/PVIEW/PVIEW95.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/PVIEW/README.TXT b/cadVb/COMMON/TOOLS/VB/PVIEW/README.TXT new file mode 100644 index 0000000..44ee0ba --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/PVIEW/README.TXT @@ -0,0 +1,13 @@ +Process Viewer +-------------- + +This directory contains process viewers that allow you to view and terminate +processes on your system. PVIEW.EXE runs under Windows NT and PView95 runs +under Windows 95. Under Windows NT 4.0 the task manager has most of the same +capabilities as PVIEW.EXE. + +Installation +------------ + +Copy the appropriate version of PView to your hard drive or run it from the +CD. diff --git a/cadVb/COMMON/TOOLS/VB/REGUTILS/README.TXT b/cadVb/COMMON/TOOLS/VB/REGUTILS/README.TXT new file mode 100644 index 0000000..014d7fa --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/REGUTILS/README.TXT @@ -0,0 +1,37 @@ +Registration Utilities +---------------------- + +This directory contains three tools for registering in process ole servers. +In process servers are OLE DLLs or OLE controls. + +REGSVR32.EXE +------------ + +RegServer is a windows program that allows you to register and un-register in +process servers. REGSRVR32.EXE will display dialogs indicating if it was +successful unless you use the silent option /s. To register a server use the +following format: REGSVR32.EXE MyServer.dll To un-register a server use the /u +option in the following format: REGSVR32.EXE /u MyServer.dll. + +REGOCX32.EXE +------------ + +RegOCX is a windows program specifically designed for use by setup programs +when installing OCXes. REGOCX32.EXE does not display dialogs. To register an +OCX you use the following format: REGOCX32.EXE MyCtrl.ocx + +REGIT.EXE +--------- + +RegIt is a command line utility that you can use to register one or more in +process servers. Regit accepts wildcards. For instance you can use +REGIT.EXE *.OCX to register all of the OCX files in a directory. + +Installation +------------ + +To install these utilities copy the files to a directory on you hard drive. +You may want to put these utilities to a directory in your PATH if you use +them often enough. It is also useful to associate the .DLL and .OCX file +extensions with REGSVR32.EXE so that you can double click on DLLs and OCXes +to register them. diff --git a/cadVb/COMMON/TOOLS/VB/REGUTILS/REGIT.EXE b/cadVb/COMMON/TOOLS/VB/REGUTILS/REGIT.EXE new file mode 100644 index 0000000..12c857a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/REGUTILS/REGIT.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/REGUTILS/REGOCX32.EXE b/cadVb/COMMON/TOOLS/VB/REGUTILS/REGOCX32.EXE new file mode 100644 index 0000000..b803f5d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/REGUTILS/REGOCX32.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/REGUTILS/REGSVR32.EXE b/cadVb/COMMON/TOOLS/VB/REGUTILS/REGSVR32.EXE new file mode 100644 index 0000000..1c2fc42 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/REGUTILS/REGSVR32.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/RESOURCE/RC.EXE b/cadVb/COMMON/TOOLS/VB/RESOURCE/RC.EXE new file mode 100644 index 0000000..0f22a01 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/RESOURCE/RC.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/RESOURCE/RC.HLP b/cadVb/COMMON/TOOLS/VB/RESOURCE/RC.HLP new file mode 100644 index 0000000..7386e72 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/RESOURCE/RC.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/RESOURCE/RCDLL.DLL b/cadVb/COMMON/TOOLS/VB/RESOURCE/RCDLL.DLL new file mode 100644 index 0000000..8dcecee Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/RESOURCE/RCDLL.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/RESOURCE/RCXDTI.DLL b/cadVb/COMMON/TOOLS/VB/RESOURCE/RCXDTI.DLL new file mode 100644 index 0000000..33e21ba Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/RESOURCE/RCXDTI.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/RESOURCE/README.TXT b/cadVb/COMMON/TOOLS/VB/RESOURCE/README.TXT new file mode 100644 index 0000000..48db54d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/RESOURCE/README.TXT @@ -0,0 +1,13 @@ +Resource Compiler +----------------- + +This directory contains the Resource Compiler RC.EXE. The Resource Compiler can +be used to create .RES files containing resources such as strings and bitmaps. +RES files may be added to a Visual Basic project and accessed through Visual +Basic methods such as LoadResData, LoadResString, and LoadResPicture. For more +information on how to use the Resource Compiler see RESOURCE.TXT and RC.HLP. + +Installation +------------ + +Copy all the files in the Resource directory to a directory on your hard drive. diff --git a/cadVb/COMMON/TOOLS/VB/RESOURCE/RESOURCE.TXT b/cadVb/COMMON/TOOLS/VB/RESOURCE/RESOURCE.TXT new file mode 100644 index 0000000..468beb1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/RESOURCE/RESOURCE.TXT @@ -0,0 +1,244 @@ +***************************************************************************** +INTRODUCTION +***************************************************************************** + +This text file explains how to use the Resource Compiler (RC.EXE) to create +resource files (.RES) that can be added to your Microsoft (R) +Visual Basic (R) project. + +For information on how to add the .RES file to your Visual Basic project and +replace string literals and binary data in code, please search Visual Basic +Help and Books On-Line. + +***************************************************************************** +CONTENTS OF RESOURCE.TXT +***************************************************************************** + +1. OVERVIEW +2. STRING RESOURCES +3. BINARY RESOURCES +4. RESOURCE COMPILER OPTIONS + +***************************************************************************** +1. OVERVIEW +***************************************************************************** + +The RC.EXE file located in the \TOOLS\RESOURCE directory can be +used for 32-bit resources used in applications under Windows 95 or later and +Windows NT 3.51 or later. + +The resource sample project (ATM.VBP) in the \SAMPLES\RESOURCE directory of +your Visual Basic installation demonstrates most of the functionality +described in this file. The ATM.RC file is the resource definition file used +to create the .RES file for the ATM project. You won't be able to recompile +the ATM.RC without removing the references to bitmaps, sound files and +cursors not shipped in Visual Basic version 4.0 + +The Resource Compiler compiles the resource definition file and the resource +files (binary files such as icon, bitmap, and cursor files) into a binary +resource (.RES) file. + +Resources can be divided into two groups: + +- String resources (text strings such as "Hello World"). +- Binary resources (icons, bitmaps, cursors, sounds, video, and so forth). + +***************************************************************************** +2. STRING RESOURCES +***************************************************************************** + +String resources are stored in a string table in the resource definition +file. + +SYNTAX: + +STRINGTABLE [load-option] [mem-option] +BEGIN + stringID string + . + . + . +END + +The STRINGTABLE statement defines one or more string resources for an +application. String resources are simply null-terminated ASCII strings that +can be loaded when needed from the executable file, using the LoadResString +function. + +PARAMETERS + +- load-option. Specifies when the resource is to be loaded. This optional +parameter must be one of the following options: + +Option Description +------ ----------- +PRELOAD Resource is loaded immediately. +LOADONCALL (Default) Resource is loaded when called. + +- mem-option. Specifies whether the resource is fixed or can be moved +and whether or not can be discarded. This optional parameter can +be one of the following options: + +Option Description +------ ----------- +FIXED Resource remains at a fixed memory location. +MOVEABLE Resource can be moved if necessary in order to compact + memory. +DISCARDABLE Resource can be discarded if no longer needed. + + +- stringID. Specifies an integer value that identifies the resource. + +- string. Specifies one or more ASCII strings, enclosed in double quotation +marks. The string must be no longer than 255 characters and must occupy a +single line in the source file. + +Grouping strings in separate segments allows all related strings to be read +once in a single reading and discarded together. When possible, you should +be able to move and discard the table. The Resource Compiler allocates +16 strings per segment and uses the identifier value to determine which +segment will contain the string. Strings with the same upper-12 bits in +their identifiers are placed in the same segment. + +EXAMPLE + +The following example demonstrates the STRINGTABLE statement: + +#define IDS_HELLO 1 +#define IDS_GOODBYE 2 + +STRINGTABLE +BEGIN + IDS_HELLO, "Hello" + IDS_GOODBYE, "Goodbye" +END + +***************************************************************************** +3. BINARY RESOURCES +***************************************************************************** + +Binary resources are not stored in the resource definition file. The +resource definition file includes only a pointer to the files containing +the binary resources, for example, icon (.ICO), bitmap (.BMP), cursor (.CUR), +sound (.WAV), and video (.AVI) files. + +This pointer is called a Single-Line Statement in the resource definition +file. + +SYNTAX + +nameID keyword [load-option] [mem-option] filename + +PARAMETERES + +- nameID. Specifies either a name or an integer value identifying the +resource. This ID has to be unique for every category specified by the +keyword. In the category ICON the ID 0 is reserved for the Visual Basic +icon. Therefore you'll have to start ID for ICONS at 1. + +- keyword. Specifies the type of file. The parameter must be one of the +following options: + +Option Description +------ ----------- +BITMAP Defines a bitmap (.BMP) +CURSOR Defines a cursor (.CUR) +ICON Defines an icon (.ICO) +SOUND Defines a wave file (.WAV) +VIDEO Defines a video file (.AVI) + + +- load-option. Specifies when the resource is to be loaded. The parameter +must be one of the following options: + +Option Description +------ ----------- +PRELOAD Resource is loaded immediately. +LOADONCALL (Default) Resource is loaded when called. + +- mem-option. Specifies whether the resource is fixed or can be moved and +whether it can be discarded. The parameter must be one of the following +options: + +Option Description +------ ----------- +FIXED Resource remains at a fixed memory location. +MOVEABLE Resource can be moved if necessary in order to compact + memory. +DISCARDABLE Resource can be discarded if no longer needed. + +The default for binary resources is MOVEABLE. + +- filename. Specifies the name of the file that contains the resource. +The name must be a valid MS-DOS (R) filename; it must be a full path +if the file is not in the current working directory. The path can +be either a quoted or non-quoted string. + +EXAMPLE + +The following example specifies two bitmap resources: + +disk1 BITMAP disk.bmp +12 BITMAP PRELOAD diskette.bmp + +To load binary resources in your Visual Basic code use the LoadResBitmap +function for icons, bitmaps and cursor. Use the LoadResData function to +load wave files and AVI files. + +For the creation of binary resource files, Microsoft provides the +following tools to make it easier to store sounds and graphics in a +format that is usable in the Resource Compiler: + +- Imagedit is an image editor that supports icons (.ICO), bitmaps (.BMP) +and cursors (.CUR). You can find this tool in the \TOOLS\IMAGEDIT +directory on your Visual Basic CD-ROM. + +- Microsoft Sound System is a multimedia application that supports +wave files (.WAV). + +- Microsoft Video is a multimedia application that supports video +files (.AVI). + +***************************************************************************** +4. RESOURCE COMPILER OPTIONS +***************************************************************************** + +To start the Resource Compiler, use the rc command. What you need to +specify in the command line depends on whether you are compiling resources, +adding compiled resources to an executable file, or doing both. + +However, to use the resources in your Visual Basic application, you +will only need to compile the resources into a .RES file and add it to +your Visual Basic project. + +SYNTAX + +rc /r [options] definition-file + + +PARAMETERS + +- /r This parameter specifies that the .RC file will only be + compiled, not linked to any executable. + +- options. You can use the following options with the rc command: + +Option Description +------ ----------- +/? Displays a list of rc command-line options. +/fo newname Uses newname for the name of the .RES file. + +- definition-file. The definition-file parameter specifies the name of +the resource definition file (.RC) that contains the names, types, +filenames, and descriptions of the resources to be compiled. + + +EXAMPLE + +RC /r /fo TEST32.RES TEST.RC + + +NOTE + +You'll have to close your Visual Basic project or remove the .RES file from your +project when you recreate the resource file. \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/SCRIPT/DISPEX.DLL b/cadVb/COMMON/TOOLS/VB/SCRIPT/DISPEX.DLL new file mode 100644 index 0000000..8a571d3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SCRIPT/DISPEX.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/SCRIPT/JSCRIPT.DLL b/cadVb/COMMON/TOOLS/VB/SCRIPT/JSCRIPT.DLL new file mode 100644 index 0000000..1498005 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SCRIPT/JSCRIPT.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.CNT b/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.CNT new file mode 100644 index 0000000..c3f7e53 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.CNT @@ -0,0 +1,59 @@ +:Base MSScript.hlp>Langref +:Title Microsoft Script Control +1 Conceptual Information +2 Using the Microsoft Script Control=scconUsingMicrosoftScriptControl +2 Adding Run-time Functionality to the Script Control=scconAddingRuntimeFunctionalityToScriptControl +3 Creating a Simple Script Project=scconCreatingSimpleScriptProject +2 Using the Modules Collection=scconUsingModulesCollection +1 Constants +2 ScriptControl Constants=sccstScriptControl +1 Error Messages +2 Can't execute, script is running=scmsgCantExecute +2 Can't set UseSafeSubset property=scmsgCantSetSafeSubsett +2 Executing script has timed out=scmsgScriptTimedOut +2 Language property not set=scmsgLanguagePropertyNotSet +2 Member is not supported by the selected script engine=scmsgMemberNotSupported +2 Object is no longer valid=scmsgObjectIsNoLongerValid +1 Events +2 Error Event=scevtError +2 Timeout Event=scevtTimeout +1 Methods +2 Add Method=scmthAdd +2 AddCode Method=scmthAddCode +2 AddObject Method=scmthAddObject +2 Clear Method=scmthClear +2 Eval Method=scmthEval +2 ExecuteStatement Method=scmthExecuteStatement +2 Item Method=scmthItem +2 Reset Method=scmthReset +2 Run Method=scmthRun +1 Objects +2 Error Object=scobjError +2 Module Object=scobjModule +2 Modules Collection=sccolModules +2 Procedure Object=scobjProcedure +2 Procedures Collection=sccolProcedures +2 ScriptControl Object=scobjScriptControl +1 Properties +2 AllowUI Property=scproAllowUI +2 CodeObject Property=scproCodeObject +2 Column Property=scproColumn +2 Count Property=scproCount +2 Description Property=scproDescription +2 Error Property=scproError +2 HasReturnValue Property=scproHasReturnValue +2 HelpContext Property=scproHelpContext +2 HelpFile Property=scproHelpFile +2 Language Property=scproLanguage +2 Line Property=scproLine +2 Modules Property=scproModules +2 Name Property=scproName +2 NumArgs Property=scproNumArgs +2 Number Property=scproNumber +2 Procedures Property=scproProcedures +2 SitehWnd Property=scproSitehWnd +2 Source Property=scproSource +2 State Property=scproState +2 Text Property=scproText +2 Timeout Property=scproTimeout +2 UseSafeSubset Property=scproUseSafeSubset diff --git a/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.HLP b/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.HLP new file mode 100644 index 0000000..0d1e516 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.OCX b/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.OCX new file mode 100644 index 0000000..f6f3e69 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SCRIPT/MSSCRIPT.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/SCRIPT/README.TXT b/cadVb/COMMON/TOOLS/VB/SCRIPT/README.TXT new file mode 100644 index 0000000..9592eb2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/SCRIPT/README.TXT @@ -0,0 +1,32 @@ + +Microsoft Script Control + +To Install: +=========== + +1) Copy all Microsoft Script Control files into your system directory + For Windows95 this is typically C:\Windows\System + For WindowsNT this is typically C:\WinNT\System32 + + Example: + copy msscr*.* C:\Windows\System + + +2) Register the control using RegSvr32 + + Example: + cd /d C:\Windows\System + regsvr32 msscript.ocx + +File List: +========== + +msscript.ocx + Microsoft Script Control + +msscript.hlp +msscript.cnt + Microsoft Script Control Help Files + +msscrXXX.dll + International Resources diff --git a/cadVb/COMMON/TOOLS/VB/SCRIPT/VBSCRIPT.DLL b/cadVb/COMMON/TOOLS/VB/SCRIPT/VBSCRIPT.DLL new file mode 100644 index 0000000..d52524e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SCRIPT/VBSCRIPT.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/SPY/README.TXT b/cadVb/COMMON/TOOLS/VB/SPY/README.TXT new file mode 100644 index 0000000..2f93bf4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/SPY/README.TXT @@ -0,0 +1,21 @@ +\Tools\Spy + +Spy++ (SPYXX.EXE) is a Win32-based utility that gives you a graphical +view of the system's processes, threads, windows, and window messages. +With Spy++, you can: + +- Display a graphical tree of relationships among system objects, + including processes, threads, and windows. +- Search for specified windows, threads, processes, or messages. +- View the properties of selected windows, threads, processes, or + messages. +- Select a window, thread, process, or message directly from the view. +- Use the Finder Tool to select a window by mouse positioning. +- Set message options using complex message log selection parameters. + +Please refer to spyxx.help for more information! + +NOTE: SPYXX.EXE requires MFC 4.2, which can be found in the +\Tools\MFC42 directory. Copy the files from \Tools\MFC42 to your +\Windows\System directory, and then run SPYXX.EXE. + diff --git a/cadVb/COMMON/TOOLS/VB/SPY/SPYHK50.DLL b/cadVb/COMMON/TOOLS/VB/SPY/SPYHK50.DLL new file mode 100644 index 0000000..f229849 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SPY/SPYHK50.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.CNT b/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.CNT new file mode 100644 index 0000000..c023cae --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.CNT @@ -0,0 +1,83 @@ +:Base Spyhelp.hlp>Main +:Title Microsoft Spy++ Help +1 How To Use Spy++ +2 Using Spy++=_ASUG_Using_Spy.2b2b +1 Working in Spy++ +2 Working in Spy++=_ASUG_Working_In_Spy.2b2b +3 Starting Spy++=_ASUG_Starting_Spy.2b2b +3 Viewing with Spy++=_ASUG_Viewing_with_Spy2b2b +3 Using the Spy++Toolbar=_ASUG_The_Spy_2b2b_Toolbar +3 Refreshing the View=_ASUG_Refreshing_the_View +3 Changing Fonts=_ASUG_Changing_Fonts +3 Expanding the Spy++ Trees=_ASUG_Expanding_and_Collapsing_Spy.2b2b_.Trees +1 How to Use Spy++ Views +2 The Windows Views +3 The Windows Views=_ASUG_The_Windows_View +4 Using the Window Finder Tool=_ASUG_The_Window_Finder_Tool +4 Searching for a Window=_ASUG_Searching_for_a_Window +4 Opening Window Properties=_ASUG_Opening_Window_Properties +4 Window Properties=_ASUG_Window_Properties +2 The Processes View +3 The Processes View=_ASUG_The_Processes_View +4 Searching for a Process=_ASUG_Searching_for_a_Process +4 Opening Process Properties=_ASUG_Opening_Process_Properties +4 Process Properties for Windows 95=_ASUG_Process_Properties_for_Windows_95 +4 Process Properties for Windows NT=_ASUG_Process_Properties_for_Windows_NT +2 The Threads View +3 The Threads View=_ASUG_The_Threads_VIew +4 Searching for a Thread=_ASUG_Searching_for_a_Thread +4 Opening Thread Properties=_ASUG_Opening_Thread_Properties +4 Thread Properties for Windows 95=_ASUG_Thread_Properties_for_Windows_95 +4 Thread Properties for Windows NT=_ASUG_Thread_Properties_for_Windows_NT +2 The Messages View +3 The Messages View=_ASUG_The_Messages_View +4 Message Codes=_Asug_message_codes +4 Controlling the Messages View=_ASUG_Controlling_the_Messages_View +4 Starting and Stopping the Message Log Display=_ASUG_Starting_and_Stopping_the_Message_Log_Display +4 Choosing Message Options=_ASUG_Choosing_Message_Options +4 Searching for a Message=_ASUG_Searching_for_a_Message +4 Opening Message Properties=_ASUG_Opening_Message_Properties +4 Message Properties=_ASUG_Message_Properties +1 Reference Information +2 Spy++ Menu Commands +3 Spy=_asug_Spy_Menu_Commands +3 Tree=_asug_tree_menu_commands +3 Search=_asug_search_menu_commands +3 View=_asug_view_menu_commands +3 Messages=_asug_message_menu_commands +3 Window=_asug_window_menu_commands +3 Help=_asug_help_menu_commands +2 Spy++ Dialog Boxes +3 Font=hidd_font +3 Find Window=HIDD_FINDWINDOW +3 Process Search=HIDD_SEARCH_FINDPROCESS +3 Thread Search=HIDD_SEARCH_FINDTHREAD +3 Message Search=HIDD_SEARCH_FINDMESSAGE +3 Window Search=HIDD_SEARCH_FINDWINDOW +3 Message Options and Properties +4 About Messages=HIDR_MSGTYPE +4 Windows=HIDD_FILTERSWINDOWTAB +4 Messages=HIDD_FILTERSMESSAGETAB +4 Output=HIDD_FILTERSOUTPUTTAB +4 Message Properties for Windows NT: General=HIDD_MESSAGEGENERALTAB +3 Process Properties +4 About Process Properties=HIDR_PRCTREETYPE +4 Process Properties for Windows 95: General=HIDD_PROCESSGENERALTAB +4 Process Properties for Windows NT: General=HIDD_PROCESSGENERALTAB_NT +4 Process Properties for Windows NT: Memory=HIDD_PROCESSMEMORYTAB +4 Process Properties for Windows NT: Page File=HIDD_PROCESSPAGEFILETAB +4 Process Properties for Windows NT: Space=HIDD_PROCESSSPACETAB +3 Thread Properties +4 About Thread Properties=HIDR_THDTREETYPE +4 Thread Properties for Windows 95: General=HIDD_THREADGENERALTAB +4 Thread Properties for Windows NT: General=HIDD_THREADGENERALTAB_NT +3 Window Properties +4 About Windows Properties=HIDR_WNDTREETYPE +4 Window Properties for Windows 95: General=HIDD_WINDOWGENERALTAB +4 Window Properties for Windows 95: Styles=HIDD_WINDOWSTYLESTAB +4 Window Properties for Windows 95: Windows=HIDD_WINDOWWINDOWSTAB +4 Window Properties for Windows 95: Class=HIDD_WINDOWCLASSTAB +4 Window Properties for Windows 95: Process=HIDD_WINDOWPROCESSTAB +3 Other Dialog Boxes +4 Microsoft Spy++=HIDR_MAINFRAME +4 About Microsoft Spy++=HIDD_ABOUT diff --git a/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.EXE b/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.EXE new file mode 100644 index 0000000..77937a9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.HLP b/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.HLP new file mode 100644 index 0000000..cd5bcca Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/SPY/SPYXX.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/ABOUT.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/ABOUT.FRM new file mode 100644 index 0000000..0d1a7ad --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/ABOUT.FRM @@ -0,0 +1,236 @@ +VERSION 5.00 +Begin VB.Form frmAbout + BorderStyle = 3 'Fixed Dialog + Caption = "About MyApp" + ClientHeight = 3555 + ClientLeft = 4215 + ClientTop = 1920 + ClientWidth = 5730 + ClipControls = 0 'False + Icon = "About.frx":0000 + LinkTopic = "Form2" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 2453.724 + ScaleMode = 0 'User + ScaleWidth = 5380.766 + ShowInTaskbar = 0 'False + StartUpPosition = 2 'CenterScreen + Begin VB.PictureBox picIcon + AutoSize = -1 'True + BackColor = &H00C0C0C0& + ClipControls = 0 'False + Height = 540 + Left = 240 + Picture = "About.frx":030A + ScaleHeight = 337.12 + ScaleMode = 0 'User + ScaleWidth = 337.12 + TabIndex = 1 + Top = 240 + Width = 540 + End + Begin VB.CommandButton cmdOK + Cancel = -1 'True + Caption = "OK" + Default = -1 'True + Height = 345 + Left = 4245 + TabIndex = 0 + Top = 2625 + Width = 1260 + End + Begin VB.CommandButton cmdSysInfo + Caption = "&System Info..." + Height = 345 + Left = 4260 + TabIndex = 2 + Top = 3075 + Width = 1245 + End + Begin VB.Line Line1 + BorderColor = &H00808080& + BorderStyle = 6 'Inside Solid + Index = 1 + X1 = 84.515 + X2 = 5309.398 + Y1 = 1687.583 + Y2 = 1687.583 + End + Begin VB.Label lblDescription + Caption = $"About.frx":0614 + ForeColor = &H00000000& + Height = 1170 + Left = 1050 + TabIndex = 3 + Top = 1125 + Width = 3885 + End + Begin VB.Label lblTitle + Caption = "Microsoft Visual Basic Calendar Control" + ForeColor = &H00000000& + Height = 480 + Left = 1050 + TabIndex = 5 + Top = 240 + Width = 3885 + End + Begin VB.Line Line1 + BorderColor = &H00FFFFFF& + BorderWidth = 2 + Index = 0 + X1 = 98.6 + X2 = 5309.398 + Y1 = 1697.936 + Y2 = 1697.936 + End + Begin VB.Label lblVersion + Caption = "Version" + Height = 225 + Left = 1050 + TabIndex = 6 + Top = 780 + Width = 3885 + End + Begin VB.Label lblDisclaimer + Caption = $"About.frx":06E1 + ForeColor = &H00000000& + Height = 825 + Left = 255 + TabIndex = 4 + Top = 2625 + Width = 3870 + End +End +Attribute VB_Name = "frmAbout" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +' Reg Key Security Options... +Const READ_CONTROL = &H20000 +Const KEY_QUERY_VALUE = &H1 +Const KEY_SET_VALUE = &H2 +Const KEY_CREATE_SUB_KEY = &H4 +Const KEY_ENUMERATE_SUB_KEYS = &H8 +Const KEY_NOTIFY = &H10 +Const KEY_CREATE_LINK = &H20 +Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL + +' Reg Key ROOT Types... +Const HKEY_LOCAL_MACHINE = &H80000002 +Const ERROR_SUCCESS = 0 +Const REG_SZ = 1 ' Unicode nul terminated string +Const REG_DWORD = 4 ' 32-bit number + +Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location" +Const gREGVALSYSINFOLOC = "MSINFO" +Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO" +Const gREGVALSYSINFO = "PATH" + +Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long +Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long +Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long + + +Private Sub cmdSysInfo_Click() + Call StartSysInfo +End Sub + +Private Sub cmdOK_Click() + Unload Me +End Sub + +Private Sub Form_Load() + Me.Caption = "About the VB Calendar Control" + lblVersion.Caption = "Version " & App.Major & "." & App.Minor & "." & App.Revision +End Sub + +Public Sub StartSysInfo() + On Error GoTo SysInfoErr + + Dim rc As Long + Dim SysInfoPath As String + + ' Try To Get System Info Program Path\Name From Registry... + If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then + ' Try To Get System Info Program Path Only From Registry... + ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then + ' Validate Existance Of Known 32 Bit File Version + If (Dir(SysInfoPath & "\MSINFO32.EXE") <> "") Then + SysInfoPath = SysInfoPath & "\MSINFO32.EXE" + + ' Error - File Can Not Be Found... + Else + GoTo SysInfoErr + End If + ' Error - Registry Entry Can Not Be Found... + Else + GoTo SysInfoErr + End If + + Call Shell(SysInfoPath, vbNormalFocus) + + Exit Sub +SysInfoErr: + MsgBox "System Information Is Unavailable At This Time", vbOKOnly +End Sub + +Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean + Dim i As Long ' Loop Counter + Dim rc As Long ' Return Code + Dim hKey As Long ' Handle To An Open Registry Key + Dim hDepth As Long ' + Dim KeyValType As Long ' Data Type Of A Registry Key + Dim tmpVal As String ' Tempory Storage For A Registry Key Value + Dim KeyValSize As Long ' Size Of Registry Key Variable + '------------------------------------------------------------ + ' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...} + '------------------------------------------------------------ + rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Error... + + tmpVal = String$(1024, 0) ' Allocate Variable Space + KeyValSize = 1024 ' Mark Variable Size + + '------------------------------------------------------------ + ' Retrieve Registry Key Value... + '------------------------------------------------------------ + rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ + KeyValType, tmpVal, KeyValSize) ' Get/Create Key Value + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Errors + + If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then ' Win95 Adds Null Terminated String... + tmpVal = Left(tmpVal, KeyValSize - 1) ' Null Found, Extract From String + Else ' WinNT Does NOT Null Terminate String... + tmpVal = Left(tmpVal, KeyValSize) ' Null Not Found, Extract String Only + End If + '------------------------------------------------------------ + ' Determine Key Value Type For Conversion... + '------------------------------------------------------------ + Select Case KeyValType ' Search Data Types... + Case REG_SZ ' String Registry Key Data Type + KeyVal = tmpVal ' Copy String Value + Case REG_DWORD ' Double Word Registry Key Data Type + For i = Len(tmpVal) To 1 Step -1 ' Convert Each Bit + KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1))) ' Build Value Char. By Char. + Next + KeyVal = Format$("&h" + KeyVal) ' Convert Double Word To String + End Select + + GetKeyValue = True ' Return Success + rc = RegCloseKey(hKey) ' Close Registry Key + Exit Function ' Exit + +GetKeyError: ' Cleanup After An Error Has Occured... + KeyVal = "" ' Set Return Val To Empty String + GetKeyValue = False ' Return Failure + rc = RegCloseKey(hKey) ' Close Registry Key +End Function diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/ABOUT.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/ABOUT.FRX new file mode 100644 index 0000000..fb06092 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/ABOUT.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/APPEAR.PAG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/APPEAR.PAG new file mode 100644 index 0000000..7b4ee2a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/APPEAR.PAG @@ -0,0 +1,355 @@ +VERSION 5.00 +Begin VB.PropertyPage ppAppearance + Caption = "Appearance" + ClientHeight = 3405 + ClientLeft = 0 + ClientTop = 0 + ClientWidth = 6375 + LockControls = -1 'True + PaletteMode = 0 'Halftone + ScaleHeight = 3405 + ScaleWidth = 6375 + Begin VB.Frame Frames + Caption = "Days of Week" + Height = 1695 + Index = 0 + Left = 120 + TabIndex = 4 + Top = 1560 + Width = 2355 + Begin VB.ComboBox cbxStartOfWeek + Height = 315 + Left = 120 + Style = 2 'Dropdown List + TabIndex = 8 + Top = 1260 + Width = 2115 + End + Begin VB.ComboBox cbxDayFormat + Height = 315 + ItemData = "Appear.pgx":0000 + Left = 120 + List = "Appear.pgx":000D + Style = 2 'Dropdown List + TabIndex = 6 + Top = 540 + Width = 2115 + End + Begin VB.Label Labels + AutoSize = -1 'True + Caption = "Start Of Week:" + Height = 195 + Index = 0 + Left = 120 + TabIndex = 7 + Top = 1020 + Width = 1065 + End + Begin VB.Label Labels + AutoSize = -1 'True + Caption = "Day Name Format:" + Height = 195 + Index = 1 + Left = 120 + TabIndex = 5 + Top = 300 + Width = 1320 + End + End + Begin VB.Frame Frames + Caption = "Preview" + Height = 3135 + Index = 2 + Left = 2640 + TabIndex = 9 + Top = 120 + Width = 3615 + Begin MSVBCalendar.Calendar calPreview + Height = 2775 + Left = 240 + TabIndex = 10 + Top = 240 + Width = 3255 + _ExtentX = 5741 + _ExtentY = 4895 + Day = 12 + Month = 9 + Year = 1996 + BeginProperty DayNameFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + BeginProperty DayFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Locked = -1 'True + End + End + Begin VB.Frame Frames + Caption = "Navigation" + Height = 1335 + Index = 1 + Left = 120 + TabIndex = 0 + Top = 120 + Width = 2355 + Begin VB.CheckBox chkShowIterration + Caption = "Show Iterration Buttons" + Height = 195 + Left = 180 + TabIndex = 3 + Top = 960 + Width = 1995 + End + Begin VB.CheckBox chkYearRO + Caption = "Year Read-Only" + Height = 195 + Left = 180 + TabIndex = 2 + Top = 630 + Width = 1695 + End + Begin VB.CheckBox chkMonthRO + Caption = "Month Read-Only" + Height = 195 + Left = 180 + TabIndex = 1 + Top = 300 + Width = 1695 + End + End +End +Attribute VB_Name = "ppAppearance" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +'---------------------------------------------------------------------- +' Appearance.pag +'---------------------------------------------------------------------- +' Implementation file for the appearance property page +' for the VB calendar control. +'---------------------------------------------------------------------- +' Copyright (c) 1996, Microsoft Corporation +' All Rights Reserved +' +' Information Contained Herin is Proprietary and Confidential +'---------------------------------------------------------------------- +Option Explicit + + +'====================================================================== +' Private Data Members +'====================================================================== + + +'====================================================================== +' Private Event Handles +'====================================================================== + +'---------------------------------------------------------------------- +' SelectionChanged Event +'---------------------------------------------------------------------- +' Purpose: Called when the selected controls are changed +' set all controls to reflect property settings +' of the selected control(s) +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub PropertyPage_SelectionChanged() + Dim cal As Calendar 'reference to selected ctl + Dim ctl As Control + + If PropertyPage.SelectedControls.Count = 0 Then + 'daveste -- 8/16/96 + 'REVIEW: + 'what the heck do we do here? + Else + 'get the first selected control (might be the only) + Set cal = PropertyPage.SelectedControls(0) + + 'load the start of week combo + LoadStartOfWeekCombo + + 'set the control's values according to current + 'property settings + chkMonthRO.Value = Abs(cal.MonthReadOnly) + chkYearRO.Value = Abs(cal.YearReadOnly) + chkShowIterration.Value = Abs(cal.ShowIterrationButtons) + + calPreview.MonthReadOnly = cal.MonthReadOnly + calPreview.YearReadOnly = cal.YearReadOnly + calPreview.ShowIterrationButtons = cal.ShowIterrationButtons + + cbxDayFormat.ListIndex = cal.DayNameFormat + cbxStartOfWeek.ListIndex = cal.StartOfWeek + + 'setting list index on the combos triggers the + 'Click event so we don't need to set the + 'preview's props since they will be set in the + 'click events themselves + + 'reset the control's data changed state + 'so they are clean + On Error Resume Next + For Each ctl In PropertyPage.Controls + ctl.datachange = False + Next + + 'initialize the page's change flag to false + PropertyPage.Changed = False + + End If 'no controls selected + +End Sub 'PropertyPage_Load() + +'---------------------------------------------------------------------- +' ApplyChanges Event +'---------------------------------------------------------------------- +' Purpose: Called when the user applies changes to the property +' settings. Set properties of the selected control(s) +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub PropertyPage_ApplyChanges() + Dim cal As Calendar + + 'get the control to set properties on + Set cal = PropertyPage.SelectedControls(0) + + 'set the properties if they've changed + If chkMonthRO.DataChanged Then + cal.MonthReadOnly = CBool(chkMonthRO.Value) + End If + + If chkYearRO.DataChanged Then + cal.YearReadOnly = CBool(chkYearRO.Value) + End If + + If chkShowIterration.DataChanged Then + cal.ShowIterrationButtons = CBool(chkShowIterration.Value) + End If + + If cbxDayFormat.DataChanged Then + cal.DayNameFormat = cbxDayFormat.ListIndex + End If + + If cbxStartOfWeek.DataChanged Then + cal.StartOfWeek = cbxStartOfWeek.ListIndex + End If + +End Sub 'PropertyPage_ApplyChanges() + +'---------------------------------------------------------------------- +' LoadStartOfWeekCombo() +'---------------------------------------------------------------------- +' Purpose: Loads the start of week combo box with the names of the +' week days in the local language +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub LoadStartOfWeekCombo() + Dim nDay As Long + + 'add the "use system" option first + 'daveste -- 8/16/96 + 'TODO: Add code for getting this out of the string table + cbxStartOfWeek.AddItem "Use System" + + 'add the long day names + For nDay = 1 To 7 + cbxStartOfWeek.AddItem Format(DateSerial(1996, 8, 3 + nDay), "dddd") + Next nDay +End Sub 'LoadStartOfWeekCombo() + + +'---------------------------------------------------------------------- +' chkMonthRO_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user changes the state of the month +' read-only check box. +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub chkMonthRO_Click() + 'change the preview + calPreview.MonthReadOnly = CBool(chkMonthRO.Value) + + 'set the page's change flag to True + PropertyPage.Changed = True +End Sub 'chkMonthRO_Click() + +'---------------------------------------------------------------------- +' chkYearRO_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user changes the state of the year +' read-only check box. +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub chkYearRO_Click() + 'change the preview + calPreview.YearReadOnly = CBool(chkYearRO.Value) + + 'set the page's change flag to True + PropertyPage.Changed = True +End Sub 'chkYearRO_Click() + +'---------------------------------------------------------------------- +' chkShowIterration_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user changes the state of the show +' iterration buttons check box +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub chkShowIterration_Click() + 'change the preview + calPreview.ShowIterrationButtons = CBool(chkShowIterration.Value) + + 'set the page's change flag to True + PropertyPage.Changed = True +End Sub 'chkShowIterration_Click() + +'---------------------------------------------------------------------- +' cbxStartOfWeek_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user changes the selected item in the +' start of week combo box +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub cbxStartOfWeek_Click() + 'change the preview + calPreview.StartOfWeek = cbxStartOfWeek.ListIndex + + 'set the page's change flag to True + PropertyPage.Changed = True +End Sub 'cbxStartOfWeek_Click() + +'---------------------------------------------------------------------- +' cbxDayFormat_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user changes the selected item in the +' day format combo box +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub cbxDayFormat_Click() + 'change the preview + calPreview.DayNameFormat = cbxDayFormat.ListIndex + + 'set the page's change flag to True + PropertyPage.Changed = True +End Sub 'cbxDayFormat_Click() diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/APPEAR.PGX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/APPEAR.PGX new file mode 100644 index 0000000..d319ec0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/APPEAR.PGX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALENDAR.CTL b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALENDAR.CTL new file mode 100644 index 0000000..7d0c8b1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALENDAR.CTL @@ -0,0 +1,1936 @@ +VERSION 5.00 +Begin VB.UserControl Calendar + ClientHeight = 2745 + ClientLeft = 0 + ClientTop = 0 + ClientWidth = 3480 + EditAtDesignTime= -1 'True + KeyPreview = -1 'True + PropertyPages = "Calendar.ctx":0000 + ScaleHeight = 183 + ScaleMode = 3 'Pixel + ScaleWidth = 232 + ToolboxBitmap = "Calendar.ctx":0032 + Begin VB.TextBox ctlFocus + Height = 285 + Left = -300 + TabIndex = 0 + Top = 900 + Width = 150 + End + Begin VB.TextBox txtYear + Height = 285 + Left = 2280 + MaxLength = 4 + TabIndex = 3 + ToolTipText = "Year" + Top = 120 + Width = 495 + End + Begin VB.ComboBox cbxMonth + Height = 315 + Left = 480 + Style = 2 'Dropdown List + TabIndex = 2 + ToolTipText = "Month" + Top = 120 + Width = 1695 + End + Begin VB.CommandButton btnNext + Height = 255 + Left = 3060 + MaskColor = &H000000FF& + Picture = "Calendar.ctx":012C + Style = 1 'Graphical + TabIndex = 4 + ToolTipText = "Go To Next Month" + Top = 120 + UseMaskColor = -1 'True + Width = 255 + End + Begin VB.CommandButton btnPrev + Height = 255 + Left = 60 + MaskColor = &H000000FF& + Picture = "Calendar.ctx":020E + Style = 1 'Graphical + TabIndex = 1 + ToolTipText = "Go To Previous Month" + Top = 120 + UseMaskColor = -1 'True + Width = 255 + End +End +Attribute VB_Name = "Calendar" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Description = "VB Calendar Control Sample" +'---------------------------------------------------------------------- +' Calendar.ctl +'---------------------------------------------------------------------- +' Implementation file for the VB Calendar control sample. +' This control displays a month-at-a-time view calendar that the +' developer can use to let users view and adjust date values +'---------------------------------------------------------------------- +' Copyright (c) 1996, Microsoft Corporation +' All Rights Reserved +' +' Information Contained Herin is Proprietary and Confidential +'---------------------------------------------------------------------- +Option Explicit + +'====================================================================== +' Public Event Declarations +'====================================================================== +Public Event DateChange(ByVal OldDate As Date, ByVal NewDate As Date) +Public Event WillChangeDate(ByVal NewDate As Date, Cancel As Boolean) +Public Event DblClick() +Public Event Click() + +'====================================================================== +' Public Enumerations +'====================================================================== +Public Enum CalendarMonths 'months of the year + calJanuary = 1 + calFebruary + calMarch + calApril + calMay + calJune + calJuly + calAugust + calSeptember + calOctober + calNovember + calDecember +End Enum 'CalendarMonths + +Public Enum DaysOfTheWeek + calUseSystem = 0 + calSunday + calMonday + calTuesday + calWednesday + calThursday + calFriday + calSaturday +End Enum 'DaysOfTheWeek + +Public Enum CalendarAreas + calNavigationArea + calDayNameArea + calDateArea + calUnknownArea +End Enum 'CalendarAreas + +'Short = "F" +'Medium = "Fri" +'Long = "Friday" +Public Enum DayNameFormats + calShortName = 0 + calMediumName + calLongName +End Enum 'DayNameFormats + +'====================================================================== +' Private Constants +'====================================================================== +Private Const NUMCOLS As Long = 7 'number of cols in grid +Private Const NUMROWS As Long = 6 'number of rows in grid +Private Const NUMMONTHS As Long = 12 'number of months in a year +Private Const NUMDAYS As Long = 7 'number of days in a week +Private Const BORDER3D As Long = 2 'num pixels for good 3d border +Private Const FOCUSBORDER As Long = 1 'num pixels for focus border + +Private Enum DaySets + PrevMonthDays + CurMonthDays + NextMonthDays +End Enum 'DaySets + +Private Enum DayEffectFlags + calEffectOff = 1 + calEffectOn = -1 + calEffectDefault = 0 +End Enum 'DayEffectFlags + +'====================================================================== +' Private Data Members +'====================================================================== +'Current Date +Private mnDay As Long 'current day number +Private mnYear As Long 'current year number +Private mnMonth As Long 'currnet month number + +'Formatting and Appearance Settings +Private mnFirstDayOfWeek As VbDayOfWeek 'first day of the week +Private mnDayNameFormat As DayNameFormats +Private mfntDayNames As StdFont 'font to use for painting day names +Private mclrDayNames As OLE_COLOR 'color for the day names + +Private mfShowIterrators As Boolean 'determines if iterrator buttons + 'should be shown or not +Private mfMonthReadOnly As Boolean 'month selector or none +Private mfYearReadOnly As Boolean 'month selector or none + +'Behavior settings +Private mfLocked As Boolean 'read-only or not + +'String Arrays For Month and Day Names +Private masMonthNames(NUMMONTHS - 1) As String 'string array of month names +Private masDayNames(NUMDAYS - 1) As String 'string array of day names + +'this should be replaced with day styles eventually +Private mfntDayFont As StdFont 'font to use for painting dates in + 'the current month +Private mclrDay As OLE_COLOR 'color for the day numbers + +Private mafDayBold(1 To 31) As DayEffectFlags 'array of flags for day being bold +Private mafDayItalic(1 To 31) As DayEffectFlags 'array of flags for day being italic + +'Current Column Width and Row Height For Calendar Grid +Private mcxColWidth As Long 'width of each column in the grid +Private mcyRowHeight As Long 'height of each row in the grid + +'RECTs For Different Calendar Areas +Private mrcNavArea As RECT 'rect bounding the navigation area +Private mrcDayNameArea As RECT 'rect bounding the day name area +Private mrcCalArea As RECT 'area bounding the calendar days +Private mrcFocusArea As RECT 'current focus area + +'General Utility Members +Private mobjRes As ResLoader 'resource loading object (localization) +Private mfIgnoreMonthYearChange As Boolean 'HACKY flag for ignoring the programatic + 'change of the month and year navigation + 'controls. +Private maRepaintDays(1) As Long 'array of day numbers to repaint +Private mfFastRepaint As Boolean 'boolean flag used to do fast repaint + 'when only the day selected is changing + +'====================================================================== +' Public Property Procedures +'====================================================================== + +'---------------------------------------------------------------------- +' Version Get +'---------------------------------------------------------------------- +' Purpose: Gets the version number of the control +'---------------------------------------------------------------------- +Public Property Get Version() As String +Attribute Version.VB_Description = "Returns the version number of this control." +Attribute Version.VB_ProcData.VB_Invoke_Property = ";Misc" + Version = App.Major & "." & App.Minor & "." & App.Revision +End Property 'Get Version() + +'---------------------------------------------------------------------- +' Day Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and lets the current day value +'---------------------------------------------------------------------- +Public Property Get Day() As Long +Attribute Day.VB_Description = "Returns/Sets the Day number of the selected date." +Attribute Day.VB_ProcData.VB_Invoke_Property = ";Data" + Day = mnDay +End Property 'Get Day() + +Public Property Let Day(nNewVal As Long) + 'validate our inputs + If nNewVal > 0 And nNewVal <= MaxDayInMonth(mnMonth, mnYear) Then + ChangeValue nNewVal, mnMonth, mnYear + Else + mobjRes.RaiseUserError errPropValueRange, Array("Day", "0", CStr(MaxDayInMonth(mnMonth, mnYear))) + End If +End Property 'Let Day() + +'---------------------------------------------------------------------- +' Month Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and lets the current month value +'---------------------------------------------------------------------- +Public Property Get Month() As CalendarMonths +Attribute Month.VB_Description = "Returns/Sets the month number of the currently selected date." +Attribute Month.VB_ProcData.VB_Invoke_Property = ";Data" + Month = mnMonth +End Property 'Get Month() + +Public Property Let Month(nNewVal As CalendarMonths) + 'validate our inputs + 'note we still need to do this even though we're using + 'an enumeration since VB only treats this as a long value + If nNewVal > 0 And nNewVal <= 12 Then + ChangeValue mnDay, nNewVal, mnYear + Else + mobjRes.RaiseUserError errPropValueRange, Array("Month", "0", "12") + End If +End Property 'Let Month() + +'---------------------------------------------------------------------- +' Year Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and lets the current year value +'---------------------------------------------------------------------- +Public Property Get Year() As Long +Attribute Year.VB_Description = "Returns/Sets the year number of the currently selected date." +Attribute Year.VB_ProcData.VB_Invoke_Property = ";Data" + Year = mnYear +End Property 'Get Year() + +Public Property Let Year(nNewVal As Long) + 'validate our inputs + 'year must be between 100 and 9999 due to the restrictions + 'of the date data type in basic + If nNewVal >= 100 And nNewVal <= 9999 Then + ChangeValue mnDay, mnMonth, nNewVal + Else + mobjRes.RaiseUserError errPropValueRange, Array("Year", "100", "9999") + End If +End Property 'Let Year() + +'---------------------------------------------------------------------- +' Value Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and lets the current date value +'---------------------------------------------------------------------- +Public Property Get Value() As Date +Attribute Value.VB_Description = "Returns/Sets the currently selected date in the control." +Attribute Value.VB_ProcData.VB_Invoke_Property = ";Data" +Attribute Value.VB_MemberFlags = "3c" + Value = DateSerial(mnYear, mnMonth, mnDay) +End Property 'Get Value() + +Public Property Let Value(dtNew As Date) + ChangeValue VBA.Day(dtNew), VBA.Month(dtNew), VBA.Year(dtNew) +End Property 'Let Value() + + +'---------------------------------------------------------------------- +' DayFont Get/Set +'---------------------------------------------------------------------- +' Purpose: Gets or sets the font to use for date numbers +'---------------------------------------------------------------------- +Public Property Get DayFont() As Font +Attribute DayFont.VB_Description = "Returns/Sets the font used for the day numbers." +Attribute DayFont.VB_ProcData.VB_Invoke_Property = ";Appearance" +Attribute DayFont.VB_UserMemId = -512 + Set DayFont = mfntDayFont +End Property 'Get DayFont() + +'*** VB BUG Workaround *** +'The fntNew argument is passed in ByVal in order to +'get this property to show in the built-in Font +'property page. When the bug is fixed, change this +'back to ByRef (remove ByVal) +Public Property Set DayFont(ByVal fntNew As Font) + Set mfntDayFont = fntNew + + UserControl.Refresh +End Property 'Set DayFont() + +'---------------------------------------------------------------------- +' DayNameFont Get/Set +'---------------------------------------------------------------------- +' Purpose: Gets or sets the font to use for day names +'---------------------------------------------------------------------- +Public Property Get DayNameFont() As Font +Attribute DayNameFont.VB_Description = "Returns/Sets the font used for the day names." +Attribute DayNameFont.VB_ProcData.VB_Invoke_Property = ";Appearance" + Set DayNameFont = mfntDayNames +End Property 'Get DayFont() + +'*** VB BUG Workaround *** +'The fntNew argument is passed in ByVal in order to +'get this property to show in the built-in Font +'property page. When the bug is fixed, change this +'back to ByRef (remove ByVal) +Public Property Set DayNameFont(ByVal fntNew As Font) + Set mfntDayNames = fntNew + UserControl.Refresh +End Property 'Set DayFont() + +'---------------------------------------------------------------------- +' DayBold() Get/Let +'---------------------------------------------------------------------- +' Purpose: This property allows the user to set a particular day to bold +' or not so as to give the effect of a 'special' day +' Inputs: day number (1 to max day in current month) +' Outputs: True if it's Bold, False if not +'---------------------------------------------------------------------- +Public Property Get DayBold(DayNumber As Long) As Boolean +Attribute DayBold.VB_Description = "Returns/Sets the Bold state for a day in the current month." + 'if the setting for this day is "default" then the + 'value returned depends on the bold state of the + 'DayFont property + If mafDayBold(DayNumber) = calEffectDefault Then + DayBold = mfntDayFont.Bold + Else + DayBold = (mafDayBold(DayNumber) = calEffectOn) + End If +End Property 'Get DayBold() + +Public Property Let DayBold(DayNumber As Long, NewVal As Boolean) + If NewVal = True Then + mafDayBold(DayNumber) = calEffectOn + Else + mafDayBold(DayNumber) = calEffectOff + End If +End Property 'Let DayBold() + +'---------------------------------------------------------------------- +' DayItalic() Get/Let +'---------------------------------------------------------------------- +' Purpose: This property allows the user to set a particular day italic +' or not so as to give the effect of a 'special' day +' Inputs: day number (1 to max day in current month) +' Outputs: True if it's Italic, False if not +'---------------------------------------------------------------------- +Public Property Get DayItalic(DayNumber As Long) As Boolean +Attribute DayItalic.VB_Description = "Returns/Sets the Italic state for a day in the current month." + 'if the setting for this day is "default" then the + 'value returned depends on the italic state of the + 'DayFont property + If mafDayItalic(DayNumber) = calEffectDefault Then + DayItalic = mfntDayFont.Italic + Else + DayItalic = (mafDayItalic(DayNumber) = calEffectOn) + End If +End Property 'Get DayItalic() + +'**Let +Public Property Let DayItalic(DayNumber As Long, NewVal As Boolean) + If NewVal = True Then + mafDayItalic(DayNumber) = calEffectOn + Else + mafDayItalic(DayNumber) = calEffectOff + End If +End Property 'Let DayItalic() + +'---------------------------------------------------------------------- +' StartOfWeek Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets or lets the first day to display in a week +'---------------------------------------------------------------------- +Public Property Get StartOfWeek() As DaysOfTheWeek +Attribute StartOfWeek.VB_Description = "Returns/Sets the first day of the week which will be displayed in the left-most column." +Attribute StartOfWeek.VB_ProcData.VB_Invoke_Property = ";Appearance" + StartOfWeek = mnFirstDayOfWeek +End Property 'Get StartOfWeek() + +Public Property Let StartOfWeek(nNewVal As DaysOfTheWeek) + 'validate our inputs + If nNewVal >= calUseSystem And nNewVal <= calSaturday Then + mnFirstDayOfWeek = nNewVal + + 'do a Refresh to make the control repaint + UserControl.Refresh + + Else + mobjRes.RaiseUserError errPropValueRange, Array("StartOfWeek", calUseSystem, calSaturday) + End If 'valid inputs + +End Property 'Let StartOfWeek() + +'---------------------------------------------------------------------- +' DayNameFormat Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets or lets the format to use for day names +' (short, medium, long) +'---------------------------------------------------------------------- +Public Property Get DayNameFormat() As DayNameFormats +Attribute DayNameFormat.VB_Description = "Returns/Sets the format to use for the day names (Short = ""M"", Medium = ""Mon"", Long = ""Monday"")." +Attribute DayNameFormat.VB_ProcData.VB_Invoke_Property = ";Appearance" + DayNameFormat = mnDayNameFormat +End Property 'Get DayNameFormat + +Public Property Let DayNameFormat(nNewFormat As DayNameFormats) + 'validate the input + If nNewFormat >= calShortName And nNewFormat <= calLongName Then + 'set the new format and re-load the day names + mnDayNameFormat = nNewFormat + LoadDayNames + UserControl.Refresh + Else + mobjRes.RaiseUserError errPropValueRange, Array("DayNameFormat", calShortName, calLongName) + End If 'valid inputs +End Property 'Let DayNameFormat + +'---------------------------------------------------------------------- +' ShowIterratorButtons Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets or lets the option for showing or hiding the month +' iterrator buttons +'---------------------------------------------------------------------- +Public Property Get ShowIterrationButtons() As Boolean +Attribute ShowIterrationButtons.VB_Description = "Returns/Sets the visible state of the previous and next month navigation buttons." +Attribute ShowIterrationButtons.VB_ProcData.VB_Invoke_Property = ";Appearance" + ShowIterrationButtons = mfShowIterrators +End Property 'Get ShowIterrationButtons() + +Public Property Let ShowIterrationButtons(fNew As Boolean) + 'if it's not changing, don't bother + If fNew = mfShowIterrators Then Exit Property + + 'assign the new value + mfShowIterrators = fNew + + 'and adjust the visible state of the buttons + btnPrev.Visible = mfShowIterrators + btnNext.Visible = mfShowIterrators + + 'trigger the resize event to recalc the widths + 'of the other navigation controls + UserControl_Resize +End Property 'Let ShowIterrationButtons() + +'---------------------------------------------------------------------- +' MonthReadOnly Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and lets the option of making the month selector +' read-only or not +'---------------------------------------------------------------------- +Public Property Get MonthReadOnly() As Boolean +Attribute MonthReadOnly.VB_Description = "Returns/Sets the read-only state of the month navigation combo box." +Attribute MonthReadOnly.VB_ProcData.VB_Invoke_Property = ";Appearance" + MonthReadOnly = mfMonthReadOnly +End Property 'Get MonthReadOnly() + +Public Property Let MonthReadOnly(fNew As Boolean) + 'if it's not changing, don't bother + If fNew = mfMonthReadOnly Then Exit Property + + 'set the new value and hide or show the month selector + mfMonthReadOnly = fNew + cbxMonth.Visible = Not mfMonthReadOnly +End Property 'Let MonthReadOnly() + +'---------------------------------------------------------------------- +' YearReadOnly Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and lets the option of making the year selector +' read-only or not +'---------------------------------------------------------------------- +Public Property Get YearReadOnly() As Boolean +Attribute YearReadOnly.VB_Description = "Returns/Sets the read-only state of the year navigation text box." +Attribute YearReadOnly.VB_ProcData.VB_Invoke_Property = ";Appearance" + YearReadOnly = mfYearReadOnly +End Property 'Get YearReadOnly() + +Public Property Let YearReadOnly(fNew As Boolean) + 'if it's not changing, don't bother + If fNew = mfYearReadOnly Then Exit Property + + 'set the new value and hide or show the month selector + mfYearReadOnly = fNew + txtYear.Visible = Not mfYearReadOnly +End Property 'Let YearReadOnly() + +'---------------------------------------------------------------------- +' Locked Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and sets the Locked option which makes the whole thing +' read-only or not +'---------------------------------------------------------------------- +Public Property Get Locked() As Boolean +Attribute Locked.VB_Description = "Returns/Sets the locked state of the control. When locked, the user cannot change the selected date." +Attribute Locked.VB_ProcData.VB_Invoke_Property = ";Behavior" + Locked = mfLocked +End Property 'Get Locked() + +Public Property Let Locked(fNew As Boolean) + + 'set the private variable + mfLocked = fNew + + 'set the locked state of contained controls + 'we'll disable the buttons if locked since + 'there is no locked state for buttons + cbxMonth.Locked = fNew + txtYear.Locked = fNew + btnNext.Enabled = Not fNew + btnPrev.Enabled = Not fNew + +End Property 'Let Locked() + +'---------------------------------------------------------------------- +' DayColor Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and sets the color used for the day numbers +'---------------------------------------------------------------------- +Public Property Get DayColor() As OLE_COLOR +Attribute DayColor.VB_Description = "Returns/Sets the color used for the day numbers." +Attribute DayColor.VB_ProcData.VB_Invoke_Property = ";Appearance" +Attribute DayColor.VB_UserMemId = -513 + DayColor = mclrDay +End Property 'Get DayColor() + +Public Property Let DayColor(NewVal As OLE_COLOR) + mclrDay = NewVal + UserControl.Refresh +End Property 'Let DayColor() + +'---------------------------------------------------------------------- +' DayNameColor Get/Let +'---------------------------------------------------------------------- +' Purpose: Gets and sets the color used for the day numbers +'---------------------------------------------------------------------- +Public Property Get DayNameColor() As OLE_COLOR +Attribute DayNameColor.VB_Description = "Returns/Sets the color used for the day names (i.e. days of the week)." +Attribute DayNameColor.VB_ProcData.VB_Invoke_Property = ";Appearance" + DayColor = mclrDayNames +End Property 'Get DayNameColor() + +Public Property Let DayNameColor(NewVal As OLE_COLOR) + mclrDayNames = NewVal + UserControl.Refresh +End Property 'Let DayNameColor() + + + +'====================================================================== +' Public Methods +'====================================================================== + +'---------------------------------------------------------------------- +' HitTest() +'---------------------------------------------------------------------- +' Purpose: Does a hit test based on x,y coordinates +' Inputs: x and y coordinates +' Outputs: Area of the control and specific date if over one +'---------------------------------------------------------------------- +Public Sub HitTest(ByVal X As Long, ByVal Y As Long, Area As Long, HitDate As Date) +Attribute HitTest.VB_Description = "Returns the area and day number (if any) that corresponds to a given X,Y position." + Dim nRow As Long + Dim nCol As Long + + 'assert that the x and y are indeed in our coordinate system + Debug.Assert (X <= UserControl.ScaleWidth) + Debug.Assert (Y <= UserControl.ScaleHeight) + + 'determine the area of the control that x and y are over + If X > mrcNavArea.Right Then + Area = calUnknownArea + Else + If Y >= mrcNavArea.Top And Y <= mrcNavArea.Bottom Then + Area = calNavigationArea + ElseIf Y >= mrcDayNameArea.Top And Y <= mrcDayNameArea.Bottom Then + Area = calDayNameArea + ElseIf Y >= mrcCalArea.Top And Y <= mrcCalArea.Bottom Then + Area = calDateArea + Else + Area = calUnknownArea + End If 'determine area by y + End If 'x is past right of all areas + + 'if we are in the date area, calculate the hit date + If Area = calDateArea Then + + 'determine the row and column and make them 0-based + nRow = ((Y - mrcCalArea.Top) \ mcyRowHeight) - 1 + If (Y - mrcCalArea.Top) Mod mcyRowHeight > 0 Then + nRow = nRow + 1 + End If + + nCol = ((X - mrcCalArea.Left) \ mcxColWidth) - 1 + If (X - mrcCalArea.Left) Mod mcxColWidth > 0 Then + nCol = nCol + 1 + End If + + 'given the row and column, determine the date + HitDate = DateForRowCol(nRow, nCol) + + End If 'in date area + +End Sub 'HitTest + +'---------------------------------------------------------------------- +' Refresh() +'---------------------------------------------------------------------- +' Purpose: Refreshes/repaints the entire control +' Inputs: none +' Outputs: none +'---------------------------------------------------------------------- +Public Sub Refresh() +Attribute Refresh.VB_Description = "Refreshes the control by causing a complete repaint." + 'just pass it on... + UserControl.Refresh +End Sub 'Refresh() + +'---------------------------------------------------------------------- +' About() +'---------------------------------------------------------------------- +' Purpose: Opens the About box for the control--this is marked hidden +' so that it doesn't show up in the statement completion +' but we do mark this with the DispID of AboutBox so that it +' shows in the property sheet with an elipsis button +' Inputs: none +' Outputs: none +'---------------------------------------------------------------------- +Public Sub About() +Attribute About.VB_Description = "Shows the about box for the control." +Attribute About.VB_UserMemId = -552 +Attribute About.VB_MemberFlags = "40" + frmAbout.Show vbModal +End Sub 'About() + + +'====================================================================== +' Initialize and Terminate Events +'====================================================================== +Private Sub UserControl_Initialize() + + On Error GoTo Err_Init + + 'set the resource loader + 'daveste -- 7/31/96 + 'TODO: put in code to load a satellite resource DLL based on the + 'locale ID of the ambient host + Set mobjRes = New ResLoader + + 'load the month names into the combo box + LoadMonthNames + + 'initialize the area rects that don't depend on the + 'size of the control (which are left and top and sometimes bottom) + 'doing this here lets us reduce the code needed to execute + 'when the control is resized which will happen more often + 'than the control being initialized. + mrcNavArea.Left = 1 + mrcNavArea.Top = 1 + + 'height of navigation area is the height of the month combo + 'plus 4, since we will draw a 3d box around the controls + mrcNavArea.Bottom = cbxMonth.Height + (2 * BORDER3D) + mrcDayNameArea.Left = 1 + mrcDayNameArea.Top = mrcNavArea.Bottom + + 'height of the day name area should be the height of + 'the day name font plus 6 pixels for 3d effects + mrcDayNameArea.Bottom = mrcDayNameArea.Top + UserControl.TextHeight("A") + 6 + + mrcCalArea.Left = 1 + mrcCalArea.Top = mrcDayNameArea.Bottom + + 'set the position and sizes of the navigation controls that + 'don't depend on the size of the control (like left and top + 'values). + btnPrev.Move mrcNavArea.Left, mrcNavArea.Top, btnPrev.Width, mrcNavArea.Bottom - mrcNavArea.Top + + btnNext.Top = mrcNavArea.Top + btnNext.Height = mrcNavArea.Bottom - mrcNavArea.Top + + cbxMonth.Move mrcNavArea.Left + btnPrev.Width + BORDER3D, mrcNavArea.Top + BORDER3D + txtYear.Height = cbxMonth.Height + txtYear.Top = mrcNavArea.Top + BORDER3D + + 'set the disabled picture for the prev and next buttons + 'to be the same as the regular picture--this will let us + 'give a locked effect by disabling the prev and next buttons + btnPrev.DisabledPicture = btnPrev.Picture + btnNext.DisabledPicture = btnNext.Picture + + Exit Sub + +Err_Init: + Debug.Assert False + Exit Sub +End Sub 'UserControl_Initialize() + +'====================================================================== +' Private Event Handles +'====================================================================== + +'---------------------------------------------------------------------- +' InitProperties Event +'---------------------------------------------------------------------- +' Purpose: Called when the control is first put on a form +' One-time initialization of data members +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_InitProperties() + Dim dt As Date + + On Error GoTo Err_InitProps + + 'initialize the day, month and year to the current system date + dt = Date + mnDay = VBA.Day(dt) + mnMonth = VBA.Month(dt) + mnYear = VBA.Year(dt) + + mfIgnoreMonthYearChange = True + cbxMonth.ListIndex = mnMonth - 1 + txtYear.Text = mnYear + mfIgnoreMonthYearChange = False + + 'create new font objects for the day and day name + 'fonts and copy the font attributes from the + 'user control's ambient font into them + Set mfntDayFont = New StdFont + CopyFont UserControl.Ambient.Font, mfntDayFont + + Set mfntDayNames = New StdFont + CopyFont UserControl.Ambient.Font, mfntDayNames + mfntDayNames.Bold = True + + 'initialize the day and dayname colors to the ambient's + 'fore color value + mclrDay = vbBlack + mclrDayNames = vbBlack + + 'initialize the day name format to medium + mnDayNameFormat = calMediumName + LoadDayNames + + 'init various appearance options + mfShowIterrators = True + mfMonthReadOnly = False + mfYearReadOnly = False + mfLocked = False + + Exit Sub + +Err_InitProps: + Debug.Assert False + Exit Sub +End Sub 'UserControl_InitProperties() + +'---------------------------------------------------------------------- +' ReadProperties Event +'---------------------------------------------------------------------- +' Purpose: Called when we need to read property settings back in +' Inputs: the property bag class for reading +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_ReadProperties(PropBag As PropertyBag) + Dim dtCurrent As Date + dtCurrent = Date + + On Error Resume Next + 'read in the properties from the property bag + mnFirstDayOfWeek = PropBag.ReadProperty("StartOfWeek", vbUseSystemDayOfWeek) + + ChangeValue PropBag.ReadProperty("Day", VBA.Day(dtCurrent)), _ + PropBag.ReadProperty("Month", VBA.Month(dtCurrent)), _ + PropBag.ReadProperty("Year", VBA.Year(dtCurrent)) + + Set mfntDayNames = PropBag.ReadProperty("DayNameFont", UserControl.Font) + Set mfntDayFont = PropBag.ReadProperty("DayFont", UserControl.Font) + + mclrDay = PropBag.ReadProperty("DayColor", vbBlack) + mclrDayNames = PropBag.ReadProperty("DayNameColor", vbBlack) + + mnDayNameFormat = PropBag.ReadProperty("DayNameFormat", calMediumName) + LoadDayNames + + Me.ShowIterrationButtons = PropBag.ReadProperty("ShowIterrationButtons", True) + Me.MonthReadOnly = PropBag.ReadProperty("MonthReadOnly", False) + Me.YearReadOnly = PropBag.ReadProperty("YearReadOnly", False) + Me.Locked = PropBag.ReadProperty("Locked", False) + + 'trigger a resize since this event happens after the initial + 'resize when going to run mode + UserControl_Resize + +End Sub 'UserControl_ReadProperties() + +'---------------------------------------------------------------------- +' WriteProperties Event +'---------------------------------------------------------------------- +' Purpose: Called when we need to write property settings out to disk +' Inputs: the property bag class for writing +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_WriteProperties(PropBag As PropertyBag) + On Error Resume Next + + 'write the current property values to the property bag + PropBag.WriteProperty "Day", mnDay + PropBag.WriteProperty "Month", mnMonth + PropBag.WriteProperty "Year", mnYear + + PropBag.WriteProperty "StartOfWeek", mnFirstDayOfWeek, vbUseSystemDayOfWeek + PropBag.WriteProperty "DayNameFont", mfntDayNames, UserControl.Font + PropBag.WriteProperty "DayFont", mfntDayFont, UserControl.Font + PropBag.WriteProperty "DayNameFormat", mnDayNameFormat, calMediumName + PropBag.WriteProperty "DayColor", mclrDay, vbBlack + PropBag.WriteProperty "DayNameColor", mclrDayNames, vbBlack + + + PropBag.WriteProperty "ShowIterrationButtons", mfShowIterrators, True + PropBag.WriteProperty "MonthReadOnly", mfMonthReadOnly, False + PropBag.WriteProperty "YearReadOnly", mfYearReadOnly, False + PropBag.WriteProperty "Locked", mfLocked, False + +End Sub 'UserControl_WriteProperties() + +'---------------------------------------------------------------------- +' Paint Event +'---------------------------------------------------------------------- +' Purpose: Called when the control needs to be repainted +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_Paint() + Dim dcWork As OffScreenDC + + Dim nTop As Long + Dim nLeft As Long + Dim nWidth As Long + Dim nHeight As Long + + Dim nDay As Long + Dim nRow As Long + Dim nCol As Long + Dim nLastDay As Long + Dim eDaySet As DaySets + Dim rgbColor As Long + Dim fDefBold As Boolean + Dim fDefItalic As Boolean + + On Error GoTo Err_Paint + + 'save the initial bold and italic state of our day font + fDefBold = mfntDayFont.Bold + fDefItalic = mfntDayFont.Italic + + Set dcWork = New OffScreenDC + + dcWork.Initialize UserControl.hdc, UserControl.ScaleWidth, UserControl.ScaleHeight + + 'set the text color to be the color chosen for + 'the days of the week names + OleTranslateColor mclrDayNames, 0, rgbColor + dcWork.TextColor = rgbColor + + If mfFastRepaint Then + FastRepaint dcWork + Exit Sub + End If + + 'fill the background of the control with the ambient's + 'background color + nLeft = 0 + nTop = 0 + nWidth = UserControl.ScaleWidth + nHeight = UserControl.ScaleHeight + + 'I use the OLE API OleTranslateColor here to translate + 'an OLE color to an RGB value. VB will return an OLE color + 'value for the ambient's back color and this API will convert + 'it to an RGB value for painting. + OleTranslateColor UserControl.Ambient.BackColor, 0, rgbColor + + dcWork.FillRect nLeft, nTop, nWidth, nHeight, rgbColor + + 'next fill a black rect that will serve as a thin back outline + 'around the painted part of the control + nWidth = mrcNavArea.Right + 1 + nHeight = mrcDayNameArea.Bottom + (mcyRowHeight * NUMROWS) + 1 + dcWork.FillRect 0, 0, nWidth, nHeight, vbBlack + + 'draw a 3d rect around the navigation controls + nTop = mrcNavArea.Top + nHeight = mrcNavArea.Bottom - mrcNavArea.Top + + If mfShowIterrators Then + nLeft = mrcNavArea.Left + btnPrev.Width + nWidth = btnNext.Left - nLeft + Else + nLeft = mrcNavArea.Left + nWidth = mrcNavArea.Right - mrcNavArea.Left + End If 'mfShowIterrators + + dcWork.Draw3DRect nLeft, nTop, nWidth, nHeight + + 'if the month is read only, draw the month name + If mfMonthReadOnly Then + Set dcWork.Font = cbxMonth.Font + + 'squeeze the width in by one to make a better 3d effect + dcWork.Draw3DRect cbxMonth.Left, cbxMonth.Top, _ + cbxMonth.Width - 1, cbxMonth.Height, _ + cbxMonth.List(cbxMonth.ListIndex), _ + caCenterCenter, Sunken + End If 'month is read only + + 'if the year is read only, draw the year number + If mfYearReadOnly Then + Set dcWork.Font = txtYear.Font + + dcWork.Draw3DRect txtYear.Left, txtYear.Top, _ + txtYear.Width, txtYear.Height, _ + txtYear.Text, caCenterCenter, Sunken + End If 'year is read only + + 'paint the day names + PaintDayNames dcWork + + 'change the text color to dark gray to paint the previous month days + 'daveste -- 7/31/96 + 'TODO: this should be replaced with day styles or at least with + 'a property the control the font and color of these other dates + dcWork.TextColor = RGB(128, 128, 128) + + 'get the first and last days of the previous month to paint + GetPrevMonthDays mnMonth, mnYear, nDay, nLastDay + eDaySet = PrevMonthDays + + Set dcWork.Font = mfntDayFont + + 'draw a grid of date numbers for the current month + For nRow = 0 To NUMROWS - 1 + For nCol = 0 To NUMCOLS - 1 + + 'if we've done painting the current set of days + 'switch to the next set + If nDay > nLastDay Then + If eDaySet = PrevMonthDays Then + OleTranslateColor mclrDay, 0, rgbColor + dcWork.TextColor = rgbColor + nDay = 1 + nLastDay = MaxDayInMonth(mnMonth, mnYear) + eDaySet = CurMonthDays + + Else + + dcWork.TextColor = RGB(128, 128, 128) + nDay = 1 + nLastDay = 100 'no need to calc the last + 'day since the for loops + 'will govern when to stop + eDaySet = NextMonthDays + + End If 'day set was previous month + End If 'done painting this day set + + 'paint the day + + 'set the font attributes for the day being painted + If eDaySet = CurMonthDays Then + If mafDayBold(nDay) = calEffectDefault Then + 'optimize for the case where no days are bold + If mfntDayFont.Bold <> fDefBold Then + mfntDayFont.Bold = fDefBold + Set dcWork.Font = mfntDayFont + End If + Else + mfntDayFont.Bold = (mafDayBold(nDay) = calEffectOn) + Set dcWork.Font = mfntDayFont + End If 'DayBold setting is default + + If mafDayItalic(nDay) = calEffectDefault Then + 'optimize for the case where no days are italic + If mfntDayFont.Italic <> fDefItalic Then + mfntDayFont.Italic = fDefItalic + Set dcWork.Font = mfntDayFont + End If + Else + mfntDayFont.Italic = (mafDayItalic(nDay) = calEffectOn) + Set dcWork.Font = mfntDayFont + End If + End If 'we're in the current month day set + + 'if it's the current day, draw it selected + If nDay = mnDay And eDaySet = CurMonthDays Then + dcWork.Draw3DRect mrcCalArea.Left + (nCol * mcxColWidth), _ + mrcCalArea.Top + (nRow * mcyRowHeight), _ + mcxColWidth, mcyRowHeight, CStr(nDay), _ + caCenterCenter, Selected + + Else + + dcWork.Draw3DRect mrcCalArea.Left + (nCol * mcxColWidth), _ + mrcCalArea.Top + (nRow * mcyRowHeight), _ + mcxColWidth, mcyRowHeight, CStr(nDay) + + End If 'current day + + 'increment the day number + nDay = nDay + 1 + + Next nCol + Next nRow + + 'blast the control to the screen + dcWork.BlastToScreen + + 'if the dummy control has focus, and we are in run-mode, + 'draw a focus rect around the current focus area + If UserControl.ActiveControl Is ctlFocus Then + DrawFocusRect UserControl.hdc, mrcFocusArea + End If + + 'restore the initial settings for bold and italic + 'in our day font + mfntDayFont.Bold = fDefBold + mfntDayFont.Italic = fDefItalic + + Exit Sub + +Err_Paint: + Debug.Assert False + Exit Sub +End Sub 'UserControl_Paint() + +'---------------------------------------------------------------------- +' Resize Event +'---------------------------------------------------------------------- +' Purpose: Called when the control is resized by the developer +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_Resize() + Dim nNewWidth As Long 'new scale width + Dim nNewHeight As Long 'new scale height + Dim nUsableWidth As Long 'actual width we can use + + On Error GoTo Err_Resize + + nNewWidth = UserControl.ScaleWidth + nNewHeight = UserControl.ScaleHeight + + 'since all the grid cells need to be the same width + 'the usable width is the width we will consume and there + 'maybe unused pixels due to left-overs from division + nUsableWidth = ((nNewWidth - (2 * mrcCalArea.Left)) \ NUMCOLS) * NUMCOLS + + 'recalculate the bounding rectangles for the various areas + 'of the control (navigation, day names, and calendar days) + mrcNavArea.Right = mrcNavArea.Left + nUsableWidth + mrcDayNameArea.Right = mrcDayNameArea.Left + nUsableWidth + mrcCalArea.Right = mrcCalArea.Left + nUsableWidth + mrcCalArea.Bottom = nNewHeight + + 'Recalculate the width and heights of the grid rows and columns + mcxColWidth = (nNewWidth - (2 * mrcCalArea.Left)) \ NUMCOLS + mcyRowHeight = (mrcCalArea.Bottom - mrcCalArea.Top) \ NUMROWS + + 'resize the month and year selection controls + btnNext.Left = mrcNavArea.Right - btnNext.Width + + 'if there's not enough room, just display the buttons + If (mrcNavArea.Right - mrcNavArea.Left) <= _ + (btnNext.Width + btnPrev.Width + txtYear.Width + 10) _ + And mfShowIterrators Then + + cbxMonth.Visible = False + txtYear.Visible = False + + Else + + If Not mfMonthReadOnly Then cbxMonth.Visible = True + If Not mfYearReadOnly Then txtYear.Visible = True + + If mfShowIterrators Then + cbxMonth.Left = mrcNavArea.Left + btnPrev.Width + BORDER3D + txtYear.Left = btnNext.Left - txtYear.Width - BORDER3D + Else + cbxMonth.Left = mrcNavArea.Left + BORDER3D + txtYear.Left = mrcNavArea.Right - txtYear.Width - BORDER3D + End If + + cbxMonth.Width = txtYear.Left - cbxMonth.Left + + End If 'not enough horizontal room + + Exit Sub + +Err_Resize: + Debug.Assert False + Exit Sub + +End Sub 'UserControl_Resize() + +'---------------------------------------------------------------------- +' MouseDown Event +'---------------------------------------------------------------------- +' Purpose: Called when the mouse button is pushed down while over +' the control's area +' Inputs: Which mouse button, shift state and x and y position +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) + Dim Area As CalendarAreas + Dim dtOld As Date + Dim dtNew As Date + + On Error GoTo Err_MouseDown + + 'keep the old date to see if it's changed + dtOld = Me.Value + + 'Do a hit test to determine where the user clicked + Me.HitTest X, Y, Area, dtNew + + 'if the area was in the date area and the control is not locked, + 'switch to the hit date + If (Area = calDateArea) And (Not mfLocked) Then + If dtNew <> dtOld Then + ChangeValue VBA.Day(dtNew), VBA.Month(dtNew), VBA.Year(dtNew) + End If 'date did change + End If 'clicked in date area + + 'grab focus back if needed + If Not (UserControl.ActiveControl Is ctlFocus) Then + ctlFocus.SetFocus + End If + + Exit Sub + +Err_MouseDown: + Debug.Assert False + Exit Sub +End Sub 'UserControl_MouseDown() + +'---------------------------------------------------------------------- +' DblClick Event +'---------------------------------------------------------------------- +' Purpose: Called when the user double-clicks on the main control area +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_DblClick() + On Error GoTo Err_DblClick + + 'pass this event to the host + RaiseEvent DblClick + Exit Sub + +Err_DblClick: + Exit Sub +End Sub 'UserControl_DblClick() + +'---------------------------------------------------------------------- +' Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user clicks on the main control area +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub UserControl_Click() + On Error GoTo Err_Click + + 'raise our click event to the user + RaiseEvent Click + + Exit Sub + +Err_Click: + Exit Sub +End Sub 'UserControl_Click() + +'---------------------------------------------------------------------- +' ctlFocus_GotFocus Event +'---------------------------------------------------------------------- +' Purpose: Called when the main calendar area is to get focus. +' We use a dummy control to capture focus since we are +' just painting the calendar days and cannot set focus +' to the entire user control. +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub ctlFocus_GotFocus() + 'draw a focus rect to signify that the calendar + 'area now has focus + DrawFocusRect UserControl.hdc, mrcFocusArea +End Sub 'ctlFocus_GotFocus() + +'---------------------------------------------------------------------- +' ctlFocus_LostFocus Event +'---------------------------------------------------------------------- +' Purpose: Called when the main calendar area has lost focus. +' We use a dummy control to capture focus since we are +' just painting the calendar days and cannot set focus +' to the entire user control. +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub ctlFocus_LostFocus() + 'draw a focus rect where the last focus area was + 'drawing a focus rect twice removes it + DrawFocusRect UserControl.hdc, mrcFocusArea +End Sub 'ctlFocus_LostFocus() + +'---------------------------------------------------------------------- +' ctlFocus_KeyDown Event +'---------------------------------------------------------------------- +' Purpose: Called when the user presses a key while the dummy control +' has focus +' Inputs: Which key, shift state +' Outputs: None +'---------------------------------------------------------------------- +Private Sub ctlFocus_KeyDown(KeyCode As Integer, Shift As Integer) + Dim dtTemp As Date 'temp date for date arithmetic + + Select Case KeyCode + Case vbKeyLeft + dtTemp = DateSerial(mnYear, mnMonth, mnDay) + + 'if shift is down, move by month + If (Shift And vbShiftMask) > 0 Then + dtTemp = DateAdd("m", -1, dtTemp) + + ElseIf (Shift And vbCtrlMask) > 0 Then + 'else if control is down, move by year + dtTemp = DateAdd("yyyy", -1, dtTemp) + + Else + 'go back on day + dtTemp = DateAdd("d", -1, dtTemp) + End If + + ChangeValue VBA.Day(dtTemp), VBA.Month(dtTemp), _ + VBA.Year(dtTemp) + + Case vbKeyRight + dtTemp = DateSerial(mnYear, mnMonth, mnDay) + + If (Shift And vbShiftMask) > 0 Then + dtTemp = DateAdd("m", 1, dtTemp) + + ElseIf (Shift And vbCtrlMask) > 0 Then + 'else if control is down, move by year + dtTemp = DateAdd("yyyy", 1, dtTemp) + + Else + 'go forward one day + dtTemp = DateAdd("d", 1, dtTemp) + End If + + ChangeValue VBA.Day(dtTemp), VBA.Month(dtTemp), _ + VBA.Year(dtTemp) + + Case vbKeyUp + 'go one week back + dtTemp = DateSerial(mnYear, mnMonth, mnDay) + dtTemp = DateAdd("ww", -1, dtTemp) + ChangeValue VBA.Day(dtTemp), VBA.Month(dtTemp), _ + VBA.Year(dtTemp) + + Case vbKeyDown + 'go one week forwad + dtTemp = DateSerial(mnYear, mnMonth, mnDay) + dtTemp = DateAdd("ww", 1, dtTemp) + ChangeValue VBA.Day(dtTemp), VBA.Month(dtTemp), _ + VBA.Year(dtTemp) + + Case vbKeyHome + 'if control is down, go to first day of the year + If (Shift And vbCtrlMask) > 0 Then + ChangeValue 1, 1, mnYear + Else + 'go to the first day of the current month + ChangeValue 1, mnMonth, mnYear + End If + + Case vbKeyEnd + 'if control is down, go to last day of the year + If (Shift And vbCtrlMask) > 0 Then + ChangeValue 31, 12, mnYear + Else + 'go to the last day of the current month + ChangeValue MaxDayInMonth(mnMonth, mnYear), _ + mnMonth, mnYear + End If + + End Select +End Sub 'ctlFocus_KeyDown() + +'---------------------------------------------------------------------- +' cbxMonth_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user changes the item selected in the moth +' navigation combo box +' Inputs: none +' Outputs: None +'---------------------------------------------------------------------- +Private Sub cbxMonth_Click() + If mfIgnoreMonthYearChange Then Exit Sub + + 'if we are locked, just reset the list index + 'to the current month + If mfLocked Then + mfIgnoreMonthYearChange = True + cbxMonth.ListIndex = mnMonth - 1 + mfIgnoreMonthYearChange = False + End If + + 'change the date + ChangeValue mnDay, cbxMonth.ListIndex + 1, mnYear + + RaiseEvent Click +End Sub 'cbxMonth_Click() + +'---------------------------------------------------------------------- +' txtYear_KeyPress Event +'---------------------------------------------------------------------- +' Purpose: Called when the user presses a key in the year +' navigation text box +' Inputs: Key Pressed +' Outputs: None +'---------------------------------------------------------------------- +Private Sub txtYear_KeyPress(KeyAscii As Integer) + If mfIgnoreMonthYearChange Then Exit Sub + + 'if they pressed return, process the date change + If KeyAscii = vbKeyReturn Then + 'change the date + ChangeValue mnDay, mnMonth, Val(txtYear) + KeyAscii = 0 + End If + +End Sub 'txtYear_KeyPress + +'---------------------------------------------------------------------- +' txtYear_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user clicks the year +' navigation text box +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub txtYear_Click() + RaiseEvent Click +End Sub 'txtYear_Click() + +'---------------------------------------------------------------------- +' txtYear_GotFocus Event +'---------------------------------------------------------------------- +' Purpose: Called when the user moved into the year text box +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub txtYear_GotFocus() + 'select all the text that is there + txtYear.SelStart = 0 + txtYear.SelLength = Len(txtYear.Text) +End Sub + +'---------------------------------------------------------------------- +' txtYear_LostFocus Event +'---------------------------------------------------------------------- +' Purpose: Called when the user moved out of the year text box +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub txtYear_LostFocus() + If mnYear <> Val(txtYear.Text) Then + ChangeValue mnDay, mnMonth, Val(txtYear.Text) + End If +End Sub 'txtYear_LostFocus() + + +'---------------------------------------------------------------------- +' btnNext_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user clicks the next month button +' Inputs: none +' Outputs: None +'---------------------------------------------------------------------- +Private Sub btnNext_Click() + Dim dtTemp As Date + dtTemp = DateSerial(mnYear, mnMonth, mnDay) + dtTemp = DateAdd("m", 1, dtTemp) + ChangeValue VBA.Day(dtTemp), VBA.Month(dtTemp), VBA.Year(dtTemp) + ctlFocus.SetFocus + RaiseEvent Click +End Sub 'btnNext_Click() + +'---------------------------------------------------------------------- +' btnPrev_Click Event +'---------------------------------------------------------------------- +' Purpose: Called when the user clicks the previous month button +' Inputs: none +' Outputs: None +'---------------------------------------------------------------------- +Private Sub btnPrev_Click() + Dim dtTemp As Date + dtTemp = DateSerial(mnYear, mnMonth, mnDay) + dtTemp = DateAdd("m", -1, dtTemp) + ChangeValue VBA.Day(dtTemp), VBA.Month(dtTemp), VBA.Year(dtTemp) + ctlFocus.SetFocus + RaiseEvent Click +End Sub 'btnPrev_Click() + + +'====================================================================== +' Private Helper Methods +'====================================================================== + +'---------------------------------------------------------------------- +' PaintDayNames() +'---------------------------------------------------------------------- +' Purpose: Paints names of the week days above the main date grid +' Inputs: reference to the offscreen dc object +' Outputs: none +'---------------------------------------------------------------------- +Private Sub PaintDayNames(dc As OffScreenDC) + Dim rc As RECT + Dim nCol As Long + Dim fntOld As StdFont + Dim idx As Long + + 'make a copy of the day name area rect + rc.Left = mrcDayNameArea.Left + rc.Top = mrcDayNameArea.Top + rc.Right = mrcDayNameArea.Right + rc.Bottom = mrcDayNameArea.Bottom + + 'set the current font to use + Set fntOld = dc.Font + Set dc.Font = mfntDayNames + + 'fill a black rect as a border + dc.FillRect rc.Left, rc.Top, rc.Right - rc.Left, _ + rc.Bottom - rc.Top, vbBlack + + 'now draw 3d rects for each day name + rc.Top = rc.Top + 1 + rc.Bottom = rc.Bottom - 1 + + 'initialize idx to be the setting for first day of week + 'and if that setting is "use system", determine what the + 'system is using + If mnFirstDayOfWeek = vbUseSystemDayOfWeek Then + '8/4/96 is a Sunday, so if the system says the day + 'of week is other than 1, we'll figure that out + idx = WeekDay(DateSerial(1996, 8, 4), mnFirstDayOfWeek) + Else + idx = mnFirstDayOfWeek + End If 'first day of week was "use system" + + For nCol = 0 To NUMCOLS - 1 + dc.Draw3DRect (nCol * mcxColWidth) + rc.Left, rc.Top, mcxColWidth, _ + rc.Bottom - rc.Top, masDayNames(idx - 1) + + 'increment the indexer and if it's past the end + 'wrap it back around to zero + idx = idx + 1 + If idx > NUMCOLS Then idx = 1 + Next nCol + + 'reset the old font + Set dc.Font = fntOld +End Sub 'PaintDayNames() + +'---------------------------------------------------------------------- +' FastRepaint() +'---------------------------------------------------------------------- +' Purpose: Fast repaint routine for painting when only the day number +' changes and not the month or year. +' Inputs: work off screen DC +' Outputs: none +'---------------------------------------------------------------------- +Private Sub FastRepaint(dcWork As OffScreenDC) + Dim nLeft As Long + Dim nTop As Long + Dim rgbColor As Long + Dim ct As Long + Dim eAppearance As Appearances + Dim fDefBold As Boolean + Dim fDefItalic As Boolean + + 'save the initial states of bold and italic in our day font + fDefBold = mfntDayFont.Bold + fDefItalic = mfntDayFont.Italic + + 'set the font as the day font and the text + 'color as black + Set dcWork.Font = mfntDayFont + OleTranslateColor mclrDay, 0, rgbColor + dcWork.TextColor = rgbColor + + For ct = 0 To 1 + If mafDayBold(maRepaintDays(ct)) = calEffectDefault Then + 'optimize for the case where no days are bold + If mfntDayFont.Bold <> fDefBold Then + mfntDayFont.Bold = fDefBold + Set dcWork.Font = mfntDayFont + End If + Else + mfntDayFont.Bold = (mafDayBold(maRepaintDays(ct)) = calEffectOn) + Set dcWork.Font = mfntDayFont + End If 'DayBold setting is default + + If mafDayItalic(maRepaintDays(ct)) = calEffectDefault Then + 'optimize for the case where no days are italic + If mfntDayFont.Italic <> fDefItalic Then + mfntDayFont.Italic = fDefItalic + Set dcWork.Font = mfntDayFont + End If + Else + mfntDayFont.Italic = (mafDayItalic(maRepaintDays(ct)) = calEffectOn) + Set dcWork.Font = mfntDayFont + End If + + 'repaint the old day as normal + nLeft = LeftForDay(maRepaintDays(ct)) + nTop = TopForDay(maRepaintDays(ct)) + + If ct = 0 Then + eAppearance = Raised + Else + eAppearance = Selected + End If + + dcWork.Draw3DRect nLeft, nTop, _ + mcxColWidth, mcyRowHeight, _ + CStr(maRepaintDays(ct)), _ + caCenterCenter, eAppearance + + 'blast just this day to the screen + dcWork.BlastToScreen nLeft, nTop, mcxColWidth, mcyRowHeight + + Next ct + +' 'repaint the newly selected day as selected +' nLeft = LeftForDay(maRepaintDays(1)) +' nTop = TopForDay(maRepaintDays(1)) +' dcWork.Draw3DRect nLeft, nTop, _ +' mcxColWidth, mcyRowHeight, _ +' CStr(maRepaintDays(1)), _ +' caCenterCenter, Selected +' +' 'blast just this day to the screen +' dcWork.BlastToScreen nLeft, nTop, mcxColWidth, mcyRowHeight + + 'draw the focus rect on the selected day if + 'the dummy focus control has focus + If UserControl.ActiveControl Is ctlFocus Then + DrawFocusRect UserControl.hdc, mrcFocusArea + End If + + 'restore the initial states of bold and italic in our day font + mfntDayFont.Bold = fDefBold + mfntDayFont.Italic = fDefItalic + + 'reset the fast repaint flag to False + mfFastRepaint = False + +End Sub 'FastRepaint() + +'---------------------------------------------------------------------- +' MaxDayInMonth() +'---------------------------------------------------------------------- +' Purpose: Returns the max day number for a given month number and year +' Inputs: month number +' Outputs: max day number +'---------------------------------------------------------------------- +Private Function MaxDayInMonth(nMonth As Long, Optional nYear As Long = 0) As Long + Select Case nMonth + Case 9, 4, 6, 11 '30 days hath September, + 'April, June, and November + MaxDayInMonth = 30 + + Case 2 'February -- check for leapyear + 'The full rule for leap years is that they occur in + 'every year divisible by four, except that they don't + 'occur in years divisible by 100, except that they + '*do* in years divisible by 400. + If (nYear Mod 4) = 0 Then + If nYear Mod 100 = 0 Then + If nYear Mod 400 = 0 Then + MaxDayInMonth = 29 + Else + MaxDayInMonth = 28 + End If 'divisible by 400 + Else + MaxDayInMonth = 29 + End If 'divisible by 100 + Else + MaxDayInMonth = 28 + End If 'divisible by 4 + + Case Else 'All the rest have 31 + MaxDayInMonth = 31 + + End Select +End Function 'MaxDayInMonth() + +'---------------------------------------------------------------------- +' ChangeValue() +'---------------------------------------------------------------------- +' Purpose: Changes the control's current value, checking if it's OK +' and doing the necessary notifications that it's changed +' Inputs: new day, month and year +' Outputs: none +'---------------------------------------------------------------------- +Private Sub ChangeValue(nDay As Long, nMonth As Long, nYear As Long) + Dim rc As RECT 'used to invalidate smaller rects + 'if only the day number changed + + Dim fCancel As Boolean 'used in the WillChangeDate event + Dim dtOld As Date 'old date for raising in event + + 'give the developer a chance to cancel the date change + fCancel = False + RaiseEvent WillChangeDate(DateSerial(nYear, nMonth, nDay), fCancel) + If fCancel Then Exit Sub + + 'build a date using the current values + dtOld = DateSerial(mnYear, mnMonth, mnDay) + + 'check to see if it's OK to change the value + If UserControl.CanPropertyChange("Value") Then + + 'changing the month or year can make the day number + 'invalid, so check the new combination and adjust the day + 'if necessary. + If nDay > MaxDayInMonth(nMonth, nYear) Then + nDay = MaxDayInMonth(nMonth, nYear) + End If + + 'to avoid unecessary repainting, if only the day number changed + 'just invalidate the two rects where the old and new dates are + If mnMonth = nMonth And mnYear = nYear Then + + 'setup a rect for the old day + rc.Left = LeftForDay(mnDay) + rc.Top = TopForDay(mnDay) + rc.Right = rc.Left + mcxColWidth + rc.Bottom = rc.Top + mcyRowHeight + + 'invalidate it + InvalidateRect UserControl.hwnd, rc, 0 + + 'setup a rect for the new day + rc.Left = LeftForDay(nDay) + rc.Top = TopForDay(nDay) + rc.Right = rc.Left + mcxColWidth + rc.Bottom = rc.Top + mcyRowHeight + + 'invalidate it + InvalidateRect UserControl.hwnd, rc, 0 + + 'since we are only changing the current day + 'and not the current month or year, store off + 'the specific days to repaint and set the + 'fast repaint flag to true. This will cause the + 'paint routing to just repaint these two days + 'which makes the repaint considerably faster. + 'The fast repaint is reset to False automatically. + maRepaintDays(0) = mnDay + maRepaintDays(1) = nDay + mfFastRepaint = True + + 'change the value and notify those interested + mnDay = nDay + + Else + 'reset the month and year navigators if they need to be + mfIgnoreMonthYearChange = True + If cbxMonth.ListIndex <> (nMonth - 1) Then cbxMonth.ListIndex = (nMonth - 1) + If Val(txtYear.Text) <> nYear Then txtYear.Text = nYear + mfIgnoreMonthYearChange = False + + 'change the value and notify those interested + mnDay = nDay + mnMonth = nMonth + mnYear = nYear + + 'refresh the entire calendar area since we have to + 're-layout the days + InvalidateRect UserControl.hwnd, mrcCalArea, 0 + End If 'just changing the day + + 'update the new focus area based on the new day selected + mrcFocusArea.Left = LeftForDay(mnDay) + FOCUSBORDER + mrcFocusArea.Top = TopForDay(mnDay) + FOCUSBORDER + mrcFocusArea.Right = mrcFocusArea.Left + mcxColWidth - (2 * FOCUSBORDER) + mrcFocusArea.Bottom = mrcFocusArea.Top + mcyRowHeight - (2 * FOCUSBORDER) + + 'update the window (usercontrol.refresh will invalidate + 'everything so call UpdateWindow directly) + UpdateWindow UserControl.hwnd + + 'notify of the date change + UserControl.PropertyChanged "Value" + RaiseEvent DateChange(dtOld, DateSerial(mnYear, mnMonth, mnDay)) + + Else 'can't change prop + mobjRes.RaiseUserError errCantChange, Array("Value") + + End If 'can change prop +End Sub 'ChangeValue() + +'---------------------------------------------------------------------- +' LeftForDay() +'---------------------------------------------------------------------- +' Purpose: Returns the left (X) coodinate for a given day in the +' current month and year +' Inputs: day number +' Outputs: left coordinate +'---------------------------------------------------------------------- +Private Function LeftForDay(nDay As Long) As Long + 'the left coordinate for a given day is a function of the + 'weekday (column number) of the day, the column width and + 'the grid's left border + LeftForDay = ((WeekDay(DateSerial(mnYear, mnMonth, nDay), mnFirstDayOfWeek) - 1) _ + * mcxColWidth) + mrcCalArea.Left +End Function 'LeftForDay() + +'---------------------------------------------------------------------- +' TopForDay() +'---------------------------------------------------------------------- +' Purpose: Returns the top (Y) coodinate for a given day in the +' current month and year +' Inputs: day number +' Outputs: top coordinate +'---------------------------------------------------------------------- +Private Function TopForDay(nDay As Long) As Long + Dim nRow As Long + + 'the top coordinate for a given day is a function of the + 'row number of the day (day + column number of first day of month + 'divided by number of columns), the row height, and the top of the + 'entire grid + + 'we subtract 2 from the left side of the division since the + 'weekday function is 1-based and since we need to subtract an + 'additional one to make zero-base the day + nRow = (nDay + WeekDay(DateSerial(mnYear, mnMonth, 1), mnFirstDayOfWeek) - 2) \ NUMCOLS + + TopForDay = (nRow * mcyRowHeight) + mrcCalArea.Top + +End Function 'TopForDay() + +'---------------------------------------------------------------------- +' DateForRowCol() +'---------------------------------------------------------------------- +' Purpose: Returns the Date for a given row and column in the +' current calendar grid +' Inputs: row and column number (zero-based) +' Outputs: corresponding date +'---------------------------------------------------------------------- +Private Function DateForRowCol(nRow As Long, nCol As Long) As Date + Dim dtFirstDay As Date + Dim nColFirstDay As Long + Dim ctDaysDiff As Long + + Debug.Assert (nRow < NUMROWS) + Debug.Assert (nCol < NUMCOLS) + + 'get the column for the first day of the current month + 'first day is always in row 1 + dtFirstDay = DateSerial(mnYear, mnMonth, 1) + nColFirstDay = WeekDay(dtFirstDay, mnFirstDayOfWeek) - 1 + + 'how many days away is the current row and column? + ctDaysDiff = (nCol - nColFirstDay) + (NUMDAYS * nRow) + + 'calc the hit date by using date arithmetic + DateForRowCol = DateAdd("d", ctDaysDiff, dtFirstDay) +End Function 'DateForRowCol() + +'---------------------------------------------------------------------- +' GetPrevMonthDays() +'---------------------------------------------------------------------- +' Purpose: Calculates the first and last day of the previous month +' that should be displayed before the first day of the +' of the given month and year +' Inputs: current month and year +' Outputs: first and last day of prev month to display +'---------------------------------------------------------------------- +Private Sub GetPrevMonthDays(ByVal nCurMonth As Long, ByVal nCurYear As Long, nFirst As Long, nLast As Long) + Dim dtTemp As Date 'temp date + Dim nColDayOne As Long 'column of 1st day of cur month + + 'construct a date to do date math + dtTemp = DateSerial(nCurYear, nCurMonth, 1) + + 'determine the column of the first day of the current month + nColDayOne = WeekDay(dtTemp, mnFirstDayOfWeek) + + 'if the first day of the current month is in column 1, we + 'don't need to paint any days from the prev month, so return + 'zeros and -1 for the first and last value + If nColDayOne = 1 Then + nFirst = 0 + nLast = -1 + Else + 'if there are days to paint, calculate the last and + 'first day using date math + dtTemp = DateAdd("d", -1, dtTemp) + nLast = VBA.Day(dtTemp) + + dtTemp = DateAdd("d", -(nColDayOne - 2), dtTemp) + nFirst = VBA.Day(dtTemp) + End If 'no days to paint + +End Sub 'GetPrevMonthDays() + +'---------------------------------------------------------------------- +' LoadMonthNames() +'---------------------------------------------------------------------- +' Purpose: Loads the names of the months into the month selector +' combo box +' Inputs: none +' Outputs: none +'---------------------------------------------------------------------- +Private Sub LoadMonthNames() + Dim nMonth As Long + + 'use the format function to return the system specified + 'long month name for each month + For nMonth = 1 To 12 + masMonthNames(nMonth - 1) = Format(DateSerial(100, nMonth, 1), "mmmm") + cbxMonth.AddItem masMonthNames(nMonth - 1) + Next nMonth +End Sub 'LoadMonthNames() + +'---------------------------------------------------------------------- +' LoadDayNames() +'---------------------------------------------------------------------- +' Purpose: Loads the names of the days into the day name string array +' Inputs: none +' Outputs: none +'---------------------------------------------------------------------- +Private Sub LoadDayNames() + Dim nDay As Long + Dim sFormat As String + + Select Case mnDayNameFormat + Case calShortName, calMediumName + sFormat = "ddd" + + Case calLongName + sFormat = "dddd" + End Select + + For nDay = 1 To 7 + 'if they want the short format, just take the first char + If mnDayNameFormat = calShortName Then + masDayNames(nDay - 1) = Left$(Format(DateSerial(1996, 8, 3 + nDay), sFormat), 1) + Else + masDayNames(nDay - 1) = Format(DateSerial(1996, 8, 3 + nDay), sFormat) + End If + Next nDay +End Sub 'LoadDayNames() + +'---------------------------------------------------------------------- +' CopyFont +'---------------------------------------------------------------------- +' Purpose: Copies the contents of one StdFont object to another +' Inputs: source and destination StdFont object +' Outputs: none +'---------------------------------------------------------------------- +Private Sub CopyFont(fntSource As StdFont, fntDest As StdFont) + 'daveste -- 8/14/96 + 'REVIEW: Is there a better way to do this???!!! + + 'if the destination is nothing, create a new font object + If fntDest Is Nothing Then Set fntDest = New StdFont + + fntDest.Bold = fntSource.Bold + fntDest.Charset = fntSource.Charset + fntDest.Italic = fntSource.Italic + fntDest.Name = fntSource.Name + fntDest.Size = fntSource.Size + fntDest.Strikethrough = fntSource.Strikethrough + fntDest.Underline = fntSource.Underline + fntDest.Weight = fntSource.Weight +End Sub 'CopyFont() + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALENDAR.CTX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALENDAR.CTX new file mode 100644 index 0000000..5be2c41 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALENDAR.CTX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALTEST.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALTEST.FRM new file mode 100644 index 0000000..e6c87dc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CALTEST.FRM @@ -0,0 +1,314 @@ +VERSION 5.00 +Object = "*\AMSVBCldr.vbp" +Begin VB.Form Form2 + Caption = "Calendar Test" + ClientHeight = 5490 + ClientLeft = 60 + ClientTop = 345 + ClientWidth = 7950 + LinkTopic = "Form2" + ScaleHeight = 5490 + ScaleWidth = 7950 + StartUpPosition = 2 'CenterScreen + Begin VB.Frame Frames + Caption = "DayBold and DayItalic" + Height = 855 + Index = 2 + Left = 3840 + TabIndex = 12 + Top = 1800 + Width = 3975 + Begin VB.ComboBox cbxDayNum + Height = 315 + Left = 1260 + Style = 2 'Dropdown List + TabIndex = 14 + Top = 360 + Width = 795 + End + Begin VB.CheckBox chkDayItalic + Caption = "Italic" + Height = 255 + Left = 2520 + TabIndex = 16 + Top = 480 + Width = 1215 + End + Begin VB.CheckBox chkDayBold + Caption = "Bold" + Height = 255 + Left = 2520 + TabIndex = 15 + Top = 240 + Width = 1335 + End + Begin VB.Label lbl + AutoSize = -1 'True + Caption = "Day Number:" + Height = 195 + Index = 2 + Left = 180 + TabIndex = 13 + Top = 420 + Width = 930 + End + End + Begin VB.TextBox txtValue + Height = 285 + Left = 3780 + TabIndex = 2 + Top = 240 + Width = 1995 + End + Begin VB.CommandButton btnSetValue + Caption = "Set" + Height = 315 + Left = 5880 + TabIndex = 3 + Top = 240 + Width = 615 + End + Begin VB.Frame Frames + Caption = "Day Name Format" + Height = 1095 + Index = 0 + Left = 6180 + TabIndex = 8 + Top = 600 + Width = 1575 + Begin VB.OptionButton rbNameFormats + Caption = "Short" + Height = 195 + Index = 0 + Left = 120 + TabIndex = 9 + Top = 240 + Width = 1035 + End + Begin VB.OptionButton rbNameFormats + Caption = "Medium" + Height = 195 + Index = 1 + Left = 120 + TabIndex = 10 + Top = 510 + Width = 1035 + End + Begin VB.OptionButton rbNameFormats + Caption = "Long" + Height = 195 + Index = 2 + Left = 120 + TabIndex = 11 + Top = 780 + Width = 1035 + End + End + Begin VB.Frame Frames + Caption = "Navigation Options" + Height = 1095 + Index = 1 + Left = 3780 + TabIndex = 4 + Top = 600 + Width = 2295 + Begin VB.CheckBox chkMonthRO + Caption = "Month Read-Only" + Height = 195 + Left = 120 + TabIndex = 5 + Top = 240 + Width = 1815 + End + Begin VB.CheckBox chkYearRO + Caption = "Year Read-Only" + Height = 195 + Left = 120 + TabIndex = 6 + Top = 540 + Width = 1815 + End + Begin VB.CheckBox chkShowIterration + Caption = "Show Iterration Buttons" + Height = 195 + Left = 120 + TabIndex = 7 + Top = 840 + Width = 1995 + End + End + Begin VB.ListBox lbxEvents + Height = 2235 + Left = 0 + TabIndex = 19 + Top = 3240 + Width = 7875 + End + Begin VB.CheckBox chkShowWillChange + Caption = "Show WillChangeDate Message" + Height = 195 + Left = 3900 + TabIndex = 17 + Top = 2880 + Width = 2715 + End + Begin MSVBCalendar.Calendar Calendar1 + Height = 2895 + Left = 120 + TabIndex = 0 + Top = 120 + Width = 3495 + _ExtentX = 6165 + _ExtentY = 5106 + Day = 15 + Month = 10 + Year = 1996 + BeginProperty DayNameFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + BeginProperty DayFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + End + Begin VB.Label lbl + AutoSize = -1 'True + Caption = "Current Date (Value):" + Height = 195 + Index = 0 + Left = 3780 + TabIndex = 1 + Top = 0 + Width = 1485 + End + Begin VB.Label lbl + AutoSize = -1 'True + Caption = "Events:" + Height = 195 + Index = 1 + Left = 120 + TabIndex = 18 + Top = 3000 + Width = 540 + End +End +Attribute VB_Name = "Form2" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Private m_fIgnoreEvent As Boolean + +Private Sub btnSetValue_Click() + Calendar1.Value = DateValue(txtValue.Text) +End Sub + +Private Sub Calendar1_DateChange(ByVal OldDate As Date, ByVal NewDate As Date) + txtValue.Text = NewDate + AddEvent "DateChange: OldDate = " & OldDate & ", NewDate = " & NewDate +End Sub + +Private Sub Calendar1_DblClick() + AddEvent "DblClick: Current Date = " & Calendar1.Value +End Sub + +Private Sub Calendar1_WillChangeDate(ByVal NewDate As Date, Cancel As Boolean) + Dim sPrompt As String + + AddEvent "WillChangeDate: NewDate = " & NewDate + If Me.chkShowWillChange Then + sPrompt = "Date will change from " & Calendar1.Value & " to " & NewDate & "." & vbCrLf & "Will you allow the change?" + If MsgBox(sPrompt, vbYesNo + vbQuestion, "WillChangeDate Event") = vbNo Then + AddEvent "Change Denied -- Cancel set to True in WillChange event" + Cancel = True + End If + Calendar1.Refresh + End If +End Sub + +Private Sub cbxDayNum_Click() + m_fIgnoreEvent = True + + If Calendar1.DayBold(cbxDayNum.Text) Then + chkDayBold.Value = 1 + Else + chkDayBold.Value = 0 + End If + + If Calendar1.DayItalic(cbxDayNum.Text) Then + chkDayItalic.Value = 1 + Else + chkDayItalic.Value = 0 + End If + + m_fIgnoreEvent = False +End Sub + +Private Sub chkDayBold_Click() + If Not m_fIgnoreEvent Then + Calendar1.DayBold(cbxDayNum.Text) = CBool(chkDayBold.Value) + Calendar1.Refresh + End If +End Sub + +Private Sub chkDayItalic_Click() + If Not m_fIgnoreEvent Then + Calendar1.DayItalic(cbxDayNum.Text) = CBool(chkDayItalic.Value) + Calendar1.Refresh + End If +End Sub + +Private Sub chkMonthRO_Click() + Calendar1.MonthReadOnly = CBool(chkMonthRO.Value) +End Sub + +Private Sub chkShowIterration_Click() + Calendar1.ShowIterrationButtons = CBool(chkShowIterration.Value) +End Sub + +Private Sub chkYearRO_Click() + Calendar1.YearReadOnly = CBool(chkYearRO.Value) +End Sub + +Private Sub Form_Load() + Dim nDay As Long + + txtValue.Text = Calendar1.Value + rbNameFormats(Calendar1.DayNameFormat).Value = True + chkMonthRO.Value = Abs(Calendar1.MonthReadOnly) + chkYearRO.Value = Abs(Calendar1.YearReadOnly) + chkShowIterration.Value = Abs(Calendar1.ShowIterrationButtons) + Me.Caption = "Calendar Version " & Calendar1.Version + + For nDay = 1 To 31 + cbxDayNum.AddItem nDay + Next nDay + cbxDayNum.ListIndex = 0 +End Sub + +Private Sub rbNameFormats_Click(Index As Integer) + Calendar1.DayNameFormat = Index +End Sub + +Private Sub AddEvent(sText As String) + If lbxEvents.ListCount > 1000 Then + lbxEvents.Clear + End If + lbxEvents.AddItem sText + lbxEvents.ListIndex = lbxEvents.NewIndex +End Sub + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CLDRTEST.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CLDRTEST.VBP new file mode 100644 index 0000000..52499cc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CLDRTEST.VBP @@ -0,0 +1,34 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\vb5\stdole2.tlb#OLE Automation +Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0; COMDLG32.OCX +Form=CalTest.frm +Object=*\AMSVBCldr.vbp +Startup="Form2" +HelpFile="" +Title="CalendarTest" +Command32="" +Name="CalendarTest" +HelpContextID="0" +Description="Calendar Test Project" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CondComp="PREV_NEXT_3D = 1" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CLNDR.VBG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CLNDR.VBG new file mode 100644 index 0000000..6c3fa83 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/CLNDR.VBG @@ -0,0 +1,3 @@ +VBGROUP 5.0 +Project=MSVBCldr.vbp +StartupProject=CldrTest.vbp diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/MSVBCLDR.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/MSVBCLDR.VBP new file mode 100644 index 0000000..1fafe63 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/MSVBCLDR.VBP @@ -0,0 +1,42 @@ +Type=Control +UserControl=Calendar.ctl +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\vb5\stdole2.tlb#OLE Automation +Module=Utils; Utils.bas +Class=OffScreenDC; OffScrn.cls +Class=ResLoader; ResLoad.cls +PropertyPage=Appear.pag +Form=About.frm +ResFile32="res\calendar.RES" +IconForm="Calendar" +Startup="(None)" +HelpFile="" +Title="MSVBCalendar" +ExeName32="MSVBCldr.ocx" +Command32="" +Name="MSVBCalendar" +HelpContextID="0" +Description="Microsoft VB Calendar Controls" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=13 +AutoIncrementVer=1 +ServerSupportFiles=0 +VersionComments="This file contains the Microsoft VB Calendar Controls which were authored in Visual Basic 5.0" +VersionCompanyName="Microsoft Corp." +VersionFileDescription="Microsoft VB Calendar Controls" +CondComp="PREV_NEXT_3D = 1" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/OFFSCRN.CLS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/OFFSCRN.CLS new file mode 100644 index 0000000..3558879 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/OFFSCRN.CLS @@ -0,0 +1,421 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "OffScreenDC" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +'---------------------------------------------------------------------- +' OffScreenDC.cls +'---------------------------------------------------------------------- +' Implementation file for OffScreenDC class +' This class represents an off screen DC that is useful +' for enabling flick-free and smooth repainting of things +' like controls. +' +' There are also a couple helper methods that do interesting +' GDI operations like drawing 3d rectangles and fast rectangles +'---------------------------------------------------------------------- +' Copyright (c) 1996, Microsoft Corporation +' All Rights Reserved +' +' Information Contained Herin is Proprietary and Confidential +'---------------------------------------------------------------------- + +Option Explicit + +'====================================================================== +' Public Enumerations +'====================================================================== +Public Enum CaptionAlignments + caCenterCenter + cacenterleft + caCenterRight + caTopCenter + caTopLeft + caTopRight + caBottomCenter + caBottomLeft + caBottomright +End Enum + +Public Enum Appearances + Raised + Flat + Sunken + Selected +End Enum + +'====================================================================== +' Private Constants +'====================================================================== +Private Const BORDER_WIDTH As Long = 3 + +'====================================================================== +' Private Data Members +'====================================================================== +Private mhdcWork As Long 'off-screen HDC +Private mhdcCtl As Long 'actual HDC of the control +Private mhbmpOld As Long 'hBmp of the old bitmap in the off-sceen DC +Private mfntCurrent As IFont 'font to use when drawing text +Private mhfntOld As Long 'hFont of the old font in the off-screen dc + +Private mcxCtlWidth As Long 'width of the control's surface +Private mcyCtlHeight As Long 'height of the control's surface + +Private mrgb3DFace As Long 'color to use for the 3d face +Private mrgb3DHighlight As Long 'color to use for the 3d highlight +Private mrgb3DShadow As Long 'color to use for the 3d shadow + +'====================================================================== +' Initialize and Terminate Events +'====================================================================== + +'---------------------------------------------------------------------- +' Class_Terminate() +'---------------------------------------------------------------------- +' Purpose: Called when the object is destroyed--do clean-up work +' Inputs: None +' Outputs: None +'---------------------------------------------------------------------- +Private Sub Class_Terminate() + Dim hBmp As Long + + 'if our handles are NULL then just get out + If mhdcWork <> 0 Then + 'select the old font back into the off-screen dc + SelectObject mhdcWork, mhfntOld + + 'select the old bitmap back into the off-screen DC + hBmp = SelectObject(mhdcWork, mhbmpOld) + + 'delete the bitmap we were using + DeleteObject hBmp + + 'and now delete the off-screen DC to totally clean up + DeleteDC mhdcWork + End If 'we were initialized + +End Sub 'Class_Terminate() + +'====================================================================== +' Public Methods and Properties +'====================================================================== + +'---------------------------------------------------------------------- +' BackColor Get/Let +'---------------------------------------------------------------------- +' Purpose: To get and let the current background color of the DC +'---------------------------------------------------------------------- +Public Property Get BackColor() As Long + 'assert that we are initialized + Debug.Assert mhdcWork <> 0 + + 'return the current background color + BackColor = GetBkColor(mhdcWork) +End Property 'BackColor Get + +Public Property Let BackColor(rgbNew As Long) + 'assert that we are initialized + Debug.Assert mhdcWork <> 0 + + 'set the new background color + SetBkColor mhdcWork, rgbNew +End Property 'BackColor Let + +'---------------------------------------------------------------------- +' TextColor Get/Let +'---------------------------------------------------------------------- +' Purpose: To get and let the current text color of the DC +'---------------------------------------------------------------------- +Public Property Get TextColor() As Long + 'assert that we are initialized + Debug.Assert mhdcWork <> 0 + + 'return the current Text color + TextColor = GetTextColor(mhdcWork) +End Property 'TextColor Get + +Public Property Let TextColor(rgbNew As Long) + 'assert that we are initialized + Debug.Assert mhdcWork <> 0 + + 'set the new text color + SetTextColor mhdcWork, rgbNew +End Property 'TextColor Let + +'---------------------------------------------------------------------- +' Font Get/Set +'---------------------------------------------------------------------- +' Purpose: To get and set the current font to use on the DC +'---------------------------------------------------------------------- +Public Property Get Font() As StdFont + 'just return the reference we currently are holding + Set Font = mfntCurrent +End Property 'Font Get + +Public Property Set Font(NewFont As StdFont) + 'make sure we're initialized first + 'must call Initialize before setting the font! + Debug.Assert (mhdcWork <> 0) + + 'below we will set a local member variable equal to the + 'object passed in. Even though the type passed in is a + 'StdFont, our member variable is of type IFont. A StdFont + 'can be casted (QI) to an IFont, and the IFont interface gives + 'us access to the hFont property, which we need in order to + 'set the current font of the off-screen device context. + + 'if this is the first time the font is being set, + 'grab the existing hFont handle so we can restore it + 'before deleting the DC + If mfntCurrent Is Nothing Then + Set mfntCurrent = NewFont + mhfntOld = SelectObject(mhdcWork, mfntCurrent.hFont) + Else + Set mfntCurrent = NewFont + + 'if this is being set to Nothing, restore the old font + If mfntCurrent Is Nothing Then + SelectObject mhdcWork, mhfntOld + Else + SelectObject mhdcWork, mfntCurrent.hFont + End If 'new font is nothing + + End If 'first time setting font + +End Property 'Font Set + +'---------------------------------------------------------------------- +' 3D Colors Properties +'---------------------------------------------------------------------- +' Purpose: To return the RGB values for 3d colors +'---------------------------------------------------------------------- +Public Property Get ThreeDFaceColor() As Long + ThreeDFaceColor = mrgb3DFace +End Property + +Public Property Get ThreeDHighlightColor() As Long + ThreeDHighlightColor = mrgb3DHighlight +End Property + +Public Property Get ThreeDShadowColor() As Long + ThreeDShadowColor = mrgb3DShadow +End Property + +'---------------------------------------------------------------------- +' Initialize() +'---------------------------------------------------------------------- +' Purpose: To initialize the object with the screen DC from which we +' will create the off-screen DC +' Inputs: The user control +' Outputs: none +'---------------------------------------------------------------------- +Public Sub Initialize(CtlHdc As Long, CtlWidth As Long, CtlHeight As Long) + Dim hBmp As Long + + 'assert that the inputs are valid + 'and that we haven't already called Initialize + Debug.Assert (CtlHdc <> 0) + Debug.Assert (mhdcWork = 0) + + 'store the HDC of the control in our private variable + mhdcCtl = CtlHdc + + 'capture the width and height of the control + mcxCtlWidth = CtlWidth + mcyCtlHeight = CtlHeight + + 'create the off-sceen DC + mhdcWork = CreateCompatibleDC(mhdcCtl) + + 'create a compatible bitmap from the control DC + 'that is the same size as the control itself + hBmp = CreateCompatibleBitmap(mhdcCtl, mcxCtlWidth, mcyCtlHeight) + + 'select that new bitmap into the off-screen DC + 'and save the old bitmap handle so we can reselect + 'it back in before we destroy the off-screen DC + mhbmpOld = SelectObject(mhdcWork, hBmp) +End Sub 'Initialize() + +'---------------------------------------------------------------------- +' FillRect() +'---------------------------------------------------------------------- +' Purpose: To fill a rectangle on the off-screen DC with a specified +' color in a fast way +' Inputs: The rectangle to fill and color to use +' Outputs: none +'---------------------------------------------------------------------- +Public Sub FillRect(nLeft As Long, nTop As Long, nWidth As Long, nHeight As Long, rgbColor As Long, Optional sCaption As String = "", Optional CaptionAlign As CaptionAlignments = caCenterCenter) + Dim nX As Long 'X for drawing caption text + Dim nY As Long 'Y for drawing caption text + Dim rc As RECT 'rect struct to pass to the GDI + Dim szTextExtent As Size 'pixel size of caption + + 'assert that we've been initialized already + 'and check the inputs + Debug.Assert mhdcWork <> 0 + Debug.Assert rgbColor >= 0 + + 'set the back color of the DC to the color desired + Me.BackColor = rgbColor + + 'calculate the caption X and Y (centered) if the caption + 'is not an empty string + If Len(sCaption) > 0 Then + + 'get the pixel width of the Caption + GetTextExtentPoint32 mhdcWork, sCaption, Len(sCaption), szTextExtent + + 'determine the X value based on the alignment chosen + Select Case CaptionAlign + Case caCenterCenter, caTopCenter, caBottomCenter + nX = ((nWidth - szTextExtent.cx) \ 2) + nLeft + + Case caCenterRight, caTopRight, caBottomright + nX = nWidth - BORDER_WIDTH - szTextExtent.cx + nLeft + + Case cacenterleft, caTopLeft, caBottomLeft + nX = nLeft + BORDER_WIDTH + End Select + + 'determine the Y value base on the alignment chosen + Select Case CaptionAlign + Case caCenterCenter, caCenterRight, cacenterleft + nY = ((nHeight - szTextExtent.cy) \ 2) + nTop + + Case caTopCenter, caTopLeft, caTopRight + nY = nTop + BORDER_WIDTH + + Case caBottomCenter, caBottomLeft, caBottomright + nY = nHeight - BORDER_WIDTH - szTextExtent.cy + nTop + + End Select + End If 'caption is not "" + + 'assign the input values to the rect struct + rc.Left = nLeft + rc.Top = nTop + rc.Right = nWidth + nLeft + rc.Bottom = nHeight + nTop + + 'ExtTextOut is one of the fastest ways to fill a rectangular + 'area on a DC and is used here to fill our rect + ExtTextOut mhdcWork, nX, nY, ETO_OPAQUE + ETO_CLIPPED, rc, sCaption, Len(sCaption), 0 + +End Sub 'FillRect + +'---------------------------------------------------------------------- +' Draw3DRect() +'---------------------------------------------------------------------- +' Purpose: To draw a 3D looking rectangle on the off-screen DC +' Inputs: The rectangle to make 3d and optionally a caption to +' display centered in the rect +' Outputs: none +'---------------------------------------------------------------------- +Public Sub Draw3DRect(ByVal nLeft As Long, ByVal nTop As Long, ByVal nWidth As Long, ByVal nHeight As Long, Optional sCaption As String = "", Optional CaptionAlign As CaptionAlignments = caCenterCenter, Optional Appearance As Appearances = Raised) + Dim rgbLowerRight As Long 'color to use for the lower right + Dim rgbUpperLeft As Long 'color to use for the upper left + + 'assert that we've been initialized already + 'and check the inputs + Debug.Assert mhdcWork <> 0 + + 'if we haven't gotten the system colors for 3d effects + 'get them first + If mrgb3DFace = 0 Then + mrgb3DFace = GetSysColor(COLOR_BTNFACE) + mrgb3DHighlight = GetSysColor(COLOR_BTNHIGHLIGHT) + mrgb3DShadow = GetSysColor(COLOR_BTNSHADOW) + End If + + 'set the lower-right and upper-left colors based on the + 'desired appearance + Select Case Appearance + Case Flat + rgbLowerRight = mrgb3DShadow + rgbUpperLeft = mrgb3DShadow + + Case Raised + rgbLowerRight = mrgb3DShadow + rgbUpperLeft = mrgb3DHighlight + + Case Sunken + rgbLowerRight = mrgb3DHighlight + rgbUpperLeft = mrgb3DShadow + + Case Selected + rgbLowerRight = mrgb3DHighlight + rgbUpperLeft = vbBlack + + End Select + + 'fill the rect with the shadow color (or hightlight if sunken) + Me.FillRect nLeft, nTop, nWidth, nHeight, rgbLowerRight + + 'now pull the right and bottom edges in by 1 pixel + nWidth = nWidth - 1 + nHeight = nHeight - 1 + + 'fill the rect with the 3d highlight color (or shadow if sunken) + Me.FillRect nLeft, nTop, nWidth, nHeight, rgbUpperLeft + + 'finally pull in the left and top edges by 1 pixel + nLeft = nLeft + 1 + nTop = nTop + 1 + nWidth = nWidth - 1 + nHeight = nHeight - 1 + + 'change the color to the 3d face color + 'and fill the rect passing the desired caption + Me.FillRect nLeft, nTop, nWidth, nHeight, mrgb3DFace, sCaption, CaptionAlign + + 'if the appearance setting was Selected, invert the rect + If Appearance = Selected Then + InvertRect nLeft, nTop, nWidth, nHeight + End If 'appearance = selected + +End Sub 'Draw3dRect + +'---------------------------------------------------------------------- +' InvertRect() +'---------------------------------------------------------------------- +' Purpose: To invert a particular rect on the bitmap +' Inputs: The area to invert +' Outputs: none +'---------------------------------------------------------------------- +Public Sub InvertRect(nLeft As Long, nTop As Long, nWidth As Long, nHeight As Long) + Dim rc As RECT + + rc.Left = nLeft + rc.Top = nTop + rc.Right = nLeft + nWidth + rc.Bottom = nTop + nHeight + + Utils.InvertRect mhdcWork, rc +End Sub 'InvertRect() + +'---------------------------------------------------------------------- +' BlastToScreen() +'---------------------------------------------------------------------- +' Purpose: Blasts the contents of the off-screen DC to the control's +' on-screen surface +' Inputs: none +' Outputs: none +'---------------------------------------------------------------------- +Public Sub BlastToScreen(Optional Left As Long = 0, Optional Top As Long = 0, Optional Width As Long = -1, Optional Height As Long = -1) + If Width = -1 Then Width = mcxCtlWidth + If Height = -1 Then Height = mcyCtlHeight + + 'use bitblt to blast the contents of the off-screen dc to the control + BitBlt mhdcCtl, Left, Top, Width, Height, mhdcWork, _ + Left, Top, SRCCOPY +End Sub 'BlastToScreen() + +'====================================================================== +' Private Helper Methods +'====================================================================== + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/CALENDAR.RC b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/CALENDAR.RC new file mode 100644 index 0000000..e04c217 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/CALENDAR.RC @@ -0,0 +1,13 @@ +#define STRING_BASE 0 + +#define IDS_ERR_PROP_VALUE STRING_BASE + 1 +#define IDS_ERR_PROP_VALUE_RANGE STRING_BASE + 2 +#define IDS_ERR_CANT_CHANGE STRING_BASE + 3 + +STRINGTABLE +BEGIN + IDS_ERR_PROP_VALUE, "Invalid Property Value. The value passed is not a valid value for the %1 property." + IDS_ERR_PROP_VALUE_RANGE, "Invalid Property Value. The value for the %1 property must be between %2 and %3." + IDS_ERR_CANT_CHANGE, "The %1 property cannot be changed at this time." +END + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/CALENDAR.RES b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/CALENDAR.RES new file mode 100644 index 0000000..4c160f2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/CALENDAR.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/NEXT.BMP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/NEXT.BMP new file mode 100644 index 0000000..9b9d809 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/NEXT.BMP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/PREV.BMP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/PREV.BMP new file mode 100644 index 0000000..b3b0c8e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RES/PREV.BMP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RESLOAD.CLS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RESLOAD.CLS new file mode 100644 index 0000000..3968c8a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/RESLOAD.CLS @@ -0,0 +1,99 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "ResLoader" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +'---------------------------------------------------------------------- +' ResLoader.cls +'---------------------------------------------------------------------- +' Implementation file for the ResLoader class which is responsible +' for locating and loading resources such as strings and images. +'---------------------------------------------------------------------- +' Copyright (c) 1996, Microsoft Corporation +' All Rights Reserved +' +' Information Contained Herin is Proprietary and Confidential +'---------------------------------------------------------------------- + +Option Explicit + +Private Const ERR_BASE = vbObjectError + +'====================================================================== +' Public Enumerations +'====================================================================== +Public Enum ErrorIDs + errPropValue = ERR_BASE + 1 + errPropValueRange = ERR_BASE + 2 + errCantChange = ERR_BASE + 3 +End Enum 'ErrorIDs + +'====================================================================== +' Public Methods +'====================================================================== + +'---------------------------------------------------------------------- +' LoadResString() +'---------------------------------------------------------------------- +' Purpose: Loads the desired string matching the ID passed in. +' Inputs: ID of string to load +' Outputs: none +'---------------------------------------------------------------------- +Public Function LoadResString(StringID As Long) As String + LoadResString = VB.LoadResString(StringID) +End Function 'LoadResString + +'---------------------------------------------------------------------- +' RaiseUserError() +'---------------------------------------------------------------------- +' Purpose: Loads an error string matching the ID passed in and matches +' parameter values passed in with markers in the string +' Inputs: ID of string to load, parameters to stuff +' Outputs: none +'---------------------------------------------------------------------- +Public Sub RaiseUserError(ErrorID As ErrorIDs, Params As Variant) + Dim sErrText As String 'raw error string + Dim nLBound As Long 'lbound of the param array + Dim nUBound As Long 'ubound of the param array + Dim nPos As Long 'position marker in the string + Dim ct As Long 'loop counter + + 'get the raw string + sErrText = LoadResString(ErrorID - ERR_BASE) + + 'The Params() array is a one-dimentional, zero-based array of + 'variant values created by using the Array function in VBA. + 'the values in this must be coerceable to strings. + + 'Param markers are signalled by a "%" format where the + 'is the number of the param. This routine will match the first + 'element of the array to "%1", the second to "%2" and so on. + + 'This routine replaces these param markers with the supplied + 'in the param array and then displays the resulting error message. + 'Extra params are ignored and if less params are passed in than + 'param markers, the unreplaced markers will stay as is. + + 'get UBound and LBound of the array + nLBound = LBound(Params) + nUBound = UBound(Params) + + 'loop over all the parameters + For ct = nLBound To nUBound + 'find the param marker + nPos = InStr(sErrText, "%" & (ct + 1)) + + If nPos > 0 Then + 'replace the param marker with the param value + sErrText = Left$(sErrText, nPos - 1) & _ + Params(ct) & Mid$(sErrText, nPos + 2) + End If 'found the param + Next ct + + 'finally, raise the error + Err.Raise ErrorID, "MSVBCalendar", sErrText +End Sub 'RaiseUserError() diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/UTILS.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/UTILS.BAS new file mode 100644 index 0000000..ed6bf2e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/CALENDAR/UTILS.BAS @@ -0,0 +1,62 @@ +Attribute VB_Name = "Utils" +Option Explicit + +Type RECT + Left As Long + Top As Long + Right As Long + Bottom As Long +End Type + +Type Size + cx As Long + cy As Long +End Type + +Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal wOptions As Long, lpRect As RECT, ByVal lpString As String, ByVal nCount As Long, ByVal lpDx As Long) As Long +Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long +Declare Function GetBkColor Lib "gdi32" (ByVal hdc As Long) As Long +Declare Function GetTextColor Lib "gdi32" (ByVal hdc As Long) As Long +Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long +Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long +Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long +Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long +Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long +Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long +Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long +Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long +Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As Size) As Long +Declare Function InvertRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long +Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long +Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long +Declare Function DrawFocusRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long +Declare Sub OleTranslateColor Lib "oleaut32.dll" (ByVal ColorIn As Long, ByVal hPal As Long, ByRef RGBColorOut As Long) + +Public Const ETO_OPAQUE = 2 +Public Const ETO_CLIPPED = 4 + +Public Const SRCCOPY = &HCC0020 ' (DWORD) dest = source + +Public Const COLOR_SCROLLBAR = 0 +Public Const COLOR_BACKGROUND = 1 +Public Const COLOR_ACTIVECAPTION = 2 +Public Const COLOR_INACTIVECAPTION = 3 +Public Const COLOR_MENU = 4 +Public Const COLOR_WINDOW = 5 +Public Const COLOR_WINDOWFRAME = 6 +Public Const COLOR_MENUTEXT = 7 +Public Const COLOR_WINDOWTEXT = 8 +Public Const COLOR_CAPTIONTEXT = 9 +Public Const COLOR_ACTIVEBORDER = 10 +Public Const COLOR_INACTIVEBORDER = 11 +Public Const COLOR_APPWORKSPACE = 12 +Public Const COLOR_HIGHLIGHT = 13 +Public Const COLOR_HIGHLIGHTTEXT = 14 +Public Const COLOR_BTNFACE = 15 +Public Const COLOR_BTNSHADOW = 16 +Public Const COLOR_GRAYTEXT = 17 +Public Const COLOR_BTNTEXT = 18 +Public Const COLOR_INACTIVECAPTIONTEXT = 19 +Public Const COLOR_BTNHIGHLIGHT = 20 + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/BIN/DA_VB.EXE b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/BIN/DA_VB.EXE new file mode 100644 index 0000000..a090bfc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/BIN/DA_VB.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/COMMON.JS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/COMMON.JS new file mode 100644 index 0000000..b91df33 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/COMMON.JS @@ -0,0 +1,159 @@ +// Hilites the text in the code sample +// oStart - reference to start of block +// sText - string to find and hilite +function HiliteText(oStart, sText) +{ + + var oRng = document.body.createTextRange(); + oRng.moveToElementText(oStart); + var oRngFixed = oRng.duplicate(); + + if (typeof(HiliteText.tokens) == 'undefined') + { + HiliteText.tokens = new Array(1); + } + else + { + for (i = 0; i < HiliteText.tokens.length; i++) + { + if (HiliteText.tokens[i].m_sSectionID == oStart.id && HiliteText.tokens[i].m_sToken == sText) + { + return; + } + } + + HiliteText.tokens.length++; + } + + + while (oRng.findText(sText, 1000000, 6) && oRngFixed.inRange(oRng)) + { + oRng.execCommand('bold'); + oRng.collapse(false); + } + + HiliteText.tokens[HiliteText.tokens.length-1] = new CHilitedToken(oStart.id, sText); + +} + +// a tuple representing the id of the section and the token to be hilited +// the object is stored in an array to prevent the code from running twice on the same section +function CHilitedToken(sSectionID, sToken) +{ + this.m_sSectionID = sSectionID; + this.m_sToken = sToken; +} + + +// Toggles the display of the content contained within oCode +// oCode - reference to code block +// sToken - string to bolden +function ToggleSample(oCode, sToken) +{ + if (ShowHideSection(window.event.srcElement, 'Sample Code')) + { + HiliteText(oCode, sToken); + } +} + +// If hidden, show. If shown, hide. Modify the caption of the element appropriately +// Returns true if showing on return, false if hidden on return +function ShowHideSection(oHead, sText) +{ + var bRet = false; + var oChild = document.all(oHead.getAttribute('child', false)); + + if (typeof(oChild) == null) + { + return bRet; + } + + var sClass = oChild.className; + var sAction = "Show"; + if (sClass == "collapsed") + { + sAction = "Hide"; + bRet = true; // we'll be showing upon return, so return true + } + + sAction = sAction + ' ' + sText; + oChild.className = (sClass == "collapsed" ? "expanded" : "collapsed"); + oHead.innerText = sAction; + return bRet; +} + +// Set the caption of the specified element +// oElem - reference to element to modify. Typically a Hn +// sCaption - New caption for the element +// bShow - boolean indicating whether or not the element should be made visible +function SetExpandableCaption(oElem, sCaption, bShow) +{ + oElem.innerText = sCaption; + if (bShow) oElem.style.display = 'inline'; +} + +function AddStyleSheet() +{ + var sVR = '/msdn/sdk/inetsdk/help/basicSDK' // Set root for the style sheet + var sCSS = ' -1) // For all MSIE 4.0 versions + sCSS += 'IE4'; + else if(navigator.appVersion.lastIndexOf("MSIE 3.") > -1) // For all MSIE 3.0 versions + sCSS += 'IE3'; + else if(navigator.appName.lastIndexOf("Netscape") != -1) // For all Nav versions + sCSS += 'NAV'; + else + { + // do nothing. result will be basicSDK.css + } + + sCSS += '.css" TYPE="text/css">'; + document.writeln(sCSS); +} + +// Set the caption for the TOC link, and fix up the href. IE4 only +function SetTOC() +{ + if (typeof(TOC) != 'object') + return; + + // build a string for the 'Show Contents' case + var sPath = location.pathname; + + var sMask = (location.href.indexOf('ttp://') > 0) ? "/d3drm/" : "\\d3drm\\"; + + if (sPath.lastIndexOf(sMask) < 0) // doc isn't located under help + { + TOC.style.visibility = "hidden"; // in case the style sheet wasn't hooked up + +return; + } + + var iStart = sPath.lastIndexOf(sMask)+sMask.length; + sFramed = sPath.substring(0,sPath.lastIndexOf(sMask)) + + sMask+"" + + (sPath.substring(iStart) == "" ? "default.htm" : sPath.substring(iStart)); + + if (window.top != self) + { + if (window.top.frames.length>1 && window.top.frames[0].name=="TOC") + { + TOC.innerText = "Hide Contents"; + TOC.href = location.pathname; + TOC.target = "_top"; + } + } + else + { + TOC.innerText = "Show Contents"; + TOC.href = sFramed; + } + + TOC.style.visibility = "visible"; +} + +function CheckCAB(n) +{ + return true; +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/CPYRIGHT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/CPYRIGHT.HTM new file mode 100644 index 0000000..ceb74c8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/CPYRIGHT.HTM @@ -0,0 +1,212 @@ + + + +CopyRight + + + + + + + + + + + + + + + + + + + + + + +

    + + + + +
    + +NOTICE SPECIFIC TO SOFTWARE AVAILABLE ON THIS WEBSITE +

    +Any software that is made available to download from this server +("Software") +is the copyrighted work of Microsoft Corporation and/or its suppliers. Use of +the Software is governed by the terms of the end user license agreement, if +any, which accompanies or is included with the Software ("License +Agreement") +. An end user will be unable to install any Software that is accompanied by +or includes a License Agreement, unless he or she first agrees to the License +Agreement terms. +

    +The Software is made available for downloading solely for use by end users +according to the License Agreement. Any reproduction or redistribution of the +Software not in accordance with the License Agreement is expressly prohibited +by law, and may result in severe civil and criminal penalties. Violators +will be prosecuted to the maximum extent possible. +

    +WITHOUT LIMITING THE FOREGOING, COPYING OR REPRODUCTION OF THE SOFTWARE TO +ANY OTHER SERVER OR LOCATION FOR FURTHER REPRODUCTION OR REDISTRIBUTION IS +EXPRESSLY PROHIBITED. +

    +THE SOFTWARE IS WARRANTED, IF AT ALL, ONLY ACCORDING TO THE TERMS OF THE +LICENSE AGREEMENT. EXCEPT AS WARRANTED IN THE LICENSE AGREEMENT, MICROSOFT +CORPORATION HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS WITH REGARD TO THE +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. +

    +RESTRICTED RIGHTS LEGEND. Any Software which is downloaded from this Server +for or on behalf of the United States of America, its agencies and/or +instrumentalities ("U.S. Government"), is provided with Restricted +Rights. Use +, duplication, or disclosure by the U.S. Government is subject to +restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in +Technical Data and Computer Software clause at DFARS 252.227-7013 or +subparagraphs (c)(1) and (2) of the Commercial Computer Software - Restricted +Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Microsoft +Corporation, One Microsoft Way, Redmond, WA 98052-6399. +

    +NOTICE SPECIFIC TO DOCUMENTS AVAILABLE ON THIS WEBSITE +

    +Permission to use Documents (such as white papers, press releases, datasheets +and FAQs) from this server ("Server") is granted, provided that (1) +the below +copyright notice appears in all copies and that both the copyright notice and +this permission notice appear, (2) use of such Documents from this Server is +for informational and non-commercial or personal use only and will not be +copied or posted on any network computer or broadcast in any media, and (3) +no modifications of any Documents are made. Use for any other purpose is +expressly prohibited by law, and may result in severe civil and criminal +penalties. Violators will be prosecuted to the maximum extent possible. +

    +Documents specified above do not include the design or layout of the Microsoft +.com website or any other Microsoft owned, operated, licensed or controlled +site. Elements of Microsoft websites are protected by trade dress and other +laws and may not be copied or imitated in whole or in part. No logo, graphic +, sound or image from any Microsoft website may be copied or retransmitted +unless expressly permitted by Microsoft. +

    +MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE +SUITABILITY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED +GRAPHICS PUBLISHED ON THIS SERVER FOR ANY PURPOSE. ALL SUCH DOCUMENTS AND +RELATED GRAPHICS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. +MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS HEREBY DISCLAIM ALL WARRANTIES AND +CONDITIONS WITH REGARD TO THIS INFORMATION, INCLUDING ALL IMPLIED WARRANTIES +AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE +AND NON-INFRINGEMENT. IN NO EVENT SHALL MICROSOFT AND/OR ITS RESPECTIVE +SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF INFORMATION AVAILABLE FROM THIS +SERVER. +

    +THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS SERVER COULD INCLUDE +TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY +ADDED TO THE INFORMATION HEREIN. MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS +MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) +DESCRIBED HEREIN AT ANY TIME. +

    +NOTICES REGARDING SOFTWARE, DOCUMENTS AND SERVICES AVAILABLE ON THIS +WEBSITE. +

    +IN NO EVENT SHALL MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT +, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +THE USE OR PERFORMANCE OF SOFTWARE, DOCUMENTS, PROVISION OF OR FAILURE TO +PROVIDE SERVICES, OR INFORMATION AVAILABLE FROM THIS SERVER. +

    +LINKS TO THIRD PARTY SITES +

    +THE LINKS IN THIS AREA WILL LET YOU LEAVE MICROSOFT'S SITE. THE LINKED SITES +ARE NOT UNDER THE CONTROL OF MICROSOFT AND MICROSOFT IS NOT RESPONSIBLE FOR +THE CONTENTS OF ANY LINKED SITE OR ANY LINK CONTAINED IN A LINKED SITE. +MICROSOFT IS PROVIDING THESE LINKS TO YOU ONLY AS A CONVENIENCE, AND THE +INCLUSION OF ANY LINK DOES NOT IMPLY ENDORSEMENT BY MICROSOFT OF THE SITE. +

    +COPYRIGHT NOTICE. Copyright © 1998 Microsoft and/or its suppliers, One +Microsoft Way, Redmond, Washington 98052-6399 U.S.A. All rights reserved. +

    +TRADEMARKS. Microsoft, Windows, Windows NT, MSN, The Microsoft Network and/or +other Microsoft products referenced herein are either trademarks or +registered trademarks of Microsoft. Other product and company names +mentioned herein may be the trademarks of their respective owners. +

    +The names of companies, products, people, characters and/or data mentioned +herein are fictitious and are in no way intended to represent any real +individual, company, product or event, unless otherwise noted. +

    +Any rights not expressly granted herein are reserved. + + +
    +

    +Contact Microsoft with +questions or problems with this service. + + +
    ** +

    + + + + +
    ** + ** © + 1998 Microsoft Corporation. All rights reserved. Terms of Use. +
    diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/DEFAULT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/DEFAULT.HTM new file mode 100644 index 0000000..c085ac3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/DEFAULT.HTM @@ -0,0 +1,206 @@ + + +DirectX Media Shell Page + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    DirectX Media SDK + DirectAnimation SDK + +
    + DirectAnimation Information +
    + + + +
    + Information Plate Cover +
    +
    + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/BG2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/BG2.GIF new file mode 100644 index 0000000..4570267 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/BG2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/BULLET2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/BULLET2.GIF new file mode 100644 index 0000000..e959009 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/BULLET2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3DLT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3DLT.JPG new file mode 100644 index 0000000..b34823d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3DLT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3DNRM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3DNRM.JPG new file mode 100644 index 0000000..034c33f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3DNRM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3D_SLD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3D_SLD.GIF new file mode 100644 index 0000000..00b4090 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/D3D_SLD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DANIMLT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DANIMLT.JPG new file mode 100644 index 0000000..5249a13 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DANIMLT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DANIMNRM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DANIMNRM.JPG new file mode 100644 index 0000000..0d6e47b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DANIMNRM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DA_SLD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DA_SLD.GIF new file mode 100644 index 0000000..bb43a54 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DA_SLD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DA_WHOOSH.MPA b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DA_WHOOSH.MPA new file mode 100644 index 0000000..1534134 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DA_WHOOSH.MPA differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DIRECTX.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DIRECTX.X new file mode 100644 index 0000000..6871d8c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DIRECTX.X @@ -0,0 +1,3105 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +template FloatKeys { + <10DD46A9-775B-11cf-8F52-0040333594A3> + DWORD nValues; + array FLOAT values[nValues]; +} + +template TimedFloatKeys { + + DWORD time; + FloatKeys tfkeys; +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template AnimationOptions { + + DWORD openclosed; + DWORD positionquality; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + +Header { + 1; + 0; + 1; +} + +Frame frm-spl_1_bevel3 { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh spl_1_bevel3 { + 163; + 0.166498;-0.910888;0.000000;, + 0.357545;-1.018321;0.150000;, + 0.357545;-1.018321;0.150000;, + -0.136299;-0.910888;1.550000;, + -0.279919;-0.875519;1.550000;, + -0.413839;-0.818920;1.550000;, + -0.536139;-0.743013;1.550000;, + -0.644897;-0.649720;1.550000;, + -0.738190;-0.540962;1.550000;, + -0.814096;-0.418662;1.550000;, + -0.870695;-0.284741;1.550000;, + -0.906063;-0.141121;1.550000;, + -0.918280;0.010275;1.550000;, + -0.906063;0.161672;1.550000;, + -0.870694;0.305292;1.550000;, + -0.814095;0.439213;1.550000;, + -0.738189;0.561513;1.550000;, + -0.644896;0.670271;1.550000;, + -0.536139;0.763563;1.550000;, + -0.413838;0.839470;1.550000;, + -0.279917;0.896069;1.550000;, + -0.136297;0.931437;1.550000;, + 0.015100;0.943654;1.550000;, + 0.166497;0.931437;1.550000;, + 0.310118;0.896069;1.550000;, + 0.444038;0.839470;1.550000;, + 0.566339;0.763564;1.550000;, + 0.675097;0.670271;1.550000;, + 0.768390;0.561513;1.550000;, + 0.844296;0.439213;1.550000;, + 0.900895;0.305292;1.550000;, + 0.936264;0.161672;1.550000;, + 0.948481;0.010275;1.550000;, + 0.936264;-0.141122;1.550000;, + 0.900896;-0.284742;1.550000;, + 0.844297;-0.418663;1.550000;, + 0.768391;-0.540963;1.550000;, + 0.675097;-0.649721;1.550000;, + 0.566339;-0.743014;1.550000;, + 0.444039;-0.818921;1.550000;, + 0.310118;-0.875520;1.550000;, + 0.166498;-0.910888;1.550000;, + 0.015100;-0.923105;1.550000;, + -0.160421;-1.059429;1.400000;, + -0.327347;-1.018320;1.400000;, + -0.483005;-0.952535;1.400000;, + -0.625045;-0.864376;1.400000;, + -0.751274;-0.756096;1.400000;, + -0.859553;-0.629867;1.400000;, + -0.947711;-0.487828;1.400000;, + -1.013497;-0.332168;1.400000;, + -1.054605;-0.165243;1.400000;, + -1.068768;0.010276;1.400000;, + -1.054605;0.185795;1.400000;, + -1.013496;0.352720;1.400000;, + -0.947710;0.508378;1.400000;, + -0.859552;0.650418;1.400000;, + -0.751271;0.776647;1.400000;, + -0.625044;0.884927;1.400000;, + -0.483004;0.973085;1.400000;, + -0.327344;1.038871;1.400000;, + -0.160419;1.079978;1.400000;, + 0.015100;1.094141;1.400000;, + 0.190619;1.079978;1.400000;, + 0.357545;1.038871;1.400000;, + 0.513204;0.973085;1.400000;, + 0.655244;0.884927;1.400000;, + 0.781473;0.776647;1.400000;, + 0.889753;0.650418;1.400000;, + 0.977911;0.508378;1.400000;, + 1.043697;0.352720;1.400000;, + 1.084805;0.185794;1.400000;, + 1.098969;0.010275;1.400000;, + 1.084805;-0.165244;1.400000;, + 1.043698;-0.332170;1.400000;, + 0.977912;-0.487829;1.400000;, + 0.889753;-0.629869;1.400000;, + 0.781472;-0.756098;1.400000;, + 0.655245;-0.864377;1.400000;, + 0.513205;-0.952536;1.400000;, + 0.357545;-1.018321;1.400000;, + 0.190620;-1.059429;1.400000;, + 0.015100;-1.073592;1.400000;, + -0.160421;-1.059429;0.150000;, + -0.136299;-0.910888;0.000000;, + -0.327347;-1.018320;0.150000;, + -0.279919;-0.875519;0.000000;, + -0.483005;-0.952535;0.150000;, + -0.413839;-0.818920;0.000000;, + -0.625045;-0.864376;0.150000;, + -0.536139;-0.743013;0.000000;, + -0.751274;-0.756096;0.150000;, + -0.644897;-0.649720;0.000000;, + -0.859553;-0.629867;0.150000;, + -0.738190;-0.540962;0.000000;, + -0.947711;-0.487828;0.150000;, + -0.814096;-0.418662;0.000000;, + -1.013497;-0.332168;0.150000;, + -0.870695;-0.284741;0.000000;, + -1.054605;-0.165243;0.150000;, + -0.906063;-0.141121;0.000000;, + -1.068768;0.010276;0.150000;, + -0.918280;0.010275;0.000000;, + -1.054605;0.185795;0.150000;, + -0.906063;0.161672;0.000000;, + -1.013496;0.352720;0.150000;, + -0.870694;0.305292;0.000000;, + -0.947710;0.508378;0.150000;, + -0.814095;0.439213;0.000000;, + -0.859552;0.650418;0.150000;, + -0.738189;0.561513;0.000000;, + -0.751271;0.776647;0.150000;, + -0.644896;0.670271;0.000000;, + -0.625044;0.884927;0.150000;, + -0.536139;0.763563;0.000000;, + -0.483004;0.973085;0.150000;, + -0.413838;0.839470;0.000000;, + -0.327344;1.038871;0.150000;, + -0.279917;0.896069;0.000000;, + -0.160419;1.079978;0.150000;, + -0.136297;0.931437;0.000000;, + 0.015100;1.094141;0.150000;, + 0.015100;0.943654;0.000000;, + 0.190619;1.079978;0.150000;, + 0.166497;0.931437;0.000000;, + 0.357545;1.038871;0.150000;, + 0.310118;0.896069;0.000000;, + 0.513204;0.973085;0.150000;, + 0.444038;0.839470;0.000000;, + 0.655244;0.884927;0.150000;, + 0.566339;0.763564;0.000000;, + 0.781473;0.776647;0.150000;, + 0.675097;0.670271;0.000000;, + 0.889753;0.650418;0.150000;, + 0.768390;0.561513;0.000000;, + 0.977911;0.508378;0.150000;, + 0.844296;0.439213;0.000000;, + 1.043697;0.352720;0.150000;, + 0.900895;0.305292;0.000000;, + 1.084805;0.185794;0.150000;, + 0.936264;0.161672;0.000000;, + 1.098969;0.010275;0.150000;, + 0.948481;0.010275;0.000000;, + 1.084805;-0.165244;0.150000;, + 0.936264;-0.141122;0.000000;, + 1.043698;-0.332170;0.150000;, + 0.900896;-0.284742;0.000000;, + 0.977912;-0.487829;0.150000;, + 0.844297;-0.418663;0.000000;, + 0.889753;-0.629869;0.150000;, + 0.768391;-0.540963;0.000000;, + 0.781472;-0.756098;0.150000;, + 0.675097;-0.649721;0.000000;, + 0.655245;-0.864377;0.150000;, + 0.566339;-0.743014;0.000000;, + 0.513205;-0.952536;0.150000;, + 0.444039;-0.818921;0.000000;, + 0.357545;-1.018321;0.150000;, + 0.310118;-0.875520;0.000000;, + 0.190620;-1.059429;0.150000;, + 0.015100;-1.073592;0.150000;, + 0.015100;-0.923105;0.000000;, + 0.166498;-0.910888;0.000000;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + + MeshNormals { + 163; + 0.113161;-0.696831;-0.708252;, + 0.291065;-0.876384;-0.383710;, + 0.291065;-0.876384;-0.383710;, + -0.113163;-0.696831;0.708252;, + -0.222526;-0.670009;0.708216;, + -0.324570;-0.627008;0.708177;, + -0.417250;-0.569585;0.708149;, + -0.499270;-0.499268;0.708139;, + -0.569586;-0.417249;0.708149;, + -0.627009;-0.324570;0.708177;, + -0.670009;-0.222524;0.708216;, + -0.696831;-0.113160;0.708253;, + -0.705958;0.000000;0.708254;, + -0.696830;0.113162;0.708253;, + -0.670008;0.222526;0.708217;, + -0.627008;0.324570;0.708177;, + -0.569585;0.417251;0.708149;, + -0.499269;0.499270;0.708138;, + -0.417251;0.569584;0.708149;, + -0.324568;0.627009;0.708177;, + -0.222523;0.670010;0.708216;, + -0.113161;0.696832;0.708251;, + 0.000000;0.705959;0.708253;, + 0.113161;0.696832;0.708251;, + 0.222524;0.670010;0.708216;, + 0.324568;0.627009;0.708177;, + 0.417250;0.569585;0.708149;, + 0.499269;0.499269;0.708139;, + 0.569585;0.417250;0.708149;, + 0.627008;0.324569;0.708177;, + 0.670008;0.222526;0.708217;, + 0.696830;0.113162;0.708253;, + 0.705958;0.000000;0.708254;, + 0.696831;-0.113160;0.708253;, + 0.670009;-0.222524;0.708217;, + 0.627008;-0.324570;0.708177;, + 0.569584;-0.417252;0.708148;, + 0.499269;-0.499270;0.708138;, + 0.417251;-0.569584;0.708149;, + 0.324568;-0.627009;0.708178;, + 0.222524;-0.670010;0.708216;, + 0.113161;-0.696831;0.708252;, + 0.000000;-0.705959;0.708253;, + -0.148024;-0.911499;0.383743;, + -0.291068;-0.876382;0.383710;, + -0.424526;-0.820105;0.383674;, + -0.545733;-0.744976;0.383648;, + -0.653003;-0.653000;0.383639;, + -0.744978;-0.545731;0.383648;, + -0.820105;-0.424526;0.383674;, + -0.876383;-0.291065;0.383710;, + -0.911499;-0.148021;0.383744;, + -0.923439;0.000000;0.383745;, + -0.911499;0.148023;0.383744;, + -0.876382;0.291069;0.383710;, + -0.820105;0.424526;0.383674;, + -0.744976;0.545734;0.383648;, + -0.653001;0.653002;0.383638;, + -0.545735;0.744975;0.383648;, + -0.424524;0.820106;0.383674;, + -0.291064;0.876384;0.383710;, + -0.148022;0.911499;0.383743;, + 0.000000;0.923439;0.383744;, + 0.148022;0.911499;0.383743;, + 0.291064;0.876384;0.383710;, + 0.424523;0.820106;0.383674;, + 0.545732;0.744977;0.383648;, + 0.653001;0.653001;0.383638;, + 0.744977;0.545733;0.383648;, + 0.820105;0.424526;0.383674;, + 0.876382;0.291068;0.383710;, + 0.911499;0.148023;0.383744;, + 0.923439;0.000000;0.383745;, + 0.911499;-0.148021;0.383744;, + 0.876383;-0.291065;0.383710;, + 0.820105;-0.424526;0.383674;, + 0.744975;-0.545736;0.383647;, + 0.653001;-0.653002;0.383638;, + 0.545735;-0.744975;0.383648;, + 0.424524;-0.820106;0.383674;, + 0.291065;-0.876383;0.383710;, + 0.148022;-0.911499;0.383743;, + 0.000000;-0.923439;0.383744;, + -0.148024;-0.911499;-0.383743;, + -0.113163;-0.696831;-0.708252;, + -0.291068;-0.876382;-0.383710;, + -0.222526;-0.670009;-0.708216;, + -0.424526;-0.820105;-0.383674;, + -0.324570;-0.627008;-0.708177;, + -0.545733;-0.744976;-0.383648;, + -0.417250;-0.569585;-0.708149;, + -0.653003;-0.653000;-0.383638;, + -0.499270;-0.499268;-0.708139;, + -0.744978;-0.545731;-0.383648;, + -0.569586;-0.417249;-0.708149;, + -0.820105;-0.424526;-0.383674;, + -0.627009;-0.324570;-0.708177;, + -0.876383;-0.291065;-0.383710;, + -0.670010;-0.222524;-0.708216;, + -0.911499;-0.148021;-0.383744;, + -0.696831;-0.113160;-0.708253;, + -0.923439;0.000000;-0.383745;, + -0.705958;0.000000;-0.708254;, + -0.911499;0.148023;-0.383744;, + -0.696830;0.113162;-0.708253;, + -0.876382;0.291069;-0.383710;, + -0.670009;0.222526;-0.708217;, + -0.820105;0.424526;-0.383674;, + -0.627008;0.324570;-0.708177;, + -0.744976;0.545734;-0.383648;, + -0.569585;0.417251;-0.708149;, + -0.653001;0.653002;-0.383638;, + -0.499269;0.499270;-0.708138;, + -0.545735;0.744975;-0.383648;, + -0.417251;0.569584;-0.708149;, + -0.424524;0.820106;-0.383674;, + -0.324568;0.627009;-0.708177;, + -0.291064;0.876384;-0.383710;, + -0.222523;0.670011;-0.708216;, + -0.148022;0.911499;-0.383743;, + -0.113161;0.696832;-0.708251;, + 0.000000;0.923439;-0.383744;, + 0.000000;0.705959;-0.708253;, + 0.148022;0.911499;-0.383743;, + 0.113161;0.696832;-0.708251;, + 0.291064;0.876384;-0.383710;, + 0.222524;0.670010;-0.708216;, + 0.424523;0.820106;-0.383674;, + 0.324568;0.627009;-0.708177;, + 0.545732;0.744977;-0.383648;, + 0.417250;0.569586;-0.708149;, + 0.653001;0.653001;-0.383638;, + 0.499269;0.499269;-0.708139;, + 0.744977;0.545733;-0.383648;, + 0.569585;0.417250;-0.708149;, + 0.820105;0.424526;-0.383674;, + 0.627008;0.324569;-0.708177;, + 0.876382;0.291068;-0.383710;, + 0.670008;0.222526;-0.708217;, + 0.911499;0.148023;-0.383744;, + 0.696830;0.113162;-0.708253;, + 0.923439;0.000000;-0.383745;, + 0.705958;0.000000;-0.708254;, + 0.911499;-0.148021;-0.383744;, + 0.696831;-0.113160;-0.708253;, + 0.876383;-0.291065;-0.383710;, + 0.670009;-0.222524;-0.708217;, + 0.820105;-0.424526;-0.383674;, + 0.627008;-0.324570;-0.708177;, + 0.744975;-0.545736;-0.383647;, + 0.569584;-0.417252;-0.708148;, + 0.653001;-0.653002;-0.383638;, + 0.499269;-0.499270;-0.708138;, + 0.545735;-0.744975;-0.383648;, + 0.417251;-0.569584;-0.708149;, + 0.424524;-0.820106;-0.383674;, + 0.324568;-0.627009;-0.708178;, + 0.291065;-0.876384;-0.383710;, + 0.222524;-0.670010;-0.708216;, + 0.148022;-0.911499;-0.383743;, + 0.000000;-0.923439;-0.383744;, + 0.000000;-0.705959;-0.708253;, + 0.113161;-0.696831;-0.708252;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + } +} +Frame frm-spl_2_bevel1 { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +14.521525,-2.989725,0.000000,1.000000;; + } +Mesh spl_2_bevel1 { + 163; + -12.974587;3.661945;0.000000;, + -12.629932;3.637324;0.150000;, + -12.629932;3.637324;0.150000;, + -13.310648;3.642719;1.550000;, + -13.364458;3.733902;1.550000;, + -13.424992;3.820336;1.550000;, + -13.491891;3.901663;1.550000;, + -13.564797;3.977526;1.550000;, + -13.643353;4.047566;1.550000;, + -13.727198;4.111426;1.550000;, + -13.815974;4.168750;1.550000;, + -13.909325;4.219179;1.550000;, + -14.006887;4.262358;1.550000;, + -13.895429;4.552947;1.550000;, + -13.783970;4.843535;1.550000;, + -13.672511;5.134125;1.550000;, + -13.561052;5.424713;1.550000;, + -13.449594;5.715302;1.550000;, + -13.338135;6.005890;1.550000;, + -13.226676;6.296480;1.550000;, + -13.115217;6.587069;1.550000;, + -13.003758;6.877657;1.550000;, + -12.892300;7.168247;1.550000;, + -12.556608;7.021969;1.550000;, + -12.235907;6.849665;1.550000;, + -11.931535;6.652678;1.550000;, + -11.644831;6.432347;1.550000;, + -11.377132;6.190012;1.550000;, + -11.129780;5.927013;1.550000;, + -10.904112;5.644691;1.550000;, + -10.701467;5.344385;1.550000;, + -10.523181;5.027434;1.550000;, + -10.370596;4.695181;1.550000;, + -10.659928;4.580377;1.550000;, + -10.949260;4.465573;1.550000;, + -11.238593;4.350769;1.550000;, + -11.527925;4.235965;1.550000;, + -11.817258;4.121161;1.550000;, + -12.106590;4.006357;1.550000;, + -12.395923;3.891553;1.550000;, + -12.685255;3.776749;1.550000;, + -12.974587;3.661945;1.550000;, + -13.263920;3.547141;1.550000;, + -13.442821;3.571551;1.400000;, + -13.490673;3.652638;1.400000;, + -13.544524;3.729531;1.400000;, + -13.604055;3.801900;1.400000;, + -13.668941;3.869416;1.400000;, + -13.738851;3.931748;1.400000;, + -13.813455;3.988570;1.400000;, + -13.892422;4.039559;1.400000;, + -13.975427;4.084400;1.400000;, + -14.198015;4.182912;1.400000;, + -14.035480;4.606666;1.400000;, + -13.924021;4.897254;1.400000;, + -13.812562;5.187843;1.400000;, + -13.701103;5.478432;1.400000;, + -13.589644;5.769021;1.400000;, + -13.478187;6.059609;1.400000;, + -13.364384;6.355949;1.400000;, + -13.255268;6.640787;1.400000;, + -13.141466;6.937127;1.400000;, + -12.976177;7.368420;1.400000;, + -12.491041;7.157021;1.400000;, + -12.159534;6.978910;1.400000;, + -11.844942;6.775310;1.400000;, + -11.548640;6.547604;1.400000;, + -11.271996;6.297170;1.400000;, + -11.016379;6.025383;1.400000;, + -10.783161;5.733615;1.400000;, + -10.573719;5.423236;1.400000;, + -10.389432;5.095619;1.400000;, + -10.168288;4.614078;1.400000;, + -10.604606;4.440951;1.400000;, + -10.893938;4.326148;1.400000;, + -11.183270;4.211344;1.400000;, + -11.472603;4.096539;1.400000;, + -11.761935;3.981736;1.400000;, + -12.051268;3.866932;1.400000;, + -12.340600;3.752128;1.400000;, + -12.629932;3.637324;1.400000;, + -12.919265;3.522520;1.400000;, + -13.337681;3.356497;1.400000;, + -13.442821;3.571551;0.150000;, + -13.310648;3.642719;0.000000;, + -13.490673;3.652638;0.150000;, + -13.364458;3.733902;0.000000;, + -13.544524;3.729531;0.150000;, + -13.424992;3.820336;0.000000;, + -13.604055;3.801900;0.150000;, + -13.491891;3.901663;0.000000;, + -13.668941;3.869416;0.150000;, + -13.564797;3.977526;0.000000;, + -13.738851;3.931748;0.150000;, + -13.643353;4.047566;0.000000;, + -13.813455;3.988570;0.150000;, + -13.727198;4.111426;0.000000;, + -13.892422;4.039559;0.150000;, + -13.815974;4.168750;0.000000;, + -13.975427;4.084400;0.150000;, + -13.909325;4.219179;0.000000;, + -14.198015;4.182912;0.150000;, + -14.006887;4.262358;0.000000;, + -14.035480;4.606666;0.150000;, + -13.895429;4.552947;0.000000;, + -13.924021;4.897254;0.150000;, + -13.783970;4.843535;0.000000;, + -13.812562;5.187843;0.150000;, + -13.672511;5.134125;0.000000;, + -13.701103;5.478432;0.150000;, + -13.561052;5.424713;0.000000;, + -13.589644;5.769021;0.150000;, + -13.449594;5.715302;0.000000;, + -13.478187;6.059609;0.150000;, + -13.338135;6.005890;0.000000;, + -13.364384;6.355949;0.150000;, + -13.226676;6.296480;0.000000;, + -13.255268;6.640787;0.150000;, + -13.115217;6.587069;0.000000;, + -13.141466;6.937127;0.150000;, + -13.003758;6.877657;0.000000;, + -12.976177;7.368420;0.150000;, + -12.892300;7.168247;0.000000;, + -12.491041;7.157021;0.150000;, + -12.556608;7.021969;0.000000;, + -12.159534;6.978910;0.150000;, + -12.235907;6.849665;0.000000;, + -11.844942;6.775310;0.150000;, + -11.931535;6.652678;0.000000;, + -11.548640;6.547604;0.150000;, + -11.644831;6.432347;0.000000;, + -11.271996;6.297170;0.150000;, + -11.377132;6.190012;0.000000;, + -11.016379;6.025383;0.150000;, + -11.129780;5.927013;0.000000;, + -10.783161;5.733615;0.150000;, + -10.904112;5.644691;0.000000;, + -10.573719;5.423236;0.150000;, + -10.701467;5.344385;0.000000;, + -10.389432;5.095619;0.150000;, + -10.523181;5.027434;0.000000;, + -10.168288;4.614078;0.150000;, + -10.370596;4.695181;0.000000;, + -10.604606;4.440951;0.150000;, + -10.659928;4.580377;0.000000;, + -10.893938;4.326148;0.150000;, + -10.949260;4.465573;0.000000;, + -11.183270;4.211344;0.150000;, + -11.238593;4.350769;0.000000;, + -11.472603;4.096539;0.150000;, + -11.527925;4.235965;0.000000;, + -11.761935;3.981736;0.150000;, + -11.817258;4.121161;0.000000;, + -12.051268;3.866932;0.150000;, + -12.106590;4.006357;0.000000;, + -12.340600;3.752128;0.150000;, + -12.395923;3.891553;0.000000;, + -12.629932;3.637324;0.150000;, + -12.685255;3.776749;0.000000;, + -12.919265;3.522520;0.150000;, + -13.337681;3.356497;0.150000;, + -13.263920;3.547141;0.000000;, + -12.974587;3.661945;0.000000;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + + MeshNormals { + 163; + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.340742;-0.858748;-0.382683;, + -0.622352;-0.335103;0.707378;, + -0.594308;-0.382649;0.707374;, + -0.562849;-0.427582;0.707372;, + -0.528156;-0.469764;0.707370;, + -0.490388;-0.509066;0.707370;, + -0.449679;-0.545358;0.707371;, + -0.406160;-0.578496;0.707373;, + -0.359964;-0.608313;0.707377;, + -0.311249;-0.634616;0.707380;, + -0.541862;-0.225235;0.809725;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253230;0.707107;, + -0.660251;0.253324;0.707033;, + -0.660349;0.253284;0.706955;, + -0.660350;0.253284;0.706955;, + -0.660359;0.253302;0.706940;, + -0.219869;0.524393;0.822599;, + 0.308697;0.635833;0.707405;, + 0.359577;0.608514;0.707400;, + 0.407698;0.577385;0.707396;, + 0.452893;0.542662;0.707394;, + 0.495018;0.504533;0.707392;, + 0.533929;0.463159;0.707392;, + 0.569472;0.418683;0.707394;, + 0.601466;0.371250;0.707398;, + 0.629703;0.321020;0.707404;, + 0.526212;-0.210953;0.823772;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + -0.213474;-0.551750;0.806226;, + -0.813363;-0.437953;0.382934;, + -0.776708;-0.500089;0.382931;, + -0.735592;-0.558811;0.382928;, + -0.690251;-0.613938;0.382927;, + -0.640891;-0.665301;0.382926;, + -0.587689;-0.712733;0.382927;, + -0.530814;-0.756043;0.382929;, + -0.470442;-0.795014;0.382933;, + -0.406778;-0.829392;0.382936;, + -0.801692;-0.333238;0.496228;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330861;0.382683;, + -0.862569;0.331007;0.382635;, + -0.862643;0.330872;0.382585;, + -0.862643;0.330871;0.382584;, + -0.862631;0.330916;0.382575;, + -0.331612;0.791068;0.514048;, + 0.403453;0.831004;0.382959;, + 0.469948;0.795295;0.382954;, + 0.532837;0.754608;0.382951;, + 0.591903;0.709225;0.382948;, + 0.646957;0.659392;0.382947;, + 0.697811;0.605319;0.382947;, + 0.744265;0.547192;0.382949;, + 0.786082;0.485204;0.382953;, + 0.822991;0.419558;0.382958;, + 0.795258;-0.318811;0.515678;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382683;, + -0.314232;-0.812168;0.491570;, + -0.813363;-0.437952;-0.382934;, + -0.622352;-0.335103;-0.707378;, + -0.776708;-0.500089;-0.382931;, + -0.594308;-0.382649;-0.707374;, + -0.735592;-0.558811;-0.382928;, + -0.562849;-0.427582;-0.707371;, + -0.690251;-0.613938;-0.382927;, + -0.528156;-0.469764;-0.707370;, + -0.640891;-0.665301;-0.382926;, + -0.490388;-0.509066;-0.707370;, + -0.587689;-0.712733;-0.382927;, + -0.449679;-0.545358;-0.707371;, + -0.530814;-0.756043;-0.382929;, + -0.406160;-0.578496;-0.707373;, + -0.470442;-0.795014;-0.382933;, + -0.359964;-0.608313;-0.707376;, + -0.406778;-0.829392;-0.382936;, + -0.311249;-0.634616;-0.707380;, + -0.801692;-0.333238;-0.496228;, + -0.541862;-0.225235;-0.809725;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330861;-0.382683;, + -0.660208;0.253230;-0.707107;, + -0.862569;0.331007;-0.382635;, + -0.660251;0.253325;-0.707032;, + -0.862643;0.330872;-0.382585;, + -0.660350;0.253284;-0.706955;, + -0.862643;0.330871;-0.382584;, + -0.660350;0.253284;-0.706955;, + -0.862631;0.330916;-0.382575;, + -0.660359;0.253302;-0.706940;, + -0.331612;0.791068;-0.514048;, + -0.219869;0.524393;-0.822599;, + 0.403453;0.831004;-0.382959;, + 0.308697;0.635833;-0.707405;, + 0.469948;0.795295;-0.382954;, + 0.359577;0.608514;-0.707400;, + 0.532837;0.754608;-0.382951;, + 0.407698;0.577385;-0.707396;, + 0.591904;0.709225;-0.382948;, + 0.452893;0.542662;-0.707394;, + 0.646957;0.659392;-0.382947;, + 0.495018;0.504533;-0.707392;, + 0.697811;0.605319;-0.382947;, + 0.533929;0.463159;-0.707392;, + 0.744265;0.547192;-0.382949;, + 0.569472;0.418683;-0.707394;, + 0.786082;0.485204;-0.382953;, + 0.601466;0.371250;-0.707398;, + 0.822991;0.419558;-0.382958;, + 0.629703;0.321020;-0.707403;, + 0.795258;-0.318811;-0.515678;, + 0.526212;-0.210953;-0.823772;, + 0.340742;-0.858748;-0.382684;, + 0.260793;-0.657257;-0.707107;, + 0.340741;-0.858748;-0.382684;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + -0.314232;-0.812168;-0.491570;, + -0.213474;-0.551750;-0.806226;, + 0.260793;-0.657257;-0.707107;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + } +} +} +Frame frm-spl_2_bevel2 { + FrameTransformMatrix { +0.000000,1.000000,0.000000,0.000000, +-1.000000,0.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh spl_2_bevel2 { + 163; + 1.546937;0.672220;0.000000;, + 1.891592;0.647599;0.150000;, + 1.891592;0.647599;0.150000;, + 1.210877;0.652994;1.550000;, + 1.157066;0.744177;1.550000;, + 1.096533;0.830611;1.550000;, + 1.029634;0.911938;1.550000;, + 0.956727;0.987800;1.550000;, + 0.878172;1.057841;1.550000;, + 0.794327;1.121701;1.550000;, + 0.705550;1.179025;1.550000;, + 0.612200;1.229454;1.550000;, + 0.514637;1.272633;1.550000;, + 0.626096;1.563222;1.550000;, + 0.737555;1.853811;1.550000;, + 0.849014;2.144400;1.550000;, + 0.960472;2.434988;1.550000;, + 1.071930;2.725577;1.550000;, + 1.183389;3.016165;1.550000;, + 1.294848;3.306755;1.550000;, + 1.406308;3.597345;1.550000;, + 1.517765;3.887933;1.550000;, + 1.629225;4.178523;1.550000;, + 1.964916;4.032245;1.550000;, + 2.285617;3.859941;1.550000;, + 2.589989;3.662953;1.550000;, + 2.876693;3.442623;1.550000;, + 3.144392;3.200288;1.550000;, + 3.391745;2.937289;1.550000;, + 3.617414;2.654967;1.550000;, + 3.820060;2.354660;1.550000;, + 3.998342;2.037709;1.549999;, + 4.150928;1.705457;1.550000;, + 3.861597;1.590652;1.550000;, + 3.572266;1.475849;1.550000;, + 3.282932;1.361044;1.550000;, + 2.993598;1.246240;1.550000;, + 2.704267;1.131436;1.550000;, + 2.414935;1.016632;1.550000;, + 2.125603;0.901828;1.550000;, + 1.836269;0.787024;1.550000;, + 1.546937;0.672220;1.550000;, + 1.257605;0.557416;1.550000;, + 1.078705;0.581826;1.400001;, + 1.030851;0.662913;1.400000;, + 0.977000;0.739806;1.400000;, + 0.917469;0.812175;1.400000;, + 0.852584;0.879691;1.400000;, + 0.782674;0.942023;1.400000;, + 0.708070;0.998845;1.400001;, + 0.629103;1.049834;1.400000;, + 0.546098;1.094675;1.400000;, + 0.323509;1.193187;1.400000;, + 0.486045;1.616941;1.400000;, + 0.597504;1.907529;1.400000;, + 0.708963;2.198118;1.400000;, + 0.820421;2.488707;1.400000;, + 0.931880;2.779296;1.400000;, + 1.043338;3.069884;1.400000;, + 1.157140;3.366224;1.400000;, + 1.266257;3.651063;1.400000;, + 1.380058;3.947402;1.400000;, + 1.545347;4.378695;1.400000;, + 2.030483;4.167295;1.400000;, + 2.361990;3.989185;1.400000;, + 2.676582;3.785585;1.400000;, + 2.972886;3.557880;1.400000;, + 3.249528;3.307445;1.400000;, + 3.505146;3.035659;1.400000;, + 3.738362;2.743890;1.400000;, + 3.947806;2.433511;1.400000;, + 4.132092;2.105895;1.400000;, + 4.353239;1.624353;1.400000;, + 3.916920;1.451227;1.400000;, + 3.627587;1.336423;1.400000;, + 3.338255;1.221619;1.400000;, + 3.048922;1.106815;1.400000;, + 2.759589;0.992011;1.400000;, + 2.470256;0.877207;1.400000;, + 2.180925;0.762403;1.400000;, + 1.891592;0.647599;1.400000;, + 1.602260;0.532795;1.400000;, + 1.183844;0.366772;1.400000;, + 1.078704;0.581826;0.150000;, + 1.210877;0.652994;0.000000;, + 1.030851;0.662913;0.150000;, + 1.157066;0.744177;0.000000;, + 0.977000;0.739806;0.150000;, + 1.096533;0.830611;0.000000;, + 0.917469;0.812175;0.150000;, + 1.029633;0.911938;0.000000;, + 0.852584;0.879691;0.150000;, + 0.956726;0.987801;0.000000;, + 0.782674;0.942023;0.150000;, + 0.878172;1.057841;0.000000;, + 0.708070;0.998845;0.150000;, + 0.794327;1.121701;0.000000;, + 0.629103;1.049834;0.150000;, + 0.705550;1.179025;0.000000;, + 0.546098;1.094675;0.150000;, + 0.612200;1.229454;0.000000;, + 0.323509;1.193187;0.150000;, + 0.514637;1.272633;0.000000;, + 0.486045;1.616941;0.150000;, + 0.626096;1.563222;0.000000;, + 0.597504;1.907529;0.150000;, + 0.737555;1.853811;0.000000;, + 0.708963;2.198118;0.150000;, + 0.849013;2.144400;0.000000;, + 0.820421;2.488707;0.150000;, + 0.960472;2.434988;0.000000;, + 0.931880;2.779296;0.150000;, + 1.071931;2.725578;0.000000;, + 1.043338;3.069884;0.150000;, + 1.183389;3.016165;0.000000;, + 1.157141;3.366224;0.150000;, + 1.294848;3.306756;0.000000;, + 1.266257;3.651063;0.150000;, + 1.406308;3.597344;0.000000;, + 1.380058;3.947402;0.150000;, + 1.517766;3.887932;0.000000;, + 1.545347;4.378695;0.150000;, + 1.629225;4.178523;0.000000;, + 2.030482;4.167296;0.150000;, + 1.964917;4.032245;0.000000;, + 2.361990;3.989185;0.150000;, + 2.285618;3.859941;0.000000;, + 2.676583;3.785585;0.150000;, + 2.589989;3.662953;0.000000;, + 2.972885;3.557880;0.150000;, + 2.876693;3.442623;0.000000;, + 3.249528;3.307445;0.150000;, + 3.144392;3.200288;0.000000;, + 3.505146;3.035660;0.150000;, + 3.391744;2.937289;0.000000;, + 3.738363;2.743890;0.150000;, + 3.617413;2.654966;0.000000;, + 3.947806;2.433511;0.150000;, + 3.820059;2.354660;0.000000;, + 4.132095;2.105895;0.150000;, + 3.998342;2.037709;0.000000;, + 4.353237;1.624353;0.150000;, + 4.150929;1.705457;0.000000;, + 3.916919;1.451227;0.150000;, + 3.861597;1.590652;0.000000;, + 3.627587;1.336423;0.150000;, + 3.572265;1.475849;0.000000;, + 3.338254;1.221619;0.150000;, + 3.282932;1.361044;0.000000;, + 3.048922;1.106815;0.150000;, + 2.993598;1.246240;0.000000;, + 2.759588;0.992011;0.150000;, + 2.704267;1.131436;0.000000;, + 2.470257;0.877207;0.150000;, + 2.414934;1.016632;0.000000;, + 2.180926;0.762403;0.150000;, + 2.125603;0.901828;0.000000;, + 1.891592;0.647599;0.150000;, + 1.836269;0.787024;0.000000;, + 1.602260;0.532795;0.150000;, + 1.183843;0.366772;0.150000;, + 1.257605;0.557416;0.000000;, + 1.546937;0.672220;0.000000;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + + MeshNormals { + 163; + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.340742;-0.858748;-0.382684;, + -0.622352;-0.335103;0.707378;, + -0.594308;-0.382649;0.707374;, + -0.562849;-0.427582;0.707372;, + -0.528156;-0.469764;0.707370;, + -0.490388;-0.509066;0.707370;, + -0.449679;-0.545358;0.707371;, + -0.406159;-0.578496;0.707373;, + -0.359964;-0.608313;0.707377;, + -0.311249;-0.634616;0.707380;, + -0.541861;-0.225235;0.809726;, + -0.660208;0.253231;0.707107;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253230;0.707107;, + -0.660251;0.253325;0.707032;, + -0.660349;0.253283;0.706956;, + -0.660350;0.253283;0.706955;, + -0.660359;0.253302;0.706940;, + -0.219869;0.524393;0.822599;, + 0.308697;0.635833;0.707405;, + 0.359577;0.608514;0.707400;, + 0.407697;0.577385;0.707397;, + 0.452893;0.542662;0.707394;, + 0.495018;0.504533;0.707392;, + 0.533929;0.463159;0.707392;, + 0.569472;0.418683;0.707394;, + 0.601466;0.371251;0.707398;, + 0.629703;0.321020;0.707404;, + 0.526212;-0.210953;0.823772;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + -0.213474;-0.551750;0.806226;, + -0.813363;-0.437952;0.382935;, + -0.776708;-0.500089;0.382931;, + -0.735592;-0.558811;0.382929;, + -0.690251;-0.613939;0.382927;, + -0.640891;-0.665301;0.382927;, + -0.587689;-0.712733;0.382927;, + -0.530814;-0.756043;0.382930;, + -0.470442;-0.795013;0.382933;, + -0.406778;-0.829392;0.382936;, + -0.801692;-0.333238;0.496228;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330861;0.382684;, + -0.862569;0.331007;0.382635;, + -0.862643;0.330872;0.382585;, + -0.862643;0.330871;0.382584;, + -0.862630;0.330916;0.382575;, + -0.331612;0.791068;0.514048;, + 0.403453;0.831004;0.382959;, + 0.469948;0.795296;0.382954;, + 0.532837;0.754608;0.382951;, + 0.591903;0.709226;0.382949;, + 0.646957;0.659393;0.382947;, + 0.697811;0.605319;0.382947;, + 0.744265;0.547193;0.382949;, + 0.786082;0.485204;0.382953;, + 0.822991;0.419558;0.382958;, + 0.795258;-0.318811;0.515678;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + -0.314231;-0.812168;0.491570;, + -0.813363;-0.437952;-0.382934;, + -0.622352;-0.335103;-0.707378;, + -0.776708;-0.500089;-0.382931;, + -0.594308;-0.382649;-0.707374;, + -0.735592;-0.558812;-0.382928;, + -0.562849;-0.427582;-0.707372;, + -0.690251;-0.613939;-0.382927;, + -0.528156;-0.469764;-0.707370;, + -0.640891;-0.665301;-0.382926;, + -0.490387;-0.509066;-0.707370;, + -0.587689;-0.712733;-0.382927;, + -0.449678;-0.545359;-0.707371;, + -0.530814;-0.756043;-0.382929;, + -0.406160;-0.578496;-0.707373;, + -0.470442;-0.795013;-0.382933;, + -0.359964;-0.608313;-0.707377;, + -0.406778;-0.829392;-0.382936;, + -0.311249;-0.634616;-0.707380;, + -0.801692;-0.333238;-0.496228;, + -0.541861;-0.225235;-0.809726;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330861;-0.382684;, + -0.660208;0.253230;-0.707107;, + -0.862569;0.331007;-0.382635;, + -0.660251;0.253325;-0.707033;, + -0.862643;0.330872;-0.382585;, + -0.660349;0.253283;-0.706956;, + -0.862643;0.330871;-0.382584;, + -0.660350;0.253283;-0.706955;, + -0.862630;0.330916;-0.382575;, + -0.660359;0.253302;-0.706940;, + -0.331612;0.791068;-0.514048;, + -0.219869;0.524393;-0.822599;, + 0.403453;0.831004;-0.382959;, + 0.308697;0.635833;-0.707405;, + 0.469948;0.795296;-0.382954;, + 0.359577;0.608514;-0.707400;, + 0.532837;0.754608;-0.382951;, + 0.407697;0.577385;-0.707396;, + 0.591904;0.709225;-0.382949;, + 0.452893;0.542662;-0.707394;, + 0.646957;0.659393;-0.382947;, + 0.495018;0.504533;-0.707392;, + 0.697811;0.605319;-0.382947;, + 0.533929;0.463159;-0.707392;, + 0.744265;0.547192;-0.382949;, + 0.569472;0.418683;-0.707394;, + 0.786082;0.485204;-0.382953;, + 0.601466;0.371251;-0.707398;, + 0.822991;0.419558;-0.382958;, + 0.629703;0.321020;-0.707404;, + 0.795258;-0.318811;-0.515678;, + 0.526212;-0.210953;-0.823772;, + 0.340742;-0.858748;-0.382684;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + -0.314231;-0.812168;-0.491570;, + -0.213474;-0.551750;-0.806226;, + 0.260793;-0.657257;-0.707107;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + } +} +} +Frame frm-spl_2_bevel3 { + FrameTransformMatrix { +-1.000000,0.000000,0.000000,0.000000, +0.000000,-1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh spl_2_bevel3 { + 163; + 1.546937;0.672220;0.000000;, + 1.891592;0.647599;0.150000;, + 1.891592;0.647599;0.150000;, + 1.210877;0.652994;1.550000;, + 1.157066;0.744177;1.550000;, + 1.096533;0.830611;1.550000;, + 1.029634;0.911938;1.550000;, + 0.956727;0.987800;1.550000;, + 0.878172;1.057841;1.550000;, + 0.794327;1.121701;1.550000;, + 0.705550;1.179025;1.550000;, + 0.612200;1.229454;1.550000;, + 0.514637;1.272633;1.550000;, + 0.626096;1.563222;1.550000;, + 0.737555;1.853811;1.550000;, + 0.849014;2.144400;1.550000;, + 0.960472;2.434988;1.550000;, + 1.071930;2.725577;1.550000;, + 1.183389;3.016165;1.550000;, + 1.294848;3.306755;1.550000;, + 1.406308;3.597345;1.550000;, + 1.517765;3.887933;1.550000;, + 1.629225;4.178523;1.550000;, + 1.964916;4.032245;1.550000;, + 2.285617;3.859941;1.550000;, + 2.589989;3.662953;1.550000;, + 2.876693;3.442623;1.550000;, + 3.144392;3.200288;1.550000;, + 3.391745;2.937289;1.550000;, + 3.617414;2.654967;1.550000;, + 3.820060;2.354660;1.550000;, + 3.998342;2.037709;1.549999;, + 4.150928;1.705457;1.550000;, + 3.861597;1.590652;1.550000;, + 3.572266;1.475849;1.550000;, + 3.282932;1.361044;1.550000;, + 2.993598;1.246240;1.550000;, + 2.704267;1.131436;1.550000;, + 2.414935;1.016632;1.550000;, + 2.125603;0.901828;1.550000;, + 1.836269;0.787024;1.550000;, + 1.546937;0.672220;1.550000;, + 1.257605;0.557416;1.550000;, + 1.078705;0.581826;1.400001;, + 1.030851;0.662913;1.400000;, + 0.977000;0.739806;1.400000;, + 0.917469;0.812175;1.400000;, + 0.852584;0.879691;1.400000;, + 0.782674;0.942023;1.400000;, + 0.708070;0.998845;1.400001;, + 0.629103;1.049834;1.400000;, + 0.546098;1.094675;1.400000;, + 0.323509;1.193187;1.400000;, + 0.486045;1.616941;1.400000;, + 0.597504;1.907529;1.400000;, + 0.708963;2.198118;1.400000;, + 0.820421;2.488707;1.400000;, + 0.931880;2.779296;1.400000;, + 1.043338;3.069884;1.400000;, + 1.157140;3.366224;1.400000;, + 1.266257;3.651063;1.400000;, + 1.380058;3.947402;1.400000;, + 1.545347;4.378695;1.400000;, + 2.030483;4.167295;1.400000;, + 2.361990;3.989185;1.400000;, + 2.676582;3.785585;1.400000;, + 2.972886;3.557880;1.400000;, + 3.249528;3.307445;1.400000;, + 3.505146;3.035659;1.400000;, + 3.738362;2.743890;1.400000;, + 3.947806;2.433511;1.400000;, + 4.132092;2.105895;1.400000;, + 4.353239;1.624353;1.400000;, + 3.916920;1.451227;1.400000;, + 3.627587;1.336423;1.400000;, + 3.338255;1.221619;1.400000;, + 3.048922;1.106815;1.400000;, + 2.759589;0.992011;1.400000;, + 2.470256;0.877207;1.400000;, + 2.180925;0.762403;1.400000;, + 1.891592;0.647599;1.400000;, + 1.602260;0.532795;1.400000;, + 1.183844;0.366772;1.400000;, + 1.078704;0.581826;0.150000;, + 1.210877;0.652994;0.000000;, + 1.030851;0.662913;0.150000;, + 1.157066;0.744177;0.000000;, + 0.977000;0.739806;0.150000;, + 1.096533;0.830611;0.000000;, + 0.917469;0.812175;0.150000;, + 1.029633;0.911938;0.000000;, + 0.852584;0.879691;0.150000;, + 0.956726;0.987801;0.000000;, + 0.782674;0.942023;0.150000;, + 0.878172;1.057841;0.000000;, + 0.708070;0.998845;0.150000;, + 0.794327;1.121701;0.000000;, + 0.629103;1.049834;0.150000;, + 0.705550;1.179025;0.000000;, + 0.546098;1.094675;0.150000;, + 0.612200;1.229454;0.000000;, + 0.323509;1.193187;0.150000;, + 0.514637;1.272633;0.000000;, + 0.486045;1.616941;0.150000;, + 0.626096;1.563222;0.000000;, + 0.597504;1.907529;0.150000;, + 0.737555;1.853811;0.000000;, + 0.708963;2.198118;0.150000;, + 0.849013;2.144400;0.000000;, + 0.820421;2.488707;0.150000;, + 0.960472;2.434988;0.000000;, + 0.931880;2.779296;0.150000;, + 1.071931;2.725578;0.000000;, + 1.043338;3.069884;0.150000;, + 1.183389;3.016165;0.000000;, + 1.157141;3.366224;0.150000;, + 1.294848;3.306756;0.000000;, + 1.266257;3.651063;0.150000;, + 1.406308;3.597344;0.000000;, + 1.380058;3.947402;0.150000;, + 1.517766;3.887932;0.000000;, + 1.545347;4.378695;0.150000;, + 1.629225;4.178523;0.000000;, + 2.030482;4.167296;0.150000;, + 1.964917;4.032245;0.000000;, + 2.361990;3.989185;0.150000;, + 2.285618;3.859941;0.000000;, + 2.676583;3.785585;0.150000;, + 2.589989;3.662953;0.000000;, + 2.972885;3.557880;0.150000;, + 2.876693;3.442623;0.000000;, + 3.249528;3.307445;0.150000;, + 3.144392;3.200288;0.000000;, + 3.505146;3.035660;0.150000;, + 3.391744;2.937289;0.000000;, + 3.738363;2.743890;0.150000;, + 3.617413;2.654966;0.000000;, + 3.947806;2.433511;0.150000;, + 3.820059;2.354660;0.000000;, + 4.132095;2.105895;0.150000;, + 3.998342;2.037709;0.000000;, + 4.353237;1.624353;0.150000;, + 4.150929;1.705457;0.000000;, + 3.916919;1.451227;0.150000;, + 3.861597;1.590652;0.000000;, + 3.627587;1.336423;0.150000;, + 3.572265;1.475849;0.000000;, + 3.338254;1.221619;0.150000;, + 3.282932;1.361044;0.000000;, + 3.048922;1.106815;0.150000;, + 2.993598;1.246240;0.000000;, + 2.759588;0.992011;0.150000;, + 2.704267;1.131436;0.000000;, + 2.470257;0.877207;0.150000;, + 2.414934;1.016632;0.000000;, + 2.180926;0.762403;0.150000;, + 2.125603;0.901828;0.000000;, + 1.891592;0.647599;0.150000;, + 1.836269;0.787024;0.000000;, + 1.602260;0.532795;0.150000;, + 1.183843;0.366772;0.150000;, + 1.257605;0.557416;0.000000;, + 1.546937;0.672220;0.000000;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + + MeshNormals { + 163; + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.340742;-0.858748;-0.382684;, + -0.622352;-0.335103;0.707378;, + -0.594308;-0.382649;0.707374;, + -0.562849;-0.427582;0.707372;, + -0.528156;-0.469764;0.707370;, + -0.490388;-0.509066;0.707370;, + -0.449679;-0.545358;0.707371;, + -0.406159;-0.578496;0.707373;, + -0.359964;-0.608313;0.707377;, + -0.311249;-0.634616;0.707380;, + -0.541861;-0.225235;0.809726;, + -0.660208;0.253231;0.707107;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253230;0.707107;, + -0.660251;0.253325;0.707032;, + -0.660349;0.253283;0.706956;, + -0.660350;0.253283;0.706955;, + -0.660359;0.253302;0.706940;, + -0.219869;0.524393;0.822599;, + 0.308697;0.635833;0.707405;, + 0.359577;0.608514;0.707400;, + 0.407697;0.577385;0.707397;, + 0.452893;0.542662;0.707394;, + 0.495018;0.504533;0.707392;, + 0.533929;0.463159;0.707392;, + 0.569472;0.418683;0.707394;, + 0.601466;0.371251;0.707398;, + 0.629703;0.321020;0.707404;, + 0.526212;-0.210953;0.823772;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + -0.213474;-0.551750;0.806226;, + -0.813363;-0.437952;0.382935;, + -0.776708;-0.500089;0.382931;, + -0.735592;-0.558811;0.382929;, + -0.690251;-0.613939;0.382927;, + -0.640891;-0.665301;0.382927;, + -0.587689;-0.712733;0.382927;, + -0.530814;-0.756043;0.382930;, + -0.470442;-0.795013;0.382933;, + -0.406778;-0.829392;0.382936;, + -0.801692;-0.333238;0.496228;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330861;0.382684;, + -0.862569;0.331007;0.382635;, + -0.862643;0.330872;0.382585;, + -0.862643;0.330871;0.382584;, + -0.862630;0.330916;0.382575;, + -0.331612;0.791068;0.514048;, + 0.403453;0.831004;0.382959;, + 0.469948;0.795296;0.382954;, + 0.532837;0.754608;0.382951;, + 0.591903;0.709226;0.382949;, + 0.646957;0.659393;0.382947;, + 0.697811;0.605319;0.382947;, + 0.744265;0.547193;0.382949;, + 0.786082;0.485204;0.382953;, + 0.822991;0.419558;0.382958;, + 0.795258;-0.318811;0.515678;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + -0.314231;-0.812168;0.491570;, + -0.813363;-0.437952;-0.382934;, + -0.622352;-0.335103;-0.707378;, + -0.776708;-0.500089;-0.382931;, + -0.594308;-0.382649;-0.707374;, + -0.735592;-0.558812;-0.382928;, + -0.562849;-0.427582;-0.707372;, + -0.690251;-0.613939;-0.382927;, + -0.528156;-0.469764;-0.707370;, + -0.640891;-0.665301;-0.382926;, + -0.490387;-0.509066;-0.707370;, + -0.587689;-0.712733;-0.382927;, + -0.449678;-0.545359;-0.707371;, + -0.530814;-0.756043;-0.382929;, + -0.406160;-0.578496;-0.707373;, + -0.470442;-0.795013;-0.382933;, + -0.359964;-0.608313;-0.707377;, + -0.406778;-0.829392;-0.382936;, + -0.311249;-0.634616;-0.707380;, + -0.801692;-0.333238;-0.496228;, + -0.541861;-0.225235;-0.809726;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330861;-0.382684;, + -0.660208;0.253230;-0.707107;, + -0.862569;0.331007;-0.382635;, + -0.660251;0.253325;-0.707033;, + -0.862643;0.330872;-0.382585;, + -0.660349;0.253283;-0.706956;, + -0.862643;0.330871;-0.382584;, + -0.660350;0.253283;-0.706955;, + -0.862630;0.330916;-0.382575;, + -0.660359;0.253302;-0.706940;, + -0.331612;0.791068;-0.514048;, + -0.219869;0.524393;-0.822599;, + 0.403453;0.831004;-0.382959;, + 0.308697;0.635833;-0.707405;, + 0.469948;0.795296;-0.382954;, + 0.359577;0.608514;-0.707400;, + 0.532837;0.754608;-0.382951;, + 0.407697;0.577385;-0.707396;, + 0.591904;0.709225;-0.382949;, + 0.452893;0.542662;-0.707394;, + 0.646957;0.659393;-0.382947;, + 0.495018;0.504533;-0.707392;, + 0.697811;0.605319;-0.382947;, + 0.533929;0.463159;-0.707392;, + 0.744265;0.547192;-0.382949;, + 0.569472;0.418683;-0.707394;, + 0.786082;0.485204;-0.382953;, + 0.601466;0.371251;-0.707398;, + 0.822991;0.419558;-0.382958;, + 0.629703;0.321020;-0.707404;, + 0.795258;-0.318811;-0.515678;, + 0.526212;-0.210953;-0.823772;, + 0.340742;-0.858748;-0.382684;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + -0.314231;-0.812168;-0.491570;, + -0.213474;-0.551750;-0.806226;, + 0.260793;-0.657257;-0.707107;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + } +} +} +Frame frm-spl_2_bevel4 { + FrameTransformMatrix { +0.000000,-1.000000,0.000000,0.000000, +1.000000,0.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh spl_2_bevel4 { + 163; + 1.546937;0.672220;0.000000;, + 1.891592;0.647599;0.150000;, + 1.891592;0.647599;0.150000;, + 1.210877;0.652994;1.550000;, + 1.157066;0.744177;1.550000;, + 1.096533;0.830611;1.550000;, + 1.029634;0.911938;1.550000;, + 0.956727;0.987800;1.550000;, + 0.878172;1.057841;1.550000;, + 0.794327;1.121701;1.550000;, + 0.705550;1.179025;1.550000;, + 0.612200;1.229454;1.550000;, + 0.514637;1.272633;1.550000;, + 0.626096;1.563222;1.550000;, + 0.737555;1.853811;1.550000;, + 0.849014;2.144400;1.550000;, + 0.960472;2.434988;1.550000;, + 1.071930;2.725577;1.550000;, + 1.183389;3.016165;1.550000;, + 1.294848;3.306755;1.550000;, + 1.406308;3.597345;1.550000;, + 1.517765;3.887933;1.550000;, + 1.629225;4.178523;1.550000;, + 1.964916;4.032245;1.550000;, + 2.285617;3.859941;1.550000;, + 2.589989;3.662953;1.550000;, + 2.876693;3.442623;1.550000;, + 3.144392;3.200288;1.550000;, + 3.391745;2.937289;1.550000;, + 3.617414;2.654967;1.550000;, + 3.820060;2.354660;1.550000;, + 3.998342;2.037709;1.549999;, + 4.150928;1.705457;1.550000;, + 3.861597;1.590652;1.550000;, + 3.572266;1.475849;1.550000;, + 3.282932;1.361044;1.550000;, + 2.993598;1.246240;1.550000;, + 2.704267;1.131436;1.550000;, + 2.414935;1.016632;1.550000;, + 2.125603;0.901828;1.550000;, + 1.836269;0.787024;1.550000;, + 1.546937;0.672220;1.550000;, + 1.257605;0.557416;1.550000;, + 1.078705;0.581826;1.400001;, + 1.030851;0.662913;1.400000;, + 0.977000;0.739806;1.400000;, + 0.917469;0.812175;1.400000;, + 0.852584;0.879691;1.400000;, + 0.782674;0.942023;1.400000;, + 0.708070;0.998845;1.400001;, + 0.629103;1.049834;1.400000;, + 0.546098;1.094675;1.400000;, + 0.323509;1.193187;1.400000;, + 0.486045;1.616941;1.400000;, + 0.597504;1.907529;1.400000;, + 0.708963;2.198118;1.400000;, + 0.820421;2.488707;1.400000;, + 0.931880;2.779296;1.400000;, + 1.043338;3.069884;1.400000;, + 1.157140;3.366224;1.400000;, + 1.266257;3.651063;1.400000;, + 1.380058;3.947402;1.400000;, + 1.545347;4.378695;1.400000;, + 2.030483;4.167295;1.400000;, + 2.361990;3.989185;1.400000;, + 2.676582;3.785585;1.400000;, + 2.972886;3.557880;1.400000;, + 3.249528;3.307445;1.400000;, + 3.505146;3.035659;1.400000;, + 3.738362;2.743890;1.400000;, + 3.947806;2.433511;1.400000;, + 4.132092;2.105895;1.400000;, + 4.353239;1.624353;1.400000;, + 3.916920;1.451227;1.400000;, + 3.627587;1.336423;1.400000;, + 3.338255;1.221619;1.400000;, + 3.048922;1.106815;1.400000;, + 2.759589;0.992011;1.400000;, + 2.470256;0.877207;1.400000;, + 2.180925;0.762403;1.400000;, + 1.891592;0.647599;1.400000;, + 1.602260;0.532795;1.400000;, + 1.183844;0.366772;1.400000;, + 1.078704;0.581826;0.150000;, + 1.210877;0.652994;0.000000;, + 1.030851;0.662913;0.150000;, + 1.157066;0.744177;0.000000;, + 0.977000;0.739806;0.150000;, + 1.096533;0.830611;0.000000;, + 0.917469;0.812175;0.150000;, + 1.029633;0.911938;0.000000;, + 0.852584;0.879691;0.150000;, + 0.956726;0.987801;0.000000;, + 0.782674;0.942023;0.150000;, + 0.878172;1.057841;0.000000;, + 0.708070;0.998845;0.150000;, + 0.794327;1.121701;0.000000;, + 0.629103;1.049834;0.150000;, + 0.705550;1.179025;0.000000;, + 0.546098;1.094675;0.150000;, + 0.612200;1.229454;0.000000;, + 0.323509;1.193187;0.150000;, + 0.514637;1.272633;0.000000;, + 0.486045;1.616941;0.150000;, + 0.626096;1.563222;0.000000;, + 0.597504;1.907529;0.150000;, + 0.737555;1.853811;0.000000;, + 0.708963;2.198118;0.150000;, + 0.849013;2.144400;0.000000;, + 0.820421;2.488707;0.150000;, + 0.960472;2.434988;0.000000;, + 0.931880;2.779296;0.150000;, + 1.071931;2.725578;0.000000;, + 1.043338;3.069884;0.150000;, + 1.183389;3.016165;0.000000;, + 1.157141;3.366224;0.150000;, + 1.294848;3.306756;0.000000;, + 1.266257;3.651063;0.150000;, + 1.406308;3.597344;0.000000;, + 1.380058;3.947402;0.150000;, + 1.517766;3.887932;0.000000;, + 1.545347;4.378695;0.150000;, + 1.629225;4.178523;0.000000;, + 2.030482;4.167296;0.150000;, + 1.964917;4.032245;0.000000;, + 2.361990;3.989185;0.150000;, + 2.285618;3.859941;0.000000;, + 2.676583;3.785585;0.150000;, + 2.589989;3.662953;0.000000;, + 2.972885;3.557880;0.150000;, + 2.876693;3.442623;0.000000;, + 3.249528;3.307445;0.150000;, + 3.144392;3.200288;0.000000;, + 3.505146;3.035660;0.150000;, + 3.391744;2.937289;0.000000;, + 3.738363;2.743890;0.150000;, + 3.617413;2.654966;0.000000;, + 3.947806;2.433511;0.150000;, + 3.820059;2.354660;0.000000;, + 4.132095;2.105895;0.150000;, + 3.998342;2.037709;0.000000;, + 4.353237;1.624353;0.150000;, + 4.150929;1.705457;0.000000;, + 3.916919;1.451227;0.150000;, + 3.861597;1.590652;0.000000;, + 3.627587;1.336423;0.150000;, + 3.572265;1.475849;0.000000;, + 3.338254;1.221619;0.150000;, + 3.282932;1.361044;0.000000;, + 3.048922;1.106815;0.150000;, + 2.993598;1.246240;0.000000;, + 2.759588;0.992011;0.150000;, + 2.704267;1.131436;0.000000;, + 2.470257;0.877207;0.150000;, + 2.414934;1.016632;0.000000;, + 2.180926;0.762403;0.150000;, + 2.125603;0.901828;0.000000;, + 1.891592;0.647599;0.150000;, + 1.836269;0.787024;0.000000;, + 1.602260;0.532795;0.150000;, + 1.183843;0.366772;0.150000;, + 1.257605;0.557416;0.000000;, + 1.546937;0.672220;0.000000;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + + MeshNormals { + 163; + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.340742;-0.858748;-0.382684;, + -0.622352;-0.335103;0.707378;, + -0.594308;-0.382649;0.707374;, + -0.562849;-0.427582;0.707372;, + -0.528156;-0.469764;0.707370;, + -0.490388;-0.509066;0.707370;, + -0.449679;-0.545358;0.707371;, + -0.406159;-0.578496;0.707373;, + -0.359964;-0.608313;0.707377;, + -0.311249;-0.634616;0.707380;, + -0.541861;-0.225235;0.809726;, + -0.660208;0.253231;0.707107;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253231;0.707106;, + -0.660208;0.253230;0.707107;, + -0.660251;0.253325;0.707032;, + -0.660349;0.253283;0.706956;, + -0.660350;0.253283;0.706955;, + -0.660359;0.253302;0.706940;, + -0.219869;0.524393;0.822599;, + 0.308697;0.635833;0.707405;, + 0.359577;0.608514;0.707400;, + 0.407697;0.577385;0.707397;, + 0.452893;0.542662;0.707394;, + 0.495018;0.504533;0.707392;, + 0.533929;0.463159;0.707392;, + 0.569472;0.418683;0.707394;, + 0.601466;0.371251;0.707398;, + 0.629703;0.321020;0.707404;, + 0.526212;-0.210953;0.823772;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260792;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + 0.260793;-0.657257;0.707107;, + -0.213474;-0.551750;0.806226;, + -0.813363;-0.437952;0.382935;, + -0.776708;-0.500089;0.382931;, + -0.735592;-0.558811;0.382929;, + -0.690251;-0.613939;0.382927;, + -0.640891;-0.665301;0.382927;, + -0.587689;-0.712733;0.382927;, + -0.530814;-0.756043;0.382930;, + -0.470442;-0.795013;0.382933;, + -0.406778;-0.829392;0.382936;, + -0.801692;-0.333238;0.496228;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330862;0.382683;, + -0.862603;0.330861;0.382684;, + -0.862569;0.331007;0.382635;, + -0.862643;0.330872;0.382585;, + -0.862643;0.330871;0.382584;, + -0.862630;0.330916;0.382575;, + -0.331612;0.791068;0.514048;, + 0.403453;0.831004;0.382959;, + 0.469948;0.795296;0.382954;, + 0.532837;0.754608;0.382951;, + 0.591903;0.709226;0.382949;, + 0.646957;0.659393;0.382947;, + 0.697811;0.605319;0.382947;, + 0.744265;0.547193;0.382949;, + 0.786082;0.485204;0.382953;, + 0.822991;0.419558;0.382958;, + 0.795258;-0.318811;0.515678;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + 0.340742;-0.858748;0.382684;, + -0.314231;-0.812168;0.491570;, + -0.813363;-0.437952;-0.382934;, + -0.622352;-0.335103;-0.707378;, + -0.776708;-0.500089;-0.382931;, + -0.594308;-0.382649;-0.707374;, + -0.735592;-0.558812;-0.382928;, + -0.562849;-0.427582;-0.707372;, + -0.690251;-0.613939;-0.382927;, + -0.528156;-0.469764;-0.707370;, + -0.640891;-0.665301;-0.382926;, + -0.490387;-0.509066;-0.707370;, + -0.587689;-0.712733;-0.382927;, + -0.449678;-0.545359;-0.707371;, + -0.530814;-0.756043;-0.382929;, + -0.406160;-0.578496;-0.707373;, + -0.470442;-0.795013;-0.382933;, + -0.359964;-0.608313;-0.707377;, + -0.406778;-0.829392;-0.382936;, + -0.311249;-0.634616;-0.707380;, + -0.801692;-0.333238;-0.496228;, + -0.541861;-0.225235;-0.809726;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330862;-0.382683;, + -0.660208;0.253231;-0.707106;, + -0.862603;0.330861;-0.382684;, + -0.660208;0.253230;-0.707107;, + -0.862569;0.331007;-0.382635;, + -0.660251;0.253325;-0.707033;, + -0.862643;0.330872;-0.382585;, + -0.660349;0.253283;-0.706956;, + -0.862643;0.330871;-0.382584;, + -0.660350;0.253283;-0.706955;, + -0.862630;0.330916;-0.382575;, + -0.660359;0.253302;-0.706940;, + -0.331612;0.791068;-0.514048;, + -0.219869;0.524393;-0.822599;, + 0.403453;0.831004;-0.382959;, + 0.308697;0.635833;-0.707405;, + 0.469948;0.795296;-0.382954;, + 0.359577;0.608514;-0.707400;, + 0.532837;0.754608;-0.382951;, + 0.407697;0.577385;-0.707396;, + 0.591904;0.709225;-0.382949;, + 0.452893;0.542662;-0.707394;, + 0.646957;0.659393;-0.382947;, + 0.495018;0.504533;-0.707392;, + 0.697811;0.605319;-0.382947;, + 0.533929;0.463159;-0.707392;, + 0.744265;0.547192;-0.382949;, + 0.569472;0.418683;-0.707394;, + 0.786082;0.485204;-0.382953;, + 0.601466;0.371251;-0.707398;, + 0.822991;0.419558;-0.382958;, + 0.629703;0.321020;-0.707404;, + 0.795258;-0.318811;-0.515678;, + 0.526212;-0.210953;-0.823772;, + 0.340742;-0.858748;-0.382684;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260792;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382684;, + 0.260793;-0.657257;-0.707107;, + 0.340742;-0.858748;-0.382683;, + -0.314231;-0.812168;-0.491570;, + -0.213474;-0.551750;-0.806226;, + 0.260793;-0.657257;-0.707107;; + + 120; + 4;159,160,161,0;, + 4;2,159,162,158;, + 4;155,1,158,156;, + 4;153,155,156,154;, + 4;151,153,154,152;, + 4;149,151,152,150;, + 4;147,149,150,148;, + 4;145,147,148,146;, + 4;143,145,146,144;, + 4;141,143,144,142;, + 4;139,141,142,140;, + 4;137,139,140,138;, + 4;135,137,138,136;, + 4;133,135,136,134;, + 4;131,133,134,132;, + 4;129,131,132,130;, + 4;127,129,130,128;, + 4;125,127,128,126;, + 4;123,125,126,124;, + 4;121,123,124,122;, + 4;119,121,122,120;, + 4;117,119,120,118;, + 4;115,117,118,116;, + 4;113,115,116,114;, + 4;111,113,114,112;, + 4;109,111,112,110;, + 4;107,109,110,108;, + 4;105,107,108,106;, + 4;103,105,106,104;, + 4;101,103,104,102;, + 4;99,101,102,100;, + 4;97,99,100,98;, + 4;95,97,98,96;, + 4;93,95,96,94;, + 4;91,93,94,92;, + 4;89,91,92,90;, + 4;87,89,90,88;, + 4;85,87,88,86;, + 4;83,85,86,84;, + 4;160,83,84,161;, + 4;81,82,160,159;, + 4;80,81,159,157;, + 4;79,80,157,155;, + 4;78,79,155,153;, + 4;77,78,153,151;, + 4;76,77,151,149;, + 4;75,76,149,147;, + 4;74,75,147,145;, + 4;73,74,145,143;, + 4;72,73,143,141;, + 4;71,72,141,139;, + 4;70,71,139,137;, + 4;69,70,137,135;, + 4;68,69,135,133;, + 4;67,68,133,131;, + 4;66,67,131,129;, + 4;65,66,129,127;, + 4;64,65,127,125;, + 4;63,64,125,123;, + 4;62,63,123,121;, + 4;61,62,121,119;, + 4;60,61,119,117;, + 4;59,60,117,115;, + 4;58,59,115,113;, + 4;57,58,113,111;, + 4;56,57,111,109;, + 4;55,56,109,107;, + 4;54,55,107,105;, + 4;53,54,105,103;, + 4;52,53,103,101;, + 4;51,52,101,99;, + 4;50,51,99,97;, + 4;49,50,97,95;, + 4;48,49,95,93;, + 4;47,48,93,91;, + 4;46,47,91,89;, + 4;45,46,89,87;, + 4;44,45,87,85;, + 4;43,44,85,83;, + 4;82,43,83,160;, + 4;41,42,82,81;, + 4;40,41,81,80;, + 4;39,40,80,79;, + 4;38,39,79,78;, + 4;37,38,78,77;, + 4;36,37,77,76;, + 4;35,36,76,75;, + 4;34,35,75,74;, + 4;33,34,74,73;, + 4;32,33,73,72;, + 4;31,32,72,71;, + 4;30,31,71,70;, + 4;29,30,70,69;, + 4;28,29,69,68;, + 4;27,28,68,67;, + 4;26,27,67,66;, + 4;25,26,66,65;, + 4;24,25,65,64;, + 4;23,24,64,63;, + 4;22,23,63,62;, + 4;21,22,62,61;, + 4;20,21,61,60;, + 4;19,20,60,59;, + 4;18,19,59,58;, + 4;17,18,58,57;, + 4;16,17,57,56;, + 4;15,16,56,55;, + 4;14,15,55,54;, + 4;13,14,54,53;, + 4;12,13,53,52;, + 4;11,12,52,51;, + 4;10,11,51,50;, + 4;9,10,50,49;, + 4;8,9,49,48;, + 4;7,8,48,47;, + 4;6,7,47,46;, + 4;5,6,46,45;, + 4;4,5,45,44;, + 4;3,4,44,43;, + 4;42,3,43,82;; + } +} +} +} +AnimationSet { + Animation anim-spl_2_bevel1 { + {frm-spl_2_bevel1} + AnimationKey { + 2; + 2; + 1; 3; 14.521525, -2.989725, 0.000000;;, + 100; 3; 14.521525, -2.989725, 0.000000;;; + } + } + Animation anim-spl_2_bevel2 { + {frm-spl_2_bevel2} + AnimationKey { + 0; + 2; + 1; 4; 0.707107, 0.000000, 0.000000, -0.707107;;, + 100; 4; 0.707107, 0.000000, 0.000000, -0.707107;;; + } + } + Animation anim-spl_2_bevel3 { + {frm-spl_2_bevel3} + AnimationKey { + 0; + 2; + 1; 4; 0.000000, 0.000000, 0.000000, -1.000000;;, + 100; 4; 0.000000, 0.000000, 0.000000, -1.000000;;; + } + } + Animation anim-spl_2_bevel4 { + {frm-spl_2_bevel4} + AnimationKey { + 0; + 2; + 1; 4; 0.707107, 0.000000, 0.000000, 0.707107;;, + 100; 4; 0.707107, 0.000000, 0.000000, 0.707107;;; + } + } +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DPLAYLT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DPLAYLT.JPG new file mode 100644 index 0000000..ef2faa2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DPLAYLT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DPLAYNRM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DPLAYNRM.JPG new file mode 100644 index 0000000..468b756 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DPLAYNRM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DP_SLD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DP_SLD.GIF new file mode 100644 index 0000000..c6a5058 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DP_SLD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DSHOWLT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DSHOWLT.JPG new file mode 100644 index 0000000..5a5eace Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DSHOWLT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DSHOWNRM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DSHOWNRM.JPG new file mode 100644 index 0000000..5ad6b80 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DSHOWNRM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DS_SLD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DS_SLD.GIF new file mode 100644 index 0000000..ee5d92b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DS_SLD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DXTSLIDE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DXTSLIDE.GIF new file mode 100644 index 0000000..f1350a0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DXTSLIDE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DXT_SLD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DXT_SLD.GIF new file mode 100644 index 0000000..b207fce Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/DXT_SLD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/FIND.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/FIND.GIF new file mode 100644 index 0000000..0c680ef Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/FIND.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/FIND_ON.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/FIND_ON.GIF new file mode 100644 index 0000000..1fabf76 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/FIND_ON.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/GLOW.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/GLOW.GIF new file mode 100644 index 0000000..5513090 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/GLOW.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/HOME-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/HOME-RED.GIF new file mode 100644 index 0000000..bf52bd6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/HOME-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/HOME.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/HOME.GIF new file mode 100644 index 0000000..0de69b2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/HOME.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LGTRANSX.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LGTRANSX.GIF new file mode 100644 index 0000000..6ec46df Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LGTRANSX.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS.GIF new file mode 100644 index 0000000..211d09e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS1.GIF new file mode 100644 index 0000000..a1a7e21 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS2.GIF new file mode 100644 index 0000000..da64dc7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS3.GIF new file mode 100644 index 0000000..9526fa3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/LIGHTS3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MAIN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MAIN.GIF new file mode 100644 index 0000000..7bff81b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MAIN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MAIN2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MAIN2.GIF new file mode 100644 index 0000000..b79dad6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MAIN2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MSFT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MSFT.GIF new file mode 100644 index 0000000..ec5d9db Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/MSFT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PLATE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PLATE.GIF new file mode 100644 index 0000000..03675e9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PLATE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PROD-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PROD-RED.GIF new file mode 100644 index 0000000..7ff3652 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PROD-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PROD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PROD.GIF new file mode 100644 index 0000000..2172e8d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/PROD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SEARCH-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SEARCH-RED.GIF new file mode 100644 index 0000000..24a1c5e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SEARCH-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SEARCH.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SEARCH.GIF new file mode 100644 index 0000000..ffae9c3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SEARCH.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHELLD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHELLD.GIF new file mode 100644 index 0000000..69d11a6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHELLD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHELLDXM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHELLDXM.JPG new file mode 100644 index 0000000..0334902 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHELLDXM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHOP-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHOP-RED.GIF new file mode 100644 index 0000000..6772d61 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHOP-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHOP.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHOP.GIF new file mode 100644 index 0000000..fc599dd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SHOP.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SPACER.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SPACER.GIF new file mode 100644 index 0000000..8509bec Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SPACER.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SPACERF.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SPACERF.GIF new file mode 100644 index 0000000..2c8ed84 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SPACERF.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SUPPORT-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SUPPORT-RED.GIF new file mode 100644 index 0000000..2eb9ac8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SUPPORT-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SUPPORT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SUPPORT.GIF new file mode 100644 index 0000000..ef83d52 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/SUPPORT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_3DLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_3DLT.GIF new file mode 100644 index 0000000..60d14f2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_3DLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_3DNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_3DNRM.GIF new file mode 100644 index 0000000..95f029a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_3DNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DALT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DALT.GIF new file mode 100644 index 0000000..8b4a62e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DALT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DANRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DANRM.GIF new file mode 100644 index 0000000..c366886 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DANRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DPLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DPLT.GIF new file mode 100644 index 0000000..47d9d3e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DPLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DPNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DPNRM.GIF new file mode 100644 index 0000000..073ab25 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DPNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DSLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DSLT.GIF new file mode 100644 index 0000000..89edd2a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DSLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DSNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DSNRM.GIF new file mode 100644 index 0000000..18e4950 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DSNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DX.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DX.JPG new file mode 100644 index 0000000..d41377f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DX.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DXTLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DXTLT.GIF new file mode 100644 index 0000000..1352fab Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DXTLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DXTNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DXTNRM.GIF new file mode 100644 index 0000000..6b0b9a5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/S_DXTNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/WRITE-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/WRITE-RED.GIF new file mode 100644 index 0000000..fd2e3da Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/WRITE-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/WRITE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/WRITE.GIF new file mode 100644 index 0000000..63c9ff0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/ART/WRITE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/2DSPACE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/2DSPACE.GIF new file mode 100644 index 0000000..43f0310 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/2DSPACE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/3DAXES.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/3DAXES.GIF new file mode 100644 index 0000000..c2deb3b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/3DAXES.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ACTMVLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ACTMVLT.GIF new file mode 100644 index 0000000..e9db2a8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ACTMVLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ACTMVNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ACTMVNRM.GIF new file mode 100644 index 0000000..54f6fbc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ACTMVNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ALLC1_1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ALLC1_1.GIF new file mode 100644 index 0000000..df1100f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ALLC1_1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPDVLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPDVLT.GIF new file mode 100644 index 0000000..d9c764c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPDVLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPDVNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPDVNRM.GIF new file mode 100644 index 0000000..f2829a6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPDVNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPNDLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPNDLT.GIF new file mode 100644 index 0000000..93a19f9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPNDLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPNDNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPNDNRM.GIF new file mode 100644 index 0000000..24c42e3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/APPNDNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ARROW3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ARROW3.GIF new file mode 100644 index 0000000..041feaa Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ARROW3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BASICLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BASICLT.GIF new file mode 100644 index 0000000..7c231f2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BASICLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BASICNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BASICNRM.GIF new file mode 100644 index 0000000..a558beb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BASICNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BG2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BG2.GIF new file mode 100644 index 0000000..4570267 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BG2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BULLET1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BULLET1.GIF new file mode 100644 index 0000000..e959009 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BULLET1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BULLET2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BULLET2.GIF new file mode 100644 index 0000000..e959009 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/BULLET2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CCREFLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CCREFLT.GIF new file mode 100644 index 0000000..67e4b05 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CCREFLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CCREFNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CCREFNRM.GIF new file mode 100644 index 0000000..714abf8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CCREFNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CNTRLLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CNTRLLT.GIF new file mode 100644 index 0000000..98c6c35 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CNTRLLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CNTRLNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CNTRLNRM.GIF new file mode 100644 index 0000000..857e466 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/CNTRLNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DAARCH.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DAARCH.GIF new file mode 100644 index 0000000..fa15620 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DAARCH.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DABK.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DABK.GIF new file mode 100644 index 0000000..85859f5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DABK.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DANIMHDR.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DANIMHDR.GIF new file mode 100644 index 0000000..80b9eaa Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DANIMHDR.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DARMLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DARMLT.GIF new file mode 100644 index 0000000..3c18845 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DARMLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DARMNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DARMNRM.GIF new file mode 100644 index 0000000..331f6bf Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DARMNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DA_LT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DA_LT.JPG new file mode 100644 index 0000000..2094276 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DA_LT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DA_NRM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DA_NRM.JPG new file mode 100644 index 0000000..c0ce563 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DA_NRM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DOCS.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DOCS.GIF new file mode 100644 index 0000000..e6e8cb5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DOCS.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DOCSH.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DOCSH.GIF new file mode 100644 index 0000000..58f5070 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DOCSH.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DS_LT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DS_LT.JPG new file mode 100644 index 0000000..9bd995a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DS_LT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DS_NRM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DS_NRM.JPG new file mode 100644 index 0000000..6441e7f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DS_NRM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DWNLD1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DWNLD1.GIF new file mode 100644 index 0000000..48deff3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/DWNLD1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_CONT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_CONT.GIF new file mode 100644 index 0000000..f1074e5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_CONT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_HOME.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_HOME.GIF new file mode 100644 index 0000000..de51554 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_HOME.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_INDEX.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_INDEX.GIF new file mode 100644 index 0000000..b69e538 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_INDEX.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_LOCAL.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_LOCAL.GIF new file mode 100644 index 0000000..f1074e5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_LOCAL.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_NEXT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_NEXT.GIF new file mode 100644 index 0000000..4871132 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_NEXT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_PREV.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_PREV.GIF new file mode 100644 index 0000000..2883929 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/D_PREV.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXAMPLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXAMPLT.GIF new file mode 100644 index 0000000..b9eac12 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXAMPLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXAMPNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXAMPNRM.GIF new file mode 100644 index 0000000..4a817cd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXAMPNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXPO.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXPO.GIF new file mode 100644 index 0000000..4188b5a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXPO.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXT_ANI.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXT_ANI.GIF new file mode 100644 index 0000000..d3e78bf Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/EXT_ANI.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/FIND.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/FIND.GIF new file mode 100644 index 0000000..0c680ef Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/FIND.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/FIND_ON.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/FIND_ON.GIF new file mode 100644 index 0000000..1fabf76 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/FIND_ON.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GAIN1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GAIN1.GIF new file mode 100644 index 0000000..3b7414a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GAIN1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GAIN2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GAIN2.GIF new file mode 100644 index 0000000..b871484 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GAIN2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GETSTLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GETSTLT.GIF new file mode 100644 index 0000000..d7645f2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GETSTLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GETSTNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GETSTNRM.GIF new file mode 100644 index 0000000..d2c5ca5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GETSTNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOSSLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOSSLT.GIF new file mode 100644 index 0000000..1aa5299 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOSSLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOSSNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOSSNRM.GIF new file mode 100644 index 0000000..c456f9b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOSSNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOW.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOW.GIF new file mode 100644 index 0000000..5513090 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/GLOW.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HDRDANIM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HDRDANIM.GIF new file mode 100644 index 0000000..5461830 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HDRDANIM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HEADER1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HEADER1.GIF new file mode 100644 index 0000000..81d56ff Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HEADER1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HEADER3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HEADER3.GIF new file mode 100644 index 0000000..d85b83a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HEADER3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME-RED.GIF new file mode 100644 index 0000000..bf52bd6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME.GIF new file mode 100644 index 0000000..dba1373 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME1.GIF new file mode 100644 index 0000000..bcc0910 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME2.GIF new file mode 100644 index 0000000..4188b5a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/HOME2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IE.GIF new file mode 100644 index 0000000..fa137c9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IEGET_ANIMATED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IEGET_ANIMATED.GIF new file mode 100644 index 0000000..0a2a038 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IEGET_ANIMATED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IE_ANI.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IE_ANI.GIF new file mode 100644 index 0000000..3c7cd36 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IE_ANI.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IMPLANE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IMPLANE.GIF new file mode 100644 index 0000000..72098cf Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/IMPLANE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/INTENSIT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/INTENSIT.GIF new file mode 100644 index 0000000..6f2f554 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/INTENSIT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/JAVALT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/JAVALT.GIF new file mode 100644 index 0000000..1266dd7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/JAVALT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/JAVANRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/JAVANRM.GIF new file mode 100644 index 0000000..2536018 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/JAVANRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/LOGO.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/LOGO.GIF new file mode 100644 index 0000000..aac2c48 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/LOGO.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSFT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSFT.GIF new file mode 100644 index 0000000..a4bac7f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSFT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSHOME.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSHOME.GIF new file mode 100644 index 0000000..da9e9dc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSHOME.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSLOGO.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSLOGO.GIF new file mode 100644 index 0000000..de97d9d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/MSLOGO.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/NEWTRANSX.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/NEWTRANSX.GIF new file mode 100644 index 0000000..5ade69e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/NEWTRANSX.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PERCAM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PERCAM.GIF new file mode 100644 index 0000000..f6b1988 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PERCAM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD-RED.GIF new file mode 100644 index 0000000..7ff3652 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD.GIF new file mode 100644 index 0000000..6ab167a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD_O.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD_O.GIF new file mode 100644 index 0000000..177ed20 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROD_O.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROGLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROGLT.GIF new file mode 100644 index 0000000..e666016 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROGLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROGNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROGNRM.GIF new file mode 100644 index 0000000..1208672 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/PROGNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/RNOTELT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/RNOTELT.GIF new file mode 100644 index 0000000..72be5b0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/RNOTELT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/RNOTENRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/RNOTENRM.GIF new file mode 100644 index 0000000..667741c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/RNOTENRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPH.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPH.GIF new file mode 100644 index 0000000..bf5b93e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPH.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPLES.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPLES.GIF new file mode 100644 index 0000000..762f57d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPLES.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPLT.GIF new file mode 100644 index 0000000..382389c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPNRM.GIF new file mode 100644 index 0000000..051b5c4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SAMPNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SBUTTON1.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SBUTTON1.JPG new file mode 100644 index 0000000..875856b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SBUTTON1.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCBASLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCBASLT.GIF new file mode 100644 index 0000000..8b90f5d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCBASLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCBASNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCBASNRM.GIF new file mode 100644 index 0000000..4bef8e5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCBASNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCRPTLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCRPTLT.GIF new file mode 100644 index 0000000..4c047c5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCRPTLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCRPTNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCRPTNRM.GIF new file mode 100644 index 0000000..fc16a2a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SCRPTNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SDKCTLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SDKCTLT.GIF new file mode 100644 index 0000000..307034c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SDKCTLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SDKCTNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SDKCTNRM.GIF new file mode 100644 index 0000000..28c093f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SDKCTNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH-RED.GIF new file mode 100644 index 0000000..24a1c5e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH.GIF new file mode 100644 index 0000000..2c9c6de Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH_O.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH_O.GIF new file mode 100644 index 0000000..e19eef6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SEARCH_O.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHELLDXM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHELLDXM.JPG new file mode 100644 index 0000000..a9772a5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHELLDXM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP-RED.GIF new file mode 100644 index 0000000..6772d61 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP.GIF new file mode 100644 index 0000000..49c33c9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP_O.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP_O.GIF new file mode 100644 index 0000000..0f95051 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SHOP_O.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACER.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACER.GIF new file mode 100644 index 0000000..8c20cba Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACER.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACER1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACER1.GIF new file mode 100644 index 0000000..0aa31c7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACER1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACERF.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACERF.GIF new file mode 100644 index 0000000..2c8ed84 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPACERF.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPOTLITE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPOTLITE.GIF new file mode 100644 index 0000000..710a6cb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SPOTLITE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/START.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/START.GIF new file mode 100644 index 0000000..bcc0910 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/START.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT-RED.GIF new file mode 100644 index 0000000..2eb9ac8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT.GIF new file mode 100644 index 0000000..49f7ee5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT_.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT_.GIF new file mode 100644 index 0000000..a42b638 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/SUPPORT_.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/TUTORLT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/TUTORLT.GIF new file mode 100644 index 0000000..5846044 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/TUTORLT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/TUTORNRM.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/TUTORNRM.GIF new file mode 100644 index 0000000..50dc9df Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/TUTORNRM.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER01.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER01.GIF new file mode 100644 index 0000000..3908b7b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER01.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER02.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER02.GIF new file mode 100644 index 0000000..04664a1 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER02.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER03.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER03.GIF new file mode 100644 index 0000000..81da045 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/USER03.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_CONT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_CONT.GIF new file mode 100644 index 0000000..14514b5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_CONT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_HOME.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_HOME.GIF new file mode 100644 index 0000000..8483f07 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_HOME.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_INDEX.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_INDEX.GIF new file mode 100644 index 0000000..a6568e9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_INDEX.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_LOCAL.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_LOCAL.GIF new file mode 100644 index 0000000..14514b5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_LOCAL.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_NEXT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_NEXT.GIF new file mode 100644 index 0000000..0dd7010 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_NEXT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_PREV.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_PREV.GIF new file mode 100644 index 0000000..e02d10c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/U_PREV.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WFMCOPTN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WFMCOPTN.GIF new file mode 100644 index 0000000..a6f4f35 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WFMCOPTN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE-RED.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE-RED.GIF new file mode 100644 index 0000000..fd2e3da Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE-RED.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE.GIF new file mode 100644 index 0000000..5427b11 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE_O.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE_O.GIF new file mode 100644 index 0000000..662b1c3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/WRITE_O.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/XXX.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/XXX.GIF new file mode 100644 index 0000000..3fce372 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/XXX.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/XYAXES.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/XYAXES.GIF new file mode 100644 index 0000000..d4f321a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/XYAXES.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/YELBTN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/YELBTN.GIF new file mode 100644 index 0000000..3673e11 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/YELBTN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ZBUF.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ZBUF.GIF new file mode 100644 index 0000000..8f4b4c6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/ART/ZBUF.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/C-FRAME.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/C-FRAME.HTM new file mode 100644 index 0000000..393fe16 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/C-FRAME.HTM @@ -0,0 +1,34 @@ + +DirectAnimation SDK + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/COMMON.JS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/COMMON.JS new file mode 100644 index 0000000..7b0d2bf --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/COMMON.JS @@ -0,0 +1,159 @@ +// Hilites the text in the code sample +// oStart - reference to start of block +// sText - string to find and hilite +function HiliteText(oStart, sText) +{ + + var oRng = document.body.createTextRange(); + oRng.moveToElementText(oStart); + var oRngFixed = oRng.duplicate(); + + if (typeof(HiliteText.tokens) == 'undefined') + { + HiliteText.tokens = new Array(1); + } + else + { + for (i = 0; i < HiliteText.tokens.length; i++) + { + if (HiliteText.tokens[i].m_sSectionID == oStart.id && HiliteText.tokens[i].m_sToken == sText) + { + return; + } + } + + HiliteText.tokens.length++; + } + + + while (oRng.findText(sText, 1000000, 6) && oRngFixed.inRange(oRng)) + { + oRng.execCommand('bold'); + oRng.collapse(false); + } + + HiliteText.tokens[HiliteText.tokens.length-1] = new CHilitedToken(oStart.id, sText); + +} + +// a tuple representing the id of the section and the token to be hilited +// the object is stored in an array to prevent the code from running twice on the same section +function CHilitedToken(sSectionID, sToken) +{ + this.m_sSectionID = sSectionID; + this.m_sToken = sToken; +} + + +// Toggles the display of the content contained within oCode +// oCode - reference to code block +// sToken - string to bolden +function ToggleSample(oCode, sToken) +{ + if (ShowHideSection(window.event.srcElement, 'Sample Code')) + { + HiliteText(oCode, sToken); + } +} + +// If hidden, show. If shown, hide. Modify the caption of the element appropriately +// Returns true if showing on return, false if hidden on return +function ShowHideSection(oHead, sText) +{ + var bRet = false; + var oChild = document.all(oHead.getAttribute('child', false)); + + if (typeof(oChild) == null) + { + return bRet; + } + + var sClass = oChild.className; + var sAction = "Show"; + if (sClass == "collapsed") + { + sAction = "Hide"; + bRet = true; // we'll be showing upon return, so return true + } + + sAction = sAction + ' ' + sText; + oChild.className = (sClass == "collapsed" ? "expanded" : "collapsed"); + oHead.innerText = sAction; + return bRet; +} + +// Set the caption of the specified element +// oElem - reference to element to modify. Typically a Hn +// sCaption - New caption for the element +// bShow - boolean indicating whether or not the element should be made visible +function SetExpandableCaption(oElem, sCaption, bShow) +{ + oElem.innerText = sCaption; + if (bShow) oElem.style.display = 'inline'; +} + +function AddStyleSheet() +{ + var sVR = '/basicSDK' // Set root for the style sheet + var sCSS = ' -1) // For all MSIE 4.0 versions + sCSS += 'IE4'; + else if(navigator.appVersion.lastIndexOf("MSIE 3.") > -1) // For all MSIE 3.0 versions + sCSS += 'IE3'; + else if(navigator.appName.lastIndexOf("Netscape") != -1) // For all Nav versions + sCSS += 'NAV'; + else + { + // do nothing. result will be basicSDK.css + } + + sCSS += '.css" TYPE="text/css">'; + document.writeln(sCSS); +} + +// Set the caption for the TOC link, and fix up the href. IE4 only +function SetTOC() +{ + if (typeof(TOC) != 'object') + return; + + // build a string for the 'Show Contents' case + var sPath = location.pathname; + + var sMask = (location.href.indexOf('ttp://') > 0) ? "/da/" : "\\da\\"; + + if (sPath.lastIndexOf(sMask) < 0) // doc isn't located under help + { + TOC.style.visibility = "hidden"; // in case the style sheet wasn't hooked up + TOC_.style.visibility = "hidden"; +return; + } + + var iStart = sPath.lastIndexOf(sMask)+sMask.length; + sFramed = sPath.substring(0,sPath.lastIndexOf(sMask)) + + sMask+"c-frame.htm#" + + (sPath.substring(iStart) == "" ? "default.htm" : sPath.substring(iStart)); + + if (window.top != self) + { + if (window.top.frames.length>1 && window.top.frames[0].name=="TOC") + { + TOC.innerText = "Hide Contents"; + TOC.href = location.pathname; + TOC.target = "_top"; + } + } + else + { + TOC.innerText = "Show Contents"; + TOC.href = sFramed; + } + + TOC.style.visibility = "visible"; +} + +function CheckCAB(n) +{ + return true; +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/CONTENTS.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/CONTENTS.HTM new file mode 100644 index 0000000..71d18e0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/CONTENTS.HTM @@ -0,0 +1,176 @@ + + + + + + +Contents + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +Microsoft DirectAnimation SDK + +
    + +
    + +DirectAnimation SDK +
    + +
    + +Getting Started +
    + +
    + +Guide to Samples +
    + +
    + +Scripting Cookbook +
    + +
    + +DirectAnimation Controls +
    + +
    + +Programmer's Guide +
    + +
    + +Scripting Reference +
    + +
    + +Java Reference +
    + +
    + +Glossary +
    + +
    + +DirectAnimation Readme +
    +
    + + +
    +

    +Best experienced with
    + + +
    +Click here to start.
    +
    +
    + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0000.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0000.HTM new file mode 100644 index 0000000..6d88464 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0000.HTM @@ -0,0 +1,339 @@ + + +Getting Started + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Getting Started +DirectAnimation Animated Header --Getting Started* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Microsoft DirectAnimation SDK
    +*Next Topic: Guide to Samples
    +

    +
    +

    Getting Started

    +
    +

    This section contains the following topics. + +

    +

    What is DirectAnimation?

    +

    Microsoft® DirectX® media is a family of high-level APIs and multimedia controls that provide rich support for animation, streaming, and integration of the different media types. Microsoft DirectAnimation™ is the DirectX media component that creates Web animation and integrates dynamic HTML. + +

    DirectAnimation is a COM API and an underlying run time that different users can access in different ways. HTML authors can add multimedia and animation to their pages by using the DirectAnimation controls, without programming at all. You can also animate HTML pages by using Microsoft Visual Basic® Scripting Edition (VBScript), JScript and Java applets. Finally, Java, Visual Basic, and C++ application programmers can develop ActiveX™ Controls or full applications. Thus, DirectAnimation provides multimedia tools that scale from the HTML author to the C++ programmer. + +

    The DirectAnimation SDK provides documentation, samples, and tutorials to help users get started with DirectAnimation. + +

    You can implement DirectAnimation by using the DirectX foundation API and DirectShow™. + + + For a guide on where to find out about particular DirectShow features, see the DirectShow Documentation. For more information about the DirectX foundation components, see http://www.microsoft.com/DirectX/. + +

    Key features of the DirectAnimation API are: + +

    • Comprehensive support for different media types. 2-D vector graphics, images and sprites, 3-D geometry, video, and sound (including MIDI) are unified in a single animation API. + + +
    • A uniform time and event model that simplifies temporal coordination and interaction of the different media types. This model frees users from frame-level details and provides the foundation for supporting inherently time-based media types such as video and audio. +
    +

    DirectAnimation provides services that make it easy to build high-performance animation in a variety of environments, such as HTML, VBScript and JScript, Java, and Microsoft Visual C++®. Components include controls for HTML environments and a COM-based animation library accessible from any programming or scripting language. + +

    A set of multimedia run-time controls supply scripting access to some of the DirectAnimation API functions and libraries. The Path, Sequencer, Sprite, and Structured Graphics controls enable you to deliver impressive animation, image, and sound content over the Web with very little code. See DirectAnimation Multimedia Controls for a description of the controls and how to use them. Or see samples to view the control samples. + + + + + + +

    The following diagram shows the DirectAnimation architecture. The ActiveMovie Control provides an interface to some of the DirectShow API functions. The multimedia controls provide an interface to some of the DirectAnimation library. You can also access the library directly. + + + The DirectAnimation library, in turn, uses the DirectShow API, the DirectX foundation, and certain operating-system services. SG stands for Structured Graphics control and Seq stands for the Sequencer control. + +

    DirectAnimation architecture

    Who Should Use DirectAnimation?

    +

    Like other system services such as window management or client/server frameworks, DirectAnimation's functionality supports a number of applications. This documentation focuses on Internet applications. + +

    The multimedia authoring community includes people skilled in a variety of disciplines. From graphics system programmers to creative professionals, Web developers come from many backgrounds and bring as many approaches to the task of producing multimedia for the Web. + +

    Web multimedia developers can be grouped by the tools they use: + + + + + + + + + + + + + + + + + + + +
    Developer Tools +
    Creative professional Painting software, scanners, cameras, image editing software, sound editors +
    Web site builder Authoring tools for HTML (Microsoft FrontPage®, for example) +
    Script writer JScript, VBScript, HTML source +
    Application developer C, C++, Visual Basic, Java, SQL, Active Server, CGI scripts +
    Graphics systems programmer Low-level languages (C, C++) and graphics APIs +
    +

    DirectAnimation serves each of these developers. The multimedia client controls are the quickest approach for common applications, such as sprite sequences or line drawing. The scripting interface for JScript and VBScript adds many animation features in a simple, high-level way. Finally, you can use Java or C++ (or any other COM-enabled language) to access the media and animation library with the full power of an object-oriented, compiled language. + +

    The following table shows the typical ways different developers would access DirectAnimation. + + + + + + + + + + + + + + + + + + + + +
    Developer Accesses DirectAnimation through... +
    Creative professional DirectAnimation controls +
    Web site builder DirectAnimation controls, DirectAnimation scripting +
    Script writer DirectAnimation scripting, DirectAnimation for Java +
    Application developer DirectAnimation for Java, DirectAnimation scripting, and C++ +
    Graphics systems programmer DirectAnimation through native COM, C++, DirectX foundation, and DirectShow +
    +

    What Do You Need to Use DirectAnimation?

    +

    Internet Explorer 4.x contains all the software necessary to view multimedia created with DirectAnimation. + +

    The following list shows what you need to create presentations with DirectAnimation: + +

    • The DirectAnimation run-time library, which is part of the Internet Explorer 4.x minimal install. +
    • The DirectAnimation SDK, which includes samples in JScript, VBScript, Java, and Visual Basic. +
    • JScript and VBScript users need only Internet Explorer 4.x to develop animations. +
    • Visual Basic, Java, and C++ users need the Microsoft Visual Basic, Microsoft Visual J++®, or Microsoft Visual C++ version 5.x environments or their equivalents. You can also use the DirectAnimation API from VBScript and JScript without compiling. +
    +

    How Can You Use DirectAnimation?

    +

    You can use DirectAnimation in the following ways: + +

    • As an inline, HTML Web animation through JScript, VBScript, or the DirectAnimation controls. +
    • As a Web animation in the form of a Java applet. +
    • As a stand-alone application or an ActiveX™ Control implemented through Java, Visual Basic, or C++. +
    • To construct animated windowless controls. +
    • To animate properties of ActiveX Controls. +
    • To load animations asynchronously and hide the load time. +
    +

    You can access DirectAnimation from JScript, VBScript, Visual Basic, and C++ through the scripting (COM) interfaces directly. Or, you can add DirectAnimation content to your Web pages by using the DirectAnimation controls and setting parameters on these controls; that is, without programming at all. See the DirectAnimation Controls section for more details. Using the DirectAnimation controls directly, or using JScript or VBScript, enables you to describe inline animations with HTML. Such animations can integrate with Dynamic HTML by being windowless on the page (overlaying other elements such as text) or by driving the properties of other entities on the page. You can also import HTML-rendered text and use it as a texture in an animation. +

    There is a special Java binding for DirectAnimation provided on top of the COM API that takes advantage of specific Java features. For example, operations are overloaded, so that several COM methods that perform similar functions but use different parameter types are given the same name in Java. + + + +

    The DirectAnimation Samples

    +

    The DirectAnimation SDK includes a wide variety of samples to illustrate using DirectAnimation from the different host languages. For each host language there are four categories of samples, as follows: +

    • Exercises: Illustrate the most basic use of DirectAnimation. +
    • Templates: Provide code that implements common DirectAnimation tasks. +
    • Showcases: Demonstrate the breadth of features in the system. Some of them have real-life applications, such as advertising or education. +
    • Tutorials: Explain step-by-step details of how to construct some Java samples. These samples include a button labeled Info on the main HTML page that launches a new instance of the browser containing the tutorial, so that you can see the narration side-by-side with the running animation. + + +
    +

    Documentation Roadmap

    +

    The DirectAnimation documentation is divided into several sections. To help you find the information you need, the following list describes the content of each section and when you will typically use it. For the most recent updates to this documentation, consult the Microsoft DirectX Web site at http://www.microsoft.com/DirectX/. +

    • Getting Started — contains general information about DirectAnimation. Use this section to orient yourself when first starting with DirectAnimation. +
    • Guide to Samples — contains a description of the templates, exercises, and showcase samples included with DirectAnimation. When viewing the documents as HTML, you can link directly to each sample described. This section also includes step-by-step procedures describing how to write simple JScript, VBScript, and Java code. + +
    • Scripting Cookbook — contains basic examples of animation features in JScript, suitable for cutting and pasting. + +
    • DirectAnimation Controls — contains articles about the DirectAnimation multimedia controls, as well as wizards that allow you to experiment with the controls. + +
    • Programmer's Guide — contains overview articles covering basic DirectAnimation concepts such as coordinate systems, timelines, and events, plus a detailed discussion of behaviors and media types. +
    • DirectAnimation Scripting Reference — contains descriptions of the interfaces and methods used by JScript, VBScript, Visual Basic, and C++ users. +
    • DirectAnimation Java Reference — contains descriptions of the DirectAnimation Java classes + + +and interfaces and their methods, event data, a list of default values, and a hierarchy chart. +
    • Glossary — contains definitions of basic animation terms and DirectAnimation terms. + + +
    +

    The DirectAnimation documentation does not include material on how to program in Java, C/C++, or Visual Basic. Consult the appropriate programming documentation for this information. + + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0001.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0001.HTM new file mode 100644 index 0000000..eefd7c0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0001.HTM @@ -0,0 +1,433 @@ + + +Guide to Samples + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Guide to Samples +DirectAnimation Animated Header --Guide to Samples* + +Microsoft DirectAnimation SDK +
    *Contents   *Index  *Topic Contents
    +
    *Previous Topic: Getting Started
    +*Next Topic: How to Create a JScript Animation
    +

    +

    +

    Guide to Samples

    +
    +

    This article contains descriptions of all the templates, exercises, and showcase samples, plus step-by-step procedures describing how to perform basic Microsoft® DirectAnimation™ tasks. + + +

    To go directly to the main sample page for each of the five languages and the DirectAnimation controls, select one of the following: +

    +

    On the sample main pages you will see a list of all the samples available of that type. To return to the DirectAnimation documentation, choose the Docs button below the left-hand table of contents. + + +

    You can also access individual DirectAnimation samples from this Guide to Samples topic by clicking the name of the sample. + + + This will display the sample, but will not take you out of the DirectAnimation documentation and will not display a table of contents listing all the language samples. + + + +

    See the following sections for descriptions of the samples and step-by-step instructions for building animations. The sample paths refer to the default sample directories create when you install the DirectX Media SDK. You can also access the samples on this Web site by clicking on the links. +

    When you open a sample it creates a new browser window. Only one sample window will be open at one time. If you minimize the sample window or place the sample window in the background, you have to click the sample window to bring it on top again. You would need to do this, for example, to see the sample window when you open another sample. + +

    +

    Samples Overview

    +

    DirectAnimation comes with a wide variety of samples that show you how to use DirectAnimation from different languages. You can cut and paste portions or all of these samples for your own animations. The samples come with a pool of media files, including MIDI, 3-D model, image, video, and sound files. These media files are used by the SDK samples, and are available for use in the DirectAnimation content only. You are not allowed to use these media files in any other fashion. + + + + +

    For each language, there are three categories of samples: + + +

    • Exercises: Illustrate basic use of DirectAnimation at an introductory level. +
    • Templates: Provide code that implements common DirectAnimation tasks, such as how to asynchronously download media, use the pixel construction mode, animate HTML and other controls, and sequence animation behaviors along a timeline. +
    • Showcase samples: Demonstrate the breadth of features in the system. Some of these samples have real-life applications, such as advertising or education. +
    +

    The DirectAnimation SDK also contains a set of samples illustrating the DirectAnimation controls. + + +

    In addition, the DirectAnimation SDK provides tutorials. Some of the Java showcase samples and most of the Java templates have tutorials that show step-by-step details of their construction. Samples that have associated tutorials include a button labeled Info on the sample's main HTML page. This button launches a new instance of the browser, so that you can see the narration side-by-side with the running animation. + +

    All the examples discussed are in one of the subdirectories in Samples\DA. + + +

    VBScript Samples

    +

    This section describes the VBScript Samples included with DirectAnimation. Click any link to display the sample. + +

    This section describes the following types of samples: + +

    +

    VBScript Templates

    +

    The VBScript template samples are in the Samples\DA\VBScript\Templates folder. + + + The following table lists the available VBScript templates and the concepts that they illustrate (click any link to display the sample): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VBScript template nameDescription + + +
    HelloWorldVBS.htmlThe HelloWorld VBScript sample demonstrates basic text animation as a windowless control. +
    Basic.htmlThe Basic VBScript sample demonstrates a simple animation (rotating oval) using the core DirectAnimation library. This is useful as a starting point for writing new content. +
    BasicDS.htmlThe BasicDS VBScript sample is the same animation as Basic but written using the drawing surface API, which has a slightly different style. +
    Movie.htmlThe Movie VBScript sample demonstrates how to play a movie. +
    AudioMixing.htmlThe AudioMixing VBScript sample demonstrates how to mix audio. The volume and panning of three sounds are controlled by the positions of the scroll bars. +
    ButtonSwitchThe ButtonSwitch VBScript sample demonstrates how to use modifiable behaviors and buttons. +
    ScrollSwitchThe ScrollSwitch VBScript sample demonstrates how to use modifiable behaviors and scroll bars. +
    SplineLogo.htmlThe SplineLogo VBScript sample demonstrates a spline that is used both as a boundary of a shape and as an animation path. +
    Callback.htmlThe Callback VBScript sample demonstrates how to use a scripting callback + + + with two buttons and a piece of HTML text. Pressing the buttons animates the buttons in 3-D, emits a sound, and moves the HTML text in direction the button indicates. + + +
    AnimatedProperties.htmlThe AnimatedProperties VBScript sample demonstrates animated strings, numbers, and script callbacks. + +
    +

    VBScript Showcase Samples

    +

    The VBScript showcase samples are in the Samples\DA\VBScript\Showcase. + + + The following table lists the available VBScript showcase samples and the concepts that they illustrate (click any link to display the sample): + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VBScript showcase nameDescription + + +
    Runners.htmlThe Runners VBScript sample demonstrates instantiating and sequencing two structured graphics models. +
    Coffee.htmlThe Coffee VBScript sample demonstrates how to use montages (2.5-D images). +
    Pick3.htmlThe Pick3 VBScript sample demonstrates animated and interactive 3-D .x models rendered as windowless controls over the HTML page. +
    Clock.htmlThe Clock VBScript sample demonstrates time-accurate animation of a clock with a radially filled background. +
    Curves.htmlThe Curves VBScript sample demonstrates time-varying cubic B-spline curves that are used to clip an image whose opacity is also time-varying. The end result is a windowless control on top of HTML text. +
    MsCubes.htmlThe MsCubes VBScript sample constructs 3-D animate cubes with motion GIF texturing. A mouse click + + + stops and starts one aspect of the animation. +
    DancingTrapzoids.htmlThe DancingTrapzoids VBScript sample shows rectangles with time-varying colors that chase each other along a trajectory. +
    +

    Control Samples

    +

    All of the control samples are contained in the Samples\DA\Controls folder. + + + The following table shows the available controls samples (click any link to display the sample): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Control sampleDescription +
    AniFilt.htmThe AniFilt DirectAnimation control sample demonstrates how to use dynamic filtering for a cut-out effect on text. +
    Buttons.htmThe Buttons DirectAnimation control sample demonstrates three-state buttons using sprites. +
    Clock.htmThe Clock DirectAnimation control sample demonstrates time-accurate animation of a clock with a radially filled background. +
    Complex.htmThe Complex DirectAnimation control sample demonstrates structured graphics. +
    Count.htmThe Count DirectAnimation control sample demonstrates using structured graphics and sequencing to control multimedia event timing. +
    Filter.htmThe Filter DirectAnimation control sample demonstrates using filters, including filter information. +
    Globe.htmThe Globe DirectAnimation control sample demonstrates mouse interaction with sprites. + + +
    Mega.htmThe Mega DirectAnimation control sample demonstrates a splash page using structured graphics. +
    Path.htmThe Path DirectAnimation control sample demonstrates path controls that move objects around a page. +
    SG-DrawingSurface.htmThe SG-DrawingSurface DirectAnimation control sample demonstrates using the DirectAnimation library for Drawing Surface operations. + + +
    SG-Preserve.htmThe SG-Preserve DirectAnimation control sample demonstrates how to preserve an image's aspect ratio as the window is resized. +
    SpinIE.htmThe SpinIE DirectAnimation control sample demonstrates spinning the letter E in 3-D. +
    Textmask.htmThe TextMask DirectAnimation control sample demonstrates how to use text for clipping animate structured graphics on an image background. +
    Yoyo.htmThe Yoyo DirectAnimation control sample demonstrates mouse interaction with a sprite. +
    + + + + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0002.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0002.HTM new file mode 100644 index 0000000..5b8f32c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0002.HTM @@ -0,0 +1,214 @@ + + +How to Create a JScript Animation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --How to Create a JScript Animation +DirectAnimation Animated Header --How to Create a JScript Animation* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Guide to Samples
    +*Next Topic: How to Create a VBScript Animation
    +

    +

    +

    How to Create a JScript Animation

    +
    +

    The DirectAnimation library works with the DirectAnimation integrated-media control (DAViewerControl). Library calls are made through a scripting language, such as JScript or VBScript, to construct an animation and play it from an HTML file. + +

    The following steps show how to construct a simple DirectAnimation control in JScript. +

    1. In your HTML file, declare your DAViewerControl object. The object's name can be anything. Here, it is called DAControl. The CLSID must be as shown: + +
      <DIV ID=controlDiv>
      +<OBJECT ID="DAControl"
      +    STYLE="position:absolute; left:10; top:10;width:500;height:450"
      +    CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
      +</OBJECT>
      +</DIV>
      +
      +
    2. Define your script language. + +
      <SCRIPT LANGUAGE="JScript">
      +<!--
      +
      +
    3. Extract either the PixelLibrary or MeterLibrary from your control. +
         m = DAControl.PixelLibrary;
      +
      +

      — or — +

         m = DAControl.MeterLibrary;
      +
      +

      The variable m is shorthand for the DAStatics Library. Every function and property that is in that library needs to be preceded by this variable so the interpreter knows where to find them. +

      +

    4. Write your code. When you have created the image or sound you want to display (which can be as elaborate as you like), set it to the DAViewerControl's Image property or Sound property. In this case, the Image property is set to a solid blue plane that covers the screen: +
         DAControl.Image = m.SolidColorImage(m.Blue);
      +
      +
    5. Render the image or sound with the DAViewerControl subroutine Start(): +
         DAControl.Start();
      +
      +
    6. Close the JScript scripting section: +
      //-->
      +</SCRIPT>
      +
      +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0003.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0003.HTM new file mode 100644 index 0000000..d68a788 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0003.HTM @@ -0,0 +1,208 @@ + + +How to Create a VBScript Animation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --How to Create a VBScript Animation +DirectAnimation Animated Header --How to Create a VBScript Animation* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: How to Create a JScript Animation
    +*Next Topic: How to Build a DirectAnimation Java Applet or Application
    +

    +

    +

    How to Create a VBScript Animation

    +
    +

    The DirectAnimation library works with the DirectAnimation integrated-media control (DAViewerControl). Library calls are made through a scripting language, such as JScript or VBScript, to construct an animation and play it from an HTML file. + +

    To construct a simple DirectAnimation control in VBScript: +

    1. In your HTML file, declare your DAViewerControl object. The object's name can be anything. Here, it is called DAMyCtl. The CLSID must be as shown: +
      <OBJECT ID="DAMyCtl"
      +   STYLE="position:absolute; left:30%; top:100;width:300;height:300" 
      +   CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
      +</OBJECT>
      +
      +
    2. Define your script language. +
      <SCRIPT LANGUAGE="VBScript">
      +<!--
      +
      +
    3. Extract either the PixelLibrary or MeterLibrary from your control. +
         Set m = DAMyCtl.PixelLibrary
      +
      +

      — or — +

         Set m = DAMyCtl.MeterLibrary
      +
      +
    4. Write your code. When you have created the image or sound you want to display (which can be as elaborate as you like), set it to the DAViewerControl's Image property or Sound property. In this case, the DAViewerControl Image property is set to a solid blue plane that covers the screen: +
         DAMyCtl.Image = m.SolidColorImage(m.Blue)
      +
      +
    5. Render the image or sound with the DAViewerControl subroutine Start: +
         DAMyCtl.Start
      +
      +
    6. Close the VBScript scripting section: +
      -->
      +</SCRIPT>
      +
      +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0004.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0004.HTM new file mode 100644 index 0000000..61a0fcd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0004.HTM @@ -0,0 +1,223 @@ + + +How to Build a DirectAnimation Java Applet or Application + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --How to Build a DirectAnimation Java Applet or Application +DirectAnimation Animated Header --How to Build a DirectAnimation Java Applet or Application* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: How to Create a VBScript Animation
    +*Next Topic: How to Write a DirectAnimation Java Applet
    +

    +

    +

    How to Build a DirectAnimation Java Applet or Application

    +
    +

    This section discusses three methods you can use to build a DirectAnimation Java applet or application. + + +

    In Microsoft Visual J++™: +

    1. From the File menu, choose New. +
    2. From the dialog box that appears, choose the Projects tab. +
    3. Select Java Project as the project type, type a name into the Project name text box, type a path into the Location text box, and then click OK. The Java project is created. +
    4. From the Project menu, choose Add To Project, and then choose Files from the submenu that appears. +
    5. In the Insert Files into Project dialog box that appears, browse for your .java files, select the files you want to add, and then click OK. +
    6. From the Build menu, choose Build MyApp where MyApp is your project's name. The .class files are built, and a test HTML file is generated automatically. +
    +

    With the Jvc compiler from the command line: +

    The Jvc.exe Java compiler is delivered with Visual J++ and the Microsoft SDK for Java. +

    1. Set your environment path to include the location of Jvc.exe. For example: +
      
      +	set path=c:\"program files"\devstudio\sharedide\bin
      +
      +

      or: +

      
      +	set path=c:\java\sdk\bin 
      +
      +
    2. Go to the directory containing the .java files. + +
    3. At the command line prompt, type: +
      
      +	jvc *.java 
      +
      +

      The class files will be generated. No test HTML will be generated. +

    +

    With NMAKE and a sample or template makefile +

    1. Set your environment path to include the location of NMAKE.exe. For example: +
      
      +	set path=c:\"program files"\devstudio\vc\bin
      +
      +
    2. Set your environment path to include the location of Jvc.exe. For example: +
      
      +	set path=c:\"program files"\devstudio\sharedide\bin
      +
      +
    3. Go to the directory containing the makefile. + +
    4. At the command line prompt, type: +
      
      +	NMAKE
      +
      +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0005.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0005.HTM new file mode 100644 index 0000000..2ea5b3e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0005.HTM @@ -0,0 +1,234 @@ + + +How to Write a DirectAnimation Java Applet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --How to Write a DirectAnimation Java Applet +DirectAnimation Animated Header --How to Write a DirectAnimation Java Applet* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: How to Build a DirectAnimation Java Applet or Application
    +*Next Topic: How to Build the DirectAnimation C++ Samples that Render to DirectDraw Surfaces
    +

    +

    +

    How to Write a DirectAnimation Java Applet

    +
    +

    See the BasicApplet.java file in Samples\DA\Java\Templates\BasicApplet. + +

    Every DirectAnimation applet has two main pieces: the DXMApplet class and the Model class. The following steps show how to construct and initialize a simple DirectAnimation applet. + +

    1. Import the media libraries. +
      
      +	import com.ms.dxmedia.*;
      +
      +

      If you import multimedia files using URLs, you must also import the Java libraries with: +

      
      +	import java.net.*;
      +
      +
    2. Define the applet class. This class extends the DXMApplet class. Then, set the model in the init method. Always call the superclass's init first to ensure that the applet's base URL (the directory in which the applet is located) is set. The model you set with the setModel method is the model that is displayed. + + +
      
      +	//
      +	// Class: MyApplet
      +	//
      +	class MyApplet extends DXMApplet {
      +
      +		public void init() {
      +      		super.init() ;
      +
      +    		// Now set the model.
      +    	setModel(new MyModel());
      +   		}
      +	}
      +
      +
    3. Define the model class. This class extends the Model class. You construct your animation with the createModel method. The following code example constructs a solid blue image. + +
      
      +	//
      +	// Class: MyModel
      +	//
      +	class MyModel extends Model {
      +
      +   		public void createModel(BvrsToRun blist){
      +	// Set the image that actually gets displayed
      +      	setImage(solidColorImage(blue));
      +   		}
      +	}
      +
      +
    4. Compile the code with the Jvc compiler. + +
    5. Insert the applet in an HTML page. +
      
      +	<title>
      +	My Applet
      +	</title>
      +	<hr>
      +	<applet code=MyApplet.class width=200 height=200>
      +	</applet>
      +	<hr>
      +
      +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0006.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0006.HTM new file mode 100644 index 0000000..0b5b06f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0006.HTM @@ -0,0 +1,201 @@ + + +How to Build the DirectAnimation C++ Samples that Render to DirectDraw Surfaces + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --How to Build the DirectAnimation C++ Samples that Render to DirectDraw Surfaces +DirectAnimation Animated Header --How to Build the DirectAnimation C++ Samples that Render to DirectDraw Surfaces* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: How to Write a DirectAnimation Java Applet
    +*Next Topic: How to Build the DirectAnimation C++ Samples that Use the Windowed Control
    +

    +

    +

    How to Build the DirectAnimation C++ Samples that Render to DirectDraw Surfaces

    +
    +

    To build the DirectAnimation C++ samples from the command line, follow these steps: +

    1. Make sure that the directories containing the Danim.dll, Ddrawex.h, and Guids.lib files are in your computer's path, include, and lib environment, +respectively. For example: +
      
      +SET LIB=c:\dxmedia\lib\;
      +
      +

      If you are using untilNotify, make sure that Daguid.lib is also in your lib environment. + +

      Danim.dll should be located in the Windows\System directory for Windows 95 or Windows\System32 directory for Windows NT; Internet Explorer 4.x installs it. + +

      If you can't find Ddrawex.h, Guids.lib, or Daguid.lib on your computer, there are copies in the Include and Lib directories of the DirectX Media SDK. + +

    2. Go to the directory where the samples are located and run NMAKE. Note that for the C++ samples included in this SDK, the Release build is the default build. +
    +

    To build DirectAnimation C++ samples in Microsoft Visual C++ 5.x, set the paths as described in Step 1, and then follow these steps: +

    1. Start Microsoft Visual C++ 5.x and create a new Win32 application. +
    2. From the Project menu, choose Settings, and then choose the Link tab. +
    3. Select General in the Category drop-down list. +
    4. Add Guids.lib (and Daguid.lib if using untilNotify) to the Object/library modules text box. +
    5. Click OK. +
    6. From the Project menu, choose Add To Project, and then select Files and insert the DirectAnimation C++ files to the project. +
    7. Press the F7 key to build. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0007.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0007.HTM new file mode 100644 index 0000000..7b1b15c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0007.HTM @@ -0,0 +1,204 @@ + + +How to Build the DirectAnimation C++ Samples that Use the Windowed Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --How to Build the DirectAnimation C++ Samples that Use the Windowed Control +DirectAnimation Animated Header --How to Build the DirectAnimation C++ Samples that Use the Windowed Control* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: How to Build the DirectAnimation C++ Samples that Render to DirectDraw Surfaces
    +*Next Topic: Scripting Cookbook
    +

    +

    +

    How to Build the DirectAnimation C++ Samples that Use the Windowed Control

    +
    +

    To build the DirectAnimation C++ samples from the command line, follow these steps: +

    1. Make sure that the directories containing the Danim.dll and Ddrawex.h files are in your computer's path, include, and lib environment, +respectively. For example: +
      
      +SET LIB=c:\dxmedia\lib\;
      +
      +

      If you are using untilNotify, make sure that Daguid.lib is also in your lib environment. + + +

      Danim.dll should be located in the Windows\System directory for Windows 95 or Windows\System32 directory for Windows NT; Internet Explorer 4.x installs it. + +

      If you can't find Ddrawex.h or Daguid.lib on your computer, there are copies in the Include and Lib directories of the DirectX Media SDK. + +

    2. Go to the directory where the samples are located and run NMAKE. Note that for the C++ samples included in this SDK, the Release build is the default build. +
    +

    To build DirectAnimation C++ samples in Microsoft Visual C++ 5.x, set the paths as described in Step 1, and then follow these steps: +

    1. Start Microsoft Visual C++ 5.x and create a new Win32 application. +
    2. From the Project menu, choose Add To Project, and then select Files and insert the DirectAnimation C++ files to the project. +
    3. Press the F7 key to build. +
    +

    If you are using untilNotify, you need to perform the following additional steps before you build: +

    1. From the Project menu, choose Settings, and then choose the Link tab. +
    2. Select General in the Category drop-down list. +
    3. Add Guids.lib (and Daguid.lib if using untilNotify) to the Object/library modules text box. +
    4. Click OK. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0008.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0008.HTM new file mode 100644 index 0000000..87801c8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0008.HTM @@ -0,0 +1,192 @@ + + +Scripting Cookbook + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Scripting Cookbook +DirectAnimation Animated Header --Scripting Cookbook* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: How to Build the DirectAnimation C++ Samples that Use the Windowed Control
    +*Next Topic: 3-D Cube
    +

    +

    +

    Scripting Cookbook

    +
    +

    The Scripting Cookbook is a collection of samples designed to introduce you to the rudiments of scripting in Microsoft® DirectAnimation™. Each sample is written in JScript and illustrates a single concept, such as displaying text or drawing rectangles. The HTML source code is heavily commented. To see the HTML source code, right-click the title above the Show button and choose View Source from the menu that appears. + +

    +Don't be afraid to experiment. Try changing the values in the samples to see what happens. It is assumed that you are already familiar with JScript and elementary programming concepts such as functions and arrays. Also, be sure to look at the simple scripting exercises in the JScript\exercises directory. These are complementary to the material in this section. +

    bullet1.gif3-D Cube
    +

    bullet1.gifArcs
    +

    bullet1.gifButton
    +

    bullet1.gifMatte
    +

    bullet1.gifOpacity
    +

    bullet1.gifPies
    +

    bullet1.gifRectangles
    +

    bullet1.gifRotations
    +

    bullet1.gifText
    +

    bullet1.gifVectors
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0009.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0009.HTM new file mode 100644 index 0000000..6597af8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0009.HTM @@ -0,0 +1,186 @@ + + +3-D Cube + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --3-D Cube +DirectAnimation Animated Header --3-D Cube* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Scripting Cookbook
    +*Next Topic: Arcs
    +

    +

    +

    3-D Cube

    +
    +

    This example displays a three-dimensional cube. To display a 3-D object, use some sort of lighting and a camera. For lighting, this demonstration uses both a PointLight and a DirectionalLight. To render the image, it uses a PerspectiveCamera. To make it clearer that the cube is three-dimensional, we rotate it around the x-axis with the Rotate3Anim function. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0010.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0010.HTM new file mode 100644 index 0000000..c6f378a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0010.HTM @@ -0,0 +1,187 @@ + + +Arcs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Arcs +DirectAnimation Animated Header --Arcs* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: 3-D Cube
    +*Next Topic: Button
    +

    +

    +

    Arcs

    +
    +

    This example demonstrates how to draw arcs. It uses the ArcDegrees and the ArcRadiansAnim functions. It also shows how to use an arc as a path with the FollowPath function. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0011.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0011.HTM new file mode 100644 index 0000000..f8ee025 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0011.HTM @@ -0,0 +1,187 @@ + + +Button + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Button +DirectAnimation Animated Header --Button* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Arcs
    +*Next Topic: Matte
    +

    +

    +

    Button

    +
    +

    This example displays a button that, when you click on it, goes to the Microsoft home page. To make the button, we first draw a square and made it pickable, using the Pickable function. This means the image recognizes when the mouse is within its bounding box. The blue square turns red when this happens. On a left-button click, the button transfers you to the Microsoft home page. This is done with the ScriptCallback function. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0012.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0012.HTM new file mode 100644 index 0000000..0d1d9cf --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0012.HTM @@ -0,0 +1,187 @@ + + +Matte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Matte +DirectAnimation Animated Header --Matte* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Button
    +*Next Topic: Opacity
    +

    +

    +

    Matte

    +
    +

    This example displays a simple text matte. A matte is analagous to a stencil. In this example, the word "Matte" acts as the stencil, and an image (a SolidColorImage) with a time-varying color is clipped to fit it. An animated matte is also demonstrated. This uses a variety of transforms, including translation, rotation, shearing, and scaling. To see what each of these do, comment out all the transforms but one. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0013.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0013.HTM new file mode 100644 index 0000000..af82f76 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0013.HTM @@ -0,0 +1,187 @@ + + +Opacity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Opacity +DirectAnimation Animated Header --Opacity* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Matte
    +*Next Topic: Pies
    +

    +

    +

    Opacity

    +
    +

    This example demonstrates opacity, or how transparent an image or geometry is. It uses the Opacity function to show what an image looks like at different opacity levels. It also uses the OpacityAnim function for a time-varying opacity. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0014.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0014.HTM new file mode 100644 index 0000000..376f25a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0014.HTM @@ -0,0 +1,187 @@ + + +Pies + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Pies +DirectAnimation Animated Header --Pies* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Opacity
    +*Next Topic: Rectangles
    +

    +

    +

    Pies

    +
    +

    This example demonstrates how to draw pies. These are segments of ovals connected to the origin (in effect, pie-shaped wedges). It uses the PieDegrees and the PieRadiansAnim functions. It also shows how to use a pie as a path with the FollowPath function. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0015.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0015.HTM new file mode 100644 index 0000000..f332d95 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0015.HTM @@ -0,0 +1,187 @@ + + +Rectangles + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Rectangles +DirectAnimation Animated Header --Rectangles* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Pies
    +*Next Topic: Rotations
    +

    +

    +

    Rectangles

    +
    +

    This example demonstrates how to create a rectangle and turn it into an image that can be rendered. An animated rectangle, with a width that varies over time is also shown. Finally, a rectangle is used as a path rather than as an image. A line of text traces out the path. (This also demonstrates the FollowPath function.) +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0016.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0016.HTM new file mode 100644 index 0000000..208936f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0016.HTM @@ -0,0 +1,187 @@ + + +Rotations + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Rotations +DirectAnimation Animated Header --Rotations* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Rectangles
    +*Next Topic: Text
    +

    +

    +

    Rotations

    +
    +

    This example demonstrates some simple rotations, using several of the rotate functions. Examples include both clockwise and counterclockwise rotations, use of the SubstituteTime function, and rotating a two-dimensional image in a three-dimensional space, using the ParallelTransform2 function. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0017.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0017.HTM new file mode 100644 index 0000000..49d49ee --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0017.HTM @@ -0,0 +1,186 @@ + + +Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Text +DirectAnimation Animated Header --Text* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Rotations
    +*Next Topic: Vectors
    +

    +

    +

    Text

    +
    +

    This example demonstrates how to display text as well as how to set the font and various attributes. It also shows an animated example, where the font cycles through three values, changing every 2 seconds. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0018.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0018.HTM new file mode 100644 index 0000000..37c875c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0018.HTM @@ -0,0 +1,187 @@ + + +Vectors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Vectors +DirectAnimation Animated Header --Vectors* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Text
    +*Next Topic: DirectAnimation Multimedia Controls
    +

    +

    +

    Vectors

    +
    +

    This example shows a face whose eyes track the mouse. This is done with two-dimensional vectors. The face is drawn using the Polyline function. +

    To see the source code, right-click the title above the button and choose View Source from the menu that appears. + + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0019.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0019.HTM new file mode 100644 index 0000000..b6450ff --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0019.HTM @@ -0,0 +1,222 @@ + + +DirectAnimation Multimedia Controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DirectAnimation Multimedia Controls +DirectAnimation Animated Header --DirectAnimation Multimedia Controls* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Vectors
    +*Next Topic: Path Control
    +

    +

    +

    DirectAnimation Multimedia Controls

    +
    +

    The Microsoft® DirectAnimation™ multimedia controls give you the capability to deliver impressive vector graphics, images, and animation content over the Web without incurring long download times. + +

    • Path Control Move objects around the page over time, in geometric or spline patterns, with control over speed of motion, forward or reverse playback, looping and bouncing behavior. Sample +

      +

    • Sequencer Control Create complex sequences of action involving ActiveX™ Controls, scripts, or dynamic HTML elements. Sample +

      +

    • Sprite Control Add still and animated images to your Web page with control over playback speed, forward or reverse playback, dynamic seeking to different positions in the sprite playback, and user interactivity on a frame-by-frame basis. Sample +

      +

    • Structured Graphics Control Add extremely lightweight vector graphics to your Web page, fully capable of being scaled or rotated in three dimensions, and then easily apply solid colors, patterns, gradient fills, or bitmap textures to these graphics. Sample +
    +

    In addition to the controls, this section contains topics that discuss mouse events and a Windows metafile utility. +

    +

    The Path wizard sample generates basic code for moving an object around, the Rotating Text Logo wizard (Structured Graphics and Sequencer) sample generates a vector graphic text logo that rotates in three dimensions, and the Polygon Path wizard sample generates a polygon-shaped path. + + +

    Note For sound and mixing functionality, see the ActiveMovie Control in the Microsoft DirectShow™ documentation.

    Documentation Conventions

    +

    Use of PARAM Tag Syntax vs. Script Syntax + +

    Several DirectAnimation controls are documented with both PARAM tag syntax and script syntax. + + +

    PARAM tag syntax is generally used for setting parameters during object instantiation as part of an OBJECT tag. In some cases, only PARAM tag syntax can be used. In these cases, only PARAM tag syntax will be documented. + +

    Script syntax is used in Microsoft® Visual Basic® Scripting Edition (VBScript), Microsoft JScript™, or other scripting languages to set initial values or change them during script execution. You should observe case sensitivity to ensure that scripts work as written. + +

    The presence of both types of syntax indicate that you can set the object's parameters or call initialization methods at object instantiation on the HTML page (in the OBJECT tag), or in script. In this event, it is up to you, the author, to determine which syntax best suits your needs. For instance, you could use the PARAM tag syntax to initialize your object and then use script syntax to change it thereafter. + +

    JScript Note When setting a series of optional parameters, JScript requires that any parameters in the middle of the series be present, not just replaced by a space. For example, if you have three optional parameters and only want to set values for parameters 1 and 3, you still need to enter a value for parameter 2 in order for parameter 3 to be read properly.

    +© 1998 Microsoft Corporation. All rights reserved. Terms of use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0020.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0020.HTM new file mode 100644 index 0000000..cc8e94f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0020.HTM @@ -0,0 +1,706 @@ + + +Path Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Path Control +DirectAnimation Animated Header --Path Control* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DirectAnimation Multimedia Controls
    +*Next Topic: Sequencer Control
    +

    +

    +

    Path Control

    +
    +

    The Path control is a windowless Microsoft® DirectAnimation™ control that animates the position of other controls along a defined vector or spline shape-based path. + +

    To use the Path control, you must first instantiate it on the HTML page, as shown in the following syntax: + +

    Syntax + +

    
    +<OBJECT ID=object
    +CLASSID="CLSID:D7A7D7C3-D47F-11d0-89D3-00A0C90833E6">
    +[<PARAM NAME="property" VALUE="setting">]
    +</OBJECT>
    +
    +

    Parameters + +
    object + String identifying the object. +
    property + One of the properties in the following table. +
    setting + Value for the property. +
    +

    Path Control Properties + + +
    Property + Description +
    AutoStart + Determines whether the Path control starts playback upon loading. +
    Bounce + Sets the path behavior to either reverse direction and return to the beginning, or stop at the end of its playback. +
    Direction + Sets the direction of the path playback. +
    Duration + Sets the duration of the path playback. +
    Library + Retrieves the DirectAnimation library reference. +
    PlayState + Retrieves the path's current playback state. +
    Relative + Determines whether the Path control starts playing from its current position or from the absolute position in the target object's coordinate space. +
    Repeat + Sets the number of times the path loops during playback. +
    Target + Sets the object that will follow the path. +
    Time + Retrieves the elapsed playback time from the start of the path. +
    TimerInterval + Sets or retrieves the length of time, in seconds.milliseconds, between path updates. +
    +

    Path Control Methods + + +
    Method + Description +
    AddTimeMarker + Sets a marker to fire an event when playback reaches the marker position. +
    Oval + Specifies an oval structured graphics primitive to be used as the path, with starting point at top center (12 o'clock) +
    KeyFrame + Specifies points along the path, in x, y coordinates, and a designated time to reach each point. +
    Pause + Stops playback and maintains current elapsed time. +
    Play + Begins playback from the current elapsed time. +
    Polygon + Specifies a closed series of line segments to use as the path. +
    PolyLine + Specifies an open set of line segments to use as the path. +
    Rect + Specifies a rectangular structured graphics primitive to use as the path, with starting point at top left. +
    Seek + Resets the current playback position to a new, specified position. +
    Spline + Specifies a spline to be used as the path. +
    Stop + Stops playback at current elapsed time and returns path to the beginning. +
    +

    Path Control Events + + +
    Event + Description +
    onmarker + Occurs when the path playback reaches a marker at the specified playback position, either when the Path control is playing or when it is stopped (and reaches the marker through a Seek call, for example). +
    onpause + Occurs when path playback pauses. +
    onplay + Occurs when the Path control plays back. +
    onplaymarker + Occurs when path playback reaches a marker at the specified playback position. +
    onseek + Occurs when the Path control completes a Seek call. +
    onstop + Occurs when path playback stops. +
    +


    AutoStart Property

    +Path Control +

    Determines whether the path starts playback immediately after loading. Read/write at run time; write access is available at run time only when the path is stopped. + +

    PARAM Tag Syntax

    <PARAM NAME="AutoStart" VALUE=0 | -1>


    Script Syntax

    object.AutoStart=[fStart]

    Parameters
    +
    object +
    String identifying the Path object. +
    fStart +
    Starts playback as soon as the path is loaded if True (–1 or nonzero) or, if False (0), simply loads and does not play until explicitly started with the Play method. The default value is False. +
    +


    Bounce Property

    +Path Control +

    Sets the path to either stop at the end of the path or reverse direction and continue playback. Read/write at run time; write access is available at run time only when the path is stopped. + +

    PARAM Tag Syntax

    <PARAM NAME="Bounce" VALUE=0 | -1>


    Script Syntax

    object.Bounce=[fBounce]

    Parameters
    +
    object +
    String identifying the Path object. +
    fBounce +
    Stops playback at the end of the path if False (0), or reverses direction and continues playback if True (–1 or nonzero). The default value is False. +
    +


    Direction Property

    +Path Control +

    Sets the direction of the path playback, either forward or reverse. Read/write at run time; write access is available at run time only when the path is stopped. + +

    PARAM Tag Syntax

    <PARAM NAME="Direction" VALUE=0 | 1>


    Script Syntax

    object.Direction=fDirection

    Parameters
    +
    object +
    String identifying the Path object. +
    fDirection +
    Forward (0) or reverse (1). Default setting is 0. +
    +


    Duration Property

    +Path Control +

    Sets the duration of the path playback. Read/write at run time; write access is available at run time only when the path is stopped. +


    PARAM Tag Syntax

    <PARAM NAME=" Duration" VALUE=" time ">


    Script Syntax

    object.Duration=[ time ]

    Parameters
    +
    object +
    String identifying the Path object. +
    time +
    Double value, format 0.000 (seconds.milliseconds), that sets the length of time for the object to move from start to end of the path. +
    +
    Remarks
    +

    The Duration property does not take Bounce + behavior into account. If the path is set to bounce, the Duration property sets the time between the start and the end of its playback, and does not include the time when the path behavior reverses direction and returns to the start of the path. + +


    Library Property

    +Path Control +

    Retrieves the reference to the DirectAnimation library functions. + +


    Script Syntax

    IDALibrary=object.Library

    Parameters
    +
    IDALibrary +
    DirectAnimation library pointer. +
    object +
    String identifying the Path object. +
    +


    Playstate Property

    +Path Control +

    Retrieves the path's playback state: stopped, playing, or paused. Read-only at run time. + +


    Script Syntax

    state=object.Playstate

    Parameters
    +
    state +
    Playback state of the Path object; 0 if stopped, 1 if playing, 2 if paused. +
    object +
    String identifying the Path object. +
    +


    Relative Property

    +Path Control +

    Determines whether the Path control starts playing from its current position or from the absolute position in the target object's coordinate space. Read/write at run time; write access is available at run time only when the path is stopped. + +

    PARAM Tag Syntax

    <PARAM NAME=Relative VALUE=0 | -1>


    Script Syntax

    object.Relative=fPos

    Parameters
    +
    object +
    Path object. +
    fpos +
    True (–1 or nonzero) or False (0). If True, then the path playback starts from the target's current position. If False, then the path playback starts from the absolute position in the target's coordinate space. (For example, if you are using a Rect path, the absolute position starting point is the top left.) The default value is False. +
    +
    Remarks
    +

    The Relative property means relative to the target object's position. The target object's position is set to relative or absolute with the STYLE="POSITION: ABSOLUTE | RELATIVE" attribute. + +

    Relative Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Repeat Property

    +Path Control +

    Sets the number of times the path loops playback. Read/write at run time; write access is available at run time only when the path is stopped. +


    PARAM Tag Syntax

    <PARAM NAME=" Repeat " VALUE=nRepeat >


    Script Syntax

    object.Repeat=[ nRepeat ]

    Parameters
    +
    object +
    String identifying the Path object. +
    nRepeat +
    Integer expression setting the number of times the path repeats playback. Default value is 1. Set to –1 to cause the path to repeat infinitely; other negative values are treated as unsigned. Set to 0 to disable the Repeat property. +
    +


    Target Property

    +Path Control +

    Sets the object to follow the path. Read/write at run time; write access is available at run time only when the path is stopped. +


    PARAM Tag Syntax

    <PARAM NAME=" Target" VALUE=" objTarget ">


    Script Syntax

    object.Target=[ objTarget ]

    Parameters
    +
    object +
    String identifying the Path object. +
    objTarget +
    String identifying the path's target object. +
    +
    Remarks
    +

    The target object must have an initial position. This can be set with the target object's STYLE attribute, as shown in the following examples: +

    
    +<IMG SRC="target1.gif" ID="target1" STYLE="position:relative">
    +
    +

    — or — +

    
    +<IMG SRC="target1.gif" ID="target1" STYLE="position:absolute; left=100; top=100">
    +
    +

    Target Property example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Time Property

    +Path Control +

    Retrieves the elapsed playback time (in milliseconds) from the start of the path playback. Repetitions set with Repeat are included in returned time calculations. Read-only at run time. + +


    Script Syntax

    time=object.Time

    Parameters
    +
    object +
    String identifying the Path object. +
    time +
    Number of milliseconds into path playback. Default value is zero. +
    +


    TimerInterval Property

    +Path Control +

    The default length of time, in seconds.milliseconds, between the path update. Read/write at run time; write access is available at run time only when the path is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="TimerInterval" VALUE="nInterval">


    Script Syntax

    object.TimerInterval=nInterval

    Parameters
    +
    nInterval +
    Integer expression giving the minimum number of seconds.milliseconds between path updates. The default interval is 0.100. +
    +


    AddTimeMarker Method

    +Path Control +

    Adds marker at specified playback position, enabling author to generate an event when that playback position is reached. This method can be used or modified only when the path is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME=" AddTimeMarkerX" VALUE=" time,
      markername ,
      [ 0 | -1 ]">


    Script Syntax

    object.AddTimeMarker (
      time,
      "markername",
      [fAbsolute] )

    Parameters
    +
    object +
    String identifying the Path object. +
    X +
    A sequential integer identifying the time marker, starting at 1 (PARAM tag syntax only). If you are adding more than one time marker through PARAM tag syntax, you must make each AddTimeMarker method call distinct by adding an sequential integer at the end of the AddTimeMarker PARAM + name. +
    time +
    Time at which the onmarker or onplaymarker event fires. +
    markername +
    Name of the marker. +
    fAbsolute +
    An optional flag that specifies event firing. Default is True. If True (absolute) the event fires at the specified time once and ignores looping. If False (relative) the event fires everytime, including in loops. For PARAM tag syntax, use 0 for False and use –1 or nonzero for True. For script, use the predefined constants True and False. + +
    +
    Remarks
    +

    The onmarker event occurs whenever the path is at the specified marker, whether or not the path is playing. The onplaymarker event occurs only when the path is playing. + +

    This example sets three time markers named MyMark, FrameFour, and FrameZero at 0.0, 4.7, and 8.0 respectively. MyMark and FrameZero are set to occur every time the path reaches that time marker, and FrameFour is set to occur only the first time the path reaches that time marker during uninterrupted playback. + +

    
    +<PARAM name="AddTimeMarker1" value="0.0, MyMark, 0">
    +<PARAM name="AddTimeMarker2" value="4.7, FrameFour, -1">
    +<PARAM name="AddTimeMarker3" value="8.0, FrameZero, 0">
    +
    +

    AddFrameMarker Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    KeyFrame Method

    +Path Control +

    Specifies x and y coordinates along the path, and a time to reach each point. The first point defines the path's starting point. This method can be used or modified only when the path is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME=" KeyFrame" VALUE=" npoints,
      [ x1,
      y1 ,
      ...,
      xN,
      yN ],
      [ time2,
      ...,
      timeN ]">


    Script Syntax

    KeyFrameArray=Array(
      x1,
      y,
      ...,
      xN,
      yN )
    TimeFrameArray=Array(
      time2 ,
      ...,
      timeN )
    object.KeyFrame(
      npoints,
      KeyFrameArray ,
      TimeFrameArray )

    Parameters
    +
    object +
    String identifying the Path object. +
    npoints +
    Number of points to be used to define the polyline. + + +
    x1, y1,...,xN, yN +
    Set of x and y coordinates that identify the keyframe points. +
    time2,..., timeN +
    Respective times that the path takes to reach each of the respective points from the previous point. +
    KeyFrameArray +
    Array that contains the x and y point definitions (script only). +
    TimeFrameArray +
    Array that contains the time values between the points that define the path, starting at the x1 and y1 point through xN and yN points (the last set of points in the path). The path begins at point x1 and y1 with a time value of 0. Script only. +
    +
    Remarks
    +

    The Duration property is ignored when this method is invoked. + + +

    KeyFrame Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Oval Method

    +Path Control +

    Specifies an oval path, with its starting point at the top center point of the oval (12 o'clock position). This method can be used or modified only when the path is stopped. + + +


    PARAM Tag Syntax

    <PARAM NAME="Shape" VALUE=" Oval(
      xpos,
      ypos,
      width,
      height
      ) ">


    Script Syntax

    object.Oval(
      xpos ,
      ypos ,
      width ,
      height )

    Parameters
    +
    object +
    String identifying the Path object. +
    xpos +
    The x position defining the topmost point of the oval. +
    ypos +
    The y position defining the leftmost point of the oval. +
    width +
    Width of the oval. +
    height +
    Height of the oval. +
    +

    Oval Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Pause Method

    +Path Control +

    Pauses Path playback at current elapsed time and maintains current playback position. + + +


    VBscript Syntax

    object.Pause


    JScript Syntax

    object.Pause( )

    Parameters
    +
    object +
    String identifying the Path object. +
    +


    Play Method

    +Path Control +

    Begins Path playback at current elapsed time. +


    VBscript Syntax

    object.Play


    JScript Syntax

    object.Play( )

    Parameters
    +
    object +
    String identifying the Path object. +
    +
    Remarks
    +

    Calls to the Play method while a path is playing are ignored. +


    Polygon Method

    +Path Control +

    Specifies a set of closed line segments to use as a path. The first point defines the path's starting point. This method can be used or modified only when the path is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="Shape" VALUE=" Polygon(
      npoints,
      [ x1,
      y1,
      ...,
      xN,
      yN ]
      ) ">


    Script Syntax

    PolygonArray=Array(
      x1,
      y1,
      ...,
      xN,
      yN )
    object.Polygon(
      npoints,
      PolygonArray )

    Parameters
    +
    object +
    String identifying the Path object. +
    n_Points +
    Number of points in the polygon. + + +
    x1, y1,..., xN, yN +
    Set of x and y coordinates that identify the polygon points. +
    PolygonArray +
    Array that contains the x and y point definitions (script only). +
    +
    Remarks
    +

    The array of x, y coordinates can be specified either as an array, or as a comma-delimited string of numbers that will be passed into the coordinates. + +

    Polygon Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    PolyLine Method

    +Path Control +

    Specifies a set of line segments to use as a path. The first point defines the path's starting point. This method can be used or modified only when the path is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="Shape" VALUE=" PolyLine (
      npoints,
      [ x1,
      y1,
      ...,
      xN,
      yN ]
      ) ">


    Script Syntax

    PolyLineArray=Array(
      x1,
      y1,
      ...,
      xN,
      yN )
    object.PolyLine (
      npoints,
      PolyLineArray
      )

    Parameters
    +
    object +
    String identifying the Path object. +
    npoints +
    Number of points to be used to define the PolyLine. + + +
    x1, y1,..., xN, yN +
    Set of x and y coordinates that identify the polygon points. + + +
    PolyLineArray +
    Array that contains the x and y point definitions (script only). +
    +

    Polyline Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Rect Method

    +Path Control +

    Specifies a rectangular path, with its starting point at the top left point of the rectangle. This method can be used or modified only when the path is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="Shape" VALUE="Rect(
      xpos,
      ypos,
      width,
      height ) ">


    Script Syntax

    object.Rect (
      xpos ,
      ypos ,
      width ,
      height )

    Parameters
    +
    object +
    String identifying the Path object. +
    xpos +
    The x position for the starting point of the rectangle. +
    ypos +
    The y position for the starting point of the rectangle. +
    width +
    Width of the rectangle. +
    height +
    Height of the rectangle. +
    +

    Rect Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Seek Method

    +Path Control +

    Seeks to another position in the Path playback. + + +


    Script Syntax

    object.Seek (
      time )

    Parameters
    +
    object +
    String identifying the Path object. +
    time +
    Double value, format seconds.milliseconds (s.mss) that represents a different path playback elapsed time. +
    +


    Spline Method

    +Path Control +

    Specifies a vector spline to be used as a path. The first point defines the path's starting point. This method can be used or modified only when the path is stopped. +


    PARAM Tag Syntax

    <PARAM NAME="Shape" VALUE=" Spline(
      npoints,
      [ x1,
      y1,
      x2,
      y2... ]
      ) ">


    Script Syntax

    object.Spline (
      npoints,
      [ x1,
      y1,
      x2,
      y2... ] )

    Parameters
    +
    object +
    String identifying the Path object. +
    npoints +
    Number of points to be used to define the Spline. + + +
    x1 +
    First x point for the spline. +
    y1 +
    First y point for the spline. +
    x2 +
    Second x point for the spline. +
    y2 +
    Second y point for the spline. +
    +
    Remarks
    +

    You need to specify four points for each curve in the spline. You can specify the array of x, y coordinates either as an array or as a comma-delimited string of numbers that will be passed as the coordinate set. The number of points in the spline and their spacing can have an effect on the path's speed. Having too many points too close together along the path can cause the path to seem as if it is slowing down when it traverses those points. + +

    Spline Method example +

    Right-click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Stop Method

    +Path Control +

    Stops playback of the path at the current position and rewinds the path to its beginning. +


    VBscript Syntax

    object.Stop


    JScript Syntax

    object.Stop( )


    onmarker Event

    +Path Control +

    Occurs when the path playback reaches a marker at the specified playback position. + +


    VBScript Syntax

    Sub object _ onmarker (
      markername )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmarker (
      markername ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Path object. +
    markername +
    String containing the marker name established in the AddTimeMarker method. +
    script +
    Script to be executed. + + +
    +
    Remarks
    +

    This event occurs whenever playback reaches the marker point, either when the path is playing or stopped. For example, if you seek to the marker position while the path is paused or stopped, the onmarker event will occur. +


    onpause Event

    +Path Control +

    Occurs when path playback is paused. + +


    VBScript Syntax

    Sub object _ onpause ( )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onpause >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Path object. +
    script +
    Script to be executed. +
    +


    onplay Event

    +Path Control +

    Occurs when path playback starts. + +


    VBScript Syntax

    Sub object _ onplay ( )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onplay >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Path object. +
    script +
    Script to be executed. +
    +


    onplaymarker Event

    +Path Control +

    Occurs when a marker is reached during path playback. + +


    VBScript Syntax

    Sub object _ onplaymarker (
      markername )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onplaymarker (
      markername ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Path object. +
    markername +
    String containing the marker name established in the AddTimeMarker method. +
    script +
    Script to be executed. +
    +


    onseek Event

    +Path Control +

    Occurs after a Seek call has been completed. + +


    VBScript Syntax

    Sub object _ onseek (
      newtime )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onseek (
      newtime ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Path object. +
    newtime +
    Double value, format seconds.milliseconds (s.mss), that represents the new different path playback elapsed time. + + +
    script +
    Script to be executed. +
    +


    onstop Event

    +Path Control +

    Occurs when the path stops playing. + +


    VBScript Syntax

    Sub object _ onstop ( )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onstop >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Path object. + + + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0021.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0021.HTM new file mode 100644 index 0000000..10cc086 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0021.HTM @@ -0,0 +1,610 @@ + + +Sequencer Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Sequencer Control +DirectAnimation Animated Header --Sequencer Control* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Path Control
    +*Next Topic: Sprite Control
    +

    +

    +

    Sequencer Control

    +
    +

    This section contains reference material for the Sequencer control and its methods and events, plus the following additional topics: +

    +

    The Sequencer control provides timing and sequencing services for action sets, scripts used to control Microsoft® ActiveX™ Controls or scripts on the page. The Sequencer control calls Microsoft JScript™, Microsoft Visual Basic(r) Scripting Edition (VBScript) or other Web scripts. + + +

    These procedures are called by the Sequencer control's At Method and can be performed once or they can be looped by the Sequencer control. The Sequencer control calls the named script with the parameter string and the resolved parameter string is executed. Note that this means unresolved parameters don't get executed. + +

    To use the sequencer object, you must first instantiate it on the HTML page, as shown in the following syntax: + + + + +

    Syntax +

    
    +<OBJECT id=object 
    +	STYLE=""
    +	CLASSID=clsid:B0A6BAE2-AAF0-11d0-A152-00A0C908DB96>
    +</OBJECT>
    +
    +

    Parameters + +
    object + Name of the Sequencer control, to be used in script. +
    +

    Sequencer Control Methods + + +
    Method + + + Description +
    At + Specifies a new action in the action set. + + +
    Pause + Stops action set playback at current position. Keeps time pointer and queue. +
    Play + Starts the action set (if stopped). Resumes sequencer playback if sequencer is paused. Ignored if sequencer is playing. +
    Seek + Changes the current playback position of the action set to a new, specified time. +
    Stop + Stops action set playback, resets its playback position to the beginning. +
    +

    Sequencer Control Events + + + + + + + + + + + + + + + + + + + + +
    EventDescription +
    oninitOccurs when sequencer is first completely loaded into memory. +
    onpauseOccurs when action set playback has been paused. +
    onplayOccurs when the action set has started playback. This event is only called when the action set starts playback from a stopped or paused state, not when a currently playing action set loops back to the beginning to repeat playback. +
    onseekOccurs after the Seek method call has been completed. +
    onstopOccurs when the action set playback ends or is stopped. +
    +

    For optimal performance, use only one sequencer on a page with a single action set that calls a lot of actions. You can run multiple sequencers that each execute fewer action sets simultaneously but will get better performance with a single sequencer executing a larger number of action sets. + +

    As the page is loaded, the sequencers used are loaded into memory. You can use the oninit Event to ensure that the sequencers are fully loaded before starting their playback. + + +

    Sequencer Control VBScript Example + +

    This sample demonstrates how to use the Sequencer control in VBScript. It rotates text, and allows the user to stop and restart the rotation by clicking a button. + + +

    
    +<HTML>
    +<HEAD>
    +<TITLE>Microsoft DirectAnimation Controls - Sequencer</TITLE>
    +
    +<SCRIPT LANGUAGE=VBSCRIPT>
    +
    +Sub Window_OnLoad
    +	call sgMSDHTML.SetIdentity
    +	Button1.value="Pause"
    +End Sub
    +
    +Sub Seq_oninit
    +	call seq("ActionSet1").At(0.000, "RotateAll",-1, 0.050, 1)
    +	Call Seq("ActionSet1").Play
    +End Sub
    +
    +Sub RotateAll
    +	Call sgMSDHTML.Rotate(0,9,2)
    +End Sub
    +
    +Sub Start
    +	Select Case Button1.value
    +	Case "Play"
    +		Call Seq("ActionSet1").Play
    +		Button1.value="Pause"
    +	Case "Pause"
    +		Call Seq("ActionSet1").Pause
    +		Button1.value="Play"
    +	End Select
    +End Sub
    +
    +</SCRIPT>
    +</HEAD>
    +
    +
    +<BODY BGCOLOR=BLACK>
    +
    +<OBJECT ID=sgMSDHTML
    +STYLE="POSITION: ABSOLUTE; HEIGHT:300;WIDTH:450;TOP:100;LEFT:60;VISIBILITY:VISIBLE; ZINDEX:-1" 
    +CLASSID="CLSID:369303C2-D7AC-11d0-89D5-00A0C90833E6">
    +<PARAM NAME="Line0001" VALUE="SetLineColor(255,255,255)">
    +<PARAM NAME="Line0002" VALUE="SetFillColor(0,0,255)">
    +<PARAM NAME="Line0003" VALUE="SetFillSTYLE(1)">
    +<PARAM NAME="Line0004" VALUE="SetLineSTYLE(1)">
    +<PARAM NAME="Line0005" VALUE="SetFont('Verdana',60,650,0,0,0)">
    +<PARAM NAME="Line0006" VALUE="Text('Microsoft', -120, -100, 0)">
    +<PARAM NAME="Line0007" VALUE="Text('Dynamic', -120, -50, 0)">
    +<PARAM NAME="Line0008" VALUE="Text('HTML', -90, 0, 0)">
    +<PARAM NAME="Line0009" VALUE="Text('Multimedia', -120, 50, 0)">
    +</OBJECT>
    +
    +<OBJECT ID="Seq"
    +	CLASSID="CLSID:B0A6BAE2-AAF0-11d0-A152-00A0C908DB96"
    +	STYLE="WIDTH:2;HEIGHT:2">
    +</OBJECT>
    +
    +<INPUT TYPE=button ID="Button1"
    +STYLE="POSITION:ABSOLUTE; TOP:10; LEFT:10; z-index:2; VALUE=""; OnClick="Start"> 
    +
    +</BODY>
    +</HTML>
    +
    +

    Action Set +

    An action set is a logical grouping of named procedures that are used to control the timing and behavior of objects on the page. Action sets have the following properties: + +
    Name + Description +
    PlayState + Retrieves the current playback state of the action set: 0=stopped, 1=playing, 2=paused. Read-only at run time. +
    Time + Retrieves the elapsed time in format seconds/milliseconds (SS.MSS) + + + since the start of action set playback, including iterations. The default setting is zero. Read-only at run time. +
    +


    PlayState Property

    +Action Set +

    Retrieves the state of the sequencer. Read-only at run time. + + +


    VBScript Syntax

    playstate=object(
      "actionsetname"
      ) .PlayState


    JScript Syntax

    playstate=object.item(
      "actionsetname"
      ) .Playstate

    Parameters
    +
    object +
    Name of sequencer. +
    actionsetname +
    Name of the action set. + + +
    +
    Return Values
    +

    Returns an integer that indicates the sequencer's play state. Possible values are 0 (stopped), 1 (playing) or 2 (paused). + +


    Time Property

    +Action Set +

    Represents the amount of time since the start of the sequencer's playback. Read-only at run time. + + + +


    VBScript Syntax

    Time=object(
      "actionsetname"
      ) .Time


    JScript Syntax

    Time=object.item(
      "actionsetname"
      ) .Time

    Parameters
    +
    object +
    Name of sequencer. +
    actionsetname +
    Name of the action set. + + +
    +
    Return Values
    +

    Returns a floating-point value that contains the elapsed sequencer playback time in the format seconds.milliseconds (SS.MSS). + +


    At Method

    +Sequencer Control +

    Specifies an action to take place within an action set. + +


    VBScript Syntax

    call object(
      "actionsetname"
      ).At(
      time,
      "script",
      [loop,
      interval,
      tiebreak,
      drop threshold]
      )


    JScript Syntax

    object.item(
      "actionsetname"
      ).At(
      time,
      "script",
      [loop,
      interval,
      tie break,
      drop threshold]
      );

    Parameters
    +
    object +
    Name of sequencer. +
    actionsetname +
    Name of the action set. +
    time +
    Required. Double value in seconds.milliseconds (SS.MSS) format. Sets the start time for the specified action. +
    script +
    Required. Text string identifying the named procedure to be called. Can pass parameters as part of the script call, for example, script(param1) +
    loop +
    Optional. Integer. Sets the loop count for this action. The default is 1. If set to –1, looping is infinite. Any negative number other than –1 will be treated as 0. Zero loop count value prevents execution. You can use this to programmatically halt action set execution. +
    interval +
    Optional. Double value in seconds.milliseconds (SS.MSS) format. Sets the delay between iterations of the specified action. + + + Minimum interval resolution is 20 milliseconds (00.020). The default is 33 milliseconds (00.033), equivalent to 30 frames per second. +
    tie break + + +
    Optional. Integer whose value can be –1, 0, or a positive integer. The default is –1. + + + Sets the priority for the action. In the event that two actions happen at the same time, the action with the lower tie break number + + + will be performed first. Zero is the highest priority action that can be dropped; –1 is the lowest-priority action and will be executed last. +
    drop threshold +
    Optional. Double value in seconds.milliseconds (SS.MSS) format. Sets the time by which the action must be performed before it is dropped from the queue. The default value is for the action to never be dropped (–1.000). +
    +
    Remarks
    +

    The drop threshold parameter is useful for optimizing sequencer performance by streamlining the number of actions that the sequencer has to perform at any given moment; for instance, when starting up a complex action set. Thoughtful use of this parameter can keep the sequencer from slowing down or speeding up from backlog of actions to be executed, and keep the timing of actions within reasonable tolerances. +


    Pause Method

    +Sequencer Control +

    Stops the sequencer's playback, but maintains the current playback position. + +


    VBScript syntax
    call object(
      "actionsetname"
      ) .Pause


    JScript Syntax
    object.item(
      "actionsetname"
      ).Pause( )

    Parameters
    +
    object +
    Name of sequencer. +
    actionsetname +
    Name of the action set. +
    +


    Play Method

    +Sequencer Control +

    Starts the sequencer or resumes it if the sequencer was paused. If the sequencer is playing, the call is ignored. + +


    VBScript Syntax

    call object(
      "actionsetname"
      ) .Play


    JScript Syntax
    object.item(
      "actionsetname"
      ).Play( )

    Parameters
    +
    object +
    Name of sequencer. +
    actionsetname +
    Name of the action set. +
    +
    Remarks
    +

    The following example starts a sequencer described by the Seq object when the page loads. This sequencer calls the MoveButton action set at time 0, and calls the named procedure MoveButton. + +

    
    +<SCRIPT LANGUAGE=vbscript>
    +<!--
    +Sub window_onLoad
    +	Call Seq("MoveButton").Play
    +End Sub
    +-->
    +</SCRIPT>
    +
    +


    Seek Method

    +Sequencer Control +

    Changes the current playback position of the Sequencer control to another specified point in playback. +


    VBScript Syntax

    call object(
      "actionsetname"
      ).Seek(
      time
      )


    JScript Syntax

    object.item(
      "actionsetname"
      ).Seek(
      time
      )

    Parameters
    +
    object +
    Name of sequencer. +
    actionsetname +
    Name of the action set. +
    time +
    New time for sequencer to continue playback. +
    +


    Stop Method

    +Sequencer Control +

    Stops the sequencer and resets its position to the beginning. +


    VBScript Syntax

    call object(
      "actionsetname"
      ) .Stop


    JScript Syntax

    object.item(
      "actionsetname"
      ).Stop( )

    Parameters
    +
    object +
    Name of the sequencer. +
    actionsetname +
    Name of the action set. +
    +
    Remarks
    +

    The following code stops the sequence when the btnEnd button is clicked. + + +

    
    +<SCRIPT LANGUAGE=vbscript>
    +<!--
    +Sub btnEnd_OnClick
    +	Call Seq("MoveButton").Stop
    +End Sub
    +-->
    +</SCRIPT>
    +
    +

    The sequencer automatically stops when the page is unloaded. +


    oninit Event

    +Sequencer Control +

    Called when the sequencer has finished loading into memory and the page is loaded. + + + At this point, the specified script + + + is run. + + + This event is generally used to load the rest of the procedures to be run on the client side. + +


    VBScript Syntax

    Sub object_oninit
    script
    End Sub


    JScript Syntax

    <script language="javascript" for="object" event="oninit">
    <!--
    script
      //--><script>

    Parameters
    +
    object +
    Name of the sequencer to be used in script. +
    script +
    Script to be run. +
    +
    Remarks
    +

    The following example shows the oninit event used to play SeqMgr once it has finished loading the other sequencers that it controls. In the example, SeqMgr controls Seq1_Action1. +

    
    +<SCRIPT LANGUAGE="VBScript">
    +<!--
    +Sub SeqMgr_oninit()
    +	Call SeqMgr("ActionSet1").At(0.000,"Seq1_Action1",300,0.100,1,100.000)
    +	Call SeqMgr("ActionSet1").Play
    +End Sub
    +-->
    +</SCRIPT>
    +
    +


    onpause Event

    +Sequencer Control +

    Called when the sequencer playback is paused. At this point, the specified script is run. + + +


    VBScript Syntax

    Sub object_onpause(
      actionsetname
      )
    script
    End Sub


    JScript Syntax

    <script language="javascript" for="object" event="onpause(
      actionsetname
      ) ">
    <!--
    script
      //--><script>

    Parameters
    +
    object +
    Name of the paused sequencer. +
    actionsetname + + +
    Name of the action set that has been paused because the sequencer is paused. + + +
    +
    Remarks
    +

    In the following example, actionsetname is a variable set to the name of the action set that was last paused. The example tests the actionsetname parameter passed and conditionally executes a script based on which action set has been paused. + + +

    
    +Sub Sequencername_onpause(actionsetname)
    +	If actionsetname="ActionSet1" then
    +		button1.value="Play"
    +	Else
    +		button1.value="Pause"
    +	Endif
    +End Sub
    +
    +


    onplay Event

    +Sequencer Control +

    Occurs when the sequencer starts playback. At this point, the specified script code is run. +


    VBScript Syntax
    Sub SequencerName_onplay(
      actionsetname
      )
    script
    End Sub


    JScript Syntax

    <script language="javascript" for="object" event="onplay(
      actionsetname
      ) ">
    <!--
    script
      //--><script>

    Parameters
    +
    object +
    Name of the sequencer played. +
    actionsetname +
    Name of the action set played by the sequencer. +
    +
    Remarks
    +

    In the following example, actionsetname is a variable set to the name of the action set that was last played. The example tests the actionsetname parameter passed and conditionally executes a script based on which action set has been played. + + + +

    
    +Sub Sequencername_onplay(actionsetname)
    +	If actionsetname="ActionSet1" then
    +		Call Seq("ActionSet2").stop
    +	Else
    +		Call Seq("ActionSet1").stop
    +	Endif
    +End Sub
    +
    +


    onseek Event

    +Sequencer Control +

    Called after the Seek method is invoked against a sequencer has completed changing the playback position. At this point, the specified script code is run. + +


    VBScript Syntax
    Sub object_ onseek (
      actionsetname,
      newtime
      )
    script
    End Sub


    JScript Syntax

    <script language="javascript" for="object" event="onseek(
      actionsetname,
      newtime
      ) ">
    <!--
    script
      //--><script>

    Parameters
    +
    object +
    Name of the sequencer. +
    actionsetname +
    Specific action set from which the Seek method was invoked. +
    newtime +
    New playback time to which the sequencer has been moved. +
    +
    Remarks
    +

    You can use this event to determine where the sequencer playback has been moved and to set up conditional actions based on the sequencer's new position. + + +However, you can't have an onseek event call a Seek method + + + that seeks to a position within the same action set from which the onseek event originated. +

    
    +Sub Sequencername_onseek(actionsetname, time)
    +	If actionsetname="ActionSet1" then
    +		If time=10.000 then
    +			Call Seq("ActionSet2").Play
    +		Else
    +			Call Seq("ActionSet1").Play
    +		EndIf
    +	EndIf
    +End Sub
    +
    +


    onstop Event

    +Sequencer Control +

    Called when the sequencer is stopped. + + + At this point, the specified script code is run. +


    VBScript Syntax
    Sub SequencerName_onstop(
      actionsetname
      )
    script
    End Sub


    JScript Syntax

    <script language="javascript" for="object" event="onstop(
      actionsetname
      ) ">
    <!--
    script
      //--><script>

    Parameters
    +
    SequencerName +
    Name of the stopped sequencer. +
    actionsetname +
    Name of the action set stopped by the sequencer. +
    +
    Remarks
    +

    In the following example, actionsetname is a variable set to the name of the action set that was last stopped. The example tests the actionsetname parameter and conditionally executes a script based on which action set has been stopped. + + +

    
    +Sub Sequencername_onstop(actionsetname)
    +	If actionsetname="ActionSet1" then
    +		Call Seq("ActionSet2").play
    +	Else
    +		Call Seq("ActionSet1").play
    +	Endif
    +End Sub
    +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0022.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0022.HTM new file mode 100644 index 0000000..81aa236 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0022.HTM @@ -0,0 +1,952 @@ + + +Sprite Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Sprite Control +DirectAnimation Animated Header --Sprite Control* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Sequencer Control
    +*Next Topic: Structured Graphics Control
    +

    +

    +

    Sprite Control

    +
    +

    The Sprite control lets you create and control image source-based, flip book-style animation for a Web page, and enables you to have frame-by-frame control over your animation. You can set markers to trigger events at desired points in sprite playback, or create individual mouse events for each frame of the animation. + + +

    To use the Sprite control, you must first instantiate it on the HTML page, as shown in the following syntax: + + +

    Syntax +

    
    +
    +<OBJECT ID=object 
    +CLASSID="clsid: FD179533-D86E-11d0-89D6-00A0C90833E6 ">
    +[<PARAM NAME="Property | Method" VALUE="PropertyValue">]
    +</OBJECT>
    +
    +

    Parameters + + +
    object + String identifying the object. +
    Property | Method + One of the Sprite control properties or methods in the following lists. +
    PropertyValue + Valid value for the specified property or method. + + +
    +

    To use the Sprite control from within a scripting language such as Microsoft JScript™, Microsoft Visual Basic(r) Scripting Edition (VBScript), or other Web scripts, use the following script syntax: +

    
    +object.Property | Method [=PropertyValue]
    +
    +
    +

    Some properties and methods are scriptable only. See the desired topic for syntax details. + +

    Sprite Control Properties + + + +
    Property + Description +
    AutoStart + Determines whether the sprite starts playback upon loading. +
    ColorKey + Sets the transparency color for a source image. +
    FinalFrame + Sets the sprite to display a designated frame when playback is stopped. + + +
    Frame + Retrieves the sprite image frame currently displayed. +
    FrameMap + Sets or retrieves the order in which sprite frames play back, and the length of time each frame is displayed. +
    Image + Sets or retrieves a Microsoft® DirectAnimation™ image from the Sprite control (script only). +
    InitialFrame + Sets or retrieves the frame number that the sprite displays when it becomes visible. +
    Library + Retrieves the DirectAnimation Library reference (script only). +
    MaximumRate + Sets or retrieves the sprite's maximum rendering rate (number of times the control will render per second). +
    MouseEventsEnabled + Sets or retrieves whether the sprite responds to mouse events. +
    NumFrames + Sets or retrieves the number of frames in the sprite source. + + +
    NumFramesAcross + Sets or retrieves the width (in frames) of the sprite source. +
    NumFramesDown + Sets or retrieves the length (in frames) of the sprite source. +
    PlayRate + Sets or retrieves the sprite's playback speed. + + +
    PlayState + Retrieves the sprite's playback state, whether stopped, playing, or paused. +
    Repeat + Sets or retrieves the number of times the sprite will + + + loop during playback +
    SourceURL + Sets or retrieves the URL that points to the sprite source image. +
    Time + Retrieves the elapsed playback time for the sprite, including looping. +
    TimerInterval + Sets or retrieves the length of time between frames, (in milliseconds) for the sprite's rendering. + + +
    UseColorKey + Sets or retrieves whether to use the sprite's transparency information. +
    +

    Sprite Control Methods + + +
    Method + Description +
    AddFrameMarker + Sets a marker to fire an event when playback reaches the designated frame. +
    AddTimeMarker + Sets a marker to fire an event when playback reaches the designated time. +
    FrameSeek + Sets the sprite playback to a specific frame. +
    Pause + Stops playback at the current frame and maintains current frame position. +
    Play + Begins playback from the current frame. +
    Seek + Sets the sprite playback to a specific elapsed time. +
    Stop + Ends playback at the current frame. +
    +

    Sprite Control Events + + +
    Event + Description +
    onclick + Occurs when the user clicks the sprite once. +
    ondblclick + Occurs when the user double-clicks the sprite. +
    onframeseek + Occurs after the FrameSeek method has been called. +
    onmarker + Occurs when a time marker has been reached, either during sprite playback or when stopped. +
    onmedialoaded + Occurs when a piece of sprite media is completely downloaded. +
    onmousedown + Occurs when the user presses the mouse button down while the mouse pointer is over a sprite. +
    onmousemove + Occurs when the user moves the mouse pointer across the sprite's nontransparent area. +
    onmouseout + Occurs when the cursor leaves the sprite's nontransparent area. +
    onmouseover + Occurs when the cursor enters a nontransparent area of the sprite. +
    onmouseup + Occurs when the user releases the mouse button while the mouse pointer is over a sprite. +
    onpause + Occurs when sprite playback pauses. + + +
    onplay + Occurs when the sprite begins playback. +
    onplaymarker + Occurs when a time marker is reached during sprite playback. +
    onseek + Occurs after the Seek method is called. +
    onstop + Occurs when the sprite playback stops. + + +
    +

    A Sprite control renders its visual display based on a source file that contains a series of frames. Each frame contains one of the images used to create the animation. This image can be a separate image file or part of a file that provides images for multiple frames in a sequential strip. The file providing the images for a sprite is known as the sprite source. + +

    The images used for a Sprite control can be in different formats. For example, you can use images in .gif, .jpg, .png (Portable Network Graphics), and .wmf (windows metafile) formats. + + + You can't mix image formats within the same sprite source, but you can change the sprite source image dynamically. + +

    A Sprite control can use a frame map to define a specific order in which to display frames. The frame map also defines how long each frame is displayed. If the sprite does not include a frame map, frames are displayed in their order of appearance within the image source file, and each frame appears for the same length of time, as specified by the TimerInterval property. + +

    A Sprite control will not begin its animation sequence until all of its media is downloaded. + + +


    AutoStart Property

    +Sprite Control +

    Determines whether the sprite starts playback immediately after loading.


    PARAM Tag Syntax

    <PARAM NAME="AutoStart" VALUE="fStart">


    Script Syntax

    object.AutoStart [=fStart]

    Parameters
    +
    object +
    Name of the sprite. +
    fStart +
    Boolean value that sets when the playback starts. If True (–1 or nonzero), playback starts as soon as the sprite is loaded, or if False (0) the sprite simply loads and does not play until explicitly started with a Play method. + + + The default value is False. + + + Read-write at run time; write access is available at run time only when the sprite is stopped. +
    +


    ColorKey Property

    +Sprite Control +

    Sets the transparency color to use + + + with this specific sprite. Read-write at run time; write access is available at run time only when the sprite is stopped. +


    PARAM Tag Syntax

    <PARAM NAME="ColorKey " VALUE="r,
      g,
      b ">


    Script Syntax

    object.ColorKey=lib.DAColor

    Parameters
    +
    r +
    Integer that specifies the red value (0-255). +
    g +
    Integer that specifies the green value (0-255). +
    b +
    Integer that specifies the blue value (0-255). + + +
    object +
    Name of the sprite. +
    DAColor +
    The DAColor object that specifies the sprite's color. + + +
    +


    FinalFrame Property

    +Sprite Control +

    Sets the sprite to display the designated frame when playback is stopped. Read-write at run time, write accessible only when sprite is stopped. +


    PARAM Tag Syntax

    <PARAM Name="FinalFrame" Value="fframeflag">


    Script Syntax

    object.FinalFrame [=fframeflag]

    Parameters
    +
    object +
    Name of the sprite. +
    fframeflag +
    Integer expression identifying the desired frame to be displayed when sprite playback stops. Values can be –1 (display current frame), 0 (return to the initial frame), or any valid frame number, from 1 to n where n represents the last frame in the sprite source. The default value is 0, return to the initial frame. + + +
    +


    Frame Property

    +Sprite Control +

    Specifies the sprite image for the frame currently displayed on the page. Read-only at run time. + + +


    Script Syntax

    nFrame=object.Frame

    Parameters
    +
    nFrame +
    Integer expression identifying the current frame, from 0 to n, where n represents the last frame in the sprite source. The default value is 1. +
    +
    Remarks
    +

    If the sprite has a frame map, the value of the Frame property is a one-based index into the frame map. For example, if the frame map defines 10 frames, the Frame property value is 10 when the last frame in the frame map appears on the page. +

    VBScript note: To use the value returned by the Frame property, you will have to use the Microsoft Visual Basic®, Scripting Edition cInt function + + + to convert the value from an unsigned integer into a variant that VBScript will accept. An example would be FrameNum=cInt(sprite.Frame). + +

    The following example sets the indicator for a form to the value of the current frame for the sprite named SpriteHorse: +

    
    +document.MyForm.txtFrame.value=SpriteHorse.Frame
    +
    +


    FrameMap Property

    +Sprite Control +

    Specifies the order in which sprite frames play back and the length of time each frame is displayed. + + + Read/write at run time; write access is available at run time only when the sprite is stopped. +


    PARAM Tag Syntax

    <PARAM NAME="FrameMap" VALUE="nImage1,
      t1 [; nImage2,
      t2 ...] ">


    Script Syntax

    object.FrameMap="nImage1,
      t1 [; nImage2,
      t2 ...] "

    Parameters
    +
    nImage1, nImage2,... + + +
    Integer expression denoting the image to draw from the frame source over the duration. The first frame in the sprite is numbered 1. The default value is the order in the source file. +
    t1, t2, ... +
    Expression indicating the frame's duration (seconds.milliseconds, 0.000). The default value is the TimerInterval duration. +
    +
    Remarks
    +

    Sprites that use frame maps can display source images in an order other than the images' consecutive order of appearance within the source file. They can also display each frame in the sprite for a different length of time. + +

    If the sprite has not been authored with a FrameMap property setting, frames appear in their order of appearance within the frame source file. The frames are in order from left to right, from top to bottom, within the file. Each frame appears for the number of seconds.milliseconds given by the TimerInterval property. + +

    The following examples create a frame map with six frames. +

    • Frame 1 displays image 6 for 100 milliseconds. +
    • Frame 2 displays image 5 for 200 milliseconds. +
    • Frame 3 displays image 4 for 300 milliseconds. +
    • Frame 4 displays image 3 for 400 milliseconds. +
    • Frame 5 displays image 2 for 100 milliseconds. +
    • Frame 6 displays image 1 for 100 milliseconds. +
    +
    
    +<PARAM NAME="FrameMap"
    +VALUE="6,0.100;5,0.200;4,0.300;3,0.400;2,0.100;1,0.100">
    +
    +

    +

    
    +object.FrameMap="6,0.100;5,0.200;4,0.300;3,0.400;2,0.100;1,0.100"
    +
    +


    Image Property

    +Sprite Control +

    Sets or retrieves a DAImage object + + + used for the Sprite control. +


    Script Syntax

    object.Image=DAImage

    Parameters
    +
    object +
    Name of the sprite. + + +
    DAImage +
    The DAImage object used for the sprite image. + + +
    +
    Remarks
    +

    The following JScript code shows how to use this property: +

    
    +m.DAControl.PixelLibrary;
    +img=m.ImportImage("mygif.gif");
    +mysprite.Image=img;
    +
    +


    InitialFrame Property

    +Sprite Control +

    Specifies the frame the sprite displays when it becomes visible. Read/write at run time; write access is available at run time only when the sprite is stopped. + + +


    PARAM Tag Syntax

    <PARAM NAME="InitialFrame" VALUE="nFrame">


    Script Syntax

    object.InitialFrame [=nFrame]

    Parameters
    +
    nFrame +
    An integer expression specifying the frame that the sprite should seek to before starting playback. The value of the Frame property is a one-based index into the frame map. For example, if the frame map defines 10 frames, the Frame property value is 10 when the last frame in the frame map appears on the page. If the +InitialFrame property is set to 0, the sprite will load the media but will display a blank frame until the +Play method is invoked. If the InitialFrame property is set to –1 (or any number less than zero), the sprite will not load the media and will display a blank frame until the Play method is invoked, at which point it will begin media download and start playback after the media has been completely downloaded. The default value is 1. +
    +
    Remarks
    +

    This property is scriptable, but if it is set from a script, only the initial frame + + + of the sprite as it is set in the HTML-persistence is changed. The current frame of the sprite is not changed. +

    The following example sets an initial frame indicator on the page to the value of the InitialFrame property for the sprite named SpriteHorse: +

    
    +document.MyForm.txtInitialFrame.value=SpriteHorse.InitialFrame
    +
    +


    Library Property

    +Sprite Control +

    Retrieves a DAStatics object that gives the sprite access to the DirectAnimation library functions and properties. + + +


    Script Syntax

    lib=object.Library

    Parameters
    +
    lib +
    A DAStatics object. + + +
    object +
    Name of the sprite. + + + +
    +
    Remarks
    +

    The following JScript code shows how to use this property: +

    
    +mysprite.Library=DAControl.PixelLibrary;
    +
    +


    MaximumRate Property

    +Sprite Control +

    Sets or retrieves the sprite's maximum rendering speed (number of times the control will render per second). Read-write at run time; write access is available at run time only when the sprite is stopped. +


    PARAM Tag Syntax

    <PARAM NAME="MaximumRate" VALUE="fps"


    Script Syntax

    object.MaximumRate [=fps]

    Parameters
    +
    fps +
    Number of frames per second. Default is 30. +
    +


    NumFrames Property

    +Sprite Control +

    The number of frames in the Sprite source. Read/write at run time; write access is available only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="NumFrames" VALUE="nframes">


    Script Syntax

    object.NumFrames [=nframes]

    Parameters
    +
    object +
    Name of the sprite. +
    nframes +
    Integer indicating the total number of frames in the image for this frame source. +
    +
    Remarks
    +

    If the sprite includes a frame map, the NumFrames property gives the number of frames defined in the map. If you change the NumFrames, NumFramesAcross, or NumFramesDown properties, the sprite does not refresh until you set the SourceURL property again. +


    NumFramesAcross Property

    +Sprite Control +

    The width (in frames) of the sprite source image. + + + Read/write at run time; write access is available at run time only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="NumFramesAcross" VALUE="nAcross">


    Script Syntax

    object.NumFramesAcross [=nAcross]

    Parameters
    +
    object +
    Name of sprite. + +
    nAcross +
    Integer indicating the number of frames across in the sprite source image. +
    +
    Remarks
    +

    If you change the NumFrames, NumFramesAcross, or NumFramesDown properties, the sprite does not refresh until you set the SourceURL property again. +


    NumFramesDown Property

    +Sprite Control +

    The length (in frames) of the Sprite Frame Source. Read/write at run time; write access is available at run time only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="NumFramesDown" VALUE="nDown">


    Script Syntax

    object.NumFramesDown [=nDown]

    Parameters
    +
    object +
    Name of sprite. + +
    nDown +
    Integer indicating the number of frames in the sprite source image. + + +
    +
    Remarks
    +

    If you change the NumFrames, NumFramesAcross, or NumFramesDown properties, the sprite does not refresh until you set the SourceURL property again. +


    PlayRate Property

    +Sprite Control +

    Sets or retrieves the sprite's playback speed. Can be used to speed up or slow down sprite playback, or even play the sprite backward. Read-write at run time; write access is available at run time only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="PlayRate" VALUE="rSpeed">


    Script Syntax

    object.PlayRate=rSpeed

    Parameters
    +
    rSpeed +
    Floating-point expression + + + indicating the number used to multiply the duration for each frame. The default value is 1.0. Possible values are: + +
    Value + + Meaning +
    Positive (>0.0) + Sprite plays forward. +
    0.0 + Disables the PlayRate property. +
    Negative (<0.0) + Sprite plays backward. +
    +
    +
    Remarks
    +

    If the sprite does not have a frame map, the timer interval is divided by the value of PlayRate to determine the duration for all frames. PlayRate values greater than 1.0 speed up playback; values smaller than 1.0 slow down playback. + +

    The following example sets the play rate for the sprite named SpriteHorse to the value the user enters on the page: +

    
    +SUB PlayRate_onclick
    +SpriteHorse.PlayRate=document.MyForm.txtPlayRate.value
    +
    +


    PlayState Property

    +Sprite Control +

    Retrieves the playback state of the sprite: stopped, playing, or paused. + +


    Script Syntax

    state=object.PlayState

    Parameters
    +
    state +
    Integer value. Zero if the control is stopped, 1 if the control is playing, + + + 2 if the media is paused. +
    +


    Repeat Property

    +Sprite Control +

    Sets or retrieves the number of times the sprite will + + + loop during playback. Read-write at run time; write access is available at run time only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="Repeat" VALUE="nRepeat" >


    Script Syntax

    object.Repeat=nRepeat

    Parameters
    +
    object +
    Name of the sprite. +
    nRepeat +
    Integer expression indicating the number of times the sprite repeats playback. The default is 1. To loop infinitely, use –1. The value 0 disables the Repeat property. Negative values are treated as unsigned. +
    +


    SourceURL Property

    +Sprite Control +

    Sets or retrieves the URL that points to the sprite source image. Read-write at run time; write access is available at run time only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="SourceURL" VALUE="URL">


    Script Syntax

    object.SourceURL=URL

    Parameters
    +
    object +
    Name of the sprite. +
    URL +
    String pointing to the image file. +
    +


    Time Property

    +Sprite Control +

    Retrieves the sprite's elapsed playback time (in milliseconds). Playback repetitions are included in the time calculations. Read-only at run time. + +


    Script Syntax

    object.Time=eTime

    Parameters
    +
    object +
    Name of the sprite. +
    eTime +
    Number of milliseconds into the animation. The default value is zero. +
    +
    Remarks
    +

    The onseek event is fired upon completion of the Time property change. + + +


    TimerInterval Property

    +Sprite Control +

    The length of time, in seconds.milliseconds, between the sprite's frame updates. Read/write at run time; write access is available at run time only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="TimerInterval" VALUE="nInterval">


    Script Syntax

    object.TimerInterval [=nInterval]

    Parameters
    +
    object +
    Name of the sprite. +
    nInterval +
    Expression defining the number of seconds.milliseconds between sprite frame updates. The default interval is 0.100 seconds (0.100) or 10 frames per second. +
    +
    Remarks
    +

    This property + + + specifies the minimum length of time between sprite frame updates. For example, if the timer interval is set to 0.100 seconds and an image is scheduled to display at 0.150 seconds, the image will not be displayed until 0.200 seconds because the timer interval resolution is set to 0.100 milliseconds. If the image is scheduled to appear for 0.050 seconds or less (because of a frame map) it might not even appear. + +

    The following example sets the value of the timer interval indicator on the page to the value of the TimerInterval property for the sprite named SpriteHorse: +

    
    +document.MyForm.txtTimerInterval.value=SpriteHorse.TimerInterval
    +
    +


    UseColorKey Property

    +Sprite Control +

    Sets or retrieves the property that specifies whether to use the sprite's transparency information. Read-write at run time; write access is available at run time only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="UseColorKey" VALUE="0 | 1">


    Script Syntax

    object.UseColorKey=fFalse

    Parameters
    +
    object +
    Name of the sprite. +
    fFalse +
    Boolean value, True (1) or False (0). A value of True specifies that the transparency information set by the ColorKey property is used. A value of False specifies that the ColorKey transparency information is not be used. The default is False. + + +
    +
    Remarks
    +

    If the ColorKey property value is + + + set in a PARAM tag, then you should also set the UseColorKey value in a PARAM tag. +


    AddFrameMarker Method

    +Sprite Control +

    Sets a marker to fire an event when playback reaches the designated frame. This method can be used or modified only when the sprite is stopped. + +


    PARAM Tag Syntax

    <PARAM NAME="AddFrameMarkerx" VALUE=" frame ,
      marker name ,
      [fRelative]">


    Script Syntax

    object.AddFrameMarker(
      frame ,
      " marker name " ,
      [ fRelative ]
      )

    Parameters
    +
    x +
    A sequential integer identifying the frame marker, starting at 1 (PARAM tag syntax only). If you are adding more than one frame marker through PARAM tag syntax, you must make each AddFrameMarker method call distinct by adding an sequential integer at the end of the AddFrameMarker PARAM name. + + + starting at 1. +
    object +
    Name of the sprite. +
    Frame +
    Number or key name of the frame that the onmarker or onplaymarker event fires on. + + +
    marker name +
    Name of the marker. +
    fRelative +
    An optional flag that specifies event firing. DAn optional flag that specifies event firing. efault is True. If True (relative) the event fires every time, including in loops. If False (absolute) the event fires at the specified time once and ignores looping. + + + For PARAM Tag syntax, use zero (False) or nonzero (True); for script use predefined constants True and False. + + + + +
    +
    Remarks
    +

    onmarker events are fired whether or not the sprite is playing. onplaymarker events are only fired when the sprite is playing. + +

    The following sprite has three markers defined. +

    
    +<PARAM name="AddFrameMarker1" value="0,FrameEight,0">
    +<PARAM name="AddFrameMarker2" value="4,FrameFour,0">
    +<PARAM name="AddFrameMarker3" value="8,FrameZero,0">
    +
    +


    AddTimeMarker Method

    +Sprite Control +

    Sets a marker to fire an event when playback reaches the designated time. This method can be used or modified only when the sprite is stopped. +


    PARAM Tag Syntax

    <PARAM NAME="AddTimeMarker x " VALUE=" time ,
      marker name,
      [ fAbsolute ]">


    Script Syntax

    object.AddTimeMarker(
      time ,
      " marker name",
      [ fAbsolute ]
      )

    Parameters
    +
    object +
    Name of the sprite. +
    x +
    A sequential integer identifying the time marker, starting at 1 (PARAM tag syntax only). If you are adding more than one time marker through PARAM tag syntax, you must make each AddTimeMarker method call distinct by adding an sequential integer at the end of the AddTimeMarker PARAM name. +
    time +
    Time for the onmarker or onplaymarker event to fire. +
    marker name +
    Name of the marker. +
    fAbsolute +
    An optional flag that specifies event firing. Default is True. If True (absolute) the event fires at the specified time once and ignores looping. If False (relative) the event fires everytime, including in loops. For PARAM tag syntax, use 0 for False and use –1 or nonzero for True. For script, use the predefined constants True and False. + + + + For PARAM Tag syntax, use zero (False) or nonzero (True); for script use predefined constants True and False. +
    +
    Remarks
    +

    For details on the events fired for markers. onmarker events are fired whether or not the sprite is playing. onplaymarker events are fired only when the sprite is playing. + +

    Example +The following PARAM tag examples show how to use this method. + + + +

    
    +<PARAM name="AddTimeMarker1" value="0.0,MyMark,1">
    +<PARAM name=" AddTimeMarker2" value="4.7,FrameFour,1">
    +<PARAM name=" AddTimeMarker3" value="8.0,FrameZero,1">
    +
    +


    FrameSeek Method

    +Sprite Control +

    Sets the sprite playback to a specific frame. + +


    Script Syntax

    object.FrameSeek(
      frame
      ) >

    Parameters
    +
    object +
    Name of the sprite. +
    frame +
    New playback frame for the sprite. +
    +
    Remarks
    +

    The following example seeks the sprite named SpriteHorse in response to an onclick event: + + +

    
    +SUB SpriteHorse_onclick
    +	SpriteHorse.FrameSeek(5)
    +END SUB
    +
    +

    mouseover example +Right click inside the frame and View Source to get source code. + +

    +


    Pause Method

    +Sprite Control +

    Stops playback at the current frame and maintains current frame position. + +


    Script Syntax

    object.Pause

    Parameters
    +
    object +
    Name of the sprite. +
    +
    Remarks
    +

    Does not rewind the media. + + +

    The following example pauses + + + the sprite named SpriteHorse in response to an onclick event: +

    
    +SUB SpriteHorse_onclick
    +	SpriteHorse.Pause
    +END SUB
    +
    +


    Play Method

    +Sprite Control +

    Begins playback from the current frame. This method is scriptable only. +


    Script Syntax

    object.Play

    Parameters
    +
    object +
    Name of the sprite. +
    +
    Remarks
    +

    The following example starts playing the sprite named SpriteHorse in response to an onclick event: + +

    
    +SUB Play_onclick
    +	SpriteHorse.Play
    +END SUB
    +
    +


    Seek Method

    +Sprite Control +

    Sets the sprite playback to start at the specified elapsed time. + + +


    Script Syntax

    object.Seek (
      time
      )

    Parameters
    +
    object +
    Name of the sprite. +
    time +
    Elapsed time after which the sprite begins playing. + + +
    +
    Remarks
    +

    The following example seeks the sprite named SpriteHorse in response to an onclick event: + +

    
    +SUB SpriteHorse_onclick
    +	SpriteHorse.seek(0.0)
    +END SUB
    +
    +


    Stop Method

    +Sprite Control +

    Ends playback at the current frame and resets the sprite's playback position to the beginning. + + + This method is scriptable only. +


    Script Syntax

    object.Stop

    Parameters
    +
    object +
    Name of the sprite. +
    +
    Remarks
    +

    The following example stops playing the sprite named SpriteHorse in response to an onclick event: + +

    
    +SUB SpriteHorse_onclick
    +	SpriteHorse.Stop
    +END SUB
    +
    +


    onframeseek Event

    +Sprite Control +

    Occurs after the FrameSeek method has been invoked and the current playback frame has been changed. + +


    VBScript Syntax

    Sub object_onframeseek(
      newframe
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onframeseek(
      newframe
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. +
    script +
    Script to be run. + + +
    newframe +
    New frame to which the current playback position has been set. +
    +


    onmarker Event

    +Sprite Control +

    Occurs when a frame or time marker has been reached. + +


    VBScript Syntax

    Sub object_onmarker(
      markername
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmarker(
      markername
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. +
    markername +
    String containing the marker name established in the AddTimeMarker or AddFrameMarker methods. +
    script +
    Script to be run. +
    +
    Remarks
    +

    This event occurs when the sprite playback position reaches the marker point, either when the sprite is playing, paused, or stopped. For example, if you seek to the marker position while the sprite is paused or stopped, the onmarker event will occur. + + +


    onmedialoaded Event

    +Sprite Control +

    Occurs when a piece of sprite media is fully downloaded. + +


    VBScript Syntax

    Sub object_ onmedialoaded(
      URL
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmedialoaded(
      URL
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. +
    script +
    Script to be run. +
    URL +
    URL used to load the media. +
    +


    onpause Event

    +Sprite Control +

    Occurs when sprite playback is paused. +


    VBScript Syntax

    Sub object_onpause( )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onpause( ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. +
    script +
    Script to be run when the event occurs. +
    +


    onplay Event

    +Sprite Control +

    Occurs when the sprite starts. The sprite will not start until all media is downloaded. +


    VBScript Syntax

    Sub object_onplay( )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onplay( ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. +
    script +
    Script to be run when the event occurs. +
    +


    onplaymarker Event

    +Sprite Control +

    Occurs when a marker is reached during sprite playback. +


    VBScript Syntax

    Sub object_onplaymarker(
      markername
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onplaymarker(
      markername
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. +
    markername +
    String containing the marker name established in the AddTimeMarker or AddFrameMarker methods. +
    script +
    Script to be run. +
    +
    Remarks
    +

    This event occurs when the sprite playback position reaches the marker point while the sprite is playing. + + +


    onseek Event

    +Sprite Control +

    Occurs after a Seek method has been invoked and the playback position has changed. +


    Sub object_onseek(
      newtime
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onseek(
      newtime
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. +
    newtime +
    Variable that contains the time value of the new playback position, in seconds.milliseconds (0.000). +
    script +
    Script to be run. +
    +
    Remarks
    +

    You can use onseek to set up conditional behavior, as shown in the following example: + + +

    
    +	Sub sprite1_onseek(newtime)
    +		If newtime=2.000 then
    +			sprite1.stop
    +		Else
    +			sprite1.play
    +		End If
    +	End Sub
    +
    +


    onstop Event

    +Sprite Control +

    Occurs when the sprite playback stops. + + +


    Script Syntax

    Sub object_onstop( )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onstop( ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    Name of the sprite. + + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0023.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0023.HTM new file mode 100644 index 0000000..cae95be --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0023.HTM @@ -0,0 +1,977 @@ + + +Structured Graphics Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Structured Graphics Control +DirectAnimation Animated Header --Structured Graphics Control* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Sprite Control
    +*Next Topic: MouseEventsEnabled Property and Mouse Events
    +

    +

    +

    Structured Graphics Control

    +
    +

    The Structured Graphics control provides client-side, vector-based graphics, rendered on the fly to add visual impact to your page. This gives you the advantage of low download overhead coupled with high performance on the client. This control renders the resulting vector shape as a windowless graphic, transparent to the background of the page, which can be programmatically manipulated by scaling, rotating, or translating methods. + +

    You can use the Structured Graphics control to create simple primitives and complex polygon vector graphic shapes from a PARAM tag syntax description. Or, you can use the file syntax when the SourceURL property is set to read an external text file that contains the shape description. +

    For information on creating vector graphics via script, see the DrawingSurface topic in the DirectAnimation Programmer's Guide. +

    Use the Windows Metafile Converter (Wmfcnv.exe) included in the /BIN directory of the Internet Client SDK to convert existing Windows metafiles into Structured Graphic <PARAM> tags or shape description text files for use with the Structured Graphics control. +

    When rendering a shape, the Structured Graphics control will stop parsing the shape if it encounters invalid Param tag syntax. Some properties and methods are scriptable only. See the appropriate reference topic for syntax details. +

    Property Syntax +

    
    +PARAM Tag Syntax
    +
    +<OBJECT ID=object 
    +STYLE="WIDTH:width; HEIGHT:height: Z-INDEX:z-index"
    +CLASSID="CLSID:369303C2-D7AC-11d0-89D5-00A0C90833E6" >
    +<PARAM NAME="PropertyName" VALUE="Value">
    +</OBJECT>
    +
    +
    
    +Script Syntax
    +
    +object.PropertyName=Value
    +
    +

    Parameters + +
    object +Name of the structured graphics object. +
    width +Desired width for the structured graphics drawing area (pixels or percentage of page width) +
    height +Desired height for the structured graphics drawing area (pixels or percentage of page height) +
    z-index +Desired z-index value for the structured graphics drawing area (integer) +
    Property +One of the Structured Graphics control properties in the list below. +
    Value +Valid value for that property. +
    + +
    Property +Description +
    CoordinateSystem +Sets the coordinate system to use for the world +
    DrawingSurface +Sets or returns the Microsoft® DirectAnimation™ drawing surface, the visible rendering of the control's contents for use (script only). +
    ExtentHeight, ExtentWidth, ExtentLeft, ExtentTop Properties +Sets the height, width, left and top values of the shape (in pixels). +
    HighQuality Property +Turns anti-aliasing on or off. +
    Image Property +Fills the structured graphic shape with a DirectAnimation DAImage (script only). +
    Library +Returns the DirectAnimation Library reference (script only). +
    MouseEventsEnabled +Sets or returns whether Mouse events are to be processed against the structured graphics object. + + +
    PreserveAspectRatio Property +Sets or returns a value indicating if aspect ratio should be preserved when extents are set +
    SourceURL +Enables the Structured Graphic control to use an external file as the shape primitive description. +
    Transform +Transforms the object using a DirectAnimation DATransform2 behavior (script only). +
    +

    Method PARAM Tag Syntax +

    
    +<OBJECT ID=object 
    +STYLE="WIDTH:width; HEIGHT:height: Z-INDEX:z-index"
    +CLASSID="CLSID:369303C2-D7AC-11d0-89D5-00A0C90833E6">
    +<PARAM NAME="LINEnnnn" VALUE="method">
    +</OBJECT>
    +
    +

    Parameters + +
    object +String identifying the object. +
    width +Desired width for the structured graphics drawing area (pixels or percentage of page width) +
    height +Desired height for the structured graphics drawing area (pixels or percentage of page height) +
    z-index +Desired z-index value for the structured graphics drawing area (integer) +
    nnnn +A sequence number for the method execution order. Must be in order starting with 0001. Skipped sequences halt execution. +
    method +One of the elements in the list below. +
    + +
    Method +Description +
    Arc +Creates a single circular or elliptical arc. +
    FillSpline +Creates a closed spline shape, defined by a series of points. +
    Oval +Creates an ellipse. +
    Pie +Creates an elliptical arc closed at the center of the bounding rectangle to form a wedge (pie) shape. +
    Polygon +Creates a closed polygon. +
    PolyLine +Creates a segmented line. +
    PolySpline +Creates an open spline shape, defined by a series of points. +
    Rect +Creates a rectangle. +
    RoundRect +Creates a rounded rectangle. +
    SetFillColor +Sets the foreground and background colors for graphic fills. +
    SetFillStyle +Sets the type of fill. +
    SetFont +Sets the font for the control. +
    SetGradientFill +Specifies the start and end points for a gradient fill. +
    SetHatchFill +Specifies whether the hatch fill is transparent. +
    SetLineColor +Sets the line color for drawing graphics. +
    SetLineStyle +Changes the line style for the current shape. +
    SetGradientShape +Sets the shape of a gradient to be an outline of a polygon shape. +
    SetTextureFill +Sets the texture source to be used to fill a structured graphics shape. +
    Text +Creates a string with the current font and color. +
    +

    Method Script Syntax +

    The following methods are scriptable only, and use this syntax form: +

    
    +object.MethodName(Parameters)
    +
    + +
    object +String identifying the structured graphics object. +
    MethodName +One of the elements in the list below. +
    Parameters +Valid parameter for that method. +
    + +
    Clear +Clears the control. +
    Rotate +Sets the rotation of the world. +
    Scale +Sets the current scaling in the x-, y-, and z-axes for the world. +
    SetIdentity +Clears any transforms, sets the shape to its original state. +
    Transform4x4 +Sets scaling, rotating, and translation information all at once, using a transform matrix. +
    Translate +Sets the x-, y-, and z-coordinates of the origin. +
    + +
    Events +Description +
    onclick +Occurs when the user has clicked the left mouse button on the structured graphic. +
    ondblclick +Occurs when the user has double-clicked on the structured graphic. +
    onmousedown +Occurs when the left button is pressed over the structured graphic. +
    onmousemove +Occurs when the user moves the mouse pointer across the non-transparent area of the structured graphic. +
    onmouseout +Occurs when the cursor leaves the non-transparent area of the structured graphic. +
    onmouseover +Occurs when the mouse pointer has entered the non-transparent region of the structured graphic. +
    onmouseup +Occurs when the user releases the mouse button while the mouse pointer is over the structured graphic. +
    +


    CoordinateSystem Property

    +Structured Graphics Control +

    Sets the coordinate system to use for the world. Read-only at runtime. +


    PARAM Tag Syntax

    <PARAM NAME="CoordinateSystem" VALUE="0 | 1">

    Parameters
    +
    0 | 1 +
    Sets the world's rotation. Value can be Windows (0), where y-axis values start at the top of the page and increase downward, or Cartesian (1), where y-axis values start at the bottom of the page and increase upward. +
    +


    DrawingSurface Property

    +Structured Graphics Control +

    Sets or returns the drawing surface, the visible rendering of the control's contents for use in script. For more information, see the DirectAnimation documentation. +

    DrawingSurface property example +

    Right-click inside the frame and choose View Source to see the HTML code for this example. + +

    +


    ExtentHeight, ExtentWidth, ExtentLeft, ExtentTop Properties

    +Structured Graphics Control +

    Sets the height, width, left and top values of the shape within the control's coordinate space (as defined by the WIDTH and HEIGHT parameters of the <OBJECT> tag's STYLE attribute). +


    PARAM Tag Syntax

    <PARAM NAME="ExtentHeight" VALUE="height">
    <PARAM NAME="ExtentWidth" VALUE="width">
    <PARAM NAME="ExtentLeft" VALUE="left">
    <PARAM NAME="ExtentTop" VALUE="top">

    Parameters
    +
    height +
    The height of the shape (in pixels). +
    width +'
    The width of the shape (in pixels). +
    left +
    The left edge of the shape (in pixels). +
    top +
    The top edge of the shape (in pixels). +
    +
    Remarks
    +

    Top and left values can be set without setting height and width values, but height and width values can only be set if the top and left values are set. An example of the use of this property is as follows; if you set ExtentTop to 0 and ExtentLeft to 0, instead of drawing the shape from the center of the control's coordinate space (as defined in the STYLE attribute of the <OBJECT> tag), the shape will be drawn from the upper left hand corner of the coordinate space. +


    HighQuality Property

    +Structured Graphics Control +

    Turns anti-aliasing on (True) or off (False). Read/write at run time. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE=" HighQuality(
      0 | 1
      ) ">


    Script Syntax

    object.HighQuality(
      fFalse
      )

    Parameters
    +
    0 | 1 , fFalse +
    Boolean flag that turns anti-aliasing on or off for the structured graphic, default is False. In HTML Param tags, the possible values are 0 (False) or nonzero (True). In script, the flag can support either 0 or False, 1 (a nonzero value) or True. +
    +
    Remarks
    +

    Enabling this property slows down the rendering of the structured graphic. For optimal performance, turn this property off unless you're specifically using it. +


    Image Property

    +Structured Graphics Control +

    Fills the structured graphic shape with a DAImage.


    Script Syntax

    object.Image=DAImage

    Parameters
    +
    object +
    The name of the structured graphics object, as defined in the PARAM tag. +
    DAImage +
    The DAImage object used to fill the shape. +
    +


    Library Property

    +Structured Graphics Control +

    Retrieves a DAStatics object that gives the control access to the DirectAnimation library functions and properties. + + +


    Script Syntax

    lib=object.Library

    Parameters
    +
    lib +
    A DAStatics object. +
    object +
    Name of the structured graphics object. +
    +
    Remarks
    +

    The following JScript code shows how to use this property: +

    
    +mySG.Library=DAControl.PixelLibrary;
    +
    +


    PreserveAspectRatio Property

    +Structured Graphics Control +

    Sets whether or not the graphic should scale proportionally. + +


    PARAM Tag Syntax

    <PARAM NAME="PreserveAspectRatio" VALUE="0 | -1">


    Script Syntax

    object.PreserveAspectRatio=fFalse

    Parameters
    +
    object +
    Name of the structured graphics object, as defined in PARAM tag syntax. +
    0 | -1 , fFalse +
    Boolean flag that sets whether or not the aspect ratio should be preserved. Default is False. +
    +
    Remarks
    +

    This property is effective only if ExtentTop, ExtentLeft, ExtentWidth and ExtentHeight properties are set. An example of the use of this property is as follows; if you set the shape's width and height as a percentage of the page width and height (as one of the STYLE attributes of the <OBJECT> tag), set PreserveAspectRatio to True and the user resizes the browser window, the shape will scale itself proportionally based on the smaller of the new width or height values for the window. If PreserveAspectRatio is set to False, the shape will scale itself in relative to the new width and height of the window. +


    SourceURL Property

    +Structured Graphics Control +

    Enables the Structured Graphic control to use an external file as the vector shape description. You can use the Windows Metafile Converter (WMFCONV.EXE) to convert Windows metafiles into structured graphics shape description text files. Read-write at runtime. +


    PARAM Tag Syntax

    <PARAM NAME="SourceURL" VALUE="URL">


    Script Syntax

    object.SourceURL=URL

    Parameters
    +
    URL +
    String value, describing the location of the specified shape primitive description file. Can be an http://, file://\\ or relative path. Default is null. +
    +
    Remarks
    +

    This can be very useful in the case of creating a structured graphic animation. Using this property, you can write code that very rapidly calls different source URLs, making it seem as if the shape is changing over time in a manner that exceeds scale or rotation transformations. +

    SourceURL property example +

    Right-click inside the frame and choose View Source to see the HTML code for this example. + +

    +


    Transform Property

    +Structured Graphics Control +

    Transforms the object using a DATransform2 behavior. +


    Script Syntax

    object.Transform=DATransform2

    Parameters
    +
    object +
    The name of the structured graphics object, as defined in the PARAM tag. +
    DATransform2 +
    A DATransform2 behavior. +
    +


    Arc Method

    +Structured Graphics Control +

    Creates a single circular or elliptical arc. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="Arc(
      x,
      y,
      width,
      height,
      startAngle,
      arcAngle,
      rotation">


    File Syntax

    Arc(
      x,
      y,
      width,
      height,
      startAngle,
      arcAngle,
      rotation
      )

    Parameters
    +
    x, y +
    The center of the arc. +
    width +
    The width of the rectangle containing the arc. +
    height +
    The height of the rectangle containing the arc. +
    startAngle +
    The beginning angle, in degrees. +
    arcAngle +
    The angle of the arc, relative to startAngle, in degrees. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +

    Arc Method example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Clear Method

    +Structured Graphics Control +

    Clears the control of its contents, resetting it to null. +


    Script Syntax
    object.Clear

    Parameters
    +
    object +
    Name of the structured graphics object, as defined in PARAM tag syntax. +
    +
    Remarks
    +

    This method is useful for erasing the graphic before painting another in its place using the DrawingSurface property. +


    FillSpline Method

    +Structured Graphics Control +

    Creates a closed spline shape, defined by a series of points. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="FillSpline (
      numpoints[action,
      xPoint,
      yPoint],
      rotation
      ) ">


    File Syntax

    FillSpline (
      numpoints,
      [action,
      xPoint,
      yPoint],
      rotation
      )

    Parameters
    +
    numpoints +
    Number of points in the spline +
    Action +
    An integer that defines what the spline does at the x, y coordinate. Can be one of the following: +
    0 - Move to: Move to the x, y coordinate. +
    1 - LineTo: draw a line from the previous x, y coordinate to the current one. +
    2 - BezierTo: Draw a bezier line from the previous coordinates to the current one. +
    3 - LineToClose: Close the line to the first coordinate. +
    4 - BezierClose: Close the bezier to the first coordinate. +
    xPoint +
    The x-coordinate for the spline control point. +
    yPoint +
    The y-coordinate for the spline control point. +
    rotation +
    Degree of rotation. +
    + +


    Oval Method

    +Structured Graphics Control +

    Creates an ellipse that fits within the bounding rectangle specified by the x, y, width and height arguments. +


    PARAM Tag Syntax
    <PARAM NAME="Line0001" VALUE="Oval(
      x,
      y,
      width,
      height,
      rotation
      ) ">


    File Syntax

    Oval(
      x,
      y,
      width,
      height,
      rotation
      )

    Parameters
    +
    x, y +
    The x- and y-coordinates for the start of the bounding rectangle. +
    width +
    The width of the rectangle. +
    height +
    The height of the rectangle. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +

    Oval Method example +

    Right-click inside the frame and choose View Source to see the HTML code for this example. + +

    +


    Pie Method

    +Structured Graphics Control +

    Creates a single elliptical arc filled with the current FillColor, resulting in a wedge-shaped (pie) figure. +

    The center of the pie shape is the center of a rectangle whose origin is (x, y) and whose size is specified by the width and height arguments. The two axes of the arc are given by the width and height arguments. The arc is drawn from startAngle to startAngle + arcAngle. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="Pie(
      x,
      y,
      width,
      height,
      startAngle,
      arcAngle,
      rotation
      ) ">


    File Syntax

    Pie(
      x,
      y,
      width,
      height,
      startAngle,
      arcAngle,
      rotation
      )

    Parameters
    +
    x +
    The x-coordinate. +
    y +
    The Y coordinate. +
    width +
    The width of the rectangle. +
    height +
    The height of the rectangle. +
    startAngle +
    The beginning angle, in degrees. +
    arcAngle +
    The angle of the arc, relative to startAngle, in degrees. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +
    Remarks
    +

    This example draws a 22-degree pie shape. +

    
    +<PARAM NAME="Line0004" VALUE="Pie(-75,-75, 150,150, 15,22, 0)">">
    +
    +

    Pie Method example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Polygon Method

    +Structured Graphics Control +

    Creates a closed polygon defined by a list of points, filled with the current FillColor. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="Polygon>(
      nPoints,
      x1,
      y1,
      x2,
      y2,
      x3,
      y3 [,
      x4,
      y4 ...],
      rotation
      ) ">


    File Syntax

    Polygon(
      nPoints,
      x1,
      y1,
      x2,
      y2,
      x3,
      y3 [,
      x4,
      y4 ...],
      rotation
      )

    Parameters
    +
    nPoints +
    The total number of points. +
    x1, y1 +
    The first point defining the shape. +
    x2, y2 +
    The second point defining the shape. +
    x3, y3 +
    The third point defining the shape. +
    x4, y4 +
    Additional points that define the shape. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +
    Remarks
    +

    If you don't want to close the polygon, use PolyLine. +

    This example creates an elongated hexagon. +

    
    +<PARAM NAME="Line0005" VALUE="Polygon(6, 0,10, 10,10, 30,30, 30,40, 20,40, 0,20, 0)">
    +
    +

    Polygon Method example +

    Right-click inside the frame and choose View Source to see the HTML code for this example. + +

    +


    PolyLine Method

    +Structured Graphics Control +

    Creates an open (nonfilled) line shape defined by a series of points. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="PolyLine(
      nPoints,
      x1,
      y1,
      x2,
      y2 [,
      x3,
      y3 ...],
      rotation
      ) ">


    File Syntax

    PolyLine(
      nPoints,
      x1,
      y1,
      x2,
      y2 [,
      x3,
      y3 ...],
      rotation
      )

    Parameters
    +
    nPoints +
    The total number of points. +
    x1, y1 +
    The first point defining the line. +
    x2, y2 +
    The second point defining the line. +
    x3, y3 +
    Additional points that define the line. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +
    Remarks
    +

    To create a closed polygon, use Polygon. +

    This example creates a stair-stepped line. +

    
    +<PARAM NAME="Line0001" VALUE="PolyLine(7, 10,10, 30,10, 30,30, 50,30, 50,50, 70,50, 70,70, 0)">
    +
    +

    PolyLine Method example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    PolySpline Method

    +Structured Graphics Control +

    Creates a spline shape defined by a series of points, filled with the current FillColor. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="PolySpline (
      nPoints,
      [action,
      xPoint,
      yPoint],
      rotation
      ) ">


    File Syntax

    PolySpline (
      npoints,
      [action,
      xPoint,
      yPoint],
      rotation
      )

    Parameters
    +
    nPoints +
    The total number of points. +
    Action +
    An integer that defines what the spline does at the x, y coordinate. Can be one of the following: +
    0 - Move to: Move to the x, y coordinate. +
    1 - LineTo: draw a line from the previous x, y coordinate to the current one. +
    2 - BezierTo: Draw a bezier line from the previous coordinates to the current one. +
    3 - LineToClose: Close the line to the first coordinate. +
    4 - BezierClose: Close the bezier to the first coordinate. +
    xPoint +
    The x-coordinate for the spline control point. +
    yPoint +
    The y-coordinate for the spline control point. +
    rotation +
    Degree of rotation from the 0 degrees position. +
    + +


    Rect Method

    +Structured Graphics Control +

    Creates a rectangular shape filled with the current FillColor. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="Rect(
      x,
      y,
      width,
      height,
      rotation
      ) ">


    File Syntax

    Rect(
      x,
      y,
      width,
      height,
      rotation
      )

    Parameters
    +
    x +
    The left edge of the rectangle. +
    y +
    The top edge of the rectangle. +
    width +
    The width of the rectangle. +
    height +
    The height of the rectangle. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +

    Rect Method example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Rotate Method

    +Structured Graphics Control +

    Rotates the shape along the x-, y-, and z-axes. +


    Script Syntax

    object.Rotate(
      x-rotation,
      y-rotation,
      z-rotation
      )

    Parameters
    +
    object +
    Name of the structured graphics object, as defined in PARAM tag syntax. +
    x-rotation, y-rotation, z-rotation +
    Sets the new x, y, and z rotation values, in degrees. +
    +

    Rotate Method example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    RoundRect Method

    +Structured Graphics Control +

    Creates a round-cornered rectangle filled with the current FillColor. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="RoundRect(
      x,
      y,
      width,
      height,
      arcWidth,
      arcHeight,
      rotation
      ) ">


    File Syntax

    RoundRect(
      x,
      y,
      width,
      height,
      arcWidth,
      arcHeight,
      rotation
      )

    Parameters
    +
    x +
    The left edge of the rectangle. +
    y +
    The top edge of the rectangle. +
    width +
    The width of the rectangle. +
    height +
    The height of the rectangle. +
    arcWidth +
    The horizontal diameter of the arc at the four corners. +
    arcHeight +
    The vertical diameter of the arc at the four corners. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +

    RoundRect Method example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Scale Method

    +Structured Graphics Control +

    Sets the current scaling of the x-, y-, and z-axes. +


    Script Syntax

    object.Scale(
      x-scale,
      y-scale,
      z-scale
      )

    Parameters
    +
    object +
    Name of the structured graphics object, as defined in PARAM tag syntax. +
    x-scale, y-scale, z-scale +
    Sets the new scaling for the x-, y-, and z-axes. The scaling is multiplicative, based on the current values for the shape, with the current size equivalent to 1. For example, scaling the shape by 0.9 sets the shape to 90% of its former size. +
    +

    Scale Method example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    SetFillColor Method

    +Structured Graphics Control +

    Sets the color fill for the shape. Can be used to set foreground and background fills to different colors. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="SetFillColor(
      rForeColor,
      gForeColor,
      bForeColor [,
      rBackColor,
      gBackColor,
      bBackColor ]
      ) ">


    File Syntax

    SetFillColor(
      rForeColor,
      gForeColor,
      bForeColor [,
      rBackColor,
      gBackColor,
      bBackColor ]
      )

    Parameters
    +
    rForeColor, gForeColor, bForeColor +
    The red, green, and blue values for the foreground color. Each value is an integer in the range 0–255. +
    rBackColor, gBackColor, bBackColor +
    Optional. The red, green, and blue values for the background color. Each value is an integer in the range 0–255. +
    +
    Remarks
    +

    This example sets the Fill Color to solid blue. +

    
    +<PARAM NAME="Line0001" VALUE="SetFillColor(0,0,255)">
    +
    +

    SetFillColor property example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    SetFillStyle Method

    +Structured Graphics Control +

    Sets the type for a fill. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="SetFillStyle(
      type
      ) ">


    File Syntax

    SetFillStyle(
      type
      )

    Parameters
    +
    type +
    Sets the fill type where type is one of the following values. + +
    Value +Description +
    0 +Null +
    1 +Solid +
    3 +Hatch horizontal +
    4 +Hatch vertical +
    5 +Hatch forward diagonal +
    6 +Hatch backward diagonal +
    7 +Hatch cross +
    8 +Hatch diagonal cross +
    9 +Horizontal gradient +
    10 +Vertical gradient +
    11 +Radial gradient +
    12 +Line gradient +
    13 +Rectangular gradient +
    14 +Shaped gradient +
    +
    +
    Remarks
    +

    This example fills the shape with a solid fill. +

    
    +<PARAM NAME="Line0001" VALUE="SetFillStyle(1)">
    +
    +

    Based on the value set for type, you can use the SetHatchFill or SetGradientFill methods to set properties for the selected fill type. +

    SetFillStyle property example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    SetFont Method

    +Structured Graphics Control +

    Sets the font to be used for creating text. Used with the Text method. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="SetFont(
      name,
      height,
      weight,
      isItalic,
      isUnderline,
      isStrikethrough
      ) ">


    File Syntax

    SetFont(
      name,
      height,
      weight,
      isItalic,
      isUnderline,
      isStrikethrough
      )

    Parameters
    +
    name +
    The new font name. +
    height +
    The size of the font, in points. If font height is set as negative value, font will be drawn upside down and backwards. +
    weight +
    The weight of the font. An integer in the range 0–700, where a value of 300 is normal weight, and a value of 700 is heavy bold. +
    isItalic, isUnderline, isStrikethrough +
    Values specifying whether the font is italic, underlined, or strikethrough. If True, the font has the corresponding attribute; if False, the font does not. +
    +
    Remarks
    +

    The following example sets the font attributes to be 80-point Verdana in a medium heavy bold, with no italic, underlined, or strikethrough characteristics. +

    
    +<PARAM NAME="Line0004" VALUE="SetFont('Verdana',80,650,0,0,0)">
    +
    +


    SetGradientFill Method

    +Structured Graphics Control +

    Specifies a rectangular area to fill with a gradient. This method can be used with any closed shape. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="SetGradientFill(
      startX,
      startY,
      finishX,
      finishY,
      strength
      ) ">


    File Syntax

    SetGradientFill(
      startX,
      startY,
      finishX,
      finishY,
      strength
      )

    Parameters
    +
    startX, startY +
    The x and y positions, in pixels, for the start point of the rectangle that holds the gradient. These positions are relative to the upper-left corner of the page. +
    finishX, finishY +
    The x and y positions, in pixels, for the end point of the rectangle that holds the gradient. These positions are relative to the upper-left corner of the page. +
    strength +
    Sets the intensity of the first color. +
    +
    Remarks
    +

    Use the SetFillColor method to specify the foreground and background colors for the gradient fill. +

    Use this function only if you specified type as 11 for the SetFillStyle method. +

    The following example sets the gradient fill attributes for the shape to start at (25,15), to fill toward the upper-left corner of the page with a color intensity of 1. +

    
    +<PARAM NAME="Line0005" VALUE="SetGradientFill(25,15,0,0,1)">
    +
    +

    SetGradientFill property example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    SetGradientShape Method

    +Structured Graphics Control +

    Sets a gradient shape to that of a specified shape. It will use SetGradientColor to display the color ranges. +


    PARAM Tag Syntax

    <PARAM NAME="Line0005" VALUE="SetGradientShape(
      nPoints,
      [x0,
      y0 ,
      x1 ,
      y1 ,
      xN ,
      yN]
      ) >


    File Syntax

    SetGradientShape(
      nPoints,
      [x0,
      y0,
      x1 ,
      y1 ,
      xN ,
      yN]
      )

    Parameters
    +
    nPoints +
    The total number of points. +
    x0, y0 , x1, y1 , xN , yN +
    The x- and y-coordinate pairs. +
    +
    Remarks
    +

    NOTE: The begin color is color1 and the end color is color2, as set in the SetFillColor method. +


    SetHatchFill Method

    +Structured Graphics Control +

    Specifies whether or not the hatch fill is transparent. + +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="SetHatchFill(
      0 | 1
      ) ">


    File Syntax

    SetHatchFill(
      fTransparent
      )

    Parameters
    +
    o | 1 / fTransparent +
    If False (0), the hatch fill is not transparent. If True (1 or nonzero value), the default, the hatch fill is transparent. Default is False. +
    +
    Remarks
    +

    Use this function only if you specified a value for type between 3 and 8 for the SetFillStyle method. +

    The following HTML Param tag sets the HatchFill attribute to visible. +

    
    +<PARAM NAME="Line0005" VALUE="SetHatchFill(1)">
    +
    +


    SetIdentity Method

    +Structured Graphics Control +

    Sets the shape to its original settings. +


    Script Syntax

    object.SetIdentity( )

    Parameters
    +
    object +
    Name of the structured graphics object, as defined in PARAM tag syntax. +
    +
    Remarks
    +

    Use SetIdentity to ensure that your shapes are at their initial position, size and orientation when your page loads by using the window_onload event. +

    This example demonstrates how window_onload is used to initialize the structured graphic SG1. +

    
    +Sub window_onload()
    +call SG1.SetIdentity()
    +End Sub
    +
    +

    When SetIdentity is next called, it clears all transforms and returns the shape to its initial settings. +


    SetLineColor Method

    +Structured Graphics Control +

    Sets the line color for the shape outline. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="SetLineColor(
      r,
      g,
      b
      ) ">


    File Syntax

    SetLineColor(
      r,
      g,
      b
      )

    Parameters
    +
    r +
    The red value for the color. Integer in the range 0–255. +
    g +
    The green value for the color. Integer in the range 0–255. +
    b +
    The blue value for the color. Integer in the range 0–255. +
    +
    Remarks
    +

    This code sets the line color to red. +

    
    +<PARAM NAME="Line0001" VALUE="SetLineColor(255,0,0)">
    +
    +


    SetLineStyle Method

    +Structured Graphics Control +

    Sets the line style of the shape. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="SetLineStyle(
      style,
      linewidth
      ) ">


    File Syntax

    SetLineStyle(
      style,
      linewidth
      )

    Parameters
    +
    style +
    Sets the line style for the current shape type using any of the following values. + +
    Value +Description +
    0 +Null +
    1 +Solid +
    2 +Dash +
    +
    linewidth +
    integer value, sets the line width in pixels. +
    +
    Remarks
    +

    The following example sets the LineStyle attribute for the shape to a dashed line four pixels wide. +

    
    +<PARAM NAME="Line0002" VALUE="SetLineStyle(2,4)">
    +
    +


    SetTextureFill Method

    +Structured Graphics Control +

    Sets the texture or image source file to be used to fill the shape. +


    PARAM Tag Syntax

    <PARAM NAME "Line0001" Value="SetTextureFill(
      xpos,
      ypos,
      'ImageSourceURL',
      0 | 1">


    Script Syntax

    object.SetTextureFill(
      xpos,
      ypos,
      'ImageSourceURL',
      0 | 1
      )

    Parameters
    +
    object +
    Name of the structured graphics object, as defined in PARAM tag syntax. +
    xpos, ypos +
    Sets the x- and y-coordinates for the origin point of the texture, in pixels. +
    ImageSourceURL +
    Sets the source image URL. +
    0 | 1 +
    Sets the type of texture fill, whether scaled (0) or tiled (1) within the bounds of the shape. +
    +

    SetTextureFill property example +

    Right click inside the frame and select View Source to see the HTML code for this example. + +

    +


    Text Method

    +Structured Graphics Control +

    Creates a string using the current font and color. +


    PARAM Tag Syntax

    <PARAM NAME="Line0001" VALUE="Text(
      'str ',
      x,
      y,
      rotation
      ) ">


    File Syntax

    Text(
      'str ',
      x,
      y,
      rotation
      )

    Parameters
    +
    str +
    The string to be drawn. +
    x, y +
    The position for the baseline of the first character. +
    rotation +
    The degree of rotation from the 0 degrees position. +
    +
    Remarks
    +

    The text primitive draws from the origin point upwards, as opposed to the other primitives which draw from the origin point downwards. +

    The following code creates the word "Hello" angled 45 degrees from 0. +

    
    +<OBJECT ID="String"
    +CLASSID="CLSID:369303C2-D7AC-11d0-89D5-00A0C90833E6"
    +STYLE="WIDTH:250;HEIGHT:200">
    +<PARAM NAME="Line0001" VALUE="SetFillColor(0,0,255)">
    +<PARAM NAME="Line0002" VALUE="SetFont('Verdana', 75, 400, 0, 0, 0)">
    +<PARAM NAME="Line0003" VALUE="Text('Hello', 0, 0, 45)">
    +</OBJECT>
    +
    +


    Transform4x4 Method

    +Structured Graphics Control +

    Sets scaling, rotating, and translation information all at once, using a transform matrix. +


    Script Syntax

    object.Transform4x4(
      transform-matrix
      )

    Parameters
    +
    object +
    The name of the structured graphics object, as defined in the PARAM tag. +
    transform-matrix +
    An array containing the 16 values forming a 4x4 transform matrix for the control. +
    +
    Remarks
    +

    The 4x4 matrix with ones on the diagonal is the default setting. +


    Translate Method

    +Structured Graphics Control +

    Sets the x-, y-, and z-coordinates for the shape's origin. +


    Script Syntax

    object.Translate(
      x-coordinate,
      y-coordinate,
      z-coordinate
      )

    Parameters
    +
    object +
    Name of the structured graphics object, as defined in PARAM tag syntax. +
    x-coordinate, y-coordinate, z-coordinate +
    The new x-, y-, and z-coordinates, in pixels, for the graphic. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0024.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0024.HTM new file mode 100644 index 0000000..9bbe7d0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0024.HTM @@ -0,0 +1,331 @@ + + +MouseEventsEnabled Property and Mouse Events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --MouseEventsEnabled Property and Mouse Events +DirectAnimation Animated Header --MouseEventsEnabled Property and Mouse Events* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Structured Graphics Control
    +*Next Topic: Windows Metafile to Structured Graphics Converter
    +

    +

    +

    MouseEventsEnabled Property and Mouse Events

    +
    +

    This section describes how to enable your control to respond to the mouse. It contains the following topics: +

    +


    MouseEventsEnabled Property

    +

    Determines whether mouse events will be processed against the object. + + + Mouse events are processed against the visible pixels of the structured graphic or sprite object. Read/write at run time; write access is available at run time only when the sprite is stopped. + + + +


    PARAM Tag Syntax
    <PARAM NAME="MouseEventsEnabled" VALUE="0 | 1">


    Script Syntax

    object.MouseEventsEnabled [=fBoolean]

    Parameters
    +
    object +
    Name of the Structured Graphics or Sprite object, as defined in PARAM tag syntax. +
    0 | 1, fBoolean +
    Boolean flag that specifies + + + whether to process mouse events. For Structured Graphics, the default is False. For Sprite, the default is True. + + + In HTML PARAM tags, the possible values are 0 (False) or nonzero (True). In script, the flag can support either 0 or False, 1 (a nonzero value) or True. +
    +
    Remarks
    +

    Mouse events are z-order dependent. For example, if you have two objects positioned on top of each other, + + + whichever object has a higher z-order will receive the mouse event when the user clicks, releases, or moves over that region. + + +

    Structured Graphics note: Enabling this property turns on a 1-bit bit mask + + + for the control that slows down its rendering when it's being manipulated. For optimal performance, turn this property off unless you're specifically using it. Mouse events are not processed against the outline of the shape. +


    onclick Event

    +

    Occurs when the left mouse button is depressed and released while the mouse pointer is inside the region contained by the object's boundaries. An onclick event can also occur by hitting the ENTER key when an object has focus. + + + The onclick event + + + follows the onmouseup event when it occurs as a result of a mouse button click. + +


    VBScript Syntax

    Sub object_onclick
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onclick>
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Sprite or Structured Graphics object. +
    script +
    Script to be executed when the event occurs. +
    +


    ondblclick Event

    +

    Occurs when the left mouse button is depressed and released twice in quick succession while the mouse pointer is inside the region contained by the object's boundaries. + + +


    VBScript Syntax

    Sub object_ondblclick
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=ondblclick>
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Sprite or Structured Graphics object. +
    script +
    Script to be executed when the event occurs. +
    +
    Remarks
    +

    The sequence of events for an ondblclick event is as follows: + + +

    1. onmousedown +
    2. onmouseup +
    3. onclick +
    4. onmouseup +
    5. ondblclick + + + + + +
    +

    The user can control the timing of click events by changing the Mouse settings found in the Control Panel. + + +


    onmousedown Event

    +

    Fires when the left mouse button is pushed down while the pointer is within the region contained by the object. + +


    VBScript Syntax

    Sub object_onmousedown(
      button,
      shift,
      x,
      y
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmousedown(
      button,
      shift,
      x,
      y
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Sprite or Structured Graphics object. +
    button +
    d>Bit field indicating whether the left (bit 0), right (bit 1), or middle (bit 2) mouse buttons are pressed. Returns a value that specifies which mouse button was pressed; 0 for no buttons pressed, 1 for left button pressed, 2 for right button pressed, 4 for middle button pressed. +
    shift +
    Bit field indicating whether the SHIFT (bit 0), CTRL (bit 1), or ALT (bit 2) keys are pressed. Returns a value that specifies the key or keys pressed while the mouse event is taking place; 0 for no key pressed, 1 for SHIFT key pressed, 2 for CTRL key pressed, 3 for SHIFT and CTRL keys pressed simultaneously, 4 for ALT key pressed, 5 for SHIFT and ALT keys pressed simultaneously, 6 for CTRL and ALT keys pressed simultaneously, 7 for SHIFT, CTRL, and ALT keys pressed simultaneously. + + +
    x, y +
    Coordinates that specify the location of the mouse pointer. Coordinates are in pixels, relative to the surrounding container, with the origin in the upper-left corner. +
    script +
    Script to be executed when the event occurs. +
    +


    onmousemove Event

    +

    Fires when the mouse pointer is moved in the region contained by the object. + +


    VBScript Syntax

    Sub object_ onmousemove(
      button,
      shift,
      x,
      y
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmousemove(
      button,
      shift,
      x,
      y
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Sprite or Structured Graphics object. +
    button +
    Bit field indicating whether the left (bit 0), right (bit 1), or middle (bit 2) mouse buttons are pressed. Returns the value of the mouse button pressed while the mouse event is taking place; 0 for no buttons pressed, 1 for left button pressed, 2 for right button pressed, 3 for left and right buttons pressed, 4 for middle button pressed, 5 for left and middle buttons pressed simultaneously, 6 for right and middle buttons pressed simultaneously, 7 for left, right and middle buttons pressed simultaneously. +
    shift +
    Bit field indicating whether the SHIFT (bit 0), CTRL (bit 1), or ALT (bit 2) keys are pressed. Returns the value of the key pressed while the mouse event is taking place; 0 for no key pressed, 1 for SHIFT key pressed, 2 for CTRL key pressed, 3 for SHIFT and CTRL keys pressed simultaneously, 4 for ALT key pressed, 5 for SHIFT and ALT keys pressed simultaneously, 6 for CTRL and ALT keys pressed simultaneously, 7 for SHIFT, CTRL and ALT keys pressed simultaneously. +
    x, y +
    Coordinates that specify the location of the mouse pointer. Coordinates are in pixels, relative to the surrounding container, with the origin in the upper-left corner. +
    script +
    Script to be executed when the event occurs. +
    +


    onmouseout Event

    +

    Occurs when the mouse pointer is moved out of the region contained by the object's boundaries. +


    VBScript Syntax

    Sub object_onmouseout
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmouseout>
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Sprite or Structured Graphics object. +
    script +
    Script to be executed when the event occurs. +
    +


    onmouseover Event

    +

    Fires when the mouse pointer is moved into the region contained by the object, from a region outside the object's boundaries. +


    VBScript Syntax

    Sub object_onmouseover
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmouseover>
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Sprite or Structured Graphics object. +
    script +
    Script to be executed when the event occurs. +
    +

    onmouseover example +Right click inside the frame and choose View Source to get source code. + +

    +


    onmouseup Event

    +

    Fires when the left mouse button is released (from a depressed position) while the pointer is within the region contained by the object. +


    VBScript Syntax

    Sub object_ onmouseup(
      button,
      shift,
      x,
      y
      )
    script
    End Sub


    JScript Syntax

    <SCRIPT LANGUAGE="JavaScript" FOR=object EVENT=onmouseup(
      button,
      shift,
      x,
      y
      ) >
    script
    <SCRIPT>

    Parameters
    +
    object +
    String identifying the Sprite or Structured Graphics object. +
    button +
    Bit field indicating whether the left (bit 0), right (bit 1), or middle (bit 2) mouse buttons are released. Returns the value of the mouse button released; 0 for no buttons released, 1 for left button released, 2 for right button released, 4 for middle button released. +
    shift +
    Bit field indicating whether the SHIFT (bit 0), CTRL (bit 1), or ALT (bit 2) keys are pressed. Returns the value of the key pressed while mouse event is taking place; 0 for no key pressed, 1 for SHIFT key pressed, 2 for CTRL key pressed, 3 for SHIFT and CTRL keys pressed simultaneously, 4 for ALT key pressed, 5 for SHIFT and ALT keys pressed simultaneously, 6 for CTRL and ALT keys pressed simultaneously, 7 for SHIFT, CTRL, and ALT keys pressed simultaneously. +
    x, y +
    Coordinates that specify the location of the mouse pointer. Coordinates are in pixels, relative to the surrounding container, with the origin in the upper-left corner. +
    script +
    Script to be executed when the event occurs. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0025.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0025.HTM new file mode 100644 index 0000000..2338bf5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0025.HTM @@ -0,0 +1,210 @@ + + +Windows Metafile to Structured Graphics Converter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Windows Metafile to Structured Graphics Converter +DirectAnimation Animated Header --Windows Metafile to Structured Graphics Converter* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: MouseEventsEnabled Property and Mouse Events
    +*Next Topic: Programmer's Guide
    +

    +

    +

    Windows Metafile to Structured Graphics Converter

    +
    +

    This utility converts pre-existing Windows metafiles into structured graphic <PARAM> tags, for use with the Microsoft® DirectAnimation™ Dynamic HTML Structured Graphics control. + +

    Options dialog box + +

    Use the Open command on the File menu to open the Windows metafile you want to convert. + +

    Use the Options command on the File menu to set the scale, orientation, starting line number, and output format. + +

    Use the Save command on the File menu to write the Windows metafile information out in structured graphic format. You can then cut and paste this information into your HTML file source for use with the Structured Graphics control. +

    For for information, see the following topics: +

    +

    Scale Options

    +
    • Height — Sets the height of the structured graphic (in pixels). +
    • Width — Sets the width of the structured graphic (in pixels). +
    +

    Orientation Options

    +
    • Flip Horizonta l — Flips the image along the horizontal plane. +
    • Flip Vertical — Flips the image along the vertical plane. +
    +

    Output Format

    +
    • Unformatted — Saves the structured graphic information out without <PARAM> tags or line numbers. +
    • HTML <PARAM> tags — Saves the structured graphic information out with <PARAM> tags and line numbers. +
    • Visual Basic object tag — Saves the structured graphic information out with line numbers but no <PARAM> tags. +
    +

    Line Numbering

    +
    • Line Number — Allows you to set the initial line number for the structured graphic information so you don't have to renumber all of the line numbers of the structured graphic to add another <PARAM> tag at the beginning. +
    • Reset on open — Resets the initial line number to zero (0) the next time you open the Windows Metafile to Structured Graphic converter. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0026.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0026.HTM new file mode 100644 index 0000000..351854c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0026.HTM @@ -0,0 +1,184 @@ + + +Programmer's Guide + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Programmer's Guide +DirectAnimation Animated Header --Programmer's Guide* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Windows Metafile to Structured Graphics Converter
    +*Next Topic: Introduction
    +

    +

    +

    Programmer's Guide

    +
    +

    The Microsoft® DirectAnimation™ Programmer's Guide discusses a variety of ideas and techniques useful to many types of DirectAnimation authors. The Introduction gives you a brief idea of what you can do in DirectAnimation. The Basics section shows how to do simple scripting, and describes media files, coordinate systems, URLs and paths, timelines, arrays, the Drawing Surface, splines, and more. Using Media Behaviors describes the media behaviors (images, geometries, and sound), and how to use them. Using Behaviors describes general DirectAnimation behaviors, how to create and display them, how to use events and picking, and how to use sequencing, switching, and time substitution. Using Models discusses how to use models, which are the sets of behaviors (composed of images and sounds) actually displayed. +

    bullet1.gifIntroduction
    +

    bullet1.gifThe Basics
    +

    bullet1.gifUsing Media Behaviors
    +

    bullet1.gifUsing Behaviors
    +

    bullet1.gifUsing Models
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0027.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0027.HTM new file mode 100644 index 0000000..1e07ae5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0027.HTM @@ -0,0 +1,201 @@ + + +Introduction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Introduction +DirectAnimation Animated Header --Introduction* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Programmer's Guide
    +*Next Topic: The Basics
    +

    +

    +

    Introduction

    +
    +

    Animation involves changing media over time or in reaction to user input. Media includes sound, 2-D images, and 3-D objects, along with their corresponding camera and lights, colors, textures, and other visual or audio properties. DirectAnimation™ allows developers to produce sophisticated animation from a relatively small number of classes and methods. + +

    DirectAnimation supports a broad set of functionality for mixed-media animation, including: +

    • Importing images, translating and displaying them with pixel-to-pixel mapping to the screen. +
    • Creating 3-D scenes and rendering them with traditional lighting, shading, and camera models. +
    • Streaming audio and video from files or the network. +
    • Combinations of all of the above. +
    +

    With DirectAnimation, you can create a rich interactive animation that draws on both synthetic media (such as 3-D graphics) and recorded media (such as audio and video). For example, you can navigate a 3-D space to inspect a collection of museum items or commercial products. You can implement spatial navigation by using position and orientation to index different items represented as images and video clips. + +

    +There are three basic ways to use DirectAnimation. HTML authors can integrate multimedia using the DirectAnimation controls. The controls can be further enhanced with JScript and/or VBScript. VBScript and JScript writers and Java applet writers can program animations for web pages. Finally, Java, Visual Basic, and C++ application programmers can develop ActiveX Controls or full applications. Thus, DirectAnimation provides a multimedia API and run time that scales from the HTML author to the C++ programmer. + +

    The basic class in DirectAnimation is called a behavior. Use the DirectAnimation classes and methods to construct time-varying, interactive behaviors. You can join sequences of behaviors to produce complex, flexible animation from just a few operations. + +

    Behaviors that are rendered for presentation to the user are called media behaviors. These include: +

    +

    +Other behaviors control the attributes of the media behaviors, or the way they are rendered to the screen. For example: + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0028.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0028.HTM new file mode 100644 index 0000000..829b651 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0028.HTM @@ -0,0 +1,811 @@ + + +The Basics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --The Basics +DirectAnimation Animated Header --The Basics* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Introduction
    +*Next Topic: Using Media Behaviors
    +

    +

    +

    The Basics

    +
    +

    This section covers a variety of concepts and techniques useful to many types of DirectAnimation authors: Web site builders, script writers, and application developers. The following topics are discussed in this section: + +

    +

    Thinking About DirectAnimation

    +

    This section introduces the basic elements of the DirectAnimation model, including media expressions in DirectAnimation, and suggests analogies to number expressions and spreadsheets. +

    Media Expressions +

    DirectAnimation can be explained in terms of the familiar concept of expressions on numbers in programming languages (Fortran, C++, Visual Basic, Java, and so on). Such expressions are based on operations that construct new numbers from existing numbers. For example, (5 + 7) * 4 + 3 constructs the number 51. +

    Before expressions were introduced into programming languages, it took the following tedious steps to evaluate this expression: +

    
    +  Load 5 -> x
    +  Load 7 -> y
    +  Add  x,y -> x
    +  Load 4 -> y
    +  Mult x,y -> x
    +  Load 3 -> y
    +  Add x,y -> x
    +
    +

    DirectAnimation uses an expression-based approach to construct more complex media values based on simpler media values and operations working on these values. For example, the expression +

    frontImage*rotation + backImage
    +
    +

    Evaluates to a rotating image overlaying a second image, just like the above expression evaluates to 51. + +

    Just as in number algebra a set of operations and numbers combines to return a result according to certain rules, in DirectAnimation a set of operations on animation and media elements combine to produce interesting interactive, animate and mixed-media content. You can apply many of the concepts of algebra to constructing interesting animation in DirectAnimation. + +

    DirectAnimation has a set of abstract data types, for example, a number behavior (NumberBvr) or a color behavior (ColorBvr). Abstract types are described in terms of the high-level operations they support without exposing implementation or representation details. Since it is typical to have thousands of behaviors in an animation, thinking of behaviors as operations on abstract data types can help make the complexity manageable. Operations create composite behaviors; for example, angle = sin(NumberBvr theta), or redGeo = geo.diffuseColor(ColorBvr red), applies the color constant red to a geometry. + +

    As in algebra, where in an expression such as angle = sin(t* 2*pi/period) t is time, behaviors in DirectAnimation can be time-varying. DirectAnimation generalizes time-varying values beyond numbers. For example, you can construct a time-varying image as follows: +

    
    +ImageBvr image3 = overlay(image1.transform(rotate(localTime)), image2)
    +
    +

    This expression sets image3 to be image1 rotating at one radian per second and overlaying image2. + +

    Behaviors Are Retained +

    Time-varying behaviors in DirectAnimation are retained, in the sense that executing a behavior expression (such as the one in the previous section) constructs a data structure that is retained after the execution concludes. This is unlike traditional number expressions in programming languages where the expression evaluates conclusively into a result at the time of execution. In this respect, DirectAnimation expressions are more like cells in a spreadsheet; they don't execute just once, but are retained and their value changes as their parameters (other behaviors) change. + +

    Using behavior expressions relieves the developer of significant maintenance work. For example, assume you have defined a path behavior (Path2Bvr ) called line and a transformation behavior (Transform2Bvr) called wiggle that is a sinusoidal translation. You can then combine them into a time-varying image behavior (ImageBvr ) called wigglingLine. You can then import an image (perhaps a JPEG from a file) and call it background, and overlay wigglingLine on background. Call this time-varying image myImage. + +

    Now, assume you have imported or synthesized a 3-D cube and assigned it a path to traverse or a rate at which to expand. You can texture the animated cube with myImage and get a cube that is both animated and has an animated texture. Once you have joined the texture to the cube, since this joining is retained, the texturing operation keeps checking the time-varying value of its wiggling line, calculating the result, and applying the new texture to the cube. The programmer constructs the relation between the texture and the cube, and then doesn't need to intervene any further. If, on the other hand, the line is fixed and not wiggling, DirectAnimation is optimized not to calculate texture values over and over and thus saves CPU cycles. +

    Reactive Behaviors +

    There are two key concepts in DirectAnimation: continuous behaviors and events. These are combined into reactive behaviors. A reactive behavior varies continuously with time and reacts to specific events by switching to new behaviors. For example, a ball bouncing (moving on its path) in a room is a continuous behavior. The ball colliding with the wall or floor is an event. + +

    For example, say you have imported two geometries (from two .X files, for example) that are 3-D balls, with radii r1 and r2, separated by a time-varying distance d. You can define a collision event as: + +

    Collide = Predicate(leq(d, add(r1, r2))
    +
    +

    That is, when the distance between the two balls is less than or equal to the sum of their radii, they collide. + +

    This event can be used as follows: +

    bvr1 = until (initial_behavior, Collide, bounce_behavior)
    +
    +

    The until operation constructs a behavior which starts as an initial behavior (such as "parabolic path") until the event occurs, then switches to a bounce behavior. The behavior switched to after the event can be constant (the ball stops) or calculated from parameters at the time of the event (a new path calculated from the ball's position and direction of the two balls at the time of the collision). Thus, until creates a new reactive behavior (bvr1) that is the first behavior until the event occurs, and then becomes the second behavior. + +

    Similarly, it is possible to define an event based on the user selecting one of the balls by pointing and clicking: +

    Grab= andEvent(Pick, leftButtonDown)
    +
    +

    And used as follows: +

    bvr2= until(parabolic_path_behavior, Grab, follow_mouse_position_behavior)
    +
    +

    Or you can make the ball explode on either event as follows: +

    Explosion = orEvent(Collide, Grab)
    +Explosion_Bvr = until(parabolic_path_behavior, Explosion, flying_ball_fragments_behavior)
    +
    +

    DirectAnimation supports both arrays and tuples. An array is a homogeneous list of behaviors (behaviors that are all of the same type, such as all colors or all images). A tuple is a heterogeneous list of behaviors (behaviors that can be different, such as a color behavior and an image behavior). Tuples are especially useful for grouping behaviors that all switch at the same event. For example: +

    Synch_tuple = until(tuple1, event, tuple2)
    +
    +

    This helps to synchronize the switching of different behaviors at one event. + +

    Interactive Versus Reactive Behaviors +

    Reactivity is the notion of switching from one behavior to another based on some event. Interactivity is the notion of user input and how it influences the progression of the animation. Events can be based on user input (such as a button press) or they can be synthetic (based on computations, such as the collision event discussed previously). User input can be in the form of an event or it can be in the form of a continuous behavior such as moving the mouse cursor. For example, a user can drag the ball with a mouse to give it continuous motion, or click on the ball and stop it with an event. Both plain behaviors and events can be either interactive or computed (synthetically generated). +

    Media Graphs +

    DirectAnimation supports rich operations on media types that result in expressions producing composite media values. These expressions construct retained structures that are called a media graph that operates on time-varying entities. Media graphs are akin to scene graphs in 3-D graphics systems, but they differ in that they are mixed-media based and contain combinations of behaviors, events, and user input. User input (as both continuous behaviors and events) feeds into constructed media graphs, which in turn produce visual and audible media behaviors that get presented through a display and speakers. + + +

    Media Files Supported by DirectAnimation

    +

    DirectAnimation supports the following media file types: +

    • 3-D images: .wrl and .x files +
    • 2-D images: .gif, .png, .jpg, and .bmp files +
    • Video: .avi, .mpg, .mpeg, .mpv, .mp2, .mpe, .mov, and .qt files +
    • Audio: .mid and .wav files +
    +

    DirectAnimation supports all the audio and video file types supported in DirectShow. If the user has a DirectShow filter installed for a particular format, such as DV or Line 21 (for closed captions), then this format will also be supported. + + + +

    Scripting

    +

    The DirectAnimation scripting interfaces make it easy to use DirectAnimation from an HTML environment. The library provides a set of methods for animating multimedia elements such as images, sprites, movies, sound as well as 2-D and 3-D objects. It includes support for animation paths, rotations, and other transformations. A timeline sequencing feature makes it possible to build lifelike animations using simple components as modular building blocks. +

    The library works in cooperation with the DirectAnimation integrated-media control (DAViewerControl). Library calls are made through a scripting language, such as JScript or VBScript, to construct an animation and play it in the Dynamic HTML compositing space. +

    Typically, you declare your DAViewerControl object as shown in the following JScript sample. The object's name can be anything. Here it is DAControl. The CLSID must be as shown: +

    
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAControl"
    +        STYLE="position:absolute; left:10; top:10;width:500;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +<SCRIPT LANGUAGE="JScript">
    +<!--
    +   m = DAControl.PixelLibrary;
    +   ...
    +//-->
    +</SCRIPT>
    +
    +

    The variable "m" is shorthand for the DAStatics Library. Every function and property that is in that library needs to be preceded by an "m" so the interpreter knows where to find them. For example: +

    
    +  myImage = m.SolidColorImage(m.Red);
    +
    +

    In this example, SolidColorImage is a DAStatics function that creates a DAImage object, and Red is a DAStatics property that defines the color red. +

    Once you have constructed the renderable media type (an image or sound), you tell the DAViewerControl object what to display, as shown in the following JScript code: +

    
    +   DAControl.Image = myImage;
    +   DAControl.Sound = mySound;
    +
    +

    Then tell the object to start the model with the Start subroutine, as shown in the following JScript code: +

    
    +   DAControl.Start();
    +
    +

    The DAViewerControl has the CLSID B6FFC24C-7E13-11D0-9B47-00C04FC2F51D and is a windowless control, so it can be used with Dynamic HTML, and it can be used over or under other objects on the screen. DirectAnimation also provides the more traditional windowed control (class DAViewerControlWindowed) with the CLSID 69AD90EF-1C20-11D1-8801-00C04FC29D46. If you are working in a traditional environment, such as Visual Basic, it is recommended that you use the windowed control. + + +

    The Statics Class

    +

    The DAStatics class (in Java, the com.ms.dxmedia.Statics class) collects all the static functions and constants provided by the other classes and makes them available as static methods on the DAStatics (Java Statics class. In scripting languages, this means all the static functions and constants are available through the control object. For example: +

    
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAControl"
    +        STYLE="position:absolute; left:10; top:10;width:500;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +<SCRIPT LANGUAGE="JScript">
    +<!--
    +   m = DAControl.PixelLibrary;
    +   ...
    +//-->
    +</SCRIPT>
    +
    +

    After this declaration, every function, property, and constant that is in the DAStatics library needs to be preceded by an "m" so the interpreter knows where to find them. For example: +

    
    +  myImage = m.SolidColorImage(m.Red);
    +
    +

    In Java, all of the static methods in the Statics library become available without qualification. For example: +

    
    +ImageBvr im = solidColorImage(blue);
    +
    +

    If programmers want to write DirectAnimation code outside of a Model class and not have to qualify their calls to static methods, they can create their own class that extends the DAStatics class. If this is not feasible (because the class already extends another class) then explicit name qualifications are required. + + + +

    Naming Conventions in DirectAnimation

    +

    This section discusses the naming conventions used in the COM API, which are exposed to JScript and VBScript users. In COM and thus in scripting when two similar methods differ only in the type of at least one of their parameters, then these two methods must have different names. This is in contrast to other languages such as Java and C++, which make it possible to use the same method name in such a case. For this reason, in the Scripting Reference you'll find different variations of essentially the same method, with slightly adapted names. The different suffixes that are used are as follows: +

    +

    Anim Naming Convention +

    The functions with Anim in the name, such as Point2Anim, are counterparts of the non-Anim versions, such as Point2. The difference is that the Anim versions take time-varying parameters, and produce animated results. Functions with Anim take animated parameters of type DANumber or DAString. Functions without Anim take parameters that are doubles, integers, and regular strings. For example the following two statements are equivalent: +

    
    +   M = DAControl.PixelLibrary;
    +   P1 = m.Point2(34, 100);
    +   P2 = m.Point2Anim(m.DANumber(34), m.DANumber(100));
    +
    +

    (Note that DANumber(x) converts the regular number x into a number behavior.) +

    Since the second form is longer, what is its value? It is necessary if you want to construct a time varying point. For example: +

    
    +   //constructs a number that varies between 34 and 50 in 3 secs.
    +   xNum = m.SlowInSlowOut(34, 50, 3, 0);	
    +   // constructs a point that travels on the Y = 100 line, between the two X values in 3 secs.
    +   P2 = m.Point2Anim(xNum, m.DANumber(100));
    +
    +

    P2 is a time-varying point that can be used to build other time-varying entities. For example, it can be used as a parameter to Translate2Point. Note that in cases where there is no non-Anim version of a certain function then the Anim suffix is omitted even if the function's parameters are time-varying, as is the case with Translate2Point. + +

    Rate Naming Convention +

    Sometimes to construct time-varying values it is easier to specify the rate of change of the value than to specify the value itself. DirectAnimation provides variations to functions that accept rate-of-change parameters as a convenience. For example: +

    
    +   RotXf = m.Rotate2Rate(Math.PI/3);
    +
    +

    This code constructs a time varying 2-D rotation of PI/3 per second, and is equivalent to: +

    
    +   RotXf = m.Rotate2Anim(m.Mul(m.LocalTime, m.DANumber(Math.PI/3)));
    +
    +

    Note that Mul is for multiplying two DANumbers together, and LocalTime is time, which increases by one unit per second. + +

    Degrees Naming Convention +

    Methods with the Degrees suffix take their angle parameters in degrees as opposed to radians. These are, again, convenience functions that spare the user from doing the conversion explicitly, if the user chooses to specify angle parameters in degrees. For example, consider the following statement with radian parameters: +

    
    +   RotXf = m.Rotate2Rate(Math.PI/3);
    +
    +

    This can be expressed with degrees as: +

    
    +   RotXf = m.Rotate2RateDegrees(60);
    +
    +

    Viewing DirectAnimation Functions in Visual Basic

    +

    To view the DirectAnimation library functions in Visual Basic, follow these steps: +

    1. Install DirectAnimation. +
    2. In Visual Basic, choose Components from the Project menu. A Components dialog box appears. +
    3. On the Controls tab, check the box next to DirectAnimation Library, and click the OK button. The DAViewerControl will appear as a choice in the Toolbox. +
    4. Click on the control in the Toolbox, then draw the control onto a form. +
    5. Choose Object Browser from the View menu. The object browser appears. +
    6. At the top left of the object browser (where it says All Libraries), choose DirectAnimationCtl from the drop-down list. +
    7. Click a class or interface to display its functions. +
    8. Click a function to display its Visual Basic syntax (at the bottom of the object browser). +
    +

    A Simple JScript Example

    +

    The following code creates a red oval and spins it around. To create this JScript example, follows these steps: +

    1. Declare the DAViewerControl windowless control with an <OBJECT> tag. +

      +You can use any name for the control. You can set the control's position and size on the HTML page by specifying the value of the left position, the value of the top position, and the height and width of the control. You can also specify whether the windowless control appears underneath other images and text on the page, by specifying z-index: -1. +

      <OBJECT ID="DAControl"
      +  STYLE="position:absolute; left:30%; top:100;width:300;height:300;z-index: -1" 
      +  CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
      +</OBJECT>
      +
      +
    2. In the scripting section of your HTML file, declare a DAStatics library object (m in the example below) and attach it to either the PixelLibrary or MeterLibrary. +
      
      +  m = DAControl.PixelLibrary;
      +
      +
    3. Access functions and subroutines in the DAStatics library through the object (m in the example below) to create or import your media types (such as images, movies, and sound) and animate them. +
      
      +  fillImg = m.SolidColorImage(m.Red);
      +
      +
    4. Set the media to be displayed as a property of the DAViewerControl object, either the Image property or Sound property. +
      
      +  DAControl.Image = finalImg; 
      +
      +
    5. Invoke rendering of the control with Start(). Whatever Image property or Sound property the DAViewerControl object has when started determines what will be rendered. +
      
      +  DAControl.Start()
      +
      +
    +

    Click the Show button to display the JScript example. To see the code, right-click the title "Simple Sample" and choose View Source from the shortcut menu. + +

    +

    You can add interaction to this sample by changing the code to respond to a user-initiated event. You can make an image red until the left mouse button is clicked, then turn it green with the following statement: +

    
    +  fillImg = m.Until(m.SolidColorImage(m.Red), m.LeftButtonDown, m.SolidColorImage(m.Green));
    +
    +

    The Until function causes fillImg to be red until the LeftButtonDown event occurs, then turns fillImg green. + + + +

    A Simple Java Example

    +

    The following "Hello, World" example demonstrates some of the basic steps involved in developing a DirectAnimation application. The first step uses DirectAnimation for Java to construct an applet that, when displayed, results in a rendered text string that says "Hello, World." There is no animation and no interaction. +

    
    +import com.ms.dxmedia.*;
    +public class MyModel extends Model {
    +  public void createModel(BvrsToRun blist) {
    +    FontStyleBvr fs = defaultFont.family(toBvr("Arial").color(blue).bold();
    +    ImageBvr tx = (toBvr("Hello, World"), fs);
    +    setImage(tx);
    +  }
    +}
    +public class MyApplet extends DXMApplet {
    +  public void init(){
    +     // Always call the superclass's init() first to ensure codeBase is set
    +     super.init();
    +     // Now set the model
    +     setModel(new MyModel());
    +  }
    +}  
    +
    +

    This DirectAnimation applet simply renders a piece of static text. You can make this example more interesting by adding just a few more lines of code. First, however, you must understand how the initial example works. +

    The DirectAnimation Model class includes the abstract createModel method. MyModel subclasses Model and implements createModel to build behaviors; this example has a string behavior and an image behavior. The createModel method then calls the setImage method to set the model's image behavior. + +

    The DirectAnimation ImageBvr type is constructed by converting a character string ("Hello, World") into a ImageBvr behavior with the toBvr method. The toBvr method converts the literal string "Hello, World" into an image of the text with the font style specified in the defaultFont method. + +

    Next, MyApplet subclasses the DirectAnimation DXMApplet subclass of the Abstract Windows Toolkit (AWT) Applet class. This initializes its superclass DXMApplet to take an instance of the MyModel class. When the applet is invoked, DirectAnimation builds the model (by invoking createModel) and displays it in the applet. + + + +

    Adding Animation

    +

    A small addition to the previous code causes the text to change color continuously as it is rendered. The MyApplet class doesn't change at all, while the MyModel class is changed to the following: + +

    
    +public class MyModel extends Model {
    +  public void createModel(BvrsToRun blist) {
    +    ColorBvr col = colorHsl(localTime, toBvr(0.5), toBvr(0.5));  
    +    FontStyleBvr fs = defaultFont.family(toBvr("Arial")).color(col).bold();
    +    ImageBvr tx = (toBvr("Hello, World"), fs);
    +    setImage(tx);
    +    
    +  }
    +}
    +
    +

    One line was added to the createModel method. It defines a color, using the colorHsl method. This method allows you to define a color using the Hue, Saturation, Lightness (HSL) model. The colorHsl method takes 0.5 for its saturation and lightness arguments, but uses the built-in behavior called localTime for the hue. The localTime behavior is a time-varying value of type NumberBvr that increases at the rate of one unit per second. Values of all the defined DirectAnimation types are potentially time-varying and interactive. +

    Using localTime in a color-producing method such as colorHsl yields a time-varying color. Using this time-varying color as an argument in the font style color(col) method yields a time-varying font color. Attaching the time-varying color value to text that is converted into an image produces a time-varying image. Because setImage now sets a time-varying image, the result of this code is an image that is animated. +

    Note that the entire applet is as you see it. No other methods are required and, in particular, there is no need for a frame loop, even though the applet is displaying an animation. For programmers who have been using the awt.Graphics package to do animation, this means you do not need to worry about threads, while() loops, or repainting the screen. + +

    Adding Simple Interaction

    +

    The next step is to add some simple interactivity. The new version of MyModel, listed below, uses the time-varying color until the left mouse button is pressed. It then changes the color to red. +

    
    +public class MyModel extends Model {
    +  public void createModel(BvrsToRun blist) {
    +    ColorBvr col = colorHsl(localTime, toBvr(0.5), toBvr(0.5));  
    +    ColorBvr mouseCol = (ColorBvr)until(col, leftButtonDown, red);
    +    FontStyleBvr fs = defaultFont.family(toBvr("Arial")).color(mouseCol).bold();
    +    ImageBvr tx = (toBvr("Hello, World"), fs);
    +    setImage(tx);
    +  }
    +}
    +
    +

    A single line of code adds the ability to be respond to the mouse: +

    
    +until(col, leftButtonDown, red);
    +
    +

    This expression produces a color behavior that is initially col and remains so until the leftButtonDown event occurs. When this happens, col changes to red. There is still no need to provide a frameloop. + + + In addition, there is no need to provide an event detection/response loop (to wait for the leftButtonDown), because this is dealt with explicitly in the implementation of the until method. +

    As this sample shows, time-varying, interactive behaviors are constructed out of media data types and operations. The DirectAnimation run-time system then takes on the task of animation, event detection, and media presentation. + + +

    Coordinates in DirectAnimation

    +

    The DirectAnimation API uses continuous temporal and spatial 2-D and 3-D coordinate systems. The basic unit of time is the second. The basic unit of space is the meter. The x-axis is the horizontal axis, increasing to the right. The y-axis is the vertical axis, increasing upward. Three-dimensional coordinates are y-axis up, positive z-axis near, and negative z-axis far. +

    The following diagram demonstrates these coordinate systems. + +

    Image coordinate systems + + +

    DirectAnimation provides several mechanisms for handling these differences. Fundamentally, the DirectAnimation coordinate system is a meter-based system. When PARAM tags are used to specify all or part of the model, the coordinate system will implicitly be that of HTML. When the library mode of the DirectAnimation control is set to pixel mode the coordinate system is converted from the DirectAnimation default to the pixel convention. With these methods, the scripter can construct models in resolution-independent units. For example, in JScript: +

    
    +  m = DAControl.PixelLibrary;
    +
    +

    - or - +

    
    +  m = DAControl.MeterLibrary; 
    +
    +

    This section discusses the following topics: +

    +

    HTML and Pixel Coordinates + +

    HTML uses device pixels as the standard unit of measure with a left-handed coordinate system with the y-axis down and the origin in the upper left corner. When PARAM tags are used to specify animations the coordinate system is that of HTML. The DirectAnimation client controls use a pixel-coordinate system with the y-axis down and the origin in the center of the window. + +

    DirectAnimation is fundamentally a meter-based coordinate system, which is preferred for resolution independent animation. However, DirectAnimation provides the pixel construction mode as a convenience for users who are familiar with the HTML coordinate system and would like their animation coordinates to match that as closely as possible. +

    When using the PixelLibrary (as opposed to the MeterLibrary) the 2-D coordinate system is left handed with the positive Y axis going downward, and has a centered origin (not an origin in the upper-left-corner, as in the HTML coordinate system). See the sample in Samples\DA\JScript\Templates\CoordsAndPath.html for a detailed example of the pixel construction mode. Also, compare the PixelMode.html and MeterMode.html samples in Samples\DA\JScript\Exercises. All 2-D coordinate references such as points, paths, and translation factors in this construction mode are interpreted as pixel-valued. Note that this is a construction mode only, so when you extract information back, like extents, you get them in meters, since these are the units in the internal representation. For advanced animations, the meter mode is strongly recommended, especially since the conversion from meter to HTML coordinate space is a single transform. + + +

    Units +

    The DirectAnimation API tries to ensure that one unit is actually 1 meter in physical space, but variables such as monitor curvature and monitor controls that change the display area prevent complete accuracy. + +

    DirectAnimation provides predefined constants that you can use as multipliers to convert to other units, including cm, foot, inch, meter, mm, and pixel. + + +

    Working with Pixel Values +

    Given that pixel size differs from one display to another and even across different settings of the same display device, DirectAnimation provides a built-in number behavior, pixel, which is the dimension of a pixel in meters. The pixel is a scalar because the pixel is a square. + +

    The pixel constant allows an author to coordinate synthetic imagery precisely with imported bitmaps regardless of the display resolution. + + +

    Continuous Coordinate Systems +

    Continuous coordinate systems, such as those used by DirectAnimation, provide some key advantages. They remove problems of device- and resolution-dependence, allow for more portable content, and provide more flexibility to the implementation. However, continuous coordinate systems do not always meet the needs of programmers. For example, in addition to continuous time, DirectAnimation also provides the mechanism for applications to control frame generation through application-generated time ticks. Similarly, in spatial coordinates, it is generally the case that a programmer who imports a GIF or JPEG file wants it displayed at the same resolution at which it was authored and stored. For this reason, DirectAnimation supports pixels. + +

    Image Coordinate System +

    The image coordinate system is called the image plane. Depending on whether the PixelLibrary or MeterLibrary is used, or if PARAM tags are used, the default unit of measure is pixels or meters, and the coordinate system is in pixel coordinates (origin centered, y down), meter coordinates (origin centered, y up), or HTML coordinates (origin in the upper left, y down). + +

    All image and 2-D geometric primitives live in this same continuous coordinate system. This includes all of the Vector2, Point2, Transform2, Path2, Matte, Text, Montage, and Image values. + +

    On its own, the image plane extends infinitely, with an origin and x- and y-axes. DirectAnimation images are constructed in this abstract coordinate system. However, when it is time to display a DirectAnimation image, a certain section of the infinite plane is mapped on a region of a display device called a viewport, as shown in the following illustration. + +

    Image plane + +

    The programmer decides what the display region or viewport will be. The mapping from the image plane into the viewport is straightforward. The origin of the image plane is mapped to the center of the viewport, and then the mapping happens in like units of measure. For example, if there is a red point 2 centimeters above the origin in the image plane, this point would map to a red pixel 2 centimeters above the center of the viewport. (Note that windowless controls commonly don't occupy their full viewports.) + + +

    Geometry Coordinate System +

    The geometry coordinate system is a 3-D coordinate system of infinite extent where geometric models are specified and transformed. The default unit of measure is the meter. It has an origin and x-, y-, and z-axes. The coordinate system is a right-handed one, as shown in the following illustration. + +

    Geometry coordinate system + +

    The following illustration shows the direction of positive rotation along an axis of rotation (the arrow points in the positive direction). + +

    Positive rotation + +

    DirectAnimation geometric models are constructed in this abstract coordinate system. However, you must have a camera to display a model. The camera projects infinite space into an infinite plane, which is the image plane discussed in the Image Coordinate System section. In other words, the 2-D image plane is the 3-D projection plane, because the result of projecting geometry through a camera is an image. The resulting abstract image is amenable to the same operations and rules as other images, including the display through a viewport. + + +

    Meter-Based Space +

    In a meter-based 2-D-composition space, 3-D models are authored to a certain size in meters, which is to be preserved in all renderings, and images are imported and scaled into a predetermined size, also in meters, independent of the pixel resolution. You can determine how much to scale an image by determining the bounding box of the imported image, comparing the desired size to the bounding box, and using that factor to scale the image. This effectively compensates for pixel size variability. + +

    While this technique has the advantage of being independent of the device resolution, you need to scale images before displaying them. It thus requires more processing than simple pixel blitting and is prone to pixel aliasing. + + +

    Pixel-Based Space +

    In a pixel-based composition space, images are imported and displayed in a pixel-to-pixel mapping onto the screen, which is the traditional method in 2-D sprite systems and content (for example, 2-D sprite-based games and Director content). While the result is device-resolution dependent, there are several benefits. One is the large amount of legacy material written in this method. The reuse of this content requires using this pixel-based space. + +

    In addition, because the pixels are mapped pixel-to-pixel, without any transformations, this method tends to be very fast and avoids pixel aliasing. The 3-D parts must be scaled based on the pixel size, so that when they are projected into the image plane they have consistent proportionality and coordination with the 2-D images. + + +

    Center-Based Positioning +

    When DirectAnimation imports or constructs an image, it is centered on the origin in the image plane. Similarly, when an image is created by rendering text (which takes no coordinates as parameters), it also is centered on the origin. The center of a camera's field of view coincides with the origin of the image plane. This means that scenes, when rendered into images, are centered on the origin. + + + +

    Scripting Timelines Using Duration

    +

    A key concept behind DirectAnimation is the idea of "video editing" or "media timelines." Editing a video sequence and moving a sprite (subimage) along an animation path are conceptually very similar. Both scripted animation, such as that used in multimedia applications, and natural media, such as recorded sound and video, are sequences of clips. Each clip has a local timeline. Each can be used in more than one place on the screen (compositing) or in more than one place in time (sequencing). DirectAnimation uses the term behavior to denote these fundamental building blocks of media presentation. +

    A DirectAnimation behavior is a subsequence of media with its own timeline. You build an animated presentation by sequencing and compositing (overlaying or rendering) the behavior subsequences. +DirectAnimation behaviors support a range of media types. For instance, there are image behaviors that treat video, cel animation, sprite (subimage) animation, and animated line graphics uniformly. There is a sound behavior for mixed, parameterized audio. Animated light behaviors illuminate three dimensional scenes. +

    Timelines are animation fragments of (typically) fixed duration that can be sequenced together to form complex behaviors. Timelines are a flexible mechanism for constructing, manipulating, and running sequences of animation. For example, consider the following JScript code: +

    
    + startPt = m.Point2(25, 50);
    + endPt = m.Point2(150, 50);
    + myPath = m.Line(startPt, endPt);
    + followPath = m.FollowPath(myPath, 5);
    +
    +

    The FollowPath method creates a behavior of fixed duration that represents movement along a geometric path (myPath) that lasts five seconds. There are several ways to create timelines. The most general way is to construct an animation fragment by setting a Duration for a behavior. For example, in the following JScript example, colors are given a duration of 5 seconds: +

    
    +color1 = m.Red.Duration(5);
    +color2 = m.Green.Duration(5);
    +myImage = m.SolidColorImage(m.Sequence(color1, color2));
    +
    +

    In general, you can think of behaviors as animations (movies, sounds, sprite animations, 3-D animations, and so on) that run forever. + +

    Consider the following JScript sample: + +

    +

    This script draws a red circle that moves in a straight line. It starts at the beginning of the line, waits 1 second, and then starts to move. It goes from the beginning of the line to end in 4 seconds. It repeats these actions 3 times and then stops at the end. To view the source code, right-click anywhere on the title "Sequencing" title and select View Source from the menu that appears. All measurements are in pixels, so the code uses the PixelLibrary. Because the control is windowless, the red circle can pass on top of or underneath the button. It passes underneath the button if you specify z-index: -1 in the <STYLE> tag within the <OBJECT> tag, as shown in this example. + + + +

    Arrays and Tuples

    +

    A common way to construct behaviors is to loop through a sequence of other behaviors over time. Examples include flipping through pre-rendered images or a list of colors. DirectAnimation supports this through the DAArray and Java ArrayBvr types. + +

    The following JScript sample constructs a DAArray object from an array and uses the NthAnim function with a time-varying parameter to cycle through the array. Click on the title "Array Sample" and choose View Source to see the source code: + +

    +

    The following Java code constructs an ArrayBvr out of a Java array, and uses the nth method with a time-varying parameter to cycle through that list. +

    
    +ColorBvr[] arr = { red, green, blue, yellow, green, cyan, magenta };
    +ArrayBvr arrBvr = new ArrayBvr(arr);
    +// build an indexer to go from 0 to length - 1, then back to 0, etc.
    +// going at a rate of one unit per second.
    +NumberBvr indexer = mod(localTime, toBvr(arr.length -1));
    +// Use this to index into the ArrayBvr.
    +ColorBvr cyclingCol = (ColorBvr)arrBvr.nth(indexer);
    +
    +

    Note that while nth takes a NumberBvr, it uses the greatest integer value less than the number's value to determine the index. The array's index starts at base 0 and any attempt to index beyond its length generates a run-time error. +

    Tuple behaviors (DATuple and Java TupleBvr) are the same as array behaviors, except that a tuple object can contain behaviors of different types(such as a DAColor and a DAImage), while the behaviors in an array object must all be the same type. Tuple objects are useful for grouping behaviors that all switch at the same event. For example: +

    SynchTuple = m.Until(tuple1, event, tuple2);
    +
    +

    This helps to synchronize many different behaviors to one event. +

    Note that unlike array behaviors, a tuple behavior cannot have an animated index. + +

    URLs and Paths

    +

    + +

    Paths in DirectAnimation are created by building a URL base, and then adding relative paths to the base. For example: +

    
    +  mediaBase = "..\\..\\..\\..\\media\\";
    +  sndBase = mediaBase + "sound\\";
    +  imgBase = mediaBase + "image\\";
    +  geoBase = mediaBase + "geometry\\";
    +
    +  mySnd = m.ImportSound(sndBase + "clock1.mp2").Sound;
    +  myImage = m.ImportImage(imgBase + "bird.gif");
    +  cubeGeo = m.ImportGeometry(geoBase + "cube.x");
    +
    +

    When you install the DirectX Media SDK, geometry, image, and sound files are installed by default in DXMedia\Media\geometry, DXMedia\Media\image, and DXMedia\Media\sound directories, respectively. Your path should be the relative path to your media files from where your HTML file resides. +

    Alternatively, you can specify the URL absolutely. For example: +

    
    + mySnd = m.ImportSound("file://c:/dxmedia/media/sound/clock1.mp2").Sound;
    + myImage = m.ImportImage("file://c:/dxmedia/media/image/bird.gif");
    +
    +

    In Java, a base URL is set for you automatically. When you build a Java applet, the base URL is set by default to the directory from which your class files are loaded. If you are creating an application instead of an applet, the base URL is set by default to the current working directory. You can also set the base URL explicitly with the setImportBase method, as shown in the following Java code: + +

    
    +try {
    +   setImportBase(new URL("file:/c:/dx/dxm/media/image/"));
    +} catch (MalformedURLException exc){
    +   System.out.println("Bad URL - " + exc);
    +  }
    +
    +

    The URL you specify in setImportBase can be any fully-qualified URL. For example: +

    
    +setImportBase(new URL("http:/www.mycompany.com/MediaLib/"));
    +
    +

    To build your full URL relative to the URL base, you retrieve the URL base with the getImportBase method, and then complete your path relative to this base. For example, if your applet was built in the directory C:\Dxm\Samples\DA\Java\MyApp, the following code would set the URL mediaBase to C:\Dxm\Media. + +

    
    +URL mediaBase = buildURL(getImportBase(),"../../../Media/");
    +
    +

    You then use the URL base as shown in the following code: +

    
    +   ImageBvr image1 = importImage(buildURL(mediaBase, "image/apple.gif"));
    +   ImageBvr image2 = importImage(buildURL(mediaBase,"../../MyMediaLibrary/MyImages/peach.gif");
    +
    +

    You can also override the base URL and specify a fully-qualified URL. Note that the URL does not become the default base URL. +

    
    +URL altURL = buildURL(getImportBase(),"file:/c:/dx/dxm/media/image/);
    +URL anotherURL = buildURL(getImportBase(),"http:/www.mycompany/MediaLib/");
    +
    +

    You could then import images as show in the following code: +

    
    +ImageBvr img1 = importImage(buildURL(altURL, "apple.gif"));
    +ImageBvr img2 = importImage(buildURL(anotherURL, "pictures/orange.gif"));
    +
    +

    You can also import from absolute URLs without building a URL base. For example: +

    
    +ImageBvr img1 = importImage(buildURL(getImportBase(), "file:/c:/dx/dxm/media/image/apple.gif"));
    +ImageBvr img2 = importImage(buildURL(getImportBase(), "http:/www.mycompany/MediaLib/pictures/orange.gif"));
    +
    +

    Drawing Surface

    +

    The core DirectAnimation API is based on values and expressions. In contrast, the Drawing Surface API provides an alternative style in which methods are used to set a context and then primitives are rendered based on this context. The context can be saved into a stack and restored. The Drawing Surface API is limited to constructing 2-D vector models, so to get to broader features such as sound, images, and 3-D, use the core API. +

    +You can use the Drawing Surface API in conjunction with the core API. After a 2-D vector model is constructed, it can be rendered into an image and then combined with images based on the core API. In the VBScript sample Runners (\Samples\DA\VBScript\Showcase\Runners.html), the runner model is constructed using the Drawing Surface API, while the animation is constructed using the core API. For basic Drawing Surface samples, see Samples\DA\JScript\Templates\BasicDS.html and Samples\DA\VBScript\Templates\BasicDS.html. + + +

    The DADrawingSurface class uses a style of drawing that depends on a graphics context. This is in contrast to the other DirectAnimation classes that use a constructive approach. The constructive approach combines primitive data types into a more complex model, in a hierarchical fashion. + +

    The graphics context approach is analogous to a pen plotter, where the pen acts as the mechanical extension of a hand and the plotter acts as a piece of paper. To draw something, the pen is directed to a location on the plotter and then draws the shape. Many people find this approach to be more familiar than hierarchical modeling. For example, to draw the sun in the sky, it may seem more obvious to simply draw a yellow circle exactly where you want it, instead of first drawing a circle, then creating a yellow circle, and then, with a transform, creating yet another yellow circle that is now correctly placed. The difference is in the approach rather than in capabilities. + +

    A DADrawingSurface object maintains a graphics state object for 2-D graphics. This state includes attributes such as line style, fill style, border style, font style, and 2-D transformations. The drawing commands (such as Oval and RoundRect are always interpreted in terms of the current state. See DADrawingSurface in the Scripting Reference for details about the subroutines and functions. + +

    To use a DADrawingSurface functions and subroutines, create a DAViewerControl object in your HTML as usual, then use the DAStatics subroutine NewDrawingSurface to create the DADrawingSurface object, as shown in the following JScript code: +

    
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAControl"
    +        STYLE="position:absolute; left:10; top:10;width:450;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +<SCRIPT LANGUAGE="JScript">
    +  m  = DAControl.MeterLibrary;
    +  ds = m.NewDrawingSurface();
    +
    +

    Once you have the DADrawingSurface object ds, you can use its functions and subroutines. For example, the following JScript code draws a line between the specified x and y coordinates. +

    
    +  ds.Line(-0.1,.04, 0.01,.04);
    +  DAControl.Image = ds.Image;
    +  DAControl.Start();
    +
    +</SCRIPT>
    +
    +

    Consider the following JScript sample: + +

    +

    This script draws two static lines and a rotating line, as well as text. To view the source code, right-click anywhere on the title "Drawing Surface" title and select View Source from the menu that appears. + + +

    You can use the Structured Graphics control with the Drawing Surface interface. For example, the following VBScript code uses the Drawing Surface methods with the Structured Graphics control's drawing surface: +

    
    +<OBJECT ID=SG1
    +STYLE="POSITION: absolute; HEIGHT:200;WIDTH:200;TOP:130;LEFT:215;VISIBILITY;VISIBLE; ZINDEX:1" 
    +CLASSID="CLSID:369303C2-D7AC-11d0-89D5-00A0C90833E6">
    +...
    +</OBJECT>
    +<SCRIPT LANGUAGE=VBSCRIPT>
    +...
    +Sub renderNew
    +	Set Lib = SG1.Library
    +	Set DRS = SG1.DrawSurface
    +	Call DRS.LineDashStyle(0)
    +	Call DRS.FillColor(Lib.green)
    +	Call DRS.SecondaryFillColor(Lib.red)
    +	Call DRS.GradientExtent(0,0,200,0)
    +	Call DRS.GradientRolloffPower(1)
    +	Call DRS.FillStyle(9)
    +	Call DRS.Rect(-75,-75,100,100)
    +	SG1.DrawSurface = DRS
    +End Sub
    +</SCRIPT>
    +
    +

    The statement SG1.DrawSurface = DRS resets the Structured Graphics control's drawing surface to what's been created in DRS. + +

    Note on using the DirectAnimation Structured Graphics control with the Drawing Surface interface in the Pixel construction mode: +

    Although the positive y axis goes downward, angles in the arc and pie functions are interpreted as counter-clockwise. For example, a pie shape created by calling PieDegrees with a starting angle of 0 degrees and an ending angle of 90 degrees will be above the x axis (negative y), while a pie created with a starting angle of 0 degrees and an ending angle of -90 degrees will be below the x axis (positive y). + + +

    Splines

    +

    DirectAnimation supports animation splines. These are effectively animation paths for numbers, 2-D points and vectors, and 3-D points and vectors. The paths can be linear, quadratic, or cubic b-splines, both rational and non-rational. In DirectAnimation, an animation spline is constructed by supplying an array of knots, control points, and, possibly, weights (all of which themselves are behaviors and are potentially time varying). This creates either a DANumber, DAPoint2, DAPoint3, DAVector2, or DAVector3 behavior. +

    The CubicBSplinePath function is a form of spline that constructs a 2-D cubic b-spline polynomial path (other forms construct numbers, points and vectors). This path, like any other path, can be stroked as a line, filled by any fill style, or used for extracting a motion path with the FollowPath, FollowPathAngle, and FollowPathAngleUpright +functions. See the JScript sample AnnotatedLogo.html in Samples\DA\JScript\Templates where this spline is used as both the shape of the logo and as an animation path for HTML text in a DIV tag. + +

    You need a knot vector and a list of control elements to construct a spline. The control elements (numbers, points, or vectors) relate intuitively to the shape of the spline, while the knots don't. If you want to construct your spline in terms of control elements and not in terms of the knot vector, chose a uniform knot vector with standard end conditions (interpolate first and last points). This means the first and last knots are repeated d times where d is the degree of the spline, and intermediate knots are 1 unit apart. For example, the following JScript function (used in the sample CoordsAndPaths.html in Samples\DA\JScript\Templates) takes a list of 2-D control points, generates the uniform knot vector automatically, and constructs and returns a CubicBSplinePath. +

    
    +function SimpleSpline(pts) {
    +    // divide by 2 since 2-D coordinates.
    +    numPts = pts.length/2;
    +    // We need 2 more knots (since cubic spline) than control points.
    +    knts = new Array(numPts + 2);
    +    // Set the uniform knots. Note that the knot vector doesn't need
    +    // to start from 0, only the relative spacing between knots is significant.
    +    for (i=2; i < numPts; i++) knts[i] = i;
    +    // first knot must have duplicity 3 (the degree) to interpolate first point
    +    knts[0] = knts[1] = knts[2];
    +    // last knot must have duplicity 3 (the degree) to interpolate last point
    +    knts[numPts+1] = knts[numPts] = knts[numPts-1];
    +    // finally construct and return the spline path.
    +    return(m.cubicBSplinePath(pts, knts));
    +}
    +
    +

    In the absence of a visual authoring tool for creating splines, it may be easiest to create them by using a pencil and paper with a square grid. Draw the X and Y axes and draw the desired spline, then place points that follow the general shape of the spline, starting and ending with the same point that needs to be on the spline. You need to pick either the PixelLibrary or the MeterLibrary. If you use pixels, place the spline points only on the grid points and map each square length to 25 pixels. + + + + + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0029.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0029.HTM new file mode 100644 index 0000000..b05f0fd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0029.HTM @@ -0,0 +1,550 @@ + + +Using Media Behaviors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Using Media Behaviors +DirectAnimation Animated Header --Using Media Behaviors* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: The Basics
    +*Next Topic: Using Behaviors
    +

    +

    +

    Using Media Behaviors

    +
    +

    This section describes DirectAnimation media behaviors and how to use them. Behaviors that are rendered for presentation to the user are called media behaviors and include 2-D image behaviors (the DAImage class and Java ImageBvr class), 3-D geometry behaviors (the DAGeometry class and Java GeometryBvr class), and sound behaviors (the DASound class and Java SoundBvr class). Textures are also covered in this section since texturing often involves an image textured onto a geometry. +

    This section contains the following topics: +

    +

    Using Images

    +

    DirectAnimation can construct or import 2-D images (DAImage objects or Java ImageBvr objects), and can perform sequences of operations on any source of animated images in any order. This section discusses the following topics. +

    +

    Empty Images +

    DirectAnimation has two types of empty images. An EmptyImage is the null image. It is transparent and undetectable. A DetectableEmptyImage has infinite extent and is transparent and detectable throughout its extent. The DetectableEmptyImage is useful for specifying hot spots in certain images. An image is said to be tangible at a certain point if it is either detectable or nontransparent at that point. Otherwise, the image at that point is said to be nontangible. + + +

    Constructing Images +

    The following approaches can be used to construct 2-D images. + +

    • Importing bitmaps from GIF, JPEG, and BMP formats. +
    • Drawing lines and polygons. +
    • Rendering 3-D geometry into an image. +
    • Rendering text into an image. +
    • Creating polygons with potentially animated colors at the vertices and smooth color interpolation between vertices (gradient fills). +
    • Combining two images. +
    • Giving images an explicit Z-order in montages. +
    +

    This section includes the following: +

    +

    Importing Images +

    A basic way to create images is to import bitmaps represented in commonly used formats. This provides good leverage from the many image-authoring tools that currently exist. +

    The following JScript code shows how to import an image: +

    
    + mediaBase = "..\\..\\..\\..\\media\\";
    + imgBase = mediaBase + "image\\";
    + myImage = m.ImportImage(imgBase + "bird.gif");
    +
    +

    The following Java code shows how to import an image: + +

    
    +   //Create a URL base
    +   URL imageBase = buildURL(getImportBase(),"file:/c:/DxM/Media/image");
    +   // Create an image behavior by importing an image file
    +   ImageBvr img = importImage(buildURL(imageBase, "picture.jpg"));
    +
    +

    DirectAnimation supports the importation of bitmaps in the .jpg, .gif, and .bmp formats. The string reference to the image can be any valid URL. Importing an image has the following results. + +

    • The bitmap is imported and returned to the user as a behavior of type DAImage (or the Java type ImageBvr). +
    • The image is centered on the origin (0,0). +
    • Only the bitmap portion of the image is detectable. +
    • When displayed, the image will map to the display window in a one-to-one pixel correspondence with the bitmap in the file from which it was read. This is true provided the image has not been scaled, sheared, or rotated, although translations are acceptable. +
    • A bounding-box (which you can extract with the BoundingBox function or Java boundingBox method) surrounds the tangible region of the image and is measured in meters. +
    +

    The relationship between pixels and meters changes depending on the display resolution. While one display might have a ratio of 18,000 pixels per meter, another display might have a ratio of 22,000 per meter. This means that the bounding box returned for an imported image varies depending on the specific display resolution. + +

    There are ways to work around the device dependency of imported bitmaps. They involve scaling the bitmap in a device-dependent way so that the resultant image size is of some fixed, desired value across the different device resolutions. See +Meter-Based Space for a description. + +

    Creating Images +

    You can create several kinds of 2-D images: solid color, lines, text, geometric images, gradient filled images, and montages. For a discussion of geometric images, see Using Geometries. +

    This section discusses the following: +

    +

    One of the simplest images to construct is a solid color image, as shown in the following example. + +

    
    +	im = m.solidColorImage(m.Blue);
    +
    +

    This results in an infinite-extent image with the DAColor behavior Blue. Typically, such an image is cropped or clipped before being used. Solid color images are commonly used to obtain solid-colored polygons or as viewport backgrounds, where the color can be time-varying. + + +

    Hatch Filled Boxes +

    You can also construct images by creating hatch marks in boxes, as shown in the following example with HatchCross: +

    
    +   im = m.HatchCross(m.Green, 0.2);
    +
    +
    +

    Text +

    You can construct images by rendering text, as shown in the following example with StringImageAnim and StringImage: + +

    
    +  myText = "This is the default font style.";
    +  defaultFS = m.DefaultFont;
    +  myTextImage = m.StringImage(myText, defaultFS);
    +
    +

    The text, which can have attributes such as font type, color, and style (bold or italic), is rendered into an image with its extent centered on the origin. By default, the text's color is black, its font family is Times-Roman, its size is 12 points, and it is neither bold nor italic. +

    You can set the text attributes and where the text is displayed. The following code sample renders bold, red text to the screen centered on position posX, posY. + + +

    
    +   im = m.TextImage("Hello, World!", m.Font("Arial", 10, m.Red).Bold;
    +   im2 = im.Transform(m.Translate2(posX, posY));
    +
    +

    Gradient Fill Images +

    Gradient fills provide a very compact form of color images, where regions are filled with smoothly interpolated colors between specified colors at given vertices. For example, you can construct an image from a gradient-filled square, as shown in the following example with GradientSquare: +

    
    +   im = m.GradientSquare(m.Red, m.Green, m.Blue, m.Yellow);
    +
    +

    You can obtain the most general form of a gradient fill through the DAStatics function GradientPolygon(pts, colors), + + + + which specifies an array of points and a corresponding array of colors. The arrays specify a triangular mesh with one color per vertex. The resultant image is based on a linear interpolation of the colors across each triangle in the RGB color space. Although interpolation in other color spaces might be desired, DirectAnimation maps this CPU-intensive operation to hardware, which currently performs the interpolation only in RGB. + +

    Other more specialized forms of gradient fills, which are essentially shortcuts based on the general form described in this section, include the following DAStatics methods: + +

    • GradientSquare(color1, color2, color3, color4), which generates a unit square centered on the origin and with dimensions of 1 unit. The four colors are averaged into a color at the intersection of the diagonals, and then the four triangles delineated by the diagonals have their vertex colors interpolated. + +
    • GradientHorizontalAnim(start, stop, power)and GradientHorizontal(start, stop, power), which create an image that smoothly interpolates between the start and stop colors. Colors start on the left and go toward the right, based on the power specified by power. +
    +

    Rendering Geometry into an Image +

    You can construct 2-D images by rendering 3-D images (geometries) into two dimensions, as shown in the following example. + +

    
    +   Geo = m.ImportGeometry("cube.x");
    +   Camera =  m.PerspectiveCamera(projPointNum, maxZNum);
    +   Img = Geo.Render(Camera);
    +
    +
    +

    Note that the Camera parameters must be calculated from the size of the geometry and the display viewport. + + +

    Montages +

    An image can be the rendering of a montage (DAMontage) object which consists of a group of DAImage objects, each with a number that indicates its z-order in the list. The ImageMontage(Image, z-order) and +ImageMontageAnim(Image, z-order) functions can be used to add images to a montage. The z-order determines how the images will overlay each other. Images with larger z-values are always on top (in front) of images with smaller z-values. If the z-order number is animated (a DANumber object), the order in which the images are layered changes with time. Montages are ideal for situations where the layering of the different images is dynamic. + + +

    Operations on Images +

    The set of DirectAnimation operations can generate new and more complex images from given images. Also, some of these operations generate useful data, such as the bounding-box around a given image. + +

    The operations for composing animated 2-D images include the following: + +

    • Overlaying animated images. +
    • Polygonal clipping of animated images. +
    • Transformations such as scale, rotate, shear, and translate. +
    • Animated tiling of animated images into a larger animated image. +
    • Applying an animated transparency to an animated image. +
    • Applying an animated image as an animated texture map. +
    • Creating a 2-D animation along a spline. +
    +

    You can perform any sequence of the above operations on any source of animated images in any order. + + +

    Transformations +

    You can obtain a transformed version of an image by applying the Transform(xf)method, where xf is of type DATransform2 and can be an arbitrary 2-D affine transform. The DATransform2 type has operations for constructing scales, translations, rotations, and shears from basic parameters such as DANumber objects and DAVector2 objects. You also can construct transforms based on 2 × 3 matrices. Additional operations can compose transforms, obtain their inverses, and check whether they are singular. + +

    You can use combinations of time-varying shears, scales, and translations to construct animation from a single image, for example, to move a sprite over a background image. + +

    Using Geometries

    +

    In DirectAnimation, you can construct or import 3-D graphics (DAGeometry objects), and perform sequences of operations on any source of animated images in any order. + +

    This section discusses the following topics. +

    +

    Constructing Geometries +

    The simplest way to construct a geometry behavior is to import a geometry from a .wrl or .X formatted file by using ImportGeometryAsync or ImportGeometry(URL). You can also augment geometry with lights, including ambient, directional, point, and spot lights. You can attach a sound source to a geometry, which is used to give 3-D spatial characteristics to a sound by embedding it in other geometric models. Finally, EmptyGeometry is a constant of the GeometryBvr type and is empty. + +

    DAGeometry objects (and Java GeometryBvr objects)can be: +

    • Given an opacity attribute. +
    • Textured with an image. +
    • Given diffuse attributes with color parameters. +
    +

    All of these attributes can vary with time. + + +

    Operations on Geometries +

    The operations for composing 3-D geometric animations include: + +

    • Aggregating animated 3-D geometry. You can combine two geometry values with the union operation. +
    • Applying animated images as animated textures. +
    • Applying animated transparency and color attributes. +
    • Transformations such as scale, rotate, shear, and translate. +
    • Projection with animated perspective or parallel cameras to an animated image. +
    • Animating 3-D attributes using splines (B-spline format). +
    +

    You can perform any sequence of the preceding operations on any source of animated geometry in any order. + + +

    Rendering Geometries into Images

    +

    DirectAnimation uses a camera to project a 3-D model (a DAGeometry object) into a 2-D image (an DAImage object) with the DAGeometry function render. + +

    Using Direct3-D as the underlying 3-D mechanism, the Render operation renders/projects a geometry through a camera. + +

    DirectAnimation supports two cameras: the PerspectiveCameraAnim (and PerspectiveCamera) type for perspective projection, and the ParallelCameraAnim (and ParallelCamera) type for parallel projection. + +

    These cameras consist of the following three elements: + +

    • The image plane, which is the XY plane. +
    • A near clip plane that is parallel to the XY plane. +
    • A projection point for PerspectiveCamera that lies on the z-axis, and a projection direction for ParallelCamera) that is in the z-direction. + +
    +

    Rendering involves projecting the geometry located on the side of the near plane opposite the projection point into an image on the image plane. The resultant image extends infinitely. If you are interested in only a section of the image, you must use 2-D operations such as Crop or Clip on the image to extract that section. +

    The following figure shows the relationship between the projection point, the near clip plane, and the image plane. + +

    Projection + +

    DirectAnimation cameras have an origin at (0,0,0) that can be transformed. Such transformations affect the placement of the projection point, the near clip plane, and the image plane. You can use translation and rotation for positioning the camera relative to the geometric model being projected. + +

    You can use the x- and y- scales to zoom in or out in relation to the rendered model. Increasing the XY scale results in a zoom out (the rendered image shrinks), while decreasing the XY scale results in a zoom in (the rendered image grows). Control the perspective effect by changing the distance of the projection point along the positive z-axis in relation to the origin (that is, the image plane). The closer the projection point is to the projected object, the more pronounced the perspective effect becomes. + + +

    Applying Textures

    +

    Just as you can project a 3-D object (a DAGeometry object) as a 2-D image (an DAImage object) through a camera, you can apply a 2-D image as a texture to a 3-D object through texture mapping. + +

    The DAGeometry Texture function takes an image and an existing geometry, and returns a geometry textured with that image. Because images and geometries are such rich data types, this simple texture method is extremely powerful. The following example shows how to apply a texture to an imported sphere. + +

    
    +    Geo = m.ImportGeometry("sphere.wrl");
    +    Marble = m.ImportImage("image/marble.jpg"));
    +    MarbledSphere =  Geo.Texture(Marble);
    +
    +

    Often a geometry is constructed by importing an existing geometry file. These files usually have 2-D texture coordinates associated with the vertices, generally ranging from (0,0) to (1,1). When these geometries are texture-mapped with images, the texture coordinates are mapped to the identical image coordinates. + +

    Thus, texture map coordinates of (0.3, 0.7) in the geometry map directly to the (0.3, 0.7) point in texture image coordinate space. + +

    The correspondence between texture coordinate systems and image coordinate systems is simple, but also powerful and flexible. Consider the task of making an image wiggle along the first dimension as a texture on a cube. You can achieve this by texture mapping a horizontally wiggling image onto a static cube, as shown in the following example. + +

    
    +   WiggleTexture = OrigTexture.Transform(m.Translate2(m.Sin(m.LocalTime), 0));
    +   NewCube = OldCube.Texture(WiggleTexture);
    +
    +

    If you want to infinitely tile a small texture onto a geometry, you can create a tiled image using the DAImage Tile function, then use that resultant image as a texture. + +

    Using Sound

    +

    The DASound object and the Java SoundBvr behavior class implement sound in DirectAnimation. You can import sound from many audio formats, including WAV, MIDI, and MP2 files, or synthesize sound using built-in synthesizer sound sources. You can mix different sounds even if they originated from files of different audio formats. You can also spatialize sound by embedding sounds in 3-D objects and rendering them with a microphone (DAMicrophone or MicrophoneBvr). + +

    Currently, up to two channels are supported for sound in DirectAnimation. Sound also has infinite resolution and each sound wave is continuous, which means that in the abstract model there are no discrete sample values. + +

    This section gives an overview of the following topics: +

    +

    Constructing Sound +

    You can import sound from a file in the WAV, MIDI, and MP2 formats with the DAStatics functions ImportSound and ImportSoundAsync, or with the Java method importSound. +

    For example, to import and play a sound in JScript, you can use the following code: +

    
    +  m = DAControl.PixelLibrary;
    +  mySound = m.ImportSound("file://c:/dxmedia/media/sound/clock1.mp2").Sound;
    +  DAControl.Sound = mySound.Loop();
    +
    +

    The ImportSound function returns a DAImportationResult object. To return a DASound object you access the Sound property of the DAImportationResult object by appending ".Sound". + +

    If you use the Java SoundBvr method importSound(URL, length), the length of the imported sound, in seconds, is returned as the length parameter. For example: +

    
    +URL soundBase = buildURL(getImportBase(), "file:/c:/dxmedia/media/sound/");
    +NumberBvr length[] = new NumberBvr[1];
    +SoundBvr snd = importSound(buildURL(soundBase,"earth.wav"), length);
    +
    +

    You can then use the length parameter as follows: +

    
    +SoundBvr twoSounds = (SoundBvr)until(snd, timer(length[0]), anotherSound);
    +
    +

    If you are not interested in the length, you can set the length to NULL. + + +

    DirectAnimation currently has an internal standard for audio format. That format is a dynamic range of 16 bits and a sampling rate of of 22,050 Hz. For best results, you should import audio files with this format because DirectAnimation will convert the files to its internal standard, which may result in degradation if the files are not in the same format. + +

    You can also synthesize sound. As an example, you can mix multiple sine waves. Each sine wave can have different attributes, so the resulting mix can produce many diverse sounds. The DAStatics property and SoundBvr type sinSynth represents a constant tone. The silence property and type represents complete silence. By default, sinSynth produces a 1 Hz tone which is subaudible, so you need to increase the frequency. For example, the following JScript code produces a tone: +

    
    + sndMidC = m.SinSynth.Rate(440);
    +
    +

    The following Java code also produces a tone. +

    
    +SoundBvr sndMidC = sinSynth.rate(toBvr(440));
    +
    +

    Operations on Sound +

    You can obtain new sounds from other sounds by modifying sound parameters or by mixing. In DirectAnimation, the DASound class functions Loop(), functions GainAnim and Gain, RateAnim and Rate, PhaseAnim and Phase, PanAnim and Pan (and the Java SoundBvr methods loop, gain, rate, phase, and pan, and the DAStatics Mix function, allow creation of complex-sounding animations with few operations. + +

    The Loop() function takes a sound and repeats it continuously. If you have a sound whose composition changes with an event or user interaction and you tell the sound to loop, it will loop on its individual parts, not on the composition. For example, assume you have a sound that is sound1 until the left mouse button is pressed, and then becomes sound2, and you loop this composite sound, as shown in the following JScript code: +

    
    +snd =  m.Until(sound1, m.LeftButtonDown, sound2);
    +loopsnd= snd.Loop();
    +
    +

    The resulting sound is a continuous loop of sound1 until the left mouse button is pressed, then becomes a continuous loop of sound2. It does not loop the composite behavior in that it does not loop sound1 until the button is pressed, then cycle through sound2 once, then go back to playing sound1 until the button is pressed again. + +

    The Gain (volume) function scales the amplitude of the sound wave. The Rate function changes the rate of sample playback; for digital audio and synthesized sounds, this scales the frequency and changes the pitch. For audio in MIDI format, this changes the tempo. The Phase function shifts the point in the sound cycle where the sound starts (all sound is cyclic except pure white noise). For positive phase values, the sound starts later in the sound cycle. For negative values, the sound starts earlier in the sound cycle. The GainAnim, RateAnim, and PhaseAnim parameters are animated. The PanAnim and Pan (balance) functions vary the gain in the left and right channels of a stereo sound. + + + +

    Consider the following JScript sample: + +

    +

    This script draws a red circle that moves in a straight line. The pan parameter varies with the position of a moving ball. To view the source code, right-click anywhere on the title "Panning" title and select View Source from the menu that appears. + + +

    You can perform any sequence of the preceding operations on any source of animated sounds in any order. +

    You can mimic sound effects by using these DASound functions and SoundBvr methods. For example, you can vary the distance between a moving sound source and a listener, by varying the parameter of GainAnim. However, you can achieve much more realistic effects by embedding sounds in a geometry. This also relieves you of the overhead of tracking relative positions and modifying sounds yourself. For example, the following JScript code embeds the sound Snd in the geometry Geo: +

    
    +//Get the sound and the geometry.
    +Snd = m.ImportSound("bird.wav").Sound;
    +Geo = m.ImportGeometry("sphere.x");
    +
    +//Embed the sound in a blank geometry.
    +GeoSound = m.SoundSource(Snd);
    +
    +//Join the sound with the desired geometry.
    +GeoWithSound= m.UnionGeometry(Geo, GeoSound);
    +
    +//Create a microphone at the origin.
    +Mic = m.DefaultMicrophone;
    +
    +//Move the microphone somewhere else.
    +Mic2 = Mic.Transform(m.Translate3(5, 4, 5); 
    +
    +//Render the geometric sound.
    +AmbSound = GeoWithSound.RenderSound(mic2);
    +
    +

    Pan +

    The PanAnim and Pan functions and pan Java method take a sound and move the energy between the left and right channels according to a pan parameter. + +The pan parameter varies between –1 and +1. In the stereo case, negative values of the pan parameter increase the energy sent to the left channel and decrease the energy sent to the right channel. Positive values of the pan parameter increase the energy sent to the right channel and decrease the energy sent to the left channel. A value of 0 balances the energy between the two channels. + + +

    Gain +

    When authoring sounds in DirectAnimation you should use the full 16-bit dynamic range to provide the best resolution, then use the Gain function or Java gain method to scale the volume of the sounds in your animation. +

    For example, the following JScript code varies the gain by the the sin of LocalTime: +

    
    + DAControl.Sound = mySound.Loop().GainAnim(m.Sin(m.LocalTime));
    +
    +

    DirectAnimation assumes all sounds have been normalized to use the full 16-bit dynamic range. Consequently, all sounds seem equally loud. For example, a jet plane and a whisper will sound as though they are the same volume. Sounds can be prescaled with the Gain function. Because there is no way to change the actual gain of a personal computer's amplifier, sounds can only be attenuated. Attenuating a sound is the same as multiplying it by a value between 0 and 1. + +

    In the following Java example, two sounds, which are heard in the left and right channels respectively, will have an equal volume, even though their gains are 1 and 5 because the gain is clamped at 1: +

    
    +    URL soundBase = buildURL(getImportBase(), "file:/c:/DxM/Media/sound/");
    +    SoundBvr snd1 = importSound(buildURL(soundBase, "seagull.wav"), null);
    +    SoundBvr snd2 = importSound(buildURL(soundBase, "surf.wav"), null);
    +	setSound( mix( 
    +		snd1.gain( toBvr( 1  ) ).pan( toBvr( -1 ) ),
    +		snd2.gain( toBvr( 5 ) ).pan( toBvr( 1 ) ) ) );
    +
    +

    In the following example, the sound in the left channel is louder than the sound in the right channel because their gains are 1 and 0.2: + +

    
    +		setSound(mix(
    +		snd1.gain(toBvr(1)).pan(toBvr(-1)),
    +		snd2.gain(toBvr(0.2)).pan(toBvr(1))));
    +
    +

    When sounds are embedded in a geometry and spatialized (using the Java GeometryBvr method soundSource and a MicrophoneBvr), even though gains greater than 1 do not produce louder sounds, they do produce sounds that can be heard at a greater distance by increasing the spatial volume that is at maximum sound (for example, a small sphere of maximum sound or a large sphere of maximum sound). + +

    In particular, loud sounds such as a jet engine should be scaled by a gain greater than 1. Unlike sounds in the real world, the sound only becomes louder as you approach until the gain equals 1. Once this limit is reached, there is no more amplification, and the sound's volume remains constant no matter how much closer you come. + +

    The following diagram shows that, for gains larger than 1, the volume is clamped at 1. +

    Distance vs. gain of 2 + + + +

    Mix +

    The DAStatics Mix function and the Java mix method merge two sound waves into one by adding the corresponding waves. You can mix any sounds, even if they originated from different audio formats. If mixing produces an overflow value, the result is clamped. + + +

    Sound Layering Technique +

    The operations provided by DirectAnimation on DASound objects (and Java SoundBvr objects) enable the generation of dynamic high-quality synthetic sounds from basic sound seeds by parameterization and layering (or mixing). These sounds can be always fresh and responsive to the action in the animation. +

    Traditionally, people have authored loops of compressed sounds for ambient noise. This reduces the size of the audio needed but also produces boring sounds, because a loop soon starts to sound repetitive and unrealistic. With DirectAnimation, you can produce much richer, more realistic sounds, for example, a wave sound that amplifies only when the wave actually breaks on the shore in your animation, a seagull cry that follows the motion of the seagull across the viewport, and wind levels that can be controlled by user interaction (see the Lighthouse sample in Samples\DA\Java\Showcase\Lighthouse.html). + +

    You create synthetic sounds by modifying seed sounds with parameters that are random or are related to your animation. These parameters are usually time-varying. You then mix the results together in a way suitable to your animation. Thus, sound can be as flexibly and synthetically generated as 3-D models are. Simple parts are transformed, colored, or textured and then combined together into more interesting models. + +

    For example, the SinSynth function produces a sine-wave based sound, which can be given a variety of attributes to create a diverse set of synthetically generated sound waves. The Lighthouse sample in Samples\DA\Java\Showcase\Lighthouse.html generates an ocean ambient sound modified by the weather condition parameter. The weather condition parameter is controlled by the user with the slider controls. The Lighthouse sample demonstrates two basic techniques for creating sound. One is the generation of parameterized cyclic sounds and the other is the generation of random periodic sounds (the latter has a silent period between the successive occurrences). + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0030.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0030.HTM new file mode 100644 index 0000000..edaa475 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0030.HTM @@ -0,0 +1,1028 @@ + + +Using Behaviors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Using Behaviors +DirectAnimation Animated Header --Using Behaviors* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Using Media Behaviors
    +*Next Topic: Using Models
    +

    +

    +

    Using Behaviors

    +
    +

    This section describes DirectAnimation behaviors and how to use them. +The basic class in DirectAnimation is a behavior. See DirectAnimation Behaviors, Creating Behaviors, and Displaying Behaviors for an overview of behaviors. +

    The topic Reacting to Events describes reactive and non-reactive behaviors, events, picking, and all forms of the Until function. +

    The topic More Ways to Use Behaviors describes many useful ways to use behaviors, including reaction to events, sequencing, switching, time substitution, integrals and derivatives, and more. + +

    This section contains the following topics: + +

    +

    Microsoft DirectAnimation is composed of several tightly integrated technologies. Different media, such as 2-D, 3-D, video, and audio can be used in a single application, and are all handled in much the same way. Once you learn how to manipulate one kind of media (for example, images), you can apply the same techniques to other media types, such as geometries or sound, which simplifies media integration. + +

    • Enables smooth, high-performance presentation of interactive graphics, sound, and video in both two and three dimensions. +
    • Includes optimized run-time services for animation and media streaming. The run-time services are capable of controlling both the frame and event-generation loops for the application. +
    • Provides media access for network entertainment and communications applications. +
    • Works in an HTML environment. The scripting library provides functions for animating images, sprites, movies, sound, and other 2-D and 3-D objects. The library works in conjunction with the DirectAnimation integrated-media control (DAViewerControl). +
    +

    DirectAnimation Behaviors

    +

    DirectAnimation supports a set of classes and functions (and Java classes and methods) that are used to construct time-varying, interactive behaviors. + +

    DirectAnimation can perform sequences of operations on images, geometry, or sounds. One of the most important features of the media operations available in DirectAnimation is that animations are completely encapsulated and composable. This provides flexibility, expressiveness, and power with a relatively small number of base operations. + +

    Any component of these compositions can be animated and interactive. + +

    The following table summarizes the behaviors available in DirectAnimation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CategoryScripting Class/Java ClassDescription + +
    anyDAArray/ArrayBvrArrays of behaviors that are all the same type. Objects can be selected from the array based on a time-varying index. + +
    2-D/3-DDABbox2/Bbox2Bvr and DABbox3/Bbox3Bvr The DABbox2 and Bbox2Bvr behaviors represent two-dimensional bounding boxes. Extracting a bounding box from an image results in a box that encloses all the tangible parts of the image. +

    The DABbox3 and Bbox3Bvr behaviors represent three-dimensional bounding boxes. Extracting a bounding box from a geometry results in a box that encloses all the tangible parts of the geometry. + +

    logicDABoolean/BooleanBvr Animated TRUE/FALSE values. Traditional Boolean operations such as And, Not, and Or are available. KeyState returns a Boolean object that is true when the specified key is down, and false when the key is up. + +
    2-D/3-DDAColor/ColorBvr Animated color values in an abstract color space. The run time supports all color bit depths. These behaviors can be constructed by supplying three animated numbers (DANumbers or NumberBvrs)that are interpreted as either Red/Green/Blue or as Hue/Saturation/Lightness components. + +
    3-DDACamera/CameraBvrMovie camera to turn a 3-D scene into an animated image. All camera attributes can be animated. The camera is used with the Render function on DAGeometry to project a geometry onto an image. There are two basic types of cameras: one for parallel projection and one for perspective projection. Both types of cameras are oriented so that they gaze in the negative z direction, with positive y considered up. Both types of cameras have a near clipping plane. This plane (a product of Z-buffered rendering) specifies the closest distance at which an object is visible. Objects closer than the near clipping plane cannot be seen. +

    Cameras are manipulated through standard three-dimensional transform operations. These transforms modify the camera characteristics and also position and orient the camera. + + +

    textDAFontStyle/FontStyleBvrSpecifies the font face, size, color, and attributes (such as bold or italic). The functions and methods of these behaviors are similar to the HTML tags specifying the font characteristics. + +
    3-DDAGeometry/GeometryBvr 3-D geometry, the primary 3-D data type. Can be created by importing .wrl or .X files, by applying transformations to existing geometries, by applying material properties to geometries, by combining multiple geometries, by embedding sound into 3-D, by specifying 3-D lights, by applying DAImages and ImageBvrs behaviors as textures, by varying opacity, and so on. +Given a DACamera or CameraBvr, a geometry can be projected onto an image. + +
    2-D/3-DDAImage/ImageBvr Animated images, including cel animation, bitmaps, vector-graphic animations, animated 3-D projections, partially transparent images, and animated textures for 3-D animated geometry. Images can be constructed by importing GIF, BMP, JPEG, and PNG files. Importing a movie (such as an MPEG or AVI file) also constructs an image. Images can be constructed as solid color images, by rendering text into an image, by projecting a 3-D geometry with a camera into an image, by stroking a line with a path behavior, and by creating an image by smoothly varying colors across the face of a polygon. Java AWT Images can also be used to construct a DirectAnimation ImageBvr. +

    Images can also be created by overlaying two existing images, by applying an opacity value to an existing image, by clipping an image to a matte behavior, by cropping an image to a box, by tiling an image, and by applying a DATransform2 or Transform2Bvr to an image. Any image, even if it is time-varying and interactive, can serve as a texture on a DAGeometry or GeometryBvr. + +

    lineDALineStyle/LineStyleBvr, DAEndStyle/EndStyleBvr, DAJoinStyle/JoinStyleBvr, and DADashStyle/DashStyleBvr Specify how lines are drawn. +DALineStyle provides for dashing, line width, line end, and line join styles when a DAPath2 is being stroked into a DAImage. DAEndStyle defines the shape applied to the end of line segments when they are drawn. DAJoinStyle defines the shape of joints between intersecting line segments in a path. DADashStyle defines whether lines are drawn as a continuous stroke or as a sequence of dashes. + + +
    2-DDAMatte/MatteBvrStencils for creating animated cutouts in images. A matte can be constructed by filling in a DAPath2 or Path2Bvr behavior, by constructing it from a text outline, and by performing logical operations (such as union, intersection, and difference) on other mattes. + +
    soundDAMicrophone/MicrophoneBvrUsed to make sounds seem to have been recorded in a 3-D space. This behavior is used with the RenderSound function on a geometry to extract a 3-D volume of sound from that geometry and produce a DASound behavior. + +
    2-DDAMontage/MontageBvrA layered set of animated images with depth ordering, sometimes called 2.5D images. A montage is constructed by providing an image and a potentially time-varying number as the depth value, and by uniting the montages together. The Render function resolves all the depths and constructs a DAImage. + +
    2-DDANumber/NumberBvr +Time-varying numbers. For example, the ColorRgb function takes three static numbers (doubles) as parameters for the red, green, and blue values, while the ColorRgbAnim function takes three potentially time-varying DANumbers as parameters.

    A Java NumberBvr can be constructed by using the toBvr method on a Java number. Many arithmetic methods are available. These include addition, subtraction, multiplication, division, exponentiation, sine, cosine, random-number sequences, integrals, and derivatives. Additionally, the time-varying seeds for animation, LocalTime and GlobalTime +are DANumbers. + +

    2-DDAPath2/Path2Bvr Animated 2-D vector graphics (2-D geometry). These behaviors represent lines (one-dimensional paths) through two-dimensional space. Paths have a direction, and can be open or closed. A path can be constructed as a series of connected line segments, as a B-spline curve, as a concatenation of other paths, or as a 2-D transformation of another path. Closed paths can be filled to create images. + +
    2-DDAPoint2/Point2Bvr, DAVector2/Vector2BvrAnimated 2-D points and directed magnitudes. Both points and vectors can be constructed by supplying animated numbers (DANumbers or NumberBvrs) that can be interpreted either as Cartesian coordinates or polar coordinates. Available operations include subtracting points to yield a vector, adding a vector to a point, determining the distance between points, creating a point from a B-spline, and taking the derivative of either a point or a vector. + +
    3-DDAPoint3/Point3Bvr, DAVector3/Vector3BvrAnimated 3-D points and directed magnitudes. These behaviors are the 3-D analogs of DAPoint2/Point2Bvr and DAVector3/Vector3Bvr behaviors. + + + +
    sound, 3-DDASound/SoundBvrThe main sound data type, which can have animated properties such as gain. Sound can be embedded in a geometry to occupy a 3-D space and the rendered with a microphone. Sound can be created by importing MIDI, WAV, and video files, by applying methods that affect gain, phase, frequency, and pan, or by mixing existing sounds. Also, limited audio synthesis is supported. + + +
    textDAString/StringBvrStrings of characters. The JScript syntax for creating a DAString is: +
    
    +   AnimStr = m.DAString("string");
    +
    +

    StringBvrs can be constructed from Java strings. Simple operations such as concatenation (ConcatString or the Java concat) are available. For example: +

    
    +   MyStr = m.ConcatString("My", " String");
    +
    +
    2-DDATransform2/Transform2BvrAnimated scaling, rotation, shearing, and translation in 2-D. Transformations can be constructed from translations, uniform and non-uniform scales, rotations, 3x2 matrices, and composition of other transforms. + +
    3-DDATransform3/Transform3BvrAnimated scaling, rotation, shearing, and translation in 3-D. These behaviors are the 3-D analogs of DATransform2 and Transform2Bvr. + + +
    anyDATuple/TupleBvrArrays of behaviors that can be different types. Objects can be selected from the list based on an index. + +
    +

    Remember, all attributes of all behavior types can be animated and can react to events. + + +

    Creating Behaviors

    +

    Once you have declared your DAViewerControl object, as shown in the section on Scripting, you assign a variable to the object (attached to either the PixelLibrary or the MeterLibrary, depending on the units you want to use). Through the variable (m in the following example), you access functions and properties in the DAStatics library. You use these functions and properties to construct behavior types. +

    
    +    m = DAViewer.PixelLibrary;
    +    im = m.SolidColorImage(m.Red);
    +
    +

    Compound behaviors are produced by operations that take behaviors and produce new modified behaviors from them, rather than by modifying the original behavior. For example: + +

    
    +   mySound = m.ImportSound("file://c:/dxmedia/media/sound/clock1.mp2").Sound;
    +
    +  // Loop the imported sound with the position-varying pan for 12 seconds, then 
    +  // silence the sound.
    +  DAViewer.Sound = m.Until(mySound.Loop().PanAnim(panFac),m.Timer(12),m.Silence);  
    + 
    +

    Java behavior types are created by declaring a behavior and assigning it a value, as shown in the following code: + +

    
    +     ImageBvr im = solidColorImage(red);
    +
    +

    Compound Java behaviors are produced in the same way as compound scripting behaviors. For example: + +

      
    +      URL geomBase = buildURL(getImportBase(),"file:/c:/DxM/Media/geometry/");
    +      GeometryBvr geom = importGeometry(buildURL(geomBase,"cube.x"));
    +      GeometryBvr geom2 = geom.diffuseColor(red);
    +
    +

    In this case, the original behavior geom is cube. The new behavior geom2 is a red cube. + +

    Alternatively, because each of these methods produces a value, you could combine them into the following statement: + +

    
    +     GeometryBvr geom2 = importGeometry(buildURL(geomBase,"cube.x")).diffuseColor(red);
    +
    +

    Displaying Behaviors

    +

    In DirectAnimation, only sound and image behaviors are actually rendered or displayed. The final animation consists of some combination of image behaviors and sound behaviors. +

    The DAViewerControl class displays DirectAnimation behaviors in an HTML page. Here is an example of how it is specified: +

    
    +
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAViewer"
    +        STYLE="position:absolute; left:10; top:10;width:450;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +
    +

    The actual behavior to be rendered is set as the Image property or Sound property of DAViewerControl. The rendering is invoked with the DAViewerControl subroutine Start(). Whatever Image property or Sound property the DAViewerControl object has when started determines what will be rendered. For example, the following code displays a solid blue screen: +

    
    +   m = DAViewer.MeterLibrary;
    +   DAViewer.Image = m.SolidColorImage(m.Blue);
    +   DAViewer.Start();
    +
    +
    +

    In Java, you must provide an instance of the Model class to view behaviors. The Model class method createModel builds the behaviors to be viewed. +

    Applications override the Model class and implement the createModel method. This method creates the set of behaviors to be displayed and calls the setImage and setSound methods on the image and sound behaviors that are intended to be viewed. +

    The DirectAnimation system is responsible for invoking the createModel method. +

    Behaviors are run as soon as the model starts. + + + +

    The following code shows how to use the Model class to construct a blue image. + +

    public class RedImg extends Model {
    +  // Create the image behavior that will be displayed 
    +  public void createModel(BvrsToRun blist) {
    +    ImageBvr im = solidColorImage(blue);
    +    setImage(im);
    +    }
    +}
    +
    +

    Java behaviors that are not part of the model can also be run when the model is started by calling createModel with the BvrsToRun parameter. For example: + +

    
    +public class OutsideBehavior extends Model {
    +    public void createModel(BvrsToRun blist)) {
    +        ...
    +    }
    +}
    +
    +

    The behaviors in blist will be run when the model is started. + + +

    Adding Behaviors

    + +

    The DAViewerControl displays a DirectAnimation model in an HTML page. The DAViewerControl method, AddBehaviorToRun, adds behaviors to the control that are not specified in the model. When the system starts the model, it retrieves these additional behaviors and runs them with the same start time as the behaviors included in the model. + +

    As an example, consider the following VBScript sample, which displays the local time as a text value.

    +
    
    +<HTML>
    +<BODY>
    +<CENTER><INPUT TYPE="TEXT" NAME="txtInp" VALUE=""></CENTER>
    +<OBJECT ID="DAControl" WIDTH=400 HEIGTH=300
    +CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</HTML>
    +</BODY>
    +
    +<OBJECT ID="DAControl" WIDTH=400 HEIGTH=300
    +CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +
    +<SCRIPT LANGUAGE="VBScript">
    +Sub window_onLoad
    +   Set m = DAControl.MeterLibrary
    +   Set timeVal = m.Localtime
    +   Set timeVal = timeVal.AnimateProperty( "txtInp.value", "VBScript", false, .01 )
    +   DAControl.AddBehaviorToRun( timeVal )
    +   DAControl.Start
    +End Sub
    +</SCRIPT>
    +
    + + + + +

    Reacting to Events

    +

    This section includes the following topics: +

    +

    Non-Reactive Behaviors

    +

    All behaviors can potentially vary with time, react to events, and interact with the user. Non-reactive behaviors are those that are constant or time-varying (but do not react to events). +

    Constant behaviors are not time-varying. In the previous example in Creating Behaviors, the rotated cube used behaviors that were constant. Using the LocalTime behavior value in the Rotate3Degrees method, you can construct a new red cube to spin around the y-axis at a rate of one degree per second, as shown in the following code: +

    
    +mediaBase = "..\\..\\..\\..\\media\\";
    +geoBase = mediaBase + "geometry\\";
    +Geo1 = m.ImportGeometry(geoBase + "cube.x").DiffuseColor(m.Red).Geo2.Transform(m.Rotate3Degrees(m.YVector3, m.LocalTime));
    +
    +
    +

    The behavior value LocalTime (and the Java equivalent localTime)allows animation to be injected into behaviors. It is a number-valued behavior (DANumber or Java NumberBvr) that starts at time 0 and increases at the rate of one unit per second. It can be used as an argument to any behavior-constructing method that takes a number-valued behavior as an argument to construct a time-varying behavior. For example, consider the following statements: +

    
    +Sawtooth = m.Mod(m.LocalTime, 1);
    +MyCol = m.ColorRgb(Sawtooth, 0, 0);
    +
    +

    The first creates a number behavior that goes from 0 to 1, 0 to 1, 0 to 1, and so on, by taking the modulus of the ever-increasing LocalTime value and 1. It then uses this value to create a time-varying color whose red component is that number behavior. +

    Animations constructed using LocalTime are unaffected by fluctuations in the frame rate of the DirectAnimation implementation. This means that the Sawtooth behavior will go from 0 to 1 in a period of 1 second, no matter how many frames are actually generated. This is a very important feature of DirectAnimation because it allows applications to be constructed independently of the hardware on which they will ultimately run. +

    There are other forms of time-varying input, such as MousePosition that can add interactivity to behaviors. The MousePosition (and Java mouseposition) behavior, for example, provides the continuous 2-D world-coordinate position of the mouse. It can be used, for example, as an argument to a translation function for tracking the mouse. + + + +

    Reactive Behaviors

    +

    Non-reactive behaviors change with time but do not change as the result of discrete events. However, being able to change as a result of events (either internal or external) is important for truly useful behaviors, especially in interactive animations. +

    Events are discussed in the section DirectAnimation Events. The general data type for events is DAEvent and the Java DXMEvent. This topic discusses creating behaviors that switch from one behavior to another based on events. + + +

    Events

    +

    DirectAnimation events come from a number of sources, including: + +

    • Predicates. These are time-varying logical expressions (DABoolean objects) that are converted to events. When the expression becomes true, the event is triggered. These are constructed by calling the Predicate function with a (DABoolean object. For example: +
      Event1 = m.Predicate(m.LTE(var1, var2))
      +
      +

      That is, when the var1 becomes less than or equal to var2, Event1 is triggered. +

    • Built-in events. There are a number of built-ins events provided, such as key press events, mouse button events, and events resulting from a pick (hit with the mouse). +
    • Timer events. These are events that trigger after a given amount of time has elapsed. +
    • Application-triggered events. Applications can construct an event, include it as part of a behavior, and then trigger it explicitly through the application, optionally providing event data along with it. +
    • Compound events. These are events that can be constructed from other events. For instance, AndEvent, OrEvent, and NotEvent take events and construct conjunction, disjunction, and negation events respectively. +
    +

    This section gives an overview of the following event topics: +

    +

    Key and Button Events

    +

    Events can be produced when the user presses a mouse button or keyboard key. For example, considering the following JScript code: +

    Bvr1 = m.Until (initial_behavior, m.LeftButtonDown, second_behavior);
    +
    +

    This defines Bvr1 as an initial behavior until the left mouse button is pressed, then Bvr1 becomes the second behavior. +

    You can trigger from an event produced when the user presses a specific key. For example: +

    Bvr2 = m.Until (initial_behavior, m.KeyDown(27), second_behavior);
    +
    +

    This defines Bvr2 as an initial behavior until the ESC key is pressed, then Bvr2 becomes the second behavior. + +

    You can also determine the state (whether it is pressed or not) of a mouse button or key with the LeftButtonState, RightButtonState, and KeyState functions. You can then trigger on that state using the Predicate event, as shown in the following JScript code: +

    Bvr3 = m.Until (initial_behavior, m.Predicate(m.LeftButtonState), second_behavior)
    +
    +

    Timer Events

    +

    DirectAnimation supports the explicit specification of timer events, based upon LocalTime. +For example, the following expression causes a behavior to switch from red to blue two seconds after it starts: +

    m.Until(m.Red, m.Timer(2), m.Blue)
    +
    +

    The value given to timer can be any number-valued behavior. + + + +

    Application-Triggered Events

    +

    Applications often receive events through means other than DirectAnimation. Examples include GUI elements and incoming network data. An application-triggered event is a subclass of the DAEvent type (DXMEvent Java type), and supports an additional trigger method. These events can be constructed with the new operator, placed into reactive behaviors, and triggered at any time by the application. For instance, the following Java example turns a cube from red to blue upon some external application event: + +

    
    +  URL geomBase = buildURL(getImportBase(),"file:/c:/DxM/Media/geometry/");
    +  GeometryBvr cube = importGeometry(buildURL(geomBase,"cube.wrl"));
    +  AppTriggeredEvent appEvent = new AppTriggeredEvent();
    +  ColorBvr col = (ColorBvr)until(red, appEvent, blue);
    +  GeometryBvr coloredCube = cube.diffuseColor(col);
    +//... elsewhere, when the application receives the proper event...
    +appEvent.trigger();
    +//... now coloredCube will turn blue (assuming it's running)
    +
    +

    Note that the trigger method is an immediate method. The trigger occurs when the program executes the statement containing the trigger call. + +

    Compound Events

    +

    Events can be combined in a variety of simple ways. The method AndEvent takes two events and creates a third that occurs only when both constituent events occur simultaneously. The event resulting from OrEvent occurs when either of the constituent events occur (or both occur). The event resulting from NotEvent occurs whenever the constituent event does not occur. + +

    The AndEvent function always produces a pair of event data. Each element of the pair is the event data from one of the constituent events. The OrEvent function produces the event data of whichever event caused OrEvent to trigger. The event data from NotEvent is undefined because an event not occurring doesn't produce any information. + + +

    The AttachData Function

    +

    DirectAnimation events support an AttachData function that takes an event and produces a new event. The new event occurs at the same time as the original event, but its data is now the data that has been specified in the call to AttachData. This allows an application to associate arbitrary client data with an event and know that it will be delivered to the notifier when the event occurs. + +

    This method can be used in conjunction with UntilEx and OrEvent to allow a behavior to switch to one of several new behaviors, depending on which event occurred. For instance, if you want a behavior that is red until the left mouse button is pressed (in which case it turns green) or the right mouse button is pressed (in which case it turns yellow), you could use the following code: + +

    
    +GreenLeft = m.LeftButtonDown.AttachData(m.Green);
    +YellowRight = m.RightButtonDown.AttachData(m.Yellow);
    +MyCol = m.UntilEx(m.Red, m.OrEvent(GreenLeft, YellowRight);
    +
    +

    Because AttachData can take any behavior, the application can associate any type of data with events, rather than only behaviors. + + +

    Event Data

    +

    It is often necessary to know more than that an event triggered. This is why some events also produce data. For instance, a pick event provides information about the location of the intersection. To give applications the ability to access this data, DirectAnimation for Java calls the Notify function. This function creates a new event that occurs when the original event occurs. It then calls the notifier and uses the result as its event data. It is the responsibility of the application to retrieve the necessary data. + +

    Event Data from Picking +

    The pick event returns data that can be accessed through the PickEvent property of the DAPickableResult class or from within an Until or UntilEx function. The data returned is a DAPair behavior whose first element is the intersection point of the event, and whose second element is a vector perpendicular to the surface of the picked object. Both of these pieces of data are supplied in the local coordinate system of the image or geometry used to construct a pickable image object (with the DAImage property Pickable) or pickable geometry object (with the DAGeometry property Pickable). This is needed to enable images and geometries to retain their interactivity independent of the context into which they are embedded. For example, an interactive image that is replicated three times, each time with a different scale, should retain its interactivity in all three contexts. +

    The sample in Samples\DA\VBScript\Showcase\Pick3.html demonstrates picking. + +

    The samples GeometryDrag and ImageDrag in Samples\DA\Java\Templates\ +directory show Java code that creates a geometry and an image that can be picked and, when picked, follows (or is dragged by) the mouse. When released, the geometry or image stays where it was released, waiting for the next pick. Because the event data is returned in the local modeling coordinates of the image itself, the resultant images can be used under any modeling transformation. +

    Because the draggable operation is so common, dragging utilities are provided in the Samples\DA\Java\Utility directory. + +

    Event Detection +

    Descriptions of the Predicate function, which creates an event from a Boolean, might give the impression that this event is fired anytime the event occurs. In general, this is not possible, due to the possibilities of temporal aliasing. Therefore, DirectAnimation places implementation-specific restrictions on the form of Boolean that will successfully and consistently trigger events. For example, the event denoted by m.Predicate(m.EQ(m.Sin(m.LocalTime), 0)) is expected to fire exactly when Sin(LocalTime) is 0. However, in reality, this event will rarely, if ever, fire. This is because of the sample-driven nature of detecting predicate events. If the implementation doesn't sample at exactly the right time, the event will be missed. Thus, applications should use inequality events, such as m.Predicate(m.GTE(m.Sin(m.LocalTime), 0)) to test for events on continuous behaviors. It is this imprecision in sampling events that is the motivation for the specialized timer event. +

    There is a subtlety associated with imprecise sampling. If a notifier is invoked using Notify waiting for the above event, the event time will not generally be the exact time that the event became true. If precise timing is a requirement, the event time should not be used directly. Instead, the inaccuracy must be compensated for in some application-specific manner. + + +

    Picking

    +

    In DirectAnimation the Pickable + property of DAImage and DAGeometry objects provide a simple mechanism by which picking (or hit detection) on images and geometry results in DirectAnimation events. In Java, the same mechanism is supported by the classes PickableImage and PickableGeometry. Applications can use these events as they would any other event. Additionally, information such where on the object the pick occurred is provided with the resulting event data. + +

    The support for image and geometry hit detection is identical. + +

    Hit detection works even when geometry is embedded into an image, and the image is in turn textured onto a geometry. + +

    Images and geometry, even when embedded, retain their interactive nature. + +

    If an application wants to be informed that the mouse is over a particular image, it constructs a DAPickableResult object by invoking the Pickable property on an image or geometry. It can then use the DAPickableResult property PickEvent. If the mouse is directly on top of a pickable image or geometry (without intervening images or geometries) then the event fires. It is possible for a pickable object to appear multiple times in a scene. However, each time the mouse is on top of any of these images, the event occurs. To distinguish multiple uses of an image, and provide separate events based upon separate uses, the application must construct multiple pickable objects. For example: +

    
    +    pim1 = image.Pickable;
    +    pim2 = image.Pickable;
    +
    +

    A Simple Picking Example

    +

    This JScript example demonstrates how to make an image pickable, meaning it reacts to an event when the mouse is within its borders. In this example, the square cycles between blue and red when the mouse is within its borders and the left button is down. Click on the title "Simple Picking Example" and choose View Source to see the source code: + +

    +

    The following simple Java example imports a GIF image and a piece of text rendered on top of the GIF image. The text changes when the mouse is over the GIF image. +

    
    +URL imageBase =buildURL(getImportBase(),"../../Media/image/");
    +ImageBvr gif = importImage(buildURL(imageBase,"picture.gif"));
    +
    +// Grab image, make pickable, grab the event.
    +PickableImage pGif = new PickableImage(gif);
    +DXMEvent ev = pGif.getPickEvent();
    +
    +// Make the string change when mouse is over the image
    +StringBvr str =(StringBvr) until(toBvr("not picked"), ev, 
    +  toBvr("picked"));
    +
    +// Render the string to an image, and overlay on top of the
    +// pickable GIF.
    +ImageBvr  textIm = simpleText(str).render();
    +ImageBvr  result = overlay(textIm, pGif.getImageBvr());
    +
    +

    Note that the pick event occurs when the mouse is directly over the image (and no other detectable images occlude its visibility.) A mouse button press is not required to fire the event. The effect is analogous to an HTML hotspot. To ensure that the event fires only when the mouse button is pressed, use the event constructed by andEvent(leftButtonDown, ev). + + +

    The Until Function

    +

    This section discusses the Until function (Java until method), which allows developers to incorporate interactive elements into their animations. Here is an example of how to create a behavior that is red until the left mouse button is pressed, and then turns to blue: +

    
    +Col = m.Until(m.Red, m.LeftButtonDown, m.Blue);
    +
    +

    In general, Until takes a behavior, an event, and another behavior. It produces a new behavior. This new behavior is the first behavior until the event occurs. It then becomes the second behavior. Because Until takes behaviors and returns a behavior, it can be nested, as the following example demonstrates: +

    
    +Col = m.Until(m.Red, m.LeftButtonDown, 
    +                             m.Until(m.Blue, m.LeftButtonDown, m.Green));
    +
    +

    In this example, the resulting behavior is red until the button is pressed. It is then blue until the button is pressed again, and then it is green. +

    Note that the result is cast to the proper subclass of Behavior, because Until is defined on the Behavior superclass. +

    The previous example could have been written as: +

    
    +Col1 = m.Until(m.Blue, m.LeftButtonDown, m.Green)
    +Col2 = m.Until(m.Red, m.LeftButtonDown, Col1);
    +
    +

    Looking at the example in this form raises the following question: "When the LeftButtonDown event occurs, Col2 changes from red to Col1, but Col1 doesn't change from blue to green. Why not? Both of them appear to be waiting for the LeftButtonDown event, so why doesn't the first occurrence of this event cause them both to change?" +

    The reason the example works properly is because of the way Until works. Consider the following example: +

    
    +b1 = m.Until(b2, ev, b3);
    +
    +

    Behaviors are run automatically by the system when needed. Assume that behavior b1 is started by the system with a start time of t0. This causes b2 to be started at t0 also, and causes the system to start looking for the first occurrence of the event ev after t0. The system does not start behavior b3. When the event does occur (call this time te), the system starts behavior b3 at time te and stops looking for event ev. +

    In DirectAnimation, global time is ever-increasing, but local time for each behavior starts at 0 when the behavior is started. For example, if behavior b3 starts two seconds after b2, it will start with its own local time of 0. +

    Consider the original example: +

    
    +Col1 = m.Until(m.Blue, m.LeftButtonDown, m.Green)
    +Col2 = m.Until(m.Red, m.LeftButtonDown, Col1);
    +
    +

    When Col2 is started, the system looks for the LeftButtonDown event in Col2, but not in Col1. When the Col1 behavior starts, the system looks for the LeftButtonDown event in Col1. + +

    The UntilEx Function

    +

    The UntilEx function (untilEx Java method) takes two parameters, a behavior and an event with a behavior associated with it: UntilEx(InitialBehavior, Event). The resulting behavior will have be the initial behavior until the event happens, then will transition to whatever behavior the event produces. +

    There are several ways to associate a behavior with an event, including the AttachData, Notify, and Snapshot functions (and the Java attachData, notifyEvent, and snapshotEvent methods). +

    The AttachData function allows you to associate data with an event. The data associated with the event can be a behavior. In the following example, the behavior is red until a mouse button is pressed. It then turns either green or yellow, depending on which event happens first. +

    
    +GreenLeft = m.LeftButtonDown.AttachData(m.Green);
    +YellowRight = m.RightButtonDown.AttachData(m.Yellow);
    +MyCol = m.UntilEx(m.Red, m.OrEvent(GreenLeft, YellowRight);
    +
    +

    The Notify function calls the notifier when an event occurs, and uses the result as event data. +

    The Snapshot function takes a behavior as a parameter. When the event to which it's attached occurs, it samples the behavior and returns it as a constant behavior. In the following example, the value of n is LocalTime until the left mouse button is pressed. It then becomes whatever the value of LocalTime was when the event occurred: +

    
    +n=m.Until(m.LocalTime, m.LeftButtonDown.Snapshot(m.LocalTime));
    +
    +

    The untilNotify Method (Java Only)

    +

    The untilNotify method is available only in Java since it is presently the scripting environment does not support notifiers. This method provides a delay mechanism for using event time data to construct the behavior that occurs after the event occurs. At the time of the event, a user-constructed notification method is invoked and passed the current behavior and the event data. This is somewhat like a user callback. The user code (called the notification method) uses the passed current behavior and event data to construct and return the behavior that occurs after the event. + + + +

    When Does Until Change Behaviors?

    +

    This subsection discusses a subtlety present in the DirectAnimation event model. +

    Consider the statement: +

    
    +until(b1, ev, b2);
    +
    +

    If the event ev occurs at time te, the b2 behavior will not be sampled until the first sample time strictly greater than te. If this rule were not followed, many cyclically defined behaviors would be infinitely recursive. + +

    Consider this example, which is a red behavior until LocalTime is greater than or equal to 2, then is a green behavior: +

    
    +m.Until(m.Red, m.Predicate(m.GTE(m.LocalTime, 2)), m.Green)
    +
    +

    If this behavior is sampled at local time 1.8, the result will be red. At local time 2.1, the predicate will hold true, but the DirectAnimation implementation assumes that the event time is 2.1 (because this is the time the implementation became aware of the event). Because of the "strictly greater than" rule described above, the result will still be red. Not until the next sampling, for example at local time 2.4, will the result be green. +

    If the application wants to ensure that situations like this react more accurately, it can use the timer method, and rewrite the example as: +

    
    +m.Until(m.Red, m.Predicate(m.Timer(2)), m.Green)
    +
    +

    In Java, this statement would be: +

    
    +until(red, timer(toBvr(2)), green) 
    +
    +

    Until and LocalTime

    +

    The Until function and the LocalTime behavior starts at 0 and increases at the rate of 1 unit per second. Because Until starts its component behaviors at different times, the use of LocalTime within an Until function allows for the creation of distinct local timelines. For example: +

    
    +sine = m.Sin(m.LocalTime);
    +slope = m.LocalTime;
    +sineSlope = m.Until(sine, m.Timer(5), slope); 
    +
    +

    The sineSlope behavior behaves like the sine behavior until just after time 5 (in its local time line). It then behaves like the slope behavior. The following is a chart of the running value of sineSlope graphed against its local time line. +

    +

    Sine/Slope graph +

    +

    Any instances of LocalTime in a behavior will, when that behavior is running, start at 0, including when the behavior is transitioned to as the result of an event. +

    This local timeline property of LocalTime is important because it allows behaviors to operate in their own local timelines. When placed in any Until function, started at any time, they will follow their prescribed behavior. +

    This form of Until doesn't describe every situation that might arise when designing a behavior that reacts to events. Specifically, this form only works when the component behaviors can be completely described when the resultant behavior is defined; for example, that the color becomes green when the button is pressed. +

    However, consider a stopwatch implemented as a number behavior representing a timer that starts counting from 0 and increases 1 unit per second until the left button is pressed. At that time, the behavior is permanently set to the value that existed when the button was pressed. This can be accomplished with the Snapshot function and the UntilEx function, as shown in the following example: +

    
    +Stopwatch=m.Until(m.LocalTime, m.LeftButtonDown.Snapshot(m.LocalTime));
    +
    +

    More Ways to Use Behaviors

    +

    This section describes how to use behaviors in different situations for different results. It includes the following topics: +

    +

    Results of Operations on Behaviors

    +

    A common feature throughout the behavior classes is that operations generally take behaviors and produce new behaviors from them, rather than modifying the original inputs. For example, consider the expression: +

    
    +Cube.Transform(xform)
    +
    +

    This does not change the specified cube. Instead, it produces a new geometry that is a transform applied to the original cube. +

    The following example creates a red cube rotated around the y-axis by 60 degrees: +

    
    +mediaBase = "..\\..\\..\\..\\media\\";
    +geoBase = mediaBase + "geometry\\";
    +Geo1 = m.ImportGeometry(geoBase + "cube.x");
    +Geo2 = Geo1.DiffuseColor(m.Red);
    +Geo3 = Geo2.Transform(m.Rotate3Degrees(m.YVector3, 60));
    +
    +

    Alternatively, because each of these functions produce a value, they could all be combined into the following statement: +

    
    +Geo1= m.ImportGeometry(geoBase + "cube.x").DiffuseColor(m.Red).Transform(m.Rotate3Degrees(m.YVector3, 60));
    +
    +

    It is important to remember that these calls always create new values and never modify the existing values. For example, consider the following code: +

    
    +Geo1 = m.ImportGeometry(geoBase + "cube.x");
    +//Incorrect Usage
    +Geo1.DiffuseColor(m.Red);
    +Geo1.Transform(m.Rotate3Degrees(m.YVector3, 60));
    +
    +

    This code will not create a cube, make that cube red, then rotate that cube. Instead, Geo1 remains the original, imported cube. The second and third lines are useless because they don't do anything with their return values. The results of those operations are inaccessible. +

    Internally to the implementation, new values may or may not actually be constructed. However, from the developer's point of view, they always are. Additionally, when new values are constructed, they are very inexpensive, in terms of system resources. Generally, they are represented by a pointer to the old value and the data for the new attribute. + +

    Some Defaults When Constructing Behaviors

    +

    In DirectAnimation, methods for constructing media data types (images, geometry, points, and so on) use the following defaults: +

    • Importing a bitmap image positions that image at the origin of the coordinate system. Transformations are then used on the original image to create new images with different locations. +
    • The light constant is located at the 3-D origin, and transformed accordingly. +
    • Directional light is in the direction of the negative Z-axis. Ambient light doesn't have geometric aspects. +
    +

    This approach minimizes the replication of extraneous parameters. You don't need to define image imports, simple text, or light constants to take a position and size parameter. This both simplifies and aids consistency in animations. + + + +

    When Are Behaviors Run?

    +

    This section lists the ways behaviors are run, and how the start time that becomes associated with the running behavior is determined. The different ways of running behaviors are: +

    • In the statement "c1 = m.Until(c2, ev, c3)" when behavior c1 is started at t0, behavior c2 gets started at t0. Any time after this, when the event ev occurs at time te, behavior c3 is started at te. Prior to ev, c3 is not running. +
    • In all media combination methods, such as "p1 = m.DistancePoint2(p2, p3)", when p1 is started at t0, p2 and p3 are also started at time 0. +
    • Scripting behaviors are run as soon as the DAViewerControl Start subroutine is started, and are all started at time 0. +
    • Java behaviors established in a Model with the createModel method are run as soon as the model is started, and are all started at time 0. This method is effectively the main entry point for DirectAnimation for Java, and describes the initial model. +Behaviors that are not part of the Java Model can be explicitly identified for running by adding them to the list of behaviors passed to createModel method. Behaviors can be added with the BvrsToRun class add method. +
    +

    The RunOnce Function +

    Certain applications need to be able to reference a running behavior without the behavior getting restarted when events occur. Consider two animated, time-varying images (perhaps movies), and an application that wants to play the first movie from its beginning for 10 seconds, then, over the course of the next two seconds, fade from it to the second movie, then continue playing the second movie. Assuming the existence of a Fade operation (which can be easily constructed from overlay and opacity), a first attempt might look like this: +

    Incorrect Usage +

    
    +wrongResult = m.Until(movie1, 
    +                  m.Timer(10),
    +                  m.Until(Fade(movie1, movie2),
    +                        m.Timer(2),
    +                        movie2);
    +
    +

    Unfortunately, this doesn't work. The problem is that, after the first event, the movie1 behavior will be started again, resulting in seconds 1 and 2 of movie1 fading, rather than seconds 11 and 12. Also, after the second event, the movie2 behavior also starts again, replaying seconds 1 and 2, rather than continuing on from the end of 2 seconds. +

    This particular application calls for a behavior that, once running, is always referred to without restarting. This means that, after the initial start, no new behaviors are created. The RunOnce function satisfies this requirements. With RunOnce, the fader example can be expressed as: +

    
    +movie1Once = movie1.RunOnce();
    +movie2Once = movie2.RunOnce();
    +faderMovie = m.Until(movie1Once, m.Timer(10), m.Until(Fade(movie1Once, movie2Once), 
    +          m.Timer(2), movie2Once);
    +
    +

    In this example, movie1Once and movie2Once are constructed as behaviors that are not yet running, but once they are started, subsequent references to these behaviors will return to the behavior already running. + + +

    Java toBvr Method

    +

    The toBvr method converts a double precision Java number into a constant NumberBvr behavior. This conversion is necessary because the DirectAnimation for Java methods generally take arguments that are behaviors and not Java constant numbers. The toBvr method exists for all core Java types that have DirectAnimation equivalents. For example, it converts Boolean types and java.lang.String types to BooleanBvr and StringBvr respectively. +

    The only time that toBvr is used is when converting a Java number, Boolean, or String to a DirectAnimation type. It is not used for constants such as red, yVector3, and origin2, because these are defined as constant behaviors. + + +

    Constructing Cyclic Java Behaviors

    +

    Often, there is a need to construct a behavior that, when an event occurs, cycles through some number of values. The Cycler object solves this problem. It is a subclass of the Behavior class. Here is an example that cycles through the three sounds upon each leftButtonDown event: +

    
    +URL soundBase =buildURL(getImportBase(),"../../Media/sounds/");
    +SoundBvr snd1 = importSound(buildURL(soundBase,"do.wav"), null);
    +SoundBvr snd2 = importSound(buildURL(soundBase,"re.wav"), null);
    +SoundBvr snd3 = importSound(buildURL(soundBase,"mi.wav"), null);
    +
    +//Create an array of sounds
    +Behavior[]snds = {snd1, snd2, snd3};
    +Cycler cycle = new Cycler(snds, leftButtonDown);
    +SoundBvr currentSnd = (SoundBvr)(cycle.getBvr());
    +
    +

    Note that each component behavior gets started each time there is a transition to it. +

    The Cycler Class entry in the Java Reference describes Cycler. +

    The Cycler utility can be easily constructed in Scripting classes, using Until and uninitialized behaviors. + + +

    Sequencing

    +

    Sequencing allows you to sequence behaviors with finite durations. Consider the following JScript sample, which sequences through a set of labels. You can see how sequencing is used in animation by viewing the sample Samples\DA\JScript\Templates\Sequencing. +

    
    +labels = new Array("First", "Second", "Third", "Fourth", "Fifth",
    +                      "Sixth", "Seventh", "Repeat the Sequence Forever");
    +   
    +durations = new Array(tDur, tDur, p1, sDur, p2, tDur, tDur, p1, sDur, p2, 1);
    +
    +// Construct a sequence of labels 
    +len = labels.length;
    +label = m.DAString("").Duration(0);
    +for (i=0; i<len; i++) 
    +   label = m.Sequence(label, m.DAString(labels[i]).Duration(durations[i])); 
    +
    +font = m.DefaultFont.Color(m.Blue); 
    +textImg = m.TextImage(label, font);
    +
    +

    Note that the last duration of one second is for the last string, which will stay forever since it is the end of the sequence. + + + +

    Switching

    +

    Sometimes there is a need to modify behaviors that is not dependent on events. The SwitchTo function supplies this need. A switchable object is created with the ModifiableBehavior function and given an initial behavior. When SwitchTo is called with another behavior, the modifiable behavior switches to the provided behavior. Here is an example: +

    
    +// Create a modifiable color with the initial value blue. 
    +col = m.ModifiableBehavior(m.Red)
    +im = m.SolidColorImage(col);
    +//... somewhere else in the program ...
    +col.SwitchTo(m.Blue);
    +
    +

    Anywhere that col was used will turn from red to blue when SwitchTo is called. Calls to SwitchTo must carry arguments of the same behavior type as the initial behavior. The behavior switches when the program executes the statement containing the SwitchTo call. + + +

    Integrals and Derivatives

    +

    DirectAnimation supports explicit construction of the integrals and derivatives of certain types with respect to time. Integration can be performed on values of type DANumber with the Integral function and on DAVector2 and DAVector3 types with the IntegralVector2 and IntegralVector3 functions. Derivatives can be taken on all these types and also on DAPoint2 and DAPoint3 with the Derivative, DerivativeVector2, DerivativeVector3, DerivativePoint2, and DerivativePoint3 functions. +

    When an integral behavior begins, it starts building a conceptually continuous summation of values from that start time. +

    For example, the following JScript code creates a rotating ball that stops and starts on every left mouse button click. Rotate3RateDegrees takes an implicit LocalTime parameter. This parameter is replaced by the integral when SubstituteTime is called. The changingRate variable is a velocity that cycles between 0 and 1. The the integral of that velocity increases gradually. This integral is used as the angle of rotation for the geometry. + +

    
    +Ball = m.ImportImage("ball.gif");
    +RollingBall = Ball.Transform(m.Rotate3RateDegrees(m.Vector3(1,5,3), 540));
    +changingRate = new ActiveXObject("DirectAnimation.DANumber");
    +changingRate.Init(m.Until(m.DANumber(0), m.LeftButtonDown, m.Until(m.DANumber(1), m.LeftButtonDown, changingRate)));
    +finalImg = RollingBall.SubstituteTime(m.Integral(changingRate));
    +
    +

    The following Java code creates a spinning cube that stops and starts on every left mouse button click. + +

    
    +URL mediaBase =buildURL(getImportBase(),"../../Media/");
    +GeometryBvr geo = importGeometry(buildURL(mediaBase,"cube.x"));
    +NumberBvr[] zeroAndOne = { toBvr(0), toBvr(1) };
    +Cycler cyc = new Cycler(zeroAndOne, leftButtonDown);
    +NumberBvr angularVelocity = (NumberBvr)(cyc.getBvr());
    +NumberBvr angle = integral(angularVelocity);
    +GeometryBvr spinningGeo = geo.transform(rotate(zVector3, angle));
    +
    +

    The Extract Function

    +

    For behavior types that have primitive equivalents, (DABoolean, DANumber, and DAString, and the Java types BooleanBvr, NumberBvr, and StringBvr), a value in the underlying type is often needed. For instance, you might need an actual float in order to call out to a C++ or Java routine. The Extract function (Java extract method) exists for these classes of behaviors, takes no arguments, and is expected to be called on a behavior that is actually constant. +

    The Cond Function

    +

    The Cond function allows the construction of a behavior out of a Boolean behavior and two other behaviors. The value of the resultant behavior at any point in time is equal to the value of one of the two other behaviors. Which value is chosen is determined by the value of the Boolean behavior. This is a behavior-level conditional. +

    The following example creates a behavior, y, which is either another behavior, x, or 1.0 if x is greater than 0.5: +

    
    +x = m.Sin(M.LocalTime);
    +y = m.Cond(m.GTE(x, 0.5), 1.0, x);
    +
    +

    Time Substitution

    +

    By default, the LocalTime behavior starts at 0 and increases at the rate of one unit per second. However, this behavior can be modified. DirectAnimation supports time substitution. Time substitution creates a new behavior from an existing behavior and a number behavior. In the new behavior, the number behavior replaces all occurrences of LocalTime that were in the original behavior. This includes behaviors where LocalTime is implicit, such as imported movies. Time substitution allows behaviors to be time-scaled so that they can, for example, run faster or slower, be time-shifted to start at a different time, or frozen at a particular point in time. This can be used to accelerate and decelerate animation objects. +

    The SubstituteTime function takes the following form: +

    
    +newBvr = origBvr.SubstituteTime(newTime)
    +
    +

    The parameter newTime is a DANumber behavior that gets substituted for LocalTime in the origBvr behavior. The value of newBvr at time t is found by taking the value of newTime at time t, and using that as LocalTime in evaluating the behavior origBvr. +

    Here are some simple examples: +

    
    +//Create an original behavior: a point moving
    +//one unit in the x direction per second, starting at 0
    +pt1 = m.Point2(m.LocalTime, 0);
    +
    +//Create a new behavior moving 0.5 units per second
    +//Do this by replacing localTime with LocalTime/2
    +pt2 = pt2.SubstituteTime(m.Div(m.LocalTime, 2);
    +
    +//Create a new behavior moving 1 unit per second 
    +//starting at time 33, by replacing LocalTime with 
    +//LocalTime + 33
    +pt3 = pt1.SubstituteTime(m.Add(m.LocalTime, 33);
    +
    +
    +//Create new behavior by freezing the original behavior
    +// at time 77
    +pt4 = pt1.SubstituteTime(77);
    +
    +//Tie the new behavior to the x-component of the mouse
    +pt5 = pt1.SubstituteTime(m.MousePosition.X); 
    +
    +

    Also note that time substitutions are cumulative. For example, the following series: +

    
    +c0 = m.Point2(m.LocalTime, 0);
    +c1 = c0.SubstituteTime(m.Add(m.LocalTime, 33));
    +c2 = c1.SubstituteTime(m.Mul(m.LocalTime, 2));
    +
    +

    Could also be expressed as: +

    
    +c0 = m.Point2(m.LocalTime, 0);
    +c1 = c0.SubstituteTime(m.Add(m.Mul(m.LocalTime, 2), 33));
    +
    +

    This Java example shows how to make images of sailboats rock on the water. First a simple number behavior is created: +

    
    +NumberBvr angle = mul(sin(localTime), toBvr(Math.PI/6));
    +
    +

    This behavior begins (at local time zero) with the value zero and then varies with time between +/-p/6 radians (that is, +/-30 degrees). It repeats the behavior every 2p seconds. Assume that the applet has already constructed (or imported) a behavior representing the geometry of a sailboat, sailboat0, that is centered at the origin with its long axis aligned along Z. You can use the behavior angle to rock the boat as shown in the following code: +

    
    +Transform3Bvr heel1 = rotate(zVector3, angle);
    +GeometryBvr sailboat1 = sailboat0.transform(heel1);
    +
    +

    The boat is initially upright and then heels from one side to the other, passing through upright (sin(0)=0) approximately every p seconds. +

    Now, create a boat that is rocking more slowly than sailboat1: +

    
    +Transform3Bvr heel2 = 
    +(Transform3Bvr)heel1.substituteTime(div(localTime, toBvr(8)));
    +GeometryBvr sailboat2 = sailboat0.transform(heel2);
    +
    +

    The second sailboat, sailboat2, rotates the same amount as sailboat1 but has a period that is 8 times longer (y = sin1/8x). +

    Note that, even though the period of rocking is different for each boat, both are initially upright. Now add a third boat that rocks at the same period as sailboat2, but is 90 degrees out of phase with it (y = cos 1/8x). The third boat can be defined as: +

    
    +GeometryBvr sailboat3 = (GeometryBvr)
    +sailboat2.substituteTime(add(localTime, toBvr(Math.PI/2)));
    +
    +

    At the start, this boat is heeled over by p/6 (cos(0)=1) and rocks at the same rate as sailboat2. Notice how using time substitutions contributes to the modularity of the code. The phase change could be achieved by changing the definition of angle, but this would have also changed the phase of the first two boats as well. The code for angle could have been duplicated and the phase changed, but if angle had a more complicated definition or if the source were not available, this approach would be difficult or impossible. +

    Time substitutions provide the same modularity benefits in the temporal domain that 2-D and 3-D transformations provide in the spatial domain. They allow objects to be defined, and then manipulated, from outside to alter their behavior, without needing to know the internals of the objects. +

    Naturally, there are certain restrictions on the time substitutions that can be applied to behaviors. For instance, user-input in general cannot be time substituted, and time-substitution cannot take you back before event transitions that have already occurred. + + +

    Uninitialized Behaviors in Java

    +

    There is often a need to reference a Java behavior before it has been defined. As an example, consider a colored rectangle whose color changes when picked (when the mouse clicks on it or hovers over it). In this case, the color depends on whether or not the image is picked, but the image is dependent upon the color. The uninitialized behavior is provided for these cases, and for cases of cyclic dependency. This behavior allows programmers to create a behavior, use it in the definition of other behaviors, but not actually define its contents until some later point. Uninitialized behaviors are created with the newUninitBvr method of the behavior object being created. All the behavior types have a newUninitBvr method for this purpose. +

    The following code shows how to use uninitialized behaviors to construct the animation described above(it assumes you have defined the function makeColoredRectangle elsewhere): +

    
    +ColorBvr col = ColorBvr.newUninitBvr();
    +ImageBvr im = makeColoredRectangle(col);
    +PickableImage pim = new PickableImage(im);
    +DXMEvent ev = pim.getPickEvent();
    +col.init( until(red, ev, green) );
    +
    +

    This example changes the color from red to green the first time the rectangle is passed over by the mouse. Here the behavior is initialized to the color dependent upon the event once the event occurs. +

    Consider what happens when the last line of the previous code is changed to the following: +

    
    +col.init ( until(red, ev, until(green, notEvent(ev), col)) );
    +
    +

    The rectangle will be red whenever the mouse is not over it, and green when the mouse is over it. This is accomplished by making the col behavior itself cyclic, going back to red and waiting for the pick after the notEvent(ev) occurs. +

    When using this feature, you should be aware that the system will generate a run-time error if you: +

    • Initialize a non-uninitialized behavior +
    • Initialize an uninitialized behavior that's already been initialized +
    • Start an uninitialized behavior that has not yet been initialized +
    +

    Using Behaviors in Java Applications

    +

    A Java application can display behaviors in either an applet or a canvas. There are three general steps to displaying behaviors: + +

    1. The application overrides (subclasses) the DirectAnimation Model class and implements the createModel method to build up the image, sound, and geometry behaviors it wants to view. The application can optionally implement settings that apply specifically to this model. + + +
    2. The application constructs an instance of a DXMApplet or DXMCanvas class, providing an instance of the Model subclass. +
    3. The application uses the applet or canvas as it would use any other applet or canvas. The model (and all of its component behaviors) is automatically sampled and displayed. +
    +

    For example, the following code sample shows how to view the RedImg model created in the previous section. +

    
    +public class MyApplet extends DXMApplet {
    +    public void init() {
    +       // Always call the superclass's init() first to ensure codeBase is set
    +       super.init();
    +       // Now set the model
    +       setModel(new redImg());
    +    }
    +}
    +
    +

    Given a model, the setModel method is all you need to construct an applet to view that model. + +

    The use of DXMCanvas is identical to DXMApplet, except that you must position the canvas inside an application frame as you would any other canvas. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0031.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0031.HTM new file mode 100644 index 0000000..172d28e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0031.HTM @@ -0,0 +1,321 @@ + + +Using Models + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Using Models +DirectAnimation Animated Header --Using Models* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Using Behaviors
    +*Next Topic: Scripting Reference - DirectAnimation Classes
    +

    +

    +

    Using Models

    +
    +

    This section discusses how to use models in DirectAnimation. A model is the set of behaviors actually displayed. It is composed of images and sounds. This section contains the following topics: +

    +

    Models in DirectAnimation

    +

    In DirectAnimation, a model is the set of behaviors actually displayed for the application. A model typically consists of viewing an image behavior and a sound behavior. +

    In scripting, the model is automatically set when you invoke DAViewerControl's Start subroutine. Whatever image or sound is attached to the control object at the time Start is called is what is displayed. For example: +

    
    +DAMyControl.Image = MyImage;
    +DAMyControl.Sound = MySound;
    +DAMyControl.Start();
    +
    +

    DirectAnimation for Java provides a Model class to standardize the construction of DirectAnimation models. In order to view a behavior, an instance of this Model class must be provided as input when constructing a DirectAnimation viewer inside a DXMApplet or DXMCanvas subclass. This is the relevant portion of the Java definition of the Model class: +

    
    +public abstract class Model extends Statics
    +{
    +   // This is to be overridden by the application 
    +   public abstract void createModel(BvrsToRun blist);
    +
    +   // These are to be invoked by the application
    +    public void setImage(ImageBvr im1);
    +    public void setSound(SoundBvr snd);
    +
    +    // These are invoked by the application to get and set the URL for importing files
    +    public URL getImportBase();
    +    public void setImportBase(URL url);
    +
    +}
    +
    +

    Applications override this class and implement at least the createModel method. This method creates the set of behaviors to be displayed, then calls setImage and setSound on the image and sound behaviors that are intended to be viewed. +

    The following is an example model that simply constructs a red image. This model has no sound. +

    
    +public class RedImg extends Model {
    +    public void createModel(BvrsToRun blist) {
    +        ImageBvr im = solidColorImage(red);
    +        setImage(im);
    +    }
    +}
    +
    +

    Setting Preferences

    +

    Occasionally, the programmer constructing the model, or the application controlling the viewer, will want to provide explicit rendering/viewing preference settings to DirectAnimation. Such preferences can include texture mapping quality, output audio format, maximum frames per second, polygon fill mode, and so on. +

    The Preferences object is the means by which these settings are made. A model can set preferences upon model construction, and the application can set them at any time by querying the viewer for them, setting them, and then submitting them back to the viewer. +

    To set preferences, first create a Preferences object, as shown in the following JScript code: +

     p = DAControl.View.Preferences;
    +
    +

    When the application is run, the Preferences object will be set to the default preferences in the registry. You can override these settings by calling the Preferences class PutPreference method. For example: +

    
    + p = DAControl.View.Preferences;
    + oldvalue = p.GetPreference("FILL_MODE");
    + p.PutPreference("FILL_MODE", FILL_MODE_SOLID);
    +
    +

    Note also that, through the system registry, the user has an opportunity to establish preferences that become the default set of preferences for viewing a model. Changes made by the model or the application override these defaults. Because of this, setting of preferences should be something that both the model and the application approach conservatively, and only do if it is truly appropriate for the situation. +

    Also see the reference entry for the Java Preferences Class. + + + + +

    DXMApplet and DXMCanvas

    +

    In DirectAnimation, a model is the set of behaviors actually displayed and sampled for the application. A model typically consists of some combination of image behaviors and sound behaviors. DirectAnimation for Java provides a Model class to standardize the construction of DirectAnimation models. For example: +

    
    +public class RedImg extends Model {
    +    public void createModel(BvrsToRun blist) {
    +        ImageBvr im = solidColorImage(red);
    +        setImage(im);
    +    }
    +}
    +
    +

    In order to view a behavior, an instance of this Model class must be provided as input when constructing a DirectAnimation viewer inside a DXMApplet or DXMCanvas subclass. + +

    DirectAnimation for Java provides the DXMApplet and DXMCanvas classes that extend the standard AWT Applet and Canvas classes and provide applets and canvases specifically for displaying behaviors. Each of these requires a Model upon construction, and each overrides the necessary methods on Applet and Canvas in order to view that model. +

    By default, DXMApplet and DXMCanvas provide their own frame-loop so the application needn't provide one explicitly (though it may choose to do so by overriding this default behavior). See the GeoApplet2 template in the Samples\DA\Java\Templates\Applet\GeoApplet2 directory. +

    Here is an example of using the DXMApplet class to view a model: +

    
    +public class MyApplet extends DXMApplet {
    +    public void init() {
    +       // Always call the superclass's init() first to ensure codeBase is set
    +       super.init();
    +       // Now set the model
    +       setModel(new MyModel());
    +    }
    +}
    +
    +

    Given a model, this is all that is needed to construct an applet to view that model. +

    The use of DXMCanvas is identical, except, you need to position the canvas inside of an application frame, just as you would any other canvas. For an example of how to use DXMCanvas, see the Java code in Samples\DA\Java\Templates\Application. + +

    Dynamically Changing the Java Model

    +

    The DXMApplet and DXMCanvas classes are defined such that once an applet or canvas is built, the model cannot be changed. This is intentional. If there is a need to change the model dynamically, this should be reflected in changes to the behaviors that make up the model, and not by switching to another model. If an application really needs to switch to an entirely different model, it can construct a new applet or canvas. + +

    The Java Viewer Interface

    +

    DirectAnimation for Java provides a Java interface called Viewer that encapsulates operations common to all displayers of behaviors. Because it is an interface, it is not constructed directly by applications. Instead, it is provided through concrete classes such as the DXMApplet and DXMCanvas classes. However, it does have a set of methods that can be used by applications. +

    Most applications never need to call any of these methods or, for that matter, ever need know about the Viewer interface. This is only for more explicit control of the running of behaviors, and for non-default ways of dealing with error handling and preference establishment. +

    Here are the relevant portions: +

    
    +public interface Viewer {
    +    public abstract double getCurrentTime();
    +    public abstract double getCurrentTickTime();
    +    public abstract Preferences getPreferences();
    +    public abstract ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w);
    +    public abstract void startModel();
    +    public abstract void stopModel();
    +    public abstract void tick();
    +    public abstract void tick(double timeToUse);
    +}
    +
    +

    The viewer gets its model via a mechanism not shown here (it is not meant to be called by applications). The relevant methods are: +

    • The startModel() method which starts the behaviors associated with the model at global time 0. This is when the globalTime behavior starts. Incidentally, startModel() is also what causes the createModel() method on the model itself to get invoked. +
    • The tick(double timeToUse) method which explicitly does a single sampling and display of the model with timeToUse as the global time. +
    • The tick() method, which is shorthand for tick(getCurrentTime()), and is the easiest way to explicitly sample and display the model, thus providing a real-time clock for global time. +
    • The rrentTime() method returns the number of seconds since startModel was invoked. +
    • The getCurrentTickTime() method returns the time provided for the most recent call to tick, or 0 if it hasn't yet been called. +
    • The registerErrorAndWarningReceiver() method which allows the application to register an object that will have its methods invoked upon asynchronous errors encountered when DirectAnimation is controlling the frame loop, or when recoverable warnings occur when sampling and displaying the model. +
    • The getPreferences/setPreferences methods which allow the application to dynamically modify the viewer preferences. +
    +

    Explicit Control of the Frame Loop

    +

    The implementations of DXMApplet and DXMCanvas implement a thread that repeatedly calls the tick() method, and thus have a built-in frame loop. If an application wants to explicitly control the frame loop, it must override these classes and provide different implementations that invoke tick() in their application-specific way. + +

    Causing External Side Effects upon Java Events

    +

    Sometimes an application wants to cause an external action when an event occurs in DirectAnimation for Java. For instance, the application may want to display a GUI window when the mouse moves past a certain region of the window. This capability is supported by the registerCallback method available on events. The registerCallback method takes an object that implements the EventCallbackObject interface (along with some other parameters), and returns an Object that can later be used to unregister that callback. Whenever that event occurs, the invoke method of the callback is called with the event data produced by that event. +

    Here is an example: +

    
    +class MyCallback implements EventCallbackObject {
    +    MyCallback(...);
    +    
    +    public void invoke(Object eventData) {
    +        ... pop up my GUI window ...
    +    }
    +}
    +//... elsewhere ...
    +ev = predicate(gte(mousePosition.getX(), toBvr(0.05)));
    +Object cookie = ev.registerCallback(new MyCallback(...),
    +                                    startTime,
    +                                    false);  // not a one-shot event
    +// ... from this point, every occurrence of ev will trigger "invoke"
    +...
    +// at some later point, unregister the callback
    +unregisterCallback(cookie);
    +
    +

    Registering callbacks can be thought of as a complement to AppTriggeredEvent. The former causes an application action to occur upon a DirectAnimation event, while the latter is an application action triggering a DirectAnimation event. + + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0032.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0032.HTM new file mode 100644 index 0000000..91e38ec --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0032.HTM @@ -0,0 +1,350 @@ + + +Scripting Reference - DirectAnimation Classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Scripting Reference - DirectAnimation Classes +DirectAnimation Animated Header --Scripting Reference - DirectAnimation Classes* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Using Models
    +*Next Topic: Scripting Reference Introduction
    +

    +

    +

    Scripting Reference - DirectAnimation Classes

    +
    +

    The Microsoft® DirectAnimation™ Scripting Reference describes each of the DirectAnimation functions, including syntax, returned values, and how to use the function. The reference is organized by classes, listed alphabetically. +

    The Scripting Reference Introduction describes the organization of the reference and also discusses the differences between JScript and VBScript, and between the PixelLibrary and the MeterLibrary. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A +
    DAArray Class +
    B +
    DABbox2 Class +
    DABbox3 Class +
    DABehavior Class +
    DABoolean Class + +
    C +
    DACamera Class +
    DAColor Class +
    D +
    DADashStyle Class +
    DADrawingSurface Class +
    E +
    DAEndStyle Class +
    DAEvent Class +
    F +
    DAFontStyle Class +
    G +
    DAGeometry Class +
    I +
    DAImage Class +
    DAImportationResult Class +
    IDABvrHook Class +
    IDASite Class +
    J +
    DAJoinStyle Class +
    L +
    DALineStyle Class +
    M +
    DAMatte Class +
    DAMicrophone Class +
    DAMontage Class +
    N +
    DANumber Class +
    P +
    DAPair Class +
    DAPath2 Class +
    DAPickableResult Class +
    DAPoint2 Class +
    DAPoint3 Class +
    S +
    DASound Class +
    DAStatics Class +
    DAString Class +
    T +
    DATransform2 Class +
    DATransform3 Class +
    DATuple Class +
    U +
    DAUserData Class +
    V +
    DAVector2 Class +
    DAVector3 Class +
    DAViewerControl Class + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0033.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0033.HTM new file mode 100644 index 0000000..c685938 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0033.HTM @@ -0,0 +1,203 @@ + + +Scripting Reference Introduction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Scripting Reference Introduction +DirectAnimation Animated Header --Scripting Reference Introduction* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Scripting Reference - DirectAnimation Classes
    +*Next Topic: DAArray Class
    +

    +

    +

    Scripting Reference Introduction

    +
    +

    The Scripting Reference is organized by classes. For example, there is a section on the DAImage class. Each class contains a description of its functions, including syntax, returned values, and how to use the function. At the end of each class, there is a list of functions that, while relevant to that particular class, are included in the DAStatics library. This library is very large, and it may be easier to familiarize yourself with its contents by looking at specific classes and seeing what DAStatics functions are pertinent. When parameters are described as animated numbers, this means they must be of type DANumber, not that they must necessarily change over time. +

    This introduction contains the following topics: +

    +

    Differences between VBScript and JScript

    +

    Syntax and terminology are based on VBScript conventions. However, there are only a few simple differences between that and JScript. Those differences that pertain directly to Microsoft® DirectAnimation™ are: + +

    • This reference is organized according to Visual Basic conventions, which uses functions, which return values, and subroutines, which do not, and properties. JScript distinguishes between methods, which are always associated with objects, functions, which are not, and properties, which are analagous to Visual Basic properties. +
    • The syntax differs only in that JScript ends with a semicolon while VBScript does not. +
    • The syntax for creating a new object is different. The following example shows how to create new objects both in VBScript and JScript: +
    +
    
    +// This is VBScript
    +Set myPt = CreateObject("DirectAnimation.DAPoint2")
    +
    +// This is JScript
    +myPt = new ActiveXObject("DirectAnimation.DAPoint2");
    +
    +

    The PixelLibrary and the MeterLibrary

    +

    The MeterLibrary and the PixelLibrary set the unit of measurement to meters or pixels respectively. Both return the DAStatics object, so, to gain access to that library, one of these libraries must be chosen. There are two important differences between the libraries (other than the obvious one of different units of measurement). They are: + +

    • The MeterLibrary considers positive-y to be up and the origin to be in the center of the view. The PixelLibrary considers positive-y to be down. +
    • If the PixelLibrary is chosen, pixels are the unit of measurement only when something is being constructed. Returned values are always in meters. For example, if you construct a DAPoint2 object in pixels and then ask for its x-coordinate, the value will be returned in meters. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0034.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0034.HTM new file mode 100644 index 0000000..b766038 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0034.HTM @@ -0,0 +1,212 @@ + + +DAArray Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAArray Class +DirectAnimation Animated Header --DAArray Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Scripting Reference Introduction
    +*Next Topic: DABbox2 Class
    +

    +

    +

    DAArray Class

    +
    +

    A DAArray object holds other objects that can be selected based on an index that can either vary over time or not. + +

    This class inherits from DABehavior +

    +

    DAArray Functions

    +

    bullet1.gifLength
    +

    bullet1.gifNthAnim
    +


    Length

    +DAArray Class +

    Finds the length of a DAArray object. + +

    arrayObj.Length( )

    Return Values
    +

    Returns a DANumber object. + + +


    NthAnim

    +DAArray Class +

    Selects a DABehavior object based on the value of a (a DANumber). It uses the greatest integer value less than the number's value to determine the index. An array's index begins at 0 and any attempt to index beyond its length results in a run-time error. + +

    arrayObj.NthAnim(
      a
      )

    Parameters
    +
    a +
    The DANumber object used as a time-varying index into the array. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +

    Relevant Functions from DAStatics

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAArray: +

    lib.DAArray +

    lib.UninitializedArray() + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0035.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0035.HTM new file mode 100644 index 0000000..6d8681f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0035.HTM @@ -0,0 +1,195 @@ + + +DABbox2 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DABbox2 Class +DirectAnimation Animated Header --DABbox2 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAArray Class
    +*Next Topic: DABbox3 Class
    +

    +

    +

    DABbox2 Class

    +
    +

    An object representing a two-dimensional bounding box. It specifies the lower-left and upper-right corners of a box that encloses the non-transparent portions of an image. Although a bounding box may not always be the smallest bounding box achievable for the image, it is useful for determining the extent or size of the visible portions of the image. + +

    Applications never create bounding boxes explicitly. Instead, create them by calling the BoundingBox function on the DAImage object. + +

    This class inherits from DABehavior. + +

    DABbox2 Properties

    +

    bullet1.gifMax
    +

    bullet1.gifMin
    +


    Max

    +DABbox2 Class +

    A read-only property with a DAPoint2 value that specifies the upper-right corner of the bounding box. + +

    bbox2Obj.Max


    Min

    +DABbox2 Class +

    A read-only property with a DAPoint2 value that specifies the lower-left corner of the bounding box. + +

    bbox2Obj.Min

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0036.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0036.HTM new file mode 100644 index 0000000..cb2906e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0036.HTM @@ -0,0 +1,202 @@ + + +DABbox3 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DABbox3 Class +DirectAnimation Animated Header --DABbox3 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DABbox2 Class
    +*Next Topic: DABehavior Class
    +

    +

    +

    DABbox3 Class

    +
    +

    An object representing a three-dimensional bounding box. It specifies the back-lower-left and forward-upper-right corners of a cube that encloses the non-transparent portions of a geometry behavior. Although a bounding box may not always be the smallest bounding box achievable for the geometry, it is useful for determining the extent or size of the visible portions of the geometry. + +

    Applications never create bounding boxes explicitly. Instead, they are created by calling the BoundingBox function on the DAGeometry object. + +

    This class inherits from DABehavior. + + +

    DABbox3 Properties

    +

    bullet1.gifMax
    +

    bullet1.gifMin
    +


    Max

    +DABbox3 Class +

    A read-only property with a DAPoint3 value that specifies the upper-right corner of the bounding box. + +

    bbox3Obj.Max

    See Also
    +

    Min + +


    Min

    +DABbox3 Class +

    A read-only property with a DAPoint3 value that specifies the lower-left corner of the bounding box. + +

    bbox3Obj.Min

    See Also
    +

    Max + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0037.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0037.HTM new file mode 100644 index 0000000..7100a95 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0037.HTM @@ -0,0 +1,324 @@ + + +DABehavior Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DABehavior Class +DirectAnimation Animated Header --DABehavior Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DABbox3 Class
    +*Next Topic: DABoolean Class
    +

    +

    +

    DABehavior Class

    +
    +

    All behaviors are potentially time-varying and/or reactive values such as colors, numbers and images. They can be used to construct animated objects. All behavior subclasses inherit the functions of this class. + +

    Because all behaviors (animated objects) are potentially time-varying and/or reactive, their values can change as a function of time or as the result of user input. Time-varying behaviors are created by combining time-based default behaviors (such as LocalTime) with other behaviors. Reactive behaviors are created using the Until and UntilEx functions and by specifying input events, such as mouse clicks. Complex behaviors can be built by combining existing behaviors. The value of a complex behavior always depends on the values of the behaviors that comprise it. + +

    When a behavior runs, its time-varying and reactive qualities are active. This means the user can experience any changes that occur in the behavior as time passes or events occur. +

    +

    DABehavior Functions

    +

    bullet1.gifDurationAnim
    +

    bullet1.gifDuration
    +

    bullet1.gifGetClassName
    +

    bullet1.gifHook
    +

    bullet1.gifInit
    +

    bullet1.gifIsReady
    +

    bullet1.gifRepeat
    +

    bullet1.gifRepeatForever
    +

    bullet1.gifRunOnce
    +

    bullet1.gifSubstituteTime
    +


    DurationAnim

    +DABehavior Class +

    Creates an animation fragment by associating a local "stop time" with a behavior. The result is a new behavior that is the same as the original behavior for the length of the duration. Once the duration is over, the behavior is a snapshot of the behavior's state when the duration ended. + +

    DurationAnim(
      length
      )

    Parameters
    +
    length +
    The DANumber object representing the length of time, in seconds, that the duration lasts. This must be an animated number. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +


    Duration

    +DABehavior Class +

    Same as DurationAnim except that length is a non-animated number (a double). + +

    Duration(
      length
      )


    GetClassName

    +DABehavior Class +

    Returns the name of an object's class. + +

    behaviorObj.GetClassName( )

    Return Values
    +

    Returns a String. + + +


    Hook

    +DABehavior Class +

    Allows a running behavior to be sampled. + +

    behaviorObj.Hook(
      notifier
      )

    Parameters
    +
    notifier +
    The object that controls the sampling of the DABehavior. +
    +
    Return Values
    +

    Returns a DABehavior object. + + +


    Init

    +DABehavior Class +

    Initializes an uninitialized object. Here is an example of how to create an uninitialized DAPoint2 object in VBScript: + +

    
    +Set myPt = CreateObject("DirectAnimation.DAPoint2")
    +
    +

    And here is how to create an uninitialized object in JScript: + +

    
    +myPt = new ActiveXObject("DirectAnimation.DAPoint2");
    +
    +

    To initialize the object in VBScript, use: + +

    
    +myPt.Init(...)
    +
    +

    The only difference in JScript is that it needs a semicolon at the end of the line. For example, consider the following JScript code: +

    
    +myPt.Init(m.Unitl(position, resetEvent,resetPosition);
    +
    +

    The Init function can also be used on uninitialized arrays (UninitializedArray) and uninitialized DATuples (UninitializedTuple). + +

    behaviorObj.Init(
      behavior
      )


    IsReady

    +DABehavior Class +

    Determines if all the imports for the behavior have been downloaded. Only works when the behavior is, itself, an import. Otherwise returns E_NOTIMPL. + +

    behaviorObj.IsReady(
      bBlock
      )

    Parameters
    +
    bBlock +
    A boolean which, if FALSE, indicates that IsReady should return immediately and, if TRUE, indicates that it should block until the behavior is ready. +
    +
    Return Values
    +

    Returns a boolean which, if TRUE, means all the imports have been downloaded. + + +


    Repeat

    +DABehavior Class +

    Creates a behavior that repeats itself the number of times specified by repetitions. + +

    behaviorObj.Repeat(
      repetitions
      )

    Parameters
    +
    repetitions +
    The number of times the behavior will repeat. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +


    RepeatForever

    +DABehavior Class +

    Creates a behavior that repeats infinitely. + +

    behaviorObj.RepeatForever( )

    Return Values
    +

    Returns the DABehavior object. + + +


    RunOnce

    +DABehavior Class +

    Used when applications must reference a running behavior once it starts running, but don't require the application to explicitly start that behavior. + +

    behaviorObj.RunOnce( )


    SubstituteTime

    +DABehavior Class +

    Creates a new behavior from an existing DABehavior and a DANumber. In the new behavior, the animated number replaces all occurrences of LocalTime in the original behavior. (This includes behaviors where LocalTime is implicit, such as imported movies. The function can be used even if LocalTime isn't explicitly in the code.) This allows behaviors to be, for example, time-scaled to run faster or slower, time-shifted to start at a different time, or frozen at a particular point in time. + +

    behaviorObj.SubstituteTime(
      a
      )

    Parameters
    +
    a +
    The DANumber object that replaces LocalTime. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +

    DABehavior Subroutines

    +

    bullet1.gifSwitchTo
    +


    SwitchTo

    +DABehavior Class +

    Replaces one behavior with another. The inital behavior is set with the ModifiableBehavior function in the DAStatics class. + +

    behaviorObj.SwitchTo(
      newBehavior
      )

    Parameters
    +
    newBehavior +
    The DABehavior object that will replace the initial behavior. +
    +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DABehavior. + +

    lib.Cond(bool, a, b) +

    lib.ModifiableBehavior(initialBehavior) +

    lib.Sequence(a, b) +

    lib.Until(a, e, b) +

    lib.UntilEx(a, e) + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0038.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0038.HTM new file mode 100644 index 0000000..a5ff67e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0038.HTM @@ -0,0 +1,211 @@ + + +DABoolean Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DABoolean Class +DirectAnimation Animated Header --DABoolean Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DABehavior Class
    +*Next Topic: DACamera Class
    +

    +

    +

    DABoolean Class

    +
    +

    Creates a DABoolean object that represents an animated boolean value. (This means the boolean value can change over time). At any given time, the value of the DABoolean is either TRUE or FALSE. + +

    This class inherits from the DABehavior class. + +

    +

    DABoolean Functions

    +

    bullet1.gifExtract
    +


    Extract

    +DABoolean Class +

    Extracts the value of booleanObj, which is a DABoolean object, and returns a boolean. The DABoolean must have a constant value. + +

    booleanObj.Extract

    Return Values
    +

    Returns a boolean. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DABoolean: + +

    lib.And(b1, b2) +

    lib.DABoolean(bool) +

    lib.KeyState(keyCode) +

    lib.Not(b) +

    lib.Or(b1, b2) +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DABoolean: + +

    lib.DAFalse +

    lib.LeftButtonState +

    lib.RightButtonState +

    lib.DATrue +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0039.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0039.HTM new file mode 100644 index 0000000..44a7e81 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0039.HTM @@ -0,0 +1,262 @@ + + +DACamera Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DACamera Class +DirectAnimation Animated Header --DACamera Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DABoolean Class
    +*Next Topic: DAColor Class
    +

    +

    +

    DACamera Class

    +
    +

    Creates a DACamera object that represents a camera behavior (a camera whose values can be animated, or vary over time). A camera is used with the Render function to project geometry onto an infinite two-dimensional image. Related operations include rendering it into a microphone to extract the sound, or into a pair of microphones to extract stereo sounds. + +

    There are two basic types of cameras: one for parallel projection and one for perspective projection. Both cameras are oriented so that they gaze in the negative z-direction, with positive y-axis considered "up." Also, both cameras have a near clipping plane. This plane (a product of Z-buffered rendering) specifies the closest distance at which an object is visible. Objects closer than the near clipping plane cannot be seen. + +

    Cameras are manipulated via standard three-dimensional transform operations. These transforms modify the camera characteristics and also position and orient the cameras. For more information about these operations, see the transform functions described below. + +

    This class inherits from DABehavior. + +

    +

    DACamera Functions

    +

    bullet1.gifDepthAnim
    +

    bullet1.gifDepth
    +

    bullet1.gifDepthResolutionAnim
    +

    bullet1.gifDepthResolution
    +

    bullet1.gifTransform
    +


    DepthAnim

    +DACamera Class +

    Creates a new DACamera object by applying the specified depth to the original object. By default, cameras have infinite depth, which means that all objects in front of the camera are visible. The new object is a DACamera whose maximum viewing depth is the DANumber depth. If depth < 0, the camera will be unable to see anything. If you prefer to think in terms of hither and yon, this function sets yon = hither + depth. It is important to note that depth is the limit on the far plane. As with the near plane, the geometry is bounded as tightly as possible for maximum Z-resolution. + +

    Limiting the depth of the camera is useful for preserving depth resolution when using Z-buffered rendering. It is also useful for a camera inside a building, where no viewing region is larger than some value. + +

    cameraObj.DepthAnim(
      d
      )

    Parameters
    +
    d +
    The DANumber object that sets the maximum viewing depth of the DACamera. This value must be an animated number. +
    +
    Return Values
    +

    Returns the DACamera object. + + +


    Depth

    +DACamera Class +

    Same as DepthAnim except that d is a non-animated number (a double). + +

    cameraObj.Depth(
      d
      )


    DepthResolutionAnim

    +DACamera Class +

    Creates a new DACamera object by applying the specified depth resolution (res) to the original behavior. The Z-buffered rendering approach assigns one depth-value (typically one of 65,536 possibilities) to each pixel on the screen. The depth resolution is the minimum distance between two objects such that they still appear distinct. This resolution varies as you go from the near clipping plane to the far clipping plane (more precision is lost for far objects), and according to the amount of perspective for the given camera. This method (given a minimim distance to be observed for the entire visible space) adjusts the far clipping plane accordingly. + +

    For example, ifthe projection point is at (0,0,2), the image clip is at (0,0,1), and the depth resolution is set to 1cm, then the resultant DACamera will have a viewing depth of slightly over 25.1m. It is important to note that depth represents the limit on the far plane. As with the near plane, the geometry will actually be bounded as tightly as possible for maximum Z-resolution. + +

    cameraObj.DepthResolutionAnim(
      res
      )

    Parameters
    +
    res +
    The DANumber object that sets the minimum depth (in camera coordinates) that is guaranteed to be distinct. This value must be an animated number. +
    +
    Return Values
    +

    Returns the DACamera object. + + +


    DepthResolution

    +DACamera Class +

    Same as DepthResolutionAnim except that res is a non-animated number (a double). + +

    cameraObj.DepthResolution(
      res
      )


    Transform

    +DACamera Class +

    Cameras are modified, positioned, and oriented via standard transforms. Scale transforms modify the camera while translations and rotations position and orient the camera. The basic steps for using a camera are defining it, modifying it if necessary, and then placing it in the scene. + +

    It is important to note that all camera scales should be applied before camera rotations, and that only scales, rotations, and translations are supported on cameras. Transformations that do not meet these criteria will yield a camera with an undefined behavior. + +

    There are two types of scale transformations, called Z-scales and X/Y-scales. Z-scales must be positive, non-zero values. Z-scales affect the position of the near clipping plane (if the clipping plane is set to a non-zero value.) For example, if the near clipping plane is located at 10 (that is, if Z=10), then a scale of [1 1 3] will yield a near clipping plane located at Z=30. More importantly, Z-scales move the projection point for a perspective camera. This means an increasing Z-scale yields a perspective camera that is zooming in, and a decreasing Z-scale yields a perspective camera that is zooming out. + +

    Use X/Y-scales to affect the size of the projected image. One way to think of this is that an X/Y-scale sets the size of the camera relative to the world it's viewing. For example, if you are viewing a microscopic scene, use a small X/Y-scale. On the other hand, if you are viewing a solar system, use a large X/Y scale. Scaling a camera by some value in X/Y is exactly equivalent to inversely scaling the resulting image by the same amount. For example, scaling the camera by [10 10 1] is the same as scaling the resulting image by [1/10 1/10]. Finally, disparate scales in X and Y can be used to change the aspect ratio of the rendered image. + +

    Once the camera is defined (via construction and scaling), it can be placed in the scene via rotations and translations just as a light source, microphone, or any other geometric object is placed. + +

    cameraObj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform3 object used to create a new camera. +
    +
    Return Values
    +

    Returns the DACamera object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DACamera: + +

    lib.ParallelCameraAnim(nearclip) +

    lib.ParallelCamera(nearclip) +

    lib.PerspectiveCameraAnim(projdst, nearclip) +

    lib.PerspectiveCamera(projdst, nearclip) + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0040.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0040.HTM new file mode 100644 index 0000000..ee31f0e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0040.HTM @@ -0,0 +1,267 @@ + + +DAColor Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAColor Class +DirectAnimation Animated Header --DAColor Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DACamera Class
    +*Next Topic: DADashStyle Class
    +

    +

    +

    DAColor Class

    +
    +

    A DAColor is an object that represents a color behavior (this is an animated color, or a color whose value can change over time). At any given time, the value of the object is a color value that represents a specific color. Each color value consists of a combination of component values that specify either red, green and blue intensity or hue, saturation, and lightness. + +

    Because component values can be animated numbers (DANumber objects), the value of the DAColor object can change over time as the animated numbers change. + +

    This class inherits from DABehavior. +

    +

    DAColor Properties

    +

    bullet1.gifBlue
    +

    bullet1.gifGreen
    +

    bullet1.gifHue
    +

    bullet1.gifLightness
    +

    bullet1.gifRed
    +

    bullet1.gifSaturation
    +


    Blue

    +DAColor Class +

    A read-only property with a DANumber value that represents the value of the blue component of the colorObj. + +

    colorObj.Blue

    See Also
    +

    Red, Green + +


    Green

    +DAColor Class +

    A read-only property with a DANumber value that represents the value of the green component of colorObj. + +

    colorObj.Green

    See Also
    +

    Red, Blue + +


    Hue

    +DAColor Class +

    A read-only property with a DANumber value that represents the value of the hue of colorObj. + +

    colorObj.Hue

    See Also
    +

    Lightness, Saturation + +


    Lightness

    +DAColor Class +

    A read-only property with a DANumber value that represents the value of the lightness of colorObj. + +

    colorObj.Lightness

    See Also
    +

    Hue, Saturation + +


    Red

    +DAColor Class +

    A read-only property with a DANumber value that represents the value of the red component of colorObj. + +

    colorObj.Red

    See Also
    +

    Green, Blue + +


    Saturation

    +DAColor Class +

    A read-only property with a DANumber value that represents the value of the saturation of colorObj. + +

    colorObj.Saturation

    See Also
    +

    Hue, Lightness + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAColor: + +

    lib.ColorHsl(h, s, l) +

    lib.ColorHslAnim(h, s, l) +

    lib.ColorRgb(r, g, b) +

    lib.ColorRgbAnim(r, g, b) +

    lib.ColorRgb255(r, g, b) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAColor: + +

    lib.Aqua +

    lib.Black +

    lib.Blue +

    lib.Cyan +

    lib.Fuchsia +

    lib.Gray +

    lib.Green +

    lib.Lime +

    lib.Magenta +

    lib.Maroon +

    lib.Navy +

    lib.Olive +

    lib.Purple +

    lib.Red +

    lib.Silver +

    lib.Teal +

    lib.White +

    lib.Yellow + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0041.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0041.HTM new file mode 100644 index 0000000..ddb0afe --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0041.HTM @@ -0,0 +1,195 @@ + + +DADashStyle Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DADashStyle Class +DirectAnimation Animated Header --DADashStyle Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAColor Class
    +*Next Topic: DADrawingSurface Class
    +

    +

    +

    DADashStyle Class

    +
    +

    Creates a DADashStyle object representing a dash style that is animated and whose values can vary over time. The object defines whether lines are drawn using a continuous stroke or a sequence of dashes. + +

    Use the DADashStyle object with the Dash function of the DALineStyle class. + +

    This class inherits from DABehavior. + +

    There are no DADashStyle functions, except the functions it inherits from the DABehavior class. + + + + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DADashStyle. + +

    lib.DashStyleDashed +

    lib.DashStyleSolid + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0042.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0042.HTM new file mode 100644 index 0000000..dcec93f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0042.HTM @@ -0,0 +1,1151 @@ + + +DADrawingSurface Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DADrawingSurface Class +DirectAnimation Animated Header --DADrawingSurface Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DADashStyle Class
    +*Next Topic: DAEndStyle Class
    +

    +

    +

    DADrawingSurface Class

    +
    +

    The DADrawingSurface class uses a style of drawing that depends on a graphics context. This is in contrast to the other DirectAnimation classes that use a constructive approach. The constructive approach combines primitive data types into a more complex model, in a hierarchical fashion. + +

    The graphics context approach is analagous to the way a pen plotter works, where the pen acts as the mechanical extension of a hand and the plotter acts as a piece of paper. To draw something, the pen is directed to a location on the plotter and then draws the shape. Many people find this approach to be more familiar than hierarchical modeling. For example, to draw the sun in the sky, it may seem more obvious to simply draw a yellow circle exactly where you want it, instead of first drawing a circle, then creating a yellow circle, and then, with a transform, creating yet another yellow circle that is now correctly placed. The difference is in the approach rather than in capabilities. + +

    A DADrawingSurface object maintains a graphics state object for two-dimensional graphics. This state includes attributes such as line style, fill style, border style, font style, and two-dimensional transformations. The drawing commands (such as Oval and RoundRect are always interpreted in terms of the current state. + +

    +

    DADrawingSurface Subroutines

    +

    bullet1.gifArcDegrees
    +

    bullet1.gifArcRadians
    +

    bullet1.gifAutoSizeFillScale
    +

    bullet1.gifBorderColor
    +

    bullet1.gifBorderDashStyle
    +

    bullet1.gifBorderJoinStyle
    +

    bullet1.gifBorderWidth
    +

    bullet1.gifClear
    +

    bullet1.gifCrop
    +

    bullet1.gifCropPoints
    +

    bullet1.gifDrawPath
    +

    bullet1.gifFillColor
    +

    bullet1.gifFillImage
    +

    bullet1.gifFillPath
    +

    bullet1.gifFillStyle
    +

    bullet1.gifFillTexture
    +

    bullet1.gifFixedFillScale
    +

    bullet1.gifFont
    +

    bullet1.gifGradientExtent
    +

    bullet1.gifGradientExtentPoints
    +

    bullet1.gifGradientRolloffPowerAnim
    +

    bullet1.gifGradientRolloffPower
    +

    bullet1.gifGradientShape
    +

    bullet1.gifHorizontalFillScale
    +

    bullet1.gifLine
    +

    bullet1.gifLineColor
    +

    bullet1.gifLineDashStyle
    +

    bullet1.gifLineEndStyle
    +

    bullet1.gifLineJoinStyle
    +

    bullet1.gifLinePoints
    +

    bullet1.gifLineWidth
    +

    bullet1.gifOpacityAnim
    +

    bullet1.gifOpacity
    +

    bullet1.gifOval
    +

    bullet1.gifOverlayImage
    +

    bullet1.gifPieDegrees
    +

    bullet1.gifPieRadians
    +

    bullet1.gifPolygon
    +

    bullet1.gifPolyline
    +

    bullet1.gifRect
    +

    bullet1.gifReset
    +

    bullet1.gifRestoreGraphicsState
    +

    bullet1.gifRoundRect
    +

    bullet1.gifSaveGraphicsState
    +

    bullet1.gifSecondaryFillColor
    +

    bullet1.gifText
    +

    bullet1.gifTextPoint
    +

    bullet1.gifTransform
    +

    bullet1.gifVerticalFillScale
    +


    ArcDegrees

    +DADrawingSurface Class +

    Draws a portion of an oval. (This is, in effect, an arc). + +

    The following example, in VBScript, draws a series of differently-sized arcs: + +

    
    +<HTML>
    +<HEAD>
    +<TITLE>Demonstration of ArcDegrees subroutine</TITLE>
    +</HEAD>
    +
    +<BODY>
    +
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAViewer"
    +        STYLE="position:absolute; left:10; top:10;width:450;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +</DIV>
    +
    +<SCRIPT LANGUAGE="VBScript">
    +
    +sub window_onLoad 
    +
    +  Set s = DAViewer.MeterLibrary
    +  Set ds = s.NewDrawingSurface()
    +
    +  ds.Text "Degrees 0", -.04, .06
    +  ds.ArcDegrees 0, .05, 0, 0, .01, .01
    +  
    +  ds.Text "Degrees 45", -.04, .04
    +  ds.ArcDegrees 0, .03, 0, 45, .01, .01
    +
    +  ds.Text "Degrees 90", -.04, .02
    +  ds.ArcDegrees 0, .01, 0, 90, .01, .01
    +
    +  ds.Text "Degrees 180", -.04, 0
    +  ds.ArcDegrees 0, -.01, 0, 180, .01, .01
    +
    +  ds.Text "Degrees 270", -.04, -.02
    +  ds.ArcDegrees 0, -.03, 0, 270, .01, .01
    +
    +  ds.Text "Degrees 360", -.04, -.04
    +  ds.ArcDegrees 0, -.05, 0, 360, .01, .01
    +
    +  DAViewer.Image = ds.Image
    +  DAViewer.Start
    +
    +end sub
    +
    +</SCRIPT>
    +
    +</BODY>
    +</HTML>
    +
    +
    +

    drawingObj.ArcDegrees(
      xPos,
      yPos,
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    xPos +
    The x-coordinate of the lower-lefthand corner of the oval's bounding box. +
    yPos +
    The y-coordinate of the lower-lefthand corner of the oval's bounding box. +
    startAngle +
    The angle, in degrees, where the arc begins. +
    endAngle +
    The angle, in degrees, where the arc ends. +
    arcWidth +
    The arc width, in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    arcHeight +
    The arc height, in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    +


    ArcRadians

    +DADrawingSurface Class +

    Same as ArcDegrees except that startAngle and endAngle are expessed in radians. + +

    drawingObj.ArcRadians((
      xPos,
      yPos,
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )


    AutoSizeFillScale

    +DADrawingSurface Class +

    Scales the fill pattern horizontally and vertically to fit the drawn object's bounding box. + +

    drawingObj.AutoSizeFillScale( )

    Remarks
    +

    There is no guarantee that the entire fill style will appear in drawn object because many fill regions are not rectangular. + +


    BorderColor

    +DADrawingSurface Class +

    Specifies the color of a filled region's outline (border). + +

    drawingObj.BorderColor(
      color
      )

    Parameters
    +
    color +
    The DAColor object that is the color of the border. +
    +


    BorderDashStyle

    +DADrawingSurface Class +

    Sets the dash style of the border. + +

    drawingObj.BorderDashStyle(
      id
      )

    Parameters
    +
    id +
    A number (a long) that sets the dash style of the border. For a table listing the available choices, see LineDashStyle. +
    +


    BorderJoinStyle

    +DADrawingSurface Class +

    Specifies the border's join style. + +

    drawingObj.BorderJoinStyle(
      id
      )

    Parameters
    +
    id +
    A DAJoinStyle. +
    +


    BorderWidth

    +DADrawingSurface Class +

    Sets the width of the border, in points. Border widths are affected by Transform. For example, scaling by 2 will double the border width. + +

    The following example demonstrates different border widths, using JScript: + +

    
    +<HTML>
    +<HEAD>
    +<TITLE>Demonstration of BorderWidth Subroutine</TITLE>
    +</HEAD>
    +
    +<BODY>
    +
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAViewer"
    +        STYLE="position:absolute; left:10; top:10;width:450;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +</DIV>
    +
    +<SCRIPT LANGUAGE="JScript" for="window" event="onload">
    +  s  = DAViewer.MeterLibrary;
    +  ds = s.NewDrawingSurface();
    +
    +  ds.BorderWidth(1);
    +  ds.Rect(0, .05, .06, .01);
    +  
    +  ds.BorderWidth(2);
    +  ds.Rect(0, .03, .06, .01);
    +
    +  ds.BorderWidth(3);
    +  ds.Rect(0, .01, .06, .01);
    +  
    +  ds.BorderWidth(4);
    +  ds.Rect(0, -.01, .06, .01);
    +
    +  ds.BorderWidth(5);
    +  ds.Rect(0, -.03, .06, .01);
    +  
    +  DAViewer.Image = ds.Image;
    +  DAViewer.Start();
    +
    +</SCRIPT>
    +
    +</BODY>
    +</HTML>
    +
    +
    +

    drawingObj.BorderWidth(
      width
      )

    Parameters
    +
    width +
    A number (a double) that is the border width. The units are in points. +
    +


    Clear

    +DADrawingSurface Class +

    Resets both the global images (Image) and the local context images (LocalContextImage). All attributes for the local context images are set to their defaults. + +

    drawingObj.Clear( )


    Crop

    +DADrawingSurface Class +

    Sets a rectangular cropping region outside of which drawing commands have no effect. Note that, unlike the DAImage Crop() function, this subroutine affects what will be drawn, not what has been drawn. + +

    drawingObj.Crop(
      minX,
      minY,
      maxX,
      maxY
      )

    Parameters
    +
    minX +
    The number (a double) specifying the minimum x-coordinate of the rectangular cropping region. +
    minY +
    The number (a double) specifying the minimum y-coordinate of the rectangular cropping region. +
    maxX +
    The number (a double) specifying the maximum x-coordinate of the rectangular cropping region. +
    maxY +
    The number (a double) specifying the maximum y-coordinate of the rectangular cropping region. +
    +


    CropPoints

    +DADrawingSurface Class +

    Same as Crop except that the arguments are specified as DAPoint2 objects. + +

    drawingObj.CropPoints(
      min,
      max
      )

    Parameters
    +
    min +
    The DAPoint2 object specifying the minimum point of the cropping region. +
    max +
    The DAPoint2 object specifying the maximum point of the cropping region. +
    +


    DrawPath

    +DADrawingSurface Class +

    Same as Polyline, except that it takes a DAPath2 object instead of points. + +

    drawingObj.DrawPath(
      path
      )

    Parameters
    +
    path +
    The DAPath2 object defining the line. +
    +


    FillColor

    +DADrawingSurface Class +

    If used with a gradient fill, specifies the starting color. If used with a hatched fill, specifies its color. It is ignored for solid fills. The default foreground color is black. + +

    drawingObj.FillColor(
      foreground
      )

    Parameters
    +
    foreground +
    The DAColor object that is the foreground color. +
    +


    FillImage

    +DADrawingSurface Class +

    Creates a fill pattern that is an image. This subroutine allows you to create your own fill pattern from any type of two-dimensional animation. The default is to scale the image to fit the window. If the mode is set to FixedFillScale and the image is transformed before being passed in, it will retain its position relative to the shape. + +

    drawingObj.FillImage(
      image
      )

    Parameters
    +
    img +
    The DAImage object to be used as the fill. +
    +


    FillPath

    +DADrawingSurface Class +

    Same as Polygon except that it takes a DAPath2 object rather than points. + +

    drawingObj.FillPath(
      path
      )

    Parameters
    +
    path +
    The DAPath2 object defining the polygon. +
    +


    FillStyle

    +DADrawingSurface Class +

    Sets the fill style. The parameter specifying the fill style, id, can be any of the following possible styles: + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    IdStyle +
    0Empty (does not support mouse events) +
    1Solid +
    2Empty Pickable (supports mouse events) +
    3HatchHorizonal +
    4HatchVertical +
    5HatchForwardVertical +
    6HatchBackwardDiagonal +
    7HatchCross +
    8HatchDiagonalCross +
    9HorizontalGradient +
    10VerticalGradient +
    11RadialGradient +
    12LinearGradient +
    13RectangularGradient +
    14ShapeGradient +
    +

    Fill styles are used to paint closed regions. The default fill type is the solid fill. Some uses of particular fill styles are: + +

    • Empty fill styles are transparent and are used for making hollow objects and hotspots. +
    • Solid fill styles give a uniform color throughout the selected area. +
    • Hatched fill styles give a characteristic line pattern on top of either a transparent or a solid-color background. +
    • Texture fill styles underlay the fill region with 2-D media such as a movie or still image. +
    • Gradient fill styles blend between two or more colors in a smooth transition. +
    +

    Fill colors are used in three ways. For gradient fills, the fill color is the first color used for blending. For hatched fills, it is the color used to draw the hatch marks. For solid fills, it is the color used for the entire filled area. It does not apply to empty and texture fill styles. The default color is black. + +

    A secondary (or background) fill color is possible and is also used in several ways. For gradient fills, it specifies the second color used for blending. For hatch fills, it is the color used to fill around the hatch marks. For empty fills, it is always transparent. Solid fills have no secondary color. The default secondary color depends on the fill type. For solid and gradient fills, the default background color is white. For hatched fills, the default background color is transparent. + +

    Gradient and texture fills can either be scaled to fit the shape being filled or can use their own scaling information. This is called a size-to-fit option. It does not apply to empty, solid, or hatched fill styles. + +

    Scale-to-fit uses rectangular bounding regions to scale the fill style into the region to be filled. Thus, scale-to-fit does not guarantee that the entire fill style will appear in the shape, because many fill regions are not rectangular. Gradient fills in which no interpolation coordinates are specified use scale-to-fit by default. Gradient fills with explicit coordinates as well as all texture fills use, by default, their local coordinates and are not scaled to fit the drawing region. For particular scale-to-fit subroutines, see AutoSizeFillScale, FixedFillScale, HorizontalFillScale, and VerticalFillScale. + +

    For gradient fills, it can be useful to explicitly set the starting and ending positions for the transition between the colors. For example, with a radial gradient, (which is a color transition in a circular shape) it may be useful to set the center point. To set these points, use the GradientExtent subroutine. + +

    The GradientRolloffPower subroutine uses an exponent (the power argument) to control how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. + +

    More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity]. + +

    The following table summarizes the default values of the different fill attributes (such as color) for each fill style: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DefaultEmptyEmpty/PickableSolidHatchedGradientTextureImage +
    Fill ColorN/AN/ABlackBlackBlackN/AN/A +
    SecondaryN/AN/AN/ATransparentWhiteN/AN/A +
    Mouse Events?Always NoAlways YesNoNoNoNoNo +
    Size-to-fitN/AN/AN/AN/AYes, if no start point, No, if start point specifiedAlways NoNo +
    Gradient End PointsN/AN/AN/AN/ANo DefaultN/AN/A +
    Rolloff PowerN/AN/AN/AN/A1N/AN/A +
    +

    drawingObj.FillStyle(
      id
      )

    Parameters
    +
    id +
    The id (a long) of the fillstyle. +
    +


    FillTexture

    +DADrawingSurface Class +

    Specifies a fill image that will be tiled (according to its bounding box) and/or clipped to fit within the extents of the path. It is not scaled. If the image is transformed before being passed in, it will retain its position relative to the shape. + +

    drawingObj.FillTexture(
      image
      )

    Parameters
    +
    image +
    The DAImage used as the fill. +
    +


    FixedFillScale

    +DADrawingSurface Class +

    Specifies that the fill pattern will not be be scaled. The fill style attributes are applied directly to the drawn object, regardless of size. + +

    drawingObj.FixedFillScale( )


    Font

    +DADrawingSurface Class +

    Sets the font attributes. + +

    drawingObj.Font(
      face,
      size,
      bold,
      italic,
      underline,
      strikethrough
      )

    Parameters
    +
    face +
    The name of the font family (this is a string). +
    size +
    The size of the font, in points. +
    bold +
    A boolean that turns the bold attribute on or off. +
    italic +
    A boolean that turns the italic attribute on or off. +
    underline +
    A boolean that turns the underline attribute on or off. +
    strikethrough +
    A boolean that turns the strikethrough attribute on or off. +
    +


    GradientExtent

    +DADrawingSurface Class +

    Specifies a length and a direction for a gradient to transition between colors. The starting color is unblended, as is the ending color. Between the points, the colors are blended according to the gradient type. + +

    drawingObj.GradientExtent(
      startX,
      startY,
      endX,
      endY
      )

    Parameters
    +
    startX +
    The starting x-coordinate(a double). +
    startY +
    The starting y-coordinate (a double). +
    endX +
    The ending x-coordinate (a double). +
    endY +
    The ending y-coordinate (a double). +
    +
    See Also
    +

    FillStyle + +


    GradientExtentPoints

    +DADrawingSurface Class +

    Same as GradientExtent except that the arguments are DAPoint2 objects. + +

    drawingObj.GradientExtentPoints(
      startPoint,
      endPoint
      )

    Parameters
    +
    startPoint +
    The DAPoint2 object that specifies the location of the starting color. +
    endPoint +
    The DAPoint2 object that specifies the location of the ending color. +
    +


    GradientRolloffPowerAnim

    +DADrawingSurface Class +

    Controls the sharpness of the transition between the colors. + +

    drawingObj.GradientRolloffPowerAnim(
      power
      )

    Parameters
    +
    power +
    A number (a double) that is an exponent controlling how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity]. +
    +


    GradientRolloffPower

    +DADrawingSurface Class +

    Same as GradientRolloffPowerAnim except that power is a non-animated number (a double). + +

    drawingObj.GradientRolloffPower(
      power
      )


    GradientShape

    +DADrawingSurface Class +

    Specifies a polygon that is progressively scaled to control the shape of the color transition. This applies only if the FillStyle subroutine was invoked with an id of 14 (ShapeGradient). + +

    drawingObj.GradientShape(
      pts
      )

    Parameters
    +
    pts +
    The array (variant) of points specifying the polygon. +
    +


    HorizontalFillScale

    +DADrawingSurface Class +

    Stretches or compresses the fill pattern horizontally to match the width of the drawn object's bounding box. + +

    drawingObj.HorizontalFillScale( )

    Remarks
    +

    There is no guarantee that the entire fill style will appear in drawn object because many fill regions are not rectangular. + +


    Line

    +DADrawingSurface Class +

    Draws a line segment from the starting point to the ending point, using the current LineDashStyle. + +

    drawingObj.Line(
      startX,
      startY,
      endX,
      endY
      )

    Parameters
    +
    startX +
    The starting point's x-coordinate (a double). +
    startY +
    The starting point's y-coordinate (a double). +
    endX +
    The ending point's x-coordinate (a double). +
    endY +
    The ending point's y-coordinate (a double). +
    +


    LineColor

    +DADrawingSurface Class +

    Sets the color of the line. + +

    drawingObj.LineColor(
      col
      )

    Parameters
    +
    col +
    The DAColor object that sets the line color. +
    +


    LineDashStyle

    +DADrawingSurface Class +

    Sets the dash style of the line. The parameter specifying the dash style, id, can be any of the following possible styles: + + + + + + + + + + + + + + +
    IDDash Style +
    0Null +
    1Solid +
    2Dash +
    +

    drawingObj.LineDashStyle(
      id
      )

    Parameters
    +
    id +
    The id (a long) of the selected dash style. +
    +


    LineEndStyle

    +DADrawingSurface Class +

    Sets the end style of the line. The parameter specifying the end style, id, can be any of the following possible styles: + + + + + + + + + + + + + + +
    IDEnd Style +
    0Flat +
    1Square +
    2Round +
    +

    drawingObj.LineEndStyle(
      id
      )

    Parameters
    +
    id +
    The number (a long) specifying which end style to use. +
    +


    LineJoinStyle

    +DADrawingSurface Class +

    Sets the join style of the line. The parameter specifying the join style, id, can be any of the following possible styles: + + + + + + + + + + + + + + +
    IDJoin Style +
    0Bevel +
    1Round +
    2Miter +
    +

    drawingObj.LineJoinStyle(
      id
      )

    Parameters
    +
    id +
    The id (a long) of the selected join style. +
    +


    LinePoints

    +DADrawingSurface Class +

    Same as Line except that the arguments are DAPoint2 objects (they can be animated). + +

    drawingObj.LinePoints(
      pt1,
      pt2
      )

    Parameters
    +
    pt1 and pt2 +
    The DAPoint2 objects specifying the line's starting and ending points. +
    +


    LineWidth

    +DADrawingSurface Class +

    Sets the width of the current line, in points. Line widths are affected by Transform. For example, scaling by 2 will double the line width. + +

    drawingObj.LineWidth(
      width
      )

    Parameters
    +
    width +
    The width of the current line, in points. +
    +


    OpacityAnim

    +DADrawingSurface Class +

    Sets the opacity used by drawing commands. In contrast to the DAImage Opacity function, this subroutine affects what will be drawn rather than what has been drawn. + +

    drawingObj.OpacityAnim(
      opac
      )

    Parameters
    +
    opac +
    The DANumber object that sets the opacity. Values can range from 0.0 (fully transparent) to 1.0 (fully opaque). This must be an animated number. +
    +


    Opacity

    +DADrawingSurface Class +

    Same as OpacityAnim except that opac is a non-animated number (a double). + +

    drawingObj.Opacity(
      opac
      )


    Oval

    +DADrawingSurface Class +

    Draws an outline of an oval and fills it, using the current fill and border styles. + +

    The following example uses VBScript to draw an oval with a hatch cross fill style: + +

    
    +
    +<HTML>
    +<HEAD>
    +<TITLE>Oval with Hatch Cross Fill Style</TITLE>
    +</HEAD>
    +
    +<BODY>
    +
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAViewer"
    +        STYLE="position:absolute; left:10; top:10;width:450;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +</DIV>
    +
    +<SCRIPT LANGUAGE="VBScript">
    +
    +sub window_onLoad 
    +
    +  Set s = DAViewer.MeterLibrary
    +  Set ds = s.NewDrawingSurface()
    +
    +  ds.FillColor          s.ColorRgb255(0,0,200)
    +  ds.SecondaryFillColor s.ColorRgb255(255,0,0)
    +
    +  ds.Text "Hatch Cross", -.04, .06
    +  ds.FillStyle 7
    +  ds.Oval -.04, -.04, .1, .1
    +  
    +  DAViewer.Image = ds.Image
    +  DAViewer.Start
    +
    +end sub
    +
    +</SCRIPT>
    +
    +</BODY>
    +</HTML>
    +
    +
    +

    drawingObj.Oval(
      xPos,
      yPos,
      width,
      height
      )

    Parameters
    +
    xPos +
    The x-coordinate (a double) of the lower-lefthand corner of the oval's bounding box. +
    yPos +
    The y-cooordiate (a double) of the lower-lefthand corner of the oval's bounding box. +
    width +
    The width of the oval, in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    height +
    The height of the oval, in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    +


    OverlayImage

    +DADrawingSurface Class +

    Overlays a DAImage object onto the current drawing surface. This means the image can be animated. + +

    drawingObj.OverlayImage(
      img
      )

    Parameters
    +
    img +
    The DAImage image. +
    +


    PieDegrees

    +DADrawingSurface Class +

    Renders a closed path that traces a segment of an oval and connects it to the origin. (In effect, it is a pie-shaped wedge). + +

    The following example uses VBScript to draw a series of wedges, each with a solid-red fill: + +

    
    +
    +<HTML>
    +<HEAD>
    +<TITLE>Demonstration of PieDegrees Subroutine</TITLE>
    +</HEAD>
    +
    +<BODY>
    +
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAViewer"
    +        STYLE="position:absolute; left:10; top:10;width:450;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +</DIV>
    +
    +<SCRIPT LANGUAGE="VBScript">
    +
    +sub window_onLoad 
    +
    +  Set s = DAViewer.MeterLibrary
    +  Set ds = s.NewDrawingSurface()
    +
    +  ds.FillStyle          1
    +  ds.FillColor          s.ColorRgb255(255,0,0)
    +  
    +  ds.Text "Degrees 0", -.04, .06
    +  ds.PieDegrees 0, .05, 0, 0, .01, .01
    +  
    +  ds.Text "Degrees 45", -.04, .04
    +  ds.PieDegrees 0, .03, 0, 45, .01, .01
    +
    +  ds.Text "Degrees 90", -.04, .02
    +  ds.PieDegrees 0, .01, 0, 90, .01, .01
    +
    +  ds.Text "Degrees 180", -.04, 0
    +  ds.PieDegrees 0, -.01, 0, 180, .01, .01
    +
    +  ds.Text "Degrees 270", -.04, -.02
    +  ds.PieDegrees 0, -.03, 0, 270, .01, .01
    +
    +  ds.Text "Degrees 360", -.04, -.04
    +  ds.PieDegrees 0, -.05, 0, 360, .01, .01
    +
    +  DAViewer.Image = ds.Image
    +  DAViewer.Start
    +
    +end sub
    +
    +</SCRIPT>
    +
    +</BODY>
    +</HTML>
    +
    +
    +

    drawingObj.PieDegrees(
      xPos,
      yPos,
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    xPos +
    The x-coordinate (a double) of the lower-lefthand corner of the oval's bounding box. +
    yPos +
    The y-coordinate (a double) of the lower-lefthand corner of the oval's bounding box. +
    startAngle +
    The starting angle, in degrees (a double) of the wedge. +
    endAngle +
    The ending angle, in degrees (a double) of the wedge. +
    arcWidth +
    The double representing the arc width, expressed in meters, or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. +
    arcHeight +
    The double representing the arc height, expressed in meters, or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. +
    +


    PieRadians

    +DADrawingSurface Class +

    Same as PieDegrees except that startAngle and endAngle are expressed in radians. + +

    drawingObj.PieRadians(
      xPos,
      yPos,
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )


    Polygon

    +DADrawingSurface Class +

    Draws and fills a polygon, using the current fill and border styles. The points can be specified as a variant array of either DAPoint2[] objects or doubles. The array of doubles array must contain (2 * numPts) because it represents (x, y) coordinate pairs. + +

    drawingObj.Polygon(
      points
      )

    Parameters
    +
    points +
    The array (variant) of either DAPoint2[] objects or (x, y) coordinates (doubles). +
    +


    Polyline

    +DADrawingSurface Class +

    Draws a set of line segments according to the current line style. The points can be specified as a variant array of either DAPoint2[] objects or doubles. The array of doubles array must contain (2 * numPts) because it represents (x, y) coordinate pairs. + +

    drawingObj.Polyline(
      points
      )

    Parameters
    +
    points +
    The array (variant) of either DAPoint2[] objects or (x, y) coordinates (doubles). +
    +


    Rect

    +DADrawingSurface Class +

    Draws and fills a rectangle, using the current fill and border styles. + +

    drawingObj.Rect(
      xPos,
      yPos,
      width,
      height
      )

    Parameters
    +
    xPos +
    A double that is the x-coordinate of the lower-lefthand corner of the rectangle's bounding box. +
    yPos +
    A double that is the y-coordinate of the lower-lefthand corner of the rectangle's bounding box. +
    width +
    The width of the rectangle (a double), in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    height +
    The height of the rectangle (a double), in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    +


    Reset

    +DADrawingSurface Class +

    Resets the local context and sets all attributes to their defaults (nested transformations from the context still apply although local transformations are reset). This subroutine affects only the state used for upcoming drawing methods, not the current drawing. + +

    drawingObj.Reset( )


    RestoreGraphicsState

    +DADrawingSurface Class +

    Restores the drawing surface's graphics state (the font, color, fillstyles, and so on) to what it was before the last SaveGraphicsState. + +

    drawingObj.RestoreGraphicsState( )


    RoundRect

    +DADrawingSurface Class +

    Draws a rectangle with rounded, rather than square, corners. The corners are considered to be segments of an oval (in effect, an arc). + +

    drawingObj.RoundRect(
      xPos,
      yPos,
      width,
      height,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    xPos +
    A double that is the x-coordinate of the lower-lefthand corner of the rectangle's bounding box. +
    yPos +
    A double that is the y-coordinate of the lower-lefthand corner of the rectangle's bounding box. +
    width +
    A double that is the width of the rectangle, in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    height +
    A double that is the the height of the rectangle, in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    arcWidth +
    The arc width (a double) in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    arcHeight +
    The arc height (a double), in either pixels or meters, depending on whether the PixelLibrary or the MeterLibrary is selected. +
    +


    SaveGraphicsState

    +DADrawingSurface Class +

    Saves the drawing surface's current graphics state by pushing it onto an internal stack. + +

    drawingObj.SaveGraphicsState( )


    SecondaryFillColor

    +DADrawingSurface Class +

    Specifies a secondary fill color. For gradient fills, this is the second color used for blending. For hatch fills, it is the color used to fill around the hatch marks. For empty fills, it is always transparent. It does not apply to solid fills. + +

    drawingObj.SecondaryFillColor(
      val
      )

    Parameters
    +
    val +
    The DAColor object that is the secondary color. +
    +
    See Also
    +

    FillColor + +


    Text

    +DADrawingSurface Class +

    Creates a filled region from the text outlines, using the current fontstyle to determine the size of the font and the face. Color and other attributes come from the current fill and border styles. Note that the color attribute of the current font style is ignored. The text's starting location is given by xPos, yPos. + +

    drawingObj.Text(
      string,
      xPos,
      yPos
      )

    Parameters
    +
    string +
    The text used as the outline (a string). +
    xPos +
    The starting point's x-coordinate (a double). +
    yPos +
    The starting point's y-coordinate (a double). +
    +


    TextPoint

    +DADrawingSurface Class +

    Same as Text except that the starting location is given by a DAPoint2 object. + +

    drawingObj.TextPoint(
      string,
      pt
      )

    Parameters
    +
    string +
    The text used as the outline (a string). +
    pt +
    The DAPoint2 object designating the text's starting location. This can be animated. +
    +


    Transform

    +DADrawingSurface Class +

    Transform operations include translation, scaling, and/or shearing. The subroutine affects only the state used for upcoming drawing methods, not the current drawing. This operation is cumulative. + +

    drawingObj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform2 object that is the two-dimensional transform. +
    +


    VerticalFillScale

    +DADrawingSurface Class +

    Stretches or compresses the fill pattern vertically to match the width of the drawn object's bounding box. + +

    drawingObj.VerticalFillScale( )

    Remarks
    +

    There is no guarantee that the entire fill style will appear in drawn object because many fill regions are not rectangular. + +

    DADrawingSurface Properties

    +

    bullet1.gifBorderStyle
    +

    bullet1.gifClipMatte
    +

    bullet1.gifFontStyle
    +

    bullet1.gifHatchFillTransparent
    +

    bullet1.gifImage
    +

    bullet1.gifLineStyle
    +

    bullet1.gifLocalContextImage
    +

    bullet1.gifMouseEventsEnabled
    +


    BorderStyle

    +DADrawingSurface Class +

    A DALineStyle object that specifies how the outline of a filled region will be drawn. The color specified in the line style determines the color of the border. (Interior fills are specified with FillStyle.) For an alternative way of setting border attributes, see BorderColor, BorderDashStyle, BorderJoinStyle, and BorderWidth. + +

    drawingObj.BorderStyle


    ClipMatte

    +DADrawingSurface Class +

    Specifies an image matte (or masking stencil) to the drawing context. Note that, unlike the DAImage Clip function, this property affects what will be drawn rather than what has already been drawn. + +

    drawingObj.ClipMatte


    FontStyle

    +DADrawingSurface Class +

    A DAFontStyle (animated) object that sets font attributes such as face, size, and color. + +

    drawingObj.FontStyle

    See Also
    +

    Font + +


    HatchFillTransparent

    +DADrawingSurface Class +

    A boolean specifying whether the hatch fill is transparent or not. + +

    drawingObj.HatchFillTransparent


    Image

    +DADrawingSurface Class +

    Returns the DAImage object (animated image) associated with the DrawingSurface. + +

    drawingObj.Image


    LineStyle

    +DADrawingSurface Class +

    Adds a DALineStyle to the graphics state. A DALineStyle object determines the line color, dash style, width, endpoint, and join style. Setting this property affects how the line drawing commands (such as ArcRadians and Polyline) are drawn. + +

    drawingObj.LineStyle

    See Also
    +

    LineColor, LineDashStyle, LineEndStyle, LineJoinStyle, LineWidth + +


    LocalContextImage

    +DADrawingSurface Class +

    Returns an image that corresponds to what was drawn since the latest SaveGraphicsState call. This property is useful for instancing and procedural tiling. + +

    drawingObj.LocalContextImage


    MouseEventsEnabled

    +DADrawingSurface Class +

    Specifies whether mouseover and selection events will be detected for the objects subsequently drawn. TRUE means that events are detected and FALSE means they are not. + +

    drawingObj.MouseEventsEnabled

    Relevant Functions from the DAStatics Class

    +

    lib.ImportDirectDrawSurface(dds, updateEvent) +

    lib.NewDrawingSurface() + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0043.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0043.HTM new file mode 100644 index 0000000..1464950 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0043.HTM @@ -0,0 +1,194 @@ + + +DAEndStyle Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAEndStyle Class +DirectAnimation Animated Header --DAEndStyle Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DADrawingSurface Class
    +*Next Topic: DAEvent Class
    +

    +

    +

    DAEndStyle Class

    +
    +

    Creates a DAEndStyle object that can be animated to vary over time. It defines the style (shape) applied to the end of line segments when they are drawn. + +

    Use the DAEndStyle object with the end function of the DALineStyle class. + +

    This class inherits from DABehavior. + +

    There are no DAEndStyle functions, except the functions it inherits from the DABehavior class. + + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAEndStyle. + +

    lib.EndStyleFlat +

    lib.EndStyleRound +

    lib.EndStyleSquare + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0044.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0044.HTM new file mode 100644 index 0000000..5da547f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0044.HTM @@ -0,0 +1,267 @@ + + +DAEvent Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAEvent Class +DirectAnimation Animated Header --DAEvent Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAEndStyle Class
    +*Next Topic: DAFontStyle Class
    +

    +

    +

    DAEvent Class

    +
    +

    Creates a DAEvent object that represents an event. Events identify specific times, states or user actions and are used to specify when given actions should occur. Typically, you use events with the Until and UntilEx functions (in the DAStatics class) to create behaviors that change as a result of the event. For example, you can change the color of an object when the user presses a mouse button by using the LeftButtonDown property and the UntilEx function. Every event, when it occurs, returns some event data. This data may or may not be meaningful, depending on the event. For example, LeftButtonDown does not return any meaningful data. + +

    You can combine existing events to create new, more complex events. For example, the AndEvent function in DAStatics lets you combine two events so that the resulting event occurs only if both of the original events occurred simultaneously. The data produced by an event can only be examined within the notifier. + +

    +

    DAEvent Functions

    +

    bullet1.gifAttachData
    +

    bullet1.gifNotify
    +

    bullet1.gifScriptCallback
    +

    bullet1.gifSnapshot
    +


    AttachData

    +DAEvent Class +

    Takes a DABehavior object and produces a new event. The new event occurs at the same time as the original event, but its data is now the data that was specified in the call to AttachData. This allows an application to associate arbitrary client data with an event and know that it will be delivered to the notifier when the event occurs. + +

    eventObj.AttachData(
      data
      )

    Parameters
    +
    data +
    The DABehavior object. +
    +
    Return Values
    +

    Returns a DAEvent object. The event data is the event data of the new event. + + +

    See Also
    +

    DAUserData + +


    Notify

    +DAEvent Class +

    Creates a new event. This occurs when the original event occurs. It then calls the notifier and uses the result as its event data. + +

    eventObj.Notify(
      notifier
      )

    Parameters
    +
    notifier +
    Returns the new behavior. +
    +
    Return Values
    +

    Returns the DAEvent object. The event data is the time the event fired and the new behavior. + + +


    ScriptCallback

    +DAEvent Class +

    Invokes VBScript or JScript functions from within animations. + +

    eventObj.ScriptCallback(
      function,
      language
      )

    Parameters
    +
    function +
    The function (a string) to be called. +
    language +
    The name (a string) of the scripting language. +
    +
    Return Values
    +

    Returns a DAEvent object. When this event occurs, the data it produces has a trivial value. + + +


    Snapshot

    +DAEvent Class +

    When called on an instance of a behavior, samples the given behavior and returns it as a constant behavior with the value as data. The event time of the new event is when the original event occurs. + +

    eventObj.Snapshot(
      a
      )

    Parameters
    +
    a +
    The DABehavior object which will be sampled when the function is invoked. +
    +
    Return Values
    +

    Returns the DAEvent object. The event data is the value of the behavior at the time it was sampled, returned as a constant behavior. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAEvent. + +

    lib.AndEvent(first, second) +

    lib.KeyDown(keyCode) +

    lib.KeyUp(keyCode) +

    lib.NotEvent(ev) +

    lib.OrEvent(first, second) +

    lib.Predicate(bool) +

    lib.ThenEvent(e1, e2) +

    lib.TimerAnim(timeout) +

    lib.Timer(timeout) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAEvent. + +

    lib.Always +

    lib.LeftButtonDown +

    lib.LeftButtonUp +

    lib.Never +

    lib.RightButtonDown +

    lib.RightButtonUp + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0045.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0045.HTM new file mode 100644 index 0000000..ffbafd1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0045.HTM @@ -0,0 +1,321 @@ + + +DAFontStyle Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAFontStyle Class +DirectAnimation Animated Header --DAFontStyle Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAEvent Class
    +*Next Topic: DAGeometry Class
    +

    +

    +

    DAFontStyle Class

    +
    +

    The DAFontStyle class is used to specify how strings will be rendered into images. These functions are similar to the HTML tags specifying the font face (called here a family), size, color and attributes (bold and italic). + +

    +

    DAFontStyle Functions

    +

    bullet1.gifAntiAliasing
    +

    bullet1.gifBold
    +

    bullet1.gifColor
    +

    bullet1.gifFamilyAnim
    +

    bullet1.gifFamily
    +

    bullet1.gifItalic
    +

    bullet1.gifSizeAnim
    +

    bullet1.gifSize
    +

    bullet1.gifStrikethrough
    +

    bullet1.gifUnderline
    +

    bullet1.gifWeightAnim
    +

    bullet1.gifWeight
    +


    AntiAliasing

    +DAFontStyle Class +

    Determines whether or not the font will be antialiased. If antialias is 0 (the default), there is no antialiasing. If it is 1, there is antialiasing. + +

    fontstyleObj.AntiAliasing(
      antialias
      )

    Parameters
    +
    antialias +
    A double that can be either 0 or 1. +
    +
    Return Values
    +

    Returns the DAFontStyle object. + + +


    Bold

    +DAFontStyle Class +

    Specifies that, when the string is rendered into an image, it will be in bold. + +

    fontstyleObj.Bold( )

    Return Values
    +

    Returns the DAFontStyle object. + + +


    Color

    +DAFontStyle Class +

    Specifies the color of the string when it is rendered into an image. Because this is a DAColor object, the color can vary over time. + +

    fontstyleObj.Color(
      color
      )

    Parameters
    +
    color +
    The DAColor object specifying the color of the string. +
    +
    Return Values
    +

    Returns the DAFontStyle object. + + +


    FamilyAnim

    +DAFontStyle Class +

    Specifies the font face that will be used when the image is rendered. Because this is a DAString object, the face can vary over time. + +

    fontstyleObj.FamilyAnim(
      face
      )

    Parameters
    +
    face +
    The DAString object specifying the font face. +
    +
    Return Values
    +

    Returns the DAFontStyle object. + + +


    Family

    +DAFontStyle Class +

    Same as FamilyAnim except that face is a non-animated string. For example, consider the following JScript code: +

    
    +fs = m.DefaultFont.Family("Arial").Color(m.Red).Bold();
    +
    +

    fontstyleObj.Family(
      face
      )


    Italic

    +DAFontStyle Class +

    Specifies that, when the string is rendered into an image, it will be italicized. + +

    fontstyleObj.Italic( )

    Return Values
    +

    Returns the DAFontStyle object. + + +


    SizeAnim

    +DAFontStyle Class +

    Specifies the size of the font, in points. Because this is a DANumber object, the size can vary over time. + +

    fontstyleObj.SizeAnim(
      points
      )

    Parameters
    +
    points +
    The DANumber object specifying the size of the font. +
    +
    Return Values
    +

    Returns the DAFontStyle object. + + +


    Size

    +DAFontStyle Class +

    Same as SizeAnim except that points is a non-animated number (a double). + +

    fontstyleObj.Size(
      points
      )


    Strikethrough

    +DAFontStyle Class +

    Specifies that, when the string is rendered into an image, it will be struck through. + +

    fontstyleObj.Strikethrough( )

    Return Values
    +

    Returns the DAFontStyle object. + + +


    Underline

    +DAFontStyle Class +

    Specifies that, when a string is rendered into an image, it will be underlined. + +

    fontstyleObj.Underline( )

    Return Values
    +

    Returns the DAFontStyle object. + + +


    WeightAnim

    +DAFontStyle Class +

    Specifies the thickness of the boldness of the font. This attribute can be thought of as an animated bold. Note that the font itself has specific, discrete settings for the weight. Varying the value of the weight results in discrete, rather than continuous, changes. The DAFontStyle.Bold function always overrides this setting. + +

    fontstyleObj.WeightAnim(
      weight
      )

    Parameters
    +
    weight +
    A DANumber object that specifies the thickness of the boldness of the font. The value can range from 0 (the thinnest) to 1 (the thickest). +
    +
    Return Values
    +

    Returns the DAFontStyle object. + + +

    See Also
    +

    Weight + +


    Weight

    +DAFontStyle Class +

    Same as WeightAnim except that the argument is non-animated (a double). + +

    fontstyleObj.Weight( )

    See Also
    +

    WeightAnim + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAFontStyle. + +

    lib.FontAnim(face, size, color) +

    lib.Font(face, size, color) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAFontStyle. + +

    lib.DefaultFont + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0046.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0046.HTM new file mode 100644 index 0000000..d29f0e9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0046.HTM @@ -0,0 +1,385 @@ + + +DAGeometry Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAGeometry Class +DirectAnimation Animated Header --DAGeometry Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAFontStyle Class
    +*Next Topic: DAImage Class
    +

    +

    +

    DAGeometry Class

    +
    +

    The DAGeometry class is a class of three-dimensional objects that includes surfaces, lights, sounds, their attributes, and/or combinations of these elements. Like other DirectAnimation objects, the value of the elements of the geometry can change over time. + +

    In general, every geometry behavior is spatially infinite and of infinite resolution. Conceptually, each of the infinitely many points in the geometry has associated with it an opacity value, a color, a normal (used for lighting computations), a texture coordinate, a detectability value, and a single-channel sound emanating from that point (generally, this is silence). + +

    Surface geometry is either detectable or not. If a surface is detectable, the geometry fires an event whenever the cursor passes over a surface point. Neither lights nor sounds are detectable (or pickable). + +

    Light geometries include ambient lights, directional lights, point lights, and spotlights. Light geometries can be attributed with both color and distance attenuation. + +

    A texture in a geometry is an image, the points of which are mapped to the surface of the three-dimensional object represented by the geometry. If there is no surface in the geometry, the texture is ignored. + +

    A geometry can also be a sound. The sound is audible when the geometry is within the appropriate range of a microphone behavior. + +

    The bounding box query is used to construct and compose media, and different types of images and behaviors provide specific bounding boxes. This means, for example, that the bounding box of an image is not defined as the smallest axis-aligned, enclosing region of the non-transparent parts of an image. Instead, bounding boxes are defined on a per-operation basis. The emptyGeometry object, for example, has its own definition of a bounding box, defined below. + +

    This class inherits from DABehavior. + + +

    +

    DAGeometry Functions

    +

    bullet1.gifDiffuseColor
    +

    bullet1.gifLightAttenuationAnim
    +

    bullet1.gifLightAttenuation
    +

    bullet1.gifLightColor
    +

    bullet1.gifOpacityAnim
    +

    bullet1.gifOpacity
    +

    bullet1.gifPickable
    +

    bullet1.gifRender
    +

    bullet1.gifRenderSound
    +

    bullet1.gifTexture
    +

    bullet1.gifTransform
    +

    bullet1.gifUndetectable
    +


    DiffuseColor

    +DAGeometry Class +

    Specifies the diffuse color of the new DAGeometry object. The diffuse color is the diffuse (or matte) reflective color of the surface. By default, the diffuse color is white. The bounding box is the bounding box of the underlying geometry. + +

    geometryObj.DiffuseColor(
      col
      )

    Parameters
    +
    col +
    The DAColor object that is the color. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    This attribute overrides previous values. + +


    LightAttenuationAnim

    +DAGeometry Class +

    Creates a DAGeometry in which any light sources have the given attenuation. The new attenuation is set to 1 / (const + linear ´ d + quadratic ´ d2) where d is the distance from the light to the object. By default, the attenuation coefficients are (1, 0, 0), which means no light attenuation. The bounding box is the bounding box of the underlying geometry. + +

    geometryObj.LightAttenuationAnim(
      const,
      linear,
      quadratic
      )

    Parameters
    +
    const, linear, and quadratic +
    The DANumber objects specifying the attenuation of a light source. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    An attenuation of (1, 1, 0) gives a linear attenuation that is useful for light falloff in a room. An attenuation of (1, 0, 1) gives a quadratic attenuation that simulates lights that are in the open, such as street lamps and headlights. This attribute overrides previous values. + +


    LightAttenuation

    +DAGeometry Class +

    Same as LightAttenuationAnim except that the arguments are non-animated numbers (doubles). + +

    geometryObj.LightAttenuation(
      const,
      linear,
      quadratic
      )


    LightColor

    +DAGeometry Class +

    Creates a new DAGeometry object in which all embedded lights have the specified color. By default, a light source is white. The bounding box is the bounding box of the underlying geometry. + +

    geometryObj.LightColor(
      col
      )

    Parameters
    +
    col +
    The DAColor object. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    This attribute overrides previous values. + +


    OpacityAnim

    +DAGeometry Class +

    Sets the opacity value for all surfaces to opac. Opacity values can range from 0.0 to 1.0. If the corresponding DANumber object has a value outside this range, the integer part of the value is discarded and only the fractional part is used. By default, the opacity is 1. + +

    geometryObj.OpacityAnim(
      opac
      )

    Parameters
    +
    opac +
    The DANumber object representing the opacity value. The geometry is fully opaque if the value is 1, and fully transparent if the value is 0. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    This function composes values. The resulting opacity is the new value times the old value. + +


    Opacity

    +DAGeometry Class +

    Same as OpacityAnim except that opac is a non-animated number (a double). + +

    geometryObj.Opacity(
      opac
      )


    Pickable

    +DAGeometry Class +

    Makes a DAGeometry object pickable. Use this function along with the returned DAPickableResult object to create a reactive behavior (This means that, when the mouse is in the pickable area, an event occurs). + +

    The behavior of a "pickable" image is identical to that of an ordinary image until the mouse is in the pickable region and there are no geometries (other than undetectable ones) between it and the mouse. Then, an event (created in DAPickableResult) occurs. + +

    geometryObj.Pickable( )

    Return Values
    +

    Returns the DAPickableResult object. + + +


    Render

    +DAGeometry Class +

    Creates a DAImage object that is a two-dimensional projection of geometryObj. The camera parameter defines how the geometry is projected into two dimensions. The resulting image is infinite in extent. The bounding box of a rendered geometry is the axis-aligned extent of the projection of the three-dimensional bounding box onto the image plane. + +

    geometryObj.Render(
      camera
      )

    Parameters
    +
    camera +
    The DACamera object. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    RenderSound

    +DAGeometry Class +

    Creates a DASound object that represents the sound associated with geometryObj as detected by the given microphone. + +

    geometryObj.RenderSound(
      mic
      )

    Parameters
    +
    mic +
    The DAMicrophone object. +
    +
    Return Values
    +

    Returns the DASound object. + + +


    Texture

    +DAGeometry Class +

    Creates a DAGeometry object by mapping the given image, as defined by texture, to the surfaces of the original geometry. If the geometry has no surfaces, the texture is ignored. If the original geometry already has a texture, the new texture completely overlays the original. Texture maps have no effect when applied to a geometry that lacks texture coordinates. By default, a geometry has no texture. The bounding box is the bounding box of the underlying geometry. + +

    geometryObj.Texture(
      image
      )

    Parameters
    +
    image +
    The DAImage object. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    This attribute overrides previous values. + +


    Transform

    +DAGeometry Class +

    Creates a DAGeometry object that is the result of applying the given three-dimensional transformation to the original geometry behavior. The transformation applies to all points in the geometry, including those associated with the positions and orientations of light sources, textures, and sounds. The bounding box of a transformed geometry is the axis-aligned box enclosing the box that is the result of applying the transformation to the underlying geometry. + +

    geometryObj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform3 object. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + +


    Undetectable

    +DAGeometry Class +

    Creates a new, undetectable DAGeometry object from the original geometry. An undetectable geometry means that, while the geometry is still as visible or as audible as before, any attempts to pick it are ignored. + +

    geometryObj.Undetectable( )

    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    The Undetectable function is useful for specifying which objects are detectable and which are not. For example, suppose a semi-transparent green sphere is used to simulate a glow around an object. Because this sphere encloses the object, the object itself would be unpickable. Instead, the pick information would always be for the sphere. Tagging the sphere as unpickable allows the object itself to be picked. This attribute overrides previous values. + +

    DAGeometry Properties

    +

    bullet1.gifBoundingBox
    +


    BoundingBox

    +DAGeometry Class +

    A read-only property with a DABbox3 value that creates a bounding box object defining the axis-aligned bounding box enclosing all non-transparent portions of the geometryObj. + +

    geometryObj.BoundingBox

    Return Values
    +

    Returns the DABbox3 object. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAGeometry. + +

    lib.ImportGeometry(url) +

    lib.ImportGeometryAsync(url, geoStandIn) +

    lib.SoundSource(sound) +

    lib.SpotLightAnim(fullcone, cutoff) +

    lib.SpotLight(fullcone, cutoff) +

    lib.UnionGeometry(g1, g2) +

    lib.UnionGeometryArray(geoArray) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAGeometry. + +

    lib.AmbientLight +

    lib.DirectionalLight +

    lib.EmptyGeometry +

    lib.PointLight + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0047.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0047.HTM new file mode 100644 index 0000000..82783b0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0047.HTM @@ -0,0 +1,373 @@ + + +DAImage Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAImage Class +DirectAnimation Animated Header --DAImage Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAGeometry Class
    +*Next Topic: DAImportationResult Class
    +

    +

    +

    DAImage Class

    +
    +

    Creates a DAImage object that represents a (potentially) animated image. Much like a bitmap, an image is a two-dimensional picture composed of individual picture elements. However, because it can be animted, the value of the picture elements can change over time. + +

    Every DAImage object consists of an infinite set of two-dimensional points, each representing a picture element and each having color, opacity, and detectability attributes. Colors in an image are defined using DAColor objects. Opacity values are DANumber objects, and can range in value from 0 through 1, with 0 for fully transparent and 1 for fully opaque. Only points that are "non-transparent" have any visible effect when the image is output or combined with other images. + +

    Points in the image are either detectable or not. If a point is detectable, the image fires a pick event whenever the mouse passes over it. + +

    The bounding box operation is used to construct and compose media, and different types of images and behaviors provide specific bounding boxes. This means, for example, that the bounding box of an image is not defined as the smallest axis-aligned, enclosing region of the non-transparent parts of an image. Instead, bounding boxes are defined on a per-operation basis. + +

    This class inherits from DABehavior. + +

    +

    DAImage Functions

    +

    bullet1.gifBoundingBox
    +

    bullet1.gifClip
    +

    bullet1.gifClipPolygonImage
    +

    bullet1.gifCrop
    +

    bullet1.gifMapToUnitSquare
    +

    bullet1.gifOpacityAnim
    +

    bullet1.gifOpacity
    +

    bullet1.gifPickable
    +

    bullet1.gifPickableOccluded
    +

    bullet1.gifTile
    +

    bullet1.gifTransform
    +

    bullet1.gifUndetectable
    +


    BoundingBox

    +DAImage Class +

    Creates a DABbox2 object that defines the box that encloses all non-transparent portions of the DAImage object. + +

    imageObj.BoundingBox

    Return Values
    +

    Returns the DABbox2 object. + + +


    Clip

    +DAImage Class +

    Creates a DAImage by clipping the original image. The new image consists of the portion of the original image that is within the region(s) defined by the given matte behavior. The bounding box of an image clipped to a matte is the intersection of the matte's bounding box (the axis-aligned box that surrounds the matte), and the bounding box of the underlying image. + +

    imageObj.Clip(
      matte
      )

    Parameters
    +
    matte +
    The DAMatte object. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    ClipPolygonImage

    +DAImage Class +

    Creates a DAImage object by clipping the original image. The new image consists of the portion of the original image that is within the closed figure defined by the given DAPoint2 objects. The bounding box is the intersection of the box surrounding the points of the polygon with the box of the underlying image. + +

    imageObj.ClipPolygonImage(
      points
      )

    Parameters
    +
    points +
    The array (variant) of DAPoint2 objects representing the endpoints of the line segments that define the figure. If the first and last points are not the same, these points are implicitly connected to close the figure. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    Crop

    +DAImage Class +

    Creates a DAImage object by cropping the original image. The new image consists of the portion of the original image that is within the region given by minPt and maxPt. The bounding box of a cropped image is the intersection of the crop box and the box of the underlying image. + +

    imageObj.Crop(
      minPt,
      maxPt
      )

    Parameters
    +
    minPt and maxPt +
    The DAPoint2 objects representing the lower-left and upper-right corners of the box enclosing the portion of the original image to use. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    MapToUnitSquare

    +DAImage Class +

    Creates an image that is mapped to the unit square. This is a square at coordinates [(0,0) (1,1)]. It is commonly used for images that will be textured because a geometry's texture coordinates generally span the unit square. It is also used for transforming an image into a space where it is easy to manipulate. + +

    imageObj.MapToUnitSquare

    Return Values
    +

    Returns the DAImage object. + + +


    OpacityAnim

    +DAImage Class +

    Creates a DAImage object in which the opacity value for each point is set to the given animated number (DANumber object). By default, an image's opacity is 1 (completely opaque). The bounding box is simply the bounding box of the underlying image itself. + +

    imageObj.OpacityAnim(
      opac
      )

    Parameters
    +
    opac +
    The DANumber object representing the opacity value. The image is fully opaque if the value is 1, and fully transparent if the value is 0. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +

    Remarks
    +

    Opacity values can range from 0.0 (no opacity) to 1.0 (completely opaque). If the corresponding number behavior has a value outside this range, the integer part of the value is discarded and only the fractional part is used. This function composes values. The resulting opacity is the new value times the old value. + +


    Opacity

    +DAImage Class +

    Same as OpacityAnim except that opac is a non-animated number (a double). + +

    imageObj.Opacity(
      opac
      )


    Pickable

    +DAImage Class +

    Makes a DAImage object pickable. Use this function along with the returned DAPickableResult object to create a reactive behavior (This means that, when the mouse is in the pickable area, an event occurs). + +

    The behavior of a "pickable" image is identical to that of an ordinary image until the mouse is in the pickable region and there are no geometries (other than Undetectable ones) between it and the mouse. Then, an event (created in DAPickableResult) occurs. + +

    imageObj.Pickable( )

    Return Values
    +

    Returns the DAPickableResult object. + + +

    See Also
    +

    PickableOccluded +


    PickableOccluded

    +DAImage Class +

    Makes a DAImage object pickable when there are other images between it and the mouse. This means that the pickable image will still get the event even if the mouse is on the occluding image. + +

    imageObj.PickableOccluded( )

    Return Values
    +

    Returns the DAPickableResult object. + + +

    See Also
    +

    Pickable + +


    Tile

    +DAImage Class +

    Creates a DAImage object that consists of the original image tiled (repeated) in all directions. The bounding box is the infinite bounding box. + +

    imageObj.Tile( )

    Return Values
    +

    Returns the DAImage object. + + +


    Transform

    +DAImage Class +

    Creates a DAImage object that is the result of applying the given transformation to the points in the original image. For example, you can double the size of the opaque portion of the image by applying a transformation that scales by 2. The bounding box of a transformed image is determined by applying the transform to the bounding box of the underlying image and then enclosing the resultant quadrilateral with an axis-aligned box. + +

    imageObj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform2 object applied to the original image. +
    +
    Return Values
    +

    Returns the DAImage object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + + +


    Undetectable

    +DAImage Class +

    Creates an undetectable DAImage from the original image. + +

    imageObj.Undetectable

    Return Values
    +

    Returns the DAImage object. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAImage. + +

    lib.GradientHorizontalAnim(start, stop, power) +

    lib.GradientHorizontal(start, stop, power) +

    lib.GradientPolygon(pts, colors) +

    lib.GradientSquare(lowerLeft, upperLeft, upperRight, lowerRight) +

    lib.HatchBackwardDiagonalAnim(color, size0 +

    lib.HatchBackwardDiagonal(color, size) +

    lib.HatchCrossAnim(color, size) +

    lib.HatchCross(color, size) +

    lib.HatchDiagonalCrossAnim(color, size) +

    lib.HatchDiagonalCross(color, size) +

    lib.HatchForwardDiagonalAnim(color, size) +

    lib.HatchForwardDiagonal(color, size) +

    lib.HatchHorizontalAnim(color, size) +

    lib.HatchHorizontal(color, size) +

    lib.HatchVerticalAnim(color, size) +

    lib.HatchVertical(color, size) +

    lib.ImportImage(url) +

    lib.ImportImageAsync(url, imgStandIn) +

    lib.ImportImageAsyncColorKey(url, imgStandIn, red, green, blue) +

    lib.ImportImageColorKey(url, red, green, blue) +

    lib.ImportMovie(url) +

    lib.ImportMovieAsync(url, imgStandIn, sndStandIn) +

    lib.Overlay(i1, i2) +

    lib.OverlayArray(im) +

    lib.RadialGradientPolygonAnim(inner, outer, points, power) +

    lib.RadialGradientPolygon(inner, outer, points, power) +

    lib.RadialGradientRegularPolyAnim(inner, outer, edges, power) +

    lib.RadialGradientRegularPoly(inner, outer, edges, power) +

    lib.RadialGradientSquareAnim(inner, outer, power) +

    lib.RadialGradientSquare(inner, outer, power) +

    lib.SolidColorImage( col) +

    lib.StringImageAnim(string, font) +

    lib.StringImage(string, font) +

    Relevant properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAImage. + +

    lib.DetectableEmptyImage +

    lib.EmptyImage + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0048.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0048.HTM new file mode 100644 index 0000000..d83980f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0048.HTM @@ -0,0 +1,216 @@ + + +DAImportationResult Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAImportationResult Class +DirectAnimation Animated Header --DAImportationResult Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAImage Class
    +*Next Topic: IDABvrHook Class
    +

    +

    +

    DAImportationResult Class

    +
    +

    The DAImportationResult object includes properties that contain information about media that is being downloaded either synchronously or asynchronously. For synchronous downloads, it is used in conjunction with ImportSound and ImportMovie. For asynchronous downloads, it is used with ImportGeometryAsync, ImportImageAsync, ImportMovieAsync, and ImportSoundAsync. + +

    DAImportationResult Properties

    +

    bullet1.gifCompletionEvent
    +

    bullet1.gifDuration
    +

    bullet1.gifGeometry
    +

    bullet1.gifImage
    +

    bullet1.gifProgress
    +

    bullet1.gifSize
    +

    bullet1.gifSound
    +


    CompletionEvent

    +DAImportationResult Class +

    A read-only property with a DAEvent value that is the event that fires once a download is complete. + +

    importationResultObj.CompletionEvent


    Duration

    +DAImportationResult Class +

    A read-only property with a DANumber value that is the length of the media file being downloaded, in seconds. + +

    importationResultObj.Duration


    Geometry

    +DAImportationResult Class +

    A read-only property with a DAGeometry value that is the geometry being downloaded. + +

    importationResultObj.Geometry


    Image

    +DAImportationResult Class +

    A read-only property with a DAImage value that is the image being downloaded. + +

    importationResultObj.Image


    Progress

    +DAImportationResult Class +

    A read-only property with a DANumber value that is the percentage of the download that has been completed. A value of 0 means 0% and a value of 1 means 100%. + +

    importationResultObj.Progress


    Size

    +DAImportationResult Class +

    A read-only property with a DANumber value that is the size of the medium being downloaded, in bytes. + +

    importationResultObj.Size


    Sound

    +DAImportationResult Class +

    A read-only property with a DASound value that is the sound being downloaded. + +

    importationResultObj.Sound

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0049.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0049.HTM new file mode 100644 index 0000000..181047b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0049.HTM @@ -0,0 +1,206 @@ + + +IDABvrHook Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --IDABvrHook Class +DirectAnimation Animated Header --IDABvrHook Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAImportationResult Class
    +*Next Topic: IDASite Class
    +

    +

    +

    IDABvrHook Class

    +
    +

    Used with the DABehavior class function, Hook. The IDABvrHook object is passed in as an argument and controls the creation of the new behavior. + +

    IDABvrHook Functions

    +

    bullet1.gifNotify
    +


    Notify

    +IDABvrHook Class +

    Calls the notifier method of the object whenever the behavior is started or sampled. + +

    bvrHookObj.Notify(
      id,
      start,
      startTime,
      globalTime,
      localTime,
      sampledVal,
      currentRunningBvr
      )

    Parameters
    +
    id +
    A long that distinguishes one instance of a behavior from another. +
    start +
    A boolean that determines if the notifier method is called when the behavior starts or each time it is sampled. +
    startTime +
    A double that is the time the behavior was first run. +
    globalTime +
    A double that is the time the behavior was sampled, in global time. +
    localTime +
    A double that is the time the behavior was sampled, in local time. (If the behavior is sampled when it starts, this value is 0). +
    sampledValue +
    The value of the DABehavior object at the time it was sampled. This value is wrapped as a constant behavior. +
    currentRunningBvr +
    The DABehavior object that is currently running. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0050.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0050.HTM new file mode 100644 index 0000000..623e2c0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0050.HTM @@ -0,0 +1,199 @@ + + +IDASite Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --IDASite Class +DirectAnimation Animated Header --IDASite Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: IDABvrHook Class
    +*Next Topic: DAJoinStyle Class
    +

    +

    +

    IDASite Class

    +
    +

    Gives an application control over error and status messages. It is used with the Site property in DAStatics. + +

    IDASite Subroutines

    +

    bullet1.gifReportGC
    +

    bullet1.gifSetStatusString
    +


    ReportGC

    +IDASite Class +

    Determines whether or not there will be notification before garbage collection begins. + +

    siteObj.ReportGC(
      bStarting
      )

    Parameters
    +
    bStarting +
    A boolean that, if TRUE, means there will be notification before garbage collection and, if FALSE, means there won't. +
    +


    SetStatusString

    +IDASite Class +

    Sets the status message. + +

    siteObj.SetStatusString(
      statusText
      )

    Parameters
    +
    statusText +
    A string that is the status message. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0051.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0051.HTM new file mode 100644 index 0000000..b69f6f9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0051.HTM @@ -0,0 +1,193 @@ + + +DAJoinStyle Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAJoinStyle Class +DirectAnimation Animated Header --DAJoinStyle Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: IDASite Class
    +*Next Topic: DALineStyle Class
    +

    +

    +

    DAJoinStyle Class

    +
    +

    Creates a DAJoinStyle that represents a (potentially) animated join style. The object defines the style (shape) of the joint between intersecting line segments in a path. A joint is drawn only if some portions of the segments do not touch or overlap at the common endpoint. In this case, the outside corners of the line segments are connected and the resulting enclosed area is filled with the same color as the line. + +

    Use a DAJoinStyle object with the Join function of the DALineStyle class. + +

    This class inherits from DABehavior. + +

    There are no DAJoinStyle functions, except the functions it inherits from the DABehavior class. + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAJoinStyle. + +

    lib.JoinStyleBevel +

    lib.JoinStyleMiter +

    lib.JoinStyleRound + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0052.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0052.HTM new file mode 100644 index 0000000..5cee06c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0052.HTM @@ -0,0 +1,288 @@ + + +DALineStyle Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DALineStyle Class +DirectAnimation Animated Header --DALineStyle Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAJoinStyle Class
    +*Next Topic: DAMatte Class
    +

    +

    +

    DALineStyle Class

    +
    +

    Creates a DALineStyle object that represents a (potentially) animated line style. The object defines the various line styles to use when drawing lines. These styles includes the shape of the end of a line, the shape of joints between intersecting lines, the width of the line, and whether the line is drawn with a continuous stroke or as a sequence of dashes. + +

    Use DALineStyle objects with the Draw function in the DAPath2 class. + +

    This class inherits from DABehavior. +

    +

    DALineStyle Functions

    +

    bullet1.gifAntiAliasing
    +

    bullet1.gifColor
    +

    bullet1.gifDash
    +

    bullet1.gifDetail
    +

    bullet1.gifEnd
    +

    bullet1.gifJoin
    +

    bullet1.gifWidthAnim
    +

    bullet1.gifWidth
    +


    AntiAliasing

    +DALineStyle Class +

    Determines whether or not the line will be antialiased. If antialias is 0 (the default), there is no antialiasing. If it is 1, there is antialiasing. + +

    linestyleObj.AntiAliasing(
      antialias
      )

    Parameters
    +
    antialias +
    A double that can be either 0 or 1. +
    +
    Return Values
    +

    Returns the DALineStyle object. + + +


    Color

    +DALineStyle Class +

    Determines the color of a DALineStyle object. The default color is Black. + +

    linestyleObj.Color(
      color
      )

    Parameters
    +
    color +
    The DAColor object that sets the color of the line. The default color is Black. +
    +
    Return Values
    +

    Returns the DALineStyle object. + + +


    Dash

    +DALineStyle Class +

    Creates a DALineStyle object that is the result of applying the given DADashStyle object to the existing line style. By default, the dash style is solid. + +

    linestyleObj.Dash(
      ds
      )

    Parameters
    +
    ds +
    The DADashStyle object that represents the dash style to apply. +
    +
    Return Values
    +

    Returns the DALineStyle object. + + +


    Detail

    +DALineStyle Class +

    Creates a detail DALineStyle object from an existing line style. A detail line style is not changed by image scaling operations. The detail line style is the default line style, and it has no width. + +

    linestyleObj.Detail

    Return Values
    +

    Returns the DALineStyle object. + + +


    End

    +DALineStyle Class +

    Creates a DALineStyle object that is the result of applying the given end style, es, to the existing line style. By default, the end style is flat. + +

    linestyleObj.End(
      es
      )

    Parameters
    +
    es +
    The DAEndStyle object that represents the end style behavior to apply. +
    +
    Return Values
    +

    Returns the DALineStyle object. + + +


    Join

    +DALineStyle Class +

    Creates a DALineStyle object that is the result of applying the given DAJoinStyle object to the existing line style. By default, the join style is beveled. + +

    linestyleObj.join(
      js
      )

    Parameters
    +
    js +
    The DAJoinStyle object that represents the join style to apply. +
    +
    Return Values
    +

    Returns the DALineStyle object. + + +


    WidthAnim

    +DALineStyle Class +

    Creates a DANumber object from an existing line style by setting the width of line to the given amount, expressed in points. If the width results in a line less than a single pixel, the line is always drawn as a detail line. + +

    linestyleObj.WidthAnim(
      width
      )

    Parameters
    +
    width +
    The DANumber object that represents the width of the line. This must be an animated number. +
    +
    Return Values
    +

    Returns the DALineStyle object. + + +

    Remarks
    +

    This overrides Detail. + +


    Width

    +DALineStyle Class +

    Same as WidthAnim except that width is a non-animated number (a double). + +

    linestyleObj.Width(
      width
      )

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DALineStyle. + +

    lib.DefaultLineStyle +

    lib.EmptyLineStyle + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0053.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0053.HTM new file mode 100644 index 0000000..050d6a3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0053.HTM @@ -0,0 +1,217 @@ + + +DAMatte Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAMatte Class +DirectAnimation Animated Header --DAMatte Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DALineStyle Class
    +*Next Topic: DAMicrophone Class
    +

    +

    +

    DAMatte Class

    +
    +

    Creates a DAMatte object representing a (potentially) animated matte. A matte consists of a path and/or text, and is typically used to clip an image to the shape defined by the path and/or text. + +

    This class inherits from DABehavior. +

    +

    DAMatte Functions

    +

    bullet1.gifTransform
    +


    Transform

    +DAMatte Class +

    Creates a DAMatte object that is the result of applying the given transformation xf to the original matte. The transformation affects each point in the path that defines the matte. + +

    matteObj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform2 object that is applied to matteObj. +
    +
    Return Values
    +

    Returns the DAMatte object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAMatte. + +

    lib.DifferenceMatte(m1, m2) +

    lib.FillMatte(path) +

    lib.IntersectMatte(m1, m2) +

    lib.TextMatte(text, fs) +

    lib.UnionMatte(m1, m2) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAMatte. + +

    lib.ClearMatte +

    lib.OpaqueMatte + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0054.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0054.HTM new file mode 100644 index 0000000..e0770db --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0054.HTM @@ -0,0 +1,210 @@ + + +DAMicrophone Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAMicrophone Class +DirectAnimation Animated Header --DAMicrophone Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAMatte Class
    +*Next Topic: DAMontage Class
    +

    +

    +

    DAMicrophone Class

    +
    +

    Creates a DAMicrophone object that represents a (potentially) animated microphone. A microphone is used with the RenderSound function to produce spatialized sound behaviors from sounds embedded in a geometry. + +

    Every microphone has a location and an orientation in a three-dimensional space, and this location determines how a sound is detected. The closer a microphone is to the source of a sound, the louder and sooner the microphone detects that sound. The effect is to "spatialize" the sound, that is, make it seem that it was actually recorded in a three-dimensional space. + +

    For the default microphone, the location is the origin, looking in the negative z-direction, with positive y-axis considered up. You can create new microphones at different locations by using the Transform function. Microphones are omnidirectional. + +

    This class inherits from the DABehavior class. +

    +

    DAMicrophone Functions

    +

    bullet1.gifTransform
    +


    Transform

    +DAMicrophone Class +

    Creates a new DAMicrophone object that is the result of applying the given transformation to the original microphone's location. + +

    microphoneObj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform3 object to be applied to microphoneObj. +
    +
    Return Values
    +

    Returns the DAMicrophone object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAMicrophone. + +

    lib.DefaultMicrophone + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0055.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0055.HTM new file mode 100644 index 0000000..600175c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0055.HTM @@ -0,0 +1,210 @@ + + +DAMontage Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAMontage Class +DirectAnimation Animated Header --DAMontage Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAMicrophone Class
    +*Next Topic: DANumber Class
    +

    +

    +

    DAMontage Class

    +
    +

    A DAMontage object represents a montage that can be animated. A montage is a stack of images in which each image has an explicit depth. Images with larger Z-values are always in front of images with smaller z-values. Rendering a montage creates a new DAImage that is a composite of the images in the montage. The composite is created by overlaying the montage's images by order of depth and applying the same overlay rules as defined by the Overlay function in the DAStatics class. + +

    Because the depth of an image in a montage can vary over time, rendering the montage at different points in time can produce different images in different orders. + +

    This class inherits from the DABehavior class. + +

    +

    DAMontage Functions

    +

    bullet1.gifRender
    +


    Render

    +DAMontage Class +

    Creates a DAImage object that consists of a composite of all images in the DAMontage object. The composite is created by overlaying the montage's images in order of Z-values, with the largest Z-value on top, and applying the same overlay rules as defined by the Overlay function in the DAImage class. If two images have the same depth, they are overlayed in the order in which they were added to the montage. The bounding box of a rendered montage is simply the union of the bounding boxes of all the images comprising that montage. + +

    montageObj.Render

    Return Values
    +

    Returns the DAImage object. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAMontage. + +

    lib.ImageMontageAnim(image, depth) +

    lib.ImageMontage(image, depth) +

    lib.UnionMontage(m1, m2) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAMontage. + +

    lib.EmptyMontage + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0056.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0056.HTM new file mode 100644 index 0000000..8daa4c6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0056.HTM @@ -0,0 +1,300 @@ + + +DANumber Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DANumber Class +DirectAnimation Animated Header --DANumber Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAMontage Class
    +*Next Topic: DAPair Class
    +

    +

    +

    DANumber Class

    +
    +

    Creates a DANumber object that represents an animated number. This means the value of the object can vary over time. + +

    This class inherits from the DABehavior class. +

    +

    DANumber Functions

    +

    bullet1.gifAnimateProperty
    +

    bullet1.gifExtract
    +

    bullet1.gifToStringAnim
    +

    bullet1.gifToString
    +


    AnimateProperty

    +DANumber Class +

    Allows control properties to be animated (vary over time). This function forms fragments of script and passes them to the scripting engine on every frame. For example, a DANumber object can be attached to the width property of a frame on an HTML page. When the invoke parameter is FALSE, the property is set directly as shown in this fragment from the JScript sample in JScript\Exercises\AnimatedGlow.html: + +

    
    +glow.AnimateProperty("DAControl.Filter[0].strength", "JScript", false, .08));
    +
    +

    If the invoke parameter is TRUE, then a function name should be specified in the string parameter (property) and is invoked as shown in this fragment from the JScript sample in JScript\Templates\AnimatedProperties.html: + +

    
    +filterMethod = getNumber().AnimateProperty("SetFilter", "JScript", true, .1);
    +
    +

    numberObj.AnimateProperty(
      property,
      language,
      invoke,
      update
      )

    Parameters
    +
    property +
    A string that is either the name of the property to animate or the name of a scripting function to invoke that will set the property. +
    language +
    A string that is name of the scripting language. +
    invoke +
    A boolean that determines if the property is set directly or if a function is invoked. If FALSE, the property is set directly. If TRUE, a function is invoked. +
    update +
    A double specifying how frequently the position is updated. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    AnimateControlPositionPixel + +


    Extract

    +DANumber Class +

    Extracts the value of numberObj, returning a number (a double). The object must have a constant value. + +

    numberObj.Extract

    Return Values
    +

    Returns a number (a double). + + +


    ToStringAnim

    +DANumber Class +

    Converts a DANumber object to a DAString object. + +

    numberObj.ToStringAnim(
      a
      )

    Parameters
    +
    a +
    The DANumber object representing the number of digits to use after the decimal point. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAString object. + + +


    ToString

    +DANumber Class +

    Converts a double to a DAString. + +

    numberObj.ToString(
      a
      )

    Parameters
    +
    a +
    The double representing the number of digits to use after the decimal point. +
    +
    Return Values
    +

    Returns the DAString object. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant for objects of type DANumber. + +

    lib.Abs(a) +

    lib.Acos(a) +

    lib.Add(a, b) +

    lib.Asin(a) +

    lib.Atan(a) +

    lib.Atan2(a, b) +

    lib.Ceiling(a) +

    lib.Cos(a) +

    lib.DANumber(a) +

    lib.Derivative(a) +

    lib.Div(a, b) +

    lib.EQ(a, b) +

    lib.Exp(a) +

    lib.Floor(a) +

    lib.GT(a, b) +

    lib.GTE(a, b) +

    lib.Integral(a) +

    lib.InterpolateAnim(from, to, duration) +

    lib.Interpolate(from, to, duration) +

    lib.Ln(a) +

    lib.Log10(a) +

    lib.LT(a, b) +

    lib.LTE(a, b) +

    lib.Mod(a, b) +

    lib.Mul(a, b) +

    lib.NE(a, b) +

    lib.Neg(a) +

    lib.NumberBSpline(degree, knots, control_elements, weights, evaluation) +

    lib.Pow(a, b) +

    lib.Round(a) +

    lib.SeededRandom(seed) +

    lib.Sin(a) +

    lib.SlowInSlowOut(from, to, duration, acceleration) +

    lib.SlowInSlowOutAnim(from, to, duration, acceleration) +

    lib.Sqrt(a) +

    lib.Sub(a, b) +

    lib.Tan(a) +

    lib.ToDegrees(a) +

    lib.ToRadians(a) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant for objects of type DANumber. + +

    lib.GlobalTime +

    lib.LocalTime + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0057.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0057.HTM new file mode 100644 index 0000000..74141e6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0057.HTM @@ -0,0 +1,192 @@ + + +DAPair Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAPair Class +DirectAnimation Animated Header --DAPair Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DANumber Class
    +*Next Topic: DAPath2 Class
    +

    +

    +

    DAPair Class

    +
    +

    Used in conjunction with AndEvent and DAPickableResult. The AndEvent function creates a third event from two simultaneously occurring events. It returns a DAPair whose first member is the event data returned by the first event and whose second member is the data returned by the second event. The DAPickableResults object contains a DAEvent that is a DAPair whose first member is the point of intersection and whose second member is a vector that is perpendicular to the surface. Note that, unlike arrays, a DAPair can contain two objects of different types. + +

    DAPair Properties

    +

    bullet1.gifFirst
    +

    bullet1.gifSecond
    +


    First

    +DAPair Class +

    A read-only property with a DABehavior value that is the first object of the DAPair. + +

    pairObj.First


    Second

    +DAPair Class +

    A read-only property with a DABehavior value that is the second object of the DAPair. + + +

    pairObj.Second

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0058.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0058.HTM new file mode 100644 index 0000000..bb91868 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0058.HTM @@ -0,0 +1,278 @@ + + +DAPath2 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAPath2 Class +DirectAnimation Animated Header --DAPath2 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAPair Class
    +*Next Topic: DAPickableResult Class
    +

    +

    +

    DAPath2 Class

    +
    +

    Creates a DAPath2 object that represents a path in two-dimensional space. A DAPath2 object consists of a sequence of two-dimensional points (potentially animated) and is typically used to draw images consisting of line segments or to define borders for geometric shapes. + +

    This class inherits from the DABehavior class. + +

    +

    DAPath2 Functions

    +

    bullet1.gifBoundingBox
    +

    bullet1.gifClose
    +

    bullet1.gifDraw
    +

    bullet1.gifFill
    +

    bullet1.gifTransform
    +


    BoundingBox

    +DAPath2 Class +

    Creates a DAPath2 object that is a visible bounding box. + +

    path2Obj.BoundingBox(
      style
      )

    Parameters
    +
    style +
    A DALineStyle object. This argument is ignored. The line style is always the default line style and has a width of 0. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    Close

    +DAPath2 Class +

    Adds a line segment from the end of the path to the start. This function is useful for animating closed regions. + +

    path2Obj.Close

    Return Values
    +

    Returns the DAPath2 object. + + +


    Draw

    +DAPath2 Class +

    Renders the DAPath2 object into a DAImage object. The image is unfilled, which means only the outline is rendered. + +

    path2Obj.Draw(
      ls
      )

    Parameters
    +
    ls +
    The DALineStyle used to render the image. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    Fill

    +DAPath2 Class +

    Renders the DAPath2 object into a DAImage object. The im parameter specifies the image used to fill in the new DAImage object. The ls argument specifies the DALineStyle that is used to draw the outline. + +

    path2Obj.Fill(
      ls,
      im
      )

    Parameters
    +
    ls +
    The DALineStyle object used to draw the path. +
    im +
    The DAImage object used as the fill pattern. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    Transform

    +DAPath2 Class +

    Creates a new Path2 object that is the result of applying the given transformation to the points in the original path. + +

    path2Obj.Transform(
      xf
      )

    Parameters
    +
    a +
    The DATransform2 object representing the transformation to apply to the original path. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant for objects of type DAPath2. + +

    lib.ArcDegrees(startAngle, endAngle, arcWidth, arcHeight) +

    lib.ArcRadiansAnim(startAngle, endAngle, arcWidth, arcHeight) +

    lib.ArcRadians(startAngle, endAngle, arcWidth, arcHeight) +

    lib.Concat(p1, p2) +

    lib.ConcatArray(paths) +

    lib.CubicBSplinePath(points, knots) +

    lib.Line(p1, p2) +

    lib.OvalAnim(width, height) +

    lib.Oval(width, height) +

    lib.PieDegrees(startAngle, endAngle, arcWidth, arcHeight) +

    lib.PieRadiansAnim(startAngle, endAngle, arcWidth, arcHeight) +

    lib.PieRadians(startAngle, endAngle, arcWidth, arcHeight) +

    lib.PolyDrawPath(points, codes) +

    lib.Polyline(points) +

    lib.Ray(p) +

    lib.RectAnim(width, height) +

    lib.Rect(width, height) +

    lib.RoundRectAnim(width, height, arcWidth, arcHeight) +

    lib.RoundRect(width, height, arcWidth, arcHeight) +

    lib.StringPathAnim(string, fs) +

    lib.StringPath(string, fs) + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0059.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0059.HTM new file mode 100644 index 0000000..d91d930 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0059.HTM @@ -0,0 +1,196 @@ + + +DAPickableResult Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAPickableResult Class +DirectAnimation Animated Header --DAPickableResult Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAPath2 Class
    +*Next Topic: DAPoint2 Class
    +

    +

    +

    DAPickableResult Class

    +
    +

    The properties on a DAPickableResult object are used either with DAGeometry.Pickable function or with DAImage.Pickable function. The properties are either the new, pickable DAGeometry object or DAImage object, and the DAEvent that occurs when the mouse is within the pickable region. + +

    DAPickableResult Properties

    +

    bullet1.gifGeometry
    +

    bullet1.gifImage
    +

    bullet1.gifPickEvent
    +


    Geometry

    +DAPickableResult Class +

    A read-only property with a DAGeometry value that is the pickable geometry. + +

    pickableResultObj.Geometry


    Image

    +DAPickableResult Class +

    A read-only property with a DAImage value that is the pickable image. + +

    pickableResultObj.Image


    PickEvent

    +DAPickableResult Class +

    A read-only property with a DAEvent value that is the event that fires when the mouse is within the pickable region. This event is a DAPair object whose first member is the point of intersection and whose second member is a vector that is perpendicular to the surface. + +

    pickableResultObj.PickEvent

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0060.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0060.HTM new file mode 100644 index 0000000..53be9b5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0060.HTM @@ -0,0 +1,286 @@ + + +DAPoint2 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAPoint2 Class +DirectAnimation Animated Header --DAPoint2 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAPickableResult Class
    +*Next Topic: DAPoint3 Class
    +

    +

    +

    DAPoint2 Class

    +
    +

    Creates a DAPoint2 object that represents a two-dimensional point that can be animated (vary over time). At any given time, the value is a point representing a location in a plane or on the screen. Each point has a pair of coordinate values that define the point's location relative to a fixed point called the origin. These coordinate values are given as either Cartesian coordinates (x,y) or polar coordinates (XYangle,length) when the point DAPoint2 object is created. + +

    Because coordinate values are DANumber objects the location of a DAPoint2 can change over time as the DANumbers change. + +

    This class inherits from DABehavior. + +

    +

    DAPoint2 Functions

    +

    bullet1.gifAnimateControlPositionPixel
    +

    bullet1.gifTransform
    +


    AnimateControlPositionPixel

    +DAPoint2 Class +

    Used to form fragments of script and pass them to the scripting engine on every frame. This function is specifically with DAPoint2 objects to animate the two-dimensional position of an element on the page. + +

    The AnimateControlPositionPixel function always treats the values of the points as pixels rather than meters and considers positive-y to be down rather than up. The (0,0) point is in the upper-left corner. + +

    point2Obj.AnimateControlPositionPixel(
      property,
      language,
      invoke,
      interval
      )

    Parameters
    +
    property +
    A string that is either the name of the property to animate or the name of a scripting function to invoke that will set the property. +
    language +
    A string that is name of the scripting language. +
    invoke +
    A boolean that determines if the position is set directly or if a function is invoked. If FALSE, the position is set directly. If TRUE, a function is invoked. +
    interval +
    A double specifying how frequently the position is updated. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +


    Transform

    +DAPoint2 Class +

    Creates a DAPoint2 object that is the result of applying the given transformation to the original DAPoint2 object. + +

    point2Obj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform2 object. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + + +

    DAPoint2 Properties

    +

    bullet1.gifPolarCoordAngle
    +

    bullet1.gifPolarCoordLength
    +

    bullet1.gifX
    +

    bullet1.gifY
    +


    PolarCoordAngle

    +DAPoint2 Class +

    A read-only property with a DANumber value that represents the counter-clockwise angular displacement, in radians, relative to the positive x-axis, of the pointObj. The range is [-Pi, +Pi]. + +

    point2Obj.PolarCoordAngle

    See Also
    +

    PolarCoordLength, Point2PolarAnim + +


    PolarCoordLength

    +DAPoint2 Class +

    A read-only property with a DANumber value that represents the distance of the point from the origin. + +

    point2Obj.PolarCoordLength

    See Also
    +

    PolarCoordAngle, Point2PolarAnim + +


    X

    +DAPoint2 Class +

    A read-only property with a DANumber value that represents the x coordinate of the point2Obj. + +

    point2Obj.X

    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Y, Point2Anim + +


    Y

    +DAPoint2 Class +

    A read-only property with a DANumber value that represents the y coordinate of the point2Obj. + +

    point2Obj.Y

    See Also
    +

    X, Point2Anim + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAPoint2. + +

    lib.AddPoint2Vector(pt, vec) +

    lib.DerivativePoint2(pt) +

    lib.DistancePoint2(p1, p2) +

    lib.DistanceSquaredPoint2(p1, p2) +

    lib.Point2(x, y) +

    lib.Point2Anim(x, y) +

    lib.Point2BSpline(degree, knots, control_elements, weights, evaluation) +

    lib.Point2PolarAnim(XYangle, length) +

    lib.Point2Polar(XYangle, length) +

    lib.SubPoint2(p1, p2) +

    lib.SubPoint2Vector(pt, vec) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAPoint2. + +

    lib.MousePosition +

    lib.Origin2 + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0061.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0061.HTM new file mode 100644 index 0000000..7e81226 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0061.HTM @@ -0,0 +1,293 @@ + + +DAPoint3 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAPoint3 Class +DirectAnimation Animated Header --DAPoint3 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAPoint2 Class
    +*Next Topic: DASound Class
    +

    +

    +

    DAPoint3 Class

    +
    +

    Creates a DAPoint3 object. At any given time, the value is a point representing a location in a three-dimensional space. Each point has a triplet of coordinate values that define the point's location relative to a fixed point called the origin. These coordinate values are given as either Cartesian coordinates (x,y, z) or spherical coordinates (XYangle,YZangle,length) when the point behavior is created. + +

    Because coordinate values are DANumber objects, the location of a DAPoint3 object can change over time as the DANumber values change. + +

    This class inherits from DABehavior. + +

    +

    DAPoint3 Functions

    +

    bullet1.gifProject
    +

    bullet1.gifTransform
    +


    Project

    +DAPoint3 Class +

    Creates the DAPoint2 object of the projection of the DAPoint3 object onto the image plane, via the given DACamera object. + +

    point3Obj.Project(
      camera
      )

    Parameters
    +
    camera +
    The DACamera object projecting the three-dimensional point onto the image plane. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +


    Transform

    +DAPoint3 Class +

    Creates a new DAPoint3 object that is the result of applying the given transformation to the original point. + +

    point3Obj.Transform(
      xf
      )

    Parameters
    +
    xf +
    The DATransform3 object. +
    +
    Return Values
    +

    Returns the DAPoint3 object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + +

    DAPoint3 Properties

    +

    bullet1.gifSphericalCoordLength
    +

    bullet1.gifSphericalCoordXYAngle
    +

    bullet1.gifSphericalCoordYZAngle
    +

    bullet1.gifX
    +

    bullet1.gifY
    +

    bullet1.gifZ
    +


    SphericalCoordLength

    +DAPoint3 Class +

    A read-only property with a DANumber value that is the distance of the point from the origin. + + +

    point3Obj.SphericalCoordLength

    See Also
    +

    SphericalCoordXYAngle, SphericalCoordYZAngle, Point3SphericalAnim + +


    SphericalCoordXYAngle

    +DAPoint3 Class +

    A read-only property with a DANumber value that should more properly be thought of as an XZ angle. For positive values, it is the counter-clockwise angle, in radians, of the point in the XZ plane. When the angle is 0, the point lies on the z-axis. The range is [-Pi, +Pi]. + +

    point3Obj.SphericalCoordXYAngle

    See Also
    +

    SphericalCoordYZAngle, SphericalCoordLength, Point3SphericalAnim + +


    SphericalCoordYZAngle

    +DAPoint3 Class +

    A read-only property with a DANumber value that should more properly be thought of as an XY angle. For positive values, it is the counter-clockwise angle, in radians, going from the XZ-plane towards the positive y-ray. When the angle is 0, the point lies on the x-axis. The range is [-Pi/2, +Pi/2]. + +

    point3Obj.SphericalCoordYZAngle

    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    SphericalCoordXYAngle, SphericalCoordLength, Point3SphericalAnim + +


    X

    +DAPoint3 Class +

    A read-only property with a DANumber value that is the x coordinate of this point3Obj. + +

    point3Obj.X

    See Also
    +

    Y, Z, Point3Anim + +


    Y

    +DAPoint3 Class +

    A read-only property with a DANumber value that is the y coordinate of this point3Obj. + +

    point3Obj.Y

    See Also
    +

    X, Z, Point3Anim + +


    Z

    +DAPoint3 Class +

    A read-only property with a DANumber value that is the z coordinate of this point3Obj. + +

    point3Obj.Z

    See Also
    +

    X, Y, Point3Anim + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAPoint3. + +

    lib.AddPoint3Vector(pt, vec) +

    lib.DerivativePoint3(pt) +

    lib.DistancePoint3(p1, p2) +

    lib.DistanceSquaredPoint3(p1, p2) +

    lib.Point3Anim(x, y, z) +

    lib.Point3(x, y, z) +

    lib.Point3BSpline(degree, knots, control_elements, weights, evaluation) +

    lib.Point3Spherical(XYangle, YZangle, length) +

    lib.Point3SphericalAnim(XYangle, YZangle, length) +

    lib.SubPoint3(p1, p2) +

    lib.SubPoint3Vector(pt, vec) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAPoint3. + +

    lib.Origin3 + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0062.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0062.HTM new file mode 100644 index 0000000..4f5c2ec --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0062.HTM @@ -0,0 +1,299 @@ + + +DASound Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DASound Class +DirectAnimation Animated Header --DASound Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAPoint3 Class
    +*Next Topic: DAStatics Class
    +

    +

    +

    DASound Class

    +
    +

    DASound Sound behavior objects have gain, rate, phase and pan attributes. Imported sounds (.WAV and .MIDI files) also have a length, returned by the import function. + +Gain (volume) defines how loud the sound is played. Rate defines how many times faster or slower the sound is played relative to its nominal rate. Phase defines how much to shift the time of the sound, and is useful for creating special sound effects such as echoes. Mixing the same sounds that are out of phase makes the sound richer. Pan defines the strength of the sound relative to the left and right sound channels. This is useful for positioning sounds. + +

    Gain, rate, phase, and pan can use animated numbers and can, therefore, change over time. This is useful for modifying the sound based, not only on time (see SubstituteTime) but also on other computed values such as distance. Sounds can be embedded in a geometry to achieve spatialized effects. Currently, all sounds are omnidirectional. + +

    This class inherits from DABehavior. + +

    +

    DASound Functions

    +

    bullet1.gifGainAnim
    +

    bullet1.gifGain
    +

    bullet1.gifLoop
    +

    bullet1.gifPanAnim
    +

    bullet1.gifPan
    +

    bullet1.gifPhaseAnim
    +

    bullet1.gifPhase
    +

    bullet1.gifRateAnim
    +

    bullet1.gifRate
    +


    GainAnim

    +DASound Class +

    Multiplies the gain (volume) by the given amount. + +

    soundObj.GainAnim(
      gain
      )

    Parameters
    +
    gain +
    The factor by which to multiply the volume. Values greater than one increase the volume and values between zero and 1 decrease the sound's volume. Except for sound geometries, only attenuation values of 0-1 have an effect. For sound geometries, gains greater than 1 affect the distance from which sounds can be heard. The sounds, however, never sound louder than 1. This must be an animated number (DANumber). +
    +
    Return Values
    +

    Returns a DASound object representing the newly created sound. + + +


    Gain

    +DASound Class +

    Same as GainAnim except the parameter is non-animated. + +

    soundObj.Gain


    Loop

    +DASound Class +

    Creates a DASound object that repeats continuously. This method applies to the primitive sounds themselves. It does not loop a reactive sound behavior. Instead, it loops each of the primitive sounds that are components of the reactive sound behavior. For example, assume you have a sound that is sound1 until the left mouse button is pressed, and then becomes sound2, and you loop this composite sound, as shown in the following JScript code: +

    
    +snd =  m.Until(sound1, m.LeftButtonDown, sound2);
    +loopsnd= snd.Loop();
    +
    +

    The resulting sound is a continuous loop of sound1 until the left mouse button is pressed, then becomes a continuous loop of sound2. It does not loop the composite behavior in that it does not loop sound1 until the button is pressed, then cycle through sound2 once, then go back to playing sound1 until the button is pressed again. + +

    soundObj.Loop( )

    Return Values
    +

    Returns a DASound object. + + +


    PanAnim

    +DASound Class +

    Creates a DASound object by repositioning a monophonic sound between the left and right channels. To do this, the amplitude of the sound in each channel is changed. This is similar to adjusting the balance on a stereo. + +

    soundObj.PanAnim(
      pan
      )

    Parameters
    +
    pan +
    The amount to pan. Can be a value in the range -1.0 to 1.0, with -1.0 as full left, 0 as center, and 1.0 as full right. This must be an animated number (DANumber). +
    +
    Return Values
    +

    Returns a DASound object. + + +

    Remarks
    +

    With stereophonic sounds, panning away from a channel attenuates it. + +


    Pan

    +DASound Class +

    Same as PanAnim except the parameter is non-animated. + +

    soundObj.Pan(
      pan
      )


    PhaseAnim

    +DASound Class +

    Creates a new DASound object by shifting the sound in time by the given amount. Shifting the sound and mixing with the original sound allows for special effects, such as echoing. + +

    soundObj.PhaseAnim(
      phase
      )

    Parameters
    +
    phase +
    The amount in seconds (or fractions of seconds) to shift the sound. This must be an animated number (DANumber). +
    +
    Return Values
    +

    Returns a DASound object. + + +

    Remarks
    +

    For unlooped sounds, a positive phase shift delays the sound's starting time while a negative phase shift clips off the beginning of the sound. For looped sounds, a positive phase shift adds the end of the sound to the beginning of the sound, while a negative phase shift controls how far into the sound the beginning should be. Phase-shifting only takes effect when the sound begins playing. Currently, you cannot dynamically change the position of a running sound. This attribute composes additively. + +


    Phase

    +DASound Class +

    Same as PhaseAnim except the parameter is non-animated. + +

    soundObj.Phase(
      phase
      )


    RateAnim

    +DASound Class +

    Creates a DASound object by multiplying the playback rate by the given amount. + +

    soundObj.RateAnim(
      rate
      )

    Parameters
    +
    rate +
    Specifies the factor by which to multiply the rate. Values greater than one increase the rate and values between zero and 1 decrease it. This must be an animated number (DANumber). +
    +
    Return Values
    +

    Returns a DASound object. + + +

    Remarks
    +

    A rate of 0 pauses the sound. Negative rates are not supported. This attribute composes additively. + +


    Rate

    +DASound Class +

    Same as RateAnim except the parameter is non-animated. + +

    soundObj.Rate(
      rate
      )

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DASound. + +

    lib.ImportSound(url) +

    lib.ImportSoundAsync(url, soundStandIn) +

    lib.mix(sound1, sound2) +

    lib.mixArray(sounds) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DASound. + +

    lib.Silence +

    lib.SinSynth + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0063.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0063.HTM new file mode 100644 index 0000000..cef6542 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0063.HTM @@ -0,0 +1,371 @@ + + +DAStatics Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatics Class +DirectAnimation Animated Header --DAStatics Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DASound Class
    +*Next Topic: DAStatic Functions Relevant to DAArray Objects
    +

    +

    +

    DAStatics Class

    +
    +

    The DAStatics class is a library that holds a variety of functions and properties. + +

    The following table lists the classes that have relevant functions and properties in the DAStatics class. Click on any group of functions to see them. + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A +
    DAStatic Functions Relevant to DAArray Objects +
    B +
    DAStatic Functions Relevant to DABehavior Objects +
    DAStatic Functions Relevant to DABoolean Objects +
    DAStatic Properties Relevant to DABoolean Objects +
    C +
    DAStatic Functions Relevant to DACamera Objects +
    DAStatic Functions Relevant to DAColor Objects +
    DAStatic Properties Relevant to DAColor Objects +
    D +
    DAStatic Properties Relevant to DADashStyle Objects +
    DAStatic Functions Relevent to DADrawingSurface Objects +
    E +
    DAStatic Properties Relevant to DAEndStyle Objects +
    DAStatic Functions Relevant to DAEvent Objects +
    DAStatic Properties Relevant to DAEvent Objects +
    F +
    DAStatic Functions Relevant to DAFontStyle Objects +
    DAStatic Properties Relevant to DAFontStyle Objects +
    G +
    DAStatic Functions Relevant to DAGeometry Objects +
    DAStatic Properties Relevant to DAGeometry Objects +
    I +
    DAStatic Functions Relevant to DAImage Objects +
    DAStatic Properties Relevant to DAImage Objects +
    J +
    DAStatic Properties Relevant to DAJoinStyle Objects +
    L +
    DAStatic Properties Relevant to DALineStyle Objects +
    M +
    DAStatic Functions Relevant to DAMatte Objects +
    DAStatic Properties Relevant to DAMatte Objects +
    DAStatic Properties Relevant to DAMicrophone Objects +
    Miscellaneous DAStatic Functions +
    Miscellaneous DAStatic Properties +
    DAStatic Functions Relevant to DAMontage Objects +
    DAStatic Properties Relevant to DAMontage Objects +
    N +
    DAStatic Functions Relevant to DANumber Objects +
    DAStatic Properties Relevant to DANumber Objects +
    P +
    DAStatic Functions Relevant to DAPath2 Objects +
    DAStatic Functions Relevant to DAPoint2 Objects +
    DAStatic Properties Relevant to DAPoint2 Objects +
    DAStatic Functions Relevant to DAPoint3 Objects +
    DAStatic Properties Relevant to DAPoint3 Objects +
    S +
    DAStatic Functions Relevant to DASound Objects +
    DAStatic Properties Relevant to DASound Objects +
    DAStatic Functions Relevant to DAString Objects +
    T +
    DAStatic Functions Relevant to DATransform2 Objects +
    DAStatic Properties Relevant to DATransform2 Objects +
    DAStatic Functions Relevant to DATransform3 Objects +
    DAStatic Properties Relevant to DATransform3 Objects +
    DAStatic Functions Relevant to DATuple Objects +
    V +
    DAStatic Functions Relevant to DAVector2 Objects +
    DAStatic Properties Relevant to DAVector2 Objects +
    DAStatic Functions Relevant to DAVector3 Objects +
    DAStatic Properties Relevant to DAVector3 Objects +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0064.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0064.HTM new file mode 100644 index 0000000..786059d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0064.HTM @@ -0,0 +1,194 @@ + + +DAStatic Functions Relevant to DAArray Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAArray Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAArray Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatics Class
    +*Next Topic: DAStatic Functions Relevant to DABehavior Objects
    +

    +

    +

    DAStatic Functions Relevant to DAArray Objects

    +
    +


    DAArray

    +DAStatics Class +

    Constructs a DAArray object. + +

    lib.DAArray(
      behaviors
      )

    Parameters
    +
    behaviors +
    The elements in the array. +
    +


    UninitializedArray

    +DAStatics Class +

    Makes it possible to obtain the signature of a DAArray object before it has been defined. With this function, a DAArray object can be created and used in the definition of other DABehaviors, while its contents are defined at some later point. (This definition is accomplished with the Init function, which is available on all DABehavior objects. To create an uninitialize array, first create an array with a dummy variable and its types, and then call UninitializedArray. This will create a variant array which has a signature only. It is only necessary to give one member of the array, no matter how many members there will actually be. + + +

    lib.UninitializedArray( )

    See Also
    +

    UninitializedTuple + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0065.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0065.HTM new file mode 100644 index 0000000..cfd62c7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0065.HTM @@ -0,0 +1,256 @@ + + +DAStatic Functions Relevant to DABehavior Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DABehavior Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DABehavior Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAArray Objects
    +*Next Topic: DAStatic Functions Relevant to DABoolean Objects
    +

    +

    +

    DAStatic Functions Relevant to DABehavior Objects

    +
    +


    Cond

    +DAStatics Class +

    Creates a new behavior from the DABoolean and two other behaviors. The value of the new behavior, at any point in time, is one of those two behaviors. Which of the behaviors chosen depends on the value of the DABoolean. + +

    lib.Cond(
      bool,
      a,
      b
      )

    Parameters
    +
    bool +
    The DABoolean object that determines which of the two behaviors will become the value of the new behavior. +
    a +
    The first of the two possible values the new behavior can assume. +
    b +
    The second of the two possible values the new behavior can assume. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +


    ModifiableBehavior

    +DAStatics Class +

    Returns an object whose animated behavior can be replaced, at run time, with another animated behavior. This is useful when the states of an animation model cannot be predicted at development time, as well as for integrating animation models with other events and functions. + +

    lib.ModifiableBehavior(
      initialBehavior
      )

    Parameters
    +
    initialBehavior +
    The behavior that will later be replaced. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +

    See Also
    +

    SwitchTo(newBehavior) + +


    Sequence

    +DAStatics Class +

    Creates a new behavior that is the sum of the two DABehavior parameters. In other words, the two behaviors are concatenated, according to their order in the parameter list. Once the duration is over, the behavior becomes a snapshot of the second behavior. An exception is when the first behavior is of infinite duration. In this case, the returned behavior is always the infinite behavior, no matter what the second behavior is. + +

    lib.Sequence(
      a,
      b
      )

    Parameters
    +
    a +
    The first behavior in the sequence. +
    b +
    The second behavior in the sequence. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +

    Remarks
    +

    Notice that, in contrast to Compose2 and Compose3, which first apply the right-hand argument and then the left, Sequence first applies the left-hand argument and then the right. + +


    Until

    +DAStatics Class +

    Creates a behavior that changes when a given event occurs. Up to and including the time the event occurs, the behavior is the same as a. After the event e occurs, the behavior changes to be the same as b. Because Until takes behaviors and returns a behavior, it can be nested. + +

    lib.Until(
      a,
      e,
      b
      )

    Parameters
    +
    a +
    The DABehavior object that the behavior represents initially. +
    e +
    A DAEvent object specifying the event. +
    b +
    The DABehavior object that the behavior represents after the event. +
    +
    Return Values
    +

    Returns the DABehavior object. + + +


    UntilEx

    +DAStatics Class +

    Creates a DABehavior that changes upon a given event. Initially, the behavior is the same as a. When event e occurs, the behavior changes to the behavior returned by the event. This means that only DAEvents that return a DABehavior can be used. These events can be constructed with AttachData, Notify, and Snapshot. + +

    lib.UntilEx(
      a,
      e
      )

    Parameters
    +
    a +
    The DABehavior object that the behavior represents initially. +
    e +
    The DAEvent object that triggers the switch and returns the new behavior. +
    +
    Return Values
    +

    Returns the DABehavior object caused by the event e. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0066.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0066.HTM new file mode 100644 index 0000000..638a9fe --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0066.HTM @@ -0,0 +1,247 @@ + + +DAStatic Functions Relevant to DABoolean Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DABoolean Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DABoolean Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DABehavior Objects
    +*Next Topic: DAStatic Properties Relevant to DABoolean Objects
    +

    +

    +

    DAStatic Functions Relevant to DABoolean Objects

    +
    +


    And

    +DAStatics Class +

    Creates a DABoolean that represents the logical AND of the given objects. The object's value is TRUE when both b1 and b2 are TRUE; otherwise, it is FALSE. + +

    lib.And(
      b1,
      b2
      )

    Parameters
    +
    b1 and b2 +
    The DABoolean objects to logically AND. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +

    See Also
    +

    Or, Not + +


    DABoolean

    +DAStatics Class +

    Converts a boolean to a DABoolean object. The only time DABoolean is used is when converting boolean values to their corresponding DABoolean objects. + +

    lib.DABoolean

    Parameters
    +
    bool +
    The boolean to be converted. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +


    KeyState

    +DAStatics Class +

    Creates a DABoolean object that describes whether the key is up or down. + +

    lib.KeyState(
      keyCode
      )

    Parameters
    +
    keyCode +
    A DANumber representing a keycode. +
    +
    Return Values
    +

    Returns the DABoolean object. The value is TRUE when the key is down and FALSE when the key is up. + + +


    Not

    +DAStatics Class +

    Creates a DABoolean object that represents the logical NOT of b. The object's value is TRUE when b is FALSE; otherwise, it is FALSE. + +

    lib.Not(
      b
      )

    Parameters
    +
    b +
    The DABoolean object that is negated. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +

    See Also
    +

    And , Or + +


    Or

    +DAStatics Class +

    Creates a DABoolean that represents the logical OR of the given behaviors. The object's value is TRUE when either b1 or b2 is TRUE; otherwise it is FALSE. + +

    lib.Or(
      b1,
      b2
      )

    Parameters
    +
    b1 and b2 +
    The DABoolean objects to be logically OR'd. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +

    See Also
    +

    And, Not + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0067.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0067.HTM new file mode 100644 index 0000000..862ffff --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0067.HTM @@ -0,0 +1,194 @@ + + +DAStatic Properties Relevant to DABoolean Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DABoolean Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DABoolean Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DABoolean Objects
    +*Next Topic: DAStatic Functions Relevant to DACamera Objects
    +

    +

    +

    DAStatic Properties Relevant to DABoolean Objects

    +
    +


    DAFalse

    +DAStatics Class +

    A read-only property that is always FALSE. + +

    lib.DAFalse


    LeftButtonState

    +DAStatics Class +

    A read-only property that is TRUE if the left mouse button is down and FALSE if it is up. + +

    lib.LeftButtonState


    RightButtonState

    +DAStatics Class +

    A read-only property that is TRUE if the right mouse button is down and FALSE if it is up. + +

    lib.RightButtonState


    DATrue

    +DAStatics Class +

    A read-only property that is always TRUE. + +

    lib.DATrue

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0068.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0068.HTM new file mode 100644 index 0000000..02cd24f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0068.HTM @@ -0,0 +1,223 @@ + + +DAStatic Functions Relevant to DACamera Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DACamera Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DACamera Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DABoolean Objects
    +*Next Topic: DAStatic Functions Relevant to DAColor Objects
    +

    +

    +

    DAStatic Functions Relevant to DACamera Objects

    +
    +


    ParallelCameraAnim

    +DAStatics Class +

    Creates a parallel camera for parallel (or orthographic) projection. The parallel camera is transformed the same way as the perspective camera, except that Z-scales have no effect (note, however, that zero or negative Z-scales yield undefined results). + +

    Prior to transformation, the parallel camera gazes in the negative z-direction, with positive y-axis considered as "up." + +

    lib.ParallelCameraAnim(
      nearclip
      )

    Parameters
    +
    nearclip +
    The DANumber object that is the Z-location of the near clipping plane. This value must be an animated number. +
    +
    Return Values
    +

    Returns the DACamera object. + + +


    ParallelCamera

    +DAStatics Class +

    Same as ParallelCameraAnim except nearclip is a non-animated number (a double). + +

    lib.ParallelCamera(
      nearclip
      )


    PerspectiveCameraAnim

    +DAStatics Class +

    Creates a perspective camera for perspective rendering. On creation, the projection plane (the plane at which objects appear as their actual size) is located at Z=0, the projection point is located at [0 0 projdst], and the near clipping plane is located at [0 0 nearclip]. + +

    The projdst parameter specifies the distance between the projection plane and the projection point, and must be greater than zero. The smaller this distance, the more of a wide-angle effect is achieved. The larger this distance, the more of a telephoto effect is achieved. + +

    The nearclip parameter specifies the Z-location of the near clipping plane and must be less than projdst. In other words, the near clipping plane must lie on the same side of the projection point as the projection plane. Although it is tempting to place the near clipping plane as close as possible to the projection point, Z-buffer precision is lost dramatically as the near clipping plane gets closer to the projection point. (The main result of such precision loss is that far objects are rendered in front of near objects.) + +

    lib.PerspectiveCameraAnim(
      projdst,
      nearclip
      )

    Parameters
    +
    projdst +
    The DANumber object that is the Z-location of the projection point. It must be greater than zero. This value must be an animated number. +
    nearclip +
    The DANumber object that is the Z-location of the near clipping plane. It must be less than projdst. This value must be an animated number. +
    +
    Return Values
    +

    Returns the DACamera object. + + +

    Remarks
    +

    The following diagram shows a model of the perspective camera. Note that the nearclip need not be in front of the projection plane. +

    +

    Perspective Camera +

    +


    PerspectiveCamera

    +DAStatics Class +

    Same as PerspectiveCameraAnim, except that projdst and nearclip are non-animated numbers (doubles). + +

    lib.PerspectiveCamera(
      projdst,
      nearclip
      )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0069.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0069.HTM new file mode 100644 index 0000000..d9dde7e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0069.HTM @@ -0,0 +1,238 @@ + + +DAStatic Functions Relevant to DAColor Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAColor Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAColor Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DACamera Objects
    +*Next Topic: DAStatic Properties Relevant to DAColor Objects
    +

    +

    +

    DAStatic Functions Relevant to DAColor Objects

    +
    +


    ColorHslAnim

    +DAStatics Class +

    Creates a DAColor object that represents a color described by its hue, saturation, and lightness values. The object's value at any given time depends on the values of h, s, and l. + +

    lib.ColorHslAnim(
      h,
      s,
      l
      )

    Parameters
    +
    h +
    A DANumber object specifying the hue or base color. 0.0 is red, 0.33 is green, and 0.67 is blue. This number is considered "modulo 1," which means, for example, that the numbers 1.67, and 0.67 are both considered to be 0.67. This value must be an animated number. +
    s +
    A DANumber object specifying saturation or intensity of the hue. If saturation is 0.0, the color produced is gray regardless of the hue value. This value must be an animated number. +
    l +
    A DANumber object specifying lightness or amount of white in the color. If lightness is 1.0, the color produced is white regardless of the hue and saturation values. Similarly, if lightness is 0.0, the color is black. This value must be an animated number. +
    +
    Return Values
    +

    Returns the DAColor object. + + +

    Remarks
    +

    Hue, saturation, and lightness values can range from 0.0 to 1.0. If the corresponding number behavior has a value outside this range, then the number is considered modulo 1. + +

    See Also
    +

    ColorRgbAnim + +


    ColorHsl

    +DAStatics Class +

    Same as ColorHslAnim except that h, s, and l are non-animated numbers (doubles). + +

    lib.ColorHsl(
      h,
      s,
      l
      )


    ColorRgbAnim

    +DAStatics Class +

    Creates a DAColor object that represents a color described by its red, green, and blue intensity values. The object's value at any given time depends on the values of r, g, and b. + +

    lib.ColorRgbAnim(
      r,
      g,
      b
      )

    Parameters
    +
    r, g, and b +
    The DANumber objects specifying the red, green, and blue values, respectively. The value of each specifies that color's intensity, with 0.0 for no color and 1.0 for the highest possible intensity. These values must be animated numbers. +
    +
    Return Values
    +

    Returns the DAColor object. + + +

    Remarks
    +

    Intensity values can range from 0.0 to 1.0. If the corresponding number behavior has a value outside this range, the integer part of the value is discarded and only the fractional part is used. + +

    See Also
    +

    ColorHslAnim + +


    ColorRgb

    +DAStatics Class +

    Same as ColorRgbAnim except that r, g, and b are non-animated numbers (doubles). + +

    lib.ColorRgb(
      r,
      g,
      b
      )


    ColorRgb255

    +DAStatics Class +

    Creates a DAColor object that represents a color described by its red, green, and blue intensity values. The behavior's value at any given time depends on the values of r, g, and b. These values can be in the range [0, 255]. + +

    lib.ColorRgb255(
      r,
      g,
      b
      )

    Parameters
    +
    r, g, and b +
    The numbers (integers) specifying the red, green, and blue values, respectively. The value of each specifies that color's intensity, with 0 for no color and 255 for the highest possible intensity. +
    +
    Return Values
    +

    Returns the DAColor object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0070.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0070.HTM new file mode 100644 index 0000000..69ed886 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0070.HTM @@ -0,0 +1,250 @@ + + +DAStatic Properties Relevant to DAColor Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAColor Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAColor Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAColor Objects
    +*Next Topic: DAStatic Properties Relevant to DADashStyle Objects
    +

    +

    +

    DAStatic Properties Relevant to DAColor Objects

    +
    +


    Aqua

    +DAStatics Class +

    A read-only property with a DAColor value that is always aqua. In a range of [0, 1], its red, green, and blue intensity values are 0.00, 1.00, 1.00. In a range of [0-255], its values are 0, 255, 255. + +

    lib.Aqua


    Black

    +DAStatics Class +

    A read-only property with a DAColor value that is always black. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.00, 0.00. In a range of [0-255], its values are 0, 0, 0. + +

    lib.Black


    Blue

    +DAStatics Class +

    A read-only property with a DAColor value that is always blue. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.00, 1.00. In a range of [0-255], its values are 0, 0, 255. + +

    lib.Blue


    Cyan

    +DAStatics Class +

    A read-only property with a DAColor value that is always cyan. In a range of [0-1], its red, green, and blue intensity values are 0.00, 1.00, 1.00. In a range of [0-255], its values are 0, 255, 255. + +

    lib.Cyan


    Fuchsia

    +DAStatics Class +

    A read-only property with a DAColor value that is always fuchsia. In a range of [0-1], its red, green, and blue intensity values are 1.00, 0.00, 1.00). In a range of [0-255], its values are 255, 0, 255. + +

    lib.Fuchsia


    Gray

    +DAStatics Class +

    A read-only property with a DAColor value that is always gray. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.50,0.50. In a range of [0-255], its values are 128, 128, 128. + +

    lib.Gray


    Green

    +DAStatics Class +

    A read-only property with a DAColor value that is always green. In a range of [0-1], its red, green, and blue intensity values are 0.00, 1.00, 0.00. In a range of [0-255], its values are 0, 255, 0. + +

    lib.Green


    Lime

    +DAStatics Class +

    A read-only property with a DAColor value that is always lime. In a range of [0-1], its red, green, and blue intensity values are 0.00, 1.00, 0.00. In a range of [0-255], its values are 0, 255, 0. + +

    lib.Lime


    Magenta

    +DAStatics Class +

    A read-only property with a DAColor value that is always magenta. In a range of [0-1], its red, green, and blue intensity values are 1.00, 0.00, 1.00. In a range of [0-255], its values are 255, 0, 255. + +

    lib.Magenta


    Maroon

    +DAStatics Class +

    A read-only property with a DAColor value that is always maroon. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.00, 0.00. In a range of [0-255], its values are 128, 0, 0. + +

    lib.Maroon


    Navy

    +DAStatics Class +

    A read-only property with a DAColor value that is always navy. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.00, 0.50. In a range of [0-255], its values are 0, 0, 128. + +

    lib.Navy


    Olive

    +DAStatics Class +

    A read-only property with a DAColor value that is always olive. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.50, 0.00. In a range of [0-255], its values are 128, 128, 0. + +

    lib.Olive


    Purple

    +DAStatics Class +

    A read-only property with a DAColor value that is always purple. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.00, 0.50. In a range of [0-255], its values are 128, 0, 128. + +

    lib.Purple


    Red

    +DAStatics Class +

    A read-only property with a DAColor value that is always red. In a range of [0-1], its red, green, and blue intensity values are 1.00, 0.00, 0.00. In a range of [0-255], its values are 255, 0, 0. + +

    lib.Red


    Silver

    +DAStatics Class +

    A read-only property with a DAColor value that is always silver. In a range of [0-1], its red, green, and blue intensity values are 0.75, 0.75, 0.75. In a range of [0-255], its values are 192, 192, 192. + +

    lib.Silver


    Teal

    +DAStatics Class +

    A read-only property with a DAColor value that is always teal. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.50, 0.50. In a range of [0-255], its values are 0, 128, 128. + +

    lib.Teal


    White

    +DAStatics Class +

    A read-only property with a DAColor value that is always white. In a range of [0-1], its red, green, and blue intensity values are 1.00, 1.00, 1.00. In a range of [0-255], its values are 255, 255, 255. + +

    lib.White


    Yellow

    +DAStatics Class +

    A read-only property with a DAColor value that is always yellow. In a range of [0-1], its red, green, and blue intensity values are 1.00, 1.00, 0.00. In a range of [0-255], its values are 255, 255, 0. + +

    lib.Yellow

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0071.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0071.HTM new file mode 100644 index 0000000..3117e00 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0071.HTM @@ -0,0 +1,186 @@ + + +DAStatic Properties Relevant to DADashStyle Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DADashStyle Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DADashStyle Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAColor Objects
    +*Next Topic: DAStatic Functions Relevent to DADrawingSurface Objects
    +

    +

    +

    DAStatic Properties Relevant to DADashStyle Objects

    +
    +


    DashStyleDashed

    +DAStatics Class +

    A read-only property with a DADashStyle value indicating a dashed line (a sequence of line segments and spaces). + +

    lib.DashStyleDashed


    DashStyleSolid

    +DAStatics Class +

    A read-only property with a DADashStyle value indicating a solid line (a continuous stroke). + +

    lib.DashStyleSolid

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0072.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0072.HTM new file mode 100644 index 0000000..4ba19a5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0072.HTM @@ -0,0 +1,196 @@ + + +DAStatic Functions Relevent to DADrawingSurface Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevent to DADrawingSurface Objects +DirectAnimation Animated Header --DAStatic Functions Relevent to DADrawingSurface Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DADashStyle Objects
    +*Next Topic: DAStatic Functions Relevant to DAEvent Objects
    +

    +

    +

    DAStatic Functions Relevent to DADrawingSurface Objects

    +
    +


    ImportDirectDrawSurface

    +DAStatics Class +

    Imports a DADrawingSurface object and passes it into the DirectAnimation engine. The DADrawingSurface is translated into a DAImage object, and can then use any of the relevant function calls. The import occurs upon a triggering event. + +

    lib.ImportDirectDrawSurface(
      dds,
      updateEvent
      )

    Parameters
    +
    dds +
    The DADrawingSurface object to import. +
    updateEvent +
    The DAEvent_Class object that triggers the import. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    NewDrawingSurface

    +DAStatics Class +

    Creates an empty DADrawingSurface object. + +

    lib.NewDrawingSurface( )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0073.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0073.HTM new file mode 100644 index 0000000..9a7306d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0073.HTM @@ -0,0 +1,493 @@ + + +DAStatic Functions Relevant to DAEvent Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAEvent Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAEvent Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevent to DADrawingSurface Objects
    +*Next Topic: DAStatic Properties Relevant to DAEvent Objects
    +

    +

    +

    DAStatic Functions Relevant to DAEvent Objects

    +
    +


    AndEvent

    +DAStatics Class +

    Creates an event that occurs only when the two given events happen simultaneously. The event time for the new event is when both of the given events occur. + +

    lib.AndEvent(
      first,
      second
      )

    Parameters
    +
    first and second +
    The DAEvent objects. +
    +
    Return Values
    +

    Returns a DAEvent object. When the event occurs, it produces a DAPair. The first member is the event data returned by the first event. The second member is the event data returned by the second event. + + +


    KeyDown

    +DAStatics Class +

    Returns a DAEvent when a specific key is pressed. This is a state-transition event. + +

    lib.KeyDown(
      keyCode
      )

    Parameters
    +
    keyCode +
    This is a number (a long). See the table below for information about key codes. +
    +
    Return Values
    +

    Returns the DAEvent object. This event produces no data. + + +

    Remarks
    +

    The following table lists the hexadecimal values for all the special keycodes. The pattern for each key is 0x10000 plus the win32 scan code. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    KeyKeyCode +
    PGUP10021 +
    PGDN10022 +
    END10023 +
    HOME10024 +
    LEFT10025 +
    UP10026 +
    RIGHT10027 +
    DOWN10028 +
    INSERT1002D +
    DELETE1002E +
    NUMPAD010060 +
    NUMPAD110061 +
    NUMPAD210062 +
    NUMPAD310063 +
    NUMPAD410064 +
    NUMPAD510065 +
    NUMPAD610066 +
    NUMPAD710067 +
    NUMPAD810068 +
    NUMPAD910069 +
    MULTIPLY1006A +
    ADD1006B +
    SEPARATOR1006C +
    SUBTRACT1006D +
    DECIMAL1006E +
    DIVIDE1006F +
    F110070 +
    F210071 +
    F310072 +
    F410073 +
    F510074 +
    F610075 +
    F710076 +
    F810077 +
    F910078 +
    F1010079 +
    F111007A +
    F121007B +
    F131007C +
    F141007D +
    F151007E +
    F161007F +
    F1710080 +
    F1810081 +
    F1910082 +
    F2010083 +
    F2110084 +
    F2210085 +
    F2310086 +
    F2410087 +
    +


    KeyUp

    +DAStatics Class +

    Returns a DAEvent when a specific key is released. This is a state-transition event. + +

    lib.KeyUp(
      keyCode
      )

    Parameters
    +
    keyCode +
    This is a number (a long). For a list of special keycodes, see KeyDown. +
    +
    Return Values
    +

    Returns the DAEvent object. This event produces no data. + + +


    NotEvent

    +DAStatics Class +

    Creates an event that occurs when the given event does not occur. This is useful for creating combined events that occur only if the given event is not also occurring. For example, an event that occurs when the left mouse button is down and the right button is not down. + +

    lib.NotEvent(
      ev
      )

    Parameters
    +
    ev +
    The DAEvent object. +
    +
    Return Values
    +

    Returns the DAEvent object. This event produces no data. + + +


    OrEvent

    +DAStatics Class +

    Creates an event that occurs when either one of the given events occur. The event time for the new event is when either the first or second given event has occurred. + +

    lib.OrEvent(
      first,
      second
      )

    Parameters
    +
    first and second +
    The DAEvent objects. +
    +
    Return Values
    +

    Returns a DAEvent object. Its data is the event data of either the first or second event. +

    Remarks
    +

    If both events occur at the same time, the first will be chosen to fire. For example, if you attach a notifier to first and second and the events occur at the same time, only the notifier of first will get called. + + +


    Predicate

    +DAStatics Class +

    Creates an event that occurs when the value of the given DABoolean behavior changes from FALSE to TRUE. Note that, because of implementation dependencies and the potential for aliasing, the system cannot always detect when a DABoolean behavior becomes TRUE. +

    lib.Predicate(
      bool
      )

    Parameters
    +
    bool +
    The DABoolean object. +
    +
    Return Values
    +

    Returns the DAEvent. This event produces no data. + + +


    ThenEvent

    +DAStatics Class +

    Creates an event if e2 occurs after e1. The event time of the new event is the time of the second event. + +

    lib.ThenEvent(
      e1,
      e2
      )

    Parameters
    +
    e1 +
    The first event, that, when it occurs, triggers the second event. +
    e2 +
    The second event, caused by the occurrence of the first event. +
    +
    Return Values
    +

    Returns the DAEvent object. Its event data is the time the second event fired and a DAPair containing the event data for both events. + + +


    TimerAnim

    +DAStatics Class +

    Creates an event that occurs when the specified time has elapsed. + +

    lib.TimerAnim(
      timeout
      )

    Parameters
    +
    timeout +
    The DANumber object that controls when the timer fires. This must be an animated number +
    +
    Return Values
    +

    Returns the DAEvent object. This event produces no data. + + +


    Timer

    +DAStatics Class +

    The same as TimerAnim except that timeout is a non-animated number (a double). + +

    lib.Timer(
      timeout
      )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0074.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0074.HTM new file mode 100644 index 0000000..ba1fbd6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0074.HTM @@ -0,0 +1,202 @@ + + +DAStatic Properties Relevant to DAEvent Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAEvent Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAEvent Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAEvent Objects
    +*Next Topic: DAStatic Properties Relevant to DAEndStyle Objects
    +

    +

    +

    DAStatic Properties Relevant to DAEvent Objects

    +
    +


    Always

    +DAStatics Class +

    A read-only property with a DAEvent that occurs at all times. It produces no data. + +

    lib.Always


    LeftButtonDown

    +DAStatics Class +

    A read-only property with a DAEvent value that occurs when the left mouse button is pressed. This is a state-transition event. It produces no data. + +

    lib.LeftButtonDown


    LeftButtonUp

    +DAStatics Class +

    A read-only property with a DAEvent value that occurs when the left mouse button is released. This is a state-transition event. It produces no data. + +

    lib.LeftButtonUp


    Never

    +DAStatics Class +

    A read-only property with a DAEvent value that never occurs. It produces no data. + +

    lib.Never


    RightButtonDown

    +DAStatics Class +

    A read-only property with a DAEvent value that occurs when the right mouse button is pressed. This is a state-transition event. It produces no data. + +

    lib.RightButtonDown


    RightButtonUp

    +DAStatics Class +

    A read-only property with a DAEvent value that occurs when the right mouse button is relased. This is a state-transition event. It produces no data. + +

    lib.RightButtonUp

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0075.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0075.HTM new file mode 100644 index 0000000..4d145ba --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0075.HTM @@ -0,0 +1,190 @@ + + +DAStatic Properties Relevant to DAEndStyle Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAEndStyle Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAEndStyle Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAEvent Objects
    +*Next Topic: DAStatic Functions Relevant to DAFontStyle Objects
    +

    +

    +

    DAStatic Properties Relevant to DAEndStyle Objects

    +
    +


    EndStyleFlat

    +DAStatics Class +

    A read-only property with a DAEndStyle value that draws the end of a line as a line segment, perpendicular to the final direction of the line and through the last point of the line. + +

    lib.EndStyleFlat


    EndStyleRound

    +DAStatics Class +

    A read-only property with a DAEndStyle value that draws the end of a line as a circle, having a diameter equal to the width of the line and its center at the last point of the line. + +

    lib.EndStyleRound


    EndStyleSquare

    +DAStatics Class +

    A read-only property with a DAEndStyle value that draws the end of a line as a square, having a height and width equal to the width of the line and its center at the last point of the line. + +

    lib.EndStyleSquare

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0076.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0076.HTM new file mode 100644 index 0000000..e5c04f2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0076.HTM @@ -0,0 +1,198 @@ + + +DAStatic Functions Relevant to DAFontStyle Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAFontStyle Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAFontStyle Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAEndStyle Objects
    +*Next Topic: DAStatic Properties Relevant to DAFontStyle Objects
    +

    +

    +

    DAStatic Functions Relevant to DAFontStyle Objects

    +
    +


    FontAnim

    +DAStatics Class +

    Specifies the face, size in points, and color of a DAFontStyle object. Because these parameters are all animated, they can vary over time. + +

    lib.FontAnim(
      face,
      points,
      color
      )

    Parameters
    +
    face +
    The DAString object specifying the font face. +
    points +
    The DANumber object specifying the font size, in points. This must be an animated number. +
    color +
    The DAColor object specifying the font color. +
    +
    Return Values
    +

    Returns the DAFontStyle object. + + +


    Font

    +DAStatics Class +

    Same as FontAnim except that points is a non-animated number (a double). + +

    lib.Font(
      face,
      points,
      color>

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0077.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0077.HTM new file mode 100644 index 0000000..717338a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0077.HTM @@ -0,0 +1,182 @@ + + +DAStatic Properties Relevant to DAFontStyle Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAFontStyle Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAFontStyle Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAFontStyle Objects
    +*Next Topic: DAStatic Functions Relevant to DAGeometry Objects
    +

    +

    +

    DAStatic Properties Relevant to DAFontStyle Objects

    +
    +


    DefaultFont

    +DAStatics Class +

    A read-only property with a DAFontStyle value that is a Times-Roman, black, 12pt font that is neither bold nor italicized. + +

    lib.DefaultFont

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0078.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0078.HTM new file mode 100644 index 0000000..5b7bea2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0078.HTM @@ -0,0 +1,284 @@ + + +DAStatic Functions Relevant to DAGeometry Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAGeometry Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAGeometry Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAFontStyle Objects
    +*Next Topic: DAStatic Properties Relevant to DAGeometry Objects
    +

    +

    +

    DAStatic Functions Relevant to DAGeometry Objects

    +
    +


    ImportGeometry

    +DAStatics Class +

    Creates a DAGeometry by synchronously importing the given .X file. Synchronous loads are blocking calls, which means that ticking will not continue on any model until all synchronous downloads are completed. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See ImportGeometryAsync for a description of the asynchronous import function. + +

    lib.ImportGeometry(
      url
      )

    Parameters
    +
    url +
    The pathname (a string) of the file to be downloaded. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +


    ImportGeometryAsync

    +DAStatics Class +

    Asynchronously imports the given .X file. Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import function, see ImportGeometry. + +

    lib.ImportGeometryAsync(
      url,
      geoStandIn
      )

    Parameters
    +
    url +
    The pathname (a string) of the geometry to be downloaded. +
    geoStandIn +
    The geometry to use while the contents at url are still being downloaded. This argument cannot be null. +
    +
    Return Values
    +

    Returns the DAImportationResult object, which has the following relevant properties: + +

    +

    • CompletionEvent, which is the event that triggers once the download is complete. +
    • Geometry, which is the imported DAGeometry object. +
    • Progress, which is the progress of the download. +
    • Size, which is the size of the download. +
    + +


    SoundSource

    +DAStatics Class +

    Creates a DAGeometry object that contains sound. The bounding box is the empty bounding box, where the maximum coordinate is less than the minimum coordinate. + +

    lib.SoundSource(
      sound
      )

    Parameters
    +
    sound +
    The DASound object that contained within the geometry. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +


    SpotLightAnim

    +DAStatics Class +

    Creates a spotlight geometry. A spotlight is a positioned, directed light source initially located at the origin and directed along the negative z-axis. Examples of real-world spotlights include desklamps, headlights, and flashlights. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. + +

    The fullcone parameter specifies the half-angle of the region that will receive the full intensity of the spotlight. This parameter can have values from 0.00 to pi. + +

    The cutoff parameter specifies the half-angle of the region past which surfaces will receive no illumination. This parameter can have values from the value of fullcone to pi. + +

    lib.SpotLightAnim(
      fullcone,
      cutoff
      )

    Parameters
    +
    fullcone +
    The DANumber object specifying the angle in radians from the main spotlight axis for which surfaces will receive full illumination from the light. This must be an animated number. +
    cutoff +
    The DANumber object specifying the angle in radians from the main spotlight axis past which surfaces will receive no illumination from the light. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    Remarks
    +

    Surfaces receive illumination from the spotlight in the following manner: + +

    • If the surface point is within fullcone radians of the main spotlight axis, the spotlight acts as a pointlight source (including distance attenuation effects). +
    • If the surface point is greater than fullcone radians, but is within cutoff radians of the main spotlight axis, the surface receives illumination that is attenuated by the angular displacement. +
    • If the surface point is greater than cutoff radians from the main spotlight axis, it receives no illumination. +
    +

    These rules are illustrated in the following diagram: +

    +

    Spotlight +

    +

    Remarks
    +

    The following diagram shows how the intensity of the spotlight changes in relationship to the angle: +

    +

    Intensity +

    +


    SpotLight

    +DAStatics Class +

    Same as SpotLightAnim except that cutoff is a non-animated number (a double). Note that fullcone is still an animated number (a DANumber). + +

    lib.SpotLight(
      fullcone,
      cutoff
      )


    UnionGeometry

    +DAStatics Class +

    Creates a DAGeometry object by combining the given geometries. The new geometry contains all elements of the original geometries. The bounding box of a set of unioned geometries is simply the union of the bounding boxes of each of the geometries. + +

    lib.UnionGeometry(
      g1,
      g2
      )

    Parameters
    +
    g1 and g2 +
    The DAGeometry objects. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +


    UnionGeometryArray

    +DAStatics Class +

    Creates a geometry behavior by combining the geometries in the array. The new geometry contains all elements of the original geometries. The bounding box of a set of unioned geometries is simply the union of the bounding boxes of each of the geometries. + +

    lib.UnionGeometryArray(
      geoArray
      )

    Parameters
    +
    geoArray +
    The array of DAGeometry objects. +
    +
    Return Values
    +

    Returns the DAGeometry object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0079.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0079.HTM new file mode 100644 index 0000000..2cc971c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0079.HTM @@ -0,0 +1,194 @@ + + +DAStatic Properties Relevant to DAGeometry Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAGeometry Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAGeometry Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAGeometry Objects
    +*Next Topic: DAStatic Functions Relevant to DAImage Objects
    +

    +

    +

    DAStatic Properties Relevant to DAGeometry Objects

    +
    +


    AmbientLight

    +DAStatics Class +

    A read-only property with a DAGeometry value in which the light source is ambient (room) light. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. Ambient light is light that, instead of coming directly from a light source, bounces from surface to surface and provides overall scene-lighting. For example, if you are in a room lit by a lamp, everything not directly lit by the lamp is receiving ambient light. It leaves the lamp, bounces off the walls, the floors, the ceiling, and all around, until it reaches almost the entire room. Using too much ambient light can make a scene look washed out, while too little will yield shadowed areas that look unnaturally black. Unlike directional lights and pointlights, transformations have no effect on ambient lights. + +

    lib.AmbientLight


    DirectionalLight

    +DAStatics Class +

    A read-only property with a DAGeometry value in which the light source is positioned pointing down the negative z axis. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. Directional light specifies a light such that the light direction is the same everywhere. This is in contrast to a positional light such as a point or spot light, where the direction to the light source changes depending on where the surface is. Directional lights are useful for simulating the sun because, from our perspective on earth, the sun's rays appear to travel in the same direction. Directional lights are also cheaper to compute than positional lights, though this difference may be negligible and should not be assumed. Transformations do have an effect on directional lights. + +

    lib.DirectionalLight


    EmptyGeometry

    +DAStatics Class +

    A read-only property with a DAGeometry value in which all points are invisible (transparent) and undetectable. The bounding box is the empty bounding box, where the maximum coordinate is less than the minimum coordinate. + +

    lib.EmptyGeometry


    PointLight

    +DAStatics Class +

    A read-only property with a DAGeometry value in which the light source is positioned at the origin and radiates light in all directions. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. Pointlights simulate most real-world lights such as bare light bulbs, wall-mounted light fixtures, and ceiling lights. They shine in all directions, radiating outward from the center. Transformations do have an effect on pointlights. + +

    lib.PointLight

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0080.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0080.HTM new file mode 100644 index 0000000..1a6666a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0080.HTM @@ -0,0 +1,610 @@ + + +DAStatic Functions Relevant to DAImage Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAImage Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAImage Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAGeometry Objects
    +*Next Topic: DAStatic Properties Relevant to DAImage Objects
    +

    +

    +

    DAStatic Functions Relevant to DAImage Objects

    +
    +


    GradientHorizontalAnim

    +DAStatics Class +

    Creates a DAImage object that smoothly interpolates between the start and stop colors. Colors start on the left and go toward the right, based on the power specified by power. + +

    The extent of the generated image is [-0.5,-0.5] to [0.5,0.5]. These dimensions are always in meters, even if the PixelLibrary is selected. To convert from pixels to meters, use the Pixel conversion factor. + +

    lib.GradientHorizontalAnim(
      start,
      stop,
      power
      )

    Parameters
    +
    start +
    The DAColor object representing the first color of the gradient fill. +
    stop +
    The DAColor object representing the final color of the gradient fill. +
    power +
    The DANumber object that is an exponent controlling how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity]. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    GradientHorizontal

    +DAStatics Class +

    Same as GradientHorizontalAnim except that power is a non-animated number. + +

    lib.GradientHorizontal(
      start,
      stop,
      power
      )


    GradientPolygon

    +DAStatics Class +

    Creates a polygon from an array of points and an array of colors. The polygon has a smooth interpolation between the colors at the vertices. This interpolation is in RGB space. The image is transparent and unpickable outside the polygon. The polygon must be convex and fanned, with at least 3 vertices. The tessellation into triangles occurs by fanning around the first vertex. If, for example, the first triangle is from vertices [0, 1, 2], the second is from [0, 2, 3], and so on. The tessellation determines how the color interpolation is done. The bounding box is the box surrounding the points of the polygon. + +

    lib.GradientPolygon(
      pts,
      colors
      )

    Parameters
    +
    pts +
    The array (variant) of DAPoint2 points that determine the polygon's vertices. +
    colors +
    The array (variant) of DAColor colors corresponding to the vertices. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    GradientSquare

    +DAStatics Class +

    Creates a DAImage object with a square color wash. The image is a unit-sized square, centered at the origin, reaching from [-0.5, -0.5] to [0.5, 0.5]. The image contains the specified colors in the specified corners. The gradient fills are determined by bilinearly interpolating between these specified colors. (This means that, rather than being simply a four-cornered polygon, it is a polygon with four corners plus a point in the middle that is the average of the four colors.) The image is transparent and unpickable outside of this region. The interpolation is in RGB space. The bounding box is a box from (-0.5, -0.5) to (0.5, 0.5). + +

    lib.GradientSquare(
      lowerLeft,
      upperLeft,
      upperRight,
      lowerRight
      )

    Parameters
    +
    lowerLeft +
    The DAColor color in the lower-left hand corner of square. +
    upperLeft +
    The DAColor color in the upper-left hand corner of the square. +
    upperRight +
    The DAColor color in the upper-right hand corner of the square. +
    lowerRight +
    The DAColor color in the lower-right hand corner of the square. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    HatchBackwardDiagonalAnim

    +DAStatics Class +

    Creates backward diagonal (lines that slant from right to left) hatch marks. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    lib.HatchBackwardDiagonalAnim(
      color,
      size
      )

    Parameters
    +
    color +
    The DAColor object representing the line color. +
    size +
    The DANumber object representing the size of the hatch box. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    HatchBackwardDiagonal

    +DAStatics Class +

    Same as HatchBackwardDiagonal except that size is a non-animated number. + +

    lib.HatchBackwardDiagonal(
      color,
      size
      )


    HatchCrossAnim

    +DAStatics Class +

    Creates cross-hatched markings. This function can be thought of as a combination of the HatchVerticalAnim and the HatchHorizontalAnim functions. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    lib.HatchCrossAnim(
      color,
      size
      )

    Parameters
    +
    color +
    The DAColor object representing the line color. +
    size +
    The DANumber object representing the size of the hatch box. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    HatchCross

    +DAStatics Class +

    Same as HatchCrossAnim except that size is a non-animated number (a double). + +

    lib.HatchCross(
      color,
      size
      )


    HatchDiagonalCrossAnim

    +DAStatics Class +

    Creates diagonally criss-crossed hatch marks. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    lib.HatchDiagonalCrossAnim(
      color,
      size
      )

    Parameters
    +
    color +
    The DAColor object representing the line color. +
    size +
    The DANumber object representing the size of the hatch box. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    HatchDiagonalCross

    +DAStatics Class +

    Same as HatchDiagonalCrossAnim except that size is a non-animated number (a double). + +

    lib.HatchDiagonalCross(
      color,
      size
      )


    HatchForwardDiagonalAnim

    +DAStatics Class +

    Creates forward diagonal (lines that slant from left to right) hatch marks. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. + +

    lib.HatchForwardDiagonalAnim(
      color,
      size
      )

    Parameters
    +
    color +
    The DAColor object representing the line color. +
    size +
    The DANumber object representing the size of the hatch box. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    HatchForwardDiagonal

    +DAStatics Class +

    Same as HatchForwardDiagonalAnim except that size is a non-animated number (a double). + +

    lib.HatchForwardDiagonal(
      color,
      size
      )


    HatchHorizontalAnim

    +DAStatics Class +

    Creates horizontal hatch lines. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    lib.HatchHorizontalAnim(
      color,
      size
      )

    Parameters
    +
    color +
    The DAColor object representing the line color. +
    size +
    The DANumber object representing the size of the hatch box. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    HatchHorizontal

    +DAStatics Class +

    Same as HatchHorizontalAnim except that size is a non-animated number (a double). + +

    lib.HatchHorizontal(
      color,
      size
      )


    HatchVerticalAnim

    +DAStatics Class +

    Creates vertical hatch lines. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    lib.HatchVerticalAnim(
      color,
      size
      )

    Parameters
    +
    color +
    The DAColor object representing the line color. +
    size +
    The DANumber object representing the size of the hatch box. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    HatchVertical

    +DAStatics Class +

    Same as HatchVerticalAnim except that size is a non-animated number (a double). + +

    lib.HatchVertical(
      color,
      size
      )


    ImportImage

    +DAStatics Class +

    Creates a DAImage by synchronously importing the given bitmap. The pixels of the bitmap are mapped to points in the image such that the center of the bitmap is placed at (0,0). The extent of the points affected depends on the width and height of the bitmap in pixels and the resolution of the bitmap in pixels per meter. The bounding box of an imported image is calculated as follows: + +

    If the pixel dimensions are WxH, and given that: + +

    halfWidthMeters = lib.mul(lib.DANumber(W/2), lib.Pixel)
    +halfHeightMeters = lib.mul(lib.DANumber(H/2), lib.Pixel)
    +
    +

    then the bounding box will be (-halfWidthMeters, -halfHeightMeters) to (halfWidthMeters, halfHeightMeters) with the resultant image centered at the origin. + +

    Synchronous loads are blocking calls, which means that ticking will not continue on any model until all synchronous downloads are completed. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See below for a description of the asynchronous function, ImportImageAsync. + +

    lib.ImportImage(
      url
      )

    Parameters
    +
    url +
    The pathname of the image to be downloaded. +
    +
    Return Values
    +

    Returns the DAImage object. + + +

    Remarks
    +

    The file formats that can be imported are .PNG, .JPG, .BMP, and .GIF. + +

    See Also
    +

    ImportImageColorKey + +


    ImportImageAsync

    +DAStatics Class +

    Asynchronously imports the given bitmap. The pixels of the bitmap are mapped to points in the image such that the center of the bitmap is placed at (0,0). The extent of the points affected depends on the width and height of the bitmap in pixels and the resolution of the bitmap in pixels per meter. The bounding box of an imported image is calculated as follows: + +

    If the pixel dimensions are WxH, and given that: + +

    halfWidthMeters = lib.mul(lib.DANumber(W/2), lib.Pixel)
    +halfHeightMeters = lib.mul(lib.DANumber(H/2), lib.Pixel)
    +
    +

    then the bounding box will be (-halfWidthMeters, -halfHeightMeters) to (halfWidthMeters, halfHeightMeters) with the resultant image centered at the origin. + +

    Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import function, see ImportImage. + +

    lib.ImportImageAsync(
      url,
      imgStandIn
      )

    Parameters
    +
    url +
    The pathname (a string) of the image to be downloaded. +
    imgStandIn +
    The DAImage object to use while the contents at url are still being downloaded. This argument cannot be null, however, the image can be empty. +
    +
    Return Values
    +

    Returns the DAImportationResult object, which has the following relevant properties: + +

    +

    • CompletionEvent,which is the event that fires once the download is complete. +
    • Image, which is the imported image. +
    • Progress, which is the percentage of the download that has completed. +
    • Size, which is the size of the imported image, in bytes. +
    + +
    See Also
    +

    ImportImageAsyncColorKey + +


    ImportImageAsyncColorKey

    +DAStatics Class +

    Allows a particular color in the asynchronously imported image, specified by an RGB value, to be treated as transparent. + +

    lib.ImportImageAsyncColorKey(
      url,
      imgStandIn,
      red,
      green,
      blue
      )

    Parameters
    +
    url +
    The pathname (a string) of the image to be downloaded. +
    imgStandIn +
    The DAImage object to use while the contents at url are still being downloaded. This argument cannot be null, however, the image can be empty. +
    red +
    The red component, expressed as a value (a byte) ranging from 0 to 255. +
    green +
    The green component, expressed as a value (a byte) ranging from 0 to 255. +
    blue +
    The blue component, expressed as a value (a byte) ranging from 0 to 255. +
    +
    Return Values
    +

    Returns the DAImportationResult object. + + +

    See Also
    +

    ImportImageAsync + +


    ImportImageColorKey

    +DAStatics Class +

    Allows a particular color in the synchronously imported image, specified by an RGB value, to be treated as transparent. + +

    lib.ImportImageColorKey(
      url,
      red,
      green,
      blue
      )

    Parameters
    +
    url +
    The pathname (a string) of the image to be downloaded. +
    red +
    The red component, expressed as a value (a byte) ranging from 0 to 255. +
    green +
    The green component, expressed as a value (a byte) ranging from 0 to 255. +
    blue +
    The blue component, expressed as a value (a byte) ranging from 0 to 255. +
    +
    Return Values
    +

    Returns the DAImage object. + + +

    See Also
    +

    ImportImage + +


    ImportMovie

    +DAStatics Class +

    Downloads a movie synchronously. Synchronous loads are blocking calls, which means that ticking will not continue on any model until all synchronous downloads are completed. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See ImportMovieAsync for a description of the asynchronous import function. + +

    The image portion of a movie has the same bounding box and placement as a static image such as a GIF or PNG. For more information, see ImportImage. + +

    lib.ImportMovie(
      url
      )

    Parameters
    +
    url +
    The pathname (a string) of the movie to be downloaded. +
    +
    Return Values
    +

    Returns the DAImportationResult object, which has the following relevant properties: + +

    +

    • Duration, which is the length of the movie, in seconds +
    • Image, which is the imported image component of the movie. +
    • Sound, which is the imported sound component of the movie. +
    + +


    ImportMovieAsync

    +DAStatics Class +

    Imports a movie asynchronously. Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import function, see ImportMovie. + +

    The image portion of a movie has the same bounding box and placement as a static image such as a GIF or PNG. For more information, see ImportImage. + +

    lib.ImportMovieAsync(
      url,
      imgStandIn,
      sndStandIn
      )

    Parameters
    +
    url +
    The pathname (a string) of the movie to download. +
    imgStandIn +
    The DAImage to use while the movie is still being downloaded. This parameter cannot be null, however, the image can be empty. +
    sndStandIn +
    The DASound to use while the movie is still being downloaded. This parameter cannot be null, however, the sound can be silence. +
    +
    Return Values
    +

    Returns the DAImportationResult object, which has the following relevant properties: + +

    +

    • CompletionEvent, which is the event that triggers once the download is complete. +
    • Duration, which is the length of the movie, in seconds +
    • Image, which is the imported image component of the movie. +
    • Progress, which is the percentage of the download that has completed. +
    • Size, which is the size of the imported image, in bytes. +
    • Sound, which is the imported sound component of the movie. +
    + +


    Overlay

    +DAStatics Class +

    Creates a DAImage object by laying the image i1 over the image behavior i2. The new image consists of all fully opaque points of i1, all points of i2 that are under fully transparent points in i1, and all partially opaque points of i1 modified such that the new point is a combination of the i1 point and the i2 point under it. The bounding box of a set of overlaid images is simply the union of the bounding boxes of the images themselves. + +

    lib.Overlay(
      i1,
      i2
      )

    Parameters
    +
    i1 and i2 +
    The DAImage objects. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    OverlayArray

    +DAStatics Class +

    Creates a DAImage object by layering the DAImage objects. The bounding box of a set of overlaid images is simply the union of the bounding boxes of the images themselves. + +

    lib.OverlayArray(
      im
      )

    Parameters
    +
    im +
    An array (variant) of DAImage objects. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    RadialGradientPolygonAnim

    +DAStatics Class +

    Creates a DAImage object that is a regular polygon with a radial fill. The image contains the specified colors at the origin and the exterior points, respectively. The gradient fill is determined by the power argument and occurs in RGB space. Outside of the filled-in region, the image is transparent and unpickable. The bounding box is the box surrounding the points of the polygon. + +

    lib.RadialGradientPolygonAnim(
      inner,
      outer,
      points,
      power
      )

    Parameters
    +
    inner +
    The DAColor object representing the color at the origin of the polygon. +
    outer +
    The DAColor object representing the color at the vertices. +
    points +
    The DAPoint2 object representing the array of points that determine the polygon's vertices. +
    power +
    The DANumber object that is an exponent controlling how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity]. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    RadialGradientPolygon

    +DAStatics Class +

    Same as RadialGradientPolygonAnim except that power must be an animated number. + +

    lib.RadialGradientPolygon(
      inner,
      outer,
      points,
      power
      )


    RadialGradientRegularPolyAnim

    +DAStatics Class +

    Creates a DAImage object that is a regular, gradient polygon with the specified number of sides (there must be at least 3) and a radial fill. It has a unit width and height, centered at the origin, with an extent from (-0.5, -0.5) to (0.5, 0.5). (These dimensions are always in meters, even if the PixelLibrary is selected. To convert from pixels to meters, use the Pixel conversion factor.) The image contains the specified colors at the origin and the exterior points, respectively. The gradient fill is determined by the power argument and occurs in RGB space. Outside of the filled-in region, the image is transparent and unpickable. The bounding box is the box surrounding the points of the polygon. + +

    Creates a DAImage object that smoothly interpolates between the start and stop colors. Colors start on the left and go toward the right, based on the power specified by power. + +

    lib.RadialGradientRegularPolyAnim(
      inner,
      outer,
      edges,
      power
      )

    Parameters
    +
    inner +
    The DAColor object representing the color at the origin of the polygon. +
    outer +
    The DAColor object representing the color at the vertices. +
    edges +
    The DANumber object representing the number of edges the polygon has. This parameter can also be of type double. +
    power +
    The DANumber object that is an exponent controlling how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity]. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    RadialGradientRegularPoly

    +DAStatics Class +

    Same as RadialGradientRegularPolyAnim except that power is a non-animated number (a double). + +

    lib.RadialGradientRegularPoly(
      inner,
      outer,
      edges,
      power
      )


    RadialGradientSquareAnim

    +DAStatics Class +

    Creates a DAImage object with a square radial fill. The image is a unit-sized square, centered at the origin, reaching from [-0.5, -0.5] to [0.5, 0.5]. (These dimensions are always in meters, even if the PixelLibrary is selected. To convert from pixels to meters, use the Pixel conversion factor.) The image contains the specified colors in the center and at the corners, respectively. The gradient fill is determined by the power argument. The interpolation occurs in RGB space. Outside of the fill, the image is transparent and unpickable. The bounding box is a box from [-0.5, -0.5] to [0.5, 0.5]. + +

    Creates a DAImage object that smoothly interpolates between the start and stop colors. Colors start on the left and go toward the right, based on the power specified by power. + +

    lib.RadialGradientSquareAnim(
      inner,
      outer,
      power
      )

    Parameters
    +
    inner +
    The DAColor at the center of the image. +
    outer +
    The DAColor at the corners of the image. +
    power +
    The DANumber object that is an exponent controlling how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity]. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    RadialGradientSquare

    +DAStatics Class +

    Same as RadialGradientSquareAnim except that power is a non-animated number (a double). + +

    lib.RadialGradientSquare(
      inner,
      outer,
      power
      )


    SolidColorImage

    +DAStatics Class +

    Creates a DAImage object and applies the given color behavior to all points in the image. The bounding box of a solid-color image is the infinite bounding box. + +

    lib.SolidColorImage(
      col
      )

    Parameters
    +
    col +
    The DAColor object used to color the image. +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    StringImageAnim

    +DAStatics Class +

    Constructs a DAImage object from a DAString object and a DAFontStyle object. Because both parameters are (potentially) animated, they can vary over time. + +

    lib.StringImageAnim(
      string,
      font
      )

    Parameters
    +
    string +
    The DAString object specifying the (potentially) animated text. +
    font +
    The DAFontStyle object specifying the font style (this can include the face, the size, the color, and the attributes). +
    +
    Return Values
    +

    Returns the DAImage object. + + +


    StringImage

    +DAStatics Class +

    Same as StringImageAnim except that string is a string. + +

    lib.StringImage(
      string,
      font
      )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0081.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0081.HTM new file mode 100644 index 0000000..66921b3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0081.HTM @@ -0,0 +1,186 @@ + + +DAStatic Properties Relevant to DAImage Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAImage Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAImage Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAImage Objects
    +*Next Topic: DAStatic Properties Relevant to DAJoinStyle Objects
    +

    +

    +

    DAStatic Properties Relevant to DAImage Objects

    +
    +


    DetectableEmptyImage

    +DAStatics Class +

    A read-only property with a DAImage value in which all points are transparent but detectable. This image is useful for blocking mouse input from underlying image, allowing that input to be redirected. The bounding box is of infinite extent. + +

    lib.DetectableEmptyImage


    EmptyImage

    +DAStatics Class +

    A read-only property with a DAImage value in which all points are transparent and undetectable. This has a empty bounding box, which means that its maximum point is less than its minimum point. This allows operations such as union and intersection to produce the correct results. + +

    lib.EmptyImage

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0082.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0082.HTM new file mode 100644 index 0000000..b6fce46 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0082.HTM @@ -0,0 +1,190 @@ + + +DAStatic Properties Relevant to DAJoinStyle Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAJoinStyle Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAJoinStyle Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAImage Objects
    +*Next Topic: DAStatic Properties Relevant to DALineStyle Objects
    +

    +

    +

    DAStatic Properties Relevant to DAJoinStyle Objects

    +
    +


    JoinStyleBevel

    +DAStatics Class +

    A read-only property with a DAJoinStyle object value that joins two line segments by drawing a straight line between the outside corners of the segments and filling the resulting enclosed area. + +

    lib.JoinStyleBevel


    JoinStyleMiter

    +DAStatics Class +

    A DAJoinStyle value that joins two line segments by extending the outside edges of the segments until they intersect and filling the resulting enclosed area. The miter length is defined as the distance from the intersection of the line walls on the inside of the join to the intersection of the line walls on the outside of the join. + +

    lib.JoinStyleMiter


    JoinStyleRound

    +DAStatics Class +

    A DAJoinStyle value that joins two line segments by drawing an arc between the outside corners of the segments and filling the resulting enclosed area. The center of the arc is at the common endpoint, the diameter is the width of the line. + +

    lib.JoinStyleRound

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0083.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0083.HTM new file mode 100644 index 0000000..976d659 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0083.HTM @@ -0,0 +1,186 @@ + + +DAStatic Properties Relevant to DALineStyle Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DALineStyle Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DALineStyle Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAJoinStyle Objects
    +*Next Topic: DAStatic Functions Relevant to DAMatte Objects
    +

    +

    +

    DAStatic Properties Relevant to DALineStyle Objects

    +
    +


    DefaultLineStyle

    +DAStatics Class +

    A read-only property with a DALineStyle value whose style is Detail. + +

    lib.DefaultLineStyle


    EmptyLineStyle

    +DAStatics Class +

    A read-only property with a DALineStyle value that is transparent. + +

    lib.EmptyLineStyle

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0084.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0084.HTM new file mode 100644 index 0000000..e7529e8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0084.HTM @@ -0,0 +1,255 @@ + + +DAStatic Functions Relevant to DAMatte Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAMatte Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAMatte Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DALineStyle Objects
    +*Next Topic: DAStatic Properties Relevant to DAMatte Objects
    +

    +

    +

    DAStatic Functions Relevant to DAMatte Objects

    +
    +


    DifferenceMatte

    +DAStatics Class +

    Creates a DAMatte object that is the difference between the given mattes. The difference consists of only those elements of the path and/or text in m1 that are not also in m2. + +

    lib.DifferenceMatte(
      m1,
      m2
      )

    Parameters
    +
    m1 and m2 +
    The DAMatte objects. +
    +
    Return Values
    +

    Returns the DAMatte object. + + +

    See Also
    +

    IntersectMatte, UnionMatte + +


    FillMatte

    +DAStatics Class +

    Creates a DAMatte object consisting of the given path, path. Clipping an image with this matte preserves that portion of the image that is inside the path. + +

    lib.FillMatte(
      path
      )

    Parameters
    +
    path +
    The DAPath2 object. If the path is not closed, the start and end points are implicitly connected to close the path. +
    +
    Return Values
    +

    Returns the DAMatte object. + + +

    See Also
    +

    TextMatte + +


    IntersectMatte

    +DAStatics Class +

    Creates a DAMatte object that is the intersection of the given mattes. The intersection consists of only those elements of the paths and/or text of the original mattes that are the same. + +

    lib.IntersectMatte(
      m1,
      m2
      )

    Parameters
    +
    m1 and m2 +
    The DAMatte objects. +
    +
    Return Values
    +

    Returns the DAMatte object. + + +

    See Also
    +

    UnionMatte, DifferenceMatte + +


    TextMatte

    +DAStatics Class +

    Creates a DAMatte object consisting of the given DAString object, text, and with an appearance specified by the DAFontStyle object, fs. Clipping an image with this matte preserves that portion of the image that is inside the text. + +

    lib.TextMatte(
      text,
      fs
      )

    Parameters
    +
    text +
    The DAString object representing the text. +
    fs +
    The DAFontStyle object representing the font style. +
    +
    Return Values
    +

    Returns the DAMatte object. + + +

    See Also
    +

    FillMatte + +


    UnionMatte

    +DAStatics Class +

    Creates a DAMatte object that is the union of the given mattes. The union consists of all elements of the paths and/or text in the original mattes. + +

    lib.UnionMatte(
      m1,
      m2
      )

    Parameters
    +
    m1 and m2 +
    The DAMatte objects. +
    +
    Return Values
    +

    Returns the DAMatte object. + + +

    See Also
    +

    IntersectMatte, DifferenceMatte + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0085.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0085.HTM new file mode 100644 index 0000000..56a652a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0085.HTM @@ -0,0 +1,186 @@ + + +DAStatic Properties Relevant to DAMatte Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAMatte Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAMatte Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAMatte Objects
    +*Next Topic: DAStatic Properties Relevant to DAMicrophone Objects
    +

    +

    +

    DAStatic Properties Relevant to DAMatte Objects

    +
    +


    ClearMatte

    +DAStatics Class +

    A read-only property with a DAMatte value that, when applied to an image, preserves the entire image (that is, it clips nothing). + +

    lib.ClearMatte


    OpaqueMatte

    +DAStatics Class +

    A read-only property with a DAMatte value that, when applied to an image, clips the entire image (that is, preserves no part of the image). + +

    lib.OpaqueMatte

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0086.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0086.HTM new file mode 100644 index 0000000..b560886 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0086.HTM @@ -0,0 +1,182 @@ + + +DAStatic Properties Relevant to DAMicrophone Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAMicrophone Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAMicrophone Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAMatte Objects
    +*Next Topic: Miscellaneous DAStatic Functions
    +

    +

    +

    DAStatic Properties Relevant to DAMicrophone Objects

    +
    +


    DefaultMicrophone

    +DAStatics Class +

    A read-only property with a DAMicrophone value that is positioned at the origin, listening along the negative z axis with an upward orientation along the positive y axis. + +

    lib.DefaultMicrophone

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0087.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0087.HTM new file mode 100644 index 0000000..89dd2c0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0087.HTM @@ -0,0 +1,199 @@ + + +Miscellaneous DAStatic Functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Miscellaneous DAStatic Functions +DirectAnimation Animated Header --Miscellaneous DAStatic Functions* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAMicrophone Objects
    +*Next Topic: Miscellaneous DAStatic Properties
    +

    +

    +

    Miscellaneous DAStatic Functions

    +
    +


    AppTriggeredEvent()

    +DAStatics Class +

    Creates the event. The event can be used in the DAStatics subroutines Until and UntilEx to create reactive behaviors based on external events. + +

    staticsObj.AppTriggeredEvent( )

    Return Values
    +

    Returns the DAEvent object. + + +


    TriggerEvent

    +DAStatics Class +

    Triggers the event and passes the given data to the event handler. + +

    lib.TriggerEvent(
      event,
      data
      )

    Parameters
    +
    event +
    The DAEvent that is triggered. +
    data +
    The DABehavior object that is the data. +
    +
    Remarks
    +

    The triggered event occurs as soon as possible. + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0088.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0088.HTM new file mode 100644 index 0000000..b4e9a34 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0088.HTM @@ -0,0 +1,222 @@ + + +Miscellaneous DAStatic Properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Miscellaneous DAStatic Properties +DirectAnimation Animated Header --Miscellaneous DAStatic Properties* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Miscellaneous DAStatic Functions
    +*Next Topic: DAStatic Functions Relevant to DAMontage Objects
    +

    +

    +

    Miscellaneous DAStatic Properties

    +
    +


    AreBlockingImportsComplete

    +DAStatics Class +

    A property indicating whether all synchronous imports have been completely downloaded. + +

    lib.AreBlockingImportsComplete


    ClientSite

    +DAStatics Class +

    A property that, when set, allows imports from a relative file naem by establishing an absolute base. It takes an IOleClientSite. For more information, consult an OLE reference. + +

    lib.ClientSite


    Cm

    +DAStatics Class +

    A read-only property that is the centimeter unit (a double). + +

    lib.Cm


    Foot

    +DAStatics Class +

    A read-only property that is the foot unit (a double). + +

    lib.Foot


    Inch

    +DAStatics Class +

    A read-only property that is the inch unit (a double). + +

    lib.Inch


    Meter

    +DAStatics Class +

    A read-only property that is the meter unit (a double). + +

    lib.Meter


    Mm

    +DAStatics Class +

    A read-only property that is the millimeter unit (a double). + +

    lib.Mm


    Pixel

    +DAStatics Class +

    A read-only property that is the pixel unit (a DANumber). + +

    lib.Pixel


    PixelConstructionMode

    +DAStatics Class +

    A property with a boolean value that, if TRUE, sets the unit of measure to pixels and, if FALSE, sets the unit of measure to meters (this is the default). Ordinarily, instead of using this property, developers use either the MeterLibrary or the PixelLibrary property, both of which return a DAStatics object. In the case of PixelLibrary, the statics object returned is automatically set to PixelConstructionMode while, in the case of the MeterLibrary it isn't. + +

    lib.PixelConstructionMode


    Site

    +DAStatics Class +

    A property that, when set, allows control over error messages. + +

    lib.Site


    VersionString

    +DAStatics Class +

    A read-only property (a string) that is the version string in the form MM.NN.BBBB, where MM is the major version, NN is the minor version, and BBBB is the build number. + +

    lib.VersionString

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0089.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0089.HTM new file mode 100644 index 0000000..510cc6b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0089.HTM @@ -0,0 +1,208 @@ + + +DAStatic Functions Relevant to DAMontage Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAMontage Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAMontage Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Miscellaneous DAStatic Properties
    +*Next Topic: DAStatic Properties Relevant to DAMontage Objects
    +

    +

    +

    DAStatic Functions Relevant to DAMontage Objects

    +
    +


    ImageMontageAnim

    +DAStatics Class +

    Creates a DAMontage object consisting of a single DAImage object at the given Z-value. + +

    lib.ImageMontageAnim(
      image,
      Z-value
      )

    Parameters
    +
    image +
    The DAImage object. +
    Z-value +
    The DANumber object, specifying the Z-value. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAMontage object. + + +


    ImageMontage

    +DAStatics Class +

    Same as ImageMontageAnim except that the arguments are non-animated numbers. + +

    lib.ImageMontage(
      image,
      Z-value
      )


    UnionMontage

    +DAStatics Class +

    Creates a DAMontage object by combining the given arguments. + +

    lib.UnionMontage(
      m1,
      m2
      )

    Parameters
    +
    m1 and m2 +
    The DAMontage objects to be combined. +
    +
    Return Values
    +

    Returns the DAMontage object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0090.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0090.HTM new file mode 100644 index 0000000..1c56603 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0090.HTM @@ -0,0 +1,182 @@ + + +DAStatic Properties Relevant to DAMontage Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAMontage Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAMontage Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAMontage Objects
    +*Next Topic: DAStatic Functions Relevant to DANumber Objects
    +

    +

    +

    DAStatic Properties Relevant to DAMontage Objects

    +
    +


    EmptyMontage

    +DAStatics Class +

    A read-only property with a DAMontage value that contains no images. + +

    lib.EmptyMontage

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0091.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0091.HTM new file mode 100644 index 0000000..ae9a50c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0091.HTM @@ -0,0 +1,682 @@ + + +DAStatic Functions Relevant to DANumber Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DANumber Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DANumber Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAMontage Objects
    +*Next Topic: DAStatic Properties Relevant to DANumber Objects
    +

    +

    +

    DAStatic Functions Relevant to DANumber Objects

    +
    +


    Abs

    +DAStatics Class +

    Creates a DANumber that represents the absolute value of the given animated number. The value is equal to the absolute value (the non-negative equivalent) of the value of a. + +

    lib.Abs(
      a
      )

    Parameters
    +
    a +
    The DANumber object to apply the operation to. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Acos

    +DAStatics Class +

    Creates a DANumber object that represents the arccosine (inverse cosine) of the argument. + +

    lib.Acos(
      a
      )

    Parameters
    +
    a +
    The DANumber object. The value is assumed to be a cosine value. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Asin + +


    Add

    +DAStatics Class +

    Creates a DANumber object representing the sum of the given arguments. The value is the value of a added to the value of b (a + b). + +

    lib.Add(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to add. +
    +
    Return Values
    +

    Returns the DANumberobject. + + +


    Asin

    +DAStatics Class +

    Creates a DANumberobject that represents the arcsine (inverse sine) of the given argument. + +

    lib.Asin(
      a
      )

    Parameters
    +
    a +
    The DANumber object. The value is assumed to be a sine value. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Acos + +


    Atan

    +DAStatics Class +

    Creates a DANumber object that represents the arctangent (inverse tangent) of the given argument. + +

    lib.Atan(
      a
      )

    Parameters
    +
    a +
    The DANumber object. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Acos, Asin, Atan2 + +


    Atan2

    +DAStatics Class +

    Creates the DANumber object that represents the arctangent (inverse tangent) of the quotient of the given arguments. The value is the inverse tangent of the value of a divided by the value of b. + +

    lib.Atan2(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to divide. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Acos, Asin + +


    Ceiling

    +DAStatics Class +

    Creates the DANumber object that represents the ceiling value, the smallest integer value that is greater than or equal to the value of the given argument. + +

    lib.Ceiling(
      a
      )

    Parameters
    +
    a +
    The DANumber object to find the ceiling for. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Cos

    +DAStatics Class +

    Creates a the DANumber object that represents the cosine of the given argument. + +

    lib.Cos(
      a
      )

    Parameters
    +
    a +
    The DANumber object. The value is assumed to be in radians. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Sin + +


    DANumber

    +DAStatics Class +

    Converts a number (a double) to a DANumber. The only time DANumber is used is when converting numbers to a corresponding DANumber objects. + +

    lib.DANumber(
      a
      )

    Parameters
    +
    a +
    The number (double) to be converted. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Derivative

    +DAStatics Class +

    Creates a DANumber object that is the instantaneous derivative (rate of change) of the given argument. For example, a constant number yields a constant derivative of 0 and a value equal to "time" yields a constant derivative of 1. + +

    lib.Derivative(
      a
      )

    Parameters
    +
    a +
    The DANumber object for which to calculate the derivative. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Div

    +DAStatics Class +

    Creates DANumber object representing the quotient of the given arguments. The value is the value of a divided by the value of b (a/b). + +

    lib.Div(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to divide. +
    +
    Return Values
    +

    Returns DANumber the object. + + +


    EQ

    +DAStatics Class +

    Creates DABoolean object that represents the relation a = b. The value is TRUE when the value of a is equal to the value of b, otherwise, it is FALSE. + +

    lib.EQ(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to compare. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +


    Exp

    +DAStatics Class +

    Creates a DANumber object that represents the exponential of the given argument. The value is the base of natural logarithms, e, raised to the power of the value of a. + +

    lib.Exp(
      a
      )

    Parameters
    +
    a +
    The DANumber object to apply as an exponent of e. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Ln + +


    Floor

    +DAStatics Class +

    Creates the DANumber that represents the floor value, the largest integer value that is less than or equal to the value of the given argument. + +

    lib.Floor(
      a
      )

    Parameters
    +
    a +
    The DANumber object to find the floor for. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    GT

    +DAStatics Class +

    Creates a DABoolean object that represents the relation a > b. The value is TRUE when the value of a is greater than the value of b, otherwise, it is FALSE. + +

    lib.GT(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to compare. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +


    GTE

    +DAStatics Class +

    Creates DABoolean object that represents the relation a ³ b. The value is TRUE when the value of a is greater than or equal to the value of b, otherwise, it is FALSE. + +

    lib.GTE(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to compare. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +


    Integral

    +DAStatics Class +

    Creates a DANumber object that represents the sum of all values of a from the start time to the present. + +

    lib.Integral(
      a
      )

    Parameters
    +
    a +
    The DANumber object to integrate. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    InterpolateAnim

    +DAStatics Class +

    Creates a DANumber object the moves along the interval in duration seconds. Velocity is constant. + +

    lib.InterpolateAnim(
      from,
      to,
      duration
      )

    Parameters
    +
    from +
    The beginning DANumber object. This must be an animated number. +
    to +
    The ending DANumber object. This must be an animated number. +
    duration +
    The DANumber object representing the length of time, in seconds. This must be an animated number. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Interpolate

    +DAStatics Class +

    Same as InterpolateAnim except the arguments are non-animated numbers(doubles). + +

    lib.Interpolate(
      from,
      to,
      duration
      )


    Ln

    +DAStatics Class +

    Creates a DANumber object that represents the natural logarithm of the given argument. The value is the value by which the base of natural logarithms, e, must be raised to equal the value of a. + +

    lib.Ln(
      DANumber a
      )

    Parameters
    +
    a +
    The DANumber object for which to calculate the natural logarithm. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Exp + +


    Log10

    +DAStatics Class +

    Creates DANumber object that represents the common logarithm (base-10 logarithm) of the given argument. The value is the value by which 10 must be raised to equal the value of a. + +

    lib.Log10(
      a
      )

    Parameters
    +
    a +
    The DANumber object for which to calculate the common logarithm. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    LT

    +DAStatics Class +

    Creates a DABoolean object that represents the relation a < b. The value is TRUE when the value of a is less than the value of b, otherwise, it is FALSE. + +

    lib.LT(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to compare. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +


    LTE

    +DAStatics Class +

    Creates a DABoolean object that represents the relation a £ b. The value is TRUE when the value of a is less than or equal to the value of b, otherwise, it is FALSE. + +

    lib.LTE(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to compare. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +


    Mod

    +DAStatics Class +

    Creates a DANumber object that represents the modulus of the given arguments. The value is the modulus, the remainder of the integer value of a divided by the integer value of b. + +

    lib.Mod(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to calculate the modulus for. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Mul

    +DAStatics Class +

    Creates a DANumber representing the product of the given arguments. The value is the value of a multiplied by the value of b +(a ´ b). + +

    lib.Mul(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to multiply. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    NE

    +DAStatics Class +

    Creates a DABoolean object that represents the relation a != b. The value is TRUE when the value of a is not equal to the value of b, otherwise, it is FALSE. + +

    lib.NE(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to compare. +
    +
    Return Values
    +

    Returns the DABoolean object. + + +


    Neg

    +DAStatics Class +

    Creates a DANumber object representing the negation of the given arguments. The value is equal to the value of a subtracted from zero (0 - a). + +

    lib.Neg(
      DANumber a
      )

    Parameters
    +
    a +
    The DANumber object to negate. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    NumberBSpline

    +DAStatics Class +

    Creates a DANumber object based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned DANumber is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a DANumber that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    lib.NumberBSpline(
      degree,
      knots,
      control_elements,
      weights,
      evaluation
      )

    Parameters
    +
    degree +
    A number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array of DANumber objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array of DANumber objects representing the control elements used to calculate the B-spline. +
    weights +
    An array of DANumber objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A DANumber object that controls the spline evaluation. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Pow

    +DAStatics Class +

    Creates a DANumber representing a raised to the power of b. The value is equal to ab. + +

    lib.Pow(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to apply the operation to. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Round

    +DAStatics Class +

    Creates a DANumber object that represents the value of the given argument, rounded to the nearest integer. + +

    lib.Round(
      a
      )

    Parameters
    +
    a +
    The DANumber object to be rounded. +
    +


    SeededRandom

    +DAStatics Class +

    Creates a DANumber object that represents an infinite, time-varying sequence of pseudo-random values. + +

    lib.SeededRandom(
      seed
      )

    Parameters
    +
    seed +
    The double that provides the seed, or starting value, for the sequence. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Sin

    +DAStatics Class +

    Creates a DANumber object that represents the sine of the given argument. + +

    lib.Sin(
      a
      )

    Parameters
    +
    a +
    The DANumber object. The value is assumed to be in radians. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Cos + +


    SlowInSlowOutAnim

    +DAStatics Class +

    Creates a DANumber object that moves along the interval in duration seconds. The animation is dampened so that the number increases slowly, hits a maximum speed at the midpoint, and then decelerates until the end is reached. The acceleration is specified in Gs, or multiples of the earth's gravitational constant. + +

    lib.SlowInSlowOutAnim(
      from,
      to,
      duration,
      acceleration
      )

    Parameters
    +
    from +
    The DANumber object that is the beginning of the animation. This must be an animated number. +
    to +
    The DANumber object that is the end of the animation. This must be an animated number. +
    duration +
    The DANumber object that is the length of the animation, in seconds. +
    acceleration +
    The DANumber object that is the rate of acceleration, in Gs. This must be an animated number. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    SlowInSlowOut

    +DAStatics Class +

    Same as SlowInSlowOutAnim except that the arguments are non-animated numbers (doubles). + +

    lib.SlowInSlowOut(
      from,
      to,
      duration,
      acceleration
      )


    Sqrt

    +DAStatics Class +

    Creates a DANumber object that represents the square root of the given argument. The value is the square root of the value of a. + +

    lib.Sqrt(
      a
      )

    Parameters
    +
    a +
    The DANumber object to apply the square root operation to. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Sub

    +DAStatics Class +

    Creates a DANumber object representing the difference of the given arguments. The value is the value of b subtracted from a (a - b). + +

    lib.Sub(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DANumber objects to subtract. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    Tan

    +DAStatics Class +

    Creates a DANumber object that represents the tangent of the given argument. + +

    lib.Tan(
      a
      )

    Parameters
    +
    a +
    The DANumber object. The value is assumed to be in radians. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    Atan, Cos, Sin + +


    ToDegrees

    +DAStatics Class +

    Creates a DANumber object that represents the value of the given argument converted from radians to degrees. + +

    lib.ToDegrees(
      a
      )

    Parameters
    +
    a +
    The DANumber object to convert. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    ToRadians

    +DAStatics Class +

    Creates a DANumber object that represents the value of the given argument converted from degrees to radians. + +

    lib.ToRadians(
      a
      )

    Parameters
    +
    a +
    The DANumber object to convert. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0092.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0092.HTM new file mode 100644 index 0000000..bb5c14d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0092.HTM @@ -0,0 +1,186 @@ + + +DAStatic Properties Relevant to DANumber Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DANumber Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DANumber Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DANumber Objects
    +*Next Topic: DAStatic Functions Relevant to DAPath2 Objects
    +

    +

    +

    DAStatic Properties Relevant to DANumber Objects

    +
    +


    GlobalTime

    +DAStatics Class +

    A read-only property with a DANumber value which increases at the rate of one unit per second. Unlike LocalTime, the GlobalTime value cannot be reset to zero. + +

    lib.GlobalTime


    LocalTime

    +DAStatics Class +

    A read-only property with a DANumber value that starts at zero when "started" and increases at the rate of one unit per second. + +

    lib.LocalTime

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0093.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0093.HTM new file mode 100644 index 0000000..84113b0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0093.HTM @@ -0,0 +1,469 @@ + + +DAStatic Functions Relevant to DAPath2 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAPath2 Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAPath2 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DANumber Objects
    +*Next Topic: DAStatic Functions Relevant to DAPoint2 Objects
    +

    +

    +

    DAStatic Functions Relevant to DAPath2 Objects

    +
    +


    ArcDegrees

    +DAStatics Class +

    Creates a DAPath2 object representing a segment of an oval (In effect, this is an arc). The oval is centered at the origin. + +

    lib.ArcDegrees(
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    startAngle +
    The number (a double) representing the starting angle of the oval segment, expressed in degrees. +
    endAngle +
    The number (a double) representing the ending angle of the oval segment, expressed in degrees. +
    arcWidth +
    The number (a double) representing the arc width, expressed in either meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that positive-y is down. +
    arcHeight +
    The number (a double) representing the arc height, expressed in either meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that positive-y is down.. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    ArcRadiansAnim

    +DAStatics Class +

    Creates a DAPath2 object representing a segment of an oval (In effect, this is an arc). The oval is centered at the origin. + +

    lib.ArcRadiansAnim(
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    startAngle +
    The DANumber object representing the starting angle of the arc, expressed in radians. This must be an animated number. +
    endAngle +
    The DANumber object representing the ending angle of the arc, expressed in radians. This must be an animated number. +
    arcWidth +
    The DANumber object representing the arc width, expressed in meters, or pixels, depending on whether the Pixel Library or the MeterLibrary was selected. This must be an animated number. +
    arcHeight +
    The DANumber object representing the arc height, expressed in meters, or pixels, depending on whether the Pixel Library or the MeterLibrary was selected. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +

    Remarks
    +

    If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    ArcRadians

    +DAStatics Class +

    Same as ArcRadiansAnim except that the arguments are non-animated numbers (doubles). + +

    lib.ArcRadians(
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )


    Concat

    +DAStatics Class +

    Creates a DAPath2 object that represents the concatenation of the given paths. In the new path, the points of p1 occur first, followed by those of p2. Path p2 is transformed so that the first point of p2 aligns with the last point of p1. + +

    lib.Concat(
      p1,
      p2
      )

    Parameters
    +
    p1 and p2 +
    The DAPath2 objects. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    ConcatArray

    +DAStatics Class +

    Creates a DAPath2 object that represents the concatenation of the DAPath2 objects in the array. In the new path, the points of the first path in the array occur first, followed sequentially by the other paths in the array. The second path, for example, is transformed so that its first point aligns with the last point of the first path. + +

    lib.ConcatArray(
      paths
      )

    Parameters
    +
    paths +
    The array (variant) of DAPath2 objects. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    CubicBSplinePath

    +DAStatics Class +

    Creates a DAPath2 object based on a cubic B-spline curve. The curve depends on the control points and the knot vector, and requires that: + +

    The control points define the approximate direction and shape of the function. The knots represent the junction values, in parameter space, between the connected polynomial parts. For a number of knots k, the function is valid in the range [3, knotk-2], and is otherwise undefined. + +

    lib.CubicBSplinePath(
      points,
      knots
      )

    Parameters
    +
    points +
    An array (variant) of DAPoint2 objects representing the points used to calculate the B-spline. +
    knots +
    An array (variant) of DANumber objects representing the knots used to calculate the B-spline. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    Line

    +DAStatics Class +

    Creates a DAPath2 object that represents the line segment defined by the given points. + +

    lib.Line(
      p1,
      p2
      )

    Parameters
    +
    p1 and p2 +
    The DAPoint2 objects. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    OvalAnim

    +DAStatics Class +

    Creates a DAPath2 object that represents an oval, centered about the origin, and whose width and height are described by the given DANumber arguments. + +

    lib.OvalAnim(
      width,
      height
      )

    Parameters
    +
    width +
    The DANumber object representing the oval's width. This must be an animated number. +
    height +
    The DANumber object representing the oval's height. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that positive-y is down. + +


    Oval

    +DAStatics Class +

    Same as OvalAnim except that the arguments are non-animated numbers (doubles). + +

    lib.Oval(
      width,
      height
      )


    PieDegrees

    +DAStatics Class +

    Creates a DAPath2 object representing a closed path that traces a segment of an oval and connects it to the origin. (In effect, it is a pie-shaped wedge). The oval is centered at the origin. + +

    lib.PieDegrees(
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    startAngle +
    The double representing the starting angle of the oval segment, expressed in degrees. +
    endAngle +
    The double representing the ending angle of the oval segment, expressed in degrees. +
    arcWidth +
    The double representing the arc width, expressed in meters, or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. +
    arcHeight +
    The double representing the arc height, expressed in meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    PieRadiansAnim

    +DAStatics Class +

    Creates a DAPath2 object representing a closed path that traces a segment of an oval and connects it to the origin. (In effect, it is a pie-shaped wedge). The oval is centered at the origin. + +

    lib.PieRadiansAnim(
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    startAngle +
    The DANumber object representing the starting angle of the oval segment, expressed in radians. This must be an animated number. +
    endAngle +
    The DANumber object representing the ending angle of the oval segment, expressed in radians. This must be an animated number. +
    arcWidth +
    The DANumber object representing the arc width, expressed in meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. This must be an animated number. +
    arcHeight +
    The DANumber object representing the arc height, expressed in meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    PieRadians

    +DAStatics Class +

    Same as PieRadiansAnim except that the arguments are non-animated numbers (doubles). + +

    lib.PieRadians(
      startAngle,
      endAngle,
      arcWidth,
      arcHeight
      )


    PolyDrawPath

    +DAStatics Class +

    Creates a DAPath2 object by manipulating the array of points with the codes contained in the DANumber array. The codes represent the instructions that can be OR'd together, where: + + + + + + + + + + + + + + + + + + + + + + +
    CodeNameMeaning +
    01PT_CLOSEFIGUREConnects points to create a closed figure. +
    02PT_LINETOConnects points in a line. +
    04PT_BEZIERTOConnects points in a Bezier curve. These must occur in multiples of 3. +
    06PT_MOVETOMoves to a point. This is, implicitly, always the first instruction. +
    +

    lib.PolyDrawPath(
      points,
      codes
      )

    Parameters
    +
    points +
    An array of DAPoint2 objects. +
    codes +
    An array of DANumber objects representing the instruction codes. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +

    Remarks
    +

    This function is the equivalent of the Graphics Drawing Interface (GDI) PolyDraw function. + +


    Polyline

    +DAStatics Class +

    Creates a DAPath2 object that consists of the given (animated) points. The path can be used either for drawing or animation. The default line style is the defaultLineStyle. + +

    lib.Polyline(
      points
      )

    Parameters
    +
    points +
    An array (variant) of DAPoint2 objects. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    Ray

    +DAStatics Class +

    Creates a DAPath2 object that represents the line segment from the origin to the given (animated) point. + +

    lib.Ray(
      p
      )

    Parameters
    +
    p +
    The DAPoint2 object. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +


    RectAnim

    +DAStatics Class +

    Creates the DAPath2 object representing a rectangle, centered at the origin. + +

    lib.RectAnim(
      width,
      height
      )

    Parameters
    +
    width +
    The DANumber object representing the width of the rectangle, either in meters or pixels depending on whether the MeterLibrary or the PixelLibrary is selected. This must be an animated number. +
    height +
    The DANumber object representing the height of the rectangle, either in meters or pixels depending on whether the MeterLibrary or the PixelLibrary is selected. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +

    Remarks
    +

    If the PixelLibrary is selected, remember that positive-y is down. + +


    Rect

    +DAStatics Class +

    Same as RectAnim except that the arguments are non-animated numbers (doubles). + +

    lib.Rect(
      width,
      height
      )


    RoundRectAnim

    +DAStatics Class +

    Creates a DAPath2 object that is a rectangle, centered about the origin, with rounded, rather than square, corners. The corners are considered to be segments of an oval (in effect, an arc), centered at the origin. + +

    lib.RoundRectAnim(
      width,
      height,
      arcWidth,
      arcHeight
      )

    Parameters
    +
    width +
    The DANumber object representing the rectangle's width. This must be an animated number. +
    height +
    The DANumber object representing the rectangle's height. This must be an animated number. +
    arcWidth +
    The DANumber object representing the arc width. This must be an animated number. +
    arcHeight +
    The DANumber object representing the arc height. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that positive-y is down. + +


    RoundRect

    +DAStatics Class +

    Same as RoundRectAnim except that the arguments are non-animated numbers (doubles). + +

    lib.RoundRect(
      width,
      height,
      arcWidth,
      arcHeight
      )


    StringPathAnim

    +DAStatics Class +

    Creates a DAPath2 object from the supplied DAString object. The appearance is specified by the DAFontStyle object. The path behavior is useful for creating a matte to which an image behavior can be clipped. + +

    lib.StringPathAnim(
      string,
      fs
      )

    Parameters
    +
    string +
    The DAString object used to create the DAPath2 object. +
    fs +
    The DAFontStyle object specifying the appearance of the text. +
    +
    Return Values
    +

    Returns the DAPath2 object. + + +

    See Also
    +

    StringPath + +


    StringPath

    +DAStatics Class +

    Same as StringPathAnim except that string is non-animated. + +

    lib.StringPath(
      string,
      fs
      )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0094.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0094.HTM new file mode 100644 index 0000000..01f7f18 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0094.HTM @@ -0,0 +1,336 @@ + + +DAStatic Functions Relevant to DAPoint2 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAPoint2 Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAPoint2 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAPath2 Objects
    +*Next Topic: DAStatic Properties Relevant to DAPoint2 Objects
    +

    +

    +

    DAStatic Functions Relevant to DAPoint2 Objects

    +
    +


    AddPoint2Vector

    +DAStatics Class +

    Creates a DAPoint2 object. The location of the object is calculated by adding the corresponding coordinates of the given DAPoint2 and DAVector2 objects. + +

    lib.AddPoint2Vector(
      pt,
      vec
      )

    Parameters
    +
    pt +
    A DAPoint2 object. +
    vec +
    A DAVector2 object. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +

    See Also
    +

    SubPoint2Vector + +


    DerivativePoint2

    +DAStatics Class +

    Creates a DAVector2 object representing the instantaneous derivative (rate of change) of pt. For example, a constant yields a constant derivative of [0 0], and Point2(time, 0) (without additional time substitutions) yields a constant derivative of [1 0]. + +

    lib.DerivativePoint2(
      pt
      )

    Parameters
    +
    pt +
    A DAPoint2 object whose derivative is found. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +


    DistancePoint2

    +DAStatics Class +

    Creates a DAPoint2 object representing the distance between the two given points, p1 and p2. + +

    lib.DistancePoint2(
      p1,
      p2
      )

    Parameters
    +
    p1 and p2 +
    The DAPoint2 objects. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    DistanceSquaredPoint2 + +


    DistanceSquaredPoint2

    +DAStatics Class +

    Creates a DANumber object representing the square of the distance between the two points, p1 and p2. This is the same as the DistancePoint2 function except that the distance is squared. + +

    lib.DistanceSquaredPoint2(
      p1,
      p2
      )

    Parameters
    +
    p1 and p2 +
    The DAPoint2 objects. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    DistancePoint2 + +


    Point2Anim

    +DAStatics Class +

    Creates a DAPoint2 object. The location of the object is given in Cartesian coordinates. + +

    lib.Point2Anim(
      x,
      y
      )

    Parameters
    +
    x and y +
    The DANumber objects, specifying the coordinate values. The x specifies the distance along the x-axis from the origin to the point, and y specifies the distance along the y-axis. These parameters must be animated numbers. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +

    See Also
    +

    Point2PolarAnim + +


    Point2

    +DAStatics Class +

    Same as Point2Anim except that x and y are non-animated numbers (doubles). + +

    lib.Point2(
      x,
      y
      )


    Point2BSpline

    +DAStatics Class +

    Creates a DAPoint2 object based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned DAPoint2 object is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a DANumber that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    lib.Point2BSpline(
      degree,
      knots,
      control_elements,
      weights,
      evaluation
      )

    Parameters
    +
    degree +
    A number (long) representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array (variant) of DANumber objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array (variant) of DAPoint2 objects representing the control elements used to calculate the B-spline. +
    weights +
    An array (variant) of DANumber objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. This must be an animated number. +
    evaluation +
    A DANumber object that controls the spline evaluation. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +


    Point2PolarAnim

    +DAStatics Class +

    Creates a DAPoint2 object. The location of the object is given in polar coordinates. + +

    lib.Point2PolarAnim(
      XYangle,
      length
      )

    Parameters
    +
    XYangle +
    The DANumber object specifying the angle, in radians, between the positive x-axis and the ray that goes from the origin to the point. This must be an animated number. +
    length +
    The DANumber object specifying the distance from the origin to the point. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +

    See Also
    +

    Point2Anim + +


    Point2Polar

    +DAStatics Class +

    Same as Point2PolarAnim except that x and y are non-animated numbers (doubles). + +

    lib.Point2Polar(
      x,
      y
      )


    SubPoint2

    +DAStatics Class +

    Creates a DAVector2 object. The coordinate values of the vector are calculated by subtracting the coordinates of p2 from the corresponding coordinates of p1. + +

    lib.SubPoint2(
      p1,
      p2
      )

    Parameters
    +
    p1 and p2 +
    The DAPoint2 objects to be subtracted. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +


    SubPoint2Vector

    +DAStatics Class +

    Creates a DAPoint2 object. The location of the point is calculated by subtracting the coordinates of the given vector behavior from the corresponding coordinates of the given point. + +

    lib.SubPoint2Vector(
      pt,
      vec
      )

    Parameters
    +
    pt +
    A DAPoint2 object. +
    vec +
    A DAVector2 object. +
    +
    Return Values
    +

    Returns the DAPoint2 object. + + +

    See Also
    +

    AddPoint2Vector + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0095.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0095.HTM new file mode 100644 index 0000000..7855e8a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0095.HTM @@ -0,0 +1,186 @@ + + +DAStatic Properties Relevant to DAPoint2 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAPoint2 Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAPoint2 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAPoint2 Objects
    +*Next Topic: DAStatic Functions Relevant to DAPoint3 Objects
    +

    +

    +

    DAStatic Properties Relevant to DAPoint2 Objects

    +
    +


    MousePosition

    +DAStatics Class +

    A read-only property with a DAPoint2 value that is the current location of the mouse. + +

    lib.MousePosition


    Origin2

    +DAStatics Class +

    A read-only property with a DAPoint2 value that is always located at the origin. + +

    lib.Origin2

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0096.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0096.HTM new file mode 100644 index 0000000..c69572e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0096.HTM @@ -0,0 +1,394 @@ + + +DAStatic Functions Relevant to DAPoint3 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAPoint3 Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAPoint3 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAPoint2 Objects
    +*Next Topic: DAStatic Properties Relevant to DAPoint3 Objects
    +

    +

    +

    DAStatic Functions Relevant to DAPoint3 Objects

    +
    +


    AddPoint3Vector

    +DAStatics Class +

    Creates a DAPoint3 object. The location of the point is calculated by adding the corresponding coordinates of the given point and vector behaviors. + +

    lib.AddPoint3Vector(
      pt,
      vec
      )

    Parameters
    +
    pt +
    A DAPoint3 object. +
    vec +
    A DAVector3 object. +
    +
    Return Values
    +

    Returns the DAPoint3 object. + + +

    See Also
    +

    SubPoint3Vector + +


    DerivativePoint3

    +DAStatics Class +

    Creates a DAVector3 object of the instantaneous derivative (rate of change) of the given point. For example, a constant yields a constant derivative of [0 0 0], and Point3 (time, 0) (without additional time substitutions) yields a constant derivative of [1 0 0]. + +

    lib.DerivativePoint3(
      pt
      )

    Parameters
    +
    pt +
    A DAPoint3 object. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +


    DistancePoint3

    +DAStatics Class +

    Creates a DANumber representing the distance between two points. + +

    lib.DistancePoint3(
      p1,
      p2
      )

    Parameters
    +
    p1 and p3 +
    The DAPoint3 objects. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    DistanceSquaredPoint3 +


    DistanceSquaredPoint3

    +DAStatics Class +

    Creates a DANumber object representing the square of the distance between two points. This is the same as the DistancePoint3 function except that the distance is squared. + +

    lib.DistanceSquaredPoint3(
      p1,
      p2
      )

    Parameters
    +
    p1 and p3 +
    The DAPoint3 objects. +
    +
    Return Values
    +

    Returns the DANumber object. + + +

    See Also
    +

    DistancePoint3 + +


    Point3Anim

    +DAStatics Class +

    Creates a DAPoint3 object. The location of the point is given in Cartesian coordinates. + +

    lib.Point3Anim(
      x,
      y,
      z
      )

    Parameters
    +
    x, y, and z +
    The DANumber objects, specifying the coordinate values. The x specifies the distance along the x-axis from the origin to the point, y specifies the distance along the y-axis, and z the distance along the z-axis. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DAPoint3 object. + + +

    See Also
    +

    Point3SphericalAnim + +


    Point3

    +DAStatics Class +

    Same as Point3Anim except that x, y, and z are non-animated numbers (doubles). + +

    lib.Point3(
      x,
      y,
      z
      )


    Point3BSpline

    +DAStatics Class +

    Creates a DAPoint3 behavior based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned DAPoint3 is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a DANumber that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    lib.Point3BSpline(
      degree,
      knots,
      control_elements,
      weights,
      evaluation
      )

    Parameters
    +
    degree +
    A number (long) representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array (variant) of DANumber objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array (variant) of DAPoint3 objects representing the control elements used to calculate the B-spline. +
    weights +
    An array (variant) of DANumber objects representing the weights used to calculate the B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A DANumber object that controls the spline evaluation. +
    +
    Return Values
    +

    Returns the DAPoint3 object. + + +


    Point3SphericalAnim

    +DAStatics Class +

    Creates a DAPoint3 object. The location of the point is given in spherical coordinates. + +

    lib.Point3SphericalAnim(
      XYangle,
      YZangle,
      length
      )

    Parameters
    +
    XYangle +
    A DANumber object of the counter-clockwise XY angle, in radians, of the point about the positive y-ray. The angle begins at the positive z-ray, so that [0 0 1] has a theta of 0, and [1 0 0] has a theta of pi/2. This must be an animated number. +
    YZangle +
    A DANumber object of the counter-clockwise elevation angle, in radians, of the point above the XZ-plane. A YZangle of pi/2 means the point is straight up (on the positive y-ray), and a YZangle of -pi/2 is straight down (on the negative y-ray). This must be an animated number. +
    length +
    A DANumber object of the distance of the point from the origin. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAPoint3 object. + + +

    Remarks
    +

    The following table correlates Cartesian coordinates with polar coordinates (X means "Don't Care"): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CartesianXYangleYZangleLength +
    Coordinates +
    [0 0 0]XX0 +
    [d 0 0]pi/20d +
    [-d 0 0]-pi/20d +
    [0 d 0]Xpi/2d +
    [0 -d 0]X-pi/2d +
    [0 0 d]00d +
    [0 0 -d]pi0d +
    +

    See Also
    +

    Point3Anim + +


    Point3Spherical

    +DAStatics Class +

    Same as Point3SphericalAnim except that XYangle, YZangle, and length are non-animated numbers (doubles). + +

    lib.Point3Spherical(
      XYangle,
      YZangle,
      length
      )


    SubPoint3

    +DAStatics Class +

    Creates a DAVector3 object. The coordinate values of the vector are calculated by subtracting the coordinates of p3 from the corresponding coordinates of p1. + +

    lib.SubPoint3(
      p1,
      p2
      )

    Parameters
    +
    p1 and p3 +
    The DAPoint3 objects. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +


    SubPoint3Vector

    +DAStatics Class +

    Creates a DAPoint3 object. The location of the point is calculated by subtracting the coordinates of the given vector behavior from the corresponding coordinates of the given point. + +

    lib.SubPoint3Vector(
      pt,
      vec
      )

    Parameters
    +
    pt +
    A DAPoint3 object. +
    vec +
    A DAVector3 object. +
    +
    Return Values
    +

    Returns the DAPoint3 object. + + +

    See Also
    +

    AddPoint3Vector + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0097.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0097.HTM new file mode 100644 index 0000000..1c678a7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0097.HTM @@ -0,0 +1,182 @@ + + +DAStatic Properties Relevant to DAPoint3 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAPoint3 Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAPoint3 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAPoint3 Objects
    +*Next Topic: DAStatic Functions Relevant to DASound Objects
    +

    +

    +

    DAStatic Properties Relevant to DAPoint3 Objects

    +
    +


    Origin3

    +DAStatics Class +

    A read-only property with a DAPoint3 value that is always located at the origin. + +

    lib.Origin3

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0098.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0098.HTM new file mode 100644 index 0000000..b5a044c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0098.HTM @@ -0,0 +1,239 @@ + + +DAStatic Functions Relevant to DASound Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DASound Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DASound Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAPoint3 Objects
    +*Next Topic: DAStatic Properties Relevant to DASound Objects
    +

    +

    +

    DAStatic Functions Relevant to DASound Objects

    +
    +


    ImportSound

    +DAStatics Class +

    Creates a sound behavior by synchronously importing the given .WAV or MIDI file. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See ImportSoundAsync for a description of the asynchronous import function. + +

    lib.ImportSound(
      url
      )

    Parameters
    +
    url +
    The pathname for importing the sound. This is a String data type. +
    +
    Return Values
    +

    Returns the DAImportationResult object, which has the following relevant properties: + +

    +

    • Duration, which is the length of the sound, in seconds +
    • Sound, which is the imported sound. +
    + +


    ImportSoundAsync

    +DAStatics Class +

    Creates a DASound by asynchronously importing the given .WAV or .MIDI file. Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import function, see ImportSound. + +

    lib.ImportSoundAsync(
      url,
      sndStandIn
      )

    Parameters
    +
    url +
    The pathname (a string) of the file. +
    sndStandIn +
    The sound to use while the contents at url are still being downloaded. This argument cannot be null, however, the sound can be silence. This is a DASound. +
    +
    Return Values
    +

    Returns the DAImportationResult object, which has the following relevant properties: + +

    +

    • CompletionEvent, which is the event that triggers once the download is complete. +
    • Duration, which is the length of the sound, in seconds +
    • Progress, which is the percentage of the download that has completed. +
    • Size, which is the size of the imported sound, in bytes. +
    • Sound, which is the imported sound. +
    + +


    Mix

    +DAStatics Class +

    Creates a sound behavior that is equivalent to sound1 + sound2. + +

    lib.Mix(
      sound1,
      sound2
      )

    Parameters
    +
    sound1 and sound2 +
    The DASound objects to be mixed. +
    +
    Return Values
    +

    Returns the DASound object. + + +


    MixArray

    +DAStatics Class +

    Creates a sound that is equivalent to sound1 + sound2 + soundn. + +

    lib.MixArray(
      sounds
      )

    Parameters
    +
    sounds +
    The DASound objects in the array. This is a Variant array. +
    +
    Return Values
    +

    Returns the DASound object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0099.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0099.HTM new file mode 100644 index 0000000..583e9fe --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0099.HTM @@ -0,0 +1,186 @@ + + +DAStatic Properties Relevant to DASound Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DASound Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DASound Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DASound Objects
    +*Next Topic: DAStatic Functions Relevant to DAString Objects
    +

    +

    +

    DAStatic Properties Relevant to DASound Objects

    +
    +


    Silence

    +DAStatics Class +

    A read-only property with a DASound value that is always completely silent (no sound). + +

    lib.Silence


    SinSynth

    +DAStatics Class +

    A read-only property with a DASound value that represents a constant tone. This sound is synthesized using a sine wave. + +

    lib.SinSynth

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0100.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0100.HTM new file mode 100644 index 0000000..92efc04 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0100.HTM @@ -0,0 +1,202 @@ + + +DAStatic Functions Relevant to DAString Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAString Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAString Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DASound Objects
    +*Next Topic: DAStatic Functions Relevant to DATransform2 Objects
    +

    +

    +

    DAStatic Functions Relevant to DAString Objects

    +
    +


    ConcatString

    +DAStatics Class +

    Creates a DAString object representing the concatenation of the given DAString objects. The new object's value is the character string consisting of the value of b appended to the end of the value of a. + +

    lib.ConcatString(
      a,
      b
      )

    Parameters
    +
    a and b +
    The DAString objects to concatenate. +
    +
    Return Values
    +

    Returns the DAString object. + + +


    DAString

    +DAStatics Class +

    Converts a String to a DAString object. The only time DAString is used is when converting strings to their corresponding DAString objects. + +

    lib.DAString(
      string
      )

    Parameters
    +
    string +
    The string to be converted. +
    +
    Return Values
    +

    Returns the DAString object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0101.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0101.HTM new file mode 100644 index 0000000..0a9ec4a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0101.HTM @@ -0,0 +1,594 @@ + + +DAStatic Functions Relevant to DATransform2 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DATransform2 Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DATransform2 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAString Objects
    +*Next Topic: DAStatic Properties Relevant to DATransform2 Objects
    +

    +

    +

    DAStatic Functions Relevant to DATransform2 Objects

    +
    +


    Compose2

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that is a composition of the given transformation behaviors. + +

    lib.Compose2(
      xf1,
      xf2
      )

    Parameters
    +
    xf1 and xf2 +
    The DATransform2 objects used in the composition. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying xf2 and then applying xf1. + +


    Compose2Array

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that is a composition of the DATransform2 objects included in the array. + +

    lib.Compose2Array(
      xforms
      )

    Parameters
    +
    xforms +
    The DATransform2 objects included in the (variant) array. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying xfn, then applying xfn -1 and so on. + +


    FollowPathEval

    +DAStatics Class +

    Creates a DATransform2 object that is a translation (from the origin) that follows a 2-D vector drawing path. The DAPath2 object is converted into the equivalent translation transform. + +

    lib.FollowPathEval(
      path,
      evaluator
      )

    Parameters
    +
    path +
    The DAPath2 object that will be traced. +
    evaluator +
    The DANumber object representing a value in the range [0, 1]. This value is a position on the path, where 0 is the beginning of the path and 1 is the end. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    FollowPath

    +DAStatics Class +

    Creates a DATransform2 object that is a translation (from the origin) that follows a 2-D vector drawing path. The DAPath2 object is converted into the equivalent translation transform. + +

    lib.FollowPath(
      path,
      duration
      )

    Parameters
    +
    path +
    The DAPath2 object that will be traced. +
    duration +
    A double representing the amount of time (in seconds) it will take to go from the beginning of the path to the end. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    FollowPathAngleEval

    +DAStatics Class +

    Creates a DATransform2 object that is equal to the angle of the path's tangent while it is being traversed, translated by its position. This is equivalent to rotating the position by its derivative. + +

    lib.FollowPathAngleEval(
      path,
      evaluator
      )

    Parameters
    +
    path +
    The DAPath2 object which is traversed. +
    evaluator +
    The DANumber object representing a value in the range [0, 1]. This value is a position on the path, where 0 is the beginning of the path and 1 is the end. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    FollowPathAngle

    +DAStatics Class +

    Creates a DATransform2 object that is equal to the angle of the path's tangent while it is being traversed, translated by its position. This is equivalent to rotating the position by its derivative. + +

    lib.FollowPathAngle(
      path,
      duration
      )

    Parameters
    +
    path +
    The DAPath2 object which is traversed. +
    duration +
    A double representing the amount of time (in seconds) it will take to go from the beginning of the path to the end. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    FollowPathAngleUprightEval

    +DAStatics Class +

    Creates a DATransform2 object that is equal to the angle of the path's tangent while it is being traversed, translated by its position. This is equivalent to rotating the position by its derivative, except that the angle that is perpendicular to the X-axis (in local coordinates) will always be less than 180 degrees. + +

    lib.FollowPathAngleUprightEval(
      path,
      evaluator
      )

    Parameters
    +
    path +
    The DAPath2 object which will be traversed. +
    evaluator +
    The DANumber object representing a value in the range [0, 1]. This value is a position on the path, where 0 is the beginning of the path and 1 is the end. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    FollowPathAngleUpright

    +DAStatics Class +

    Creates a DATransform2 object that is equal to the angle of the path's tangent while it is being traversed, translated by its position. This is equivalent to rotating the position by its derivative, except that the angle that is perpendicular to the X-axis (in local coordinates) will always be less than 180 degrees. + +

    lib.FollowPathAngleUpright(
      path,
      duration
      )

    Parameters
    +
    path +
    The DAPath2 object which will be traversed. +
    duration +
    A double representing the amount of time (in seconds) it will take to go from the beginning of the path to the end. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    Rotate2Anim

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in radians). + +

    lib.Rotate2Anim(
      radians
      )

    Parameters
    +
    radians +
    The DANumber object (animated number) representing the angle of rotation. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    Rotate2

    +DAStatics Class +

    Same as Rotate2Anim except radians is a non-animated number (a double). + +

    lib.Rotate2(
      radians
      )


    Rotate2-Degrees

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in degrees). + +

    lib.Rotate2-Degrees(
      degrees
      )

    Parameters
    +
    degrees +
    The number (a double) representing the angle of rotation (expressed in degrees). +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    Rotate2Rate

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in radians). This value is multiplied by LocalTime to determine the rotation rate. + +

    lib.Rotate2Rate(
      radians
      )

    Parameters
    +
    radians +
    The number (a double) representing the angle of rotation, multiplied by LocalTime. The unit is radians per second. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    Rotate2RateDegrees

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in degrees). This value is multiplied by LocalTime to determine the rotation rate. + +

    lib.Rotate2RateDegrees(
      degrees
      )

    Parameters
    +
    degrees +
    The number (a double) representing the angle of rotation, expressed in degrees, multiplied by LocalTime. The unit is degrees per second. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    Scale2Anim

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, scales it. For example, the transformation modifies the length of a vector by multiplying the vector's coordinates by the values of the corresponding number behaviors. + +

    lib.Scale2Anim(
      sx,
      sy
      )

    Parameters
    +
    sx and sy +
    The DANumber objects representing the amount to scale. The value of sx applies to the x coordinate, and sy to the y coordinate. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Scale2

    +DAStatics Class +

    Same as Scale2Anim except the parameter is a non-animated number (a double). + +

    lib.Scale2(
      sx,
      sy
      )


    Scale2Rate

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, scales it. The scaling rates are determined by multiplying each argument by LocalTime. + +

    lib.Scale2Rate(
      x,
      y
      )

    Parameters
    +
    sx and sy +
    The numbers (doubles) representing the amounts to scale, multiplied by LocalTime. The value of sx applies to the x coordinate, and sy to the y coordinate. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Scale2UniformAnim

    +DAStatics Class +

    Creates a two-dimensional transformation that applies a uniform scale to every coordinate of a two-dimensional object. + +

    lib.Scale2UniformAnim(
      uniformFactor
      )

    Parameters
    +
    uniformFactor +
    The DANumber object representing the value to apply to both the x and y coordinates, respectively. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    Scale2Anim + +


    Scale2Uniform

    +DAStatics Class +

    Same as Scale2UniformAnim except uniformFactor is a non-animated number (a double). + +

    lib.Scale2Uniform(
      uniformFactor
      )


    Scale2UniformRate

    +DAStatics Class +

    Creates a two-dimensional transformation that applies a uniform scale to every coordinate of a two-dimensional object. The scaling rate is determined by multiplying the argument by LocalTime. + +

    lib.Scale2UniformRate(
      rate
      )

    Parameters
    +
    rate +
    The value to apply to both the x and y coordinates, respectively, multiplied by LocalTime. +
    +
    Return Values
    +

    Returns a DATransform2 object representing the newly created transformation. + + +

    Remarks
    +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. + +


    Scale2Vector

    +DAStatics Class +

    Creates a two-dimensional transformation that, when applied to any two-dimensional vector, scales it. For example, the transformation modifies the location of a point by multiplying the point's coordinates by the values of the corresponding vector coordinates. + +

    lib.Scale2Vector(
      v
      )

    Parameters
    +
    v +
    The DAVector2 object. The x and y coordinates of the vector specify the amounts to scale the x and y coordinates, respectively. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    Transform3x2Anim

    +DAStatics Class +

    Creates a two-dimensional transformation that consists of a 3 by 2 matrix (array) having the values specified by the given animated numbers. + +

    lib.Transform3x2Anim(
      matrix
      )

    Parameters
    +
    matrix +
    A 3 by 2 matrix. The top row of the matrix could be represented as containing DANumber objects a00, a01, and a02. Use a00 to scale the x coordinate and a02 to translate x. +
    The bottom row of the matrix could be represented as containing the DANumber objects a10, a11, and a12. Use a11 to scale the y coordinate and a12 to translate y. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The X and Y translation components are given by a02 and a12, respectively. + +


    Translate2Anim

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to a point, translates (moves) the point by the amount given by the animated numbers. + +

    lib.Translate2Anim(
      tx,
      ty
      )

    Parameters
    +
    tx and ty +
    The DANumber objects representing the amount to translate the point along the x and y axes, respectively. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Two-dimensional vectors are unchanged by translations. + +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Translate2

    +DAStatics Class +

    Same as Translate2Anim except tx and ty are non-animated numbers (doubles). + +

    lib.Translate2(
      tx,
      ty
      )


    Translate2Point

    +DAStatics Class +

    Creates a two-dimensional transformation that, when applied to a point, translates (moves) the point to the new location loc. + +

    lib.Translate2Point(
      loc
      )

    Parameters
    +
    loc +
    The DAPoint2 object specifying the new location. This must be an animated point. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +


    Translate2Rate

    +DAStatics Class +

    Creates a two-dimensional transformation that, when applied to a point, translates (moves) the point by the amount given by the arguments. The translation rates are determined by multiplying the arguments by LocalTime. + +

    lib.Translate2Rate(
      x,
      y
      )

    Parameters
    +
    x and y +
    The numbers (doubles) representing the amounts to translate the point along the X and Y axes, respectively, multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Two-dimensional vectors are unchanged by translations. + +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Translate2Vector

    +DAStatics Class +

    Creates a two-dimensional transformation behavior that, when applied to a point, translates (moves) the point by the amount given by the vector. + +

    lib.Translate2Vector(
      v
      )

    Parameters
    +
    v +
    The DAVector2 object. The x and y coordinates of the vector specify the amount to translate along the x and y axes, respectively. This must be an animated vector. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    Two-dimensional vectors are unchanged by translations. + +


    XShear2Anim

    +DAStatics Class +

    Creates a two-dimensional transformation that shears the x-axis either up or down. This means the X-coordinate of the points remains unchanged, and the Y-coordinate increases by the product of the X-coordinate and the shear factor. In other words, X2 = X1, and Y2 = Y1 + aX1, where a is the shear factor. + +

    lib.XShear2Anim(
      a
      )

    Parameters
    +
    a +
    The DANumber object representing the amount to shear. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    YShearAnim + +


    XShear2

    +DAStatics Class +

    Same as XShear2Anim except that x is a non-animated number (a double). + +

    lib.XShear2(
      a
      )


    XShear2Rate

    +DAStatics Class +

    Creates a two-dimensional transformation that shears the x-axis either up or down. The shear rate is determined by multiplying the argument by LocalTime. + +

    lib.XShear2Rate(
      rate
      )

    Parameters
    +
    rate +
    The number (a double) representing the amount to shear, multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The units can either be meters/second or pixels/second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    YShear2Anim

    +DAStatics Class +

    Creates a two-dimensional transformation that shears the y-axis either left or right. This means the Y-coordinate of the points remains unchanged, and the X-coordinate increases by the product of the Y-coordinate and the shear factor. In other words, Y2 = Y1 and X2 = X1 + aY1, where a is the shear factor. + +

    lib.YShear2Anim(
      a
      )

    Parameters
    +
    a +
    The DANumber object representing the amount to shear. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    XShear2Anim + +


    YShear2

    +DAStatics Class +

    Same as YShear2Anim except that y is a non-animated number (a double). + +

    lib.YShear2(
      a
      )


    YShear2Rate

    +DAStatics Class +

    Creates a two-dimensional transformation that shears the y-axis either left or right. The shear rate is determined by multiplying the argument by LocalTime. + +

    lib.YShear2Rate(
      rate
      )

    Parameters
    +
    rate +
    The number (a double) representing the amount to shear the y-axis, multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform2 object. + + +

    Remarks
    +

    The units can either be meters/second or pixels/second, depending on whether the MeterLibrary or the PixelLibrary is selected. + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0102.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0102.HTM new file mode 100644 index 0000000..7acd7f7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0102.HTM @@ -0,0 +1,182 @@ + + +DAStatic Properties Relevant to DATransform2 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DATransform2 Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DATransform2 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DATransform2 Objects
    +*Next Topic: DAStatic Functions Relevant to DATransform3 Objects
    +

    +

    +

    DAStatic Properties Relevant to DATransform2 Objects

    +
    +


    IdentityTransform2

    +DAStatics Class +

    A read-only property with a DATransform2 value that leaves the two-dimensional space unchanged. Applying this transformation to a point or vector produces the same point or vector. + +

    lib.IdentityTransform2

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0103.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0103.HTM new file mode 100644 index 0000000..f540fd5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0103.HTM @@ -0,0 +1,598 @@ + + +DAStatic Functions Relevant to DATransform3 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DATransform3 Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DATransform3 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DATransform2 Objects
    +*Next Topic: DAStatic Properties Relevant to DATransform3 Objects
    +

    +

    +

    DAStatic Functions Relevant to DATransform3 Objects

    +
    +


    Compose3

    +DAStatics Class +

    Creates a three-dimensional transformation that is a composition of the given transformation objects. + +

    lib.Compose3(
      xf1,
      xf2
      )

    Parameters
    +
    xf1 and xf2 +
    The DATransform3 objects. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying xf2 and then applying xf1. + +


    Compose3Array

    +DAStatics Class +

    Creates a three-dimensional transformation that is a composition of the DATransform3 objects in the array. + +

    lib.Compose3Array(
      xforms
      )

    Parameters
    +
    xf1 and xf2 +
    The DATransform3 objects in the (variant) array. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying xfn, then applying xfn-1, and so on. + +


    LookAtFrom

    +DAStatics Class +

    Creates a three-dimensional transformation that transforms an object from a standard position and orientation to the "from" point, and aimed at the "to" point, with "up" mapping to the object's up direction. Prior to this transform, objects must be located at the origin, with the up side aligned with the positive y-axis, and aimed in the negative z-direction. + +

    lib.LookAtFrom(
      from,
      to,
      up
      )

    Parameters
    +
    from +
    The DAPoint3 object specifying the point from which to view. +
    to +
    The DAPoint3 object specifying the point toward which to view. +
    up +
    The DAVector3 object specifying the point determining the upright position. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    This transform is useful for positioning and orienting cameras, lights, microphones, and other three-dimensional objects. + +


    Rotate3Anim

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a point or vector behavior, rotates the point or vector by the given angle (expressed in radians) around the given axis. + +

    lib.Rotate3Anim(
      axis,
      radians
      )

    Parameters
    +
    axis +
    The DAVector3 object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    radians +
    The DANumber object representing the angle of rotation. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +


    Rotate3

    +DAStatics Class +

    Same as Rotate3Anim except that axis and radians are non-animated numbers. + +

    lib.Rotate3(
      axis,
      radians
      )


    Rotate3-Degrees

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a point or vector, rotates the point or vector by the given angle (expressed in degrees) around the given axis. + +

    lib.Rotate3-Degrees(
      axis,
      degrees
      )

    Parameters
    +
    axis +
    The DAVector3 object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    degrees +
    The number (a double) representing the angle of rotation (expressed in degrees). +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +


    Rotate3Rate

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a point or vector behavior, rotates the point or vector by the given angle (expressed in radians) around the given axis. The rotation rate is determined by multiplying the angle by LocalTime. + +

    lib.Rotate3Rate(
      axis,
      radians
      )

    Parameters
    +
    axis +
    The DAVector3 object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    radians +
    The number (a double) representing the angle of rotation, and multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Rotate3RateDegrees

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a point or vector behavior, rotates the point or vector by the given angle (expressed in degrees) around the given axis. The rotation rate is determined by multiplying the angle by LocalTime. + +

    lib.Rotate3RateDegrees(
      axis,
      degrees
      )

    Parameters
    +
    axis +
    The DAVector3 object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    degrees +
    The number (a double) representing the angle of rotation (expressed in degrees), and multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Scale3Anim

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a three-dimensional object, scales it. For example, the transformation modifies the length of a vector by multiplying the vector's coordinates by the values of the corresponding numbers. + +

    lib.Scale3Anim(
      sx,
      sy,
      sz
      )

    Parameters
    +
    sx, sy, and sz +
    The DANumber objects representing the amounts to scale. The value of sx applies to the x coordinate, sy to the y coordinate, and sz to the z coordinate. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Scale3

    +DAStatics Class +

    Same as Scale3Anim except that sx, sy, and sz are non-animated numbers (doubles). + +

    lib.Scale3(
      sx,
      sy,
      sz
      )


    Scale3Rate

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a three-dimensional object, scales it. The scaling rates are determined by multiplying the arguments by LocalTime. + +

    lib.Scale3Rate(
      x,
      y,
      z
      )

    Parameters
    +
    x, y, and z +
    The numbers (doubles) representing the amounts to scale, multiplied by LocalTime. The value of x applies to the x coordinate, y to the y coordinate, and z to the z coordinate. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Scale3UniformAnim

    +DAStatics Class +

    Creates a three-dimensional transformation behavior that, when applied to a three-dimensional object, scales it uniformly. + +

    lib.Scale3UniformAnim(
      uniformFactor
      )

    Parameters
    +
    uniformFactor +
    The DANumber object representing the value to apply to the x, y, and z coordinates, respectively. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    See Also
    +

    Scale3Anim, Scale3Vector + +


    Scale3Uniform

    +DAStatics Class +

    Same as Scale3UniformAnim except that uniformFactor is a non-animated number (a double). + +

    lib.Scale3Uniform(
      uniformFactor
      )


    Scale3UniformRate

    +DAStatics Class +

    Creates a three-dimensional transformation behavior that, when applied to a three-dimensional object, scales it uniformly. The scaling rate is determined by multiplying the argument by LocalTime. + +

    lib.Scale3UniformRate(
      rate
      )

    Parameters
    +
    rate +
    The number (a double) representing the value to apply to the x, y, and z coordinates, respectively, and multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Scale3Vector

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a three-dimensional object, scales it. For example, the transformation modifies the location of a point by multiplying the point's coordinates by the values of the corresponding vector coordinates. + +

    lib.Scale3Vector(
      v
      )

    Parameters
    +
    v +
    The DAVector3 object. The x, y, and z coordinates of the vector behavior specify the amounts to scale the x, y, and z coordinates, respectively. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +


    Transform4x4Anim

    +DAStatics Class +

    Creates a three-dimensional transformation behavior that consists of the 4 by 4 matrix having the values specified by the given number behaviors. + +

    lib.Transform4x4Anim(
      matrix
      )

    Parameters
    +
    matrix +
    The 4 by 4 matrix. The first row of the matrix can be represented by the DANumber objects a00, a01, a02, a03. Use a00 to scale the x coordinate and a03 to translate x. +
    The second row of the matrix can be represented by the DANumber objects a10, a11, a12, a13. Use a11 to scale the y coordinate and a13 to translate y. +
    The third row of the matrix can be represented by the DANumber objects a20, a21, a22, a23. Use a22 to scale the z coordinate and a23 to translate z. +
    The fourth row of the matrix can be represented by the DANumber objects a30, a31, a32, a33. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The translation components for the matrix are in the last column. The last row of the matrix must be [0 0 0 1]. + +


    Translate3Anim

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a point, translates (moves) the point by the amounts given by the tx, ty, and tz. + +

    lib.Translate3Anim(
      tx,
      ty,
      tz
      )

    Parameters
    +
    tx, ty, and tz +
    The DANumber objects representing the amounts to translate the point along the x, y, and z axes, respectively. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Vectors are unchanged by translations. + +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Translate3

    +DAStatics Class +

    Same as Translate3Anim except that x, y, and z are non-animated numbers (doubles). + +

    lib.Translate3(
      x,
      y,
      z
      )


    Translate3Point

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a point, translates (moves) the point to the new location loc. + +

    lib.Translate3Point(
      loc
      )

    Parameters
    +
    loc +
    The DAPoint3 object specifying the new location. This must be an animated point. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +


    Translate3Rate

    +DAStatics Class +

    Creates a three-dimensional transformation that, when applied to a point, translates (moves) the point by the amounts given by x, y, z. The translation rate is determined by multiplying the arguments by LocalTime. + +

    lib.Translate3Rate(
      x,
      y,
      z
      )

    Parameters
    +
    x, y, and z +
    The numbers (doubles) representing the amounts to translate the point along the x, y, and z axes, respectively, and multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Vectors are unchanged by translations. + +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +


    Translate3Vector

    +DAStatics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point, translates (moves) the point by the amounts given by the vector. + +

    lib.Translate3Vector(
      v
      )

    Parameters
    +
    v +
    The DAVector3 object. The x, y, and z coordinates of the vector specify the amounts to translate along the x, y, and z axes, respectively. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    Vectors are unchanged by translations. + +


    XShear3Anim

    +DAStatics Class +

    Shears the x-axis in the positive y-direction by a and in the positive z-direction by b. The X-coordinate remains unchanged, and the Y and Z coordinates increase by the product of the X-coordinate and the shear factors. In other words, X2 = X1, Y2 = Y1 + aX1, and Z2 = Z1 + bX1, where a and b are the shear factors. + +

    lib.XShear3Anim(
      a,
      b
      )

    Parameters
    +
    a +
    The DANumber object representing the amount of shear in the Y direction. This must be an animated number. +
    b +
    The DANumber object representing the amount of shear in the Z direction. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    YShear3Anim, ZShear3Anim + +


    XShear3

    +DAStatics Class +

    Same as XShear3Anim except that a and b are non-animated numbers (doubles). + +

    lib.XShear3(
      a,
      b
      )


    XShear3Rate

    +DAStatics Class +

    Shears the x-axis in the positive y-direction by a and in the positive z-direction by b. The shear rates are determined by multiplying the arguments by LocalTime. + +

    lib.XShear3Rate(
      a,
      b
      )

    Parameters
    +
    a +
    The number (a double) representing the amount of shear in the Y direction, multiplied by LocalTime. +
    b +
    The number (a double) representing the amount of shear in the Z direction, multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    YShear3Rate, ZShear3Rate + +


    YShear3Anim

    +DAStatics Class +

    Shears the y-axis in the positive x-direction by c and in the positive z-direction by d. The Y-coordinate remains unchanged, and the X and Z coordinates increase by the product of the Y-coordinate and the shear factors. In other words, Y2 = Y1, X2 = X1 + cY1, and Z2 = Z1 + dY1, where c and d are the shear factors. + +

    lib.YShear3Anim(
      c,
      d
      )

    Parameters
    +
    c +
    The DANumber object representing the amount of shear in the X direction. This must be an animated number. +
    d +
    The DANumber object representing the amount of shear in the Z direction. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    XShear3Anim, ZShear3Anim + +


    YShear3

    +DAStatics Class +

    Same as YShearAnim except that c and d are non-animated numbers (double). + +

    lib.YShear3(
      c,
      d
      )


    YShear3Rate

    +DAStatics Class +

    Shears the y-axis in the positive x-direction by c and in the positive z-direction by d. The shear rates are determined by multiplying the arguments by LocalTime. + +

    lib.YShear3Rate(
      c,
      d
      )

    Parameters
    +
    c +
    The number (a double) representing the amount of shear in the X direction, multiplied by LocalTime. +
    d +
    The number (a double) representing the amount of shear in the Z direction, multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    XShear3Rate, ZShear3Rate + +


    ZShear3Anim

    +DAStatics Class +

    Shears the z-axis in the positive x-direction by e and in the positive y-direction by f. The Z-coordinate remains unchanged, and the X and Y coordinates increase by the product of the Z-coordinate and the shear factors. In other words, Z2 = Z1, X2 = X1 + eZ1, and Y2 = Y1 + fZ1, where e and f are the shear factors. + +

    lib.ZShear3Anim(
      e,
      f
      )

    Parameters
    +
    e +
    The DANumber object representing the amount of shear in the X direction. This must be an animated number. +
    f +
    The DANumber object representing the amount of shear in the Y direction. This must be an animated number. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters or pixels, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    XShear3Anim, YShear3Anim + +


    ZShear3

    +DAStatics Class +

    Same as ZShear3Anim except that e and f are non-animated numbers (doubles). + +

    lib.ZShear3(
      e,
      f
      )


    ZShear3Rate

    +DAStatics Class +

    Shears the z-axis in the positive x-direction by e and in the positive y-direction by f. The shear rates are determined by multiplying the arguments by LocalTime. + +

    lib.ZShear3Rate(
      e,
      f
      )

    Parameters
    +
    e +
    The number (a double) representing the amount of shear in the X direction, multiplied by LocalTime. +
    f +
    The number (a double) representing the amount of shear in the Y direction, multiplied by LocalTime. +
    +
    Return Values
    +

    Returns the DATransform3 object. + + +

    Remarks
    +

    The units can either be meters per second or pixels per second, depending on whether the MeterLibrary or the PixelLibrary is selected. If the PixelLibrary is selected, remember that the positive y-axis is down. + +

    See Also
    +

    XShear3Rate, YShear3Rate + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0104.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0104.HTM new file mode 100644 index 0000000..72fdeab --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0104.HTM @@ -0,0 +1,182 @@ + + +DAStatic Properties Relevant to DATransform3 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DATransform3 Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DATransform3 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DATransform3 Objects
    +*Next Topic: DAStatic Functions Relevant to DATuple Objects
    +

    +

    +

    DAStatic Properties Relevant to DATransform3 Objects

    +
    +


    IdentityTransform3

    +DAStatics Class +

    A read-only property with a DATransform3 value that leaves the three-dimensional space unchanged. Applying this transformation to a point or vector produces the same point or vector. + +

    lib.IdentityTransform3

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0105.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0105.HTM new file mode 100644 index 0000000..22d1e5b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0105.HTM @@ -0,0 +1,198 @@ + + +DAStatic Functions Relevant to DATuple Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DATuple Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DATuple Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DATransform3 Objects
    +*Next Topic: DAStatic Functions Relevant to DAVector2 Objects
    +

    +

    +

    DAStatic Functions Relevant to DATuple Objects

    +
    +


    DATuple

    +DAStatics Class +

    Constructs the DATuple object. + +

    lib.DATuple(
      behaviors
      )

    Parameters
    +
    behaviors +
    The behaviors to be included in the DATuple object. +
    +
    Return Values
    +

    Returns the DATuple object. + + +


    UninitializedTuple

    +DAStatics Class +

    Makes it possible to obtain the signature of a DATuple object before it has been defined. With this function, a DATuple object can be created and used in the definition of other DABehaviors while its contents are defined at some later point. (This definition is accomplished with the Init function, which is available on all classes that inherit from DABehavior.) Because a DATuple can have members of different types, the signature must be exactly as the object will be used. + +

    lib.UninitializedTuple( )

    Return Values
    +

    Returns the DATuple object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0106.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0106.HTM new file mode 100644 index 0000000..97583d2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0106.HTM @@ -0,0 +1,342 @@ + + +DAStatic Functions Relevant to DAVector2 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAVector2 Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAVector2 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DATuple Objects
    +*Next Topic: DAStatic Properties Relevant to DAVector2 Objects
    +

    +

    +

    DAStatic Functions Relevant to DAVector2 Objects

    +
    +


    AddVector2

    +DAStatics Class +

    Creates a DAVector2 object that is the vector-valued sum of the two vectors. + +

    lib.AddVector2(
      v1,
      v2
      )

    Parameters
    +
    v1 and v2 +
    The DAVector2 objects to be added. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    See Also
    +

    SubVector2 + +


    DerivativeVector2

    +DAStatics Class +

    Creates a DAVector2 object that is the instantaneous derivative (rate of change) of the given vector. For example, a constant vector yields a constant derivative of [0 0], and Vector2 (time, 0) (without any additional time substitutions) yields a constant derivative vector of [1 0]. + +

    lib.DerivativeVector2(
      vec
      )

    Parameters
    +
    vec +
    A DAVector2 object. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +


    DotVector2

    +DAStatics Class +

    Creates a DANumber object that represent the "dot product" of the given vectors. The dot product is the product of the lengths of the vectors and the cosine of the angle between them. + +

    lib.DotVector2(
      v1,
      v2
      )

    Parameters
    +
    v1 and v2 +
    The DAVector2 objects. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    IntegralVector2

    +DAStatics Class +

    Creates a DAVector2 object that represents the sum of the all values of vec from the given start time to the present. + +

    lib.IntegralVector2(
      vec
      )

    Parameters
    +
    a +
    The DAVector2 object. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +


    NegVector2

    +DAStatics Class +

    Creates a DAVector2 object that is the same length as the original vector but points in the opposite direction. + +

    lib.NegVector2(
      v1
      )

    Parameters
    +
    v1 +
    A DAVector2 object that is the original vector. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +


    SubVector2

    +DAStatics Class +

    Creates a DAVector2 object. The direction and length of the vector are calculated by subtracting the coordinates of v2 from the corresponding coordinates of v1. + +

    lib.SubVector2(
      v1,
      v2
      )

    Parameters
    +
    v1 and v2 +
    The DAVector2 objects. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    See Also
    +

    AddVector2 + +


    Vector2Anim

    +DAStatics Class +

    Creates a DAVector2 object having a direction and length as specified by the given Cartesian coordinates. + +

    lib.Vector2Anim(
      x,
      y
      )

    Parameters
    +
    x +
    The DANumber object specifying the distance along the x-axis from the origin to a point. This must be an animated number. +
    y +
    The DANumber object specifying the distance along the y-axis. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    See Also
    +

    Vector2Polar + +


    Vector2

    +DAStatics Class +

    Same as Vector2Anim except that x and y are non-animated numbers (doubles). + +

    lib.Vector2(
      x,
      y
      )


    Vector2BSpline

    +DAStatics Class +

    Creates a DAVector2 object based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned DAVector2 is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a DANumber that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    lib.Vector2BSpline(
      degree,
      knots,
      control_elements,
      weights,
      evaluation
      )

    Parameters
    +
    degree +
    A number (a long) representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array (variant) of DANumber objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array (variant) of DAPoint2 objects representing the control elements used to calculate the B-spline. +
    weights +
    An array (variant) of DANumber objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A DANumber object that controls the spline evaluation. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +


    Vector2PolarAnim

    +DAStatics Class +

    Creates a DAVector2 object having a direction and length as specified by the given polar coordinates. + +

    lib.Vector2PolarAnim(
      XYangle,
      length
      )

    Parameters
    +
    XYangle +
    The DANumber object that is the counter-clockwise angle of the vector, in radians, from the positive x-ray. This must be an animated number. +
    length +
    The DANumber object that is the length of the vector. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    See Also
    +

    Vector2Anim + +


    Vector2Polar

    +DAStatics Class +

    Same as Vector2PolarAnim except that XYangle and length are non-animated numbers (doubles). + +

    lib.Vector2Polar(
      XYangle,
      length
      )


    Vector2PolarDegrees

    +DAStatics Class +

    Creates a DAVector2 object having a direction and length as specified by the given polar coordinates. + +

    lib.Vector2PolarDegrees(
      XYangle,
      length
      )

    Parameters
    +
    XYangle +
    The number (a double) that is the counter-clockwise angle of the vector (expressed in degrees) from the positive x-ray. +
    length +
    The number (a double) that is the length of the vector. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0107.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0107.HTM new file mode 100644 index 0000000..e3f48fd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0107.HTM @@ -0,0 +1,190 @@ + + +DAStatic Properties Relevant to DAVector2 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAVector2 Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAVector2 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAVector2 Objects
    +*Next Topic: DAStatic Functions Relevant to DAVector3 Objects
    +

    +

    +

    DAStatic Properties Relevant to DAVector2 Objects

    +
    +


    XVector2

    +DAStatics Class +

    A read-only property with a DAVector2 value that represents the unit vector on the x-axis. The vector's length is always 1, the direction is always the same as the positive x-axis. + +

    lib.XVector2


    YVector2

    +DAStatics Class +

    A read-only property with a DAVector2 value that represents the unit vector on the y-axis. The vector's length is always 1, the direction is always the same as the positive y-axis. + +

    lib.YVector2


    ZeroVector2

    +DAStatics Class +

    A read-only property with a DAVector2 value that represents the null vector. The vector's length is always 0, the direction is undefined. + +

    lib.ZeroVector2

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0108.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0108.HTM new file mode 100644 index 0000000..d02846e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0108.HTM @@ -0,0 +1,397 @@ + + +DAStatic Functions Relevant to DAVector3 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Functions Relevant to DAVector3 Objects +DirectAnimation Animated Header --DAStatic Functions Relevant to DAVector3 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAVector2 Objects
    +*Next Topic: DAStatic Properties Relevant to DAVector3 Objects
    +

    +

    +

    DAStatic Functions Relevant to DAVector3 Objects

    +
    +


    AddVector3

    +DAStatics Class +

    Creates a DAVector3 object. The direction and length of the vector are calculated by adding the corresponding coordinates of the given vectors. + +

    lib.AddVector3(
      v1,
      v2
      )

    Parameters
    +
    v1 and v2 +
    The DAVector3 objects. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +

    See Also
    +

    SubVector3 + +


    CrossVector3

    +DAStatics Class +

    Creates a DAVector3 object that represents the "cross product" of the given vectors. The new vector has a length that is equal to the product of the lengths of the original vectors and the sine of the angle between them. The new vector has a direction that is perpendicular to the plane formed by the original vectors and that obeys the right-hand rule. + +

    lib.CrossVector3(
      v1,
      v2
      )

    Parameters
    +
    v1 and v2 +
    The DAVector3 objects. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +


    DerivativeVector3

    +DAStatics Class +

    Creates a DAVector3 object that is the instantaneous derivative (rate of change) of the given vector. For example, a constant vector behavior yields a constant derivative of [0 0 0], and Vector3(time, 0, 0) (without any additional time substitutions) yields a constant derivative vector of [1 0 0]. + +

    lib.DerivativeVector3(
      vec
      )

    Parameters
    +
    vec +
    A DAVector3 object. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +


    DotVector3

    +DAStatics Class +

    Creates DANumber object that represents the "dot product" of the given vectors. The dot product is the product of the lengths of the vectors and the cosine of the angle between them. + +

    lib.DotVector3(
      v1,
      v2
      )

    Parameters
    +
    v1 and v2 +
    DAVector3 objects. +
    +
    Return Values
    +

    Returns the DANumber object. + + +


    IntegralVector3

    +DAStatics Class +

    Creates a DAVector3 object that represents the sum of the all values of vec from the given start time to the present. + +

    lib.IntegralVector3(
      vec
      )

    Parameters
    +
    a +
    The DAVector3 object. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +


    NegVector3

    +DAStatics Class +

    Creates a DAVector3 object that has the same length as the original vector, but points in the opposite direction. + +

    lib.NegVector3(
      v1
      )

    Parameters
    +
    v1 +
    A DAVector3 object that is the original vector. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +


    SubVector3

    +DAStatics Class +

    Creates a DAVector3 object. The direction and length of the vector are calculated by subtracting the coordinates of v2 from the corresponding coordinates of v1. + +

    lib.SubVector3(
      v1,
      v2
      )

    Parameters
    +
    v1 and v2 +
    DAVector3 objects. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +

    See Also
    +

    AddVector3 + +


    Vector3Anim

    +DAStatics Class +

    Creates a DAVector3 object having a direction and length as specified by the given Cartesian coordinates. + +

    lib.Vector3Anim(
      x,
      y,
      z
      )

    Parameters
    +
    x, y, and z +
    The DANumber objects specifying the coordinate values. The x specifies a distance along the x-axis from the origin to a point, y specifies a distance along the y-axis, and z a distance along the z-axis. These must be animated numbers. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +

    See Also
    +

    Vector3SphericalAnim + +


    Vector3

    +DAStatics Class +

    Same as Vector3Anim except that x, y, and z are non-animated numbers (doubles). + +

    lib.Vector3(
      x,
      y,
      z
      )


    Vector3BSpline

    +DAStatics Class +

    Creates a DAVector3 behavior based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned DAVector3 is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a DANumber that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    lib.Vector3BSpline(
      degree,
      knots,
      control_elements,
      weights,
      evaluation
      )

    Parameters
    +
    degree +
    A number (long) representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array (variant) of DANumber objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array (variant) of DAVector3 objects representing the control elements used to calculate the B-spline. +
    weights +
    An array (variant) of DANumber objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A DANumber object that controls the spline evaluation. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +


    Vector3SphericalAnim

    +DAStatics Class +

    Creates a DAVector3 object having a direction and length as specified by the given spherical coordinates. + +

    lib.Vector3SphericalAnim(
      XYangle,
      YZangle,
      length
      )

    Parameters
    +
    XYangle +
    A DANumber object of the counter-clockwise XY angle, in radians, of the point about the positive y-axis. The angle begins at the positive z-ray, so that [0 0 1] has a theta of 0, and [1 0 0] has a theta of pi/2. This must be an animated number. +
    YZangle +
    A DANumber object of the counter-clockwise elevation angle, in radians, of the point above the XZ-plane. A YZangle of pi/2 means the point is straight up (on the positive y-ray), and a YZangle of -pi/2 is straight down (on the negative y-ray). This must be an animated number. +
    length +
    A DANumber object specifying the length of the vector. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +

    Remarks
    +

    The following table correlates Cartesian coordinates with polar coordinates (X means "Don't Care"): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CartesianXYangleYZangleLength +
    Coordinates +
    [0 0 0]XX0 +
    [d 0 0]pi/20d +
    [-d 0 0]-pi/20d +
    [0 d 0]Xpi/2d +
    [0 -d 0]X-pi/2d +
    [0 0 d]00d +
    [0 0 -d]pi0d +
    +

    See Also
    +

    Vector3Anim + +


    Vector3Spherical

    +DAStatics Class +

    Same as Vector3SphericalAnim except that XYangle, YZangle, and length are non-animated numbers (doubles). + +

    lib.Vector3Spherical(
      XYangle,
      YZangle,
      length
      )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0109.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0109.HTM new file mode 100644 index 0000000..ee0ff00 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0109.HTM @@ -0,0 +1,194 @@ + + +DAStatic Properties Relevant to DAVector3 Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAStatic Properties Relevant to DAVector3 Objects +DirectAnimation Animated Header --DAStatic Properties Relevant to DAVector3 Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Functions Relevant to DAVector3 Objects
    +*Next Topic: DAString Class
    +

    +

    +

    DAStatic Properties Relevant to DAVector3 Objects

    +
    +


    XVector3

    +DAStatics Class +

    A read-only property with a DAVector3 value that represents the unit vector on the x-axis. The vector's length is always 1, the direction is always the same as the positive x-axis. + +

    lib.XVector3


    YVector3

    +DAStatics Class +

    A read-only property with a DAVector3 value that represents the unit vector on the y-axis. The vector's length is always 1, the direction is always the same as the positive y-axis. + +

    lib.YVector3


    ZVector3

    +DAStatics Class +

    A read-only property with a DAVector3 value that represents the unit vector on the z-axis. The vector's length is always 1, the direction is always the same as the positive z-axis. + +

    lib.ZVector3


    ZeroVector3

    +DAStatics Class +

    A read-only property with a DAVector3 that represents the null vector. The vector's length is always 0, the direction is undefined. + +

    lib.ZeroVector3

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0110.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0110.HTM new file mode 100644 index 0000000..32538de --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0110.HTM @@ -0,0 +1,230 @@ + + +DAString Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAString Class +DirectAnimation Animated Header --DAString Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAStatic Properties Relevant to DAVector3 Objects
    +*Next Topic: DATransform2 Class
    +

    +

    +

    DAString Class

    +
    +

    Creates a DAString object. At any given time, the value of the object is a character string. This value can vary over time. + +

    This class inherits from the DABehavior class. +

    +

    DAString Functions

    +

    bullet1.gifAnimateProperty
    +

    bullet1.gifExtract
    +


    AnimateProperty

    +DAString Class +

    Allows control properties to be animated (vary over time). This function forms fragments of script and passes them to the scripting engine on every frame. When the invoke parameter is FALSE, the property is set directly as shown in this fragment from the JScript sample in JScript\Templates\AnimatedProperties.html: + +

    
    +filterStr = filterStr.AnimateProperty("DropWave1.style.filter", "JScript", false, .1));
    +
    +

    If the invoke parameter is TRUE, then a function name should be specified in the string parameter (property) and is invoked as shown in this fragment from the same JScript sample: + +

    
    +filterMethod = getNumber().AnimateProperty("SetFilter", "JScript", true, .1);
    +
    +

    stringObj.AnimateProperty(
      property,
      language,
      invoke,
      update
      )

    Parameters
    +
    property +
    A string that is either the name of the property to animate or the name of a scripting function to invoke that will set the property. +
    language +
    A string that is name of the scripting language. +
    invoke +
    A boolean that determines if the property is set directly or if a function is invoked. If FALSE, the property is set directly. If TRUE, a function is invoked. +
    interval +
    A double specifying how frequently the position is updated. +
    +
    Return Values
    +

    Returns the DAString object. + + +

    See Also
    +

    AnimateControlPositionPixel + +


    Extract

    +DAString Class +

    Extracts the value of the stringObj, returning a String. This object must have a constant value. + +

    stringObj.Extract

    Return Values
    +

    Returns a String. + + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAString. + +

    lib.ConcatString(a, b) +

    lib.DAString(string) + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0111.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0111.HTM new file mode 100644 index 0000000..003b1fc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0111.HTM @@ -0,0 +1,243 @@ + + +DATransform2 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DATransform2 Class +DirectAnimation Animated Header --DATransform2 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAString Class
    +*Next Topic: DATransform3 Class
    +

    +

    +

    DATransform2 Class

    +
    +

    DATransform2 objects can be applied to two-dimensional point objects to translate, scale, rotate or skew the location of the point, and can be applied to two-dimensional vector objects to scale, rotate, or skew the length and/or direction of the vector. + +

    This class inherits from DABehavior. +

    +

    DATransform2 Functions

    +

    bullet1.gifInverse
    +


    Inverse

    +DATransform2 Class +

    Creates a transformation that is the inverse of the original transformation. The inverse transformation is useful for removing the effects of the original transformation from a point or vector. Some transforms have no inverse. Use IsSingular to characterize transforms of an unknown type. + +

    transform2Obj.Inverse( )

    Return Values
    +

    Returns a DATransform2 object representing the newly created transformation. + + +

    DATransform2 Properties

    +

    bullet1.gifIsSingular
    +


    IsSingular

    +DATransform2 Class +

    A read-only property with a DABoolean value that indicates whether the transform is singular or not. A singular transform is one that has no inverse. The value is TRUE if the transform is singular; otherwise, it is FALSE. + +

    transform2Obj.IsSingular

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DATransform2. + +

    lib.Compose2(xf1, xf2) +

    lib.Compose2Array(xforms) +

    lib.FollowPath(path, duration) +

    lib.FollowPathEval(path, evaluator) +

    lib.FollowPathAngle(path, duration) +

    lib.FollowPathAngleEval(path,evaluator) +

    lib.FollowPathAngleUpright(path, duration) +

    lib.FollowPathAngleUprightEval(path, evaluator) +

    lib.Rotate2Anim(radians) +

    lib.Rotate2(radians) +

    lib.Rotate2-Degrees(degrees) +

    lib.Rotate2Rate(radians) +

    lib.Rotate2RateDegrees(degrees) +

    lib.Scale2Anim(sx, sy) +

    lib.Scale2(sx, sy) +

    lib.Scale2Rate(x, y) +

    lib.Scale2UniformAnim(uniformFactor) +

    lib.Scale2Uniform(uniformFactor) +

    lib.Scale2UniformRate(rate) +

    lib.Scale2Vector(v) +

    lib.Transform3x2Anim(matrix) +

    lib.Translate2Anim(tx, ty) +

    lib.Translate2(tx, ty) +

    lib.Translate2Point(loc) +

    lib.Translate2Rate(x, y) +

    lib.Translate2Vector(v) +

    lib.XShear2Anim(a) +

    lib.XShear2(a) +

    lib.XShear2Rate(rate) +

    lib.YShear2Anim(a) +

    lib.YShear2(a) +

    lib.YShear2Rate(rate) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DATransform2. + +

    lib.IdentityTransform2 + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0112.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0112.HTM new file mode 100644 index 0000000..e997c94 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0112.HTM @@ -0,0 +1,252 @@ + + +DATransform3 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DATransform3 Class +DirectAnimation Animated Header --DATransform3 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DATransform2 Class
    +*Next Topic: DATuple Class
    +

    +

    +

    DATransform3 Class

    +
    +

    Just as a DATransform2 transforms one two-dimensional object into another two-dimensional object, a DATransform3 transforms one three-dimensional object into another three-dimensional object. Other transforms include the Render function, which transforms three-dimensional objects into two-dimensional objects, and the project function, which transforms a three-dimensional point into a two-dimensional point. + +

    This class inherits from the DABehavior class. + +

    This class inherits from DABehavior. +

    +

    DATransform3 Functions

    +

    bullet1.gifInverse
    +

    bullet1.gifParallelTransform2
    +


    Inverse

    +DATransform3 Class +

    Creates a transformation that is the inverse of the original transformation. The inverse transformation is useful for removing the effects of the original transformation from a three-dimensional object. Use IsSingular to characterize transforms of an unknown type. + +

    transform3Obj.Inverse( )

    Return Values
    +

    Returns the DATransform3 object. + + +


    ParallelTransform2

    +DATransform3 Class +

    Creates a DATransform2 object from the DATransform3 object. It is equivalent to casting an orthographic projection of the DATransform3 onto the X-Y plane. For predictable results, the transform must be an affine (4x3) transform rather than a perspective (4x4) transform. + +

    transform3Obj.ParallelTransform2( )

    Return Values
    +

    Returns the DATransform2 object. + + +

    DATransform3 Properties

    +

    bullet1.gifIsSingular
    +


    IsSingular

    +DATransform3 Class +

    A read-only property with a DABoolean value indicating whether the transform is singular or not. A singular transform is one that has no inverse. The value is TRUE if the transform is singular; otherwise, it is FALSE. + +

    transform3Obj.IsSingular

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DATransform3. + +

    lib.Compose3(xf1, xf2) +

    lib.Compose3Array(xforms) +

    lib.LookAtFrom(from, to, up) +

    lib.Rotate3Anim(axis, radians) +

    lib.Rotate3(axis, radians) +

    lib.Rotate3-Degrees(axis, degrees) +

    lib.Rotate3Rate(axis, radians) +

    lib.Rotate3RateDegrees(axis, degrees) +

    lib.Scale3Anim(sx, sy, sz) +

    lib.Scale3(sx, sy, sz) +

    lib.Scale3Rate(x, y, z) +

    lib.Scale3UniformAnim(uniformFactor) +

    lib.Scale3Uniform(uniformFactor) +

    lib.Scale3UniformRate(rate) +

    lib.Scale3Vector(v) +

    lib.Transform4x4Anim(matrix) +

    lib.Translate3Anim(tx, ty, tz) +

    lib.Translate3(tx, ty, tz) +

    lib.Translate3Point(loc) +

    lib.Translate3Rate(x, y, z) +

    lib.Translate3Vector(v) +

    lib.XShear3Anim(a, b) +

    lib.XShear3(a, b) +

    lib.XShear3Rate(a, b) +

    lib.YShear3Anim(c, d) +

    lib.YShear3(c, d) +

    lib.YShear3Rate(c, d) +

    lib.ZShear3Anim(e, f) +

    lib.ZShear3(e, f) +

    lib.ZShear3Rate(e, f) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DATransform3. + +

    lib.IdentityTransform3 + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0113.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0113.HTM new file mode 100644 index 0000000..653f7c7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0113.HTM @@ -0,0 +1,209 @@ + + +DATuple Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DATuple Class +DirectAnimation Animated Header --DATuple Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DATransform3 Class
    +*Next Topic: DAUserData Class
    +

    +

    +

    DATuple Class

    +
    +

    A DATuple object is similar to an array. It can, however, accept heterogeneous types. Any number of members can be included in a DATuple object. + +

    This class inherits from DABehavior. +

    +

    DATuple Functions

    +

    bullet1.gifLength
    +

    bullet1.gifNth
    +


    Length

    +DATuple Class +

    Determines the length of a DATuple. + +

    tupleObj.Length

    Return Values
    +

    Returns a number (a long). + + +


    Nth

    +DATuple Class +

    Selects a DABehavior object based on the value of i. + +

    tupleObj.Nth(
      i
      )

    Parameters
    +
    i +
    The index (a long) into the DATuple object. +
    +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics and are most relevant to objects of type DATuple. + +

    lib.DATuple(behaviors) +

    lib.UninitializedTuple() + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0114.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0114.HTM new file mode 100644 index 0000000..fb765e5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0114.HTM @@ -0,0 +1,188 @@ + + +DAUserData Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAUserData Class +DirectAnimation Animated Header --DAUserData Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DATuple Class
    +*Next Topic: DAVector2 Class
    +

    +

    +

    DAUserData Class

    +
    +

    This class is analogous to DANumber. It turns a COM object (IUnknown) into a DABehavior. It is typically used with AttachData. + +

    This class inherits from DABehavior. + +

    DAUserData Properties

    +

    bullet1.gifData
    +


    Data

    +DAUserData Class +

    Turns a COM object (IUnknown) into a DABehavior. + +

    userDataObj.Data(
      IUnknown
      )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0115.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0115.HTM new file mode 100644 index 0000000..46aca01 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0115.HTM @@ -0,0 +1,311 @@ + + +DAVector2 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAVector2 Class +DirectAnimation Animated Header --DAVector2 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAUserData Class
    +*Next Topic: DAVector3 Class
    +

    +

    +

    DAVector2 Class

    +
    +

    Creates a Vector2 object. At any given time, the value of the object is a direction and length (magnitude), specified as a pair of coordinate values given as either Cartesian coordinates (x, y) or polar coordinates (XYangle, YZangle). The direction of the vector is parallel to the ray that starts at the origin and passes through the point specified by the vector's coordinates, and the length is the distance between the origin and the point. + +

    Because coordinate values are animated numbers (DANumber objects), the direction and length of the Vector2 object can change over time as the values of the animated numbers change. + +

    This class inherits from the DABehavior Class. +

    +

    DAVector2 Functions

    +

    bullet1.gifDivAnim
    +

    bullet1.gifDiv
    +

    bullet1.gifMulAnim
    +

    bullet1.gifMul
    +

    bullet1.gifNormalize
    +

    bullet1.gifTransform
    +


    DivAnim

    +DAVector2 Class +

    Creates a new two-dimensional DAVector2 object that points in the same direction as the original vector but has a length that has been divided by scalar. + +

    vector2Obj.DivAnim(
      scalar
      )

    Parameters
    +
    scalar +
    A DANumber object used as the divider. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    See Also
    +

    MulAnim + +


    Div

    +

    Same as DivAnim except that scalar is a non-animated number (a double). + +

    vector2Obj.Div(
      scalar
      )


    MulAnim

    +

    Creates a DAVector2 object that points in the same direction as the original vector but has a length that has been multiplied by scalar. + +

    vector2Obj.MulAnim(
      scalar
      )

    Parameters
    +
    scalar +
    A DANumber object used as the multiplier. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    See Also
    +

    DivAnim + +


    Mul

    +

    Same as MulAnim except that scalar is a non-animated number (a double). + +

    vector2Obj.Mul(
      scalar
      )


    Normalize

    +

    Creates a normalized, two-dimensional DAVector2 object. The normalized vector has the same direction as the original vector, but the length is 1. + +

    vector2Obj.Normalize

    Return Values
    +

    Returns the DAVector2 object. + + +


    Transform

    +

    Creates a DAVector2 object that is the result of applying the given transformation to the original vector. The translation elements of the transformation are ignored because translation does not apply to vectors. + +

    vector2Obj.Transform(
      xf
      )

    Parameters
    +
    xf +
    A DATransform2 object. +
    +
    Return Values
    +

    Returns the DAVector2 object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + + +

    DAVector2 Properties

    +

    bullet1.gifLength
    +

    bullet1.gifLengthSquared
    +

    bullet1.gifPolarCoordAngle
    +

    bullet1.gifPolarCoordLength
    +

    bullet1.gifX
    +

    bullet1.gifY
    +


    Length

    +

    A read-only property with a DANumber value that represents the length of a DAVector2 object. + +

    vector2Obj.Length

    See Also
    +

    LengthSquared + +


    LengthSquared

    +

    A read-only property with a DANumber value that represents the length of a DAVector2 object squared. + +

    vector2Obj.LengthSquared

    See Also
    +

    Length + +


    PolarCoordAngle

    +

    A read-only property with a DANumber value that represents the counter-clockwise angular displacement, in radians, relative to the positive x-axis, of the DAVector2 object. The range is [-Pi, +Pi]. + +

    vector2Obj.PolarCoordAngle


    PolarCoordLength

    +

    A read-only property with a DANumber value that represents the length (or magnitude) of the vector. + +

    vector2Obj.PolarCoordLength


    X

    +

    A read-only property with a DANumber value that represents the X-coordinate of the DAVector2 object. + +

    vector2Obj.X

    See Also
    +

    Y, Vector2Anim + +


    Y

    +

    A read-only property with a DANumber value that represents the Y-coordinate of the DAVector2 object. + +

    vector2Obj.Y

    See Also
    +

    X, Vector2Anim + +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAVector2. +

    lib.AddVector2(v1, v2) +

    lib.DerivativeVector2(vec) +

    lib.DotVector2(v1, v2) +

    lib.IntegralVector2(vec) +

    lib.NegVector2(v1) +

    lib.SubVector2(v1, v2) +

    lib.Vector2Anim(x, y) +

    lib.Vector2(x, y) +

    lib.Vector2BSpline(degree, knots, control_elements, weights, evaluation) +

    lib.Vector2PolarAnim(XYangle, length) +

    lib.Vector2Polar(XYangle, length) +

    lib.Vector2PolarDegrees(XYangle, length) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAVector2. + +

    lib.XVector2 +

    lib.YVector2 +

    lib.ZeroVector2 + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0116.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0116.HTM new file mode 100644 index 0000000..46401b5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0116.HTM @@ -0,0 +1,335 @@ + + +DAVector3 Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAVector3 Class +DirectAnimation Animated Header --DAVector3 Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAVector2 Class
    +*Next Topic: DAViewerControl Class
    +

    +

    +

    DAVector3 Class

    +
    +

    Creates a DAVector3 object that represents a three-dimensional vector. At any given time, the value of the vector is a direction and length (magnitude), specified as a triplet of coordinate values given as either Cartesian coordinates (x, y, z) or spherical coordinates (XYangle, YZangle, length). The direction of the vector is parallel to the ray that starts at the origin and passes through the point specified by the vector's coordinates, and the length is the distance between the origin and the point. + +

    Because coordinate values are animated numbers, (DANumber objects), the direction and length of the vector can change over time as the animated numbers change. + +

    This class inherits from the DABehavior Class. + +

    +

    DAVector3 Functions

    +

    bullet1.gifDivAnim
    +

    bullet1.gifDiv
    +

    bullet1.gifMulAnim
    +

    bullet1.gifMul
    +

    bullet1.gifNormalize
    +

    bullet1.gifTransform
    +


    DivAnim

    +DAVector3 Class +

    Creates a DAVector3 object that points in the same direction as the original vector but has a length that has been divided by scalar. + +

    vector3Obj.DivAnim(
      scalar
      )

    Parameters
    +
    scalar +
    A DANumber object used as the divider. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +

    See Also
    +

    MulAnim + +


    Div

    +DAVector3 Class +

    Same as DivAnim except that scalar is a non-animated number (a double). + +

    vector3Obj.Div(
      scalar
      )


    MulAnim

    +DAVector3 Class +

    Creates a DAVector3 object that points in the same direction as the original vector but has a length that has been multiplied by scalar. + +

    vector3Obj.MulAnim(
      scalar
      )

    Parameters
    +
    scalar +
    A DANumber object used as the multiplier. This must be an animated number. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +

    See Also
    +

    DivAnim + +


    Mul

    +DAVector3 Class +

    Same as MulAnim except that scalar is a non-animated number (a double). + +

    vector3Obj.Mul(
      scalar
      )


    Normalize

    +DAVector3 Class +

    Creates a normalized DAVector3 object. The normalized vector has the same direction as the original vector, but the length is 1. + +

    vector3Obj.Normalize

    Return Values
    +

    Returns the DAVector3 object. + + +


    Transform

    +DAVector3 Class +

    Creates a DAVector3 object that is the result of applying the given transformation to the original vector. The translation elements of the transformation are ignored because translation does not apply to vectors. + +

    vector3Obj.Transform(
      xf
      )

    Parameters
    +
    xf +
    A DATransform3 object. +
    +
    Return Values
    +

    Returns the DAVector3 object. + + +

    Remarks
    +

    This function composes values. The resulting transformation is the new value applied to the old value. + +

    DAVector3 Properties

    +

    bullet1.gifLength
    +

    bullet1.gifLengthSquared
    +

    bullet1.gifSphericalCoordLength
    +

    bullet1.gifvector3Obj.SphericalCoordXYAngle
    +

    bullet1.gifSphericalCoordYZAngle
    +

    bullet1.gifX
    +

    bullet1.gifY
    +

    bullet1.gifZ
    +


    Length

    +DAVector3 Class +

    A read-only property with a DANumber value that represents the length of a DAVector3 object. + +

    vector3Obj.Length

    See Also
    +

    LengthSquared + +


    LengthSquared

    +DAVector3 Class +

    A read-only property with a DANumber value that represents the length of a DAVector3 object squared. + +

    vector3Obj.LengthSquared

    See Also
    +

    Length + +


    SphericalCoordLength

    +DAVector3 Class +

    A read-only property with a DANumber value represents the length (or magnitude) of the vector. + +

    vector3Obj.SphericalCoordLength


    vector3Obj.SphericalCoordXYAngle

    +DAVector3 Class +

    A read-only property with a DANumber value that is the counter-clockwise angle, in radians, of the vector about the y-axis, starting at positive z. The range is [-Pi, +Pi]. + +

    vector3Obj.SphericalCoordXYAngle


    SphericalCoordYZAngle

    +DAVector3 Class +

    A read-only property with a DANumber object that is the YZ angle, in radians, going up from the XZ-plane towards the positive y-ray. The range is [-Pi/2, +Pi/2]. + +

    vector3Obj.SphericalCoordYZAngle


    X

    +DAVector3 Class +

    A read-only property with a DANumber value that represents the X-coordinate of the DAVector3 object. + +

    vector3Obj.X

    See Also
    +

    Y, Z, Vector3Anim + +


    Y

    +DAVector3 Class +

    A read-only property with a DANumber value that represents the Y-coordinate of the DAVector3 object. + +

    vector3Obj.Y

    See Also
    +

    X, Z, Vector3Anim + +


    Z

    +DAVector3 Class +

    A read-only property with a DANumber value that represents the z coordinate of the DAVector3 object. + +

    vector3Obj.Z

    See Also
    +

    X, Y, Vector3Anim +

    Relevant Functions from the DAStatics Class

    +

    The following functions are defined in the DAStatics class and are most relevant to objects of type DAVector3. +

    lib.AddVector3(v1, v2) +

    lib.CrossVector3(v1, v2) +

    lib.DerivativeVector3(vec) +

    lib.DotVector3(v1, v2) +

    lib.IntegralVector3(vec) +

    lib.NegVector3(v1) +

    lib.SubVector3(v1, v2) +

    lib.Vector3Anim(x, y) +

    lib.Vector3(x, y) +

    lib.Vector3BSpline(degree, knots, control_elements, weights, evaluation) +

    lib.Vector3SphericalAnim(XYangle, YZangle, length) +

    lib.Vector3Spherical(XYangle, YZangle, length) + +

    Relevant Properties from the DAStatics Class

    +

    The following properties are defined in the DAStatics class and are most relevant to objects of type DAVector3. + +

    lib.XVector3 +

    lib.YVector3 +

    lib.ZVector3 +

    lib.ZeroVector3 + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0117.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0117.HTM new file mode 100644 index 0000000..f91768d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0117.HTM @@ -0,0 +1,419 @@ + + +DAViewerControl Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DAViewerControl Class +DirectAnimation Animated Header --DAViewerControl Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAVector3 Class
    +*Next Topic: Java Reference - Classes and Interfaces
    +

    +

    +

    DAViewerControl Class

    +
    +

    The DAViewerControl displays a DirectAnimation model in an HTML page. Here is an example of how it is specified: + +

    
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAViewer"
    +        STYLE="position:absolute; left:10; top:10;width:450;height:450"
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +

    +

    +

    DAViewerControl Subroutines

    +

    bullet1.gifAddBehaviorToRun
    +

    bullet1.gifDrag
    +

    bullet1.gifMove
    +

    bullet1.gifSetFocus
    +

    bullet1.gifShowWhatsThis
    +

    bullet1.gifStart
    +

    bullet1.gifZOrder
    +


    AddBehaviorToRun

    +DAViewerControl Class +

    Adds DABehavior objects that are not a part of the model. When the system starts the model, it retrieves these additional behaviors and runs them with the same start time as the behaviors included in the model. + +

    viewObj.AddBehaviorToRun(
      bvr
      )

    Parameters
    +
    bvr +
    The DABehavior object to add. +
    +

    As an example, consider the following VBScript sample, which displays the local time as a text value.

    +
    
    +<HTML>
    +<BODY>
    +<CENTER><INPUT TYPE="TEXT" NAME="txtInp" VALUE=""></CENTER>
    +<OBJECT ID="DAControl" WIDTH=400 HEIGTH=300
    +CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</HTML>
    +</BODY>
    +
    +<OBJECT ID="DAControl" WIDTH=400 HEIGTH=300
    +CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +
    +<SCRIPT LANGUAGE="VBScript">
    +Sub window_onLoad
    +   Set m = DAControl.MeterLibrary
    +   Set timeVal = m.Localtime
    +   Set timeVal = timeVal.AnimateProperty( "txtInp.value", "VBScript", false, .01 )
    +   DAControl.AddBehaviorToRun( timeVal )
    +   DAControl.Start
    +End Sub
    +</SCRIPT>
    +
    + + +


    Drag

    +DAViewerControl Class +

    Begins, ends, or cancels a drag operation of any object except Line, Menu, Shape, and Timer. For more information, consult a Visual Basic Reference. + +

    controlObj.Drag(
      Action
      )


    Move

    +DAViewerControl Class +

    Moves an object. For more information, consult a Visual Basic reference. + +

    controlObj.Move(
      left,
      [top],
      [width],
      [height]
      )


    SetFocus

    +DAViewerControl Class +

    Moves the focus to the specified object. For more information, consult a Visual Basic Reference. + +

    controlObj.SetFocus( )


    ShowWhatsThis

    +DAViewerControl Class +

    Displays a selected topic in a Help file using the What's This popup provided by Windows 95 Help. For more information, consult a Visual Basic reference. + +

    controlObj.ShowWhatsThis( )


    Start

    +DAViewerControl Class +

    Starts the model. + +

    controlObj.Start( )


    ZOrder

    +DAViewerControl Class +

    Places a specified object at the front or back of the z-order within its graphical level. For more information, consult a Visual Basic reference. + +

    controlObj.ZOrder(
      [Position]
      )

    DAViewerControl Properties

    +

    bullet1.gifBackgroundImage
    +

    bullet1.gifContainer
    +

    bullet1.gifDragIcon
    +

    bullet1.gifDragMode
    +

    bullet1.gifHeight
    +

    bullet1.gifHelpContextID
    +

    bullet1.gifImage
    +

    bullet1.gifIndex
    +

    bullet1.gifLeft
    +

    bullet1.gifMeterLibrary
    +

    bullet1.gifName
    +

    bullet1.gifObject
    +

    bullet1.gifParent
    +

    bullet1.gifPixelLibrary
    +

    bullet1.gifSound
    +

    bullet1.gifTabStop
    +

    bullet1.gifTag
    +

    bullet1.gifToolTipText
    +

    bullet1.gifTop
    +

    bullet1.gifUpdateInterval
    +

    bullet1.gifVisible
    +

    bullet1.gifWhatsThisHelpID
    +

    bullet1.gifWidth
    +


    BackgroundImage

    +DAViewerControl Class +

    Sets the background image for situations where the browser does not support windowless controls. + +

    controlObj.BackgroundImage

    Return Values
    +

    Returns a DAImage object. + + +


    Container

    +DAViewerControl Class +

    Returns the container of an object. For more information, consult a Visual Basic reference. + +

    controlObj.Container


    DragIcon

    +DAViewerControl Class +

    Returns/sets the icon to be displayed as the pointer in a drag-and-drop operation. For more information, consult a Visual Basic reference. + +

    controlObj.DragIcon


    DragMode

    +DAViewerControl Class +

    Returns/sets a value that determines whether manual or automatic drag mode is used. For more information, consult a Visual Basic reference. + +

    controlObj.DragMode


    Height

    +DAViewerControl Class +

    Returns/sets the height of an object. For more information, consult a Visual Basic reference. + +

    controlObj.Height


    HelpContextID

    +DAViewerControl Class +

    Specifies the default Help file context ID for an object. For more information, consult a Visual Basic reference. + +

    controlObj.HelpContextID


    Image

    +DAViewerControl Class +

    Establishes the DAImage displayed by the model. + +

    controlObj.Image


    Index

    +DAViewerControl Class +

    Returns/sets the number identifying a control in a control array. For more information, consult a Visual Basic reference. + +

    controlObj.Index


    Left

    +DAViewerControl Class +

    Returns/sets the distance between the internal left edge of an object and the left edge of its container. For more information, consult a Visual Basic reference. + +

    controlObj.Left


    MeterLibrary

    +DAViewerControl Class +

    Sets the unit of measurement to meters and the positive y-axis to up. + +

    controlObj.MeterLibrary

    Return Values
    +

    Returns the DAStatics object. + + +

    See Also
    +

    PixelLibrary + +


    Name

    +DAViewerControl Class +

    Returns the name used in code to identify an object. For more information, consult a Visual Basic reference. + +

    controlObj.Name


    Object

    +DAViewerControl Class +

    Returns an object in a control. For more information, consult a Visual Basic reference. + +

    controlObj.Object


    Parent

    +DAViewerControl Class +

    Returns the object on which this object is located. For more information, consult a Visual Basic reference. + +

    controlObj.Parent


    PixelLibrary

    +DAViewerControl Class +

    Sets the unit of measurement to pixel and the positive y-axis to down. Pixel measurements are only available for constructing behaviors. When inquiring for a value, the returned measurement is always in meters. + +

    controlObj.PixelLibrary

    Return Values
    +

    Returns the DAStatics object. + + +

    See Also
    +

    Pixel, PixelConstructionMode + +


    Sound

    +DAViewerControl Class +

    Establishes the sound behavior when the model is displayed. + +

    controlObj.Sound

    Return Values
    +

    Returns the DASound object. + + +


    TabStop

    +DAViewerControl Class +

    Returns/sets a value indicating whether a user can use the TAB key to give the focus to an object. For more information, consult a Visual Basic reference. + +

    controlObj.TabStop


    Tag

    +DAViewerControl Class +

    Stores any extra data needed for your program. For more information, consult a Visual Basic reference. + +

    controlObj.Tag


    ToolTipText

    +DAViewerControl Class +

    Returns/sets the text displayed when the mouse is paused over the control. For more information, consult a Visual Basic reference. + +

    controlObj.ToolTipText


    Top

    +DAViewerControl Class +

    Returns/sets the distance between the internal top edge of an object and the top edge of its container. + +

    controlObj.Top


    UpdateInterval

    +DAViewerControl Class +

    Sets the interval for updating the model, in seconds (a double). Examples of where this property is useful include navigational controls and menu elements, which can use a low update rate. + +

    controlObj.UpdateInterval


    Visible

    +DAViewerControl Class +

    Returns/sets a value that determines whether an object is visible or hidden. For more information, consult a Visual Basic reference. + +

    controlObj.Visible


    WhatsThisHelpID

    +DAViewerControl Class +

    Returns/sets an associated context number for an object. For more information, consult a Visual Basic reference. + +

    controlObj.WhatsThisHelpID


    Width

    +DAViewerControl Class +

    Returns/sets the width of an object. For more information, consult a Visual Basic reference. + +

    controlObj.Width

    DAViewerControl Events

    +

    bullet1.gifDragDrop
    +

    bullet1.gifDragOver
    +

    bullet1.gifGotFocus
    +

    bullet1.gifLostFocus
    +


    DragDrop

    +DAViewerControl Class +

    Occurs when a drag-and-drop operation is completed. For more information, consult a Visual Basic reference. + +

    controlObj.DragDrop(
      source,
      x,
      y
      )


    DragOver

    +DAViewerControl Class +

    Occurs when a drag-and-drop operation is in progress. For more information, consult a Visual Basic reference. + +

    controlObj.DragOver(
      source,
      x,
      y,
      state
      )


    GotFocus

    +DAViewerControl Class +

    Occurs when an object receives the focus. For more information, consult a Visual Basic reference. + +

    controlObj.GotFocus( )


    LostFocus

    +DAViewerControl Class +

    Occurs when an object loses the focus. For more information, consult a Visual Basic reference. + +

    controlObj.LostFocus( )

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0118.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0118.HTM new file mode 100644 index 0000000..60164bd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0118.HTM @@ -0,0 +1,412 @@ + + +Java Reference - Classes and Interfaces + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Java Reference - Classes and Interfaces +DirectAnimation Animated Header --Java Reference - Classes and Interfaces* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DAViewerControl Class
    +*Next Topic: Java Reference Introduction
    +

    +

    +

    Java Reference - Classes and Interfaces

    +
    +

    The Microsoft® DirectAnimation™ Java Reference describes each of the DirectAnimation Java methods, including syntax, returned values, and how to use the function. The reference is organized by classes, listed alphabetically. +

    The Java Reference Introduction describes the organization of the reference. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A +
    AppTriggeredEvent Class +
    ArrayBvr Class +
    B +
    Bbox2Bvr Class +
    Bbox3Bvr Class +
    Behavior Class +
    BooleanBvr Class +
    BvrCallback Interface +
    BvrsToRun Class + +
    C +
    CameraBvr Class +
    ColorBvr Class +
    Cycler Class +
    D +
    DashStyleBvr Class +
    DXMApplet Class +
    DXMCanvas Class +
    DXMEvent Class +
    DXMException Class +
    E +
    EndStyleBvr Class +
    ErrorAndWarningReceiver Interface +
    EventCallbackObject Interface +
    F +
    FontStyleBvr Class +
    G +
    GeometryBvr Class +
    I +
    ImageBvr Class +
    J +
    JoinStyleBvr Class +
    L +
    LineStyleBvr Class +
    M +
    MatteBvr Class +
    MicrophoneBvr Class +
    Model Class +
    ModelMakerApplet Class +
    ModifiableBehavior Class +
    MontageBvr Class +
    N +
    NumberBvr Class +
    P +
    PairObject Class +
    Path2Bvr Class +
    PickableGeometry Class +
    PickableImage Class +
    Point2Bvr Class +
    Point3Bvr Class +
    Preferences Class +
    PropertyDispatcher Class +
    S +
    SoundBvr Class +
    Statics Class +
    StringBvr Class +
    T +
    Transform2Bvr Class +
    Transform3Bvr Class +
    TupleBvr Class +
    U +
    UntilNotifier Interface +
    V +
    Vector2Bvr Class +
    Vector3Bvr Class +
    Viewer Interface + +
    +

    Defaults +

    + + + +
    Java Defaults +
    +

    Event Data +

    + + + +
    Java Event Data +
    +

    Hierarchy Chart +

    + + + +
    Java Hierarchy Chart +
    +

    Class/Methods Summary +

    + + + +
    Java Class/Methods Summary +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0119.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0119.HTM new file mode 100644 index 0000000..2302993 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0119.HTM @@ -0,0 +1,185 @@ + + +Java Reference Introduction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Java Reference Introduction +DirectAnimation Animated Header --Java Reference Introduction* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Java Reference - Classes and Interfaces
    +*Next Topic: AppTriggeredEvent Class
    +

    +

    +

    Java Reference Introduction

    +
    +

    +The DirectAnimation™ Java Reference is organized by classes. For example, there is a section on the ImageBvr class. Each class contains a description of its methods, including syntax, returned values, and how to use the method. At the end of each class, there is a list of methods that, while relevant to that particular class, are included in the Statics library. This library is very large, and it may be easier to familiarize yourself with its contents by looking at specific classes and seeing what Statics functions are pertinent. + +

    This reference is specific to DirectAnimation. For information about methods that are part of a Java package (for example, repaint), consult a Java reference. + + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0120.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0120.HTM new file mode 100644 index 0000000..1ed4bdc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0120.HTM @@ -0,0 +1,233 @@ + + +AppTriggeredEvent Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --AppTriggeredEvent Class +DirectAnimation Animated Header --AppTriggeredEvent Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Java Reference Introduction
    +*Next Topic: ArrayBvr Class
    +

    +

    +

    AppTriggeredEvent Class

    +
    +
    public class AppTriggeredEvent extends DXMEvent {
    +     // Methods
    +     public void trigger();
    +     public void trigger(Behavior eventData);
    +}
    +
    +

    Creates the event. The event can be used in the until and untilNotify methods to create reactive behaviors based on external events. + +

    In the following example, a cube turns from red to blue, based upon some external application event: + +

    //Turn a cube from red to blue when an external event occurs
    +//The following code is a fragment from a larger program
    +//Get the cube
    +GeometryBvr cube = importGeometry(buildURL(geobase, "cube.wrl");
    +//Create the external event
    +AppTriggeredEvent appEvent = new AppTriggeredEvent();
    +//Set up the color of the cube -- red until the event, then blue
    +ColorBvr col = (ColorBvr)until(red, appEvent, blue);
    +//Map the color to all points of the cube
    +GeometryBvr coloredCube = cube.diffuseColor(col);
    +
    +//...elsewhere, when the application receives the event...
    +appEvent.trigger();
    +
    +//...now coloredCube (assuming it's running) will turn blue
    +
    +

    AppTriggeredEvent Methods

    + + + + + + + +
    trigger() +
    trigger(eventData) +
    +


    trigger

    +AppTriggeredEvent Class +

    Triggers the event. + +

    public void trigger( );

    Remarks
    +

    The triggered event occurs as soon as possible. + +


    trigger

    +AppTriggeredEvent Class +

    Triggers the event and passes the given data to the event handler or notifier. + +

    public void trigger(
      Behavior eventData
      );

    Parameters
    +
    eventData +
    An object that contains any data representing the event. +
    +
    Remarks
    +

    The triggered event occurs as soon as possible. + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0121.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0121.HTM new file mode 100644 index 0000000..4c8393a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0121.HTM @@ -0,0 +1,236 @@ + + +ArrayBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ArrayBvr Class +DirectAnimation Animated Header --ArrayBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: AppTriggeredEvent Class
    +*Next Topic: Bbox2Bvr Class
    +

    +

    +

    ArrayBvr Class

    +
    +
    public class ArrayBvr extends Behavior {
    +     // Methods
    +     public NumberBvr length();
    +     public Behavior nth(NumberBvr a);
    +
    +     public static ArrayBvr newUninitBvr(ArrayBvr arr);
    +}
    +
    +

    Selects an object based on a time-varying index. The following example constructs an ArrayBvr out of a Java array and uses the nth method with a time-varying parameter to cycle through the list of colors: + +

    ...ColorBvr[] arr = {red, green, blue, yellow, green, cyan, magenta};
    +ArrayBvr arrBvr = new ArrayBvr(arr);
    +
    +//Build an indexer to repeatedly go from 0 to (length - 1)
    +//at a rate of 1 unit per second
    +NumberBvr indexer = mod(localTime, toBvr(arr.length - 1));
    +
    +//Use indexer to index into the ArrayBvr
    +ColorBvr cyclingCol = (ColorBvr)arrBvr.nth(indexer);
    +
    +...
    +
    +

    ArrayBvr Methods

    +

    bullet1.giflength
    +

    bullet1.gifnth
    +

    bullet1.gifnewUninitBvr
    +


    length

    +ArrayBvr Class +

    Finds the length of an array behavior. + +

    public NumberBvr length( );

    Return Values
    +

    Returns a NumberBvr object that is the length of an array behavior. + + +


    nth

    +ArrayBvr Class +

    Selects a Behavior object based on the time-varying value of a NumberBvr. It uses the greatest integer value less than the number's value to determine the index. An array's index begins at 0 and any attempt to index beyond its length results in a runtime error. + +

    public Behavior nth(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object used as an index into the array behavior. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Behavior object. + + +


    newUninitBvr

    +ArrayBvr Class +

    Makes it possible to refer to an array behavior before that behavior has been defined. With this method, a behavior can be created and used in the definition of other behaviors, while its contents are defined at some later point. (This definition is accomplished with the init method, which is available on all behaviors.) + +

    public static ArrayBvr newUninitBvr(
      ArrayBvr arr
      );

    Parameters
    +
    arr +
    Used to establish what type the array holds. +
    +
    Return Values
    +

    Returns the ArrayBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0122.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0122.HTM new file mode 100644 index 0000000..39b4f74 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0122.HTM @@ -0,0 +1,220 @@ + + +Bbox2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Bbox2Bvr Class +DirectAnimation Animated Header --Bbox2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ArrayBvr Class
    +*Next Topic: Bbox3Bvr Class
    +

    +

    +

    Bbox2Bvr Class

    +
    +
    public class Bbox2Bvr extends Behavior {
    +    //Methods 
    +    public Point2Bvr getMax();
    +    public Point2Bvr getMin();
    +
    +    public static Bbox2Bvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a two-dimensional bounding box behavior. The behavior specifies the lower-left and upper-right corners of a box that encloses the non-transparent portions of an image behavior. Although a bounding box may not always be the smallest bounding box achievable for the image, it is useful for determining the extent or size of the visible portions of the image. + +

    Applications never create bounding box behaviors explicitly. Instead, create these behaviors by calling the boundingBox method in the ImageBvr class. + +

    For more information about behaviors, see the Behavior class. + +

    Bbox2Bvr Methods

    +

    bullet1.gifgetMax
    +

    bullet1.gifgetMin
    +

    bullet1.gifnewUninitBvr
    +


    getMax

    +Bbox2Bvr Class +

    Creates a two-dimensional point behavior that specifies the upper-right corner of the bounding box. + +

    public Point2Bvr getMax( );

    Return Values
    +

    Returns the Point2Bvr object. + + +


    getMin

    +Bbox2Bvr Class +

    Creates a two-dimensional point behavior that specifies the lower-left corner of the bounding box. + +

    public getMin( );

    Return Values
    +

    Returns the Point2Bvr object. + + +


    newUninitBvr

    +Bbox2Bvr Class +

    Makes it possible to refer to a two-dimensional bounding box behavior before that behavior has been defined. With this method, it is possible to create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Bbox2Bvr newUninitBvr( );

    Return Values
    +

    Returns the Bbox2Bvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0123.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0123.HTM new file mode 100644 index 0000000..317e97a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0123.HTM @@ -0,0 +1,227 @@ + + +Bbox3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Bbox3Bvr Class +DirectAnimation Animated Header --Bbox3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Bbox2Bvr Class
    +*Next Topic: Behavior Class
    +

    +

    +

    Bbox3Bvr Class

    +
    +
    public class Bbox3Bvr extends Behavior {
    +    // Methods
    +    public Point3Bvr getMax();
    +    public Point3Bvr getMin();
    +        
    +    public static Bbox3Bvr newUninitBvr();
    +    
    +}
    +
    +

    Creates an object that represents a three-dimensional bounding box behavior. The behavior specifies the back-lower-left and forward-upper-right corners of a cube that encloses the non-transparent portions of a geometry behavior. Although a bounding box may not always be the smallest bounding box achievable for the geometry, it is useful for determining the extent or size of the visible portions of the geometry. + +

    Applications never create bounding box behaviors explicitly. Instead, these behaviors are created by calling the boundingBox method in the GeometryBvr class. + +

    For more information about behaviors, see the Behavior class. + +

    Bbox3Bvr Methods

    +

    bullet1.gifgetMax
    +

    bullet1.gifgetMin
    +

    bullet1.gifnewUninitBvr();
    +


    getMax

    +Bbox3Bvr Class +

    Creates a three-dimensional point behavior that specifies the forward-upper-right corner of the bounding box. + +

    public Point3Bvr getMax( );

    Return Values
    +

    Returns the Point3Bvr object. + + +

    See Also
    +

    getMin + +


    getMin

    +Bbox3Bvr Class +

    Creates a three-dimensional point behavior that specifies the back-lower-left corner of the bounding box. + +

    public Point3Bvr getMin( );

    Return Values
    +

    Returns the Point3Bvr object. + + +

    See Also
    +

    getMax + +


    newUninitBvr();

    +Bbox3Bvr Class +

    Makes it possible to refer to a three-dimensional bounding box behavior before that behavior has been defined. With this method, it is possible to create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Bbox3Bvr newUninitBvr( );

    Return Values
    +

    Returns the Bbox3Bvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0124.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0124.HTM new file mode 100644 index 0000000..285863d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0124.HTM @@ -0,0 +1,537 @@ + + +Behavior Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Behavior Class +DirectAnimation Animated Header --Behavior Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Bbox3Bvr Class
    +*Next Topic: BooleanBvr Class
    +

    +

    +

    Behavior Class

    +
    +
    public class Behavior extends java.lang.Object {
    +    // Methods
    +    public Behavior bvrHook(BvrCallback callback);
    +    public Behavior debug();
    +    public Behavior debug(String name);
    +    public Behavior debug(String name, boolean onStart);
    +    public Behavior debug(String name, boolean onStart, PrintStream std);
    +    public Behavior duration(NumberBvr length)
    +    public Object extract();
    +    public void init(Behavior a);
    +    public Behavior repeat(int repetitions);
    +    public Behavior repeatForever();
    +    public Behavior runOnce();
    +    public Behavior substituteTime(NumberBvr a);
    +    
    +}
    +
    +

    All behaviors are potentially time-varying and/or reactive values such as colors, numbers and images. They can be used to construct animated objects. All behavior subclasses inherit the methods of this class. + +

    Because all behaviors are potentially time-varying and/or reactive, their values can change as a function of time or as the result of user input. Time-varying behaviors are created by combining time-based default behaviors (such as localTime) with other behaviors. Reactive behaviors are created using the until, untilEx, and untilNotify methods and specifying input events, such as mouse clicks. Complex behaviors can be built by combining existing behaviors. The value of a complex behavior always depends on the values of the behaviors that comprise it. + +

    Behaviors are started either by the createModel method (which means they start at time = 0) or with the untilNotify.notify method, when they are started at the event time. When a behavior runs, its time-varying and reactive qualities are active. This means the user can experience any changes that occur in the behavior as time passes or events occur. + +

    In order to type-check behaviors, all behavior types must be known at construction time. This is why there is no Behavior.newUninitBvr() method included in the Behavior class. + +

    +

    Behavior Methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    bvrHook +
    debug() +
    debug(name) +
    debug(name, onStart) +
    debug(name, onStart, std) +
    duration +
    extract +
    init +
    repeat +
    repeatForever +
    runOnce +
    substituteTime +
    +


    bvrHook

    +Behavior Class +

    Allows a running behavior to be sampled. + +

    public Behavior bvrHook(
      BvrCallback callback
      );

    Parameters
    +
    callback +
    The BvrCallback interface containing the notify method. +
    +
    Return Values
    +

    Returns the Behavior object that is the value of the running behavior at the time it was sampled. + + +

    See Also
    +

    BvrCallback + +


    debug

    +Behavior Class +

    Gives the information about a running behavior. +

    public Behavior debug( );

    Remarks
    +

    This method gives the following information about a running behavior: +

    • An integer number (the ID), which distinguishes each instance of the behavior. +
    • The global time that the behavior was started. +
    • The value of the behavior at the time it was started. +
    +

    The method assumes the following defaults: +

    • The behavior is unnamed. +
    • The information is displayed each time an instance of the behavior is started. +
    • The information is displayed on the standard output. +
    +

    The following example shows that, when it was started, the second instance of a behavior was started at a global time of 39.66 seconds, and had a value of 0.5: + +

    
    +2 started at 39.66 result = 0.5
    +
    +

    This method is unavailable to viewers that don't display the standard output. +


    debug

    +Behavior Class +

    Gives information about a running behavior. + +

    public Behavior debug(
      String name
      );

    Parameters
    +
    name +
    The name of the behavior. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    Remarks
    +

    This method gives the following information about a running behavior: +

    • The name of the behavior. +
    • An integer number (the ID), which distinguishes each instance of the behavior. +
    • The global time that the behavior was started. +
    • The value of the behavior at the time it was started. +
    +

    The method assumes the following defaults: +

    • The information is displayed each time an instance of the behavior is started. +
    • The information is displayed on the standard output. +
    +

    The following example shows that, when it was started, the second instance of a behavior called "b" was started at a global time of 39.66 seconds, and had a value of 0.5: + +

    
    +"b" 2 started at 39.66 result = 0.5
    +
    +

    The next example displays a solid-colored image whose red and green components are 1, and whose blue component is time-varying. The NumberBvr x initially has a value of "b" (a value that varies over time). When the left button of the mouse is pressed, "b" (and therefore, "x" starts all over again, with a value of 0.5. + +

    The debugging information (shown in the previous example) is displayed each time the left mouse button is pressed. + + +

    
    +import com.ms.dxmedia.*;
    +
    +public class DebugTest extends DXMApplet{
    +  public DebugTest() {
    +    // Set the model
    +    setModel(new DebugTestModel()) ;
    +  } 
    +}
    +
    +class DebugTestModel extends Model {
    +  public void createModel(BvrsToRun extraBvrsToRun) {
    +      NumberBvr b = (NumberBvr) add(localTime, toBvr(0.5)).Debug("b");
    +
    +      NumberBvr x = NumberBvr.newUninitBvr();
    +      x.init(until(b, leftButtonDown, x));
    +      
    +      ImageBvr model = solidColorImage(colorRgb(toBvr(1), toBvr(1), x));
    +
    +      setImage(model);
    +  }
    +}       
    +
    +
    +

    This method is unavailable to viewers that don't display the standard output. +


    debug

    +Behavior Class +

    Gives information about a running behavior. +

    public Behavior debug(
      String name,
      boolean onStart
      );

    Parameters
    +
    name +
    The name of the behavior. +
    onStart +
    If true, the debug method is called when the behavior is started. If false, the method is called whenever the behavior is sampled. The default is true. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    Remarks
    +

    This method gives the following information about a running behavior: + +

    • The name of the behavior. +
    • An integer number (the ID), which distinguishes each instance of the behavior. +
    • The global time that the behavior was started or sampled. +
    • The local time that the behavior was sampled. (If debug is being called when the behavior is started, then the local time is 0, which is not displayed.) +
    • The value of the behavior at the time it was started or sampled. +
    +

    This method assumes the information is displayed on the standard output. + +

    The following example shows that, when it was started, the second instance of a behavior called "b" was started at a global time of 39.66 seconds, and had a value of 0.5: + +

    
    +"b" 2 started at 39.66 result = 0.5
    +
    +

    This method is unavailable to viewers that don't display the standard output. +


    debug

    +Behavior Class +

    Gives information about a running behavior. +

    public Behavior debug(
      String name,
      boolean onStart,
      PrintStream std
      );

    Parameters
    +
    name +
    The name of the behavior. +
    onStart +
    If true, the debug method is called when the behavior is started. If false, the method is called whenever the behavior is sampled. The default is true. +
    std +
    The output device. The default is the standard output. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    Remarks
    +

    This method gives the following information about a running behavior: +

    • The name of the behavior. +
    • An integer number (the ID), which distinguishes each instance of the behavior. +
    • The global time that the behavior was started or sampled. +
    • The local time that the behavior was sampled. (If debug is being called when the behavior is started, then the local time is 0, which is not displayed.) +
    • The value of the behavior at the time it was started or sampled. +
    +

    The following example shows that, when it was started, the second instance of a behavior called "b" was started at a global time of 39.66 seconds, and had a value of 0.5: + +

    
    +"b" 2 started at 39.66 result = 0.5
    +
    +

    This method is unavailable to viewers that don't display the standard output. + +


    duration

    +Behavior Class +

    Creates an animation fragment by associating a local "stop time" with a behavior. The result is a new behavior that is the same as the original behavior for the length of the duration. Once the duration is over, the behavior is a snapshot of the behavior's state when the duration ended. + +

    public Behavior duration(
      NumberBvr length
      )

    Parameters
    +
    length +
    The NumberBvr object representing the length of time, in seconds, that the duration lasts. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Behavior object. + + +


    extract

    +Behavior Class +

    Extracts the value of the behavior, returning a Java object. This behavior must have a constant value. + +

    public Object extract( );

    Return Values
    +

    Returns a Java object. For more information about java.lang.Object objects, consult a Java reference. + + +


    init

    +Behavior Class +

    Initializes a behavior created by the newUninit method. + +

    public void init(
      Behavior a
      )

    Parameters
    +
    a +
    The Behavior object to be initialized. +
    +


    repeat

    +Behavior Class +

    Creates a behavior that repeats itself the number of times specified by repetitions. + +

    public Behavior repeat(
      int repetitions
      );

    Parameters
    +
    repetitions +
    The number of times the behavior will repeat. +
    +
    Return Values
    +

    Returns the Behavior object. + + +


    repeatForever

    +Behavior Class +

    Creates a behavior that repeats infinitely. + +

    public Behavior repeatForever( );

    Return Values
    +

    Returns the Behavior object. + + +


    runOnce

    +Behavior Class +

    Used when applications must reference a running behavior once it starts running, but don't require the application to explicitly start that behavior. + +

    public Behavior runOnce( );

    Remarks
    +

    The following code fragment plays 2 movies. The first movie plays from the beginning for 10 seconds. It then fades, over a 2 second interval, into a second movie. (Assume the existence of a fade method.) + +

    ImageBvr movie1Once = (ImageBvr)movie1.runOnce();
    +ImageBvr movie2Once = (ImageBvr)movie2.runOnce();
    +  until(movie1Once,
    +    timer(toBvr(10)),
    +      until(fade(div(localTime, toBvr(2)), movie1Once, movie2Once),
    +        timer(toBvr(2)),
    +          movie2Once);
    +
    +


    substituteTime

    +Behavior Class +

    Creates a new behavior from an existing Behavior and a NumberBvr. In the new behavior, the number behavior replaces all occurrences of localTime in the original behavior. (This includes behaviors where localTime is implicit, such as imported movies. The method can be used even if localTime isn't explicitly in the code.) + +

    public Behavior substituteTime(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object that replaces localTime. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    Remarks
    +

    This method allows behaviors to be, for example, time-scaled to run faster or slower, time-shifted to start at a different time, or frozen at a particular point in time. Here are some examples: + +

    //A point moving 1 unit in x/second, starting at 0	
    +	b0 = point2(localTime, toBvr(0));
    +
    +    //Create new behavior moving 0.5 units/second, 
    +    //by replacing localTime with localTime/2
    +	b1 = origBvr.substituteTime(div(localTime, toBvr(2)));
    +
    +    //Create new behavior moving 1 unit/second, 
    +    //starting at 33, by replacing localTime with localTime + 33
    +	b2 = origBvr.substituteTime(add(localTime, toBvr(33));
    +
    +    //Create new behavior moving 2 units/second, starting at 33, 
    +    //by replacing localTime with (localTime *2) + 33
    +	b3 = origBvr.substituteTime(add(mul(localTime, toBvr(2)), toBvr(33));
    +
    +    //Freeze the original behavior at time 77
    +	b4 = origBvr.substituteTime(toBvr(77));
    +
    +    //Tie the new behavior to the x-component of the mouse
    +	b5 = origBvr.substituteTime(mousePosition.getX());
    +
    +    //Show that replacements are cumulative. The following sequence:
    +	c0 = point2(localTime, toBvr(0));
    +	c1 = c0.substituteTime(add(localTime, toBvr(33)));
    +	c2 = c1.substituteTime(mul(localTime, toBvr(2)));
    +
    +    //is equivalent to:
    +	c0.substituteTime(add(mul(localTime, toBvr(2))), toBvr(33));
    +
    +
    +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type Behavior. + +

    public static Behavior cond(BooleanBvr bool, Behavior a, Behavior b); +

    public static Behavior sequence(Behavior a, Behavior b); +

    public static Behavior until(Behavior a, DXMEvent e, Behavior b); +

    public static Behavior untilEx(Behavior a, DXMEvent e); +

    public static Behavior untilNotify(Behavior a, DXMEvent e, UntilNotifier notifier); + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0125.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0125.HTM new file mode 100644 index 0000000..00166ab --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0125.HTM @@ -0,0 +1,229 @@ + + +BooleanBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --BooleanBvr Class +DirectAnimation Animated Header --BooleanBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Behavior Class
    +*Next Topic: BvrCallback Interface
    +

    +

    +

    BooleanBvr Class

    +
    +
    public class BooleanBvr extends Behavior {
    +          
    +    // Methods
    +    public Object extract();
    +
    +    public static BooleanBvr newUninitBvr();    
    +            
    +   }
    +
    +

    A BooleanBvr is an object that represents a boolean behavior. At any given time, the value of the behavior is either true or false. + +

    For more information about behaviors, see the Behavior class. + +

    +

    BooleanBvr Methods

    +

    bullet1.gifextract
    +

    bullet1.gifnewUninitBvr();
    +


    extract

    +BooleanBvr Class +

    Extracts the value of the behavior, returning a Java object. This behavior must have a constant value. + +

    public Object extract( );

    Return Values
    +

    Returns a Java object. For more information about java.lang.Object objects, consult a Java reference. + + +


    newUninitBvr();

    +BooleanBvr Class +

    Makes it possible to refer to a boolean behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static BooleanBvr newUninitBvr( );

    Return Values
    +

    Returns the BooleanBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type BooleanBvr: + +

    public static BooleanBvr and(BooleanBvr b1, BooleanBvr b2); +

    public static BooleanBvr keyState(int keyCode); +

    public static BooleanBvr not(BooleanBvr b); +

    public static BooleanBvr or(BooleanBvr b1, BooleanBvr b2); +

    public static BooleanBvr toBvr(boolean bool); +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type BooleanBvr: + +

    public final static BooleanBvr falseBvr; +

    public final static BooleanBvr leftButtonState +

    public final static BooleanBvr rightButtonState +

    public final static BooleanBvr trueBvr; +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0126.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0126.HTM new file mode 100644 index 0000000..94a2855 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0126.HTM @@ -0,0 +1,209 @@ + + +BvrCallback Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --BvrCallback Interface +DirectAnimation Animated Header --BvrCallback Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: BooleanBvr Class
    +*Next Topic: BvrsToRun Class
    +

    +

    +

    BvrCallback Interface

    +
    +
    public interface BvrCallback extends java.lang.Object
    +{
    +	public abstract Behavior notify(int id, boolean start, double startTime, double globalTime, double localTime, Behavior sampledValue, Behavior currentRunningBvr);
    +}
    +
    +

    BvrCallback Methods

    +

    bullet1.gifnotify
    +


    notify

    +BvrCallback Interface +

    Calls the notifier method of the object whenever the behavior is started or sampled. + +

    public abstract Behavior notify(
      int id,
      boolean start,
      double startTime,
      double globalTime,
      double localTime,
      Behavior sampledValue,
      Behavior currentRunningBvr
      );

    Parameters
    +
    id +
    Distinguishes one instance of a behavior from another. +
    start +
    Determines if the notifier method is called when the behavior starts or each time it is sampled. +
    startTime +
    The time the behavior was first run. +
    globalTime +
    The time the behavior was sampled, in global time. +
    localTime +
    The time the behavior was sampled, in local time. (If the behavior is sampled when it starts, this value is 0). +
    sampledValue +
    The value of the behavior at the time it was sampled. This value is wrapped as a constant behavior. +
    currentRunningBvr +
    The behavior that is currently running. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0127.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0127.HTM new file mode 100644 index 0000000..8dd1bd4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0127.HTM @@ -0,0 +1,213 @@ + + +BvrsToRun Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --BvrsToRun Class +DirectAnimation Animated Header --BvrsToRun Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: BvrCallback Interface
    +*Next Topic: CameraBvr Class
    +

    +

    +

    BvrsToRun Class

    +
    +
    public class BvrsToRun extends java.lang.Object {
    +     // Methods
    +     public int add(Behavior bvrToAdd);
    +     public void remove (int id);
    +}
    +
    +

    A BvrsToRun object is an abstract list used to explicitly run behaviors that are not part of the model. To add these extra behaviors, use the add method. To remove these behaviors, use the remove method. + +

    These behaviors will either be run at the same time as the behaviors included in the model (local time = 0) or when an event occurs. + +

    An example of running a behavior that is not part of the model is a movie with both an English and a Spanish soundtrack. Perhaps, initially, the English soundtrack is played but the Spanish soundtrack can be selected at any time. This means it must have the same start time as the English soundtrack so that it is also in sync with the movie. + +

    BvrsToRun Methods

    +

    bullet1.gifadd
    +

    bullet1.gifremove
    +


    add

    +BvrsToRun Class +

    Adds behaviors that are not a part of the model. When the system starts the model, it retrieves these additional behaviors and runs them with the same start time as the behaviors included in the model. + +

    public int add(
      Behavior extraBvrToRun
      );

    Parameters
    +
    extraBvrToRun +
    The additional behaviors to run. +
    +
    Return Values
    +

    Returns an integer ID that identifies the behavior. + + +


    remove

    +BvrsToRun Class +

    Removes behaviors that are not a part of the model. To remove a behavior, save the BvrToRun object and use the ID returned by the BvrsToRun.add method. + +

    public void remove (
      int id
      );

    Parameters
    +
    id +
    The integer identifying the added behavior. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0128.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0128.HTM new file mode 100644 index 0000000..823fbed --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0128.HTM @@ -0,0 +1,273 @@ + + +CameraBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --CameraBvr Class +DirectAnimation Animated Header --CameraBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: BvrsToRun Class
    +*Next Topic: ColorBvr Class
    +

    +

    +

    CameraBvr Class

    +
    +
    public class CameraBvr extends Behavior {
    +    // Methods
    +    public CameraBvr depth(NumberBvr d);
    +    public CameraBvr depthResolution(NumberBvr n);
    +    public CameraBvr transform(Transform3Bvr xf);
    +
    +    public static CameraBvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a camera behavior. A camera is used with the render method to project geometry onto an infinite two-dimensional image. Related operations include rendering it into a microphone to extract the sound, or into a pair of microphones to extract stereo sounds. + +

    There are two basic types of cameras: one for parallel projection and one for perspective projection. Both cameras are oriented so that they gaze in the negative z direction, with positive y considered "up." Also, both cameras have a near clipping plane. This plane (a product of Z-buffered rendering) specifies the closest distance at which an object is visible. Objects closer than the near clipping plane cannot be seen. + +

    Cameras are manipulated via standard three-dimensional transform operations. These transforms modify the camera characteristics and also position and orient the cameras. For more information about these operations, see the transform methods described below. + +

    For more information about behaviors, see the Behavior class. +

    +

    CameraBvr Methods

    +

    bullet1.gifdepth
    +

    bullet1.gifdepthResolution
    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    depth

    +CameraBvr Class +

    Creates a new camera behavior that is the result of applying the specified depth to the original behavior. + +

    public CameraBvr depth(
      NumberBvr d
      );

    Parameters
    +
    d +
    The NumberBvr object that sets the maximum viewing depth of the CameraBvr. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the CameraBvr object. + + +

    Remarks
    +

    By default, cameras have infinite depth, which means that all objects in front of the camera are visible. The new behavior is a CameraBvr whose maximum viewing depth is the NumberBvr depth. If depth < 0, the CameraBvr will be unable to see anything. If you prefer to think in terms of hither and yon, this method sets yon = hither + depth. It is important to note that depth is the limit on the far plane. As with the near plane, the geometry is bounded as tightly as possible for maximum Z-resolution. + +

    Limiting the depth of the camera is useful for preserving depth resolution when using Z-buffered rendering. It is also useful for a camera inside a building, where no viewing region is larger than some value. +


    depthResolution

    +CameraBvr Class +

    Creates a new camera behavior by applying the specified depth resolution (res) to the original behavior. + +

    public CameraBvr depthResolution(
      NumberBvr res
      );

    Parameters
    +
    res +
    The NumberBvr object that sets the minimum depth (in camera coordinates) that is guaranteed to be distinct. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the CameraBvr object. + + +

    Remarks
    +

    The Z-buffered rendering approach assigns one depth-value (typically one of 65,536 possibilities) to each pixel on the screen. The res is the minimum distance between two objects such that they still appear distinct. This resolution varies as you go from the near clipping plane to the far clipping plane (more precision is lost for far objects) and according to the amount of perspective for the given camera. This method (assuming a minimum distance to be observed for the entire visible space) adjusts the far clipping plane accordingly. + +

    For example, if the projection point is at (0,0,2), the image clip is at (0,0,1), and the depth resolution (res) is 1cm, then the resultant camera will have a viewing depth of slightly over 25.1 meters. It is important to note that depth represents the limit on the far plane. As with the near plane, the geometry will actually be bounded as tightly as possible for maximum Z-resolution. +


    transform

    +CameraBvr Class +

    Modifies, moves, or orients a camera. + +

    public CameraBvr transform(
      Transform3Bvr xf
      );

    Parameters
    +
    xf +
    The Transform3Bvr object. +
    +
    Return Values
    +

    Returns the CameraBvr object. + + +

    Remarks
    +

    Cameras are modified, positioned, and oriented via standard transforms. Scale transforms modify the camera while translations and rotations position and orient the camera. The basic steps for using a camera are defining it, modifying it if necessary, and then placing it in the scene. + +

    It is important to note that all camera scales should be applied before camera rotations, and that only scales, rotations, and translations are supported on cameras. Transformations that do not meet these criteria will yield a camera with undefined behavior. + +

    There are two types of scale transformations called Z-scales and X/Y-scales. Z-scales must be positive, non-zero values. Z-scales affect the position of the near clipping plane (if the clipping plane is set to a non-zero value.) For example, if the near clipping plane is located at 10 (that is, if Z=10), then a scale of [1 1 3] will yield a near clipping plane located at Z=30. More importantly, Z-scales move the projection point for a perspective camera. This means an increasing Z-scale yields a perspective camera that is zooming in, and a decreasing Z-scale yields a perspective camera that is zooming out. + +

    Use X/Y-scales to affect the size of the projected image. One way to think of this is that an X/Y-scale sets the size of the camera relative to the world it's viewing. For example, if you are viewing a microscopic scene, use a small X/Y-scale. On the other hand, if you are viewing a solar system, use a large X/Y scale. Scaling a camera by some value in X/Y is exactly equivalent to inversely scaling the resulting image by the same amount. For example, scaling the camera by [10 10 1] is the same as scaling the resulting image by [1/10 1/10]. Finally, disparate scales in X and Y can be used to change the aspect ratio of the rendered image. + +

    Once the camera is defined (via construction and scaling), it can be placed in the scene via rotations and translations just as a light source, microphone, or any other geometric object is placed. + + +

    This attribute composes values. +


    newUninitBvr

    +CameraBvr Class +

    Allows you to refer to a camera behavior before that behavior has been defined. With this method you can create a camera behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static CameraBvr newUninitBvr( );

    Return Values
    +

    Returns the CameraBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type CameraBvr: + +

    public static CameraBvr parallelCamera(NumberBvr nearclip); +

    public static CameraBvr perspectiveCamera(NumberBvr projdst, NumberBvr nearclip); + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0129.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0129.HTM new file mode 100644 index 0000000..25a3152 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0129.HTM @@ -0,0 +1,308 @@ + + +ColorBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ColorBvr Class +DirectAnimation Animated Header --ColorBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: CameraBvr Class
    +*Next Topic: Cycler Class
    +

    +

    +

    ColorBvr Class

    +
    +
    public class ColorBvr extends Behavior {
    +        
    +    // Methods
    +    public NumberBvr getBlue();
    +    public NumberBvr getGreen();
    +    public NumberBvr getHue();
    +    public NumberBvr getLightness();
    +    public NumberBvr getRed();
    +    public NumberBvr getSaturation();
    +    
    +    public static ColorBvr newUninitBvr();
    +}
    +
    +

    A ColorBvr is an object that represents a color behavior. At any given time, the value of the behavior is a color value that represents a specific color. Each color value consists of a combination of component values that specify either red, green and blue intensity or hue, saturation, and lightness. + +

    Because component values are number behaviors (NumberBvr objects), the value of the color behavior may change over time as the number behaviors change. + +

    For more information about behaviors, see the Behavior class. + +

    +

    ColorBvr Methods

    +

    bullet1.gifgetBlue
    +

    bullet1.gifgetGreen
    +

    bullet1.gifgetHue
    +

    bullet1.gifgetLightness
    +

    bullet1.gifgetRed
    +

    bullet1.gifgetSaturation
    +

    bullet1.gifnewUninitBvr
    +


    getBlue

    +ColorBvr Class +

    Creates a number behavior that represents the value of the blue component of the corresponding color behavior. + +

    public NumberBvr getBlue( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getRed, getGreen + +


    getGreen

    +ColorBvr Class +

    Creates a number behavior that represents the value of the green component of the corresponding color behavior. + +

    public NumberBvr getGreen( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getRed, getBlue + +


    getHue

    +ColorBvr Class +

    Creates a number behavior that represents the value of the hue of the corresponding color behavior. + +

    public NumberBvr getHue( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getLightness, getSaturation + +


    getLightness

    +ColorBvr Class +

    Creates a number behavior that represents the value of the lightness of the corresponding color behavior. + +

    public NumberBvr getLightness( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getHue, getSaturation + +


    getRed

    +ColorBvr Class +

    Creates a number behavior that represents the value of the red component of the corresponding color behavior. + +

    public NumberBvr getRed( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getGreen, getBlue + +


    getSaturation

    +ColorBvr Class +

    Creates a number behavior that represents the value of the saturation of the corresponding color behavior. + +

    public NumberBvr getSaturation( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getHue, getLightness + +


    newUninitBvr

    +ColorBvr Class +

    This method allows you to refer to a color behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static ColorBvr newUninitBvr( );

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type ColorBvr: + +

    public static ColorBvr colorHsl(NumberBvr h, NumberBvr s, NumberBvr l); +

    public static ColorBvr colorRgb(NumberBvr r, NumberBvr g, NumberBvr b); +

    public static ColorBvr colorRgb255(short r, short g, short b); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type ColorBvr: + +

    public final static ColorBvr aqua; +

    public final static ColorBvr black; +

    public final static ColorBvr blue; +

    public final static ColorBvr cyan; +

    public final static ColorBvr fuchsia; +

    public final static ColorBvr gray; +

    public final static ColorBvr green; +

    public final static ColorBvr lime; +

    public final static ColorBvr magenta; +

    public final static ColorBvr maroon; +

    public final static ColorBvr navy; +

    public final static ColorBvr olive; +

    public final static ColorBvr purple; +

    public final static ColorBvr red; +

    public final static ColorBvr silver; +

    public final static ColorBvr teal; +

    public final static ColorBvr white; +

    public final static ColorBvr yellow; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0130.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0130.HTM new file mode 100644 index 0000000..b05c321 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0130.HTM @@ -0,0 +1,229 @@ + + +Cycler Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Cycler Class +DirectAnimation Animated Header --Cycler Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ColorBvr Class
    +*Next Topic: DashStyleBvr Class
    +

    +

    +

    Cycler Class

    +
    +
    public class Cycler extends java.lang.Object {
    +    // Constructor
    +    Cycler(Behavior[] arrToCycleThrough, DXMEvent eventToCycleUpon);
    +    
    +    //Methods
    +    public Behavior getBvr();
    +    
    +
    +

    The Cycler object cycles through an array of values when an event occurs. Here is an example that cycles through the colors red, green, blue, yellow, red, green, and so on, each time the left mouse button is pressed: + +

    //Cycle through a series of colors
    +//Create the array to contain the values
    +Behavior behavior[4] = {red, green, blue, yellow};
    +//Construct Cycler object
    +//Associate values in array with the left mouse button event
    +Cycler cyl = new Cycler(behaviors, leftButtonDown);
    +//Set the color equal to the next value in the array
    +ColorBvr col = (ColorBvr)(cyl.getBvr());
    +
    +

    The following example cycles through an array of sounds: + +

    //Create an array of sounds
    +Behavior[]snds = {snd1, snd2, snd3};
    +Cycler cycle = new Cycler(snds, leftButtonDown);
    +SoundBvr currentSnd = (SoundBvr)(cycle.getBvr();
    +
    + +


    Cycler Constructor

    +Cycler Class +

    Creates a cycler object. + +

    Cycler(
      Behavior[] arrToCycleThrough,
      DXMEvent eventToCycleUpon
      );

    Parameters
    +
    arrToCycleThrough +
    The array of values cycled through when an event occurs. +
    eventToCycleUpon +
    The event that causes the Cycler object to cycle through the array of values. +
    + +
    +

    Cycler Methods

    +

    bullet1.gifgetBvr
    +


    getBvr

    +Cycler Class +

    Retrieves a Behavior object from the array. The behavior that is returned doesn't itself respond to the provided event. The behavior must be running before the events can have any effect. + +

    public Behavior getBvr( );

    Return Values
    +

    Returns the Behavior object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0131.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0131.HTM new file mode 100644 index 0000000..94c4594 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0131.HTM @@ -0,0 +1,209 @@ + + +DashStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DashStyleBvr Class +DirectAnimation Animated Header --DashStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Cycler Class
    +*Next Topic: DXMApplet Class
    +

    +

    +

    DashStyleBvr Class

    +
    +
    public class DashStyleBvr extends Behavior {
    +
    +   // Methods
    +   public static DashStyleBvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a dashstyle behavior. The behavior defines whether lines are drawn using a continuous stroke or a sequence of dashes. + +

    Use the dashstyle behavior with the dash method of the LineStyleBvr object. + +

    For more information about Behaviors see the Behavior class. + +

    +

    DashStyleBvr Methods

    +

    bullet1.gifnewUninitBvr();
    +


    newUninitBvr();

    +DashStyleBvr Class +

    This method allows you to refer to a dash-style behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static DashStyleBvr newUninitBvr( );

    Return Values
    +

    Returns the DashStyleBvr object. + + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type DashStyleBvr. + +

    public final static DashStyleBvr dashStyleDashed; +

    public final static DashStyleBvr dashStyleSolid; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0132.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0132.HTM new file mode 100644 index 0000000..a33c5c1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0132.HTM @@ -0,0 +1,266 @@ + + +DXMApplet Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMApplet Class +DirectAnimation Animated Header --DXMApplet Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DashStyleBvr Class
    +*Next Topic: DXMCanvas Class
    +

    +

    +

    DXMApplet Class

    +
    +
    public class DXMApplet extends java.applet.Applet {
    +    // Constructor
    +    public DXMApplet();
    +
    +    // Methods
    +    public DXMCanvas getCanvas();
    +    public Model getModel();
    +    public Model setModel();
    +    public start();
    +    public stop();
    +}
    +
    +

    Creates a Java applet for creating and displaying DirectAnimation behaviors. By default, DXMApplet provides its own frameloop which means the applications need not provide one explicitly. It is possible, of course, to do so by overriding the default behavior. Here is an example of using the DXMApplet to view a model called MyModel: + +

    
    +import com.ms.dxmedia.*;
    +
    +//Create an applet called MyApplet
    +public class MyApplet extends DXMApplet{
    +   public class MyApplet() {
    +   // Set the model
    +  setModel(new MyModel());
    +  }
    +}
    +
    +// Code fragment for MyModel
    +class MyModel extends Model {
    +  // The createModel method is where the animation is constructed
    +  public void createModel(BvrsToRun extraBvrsToRun) {
    +
    +    //Whatever MyModel does 
    +      	...
    +  }
    +}
    +
    +
    + +


    DXMApplet Constructor

    +DXMApplet Class +

    Creates an DXMApplet object. + +

    public DXMApplet( );
    +


    +

    DXMApplet Methods

    +

    bullet1.gifgetCanvas
    +

    bullet1.gifgetModel
    +

    bullet1.gifsetModel
    +

    bullet1.gifstart
    +

    bullet1.gifstop
    +


    getCanvas

    +DXMApplet Class +

    Gets a DXMCanvas. This method should only be called if you are implementing your own ticking. + +

    public DXMCanvas getCanvas( );

    Return Values
    +

    Returns the DXMCanvas object. + + +


    getModel

    +DXMApplet Class +

    Gets the model that was set by setModel. + +

    public Model getModel( );


    setModel

    +DXMApplet Class +

    Sets the model that will be used. + +

    public void setModel(
      Model model
      );

    Parameters
    +
    model +
    The model to be set. +
    +
    Remarks
    +

    This method must be called before the model is started. Calling it after the model has started causes an exception. + +


    start

    +DXMApplet Class +

    Adds the canvas. + +

    public start( );


    stop

    +DXMApplet Class +

    Adds the canvas. + +

    public stop( );

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type DXMApplet. + +

    public static ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w) + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0133.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0133.HTM new file mode 100644 index 0000000..331a463 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0133.HTM @@ -0,0 +1,453 @@ + + +DXMCanvas Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMCanvas Class +DirectAnimation Animated Header --DXMCanvas Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMApplet Class
    +*Next Topic: DXMEvent Class
    +

    +

    +

    DXMCanvas Class

    +
    +
    public class DXMCanvas extends java.awt.Canvas{
    +    // Constructor
    +    public DXMCanvas();
    +    
    +    // Methods from java.awt.Canvas
    +    public synchronized void addNotify();
    +    public synchronized boolean handleEvent(Event e);
    +    public synchronized void hide();
    +    public void paint(Graphics g);
    +    public synchronized void removeNotify();
    +    public synchronized void reshape(int x, int y, int width, int height);
    +    public synchronized void show();
    +    public void update(Graphics g);
    +
    +    //Methods from Runnable Interface
    +    public void run();
    +
    +    // Methods from Viewer Interface
    +    public double getCurrentTime();
    +    public double getCurrentTickTime();
    +    public Preferences getPreferences();
    +    public ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w);
    +    public void startModel();
    +    public void stopModel();
    +    public void tick();
    +    public synchronized void tick (double timeToUse);
    +    
    +    // Methods
    +    public synchronized void addModel();
    +    public synchronized abstract void addModel();
    +    public Model getModel();
    +    public synchronized void hideModel();
    +    public synchronized abstract void hideModel();
    +    public synchronized void removeModel();
    +    public synchronized abstract void removeModel();
    +    public void setModel(Model);
    +    public synchronized void showModel();
    +    public synchronized abstract void showModel();
    + }
    +
    +

    Creates an Java canvas for creating and displaying DirectAnimation behaviors. By default, DXMCanvas provides its own frameloop which means the applications need not provide one explicitly. It is possible, of course, to do so by overriding the default behavior. + +

    +


    DXMCanvas Constructor

    +DXMCanvas Class +

    Creates an DXMCanvas object. + +

    public DXMCanvas( );
    +


    +

    DXMCanvas Methods from java.awt.Canvas

    +

    bullet1.gifaddNotify
    +

    bullet1.gifhandleEvent
    +

    bullet1.gifhide
    +

    bullet1.gifpaint
    +

    bullet1.gifremoveNotify
    +

    bullet1.gifreshape
    +

    bullet1.gifshow
    +

    bullet1.gifupdate
    +


    addNotify

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. This method should not be overridden. + +

    public synchronized void addNotify( );


    handleEvent

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. For more information, see a Java reference. + +

    public synchronized boolean handleEvent(
      Event e
      );


    hide

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. This method should not be overridden. For more information, see a Java reference. + +

    public synchronized void hide( );


    paint

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. For more information, see a Java reference. + +

    public void paint(
      Graphics g
      );


    removeNotify

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. This method should not be overridden. + +

    public synchronized void removeNotify( );


    reshape

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. For more information, see a Java reference. + +

    public synchronized void reshape(
      int x,
      int y,
      int width,
      int height
      );


    show

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. This method should not be overridden. For more information, see a Java reference. + +

    public synchronized void show( );


    update

    +DXMCanvas Class +

    Overrides the Java implementation and calls the superclass. For more information, see a Java reference. + +

    public void update(
      Graphics g
      );

    Parameters
    +
    g +
    The object to be updated. +
    +

    DXMCanvas Methods from Runnable Interface

    +

    bullet1.gifrun
    +


    run

    +DXMCanvas Class +

    Implements the Runnable interface to create a background thread for ticking the model. For more information about Runnable, consult a Java reference. + +

    public void run( );

    DXMCanvas Methods from Viewer Interface

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    getCurrentTime +
    getCurrentTickTime +
    getPreferences +
    registerErrorAndWarningReceiver +
    startModel +
    stopModel +
    tick() +
    tick(timeToUse) + +
    +


    getCurrentTime

    +DXMCanvas Class +

    See getCurrentTime in the Viewer Interface. + +

    public double getCurrentTime( );


    getCurrentTickTime

    +DXMCanvas Class +

    See getCurrentTickTime in the Viewer Interface. + +

    public void getCurrentTickTime( );


    getPreferences

    +DXMCanvas Class +

    See getPreferences in the Viewer Interface. + +

    public Preferences getPreferences( );


    registerErrorAndWarningReceiver

    +DXMCanvas Class +

    See registerErrorAndWarningReceiver in the Viewer Interface section. + +

    public ErrorAndWarningReceiver registerErrorAndWarningReceiver(
      ErrorAndWarningReceiver w
      );


    startModel

    +DXMCanvas Class +

    See startModel in the Viewer Interface section. + +

    public void startModel( );


    stopModel

    +DXMCanvas Class +

    See stopModel in the Viewer Interface section. + +

    public void stopModel( );


    tick

    +DXMCanvas Class +

    See tick in the Viewer Interface section. + +

    public void tick( );


    tick

    +DXMCanvas Class +

    See tick in the Viewer Interface section. + +

    public synchronized void tick (
      double timeToUse
      );

    DXMCanvas Methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    addModel +
    addModel - abstract method +
    getModel +
    hideModel +
    hideModel - abstract method +
    removeModel +
    removeModel - abstract method +
    setModel +
    showModel +
    showModel - abstract method + +
    +


    addModel

    +DXMCanvas Class +

    Creates a background thread to tick the model and calls startModel. To perform manual ticking, override this method. + +

    public synchronized void addModel( );


    addModel

    +DXMCanvas Class +

    Implement this to override addModel. + +

    public abstract synchronized void addModel( );


    getModel

    +DXMCanvas Class +

    Gets the model that was set by setModel. + +

    public Model getModel( );


    hideModel

    +DXMCanvas Class +

    In the default implementation, this method pauses the background thread. This method can be overridden. + +

    public synchronized void hideModel( );


    hideModel

    +DXMCanvas Class +

    Implement this to override hideModel. + +

    public synchronized abstract void hideModel( );


    removeModel

    +DXMCanvas Class +

    This method terminates the thread and then calls stopModel. This method can be overridden. + +

    public synchronized void removeModel( );


    removeModel

    +DXMCanvas Class +

    Implement this to override removeModel. + +

    public synchronized abstract void removeModel


    setModel

    +DXMCanvas Class +

    Sets the model that will be used. + +

    public void setModel(
      Model model
      );

    Parameters
    +
    model +
    The model to be set. +
    +


    showModel

    +DXMCanvas Class +

    In the default implementation, this method ensures that the thread is resumed. This method can be overridden. + +

    public synchronized void showModel( );


    showModel

    +DXMCanvas Class +

    Implement this to override showModel. + +

    public synchronized abstract void showModel( );

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0134.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0134.HTM new file mode 100644 index 0000000..ad79f4f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0134.HTM @@ -0,0 +1,316 @@ + + +DXMEvent Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMEvent Class +DirectAnimation Animated Header --DXMEvent Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMCanvas Class
    +*Next Topic: DXMException Class
    +

    +

    +

    DXMEvent Class

    +
    +
    public class DXMEvent extends Behavior{
    +
    +    // Constructor
    +    public DXMEvent();
    +
    +    // Methods
    +    public DXMEvent attachData(Object object);
    +    public DXMEvent notifyEvent(UntilNotifier notifier);
    +    public Object registerCallback(EventCallbackObject object, BvrsToRun extraBvrsToRun, boolean bool);
    +    public DXMEvent snapshotEvent(Behavior a);
    +
    +    public static DXMEvent newUninitBvr();
    +    
    +}
    +
    +

    Creates an object that represents an event. Events identify specific times, states or user actions and are used to specify when given actions should occur. Typically, you use events with the until and untilNotify methods to create behaviors that change as a result of the event. For example, you can change the color of an object when the user presses a mouse button by specifying the mouse button event in a call to the until method of the ColorBvr class. Every event, when it occurs, returns some event data. This data may or may not be meaningful. The data returned, for example, by leftButtonDown has no meaning. + +

    You can combine existing events to create new, more complex events. For example, the andEvent method lets you combine two events so that the resulting event occurs only if both of the original events occur simultaneously. + +

    +


    DXMEvent Constructor

    +DXMEvent Class +

    Constructs a DXMEvent object. + +

    public DXMEvent( );
    +


    +

    DXMEvent Methods

    +

    bullet1.gifattachData
    +

    bullet1.gifnotifyEvent
    +

    bullet1.gifregisterCallback
    +

    bullet1.gifsnapshotEvent
    +

    bullet1.gifnewUninitBvr
    +


    attachData

    +DXMEvent Class +

    Takes an arbitrary object and produces a new event. The new event occurs at the same time as the original event, but its data is now the data that was specified in the call to attachData. + +

    public DXMEvent attachData(
      Object object
      );

    Parameters
    +
    object +
    An arbitrary object. +
    +
    Return Values
    +

    Returns a DXMEvent object. The event data is the event data of the new event. + + +

    Remarks
    +

    This method allows an application to associate arbitrary client data with an event and know that it will be delivered to the notifier when the event occurs. In the following example, the behavior is red until the left mouse button is pressed. It then passes either green or yellow, depending on what is returned by the notifier. + +

    DXMEvent greenLeft = leftButtonDown.attachData(green);
    +DXMEvent yellowright = rightButtonDown.attachData(yellow);
    +ColorBvr myBvr = (ColorBvr)untilNotify(red, orEvent(greenLeft, yellowRight), notifier);
    +
    +


    notifyEvent

    +DXMEvent Class +

    Creates a new event. This occurs when the original event occurs. It then calls the notifier and uses the result as its event data. + +

    public DXMEvent notifyEvent(
      UntilNotifier notifier
      );

    Parameters
    +
    notifier +
    Returns the new behavior. +
    +
    Return Values
    +

    Returns the DXMEvent object. The event data is the time the event fired and the new behavior. + + +


    registerCallback

    +DXMEvent Class +

    Causes an external action when an event occurs in DirectAnimation for Java and is used in conjunction with the EventCallbackObject. Whenever that event occurs, the invoke method of the callback is called with the event data produced by the event. + +

    public Object registerCallback(
      EventCallbackObject object,
      BvrsToRun extraBvrsToRun,
      boolean bool
      );

    Parameters
    +
    object +
    An object that implements the EventCallback interface. +
    extraBvrsToRun +
    Behaviors that are not part of the model. +
    bool +
    If true, the first occurrence of the event will trigger invoke. If false, every occurrence of the event will trigger invoke. +
    +
    Return Values
    +

    Returns an object of type java.lang.Object. This object can be used to unregister the callback. + + +

    Remarks
    +

    An example of where this method is used is displaying a GUI window when the mouse moves to a particular area. + + +

    See Also
    +

    unregisterCallback + +


    snapshotEvent

    +DXMEvent Class +

    When called on an instance of a behavior, samples the given behavior and returns it as a constant behavior with the value as data. The event time of the new event is when the original event occurs. +

    public DXMEvent snapshotEvent(
      Behavior a
      );

    Parameters
    +
    a +
    The Behavior object which will be sampled when the method is invoked. +
    +
    Return Values
    +

    Returns the DXMEvent object. The event data is the value of the behavior at the time it was sampled, returned as a constant behavior. + + +

    Remarks
    +

    In the following example, the value of n is localTime until the left mouse button is pressed. It then becomes whatever the value of localTime was when the event occurred: + +

    
    +n=until(localTime, leftButtonDown.snapshotEvent(localTime));
    +
    +


    newUninitBvr

    +DXMEvent Class +

    This method allows you to refer to an DXMEvent behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static newUninitBvr( );

    Return Values
    +

    Returns the DXMEvent object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type DXMEvent. + +

    public static DXMEvent andEvent(DXMEvent first, DXMEvent second); +

    public static DXMEvent keyDown(int keyCode) +

    public static DXMEvent keyUp(int keyCode) +

    public static DXMEvent notEvent(DXMEvent ev); +

    public static DXMEvent orEvent(DXMEvent first, DXMEvent second); +

    public static DXMEvent predicate(BooleanBvr bool); +

    public static DXMEvent thenEvent(DXMEvent e1, DXMEvent e2); +

    public static DXMEvent timer(NumberBvr timeout); +

    public static void unregisterCallback(Object object); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type DXMEvent. + +

    public final static DXMEvent always; +

    public final static DXMEvent leftButtonDown; +

    public final static DXMEvent leftButtonUp; +

    public final static DXMEvent never; +

    public final static DXMEvent rightButtonDown; +

    public final static DXMEvent rightButtonUp; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0135.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0135.HTM new file mode 100644 index 0000000..65911b2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0135.HTM @@ -0,0 +1,223 @@ + + +DXMException Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMException Class +DirectAnimation Animated Header --DXMException Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMEvent Class
    +*Next Topic: EndStyleBvr Class
    +

    +

    +

    DXMException Class

    +
    +
    public class DXMException extends java.lang.RuntimeException {
    +    // Constructor
    +    public DXMException(int error, String string);
    +
    +   // Methods
    +   public int    getErrorCode();
    +   public String getErrorString();
    +}
    +
    +

    DXMException objects are thrown when any detected error occurs in the DirectAnimation system. They contain a string that should describe the source or the cause of the exception. + +

    +


    DXMException Constructor

    +DXMException Class +

    Constructs a DXMException object. + +

    public DXMException(
      int error,
      String string
      );

    Parameters
    +
    error +
    A Win32 error code. Consult a Win32 reference for more information. +
    string +
    Describes the cause or source of the exception. +
    + +
    +

    DXMException Methods

    +

    bullet1.gifgetErrorCode
    +

    bullet1.gifgetErrorString
    +


    getErrorCode

    +DXMException Class +

    Extracts the Win32 error code. Consult a Win32 reference for more information. + +

    public int getErrorCode;

    Return Values
    +

    Returns the integer error code. + + +


    getErrorString

    +DXMException Class +

    Extracts the error string from the exception. + +

    public String getErrorString( );

    Return Values
    +

    Returns an error string of type java.lang.String. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0136.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0136.HTM new file mode 100644 index 0000000..7d3fb72 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0136.HTM @@ -0,0 +1,207 @@ + + +EndStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --EndStyleBvr Class +DirectAnimation Animated Header --EndStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMException Class
    +*Next Topic: ErrorAndWarningReceiver Interface
    +

    +

    +

    EndStyleBvr Class

    +
    +
    public class EndStyleBvr extends Behavior {
    +   // Methods
    +   public static EndStyleBvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents an endstyle behavior. The behavior defines the style (shape) applied to the end of line segments when drawn. + +

    Use the endstyle behavior with the end method of the LineStyleBvr object. + +

    +

    EndStyleBvr Methods

    +

    bullet1.gifnewUninitBvr
    +


    newUninitBvr

    +EndStyleBvr Class +

    This method allows you to refer to an EndStyleBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static EndStyleBvr newUninitBvr( );

    Return Values
    +

    Returns the EndStyleBvr object. + + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type EndStyleBvr. + +

    public final static EndStyleBvr endStyleFlat; +

    public final static EndStyleBvr endStyleRound; +

    public final static EndStyleBvr endStyleSquare; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0137.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0137.HTM new file mode 100644 index 0000000..e9c6c68 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0137.HTM @@ -0,0 +1,242 @@ + + +ErrorAndWarningReceiver Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ErrorAndWarningReceiver Interface +DirectAnimation Animated Header --ErrorAndWarningReceiver Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: EndStyleBvr Class
    +*Next Topic: EventCallbackObject Interface
    +

    +

    +

    ErrorAndWarningReceiver Interface

    +
    +
    public interface ErrorAndWarningReceiver extends java.lang.Object{
    +    // Methods
    +    public abstract void handleError(int error, String s, Viewer v);
    +    public abstract void handleTickError(int error, String s, Viewer v);
    +    public abstract void handleTickWarning(int error, String s, Viewer v);
    +    public abstract void handleWarning(int error, String s, Viewer v);
    +}
    +
    +

    This interface, in conjunction with Viewer.registerErrorAndWarningReceiver, allows the application to register an object that will have its methods called when errors and warnings occur in the DirectAnimation system. + +

    ErrorAndWarningReceiver Methods

    +

    bullet1.gifhandleError
    +

    bullet1.gifhandleTickError
    +

    bullet1.gifhandleTickWarning
    +

    bullet1.gifhandleWarning
    +


    handleError

    +ErrorAndWarningReceiver Interface +

    Invoked when an error occurs outside of the invocation of a tick(). In addition, ticking is halted. + +

    public abstract void handleError(
      int error,
      String s,
      Viewer v
      );

    Parameters
    +
    error +
    The Win32 error code. Consult a Win32 reference for more information. +
    s +
    The error message. +
    v +
    The Viewer object on which the warning occurred. +
    +


    handleTickError

    +ErrorAndWarningReceiver Interface +

    Invoked specifically for error messages incurred inside of a tick. In addition, ticking is halted. + +

    public abstract void handleTickError(
      int error,
      String s,
      Viewer v
      );

    Parameters
    +
    error +
    The Win32 error code. Consult a Win32 reference for more information. +
    s +
    The error message. +
    v +
    The Viewer object on which the error occurred. +
    +


    handleTickWarning

    +ErrorAndWarningReceiver Interface +

    Invoked specifically for warning messages incurred inside of a tick(). + +

    public abstract void handleTickWarning(
      int error,
      String s,
      Viewer v
      );

    Parameters
    +
    error +
    The Win32 error code. Consult a Win32 reference for more information. +
    s +
    The warning message. +
    v +
    The Viewer object on which the error occurred. +
    +


    handleWarning

    +ErrorAndWarningReceiver Interface +

    Invoked when a warning occurs outside of the invocation of a tick(). + +

    public abstract void HandleWarning(
      int error,
      String s,
      Viewer v
      );

    Parameters
    +
    error +
    The Win32 error code. Consult a Win32 reference for more information. +
    s +
    The warning message. +
    v +
    The Viewer object on which the error occurred. + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0138.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0138.HTM new file mode 100644 index 0000000..4be677d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0138.HTM @@ -0,0 +1,196 @@ + + +EventCallbackObject Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --EventCallbackObject Interface +DirectAnimation Animated Header --EventCallbackObject Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ErrorAndWarningReceiver Interface
    +*Next Topic: FontStyleBvr Class
    +

    +

    +

    EventCallbackObject Interface

    +
    +
    public interface EventCallbackObject extends java.lang.Object{
    +    public abstract void invoke(Object object, BvrsToRun extraBvrsToRun);
    +}
    +
    +

    Used in conjunction with registerCallback to cause an external action when an event occurs in DirectAnimation for Java. Whenever that event occurs, the invoke method of the callback is called with the event data produced by that event. + +

    EventCallbackObject Methods

    +

    bullet1.gifinvoke
    +


    invoke

    +EventCallbackObject Interface +

    Used to cause an external action to occur when an event occurs in DirectAnimation for Java. + +

    public abstract void invoke(
      Object object,
      BvrsToRun extraBvrsToRun
      );

    Parameters
    +
    object +
    The object to be invoked. +
    extraBvrsToRun +
    Behaviors that are not part of the model. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0139.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0139.HTM new file mode 100644 index 0000000..f6b8cad --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0139.HTM @@ -0,0 +1,320 @@ + + +FontStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --FontStyleBvr Class +DirectAnimation Animated Header --FontStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: EventCallbackObject Interface
    +*Next Topic: GeometryBvr Class
    +

    +

    +

    FontStyleBvr Class

    +
    +
    public class FontStyleBvr extends Behavior {
    +
    +    // Methods
    +    public FontStyleBvr bold();
    +    public FontStyleBvr color(ColorBvr color);
    +    public FontStyleBvr family(StringBvr face);
    +    public FontStyleBvr italic();
    +    public FontStyleBvr size(NumberBvr points);
    +    public FontStyleBvr strikethrough();
    +    public FontStyleBvr textAntialiasing(double antiAliasing);
    +    public FontStyleBvr underline();
    +    public FontStyleBvr weight(NumberBvr weight);
    +
    +    public static FontStyleBvr newUninitBvr();
    +
    +

    The FontStyleBvr class is used to specify how strings will be rendered into images. These methods are similar to the HTML tags specifying the font face (called here a family), size, color and attributes (bold and italic). +

    +

    FontStyleBvr Methods

    +

    bullet1.gifbold
    +

    bullet1.gifcolor
    +

    bullet1.giffamily
    +

    bullet1.gifitalic
    +

    bullet1.gifsize
    +

    bullet1.gifstrikethrough
    +

    bullet1.giftextAntialiasing
    +

    bullet1.gifunderline
    +

    bullet1.gifweight
    +

    bullet1.gifnewUninitBvr
    +


    bold

    +FontStyleBvr Class +

    Specifies that, when the string is rendered into an image, it will be in bold. + +

    public FontStyleBvr bold( );

    Return Values
    +

    Returns the FontStyleBvr object. + + +


    color

    +FontStyleBvr Class +

    Specifies the color of the string when it is rendered into an image. Because this is a ColorBvr object, the color can vary over time. + +

    public FontStyleBvr color(
      ColorBvr color
      );

    Parameters
    +
    color +
    The ColorBvr object specifying the color of the string. +
    +
    Return Values
    +

    Returns the FontStyleBvr object. + + +


    family

    +FontStyleBvr Class +

    Specifies the font face that will be used when the image is rendered. Because this is a StringBvr object, the face can vary over time. + +

    public static FontStyleBvr family(
      StringBvr face
      );

    Parameters
    +
    face +
    The StringBvr object specifying the font face. This behavior can also be of type java.lang.String. +
    +
    Return Values
    +

    Returns the FontStyleBvr object. + + +


    italic

    +FontStyleBvr Class +

    Specifies that, when the string is rendered into an image, it will be italicized. + +

    public FontStyleBvr italic( );

    Return Values
    +

    Returns the FontStyleBvr object. + + +


    size

    +FontStyleBvr Class +

    Specifies the size of the font, in points. Because this is a NumberBvr object, the size can vary over time. This parameter can also be of type double. + +

    public FontStyleBvr size(
      NumberBvr points
      );

    Parameters
    +
    points +
    The NumberBvr object specifying the size of the font. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the FontStyleBvr object. + + +


    strikethrough

    +FontStyleBvr Class +

    Specifies that, when the string is rendered into an image, it will be struck through. + +

    public FontStyleBvr strikethrough( );

    Return Values
    +

    Returns the FontStyleBvr object. + + +


    textAntialiasing

    +FontStyleBvr Class +

    Determines whether the text will be antialiased. + +

    public FontStyleBvr textAntialiasing(
      double antiAliasing
      );

    Parameters
    +
    antiAliasing +
    A double that specifies whether or not the text will be antialiased. A 0 (the default value) means there is no antialiasing and a 1 means there is. +
    +
    Return Values
    +

    Returns the FontStyleBvr object. + + +


    underline

    +FontStyleBvr Class +

    Specifies that, when a string is rendered into an image, it will be underlined. + +

    public FontStyleBvr underline( );

    Return Values
    +

    Returns the FontStyleBvr object. + + +


    weight

    +FontStyleBvr Class +

    Specifies the thickness of the boldness of the font. This attribute can be thought of as an animated bold. Note that the font itself will have specific, discrete settings for the different weights. Varying this value will not, therefore, result in a continuous change but in a series of discrete changes. The FontStyleBvr.bold method always overrides this setting. + +

    public FontStyleBvr weight(
      NumberBvr weight
      );

    Parameters
    +
    weight +
    A NumberBvr object that specifies the thickness of the boldness of the font. The value can range from 0 (the thinnest) to 1 (the thickest). This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the FontStyleBvr object. + + +


    newUninitBvr

    +FontStyleBvr Class +

    This method allows you to refer to a FontStyleBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) + +

    public static FontStyleBvr newUninitBvr( );

    Return Values
    +

    Returns the FontStyleBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type FontStyleBvr. + +

    public static FontStyleBvr font(StringBvr face, NumberBvr size, ColorBvr color); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type FontStyleBvr. + +

    public final static FontStyleBvr defaultFont; + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0140.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0140.HTM new file mode 100644 index 0000000..b7abc30 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0140.HTM @@ -0,0 +1,448 @@ + + +GeometryBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --GeometryBvr Class +DirectAnimation Animated Header --GeometryBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: FontStyleBvr Class
    +*Next Topic: ImageBvr Class
    +

    +

    +

    GeometryBvr Class

    +
    +
    public class GeometryBvr extends Behavior {
    +
    +    // Constructor
    +    public GeometryBvr();
    +
    +    // Methods
    +    public Bbox3Bvr boundingBox();
    +    public GeometryBvr diffuseColor(ColorBvr col);
    +    public GeometryBvr lightAttenuation(NumberBvr const, NumberBvr linear, NumberBvr quadratic);
    +    public GeometryBvr lightColor(ColorBvr col);
    +    public GeometryBvr opacity(NumberBvr opac);
    +    public ImageBvr render(CameraBvr camera);
    +    public SoundBvr render(MicrophoneBvr mic);
    +    public GeometryBvr texture(ImageBvr image);
    +    public GeometryBvr transform(Transform3Bvr xf);
    +    public GeometryBvr undetectable();
    +       
    +    public static GeometryBvr newUninitBvr();
    +}
    +
    +

    The GeometryBvr class is a class of three-dimensional objects that includes surfaces, lights, sounds, their attributes, and/or combinations of these elements. Like other behaviors, the value of the elements of the geometry can change over time. + +

    In general, every geometry behavior is spatially infinite and of infinite resolution. Conceptually, each of the infinitely many points in the geometry has associated with it an opacity value, a color, a normal (used for lighting computations), a texture coordinate, a detectability value, and a single-channel sound emanating from that point (generally, this is silence). + +

    Surface geometry is either detectable or not. If a surface is detectable, the geometry fires a pick event whenever the cursor passes over a surface point. Neither lights nor sounds are detectable (or pickable). + +

    Light geometries include ambient lights, directional lights, point lights, and spotlights. Light geometries can be attributed with both color and distance attenuation. + +

    A texture in a geometry is an image, the points of which are mapped to the surface of the three-dimensional object represented by the geometry. If there is no surface in the geometry, the texture is ignored. + +

    A geometry can also be a sound. The sound is audible when the geometry is within the appropriate range of a microphone behavior. + +

    The bounding box query is used to construct and compose media, and different types of images and behaviors provide specific bounding boxes. This means, for example, that the bounding box of an image is not defined as the smallest axis-aligned, enclosing region of the non-transparent parts of an image. Instead, bounding boxes are defined on a per-operation basis. The emptyGeometry object, for example, has its own definition of a bounding box, defined below. + +

    For more information about behaviors, see the Behavior class. + +

    +

    GeometryBvr Methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    boundingBox +
    diffuseColor +
    lightAttenuation +
    lightColor +
    opacity +
    render(camera) +
    render(microphone) +
    texture +
    transform +
    undetectable +
    newUninitBvr +
    +


    boundingBox

    +GeometryBvr Class +

    Creates a bounding box behavior that defines the axis-aligned bounding box enclosing all non-transparent portions of the geometry behavior. + +

    public Bbox3Bvr boundingBox( );

    Return Values
    +

    Returns the Bbox3Bvr object. + + +


    diffuseColor

    +GeometryBvr Class +

    Specifies the diffuse color of the new geometry behavior. The diffuse color is the diffuse (or matte) reflective color of the surface. + +

    public GeometryBvr diffuseColor(
      ColorBvr col
      );

    Parameters
    +
    col +
    The ColorBvr object. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    By default, the diffuse color is white. The bounding box is the bounding box of the underlying geometry. + +

    This attribute overrides previous values. + +


    lightAttenuation

    +GeometryBvr Class +

    Creates a new geometry behavior in which any light sources have the given attenuation. The new attenuation is set to 1 / (const + linear ´ d + quadratic ´ d2) where d is the distance from the light to the object. + +

    public GeometryBvr lightAttenuation(
      NumberBvr const,
      NumberBvr linear,
      NumberBvr quadratic
      );

    Parameters
    +
    const, linear, and quadratic +
    The NumberBvr objects specifying the attenuation of a light source. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    By default, the attenuation coefficients are (1, 0, 0), which means no light attenuation. The bounding box is the bounding box of the underlying geometry. +

    An attenuation of (1, 1, 0) gives a linear attenuation that is useful for light falloff in a room. An attenuation of (1, 0, 1) gives a quadratic attenuation that simulates lights that are in the open, such as street lamps and headlights. This attribute overrides previous values. + +


    lightColor

    +GeometryBvr Class +

    Creates a new geometry behavior in which all embedded lights have the specified color. + +

    public GeometryBvr lightColor(
      ColorBvr col
      );

    Parameters
    +
    col +
    The ColorBvr object. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    By default, a light source is white. The bounding box is the bounding box of the underlying geometry. +

    This attribute overrides previous values. + +


    opacity

    +GeometryBvr Class +

    Sets the opacity value for all surfaces to the given number behavior. Opacity values can range from 0.0 to 1.0. +

    public GeometryBvr opacity(
      NumberBvr opac
      );

    Parameters
    +
    opac +
    The NumberBvr object representing the opacity value. The geometry is fully opaque if the value is 1, and fully transparent if the value is 0. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    If the opac parameter has a value outside the 0.0 to 1.0 range, the integer part of the value is discarded and only the fractional part is used. By default, the opacity is 1. + +

    This attribute composes values. The resulting opacity is the new value times the old value. + +


    render

    +GeometryBvr Class +

    Creates an image behavior that is a two-dimensional projection of this geometry behavior. The camera parameter defines how the geometry is projected into two dimensions. + +

    public ImageBvr render(
      CameraBvr camera
      );

    Parameters
    +
    camera +
    The CameraBvr object. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    The resulting image is infinite in extent. The bounding box of a rendered geometry is the axis-aligned extent of the projection of the three-dimensional bounding box onto the image plane. +


    render

    +GeometryBvr Class +

    Creates a sound behavior that represents the sound associated with this geometry behavior as detected by the given microphone. + +

    public SoundBvr render(
      MicrophoneBvr mic
      );

    Parameters
    +
    mic +
    The MicrophoneBvr object. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +


    texture

    +GeometryBvr Class +

    Creates a new geometry behavior by mapping the given image, as defined by the given image behavior, to the surfaces of the original geometry. + +

    public GeometryBvr texture(
      ImageBvr image
      );

    Parameters
    +
    image +
    The ImageBvr object. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    If the geometry has no surfaces, the texture is ignored. If the original geometry already has a texture, the new texture completely overlays the original. Texture maps have no effect when applied to a geometry that lacks texture coordinates. By default, a geometry has no texture. The bounding box is the bounding box of the underlying geometry. +

    This attribute overrides previous values. +


    transform

    +GeometryBvr Class +

    Creates a new geometry behavior that is the result of applying the given three-dimensional transformation to the original geometry behavior. + +

    public GeometryBvr transform(
      Transform3Bvr xf
      );

    Parameters
    +
    xf +
    The Transform3Bvr object. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    The transformation applies to all points in the geometry, including those associated with the positions and orientations of light sources, textures, and sounds. The bounding box of a transformed geometry is the axis-aligned box enclosing the box that is the result of applying the transformation to the underlying geometry. The following example rotates a red cube around the y-axis by PI/3 radians: + +

    //Get the cube (assume there is light)
    +GeometryBvr c0 = import("cube.wrl");
    +//Color it red
    +GeometryBvr c1 = c0.diffuseColor(red);
    +//Rotate it
    +GeometryBvr c2 = c1.transform(rotate(yVector3, toBvr(Math.PI/3)));
    +
    +

    This attribute composes values. +


    undetectable

    +GeometryBvr Class +

    Creates a new undetectable geometry behavior from the original geometry. An undetectable geometry means that, while the geometry is still as visible or as audible as before, any attempts to pick it are ignored. + +

    public GeometryBvr undetectable( );

    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    The undetectable method is useful for specifying which objects are detectable and which are not. For example, suppose a semi-transparent green sphere is used to simulate a glow around an object. Because this sphere encloses the object, the object itself would be unpickable. Instead, the pick information would always be for the sphere. Tagging the sphere as unpickable allows the object itself to be picked. This attribute overrides previous values. + +


    newUninitBvr

    +GeometryBvr Class +

    This method allows you to refer to an GeometryBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static GeometryBvr newUninitBvr( );

    Return Values
    +

    Returns the GeometryBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type GeometryBvr. + +

    public static GeometryBvr importGeometry(URL url); +

    public static GeometryBvr importGeometry(URL url, GeometryBvr geoStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size); +

    public static GeometryBvr soundSource(SoundBvr sound); +

    public static GeometryBvr spotLight(NumberBvr fullcone, NumberBvr cutoff); +

    public static GeometryBvr union(GeometryBvr g1, GeometryBvr g2); +

    public static GeometryBvr unionArray(GeometryBvr[], geometries); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type GeometryBvr. + +

    public final static GeometryBvr ambientLight; +

    public final static GeometryBvr directionalLight; +

    public final static GeometryBvr emptyGeometry; +

    public final static GeometryBvr pointLight; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0141.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0141.HTM new file mode 100644 index 0000000..3a352ab --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0141.HTM @@ -0,0 +1,369 @@ + + +ImageBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ImageBvr Class +DirectAnimation Animated Header --ImageBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: GeometryBvr Class
    +*Next Topic: JoinStyleBvr Class
    +

    +

    +

    ImageBvr Class

    +
    +
    public class ImageBvr extends Behavior {
    +    
    +    // Methods
    +    public Bbox2Bvr boundingBox();
    +    public ImageBvr clip(MatteBvr matte);
    +    public ImageBvr clipPolygon(Point2Bvr[] points);
    +    public ImageBvr crop(Point2Bvr minPt, Point2Bvr maxPt);
    +    public ImageBvr mapToUnitSquare();
    +    public ImageBvr opacity(NumberBvr opac);
    +    public ImageBvr tile();
    +    public ImageBvr transform(Transform2Bvr xf);
    +    public ImageBvr undetectable();
    +
    +    public static ImageBvr  newUninitBvr();
    +
    +        
    +}
    +
    +

    Creates an object that represents an image behavior. Much like a bitmap, an image is a two-dimensional picture composed of individual picture elements. Like other behaviors, however, the value of the picture elements can change over time. + +

    Every image behavior consists of an infinite set of two-dimensional points, each representing a picture element and each having color, opacity, and detectability attributes. Colors in an image are defined using color behaviors. Opacity values are number behaviors, and can range in value from 0 through 1, with 0 for fully transparent and 1 for fully opaque. Only points that are "non-transparent" have any visible effect when the image is output or combined with other images. + +

    Points in the image are either detectable or not. If a point is detectable, the image fires a pick event whenever the mouse passes over it. + +

    The bounding box operation is used to construct and compose media, and different types of images and behaviors provide specific bounding boxes. This means, for example, that the bounding box of an image is not defined as the smallest axis-aligned, enclosing region of the non-transparent parts of an image. Instead, bounding boxes are defined on a per-operation basis. This means, for example, that the clipPolygon method has its own definition of a bounding box, defined below. + +

    For more information about behaviors, see the Behavior class. + +

    +

    ImageBvr Methods

    +

    bullet1.gifboundingBox
    +

    bullet1.gifclip
    +

    bullet1.gifclipPolygon
    +

    bullet1.gifcrop
    +

    bullet1.gifmapToUnitSquare
    +

    bullet1.gifopacity
    +

    bullet1.giftile
    +

    bullet1.giftransform
    +

    bullet1.gifundetectable
    +

    bullet1.gifnewUninitBvr
    +


    boundingBox

    +ImageBvr Class +

    Creates a box behavior that defines the box that encloses all non-transparent portions of the image behavior. + +

    public Bbox2Bvr boundingBox( );

    Return Values
    +

    Returns the Bbox2Bvr object. + + +


    clip

    +ImageBvr Class +

    Creates a new image behavior by clipping the original image. The new image consists of the portion of the original image that is within the region(s) defined by the given matte behavior. + +

    public ImageBvr clip(
      MatteBvr matte
      );

    Parameters
    +
    matte +
    The MatteBvr object. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    The bounding box of an image clipped to a matte is the intersection of the matte's bounding box (the axis-aligned box that surrounds the matte), and the bounding box of the underlying image. +


    clipPolygon

    +ImageBvr Class +

    Creates a new image behavior by clipping the original image. The new image consists of the portion of the original image that is within the closed figure defined by the given point behaviors. + +

    public ImageBvr clipPolygon(
      Point2Bvr[] points
      );

    Parameters
    +
    points +
    The Point2Bvr object representing the endpoints of the line segments that define the figure. If the first and last points are not the same, these points are implicitly connected to close the figure. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    The bounding box is the intersection of the box surrounding the points of the polygon with the box of the underlying image. +


    crop

    +ImageBvr Class +

    Creates a new image behavior by cropping the original image. The new image consists of the portion of the original image that is within the region given by minPt and maxPt. + +

    public ImageBvr crop(
      Point2Bvr minPt,
      Point2Bvr maxPt
      );

    Parameters
    +
    minPt and maxPt +
    The Point2Bvr objects representing the lower-left and upper-right corners of the box enclosing the portion of the original image to use. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    The bounding box of a cropped image is the intersection of the crop box and the box of the underlying image. +


    mapToUnitSquare

    +ImageBvr Class +

    Creates an image that is mapped to the unit square. This is a square at coordinates [(0,0) (1,1)]. + +

    public ImageBvr mapToUnitSquare( );

    Remarks
    +

    This method is commonly used for images that will be textured because a geometry's texture coordinates generally span the unit square. It is also used for transforming an image into a space where it is easy to manipulate. + +


    opacity

    +ImageBvr Class +

    Creates an image behavior in which the opacity value for each point is set to the given number behavior. + +

    public ImageBvr opacity(
      NumberBvr opac
      );

    Parameters
    +
    opac +
    The NumberBvr object representing the opacity value. The image is fully opaque if the value is 1, and fully transparent if the value is 0. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    By default, an image's opacity is 1. The bounding box is simply the bounding box of the underlying image itself. Opacity values can range from 0.0 to 1.0. If the corresponding number behavior has a value outside this range, the integer part of the value is discarded and only the fractional part is used. +

    This attribute composes values. The resulting opacity is the new value times the old value. + +


    tile

    +ImageBvr Class +

    Creates a new image behavior that consists of the original image tiled (repeated) in all directions. The bounding box is the infinite bounding box. + +

    public ImageBvr tile( );

    Return Values
    +

    Returns the ImageBvr object. + + +


    transform

    +ImageBvr Class +

    Creates a new image behavior that is the result of applying the given transformation to the points in the original image behavior. + +

    public ImageBvr transform(
      Transform2Bvr xf
      );

    Parameters
    +
    xf +
    The Transform2Bvr object. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    As an example, you can double the size of the opaque portion of the image that is the result of applying a transformation that scales by 2. The bounding box of a transformed image is determined by applying the transform to the bounding box of the underlying image and then enclosing the resultant quadrilateral with an axis-aligned box. + +

    This attribute composes values. + +


    undetectable

    +ImageBvr Class +

    Creates a new undetectable image behavior from the original image. + +

    public ImageBvr undetectable( );

    Return Values
    +

    Returns the ImageBvr object. + + +


    newUninitBvr

    +ImageBvr Class +

    This method allows you to refer to an ImageBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static ImageBvr newUninitBvr( );

    Return Values
    +

    Returns the ImageBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type ImageBvr. + +

    public static ImageBvr gradientHorizontal(ColorBvr start, ColorBvr stop, NumberBvr fallOff); +

    public static ImageBvr gradientPolygon(Point2Bvr[] pts, ColorBvr[] colors); +

    public static ImageBvr gradientSquare(ColorBvr lowerLeft, ColorBvr upperLeft, ColorBvr upperRight, ColorBvr lowerRight); +

    public static ImageBvr hatchBackwardDiagonal(ColorBvr color, NumberBvr size); +

    public static ImageBvr hatchCross(ColorBvr color, NumberBvr size); +

    public static ImageBvr hatchDiagonalCross(ColorBvr color, NumberBvr size); +

    public static ImageBvr hatchForwardDiagonal(ColorBvr color, NumberBvr size); +

    public static ImageBvr hatchHorizontal(ColorBvr color, NumberBvr size); +

    public static ImageBvr hatchVertical(ColorBvr color, NumberBvr size); +

    public static ImageBvr importImage(URL url); +

    public static ImageBvr importImage(URL url, ImageBvr imgStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size); +

    public static ImageBvr importImageColorKey(URL url, ColorBvr red, ColorBvr green, ColorBvr blue); +

    public static ImageBvr importImageColorKey(URL url, ImageBvr imgStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size, ColorBvr red, ColorBvr green, ColorBvr blue); +

    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd); +

    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd); +

    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd, ImageBvr imgStandIn, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size); +

    public static ImageBvr overlay(ImageBvr i1, ImageBvr i2); +

    public static ImageBvr overlayArray(ImageBvr[] im); +

    public static ImageBvr radialGradientPolygon(ColorBvr inner, ColorBvr outer, Point2Bvr[] points, NumberBvr fallOff); +

    public static ImageBvr radialGradientRegularPoly(ColorBvr inner, ColorBvr outer, NumberBvr edges, NumberBvr fallOff); +

    public static ImageBvr radialGradientSquare(ColorBvr inner, ColorBvr outer, NumberBvr fallOff); +

    public static ImageBvr solidColorImage(ColorBvr col); +

    public static ImageBvr stringImage(StringBvr string, FontStyleBvr font); + + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type ImageBvr. + +

    public final static ImageBvr detectableEmptyImage; +

    public final static ImageBvr emptyImage; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0142.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0142.HTM new file mode 100644 index 0000000..f8d6b76 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0142.HTM @@ -0,0 +1,209 @@ + + +JoinStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --JoinStyleBvr Class +DirectAnimation Animated Header --JoinStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ImageBvr Class
    +*Next Topic: LineStyleBvr Class
    +

    +

    +

    JoinStyleBvr Class

    +
    +
    public class JoinStyleBvr extends Behavior {
    +    
    +    // Methods
    +    public static JoinStyleBvr newUninitBvr();
    +    
    +}
    +
    +

    Creates an object that represents a joinstyle behavior. The behavior defines the style (shape) of joint between intersecting line segments in a path. A joint is drawn only if the some portions of the segments do not touch or overlap at the common endpoint. In this case, the outside corners of the line segments are connected and the resulting enclosed area is filled with the same color as the line. + +

    You use the endstyle behavior with the join method of the LineStyleBvr object. + +

    +

    JoinStyleBvr Methods

    +

    bullet1.gifnewUninitBvr
    +


    newUninitBvr

    +JoinStyleBvr Class +

    This method allows you to refer to an JoinStyleBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static JoinStyleBvr newUninitBvr( );

    Return Values
    +

    Returns the JoinStyleBvr object. + + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type JoinStyleBvr. + +

    public final static JoinStyleBvr joinStyleBevel; +

    public final static JoinStyleBvr joinStyleMiter; +

    public final static JoinStyleBvr joinStyleRound; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0143.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0143.HTM new file mode 100644 index 0000000..b6fa92e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0143.HTM @@ -0,0 +1,308 @@ + + +LineStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --LineStyleBvr Class +DirectAnimation Animated Header --LineStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: JoinStyleBvr Class
    +*Next Topic: MatteBvr Class
    +

    +

    +

    LineStyleBvr Class

    +
    +
    public class LineStyleBvr extends Behavior {
    +
    +    //Methods
    +    public LineStyleBvr color(ColorBvr color);
    +    public LineStyleBvr detail();
    +    public LineStyleBvr dash(DashStyleBvr ds);
    +    public LineStyleBvr end(EndStyleBvr es);
    +    public LineStyleBvr join(JoinStyleBvr js);
    +    public LineStyleBvr lineAntialiasing(double antiAliasing);
    +    public LineStyleBvr width(NumberBvr width);
    +       
    +    public static LineStyleBvr newUninitBvr();
    +
    +}
    +
    +

    Creates an object that represents a linestyle behavior. The behavior defines the various line styles to use when drawing lines. These styles includes the shape of the end of a line, the shape of joints between intersecting lines, the width of the line, and whether the line is drawn with a continuous stroke or as a sequence of dashes. + +

    You use linestyle behaviors with the draw_path2 method of the Path2Bvr class. + +

    +

    LineStyleBvr Methods

    +

    bullet1.gifcolor
    +

    bullet1.gifdash
    +

    bullet1.gifdetail
    +

    bullet1.gifend
    +

    bullet1.gifjoin
    +

    bullet1.giflineAntialiasing
    +

    bullet1.gifwidth
    +

    bullet1.gifnewUninitBvr
    +


    color

    +LineStyleBvr Class +

    Determines the color of a LineStyleBvr object. The default color is black. + +

    public LineStyleBvr color(
      ColorBvr color
      );

    Parameters
    +
    color +
    The ColorBvr object that sets the color of the line. The default color is black.. +
    +
    Return Values
    +

    Returns the LineStyleBvr object. + + +


    dash

    +LineStyleBvr Class +

    Creates a linestyle behavior that is the result of applying the given dashstyle behavior to the existing linestyle. By default, the dashstyle is solid. + +

    public LineStyleBvr dash(
      DashStyleBvr ds
      );

    Parameters
    +
    ds +
    The DashStyleBvr object that represents the dashstyle behavior to apply. +
    +
    Return Values
    +

    Returns the LineStyleBvr object. + + +


    detail

    +LineStyleBvr Class +

    Creates a detail linestyle behavior from an existing linestyle. A detail linestyle is not changed by image scaling operations. By default, the detailstyle is on. This means it is the default style and it has no width. + +

    public LineStyleBvr detail( );

    Return Values
    +

    Returns the LineStyleBvr object. + + +

    Remarks
    +

    Any width or any endstyle or joinstyle behavior associated with the existing linestyle is discarded when creating the new line style. + +


    end

    +LineStyleBvr Class +

    Creates a linestyle behavior that is the result of applying the given endstyle to the existing linestyle. By default, the endstyle is flat. + +

    public LineStyleBvr end(
      EndStyleBvr es
      );

    Parameters
    +
    es +
    The EndStyleBvr object that represents the endstyle behavior to apply. +
    +
    Return Values
    +

    Returns the LineStyleBvr object. + + +


    join

    +LineStyleBvr Class +

    Creates a linestyle behavior that is the result of applying the given joinstyle behavior to the existing linestyle. By default, the joinstyle is beveled. + +

    public LineStyleBvr join(
      JoinStyleBvr js
      );

    Parameters
    +
    js +
    The JoinStyleBvr object that represents the joinstyle behavior to apply. +
    +
    Return Values
    +

    Returns the LineStyleBvr object. + + +


    lineAntialiasing

    +LineStyleBvr Class +

    Determines whether or not the line will be antialiased. + +

    public LineStyleBvr lineAntialiasing(
      double antiAliasing
      );

    Parameters
    +
    antiAliasing +
    A double that specifies whether or not there will be antialiasing. A 0 (the default value) means there is no antialiasing and a 1 means there is. +
    +
    Return Values
    +

    Returns the FontStyleBvr object. + + +


    width

    +LineStyleBvr Class +

    Creates a linestyle behavior from an existing linestyle by setting the width of line to the given amount, expressed in points. If the result is a line less than 1 pixel wide, the line will always be a detail line. + +

    public LineStyleBvr width(
      NumberBvr width
      );

    Parameters
    +
    width +
    The NumberBvr object that represents the width of the line, in points. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the LineStyleBvr object. + + +

    Remarks
    +

    This attribute overrides detail. + +


    newUninitBvr

    +LineStyleBvr Class +

    This method allows you to refer to an LineStyleBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static LineStyleBvr newUninitBvr( );

    Return Values
    +

    Returns the LineStyleBvr object. + + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type LineStyleBvr. + +

    public final static LineStyleBvr defaultLineStyle; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0144.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0144.HTM new file mode 100644 index 0000000..ae1e0ed --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0144.HTM @@ -0,0 +1,234 @@ + + +MatteBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --MatteBvr Class +DirectAnimation Animated Header --MatteBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: LineStyleBvr Class
    +*Next Topic: MicrophoneBvr Class
    +

    +

    +

    MatteBvr Class

    +
    +
    public class MatteBvr extends Behavior {
    +    
    +    // Methods
    +    public MatteBvr transform(Transform2Bvr xf);
    +
    +    public static MatteBvr newUninitBvr();
    +}
    +
    +

    Creates an object representing a matte behavior. A matte consists of a path and/or text, and is typically used to clip an image to the shape defined by the path and/or text. + +

    For more information about behaviors, see the Behavior class. +

    +

    MatteBvr Methods

    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    transform

    +MatteBvr Class +

    Creates a new matte behavior that is the result of applying the given transformation behavior to the original matte. The transformation affects each point behavior in the path that defines the matte. + +

    public MatteBvr transform(
      Transform2Bvr xf
      );

    Parameters
    +
    xf +
    The Transform2Bvr object. +
    +
    Return Values
    +

    Returns the MatteBvr object. + + +

    Remarks
    +

    This attribute composes values. + +


    newUninitBvr

    +MatteBvr Class +

    This method allows you to refer to an MatteBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static MatteBvr newUninitBvr( );

    Return Values
    +

    Returns the MatteBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type MatteBvr. + +

    public static MatteBvr difference(MatteBvr m1, MatteBvr m2); +

    public static MatteBvr fillMatte(Path2Bvr path); +

    public static MatteBvr intersect(MatteBvr m1, MatteBvr m2); +

    public static MatteBvr textMatte(StringBvr text, FontStyleBvr fs); +

    public static MatteBvr union(MatteBvr m1, MatteBvr m2); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type MatteBvr. + +

    public final static MatteBvr clearMatte; +

    public final static MatteBvr opaqueMatte; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0145.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0145.HTM new file mode 100644 index 0000000..596bf80 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0145.HTM @@ -0,0 +1,228 @@ + + +MicrophoneBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --MicrophoneBvr Class +DirectAnimation Animated Header --MicrophoneBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: MatteBvr Class
    +*Next Topic: Model Class
    +

    +

    +

    MicrophoneBvr Class

    +
    +
    public class MicrophoneBvr extends Behavior {
    +
    +    // Methods
    +    public MicrophoneBvr transform(Transform3Bvr xf);
    +
    +    public static MicrophoneBvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a microphone behavior. A microphone is used with the render method to produce spatialized sound behaviors from sounds embedded in a geometry. + +

    Every microphone has a location and an orientation in a three-dimensional space, and this location determines how a sound is detected. The closer a microphone is to the source of a sound, the louder and sooner the microphone detects that sound. The effect is to "spatialize" the sound, that is, make it seem that it was actually recorded in a three-dimensional space. + +

    For the default microphone, the location is the origin, looking in the negative z-direction, with positive y considered up. You can create new microphones at different locations by using the transform method. Microphones are omnidirectional. + +

    For more information about behaviors, see the Behavior class. + +

    +

    MicrophoneBvr Methods

    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    transform

    +MicrophoneBvr Class +

    Creates a new microphone behavior that is the result of applying the given transformation to the original microphone's location. + +

    public MicrophoneBvr transform(
      Transform3Bvr xf
      );

    Parameters
    +
    xf +
    The Transform3Bvr object. +
    +
    Return Values
    +

    Returns the MicrophoneBvr object. + + +

    Remarks
    +

    This attribute composes values. + +


    newUninitBvr

    +MicrophoneBvr Class +

    This method allows you to refer to an MicrophoneBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static MicrophoneBvr newUninitBvr( );

    Return Values
    +

    Returns the MicrophoneBvr object. + + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type MicrophoneBvr. + +

    public final static MicrophoneBvr defaultMicrophone; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0146.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0146.HTM new file mode 100644 index 0000000..8a54830 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0146.HTM @@ -0,0 +1,303 @@ + + +Model Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Model Class +DirectAnimation Animated Header --Model Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: MicrophoneBvr Class
    +*Next Topic: ModifiableBehavior Class
    +

    +

    +

    Model Class

    +
    +
    public abstract class Model extends Statics
    +{
    +    // Constructor
    +    public Model();
    +
    +    // Methods
    +    public ImageBvr getImage();
    +    public URL getImportBase();
    +    public SoundBvr getSound();
    +    public void setImage(ImageBvr im1);
    +    public void setImportBase(URL url);
    +    public void setSound(SoundBvr snd);
    +    
    +    public abstract void createModel(BvrsToRun extraBvrsToRun);
    +}
    +
    +

    The model is the set of behaviors actually sampled and displayed for an application. An instance of the Model class must be provided when constructing a DirectAnimation viewer to actually view a behavior. The Model class can also optionally set some model-specific preferences, such as rendering quality. The following example uses several methods included in the Model class to display the familiar phrase, "Hello, World." + +

    class MyModel extends Model {
    +  // Create the behaviors that will be displayed 
    +  public void createModel(BvrsToRun extraBvrsToRun) {
    +    FontStyleBvr fs = 
    +    ImageBvr tx = (toBvr("Hello, World"), fs);
    +    
    +    // set the image
    +    setImage(tx);
    +  }
    +}
    +
    +

    For more information about behaviors, see the Behavior class. + +

    +


    Model Constructor

    +Model Class +

    Creates an Model object. + +

    public Model( );
    +


    +

    Model Methods

    +

    bullet1.gifcreateModel
    +

    bullet1.gifgetImage
    +

    bullet1.gifgetImportBase
    +

    bullet1.gifgetSound
    +

    bullet1.gifsetImage
    +

    bullet1.gifsetImportBase
    +

    bullet1.gifsetSound
    +


    createModel

    +Model Class +

    Builds the behaviors to be viewed. + +

    public abstract void createModel(
      BvrsToRun extraBvrsToRun
      );

    Parameters
    +
    extraBvrsToRun +
    Behaviors that are not part of the model. +
    +
    Remarks
    +

    Behaviors are run as soon as the model is started, and are all started at time = startTime. The developer implements this method, constructs the behaviors, sets them in the model with setImage and setSound, and returns. It is up to the DirectAnimation system to invoke this method. + + +


    getImage

    +Model Class +

    Returns the model's image. + +

    public ImageBvr getImage( );

    Return Values
    +

    Returns the ImageBvr object. + + +


    getImportBase

    +Model Class +

    Retrieves the current base to use for constructing URLs. If imports occur outside of an instance of Model, the base must be passed. + +

    public URL getImportBase( );

    Return Values
    +

    Returns the base URL of the image. For more information about java.net.URL objects, consult a Java reference. + +

    Remarks
    +

    All paths should be fully qualified rather than relative. For example, instead of using: + +

    //This is wrong
    +importImage("../im1.jpg")
    +
    +

    use: + +

    //This is right
    +importImage(new URL(getImportBase(), "../im1.jpg"));
    +
    +


    getSound

    +Model Class +

    Return's the model's sound. + +

    public SoundBvr getSound( );

    Return Values
    +

    Returns the SoundBvr object. + + +


    setImage

    +Model Class +

    Establishes the image behavior displayed by DirectAnimation when this model is displayed. Typically called by the model inside of the createModel method provided by the application. + +

    public void setImage(
      ImageBvr im1
      );

    Parameters
    +
    im +
    The ImageBvr object. +
    +
    Remarks
    +

    See the ImageBvr class for information about image behaviors. +


    setImportBase

    +Model Class +

    Sets the default base URL for importing media files. Typically called in the DXMApplet and DXMCanvas classes to set the default base. It can also be explicitly used by the developer to set the default base. + +

    public void setImportBase(
      URL url
      );

    Parameters
    +
    url +
    The default base URL. For more information about java.net.URl objects, consult a Java reference. +
    +
    See Also
    +

    getImportBase. + +


    setSound

    +Model Class +

    Establishes the sound behavior displayed by DirectAnimation when this model is displayed. Typically called by the model inside of the createModel method provided by the application. + +

    public void setSound(
      SoundBvr snd
      );

    Parameters
    +
    snd +
    The SoundBvr object. +
    +
    Remarks
    +

    See the SoundBvr class for information about sound behaviors. +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0147.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0147.HTM new file mode 100644 index 0000000..5ca898f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0147.HTM @@ -0,0 +1,239 @@ + + +ModifiableBehavior Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ModifiableBehavior Class +DirectAnimation Animated Header --ModifiableBehavior Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Model Class
    +*Next Topic: ModelMakerApplet Class
    +

    +

    +

    ModifiableBehavior Class

    +
    +
    public class ModifiableBehavior extends java.lang.Object {
    +    // Constructor
    +    public ModifiableBehavior(Behavior initialBvr);
    +
    +    // Methods
    +    public Behavior getBvr();
    +    public void switchTo(Behavior newBvr);
    +}
    +
    +

    Provides an asynchronous method of modifying behaviors, often in response to externally generated application events. It is instanced with the new operator, is given an initial behavior, and results in a new behavior for the caller to use. Here is an example: + +

    //...Create a solid color image somewhere in program.
    +//It will have a switchable color.
    +ModifiableBehavior sw = new ModifiableBehavior(red);
    +ColorBvr col = (ColorBvr)(sw.getBvr());
    +ImageBvr im = solidColorImage(col);
    +
    +//...somewhere else in program...
    +sw.switchTo(blue);
    +
    +
    +

    Anywhere that col was used will turn from red to blue. In this example, sw contains an untyped Behavior which the example explicitly casts to a ColorBvr. This is necessary because ColorBvr is the type provided as the input to the construction of sw. Calls to switchTo must carry arguments of the same runtime behavior type as the one with which sw was constructed. The replacement behavior begins as soon after the transition occurs as is possible. + +

    +


    ModifiableBehavior Constructor

    +ModifiableBehavior Class +

    Use the new operator to construct an instance of the ModifiableBehavior class. Supply an initial behavior and a behavior context. + +

    public ModifiableBehavior(
      Behavior initialBvr
      );

    Parameters
    +
    initialBvr +
    The initial behavior. +
    + +
    +

    ModifiableBehavior Methods

    +

    bullet1.gifgetBvr
    +

    bullet1.gifswitchTo
    +


    getBvr

    +ModifiableBehavior Class +

    Extracts the Behavior component of the ModifiableBehavior object. + +

    public Behavior getBvr( );

    Return Values
    +

    Returns the Behavior object. + +

    Remarks
    +

    This behavior is subject to the switchTo invocations on the ModifiableBehavior object itself. + + +


    switchTo

    +ModifiableBehavior Class +

    When invoked, replaces the behavior generated by getBvr to the provided behavior. + +

    public void switchTo(
      Behavior newBvr
      );

    Parameters
    +
    newBvr +
    The behavior that is begun once the switchTo method is invoked. +
    +
    Remarks
    +

    Calls to this method must carry arguments of the same runtime behavior type as the one with which the ModifiableBehavior object was constructed. This is an immediate method, which means the new behavior is started when the transition occurs. + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0148.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0148.HTM new file mode 100644 index 0000000..4c1f0a4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0148.HTM @@ -0,0 +1,349 @@ + + +ModelMakerApplet Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ModelMakerApplet Class +DirectAnimation Animated Header --ModelMakerApplet Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ModifiableBehavior Class
    +*Next Topic: MontageBvr Class
    +

    +

    +

    ModelMakerApplet Class

    +
    +
    public abstract ModelMakerApplet extends java.lang.Object {
    +
    +    // Constructor
    +    public ModelMakerApplet();
    +
    +    // Methods
    +    public ImageBvr createBackgroundImage();
    +    public IDABehavior grabBackgroundImageComPtr();
    +    public IDABehavior grabImageComPtr();
    +    public IDABehavior grabSoundComPtr();
    +    public IDAView grabViewComPtr();
    +    public ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w);
    +    public synchronized void setModel(Model model);
    +}
    +
    +

    The ModelMakerApplet class is used for constructing models in Java and using them in windowless controls. It is similar to DXMApplet except that it exposes some COM interfaces and doesn't do any ticking (this is performed by the DirectAnimation control called DAViewer). Here is the basic syntax for using ModelMakerApplet: + +

    
    +public class MyTest extends ModelMakerApplet{
    +    public MyTest() { 
    +     setModel(new testModel());
    +   }
    +}
    +
    +

    The grabBackgroundImageComPtr, grabImageComPtr, grabSoundComPtr, and grabViewComPtr methods are used on the HTML page, and can be called either from VBScript or JScript. Here is an example of an HTML page that calls these methods, using VBScript: + +

    
    +<HTML>
    +<HEAD>
    +<TITLE>myTest Windowless Control</TITLE>
    +</HEAD>
    +
    +<body>
    +
    +<DIV ID=LAYOUT STYLE="position:absolute; left:0; top:0; width:600; height:400">
    +
    +<DIV ID=text STYLE="position:absolute; left:0; top:0; width:450; height:280">
    +<FONT SIZE=4 FACE="Verdana,Tahoma,Arial">       
    +This is standard HTML arranged using DIV tags and atop it we're going
    +to place our DirectX Animation windowless control.  
    +</FONT></DIV>
    +</DIV>
    +
    +
    +<DIV ID=controlDiv>
    +<OBJECT ID="DAViewer"
    +        STYLE="position:absolute; left:50; top:10;width:200;height:300" 
    +        CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D">
    +</OBJECT>
    +</DIV>
    +
    +</DIV>
    +
    +' The width and height parameters are placeholders. They need to be there to specify the applet and must be set to 1.
    +
    +<applet code=myTest.class codebase=. width=1 height=1 id=javaApp>
    +</applet>
    +
    +<script language="VBScript">
    +   sub window_onLoad
    +       set a = document.javaApp
    +
    +       ' Get model components out of the Java applet and give it to the
    +       ' control. 
    +       DAViewer.View            = a.grabViewComPtr
    +       DAViewer.Image           = a.grabImageComPtr
    +       DAViewer.BackgroundImage = a.grabBackgroundImageComPtr
    +       DAViewer.Sound           = a.grabSoundComPtr
    +
    +       ' Start the control viewing
    +       DAViewer.Start 
    +
    +   end sub
    +</script>
    +
    +</BODY>
    +</HTML>
    +
    +
    + +


    ModelMakerApplet Constructor

    +ModelMakerApplet Class +

    Creates an ModelMakerApplet object. + +

    public ModelMakerApplet( );
    +


    +

    ModelMakerApplet Methods

    +

    bullet1.gifcreateBackgroundImage
    +

    bullet1.gifgrabBackgroundImageComPtr
    +

    bullet1.gifgrabImageComPtr
    +

    bullet1.gifgrabSoundComPtr
    +

    bullet1.gifgrabViewComPtr
    +

    bullet1.gifregisterErrorAndWarningReceiver
    +

    bullet1.gifsetModel
    +


    createBackgroundImage

    +ModelMakerApplet Class +

    This method is used so that models constructed in Java, intended for windowless controls, will have a background image if they appear in a browser that does not support this feature. The model will then be displayed in its own window, as if it were in a standard DirectAnimation applet. Just as these models need a background image to be explicitly inserted, so do windowless applets if they are to degrade gracefully to a windowed display. + +

    public ImageBvr createBackgroundImage( );

    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    This method should be called within ModelMakerApplet and not during the createModel implementation. Here is an example: + +

    
    +public class myTest extends ModelMakerApplet {
    +
    +  public ImageBvr createBackgroundImage() {
    +      return Statics.solidColorImage(Statics.black);
    +  }
    +      setModel(new testModel());
    +}
    +
    +


    grabBackgroundImageComPtr

    +ModelMakerApplet Class +

    Retrieves the background image component of the model. This method is called from a script on the HTML page. + +

    public IDABehavior grabBackgroundImageComPtr( );

    Return Values
    +

    Returns the COM pointer to the IDABehavior interface (rather than an ImageBvr.) + + +


    grabImageComPtr

    +ModelMakerApplet Class +

    Retrieves the image component of the model. This method is called from a script on the HTML page. + +

    public IDABehavior grabImageComPtr( );

    Return Values
    +

    Returns the COM pointer to the IDABehavior interface (rather than an ImageBvr.) + + +


    grabSoundComPtr

    +ModelMakerApplet Class +

    Retrieves the sound component of the model. This method is called from a script on the HTML page. + +

    public IDABehavior grabSoundComPtr( );

    Return Values
    +

    Returns the COM pointer to the IDABehavior interface (rather than a SoundBvr.) + + +


    grabViewComPtr

    +ModelMakerApplet Class +

    Returns the viewer component of the model. This method is called from a script on the HTML page. + +

    public IDAView grabViewComPtr( );

    Return Values
    +

    Returns the COM pointer to the IDABehavior interface (rather than a Viewer.) + + +


    registerErrorAndWarningReceiver

    +ModelMakerApplet Class +

    Allows the application to register an object that will have its methods invoked upon asynchronous errors encountered when DirectAnimation media is controlling the frame loop or when recoverable errors occur when sampling and displaying the model. + +

    public ErrorAndWarningReceiver registerErrorAndWarningReceiver(
      ErrorAndWarningReceiver w
      );

    Parameters
    +
    w +
    The ErrorAndWarningReceiver object to be registered. +
    +
    Return Values
    +

    Returns the ErrorAndWarningReceiver object. + + +


    setModel

    +ModelMakerApplet Class +

    Sets the model that will be used. + +

    public synchronized void setModel(
      Model model
      );

    Parameters
    +
    model +
    The model to be set. +
    +
    Remarks
    +

    This method must be called before the model is started. Calling it after the model has started causes an exception. + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0149.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0149.HTM new file mode 100644 index 0000000..7756309 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0149.HTM @@ -0,0 +1,229 @@ + + +MontageBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --MontageBvr Class +DirectAnimation Animated Header --MontageBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ModelMakerApplet Class
    +*Next Topic: NumberBvr Class
    +

    +

    +

    MontageBvr Class

    +
    +
    public class MontageBvr extends Behavior {
    +
    +    // Methods
    +    public ImageBvr render();
    +
    +    public static MontageBvr newUninitBvr();
    +}
    +
    +

    A MontageBvr is an object that represents a montage behavior. A montage is a stack of images in which each image has an explicit depth. Images with larger Z-values are always in front of images with smaller z-values. Rendering a montage creates a new image behavior that is a composite of the images in the montage. The composite is created by overlaying the montage's images by order of depth and applying the same overlay rules as defined by the overlay method. + +

    Because the depth of an image in a montage can vary over time, rendering the montage at different points in time can produce different the images in different orders. + +

    For more information about behaviors, see the Behavior class. + +

    +

    MontageBvr Methods

    +

    bullet1.gifrender
    +

    bullet1.gifnewUninitBvr
    +


    render

    +MontageBvr Class +

    Creates an image behavior that consists of a composite of all images in the montage behavior. + +

    public ImageBvr render( )

    Return Values
    +

    Returns the ImageBvr object. + +

    Remarks
    +

    The composite is created by overlaying the montage's images in order of Z-values, with the largest Z-value on top, and applying the same overlay rules as defined by the overlay method. If two images have the same depth, they are layered on top of each other in the order in which they were added to the montage. The bounding box of a rendered montage is simply the union of the bounding boxes of all the images comprising that montage. + + +


    newUninitBvr

    +MontageBvr Class +

    This method allows you to refer to an MontageBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static MontageBvr newUninitBvr( );

    Return Values
    +

    Returns the MontageBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type MontageBvr. + +

    public static MontageBvr imageMontage(ImageBvr image, NumberBvr depth); +

    public static MontageBvr union(MontageBvr m1, MontageBvr m2); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type MontageBvr. + +

    public final static MontageBvr emptyMontage; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0150.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0150.HTM new file mode 100644 index 0000000..54fecfa --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0150.HTM @@ -0,0 +1,304 @@ + + +NumberBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --NumberBvr Class +DirectAnimation Animated Header --NumberBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: MontageBvr Class
    +*Next Topic: PairObject Class
    +

    +

    +

    NumberBvr Class

    +
    +
    public class NumberBvr extends Behavior {
    +    
    +    // Methods
    +    public Object extract();
    +    public StringBvr toString(double a);
    +    public StringBvr toString(NumberBvr a);
    +
    +    public static NumberBvr  newUninitBvr();
    +}
    +
    +

    Creates an object that represents a number behavior. At any given time, the value of the behavior is a floating point number. + +

    For more information about behaviors, see the Behavior class. + +

    +

    NumberBvr Methods

    + + + + + + + + + + + + + + + +
    extract +
    toString(double) +
    toString(NumberBvr) +
    newUninitBvr +
    +


    extract

    +NumberBvr Class +

    Extracts the value of behavior, returning a Java object. The behavior must have a constant value. + +

    public Object extract( );

    Return Values
    +

    Returns a Java object. For more information about java.lang.Object objects, consult a Java reference. + + +


    toString

    +NumberBvr Class +

    Converts a double to a StringBvr. + +

    public StringBvr toString(
      double a
      );

    Parameters
    +
    a +
    The double representing the number of digits to use after the decimal point. +
    +
    Return Values
    +

    Returns the StringBvr object. + + +


    toString

    +NumberBvr Class +

    Converts a NumberBvr to a StringBvr. + +

    public StringBvr toString(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object representing the number of digits to use after the decimal point. +
    +
    Return Values
    +

    Returns the StringBvr object. + + +


    newUninitBvr

    +NumberBvr Class +

    This method allows you to refer to an NumberBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static NumberBvr newUninitBvr( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant for objects of type NumberBvr. + +

    public static NumberBvr abs(NumberBvr a); +

    public static NumberBvr acos(NumberBvr a); +

    public static NumberBvr add(NumberBvr a, NumberBvr b); +

    public static NumberBvr asin(NumberBvr a); +

    public static NumberBvr atan(NumberBvr a); +

    public static NumberBvr atan2(NumberBvr a, NumberBvr b); +

    public static NumberBvr bSpline(int degree, NumberBvr[] knots, NumberBvr[] control_elements, NumberBvr[] weights NumberBvr evaluation); +

    public static NumberBvr ceiling(NumberBvr a); +

    public static NumberBvr cos(NumberBvr a); +

    public static NumberBvr degreesToRadians(NumberBvr a); +

    public static NumberBvr derivative(NumberBvr a); +

    public static NumberBvr div(NumberBvr a, NumberBvr b); +

    public static BooleanBvr eq(NumberBvr a, NumberBvr b); +

    public static NumberBvr exp(NumberBvr a); +

    public static NumberBvr floor(NumberBvr a); +

    public static BooleanBvr gt(NumberBvr a, NumberBvr b); +

    public static BooleanBvr gte(NumberBvr a, NumberBvr b); +

    public static NumberBvr integral(NumberBvr a); +

    public static NumberBvr interpolate(NumberBvr from, NumberBvr to, NumberBvr duration); +

    public static NumberBvr ln(NumberBvr a); +

    public static NumberBvr log10(NumberBvr a); +

    public static BooleanBvr lt(NumberBvr a, NumberBvr b); +

    public static BooleanBvr lte(NumberBvr a, NumberBvr b); +

    public static NumberBvr mod(NumberBvr a, NumberBvr b); +

    public static NumberBvr mul(NumberBvr a, NumberBvr b); +

    public static BooleanBvr ne(NumberBvr a, NumberBvr b); +

    public static NumberBvr neg(NumberBvr a); +

    public static NumberBvr pow(NumberBvr a, NumberBvr b); +

    public static NumberBvr radiansToDegrees(NumberBvr a); +

    public static NumberBvr round(NumberBvr a); +

    public static NumberBvr seededRandom(double seed); +

    public static NumberBvr sin(NumberBvr a); +

    public static NumberBvr slowInSlowOut(NumberBvr from, NumberBvr to, NumberBvr duration, NumberBvr acceleration) +

    public static NumberBvr sqrt(NumberBvr a); +

    public static NumberBvr sub(NumberBvr a, NumberBvr b); +

    public static NumberBvr tan(NumberBvr a); +

    public static NumberBvr toBvr(double a); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant for objects of type NumberBvr. + +

    public final static NumberBvr globalTime; +

    public final static NumberBvr localTime; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0151.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0151.HTM new file mode 100644 index 0000000..c0f8517 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0151.HTM @@ -0,0 +1,224 @@ + + +PairObject Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --PairObject Class +DirectAnimation Animated Header --PairObject Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: NumberBvr Class
    +*Next Topic: Path2Bvr Class
    +

    +

    +

    PairObject Class

    +
    +
    public class PairObject extends java.lang.Object
    +{
    +    // Constructor
    +    public PairObject(Object a, Object b);
    +
    +    // Methods
    +    public Object getFirst();
    +    public Object getSecond();
    +}
    +
    +

    Used in conjunction with the andEvent and the getPickEvent methods. The andEvent method creates a third event from two simultaneously occurring events. It returns a PairObject whose first member is the event data returned by the first event and whose second member is the data returned by the second event. The getPickEvent method returns a PairObject whose first member is the point of intersection and whose second member is a vector that is perpendicular to the surface. Note that, unlike arrays, a PairObject can contain two objects of different types. + +

    +


    PairObject Constructor

    +PairObject Class +

    Constructs a PairObject object. Note that this is not a behavior. + +

    public PairObject(
      Object a,
      Object b
      );

    Parameters
    +
    a +
    The first member of the PairObject. +
    b +
    The second member of the PairObject. +
    + +
    +

    PairObject Methods

    +

    bullet1.gifgetFirst
    +

    bullet1.gifgetSecond
    +


    getFirst

    +PairObject Class +

    Returns the first object of the PairObject. + +

    public Object getFirst( );

    Return Values
    +

    Returns the object that is the first member of the PairObject. + + +


    getSecond

    +PairObject Class +

    Returns the second object of the PairObject. + +

    public Object getSecond( );

    Return Values
    +

    Returns the object that is the second member of the PairObject. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0152.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0152.HTM new file mode 100644 index 0000000..7808505 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0152.HTM @@ -0,0 +1,293 @@ + + +Path2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Path2Bvr Class +DirectAnimation Animated Header --Path2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: PairObject Class
    +*Next Topic: PickableGeometry Class
    +

    +

    +

    Path2Bvr Class

    +
    +
    public class Path2Bvr extends Behavior {
    +    
    +    // Methods
    +    public Bbox2Bvr boundingBox(LineStyleBvr style);
    +    public Path2Bvr close();
    +    public ImageBvr draw(LineStyleBvr ls);
    +    public ImageBvr fill(LineStyleBvr ls, ImageBvr im );
    +    public Path2Bvr transform(Transform2Bvr xf);
    +
    +    public static Path2Bvr newUninitBvr();
    +
    +}
    +
    +

    Creates an object that represents a path behavior for two-dimensional space. A path behavior consists of a sequence of two-dimensional point behaviors and is typically used to draw images consisting of line segments or to define borders for geometric shapes. + +

    For more information about behaviors, see the Behavior class. + +

    +

    Path2Bvr Methods

    +

    bullet1.gifboundingBox
    +

    bullet1.gifclose
    +

    bullet1.gifdraw
    +

    bullet1.giffill
    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    boundingBox

    +Path2Bvr Class +

    Creates a Path2Bvr object that is a visible bounding box. + +

    public Bbox2Bvr boundingBox(
      LineStyleBvr style
      );

    Parameters
    +
    style +
    The LineStyleBvr object that defines the line style of the path. This argument is ignored. The linestyle is always the default linestyle and has a width of 0. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    close

    +Path2Bvr Class +

    Adds a line segment from the end of the path to the start. This method is useful for animating closed regions. + +

    public Path2Bvr close( );

    Return Values
    +

    Returns the Path2Bvr object. + + +


    draw

    +Path2Bvr Class +

    Renders the Path2Bvr object into an ImageBvr object. The image is unfilled, which means only the outline is rendered. + +

    public ImageBvr draw(
      LineStyleBvr ls
      );

    Parameters
    +
    ls +
    The LineStyleBvr used to render the image. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    fill

    +Path2Bvr Class +

    Renders the Path2Bvr object into an ImageBvr object. The ls argument specifies the LineStyleBvr that is used to draw the outline. The im parameter specifies the image used to fill in the new ImageBvr object. + +

    public ImageBvr fill(
      LineStyleBvr ls,
      ImageBvr im );

    Parameters
    +
    ls +
    The LineStyleBvr object used to draw the path. +
    im +
    The ImageBvr object used as the fill pattern. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    transform

    +Path2Bvr Class +

    Creates a new path behavior that is the result of applying the given transformation behavior to the points in the original path behavior. + +

    public Path2Bvr transform(
      Transform2Bvr xf
      );

    Parameters
    +
    a +
    The Transform2Bvr object representing the transformation to apply to the original path. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +

    Remarks
    +

    This attribute composes values. + +


    newUninitBvr

    +Path2Bvr Class +

    This method allows you to refer to an Path2Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Path2Bvr newUninitBvr( );

    Return Values
    +

    Returns the Path2Bvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant for objects of type Path2Bvr. + +

    public static Path2Bvr arc(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, NumberBvr arcHeight); +

    public static Path2Bvr arcDegrees(double startAngle, double endAngle, double arcWidth, double arcHeight); +

    public static Path2Bvr concat(Path2Bvr p1, Path2Bvr p2); +

    public static Path2Bvr concatArray(Path2Bvr[] paths); +

    public static Path2Bvr cubicBSplinePath(Point2Bvr[], NumberBvr[]); +

    public static Path2Bvr line(Point2Bvr p1, Point2Bvr p2); +

    public static Path2Bvr oval(NumberBvr width, NumberBvr height) +

    public static Path2Bvr pie(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, NumberBvr arcHeight); +

    public static Path2Bvr pieDegrees(double startAngle, double endAngle, double arcWidth, double arcHeight); +

    public static Path2Bvr polydrawPath(Point2Bvr[] points, NumberBvr[] codes); +

    public static Path2Bvr polyline(Point2Bvr[] points); +

    public static Path2Bvr ray(Point2Bvr p); +

    public static Path2Bvr rect(NumberBvr width, NumberBvr height); +

    public static Path2Bvr roundRect(NumberBvr width, NumberBvr height, NumberBvr arcWidth, NumberBvr arcHeight); +

    public static Path2Bvr stringPath(StringBvr string, FontStyleBvr fs); + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0153.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0153.HTM new file mode 100644 index 0000000..9bdc2d2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0153.HTM @@ -0,0 +1,228 @@ + + +PickableGeometry Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --PickableGeometry Class +DirectAnimation Animated Header --PickableGeometry Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Path2Bvr Class
    +*Next Topic: PickableImage Class
    +

    +

    +

    PickableGeometry Class

    +
    +
    public class PickableGeometry extends java.lang.Object {
    +    // Constructor
    +    public PickableGeometry(GeometryBvr geo);
    +
    +    // Method
    +    public GeometryBvr getGeometryBvr();
    +    public DXMEvent getPickEvent();
    +}
    +
    +

    Creates an object representing a pickable geometry behavior. The behavior is identical to a geometry behavior except that an event occurs whenever the mouse pointer is "in" the geometry. + +

    Applets typically use the event returned by the getPickEvent method to set an event handler or to create a reactive behavior with the until or untilNotify method. + +

    When the pick event occurs, the event data is a PairObject object. The first element is a Point3Bvr object representing the intersection point, and the second element is a Vector3Bvr object that is a time-varying vector. The vector gives the model-coordinate offset to the point that (from the camera's image plane) is in the plane perpendicular to the viewing direction, and is under the two-dimensional mouse's location. + +

    +


    PickableGeometry Constructor

    +PickableGeometry Class +

    Creates a pickable GeometryBvr object. + +

    public PickableGeometry(
      GeometryBvr geo
      );

    Parameters
    +
    geo +
    A new instance of a GeometryBvr that is pickable. +
    + +
    +

    PickableGeometry Methods

    +

    bullet1.gifgetGeometryBvr
    +

    bullet1.gifgetPickEvent
    +


    getGeometryBvr

    +PickableGeometry Class +

    Returns the GeometryBvr object. + +

    public GeometryBvr getGeometryBvr( );

    Return Values
    +

    Returns the GeometryBvr object. + + +


    getPickEvent

    +PickableGeometry Class +

    Creates an event for the pickable geometry behavior. + +

    public DXMEvent getPickEvent( );

    Return Values
    +

    Returns a DXMEvent object. Its data is a PairObject. The first member is the intersection point that is in the plane perpendicular to the viewing direction and is under the mouse. The second member is a time-varying vector that gives the model-coordinate offset to the intersection point. Each sample taken while the mouse is over the object returns a new point and a new time-varying vector. Each time-varying vector tracks the mouse, relative to the associated intersection point. + +

    Remarks
    +

    Use this event to set an event handler or create a reactive behavior with the until or untilNotify method. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0154.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0154.HTM new file mode 100644 index 0000000..fa305fe --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0154.HTM @@ -0,0 +1,229 @@ + + +PickableImage Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --PickableImage Class +DirectAnimation Animated Header --PickableImage Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: PickableGeometry Class
    +*Next Topic: Point2Bvr Class
    +

    +

    +

    PickableImage Class

    +
    +
    public class PickableImage extends java.lang.Object {
    +    // Constructor
    +    public PickableImage(ImageBvr im);
    +
    +    // Methods
    +    public ImageBvr getImageBvr();
    +    public DXMEvent getPickEvent();
    +}
    +
    +

    Creates an object representing a pickable image behavior. The behavior is identical to an image behavior except that an event occurs whenever the mouse pointer is "in" the image. + +

    Applets typically use the event returned by the getPickEvent method to set an event handler or to create a reactive behavior with the until or untilNotify method. + +

    When the pick event occurs, the event data is a DXMEvent object. The first element is a Point2Bvr object representing the intersection point, and the second element is a Vector2Bvr object that is perpendicular to the surface. + +

    +


    PickableImage Constructor

    +PickableImage Class +

    Creates a pickable ImageBvr object that, depending on the value of bool, either is or is not pickable when there are other images between it and the mouse. + +

    public PickableImage(
      ImageBvr im,
      bool
      );

    Parameters
    +
    im +
    A new instance of the ImageBvr that is pickable. +
    bool +
    Determines whether the image is pickable where occluded. (This means that the pickable image will still get the pick event even if the mouse is on an occluding image.) The default is false, which means the image is not pickable where occluded. It isn't necessary to include the false value in the arguments. If true, the image is pickable where occluded. The true value must be included in the argument list. +
    + +
    +

    PickableImage Methods

    +

    bullet1.gifgetImageBvr
    +

    bullet1.gifgetPickEvent
    +


    getImageBvr

    +PickableImage Class +

    Returns the ImageBvr object. + +

    public ImageBvr getImageBvr( );

    Return Values
    +

    Returns the ImageBvr object. + + +


    getPickEvent

    +PickableImage Class +

    Creates an event for the pickable image behavior. + +

    public DXMEvent getPickEvent( );

    Return Values
    +

    Returns a DXMEvent object. Its data is a PairObject. The first member is the intersection point that is in the plane perpendicular to the viewing direction and is under the mouse. The second member is a time-varying vector that gives the model-coordinate offset to the intersection point. Each sample taken while the mouse is over the object returns a new point and a new time-varying vector. Each time-varying vector tracks the mouse, relative to the associated intersection point. + +

    Remarks
    +

    Use this event to set an event handler or create a reactive behavior with the until or untilNotify method. + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0155.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0155.HTM new file mode 100644 index 0000000..b3c92bc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0155.HTM @@ -0,0 +1,291 @@ + + +Point2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Point2Bvr Class +DirectAnimation Animated Header --Point2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: PickableImage Class
    +*Next Topic: Point3Bvr Class
    +

    +

    +

    Point2Bvr Class

    +
    +
    public class Point2Bvr extends Behavior {
    +        
    +    // Methods
    +    public NumberBvr  getPolarCoordLength();
    +    public NumberBvr  getPolarCoordAngle();
    +    public NumberBvr  getX();
    +    public NumberBvr  getY();
    +    public Point2Bvr  transform(Transform2Bvr xf);
    +        
    +    public static Point2Bvr  newUninitBvr();
    +}
    +
    +

    Creates an object that represents a two-dimensional point behavior. At any given time, the value of the behavior is a point, representing a location in a plane or on the screen. Each point has a pair of coordinate values that define the point's location relative to a fixed point called the origin. These coordinate values are given as either Cartesian coordinates (x,y) or polar coordinates (XY angle,length) when the point behavior is created. + +

    Because coordinate values are number behaviors (NumberBvr objects), the location of a point behavior may change over time as the number behaviors change. For more information about behaviors, see the Behavior class and the Point3Bvr class. + +

    +

    Point2Bvr Methods

    +

    bullet1.gifgetPolarCoordAngle
    +

    bullet1.gifgetPolarCoordLength()
    +

    bullet1.gifgetX
    +

    bullet1.gifgetY
    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    getPolarCoordAngle

    +Point2Bvr Class +

    Creates a number behavior that represents the counter-clockwise angular displacement, in radians, relative to the positive x-axis, of the point behavior. The range is [-Pi, +Pi]. + +

    public NumberBvr getPolarCoordAngle( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getPolarCoordLength, point2Polar + +


    getPolarCoordLength()

    +Point2Bvr Class +

    Creates a number behavior that represents the length (or magnitude) of the vector. + +

    public NumberBvr getPolarCoordLength( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getPolarCoordAngle, point2Polar + +


    getX

    +Point2Bvr Class +

    Creates a number behavior that represents the x coordinate of this point behavior. + +

    public NumberBvr getX( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getY, point2 + +


    getY

    +Point2Bvr Class +

    Creates a number behavior that represents the y coordinate of this point behavior. + +

    public NumberBvr getY( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getX, point2 + +


    transform

    +Point2Bvr Class +

    Creates a new two-dimensional point behavior that is the result of applying the given transformation to the original point behavior. + +

    public Point2Bvr transform(
      Transform2Bvr xf
      );

    Parameters
    +
    xf +
    The Transform2Bvr object. +
    +
    Return Values
    +

    Returns the Point2Bvr object. + + +

    Remarks
    +

    This attribute composes values. + +


    newUninitBvr

    +Point2Bvr Class +

    This method allows you to refer to an Point2Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Point2Bvr newUninitBvr( );

    Return Values
    +

    Returns the Point2Bvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type Point2Bvr. + +

    public static Point2Bvr add(Point2Bvr pt, Vector2Bvr vec); +

    public static Point2Bvr bSpline(int degree, NumberBvr[] knots, Point2Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation); +

    public static Vector2Bvr derivative(Point2Bvr pt); +

    public static NumberBvr distance(Point2Bvr p1, Point2Bvr p2); +

    public static NumberBvr distanceSquared(Point2Bvr p1, Point2Bvr p2); +

    public static Point2Bvr point2(NumberBvr x, NumberBvr y); +

    public static Point2Bvr point2Polar(NumberBvr XYangle, NumberBvr length); +

    public static Vector2Bvr sub(Point2Bvr p1, Point2Bvr p2); +

    public static Point2Bvr sub(Point2Bvr pt, Vector2Bvr vec); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type Point2Bvr. + +

    public final static Point2Bvr mousePosition; +

    public final static Point2Bvr origin2; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0156.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0156.HTM new file mode 100644 index 0000000..f808c20 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0156.HTM @@ -0,0 +1,330 @@ + + +Point3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Point3Bvr Class +DirectAnimation Animated Header --Point3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Point2Bvr Class
    +*Next Topic: Preferences Class
    +

    +

    +

    Point3Bvr Class

    +
    +
    public class Point3Bvr extends Behavior {
    +
    +    // Methods
    +    public NumberBvr getSphericalCoordLength();
    +    public NumberBvr getSphericalCoordXYAngle();
    +    public NumberBvr getSphericalCoordYZAngle();
    +    public NumberBvr getX();
    +    public NumberBvr getY();
    +    public NumberBvr getZ();
    +    public Point2Bvr project(CameraBvr camera)
    +    public Point3Bvr transform(Transform3Bvr xf);
    +    
    +    public static Point3Bvr  newUninitBvr();
    +}
    +
    +

    Creates an object that represents a three-dimensional point behavior. At any given time, the value of the behavior is a point, representing a location in a three-dimensional space. Each point has a triplet of coordinate values that define the point's location relative to a fixed point called the origin. These coordinate values are given as either Cartesian coordinates (x,y, z) or spherical coordinates (XY angle,YZ angle,length) when the point behavior is created. + +

    Because coordinate values are number behaviors (NumberBvr objects), the location of a point behavior may change over time as the number behaviors change. For more information about behaviors, see the Behavior class and the Point2Bvr class. + +

    +

    Point3Bvr Methods

    +

    bullet1.gifgetSphericalCoordLength
    +

    bullet1.gifgetSphericalCoordXYAngle
    +

    bullet1.gifgetSphericalCoordYZAngle
    +

    bullet1.gifgetX
    +

    bullet1.gifgetY
    +

    bullet1.gifgetZ
    +

    bullet1.gifproject
    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    getSphericalCoordLength

    +Point3Bvr Class +

    Returns the NumberBvr object that represents the length (or magnitude) of the vector. + +

    public NumberBvr getSphericalCoordLength( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getSphericalCoordXYAngle, getSphericalCoordYZAngle, point3Spherical + +


    getSphericalCoordXYAngle

    +Point3Bvr Class +

    Returns the NumberBvr object that should more properly be thought of as an XZ angle. For positive values, it is the counter-clockwise angle, in radians, of the point in the XZ plane. When the angle is 0, the point lies on the z-axis. The range is [-Pi, +Pi]. + +

    public NumberBvr getSphericalCoordXYAngle( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getSphericalCoordYZAngle, getSphericalCoordLength, point3Spherical + +


    getSphericalCoordYZAngle

    +Point3Bvr Class +

    Returns the NumberBvr object that should more properly be thought of as an XY angle. For positive values, it is the counter-clockwise angle, in radians, going from the XZ-plane towards the positive y-ray. When the angle is 0, the point lies on the x-axis. The range is [-Pi/2, +Pi/2]. + +

    public NumberBvr getSphericalCoordYZAngle( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getSphericalCoordXYAngle, getSphericalCoordLength, point3Spherical + +


    getX

    +Point3Bvr Class +

    Creates a number behavior that represents the x coordinate of this point behavior. + +

    public NumberBvr getX( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getY, getZ, point3 + +


    getY

    +Point3Bvr Class +

    Creates a number behavior that represents the y coordinate of this point behavior. + +

    public NumberBvr getY( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getX, getZ, point3 + +


    getZ

    +Point3Bvr Class +

    Creates a number behavior that represents the z coordinate of this point behavior. + +

    public NumberBvr getZ( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getX, getY, point3 + +


    project

    +Point3Bvr Class +

    Returns the two-dimensional point behavior of the projection of the three-dimensional point onto the image plane, via the given camera behavior. + +

    public Point2Bvr project(
      CameraBvr camera
      );

    Parameters
    +
    camera +
    The CameraBvr object projecting the three-dimensional point onto the image plane. +
    +
    Return Values
    +

    Returns the Point2Bvr object. + + +


    transform

    +Point3Bvr Class +

    Creates a new three-dimensional point behavior that is the result of applying the given transformation to the original point behavior. + +

    public Point3Bvr transform(
      Transform3Bvr xf
      );

    Parameters
    +
    xf +
    The Transform3Bvr object. +
    +
    Return Values
    +

    Returns the Point3Bvr object. + + +

    Remarks
    +

    This attribute composes values. + +


    newUninitBvr

    +Point3Bvr Class +

    This method allows you to refer to an Point3Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Point3Bvr newUninitBvr( );

    Return Values
    +

    Returns the Point3Bvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type Point3Bvr. + +

    public static Point3Bvr add(Point3Bvr pt, Vector3Bvr vec); +

    public static Point3Bvr bSpline(int degree, NumberBvr[] knots, Point3Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation); +

    public static Vector3Bvr derivative(Point3Bvr pt); +

    public static NumberBvr distance(Point3Bvr p1, Point3Bvr p2); +

    public static NumberBvr distanceSquared(Point3Bvr p1, Point3Bvr p2); +

    public static Point3Bvr point3(NumberBvr x, NumberBvr y, NumberBvr z); +

    public static Point3Bvr point3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length); +

    public static Vector3Bvr sub(Point3Bvr p1, Point3Bvr p2); +

    public static Point3Bvr sub(Point3Bvr pt, Vector3Bvr vec); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type Point3Bvr. + +

    public final static Point3Bvr origin3; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0157.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0157.HTM new file mode 100644 index 0000000..6a7c991 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0157.HTM @@ -0,0 +1,422 @@ + + +Preferences Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Preferences Class +DirectAnimation Animated Header --Preferences Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Point3Bvr Class
    +*Next Topic: PropertyDispatcher Class
    +

    +

    +

    Preferences Class

    +
    +
    public class Preferences extends java.lang.Object{
    +
    +    // Fields
    +    public final static String COLOR_KEY_BLUE;
    +    public final static String COLOR_KEY_GREEN;
    +    public final static String COLOR_KEY_RED;
    +    public final static String DITHERING;
    +    public final static String ENGINE_OPTIMIZATIONS;
    +    public final static String FILL_MODE;
    +    public final static int    FILL_MODE_POINT;
    +    public final static int    FILL_MODE_SOLID;
    +    public final static int    FILL_MODE_WIREFRAME;
    +    public final static String MAX_FRAMES_PER_SEC;
    +    public final static String OVERRIDE_APPLICATION_PREFERENCES;
    +    public final static String PERSPECTIVE_CORRECT;
    +    public final static String RGB_LIGHTING_MODE;
    +    public final static String SHADE_MODE;
    +    public final static int    SHADE_MODE_FLAT;
    +    public final static int    SHADE_MODE_GOURAUD;
    +    public final static int    SHADE_MODE_PHONG;
    +    public final static String TEXTURE_QUALITY;
    +    public final static int    TEXTURE_QUALITY_LINEAR;
    +    public final static int    TEXTURE_QUALITY_NEAREST;
    +    public final static String USE_VIDEOMEM;
    +    public final static String USE_3-D_HW;
    +     
    +    // Constructor
    +    public Preferences();
    +
    +   // Methods
    +   public boolean getBoolean(String preference);
    +   public double getDouble(String preference);
    +   public int getInt(String preference);
    +   public String getString(String preference);
    +   public void propagate();
    +   public void set(String preference, boolean value);
    +   public void set(String preference, double value);
    +   public void set(String preference, int value);
    +   public void set(String preference, String value);
    +}
    +
    +

    A Preferences object controls various model qualities (such as texturing and shading) and hardware preferences. The object contains methods both for setting and retrieving these values. Each preference is identified with a string and its value is set by either a boolean, an integer, or a double. Before getting or setting a preference, first obtain the Preference object with the Viewer.getPreferences method. + +

    The first time DirectAnimation is run, it establishes the default preferences in the registry. This means the end-user can control what the default preference settings are. When the Viewer.getPreferences method is invoked, the Preferences object contains these settings. These settings can be overridden by calling the set() methods on the Preferences object. + +

    A preference called OVERRIDE_APPLICATION_PREFERENCES allows the end-user to decide if a canvas or applet can override the other preferences. If it is TRUE, then explicitly setting the Preferences object will have no effect. + +

    +


    Preferences Constructor

    +Preferences Class +

    Constructs an Preferences object. + +

    public Preferences( );
    +


    +

    Preferences Methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    getBoolean +
    getDouble +
    getInt +
    getString +
    propagate +
    set(preference, boolean) +
    set(preference, double) +
    set(preference, int) +
    set(preference, string) + +
    +


    getBoolean

    +Preferences Class +

    Returns the value of those preferences that are set by booleans. + +

    public boolean getBoolean(
      String preference
      );

    Parameters
    +
    preference +
    The name of the preference. +
    +
    Return Values
    +

    Returns a boolean. For more information about booleans, consult a Java reference. + + +


    getDouble

    +Preferences Class +

    Returns the value of those preferences that are set by a double. + +

    public double getDouble(
      String preference
      );

    Parameters
    +
    preference +
    The name of the preference. +
    +
    Return Values
    +

    Returns a double. For more information about doubles, consult a Java reference. + + +


    getInt

    +Preferences Class +

    Returns the value of those preferences that are set by an integer. + +

    public int getInt(
      String preference
      );

    Parameters
    +
    preference +
    The name of the preference. +
    +
    Return Values
    +

    Returns an integer. For more information about integers, consult a Java reference. + + +


    getString

    +Preferences Class +

    Returns the name of a preference. + +

    public String getString(
      String preference
      );

    Parameters
    +
    preference +
    The name of the preference. +
    +
    Return Values
    +

    Returns the value of those preferences that are set by a string. For more information about strings, consult a Java reference. + + +


    propagate

    +Preferences Class +

    Tells the system to use the new preferences. Use after calling Viewer.getPreferences and the Preference.set() methods but before the model is running. + +

    public void propagate( );


    set

    +Preferences Class +

    Sets the value of those preferences that are determined by booleans. + +

    public void set(
      String preference,
      boolean value
      );

    Parameters
    +
    preference +
    The name of the preference. +
    value +
    The value of the preference. +
    +


    set

    +Preferences Class +

    Sets the value of those preferences that are determined by doubles. + + +

    public void set(
      String preference,
      double value
      );

    Parameters
    +
    preference +
    The name of the preference. +
    value +
    The value of the preference. +
    +


    set

    +Preferences Class +

    Sets the value of those preferences that are determined by integers. + +

    public void set(
      String preference,
      int value
      );

    Parameters
    +
    preference +
    The name of the preference. +
    value +
    The value of the preference. +
    +


    set

    +Preferences Class +

    Sets the value of those preferences that are determined by strings. + +

    public void set(
      String preference,
      String value
      );

    Parameters
    +
    preference +
    The name of the preference. +
    value +
    The value of the preference. +
    +

    Preferences Fields

    +
    +
    public final static String COLOR_KEY_BLUE +
    Determines the value of the blue RGB component. The value is set by an integer that can range from 0 to 255. The default value is 245. +
    public final static String COLOR_KEY_GREEN +
    Determines the value of the green RGB component. The value is set by an integer that can range from 0 to 255. The default value is 254. +
    public final static String COLOR_KEY_RED +
    Determines the value of the red RGB component. The value is set by an integer that can range from 0 to 255. The default value is 1. +
    public final static String DITHERING +
    Determines whether or not dithering is enabled. The value is set by a boolean. The default mode is Enabled. +
    public final static String ENGINE_OPTIMIZATIONS +
    Determines whether or not there will be optimizations. Optimizations include such things as image caching and dirty rectangle optimization. The value is set by a boolean. The default value is On. +
    public final static String FILL_MODE +
    Determines the fill mode, which can be FILL_MODE_POINT, FILL_MODE_SOLID, or FILL_MODE_WIREFRAME. The value is set by an integer. The default mode is Solid. +
    public final static int FILL_MODE_POINT +
    Sets the fill mode to point. +
    public final static int FILL_MODE_SOLID +
    Sets the fill mode to solid. This is the default mode. +
    public final static int FILL_MODE_WIREFRAME +
    Sets the fill mode to wireframe. +
    public final static String OVERRIDE_APPLICATION_PREFERENCES +
    A boolean value that, if true, means the registry overrides any attempts by the application to set preferences. This value cannot be set. It can only be retrieved with getBoolean. The default value is Off. +
    public final static String PERSPECTIVE_CORRECT +
    Determines whether or not texturing will be adjusted for perspective. The value is set by a boolean. The default mode is On. +
    public final static MAX_FRAMES_PER_SEC +
    Determines the maximum number of frames per second. The value is set by a double. The default value is 30. +
    public final static String RGB_LIGHTING_MODE +
    Determines whether or not the lighting mode is RGB. The value is set by a boolean. The default value is On. +
    public final static String SHADE_MODE +
    Determines what the shading mode will be. The possibilities are SHADE_MODE_FLAT, SHADE_MODE_GOURAUD, or SHADE_MODE_PHONG. The value is set by an integer. The default mode is GOURAUD. +
    public final static SHADE_MODE_FLAT +
    Sets the shading mode to flat. +
    public final static int SHADE_MODE_GOURAUD +
    Sets the shading mode to Gouraud. This is the default mode. +
    public final static int SHADE_MODE_PHONG +
    Sets the shading mode to Phong. +
    public final static String TEXTURE_QUALITY +
    Determines what the texture rendering quality will be. The possibilities are TEXTURE_QUALITY_LINEAR or TEXTURE_QUALITY_NEAREST. The value is set by an integer. The default mode is NEAREST. +
    public final static int TEXTURE_QUALITY_LINEAR +
    Sets the texture rendering quality to linear. +
    public final static int TEXTURE_QUALITY_NEAREST +
    Sets the texture rendering quality to nearest. This is the default mode. +
    public final static String USE_3-D_HW +
    Determines whether or not 3-D hardware will be enabled. The value is set by a boolean. The default is Off. This preference cannot be overridden by the application. It is a read-only value. +
    public final static USE_VIDEOMEM +
    Determines whether or not the video memory will be enabled. The value is set by a boolean. The default is On. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0158.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0158.HTM new file mode 100644 index 0000000..4643bfa --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0158.HTM @@ -0,0 +1,255 @@ + + +PropertyDispatcher Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --PropertyDispatcher Class +DirectAnimation Animated Header --PropertyDispatcher Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Preferences Class
    +*Next Topic: SoundBvr Class
    +

    +

    +

    PropertyDispatcher Class

    +
    +
    public class PropertyDispatcher extends java.lang.Object {
    +    // Constructor
    +    public PropertyDispatcher(Behavior a);
    +
    +    // Methods
    +    public void detach();
    +    public Behavior getBvr();
    +    public Behavior notify(int, boolean, double, double, Behavior, Behavior);
    +    public void setControl(Object object);
    +    public void setPropertyName(String name);
    +}
    +
    +

    This class allows DirectAnimation behaviors to be attached to (and detached from) properties in ActiveX controls. For example, a NumberBvr can be attached to the width property of a frame on an HTML page. + +

    +


    PropertyDispatcher Constructor

    +PropertyDispatcher Class +

    Constructs a PropertyDispatcher object. + + +

    public PropertyDispatcher(
      Behavior a
      );

    Parameters
    +
    a +
    The behavior to be attached to an ActiveX control property. +
    +
    Remarks
    +

    Th behavior specified by a is used only in the constructor. To attach a behavior to a property, first create the PropertyDispatcher class with that behavior, and then extract an equivalent behavior with getBvr(). Use this behavior in the model. When access to the control and its property name is available, call setControl() and setPropertyName(). Here is an example: +

    
    +NumberBvr n = the behavior that will be attached to a control
    +PropertyDispatcher pd = new PropertyDispatcher(n);
    +NumberBvr attachedN = (NumberBvr)pd.getBvr();
    +
    +//...At some other point
    +
    +pd.setControl(ctrl);
    +pd.setPropertyName("width");
    +
    +

    Note that the attachedN behavior must be running to affect the attached property. The behavior is running if: +

    + +
    +

    PropertyDispatcher Methods

    +

    bullet1.gifdetach
    +

    bullet1.gifgetBvr
    +

    bullet1.gifsetControl
    +

    bullet1.gifsetPropertyName
    +


    detach

    +PropertyDispatcher Class +

    Detaches an already attached behavior from an ActiveX control property. + +

    public void detach( );


    getBvr

    +PropertyDispatcher Class +

    Returns a behavior that, while it is the same as the behavior used in the constructor, is updated over time. This is the behavior that should be used once the PropertyDispatcher object has been constructed. + +

    public Behavior getBvr( );

    Return Values
    +

    Returns the Behavior object. + + +


    setControl

    +PropertyDispatcher Class +

    Sets the ActiveX control object to which a behavior will be attached. + +

    public void setControl(
      Object object
      );

    Parameters
    +
    object +
    The ActiveX control object to which a behavior will be attached. +
    +


    setPropertyName

    +PropertyDispatcher Class +

    Sets the name of the ActiveX control property to which a DirectAnimation behavior will be attached. + +

    public void setPropertyName(
      String name
      );

    Parameters
    +
    name +
    The name of the property to which a DirectAnimation behavior will be attached. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0159.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0159.HTM new file mode 100644 index 0000000..bffca2a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0159.HTM @@ -0,0 +1,311 @@ + + +SoundBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --SoundBvr Class +DirectAnimation Animated Header --SoundBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: PropertyDispatcher Class
    +*Next Topic: Statics Class
    +

    +

    +

    SoundBvr Class

    +
    +
    public class SoundBvr extends Behavior {
    +
    +    // Methods
    +    public SoundBvr gain(NumberBvr gainAmt);
    +    public SoundBvr loop();
    +    public SoundBvr pan(NumberBvr panAmt);
    +    public SoundBvr phase(NumberBvr phaseAmt);
    +    public SoundBvr rate(NumberBvr rateAmt);
    +
    +    public static SoundBvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a sound behavior. Sound behaviors have gain, rate, phase, and pan attributes. Imported sounds (.WAV and .MIDI files) also have a length, returned by the import method. + +

    Gain (volume) defines how loudly the sound is played. Rate defines how many times faster or slower the sound is played relative to its nominal rate. Phase defines how much to shift the time of the sound, and is useful for creating special sound effects such as echoes. Mixing the same sounds that are out of phase makes the sound richer. Pan defines the strength of the sound relative to the left and right sound channels. It is useful for positioning sounds. + +

    Gain, rate, phase, and pan are number behaviors and can, therefore, change over time. This is useful for modifying the sound based, not only on time, (See substituteTime) but also on other computed values such as distance. Sounds can be embedded in a geometry to achieve spatialized effects. Currently, all sounds are omnidirectional. + +

    For more information about behaviors, see the Behavior class. + +

    +

    SoundBvr Methods

    +

    bullet1.gifgain
    +

    bullet1.gifloop
    +

    bullet1.gifpan
    +

    bullet1.gifphase
    +

    bullet1.gifrate
    +

    bullet1.gifnewUninitBvr
    +


    gain

    +SoundBvr Class +

    Creates a new sound behavior by multiplying the gain (volume) by the given amount. + +

    public SoundBvr gain(
      NumberBvr gainAmt
      );

    Parameters
    +
    gainAmt +
    The NumberBvr object specifying the factor by which to multiply the volume. Values greater than one increase the volume and values between zero and 1 decrease the sound's volume. Except for sound geometries, only attenuation values of 0-1 have an effect. For sound geometries, gains greater than 1 affect the distance from which sounds can be heard. The sounds, however, never sound louder than 1. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +

    Remarks
    +

    This attribute composes multiplicatively. + +


    loop

    +SoundBvr Class +

    Creates a sound behavior that repeats itself continuously. + +

    public SoundBvr loop( );

    Return Values
    +

    Returns the SoundBvr object. + + +

    Remarks
    +

    This method applies to the primitive sounds themselves. It does not loop a reactive sound behavior. Instead, it loops each of the primitive sounds that are the components of the reactive sound behavior. In the following example, snd1 and snd2 are each looped: + +

    
    +SoundBvr snd3 = SoundBvr(until)(snd1, leftButtonDown, snd2);
    +SoundBvr snd4 = snd3.loop();
    +
    +

    This attribute overrides previous values. + +


    pan

    +SoundBvr Class +

    Creates a sound behavior by repositioning a monophonic sound between the left and right channels. To do this, the amplitude of the sound in each channel is changed. This is similar to adjusting the balance on a stereo. + +

    public SoundBvr pan(
      NumberBvr panAmt
      );

    Parameters
    +
    panAmt +
    The NumberBvr object specifying the amount to pan. Can be a value in the range -1.0 to 1.0, with -1.0 as full left, 0 as center, and 1.0 as full right. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +

    Remarks
    +

    With stereophonic sounds, panning away from a channel attenuates it. + +

    Remarks
    +

    This attribute composes additively. + +


    phase

    +SoundBvr Class +

    Creates a sound behavior by shifting the sound in time by the given amount. Shifting the sound and mixing with the original sound allows for special effects, such as echoing. + +

    public SoundBvr phase(
      NumberBvr phaseAmt
      );

    Parameters
    +
    phaseAmt +
    The NumberBvr object specifying the amount in seconds (or fractions of seconds) to shift the sound. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +

    Remarks
    +

    For unlooped sounds, a positive phase shift delays the sound's starting time while a negative phase shift clips off the beginning of the sound. For looped sounds, a positive phase shift adds the end of the sound to the beginning of the sound, while a negative phase shift controls how far into the sound the beginning should be. Phase-shifting only takes effect when the sound begins playing. Currently, you cannot dynamically change the position of a running sound. This attribute composes additively. + +


    rate

    +SoundBvr Class +

    Creates a sound behavior by multiplying the playback rate by the given amount. + +

    public SoundBvr rate(
      NumberBvr rateAmt
      );

    Parameters
    +
    rateAmt +
    The NumberBvr object specifying the factor by which to multiply the rate. Values greater than one increase the rate and values between zero and 1 decrease it. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +

    Remarks
    +

    A rate of 0 pauses the sound. Negative rates are not supported. This attribute composes additively. + +


    newUninitBvr

    +SoundBvr Class +

    This method allows you to refer to an SoundBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static SoundBvr newUninitBvr( );

    Return Values
    +

    Returns the SoundBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type SoundBvr. + +

    public static SoundBvr importSound(URL url, NumberBvr[] soundLength); +

    public static SoundBvr importSound(URL url, NumberBvr[] soundLength, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size); +

    public static SoundBvr mix(SoundBvr sound1, SoundBvr sound2); +

    public static SoundBvr mixArray(SoundBvr[] sounds); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type SoundBvr. + +

    public final static SoundBvr silence; +

    public final static SoundBvr sinSynth; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0160.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0160.HTM new file mode 100644 index 0000000..efe06e3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0160.HTM @@ -0,0 +1,727 @@ + + +Statics Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Statics Class +DirectAnimation Animated Header --Statics Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: SoundBvr Class
    +*Next Topic: Static Methods Relevant to Behavior Objects
    +

    +

    +

    Statics Class

    +
    +
    public class Statics{
    +    // Behavior Static Methods
    +    public static Behavior cond(BooleanBvr bool, Behavior a, Behavior b);
    +    public static Behavior sequence(Behavior a, Behavior b);
    +    public static Behavior until(Behavior a, DXMEvent e, Behavior b);
    +    public static Behavior untilEx(Behavior a, DXMEvent e);
    +    public static Behavior untilNotify(Behavior a, DXMEvent e, UntilNotifier notifier);
    +
    +    // BooleanBvr Static Fields
    +    public final static BooleanBvr falseBvr;
    +    public final static BooleanBvr leftButtonState;
    +    public final static BooleanBvr rightButtonState;
    +    public final static BooleanBvr trueBvr;
    +
    +    // BooleanBvr Static Methods
    +    public static BooleanBvr and(BooleanBvr b1, BooleanBvr b2);
    +    public static BooleanBvr keyState(int keyCode);
    +    public static BooleanBvr not(BooleanBvr b);
    +    public static BooleanBvr or(BooleanBvr b1, BooleanBvr b2);
    +    public static BooleanBvr toBvr(Boolean bool);
    +
    +    // CameraBvr Static Methods
    +    public static CameraBvr parallelCamera(NumberBvr nearclip);
    +    public static CameraBvr perspectiveCamera(NumberBvr projdst, NumberBvr nearclip);
    +
    +    // ColorBvr Static Fields
    +    public final static ColorBvr aqua;
    +    public final static ColorBvr black;
    +    public final static ColorBvr blue;
    +    public final static ColorBvr cyan;
    +    public final static ColorBvr fuchsia;
    +    public final static ColorBvr gray;
    +    public final static ColorBvr green;
    +    public final static ColorBvr lime;
    +    public final static ColorBvr magenta;
    +    public final static ColorBvr maroon;
    +    public final static ColorBvr navy;
    +    public final static ColorBvr olive;
    +    public final static ColorBvr purple;
    +    public final static ColorBvr red;
    +    public final static ColorBvr silver;
    +    public final static ColorBvr teal;
    +    public final static ColorBvr white;
    +    public final static ColorBvr yellow;
    +
    +    // ColorBvr Static Methods
    +    public static ColorBvr colorHsl(NumberBvr h, NumberBvr s, NumberBvr l);
    +    public static ColorBvr colorRgb(NumberBvr r, NumberBvr g, NumberBvr b);
    +    public static ColorBvr colorRgb255(short r, short g, short b);
    +
    +    // DashStyleBvr Static Fields
    +    public final static DashStyleBvr dashStyleDashed;
    +    public final static DashStyleBvr dashStyleSolid;
    +
    +    // DXMApplet Static Methods
    +    public ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w);
    +
    +    // DXMEvent Static Fields
    +    public final static DXMEvent always;
    +    public final static DXMEvent leftButtonDown;
    +    public final static DXMEvent leftButtonUp;
    +    public final static DXMEvent never;
    +    public final static DXMEvent rightButtonDown;
    +    public final static DXMEvent rightButtonUp;
    +
    +    // DXMEvent Static Methods
    +    public static DXMEvent andEvent(DXMEvent first, DXMEvent second);
    +    public static DXMEvent keyDown(int keyCode);
    +    public static DXMEvent keyUp(int keyCode);
    +    public static DXMEvent newUninitBvr();
    +    public static DXMEvent notEvent(DXMEvent ev);
    +    public static DXMEvent orEvent(DXMEvent first, DXMEvent second);
    +    public static DXMEvent predicate(BooleanBvr bool);
    +    public static DXMEvent thenEvent(DXMEvent e1, DXMEvent e2);
    +    public static DXMEvent timer(NumberBvr timeout);
    +    public static void     unregisterCallback(Object object);
    +
    +    // EndStyleBvr Static Fields
    +    public final static EndStyleBvr endStyleFlat;
    +    public final static EndStyleBvr endStyleRound;
    +    public final static EndStyleBvr endStyleSquare;
    +
    +    // FontStyleBvr Static Fields
    +    public final static FontStyleBvr defaultFont;
    +
    +    // FontStyleBvr Static Methods
    +    public static FontStyleBvr font(StringBvr face, NumberBvr points, ColorBvr color);
    +    
    +    //GeometryBvr Static Fields
    +    public final static GeometryBvr ambientLight;
    +    public final static GeometryBvr directionalLight;
    +    public final static GeometryBvr emptyGeometry;
    +    public final static GeometryBvr pointLight;
    +
    +    // GeometryBvr Static Methods
    +    public static GeometryBvr importGeometry(URL url);
    +    public static GeometryBvr importGeometry(URL url, GeometryBvr geoStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size);
    +    public static GeometryBvr soundSource(SoundBvr sound);
    +    public static GeometryBvr spotLight(NumberBvr fullcone, NumberBvr cutoff);
    +    public static GeometryBvr union(GeometryBvr g1, GeometryBvr g2);
    +    public static GeometryBvr unionArray(GeometryBvr geometries);
    +
    +    // ImageBvr Static Fields
    +    public final static ImageBvr detectableEmptyImage;
    +    public final static ImageBvr emptyImage;
    +
    +    // ImageBvr Static Methods
    +    public static ImageBvr  gradientHorizontal(ColorBvr start, ColorBvr stop, NumberBvr fallOff); 
    +    public static ImageBvr  gradientPolygon(Point2Bvr[] pts, ColorBvr[] colors);
    +    public static ImageBvr  gradientSquare(ColorBvr lowerLeft, ColorBvr upperLeft, ColorBvr upperRight, ColorBvr lowerRight);
    +    public static ImageBvr  hatchBackwardDiagonal(ColorBvr color, NumberBvr size);
    +    public static ImageBvr  hatchCross(ColorBvr color, NumberBvr size);
    +    public static ImageBvr  hatchForwardDiagonal (ColorBvr color, NumberBvr size);
    +    public static ImageBvr  hatchHorizontal(ColorBvr color, NumberBvr size);
    +    public static ImageBvr  hatchVertical(ColorBvr color, NumberBvr size);
    +    public static ImageBvr  importImage(URL url);
    +    public static ImageBvr  importImage(URL url, ImageBvr imgStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size);
    +    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd);
    +    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd, ImageBvr imgStandIn, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size); 
    +    public static ImageBvr  overlay(ImageBvr i1, ImageBvr i2);
    +    public static ImageBvr  overlayArray(ImageBvr[] im);
    +    public static ImageBvr  radialGradientPolygon(ColorBvr inner, ColorBvr outer, Point2Bvr[] points, NumberBvr fallOff);
    +    public static ImageBvr  radialGradientRegularPoly(ColorBvr inner, ColorBvr outer, NumberBvr edges, NumberBvr fallOff);
    +    public static ImageBvr  radialGradientSquare(ColorBvr inner, ColorBvr outer, NumberBvr fallOff);
    +    public static ImageBvr  solidColorImage(ColorBvr col);
    +    public static ImageBvr  stringImage(StringBvr string, FontStyleBvr font);
    +    
    +    // JoinStyleBvr Static Fields
    +    public final static JoinStyleBvr joinStyleBevel;
    +    public final static JoinStyleBvr joinStyleMiter;
    +    public final static JoinStyleBvr joinStyleRound;
    +
    +    // LineStyleBvr Static Fields
    +    public final static LineStyleBvr defaultLineStyle;
    +
    +    // MatteBvr Static Fields
    +    public final static MatteBvr clearMatte;
    +    public final static MatteBvr opaqueMatte;
    +
    +    // MatteBvr Static Methods
    +    public static MatteBvr difference(MatteBvr m1, MatteBvr m2);
    +    public static MatteBvr fillMatte(Path2Bvr path);
    +    public static MatteBvr intersect(MatteBvr m1, MatteBvr m2);
    +    public static MatteBvr textMatte(StringBvr text, FontStyleBvr fs);
    +    public static MatteBvr union(MatteBvr m1, MatteBvr m2);
    +
    +    // MicrophoneBvr Static Fields
    +    public final static MicrophoneBvr defaultMicrophone;
    +
    +    // Miscellaneous Static Fields
    +    public final  static double cm;
    +    public final  static double foot;
    +    public final  static double inch;
    +    public final  static double meter;
    +    public final  static double mm;
    +    public final  static NumberBvr pixelBvr;
    +
    +    // Miscellaneous Static Methods
    +    public static URL buildURL(URL url, String pathname);
    +    public static String getVersionString();
    +    
    +    // MontageBvr Static Fields
    +    public final static MontageBvr emptyMontage;
    +
    +    // MontageBvr Static Methods
    +    public static MontageBvr imageMontage(ImageBvr image, NumberBvr depth);
    +    public static MontageBvr union(MontageBvr m1, MontageBvr m2);
    +
    +    // NumberBvr Static Fields
    +    public final static NumberBvr  globalTime;
    +    public final static NumberBvr  localTime;
    +
    +    // NumberBvr Static Methods
    +    public static NumberBvr  abs(NumberBvr a);
    +    public static NumberBvr  acos(NumberBvr a);
    +    public static NumberBvr  add(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  asin(NumberBvr a);
    +    public static NumberBvr  atan(NumberBvr a);
    +    public static NumberBvr  atan2(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  bSpline(int degree, NumberBvr[] knots, NumberBvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation); 
    +    public static NumberBvr  ceiling(NumberBvr a);
    +    public static NumberBvr  cos(NumberBvr a);
    +    public static NumberBvr  degreesToRadians(NumberBvr a);
    +    public static NumberBvr  derivative(NumberBvr a);
    +    public static NumberBvr  div(NumberBvr a, NumberBvr b);
    +    public static BooleanBvr eq(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  exp(NumberBvr a);
    +    public static NumberBvr  floor(NumberBvr a);
    +    public static BooleanBvr gt(NumberBvr a, NumberBvr b);
    +    public static BooleanBvr gte(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  integral(NumberBvr a);
    +    public static NumberBvr  ln(NumberBvr a);
    +    public static NumberBvr  log10(NumberBvr a);
    +    public static BooleanBvr lt(NumberBvr a, NumberBvr b);
    +    public static BooleanBvr lte(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  mod(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  mul(NumberBvr a, NumberBvr b);
    +    public static BooleanBvr ne(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  neg(NumberBvr a);
    +    public static NumberBvr  pow(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  radiansToDegrees(NumberBvr a);
    +    public static NumberBvr  round(NumberBvr a);
    +    public static NumberBvr  seededRandom(double seed);
    +    public static NumberBvr  sin(NumberBvr a);
    +    public static NumberBvr  sqrt(NumberBvr a);
    +    public static NumberBvr  sub(NumberBvr a, NumberBvr b);
    +    public static NumberBvr  tan(NumberBvr a);
    +    public static NumberBvr  toBvr(double a);
    +
    +    // Path2Bvr Static Methods
    +    public static Path2Bvr arc(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, NumberBvr arcHeight);
    +    public static Path2Bvr arcDegrees(double startAngle, double endAngle, double arcWidth, double arcHeight);
    +    public static Path2Bvr concat(Path2Bvr p1, Path2Bvr p2);
    +    public static Path2Bvr concatArray(Path2Bvr[] paths);
    +    public static Path2Bvr cubicBSplinePath(Point2Bvr[], NumberBvr[]);
    +    public static Path2Bvr line(Point2Bvr p1, Point2Bvr p2);
    +    public static Path2Bvr oval(NumberBvr width, NumberBvr height);
    +    public static Path2Bvr pie(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, arcHeight);
    +    public static Path2Bvr pieDegrees(double startAngle, double endAngle, double arcWidth, double arcHeight);
    +    public static Path2Bvr polydrawPath(Point2Bvr[] points, NumberBvr[] codes);
    +    public static Path2Bvr polyline(Point2Bvr[] points);
    +    public static Path2Bvr ray(Point2Bvr p);
    +    public static Path2Bvr roundRect(NumberBvr width, NumberBvr height, NumberBvr arcWidth, NumberBvr arcHeight);
    +    public static Path2Bvr rect(NumberBvr width, NumberBvr height);
    +    public static Path2Bvr stringPath(StringBvr string, FontStyleBvr fs);
    +
    +    // Point2Bvr Static Fields
    +    public final static Point2Bvr mousePosition;
    +    public final static Point2Bvr origin2;
    +
    +    // Point2Bvr Static Methods
    +    public static Point2Bvr  add(Point2Bvr pt, Vector2Bvr vec);
    +    public static Point2Bvr  bSpline(int degree, NumberBvr[] knots, Point2Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation);
    +    public static Vector2Bvr derivative(Point2Bvr pt);
    +    public static NumberBvr  distance(Point2Bvr p1, Point2Bvr p2);
    +    public static NumberBvr  distanceSquared(Point2Bvr p1, Point2Bvr p2);
    +    public static Point2Bvr  point2(NumberBvr x, NumberBvr y);
    +    public static Point2Bvr  point2Polar(NumberBvr XYangle, NumberBvr length);
    +    public static Vector2Bvr sub(Point2Bvr p1, Point2Bvr p2);
    +    public static Point2Bvr  sub(Point2Bvr pt, Vector2Bvr vec);
    +
    +    // Point3Bvr Static Fields
    +    public final static Point3Bvr origin3;
    +
    +    // Point3Bvr Static Methods
    +    public static Point3Bvr  add(Point3Bvr pt, Vector3Bvr vec);
    +    public static Point3Bvr  bSpline(int degree, NumberBvr[] knots, Point3Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation);
    +    public static Vector3Bvr derivative(Point3Bvr pt);
    +    public static NumberBvr  distance(Point3Bvr p1, Point3Bvr p2);
    +    public static NumberBvr  distanceSquared(Point3Bvr p1, Point3Bvr p2);
    +    public static Point3Bvr  point3(NumberBvr x, NumberBvr y, NumberBvr z);
    +    public static Point3Bvr  point3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length);
    +    public static Vector3Bvr sub(Point3Bvr p1, Point3Bvr p2);
    +    public static Point3Bvr  sub(Point3Bvr pt, Vector3Bvr vec);
    +
    +    // SoundBvr Static Fields
    +    public final static SoundBvr silence;
    +    public final static SoundBvr sinSynth;
    +
    +    // SoundBvr Static Methods
    +    public static SoundBvr importSound(URL url, NumberBvr[] soundLength); 
    +    public static SoundBvr importSound(URL url, NumberBvr[] soundLength, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size);    
    +    public static SoundBvr mix(SoundBvr sound1, SoundBvr sound2);
    +    public static SoundBvr mixArray(SoundBvr[] sounds);
    +
    +    // StringBvr Static Methods
    +    public static StringBvr concat(StringBvr a, StringBvr b);
    +    public static StringBvr toBvr(String string);
    +
    +
    +    // Transform2Bvr Static Fields
    +    public final static Transform2Bvr identityTransform2;
    +
    +    // Transform2Bvr Static Methods
    +    public static Transform2Bvr compose(Transform2Bvr xf1, Transform2Bvr xf2);
    +    public static Transform2Bvr compose2Array(Transform2Bvr[] xforms);
    +    public static Transform2Bvr followPath(Path2Bvr path, NumberBvr evaluator);
    +    public static Transform2Bvr followPathAngle(Path2Bvr path, NumberBvr evaluator);
    +    public static Transform2Bvr followPathAngleUpright(Path2Bvr path, NumberBvr evaluator); 
    +    public static Transform2Bvr rotate(NumberBvr radians);
    +    public static Transform2Bvr rotateDegrees(double degrees);
    +    public static Transform2Bvr rotateRate(double radians);
    +    public static Transform2Bvr rotateRateDegrees(double degrees);
    +    public static Transform2Bvr scale(NumberBvr sx, NumberBvr sy);
    +    public static Transform2Bvr scale(Vector2Bvr v);
    +    public static Transform2Bvr scaleRate(double x, double y);
    +    public static Transform2Bvr scale2(NumberBvr uniformFactor);
    +    public static Transform2Bvr scale2Rate(double rate);
    +    public static Transform2Bvr transform3x2(NumberBvr[] matrix);
    +    public static Transform2Bvr translate(NumberBvr tx, NumberBvr ty);
    +    public static Transform2Bvr translate(Vector2Bvr v);
    +    public static Transform2Bvr translateRate(double x, double y);
    +    public static Transform2Bvr xShear(NumberBvr x);
    +    public static Transform2Bvr xShearRate(double xRate);
    +    public static Transform2Bvr yShear(NumberBvr y);
    +    public static Transform2Bvr yShearRate(double yRate);
    +
    +    // Transform3Bvr Static Fields
    +    public final static Transform3Bvr identityTransform3;
    +
    +    // Transform3Bvr Static Methods
    +    public static Transform3Bvr compose(Transform3Bvr xf1, Transform3Bvr xf2);
    +    public static Transform3Bvr compose3Array(Transform3Bvr[] xforms);
    +    public static Transform3Bvr lookAtFrom(Point3Bvr from, Point3Bvr to, Vector3Bvr up);
    +    public static Transform3Bvr rotate(Vector3Bvr axis, NumberBvr radians);
    +    public static Transform3Bvr rotateDegrees(Vector3Bvr axis, double degrees);
    +    public static Transform3Bvr rotateRate(Vector3Bvr axis, double radians);
    +    public static Transform3Bvr rotateRateDegrees(Vector3Bvr axis, double radians);
    +    public static Transform3Bvr scale(NumberBvr sx, NumberBvr sy, NumberBvr sz);
    +    public static Transform3Bvr scale(Vector3Bvr v);
    +    public static Transform3Bvr scaleRate(double x, double y, double z);
    +    public static Transform3Bvr scale3(NumberBvr uniformFactor);
    +    public static Transform3Bvr scale3Rate(double rate);
    +    public static Transform3Bvr transform4x4(NumberBvr[] matrix);
    +    public static Transform3Bvr translate(NumberBvr tx, NumberBvr ty, NumberBvr tz);
    +    public static Transform3Bvr translate(Vector3Bvr v);
    +    public static Transform3Bvr translateRate(double x, double y, double z);
    +    public static Transform3Bvr xShear(NumberBvr a, NumberBvr b);
    +    public static Transform3Bvr xShearRate(double a, double b);
    +    public static Transform3Bvr yShear(NumberBvr c, NumberBvr d);
    +    public static Transform3Bvr yShearRate(double c, double d);
    +    public static Transform3Bvr zShear(NumberBvr e, NumberBvr f);
    +    public static Transform3Bvr zShearRate(double e, double f);
    +
    +
    +    // TupleBvr Static Methods
    +    public static TupleBvr pairBvr(Behavior first, Behavior second);
    +    public static TupleBvr tripleBvr(Behavior first, Behavior second, Behavior third);
    +
    +    // Vector2Bvr Static Fields
    +    public final static Vector2Bvr xVector2;
    +    public final static Vector2Bvr yVector2;
    +    public final static Vector2Bvr zeroVector2;
    +
    +    // Vector2Bvr Static Methods
    +    public static Vector2Bvr add(Vector2Bvr v1, Vector2Bvr v2);
    +    public static Vector2Bvr bSpline(int degree, NumberBvr[] knots, Vector2Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation);
    +    public static Vector2Bvr derivative(Vector2Bvr vec);
    +    public static NumberBvr  dot(Vector2Bvr v1, Vector2Bvr v2);
    +    public static Vector2Bvr integral(Vector2Bvr vec);
    +    public static Vector2Bvr neg(Vector2Bvr v1);
    +    public static Vector2Bvr sub(Vector2Bvr v1, Vector2Bvr v2);
    +    public static Vector2Bvr vector2(NumberBvr x, NumberBvr y);
    +    public static Vector2Bvr vector2Polar(NumberBvr XYangle, NumberBvr length);
    +    public static Vector2Bvr vector2PolarDegrees(double XYangle, double length);
    +
    +    // Vector3Bvr Static Fields
    +    public final static Vector3Bvr xVector3;
    +    public final static Vector3Bvr yVector3;
    +    public final static Vector3Bvr zVector3;
    +    public final static Vector3Bvr zeroVector3;
    +
    +    // Vector3Bvr Static Methods
    +    public static Vector3Bvr add(Vector3Bvr v1, Vector3Bvr v2);
    +    public static Vector3Bvr bSpline(int degree, NumberBvr[] knots, Vector3Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation));
    +    public static Vector3Bvr cross(Vector3Bvr v1, Vector3Bvr v2);
    +    public static Vector3Bvr derivative(Vector3Bvr vec);
    +    public static NumberBvr  dot(Vector3Bvr v1, Vector3Bvr v2);
    +    public static Vector3Bvr integral(Vector3Bvr vec);
    +    public static Vector3Bvr neg(Vector3Bvr v1);
    +    public static Vector3Bvr sub(Vector3Bvr v1, Vector3Bvr v2);
    +    public static Vector3Bvr vector3(NumberBvr x, NumberBvr y, NumberBvr z);
    +    public static Vector3Bvr vector3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length);
    +}
    +
    +

    The Statics class collects all the static methods and constants provided by the other classes in com.ms.dxmedia and makes them available as static methods on the Statics class. In addition, the Model class extends from Statics. This means that, when a programmer is implementing the createModel method of the class they extend from Model, all of the static methods in Statics become available without qualification. + +

    The following table lists the classes that have static methods and/or fields: + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    B +
    Static Methods Relevant to Behavior Objects +
    Static Methods Relevant to BooleanBvr Objects +
    Static Fields Relevant to BooleanBvr Objects +
    C +
    Static Methods Relevant to CameraBvr Objects +
    Static Methods Relevant to ColorBvr Objects +
    Static Fields Relevant to ColorBvr Objects +
    D +
    Static Fields Relevant to DashStyleBvr Objects +
    Static Methods Relevant to DXMEvent Objects +
    Static Fields Relevant to DXMEvent Objects +
    E +
    Static Fields Relevant to EndStyleBvr Objects +
    F +
    Static Methods Relevant to FontStyleBvr Objects +
    Static Fields Relevant to FontStyleBvr Objects +
    G +
    Static Methods Relevant to GeometryBvr Objects +
    Static Fields Relevant to GeometryBvr Objects +
    I +
    Static Methods Relevant to ImageBvr Objects +
    Static Fields Relevant to ImageBvr Objects +
    J +
    Static Fields Relevant to JoinStyleBvr Objects +
    L +
    Static Fields Relevant to LineStyleBvr Objects +
    M +
    Static Methods Relevant to MatteBvr Objects +
    Static Fields Relevant to MatteBvr Objects +
    Static Fields Relevant to MicrophoneBvr Objects +
    Static Methods (Miscellaneous) +
    Static Fields (Miscellaneous) +
    Static Methods Relevant to MontageBvr Objects +
    Static Fields Relevant to MontageBvr Objects +
    N +
    Static Methods Relevant to NumberBvr Objects +
    Static Fields Relevant to NumberBvr Objects +
    P +
    Static Methods Relevant to Path2Bvr Objects +
    Static Methods Relevant to Point2Bvr Objects +
    Static Fields Relevant to Point2Bvr Objects +
    Static Methods Relevant to Point3Bvr Objects +
    Static Fields Relevant to Point3Bvr Objects +
    S +
    Static Methods Relevant to SoundBvr Objects +
    Static Fields Relevant to SoundBvr Objects +
    Static Methods Relevant to StringBvr Objects +
    T +
    Static Methods Relevant to Transform2Bvr Objects +
    Static Fields Relevant to Transform2Bvr Objects +
    Static Methods Relevant to Transform3Bvr Objects +
    Static Fields Relevant to Transform3Bvr Objects +
    Static Methods Relevant to TupleBvr Objects +
    V +
    Static Methods Relevant to Vector2Bvr Objects +
    Static Fields Relevant to Vector2Bvr Objects +
    Static Methods Relevant to Vector3Bvr Objects +
    Static Fields Relevant to Vector3Bvr Objects +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0161.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0161.HTM new file mode 100644 index 0000000..0c5302e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0161.HTM @@ -0,0 +1,271 @@ + + +Static Methods Relevant to Behavior Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Behavior Objects +DirectAnimation Animated Header --Static Methods Relevant to Behavior Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Statics Class
    +*Next Topic: Static Methods Relevant to BooleanBvr Objects
    +

    +

    +

    Static Methods Relevant to Behavior Objects

    +
    +


    cond

    +Statics Class +

    Creates a new behavior from the BooleanBvr and two other behaviors. The value of the new behavior, at any point in time, is one of those two behaviors. Which of the behaviors chosen depends on the value of the BooleanBvr. Here is an example: + +

    //Create a new behavior, y, which is either 1.0 if x > 1.0, or another behavior, x
    +	NumberBvr y = (NumberBvr)cond(gte(x, toBvr(1.0)), toBvr(1.0), x);
    +
    +

    public static Behavior cond(
      BooleanBvr bool,
      Behavior a,
      Behavior b
      );

    Parameters
    +
    bool +
    The BooleanBvr object that determines which of the two behaviors will become the value of the new behavior. +
    a +
    The first of the two possible values the new behavior can assume. +
    b +
    The second of the two possible values the new behavior can assume. +
    +
    Return Values
    +

    Returns the Behavior object. + + +


    sequence

    +Statics Class +

    Creates a new behavior that is the sum of the two Behavior parameters. In other words, the two behaviors are concatenated, according to their order in the parameter list. Once the duration is over, the behavior becomes a snapshot of the second behavior. An exception is when the first behavior is of infinite duration. In this case, the returned behavior is always the infinite behavior, no matter what the second behavior is. + +

    public static Behavior sequence(
      Behavior a,
      Behavior b
      );

    Parameters
    +
    a +
    The first behavior in the sequence. +
    b +
    The second behavior in the sequence. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    Remarks
    +

    Notice that, in contrast to compose, which first apply the right-hand argument and then the left, sequence first applies the left-hand argument and then the right. + +


    until

    +Statics Class +

    Creates a behavior that changes when a given event occurs. Up to and including the time the event occurs, the behavior is the same as a. After the event e occurs, the behavior changes to be the same as b. Because until takes behaviors and returns a behavior, it can be nested. Here are some examples: + +

    //The ColorBvr col is initially red
    +//It turns blue when the left mouse button is pressed
    +ColorBvr c = (ColorBvr)until(red, leftButtonDown, blue);
    +
    +//Example of nested behaviors
    +//The behavior is initially red
    +//It turns blue when the left mouse button is pressed
    +//And turns green when it is pressed again
    +ColorBvr c = (ColorBvr)until(red, leftButtonDown,
    +			until(blue, leftButtonDown, green));
    +
    +

    public static Behavior until(
      Behavior a,
      DXMEvent e,
      Behavior b
      );

    Parameters
    +
    a +
    The Behavior object that the behavior represents initially. +
    e +
    A DXMEvent object specifying the event. +
    b +
    The Behavior object that the behavior represents after the event. +
    +
    Return Values
    +

    Returns the Behavior object. + + +


    untilEx

    +Statics Class +

    Creates a Behavior that changes upon a given event. Initially, the behavior is the same as a. When event e occurs, the behavior changes to the behavior returned by the event. This means that only DXMEvents that return a Behavior can be used. These events can be constructed with attachData, notifyEvent, and snapshotEvent. + +

    public static Behavior untilEx(
      Behavior a,
      DXMEvent e
      );

    Parameters
    +
    a +
    The Behavior object that the behavior represents initially. +
    e +
    The DXMEvent object that triggers the switch and returns the new behavior. +
    +
    Return Values
    +

    Returns the Behavior object caused by the event e. + + +


    untilNotify

    +Statics Class +

    Creates a behavior that changes upon a given event. Initially, the behavior is the same as a. When event e occurs, the behavior changes to the behavior returned by the event notifier notifier. + +

    public static Behavior untilNotify(
      Behavior a,
      DXMEvent e,
      UntilNotifier notifier
      );

    Parameters
    +
    a +
    The Behavior object that the behavior represents initially. +
    e +
    A DXMEvent object specifying the event. +
    b +
    The UntilNotifier object. The notify method of this object, called on the given event, returns the new behavior. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0162.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0162.HTM new file mode 100644 index 0000000..f161eaf --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0162.HTM @@ -0,0 +1,247 @@ + + +Static Methods Relevant to BooleanBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to BooleanBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to BooleanBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Behavior Objects
    +*Next Topic: Static Fields Relevant to BooleanBvr Objects
    +

    +

    +

    Static Methods Relevant to BooleanBvr Objects

    +
    +


    and

    +Statics Class +

    Creates a boolean behavior that represents the logical AND of the given behaviors. The behavior's value is true when both b1 and b2 are true; otherwise, it is false. + +

    public static BooleanBvr and(
      BooleanBvr b1,
      BooleanBvr b2
      );

    Parameters
    +
    b1 and b2 +
    The BooleanBvr objects to combine. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +

    See Also
    +

    or, not + +


    keyState

    +Statics Class +

    Creates a boolean behavior that describes whether the key is up or down. + +

    public static BooleanBvr keyState(
      int keyCode
      );

    Parameters
    +
    keyCode +
    Can either be quoted characters, such as 'a' or specific Java keycode constants. +
    +
    Return Values
    +

    Returns the BooleanBvr object. The value is TRUE when the key is down and FALSE when the key is up. + + +


    not

    +Statics Class +

    Creates a boolean behavior that represents the logical NOT of the given behavior. The behavior's value is true when b is false; otherwise, it is false. + +

    public static BooleanBvr not(
      BooleanBvr b
      );

    Parameters
    +
    b +
    The BooleanBvr object to apply the operation to. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +

    See Also
    +

    and , or + +


    or

    +Statics Class +

    Creates a boolean behavior that represents the logical OR of the given behaviors. The behavior's value true when either b1 or b2 are true; otherwise it is false. + +

    public static BooleanBvr or(
      BooleanBvr b1,
      BooleanBvr b2
      );

    Parameters
    +
    b1 and b2 +
    The BooleanBvr objects to combine. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +

    See Also
    +

    and, not + +


    toBvr

    +Statics Class +

    Converts a boolean to a BooleanBvr. The only time toBvr is used is when converting Java numbers, booleans, or strings to their corresponding DirectAnimation types. It is not used for constants such as red, yVector3, and origin2 because these are defined as constant behaviors. + +

    public static BooleanBvr toBvr(
      boolean bool
      );

    Parameters
    +
    bool +
    The Java boolean type to be converted. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0163.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0163.HTM new file mode 100644 index 0000000..58245be --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0163.HTM @@ -0,0 +1,188 @@ + + +Static Fields Relevant to BooleanBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to BooleanBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to BooleanBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to BooleanBvr Objects
    +*Next Topic: Static Methods Relevant to CameraBvr Objects
    +

    +

    +

    Static Fields Relevant to BooleanBvr Objects

    +
    +
    +
    falseBvr +
    A boolean behavior (BooleanBvr object) that is always false. +
    leftButtonState +
    The BooleanBvr object that is true if the left mouse button is down and false if it is up. +
    rightButtonState +
    The BooleanBvr object that is true if the right mouse button is down and false if it is up. +
    trueBvr +
    A boolean behavior (BooleanBvr object) that is always true. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0164.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0164.HTM new file mode 100644 index 0000000..ec54c3a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0164.HTM @@ -0,0 +1,215 @@ + + +Static Methods Relevant to CameraBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to CameraBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to CameraBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to BooleanBvr Objects
    +*Next Topic: Static Methods Relevant to ColorBvr Objects
    +

    +

    +

    Static Methods Relevant to CameraBvr Objects

    +
    +


    parallelCamera

    +Statics Class +

    Creates a parallel camera for parallel (or orthographic) projection. The parallel camera is transformed the same way as the perspective camera, except that Z-scales have no effect (note, however, that zero or negative Z-scales yield undefined results). + +

    Prior to transformation, the parallel camera gazes in the negative z-direction, with positive y considered as "up." + +

    public static CameraBvr parallelCamera(
      NumberBvr nearclip
      );

    Parameters
    +
    nearclip +
    The NumberBvr object that is the Z-location of the near clipping plane. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the CameraBvr object. + + +


    perspectiveCamera

    +Statics Class +

    Creates a perspective camera for perspective rendering. On creation, the projection plane (the plane at which objects appear as their actual size) is located at Z=0, the projection point is located at [0 0 projdist], and the near clipping plane is located at [0 0 nearclip]. + +

    The projdst parameter specifies the distance between the projection plane and the projection point, and must be greater than zero. The smaller this distance, the more of a wide-angle effect is achieved. The larger this distance, the more of a telephoto effect is achieved. + +

    The nearclip parameter specifies the Z-location of the near clipping plane and must be less than projdst. In other words, the near clipping plane must lie on the same side of the projection point as the projection plane. Although it is tempting to place the near clipping plane as close as possible to the projection point, Z-buffer precision is lost dramatically as the near clipping plane gets closer to the projection point. (The main result of such precision loss is that far objects are rendered in front of near objects.) + +

    public static CameraBvr perspectiveCamera(
      NumberBvr projdst,
      NumberBvr nearclip
      );

    Parameters
    +
    projdst +
    The NumberBvr object that is the Z-location of the projection point. It must be greater than zero. This parameter can also be of type double. +
    nearclip +
    The NumberBvr object that is the Z-location of the near clipping plane. It must be less than projdst. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the CameraBvr object. + + +

    Remarks
    +

    The following diagram shows a model of the perspective camera. Note that the nearclip need not be in front of the projection plane. +

    +

    Perspective Camera +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0165.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0165.HTM new file mode 100644 index 0000000..70e4eec --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0165.HTM @@ -0,0 +1,239 @@ + + +Static Methods Relevant to ColorBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to ColorBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to ColorBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to CameraBvr Objects
    +*Next Topic: Static Fields Relevant to ColorBvr Objects
    +

    +

    +

    Static Methods Relevant to ColorBvr Objects

    +
    +


    colorHsl

    +Statics Class +

    Creates a color behavior that represents a color given by hue, saturation, and lightness values. The behavior's value at any given time depends on the values of h, s, and l. The following example creates a color whose hue varies with time, but whose saturation and lightness values are constant: + +

    //vary the hue over time
    +ColorBvr animCol = colorHsl(localTime, toBvr(0.5), toBvr(0.5));
    +
    +

    public static ColorBvr colorHsl(
      NumberBvr h,
      NumberBvr s,
      NumberBvr l
      );

    Parameters
    +
    h +
    A NumberBvr object specifying the hue or base color. 0.0 is red, 0.33 is green, and 0.67 is blue. This number is considered "modulo 1," which means, for example, that the numbers 1.67, and 0.67 are both considered to be 0.67. This parameter can also be of type double. +
    s +
    A NumberBvr object specifying saturation or intensity of the hue. If saturation is 0.0, the color produced is gray regardless of the hue value. This parameter can also be of type double. +
    l +
    A NumberBvr object specifying lightness or amount of white in the color. If lightness is 1.0, the color produced is white regardless of the hue and saturation values. Similarly, if lightness is 0.0, the color is black. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ColorBvr object. + + +

    Remarks
    +

    Hue, saturation, and lightness values can range from 0.0 to 1.0. If the corresponding number behavior has a value outside this range, then the number is considered modulo 1. + +

    See Also
    +

    colorRgb + +


    colorRgb

    +Statics Class +

    Creates a color behavior that represents a color given by red, green, and blue intensity values. The behavior's value at any given time depends on the values of r, g, and b. The following example creates a color behavior whose red component varies from 0 to 1: + +

    //Create a sawtooth wave that goes repetitively from 0 to 1
    +//Do this by taking the modulus of localTime and 1
    +NumberBvr sawtooth = mod(localTime, toBvr(1));
    +//Now create the RGB color, making red = to the value of sawtooth
    +ColorBvr col = colorRgb(sawtooth, toBvr(0), toBvr(0));
    +
    +

    public static ColorBvr colorRgb(
      NumberBvr r,
      NumberBvr g,
      NumberBvr b
      );

    Parameters
    +
    r, g, and b +
    The NumberBvr objects specifying the red, green, and blue values, respectively. The value of each specifies that color's intensity, with 0.0 for no color and 1.0 for the highest possible intensity. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the ColorBvr object. + + +

    Remarks
    +

    Intensity values can range from 0.0 to 1.0. If the corresponding number behavior has a value outside this range, the integer part of the value is discarded and only the fractional part is used. + +

    See Also
    +

    colorHsl + +


    colorRgb255

    +Statics Class +

    Creates a color behavior that represents a color given by red, green, and blue intensity values. The behavior's value at any given time depends on the values of r, g, and b. These values can be in the range [0, 255]. + +

    public static ColorBvr colorRgb255(
      short r,
      short g,
      short b
      );

    Parameters
    +
    r, g, and b +
    The shorts specifying the red, green, and blue values, respectively. The value of each specifies that color's intensity, with 0 for no color and 255 for the highest possible intensity. +
    +
    Return Values
    +

    Returns the ColorBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0166.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0166.HTM new file mode 100644 index 0000000..1ff3ddc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0166.HTM @@ -0,0 +1,216 @@ + + +Static Fields Relevant to ColorBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to ColorBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to ColorBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to ColorBvr Objects
    +*Next Topic: Static Fields Relevant to DashStyleBvr Objects
    +

    +

    +

    Static Fields Relevant to ColorBvr Objects

    +
    +
    +
    aqua +
    A color behavior (ColorBvr object) that is always aqua. In a range of [0, 1], its red, green, and blue intensity values are 0.00, 1.00, 1.00. In a range of [0-255], its values are 0, 255, 255. +
    black +
    A color behavior (ColorBvr object) that is always black. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.00, 0.00. In a range of [0-255], its values are 0, 0, 0. +
    blue +
    A color behavior (ColorBvr object) that is always blue. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.00, 1.00. In a range of [0-255], its values are 0, 0, 255. +
    cyan +
    A color behavior (ColorBvr object) that is always cyan. In a range of [0-1], its red, green, and blue intensity values are 0.00, 1.00, 1.00. In a range of [0-255], its values are 0, 255, 255. +
    fuchsia +
    A color behavior (ColorBvr object) that is always fuchsia. In a range of [0-1], its red, green, and blue intensity values are 1.00, 0.00, 1.00). In a range of [0-255], its values are 255, 0, 255. +
    gray +
    A color behavior (ColorBvr object) that is always gray. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.50,0.50. In a range of [0-255], its values are 128, 128, 128. +
    green +
    A color behavior (ColorBvr object) that is always green. In a range of [0-1], its red, green, and blue intensity values are 0.00, 1.00, 0.00. In a range of [0-255], its values are 0, 255, 0. +
    lime +
    A color behavior (ColorBvr object) that is always lime. In a range of [0-1], its red, green, and blue intensity values are 0.00, 1.00, 0.00. In a range of [0-255], its values are 0, 255, 0. +
    magenta +
    A color behavior (ColorBvr object) that is always magenta. In a range of [0-1], its red, green, and blue intensity values are 1.00, 0.00, 1.00. In a range of [0-255], its values are 255, 0, 255. +
    maroon +
    A color behavior (ColorBvr object) that is always maroon. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.00, 0.00. In a range of [0-255], its values are 128, 0, 0. +
    navy +
    A color behavior (ColorBvr object) that is always navy. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.00, 0.50. In a range of [0-255], its values are 0, 0, 128. +
    olive +
    A color behavior (ColorBvr object) that is always olive. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.50, 0.00. In a range of [0-255], its values are 128, 128, 0. +
    purple +
    A color behavior (ColorBvr object) that is always purple. In a range of [0-1], its red, green, and blue intensity values are 0.50, 0.00, 0.50. In a range of [0-255], its values are 128, 0, 128. +
    red +
    A color behavior (ColorBvr object) that is always red. In a range of [0-1], its red, green, and blue intensity values are 1.00, 0.00, 0.00. In a range of [0-255], its values are 255, 0, 0. +
    silver +
    A color behavior (ColorBvr object) that is always silver. In a range of [0-1], its red, green, and blue intensity values are 0.75, 0.75, 0.75. In a range of [0-255], its values are 192, 192, 192. +
    teal +
    A color behavior (ColorBvr object) that is always teal. In a range of [0-1], its red, green, and blue intensity values are 0.00, 0.50, 0.50. In a range of [0-255], its values are 0, 128, 128. +
    white +
    A color behavior (ColorBvr object) that is always white. In a range of [0-1], its red, green, and blue intensity values are 1.00, 1.00, 1.00. In a range of [0-255], its values are 255, 255, 255. +
    yellow +
    A color behavior (ColorBvr object) that is always yellow. In a range of [0-1], its red, green, and blue intensity values are 1.00, 1.00, 0.00. In a range of [0-255], its values are 255, 255, 0. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0167.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0167.HTM new file mode 100644 index 0000000..97bbc28 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0167.HTM @@ -0,0 +1,184 @@ + + +Static Fields Relevant to DashStyleBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to DashStyleBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to DashStyleBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to ColorBvr Objects
    +*Next Topic: Static Methods Relevant to DXMApplet Objects
    +

    +

    +

    Static Fields Relevant to DashStyleBvr Objects

    +
    +
    +
    dashStyleDashed +
    Creates a dashstyle behavior (DashStyleBvr object) that draws a dashed line (sequence of line segments and spaces). +
    dashStyleSolid +
    Creates a dashstyle behavior (DashStyleBvr object) that draws a solid line (continuous stroke). +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0168.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0168.HTM new file mode 100644 index 0000000..f1b6463 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0168.HTM @@ -0,0 +1,182 @@ + + +Static Methods Relevant to DXMApplet Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to DXMApplet Objects +DirectAnimation Animated Header --Static Methods Relevant to DXMApplet Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to DashStyleBvr Objects
    +*Next Topic: Static Methods Relevant to DXMEvent Objects
    +

    +

    +

    Static Methods Relevant to DXMApplet Objects

    +
    +


    registerErrorAndWarningReceiver

    +Statics Class +

    See registerErrorAndWarningReceiver in the Viewer Interface section. + +

    public static ErrorAndWarningReceiver registerErrorAndWarningReceiver(
      ErrorAndWarningReceiver w
      );

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0169.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0169.HTM new file mode 100644 index 0000000..41a304a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0169.HTM @@ -0,0 +1,501 @@ + + +Static Methods Relevant to DXMEvent Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to DXMEvent Objects +DirectAnimation Animated Header --Static Methods Relevant to DXMEvent Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to DXMApplet Objects
    +*Next Topic: Static Fields Relevant to DXMEvent Objects
    +

    +

    +

    Static Methods Relevant to DXMEvent Objects

    +
    +


    andEvent

    +Statics Class +

    Creates an event that occurs only when the two given events happen simultaneously. The event time for the new event is when both of the given events occur. + +

    public static DXMEvent andEvent(
      DXMEvent first,
      DXMEvent second
      );

    Parameters
    +
    first and second +
    The DXMEvent objects. +
    +
    Return Values
    +

    Returns a DXMEvent object. When the event occurs, it produces a PairObject. The first member is the event data returned by the first event. The second member is the event data returned by the second event. + + +


    keyDown

    +Statics Class +

    Returns an DXMEvent when a specific key is pressed. This is a state-transition event. + +

    public static DXMEvent keyDown(
      int keyCode
      );

    Parameters
    +
    keyCode +
    Can either be quoted characters such as 'a' or specific Java keycode constants. +
    +
    Return Values
    +

    Returns the DXMEvent object. This event produces no data. + + +

    Remarks
    +

    The following table lists the hexadecimal values for all the special keycodes. The pattern for each key is 0x10000 plus the Win32 scan code. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    KeyKeyCode +
    PGUP10021 +
    PGDN10022 +
    END10023 +
    HOME10024 +
    LEFT10025 +
    UP10026 +
    RIGHT10027 +
    DOWN10028 +
    INSERT1002D +
    DELETE1002E +
    NUMPAD010060 +
    NUMPAD110061 +
    NUMPAD210062 +
    NUMPAD310063 +
    NUMPAD410064 +
    NUMPAD510065 +
    NUMPAD610066 +
    NUMPAD710067 +
    NUMPAD810068 +
    NUMPAD910069 +
    MULTIPLY1006A +
    ADD1006B +
    SEPARATOR1006C +
    SUBTRACT1006D +
    DECIMAL1006E +
    DIVIDE1006F +
    F110070 +
    F210071 +
    F310072 +
    F410073 +
    F510074 +
    F610075 +
    F710076 +
    F810077 +
    F910078 +
    F1010079 +
    F111007A +
    F121007B +
    F131007C +
    F141007D +
    F151007E +
    F161007F +
    F1710080 +
    F1810081 +
    F1910082 +
    F2010083 +
    F2110084 +
    F2210085 +
    F2310086 +
    F2410087 +
    +


    keyUp

    +Statics Class +

    Returns an DXMEvent when a specific key is released. This is a state-transition event. + +

    public static DXMEvent keyUp(
      int keyCode
      );

    Parameters
    +
    keyCode +
    Can either be quoted characters such as 'a' or specific Java keycode constants. +
    +
    Return Values
    +

    Returns the DXMEvent object. This event produces no data. + + +

    Remarks
    +

    For a list of special keycodes, see keyDown. + +


    notEvent

    +Statics Class +

    Creates an event that occurs when the given event does not occur. This is useful for creating combined events that occur only if the given event is not also occurring, for example, an event that occurs when the left mouse button is down and the right button is not down. + +

    public static DXMEvent notEvent(
      DXMEvent ev
      );

    Parameters
    +
    ev +
    The DXMEvent object. +
    +
    Return Values
    +

    Returns the DXMEvent object. This event produces no data. + + +


    orEvent

    +Statics Class +

    Creates an event that occurs when either one of the given events occur. The event time for the new event is when either the first or second given event has occurred. + +

    public static DXMEvent orEvent(
      DXMEvent first,
      DXMEvent second
      );

    Parameters
    +
    first and second +
    The DXMEvent objects. +
    +
    Return Values
    +

    Returns a DXMEvent object. Its data is the event data of either the first or second event. + + +


    predicate

    +Statics Class +

    Creates an event that occurs when the value of the given boolean behavior changes from false to true. Note that, because of implementation dependencies and the potential for aliasing, the system cannot always detect when a boolean behavior becomes true. For example, the expression: predicate(eq(sin(localTime), toBvr(0))) may never occur unless the system happens to sample it when sin(localTime)is exactly zero. Therefore, it is advisable to use inequality comparisons (for example, gte) rather than equality comparisons (for example, eq). Alternatively, the timer constructor may be a better choice for these situations. +

    public static DXMEvent predicate(
      BooleanBvr bool
      );

    Parameters
    +
    bool +
    The BooleanBvr object. +
    +
    Return Values
    +

    Returns the DXMEvent. This event produces no data. + + +


    thenEvent

    +Statics Class +

    Creates an event if e2 occurs after e1. The event time of the new event is the time of the second event. + +

    public static DXMEvent thenEvent(
      DXMEvent e1,
      DXMEvent e2
      );

    Parameters
    +
    e1 +
    The first event, that, when it occurs, triggers the second event. +
    e2 +
    The second event, caused by the occurrence of the first event. +
    +
    Return Values
    +

    Returns the DXMEvent object. Its event data is the time the second event fired and a PairObject containing the event data for both events. + + +


    timer

    +Statics Class +

    Creates an event that occurs when the specified time has elapsed. + +

    public static DXMEvent timer(
      NumberBvr timeout
      );

    Parameters
    +
    timeout +
    The NumberBvr object. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the DXMEvent object. This event produces no data. + + +


    unregisterCallback

    +Statics Class +

    Used to unregister the callback. + +

    public static void unregisterCallback(
      Object object
      );

    Parameters
    +
    object +
    The object used to unregister the callback. +
    +
    See Also
    +

    registerCallback + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0170.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0170.HTM new file mode 100644 index 0000000..15b9098 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0170.HTM @@ -0,0 +1,192 @@ + + +Static Fields Relevant to DXMEvent Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to DXMEvent Objects +DirectAnimation Animated Header --Static Fields Relevant to DXMEvent Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to DXMEvent Objects
    +*Next Topic: Static Fields Relevant to EndStyleBvr Objects
    +

    +

    +

    Static Fields Relevant to DXMEvent Objects

    +
    +
    +
    always +
    A DXMEvent object that occurs at all times. It produces no data. +
    leftButtonDown +
    The DXMEvent object that occurs when the left mouse button is pressed. This is a state-transition event. It produces no data. +
    leftButtonUp +
    The DXMEvent object that occurs when the left mouse button is released. This is a state-transition event. It produces no data. +
    never +
    An event (DXMEvent object) that never occurs. It produces no data. +
    rightButtonDown +
    The DXMEvent object that occurs when the right mouse button is pressed. This is a state-transition event. It produces no data. +
    rightButtonUp +
    The DXMEvent object that occurs when the right mouse button is released. This is a state-transition event. It produces no data. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0171.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0171.HTM new file mode 100644 index 0000000..a5fb979 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0171.HTM @@ -0,0 +1,186 @@ + + +Static Fields Relevant to EndStyleBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to EndStyleBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to EndStyleBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to DXMEvent Objects
    +*Next Topic: Static Methods Relevant to FontStyleBvr Objects
    +

    +

    +

    Static Fields Relevant to EndStyleBvr Objects

    +
    +
    +
    endStyleFlat +
    An endstyle behavior (EndStyleBvr object) that draws the end of a line as a line segment, perpendicular to the final direction of the line and through the last point of the line. +
    endStyleRound +
    An endstyle behavior (EndStyleBvr object) that draws the end of a line as a circle, having a diameter equal to the width of the line and its center at the last point of the line. +
    endStyleSquare +
    An endstyle behavior (EndStyleBvr object) that draws the end of a line as a square, having a height and width equal to the width of the line and its center at the last point of the line. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0172.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0172.HTM new file mode 100644 index 0000000..0ea4d45 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0172.HTM @@ -0,0 +1,194 @@ + + +Static Methods Relevant to FontStyleBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to FontStyleBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to FontStyleBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to EndStyleBvr Objects
    +*Next Topic: Static Fields Relevant to FontStyleBvr Objects
    +

    +

    +

    Static Methods Relevant to FontStyleBvr Objects

    +
    +


    font

    +Statics Class +

    Specifies the face, size in points, and color of a FontStyleBvr object. Because these parameters are all behaviors, they can vary over time. + +

    public static FontStyleBvr font(
      StringBvr face,
      NumberBvr points,
      ColorBvr color>;

    Parameters
    +
    face +
    The StringBvr object specifying the font face. This parameter can also be of type java.lang.String. +
    points +
    The NumberBvr object specifying the font size, in points. This parameter can also be of type double. +
    color +
    The ColorBvr object specifying the font color. +
    +
    Return Values
    +

    Returns the FontStyleBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0173.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0173.HTM new file mode 100644 index 0000000..c59f228 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0173.HTM @@ -0,0 +1,182 @@ + + +Static Fields Relevant to FontStyleBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to FontStyleBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to FontStyleBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to FontStyleBvr Objects
    +*Next Topic: Static Methods Relevant to GeometryBvr Objects
    +

    +

    +

    Static Fields Relevant to FontStyleBvr Objects

    +
    +
    +
    defaultFont +
    Creates a FontStyleBvr object that is a Times-Roman, black, 12pt font that is neither bold nor italicized. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0174.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0174.HTM new file mode 100644 index 0000000..5fd6c66 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0174.HTM @@ -0,0 +1,281 @@ + + +Static Methods Relevant to GeometryBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to GeometryBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to GeometryBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to FontStyleBvr Objects
    +*Next Topic: Static Fields Relevant to GeometryBvr Objects
    +

    +

    +

    Static Methods Relevant to GeometryBvr Objects

    +
    +


    importGeometry

    +Statics Class +

    Creates a geometry behavior by synchronously importing the given VRML or .X file. Synchronous loads are blocking calls, which means that ticking will not continue on any model until all synchronous downloads are completed. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See below for a description of the asynchronous import method. + +

    public static GeometryBvr importGeometry(
      URL url
      );

    Parameters
    +
    url +
    The fully-qualified pathname of the file to be downloaded. This parameter is of type java.net.URL. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +


    importGeometry

    +Statics Class +

    Creates a geometry behavior by asynchronously importing the given VRML or .X file. Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import method, see above. + +

    public static GeometryBvr importGeometry(
      URL url,
      GeometryBvr geoStandIn,
      DXMEvent[] ev,
      NumberBvr[] progress,
      NumberBvr[] size
      );

    Parameters
    +
    url +
    The fully-qualified pathname of the geometry to be downloaded. This parameter is of type java.net.URL. +
    geoStandIn +
    The geometry to use while the contents at url are still being downloaded. This argument cannot be null. +
    ev +
    The event to trigger once the download is complete. This argument can be null. +
    progress +
    A NumberBvr that goes from 0 to 1, tracking the progress of the download. For files downloaded via http, progress is reported as the percentage of the file that has been downloaded. For other protocols, the value may simply start at 0 and change to 1 once the download is complete. This argument can be null. +
    size +
    The size of the geometry, in bytes. The value begins at -1 and will change to the true size if it is available. This argument can be null. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +


    soundSource

    +Statics Class +

    Creates a geometry behavior that contains the given sound behavior. The bounding box is the empty bounding box, where the maximum coordinate is less than the minimum coordinate. + +

    public static GeometryBvr soundSource(
      SoundBvr sound
      );

    Parameters
    +
    sound +
    The SoundBvr object. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +


    spotLight

    +Statics Class +

    Creates a spotlight geometry. A spotlight is a positioned, directed light source initially located at the origin and directed along the negative z-axis. Examples of real-world spotlights include desk lamps, headlights, and flashlights. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. + +

    The fullcone parameter specifies the half-angle of the region that will receive the full intensity of the spotlight. This parameter can have values from 0.00 to pi. + +

    The cutoff parameter specifies the half-angle of the region past which surfaces will receive no illumination. This parameter can have values from the value of fullcone to pi. + +

    public static GeometryBvr spotLight(
      NumberBvr fullcone,
      NumberBvr cutoff
      );

    Parameters
    +
    fullcone +
    The NumberBvr object specifying the angle in radians from the main spotlight axis for which surfaces will receive full illumination from the light. +
    cutoff +
    The NumberBvr object specifying the angle in radians from the main spotlight axis past which surfaces will receive no illumination from the light. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    Remarks
    +

    Surfaces receive illumination from the spotlight in the following manner: + +

    • If the surface point is within fullcone radians of the main spotlight axis, the spotlight acts as a point light source (including distance attenuation effects). +
    • If the surface point is greater than fullcone radians, but is within cutoff radians of the main spotlight axis, the surface receives illumination that is attenuated by the angular displacement. +
    • If the surface point is greater than cutoff radians from the main spotlight axis, it receives no illumination. +
    +
    Remarks
    +

    These rules are illustrated in the following diagram: +

    +

    Spotlight +

    +

    Remarks
    +

    The following diagram shows how the intensity of the spotlight changes in relationship to the angle: +

    +

    Intensity +

    +


    union

    +Statics Class +

    Creates a geometry behavior by combining the given geometries. The new geometry contains all elements of the original geometries. The bounding box of a set of unioned geometries is simply the union of the bounding boxes of each of the geometries. + +

    public static GeometryBvr union(
      GeometryBvr g1,
      GeometryBvr g2
      );

    Parameters
    +
    g1 and g2 +
    The GeometryBvr objects. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +


    unionArray

    +Statics Class +

    Creates a geometry behavior by combining the geometries in the array. The new geometry contains all elements of the original geometries. The bounding box of a set of unioned geometries is simply the union of the bounding boxes of each of the geometries. + +

    public static GeometryBvr unionArray(
      GeometryBvr[],
      geometries
      );

    Parameters
    +
    geometries +
    The array of GeometryBvr objects. +
    +
    Return Values
    +

    Returns the GeometryBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0175.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0175.HTM new file mode 100644 index 0000000..1567871 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0175.HTM @@ -0,0 +1,188 @@ + + +Static Fields Relevant to GeometryBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to GeometryBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to GeometryBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to GeometryBvr Objects
    +*Next Topic: Static Methods Relevant to ImageBvr Objects
    +

    +

    +

    Static Fields Relevant to GeometryBvr Objects

    +
    +
    +
    ambientLight +
    A geometry behavior (GeometryBvr object) in which the light source is ambient (room) light. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. Ambient light is light that, instead of coming directly from a light source, bounces from surface to surface and provides overall scene-lighting. For example, if you are in a room lit by a lamp, everything not directly lit by the lamp is receiving ambient light. It leaves the lamp, bounces off the walls, the floors, the ceiling, and all around, until it reaches almost the entire room. Using too much ambient light can make a scene look washed out, while too little will yield shadowed areas that look unnaturally black. Unlike directional lights and point lights, transformations have no effect on ambient lights. +
    directionalLight +
    A geometry behavior (GeometryBvr object) in which the light source is positioned pointing down the negative z axis. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. Directional light specifies a light such that the light direction is the same everywhere. This is in contrast to a positional light such as a point or spot light, where the direction to the light source changes depending on where the surface is. Directional lights are useful for simulating the sun because, from our perspective on earth, the sun's rays appear to travel in the same direction. Directional lights are also cheaper to compute than positional lights, though this difference may be negligible and should not be assumed. Transformations do have an effect on directional lights. +
    emptyGeometry +
    A geometry behavior (GeometryBvr object in which all points are invisible (transparent) and undetectable. The bounding box is the empty bounding box, where the maximum coordinate is less than the minimum coordinate. +
    pointLight +
    A geometry behavior (GeometryBvr object) in which the light source is positioned at the origin and radiates light in all directions. The bounding box is the empty bounding box, where the maximum extent is less than the minimum extent. Pointlights simulate most real-world lights such as bare light bulbs, wall-mounted light fixtures, and ceiling lights. They shine in all directions, radiating outward from the center. Transformations do have an effect on point lights. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0176.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0176.HTM new file mode 100644 index 0000000..4f1f7a2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0176.HTM @@ -0,0 +1,570 @@ + + +Static Methods Relevant to ImageBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to ImageBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to ImageBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to GeometryBvr Objects
    +*Next Topic: Static Fields Relevant to ImageBvr Objects
    +

    +

    +

    Static Methods Relevant to ImageBvr Objects

    +
    +


    gradientHorizontal

    +Statics Class +

    Creates an image behavior that smoothly interpolates between the start and stop colors. Colors start on the left and go toward the right, based on the power specified by fallOff. The extent of the generated image is [-0.5,-0.5] to [0.5,0.5]. + +

    public static ImageBvr gradientHorizontal(
      ColorBvr start,
      ColorBvr stop,
      NumberBvr fallOff
      );

    Parameters
    +
    start +
    The ColorBvr object representing the first color of the gradient fill. +
    stop +
    The ColorBvr object representing the final color of the gradient fill. +
    fallOff +
    The NumberBvr object used to control how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    gradientPolygon

    +Statics Class +

    Creates a polygon from an array of points and an array of colors. The polygon has a smooth interpolation between the colors at the vertices. This interpolation is in RGB space. The image is transparent and unpickable outside the polygon. The polygon must be convex and fanned, with at least 3 vertices. The tessellation into triangles occurs by fanning around the first vertex. If, for example, the first triangle is from vertices [0, 1, 2], the second is from [0, 2, 3], and so on. The tessellation determines how the color interpolation is done. The bounding box is the box surrounding the points of the polygon. + +

    public static ImageBvr gradientPolygon(
      Point2Bvr[] pts,
      ColorBvr[] colors
      );

    Parameters
    +
    pts +
    The array of points that determine the polygon's vertices. +
    colors +
    The array of colors corresponding to the vertices. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    gradientSquare

    +Statics Class +

    Creates an image behavior with a square color wash. The image is a unit-sized square, centered at the origin, reaching from [-0.5, -0.5] to [0.5, 0.5]. The image contains the specified colors in the specified corners. The gradient fills are determined by bilinearly interpolating between these specified colors. (This means that, rather than being simply a four-cornered polygon, it is a polygon with four corners plus a point in the middle that is the average of the four colors.) The image is transparent and unpickable outside of this region. The interpolation is in RGB space. The bounding box is a box from (-0.5, -0.5) to (0.5, 0.5). +

    public static ImageBvr gradientSquare(
      ColorBvr lowerLeft,
      ColorBvr upperLeft,
      ColorBvr upperRight,
      ColorBvr lowerRight
      );

    Parameters
    +
    lowerLeft +
    The color in the lower-left hand corner of square. +
    upperLeft +
    The color in the upper-left hand corner of the square. +
    upperRight +
    The color in the upper-right hand corner of the square. +
    lowerRight +
    The color in the lower-right hand corner of the square. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    hatchBackwardDiagonal

    +Statics Class +

    Creates backward diagonal (lines that slant from right to left) hatch marks. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    public static ImageBvr hatchBackwardDiagonal(
      ColorBvr color NumberBvr size
      );

    Parameters
    +
    color +
    The ColorBvr object representing the line color. +
    size +
    The NumberBvr object representing the size of the hatch box. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    hatchCross

    +Statics Class +

    Creates cross-hatched markings. This method can be thought of as a combination of the hatchVertical and the hatchHorizontal methods. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    public static ImageBvr hatchCross(
      ColorBvr color,
      NumberBvr size
      );

    Parameters
    +
    color +
    The ColorBvr object representing the line color. +
    size +
    The NumberBvr object representing the size of the hatch box. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    hatchDiagonalCross

    +Statics Class +

    Creates diagonally criss-crossed hatch marks. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    public static ImageBvr hatchDiagonalCross(
      ColorBvr color,
      NumberBvr size
      );

    Parameters
    +
    color +
    The ColorBvr object representing the line color. +
    size +
    The NumberBvr object representing the size of the hatch box. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    hatchForwardDiagonal

    +Statics Class +

    Creates forward diagonal (lines that slant from left to right) hatch marks. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. + +

    public static ImageBvr hatchForwardDiagonal(
      ColorBvr color,
      NumberBvr size
      );

    Parameters
    +
    color +
    The ColorBvr object representing the line color. +
    size +
    The NumberBvr object representing the size of the hatch box. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    hatchHorizontal

    +Statics Class +

    Creates horizontal hatch lines. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. + +

    public static ImageBvr hatchHorizontal(
      ColorBvr color,
      NumberBvr size
      );

    Parameters
    +
    color +
    The ColorBvr object representing the line color. +
    size +
    The NumberBvr object representing the size of the hatch box. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    hatchVertical

    +Statics Class +

    Creates vertical hatch lines. All hatches fit in a box, of dimension size, that is infinitely tiled. For perpendicular hatches, the size of the box is twice the distance between the hatch lines. By default, hatch marks are black and appear on a transparent background. +

    public static ImageBvr hatchVertical(
      ColorBvr color,
      NumberBvr size
      );

    Parameters
    +
    color +
    The ColorBvr object representing the line color. +
    size +
    The NumberBvr object representing the size of the hatch box. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    importImage

    +Statics Class +

    Creates an image behavior by synchronously importing the given bitmap. The pixels of the bitmap are mapped to points in the image such that the center of the bitmap is placed at (0,0). The extent of the points affected depends on the width and height of the bitmap in pixels and the resolution of the bitmap in pixels per meter. The bounding box of an imported image is calculated as follows: If the pixel dimensions are W´H, and given that: + +

    halfWidthMeters = Statics.pixel * W/2;
    +halfHeightMeters = Statics.pixel * H/2;
    +
    +

    then the bounding box will be (-halfWidthMeters, -halfHeightMeters) to (halfWidthMeters, halfHeightMeters) with the resultant image centered at the origin. + +

    Synchronous loads are blocking calls, which means that ticking will not continue on any model until all synchronous downloads are completed. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See below for a description of the asynchronous import method. + +

    public static importImage(
      URL url
      );

    Parameters
    +
    url +
    The fully-qualified pathname of the image to be downloaded. This parameter is of type java.net.URL. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    The file formats that can be imported are .PNG, .JPG, .BMP, and .GIF. + +

    See Also
    +

    importImageColorKey + +


    importImage

    +Statics Class +

    Creates an image behavior by asynchronously importing the given bitmap. The pixels of the bitmap are mapped to points in the image such that the center of the bitmap is placed at (0,0). The extent of the points affected depends on the width and height of the bitmap in pixels and the resolution of the bitmap in pixels per meter. The bounding box of an imported image is calculated as follows: If the pixel dimensions are W´H, and given that: + +

    halfWidthMeters = Statics.pixel * W/2;
    +halfHeightMeters = Statics.pixel * H/2;
    +
    +

    then the bounding box will be (-halfWidthMeters, -halfHeightMeters) to (halfWidthMeters, halfHeightMeters) with the resultant image centered at the origin. + +

    Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import method, see above. + +

    public static ImageBvr importImage(
      URL url,
      ImageBvr imgStandIn,
      DXMEvent[] ev,
      NumberBvr[] progress,
      NumberBvr[] size
      );

    Parameters
    +
    url +
    The fully-qualified pathname of the image to be downloaded. This parameter is of type java.net.URL. +
    imgStandIn +
    The image to use while the contents at url are still being downloaded. This argument cannot be null, however, the image can be empty. +
    ev +
    The event to trigger once the download is complete. This argument can be null. +
    progress +
    A NumberBvr that goes from 0 to 1, tracking the progress of the download. For files downloaded via http, progress is reported as the percentage of the file that has been downloaded. Other protocols, the value may simply start at 0 and change to 1 once the download is complete. This argument can be null. +
    size +
    A NumberBvr that is the size of the image, in bytes. The value begins at -1 and will change to the true size if it is available. This argument can be null. + +
    +
    Return Values
    +

    Returns the ImageBvr object. + + + +

    Remarks
    +

    The file formats that can be imported are .PNG, .JPG, .BMP, and .GIF. + +

    See Also
    +

    importImageColorKey + +


    importImageColorKey

    +Statics Class +

    Allows a particular color in the synchronously imported image, specified by an RGB value, to be treated as transparent. + +

    public static ImageBvr importImageColorKey(
      URL url,
      ColorBvr red,
      ColorBvr green,
      ColorBvr blue
      );

    Parameters
    +
    url +
    The pathname (a string) of the image to be downloaded. +
    red +
    The ColorBvr red component, expressed as a value ranging from 0 to 255. +
    green +
    The ColorBvr green component, expressed as a value ranging from 0 to 255. +
    blue +
    The ColorBvr blue component, expressed as a value ranging from 0 to 255. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    The file formats that can be imported are .PNG, .JPG, .BMP, and .GIF. + +

    See Also
    +

    ImportImage + +


    importImageColorKey

    +Statics Class +

    Allows a particular color in the asynchronously imported image, specified by an RGB value, to be treated as transparent. + +

    public static ImageBvr importImage(
      URL url,
      ImageBvr imgStandIn,
      DXMEvent[] ev,
      NumberBvr[] progress,
      NumberBvr[] size,
      ColorBvr red,
      ColorBvr green,
      ColorBvr blue
      );

    Parameters
    +
    url +
    The pathname (a string) of the image to be downloaded. +
    imgStandIn +
    The image to use while the contents at url are still being downloaded. This argument cannot be null, however, the image can be empty. +
    ev +
    The event to trigger once the download is complete. This argument can be null. +
    progress +
    A NumberBvr that goes from 0 to 1, tracking the progress of the download. For files downloaded via http, progress is reported as the percentage of the file that has been downloaded. Other protocols, the value may simply start at 0 and change to 1 once the download is complete. This argument can be null. +
    size +
    A NumberBvr that is the size of the image, in bytes. The value begins at -1 and will change to the true size if it is available. This argument can be null. +
    red +
    The ColorBvr red component, expressed as a value ranging from 0 to 255. +
    green +
    The ColorBvr green component, expressed as a value ranging from 0 to 255. +
    blue +
    The ColorBvr blue component, expressed as a value ranging from 0 to 255. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    Remarks
    +

    The file formats that can be imported are .PNG, .JPG, .BMP, and .GIF. + +

    See Also
    +

    importImage + +


    importMovie

    +Statics Class +

    Downloads a movie synchronously. Synchronous loads are blocking calls, which means that ticking will not continue on any model until all synchronous downloads are completed. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See below for a description of the asynchronous import method. + +

    The image portion of a movie has the same bounding box and placement as a static image such as a PNG or JPEG. For more information, seeimportImage. + +

    public static NumberBvr importMovie(
      URL url,
      ImageBvr[] img,
      SoundBvr[] snd
      );

    Parameters
    +
    url +
    The fully-qualified pathname of the movie to be downloaded. This parameter is of type java.net.URL. +
    img +
    The image portion of the movie (passed by reference). +
    snd +
    The sound portion of the movie (passed by reference). +
    +
    Return Values
    +

    Returns the NumberBvr object that is the length of the movie in seconds. + + +


    importMovie

    +Statics Class +

    Imports a movie asynchronously. Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import method, see above. + +

    The image portion of a movie has the same bounding box and placement as a static image such as a PNG or GIF. For more information, seeimportImage. + +

    public static NumberBvr importMovie(
      URL url,
      ImageBvr[] img,
      SoundBvr[] snd,
      ImageBvr imgStandIn,
      SoundBvr sndStandIn,
      DXMEvent[] ev,
      NumberBvr[] progress,
      NumberBvr[] size
      );

    Parameters
    +
    url +
    The fully-qualified pathname of the movie to download. This parameter is of type java.net.URL. +
    img +
    The image portion of the movie (passed by reference). +
    snd +
    The sound portion of the movie (passed by reference). +
    imgStandIn +
    The image to use while the movie is still being downloaded. This parameter cannot be null, however, the image can be empty. +
    sndStandIn +
    The sound to use while the movie is still being downloaded. This parameter cannot be null, however, the sound can be silence. +
    progress +
    A NumberBvr that goes from 0 to 1, tracking the progress of the download. For files downloaded via http, progress is reported as the percentage of the file that has been downloaded. Other protocols, the value may simply start at 0 and change to 1 once the download is complete. This argument can be null. +
    size +
    A NumberBvr that is the size of the image, in bytes. The value begins at -1 and will change to the true size if it is available. This argument can be null. +
    +
    Return Values
    +

    Returns the NumberBvr object that is the length of the movie in seconds. + + +


    overlay

    +Statics Class +

    Creates an image behavior by laying the image behavior i1 over the image behavior i2. The new image consists of all fully opaque points of i1, all points of i2 that are under fully transparent points in i1, and all partially opaque points of i1 modified such that the new point is a combination of the i1 point and the i2 point under it. The bounding box of a set of overlaid images is simply the union of the bounding boxes of the images themselves. + +

    public static ImageBvr overlay(
      ImageBvr i1,
      ImageBvr i2
      );

    Parameters
    +
    i1 and i2 +
    The ImageBvr objects. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    overlayArray

    +Statics Class +

    Creates an image behavior by layering the ImageBvr objects. The bounding box of a set of overlaid images is simply the union of the bounding boxes of the images themselves. + +

    public static ImageBvr overlayArray(
      ImageBvr[] im
      );

    Parameters
    +
    im +
    The ImageBvr objects in the array. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    radialGradientPolygon

    +Statics Class +

    Creates an image behavior that is a regular polygon with a radial fill. The image contains the specified colors at the origin and the exterior points, respectively. The gradient fill is determined by the fallOff argument and occurs in RGB space. Outside of the filled-in region, the image is transparent and unpickable. The bounding box is the box surrounding the points of the polygon. + +

    public static ImageBvr radialGradientPolygon(
      ColorBvr inner,
      ColorBvr outer,
      Point2Bvr[] points,
      NumberBvr fallOff
      );

    Parameters
    +
    inner +
    The ColorBvr object representing the color at the origin of the polygon. +
    outer +
    The ColorBvr object representing the color at the vertices. +
    points +
    The Point2Bvr object representing the array of points that determine the polygon's vertices. +
    fallOff +
    The NumberBvr object used to control how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    radialGradientRegularPoly

    +Statics Class +

    Creates an image behavior that is a regular, gradient polygon with the specified number of sides (there must be at least 3) and a radial fill. The image contains the specified colors at the origin and the exterior points, respectively. The gradient fill is determined by the fallOff argument and occurs in RGB space. Outside of the filled-in region, the image is transparent and unpickable. The bounding box is the box surrounding the points of the polygon. + +

    public static ImageBvr radialGradientRegularPoly(
      ColorBvr inner,
      ColorBvr outer,
      NumberBvr edges,
      NumberBvr fallOff
      );

    Parameters
    +
    inner +
    The ColorBvr object representing the color at the origin of the polygon. +
    outer +
    The ColorBvr object representing the color at the vertices. +
    edges +
    The NumberBvr object representing the number of edges the polygon has. This parameter can also be of type double. +
    fallOff +
    The NumberBvr object used to control how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    radialGradientSquare

    +Statics Class +

    Creates an image behavior with a square radial fill. The image is a unit-sized square, centered at the origin, reaching from [-0.5, -0.5] to [0.5, 0.5]. The image contains the specified colors in the center and at the corners, respectively. The gradient fill is determined by the fallOff argument. The interpolation occurs in RGB space. Outside of the fill, the image is transparent and unpickable. The bounding box is a box from [-0.5, -0.5] to [0.5, 0.5]. + +

    public static ImageBvr radialGradientSquare(
      ColorBvr inner,
      ColorBvr outer,
      NumberBvr fallOff
      );

    Parameters
    +
    inner +
    The ColorBvr at the center of the image. +
    outer +
    The ColorBvr at the corners of the image. +
    fallOff +
    The NumberBvr object used to control how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if you are transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    solidColorImage

    +Statics Class +

    Creates an image behavior and applies the given color behavior to all points in the image. The bounding box of a solid-color image is the infinite bounding box. + +

    public static ImageBvr solidColorImage(
      ColorBvr col
      );

    Parameters
    +
    col +
    The ColorBvr object. +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +


    stringImage

    +Statics Class +

    Constructs an ImageBvr object from a StringBvr object and a FontStyleBvr object. + +

    public static ImageBvr stringImage(
      StringBvr string,
      FontStyleBvr font
      );

    Parameters
    +
    string +
    The StringBvr object specifying the (potentially) animated text. This parameter can also be of type java.lang.String. +
    font +
    The FontStyleBvr object specifying the font style (this can include the face, the size, the color, and the attributes). +
    +
    Return Values
    +

    Returns the ImageBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0177.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0177.HTM new file mode 100644 index 0000000..4557da8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0177.HTM @@ -0,0 +1,184 @@ + + +Static Fields Relevant to ImageBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to ImageBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to ImageBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to ImageBvr Objects
    +*Next Topic: Static Fields Relevant to JoinStyleBvr Objects
    +

    +

    +

    Static Fields Relevant to ImageBvr Objects

    +
    +
    +
    detectableEmptyImage +
    An image behavior (ImageBvr object) in which all points are transparent but detectable. This image is useful for blocking mouse input from underlying image, allowing that input to be redirected. The bounding box is of infinite extent. +
    emptyImage +
    An image behavior (ImageBvr object) in which all points are transparent and undetectable. This has a empty bounding box, which means that its maximum point is less than its minimum point. This allows operations such as union and intersection to produce the correct results. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0178.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0178.HTM new file mode 100644 index 0000000..02a9a95 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0178.HTM @@ -0,0 +1,186 @@ + + +Static Fields Relevant to JoinStyleBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to JoinStyleBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to JoinStyleBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to ImageBvr Objects
    +*Next Topic: Static Fields Relevant to LineStyleBvr Objects
    +

    +

    +

    Static Fields Relevant to JoinStyleBvr Objects

    +
    +
    +
    joinStyleBevel +
    An joinstyle behavior (JoinStyleBvr object) that joins two line segments by drawing a straight line between the outside corners of the segments and filling the resulting enclosed area. +
    joinStyleMiter +
    An joinstyle behavior (JoinStyleBvr object) that joins two line segments by extending the outside edges of the segments until they intersect and filling the resulting enclosed area. The miter length is defined as the distance from the intersection of the line walls on the inside of the join to the intersection of the line walls on the outside of the join. +
    joinStyleRound +
    An joinstyle behavior (JoinStyleBvr object) that joins two line segments by drawing an arc between the outside corners of the segments and filling the resulting enclosed area. The center of the arc is at the common endpoint, the diameter is the width of the line. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0179.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0179.HTM new file mode 100644 index 0000000..7966f5c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0179.HTM @@ -0,0 +1,182 @@ + + +Static Fields Relevant to LineStyleBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to LineStyleBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to LineStyleBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to JoinStyleBvr Objects
    +*Next Topic: Static Methods Relevant to MatteBvr Objects
    +

    +

    +

    Static Fields Relevant to LineStyleBvr Objects

    +
    +
    +
    defaultLineStyle +
    A linestyle behavior (LineStyleBvr object) whose style is detail. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0180.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0180.HTM new file mode 100644 index 0000000..e572c52 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0180.HTM @@ -0,0 +1,255 @@ + + +Static Methods Relevant to MatteBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to MatteBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to MatteBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to LineStyleBvr Objects
    +*Next Topic: Static Fields Relevant to MatteBvr Objects
    +

    +

    +

    Static Methods Relevant to MatteBvr Objects

    +
    +


    difference

    +Statics Class +

    Creates a matte behavior that is the difference between the given mattes. The difference consists of only those elements of the path and/or text in m1 that are not also in m2. + +

    public static MatteBvr difference(
      MatteBvr m1,
      MatteBvr m2
      );

    Parameters
    +
    m1 and m2 +
    The MatteBvr objects. +
    +
    Return Values
    +

    Returns the MatteBvr object. + + +

    See Also
    +

    intersect, union + +


    fillMatte

    +Statics Class +

    Creates a matte behavior consisting of the given path behavior. Clipping an image with this matte preserves that portion of the image that is inside the path. + +

    public static MatteBvr fillMatte(
      Path2Bvr path
      );

    Parameters
    +
    path +
    The Path2Bvr object. If the path is not closed, the start and end points are implicitly connected to close the path. +
    +
    Return Values
    +

    Returns the MatteBvr object. + + +

    See Also
    +

    textMatte + +


    intersect

    +Statics Class +

    Creates a matte behavior that is the intersection of the given mattes. The intersection consists of only those elements of the paths and/or text of the original mattes that are the same. + +

    public static MatteBvr intersect(
      MatteBvr m1,
      MatteBvr m2
      );

    Parameters
    +
    m1 and m2 +
    The MatteBvr objects. +
    +
    Return Values
    +

    Returns the MatteBvr object. + + +

    See Also
    +

    union, difference + +


    textMatte

    +Statics Class +

    Creates a matte behavior consisting of the given StringBvr object, and with an appearance specified by the FontStyleBvr object. Clipping an image with this matte preserves that portion of the image that is inside the text. + +

    public static MatteBvr textMatte(
      StringBvr text,
      FontStyleBvr fs
      );

    Parameters
    +
    text +
    The StringBvr object representing the text. +
    fs +
    The FontStyleBvr object representing the font style. +
    +
    Return Values
    +

    Returns the MatteBvr object. + + +

    See Also
    +

    fillMatte + +


    union

    +Statics Class +

    Creates a matte behavior that is the union of the given mattes. The union consists of all elements of the paths and/or text in the original mattes. + +

    public static MatteBvr union(
      MatteBvr m1,
      MatteBvr m2
      );

    Parameters
    +
    m1 and m2 +
    The MatteBvr objects. +
    +
    Return Values
    +

    Returns the MatteBvr object. + + +

    See Also
    +

    intersect, difference + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0181.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0181.HTM new file mode 100644 index 0000000..81de913 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0181.HTM @@ -0,0 +1,184 @@ + + +Static Fields Relevant to MatteBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to MatteBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to MatteBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to MatteBvr Objects
    +*Next Topic: Static Fields Relevant to MicrophoneBvr Objects
    +

    +

    +

    Static Fields Relevant to MatteBvr Objects

    +
    +
    +
    clearMatte +
    A matte behavior (MatteBvr object) that when applied to an image preserves the entire image (that is, it clips nothing). +
    opaqueMatte +
    A matte behavior (MatteBvr object) that when applied to an image clips the entire image (that is, preserves no part of the image). +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0182.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0182.HTM new file mode 100644 index 0000000..37c6d35 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0182.HTM @@ -0,0 +1,182 @@ + + +Static Fields Relevant to MicrophoneBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to MicrophoneBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to MicrophoneBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to MatteBvr Objects
    +*Next Topic: Static Methods (Miscellaneous)
    +

    +

    +

    Static Fields Relevant to MicrophoneBvr Objects

    +
    +
    +
    defaultMicrophone +
    A microphone behavior (MicrophoneBvr object) that is positioned at the origin, listening along the negative z axis with an upward orientation along the positive y axis. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0183.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0183.HTM new file mode 100644 index 0000000..0725c46 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0183.HTM @@ -0,0 +1,215 @@ + + +Static Methods (Miscellaneous) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods (Miscellaneous) +DirectAnimation Animated Header --Static Methods (Miscellaneous)* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to MicrophoneBvr Objects
    +*Next Topic: Static Fields (Miscellaneous)
    +

    +

    +

    Static Methods (Miscellaneous)

    +
    +


    buildURL

    +Statics Class +

    Constructs a fully-qualified path from a base URL and a file pathname. The following code fragment constructs one URL for the directory where images are stored and another for where sounds are stored: + +

    
    +{
    +// This is a piece of a larger program
    +// Construct the URLs
    +URL mediabase = buildURL(getImportBase(), "../../../../../../Media/");
    +URL imgBase = buildURL(mediabase, "image/");
    +URL sndBase = buildURL(mediabase, "sound/");
    +
    +//Create an image behavior by importing a bitmap
    +ImageBvr img = importImage(buildURL(imgBase, "img1.jpg");
    +
    +//The rest of the program
    +
    +}
    +
    +

    public static URL buildURL(
      URL url,
      String pathname
      );

    Parameters
    +
    url +
    The base URL. +
    pathname +
    The file path. +
    +
    Return Values
    +

    Returns a java.net.URL object. + + +


    getVersionString

    +Statics Class +

    Returns the version string in the form MM.NN.BBBB, where MM is the major version, NN is the minor version, and BBBB is the build number. + +

    public static String getVersionString( );

    Return Values
    +

    Returns the String object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0184.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0184.HTM new file mode 100644 index 0000000..64a4069 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0184.HTM @@ -0,0 +1,192 @@ + + +Static Fields (Miscellaneous) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields (Miscellaneous) +DirectAnimation Animated Header --Static Fields (Miscellaneous)* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods (Miscellaneous)
    +*Next Topic: Static Methods Relevant to MontageBvr Objects
    +

    +

    +

    Static Fields (Miscellaneous)

    +
    +
    +
    cm +
    The centimeter unit. This returns a double +
    foot +
    The foot unit. This returns a double. +
    inch +
    The inch unit. This returns a double. +
    meter +
    The meter unit. This returns a double. +
    mm +
    The millimeter unit. This returns a double. +
    pixelBvr +
    The pixel unit. This returns a NumberBvr. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0185.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0185.HTM new file mode 100644 index 0000000..9461e28 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0185.HTM @@ -0,0 +1,204 @@ + + +Static Methods Relevant to MontageBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to MontageBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to MontageBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields (Miscellaneous)
    +*Next Topic: Static Fields Relevant to MontageBvr Objects
    +

    +

    +

    Static Methods Relevant to MontageBvr Objects

    +
    +


    imageMontage

    +Statics Class +

    Creates a montage behavior consisting of a single image behavior at the given Z-value. + +

    public static MontageBvr imageMontage(
      ImageBvr image,
      NumberBvr Z-value
      );

    Parameters
    +
    image +
    The ImageBvr object. +
    Z-value +
    The NumberBvr object. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the MontageBvr object. + + +


    union

    +Statics Class +

    Creates a montage behavior by combining the given montage behaviors. + +

    public static MontageBvr union(
      MontageBvr m1,
      MontageBvr m2
      );

    Parameters
    +
    m1 and m2 +
    The MontageBvr objects. +
    +
    Return Values
    +

    Returns the MontageBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0186.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0186.HTM new file mode 100644 index 0000000..5b83eca --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0186.HTM @@ -0,0 +1,182 @@ + + +Static Fields Relevant to MontageBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to MontageBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to MontageBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to MontageBvr Objects
    +*Next Topic: Static Methods Relevant to NumberBvr Objects
    +

    +

    +

    Static Fields Relevant to MontageBvr Objects

    +
    +
    +
    emptyMontage +
    A montage behavior (MontageBvr object) that contains no images. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0187.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0187.HTM new file mode 100644 index 0000000..cce108b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0187.HTM @@ -0,0 +1,673 @@ + + +Static Methods Relevant to NumberBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to NumberBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to NumberBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to MontageBvr Objects
    +*Next Topic: Static Fields Relevant to NumberBvr Objects
    +

    +

    +

    Static Methods Relevant to NumberBvr Objects

    +
    +


    abs

    +Statics Class +

    Creates a number behavior that represents the absolute value of the given number behavior. The behavior's value is equal to the absolute value (the non-negative equivalent) of the value of a. + +

    public static NumberBvr abs(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to apply the operation to. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    acos

    +Statics Class +

    Creates a number behavior that represents the arccosine (inverse cosine) of the given behavior. +

    public static NumberBvr acos(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object. The value of the behavior is assumed to be a cosine value. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    asin + +


    add

    +Statics Class +

    Creates a number behavior representing the sum of the given number behaviors. The behavior's value is the value of a added to the value of b (a + b). + +

    public static NumberBvr add(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to add. +
    +
    Return Values
    +

    Returns the NumberBvrobject. + + +


    asin

    +Statics Class +

    Creates a number behavior that represents the arcsine (inverse sine) of the given behavior. + +

    public static NumberBvr asin(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object. The value of the behavior is assumed to be a sine value. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    acos + +


    atan

    +Statics Class +

    Creates a number behavior that represents the arctangent (inverse tangent) of the given behavior. + +

    public static NumberBvr atan(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    acos, asin, atan2 + +


    atan2

    +Statics Class +

    Creates a number behavior that represents the arctangent (inverse tangent) of the quotient of the given behaviors. The behavior's value is the inverse tangent of the value of a divided by the value of b. + +

    public static NumberBvr atan2(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to divide. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    acos, asin + +


    bSpline

    +Statics Class +

    Creates a NumberBvr behavior based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned NumberBvr is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a NumberBvr that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    public static NumberBvr bSpline(
      int degree,
      NumberBvr[] knots,
      NumberBvr[] control_elements,
      NumberBvr[] weights,
      NumberBvr evaluation
      );

    Parameters
    +
    degree +
    A number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array of NumberBvr objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array of NumberBvr objects representing the control elements used to calculate the B-spline. +
    weights +
    An array of NumberBvr objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A NumberBvr object that controls the spline evaluation. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    ceiling

    +Statics Class +

    Creates a number behavior that represents the ceiling value, the smallest integer value that is greater than or equal to the value of the given behavior. + +

    public static NumberBvr ceiling(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to find the ceiling for. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    cos

    +Statics Class +

    Creates a number behavior that represents the cosine of the given behavior. + +

    public static NumberBvr cos(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object. The value of the behavior is assumed to be in radians. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    sin + +


    degreesToRadians

    +Statics Class +

    Creates a number behavior that represents the value of the given behavior converted from degrees to radians. + +

    public static NumberBvr degreesToRadians(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to convert. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    derivative

    +Statics Class +

    Creates a number behavior of the instantaneous derivative (rate of change) of the given number behavior. For example, a constant number yields a constant derivative of 0 and a value equal to "time" yields a constant derivative of 1. + +

    public static NumberBvr derivative(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object for which to calculate the derivative. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    div

    +Statics Class +

    Creates an number behavior representing the quotient of the given number behaviors. The behavior's value is the value of a divided by the value of b (a/b). + +

    public static NumberBvr div(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to divide. +
    +
    Return Values
    +

    Returns NumberBvr the object. + + +


    eq

    +Statics Class +

    Creates a boolean behavior that represents the relation a = b. The behavior's value is true when the value of a is equal to the value of b, otherwise, it is false. + +

    public static BooleanBvr eq(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to compare. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +


    exp

    +Statics Class +

    Creates a number behavior that represents the exponential of the given behavior. The behavior's value is the base of natural logarithms, e, raised to the power of the value of a. + +

    public static NumberBvr exp(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to apply as an exponent of e. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    ln + +


    floor

    +Statics Class +

    Creates a number behavior that represents the floor value, the largest integer value that is less than or equal to the value of the given behavior. + +

    public static NumberBvr floor(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to find the floor for. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    gt

    +Statics Class +

    Creates a boolean behavior that represents the relation a > b. The behavior's value is true when the value of a is greater than the value of b, otherwise, it is false. + +

    public static BooleanBvr gt(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to compare. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +


    gte

    +Statics Class +

    Creates a boolean behavior that represents the relation a ³ b. The behavior's value is true when the value of a is greater than or equal to the value of b, otherwise, it is false. + +

    public static BooleanBvr gte(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to compare. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +


    integral

    +Statics Class +

    Creates a number behavior that represents the sum of all values of a from the start time to the present. + +

    public static NumberBvr integral(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to integrate. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    interpolate

    +Statics Class +

    Creates a NumberBvr object that moves along the interval in duration seconds. Velocity is constant. + +

    public static NumberBvr interpolate(
      NumberBvr from,
      NumberBvr to,
      NumberBvr duration
      );

    Parameters
    +
    from +
    The beginning NumberBvr object. This parameter can also be of type double. +
    to +
    The ending NumberBvr object. This parameter can also be of type double. +
    duration +
    The NumberBvr object representing the length of time, in seconds. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    ln

    +Statics Class +

    Creates a number behavior that represents the natural logarithm of the given behavior. The behavior's value is the value by which the base of natural logarithms, e, must be raised to equal the value of a. + +

    public static NumberBvr ln(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object for which to calculate the natural logarithm. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    exp + +


    log10

    +Statics Class +

    Creates a number behavior that represents the common logarithm (base-10 logarithm) of the given behavior. The behavior's value is the value by which 10 must be raised to equal the value of a. + +

    public static NumberBvr log10(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object for which to calculate the common logarithm. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    lt

    +Statics Class +

    Creates a boolean behavior that represents the relation a < b. The behavior's value is true when the value of a is less than the value of b, otherwise, it is false. + +

    public static BooleanBvr lt(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to compare. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +


    lte

    +Statics Class +

    Creates a boolean behavior that represents the relation a £ b. The behavior's value is true when the value of a is less than or equal to the value of b, otherwise, it is false. + +

    public static BooleanBvr lte(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to compare. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +


    mod

    +Statics Class +

    Creates a number behavior that represents the modulus of the given behaviors. The behavior's value is the modulus, the remainder of the integer value of a divided by the integer value of b. + +

    public static NumberBvr mod(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to calculate the modulus for. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    mul

    +Statics Class +

    Creates a number behavior representing the product of the given number behaviors. The behavior's value is the value of a multiplied by the value of b +(a ´ b). + +

    public static NumberBvr mul(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to multiply. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    ne

    +Statics Class +

    Creates a BooleanBvr behavior that represents the relation a != b. The behavior's value is true when the value of a is not equal to the value of b, otherwise, it is false. + +

    public static BooleanBvr ne(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to compare. +
    +
    Return Values
    +

    Returns the BooleanBvr object. + + +


    neg

    +Statics Class +

    Creates a number behavior representing the negation of the given number behavior. The behavior's value is equal to the value of a subtracted from zero (0 - a). + +

    public static NumberBvr neg(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to negate. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    pow

    +Statics Class +

    Creates a number behavior representing a raised to the power of b. The behavior's value is equal to ab. + +

    public static NumberBvr pow(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to apply the operation to. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    radiansToDegrees

    +Statics Class +

    Creates a number behavior that represents the value of the given behavior converted from radians to degrees. + +

    public static NumberBvr radiansToDegrees(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to convert. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    round

    +Statics Class +

    Creates a number behavior that represents the value of the given behavior, rounded to the nearest integer. + +

    public static NumberBvr round(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to be rounded. +
    +


    seededRandom

    +Statics Class +

    Creates a number behavior that represents an infinite, time-varying sequence of pseudo-random values. + +

    public static NumberBvr seededRandom(
      double seed
      );

    Parameters
    +
    seed +
    The double that provides the seed, or starting value, for the sequence. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    sin

    +Statics Class +

    Creates a number behavior that represents the sine of the given behavior. + +

    public static NumberBvr sin(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object. The value of the behavior is assumed to be in radians. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    cos + +


    slowInSlowOut

    +Statics Class +

    Creates a NumberBvr object that moves along the interval in duration seconds. The animation is dampened so that the number increases slowly, hits a maximum speed at the midpoint, and then decelerates until the end is reached. The acceleration is specified in Gs, or multiples of the earth's gravitational constant. + +

    public static NumberBvr slowInSlowOut(
      NumberBvr from,
      NumberBvr to,
      NumberBvr duration,
      NumberBvr acceleration
      );

    Parameters
    +
    from +
    The NumberBvr object that is the beginning of the animation. This parameter can also be of type double. +
    to +
    The NumberBvr object that is the end of the animation. This parameter can also be of type double. +
    duration +
    The NumberBvr object that is the length of the animation, in seconds. This parameter can also be of type double. +
    acceleration +
    The NumberBvr object that is the rate of acceleration, in Gs. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    sqrt

    +Statics Class +

    Creates a number behavior that represents the square root of the given number behavior. The behavior's value is the square root of the value of a. + +

    public static NumberBvr sqrt(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object to apply the square root operation to. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    sub

    +Statics Class +

    Creates a number behavior representing the difference of the given number behaviors. The behavior's value is the value of b subtracted from a (a - b). + +

    public static NumberBvr sub(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a and b +
    The NumberBvr objects to subtract. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    tan

    +Statics Class +

    Creates a number behavior that represents the tangent of the given behavior. + +

    public static NumberBvr tan(
      NumberBvr a
      );

    Parameters
    +
    a +
    The NumberBvr object. The value of the behavior is assumed to be in radians. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    atan, cos, sin + +


    toBvr

    +Statics Class +

    Converts a double floating-point number to a NumberBvr. The only time toBvr is used is when converting Java numbers, booleans, or strings to their corresponding DirectAnimation types. It is not used for constants such as red, yVector3, and origin2 because these are defined as constant behaviors. + +

    public static NumberBvr toBvr(
      double a
      );

    Parameters
    +
    a +
    The double floating-point number to be converted. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0188.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0188.HTM new file mode 100644 index 0000000..1aa2bbf --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0188.HTM @@ -0,0 +1,184 @@ + + +Static Fields Relevant to NumberBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to NumberBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to NumberBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to NumberBvr Objects
    +*Next Topic: Static Methods Relevant to Path2Bvr Objects
    +

    +

    +

    Static Fields Relevant to NumberBvr Objects

    +
    +
    +
    globalTime +
    A number behavior (NumberBvr object) the value of which increases at the rate of one unit per second. Unlike localTime, the globalTime value cannot be reset to zero. +
    localTime +
    A number behavior (NumberBvr object) that starts a zero when "started" and increases at the rate of one unit per second. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0189.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0189.HTM new file mode 100644 index 0000000..e0b93ce --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0189.HTM @@ -0,0 +1,436 @@ + + +Static Methods Relevant to Path2Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Path2Bvr Objects +DirectAnimation Animated Header --Static Methods Relevant to Path2Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to NumberBvr Objects
    +*Next Topic: Static Methods Relevant to Point2Bvr Objects
    +

    +

    +

    Static Methods Relevant to Path2Bvr Objects

    +
    +


    arc

    +Statics Class +

    Creates a Path2Bvr object representing a segment of an oval (In effect, an arc). The oval is centered at the origin. + +

    public static Path2Bvr arc(
      NumberBvr startAngle,
      NumberBvr endAngle,
      NumberBvr arcWidth,
      NumberBvr arcHeight
      );

    Parameters
    +
    startAngle +
    The NumberBvr object representing the starting angle of the arc, expressed in radians. This parameter can also be of type double. +
    endAngle +
    The NumberBvr object representing the ending angle of the arc, expressed in radians. This parameter can also be of type double. +
    arcWidth +
    The NumberBvr object representing the width of the arc, expressed in meters. This parameter can also be of type double. +
    arcHeight +
    The NumberBvr object representing the height of the arc, expressed in meters. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    arcDegrees

    +Statics Class +

    Creates a Path2Bvr object representing a segment of an oval (In effect, this is an arc). The oval is centered at the origin. + +

    public static Path2Bvr arcDegrees(
      double startAngle,
      double endAngle,
      double arcWidth,
      double arcHeight
      );

    Parameters
    +
    startAngle +
    The double representing the starting angle of the oval segment, expressed in degrees. +
    endAngle +
    The double representing the ending angle of the oval segment, expressed in degrees. +
    arcWidth +
    The double representing the width of the arc, expressed in meters. +
    arcHeight +
    The double representing the height of the arc, expressed in meters. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    concat

    +Statics Class +

    Creates a path behavior that represents the concatenation of the given path behaviors. In the new path, the points of p1 occur first, followed by those of p2. Path p2 is transformed so that the first point of p2 aligns with the last point of p1. + +

    public static Path2Bvr concat(
      Path2Bvr p1,
      Path2Bvr p2
      );

    Parameters
    +
    p1 and p2 +
    The Path2Bvr objects. +
    +
    Return Values
    +

    Returns the Path2Bvrobject. + + +


    concatArray

    +Statics Class +

    Creates a path behavior that represents the concatenation of the Path2Bvr objects in the array. In the new path, the points of the first path in the array occur first, followed sequentially by the other paths in the array. The second path, for example, is transformed so that its first point aligns with the last point of the first path. + +

    public static Path2Bvr concatArray(
      Path2Bvr[] paths
      );

    Parameters
    +
    paths +
    The array of Path2Bvr objects. +
    +
    Return Values
    +

    Returns the Path2Bvrobject. + + +


    cubicBSplinePath

    +Statics Class +

    Creates a Path2Bvr behavior based on a cubic B-spline curve. The curve depends on the control points and the knot vector, and requires that: + +

    
    +numberofPoints = numberofKnots - 2
    +
    +

    The control points define the approximate direction and shape of the function. The knots represent the junction values, in parameter space, between the connected polynomial parts. For a number of knots k, the function is valid in the range [3, knotk-2], and is otherwise undefined. + +

    public static Path2Bvr cubicBSplinePath(
      Point2Bvr[] points,
      NumberBvr[] knots
      );

    Parameters
    +
    points +
    An array of Point2Bvr objects representing the points used to calculate the B-spline. +
    knots +
    An array of NumberBvr objects representing the knots used to calculate the B-spline. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    line

    +Statics Class +

    Creates a path behavior that represents the line segment defined by the given point behaviors. + +

    public static Path2Bvr line(
      Point2Bvr p1,
      Point2Bvr p2
      );

    Parameters
    +
    p1 and p2 +
    The Point2Bvr objects. +
    +
    Return Values
    +

    Returns the Path2Bvrobject. + + +


    oval

    +Statics Class +

    Creates a Path2Bvr object that represents an oval, centered about the origin, and whose width and height are described by the given NumberBvr arguments. + +

    public static Path2Bvr oval(
      NumberBvr width,
      NumberBvr height
      );

    Parameters
    +
    x-radius +
    The NumberBvr object representing the oval's width. This parameter can also be of type double. +
    y-radius +
    The NumberBvr object representing the oval's height. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    pie

    +Statics Class +

    Creates a Path2Bvr object representing a closed path that traces a segment of an oval and connects it to the origin. (In effect, it is a pie-shaped wedge). The oval is centered at the origin. + +

    public static Path2Bvr pie(
      NumberBvr startAngle,
      NumberBvr endAngle,
      NumberBvr arcWidth,
      arcHeight
      );

    Parameters
    +
    startAngle +
    The NumberBvr object representing the starting angle of the oval segment, expressed in radians. This parameter can also be of type double. +
    endAngle +
    The NumberBvr object representing the ending angle of the oval segment, expressed in radians. This parameter can also be of type double. +
    arcWidth +
    The NumberBvr object representing the width of the arc, expressed in meters. This parameter can also be of type double. +
    arcHeight +
    The NumberBvr object representing the height of the arc, expressed in meters. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    pieDegrees

    +Statics Class +

    Creates a Path2Bvr object representing a closed path that traces a segment of an oval and connects it to the origin. (In effect, it is a pie-shaped wedge). The oval is centered at the origin. + +

    public static Path2Bvr pieDegrees(
      double startAngle,
      double endAngle,
      double arcWidth,
      double arcHeight
      );

    Parameters
    +
    startAngle +
    The double representing the starting angle of the oval segment, expressed in degrees. +
    endAngle +
    The double representing the ending angle of the oval segment, expressed in degrees. +
    arcWidth +
    The double representing the width of the arc, expressed in meters. +
    arcHeight +
    The double representing the height of the arc, expressed in meters. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    polydrawPath

    +Statics Class +

    Creates a Path2Bvr object by manipulating the array of points with the codes contained in the NumberBvr array. The codes represent the instructions that can be OR'd together, where: + + + + + + + + + + + + + + + + + + + + + + +
    CodeNameMeaning +
    01PT_CLOSEFIGUREConnects points to create a closed figure. +
    02PT_LINETOConnects points in a line. +
    04PT_BEZIERTOConnects points in a Bezier curve. These must occur in multiples of 3. +
    06PT_MOVETOMoves to a point. This is, implicitly, always the first instruction. +
    +

    public static Path2Bvr polydrawPath(
      Point2Bvr[] points,
      NumberBvr[] codes
      );

    Parameters
    +
    points +
    An array of Point2Bvr objects. +
    codes +
    An array of NumberBvr objects representing the instruction codes. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +

    Remarks
    +

    This function is equivalent to the Graphics Drawing Interface (GDI) polydraw function. + +


    polyline

    +Statics Class +

    Creates a path behavior that consists of the given point behaviors. The path can be used either for drawing or animation. The default line style is the defaultLineStyle. + +

    public static Path2Bvr polyline(
      Point2Bvr[] points
      );

    Parameters
    +
    points +
    An array of Point2Bvr objects. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    ray

    +Statics Class +

    Creates a path behavior that represents the line segment from the origin to the given point behavior. + +

    public static Path2Bvr ray(
      Point2Bvr p
      );

    Parameters
    +
    p +
    The Point2Bvr object. +
    +
    Return Values
    +

    Returns the Path2Bvrobject. + + +


    rect

    +Statics Class +

    Creates the Path2Bvr object representing a rectangle, centered at the origin. + +

    public static Path2Bvr rect(
      NumberBvr width,
      NumberBvr height
      );

    Parameters
    +
    width +
    The NumberBvr object representing the width of the rectangle. This parameter can also be of type double. +
    height +
    The NumberBvr object representing the height of the rectangle. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    roundRect

    +Statics Class +

    Creates a Path2Bvr object that is a rectangle, centered about the origin, with rounded, rather than square, corners. The corners are considered to be segments of an oval (in effect, an arc), centered at the origin. + +

    public static Path2Bvr roundRect(
      NumberBvr width,
      NumberBvr height,
      NumberBvr arcWidth,
      NumberBvr arcHeight
      );

    Parameters
    +
    width +
    The NumberBvr object representing the rectangle's width. This parameter can also be of type double. +
    height +
    The NumberBvr object representing the rectangle's height. This parameter can also be of type double. +
    arcWidth +
    The NumberBvr object representing the width of the arc, expressed in meters. This parameter can also be of type double. +
    arcHeight +
    The NumberBvr object representing the height of the arc, expressed in meters. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +


    stringPath

    +Statics Class +

    Creates a Path2Bvr object from the supplied StringBvr object. The appearance is specified by the FontStyleBvr object. The path behavior is useful for creating a matte to which an image behavior can be clipped. + +

    public static Path2Bvr stringPath(
      StringBvr string,
      FontStyleBvr fs
      );

    Parameters
    +
    string +
    The StringBvr object used to create the Path2Bvr object. This parameter can also be of type java.lang.String. +
    fs +
    The FontStyleBvr object specifying the appearance of the string. +
    +
    Return Values
    +

    Returns the Path2Bvr object. + + +

    See Also
    +

    draw, fill + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0190.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0190.HTM new file mode 100644 index 0000000..bfd94a4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0190.HTM @@ -0,0 +1,328 @@ + + +Static Methods Relevant to Point2Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Point2Bvr Objects +DirectAnimation Animated Header --Static Methods Relevant to Point2Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Path2Bvr Objects
    +*Next Topic: Static Fields Relevant to Point2Bvr Objects
    +

    +

    +

    Static Methods Relevant to Point2Bvr Objects

    +
    +


    add

    +Statics Class +

    Creates a two-dimensional point behavior. The location of the point is calculated by adding the corresponding coordinates of the given point and vector behaviors. + +

    public static Point2Bvr add(
      Point2Bvr pt,
      Vector2Bvr vec
      );

    Parameters
    +
    pt +
    A Point2Bvr object. +
    vec +
    A Vector2Bvr object. +
    +
    Return Values
    +

    Returns the Point2Bvr object. + + +

    See Also
    +

    sub + +


    bSpline

    +Statics Class +

    Creates a Point2Bvr behavior based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned Point2Bvr is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a NumberBvr that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    public static Point2Bvr bSpline(
      int degree,
      NumberBvr[] knots,
      Point2Bvr[] control_elements,
      NumberBvr[] weights,
      NumberBvr evaluation
      );

    Parameters
    +
    degree +
    A number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array of NumberBvr objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array of Point2Bvr objects representing the control elements used to calculate the B-spline. +
    weights +
    An array of NumberBvr objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A NumberBvr object that controls the spline evaluation. +
    +
    Return Values
    +

    Returns the Point2Bvr object. + + +


    derivative

    +Statics Class +

    Creates a two-dimensional vector behavior of the instantaneous derivative (rate of change) of the given point behavior. For example, a constant yields a constant derivative of [0 0], and point2(time, 0) (without additional time substitutions) yields a constant derivative of [1 0]. + +

    public static Vector2Bvr derivative(
      Point2Bvr pt
      );

    Parameters
    +
    pt +
    A Point2Bvr object. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +


    distance

    +Statics Class +

    Creates a number behavior representing the distance between two point behaviors. + +

    public static NumberBvr distance(
      Point2Bvr p1,
      Point2Bvr p2
      );

    Parameters
    +
    p1 and p2 +
    The Point2Bvr objects. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    distanceSquared + +


    distanceSquared

    +Statics Class +

    Creates a number behavior representing the square of the distance between two point behaviors. This is the same as the distance method except that the distance is squared. + +

    public static NumberBvr distanceSquared(
      Point2Bvr p1,
      Point2Bvr p2
      );

    Parameters
    +
    p1 and p2 +
    The Point2Bvr objects. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    distance + +


    point2

    +Statics Class +

    Creates a two-dimensional point behavior. The location of the point is given in Cartesian coordinates. + +

    public static Point2Bvr point2(
      NumberBvr x,
      NumberBvr y
      );

    Parameters
    +
    x and y +
    The NumberBvr objects, specifying the coordinate values. The x specifies the distance along the x-axis from the origin to the point, and y specifies the distance along the y-axis. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the Point2Bvr object. + + +

    See Also
    +

    point2Polar + +


    point2Polar

    +Statics Class +

    Creates a two-dimensional point behavior. The location of the point is given in polar coordinates. + +

    public static Point2Bvr point2Polar(
      NumberBvr XYangle,
      NumberBvr length
      );

    Parameters
    +
    XYangle +
    The NumberBvr object specifying the angle, in radians, between the positive x-axis and the ray that goes from the origin to the point. This parameter can also be of type double. +
    length +
    The NumberBvr object specifying the distance from the origin to the point. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Point2Bvr object. + + +

    See Also
    +

    point2 + +


    sub

    +Statics Class +

    Creates a two-dimensional vector behavior. The coordinate values of the vector are calculated by subtracting the coordinates of p2 from the corresponding coordinates of p1. + +

    public static Vector2Bvr sub(
      Point2Bvr p1,
      Point2Bvr p2
      );

    Parameters
    +
    p1 and p2 +
    The Point2Bvr objects. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +


    sub

    +Statics Class +

    Creates a two-dimensional point behavior. The location of the point is calculated by subtracting the coordinates of the given vector behavior from the corresponding coordinates of the given point behavior. + +

    public static Point2Bvr sub(
      Point2Bvr pt,
      Vector2Bvr vec
      );

    Parameters
    +
    pt +
    A Point2Bvr object. +
    vec +
    A Vector2Bvr object. +
    +
    Return Values
    +

    Returns the Point2Bvr object. + + +

    See Also
    +

    add + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0191.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0191.HTM new file mode 100644 index 0000000..d4734e3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0191.HTM @@ -0,0 +1,184 @@ + + +Static Fields Relevant to Point2Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to Point2Bvr Objects +DirectAnimation Animated Header --Static Fields Relevant to Point2Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Point2Bvr Objects
    +*Next Topic: Static Methods Relevant to Point3Bvr Objects
    +

    +

    +

    Static Fields Relevant to Point2Bvr Objects

    +
    +
    +
    mouseposition +
    A two-dimensional point behavior (Point2Bvr object) that is the current location of the mouse. +
    origin2 +
    A two-dimensional point behavior (Point2Bvr object) that is always located at the origin. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0192.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0192.HTM new file mode 100644 index 0000000..83543ba --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0192.HTM @@ -0,0 +1,389 @@ + + +Static Methods Relevant to Point3Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Point3Bvr Objects +DirectAnimation Animated Header --Static Methods Relevant to Point3Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to Point2Bvr Objects
    +*Next Topic: Static Fields Relevant to Point3Bvr Objects
    +

    +

    +

    Static Methods Relevant to Point3Bvr Objects

    +
    +


    add

    +Statics Class +

    Creates a three-dimensional point behavior. The location of the point is calculated by adding the corresponding coordinates of the given point and vector behaviors. + +

    public static Point3Bvr add(
      Point3Bvr pt,
      Vector3Bvr vec
      );

    Parameters
    +
    pt +
    A Point3Bvr object. +
    vec +
    A Vector3Bvr object. +
    +
    Return Values
    +

    Returns the Point3Bvr object. + + +

    See Also
    +

    sub + +


    bSpline

    +Statics Class +

    Creates a Point3Bvr behavior based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned Point3Bvr is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a NumberBvr that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    public static Point3Bvr bSpline(
      int degree,
      NumberBvr[] knots,
      Point3Bvr[] control_elements,
      NumberBvr[] weights,
      NumberBvr evaluation
      );

    Parameters
    +
    degree +
    A number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array of NumberBvr objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array of Point3Bvr objects representing the control elements used to calculate the B-spline. +
    weights +
    An array of NumberBvr objects representing the weights used to calculate the B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A NumberBvr object that controls the spline evaluation. +
    +
    Return Values
    +

    Returns the Point3Bvr object. + + +


    derivative

    +Statics Class +

    Creates a three-dimensional vector behavior of the instantaneous derivative (rate of change) of the given point behavior. For example, a constant yields a constant derivative of [0 0 0], and point3(time, 0) (without additional time substitutions) yields a constant derivative of [1 0 0]. + +

    public static Vector3Bvr derivative(
      Point3Bvr pt
      );

    Parameters
    +
    pt +
    A Point3Bvr object. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +


    distance

    +Statics Class +

    Creates a number behavior representing the distance between two point behaviors. + +

    public static NumberBvr distance(
      Point3Bvr p1,
      Point3Bvr p2
      );

    Parameters
    +
    p1 and p3 +
    The Point3Bvr objects. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    distanceSquared +


    distanceSquared

    +Statics Class +

    Creates a number behavior representing the square of the distance between two point behaviors. This is the same as the distance method except that the distance is squared. + +

    public static NumberBvr distanceSquared(
      Point3Bvr p1,
      Point3Bvr p2
      );

    Parameters
    +
    p1 and p3 +
    The Point3Bvr objects. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +

    Remarks
    +

    This method is slightly more efficient than the distance method. + +

    See Also
    +

    distance + +


    point3

    +Statics Class +

    Creates a three-dimensional point behavior. The location of the point is given in Cartesian coordinates. + +

    public static Point3Bvr point3(
      NumberBvr x,
      NumberBvr y,
      NumberBvr z
      );

    Parameters
    +
    x, y, and z +
    The NumberBvr objects, specifying the coordinate values. The x specifies the distance along the x-axis from the origin to the point, y specifies the distance along the y-axis, and z the distance along the z-axis. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the Point3Bvr object. + + +

    See Also
    +

    point3Spherical + +


    point3Spherical

    +Statics Class +

    Creates a three-dimensional point behavior. The location of the point is given in spherical coordinates. + +

    public static Point3Bvr point3Spherical(
      NumberBvr XYangle,
      NumberBvr YZangle,
      NumberBvr length
      );

    Parameters
    +
    XYangle +
    A NumberBvr object of the counter-clockwise XY angle, in radians, of the point about the positive y-ray. The angle begins at the positive z-ray, so that [0 0 1] has a XYangle of 0, and [1 0 0] has a XYangle of pi/2. This parameter can also be of type double. +
    YZangle +
    A NumberBvr object of the counter-clockwise elevation angle, in radians, of the point above the XZ-plane. A YZangle of pi/2 means the point is straight up (on the positive y-ray), and a YZangle of -pi/2 is straight down (on the negative y-ray). This parameter can also be of type double. +
    length +
    A NumberBvr object of the distance of the point from the origin. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Point3Bvr object. + + +

    Remarks
    +

    The following table correlates Cartesian coordinates with polar coordinates: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CartesianXYangleYZangleLength +
    Coordinates +
    [0 0 0]XX0 +
    [d 0 0]pi/20d +
    [-d 0 0]-pi/20d X = Don't Care +
    [0 d 0]Xpi/2d +
    [0 -d 0]X-pi/2d +
    [0 0 d]00d +
    [0 0 -d]pi0d +
    +

    See Also
    +

    point3 + +


    sub

    +Statics Class +

    Creates a three-dimensional vector behavior. The coordinate values of the vector are calculated by subtracting the coordinates of p3 from the corresponding coordinates of p1. + +

    public static Vector3Bvr sub(
      Point3Bvr p1,
      Point3Bvr p2
      );

    Parameters
    +
    p1 and p3 +
    The Point3Bvr objects. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +


    sub

    +Statics Class +

    Creates a three-dimensional point behavior. The location of the point is calculated by subtracting the coordinates of the given vector behavior from the corresponding coordinates of the given point behavior. + +

    public static Point3Bvr sub(
      Point3Bvr pt,
      Vector3Bvr vec
      );

    Parameters
    +
    pt +
    A Point3Bvr object. +
    vec +
    A Vector3Bvr object. +
    +
    Return Values
    +

    Returns the Point3Bvr object. + + +

    See Also
    +

    add + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0193.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0193.HTM new file mode 100644 index 0000000..e955135 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0193.HTM @@ -0,0 +1,182 @@ + + +Static Fields Relevant to Point3Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to Point3Bvr Objects +DirectAnimation Animated Header --Static Fields Relevant to Point3Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Point3Bvr Objects
    +*Next Topic: Static Methods Relevant to SoundBvr Objects
    +

    +

    +

    Static Fields Relevant to Point3Bvr Objects

    +
    +
    +
    origin3 +
    A three-dimensional point behavior (Point3Bvr object) that is always located at the origin. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0194.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0194.HTM new file mode 100644 index 0000000..72e1ec6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0194.HTM @@ -0,0 +1,237 @@ + + +Static Methods Relevant to SoundBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to SoundBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to SoundBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to Point3Bvr Objects
    +*Next Topic: Static Fields Relevant to SoundBvr Objects
    +

    +

    +

    Static Methods Relevant to SoundBvr Objects

    +
    +


    importSound

    +Statics Class +

    Creates a sound behavior by synchronously importing the given .WAV or MIDI file. The soundLength parameter receives the length of the sound. These downloads should be small and listed before asynchronous downloads. Use asynchronous downloads for more complex images and sounds. See below for a description of the asynchronous import method. + +

    public static SoundBvr importSound(
      URL url,
      NumberBvr[] soundLength
      )

    Parameters
    +
    url +
    soundLength +
    A NumberBvr array that receives the length of the sound in seconds. An array is used because this is an output parameter, and the system writes into the first element of the array. In Java, this is the simplest way to pass information back to the caller if you are already using the return value, which, in this case, is the sound). +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +


    importSound

    +Statics Class +

    Creates a SoundBvr by asynchronously importing the given .WAV or .MIDI file. Asynchronous downloads should be listed after synchronous ones and used for more complex sounds and images. For a description of the synchronous import method, see above. + +

    public static SoundBvr importSound(
      URL url,
      NumberBvr[] soundLength,
      SoundBvr sndStandIn,
      DXMEvent[] ev,
      NumberBvr[] progress,
      NumberBvr[] size
      );

    Parameters
    +
    url +
    The fully qualified pathname of the file. It is of type java.net.URL. +
    soundLength +
    The length, in seconds, of the sound. +
    sndStandIn +
    The sound to use while the contents at url are still being downloaded. This argument cannot be null, however, the sound can be silence. +
    ev +
    The event to trigger once the download is complete. This argument can be null. Using this event is probably the best way to determine when the download is complete. (Otherwise, the Java constant Double.POSITIVE_INFINITY must be extracted. +
    progress +
    A NumberBvr that goes from 0 to 1, tracking the progress of the download. For files downloaded via http, progress is reported as the percentage of the file that has been downloaded. Other protocols, the value may simply start at 0 and change to 1 once the download is complete. This argument can be null. +
    size +
    A NumberBvr that is the size of the sound, in bytes. The value begins at -1 and will change to the true size if it is available. This argument can be null. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +


    mix

    +Statics Class +

    Creates a sound behavior that is equivalent to sound1 + sound2. + +

    public static SoundBvr mix(
      SoundBvr sound1,
      SoundBvr sound2
      );

    Parameters
    +
    sound1 and sound2 +
    The SoundBvr objects. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +


    mixArray

    +Statics Class +

    Creates a sound behavior that is equivalent to sound1 + sound2 + soundn. + +

    public static SoundBvr mixArray(
      SoundBvr[] sounds
      );

    Parameters
    +
    sounds +
    The SoundBvr objects in the array. +
    +
    Return Values
    +

    Returns the SoundBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0195.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0195.HTM new file mode 100644 index 0000000..4eece1b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0195.HTM @@ -0,0 +1,184 @@ + + +Static Fields Relevant to SoundBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to SoundBvr Objects +DirectAnimation Animated Header --Static Fields Relevant to SoundBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to SoundBvr Objects
    +*Next Topic: Static Methods Relevant to StringBvr Objects
    +

    +

    +

    Static Fields Relevant to SoundBvr Objects

    +
    +
    +
    silence +
    A sound behavior (SoundBvr object) that is always completely silent (no sound). +
    sinSynth +
    A sound behavior (SoundBvr object) that represents a constant tone. This sound is synthesized using a sine wave. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0196.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0196.HTM new file mode 100644 index 0000000..2f1a85b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0196.HTM @@ -0,0 +1,202 @@ + + +Static Methods Relevant to StringBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to StringBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to StringBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to SoundBvr Objects
    +*Next Topic: Static Methods Relevant to Transform2Bvr Objects
    +

    +

    +

    Static Methods Relevant to StringBvr Objects

    +
    +


    concat

    +Statics Class +

    Creates a string behavior representing the concatenation of the given behaviors. The behavior's value is the character string consisting of the value of b appended to the end of the value of a. + +

    public static StringBvr concat(
      StringBvr a,
      StringBvr b
      );

    Parameters
    +
    a and b +
    The StringBvr objects to concatenate. +
    +
    Return Values
    +

    Returns the StringBvr object. + + +


    toBvr

    +Statics Class +

    Converts a type of Java.lang.String to a StringBvr. The only time toBvr is used is when converting Java numbers, booleans, or strings to their corresponding DirectAnimation types. It is not used for constants such as red, yVector3, and origin2 because these are defined as constant behaviors. + +

    public static StringBvr toBvr(
      String string
      );

    Parameters
    +
    string +
    The String type to be converted. +
    +
    Return Values
    +

    Returns the StringBvr object; + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0197.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0197.HTM new file mode 100644 index 0000000..4b0b242 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0197.HTM @@ -0,0 +1,502 @@ + + +Static Methods Relevant to Transform2Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Transform2Bvr Objects +DirectAnimation Animated Header --Static Methods Relevant to Transform2Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to StringBvr Objects
    +*Next Topic: Static Fields Relevant to Transform2Bvr Objects
    +

    +

    +

    Static Methods Relevant to Transform2Bvr Objects

    +
    +


    compose

    +Statics Class +

    Creates a two-dimensional transformation behavior that is a composition of the given transformation behaviors. + +

    public static Transform2Bvr compose(
      Transform2Bvr xf1,
      Transform2Bvr xf2
      );

    Parameters
    +
    xf1 and xf2 +
    The Transform2Bvr objects. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying xf2 and then applying xf1. In other words: +

    
    +im.transform(compose(xf1, xf2) == im.transform(xf2).transform(xf1)
    +
    +


    compose2Array

    +Statics Class +

    Creates a two-dimensional transformation behavior that is a composition of the Transform2Bvr objects included in the array. + +

    public static Transform2Bvr compose2Array(
      Transform2Bvr[] xforms
      );

    Parameters
    +
    xforms +
    The Transform2Bvr objects. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying the nth transform, then applying the (nth-1) transform, and so on. + +


    followPath

    +Statics Class +

    Creates a Transform2Bvr object that is a translation (from the origin) that follows a 2-D vector drawing path. The Path2Bvr object is converted into the equivalent translation transform. + +

    public static Transform2Bvr followPath(
      Path2Bvr path,
      NumberBvr evaluator
      );

    Parameters
    +
    path +
    The Path2Bvr object that will be traced. +
    evaluator +
    The NumberBvr object representing an evaluator with a value in the range [0, 1]. This value is equivalent to a position on the path, where 0 is the beginning of the path and 1 is the end. This parameter can also be of type double. If it is, then the parameter is treated as a duration, representing the amount of time it will take (in seconds) to trace the entire path. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    followPathAngle

    +Statics Class +

    Creates a Transform2Bvr object that is equal to the angle of the path's tangent while it is being traversed, translated by its position. This is equivalent to rotating the position by its derivative. + +

    public static Transform2Bvr followPathAngle(
      Path2Bvr path,
      NumberBvr evaluator
      );

    Parameters
    +
    path +
    The Path2Bvr object this is traversed. +
    evaluator +
    The NumberBvr object representing an evaluator with a value in the range [0, 1]. This value is equivalent to a position on the path, where 0 is the beginning of the path and 1 is the end. This parameter can also be of type double. If it is, then the parameter is treated as a duration, representing the amount of time it will take (in seconds) to trace the entire path. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    followPathAngleUpright

    +Statics Class +

    Creates a Transform2Bvr object that is equal to the angle of the path's tangent while it is being traversed, translated by its position. This is equivalent to rotating the position by its derivative, except that the angle that is perpendicular to the X-axis (in local coordinates) will always be less than 180 degrees. + +

    public static Transform2Bvr followPathAngleUpright(
      Path2Bvr path,
      NumberBvr evaluator
      );

    Parameters
    +
    path +
    The Path2Bvr object that is traversed. +
    evaluator +
    The NumberBvr object representing an evaluator with a value in the range [0, 1]. This value is equivalent to a position on the path, where 0 is the beginning of the path and 1 is the end. This parameter can also be of type double. If it is, then the parameter is treated as a duration, representing the amount of time it will take (in seconds) to trace the entire path. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    rotate

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in radians). + +

    public static Transform2Bvr rotate(
      NumberBvr radians
      );

    Parameters
    +
    radians +
    The NumberBvr object representing the angle of rotation. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    rotateDegrees

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in degrees). + +

    public static Transform2Bvr rotateDegrees(
      double degrees
      );

    Parameters
    +
    degrees +
    The double representing the angle of rotation (expressed in degrees). +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    rotateRate

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in radians). This value is multiplied by localTime to determine the rotation rate. + +

    public static Transform2Bvr rotateRate(
      double radians
      );

    Parameters
    +
    radians +
    The double representing the angle of rotation, multiplied by localTime. The unit is radians/second. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    rotateRateDegrees

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, rotates it by the given angle (expressed in degrees). This value is multiplied by localTime to determine the rotation rate. + +

    public static Transform2Bvr rotateRateDegrees(
      double degrees
      );

    Parameters
    +
    degrees +
    The double representing the angle of rotation, multiplied by localTime. The unit is degrees/second. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Rotations are counter-clockwise. + +


    scale

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, scales it. For example, the transformation modifies the length of a vector by multiplying the vector's coordinates by the values of the corresponding number behaviors. + +

    public static Transform2Bvr scale(
      NumberBvr sx,
      NumberBvr sy
      );

    Parameters
    +
    sx and sy +
    The NumberBvr objects representing the amount to scale. The value of sx applies to the x coordinate, and sy to the y coordinate. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    scale

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, scales it. For example, the transformation modifies the location of a point by multiplying the point's coordinates by the values of the corresponding vector coordinates. + +

    public static Transform2Bvr scale(
      Vector2Bvr v
      );

    Parameters
    +
    v +
    The Vector2Bvr object. The x and y coordinates of the vector behavior specify the amount to scale the x and y coordinates, respectively. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    scaleRate

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to any two-dimensional object, scales it. The scaling rates are determined by multiplying each argument by localTime. + +

    public static Transform2Bvr scaleRate(
      double x,
      double y
      );

    Parameters
    +
    sx and sy +
    The doubles representing the amounts to scale. The value of sx applies to the x coordinate, and sy to the y coordinate. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    scale2

    +Statics Class +

    Creates a two-dimensional transformation behavior that applies a uniform scale to every coordinate of a two-dimensional object. + +

    public static Transform2Bvr scale2(
      NumberBvr uniformFactor
      );

    Parameters
    +
    uniformFactor +
    The NumberBvr object representing the value to apply to both the x and y coordinates, respectively. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    See Also
    +

    scale, scale + +


    scale2Rate

    +Statics Class +

    Creates a two-dimensional transformation behavior that applies a uniform scale to every coordinate of a two-dimensional object. The scaling rate is determined by multiplying the argument by localTime. + +

    public static Transform2Bvr scale2Rate(
      double rate
      );

    Parameters
    +
    rate +
    The double representing the value to apply to both the x and y coordinates, respectively. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    transform3x2

    +Statics Class +

    Creates a two-dimensional transformation behavior that consists of a 3 by 2 matrix having the values specified by the given number behaviors. + +

    public static Transform2Bvr transform3x2(
      NumberBvr[] matrix
      );

    Parameters
    +
    matrix +
    A 3 by 2 matrix. The top row of the matrix could be represented as containing NumberBvr objects a00, a01, and a02. Use a00 to scale the x coordinate and a02 to translate x. +
    The bottom row of the matrix could be represented as containing the NumberBvr objects a10, a11, and a12. Use a11 to scale the y coordinate and a12 to translate y. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    The X and Y translation components are given by a02 and a12, respectively. + +


    translate

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to a point behavior, translates (moves) the point by the amount given by the number behaviors. + +

    public static Transform2Bvr translate(
      NumberBvr tx,
      NumberBvr ty
      );

    Parameters
    +
    tx and ty +
    The NumberBvr objects representing the amount to translate the point along the x and y axes, respectively. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Two-dimensional vectors are unchanged by translations. + +


    translate

    +Statics Class +

    Creates a two-dimensional transformation that, when applied to a point, translates (moves) the point to the new location loc. + +

    public static Transform2Bvr translate(
      Point2Bvr loc
      );

    Parameters
    +
    loc +
    The Point2Bvr object specifying the new location. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    translate

    +Statics Class +

    Creates a two-dimensional transformation behavior that when applied to a point behavior translates (moves) the point by the amount given by the vector behavior. + +

    public static Transform2Bvr translate(
      Vector2Bvr v
      );

    Parameters
    +
    v +
    The Vector2Bvr object. The x and y coordinates of the vector behavior specify the amount to translate along the x and y axes, respectively. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Two-dimensional vectors are unchanged by translations. + +


    translateRate

    +Statics Class +

    Creates a two-dimensional transformation behavior that, when applied to a point, translates (moves) the point by the amount given by the arguments. The translation rates are determined by multiplying the arguments by localTime. + +

    public static Transform2Bvr translateRate(
      double x,
      double y
      );

    Parameters
    +
    x and y +
    The doubles representing the amounts to translate the point along the X and Y axes, respectively. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Remarks
    +

    Two-dimensional vectors are unchanged by translations. + +


    xShear

    +Statics Class +

    Creates a two-dimensional transformation behavior that shears the x-axis either up or down. This means the X-coordinate of the points remains unchanged, and the Y-coordinate increases by the product of the X-coordinate and the shear factor. In other words, X2 = X1, and Y2 = Y1 + aX1, where a is the shear factor. + +

    public static Transform2Bvr xShear(
      NumberBvr x
      );

    Parameters
    +
    x +
    The NumberBvr object representing the amount to shear. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    See Also
    +

    yShear + +


    xShearRate

    +Statics Class +

    Creates a two-dimensional transformation behavior that shears the x-axis either up or down. The shear rate is determined by multiplying the argument by localTime. + +

    public static Transform2Bvr xShearRate(
      double rate
      );

    Parameters
    +
    rate +
    The double representing the amount to shear, multiplied by localTime. The unit is meters/second. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +


    yShear

    +Statics Class +

    Creates a two-dimensional transformation behavior that shears the y-axis either left or right. This means the Y-coordinate of the points remains unchanged, and the X-coordinate increases by the product of the Y-coordinate and the shear factor. In other words, Y2 = Y1 and X2 = X1 + aY1, where a is the shear factor. + +

    public static Transform2Bvr yShear(
      NumberBvr y
      );

    Parameters
    +
    y +
    The NumberBvr object representing the amount to shear. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    See Also
    +

    xShear + +


    yShearRate

    +Statics Class +

    Creates a two-dimensional transformation behavior that shears the y-axis either left or right. The shear rate is determined by multiplying the argument by localTime. + +

    public static Transform2Bvr yShearRate(
      double rate
      );

    Parameters
    +
    rate +
    The double representing the amount to shear the y-axis, multiplied by localTime. The unit is meters/second. +
    +
    Return Values
    +

    Returns the Transform2Bvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0198.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0198.HTM new file mode 100644 index 0000000..3c6baa7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0198.HTM @@ -0,0 +1,182 @@ + + +Static Fields Relevant to Transform2Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to Transform2Bvr Objects +DirectAnimation Animated Header --Static Fields Relevant to Transform2Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Transform2Bvr Objects
    +*Next Topic: Static Methods Relevant to Transform3Bvr Objects
    +

    +

    +

    Static Fields Relevant to Transform2Bvr Objects

    +
    +
    +
    identityTransform2 +
    A two-dimensional transformation behavior (Transform2Bvr object) that leaves the two-dimensional space unchanged. Applying this transformation to a point or vector produces the same point or vector. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0199.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0199.HTM new file mode 100644 index 0000000..8451e75 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0199.HTM @@ -0,0 +1,538 @@ + + +Static Methods Relevant to Transform3Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Transform3Bvr Objects +DirectAnimation Animated Header --Static Methods Relevant to Transform3Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to Transform2Bvr Objects
    +*Next Topic: Static Fields Relevant to Transform3Bvr Objects
    +

    +

    +

    Static Methods Relevant to Transform3Bvr Objects

    +
    +


    compose

    +Statics Class +

    Creates a three-dimensional transformation behavior that is a composition of the given transformation behaviors. + +

    public static Transform3Bvr compose(
      Transform3Bvr xf1,
      Transform3Bvr xf2
      );

    Parameters
    +
    xf1 and xf2 +
    The Transform3Bvr objects. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying xf2 and then applying xf1. In other words: +

    
    +geo.transform(compose(xf1, xf2) == geo.transform(xf2).transform(xf1)
    +
    +


    compose3Array

    +Statics Class +

    Creates a three-dimensional transformation behavior that is a composition of the Transform3Bvr objects in the array. + +

    public static Transform3Bvr compose3Array(
      Transform3Bvr[] xforms
      );

    Parameters
    +
    xf1 and xf2 +
    The Transform3Bvr objects. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Composing a transform is equivalent to first applying the nth transform, then applying the (nth-1) transform, and so on. + +


    lookAtFrom

    +Statics Class +

    Creates a three-dimensional transformation behavior that transforms an object from a standard position and orientation to the "from" point, and aimed at the "to" point, with "up" mapping to the object's up direction. Prior to this transform, objects must be located at the origin, with the up side aligned with positive y, and aimed in the negative z-direction. + +

    public static Transform3Bvr lookAtFrom(
      Point3Bvr from,
      Point3Bvr to,
      Vector3Bvr up
      );

    Parameters
    +
    from +
    The Point3Bvr object specifying the point from which to view. +
    to +
    The Point3Bvr object specifying the point toward which to view. +
    up +
    The Point3Bvr object specifying the point determining the upright position. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    This transform is useful for positioning and orienting cameras, lights, microphones, and other three-dimensional objects. + +


    rotate

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point or vector behavior, rotates the point or vector by the given angle (expressed in radians) around the given axis. + +

    public static Transform3Bvr rotate(
      Vector3Bvr axis,
      NumberBvr radians
      );

    Parameters
    +
    axis +
    The Vector3Bvr object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    radians +
    The NumberBvr object representing the angle of rotation. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +


    rotateDegrees

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point or vector behavior, rotates the point or vector by the given angle (expressed in degrees) around the given axis. + +

    public static Transform3Bvr rotateDegrees(
      Vector3Bvr axis,
      double degrees
      );

    Parameters
    +
    axis +
    The Vector3Bvr object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    degrees +
    The double representing the angle of rotation (expressed in degrees). +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +


    rotateRate

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point or vector behavior, rotates the point or vector by the given angle (expressed in radians) around the given axis. The rotation rate is determined by multiplying the angle by localTime. + +

    public static Transform3Bvr rotateRate(
      Vector3Bvr axis,
      double radians
      );

    Parameters
    +
    axis +
    The Vector3Bvr object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    radians +
    The double representing the angle of rotation, multiplied by localTime. The unit is radians/second. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +


    rotateRateDegrees

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point or vector behavior, rotates the point or vector by the given angle (expressed in degrees) around the given axis. The rotation rate is determined by multiplying the angle by localTime. + +

    public static Transform3Bvr rotateRateDegrees(
      Vector3Bvr axis,
      double degrees
      );

    Parameters
    +
    axis +
    The Vector3Bvr object representing the axis around which to rotate. The plane of rotation is perpendicular to the ray defined by this vector. +
    degrees +
    The double representing the angle of rotation (expressed in degrees) multiplied by localTime. The unit is degrees/second. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Rotations obey the right-hand rule. This means that, when looking down the axis vector, they are counter-clockwise. + +


    scale

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a three-dimensional object, scales it. For example, the transformation modifies the length of a vector by multiplying the vector's coordinates by the values of the corresponding number behaviors. + +

    public static Transform3Bvr scale(
      NumberBvr sx,
      NumberBvr sy,
      NumberBvr sz
      );

    Parameters
    +
    sx, sy, and sz +
    The NumberBvr objects representing the amounts to scale. The value of sx applies to the x coordinate, sy to the y coordinate, and sz to the z coordinate. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +


    scale

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a three-dimensional object, scales it. For example, the transformation modifies the location of a point by multiplying the point's coordinates by the values of the corresponding vector coordinates. + +

    public static Transform3Bvr scale(
      Vector3Bvr v
      );

    Parameters
    +
    v +
    The Vector3Bvr object. The x, y, and z coordinates of the vector behavior specify the amounts to scale the x, y, and z coordinates, respectively. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +


    scaleRate

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a three-dimensional object, scales it. The scaling rates are determined by multiplying the arguments by localTime. + +

    public Transform3Bvr scaleRate(
      double x,
      double y,
      double z
      );

    Parameters
    +
    x, y, and z +
    The doubles representing the amounts to scale. The value of x applies to the x coordinate, y to the y coordinate, and z to the z coordinate. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +


    scale3

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a three-dimensional object, scales it uniformly. + +

    public static Transform3Bvr scale3(
      NumberBvr uniformFactor
      );

    Parameters
    +
    uniformFactor +
    The NumberBvr object representing the value to apply to the x, y, and z coordinates, respectively. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    See Also
    +

    scale, scale + +


    scale3Rate

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a three-dimensional object, scales it uniformly. The scaling rate is determined by multiplying the argument by localTime. + +

    public Transform3Bvr scale3Rate(
      double rate
      );

    Parameters
    +
    rate +
    The double representing the value to apply to the x, y, and z coordinates, respectively, multiplied by localTime. The unit is degrees/second. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +


    transform4x4

    +Statics Class +

    Creates a three-dimensional transformation behavior that consists of the 4 by 4 matrix having the values specified by the given number behaviors. + +

    public static Transform3Bvr transform4x4(
      NumberBvr[] matrix
      );

    Parameters
    +
    matrix +
    The 4 by 4 matrix. The first row of the matrix can be represented by the NumberBvr objects a00, a01, a02, a03. Use a00 to scale the x coordinate and a03 to translate x. +
    The second row of the matrix can be represented by the NumberBvr objects a10, a11, a12, a13. Use a11 to scale the y coordinate and a13 to translate y. +
    The third row of the matrix can be represented by the NumberBvr objects a20, a21, a22, a23. Use a22 to scale the z coordinate and a23 to translate z. +
    The fourth row of the matrix can be represented by the NumberBvr objects a30, a31, a32, a33. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    The translation components for the matrix are in the last column. The last row of the matrix must be [0 0 0 1]. + +


    translate

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point behavior, translates (moves) the point by the amounts given by the number behaviors. + +

    public static Transform3Bvr translate(
      NumberBvr tx,
      NumberBvr ty,
      NumberBvr tz
      );

    Parameters
    +
    tx, ty, and tz +
    The NumberBvr objects representing the amounts to translate the point along the x, y, and z axes, respectively. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Vectors are unchanged by translations. + +


    translate

    +Statics Class +

    Creates a two-dimensional transformation that, when applied to a point, translates (moves) the point to the new location loc. + +

    public static Transform3Bvr translate(
      Point3Bvr loc
      );

    Parameters
    +
    loc +
    The Point3Bvr object specifying the new location. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +


    translate

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point behavior, translates (moves) the point by the amounts given by the vector behavior. + +

    public static Transform3Bvr translate(
      Vector3Bvr v
      );

    Parameters
    +
    v +
    The Vector3Bvr object. The x, y, and z coordinates of the vector behavior specify the amounts to translate along the x, y, and z axes, respectively. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Vectors are unchanged by translations. + +


    translateRate

    +Statics Class +

    Creates a three-dimensional transformation behavior that, when applied to a point behavior, translates (moves) the point by the amounts given by the doubles. The translation rate is determined by multiplying the arguments by localTime. + +

    public Transform3Bvr translateRate(
      double x,
      double y,
      double z
      );

    Parameters
    +
    x, y, and z +
    The doubles representing the amounts to translate the point along the x, y, and z axes, respectively. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Remarks
    +

    Vectors are unchanged by translations. + +


    xShear

    +Statics Class +

    Shears the x-axis in the positive y-direction by a and in the positive z-direction by b. The X-coordinate remains unchanged, and the Y and Z coordinates increase by the product of the X-coordinate and the shear factors. In other words, X2 = X1, Y2 = Y1 + aX1, and Z2 = Z1 + bX1, where a and b are the shear factors. + +

    public static Transform3Bvr xShear(
      NumberBvr a,
      NumberBvr b
      );

    Parameters
    +
    a +
    The NumberBvr object representing the amount of shear in the Y direction. This parameter can also be of type double. +
    b +
    The NumberBvr object representing the amount of shear in the Z direction. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    See Also
    +

    yShear, zShear + +


    xShearRate

    +Statics Class +

    Shears the x-axis in the positive y-direction by a and in the positive z-direction by b. The shear rates are determined by multiplying the arguments by localTime. + +

    public static Transform3Bvr xShearRate(
      double a,
      double b
      );

    Parameters
    +
    a +
    The double representing the amount of shear in the Y direction, multiplied by localTime. The unit is meters/second. +
    b +
    The double representing the amount of shear in the Z direction, multiplied by localTime. The unit is meters/second. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    See Also
    +

    yShear, zShear + +


    yShear

    +Statics Class +

    Shears the y-axis in the positive x-direction by c and in the positive z-direction by d. The Y-coordinate remains unchanged, and the X and Z coordinates increase by the product of the Y-coordinate and the shear factors. In other words, Y2 = Y1, X2 = X1 + cY1, and Z2 = Z1 + dY1, where c and d are the shear factors. + +

    public static Transform3Bvr yShear(
      NumberBvr c,
      NumberBvr d
      );

    Parameters
    +
    c +
    The NumberBvr object representing the amount of shear in the X direction. This parameter can also be of type double. +
    d +
    The NumberBvr object representing the amount of shear in the Z direction. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    See Also
    +

    xShear, zShear + +


    yShearRate

    +Statics Class +

    Shears the y-axis in the positive x-direction by c and in the positive z-direction by d. The shear rates are determined by multiplying the arguments by localTime. + +

    public static Transform3Bvr yShearRate(
      double c,
      double d
      );

    Parameters
    +
    c +
    The double representing the amount of shear in the X direction, multiplied by localTime. The unit is meters/second. +
    d +
    The double representing the amount of shear in the Z direction, multiplied by localTime. The unit is meters/second. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    See Also
    +

    xShear, zShear + +


    zShear

    +Statics Class +

    Shears the z-axis in the positive x-direction by e and in the positive y-direction by f. The Z-coordinate remains unchanged, and the X and Y coordinates increase by the product of the Z-coordinate and the shear factors. In other words, Z2 = Z1, X2 = X1 + eZ1, and Y2 = Y1 + fZ1, where e and f are the shear factors. + +

    public static Transform3Bvr zShear(
      NumberBvr e,
      NumberBvr f
      );

    Parameters
    +
    e +
    The NumberBvr object representing the amount of shear in the X direction. This parameter can also be of type double. +
    f +
    The NumberBvr object representing the amount of shear in the Y direction. This parameter can also be of type double. + +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    See Also
    +

    xShear, yShear + +


    zShearRate

    +Statics Class +

    Shears the z-axis in the positive x-direction by e and in the positive y-direction by f. The shear rates are determined by multiplying the arguments by localTime. + +

    public static Transform3Bvr zShearRate(
      double e,
      double f
      );

    Parameters
    +
    e +
    The double representing the amount of shear in the X direction, multiplied by localTime. The unit is meters/second. +
    f +
    The double representing the amount of shear in the Y direction, multiplied by localTime. The unit is meters/second. +
    +
    Return Values
    +

    Returns the Transform3Bvr object. + + +

    See Also
    +

    xShear, yShear + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0200.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0200.HTM new file mode 100644 index 0000000..40356bd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0200.HTM @@ -0,0 +1,182 @@ + + +Static Fields Relevant to Transform3Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to Transform3Bvr Objects +DirectAnimation Animated Header --Static Fields Relevant to Transform3Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Transform3Bvr Objects
    +*Next Topic: Static Methods Relevant to TupleBvr Objects
    +

    +

    +

    Static Fields Relevant to Transform3Bvr Objects

    +
    +
    +
    identityTransform3 +
    A three-dimensional transformation behavior (Transform3Bvr object) that leaves the three-dimensional space unchanged. Applying this transformation to a point or vector produces the same point or vector. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0201.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0201.HTM new file mode 100644 index 0000000..0152eb2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0201.HTM @@ -0,0 +1,208 @@ + + +Static Methods Relevant to TupleBvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to TupleBvr Objects +DirectAnimation Animated Header --Static Methods Relevant to TupleBvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to Transform3Bvr Objects
    +*Next Topic: Static Methods Relevant to Vector2Bvr Objects
    +

    +

    +

    Static Methods Relevant to TupleBvr Objects

    +
    +


    pairBvr

    +Statics Class +

    A convenience utility for creating a TupleBvr object with two members. + +

    public static TupleBvr pairBvr(
      Behavior first,
      Behavior second
      );

    Parameters
    +
    first +
    The first Behavior object in the TupleBvr. +
    second +
    The second Behavior object in the TupleBvr. +
    +
    Return Values
    +

    Returns the TupleBvr object. + + +


    tripleBvr

    +Statics Class +

    A convenience utility for creating a TupleBvr object with three members. + +

    public static TupleBvr tripleBvr(
      Behavior first,
      Behavior second,
      Behavior third
      );

    Parameters
    +
    first +
    The first Behavior object in the TupleBvr. +
    second +
    The second Behavior object in the TupleBvr. +
    third +
    The third Behavior object in the TupleBvr. +
    +
    Return Values
    +

    Returns the TupleBvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0202.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0202.HTM new file mode 100644 index 0000000..8cad7e2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0202.HTM @@ -0,0 +1,334 @@ + + +Static Methods Relevant to Vector2Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Vector2Bvr Objects +DirectAnimation Animated Header --Static Methods Relevant to Vector2Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to TupleBvr Objects
    +*Next Topic: Static Fields Relevant to Vector2Bvr Objects
    +

    +

    +

    Static Methods Relevant to Vector2Bvr Objects

    +
    +


    add

    +Statics Class +

    Creates a two-dimensional vector behavior that is the vector-valued sum of the two vectors. + +

    public static Vector2Bvr add(
      Vector2Bvr v1,
      Vector2Bvr v2
      );

    Parameters
    +
    v1 and v2 +
    The Vector2Bvr objects. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    See Also
    +

    sub + +


    bSpline

    +Statics Class +

    Creates a Vector2Bvr behavior based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned Vector2Bvr is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a NumberBvr that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    public static Vector2Bvr bSpline(
      int degree,
      NumberBvr[] knots,
      Vector2Bvr[] control_elements,
      NumberBvr[] weights,
      NumberBvr evaluation
      );

    Parameters
    +
    degree +
    A number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array of NumberBvr objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array of Point2Bvr objects representing the control elements used to calculate the B-spline. +
    weights +
    An array of NumberBvr objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    evaluation +
    A NumberBvr object that controls the spline evaluation. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +


    derivative

    +Statics Class +

    Creates a new, two-dimensional vector behavior that is the instantaneous derivative (rate of change) of the given vector behavior. For example, a constant vector behavior yields a constant derivative of [0 0], and vector2(time, 0) (without any additional time substitutions) yields a constant derivative vector of [1 0]. + +

    public static Vector2Bvr derivative(
      Vector2Bvr vec
      );

    Parameters
    +
    vec +
    A Vector2Bvr object. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +


    dot

    +Statics Class +

    Creates a number behavior that represent the "dot product" of the given vectors. The dot product is the product of the lengths of the vectors and the cosine of the angle between them. + +

    public static NumberBvr dot(
      Vector2Bvr v1,
      Vector2Bvr v2
      );

    Parameters
    +
    v1 and v2 +
    The Vector2Bvr objects. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    integral

    +Statics Class +

    Creates an two-dimensional vector that represents the sum of the all values of vec from the given start time to the present. + +

    public static Vector2Bvr integral(
      Vector2Bvr vec
      );

    Parameters
    +
    a +
    The Vector2Bvr object. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +


    neg

    +Statics Class +

    Creates a new two-dimensional vector that is the same length as the original vector but points in the opposite direction. + +

    public static Vector2Bvr neg(
      Vector2Bvr v1
      );

    Parameters
    +
    v1 +
    A Vector2Bvr object that is the original vector. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +


    sub

    +Statics Class +

    Creates a two-dimensional vector behavior. The direction and length of the vector are calculated by subtracting the coordinates of v2 from the corresponding coordinates of v1. + +

    public static Vector2Bvr sub(
      Vector2Bvr v1,
      Vector2Bvr v2
      );

    Parameters
    +
    v1 and v2 +
    The Vector2Bvr objects. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    See Also
    +

    add + +


    vector2

    +Statics Class +

    Creates a two-dimensional vector behavior, having a direction and length as specified by the given Cartesian coordinates. + +

    public static Vector2Bvr vector2(
      NumberBvr x,
      NumberBvr y
      );

    Parameters
    +
    x +
    The NumberBvr object specifying the distance along the x-axis from the origin to a point. This parameter can also be of type double. +
    y +
    NumberBvr object specifying the distance along the y-axis. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    See Also
    +

    vector2Polar + +


    vector2Polar

    +Statics Class +

    Creates a two-dimensional vector behavior, having a direction and length as specified by the given polar coordinates. + +

    public static Vector2Bvr vector2Polar(
      NumberBvr XYangle,
      NumberBvr length
      );

    Parameters
    +
    XYangle +
    The NumberBvr object that is the counter-clockwise angle of the vector, in radians, from the positive x-ray. This parameter can also be of type double. +
    length +
    The NumberBvr object that is the length of the vector. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    See Also
    +

    vector2 + +


    vector2PolarDegrees

    +Statics Class +

    Creates a two-dimensional vector behavior, having a direction and length as specified by the given polar coordinates. + +

    public static Vector2Bvr vector2PolarDegrees(
      double XYangle,
      double length
      );

    Parameters
    +
    XYangle +
    The double that is the counter-clockwise angle of the vector (expressed in degrees) from the positive x-ray. +
    length +
    The double that is the length of the vector. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0203.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0203.HTM new file mode 100644 index 0000000..b00b388 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0203.HTM @@ -0,0 +1,186 @@ + + +Static Fields Relevant to Vector2Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to Vector2Bvr Objects +DirectAnimation Animated Header --Static Fields Relevant to Vector2Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Vector2Bvr Objects
    +*Next Topic: Static Methods Relevant to Vector3Bvr Objects
    +

    +

    +

    Static Fields Relevant to Vector2Bvr Objects

    +
    +
    +
    xVector2 +
    A two-dimensional vector behavior (Vector2Bvr object) that represents the unit vector on the x-axis. The vector's length is always 1, the direction is always the same as the positive x-axis. +
    yVector2 +
    A two-dimensional vector behavior (Vector2Bvr object) that represents the unit vector on the y-axis. The vector's length is always 1, the direction is always the same as the positive y-axis. +
    zeroVector2 +
    A two-dimensional vector behavior (Vector2Bvr object) that represents the null vector. The vector's length is always 0, the direction is undefined. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0204.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0204.HTM new file mode 100644 index 0000000..9e265b4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0204.HTM @@ -0,0 +1,387 @@ + + +Static Methods Relevant to Vector3Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Methods Relevant to Vector3Bvr Objects +DirectAnimation Animated Header --Static Methods Relevant to Vector3Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to Vector2Bvr Objects
    +*Next Topic: Static Fields Relevant to Vector3Bvr Objects
    +

    +

    +

    Static Methods Relevant to Vector3Bvr Objects

    +
    +


    add

    +Statics Class +

    Creates a three-dimensional vector behavior. The direction and length of the vector are calculated by adding the corresponding coordinates of the given vectors. + +

    public static Vector3Bvr add(
      Vector3Bvr v1,
      Vector3Bvr v2
      );

    Parameters
    +
    v1 and v2 +
    The Vector3Bvr objects. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +

    See Also
    +

    sub + +


    bSpline

    +Statics Class +

    Creates a Vector3Bvr behavior based on a B-spline function. The function depends on the control elements, the knot vector, the mathematical degree, and the weights of the control elements (these are optional). + +

    A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that: + +

    numberOfControlElements = numberOfKnots - degree + 1 + +

    The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts. + +

    Given a degree d and a number of knots k, the function is valid in the range knotd to knotk-d+1, and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive. + +

    The returned Vector3Bvr is the traversal of the spline function according to the evaluation parameter. The evaluation parameter is a NumberBvr that must be in the valid range of the spline, which is [knotd, knotk-d+1]. Any values outside this range are automatically clamped to the end values. + +

    public static Vector3Bvr bSpline(
      int degree,
      NumberBvr[] knots,
      Vector3Bvr[] control_elements,
      NumberBvr[] weights,
      NumberBvr evaluation
      );

    Parameters
    +
    degree +
    A number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3. +
    knots +
    An array of NumberBvr objects representing the knots used to calculate the B-spline. +
    control_elements +
    An array of Vector3Bvr objects representing the control elements used to calculate the B-spline. +
    weights +
    An array of NumberBvr objects representing the weights used to calculate the rational B-spline. There must be the same number of weights as control elements. For non-rational B-splines, the value of weights is null. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +


    cross

    +Statics Class +

    Creates a vector behavior that represents the "cross product" of the given vectors. The new vector has a length that is equal to the product of the lengths of the original vectors and the sine of the angle between them. The new vector has a direction that is perpendicular to the plane formed by the original vectors and that obeys the right-hand rule. + +

    public static Vector3Bvr cross(
      Vector3Bvr v1,
      Vector3Bvr v2
      );

    Parameters
    +
    v1 and v2 +
    The Vector3Bvr objects. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +


    derivative

    +Statics Class +

    Creates a new, three-dimensional vector behavior that is the instantaneous derivative (rate of change) of the given vector behavior. For example, a constant vector behavior yields a constant derivative of [0 0 0], and vector3(time, 0, 0) (without any additional time substitutions) yields a constant derivative vector of [1 0 0]. + +

    public static Vector3Bvr derivative(
      Vector3Bvr vec
      );

    Parameters
    +
    vec +
    A Vector3Bvr object. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +


    dot

    +Statics Class +

    Creates a number behavior that represent the "dot product" of the given vectors. The dot product is the product of the lengths of the vectors and the cosine of the angle between them. + +

    public static NumberBvr dot(
      Vector3Bvr v1,
      Vector3Bvr v2
      );

    Parameters
    +
    v1 and v2 +
    Vector3Bvr objects. +
    +
    Return Values
    +

    Returns the NumberBvr object. + + +


    integral

    +Statics Class +

    Creates an three-dimensional vector that represents the sum of the all values of vec from the given start time to the present. + +

    public static Vector3Bvr integral(
      Vector3Bvr vec
      );

    Parameters
    +
    a +
    The Vector3Bvr object. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +


    neg

    +Statics Class +

    Creates a new three-dimensional vector behavior that has the same length as the original vector, but points in the opposite direction. + +

    public static Vector3Bvr neg(
      Vector3Bvr v1
      );

    Parameters
    +
    v1 +
    A Vector3Bvr object that is the original vector. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +


    sub

    +Statics Class +

    Creates a three-dimensional vector behavior. The direction and length of the vector are calculated by subtracting the coordinates of v2 from the corresponding coordinates of v1. + +

    public static Vector3Bvr sub(
      Vector3Bvr v1,
      Vector3Bvr v2
      );

    Parameters
    +
    v1 and v2 +
    Vector3Bvr objects. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +

    See Also
    +

    add + +


    vector3Spherical

    +Statics Class +

    Creates a three-dimensional vector behavior, having a direction and length as specified by the given spherical coordinates. + +

    public static Vector3Bvr vector3Spherical(
      NumberBvr XYangle,
      NumberBvr YZangle,
      NumberBvr length
      );

    Parameters
    +
    XYangle +
    A NumberBvr object of the counter-clockwise XY angle, in radians, of the point about the positive y-axis. The angle begins at the positive z-ray, so that [0 0 1] has a XYangle of 0, and [1 0 0] has a XYangle of pi/2. This parameter can also be of type double. +
    YZangle +
    A NumberBvr object of the counter-clockwise elevation angle, in radians, of the point above the XZ-plane. A YZangle of pi/2 means the point is straight up (on the positive y-ray), and a YZangle of -pi/2 is straight down (on the negative y-ray). This parameter can also be of type double. +
    length +
    A NumberBvr object specifying the length of the vector. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +

    Remarks
    +

    The following table correlates Cartesian coordinates with polar coordinates: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CartesianXYangleYZangleLength +
    Coordinates +
    [0 0 0]XX0 +
    [d 0 0]pi/20d +
    [-d 0 0]-pi/20d X = Don't Care +
    [0 d 0]Xpi/2d +
    [0 -d 0]X-pi/2d +
    [0 0 d]00d +
    [0 0 -d]pi0d +
    +

    See Also
    +

    vector3 + +


    vector3

    +Statics Class +

    Creates a three-dimensional vector behavior, having a direction and length as specified by the given Cartesian coordinates. + +

    public static Vector3Bvr vector3(
      NumberBvr x,
      NumberBvr y,
      NumberBvr z
      );

    Parameters
    +
    x, y, and z +
    The NumberBvr objects specifying the coordinate values. The x specifies a distance along the x-axis from the origin to a point, y specifies a distance along the y-axis, and z a distance along the z-axis. These parameters can also be of type double. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +

    See Also
    +

    vector3Spherical + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0205.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0205.HTM new file mode 100644 index 0000000..0c37b4e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0205.HTM @@ -0,0 +1,188 @@ + + +Static Fields Relevant to Vector3Bvr Objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Static Fields Relevant to Vector3Bvr Objects +DirectAnimation Animated Header --Static Fields Relevant to Vector3Bvr Objects* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Methods Relevant to Vector3Bvr Objects
    +*Next Topic: StringBvr Class
    +

    +

    +

    Static Fields Relevant to Vector3Bvr Objects

    +
    +
    +
    xVector3 +
    A three-dimensional vector behavior (Vector3Bvr object) that represents the unit vector on the x-axis. The vector's length is always 1, the direction is always the same as the positive x-axis. +
    yVector3 +
    A three-dimensional vector behavior (Vector3Bvr object) that represents the unit vector on the y-axis. The vector's length is always 1, the direction is always the same as the positive y-axis. +
    zVector3 +
    A three-dimensional vector behavior (Vector3Bvr object) that represents the unit vector on the z-axis. The vector's length is always 1, the direction is always the same as the positive z-axis. +
    zeroVector3 +
    A three-dimensional vector behavior (Vector3Bvr object) that represents the null vector. The vector's length is always 0, the direction is undefined. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0206.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0206.HTM new file mode 100644 index 0000000..059becd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0206.HTM @@ -0,0 +1,221 @@ + + +StringBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --StringBvr Class +DirectAnimation Animated Header --StringBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Static Fields Relevant to Vector3Bvr Objects
    +*Next Topic: Transform2Bvr Class
    +

    +

    +

    StringBvr Class

    +
    +
    public class StringBvr extends Behavior {
    +    // Methods
    +    public Object extract();
    +    
    +    public static StringBvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a string behavior. At any given time, the value of the behavior is a character string. + +

    For more information about behaviors, see the Behavior class. + +

    +

    StringBvr Methods

    +

    bullet1.gifextract
    +

    bullet1.gifnewUninitBvr
    +


    extract

    +StringBvr Class +

    Extracts the value of the behavior, returning a Java object. This behavior must have a constant value. + +

    public Object extract( );

    Return Values
    +

    Returns a Java object. For more information about java.lang.Object objects, consult a Java reference. + + +


    newUninitBvr

    +StringBvr Class +

    Allows you to refer to an StringBvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static StringBvr newUninitBvr( );

    Parameters
    +
    b +
    A character string. +
    +
    Return Values
    +

    Returns the StringBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type StringBvr. + +

    public static StringBvr concat(StringBvr a, StringBvr b); +

    public static StringBvr toBvr(String string); + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0207.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0207.HTM new file mode 100644 index 0000000..10f5914 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0207.HTM @@ -0,0 +1,259 @@ + + +Transform2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Transform2Bvr Class +DirectAnimation Animated Header --Transform2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: StringBvr Class
    +*Next Topic: Transform3Bvr Class
    +

    +

    +

    Transform2Bvr Class

    +
    +
    public class Transform2Bvr extends Behavior {
    +
    +    // Methods
    +    public Transform2Bvr inverse();
    +    public BooleanBvr    isSingular();
    +
    +    public static Transform2Bvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a two-dimensional transformation behavior. The behavior consists of a 3 by 2 matrix of number behaviors that can be applied to two-dimensional point behaviors to translate, scale, rotate or skew the location of the point, and can be applied to two-dimensional vector behaviors to scale, rotate, or skew the length and/or direction of the vector. + +

    Because matrix values are number behaviors (NumberBvr objects), the transformation behavior may change over time as the number behaviors change. For more information about behaviors, see the Behavior class. + +

    +

    Transform2Bvr Methods

    +

    bullet1.gifinverse
    +

    bullet1.gifisSingular
    +

    bullet1.gifnewUninitBvr
    +


    inverse

    +Transform2Bvr Class +

    Creates a transformation behavior that is the inverse of the original transformation. + +

    public Transform2Bvr inverse( );

    Return Values
    +

    Returns the Transform2Bvr object. + +

    Remarks
    +

    The inverse transformation is useful for removing the effects of the original transformation from a point or vector behavior. Some transforms have no inverse. To characterize transforms of an unknown type, use isSingular. + + +


    isSingular

    +Transform2Bvr Class +

    Creates a boolean behavior that indicates whether the transform is singular or not. A singular transform is one that has no inverse. + +

    public BooleanBvr isSingular( );

    Return Values
    +

    Returns the BooleanBvr object. This object's value is true if the transform is singular; otherwise, it is false. + + +


    newUninitBvr

    +Transform2Bvr Class +

    This method allows you to refer to an Transform2Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Transform2Bvr newUninitBvr( );

    Return Values
    +

    Returns the Transform2Bvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type Transform2Bvr. + +

    public static Transform2Bvr compose(Transform2Bvr xf1, Transform2Bvr xf2); +

    public static Transform2Bvr compose2Array(Transform2Bvr[] xforms); +

    public static Transform2Bvr followPath(Path2Bvr path, NumberBvr evaluator); +

    public static Transform2Bvr followPathAngle(Path2Bvr path, NumberBvr evaluator); +

    public static Transform2Bvr followPathAngleUpright(Path2Bvr path, NumberBvr evaluator); +

    public static Transform2Bvr rotate(NumberBvr radians); +

    public static Transform2Bvr rotateDegrees(double degrees); +

    public static Transform2Bvr rotateRate(double radians); +

    public static Transform2Bvr rotateRateDegrees(double degrees); +

    public static Transform2Bvr scale(NumberBvr sx, NumberBvr sy); +

    public static Transform2Bvr scale(Vector2Bvr v); +

    public static Transform2Bvr scaleRate(double x, double y); +

    public static Transform2Bvr scale2(NumberBvr uniformFactor); +

    public static Transform2Bvr scale2Rate(double rate); +

    public static Transform2Bvr transform3x2(NumberBvr[] matrix); +

    public static Transform2Bvr translate(NumberBvr tx, NumberBvr ty); +

    public static Transform2Bvr translate(Point2Bvr loc); +

    public static Transform2Bvr translate(Vector2Bvr v); +

    public static Transform2Bvr translate(double x, double y); +

    public static Transform2Bvr translateRate(double x, double y); +

    public static Transform2Bvr xShear(NumberBvr x); +

    public static Transform2Bvr xShearRate(double rate); +

    public static Transform2Bvr yShear(NumberBvr y); +

    public static Transform2Bvr yShearRate(double rate); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type Transform2Bvr. + +

    public final static Transform2Bvr identityTransform2; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0208.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0208.HTM new file mode 100644 index 0000000..a1b87e4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0208.HTM @@ -0,0 +1,272 @@ + + +Transform3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Transform3Bvr Class +DirectAnimation Animated Header --Transform3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Transform2Bvr Class
    +*Next Topic: TupleBvr Class
    +

    +

    +

    Transform3Bvr Class

    +
    +
    public class Transform3Bvr extends Behavior {
    +
    +    // Methods
    +    public Transform3Bvr inverse();
    +    public BooleanBvr    isSingular();
    +    public Transform2Bvr parallelTransform2();
    +   
    +    public static Transform3Bvr newUninitBvr();
    +
    +}
    +
    +

    Just as a Transform2Bvr transforms a two-dimensional object into another two-dimensional object, a Transform3Bvr transforms a three-dimensional object into another three-dimensional object. Other transforms include the render method, which transforms three-dimensional objects into two-dimensional objects, and the project method, which transforms a three-dimensional point into a two-dimensional point. + +

    For more information about behaviors, see the Behavior class. + +

    +

    Transform3Bvr Methods

    +

    bullet1.gifinverse
    +

    bullet1.gifisSingular
    +

    bullet1.gifparallelTransform2
    +

    bullet1.gifnewUninitBvr
    +


    inverse

    +Transform3Bvr Class +

    Creates a transformation behavior that is the inverse of the original transformation. + +

    public Transform3Bvr inverse( );

    Return Values
    +

    Returns the Transform3Bvr object. + +

    Remarks
    +

    The inverse transformation is useful for removing the effects of the original transformation from a three-dimensional object. To characterize transforms of an unknown type, use isSingular. + + +


    isSingular

    +Transform3Bvr Class +

    Creates a boolean behavior that indicates whether the transform is singular or not. A singular transform is one that has no inverse. + +

    public BooleanBvr isSingular( );

    Return Values
    +

    Returns the BooleanBvr object. This object's value is true if the transform is singular; otherwise, it is false. + + +


    parallelTransform2

    +Transform3Bvr Class +

    Creates a Transform2Bvr object from the Transform3Bvr object. + +

    public Transform2Bvr parallelTransform2( );

    Return Values
    +

    Returns the Transform2Bvr object. + +

    Remarks
    +

    This method is equivalent to casting an orthographic projection of the Transform3Bvr onto the X-Y plane. For predictable results, the transform must be an affine (4´3) transform rather than a perspective (4´4) transform. + + +


    newUninitBvr

    +Transform3Bvr Class +

    This method allows you to refer to an Transform3Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Transform3Bvr newUninitBvr( );

    Return Values
    +

    Returns the Transform3Bvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type Transform3Bvr. + +

    public static Transform3Bvr compose(Transform3Bvr xf1, Transform3Bvr xf2); +

    public static Transform3Bvr compose3Array(Transform3Bvr[] xforms); +

    public static Transform3Bvr lookAtFrom(Point3Bvr from, Point3Bvr to, Vector3Bvr up); +

    public static Transform3Bvr rotate(Vector3Bvr axis, NumberBvr radians); +

    public static Transform3Bvr rotateDegrees(Vector3Bvr axis, double degrees); +

    public static Transform3Bvr rotateRate(Vector3Bvr axis, double radians); +

    public static Transform3Bvr rotateRateDegrees(Vector3Bvr axis, double degrees); +

    public static Transform3Bvr scale(NumberBvr sx, NumberBvr sy, NumberBvr sz); +

    public static Transform3Bvr scale(Vector3Bvr v); +

    public static Transform3Bvr scaleRate(double x, double y, double z); +

    public static Transform3Bvr scale3(NumberBvr uniformFactor); +

    public static Transform3Bvr scale3Rate(double rate); +

    public static Transform3Bvr transform4x4(NumberBvr[] matrix); +

    public static Transform3Bvr translate(NumberBvr tx, NumberBvr ty, NumberBvr tz); +

    public static Transform3Bvr translate(Point3Bvr loc); +

    public static Transform3Bvr translate(Vector3Bvr v); +

    public static Transform3Bvr translateRate(double x, double y, double z) +

    public static Transform3Bvr xShear(NumberBvr a, NumberBvr b); +

    public static Transform3Bvr xShearRate(double a, double b); +

    public static Transform3Bvr yShear(NumberBvr c, NumberBvr d); +

    public static Transform3Bvr yShearRate(double c, double d); +

    public static Transform3Bvr zShear(NumberBvr e, NumberBvr f); +

    public static Transform3Bvr zShearRate(double e, double f); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type Transform3Bvr. + +

    public final static Transform3Bvr identityTransform3; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0209.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0209.HTM new file mode 100644 index 0000000..60905ba --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0209.HTM @@ -0,0 +1,243 @@ + + +TupleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --TupleBvr Class +DirectAnimation Animated Header --TupleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Transform3Bvr Class
    +*Next Topic: UntilNotifier Interface
    +

    +

    +

    TupleBvr Class

    +
    +
    public class TupleBvr extends Behavior
    +     //Constructor
    +     public TupleBvr(Behavior[] tuple);
    +
    +     //Methods
    +     public Behavior nth(int i);
    +     public int length();
    +
    +     public static TupleBvr newUninitBvr(TupleBvr tuple);
    +}
    +
    +

    A TupleBvr object is similar to an array. It can, however, accept heterogeneous types. The two methods included in this class are convenience utilities. Any number of members can be included in a TupleBvr object. + +

    +


    TupleBvr Constructor

    +TupleBvr Class +

    Constructs the TupleBvr object. + +

    public TupleBvr(
      Behavior behaviors[]
      );

    Parameters
    +
    behaviors +
    The behaviors to be included in the TupleBvr. +
    + +
    +

    TupleBvr Methods

    +

    bullet1.giflength
    +

    bullet1.gifnth
    +

    bullet1.gifnewUninit
    +


    length

    +TupleBvr Class +

    Determines the length of a tuple behavior. + +

    public int length( );

    Return Values
    +

    Returns an integer. For more information about integers, consult a Java reference. + + +


    nth

    +TupleBvr Class +

    Selects a Behavior object based on the value of i. + +

    public Behavior nth(
      int i
      );

    Parameters
    +
    i +
    The index into the TupleBvr object. Note that this is not a time-varying index. +
    +


    newUninit

    +TupleBvr Class +

    Allows you to refer to an Transform3Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static TupleBvr newUninitBvr(
      TupleBvr tuple
      );

    Parameters
    +
    tuple +
    Used to establish the type the tuple holds. +
    +
    Return Values
    +

    Returns the TupleBvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics and are most relevant to objects of type TupleBvr. + +

    public static TupleBvr pairBvr(Behavior first, Behavior second); +

    public static TupleBvr tripleBvr(Behavior first, Behavior second, Behavior third); + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0210.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0210.HTM new file mode 100644 index 0000000..e77ac6d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0210.HTM @@ -0,0 +1,207 @@ + + +UntilNotifier Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --UntilNotifier Interface +DirectAnimation Animated Header --UntilNotifier Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: TupleBvr Class
    +*Next Topic: Vector2Bvr Class
    +

    +

    +

    UntilNotifier Interface

    +
    +
    public interface UntilNotifier extends java.lang.Object{
    +    public abstract Behavior notify(Object eventData, Behavior previous, BvrsToRun extraBvrsToRun);
    +}
    +
    +

    Represents the event notifier used to generate a replacement behavior for a behavior created using a untilNotify method. + + + +

    UntilNotifier Methods

    +

    bullet1.gifnotify
    +


    notify

    +UntilNotifier Interface +

    Creates a behavior in response to an event. This method is called when the event specified in a call to a untilNotify method occurs. The eventData and previous parameters specify the state of the event and the initial behavior, and can be used to determine how to create the new behavior. + +

    public Behavior notify(
      Object eventData,
      Behavior previous,
      BvrsToRun extraBvrsToRun
      );

    Parameters
    +
    eventData +
    An object that contains any data produced by the event itself. +
    previous +
    A Behavior object that represents the running behavior from which the application is transitioning. +
    extraBvrsToRun +
    Behaviors that are not a part of the model. +
    +
    Return Values
    +

    Returns the Behavior object. + + +

    See Also
    +

    untilNotify + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0211.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0211.HTM new file mode 100644 index 0000000..b348611 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0211.HTM @@ -0,0 +1,366 @@ + + +Vector2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Vector2Bvr Class +DirectAnimation Animated Header --Vector2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: UntilNotifier Interface
    +*Next Topic: Vector3Bvr Class
    +

    +

    +

    Vector2Bvr Class

    +
    +
    public class Vector2Bvr extends Behavior {
    +
    +    // Methods
    +    public Vector2Bvr div(NumberBvr scalar);
    +    public NumberBvr  getPolarCoordAngle();
    +    public NumberBvr  getPolarCoordLength();
    +    public NumberBvr  getX();
    +    public NumberBvr  getY();
    +    public NumberBvr  length();
    +    public NumberBvr  lengthSquared();
    +    public Vector2Bvr mul(NumberBvr scalar);
    +    public Vector2Bvr normalize();
    +    public Vector2Bvr transform(Transform2Bvr xf);
    +
    +    public static Vector2Bvr newUninitBvr();
    +}
    +
    +

    Creates an object that represents a two-dimensional vector behavior. At any given time, the value of the behavior is a direction and length (magnitude), specified as a pair of coordinate values given as either Cartesian coordinates (x, y) or polar coordinates (XYangle, length). The direction of the vector is parallel to the ray that starts at the origin and passes through the point specified by the vector's coordinates, and the length is the distance between the origin and the point. + +

    Because coordinate values are number behaviors (NumberBvr objects), the direction and length of the vector behavior may change over time as the number behaviors change. For more information about behaviors, see the Behavior class. + +

    +

    Vector2Bvr Methods

    +

    bullet1.gifdiv
    +

    bullet1.gifgetPolarCoordAngle
    +

    bullet1.gifgetPolarCoordLength
    +

    bullet1.gifgetX
    +

    bullet1.gifgetY
    +

    bullet1.giflength
    +

    bullet1.giflengthSquared
    +

    bullet1.gifmul
    +

    bullet1.gifnormalize
    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    div

    +Vector2Bvr Class +

    Creates a new two-dimensional vector behavior that points in the same direction as the original vector but has a length that has been divided by scalar. + +

    public Vector2Bvr div(
      NumberBvr scalar
      );

    Parameters
    +
    scalar +
    A NumberBvr object. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    See Also
    +

    mul + +


    getPolarCoordAngle

    +Vector2Bvr Class +

    Creates a number behavior that represents the counter-clockwise angular displacement, in radians, relative to the positive x-axis, of the vector behavior. The range is [-Pi, +Pi]. + +

    public NumberBvr getPolarCoordAngle( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getPolarCoordLength, vector2Polar + +


    getPolarCoordLength

    +Vector2Bvr Class +

    Creates a number behavior that is the length of the vector. + +

    public NumberBvr getPolarCoordLength( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getPolarCoordAngle, vector2Polar + +


    getX

    +Vector2Bvr Class +

    Creates a number behavior that represents the x coordinate of this vector behavior. + +

    public NumberBvr getX( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getY, vector2 + +


    getY

    +Vector2Bvr Class +

    Creates a number behavior that represents the y coordinate of this vector behavior. + +

    public NumberBvr getY( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getX, vector2 + +


    length

    +Vector2Bvr Class +

    Creates a number behavior that represents the length of a vector behavior. + +

    public NumberBvr length( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    lengthSquared + +


    lengthSquared

    +Vector2Bvr Class +

    Creates a number behavior that represents the length of a vector behavior squared. + +

    public NumberBvr lengthSquared( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    Remarks
    +

    It is slightly more efficient to calculate lengthSquared than length. + +

    See Also
    +

    length + +


    mul

    +Vector2Bvr Class +

    Creates a new two-dimensional vector behavior that points in the same direction as the original vector but has a length that has been multiplied by scalar. + +

    public Vector2Bvr mul(
      NumberBvr scalar
      );

    Parameters
    +
    scalar +
    A NumberBvr object. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    See Also
    +

    div + +


    normalize

    +Vector2Bvr Class +

    Creates a normalized, two-dimensional vector behavior. The normalized vector has the same direction as the original vector, but the length is 1. + +

    public Vector2Bvr normalize( );

    Return Values
    +

    Returns the Vector2Bvr object. + + +


    transform

    +Vector2Bvr Class +

    Creates a new two-dimensional vector behavior that is the result of applying the given transformation to the original vector. The translation elements of the transformation are ignored; translation does not apply to vectors. + +

    public Vector2Bvr transform(
      Transform2Bvr xf
      );

    Parameters
    +
    xf +
    A Transform2Bvr object. +
    +
    Return Values
    +

    Returns the Vector2Bvr object. + + +

    Remarks
    +

    This attribute composes values. + +


    newUninitBvr

    +Vector2Bvr Class +

    This method allows you to refer to an Vector2Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Vector2Bvr newUninitBvr( );

    Return Values
    +

    Returns the Vector2Bvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type Vector2Bvr. + +

    public static Vector2Bvr add(Vector2Bvr v1, Vector2Bvr v2); +

    public static Vector2Bvr bSpline(int degree, NumberBvr[] knots, Vector2Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation); +

    public static Vector2Bvr derivative(Vector2Bvr vec); +

    public static NumberBvr dot(Vector2Bvr v1, Vector2Bvr v2); +

    public static Vector2Bvr integral(Vector2Bvr vec); +

    public static Vector2Bvr neg(Vector2Bvr v1); +

    public static Vector2Bvr sub(Vector2Bvr v1, Vector2Bvr v2); +

    public static Vector2Bvr vector2(NumberBvr x, NumberBvr y); +

    public static Vector2Bvr vector2Polar(NumberBvr XYangle, NumberBvr length); +

    public static Vector2Bvr vector2PolarDegrees(double XYangle, double length); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type Vector2Bvr. + +

    public final static Vector2Bvr xVector2; +

    public final static Vector2Bvr yVector2; +

    public final static Vector2Bvr zeroVector2; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0212.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0212.HTM new file mode 100644 index 0000000..1b576f6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0212.HTM @@ -0,0 +1,391 @@ + + +Vector3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Vector3Bvr Class +DirectAnimation Animated Header --Vector3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Vector2Bvr Class
    +*Next Topic: Viewer Interface
    +

    +

    +

    Vector3Bvr Class

    +
    +
    public class Vector3Bvr extends Behavior {
    +    // Methods
    +
    +    public Vector3Bvr div(NumberBvr scalar);
    +    public NumberBvr  getSphericalCoordLength();
    +    public NumberBvr  getSphericalCoordXYAngle();
    +    public NumberBvr  getSphericalCoordYZAngle();
    +    public NumberBvr  getPolarCoordAngle();
    +    public NumberBvr  getX();
    +    public NumberBvr  getY();
    +    public NumberBvr  getZ();
    +    public NumberBvr  length();
    +    public NumberBvr  lengthSquared();
    +    public Vector3Bvr mul(NumberBvr scalar);
    +    public Vector3Bvr normalize();
    +    public Vector3Bvr transform(Transform3Bvr xf);
    +
    +    public static Vector3Bvr newUninitBvr();
    +
    +}
    +
    +

    Creates an object that represents a three-dimensional vector behavior. At any given time, the value of the behavior is a direction and length (magnitude), specified as a triplet of coordinate values given as either Cartesian coordinates (x, y, z) or spherical coordinates (XYangle, YZangle, lenght). The direction of the vector is parallel to the ray that starts at the origin and passes through the point specified by the vector's coordinates, and the length is the distance between the origin and the point. + +

    Because coordinate values are number behaviors (NumberBvr objects), the direction and length of the vector behavior may change over time as the number behaviors change. For more information about behaviors, see the Behavior class. + +

    +

    Vector3Bvr Methods

    +

    bullet1.gifdiv
    +

    bullet1.gifgetSphericalCoordLength
    +

    bullet1.gifgetSphericalCoordXYAngle
    +

    bullet1.gifgetSphericalCoordYZAngle
    +

    bullet1.gifgetX
    +

    bullet1.gifgetY
    +

    bullet1.gifgetZ
    +

    bullet1.giflength
    +

    bullet1.giflengthSquared
    +

    bullet1.gifmul
    +

    bullet1.gifnormalize
    +

    bullet1.giftransform
    +

    bullet1.gifnewUninitBvr
    +


    div

    +Vector3Bvr Class +

    Creates a new three-dimensional vector behavior that points in the same direction as the original vector but has a length that has been divided by scalar. + +

    public Vector3Bvr div(
      NumberBvr scalar
      );

    Parameters
    +
    scalar +
    A NumberBvr object. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +

    See Also
    +

    mul + +


    getSphericalCoordLength

    +Vector3Bvr Class +

    Returns the NumberBvr object that is the distance of the vector from the origin. + +

    public NumberBvr getSphericalCoordLength( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getSphericalCoordXYAngle, getSphericalCoordYZAngle, vector3Spherical +


    getSphericalCoordXYAngle

    +Vector3Bvr Class +

    Returns the NumberBvr object that is the counter-clockwise angle, in radians, of the vector about the y-axis, starting at positive z. The range is [-Pi, +Pi]. + +

    public NumberBvr getSphericalCoordXYAngle( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getSphericalCoordYZ, getSphericalCoordLength, vector3Spherical + +


    getSphericalCoordYZAngle

    +Vector3Bvr Class +

    Returns the NumberBvr object that is the YZ angle, in radians, going up from the XZ-plane towards the positive y-ray. The range is [-Pi/2, +Pi/2]. + +

    public NumberBvr getSphericalCoordYZAngle( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getSphericalCoordXYAngle, getSphericalCoordLength, vector3Spherical + +


    getX

    +Vector3Bvr Class +

    Creates a number behavior that represents the x coordinate of this vector behavior. + +

    public NumberBvr getX( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getY, getZ, vector3 + +


    getY

    +Vector3Bvr Class +

    Creates a number behavior that represents the y coordinate of this vector behavior. + +

    public NumberBvr getY( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getX, getZ, vector3 + +


    getZ

    +Vector3Bvr Class +

    Creates a number behavior that represents the z coordinate of this vector behavior. + +

    public NumberBvr getZ( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    getX, getY, vector3 + +


    length

    +Vector3Bvr Class +

    Creates a number behavior that represents the length of a vector behavior. + +

    public NumberBvr length( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    lengthSquared + +


    lengthSquared

    +Vector3Bvr Class +

    Creates a number behavior that represents the length of a vector behavior squared. + +

    public NumberBvr lengthSquared( );

    Return Values
    +

    Returns the NumberBvr object. + + +

    See Also
    +

    length + +


    mul

    +Vector3Bvr Class +

    Creates a new three-dimensional vector behavior that points in the same direction as the original vector but has a length that has been multiplied by scalar. + +

    public Vector3Bvr mul(
      NumberBvr scalar
      );

    Parameters
    +
    scalar +
    A NumberBvr object. This parameter can also be of type double. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +

    See Also
    +

    div + +


    normalize

    +Vector3Bvr Class +

    Creates a normalized, three-dimensional vector behavior. The normalized vector has the same direction as the original vector, but the length is 1. + +

    public Vector3Bvr normalize( );

    Return Values
    +

    Returns the Vector3Bvr object. + + +


    transform

    +Vector3Bvr Class +

    Creates a new three-dimensional vector behavior that is the result of applying the given transformation to the original vector. The translation elements of the transformation are ignored; translation does not apply to vectors. + +

    public Vector3Bvr transform(
      Transform3Bvr xf
      );

    Parameters
    +
    xf +
    A Transform3Bvr object. +
    +
    Return Values
    +

    Returns the Vector3Bvr object. + + +

    Remarks
    +

    This attribute composes values. + +


    newUninitBvr

    +Vector3Bvr Class +

    This method allows you to refer to an Vector3Bvr behavior before that behavior has been defined. With this method you can create the behavior and use it in the definition of other behaviors, but not actually define its contents until some later point. (This is accomplished with the init method, which is available on all behaviors.) The system generates a run-time error if you initialize a non-uninitialized behavior, initialize an uninitialized behavior that has already been initialized, or run an initialized behavior that has not yet been initialized. + +

    public static Vector3Bvr newUninitBvr( );

    Return Values
    +

    Returns the Vector3Bvr object. + + +

    Relevant Methods from the Statics Class

    +

    The following methods are defined in the Statics class and are most relevant to objects of type Vector3Bvr. + +

    public static Vector3Bvr add(Vector3Bvr v1, Vector3Bvr v2); +

    public static Vector3Bvr bSpline(int degree, NumberBvr[] knots, Vector3Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation)); +

    public static Vector3Bvr cross(Vector3Bvr v1, Vector3Bvr v2); +

    public static Vector3Bvr derivative(Vector3Bvr vec); +

    public static NumberBvr dot(Vector3Bvr v1, Vector3Bvr v2); +

    public static Vector3Bvr integral(Vector3Bvr vec); +

    public static Vector3Bvr neg(Vector3Bvr v1); +

    public static Vector3Bvr sub(Vector3Bvr v1, Vector3Bvr v2); +

    public static Vector3Bvr vector3(NumberBvr x, NumberBvr y, NumberBvr z); +

    public static Vector3Bvr vector3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length); + +

    Relevant Fields from the Statics Class

    +

    The following fields are defined in the Statics class and are most relevant to objects of type Vector3Bvr. + +

    public final static Vector3Bvr xVector3; +

    public final static Vector3Bvr yVector3; +

    public final static Vector3Bvr zVector3; +

    public final static Vector3Bvr zeroVector3; + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0213.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0213.HTM new file mode 100644 index 0000000..72f12d4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0213.HTM @@ -0,0 +1,290 @@ + + +Viewer Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Viewer Interface +DirectAnimation Animated Header --Viewer Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Vector3Bvr Class
    +*Next Topic: Java Defaults
    +

    +

    +

    Viewer Interface

    +
    +
    public interface Viewer extends java.lang.Object {
    +    // Methods
    +    public abstract double getCurrentTime();
    +    public abstract double getCurrentTickTime();
    +    public abstract Preferences getPreferences();
    +    public abstract ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w);
    +    public abstract void startModel();
    +    public abstract void stopModel();
    +    public abstract void tick();
    +    public abstract void tick(double timeToUse);
    +}
    +
    +

    The Viewer interface methods give complete control over a rendering device. Every method needed to view a model is included here. By implementing these abstract methods, it is possible to write custom viewers that can provide unique functionality. Developers can, for instance, control the tick rate of their models. + + + +

    Viewer Methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    getCurrentTime +
    getCurrentTickTime +
    getPreferences +
    registerErrorAndWarningReceiver +
    startModel +
    stopModel +
    tick() +
    tick(timeToUse) + +
    +


    getCurrentTime

    +Viewer Interface +

    Returns the number of seconds since startModel was invoked. + +

    public abstract double getCurrentTime( );

    Return Values
    +

    Returns a double floating-point number. + + +


    getCurrentTickTime

    +Viewer Interface +

    Returns the time provided for the most recent call to tick or 0 if tick has not yet been called. + +

    public abstract double getCurrentTickTime( );

    Return Values
    +

    Returns the double floating-point number representing the current tick time. + + +


    getPreferences

    +Viewer Interface +

    Allows the application to dynamically view the viewer preferences. For more information about preferences, see Preferences. + +

    public abstract Preferences getPreferences( );

    Return Values
    +

    Returns the Preferences object. + + +


    registerErrorAndWarningReceiver

    +Viewer Interface +

    Allows the application to register an object that will have its methods invoked upon asynchronous errors encountered when DirectAnimation media is controlling the frame loop or when recoverable errors occur when sampling and displaying the model. + +

    public abstract ErrorAndWarningReceiver registerErrorAndWarningReceiver(
      ErrorAndWarningReceiver w
      );

    Parameters
    +
    w +
    The ErrorAndWarningReceiver object to be registered. +
    +
    Return Values
    +

    Returns the ErrorAndWarningReceiver object. + +


    startModel

    +Viewer Interface +

    Starts the behaviors associated with the model at global time 0. Also causes the createModel method on the model itself to be invoked. + +

    public abstract void startModel( );


    stopModel

    +Viewer Interface +

    Forces all media to stop immediately. It is not required to call this method, however, without it, some media (such as sounds) will continue playing until the object is released. + +

    public abstract void stopModel( );


    tick

    +Viewer Interface +

    Acutally a shorthand way of writing tick(getCurrentTime()). It is the easiest way to explicitly sample and display model and provides a real-time clock for global time. + +

    public abstract void tick( );


    tick

    +Viewer Interface +

    Explicitly performs a single sampling and display of the model, where timeToUse represents the global time. + +

    public abstract void tick(
      double timeToUse
      );

    Parameters
    +
    timeToUseThe global time for the single sampling. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0214.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0214.HTM new file mode 100644 index 0000000..1c2f682 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0214.HTM @@ -0,0 +1,248 @@ + + +Java Defaults + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Java Defaults +DirectAnimation Animated Header --Java Defaults* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Viewer Interface
    +*Next Topic: Java Event Data
    +

    +

    +

    Java Defaults

    +
    +

    This is a list of defaults, by class. Defaults are system-defined. + +

    Java Defaults by Class

    +
    +
    Behavior.debug +
    The default of the boolean is true, which means the behavior is sampled when it's started. The default output device is the standard output device. +
    GeometryBvr.diffuseColor(ColorBvr col) +
    The default diffuse color is white. +
    GeometryBvr.lightAttenuation(NumberBvr const, NumberBvr linear, NumberBvr quadratic) +
    The default attenuation coefficients are (1, 0, 0). This means there is no light attenuation. +
    GeometryBvr.lightColor(ColorBvr col) +
    The default light color is white. +
    GeometryBvr.opacity((NumberBvr opac) +
    The default opacity is 1. This means complete opacity. +
    GeometryBvr.texture(ImageBvr image) +
    The default texture is no texture. +
    ImageBvr.opacity(NumberBvr opac) +
    The default opacity is 1. +
    LineStyleBvr.color(ColorBvr color) +
    The default color is black. +
    LineStyleBvr.dash(DashStyleBvr ds) +
    The default dash style is solid. +
    LineStyleBvr.detail() +
    The default detail style is on. This is the default LineStyleBvr and it has no width. +
    LineStyleBvr.end(EndStyleBvr es) +
    The default end style is flat. +
    LineStyleBvr.join(JoinStyleBvr js) +
    The default join style is beveled. +
    Path2Bvr.draw(LineStyleBvr ls) +
    The default line style behavior is defaultLineStyle. +
    Path2Bvr fill(ImageBvr im, LineStyleBvr ls) +
    The default line style behavior is defaultLineStyle. +
    MicrophoneBvr +
    The default microphone is located at the origin. +
    Preferences.COLOR_KEY_BLUE +
    The default is 245. +
    Preferences.COLOR_KEY_GREEN +
    The default is 254. +
    Preferences.COLOR_KEY_RED +
    The default is 1. +
    Preferences.DITHERING +
    The default is Enabled. +
    Preferences.ENGINE_OPTIMIZATIONS +
    The default is On. +
    Preferences.FILL_MODE +
    The default is FILL_MODE_SOLID. +
    Preferences.MAX_FRAMES_PER_SEC +
    The default is 30. +
    Preferences.OVERRIDE_APPLICATION_PREFERENCES +
    The default is Off. +
    Preferences.PERSPECTIVE_CORRECT +
    The default is On. +
    Preferences.RGB_LIGHTING_MODE +
    The default is On. +
    Preferences.SHADE_MODE +
    The default is SHADE_MODE_GOURAUD. +
    Preferences.TEXTURE_QUALITY +
    The default is TEXTURE_QUALITY_NEAREST. +
    Preferences.USE_3-D_HW +
    The default is Off. +
    Preferences.USE_VIDEOMEM +
    The default is On. +
    Statics.defaultFont +
    The default font is Times-Roman, black, 12pts in size, and neither bold nor italicized. +
    Statics.defaultLineStyle +
    The default is detail. This style has no width. It must be specified in meters. +
    Statics.public static Path2Bvr polyline(Point2Bvr[] points) +
    The default linestyle. + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0215.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0215.HTM new file mode 100644 index 0000000..be44b1d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0215.HTM @@ -0,0 +1,266 @@ + + +Java Event Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Java Event Data +DirectAnimation Animated Header --Java Event Data* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Java Defaults
    +*Next Topic: Java Hierarchy Chart
    +

    +

    +

    Java Event Data

    +
    +

    The following table summarizes the DirectAnimation events and the data they produce when the event occurs: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EventData +
    alwaysNo data +
    andEvent(DXMEvent first, DXMEvent second)A PairObject containing the event data of the first and second events +
    attachData(Object object)The event data of the new event +
    GeometryBvr.getPickEvent()A PairObject containing the intersection point and a time-varying vector +
    ImageBvr.getPickEvent()A PairObject containing the intersection point and a time-varying vector +
    leftButtonDownNo data +
    leftButtonUpNo data +
    neverNo data +
    notEvent(DXMEvent ev)No data +
    notifyEvent(UntilNotifier notifier)The results returned by the notifier +
    orEvent(DXMEvent first, DXMEvent second)The event data of either the first or second event +
    predicateNo data +
    rightButtonDownNo data +
    rightButtonUpNo data +
    snapshotEventThe value of the behavior at the time it was sampled, returned as a constant behavior. +
    thenEvent(DXMEvent e1, DXMEvent e2)The time the second event fired and a PairObject containing event data for both events +
    timer(NumberBvr timeout)No data +
    trigger()No data +
    trigger(Behavior eventDataThe event data of the given event +
    +

    + + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0216.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0216.HTM new file mode 100644 index 0000000..d7d7861 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0216.HTM @@ -0,0 +1,184 @@ + + +Java Hierarchy Chart + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Java Hierarchy Chart +DirectAnimation Animated Header --Java Hierarchy Chart* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Java Event Data
    +*Next Topic: Java Class/Methods Summary
    +

    +

    +

    Java Hierarchy Chart

    +
    +

    The DirectAnimation Java Hierarchy chart shows the relationships among the DirectAnimation Java classes and interfaces and the standard Java library classes. +

    +

    Hierarchy Chart +

    + + +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0217.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0217.HTM new file mode 100644 index 0000000..d47f5d3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0217.HTM @@ -0,0 +1,323 @@ + + +Java Class/Methods Summary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Java Class/Methods Summary +DirectAnimation Animated Header --Java Class/Methods Summary* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Java Hierarchy Chart
    +*Next Topic: AppTriggeredEvent Class
    +

    +

    +

    Java Class/Methods Summary

    +
    +

    The following table lists all the classes and interfaces (constructor are not shown). Select an entry to see its fields and methods. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AppTriggeredEvent Class +
    ArrayBvr Class +
    Bbox2Bvr Class +
    Bbox3Bvr Class +
    Behavior Class +
    BooleanBvr Class +
    CameraBvr Class +
    BvrCallback Interface +
    ColorBvr Class +
    Cycler Class +
    DashStyleBvr Class +
    DXMApplet Class +
    DXMCanvas Class +
    DXMEvent Class +
    DXMException Class +
    EndStyleBvr Class +
    ErrorAndWarningReceiver Interface +
    EventCallbackObject Interface +
    FontStyleBvr Class +
    GeometryBvr Class +
    ImageBvr Class +
    JoinStyleBvr Class +
    LineStyleBvr Class +
    MatteBvr Class +
    MicrophoneBvr Class +
    Model Class +
    ModifiableBehavior Class +
    MontageBvr Class +
    NumberBvr Class +
    PairObject Class +
    Path2Bvr Class +
    PickableGeometry Class +
    PickableImage Class +
    Point2Bvr Class +
    Point3Bvr Class +
    Preferences Class +
    PropertyDispatcher Class +
    SoundBvr Class +
    Statics Class +
    StringBvr Class +
    Transform2Bvr Class +
    Transform3Bvr Class +
    TupleBvr Class +
    UntilNotifier Interface +
    Vector2Bvr Class +
    Vector3Bvr Class +
    Viewer Interface +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0218.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0218.HTM new file mode 100644 index 0000000..fb99363 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0218.HTM @@ -0,0 +1,188 @@ + + +AppTriggeredEvent Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --AppTriggeredEvent Class +DirectAnimation Animated Header --AppTriggeredEvent Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Java Class/Methods Summary
    +*Next Topic: ArrayBvr Class
    +

    +

    +

    AppTriggeredEvent Class

    +
    +

    These are the fields and methods for the AppTriggeredEvent Class +

    + + + + + +
    public void trigger() +
    public void trigger(Behavior eventData) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0219.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0219.HTM new file mode 100644 index 0000000..54609d5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0219.HTM @@ -0,0 +1,191 @@ + + +ArrayBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ArrayBvr Class +DirectAnimation Animated Header --ArrayBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: AppTriggeredEvent Class
    +*Next Topic: Bbox2Bvr Class
    +

    +

    +

    ArrayBvr Class

    +
    +

    These are the methods for the ArrayBvr Class: +

    + + + + + + + +
    public NumberBvr length() +
    public Behavior nth(NumberBvr a) +
    public static ArrayBvr newUninitBvr(ArrayBvr arr) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0220.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0220.HTM new file mode 100644 index 0000000..8e87c66 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0220.HTM @@ -0,0 +1,191 @@ + + +Bbox2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Bbox2Bvr Class +DirectAnimation Animated Header --Bbox2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ArrayBvr Class
    +*Next Topic: Bbox3Bvr Class
    +

    +

    +

    Bbox2Bvr Class

    +
    +

    These are the methods for the Bbox2Bvr Class: +

    + + + + + + + +
    public Point2Bvr getMax() +
    public Point2Bvr getMin() +
    public static Bbox2Bvr newUninitBvr() +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0221.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0221.HTM new file mode 100644 index 0000000..ae58d65 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0221.HTM @@ -0,0 +1,191 @@ + + +Bbox3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Bbox3Bvr Class +DirectAnimation Animated Header --Bbox3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Bbox2Bvr Class
    +*Next Topic: Behavior Class
    +

    +

    +

    Bbox3Bvr Class

    +
    +

    These are the methods for the Bbox3Bvr Class: +

    + + + + + + + +
    public Point3Bvr getMax() +
    public Point3Bvr getMin() +
    public static Bbox3Bvr newUninitBvr() +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0222.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0222.HTM new file mode 100644 index 0000000..16292f3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0222.HTM @@ -0,0 +1,233 @@ + + +Behavior Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Behavior Class +DirectAnimation Animated Header --Behavior Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Bbox3Bvr Class
    +*Next Topic: BooleanBvr Class
    +

    +

    +

    Behavior Class

    +
    +

    These are the methods for the Behavior Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Behavior BvrHook(BvrCallback callback) +
    public Behavior debug() +
    public Behavior debug(String name) +
    public Behavior debug(String name, boolean onStart) +
    public Behavior debug(String name, boolean onStart, PrintStream std) +
    public Behavior duration(NumberBvr length) +
    public Object extract() +
    public void init(Behavior a) +
    public Behavior repeat(int repetitions) +
    public Behavior repeatForever() +
    public Behavior runOnce() +
    public Behavior substituteTime(NumberBvr a) +
    Methods Defined in Statics +
    public static Behavior cond(BooleanBvr bool, Behavior a, Behavior b) +
    public static Behavior until(Behavior a, DXMEvent e, Behavior b) +
    public static Behavior untilEx(Behavior a, DXMEvent e) +
    public static Behavior untilNotify(Behavior a, DXMEvent e, UntilNotifier notifier) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0223.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0223.HTM new file mode 100644 index 0000000..e592b47 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0223.HTM @@ -0,0 +1,221 @@ + + +BooleanBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --BooleanBvr Class +DirectAnimation Animated Header --BooleanBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Behavior Class
    +*Next Topic: CameraBvr Class
    +

    +

    +

    BooleanBvr Class

    +
    +

    These are the fields and methods for the BooleanBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Object extract() +
    public static BooleanBvr newUninitBvr() +
    Fields Defined in Statics +
    public static BooleanBvr falseBvr +
    public static BooleanBvr leftButtonState +
    public static BooleanBvr keyState(int keyCode) +
    public static BooleanBvr rightButtonState +
    public static BooleanBvr trueBvr +
    Methods Defined in Statics +
    public static BooleanBvr and(BooleanBvr b1, BooleanBvr b2) +
    public static BooleanBvr not(BooleanBvr b) +
    public static BooleanBvr or(BooleanBvr b1, BooleanBvr b2) +
    public static BooleanBvr toBvr(boolean bool) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0224.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0224.HTM new file mode 100644 index 0000000..53c6383 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0224.HTM @@ -0,0 +1,203 @@ + + +CameraBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --CameraBvr Class +DirectAnimation Animated Header --CameraBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: BooleanBvr Class
    +*Next Topic: BvrCallback Interface
    +

    +

    +

    CameraBvr Class

    +
    +

    These are the methods for the CameraBvr Class: +

    + + + + + + + + + + + + + + + +
    public CameraBvr depth(NumberBvr d) +
    public CameraBvr depthResolution(NumberBvr n) +
    public CameraBvr transform(Transform3Bvr xf) +
    public static CameraBvr newUninitBvr() +
    Methods Defined in Statics +
    public static CameraBvr parallelCamera(NumberBvr n) +
    public static CameraBvr perspectiveCamera(NumberBvr n, NumberBvr p) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0225.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0225.HTM new file mode 100644 index 0000000..dfa5c82 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0225.HTM @@ -0,0 +1,185 @@ + + +BvrCallback Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --BvrCallback Interface +DirectAnimation Animated Header --BvrCallback Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: CameraBvr Class
    +*Next Topic: ColorBvr Class
    +

    +

    +

    BvrCallback Interface

    +
    +

    These are the methods for the BvrCallback Interface: +

    + + + +
    public abstract Behavior notify(int id, boolean start, double startTime, double globalTime, double localTime, Behavior sampledValue, Behavior currentRunningBvr) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0226.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0226.HTM new file mode 100644 index 0000000..8a1f56a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0226.HTM @@ -0,0 +1,272 @@ + + +ColorBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ColorBvr Class +DirectAnimation Animated Header --ColorBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: BvrCallback Interface
    +*Next Topic: Cycler Class
    +

    +

    +

    ColorBvr Class

    +
    +

    These are the fields and methods for the ColorBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public NumberBvr getBlue() +
    public NumberBvr getGreen() +
    public NumberBvr getHue() +
    public NumberBvr getLightness() +
    public NumberBvr getRed() +
    public NumberBvr getSaturation() +
    public static ColorBvr newUninitBvr() +
    Fields Defined in Statics +
    public final static ColorBvr aqua +
    public final static ColorBvr black +
    public final static ColorBvr blue +
    public final static ColorBvr cyan +
    public final static ColorBvr fuchsia +
    public final static ColorBvr gray +
    public final static ColorBvr green +
    public final static ColorBvr lime +
    public final static ColorBvr magenta +
    public final static ColorBvr maroon +
    public final static ColorBvr navy +
    public final static ColorBvr olive +
    public final static ColorBvr purple +
    public final static ColorBvr red +
    public final static ColorBvr silver +
    public final static ColorBvr teal +
    public final static ColorBvr white +
    public final static ColorBvr yellow +
    Methods Defined in Statics +
    public static ColorBvr colorHsl(NumberBvr h, NumberBvr s, NumberBvr l) +
    public static ColorBvr colorRgb(NumberBvr r, NumberBvr g, NumberBvr b) +
    public static ColorBvr colorRgb255(short r, short g, short b) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0227.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0227.HTM new file mode 100644 index 0000000..1d179ff --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0227.HTM @@ -0,0 +1,185 @@ + + +Cycler Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Cycler Class +DirectAnimation Animated Header --Cycler Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ColorBvr Class
    +*Next Topic: DashStyleBvr Class
    +

    +

    +

    Cycler Class

    +
    +

    These are the methods for the Cycler Class: +

    + + + +
    public Behavior getBvr() +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0228.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0228.HTM new file mode 100644 index 0000000..578693f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0228.HTM @@ -0,0 +1,194 @@ + + +DashStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DashStyleBvr Class +DirectAnimation Animated Header --DashStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Cycler Class
    +*Next Topic: DXMApplet Class
    +

    +

    +

    DashStyleBvr Class

    +
    +

    These are the fields and methods for the DashStyleBvr Class: +

    + + + + + + + + + +
    public static DashStyleBvr newUninitBvr() +
    Fields Defined in Statics +
    public static DashStyleBvr dashStyleDashed +
    public static DashStyleBvr dashStyleSolid +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0229.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0229.HTM new file mode 100644 index 0000000..3600ea8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0229.HTM @@ -0,0 +1,203 @@ + + +DXMApplet Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMApplet Class +DirectAnimation Animated Header --DXMApplet Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DashStyleBvr Class
    +*Next Topic: DXMCanvas Class
    +

    +

    +

    DXMApplet Class

    +
    +

    These are the methods for the DXMApplet Class: +

    + + + + + + + + + + + + + + + +
    public DXMCanvas getCanvas() +
    public Model getModel() +
    public void setModel(Model) +
    public start() +
    public stop() +
    Methods Defined in Statics +
    public static ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0230.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0230.HTM new file mode 100644 index 0000000..31f61b5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0230.HTM @@ -0,0 +1,263 @@ + + +DXMCanvas Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMCanvas Class +DirectAnimation Animated Header --DXMCanvas Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMApplet Class
    +*Next Topic: DXMEvent Class
    +

    +

    +

    DXMCanvas Class

    +
    +

    These are the methods for the DXMCanvas Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public synchronized void addModel() +
    public synchronized abstract void addModel() +
    public synchronized void addNotify() +
    public double getCurrentTime() +
    public double getCurrentTickTime() +
    public Model getModel() +
    public Preferences getPreferences() +
    public synchronized boolean handleEvent(Event e) +
    public synchronized void hide() +
    public synchronized void hideModel() +
    public synchronized abstract void hideModel() +
    public void paint(Graphics g) +
    public ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w) +
    public synchronized void removeModel() +
    public synchronized abstract void removeModel() +
    public synchronized void removeNotify() +
    public synchronized void reshape(int x, int y, int width, int height) +
    public void run() +
    public void setModel(Model model) +
    public synchronized void show() +
    public synchronized void showModel() +
    public synchronized abstract void showModel() +
    public void startModel() +
    public void stopModel() +
    public void tick() +
    public synchronized void tick (double timeToUse) +
    public void update(Graphics g) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0231.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0231.HTM new file mode 100644 index 0000000..765996e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0231.HTM @@ -0,0 +1,251 @@ + + +DXMEvent Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMEvent Class +DirectAnimation Animated Header --DXMEvent Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMCanvas Class
    +*Next Topic: DXMException Class
    +

    +

    +

    DXMEvent Class

    +
    +

    These are the fields and methods for the DXMEvent Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public DXMEvent attachData(Object object) +
    public DXMEvent notifyEvent(UntilNotifier notifier) +
    public Object registerCallback(EventCallbackObject object, BvrsToRun extraBvrsToRun, boolean bool) +
    public DXMEvent snapshotEvent(Behavior a) +
    public static DXMEvent newUninitBvr() +
    Fields Defined in Statics +
    public static DXMEvent always +
    public static DXMEvent leftButtonDown +
    public static DXMEvent leftButtonUp +
    public static DXMEvent never +
    public static DXMEvent rightButtonDown +
    public static DXMEvent rightButtonUp +
    Methods Defined in Statics +
    public static DXMEvent andEvent(DXMEvent first, DXMEvent second) +
    public static DXMEvent keyDown(int keyCode) +
    public static DXMEvent keyUp(int keyCode) +
    public static DXMEvent notEvent(DXMEvent ev) +
    public static DXMEvent orEvent(DXMEvent first, DXMEvent second) +
    public static DXMEvent predicate(BooleanBvr bool) +
    public Behavior snapshotEvent(Behavior a) +
    public static DXMEvent thenEvent(DXMEvent e, DXMEvent e) +
    public static DXMEvent timer(NumberBvr timeout) +
    public static void unregisterCallback(Object object) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0232.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0232.HTM new file mode 100644 index 0000000..edfa2c9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0232.HTM @@ -0,0 +1,188 @@ + + +DXMException Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --DXMException Class +DirectAnimation Animated Header --DXMException Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMEvent Class
    +*Next Topic: EndStyleBvr Class
    +

    +

    +

    DXMException Class

    +
    +

    These are the methods for the DXMException Class: +

    + + + + + +
    public int getErrorCode() +
    public String getErrorString() +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0233.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0233.HTM new file mode 100644 index 0000000..bff028a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0233.HTM @@ -0,0 +1,197 @@ + + +EndStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --EndStyleBvr Class +DirectAnimation Animated Header --EndStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: DXMException Class
    +*Next Topic: ErrorAndWarningReceiver Interface
    +

    +

    +

    EndStyleBvr Class

    +
    +

    These are the fields and methods for the EndStyleBvr Class: +

    + + + + + + + + + + + +
    public static EndStyleBvr newUninitBvr() +
    Fields Defined in Statics +
    public static EndStyleBvr endStyleFlat +
    public static EndStyleBvr endStyleRound +
    public static EndStyleBvr endStyleSquare +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0234.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0234.HTM new file mode 100644 index 0000000..cd94cb6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0234.HTM @@ -0,0 +1,194 @@ + + +ErrorAndWarningReceiver Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ErrorAndWarningReceiver Interface +DirectAnimation Animated Header --ErrorAndWarningReceiver Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: EndStyleBvr Class
    +*Next Topic: EventCallbackObject Interface
    +

    +

    +

    ErrorAndWarningReceiver Interface

    +
    +

    These are the methods for the ErrorAndWarningReceiver Interface: +

    + + + + + + + + + +
    public abstract void handleError(String s, Viewer v) +
    public abstract void handleTickError(String s, Viewer v) +
    public abstract void handleTickWarning(String s, Viewer v) +
    public abstract void handleWarning(String s, Viewer v) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0235.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0235.HTM new file mode 100644 index 0000000..af2a23c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0235.HTM @@ -0,0 +1,185 @@ + + +EventCallbackObject Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --EventCallbackObject Interface +DirectAnimation Animated Header --EventCallbackObject Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ErrorAndWarningReceiver Interface
    +*Next Topic: FontStyleBvr Class
    +

    +

    +

    EventCallbackObject Interface

    +
    +

    These are the methods for the EventCallbackObject Interface: +

    + + + +
    public abstract void invoke(Object object, BvrsToRun extraBvrsToRun) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0236.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0236.HTM new file mode 100644 index 0000000..3b644ae --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0236.HTM @@ -0,0 +1,227 @@ + + +FontStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --FontStyleBvr Class +DirectAnimation Animated Header --FontStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: EventCallbackObject Interface
    +*Next Topic: GeometryBvr Class
    +

    +

    +

    FontStyleBvr Class

    +
    +

    These are the fields and methods for the FontStyleBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public FontStyleBvr bold() +
    public FontStyleBvr color(ColorBvr color) +
    public FontStyleBvr family(StringBvr face) +
    public FontStyleBvr italic() +
    public FontStyleBvr size(NumberBvr points) +
    public FontStyleBvr strikethrough() +
    public FontStyleBvr textAntialiasing(double antiAliasing) +
    public FontStyleBvr underline() +
    public FontStyleBvr weight(NumberBvr weight) +
    public static FontStyleBvr newUninitBvr() +
    Fields Defined in Statics +
    public static final FontStyleBvr defaultFont +
    Methods Defined in Statics +
    public static FontStyleBvr font(StringBvr face, NumberBvr points, ColorBvr color) +
    public static ImageBvr stringImage(StringBvr string, FontStyleBvr fs) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0237.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0237.HTM new file mode 100644 index 0000000..12fc767 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0237.HTM @@ -0,0 +1,251 @@ + + +GeometryBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --GeometryBvr Class +DirectAnimation Animated Header --GeometryBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: FontStyleBvr Class
    +*Next Topic: ImageBvr Class
    +

    +

    +

    GeometryBvr Class

    +
    +

    These are the fields and methods for the GeometryBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Bbox3Bvr boundingBox() +
    public GeometryBvr diffuseColor(ColorBvr col) +
    public GeometryBvr lightAttenuation(NumberBvr const, NumberBvr linear, NumberBvr quadratic) +
    public GeometryBvr lightColor(ColorBvr col) +
    public GeometryBvr opacity(NumberBvr opac) +
    public ImageBvr render(CameraBvr camera) +
    public SoundBvr render(MicrophoneBvr mic) +
    public GeometryBvr texture(ImageBvr image) +
    public GeometryBvr transform(Transform3Bvr xf) +
    public GeometryBvr undetectable() +
    public static GeometryBvr newUninitBvr() +
    Fields Defined in Statics +
    public static GeometryBvr ambientLight +
    public static GeometryBvr directionalLight +
    public static GeometryBvr emptyGeometry +
    public static GeometryBvr pointLight +
    Methods Defined in Statics +
    public static GeometryBvr importGeometry(String pathname) +
    public static GeometryBvr importGeometry(URL url, GeometryBvr geoStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static GeometryBvr soundSource(SoundBvr sound) +
    public static GeometryBvr spotLight(NumberBvr fullcone, NumberBvr cutoff) +
    public static GeometryBvr union(GeometryBvr g1, GeometryBvr g2) +
    public static GeometryBvr unionArray(GeometryBvr[], geometries) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0238.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0238.HTM new file mode 100644 index 0000000..903920a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0238.HTM @@ -0,0 +1,287 @@ + + +ImageBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ImageBvr Class +DirectAnimation Animated Header --ImageBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: GeometryBvr Class
    +*Next Topic: JoinStyleBvr Class
    +

    +

    +

    ImageBvr Class

    +
    +

    These are the fields and methods for the ImageBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Bbox2Bvr boundingBox() +
    public ImageBvr clip(MatteBvr matte) +
    public ImageBvr clipPolygon(Point2Bvr[] points) +
    public ImageBvr crop(Point2Bvr minPt, Point2Bvr maxPt) +
    public ImageBvr mapToUnitSquare() +
    public ImageBvr opacity(NumberBvr opac) +
    public ImageBvr tile() +
    public ImageBvr transform(Transform2Bvr xf) +
    public ImageBvr undetectable() +
    public static ImageBvr newUninitBvr() +
    Fields Defined in Statics +
    public static ImageBvr detectableEmptyImage +
    public static ImageBvr emptyImage +
    Methods Defined in Statics +
    public static ImageBvr gradientHorizontal(ColorBvr start, ColorBvr stop, NumberBvr fallOff) +
    public static ImageBvr gradientPolygon(Point2Bvr[] pts, ColorBvr[] colors) +
    public static ImageBvr gradientSquare(ColorBvr lowerLeft, ColorBvr upperLeft, ColorBvr upperRight, ColorBvr lowerRight) +
    public static ImageBvr hatchBackwardDiagonal(ColorBvr color, NumberBvr size) +
    public static ImageBvr hatchCross(ColorBvr color, NumberBvr size) +
    public static ImageBvr hatchDiagonalCross(ColorBvr color, NumberBvr size) +
    public static ImageBvr hatchForwardDiagonal(ColorBvr color, NumberBvr size) +
    public static ImageBvr hatchHorizontal(ColorBvr color, NumberBvr size) +
    public static ImageBvr hatchVertical(ColorBvr color, NumberBvr size) +
    public static ImageBvr importImage(URL url) +
    public static ImageBvr importImage(URL url, ImageBvr imgStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static ImageBvr importImageColorKey(URL url, ColorBvr red, ColorBvr green, ColorBvr blue) +
    public static ImageBvr importImageColorKey(URL url, ImageBvr imgStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size, ColorBvr red, ColorBvr green, ColorBvr blue) +
    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd) +
    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd, ImageBvr imgStandIn, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static ImageBvr overlay(ImageBvr i1, ImageBvr i2) +
    public static ImageBvr overlayArray(ImageBvr[] im) +
    public static ImageBvr radialGradientPolygon(ColorBvr inner, ColorBvr outer, Point2Bvr[] points, NumberBvr fallOff) +
    public static ImageBvr radialGradientRegularPoly(ColorBvr inner, ColorBvr outer, NumberBvr edges, NumberBvr fallOff) +
    public static ImageBvr radialGradientSquare(ColorBvr inner, ColorBvr outer, NumberBvr fallOff) +
    public static ImageBvr solidColorImage(ColorBvr col) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0239.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0239.HTM new file mode 100644 index 0000000..9c8c007 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0239.HTM @@ -0,0 +1,197 @@ + + +JoinStyleBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --JoinStyleBvr Class +DirectAnimation Animated Header --JoinStyleBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ImageBvr Class
    +*Next Topic: LineStyleBvr
    +

    +

    +

    JoinStyleBvr Class

    +
    +

    These are the fields and methods for the JoinStyleBvr Class: +

    + + + + + + + + + + + +
    public static JoinStyleBvr newUninitBvr() +
    Fields Defined in Statics +
    public static JoinStyleBvr joinStyleBevel +
    public static JoinStyleBvr joinStyleMiter +
    public static JoinStyleBvr joinStyleRound +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0240.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0240.HTM new file mode 100644 index 0000000..8575951 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0240.HTM @@ -0,0 +1,212 @@ + + +LineStyleBvr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --LineStyleBvr +DirectAnimation Animated Header --LineStyleBvr* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: JoinStyleBvr Class
    +*Next Topic: MatteBvr Class
    +

    +

    +

    LineStyleBvr

    +
    +

    These are the fields and methods for the LineStyleBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + +
    public LineStyleBvr color(ColorBvr color) +
    public LineStyleBvr detail() +
    public LineStyleBvr dash(DashStyleBvr ds) +
    public LineStyleBvr end(EndStyleBvr es) +
    public LineStyleBvr join(JoinStyleBvr js) +
    public LineStyleBvr lineAntialiasing(double antiAliasing) +
    public LineStyleBvr width(NumberBvr width) +
    public static LineStyleBvr newUninitBvr() +
    Fields Defined in Statics +
    public static LineStyleBvr defaultLineStyle +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0241.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0241.HTM new file mode 100644 index 0000000..963d536 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0241.HTM @@ -0,0 +1,215 @@ + + +MatteBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --MatteBvr Class +DirectAnimation Animated Header --MatteBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: LineStyleBvr
    +*Next Topic: MicrophoneBvr Class
    +

    +

    +

    MatteBvr Class

    +
    +

    These are the fields and methods for the MatteBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + +
    public MatteBvr transform(Transform2Bvr xf) +
    public static MatteBvr newUninitBvr() +
    Fields Defined in Statics Class +
    public static MatteBvr clearMatte +
    public static MatteBvr opaqueMatte +
    Methods Defined in Statics Class +
    public static MatteBvr difference(MatteBvr m1, MatteBvr m2) +
    public static MatteBvr fillMatte(Path2Bvr path) +
    public static MatteBvr intersect(MatteBvr m1, MatteBvr m2) +
    public static MatteBvr textMatte(StringBvr text, FontStyleBvr fs) +
    public static MatteBvr union(MatteBvr m1, MatteBvr m2) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0242.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0242.HTM new file mode 100644 index 0000000..cd3143b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0242.HTM @@ -0,0 +1,194 @@ + + +MicrophoneBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --MicrophoneBvr Class +DirectAnimation Animated Header --MicrophoneBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: MatteBvr Class
    +*Next Topic: Model Class
    +

    +

    +

    MicrophoneBvr Class

    +
    +

    These are the fields and methods for the MicrophoneBvr Class: +

    + + + + + + + + + +
    public MicrophoneBvr transform(Transform3Bvr xf) +
    public static MicrophoneBvr newUninitBvr() +
    Fields Defined in Statics Class +
    public static MicrophoneBvr defaultMicrophone +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0243.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0243.HTM new file mode 100644 index 0000000..545e8fc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0243.HTM @@ -0,0 +1,203 @@ + + +Model Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Model Class +DirectAnimation Animated Header --Model Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: MicrophoneBvr Class
    +*Next Topic: MontageBvr Class
    +

    +

    +

    Model Class

    +
    +

    These are the methods for the Model Class: +

    + + + + + + + + + + + + + + + +
    public ImageBvr getImage() +
    public URL getImportBase() +
    public SoundBvr getSound() +
    public void setImage(ImageBvr im1) +
    public void setImportBase(URL url) +
    public void setSound(SoundBvr snd) +
    public abstract void createModel(BvrsToRun extraBvrsToRun) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0244.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0244.HTM new file mode 100644 index 0000000..bac4e4a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0244.HTM @@ -0,0 +1,203 @@ + + +MontageBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --MontageBvr Class +DirectAnimation Animated Header --MontageBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Model Class
    +*Next Topic: NumberBvrClass
    +

    +

    +

    MontageBvr Class

    +
    +

    These are the fields and methods for the MontageBvr Class: +

    + + + + + + + + + + + + + + + +
    public ImageBvr render() +
    public static MontageBvr imageMontage(ImageBvr image, NumberBvr depth) +
    public static MontageBvr newUninitBvr() +
    Fields Defined in Statics Class +
    public static MontageBvr emptyMontage +
    Methods Defined in Statics Class +
    public static MontageBvr union(MontageBvr m1, MontageBvr m2) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0245.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0245.HTM new file mode 100644 index 0000000..a41893d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0245.HTM @@ -0,0 +1,314 @@ + + +NumberBvrClass + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --NumberBvrClass +DirectAnimation Animated Header --NumberBvrClass* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: MontageBvr Class
    +*Next Topic: PairObject
    +

    +

    +

    NumberBvrClass

    +
    +

    These are the fields and methods for the NumberBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Object extract() +
    public StringBvr toString(double a) +
    public StringBvr toString(NumberBvr a) +
    public static NumberBvr newUninitBvr() +
    Fields Defined in Statics Class +
    public static NumberBvr globalTime +
    public static NumberBvr localTime +
    Methods Defined in Statics Class +
    public StringBvr toString(NumberBvr a) +
    public static NumberBvr abs(NumberBvr a) +
    public static NumberBvr acos(NumberBvr a) +
    public static NumberBvr add(NumberBvr a, NumberBvr b) +
    public static NumberBvr asin(NumberBvr a) +
    public static NumberBvr atan(NumberBvr a) +
    public static NumberBvr atan2(NumberBvr a, NumberBvr b) +
    public static NumberBvr bSpline(int degree, NumberBvr[] knots, NumberBvr[] points, NumberBvr [] weights) +
    public static NumberBvr ceiling(NumberBvr a) +
    public static NumberBvr cos(NumberBvr a) +
    public static NumberBvr degreesToRadians(NumberBvr a) +
    public static NumberBvr derivative(NumberBvr a) +
    public static NumberBvr div(NumberBvr a, NumberBvr b) +
    public static BooleanBvr eq(NumberBvr a, NumberBvr b) +
    public static NumberBvr exp(NumberBvr a) +
    public static NumberBvr floor(NumberBvr a) +
    public static BooleanBvr gt(NumberBvr a, NumberBvr b) +
    public static BooleanBvr gte(NumberBvr a, NumberBvr b) +
    public static NumberBvr integral(NumberBvr a) +
    public static NumberBvr ln(NumberBvr a) +
    public static NumberBvr log10(NumberBvr a) +
    public static BooleanBvr lt(NumberBvr a, NumberBvr b) +
    public static BooleanBvr lte(NumberBvr a, NumberBvr b) +
    public static NumberBvr mod(NumberBvr a, NumberBvr b) +
    public static NumberBvr mul(NumberBvr a, NumberBvr b) +
    public static BooleanBvr ne(NumberBvr a, NumberBvr b) +
    public static NumberBvr neg(NumberBvr a) +
    public static NumberBvr pow(NumberBvr a, NumberBvr b) +
    public static NumberBvr radiansToDegrees(NumberBvr a) +
    public static NumberBvr round(NumberBvr a) +
    public static NumberBvr seededRandom(double seed) +
    public static NumberBvr sin(NumberBvr a) +
    public static NumberBvr sqrt(NumberBvr a) +
    public static NumberBvr sub(NumberBvr a, NumberBvr b) +
    public static NumberBvr tan(NumberBvr a) +
    public static NumberBvr toBvr(double a) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0246.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0246.HTM new file mode 100644 index 0000000..ddc0bf1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0246.HTM @@ -0,0 +1,188 @@ + + +PairObject + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --PairObject +DirectAnimation Animated Header --PairObject* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: NumberBvrClass
    +*Next Topic: Path2Bvr Class
    +

    +

    +

    PairObject

    +
    +

    These are the methods for the PairObject Class: +

    + + + + + +
    public Object getFirst() +
    public Object getSecond() +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0247.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0247.HTM new file mode 100644 index 0000000..1f8967a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0247.HTM @@ -0,0 +1,248 @@ + + +Path2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Path2Bvr Class +DirectAnimation Animated Header --Path2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: PairObject
    +*Next Topic: PickableGeometry
    +

    +

    +

    Path2Bvr Class

    +
    +

    These are the methods for the Path2Bvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Bbox2Bvr boundingBox(LineStyleBvr style) +
    public Path2Bvr close() +
    public ImageBvr draw(LineStyleBvr ls) +
    public ImageBvr fill(ImageBvr im, LineStyleBvr ls) +
    public Path2Bvr transform(Transform2Bvr xf) +
    public static Path2Bvr newUninitBvr() +
    Methods Defined in Statics Class +
    public static Path2Bvr arc(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, NumberBvr arcHeight) +
    public static Transform2Bvr arcDegrees(double startingAngle, double endingAngle, double arcWidth, double arcHeight) +
    public static Path2Bvr concat(Path2Bvr p1, Path2Bvr p2) +
    public static Path2Bvr concatArray(Path2Bvr[] paths) +
    public static Path2Bvr cubicBSplinePath(Point2Bvr[], NumberBvr[]) +
    public static Path2Bvr line(Point2Bvr p1, Point2Bvr p2) +
    public static Path2Bvr oval(NumberBvr width, NumberBvr height) +
    public static Path2Bvr pie(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, NumberBvr arcHeight) +
    public static Path2Bvr pieDegrees(double startAngle, double endAngle, double arcWidth, double arcHeight) +
    public static Path2Bvr polydrawPath(Point2Bvr[] points, NumberBvr[] codes) +
    public static Path2Bvr polyline(Point2Bvr[] points) +
    public static Path2Bvr ray(Point2Bvr p) +
    public static Path2Bvr rect(NumberBvr width, NumberBvr height) +
    public static Path2Bvr roundRect(NumberBvr width, NumberBvr height, NumberBvr arcWidth, NumberBvr arcHeight) +
    public static Path2Bvr stringPath(StringBvr string, FontStyleBvr fs) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0248.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0248.HTM new file mode 100644 index 0000000..f64fdae --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0248.HTM @@ -0,0 +1,188 @@ + + +PickableGeometry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --PickableGeometry +DirectAnimation Animated Header --PickableGeometry* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Path2Bvr Class
    +*Next Topic: Pickable Image Class
    +

    +

    +

    PickableGeometry

    +
    +

    These are the fields for the PickableGeometry Class: +

    + + + + + +
    public GeometryBvr getGeometryBvr() +
    public DXMEvent getPickEvent() +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0249.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0249.HTM new file mode 100644 index 0000000..b3ade7d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0249.HTM @@ -0,0 +1,188 @@ + + +Pickable Image Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Pickable Image Class +DirectAnimation Animated Header --Pickable Image Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: PickableGeometry
    +*Next Topic: Point2Bvr Class
    +

    +

    +

    Pickable Image Class

    +
    +

    These are the methods for the PickableImage Class: +

    + + + + + +
    public ImageBvr getImageBvr() +
    public DXMEvent getPickEvent() +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0250.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0250.HTM new file mode 100644 index 0000000..6820e0b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0250.HTM @@ -0,0 +1,239 @@ + + +Point2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Point2Bvr Class +DirectAnimation Animated Header --Point2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Pickable Image Class
    +*Next Topic: Point3Bvr Class
    +

    +

    +

    Point2Bvr Class

    +
    +

    These are the fields and methods for the Point2Bvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public NumberBvr getPolarCoordAngle() +
    public NumberBvr getPolarCoordLength() +
    public NumberBvr getX() +
    public NumberBvr getY() +
    public Point2Bvr transform(Transform2Bvr xf) +
    public static Point2Bvr newUninitBvr() +
    Fields Defined in Statics Class +
    public static Point2Bvr mousePosition +
    public static Point2Bvr origin2 +
    Methods Defined in Statics Class +
    public static Point2Bvr add(Point2Bvr pt, Vector2Bvr vec) +
    public static Point2Bvr bSpline(int degree, NumberBvr[] knots, Point2Bvr[] points, NumberBvr[] weights) +
    public static Vector2Bvr derivative(Point2Bvr pt) +
    public static NumberBvr distance(Point2Bvr p1, Point2Bvr p2) +
    public static NumberBvr distanceSquared(Point2Bvr p1, Point2Bvr p2) +
    public static Point2Bvr point2(NumberBvr x, NumberBvr y) +
    public static Point2Bvr point2Polar(NumberBvr XYangle, NumberBvr length) +
    public static Vector2Bvr sub(Point2Bvr p1, Point2Bvr p2) +
    public static Point2Bvr sub(Point2Bvr pt, Vector2Bvr vec) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0251.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0251.HTM new file mode 100644 index 0000000..cdb6283 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0251.HTM @@ -0,0 +1,248 @@ + + +Point3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Point3Bvr Class +DirectAnimation Animated Header --Point3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Point2Bvr Class
    +*Next Topic: Preferences Class
    +

    +

    +

    Point3Bvr Class

    +
    +

    These are the fields and methods for the Point3Bvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public NumberBvr getSphericalCoordLength() +
    public NumberBvr getSphericalCoordXYAngle() +
    public NumberBvr getSphericalCoordYZAngle() +
    public NumberBvr getX() +
    public NumberBvr getY() +
    public NumberBvr getZ() +
    public Point2Bvr project(CameraBvr camera) +
    public Point3Bvr transform(Transform3Bvr xf) +
    public static Point3Bvr newUninitBvr() +
    Fields Defined in Statics Class +
    Point3Bvr Static Fields +
    public static Point3Bvr origin3 +
    Methods Defined in Statics Class +
    public static Point3Bvr add(Point3Bvr pt, Vector3Bvr vec) +
    public static Point3Bvr bSpline(int degree, NumberBvr[] knots, Point3Bvr[] points, NumberBvr[] weights) +
    public static Vector3Bvr derivative(Point3Bvr pt) +
    public static NumberBvr distance(Point3Bvr p1, Point3Bvr p3) +
    public static NumberBvr distanceSquared(Point3Bvr p1, Point3Bvr p3) +
    public static Point3Bvr point3(NumberBvr x, NumberBvr y, NumberBvr z) +
    public static Point3Bvr point3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length) +
    public static Vector3Bvr sub(Point3Bvr p1, Point3Bvr p3) +
    public static Point3Bvr sub(Point3Bvr pt, Vector3Bvr vec) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0252.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0252.HTM new file mode 100644 index 0000000..177a158 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0252.HTM @@ -0,0 +1,275 @@ + + +Preferences Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Preferences Class +DirectAnimation Animated Header --Preferences Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Point3Bvr Class
    +*Next Topic: PropertyDispatcher Class
    +

    +

    +

    Preferences Class

    +
    +

    These are the fields and methods for the Preferences Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Fields +
    public final static String COLOR_KEY_BLUE +
    public final static String COLOR_KEY_GREEN +
    public final static String COLOR_KEY_RED +
    public final static String DITHERING +
    public final static String ENGINE_OPTIMIZATIONS +
    public final static String FILL_MODE +
    public final static int FILL_MODE_POINT +
    public final static int FILL_MODE_SOLID +
    public final static int FILL_MODE_WIREFRAME +
    public final static String MAX_FRAMES_PER_SEC +
    public final static String OVERRIDE_APPLICATION_PREFERENCES +
    public final static String PERSPECTIVE_CORRECT +
    public final static String RGB_LIGHTING_MODE +
    public final static String SHADE_MODE +
    public final static int SHADE_MODE_FLAT +
    public final static int SHADE_MODE_GOURAUD +
    public final static int SHADE_MODE_PHONG +
    public final static String TEXTURE_QUALITY +
    public final static int TEXTURE_QUALITY_LINEAR +
    public final static int TEXTURE_QUALITY_NEAREST +
    public final static String USE_VIDEOMEM +
    Methods +
    public boolean getBoolean(String string) +
    public double getDouble(String string) +
    public int getInt(String) +
    public String getString(String string) +
    public void set(String string, Boolean boolean) +
    public void set(String string, double double) +
    public void set(String string, int int) +
    public void set(String preference, String value) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0253.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0253.HTM new file mode 100644 index 0000000..798de65 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0253.HTM @@ -0,0 +1,194 @@ + + +PropertyDispatcher Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --PropertyDispatcher Class +DirectAnimation Animated Header --PropertyDispatcher Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Preferences Class
    +*Next Topic: SoundBvr Class
    +

    +

    +

    PropertyDispatcher Class

    +
    +

    These are the methods for the PropertyDispatcher Class: +

    + + + + + + + + + +
    public void detach() +
    public Behavior getBvr() +
    public void setControl(Object object) +
    public void setPropertyName(String name) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0254.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0254.HTM new file mode 100644 index 0000000..4194552 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0254.HTM @@ -0,0 +1,225 @@ + + +SoundBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --SoundBvr Class +DirectAnimation Animated Header --SoundBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: PropertyDispatcher Class
    +*Next Topic: Statics Class
    +

    +

    +

    SoundBvr Class

    +
    +

    These are the fields and methods for the SoundBvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public SoundBvr gain(NumberBvr gainAmt) +
    public SoundBvr loop() +
    public SoundBvr pan(NumberBvr panAmt) +
    public SoundBvr phase(NumberBvr phaseAmt) +
    public SoundBvr rate(NumberBvr rateAmt) +
    public static SoundBvr newUninitBvr() +
    Fields Defined in Statics +
    public static SoundBvr silence +
    public static SoundBvr sinSynth +
    Methods Defined in Statics +
    public static SoundBvr importSound(String pathname, double[] soundLength) +
    public static SoundBvr importSound(URL url, NumberBvr[] soundLength, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static SoundBvr mix(SoundBvr sound1, SoundBvr sound2) +
    public static SoundBvr mixArray(SoundBvr[] sounds) + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0255.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0255.HTM new file mode 100644 index 0000000..7ada5c1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0255.HTM @@ -0,0 +1,1145 @@ + + +Statics Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Statics Class +DirectAnimation Animated Header --Statics Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: SoundBvr Class
    +*Next Topic: StringBvr Class
    +

    +

    +

    Statics Class

    +
    +

    These are the fields and methods for the Statics Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Behavior Static Methods +
    public static Behavior cond(BooleanBvr bool, Behavior a, Behavior b) +
    public static Behavior until(Behavior a, DXMEvent e, Behavior b) +
    public static Behavior untilEx(Behavior a, DXMEvent e) +
    public static Behavior untilNotify(Behavior a, DXMEvent e, UntilNotifier notifier) +
    BooleanBvr Static Fields +
    public static BooleanBvr falseBvr +
    public static BooleanBvr leftButtonState +
    public static BooleanBvr rightButtonState +
    public static BooleanBvr trueBvr +
    BooleanBvr Static Methods +
    public static BooleanBvr and(BooleanBvr b1, BooleanBvr b2) +
    public static BooleanBvr not(BooleanBvr b) +
    public static BooleanBvr or(BooleanBvr b1, BooleanBvr b2) +
    public static BooleanBvr keyState(int keyCode) +
    public static BooleanBvr toBvr(boolean bool) +
    CameraBvr Static Methods +
    public static CameraBvr parallelCamera(NumberBvr n) +
    public static CameraBvr perspectiveCamera(NumberBvr n, NumberBvr p) +
    ColorBvr Static Fields +
    public final static ColorBvr aqua +
    public final static ColorBvr black +
    public final static ColorBvr blue +
    public final static ColorBvr cyan +
    public final static ColorBvr fuchsia +
    public final static ColorBvr gray +
    public final static ColorBvr green +
    public final static ColorBvr lime +
    public final static ColorBvr magenta +
    public final static ColorBvr maroon +
    public final static ColorBvr navy +
    public final static ColorBvr olive +
    public final static ColorBvr purple +
    public static ColorBvr red +
    public static ColorBvr silver +
    public static ColorBvr teal +
    public static ColorBvr white +
    public static ColorBvr yellow +
    ColorBvr Static Methods +
    public static ColorBvr colorHsl(NumberBvr h, NumberBvr s, NumberBvr l) +
    public static ColorBvr colorRgb(NumberBvr r, NumberBvr g, NumberBvr b) +
    public static ColorBvr colorRgb255(short r, short g, short b) +
    DashStyleBvr Static Fields +
    public static DashStyleBvr dashStyleDashed +
    public static DashStyleBvr dashStyleSolid +
    DXMApplet Static Methods +
    public static ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w) +
    DXMEvent Static Fields +
    public static DXMEvent always +
    public static DXMEvent keyUp(int keyCode) +
    public static DXMEvent leftButtonDown +
    public static DXMEvent leftButtonUp +
    public static DXMEvent never +
    public static DXMEvent rightButtonDown +
    public static DXMEvent rightButtonUp +
    DXMEvent Static Methods +
    public static DXMEvent andEvent(DXMEvent first, DXMEvent second) +
    public static DXMEvent keyDown(int keyCode) +
    public static DXMEvent notEvent(DXMEvent ev) +
    public static DXMEvent orEvent(DXMEvent first, DXMEvent second) +
    public static DXMEvent predicate(BooleanBvr bool) +
    public Behavior snapshotEvent(Behavior a) +
    public static DXMEvent thenEvent(DXMEvent e, DXMEvent e) +
    public static DXMEvent timer(NumberBvr timeout) +
    public static void unregisterCallback(Object object) +
    EndStyleBvr Static Fields +
    public static EndStyleBvr endStyleFlat +
    public static EndStyleBvr endStyleRound +
    public static EndStyleBvr endStyleSquare +
    FontStyleBvr Static Fields +
    public static final defaultFont +
    FontStyleBvr Static Methods +
    public static FontStyleBvr font(StringBvr face, NumberBvr points, ColorBvr color) +
    public static ImageBvr stringImage(StringBvr string, FontStyleBvr fs) +
    GeometryBvr Static Fields +
    public static GeometryBvr ambientLight +
    public static GeometryBvr directionalLight +
    public static GeometryBvr emptyGeometry +
    public static GeometryBvr pointLight +
    GeometryBvr Static Methods +
    public static GeometryBvr importGeometry(String pathname) +
    public static GeometryBvr importGeometry(URL url, GeometryBvr geoStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static GeometryBvr soundSource(SoundBvr sound) +
    public static GeometryBvr spotLight(NumberBvr fullcone, NumberBvr cutoff) +
    public static GeometryBvr union(GeometryBvr g1, GeometryBvr g2) +
    public static GeometryBvr unionArray(GeometryBvr[], geometries) +
    ImageBvr Static Fields +
    public static ImageBvr detectableEmptyImage +
    public static ImageBvr emptyImage +
    ImageBvr Static Methods +
    public static ImageBvr gradientHorizontal(ColorBvr start, ColorBvr stop, NumberBvr fallOff) +
    public static ImageBvr gradientPolygon(Point2Bvr[] pts, ColorBvr[] colors) +
    public static ImageBvr gradientSquare(ColorBvr lowerLeft, ColorBvr upperLeft, ColorBvr upperRight, ColorBvr lowerRight) +
    public static ImageBvr hatchBackwardDiagonal(ColorBvr color, NumberBvr spacing) +
    public static ImageBvr hatchCross(ColorBvr color, NumberBvr spacing) +
    public static ImageBvr hatchDiagonalCross(ColorBvr color, NumberBvr size) +
    public static ImageBvr hatchForwardDiagonal(ColorBvr color, NumberBvr spacing) +
    public static ImageBvr hatchHorizontal(ColorBvr color, NumberBvr spacing) +
    public static ImageBvr hatchVertical(ColorBvr color, NumberBvr spacing) +
    public static ImageBvr importImage(String pathname) +
    public static ImageBvr importImage(URL url, ImageBvr imgStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static ImageBvr importImageColorKey(URL url, ColorBvr red, ColorBvr green, ColorBvr blue) +
    public static ImageBvr importImageColorKey(URL url, ImageBvr imgStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size, ColorBvr red, ColorBvr green, ColorBvr blue) +
    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd) +
    public static NumberBvr importMovie(URL url, ImageBvr[] img, SoundBvr[] snd, ImageBvr imgStandIn, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static ImageBvr overlay(ImageBvr i1, ImageBvr i2) +
    public static ImageBvr overlayArray(ImageBvr[] im) +
    public static ImageBvr radialGradientPolygon(ColorBvr inner, ColorBvr outer, Point2Bvr[] points, NumberBvr fallOff) +
    public static ImageBvr radialGradientRegularPoly(ColorBvr inner, ColorBvr outer, NumberBvr edges, NumberBvr fallOff) +
    public static ImageBvr radialGradientSquare(ColorBvr inner, ColorBvr outer, NumberBvr fallOff) +
    public static ImageBvr solidColorImage(ColorBvr col) +
    JoinStyleBvr Fields +
    public static JoinStyleBvr joinStyleBevel +
    public static JoinStyleBvr joinStyleMiter +
    public static JoinStyleBvr joinStyleRound +
    LineStyleBvr Static Fields +
    public static LineStyleBvr defaultLineStyle +
    MatteBvr Static Fields +
    public static MatteBvr clearMatte +
    public static MatteBvr opaqueMatte +
    MatteBvr Static Methods +
    public static MatteBvr difference(MatteBvr m1, MatteBvr m2) +
    public static MatteBvr fillMatte(Path2Bvr path) +
    public static MatteBvr intersect(MatteBvr m1, MatteBvr m2) +
    public static MatteBvr textMatte(StringBvr text, FontStyleBvr fs) +
    public static MatteBvr union(MatteBvr m1, MatteBvr m2) +
    MicrophoneBvr Static Fields +
    public static MicrophoneBvr defaultMicrophone +
    Miscellaneous Static Fields +
    public final static double cm +
    public final static double foot +
    public final static double inch +
    public final static double meter +
    public final static double mm +
    public static double pixel +
    Miscellaneous Static Methods +
    public static URL buildURL(URL url, String pathname) +
    public static String getVersionString() +
    MontageBvr Static Fields +
    public static MontageBvr emptyMontage +
    MontageBvr Static Methods +
    public static MontageBvr union(MontageBvr m1, MontageBvr m2) +
    NumberBvr Static Fields +
    public static NumberBvr globalTime +
    public static NumberBvr localTime +
    NumberBvr Static Methods +
    public StringBvr toString(NumberBvr a) +
    public static NumberBvr abs(NumberBvr a) +
    public static NumberBvr acos(NumberBvr a) +
    public static NumberBvr add(NumberBvr a, NumberBvr b) +
    public static NumberBvr asin(NumberBvr a) +
    public static NumberBvr atan(NumberBvr a) +
    public static NumberBvr atan2(NumberBvr a, NumberBvr b) +
    public static NumberBvr bSpline(int degree, NumberBvr[] knots, NumberBvr[] points, NumberBvr [] weights) +
    public static NumberBvr ceiling(NumberBvr a) +
    public static NumberBvr cos(NumberBvr a) +
    public static NumberBvr degreesToRadians(NumberBvr a) +
    public static NumberBvr derivative(NumberBvr a) +
    public static NumberBvr div(NumberBvr a, NumberBvr b) +
    public static BooleanBvr eq(NumberBvr a, NumberBvr b) +
    public static NumberBvr exp(NumberBvr a) +
    public static NumberBvr floor(NumberBvr a) +
    public static BooleanBvr gt(NumberBvr a, NumberBvr b) +
    public static BooleanBvr gte(NumberBvr a, NumberBvr b) +
    public static NumberBvr integral(NumberBvr a) +
    public static NumberBvr ln(NumberBvr a) +
    public static NumberBvr log10(NumberBvr a) +
    public static BooleanBvr lt(NumberBvr a, NumberBvr b) +
    public static BooleanBvr lte(NumberBvr a, NumberBvr b) +
    public static NumberBvr mod(NumberBvr a, NumberBvr b) +
    public static NumberBvr mul(NumberBvr a, NumberBvr b) +
    public static BooleanBvr ne(NumberBvr a, NumberBvr b) +
    public static NumberBvr neg(NumberBvr a) +
    public static NumberBvr pow(NumberBvr a, NumberBvr b) +
    public static NumberBvr radiansToDegrees(NumberBvr a) +
    public static NumberBvr round(NumberBvr a) +
    public static NumberBvr seededRandom(double seed) +
    public static NumberBvr sin(NumberBvr a) +
    public static NumberBvr sqrt(NumberBvr a) +
    public static NumberBvr sub(NumberBvr a, NumberBvr b) +
    public static NumberBvr tan(NumberBvr a) +
    public static NumberBvr toBvr(double a) +
    Path2Bvr Static Methods +
    public static Path2Bvr arc(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, NumberBvr arcHeight) +
    public static Path2Bvr arcDegrees(double startAngle, double endAngle, double arcWidth, double arcHeight) +
    public static Path2Bvr concat(Path2Bvr p1, Path2Bvr p2) +
    <public static Path2Bvr concatArray(Path2Bvr[] paths) +
    public static Path2Bvr cubicBSplinePath(Point2Bvr[], NumberBvr[]) +
    public static Path2Bvr line(Point2Bvr p1, Point2Bvr p2) +
    public static Path2Bvr pie(NumberBvr startAngle, NumberBvr endAngle, NumberBvr arcWidth, NumberBvr arcHeight) +
    public static Path2Bvr pieDegrees(double startAngle, double endAngle, double arcWidth, double arcHeight) +
    public static Path2Bvr polydrawPath(Point2Bvr[] points, NumberBvr[] codes) +
    public static Path2Bvr polyline(Point2Bvr[] points) +
    public static Path2Bvr ray(Point2Bvr p) +
    public static Path2Bvr rect(NumberBvr width, NumberBvr height) +
    public static Path2Bvr roundRect(NumberBvr width, NumberBvr height, NumberBvr arcWidth, NumberBvr arcHeight) +
    public static Path2Bvr stringPath(StringBvr string, FontStyleBvr fs) +
    Point2Bvr Static Fields +
    public static Point2Bvr mousePosition +
    public static Point2Bvr origin2 +
    Point2Bvr Static Methods +
    public static Point2Bvr add(Point2Bvr pt, Vector2Bvr vec) +
    public static Point2Bvr bSpline(int degree, NumberBvr[] knots, Point2Bvr[] points, NumberBvr[] weights) +
    public static Vector2Bvr derivative(Point2Bvr pt) +
    public static NumberBvr distance(Point2Bvr p1, Point2Bvr p2) +
    public static NumberBvr distanceSquared(Point2Bvr p1, Point2Bvr p2) +
    public static Point2Bvr point2(double x, double y) +
    public static Point2Bvr point2(NumberBvr x, NumberBvr y) +
    public static Point2Bvr point2Polar(NumberBvr XYangle, NumberBvr YZangle) +
    public static Vector2Bvr sub(Point2Bvr p1, Point2Bvr p2) +
    public static Point2Bvr sub(Point2Bvr pt, Vector2Bvr vec) +
    Point3Bvr Static Fields +
    public static Point3Bvr origin3 +
    Point3Bvr Static Methods +
    public static Point3Bvr add(Point3Bvr pt, Vector3Bvr vec) +
    public static Point3Bvr bSpline(int degree, NumberBvr[] knots, Point3Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation) +
    public static Vector3Bvr derivative(Point3Bvr pt) +
    public static NumberBvr distance(Point3Bvr p1, Point3Bvr p2) +
    public static NumberBvr distanceSquared(Point3Bvr p1, Point3Bvr p2) +
    public static Point3Bvr point3(double x, double y, double z) +
    public static Point3Bvr point3(NumberBvr x, NumberBvr y, NumberBvr z) +
    public static Point3Bvr point3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length) +
    public static Vector3Bvr sub(Point3Bvr p1, Point3Bvr p2) +
    public static Point3Bvr sub(Point3Bvr pt, Vector3Bvr vec) +
    SoundBvr Static Fields +
    public static SoundBvr silence +
    public static SoundBvr sinSynth +
    SoundBvr Static Methods +
    public static SoundBvr importSound(URL url, NumberBvr[] soundLength) +
    public static SoundBvr importSound(URL url, NumberBvr[] soundLength, SoundBvr sndStandIn, DXMEvent[] ev, NumberBvr[] progress, NumberBvr[] size) +
    public static SoundBvr mix(SoundBvr sound1, SoundBvr sound2) +
    public static SoundBvr mixArray(SoundBvr[] sounds); +
    StringBvr Static Methods +
    public static StringBvr concat(StringBvr a, StringBvr b) +
    public static StringBvr toBvr(String string) +
    Transform2Bvr Static Fields +
    public static Transform2Bvr identityTransform2 +
    Transform2Bvr Static Methods +
    public static Transform2Bvr compose(Transform2Bvr xf1, Transform2Bvr xf2) +
    public static Transform2Bvr compose(Transform2Bvr[] xforms) +
    public static Transform2Bvr followPath(Path2Bvr path, NumberBvr evaluator) +
    public static Transform2Bvr followPathAngle(Path2Bvr path, NumberBvr evaluator) +
    public static Transform2Bvr followPathAngleUpright(Path2Bvr path, NumberBvr evaluator) +
    public static Transform2Bvr rotate(NumberBvr radians) +
    public static Transform2Bvr rotateDegrees(double degrees) +
    public static Transform2Bvr rotateRate(double radians) +
    public static Transform2Bvr rotateRateDegrees(double degrees) +
    public static Transform2Bvr scale(NumberBvr sx, NumberBvr sy) +
    public static Transform2Bvr scale(Vector2Bvr v) +
    public static Transform2Bvr scaleRate(double x, double y) +
    public static Transform2Bvr scale2(NumberBvr uniformFactor) +
    public static Transform2Bvr scale2Rate(double rate) +
    public static Transform2Bvr transform3x2(NumberBvr [] matrix) +
    public static Transform2Bvr translate(NumberBvr tx, NumberBvr ty) +
    public static Transform2Bvr translate(Point2Bvr loc); +
    public static Transform2Bvr translate(Vector2Bvr v) +
    public static Transform2Bvr translateRate(double x, double y) +
    public static Transform2Bvr xShear(NumberBvr x) +
    public static Transform2Bvr xShearRate (double rate) +
    public static Transform2Bvr yShear(NumberBvr y) +
    public static Transform2Bvr yShearRate(double y) +
    Transform3Bvr Static Fields +
    public static Transform3Bvr identityTransform3 +
    Transform3Bvr Static Methods +
    public static Transform3Bvr compose(Transform3Bvr xf1, Transform3Bvr xf2) +
    public static Transform3Bvr compose3Array(Transform3Bvr[] xforms) +
    public static Transform3Bvr lookAtFrom(Point3Bvr from, Point3Bvr to, Vector3Bvr up) +
    public static Transform3Bvr rotateDegrees(Vector3Bvr axis, double degrees) +
    public static Transform3Bvr rotate(Vector3Bvr axis, NumberBvr radians) +
    public static Transform3Bvr rotateRate(Vector3Bvr axis, double radians) +
    public static Transform3Bvr rotateRateDegrees(Vector3Bvr axis, double degrees) +
    public static Transform3Bvr scale(NumberBvr sx, NumberBvr sy, NumberBvr sz) +
    public static Transform3Bvr scale(Vector3Bvr v) +
    public static Transform3Bvr scaleRate(double x, double y, double z) +
    public static Transform3Bvr scale3(NumberBvr uniformFactor) +
    public static Transform3Bvr scale3Rate(double rate) +
    public static Transform3Bvr transform4x4(NumberBvr[] matrix) +
    public static Transform3Bvr translate(NumberBvr tx, NumberBvr ty, NumberBvr tz) +
    public static Transform3Bvr translate(Point3Bvr loc) +
    public static Transform3Bvr translate(Vector3Bvr v) +
    public static Transform3Bvr translateRate(double x, double y, double z) +
    public static Transform3Bvr xShear(NumberBvr a, NumberBvr b) +
    public static Transform3Bvr xShearRate(double a, double b) +
    public static Transform3Bvr yShear(NumberBvr c, NumberBvr d) +
    public static Transform3Bvr yShearRate(double c, double d) +
    public static Transform3Bvr zShear(NumberBvr e, NumberBvr f) +
    public static Transform3Bvr zShearRate(double e, double f) +
    TupleBvr Static Methods +
    public static TupleBvr pairBvr(Behavior first, Behavior second) +
    public static TupleBvr tripleBvr(Behavior first, Behavior second, Behavior third) +
    Vector2Bvr Static Fields +
    public static Vector2Bvr xVector2 +
    public static Vector2Bvr yVector2 +
    public static Vector2Bvr zeroVector2 +
    Vector2Bvr Static Methods +
    public static Vector2Bvr add(Vector2Bvr v1, Vector2Bvr v2) +
    public static Vector2Bvr bSpline(int degree, NumberBvr[] knots, Vector2Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation) +
    public static Vector2Bvr derivative(Vector2Bvr vec) +
    public static NumberBvr dot(Vector2Bvr v1, Vector2Bvr v2) +
    public static Vector2Bvr integral(Vector2Bvr vec) +
    public static Vector2Bvr neg(Vector2Bvr v1) +
    public static Vector2Bvr sub(Vector2Bvr v1, Vector2Bvr v2) +
    public static Vector2Bvr vector2(NumberBvr x, NumberBvr y) +
    public static Vector2Bvr vector2Polar(NumberBvr XYangle, NumberBvr length) +
    public static Vector2Bvr vector2PolarDegrees(double XYangle, double length); +
    Vector3Bvr Static Fields +
    public static Vector3Bvr xVector3 +
    public static Vector3Bvr yVector3 +
    public static Vector3Bvr zVector3 +
    public static Vector3Bvr zeroVector3 +
    Vector3Bvr Static Methods +
    public static Vector3Bvr add(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr bSpline(int degree, NumberBvr[] knots, Vector3Bvr[] control_elements, NumberBvr[] weights, NumberBvr evaluation)) +
    public static Vector3Bvr cross(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr derivative(Vector3Bvr vec) +
    public static NumberBvr dot(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr integral(Vector3Bvr vec) +
    public static Vector3Bvr neg(Vector3Bvr v1) +
    public static Vector3Bvr sub(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr vector3(NumberBvr x, NumberBvr y, NumberBvr z) +
    public static Vector3Bvr vector3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0256.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0256.HTM new file mode 100644 index 0000000..83bbf73 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0256.HTM @@ -0,0 +1,197 @@ + + +StringBvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --StringBvr Class +DirectAnimation Animated Header --StringBvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Statics Class
    +*Next Topic: ModifiableBehavior Class
    +

    +

    +

    StringBvr Class

    +
    +

    These are the methods for the StringBvr Class: +

    + + + + + + + + + + + +
    public Object extract() +
    public static StringBvr newUninitBvr() +
    Methods Defined in Statics +
    public static StringBvr concat(StringBvr a, StringBvr b) +
    public static StringBvr toBvr(String string) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0257.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0257.HTM new file mode 100644 index 0000000..de419ee --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0257.HTM @@ -0,0 +1,188 @@ + + +ModifiableBehavior Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --ModifiableBehavior Class +DirectAnimation Animated Header --ModifiableBehavior Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: StringBvr Class
    +*Next Topic: Transform2Bvr
    +

    +

    +

    ModifiableBehavior Class

    +
    +

    These are the methods for the ModifiableBehavior Class: +

    + + + + + +
    public Behavior getBvr() +
    public void switchTo(Behavior newBvr) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0258.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0258.HTM new file mode 100644 index 0000000..09ab5fb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0258.HTM @@ -0,0 +1,269 @@ + + +Transform2Bvr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Transform2Bvr +DirectAnimation Animated Header --Transform2Bvr* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: ModifiableBehavior Class
    +*Next Topic: Transform3Bvr Class
    +

    +

    +

    Transform2Bvr

    +
    +

    These are the fields and methods for the Transform2Bvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Transform2Bvr inverse() +
    public BooleanBvr isSingular() +
    public static Transform2Bvr newUninitBvr() +
    Fields Defined in Statics +
    public static Transform2Bvr identityTransform2 +
    Methods Defined in Statics +
    public static Transform2Bvr compose(Transform2Bvr xf1, Transform2Bvr xf2) +
    public static Transform2Bvr compose(Transform2Bvr xf1, Transform2Bvr xf2) +
    public static Transform2Bvr followPath(Path2Bvr path, NumberBvr evaluator) +
    public static Transform2Bvr followPathAngle(Path2Bvr path, NumberBvr evaluator) +
    public static Transform2Bvr followPathAngleUpright(Path2Bvr path, NumberBvr evaluator) +
    public static Transform2Bvr rotate(NumberBvr radians) +
    public static Transform2Bvr rotateDegrees(double degrees) +
    public static Transform2Bvr rotateRate(double radians) +
    public static Transform2Bvr rotateRateDegrees(double degrees) +
    public static Transform2Bvr scale(NumberBvr sx, NumberBvr sy) +
    public static Transform2Bvr scale(Vector2Bvr v) +
    public static Transform2Bvr scaleRate(double x, double y) +
    public static Transform2Bvr scale2(NumberBvr uniformFactor) +
    public static Transform2Bvr scale2Rate(double rate) +
    public static Transform2Bvr transform3x2(NumberBvr[] matrix) +
    public static Transform2Bvr translate(NumberBvr tx, NumberBvr ty) +
    public static Transform2Bvr translate(Point2Bvr loc); +
    public static Transform2Bvr translate(Vector2Bvr v) +
    public static Transform2Bvr translateRate(double x, double y) +
    public static Transform2Bvr xShear(NumberBvr x) +
    public static Transform2Bvr xShearRate (double rate) +
    public static Transform2Bvr yShear(NumberBvr y) +
    public static Transform2Bvr yShearRate(double y) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0259.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0259.HTM new file mode 100644 index 0000000..795eb1d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0259.HTM @@ -0,0 +1,272 @@ + + +Transform3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Transform3Bvr Class +DirectAnimation Animated Header --Transform3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Transform2Bvr
    +*Next Topic: TupleBvr
    +

    +

    +

    Transform3Bvr Class

    +
    +

    These are the fields and methods for the Transform3Bvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Transform3Bvr inverse(Transform3Bvr xf1) +
    public BooleanBvr isSingular(Transform3Bvr xf1) +
    public Transform2Bvr parallelTransform2(); +
    public static Transform3Bvr newUninitBvr() +
    Fields Defined in Statics +
    public static Transform3Bvr identityTransform3 +
    Methods Defined in Statics +
    public static Transform3Bvr compose(Transform3Bvr xf1, Transform3Bvr xf2) +
    public static Transform3Bvr compose3Array(Transform3Bvr[] xforms) +
    public static Transform3Bvr lookAtFrom(Point3Bvr from, Point3Bvr to, Vector3Bvr up) +
    public static Transform3Bvr rotate(Vector3Bvr axis, NumberBvr radians) +
    public static Transform3Bvr rotate(Vector3Bvr axis, double degrees) +
    public static Transform3Bvr rotateRate(Vector3Bvr axis, double radians) +
    public static Transform3Bvr rotateRateDegrees(Vector3Bvr axis, double degrees) +
    public static Transform3Bvr scale(NumberBvr sx, NumberBvr sy, NumberBvr sz) +
    public static Transform3Bvr scale(Vector3Bvr v) +
    public static Transform3Bvr scaleRate(double x, double y, double z) +
    public static Transform3Bvr scale3(NumberBvr uniformFactor) +
    public static Transform3Bvr scale3Rate(rate) +
    public static Transform3Bvr transform4x4(NumberBvr[] matrix) +
    public static Transform3Bvr translate(NumberBvr tx, NumberBvr ty, NumberBvr tz) +
    public static Transform3Bvr translate(Point3Bvr loc) +
    public static Transform3Bvr translate(Vector3Bvr v) +
    public static Transform3Bvr translateRate(double x, double y, double z) +
    public static Transform3Bvr xShear(NumberBvr a, NumberBvr b) +
    public static Transform3Bvr xShearRate(double a, double b) +
    public static Transform3Bvr yShear(NumberBvr c, NumberBvr d) +
    public static Transform3Bvr yShearRate(double c, double d) +
    public static Transform3Bvr zShear(NumberBvr e, NumberBvr f) +
    public static Transform3Bvr zShearRate(double e, double f) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0260.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0260.HTM new file mode 100644 index 0000000..bee70ff --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0260.HTM @@ -0,0 +1,200 @@ + + +TupleBvr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --TupleBvr +DirectAnimation Animated Header --TupleBvr* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Transform3Bvr Class
    +*Next Topic: UntilNotifier Interface
    +

    +

    +

    TupleBvr

    +
    +

    These are the methods for the TupleBvr: +

    + + + + + + + + + + + + + +
    public int length() +
    public Behavior nth(int i) +
    public static TupleBvr newUninitBvr(TupleBvr tuple) +
    Methods Defined in Statics Class +
    public static TupleBvr pairBvr(Behavior first, Behavior second) +
    public static TupleBvr tripleBvr(Behavior first, Behavior second, Behavior third) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0261.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0261.HTM new file mode 100644 index 0000000..cd5553d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0261.HTM @@ -0,0 +1,185 @@ + + +UntilNotifier Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --UntilNotifier Interface +DirectAnimation Animated Header --UntilNotifier Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: TupleBvr
    +*Next Topic: Vector2Bvr Class
    +

    +

    +

    UntilNotifier Interface

    +
    +

    These are the methods for the UntilNotifier Interface: +

    + + + +
    public abstract Behavior notify(Object eventData, Behavior previous, BvrsToRun extraBvrsToRun) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0262.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0262.HTM new file mode 100644 index 0000000..8f8fc5c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0262.HTM @@ -0,0 +1,257 @@ + + +Vector2Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Vector2Bvr Class +DirectAnimation Animated Header --Vector2Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: UntilNotifier Interface
    +*Next Topic: Vector3Bvr Class
    +

    +

    +

    Vector2Bvr Class

    +
    +

    These are the fields and methods for the Vector2Bvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Vector2Bvr div(NumberBvr scalar) +
    public NumberBvr getPolarCoordAngle() +
    public NumberBvr getPolarCoordLength() +
    public NumberBvr getX() +
    public NumberBvr getY() +
    public NumberBvr length() +
    public NumberBvr lengthSquared() +
    public Vector2Bvr mul(NumberBvr scalar) +
    public Vector2Bvr normalize() +
    public Vector2Bvr transform(Transform2Bvr xf) +
    public static Vector2Bvr newUninitBvr() +
    Fields Defined in Statics Class +
    public static Vector2Bvr xVector2 +
    public static Vector2Bvr yVector2 +
    public static Vector2Bvr zeroVector2 +
    Methods Defined in Statics Class +
    public static Vector2Bvr add(Vector2Bvr v1, Vector2Bvr v2) +
    public static Vector2Bvr bSpline(int degree, NumberBvr[] knots, Vector2Bvr[] points, NumberBvr[] weights) +
    public static Vector2Bvr derivative(Vector2Bvr vec) +
    public static Vector2Bvr integral(Vector2Bvr vec) +
    public static Vector2Bvr neg(Vector2Bvr v1) +
    public static Vector2Bvr sub(Vector2Bvr v1, Vector2Bvr v2) +
    public static Vector2Bvr vector2(NumberBvr x, NumberBvr y) +
    public static Vector2Bvr vector2Polar(NumberBvr XYangle, NumberBvr length) +
    public static Vector2Bvr vector2PolarDegrees(double XYangle, double length); +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0263.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0263.HTM new file mode 100644 index 0000000..662e849 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0263.HTM @@ -0,0 +1,269 @@ + + +Vector3Bvr Class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Vector3Bvr Class +DirectAnimation Animated Header --Vector3Bvr Class* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Vector2Bvr Class
    +*Next Topic: Viewer Interface
    +

    +

    +

    Vector3Bvr Class

    +
    +

    These are the fields and methods for the Vector3Bvr Class: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    public Vector3Bvr div(NumberBvr scalar) +
    public NumberBvr getSphericalCoordLength() +
    public NumberBvr getSphericalCoordXYAngle() +
    public NumberBvr get SphericalCoordYZAngle() +
    public NumberBvr getX() +
    public NumberBvr getY() +
    public NumberBvr getZ() +
    public NumberBvr length() +
    public NumberBvr lengthSquared() +
    public Vector3Bvr mul(NumberBvr scalar) +
    public Vector3Bvr normalize() +
    public Vector3Bvr transform(Transform3Bvr xf) +
    public static Vector3Bvr newUninitBvr() +
    Fields Defined in Statics Class +
    public static Vector3Bvr xVector3 +
    public static Vector3Bvr yVector3 +
    public static Vector3Bvr zVector3 +
    public static Vector3Bvr zeroVector3 +
    Methods Defined in Statics Class +
    public static Vector3Bvr add(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr bSpline(int degree, NumberBvr[] knots, Vector3Bvr[] points, NumberBvr[] weights) +
    public static Vector3Bvr cross(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr derivative(Vector3Bvr vec) +
    public static NumberBvr dot(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr integral(Vector3Bvr vec) +
    public static Vector3Bvr neg(Vector3Bvr v1) +
    public static Vector3Bvr sub(Vector3Bvr v1, Vector3Bvr v2) +
    public static Vector3Bvr vector3(NumberBvr x, NumberBvr y, NumberBvr z) +
    public static Vector3Bvr vector3Spherical(NumberBvr XYangle, NumberBvr YZangle, NumberBvr length) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0264.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0264.HTM new file mode 100644 index 0000000..7557748 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0264.HTM @@ -0,0 +1,203 @@ + + +Viewer Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Viewer Interface +DirectAnimation Animated Header --Viewer Interface* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Vector3Bvr Class
    +*Next Topic: Animation Glossary
    +

    +

    +

    Viewer Interface

    +
    +

    These are the methods for the Viewer Interface: +

    + + + + + + + + + + + + + + + +
    public abstract double getCurrentTime() +
    public abstract double getCurrentTickTime() +
    public abstract Preferences getPreferences() +
    public abstract ErrorAndWarningReceiver registerErrorAndWarningReceiver(ErrorAndWarningReceiver w) +
    public abstract void startModel() +
    public abstract void tick() +
    public abstract void tick(double timeToUse) +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0265.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0265.HTM new file mode 100644 index 0000000..dd42d59 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0265.HTM @@ -0,0 +1,233 @@ + + +Animation Glossary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Animation Glossary +DirectAnimation Animated Header --Animation Glossary* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Viewer Interface
    +*Next Topic: A
    +

    +

    +

    Animation Glossary

    +
    +

    This section provides a definition of basic animation terms and how some basic animation features are implemented in Microsoft® DirectAnimation™. It applies to both the Java and Scripting references. (Classes that begin with the "DA" prefix are in the Scripting reference.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    + +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0266.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0266.HTM new file mode 100644 index 0000000..17c72b9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0266.HTM @@ -0,0 +1,182 @@ + + +A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --A +DirectAnimation Animated Header --A* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: Animation Glossary
    +*Next Topic: B
    +

    +

    +

    A

    +
    +
    action set +
    A logical grouping of procedures used to control the timing and behavior of objects on an HTML page. The Sequencer control provides timing and sequencing services for action sets. +
    ambient light +
    The light that determines the general illumination of a scene and keeps shadows from being completely black. Ambient light is created by approximating the background lighting level caused by the reflections from each surface in the scene. In DirectAnimation, ambient light is available as DAGeometry.ambientLight (or Java GeometryBvr.ambientLight). +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    + +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0267.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0267.HTM new file mode 100644 index 0000000..1333897 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0267.HTM @@ -0,0 +1,183 @@ + + +B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --B +DirectAnimation Animated Header --B* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: A
    +*Next Topic: C
    +

    +

    +

    B

    +
    +
    bounding box +
    Defines the part of an image or geometry that is detectable or nontransparent (tangible). The DAImage.BoundingBox function (or Java ImageBvr.boundingBox method) + + + returns a 2-D bounding box (a DABbox2 or Bbox2Bvr class object) that encloses all the tangible parts of the image. The DAGeometry.BoundingBox function (or Java GeometryBvr.boundingBox method) returns a 3-D bounding box (a DABbox3 or Bbox3Bvr class object) that encloses all the tangible parts of the geometry. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    + +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0268.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0268.HTM new file mode 100644 index 0000000..052b1be --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0268.HTM @@ -0,0 +1,300 @@ + + +C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --C +DirectAnimation Animated Header --C* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: B
    +*Next Topic: D
    +

    +

    +

    C

    +
    +
    camera +
    DirectAnimation uses a camera to render a geometry (3-D image) into a 2-D image. DirectAnimation has two kinds of cameras: perspective cameras and parallel cameras. A perspective camera projects an image as if it comes from a point. A parallel camera uses parallel projection lines as if projected from an infinite distance away (the image's plane is the same as the viewing plane). Every camera consists of a projection plane (which is the xy plane), a near clip plane, and either a projection point (for a perspective camera) that lies on the z-axis, or a projection direction (for a parallel camera). The near clip plane is a cut-off point on the z-axis that makes everything on the camera side of it invisible. See Rendering Geometries into Images for a diagram. + +

    Cameras in DirectAnimation are objects of the DACamera (or Java CameraBvr) class type. They can be constructed with the DAStatics.PerspectiveCamera (or Java Statics.perspectiveCamera)or the DAStatics.ParallelCamera (or Java Statics.parallelCamera) methods, and are operated on by methods such as DACamera.transform (or Java CameraBvr.transform). + +

    To render 3-D geometries as 2-D images, use the DAGeometry.render (or Java GeometryBvr.render) method, which works on a geometry and returns an image. + +

    The following Java code fragment constructs a scene from the union of lights and an imported cube, and then renders that scene into a 2-D image with a perspective camera. + +

    
    +      URL geomBase = buildURL(getImportBase(),"file:/c:/DxM/Media/geometry/");
    +      GeometryBvr cube = importGeometry(buildURL(geomBase,"cube.x"));
    +      GeometryBvr lights = ambientLight;
    +      GeometryBvr scene = union(lights, cube);
    +      CameraBvr camera = perspectiveCamera(1, 0);
    +      ImageBvr renderedGeometry = scene.render(camera);
    +
    +

    The perspectiveCamera method's n and p parameters define, respectively, the position of the near clip plane and of the projection point on the positive z-axis. + + +

    clip +
    Clipping is a form of cropping where the clipped region need not be rectangular. To clip an image so that it conforms to the size of the matte, use the DAImage.Clip(matte)) function (or Java ImageBvr.clip(matte) method) where matte is a DAMatte behavior (or Java MatteBvr behavior). A DAMatte behavior (or Java MatteBvr behavior) is a behavior with operations for constructing matte (stencil) regions. + +

    The resulting image is the portion of the original image that falls in the matte region and is otherwise transparent and undetectable. + +

    A shortcut to clipping an image with a polygonal region is the DAImage.ClipPolygon function (or Java ImageBvr.clipPolygon method), which generates a polygonal matte and does a clip. + +

    color +
    Color in DirectAnimation is represented by a DAColor (or Java ColorBvr) behavior. You can create color either by specifying hue, saturation, and lightness values with the DAStatics.ColorHsl function (or Java Statics.colorHsl method), or by specifying red-green-blue color components with the DAColor.ColorRgb function (or Java Statics.colorRgb method). As shown in the following JScript code: + +
    
    +thisColor = m.ColorHsl(0.5, 0.5, 0.5);
    +col = m.ColorRgb(1, 0, 0); //red
    +
    +

    DirectAnimation defines the following color constants: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Java ReferenceScripting Reference +
    aquaAqua +
    blackBlack +
    blueBlue +
    cyanCyan +
    fuchsiaFuchsia +
    grayGray + + +
    greenGreen +
    limeLime +
    magentaMagenta +
    maroonMaroon +
    navyNavy +
    oliveOlive +
    purplePurple +
    redRed +
    silverSilver +
    tealTeal +
    whiteWhite +
    yellowYellow +
    +

    crop +
    Cropping limits the part of the image that is accessible to the user visually or for interaction. To crop an image, apply the DAImage.crop(lowLeftPt, upRightPt) function (or Java ImageBvr.crop(lowLeftPt, upRightPt) method). + + + This defines the detectable or visible portion of the subject image as the part that falls within the two given points. +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0269.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0269.HTM new file mode 100644 index 0000000..5fe90fc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0269.HTM @@ -0,0 +1,184 @@ + + +D + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --D +DirectAnimation Animated Header --D* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: C
    +*Next Topic: G
    +

    +

    +

    D

    +
    +
    detectability +
    The points of images or the surfaces of geometries are either detectable or not. If they are detectable, they fire an event (a hit detection event) whenever the mouse passes over a point or surface. The DAImage.Undetectable function (or Java ImageBvr.undetectable method) creates a copy of an existing image that is undetectable. + +
    directional light +
    Light in which rays arrive in the scene parallel to each other. This light mimics the light from a very distant source, such as the sun. In DirectAnimation, directional light is available as DAGeometry.DirectionalLight (or Java GeometryBvr.directionalLight). + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    + +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0270.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0270.HTM new file mode 100644 index 0000000..8040b08 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0270.HTM @@ -0,0 +1,207 @@ + + +G + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --G +DirectAnimation Animated Header --G* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: D
    +*Next Topic: I
    +

    +

    +

    G

    +
    +
    geometry +
    Geometries have width, height, and depth, and are rendered into 2-D images. Geometries are objects of the DAGeometry (or Java GeometryBvr) class type, and are operated on by functions such as DAGeometry.Texture (or Java GeometryBvr.texture), DAGeometry.DiffuseColor (or Java GeometryBvr.diffuseColor), and DAGeometryBvr.Transform (or Java GeometryBvr.transform). + +

    You can import a geometry into DirectAnimation from a URL or local file. DirectAnimation supports the DirectX .x file format. First build your URL base, then use the ImportGeometry function (or Java importGeometry method) to import a geometry, as shown in the following Java code: + +

    
    +   //Create a URL base
    +   URL geoBase = buildURL(getImportBase(),"file:/c:/DxM/Media/geometry/");
    +   // Create a geometry behavior by importing a geometry file
    +   GeometryBvr cube = importGeometry(buildURL(geoBase,"cube.x"));
    +
    +

    The following example shows how to import a geometry from a local file, using JScript: +

    
    +  mediaBase = "..\\..\\..\\..\\media\\";
    +  // the following form will also work as well
    +  // mediaBase = "file://c:\\dxm\\media\\";
    +
    +  geoBase = mediaBase + "geo\\";
    +  myImage = m.ImportGeometry(geoBase + "cube.x");
    +
    +

    The following example shows how to import a geometry over a network, using JScript: + +

    
    + mediaBase = "http://dxmedia/directanimation/dxm_sdk/media/";
    + geoBase = mediaBase + "geo/";
    + myImage = m.ImportGeometry(geoBase + "cube.x");
    +
    +

    You can augment a geometry with lights, including ambient, directional, point, and spot lights. (Because there is no default lighting, you must include some sort of lighting so that the geometry is visible.) You can also attach a sound source to a geometry to give the sound 3-D spatial characteristics. See Using Geometries for more information. +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0271.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0271.HTM new file mode 100644 index 0000000..b044d55 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0271.HTM @@ -0,0 +1,208 @@ + + +I + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --I +DirectAnimation Animated Header --I* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: G
    +*Next Topic: L
    +

    +

    +

    I

    +
    +
    image +
    Images are 2-D. They have width and height, but no depth. Images are objects of the DAImage (or Java ImageBvr) class type, and can be operated on by methods, such as DAImage.Crop (or Java ImageBvr.crop), DAImage.Tile (or Java ImageBvr.tile), and DAImage.Transform (or Java ImageBvr.transform). + +

    You can import images into DirectAnimation from a URL or local file. DirectAnimation supports .png, .jpg, .gif, and .bmp formats. Importing is done in two steps: first you construct your URL base, then you use the ImportImage function (or Java importImage method), as shown in the following Java example: + +

    
    +   //Create a URL base
    +   URL imageBase = buildURL(getImportBase(),"file:/c:/DxM/Media/image/");
    +   // Create an image behavior by importing an image file
    +    ImageBvr img = importImage(buildURL(imageBase, "square.jpg"));
    +
    +

    The following example shows how to import an image from a local file, using JScript: + +

    
    +  mediaBase = "..\\..\\..\\..\\media\\";
    +  // the following form will also work as well
    +  // mediaBase = "file://c:\\dxm\\media\\";
    +
    +  imageBase = mediaBase + "image\\";
    +  myImage = m.ImportImage(imageBase + "foliageUtah.jpg");	
    +
    +

    The following example shows how to import an image from over the Internet, using JScript: + +

    
    +  mediaBase = "http://dxmedia/directanimation/dxm_sdk/media/";
    +  imageBase = mediaBase + "image/";
    +  myImage = m.ImportImage(imageBase + "foliageUtah.jpg");	
    +
    +

    You can also construct an image by rendering lines, text, or geometries. See Using Images for more information. +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0272.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0272.HTM new file mode 100644 index 0000000..3f9d001 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0272.HTM @@ -0,0 +1,189 @@ + + +L + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --L +DirectAnimation Animated Header --L* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: I
    +*Next Topic: O
    +

    +

    +

    L

    +
    +
    light +
    Computer displays use additive light. Additive light is created by combining red, green, and blue light components, in some proportion. White light is created from equal parts of red, green, and blue light. Intensity is the brightness of the light. Attenuation is the decrease in light intensity over distance. + +

    There are two basic kinds of light: ambient light and source light. Ambient light determines the general illumination of a scene. Source light comes from a light source. There are three kinds of source light: point sources (light radiates in all directions from a point source), spotlight sources (light radiates in a specified cone from a point source), and directional light (light rays arrive in the scene parallel to each other, which mimics the light from a very distant source). + +

    In DirectAnimation, ambient light, directional light, and point light are available as DAGeometry.ambientLight (or Java GeometryBvr.ambientLight), DAGeometry.DirectionalLight (or Java GeometryBvr.directionalLight), and DAGeometry.PointLight (or Java GeometryBvr.pointLight). + +

    Diffuse light is light that scatters from rough surfaces in all directions. Depending on the object's material, it can reflect and diffuse incoming light in varying degrees. In DirectAnimation, diffuse light characteristics are set with the DAGeometry.DiffuseColor function (or Java GeometryBvr.diffuseColor method). + + +

    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0273.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0273.HTM new file mode 100644 index 0000000..49784dd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0273.HTM @@ -0,0 +1,183 @@ + + +O + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --O +DirectAnimation Animated Header --O* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: L
    +*Next Topic: P
    +

    +

    +

    O

    +
    +
    opacity +
    The measure of an object's ability to block light transmission — the opposite of transparency. In DirectAnimation, you set it with the DAImage.Opacity function (or Java ImageBvr.opacity method) or DAGeometry.Opacity function (or Java GeometryBvr.opacity method), respectively. When the opacity is 0, the resulting image or geometry is fully transparent. When the opacity is 1, the image or geometry is fully opaque. + +
    overlay +
    An overlay takes two images as parameters and returns an image that is made by laying the first image on top of the second. Blending takes place where the images overlap and the image laid on top is partially opaque (neither fully opaque nor fully transparent). To create an overlay, use the DAImage.Overlay function (or Java ImageBvr.overlay method). +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    + +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0274.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0274.HTM new file mode 100644 index 0000000..7c3a3dc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0274.HTM @@ -0,0 +1,189 @@ + + +P + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --P +DirectAnimation Animated Header --P* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: O
    +*Next Topic: S
    +

    +

    +

    P

    +
    +
    path +
    A sequence of 2-D points, typically used to draw images consisting of line segments or to define borders for geometric shapes. Paths in DirectAnimation are objects of the DAPath2 (or Java Path2Bvr) class type. + +
    point (2-D) +
    Represents a location in a plane or on the screen. In DirectAnimation, it is a DAPoint2 (or Java Point2Bvr) object. It can be defined either by its Cartesian (x, y) or polar (theta, rho) coordinate values. (In DirectAnimation, theta is also called the polar coordinate angle, and rho is the polar coordinate length.) These coordinates define the point's location relative to a fixed point called Origin2 (or Java origin2). + +
    point (3-D) +
    Represents a location in 3-D space. In DirectAnimation, it is a DAPoint3 (or Java Point3Bvr) object. It can be defined either by its Cartesian (x, y, z) or spherical (theta, phi, rho) coordinate values. (In DirectAnimation, theta is also called the spherical coordinate x-y angle, phi is also called the spherical coordinate y-z angle, and rho is also called the spherical coordinate length.) These coordinates define the point's location relative to a fixed point called Origin3 (or Java origin3). +
    point light +
    Light that radiates in all directions from a point source. In DirectAnimation, point light is available as DAGeometry.PointLight (or Java GeometryBvr.pointLight). +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0275.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0275.HTM new file mode 100644 index 0000000..9376f4c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0275.HTM @@ -0,0 +1,196 @@ + + +S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --S +DirectAnimation Animated Header --S* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: P
    +*Next Topic: T
    +

    +

    +

    S

    +
    +
    sound +
    Audio in DirectAnimation is represented by the DASound (or Java SoundBvr) class. Sound can be imported from WAV or MIDI files, synthesized by mixing multiple sine waves, or constructed by rendering a geometry with embedded sounds into a single microphone for a single channel sound, or into two microphones for stereo sound. Microphones are implemented in DirectAnimation by the DAMicrophone (or Java MicrophoneBvr) class. +

    Operations on sounds include DASound.Loop (or Java SoundBvr.loop), DASound.Gain (or Java SoundBvr.gain), DASound.Rate (or Java SoundBvr.rate), DASound.Phase (or Java SoundBvr.phase), DASound.Pan (or Java SoundBvr.pan), and DASound.Mix (or Java SoundBvr.mix). + +

    source light +
    Light that comes from a light source. There are three kinds of source light: point sources (light radiates in all directions from a point source), spotlight sources (light radiates in a specified cone from a point source), and directional light (light rays arrive in the scene parallel to each other, which mimics the light from a very distant source). +

    In DirectAnimation, directional light and point light are available as DAGeometry.DirectionalLight(or Java GeometryBvr.directionalLight), and DAGeometry.PointLight (or Java GeometryBvr.pointLight). + + +

    spline +
    A polynomial function that follows defining points. The defining points can carry different weights. DirectAnimation supports B-splines through the DAStatics functions CubicBSplinePath, NumberBSpline, Point2BSpline, Point3BSpline, Vector2BSpline, and Vector3BSpline (or the Java Statics method cubicBSplinePath) and through the Java +NumberBvr, Point2Bvr, Point3Bvr, Vector2Bvr, and Vector3Bvr class method bSpline). + + + +
    sprite +
    A 2-D image that can move over a background without disturbing it. In DirectAnimation, sprites are images operated on by the DAImage.Transform function (or the Java ImageBvr.transform method). +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0276.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0276.HTM new file mode 100644 index 0000000..7f6d326 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0276.HTM @@ -0,0 +1,192 @@ + + +T + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --T +DirectAnimation Animated Header --T* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: S
    +*Next Topic: V
    +

    +

    +

    T

    +
    +
    texture +
    An image that is mapped onto a geometry to define its surface qualities. You do this with the DAGeometry.Texture function (or the Java GeometryBvr.texture method). For example, the following Java code imports a geometry and an image and uses the image to make the sphere look like a marble: + +
     
    +      URL mediaBase = buildURL(getImportBase(),"file/c:/DxM/Media/");
    +      GeometryBvr sphere = importGeometry(buildURL(mediaBase,"geometry/sphere.x"));
    +      ImageBvr marbleImage = importImage(buildURL(mediaBase,"image/marble.jpg"));
    +      GeometryBvr marbledSphere = sphere.texture(marbleImage);
    +
    +
    tile +
    The technique of repeating an image over a large area. When applied to an image, the DAImage.tile function (or Java ImageBvr.tile method) infinitely replicates the image in all four directions. Typically, tiling is followed either with a DAImage.Crop (or Java ImageBvr.crop) or a DAImage.Clip (or Java ImageBvr.clip)operation, or else it is used to generate the background of a viewport, and is, therefore, implicitly clipped while displayed. + + +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0277.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0277.HTM new file mode 100644 index 0000000..1961c83 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DA_E0277.HTM @@ -0,0 +1,182 @@ + + +V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --V +DirectAnimation Animated Header --V* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  *Topic Contents
    +
    *Previous Topic: T
    +

    +

    +

    V

    +
    +
    vector +
    Describes magnitude and direction. In DirectAnimation, 2-D vectors are DAVector2 (or Java Vector2Bvr) behaviors and can be constructed from polar or Cartesian coordinates. Three-dimensional vectors are DAVector3 (or Java Vector3Bvr) behaviors and can be constructed from spherical or Cartesian coordinates. Vectors can also be constructed from points, as shown in the following JScript code: +
    
    +myVec3 = m.Sub(firstPt3, secondPt3);
    +
    +
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    + +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DEFAULT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DEFAULT.HTM new file mode 100644 index 0000000..c2f36bc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DEFAULT.HTM @@ -0,0 +1,290 @@ + + +Microsoft DirectAnimation SDK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Getting Started +DirectAnimation Animated Header --Getting Started* + +Microsoft DirectAnimation SDK +
    *Contents  *Index  
    *Next Topic: Getting Started
    +

    +

    +

    Microsoft DirectAnimation SDK

    +
    +

    Welcome to the Microsoft® DirectAnimation™ SDK. Before jumping into any of the reference sections, consider reading the topics in the "Getting Started" and "Programmer's Guide" sections first. These sections provide important overview and conceptual information about DirectAnimation that you will need in other areas of the documentation. For the most recent updates to this documentation, consult the Microsoft DirectX Web site at http://www.microsoft.com/DirectX/. + +

    Click here to go to the download page for DirectAnimation and DirectShow. +

    +

    Last Updated: March 27, 1998 +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Getting Started +
    Provides general information about Microsoft® DirectAnimation to help you get oriented when first starting. +
    +
    +
    Guide to Samples +
    Contains descriptions of the templates, exercises, and showcase samples included with DirectAnimation and step-by-step procedures describing how to create simple animations in JScript, VBScript, and Java, and how to build the C++ samples. When viewed in HTML, includes live links to the DirectAnimation samples. You can also access the samples from the Samples\Da folder. +
    Scripting Cookbook +
    Contains simple scripting samples in VBScript. Each sample illustrates a basic DirectAnimation construction in its simplest form. The samples include animated lines, arcs, hatching, text, and vectors, and can be cut, pasted, and reused. +
    DirectAnimation Multimedia Controls +
    Describes DirectAnimation dynamic HTML multimedia controls. +
    Programmer's Guide +
    Discusses a variety of concepts and techniques useful to many types of DirectAnimation authors, such as coordinate systems, URLs and paths, and events in DirectAnimation. Also discusses DirectAnimation behaviors and how to use them, media types (images, geometries, and sound) and the operations that can be performed on them, sequencing, switching, time substitution, integrals and derivatives, and more. +
    +
    +
    Scripting Reference +
    Provides detailed reference information about the DirectAnimation functions that make animations accessible to Web authors, script writers, and COM programmers. +
    Java Reference +
    Provides detailed reference information about the DirectAnimation Java classes. +
    Animation Glossary +
    Defines basic animation terms and how basic animation features are implemented in DirectAnimation. +
    +
    + +
    +
    +
    Readme +
    Contains late-breaking or supplemental information about DirectAnimation. +
    +
    + +
    +

    Note: The icon external link indicates that the link takes you to a URL that is outside the microsoft.com site; you can return to the DirectAnimation site by using the Back button. Note that most of these external links point to servers that are not under Microsoft's control. Please read Microsoft's official statement regarding other servers.

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +

    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/3DCUBE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/3DCUBE.HTM new file mode 100644 index 0000000..e398a58 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/3DCUBE.HTM @@ -0,0 +1,227 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + +
    +
    +
    +

    3-D Cube

    + +
    + + + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ACODE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ACODE.HTM new file mode 100644 index 0000000..0eae311 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ACODE.HTM @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Code Frame + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ARCS.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ARCS.HTM new file mode 100644 index 0000000..a2c304a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ARCS.HTM @@ -0,0 +1,319 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Arcs

    + +
    + + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ARRAY.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ARRAY.HTM new file mode 100644 index 0000000..d3b52a4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ARRAY.HTM @@ -0,0 +1,188 @@ + + +Array Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Array Sample

    + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/BUTTON.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/BUTTON.HTM new file mode 100644 index 0000000..78ab9e4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/BUTTON.HTM @@ -0,0 +1,253 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Button

    + +
    + + + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CANDLE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CANDLE.GIF new file mode 100644 index 0000000..a725877 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CANDLE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CLOCK1.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CLOCK1.MP2 new file mode 100644 index 0000000..72b781b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CLOCK1.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CUBE.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CUBE.X new file mode 100644 index 0000000..066747f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CUBE.X @@ -0,0 +1,229 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +Header { + 1; + 0; + 1; +} + +Mesh { + 24; + -1.0; 1.0; 1.0;, + 1.0; 1.0; 1.0;, + -1.0;-1.0; 1.0;, + 1.0;-1.0; 1.0;, + + -1.0;-1.0; 1.0;, + 1.0;-1.0; 1.0;, + -1.0;-1.0;-1.0;, + 1.0;-1.0;-1.0;, + + 1.0; 1.0;-1.0;, + -1.0; 1.0;-1.0;, + 1.0;-1.0;-1.0;, + -1.0;-1.0;-1.0;, + + -1.0; 1.0;-1.0;, + -1.0; 1.0; 1.0;, + -1.0;-1.0;-1.0;, + -1.0;-1.0; 1.0;, + + 1.0; 1.0; 1.0;, + 1.0; 1.0;-1.0;, + 1.0;-1.0; 1.0;, + 1.0;-1.0;-1.0;, + + -1.0; 1.0;-1.0;, + 1.0; 1.0;-1.0;, + -1.0; 1.0; 1.0;, + 1.0; 1.0; 1.0;; + + 6; + 4;0,2,3,1;, + 4;4,6,7,5;, + 4;8,10,11,9;, + 4;12,14,15,13;, + 4;16,18,19,17;, + 4;20,22,23,21;; + + MeshMaterialList { + 1; + 1; + 0;; + Material { + 1.000000;1.000000;1.000000;1.000000;; + 0.000000; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + MeshNormals { + 6; + 0.0;0.0;1.0;, + 0.0;-1.0;0.0;, + 0.0;0.0;-1.0;, + -1.0;0.0;0.0;, + 1.0;0.0;0.0;, + 0.0;1.0;0.0;; + + 6; + 4;0,0,0,0;, + 4;1,1,1,1;, + 4;2,2,2,2;, + 4;3,3,3,3;, + 4;4,4,4,4;, + 4;5,5,5,5;; + } + MeshTextureCoords { + 24; + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;; +} +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CYCLE1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CYCLE1.GIF new file mode 100644 index 0000000..3dd7161 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/CYCLE1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/DISPLAY.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/DISPLAY.HTM new file mode 100644 index 0000000..b25a4ac --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/DISPLAY.HTM @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Display Frame + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/DSLINE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/DSLINE.HTM new file mode 100644 index 0000000..18f0b99 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/DSLINE.HTM @@ -0,0 +1,201 @@ + + +DrawingSurface Drawing Methods (Text) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +

    Drawing Surface Sample

    + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/EYEBALL.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/EYEBALL.GIF new file mode 100644 index 0000000..9360f1f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/EYEBALL.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/FAN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/FAN.GIF new file mode 100644 index 0000000..7f5cf1b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/FAN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/FISH.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/FISH.GIF new file mode 100644 index 0000000..497ac3b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/FISH.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/GLOBE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/GLOBE.GIF new file mode 100644 index 0000000..764b389 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/GLOBE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHB.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHB.HTM new file mode 100644 index 0000000..492f6da --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHB.HTM @@ -0,0 +1,247 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    HatchBackwardDiagonal

    +
    + +
    + + +
    +
    +
    + +
    + + + + +
    + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHCR.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHCR.HTM new file mode 100644 index 0000000..f7f43c2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHCR.HTM @@ -0,0 +1,249 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    HatchCross

    +
    + +
    + + +
    +
    +
    + +
    + + + + +
    + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHF.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHF.HTM new file mode 100644 index 0000000..9ef2fdd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHF.HTM @@ -0,0 +1,244 @@ + + +HatchForwardDiagonal Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    HatchForwardDiagonal

    +
    + +
    + + +
    +
    +
    + +
    + + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHH.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHH.HTM new file mode 100644 index 0000000..53ae741 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHH.HTM @@ -0,0 +1,217 @@ + + +HatchHorizontal Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    HatchHorizontal

    +
    + + + + + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHV.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHV.HTM new file mode 100644 index 0000000..08b1d70 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/HATCHV.HTM @@ -0,0 +1,216 @@ + + +HatchVertical Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    HatchVertical

    +
    + + + + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/MATTE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/MATTE.HTM new file mode 100644 index 0000000..cc207b2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/MATTE.HTM @@ -0,0 +1,239 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Matte

    + +
    + + + + + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/MOVECIR.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/MOVECIR.HTM new file mode 100644 index 0000000..d07e5d5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/MOVECIR.HTM @@ -0,0 +1,254 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Sequencing

    + +
    + + + + + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/OPAC.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/OPAC.HTM new file mode 100644 index 0000000..c77bc7a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/OPAC.HTM @@ -0,0 +1,277 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Opacity

    + +
    + + + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PAN.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PAN.HTM new file mode 100644 index 0000000..3c9162b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PAN.HTM @@ -0,0 +1,213 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + +
    +

    Panning

    + +
    + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PATH.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PATH.HTM new file mode 100644 index 0000000..8ce7280 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PATH.HTM @@ -0,0 +1,170 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Path Sample

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PATHWZRD.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PATHWZRD.HTM new file mode 100644 index 0000000..c125f5b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PATHWZRD.HTM @@ -0,0 +1,274 @@ + + +DirectAnimation Controls Path Wizard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    This page helps you to build a path

    + +
    +Shape to be used: +


    +

    + + + Shape parameters: + + + + + + + + + +
    X positionY positionWidthHeight
    +


    + + +

    +Path motion: +


    +

    + + +
    +Repeat: +


    +

    + + + + + + +
    Playback Duration - seconds.milliseconds
    + + +


    + + + + + + + + + + + + + +\n\n\n\n\n\n\n"; + string10="\n\n\n"; + string12="\n\n\n\n\n\n\n"; + var bigstring=string1+string10+string12; + document.codeframe.document.body.innerText=bigstring; + document.displayframe.document.body.innerHTML=bigstring; + document.displayframe.PathCtl.Play(); +} +--> + +You can copy the code from the first frame and paste it into a new file to use the path you've created, as displayed in the second frame.


    + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PICK.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PICK.HTM new file mode 100644 index 0000000..eb7905c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PICK.HTM @@ -0,0 +1,220 @@ + + +Simple Pick Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + +
    + + +
    +

    Simple Picking Example

    + +
    + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PIE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PIE.HTM new file mode 100644 index 0000000..63af989 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PIE.HTM @@ -0,0 +1,314 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Pies

    + +
    + + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PIN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PIN.GIF new file mode 100644 index 0000000..cafe663 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PIN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/POLYWZRD.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/POLYWZRD.HTM new file mode 100644 index 0000000..cc52577 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/POLYWZRD.HTM @@ -0,0 +1,331 @@ + + +Polygon Path Wizard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    This page generates a polygon shaped path.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + X 1: + + Y 1: + + +     + + Shape to be used: + +     + + +
    + X 2: + + Y 2: + + +     + + Path motion: + +     + + +
    + X 3: + + Y 3: +
    +
    +     + + Repeat: + +     + + +
    + X 4: + + Y 4: +
    + X 5: + + Y 5: + +
    +     + + Playback Duration - seconds.milliseconds: + +     + + +
    + + + + +


    + + + + + + + + + + + + + +\n\n\n\n\n\n\n"; + string10="\n\n\n"; + string11=""; + string12="\n\n\n\n\n"; + var bigstring=string1+string10+string11+string12; + document.codeframe.document.body.innerText=bigstring; + document.displayframe.document.body.innerHTML=bigstring; + document.displayframe.PathCtl.Play(); +} +--> + +You can copy the code from the first frame and paste it into a new file to use the path you've created, as displayed in the second frame.


    + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-KEYFRAME.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-KEYFRAME.HTM new file mode 100644 index 0000000..652cedb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-KEYFRAME.HTM @@ -0,0 +1,194 @@ + + +Microsoft DirectAnimation Controls - Path KeyFrame and OnMarker sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    This example uses a Keyframe-based path to define its shape,
    and utilizes the onmarker event to change the text on the page.
    Current position of the path:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-OVAL.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-OVAL.HTM new file mode 100644 index 0000000..84f1a70 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-OVAL.HTM @@ -0,0 +1,157 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-POLYGON.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-POLYGON.HTM new file mode 100644 index 0000000..25bfadc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-POLYGON.HTM @@ -0,0 +1,157 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-POLYLINE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-POLYLINE.HTM new file mode 100644 index 0000000..210e697 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-POLYLINE.HTM @@ -0,0 +1,157 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-RECT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-RECT.HTM new file mode 100644 index 0000000..6e36cf5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-RECT.HTM @@ -0,0 +1,157 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-SPLINE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-SPLINE.HTM new file mode 100644 index 0000000..2a0da9a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-SPLINE.HTM @@ -0,0 +1,157 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-TARGET.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-TARGET.HTM new file mode 100644 index 0000000..ba69765 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/PTH-TARGET.HTM @@ -0,0 +1,186 @@ + + +Microsoft DirectAnimation Controls - Path Target sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +This example assigns the path target depending upon the button clicked and plays relative to the target's current position. +
    + + + + +
    + + + + + + + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/RECT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/RECT.HTM new file mode 100644 index 0000000..26d216b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/RECT.HTM @@ -0,0 +1,252 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Rectangles

    + +
    + + + + + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/RECT.TXT b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/RECT.TXT new file mode 100644 index 0000000..9fb641c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/RECT.TXT @@ -0,0 +1,5 @@ +SetLineColor(0,0,0) +SetLineSTYLE(1,3) +SetFillColor(0,0,255) +SetFillSTYLE(1) +Rect(10,10, 80,40, 0) \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ROTATE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ROTATE.HTM new file mode 100644 index 0000000..c1ed8a9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/ROTATE.HTM @@ -0,0 +1,328 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Rotations

    + +
    + + + + +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SBUTTON1.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SBUTTON1.JPG new file mode 100644 index 0000000..875856b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SBUTTON1.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SEQSAMP.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SEQSAMP.HTM new file mode 100644 index 0000000..176be8a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SEQSAMP.HTM @@ -0,0 +1,191 @@ + + + +Microsoft DirectAnimation Multimedia Controls Samples - Sequencer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + +
    +

    DirectAnimation Controls - Sequencer Sample

    +
    +
    + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ARC.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ARC.HTM new file mode 100644 index 0000000..05f651d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ARC.HTM @@ -0,0 +1,152 @@ + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Arc
    + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-DRAWINGSURFACE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-DRAWINGSURFACE.HTM new file mode 100644 index 0000000..fe92d7d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-DRAWINGSURFACE.HTM @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-OVAL.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-OVAL.HTM new file mode 100644 index 0000000..d44a170 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-OVAL.HTM @@ -0,0 +1,152 @@ + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Oval
    + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-PIE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-PIE.HTM new file mode 100644 index 0000000..8c1a57a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-PIE.HTM @@ -0,0 +1,152 @@ + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Pie
    + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-POLYGON.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-POLYGON.HTM new file mode 100644 index 0000000..23023d1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-POLYGON.HTM @@ -0,0 +1,152 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Polygon
    + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-POLYLINE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-POLYLINE.HTM new file mode 100644 index 0000000..f5822c3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-POLYLINE.HTM @@ -0,0 +1,150 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PolyLine
    + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-RECT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-RECT.HTM new file mode 100644 index 0000000..443910b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-RECT.HTM @@ -0,0 +1,152 @@ + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Rectangle
    + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ROTATE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ROTATE.HTM new file mode 100644 index 0000000..816240c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ROTATE.HTM @@ -0,0 +1,208 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ROUNDRECT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ROUNDRECT.HTM new file mode 100644 index 0000000..559715e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-ROUNDRECT.HTM @@ -0,0 +1,153 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Round Rectangle
    + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SCALE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SCALE.HTM new file mode 100644 index 0000000..ab2b919 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SCALE.HTM @@ -0,0 +1,192 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SETGRADIENTFILL.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SETGRADIENTFILL.HTM new file mode 100644 index 0000000..44a8609 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SETGRADIENTFILL.HTM @@ -0,0 +1,151 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SetFillColor / SetFillStyle / SetGradientFill
    + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SETTEXTUREFILL.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SETTEXTUREFILL.HTM new file mode 100644 index 0000000..fe63505 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SETTEXTUREFILL.HTM @@ -0,0 +1,203 @@ + + +Texture fill + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +Tile Fill
    + + + + + +
    +Scale to Fit
    + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SOURCEURL.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SOURCEURL.HTM new file mode 100644 index 0000000..d2ad1ad --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SG-SOURCEURL.HTM @@ -0,0 +1,164 @@ + + + +Microsoft DirectAnimation Multimedia Controls Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +Move the mouse pointer over the rectangle
    and it will change into a star shape. +
    + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SGDRAW.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SGDRAW.HTM new file mode 100644 index 0000000..d5ff82e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SGDRAW.HTM @@ -0,0 +1,187 @@ + + + + +Microsoft DirectAnimation Multimedia Controls Sample - Structured Graphics utilizing DrawingSurface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Structured Graphics Sample utilizing DrawingSurface

    +
    +
    + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SGFXWZRD.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SGFXWZRD.HTM new file mode 100644 index 0000000..9f3ba1f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SGFXWZRD.HTM @@ -0,0 +1,299 @@ + + +DirectAnimation Controls - Structured Graphics and Sequencer Wizard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + +

    This page helps you to build your own rotating text logo

    + + + + + + +
    Logo Text
    + +
    +Font to be used: +


    +

    + + + Logo Text Color - must be integer value between 0 and 255 for each color. + + + + + + + +
    Red ValueGreen ValueBlue Value
    +


    + + + Distance from center point: + + + + + + + +
    X axis distanceY axis distanceInitial text rotation
    +


    + + + Rotation angles: + + + + + + + +
    X axisY axisZ axis
    +


    + + + + + + +
    Rotation Speed - seconds.milliseconds
    + + +


    + + + + + + + + + + + + + + + + \n"; + string4=" \n \n"; + string5=" \n"; + string6=" \n"; + string7=" \n"; + string8=" \n \n"; + string9=" \n \n \n "; + Seq("1").Stop(); + bigstring=string1+string2+string3+string4+string5+string6+string7+string8+string9; + document.codeframe.document.body.innerText=bigstring; + document.displayframe.document.body.innerHTML=bigstring; + Seq("1").Play(); +} + +function spinit(){ + document.displayframe.LogoSGFX.rotate(XRotate.value,YRotate.value,ZRotate.value); +} +--> + +You can copy the code from the first frame and paste it into a new file to get the logo you've created, as displayed in the second frame.


    + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SIMPLE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SIMPLE.HTM new file mode 100644 index 0000000..680e3ae --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SIMPLE.HTM @@ -0,0 +1,181 @@ + + +Simple Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    Simple Sample

    + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-3STATE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-3STATE.HTM new file mode 100644 index 0000000..94a5623 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-3STATE.HTM @@ -0,0 +1,168 @@ + + + + Microsoft DirectAnimation Controls - Sprite Multi State Buttons Sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-MOUSEOVER.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-MOUSEOVER.HTM new file mode 100644 index 0000000..7fc6753 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-MOUSEOVER.HTM @@ -0,0 +1,163 @@ + + + + +MIcrosoft DirectAnimation Controls sample - Sprite MouseMove Event + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +Feedback is displayed here... +
    + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-ONFRAMEMARKER.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-ONFRAMEMARKER.HTM new file mode 100644 index 0000000..c37d00e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPR-ONFRAMEMARKER.HTM @@ -0,0 +1,185 @@ + + +Microsoft DirectAnimation Controls - Sprite OnMarker and Frame Property sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    This example shows conditional execution, based on the Sprite's FrameMarkers.
    +
    +Mouse over the globe to start playback. Click on the globe to find out what part of the globe you selected. +
    + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPRITE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPRITE.HTM new file mode 100644 index 0000000..f30c63c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/SPRITE.HTM @@ -0,0 +1,214 @@ + + + + + Multi State Buttons + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Roll over Button to activate
    +Roll off Button to deactivate
    +Click Button to change state
    +
    + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/STAR.TXT b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/STAR.TXT new file mode 100644 index 0000000..aa94ca1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/STAR.TXT @@ -0,0 +1,5 @@ +SetLineColor(255,0,0) +SetLineSTYLE(1,3) +SetFillColor(100,0,100) +SetFillSTYLE(1) +Polygon(11, 40,10, 30,30, 10,30, 26,45, 20,60, 40,50, 60,60, 54,45, 70,30, 50,30, 40,10) diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/STRUCTUR.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/STRUCTUR.HTM new file mode 100644 index 0000000..f612710 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/STRUCTUR.HTM @@ -0,0 +1,265 @@ + + + + +Microsoft DirectAnimation Multimedia Controls Sample - Structured Graphics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Structured Graphics Sample

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/TEXT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/TEXT.HTM new file mode 100644 index 0000000..7020fe6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/TEXT.HTM @@ -0,0 +1,255 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Text

    + +
    + + + + + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/TOAST.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/TOAST.GIF new file mode 100644 index 0000000..fd5cb12 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/TOAST.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/VECTOR.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/VECTOR.HTM new file mode 100644 index 0000000..a8df79d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/DOCSAMPS/VECTOR.HTM @@ -0,0 +1,288 @@ + + +DirectAnimation SDK, JScript sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    Vectors

    + +
    + + + + + +
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX.HTM new file mode 100644 index 0000000..df8c51a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX.HTM @@ -0,0 +1,387 @@ + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Index +DirectAnimation Animated Header --Index* + +Microsoft DirectAnimation SDK +
    
    +
    +
    +

    Index

    +

    +A B C D E F G H I J K L M N O P R S T U V W X Y Z 

    +

    A

    +

    +Abs (DAStatic Functions Relevant to DANumber Objects)
    +abs (Static Methods Relevant to NumberBvr Objects)
    +Acos (DAStatic Functions Relevant to DANumber Objects)
    +acos (Static Methods Relevant to NumberBvr Objects)
    +action set (A)
    +Action Set (Sequencer Control)
    +add (BvrsToRun Methods)
    +Add (DAStatic Functions Relevant to DANumber Objects)
    +add (Static Methods Relevant to NumberBvr Objects)
    +add (Static Methods Relevant to Point2Bvr Objects)
    +add (Static Methods Relevant to Point3Bvr Objects)
    +add (Static Methods Relevant to Vector2Bvr Objects)
    +add (Static Methods Relevant to Vector3Bvr Objects)
    +AddBehaviorToRun
    +AddFrameMarker Method
    +addModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 1)
    +addModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 2)
    +addNotify
    +AddPoint2Vector
    +AddPoint3Vector
    +AddTimeMarker Method (Path Control Events)
    +AddTimeMarker Method (Sprite Control Events)
    +AddVector2
    +AddVector3
    +Album3D Java sample
    +Always (DAStatic Properties Relevant to DAEvent Objects)
    +always (Static Fields Relevant to DXMEvent Objects)
    +ambient light
    +AmbientLight (DAStatic Properties Relevant to DAGeometry Objects)
    +ambientLight (Static Fields Relevant to GeometryBvr Objects)
    +Americana Java sample
    +And (DAStatic Functions Relevant to DABoolean Objects)
    +and (Static Methods Relevant to BooleanBvr Objects)
    +AndEvent (DAStatic Functions Relevant to DAEvent Objects)
    +andEvent (Static Methods Relevant to DXMEvent Objects)
    +AniFilt DirectAnimation control sample
    +AnimateControlPositionPixel
    +AnimatedGlow JScript sample
    +AnimatedProperties JScript sample
    +AnimatedProperties VBScript sample
    +AnimateProperty (DANumber Functions)
    +AnimateProperty (DAString Functions)
    +AnnotatedLogo JScript sample
    +AntiAliasing (DAFontStyle Functions)
    +AntiAliasing (DALineStyle Functions)
    +Apple Java sample
    +AppTriggeredEvent Class
    +AppTriggeredEvent()
    +Aqua (DAStatic Properties Relevant to DAColor Objects)
    +aqua (Static Fields Relevant to ColorBvr Objects)
    +arc
    +Arc Method
    +ArcDegrees (DADrawingSurface Subroutines)
    +ArcDegrees (DAStatic Functions Relevant to DAPath2 Objects)
    +arcDegrees (Static Methods Relevant to Path2Bvr Objects)
    +ArcRadians
    +ArcRadians (DADrawingSurface Subroutines)
    +ArcRadiansAnim
    +AreBlockingImportsComplete
    +ArrayBvr Class
    +Asin (DAStatic Functions Relevant to DANumber Objects)
    +asin (Static Methods Relevant to NumberBvr Objects)
    +Async_Load Java sample
    +Async_Load JScript sample
    +At Method
    +Atan (DAStatic Functions Relevant to DANumber Objects)
    +atan (Static Methods Relevant to NumberBvr Objects)
    +Atan2 (DAStatic Functions Relevant to DANumber Objects)
    +atan2 (Static Methods Relevant to NumberBvr Objects)
    +AttachData (DAEvent Functions)
    +attachData (DXMEvent Methods)
    +AudioMixing VBScript sample
    +AutoSizeFillScale
    +AutoStart Property (Path Control Events)
    +AutoStart Property (Sprite Control Events)
    +

    B

    +

    +BackgroundImage
    +Basic JScript sample
    +Basic VBScript sample
    +BasicApplet Java sample
    +BasicDS JScript sample
    +BasicDS VBScript sample
    +Bbox2Bvr Class
    +Bbox3Bvr Class
    +Behavior Class
    +Behavior.debug
    +Black (DAStatic Properties Relevant to DAColor Objects)
    +black (Static Fields Relevant to ColorBvr Objects)
    +Blue (DAColor Properties)
    +Blue (DAStatic Properties Relevant to DAColor Objects)
    +blue (Static Fields Relevant to ColorBvr Objects)
    +Bold (DAFontStyle Functions)
    +bold (FontStyleBvr Methods)
    +BooleanBvr Class
    +BorderColor
    +BorderDashStyle
    +BorderJoinStyle
    +BorderStyle
    +BorderWidth
    +Bounce JScript sample
    +Bounce Property
    +bounding box
    +BoundingBox (DAGeometry Properties)
    +BoundingBox (DAImage Functions)
    +BoundingBox (DAPath2 Functions)
    +boundingBox (GeometryBvr Methods)
    +boundingBox (ImageBvr Methods)
    +boundingBox (Path2Bvr Methods)
    +BrowserDetect JScript sample
    +bSpline (Static Methods Relevant to NumberBvr Objects)
    +bSpline (Static Methods Relevant to Point2Bvr Objects)
    +bSpline (Static Methods Relevant to Point3Bvr Objects)
    +bSpline (Static Methods Relevant to Vector2Bvr Objects)
    +bSpline (Static Methods Relevant to Vector3Bvr Objects)
    +buildURL
    +ButtonPick Java sample
    +Buttons DirectAnimation control sample
    +ButtonSwitch VBScript sample
    +BvrCallback Interface
    +bvrHook
    +BvrsToRun Class
    +

    C

    +

    +Callback VBScript sample
    +camera
    +CameraBvr Class
    +Ceiling (DAStatic Functions Relevant to DANumber Objects)
    +ceiling (Static Methods Relevant to NumberBvr Objects)
    +Center-Based Positioning
    +Chess Application
    +CityScape Java sample
    +Clear
    +Clear Method
    +ClearMatte (DAStatic Properties Relevant to DAMatte Objects)
    +clearMatte (Static Fields Relevant to MatteBvr Objects)
    +ClientSite
    +clip
    +Clip (DAImage Functions)
    +clip (ImageBvr Methods)
    +ClipMatte
    +clipPolygon
    +ClipPolygonImage
    +Clock DirectAnimation control sample
    +Clock VBScript sample
    +Close (DAPath2 Functions)
    +close (Path2Bvr Methods)
    +Cm (Miscellaneous DAStatic Properties)
    +cm (Static Fields (Miscellaneous))
    +Coffee Java sample
    +Coffee VBScript sample
    +Collage3D JScript sample
    +color
    +Color (DAFontStyle Functions)
    +Color (DALineStyle Functions)
    +color (FontStyleBvr Methods)
    +color (LineStyleBvr Methods)
    +ColorArray JScript sample
    +ColorBvr Class
    +ColorHsl (DAStatic Functions Relevant to DAColor Objects)
    +colorHsl (Static Methods Relevant to ColorBvr Objects)
    +ColorHslAnim
    +ColorKey Property
    +ColorRgb (DAStatic Functions Relevant to DAColor Objects)
    +colorRgb (Static Methods Relevant to ColorBvr Objects)
    +ColorRgb255 (DAStatic Functions Relevant to DAColor Objects)
    +colorRgb255 (Static Methods Relevant to ColorBvr Objects)
    +ColorRgbAnim
    +ColorSwitch JScript sample
    +CompletionEvent
    +Complex DirectAnimation control sample
    +compose (Static Methods Relevant to Transform2Bvr Objects)
    +compose (Static Methods Relevant to Transform3Bvr Objects)
    +Compose2
    +Compose2Array (DAStatic Functions Relevant to DATransform2 Objects)
    +compose2Array (Static Methods Relevant to Transform2Bvr Objects)
    +Compose3
    +Compose3Array (DAStatic Functions Relevant to DATransform3 Objects)
    +compose3Array (Static Methods Relevant to Transform3Bvr Objects)
    +Concat (DAStatic Functions Relevant to DAPath2 Objects)
    +concat (Static Methods Relevant to Path2Bvr Objects)
    +concat (Static Methods Relevant to StringBvr Objects)
    +ConcatArray (DAStatic Functions Relevant to DAPath2 Objects)
    +concatArray (Static Methods Relevant to Path2Bvr Objects)
    +ConcatString
    +Cond (DAStatic Functions Relevant to DABehavior Objects)
    +cond (Static Methods Relevant to Behavior Objects)
    +Constructing Geometries
    +Container
    +CoordinateSystem Property
    +CoordsAndPaths JScript sample
    +Cos (DAStatic Functions Relevant to DANumber Objects)
    +cos (Static Methods Relevant to NumberBvr Objects)
    +Count DirectAnimation control sample
    +createBackgroundImage
    +createModel
    +crop
    +Crop (DADrawingSurface Subroutines)
    +Crop (DAImage Functions)
    +crop (ImageBvr Methods)
    +Cropping JScript sample
    +CropPoints
    +cross
    +CrossVector3
    +CubicBSplinePath (DAStatic Functions Relevant to DAPath2 Objects)
    +cubicBSplinePath (Static Methods Relevant to Path2Bvr Objects)
    +Curves VBScript sample
    +Cyan (DAStatic Properties Relevant to DAColor Objects)
    +cyan (Static Fields Relevant to ColorBvr Objects)
    +Cycler Class
    +Cycler Constructor
    +

    More entries... +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +
    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX001.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX001.HTM new file mode 100644 index 0000000..42755e1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX001.HTM @@ -0,0 +1,439 @@ + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Index +DirectAnimation Animated Header --Index* + +Microsoft DirectAnimation SDK +
    
    +
    +

    +

    Index

    +

    +A B C D E F G H I J K L M N O P R S T U V W X Y Z 

    +

    D

    +

    +DAArray
    +DAArray Class
    +DABbox2 Class
    +DABbox3 Class
    +DABehavior Class
    +DABoolean
    +DABoolean Class
    +DACamera Class
    +DAColor Class
    +DADashStyle Class
    +DADrawingSurface Class
    +DAEndStyle Class
    +DAEvent Class
    +DAFalse
    +DAFontStyle Class
    +DAGeometry Class
    +DAImage Class
    +DAImportationResult Class
    +DAJoinStyle Class
    +DALineStyle Class
    +DAMatte Class
    +DAMicrophone Class
    +DAMontage Class
    +DancingTrapzoids VBScript sample
    +DANumber
    +DANumber Class
    +DAPair Class
    +DAPath2 Class
    +DAPickableResult Class
    +DAPoint2 Class
    +DAPoint3 Class
    +Dash (DALineStyle Functions)
    +dash (LineStyleBvr Methods)
    +DashStyleBvr Class
    +DashStyleDashed (DAStatic Properties Relevant to DADashStyle Objects)
    +dashStyleDashed (Static Fields Relevant to DashStyleBvr Objects)
    +DashStyleSolid (DAStatic Properties Relevant to DADashStyle Objects)
    +dashStyleSolid (Static Fields Relevant to DashStyleBvr Objects)
    +DASound Class
    +DAStatic Functions Relevant to DAArray Objects
    +DAStatic Functions Relevant to DABehavior Objects
    +DAStatic Functions Relevant to DABoolean Objects
    +DAStatic Functions Relevant to DACamera Objects
    +DAStatic Functions Relevant to DAColor Objects
    +DAStatic Functions Relevant to DAEvent Objects
    +DAStatic Functions Relevant to DAFontStyle Objects
    +DAStatic Functions Relevant to DAGeometry Objects
    +DAStatic Functions Relevant to DAImage Objects
    +DAStatic Functions Relevant to DAMatte Objects
    +DAStatic Functions Relevant to DAMontage Objects
    +DAStatic Functions Relevant to DANumber Objects
    +DAStatic Functions Relevant to DAPath2 Objects
    +DAStatic Functions Relevant to DAPoint2 Objects
    +DAStatic Functions Relevant to DAPoint3 Objects
    +DAStatic Functions Relevant to DASound Objects
    +DAStatic Functions Relevant to DAString Objects
    +DAStatic Functions Relevant to DATransform2 Objects
    +DAStatic Functions Relevant to DATransform3 Objects
    +DAStatic Functions Relevant to DATuple Objects
    +DAStatic Functions Relevant to DAVector2 Objects
    +DAStatic Functions Relevant to DAVector3 Objects
    +DAStatic Functions Relevent to DADrawingSurface Objects
    +DAStatic Properties Relevant to DABoolean Objects
    +DAStatic Properties Relevant to DAColor Objects
    +DAStatic Properties Relevant to DADashStyle Objects
    +DAStatic Properties Relevant to DAEndStyle Objects
    +DAStatic Properties Relevant to DAEvent Objects
    +DAStatic Properties Relevant to DAFontStyle Objects
    +DAStatic Properties Relevant to DAGeometry Objects
    +DAStatic Properties Relevant to DAImage Objects
    +DAStatic Properties Relevant to DAJoinStyle Objects
    +DAStatic Properties Relevant to DALineStyle Objects
    +DAStatic Properties Relevant to DAMatte Objects
    +DAStatic Properties Relevant to DAMicrophone Objects
    +DAStatic Properties Relevant to DAMontage Objects
    +DAStatic Properties Relevant to DANumber Objects
    +DAStatic Properties Relevant to DAPoint2 Objects
    +DAStatic Properties Relevant to DAPoint3 Objects
    +DAStatic Properties Relevant to DASound Objects
    +DAStatic Properties Relevant to DATransform2 Objects
    +DAStatic Properties Relevant to DATransform3 Objects
    +DAStatic Properties Relevant to DAVector2 Objects
    +DAStatic Properties Relevant to DAVector3 Objects
    +DAStatics Class
    +DAString
    +DAString Class
    +Data
    +DATransform2 Class
    +DATransform3 Class
    +DATrue
    +DATuple
    +DATuple Class
    +DAUserData Class
    +DAVector2 Class
    +DAVector3 Class
    +DAViewerControl Class
    +debug (Java Reference: Behavior Class: Behavior Methods: 1)
    +debug (Java Reference: Behavior Class: Behavior Methods: 2)
    +debug (Java Reference: Behavior Class: Behavior Methods: 3)
    +debug (Java Reference: Behavior Class: Behavior Methods: 4)
    +DefaultFont (DAStatic Properties Relevant to DAFontStyle Objects)
    +defaultFont (Static Fields Relevant to FontStyleBvr Objects)
    +DefaultLineStyle (DAStatic Properties Relevant to DALineStyle Objects)
    +defaultLineStyle (Static Fields Relevant to LineStyleBvr Objects)
    +DefaultMicrophone (DAStatic Properties Relevant to DAMicrophone Objects)
    +defaultMicrophone (Static Fields Relevant to MicrophoneBvr Objects)
    +degreesToRadians
    +depth (CameraBvr Methods)
    +Depth (DACamera Functions)
    +DepthAnim
    +depthResolution (CameraBvr Methods)
    +DepthResolution (DACamera Functions)
    +DepthResolutionAnim
    +Derivative (DAStatic Functions Relevant to DANumber Objects)
    +derivative (Static Methods Relevant to NumberBvr Objects)
    +derivative (Static Methods Relevant to Point2Bvr Objects)
    +derivative (Static Methods Relevant to Point3Bvr Objects)
    +derivative (Static Methods Relevant to Vector2Bvr Objects)
    +derivative (Static Methods Relevant to Vector3Bvr Objects)
    +DerivativePoint2
    +DerivativePoint3
    +DerivativeVector2
    +DerivativeVector3
    +detach
    +Detail (DALineStyle Functions)
    +detail (LineStyleBvr Methods)
    +detectability
    +DetectableEmptyImage (DAStatic Properties Relevant to DAImage Objects)
    +detectableEmptyImage (Static Fields Relevant to ImageBvr Objects)
    +difference
    +DifferenceMatte
    +DiffuseColor (DAGeometry Functions)
    +diffuseColor (GeometryBvr Methods)
    +Direction Property
    +directional light
    +DirectionalLight (DAStatic Properties Relevant to DAGeometry Objects)
    +directionalLight (Static Fields Relevant to GeometryBvr Objects)
    +distance (Static Methods Relevant to Point2Bvr Objects)
    +distance (Static Methods Relevant to Point3Bvr Objects)
    +DistancePoint2
    +DistancePoint3
    +distanceSquared (Static Methods Relevant to Point2Bvr Objects)
    +distanceSquared (Static Methods Relevant to Point3Bvr Objects)
    +DistanceSquaredPoint2
    +DistanceSquaredPoint3
    +Div (DAStatic Functions Relevant to DANumber Objects)
    +Div (DAVector2 Functions)
    +Div (DAVector3 Functions)
    +div (Static Methods Relevant to NumberBvr Objects)
    +div (Vector2Bvr Class: Vector2Bvr Methods)
    +div (Vector3Bvr Class: Vector3Bvr Methods)
    +DivAnim (DAVector2 Functions)
    +DivAnim (DAVector3 Functions)
    +dot (Static Methods Relevant to Vector2Bvr Objects)
    +dot (Static Methods Relevant to Vector3Bvr Objects)
    +DotVector2
    +DotVector3
    +Drag
    +DragDrop
    +DragIcon
    +DragMode
    +DragOver
    +Draw (DAPath2 Functions)
    +draw (Path2Bvr Methods)
    +Drawing Surface
    +DrawingSurface Property
    +DrawPath
    +duration (Behavior Methods)
    +Duration (DABehavior Functions)
    +Duration (DAImportationResult Properties)
    +Duration Property
    +DurationAnim
    +DXMApplet Class
    +DXMApplet Constructor
    +DXMCanvas Class
    +DXMCanvas Constructor
    +DXMEvent Class
    +DXMEvent Constructor
    +DXMException Class
    +DXMException Constructor
    +DxMLogoDots JScript sample
    +DxMLogoGeo JScript sample
    +

    E

    +

    +Empty Images
    +EmptyGeometry (DAStatic Properties Relevant to DAGeometry Objects)
    +emptyGeometry (Static Fields Relevant to GeometryBvr Objects)
    +EmptyImage (DAStatic Properties Relevant to DAImage Objects)
    +emptyImage (Static Fields Relevant to ImageBvr Objects)
    +EmptyLineStyle
    +EmptyMontage (DAStatic Properties Relevant to DAMontage Objects)
    +emptyMontage (Static Fields Relevant to MontageBvr Objects)
    +Encarta Java sample
    +End (DALineStyle Functions)
    +end (LineStyleBvr Methods)
    +EndStyleBvr Class
    +EndStyleFlat (DAStatic Properties Relevant to DAEndStyle Objects)
    +endStyleFlat (Static Fields Relevant to EndStyleBvr Objects)
    +EndStyleRound (DAStatic Properties Relevant to DAEndStyle Objects)
    +endStyleRound (Static Fields Relevant to EndStyleBvr Objects)
    +EndStyleSquare (DAStatic Properties Relevant to DAEndStyle Objects)
    +endStyleSquare (Static Fields Relevant to EndStyleBvr Objects)
    +EQ (DAStatic Functions Relevant to DANumber Objects)
    +eq (Static Methods Relevant to NumberBvr Objects)
    +ErrorAndWarningReceiver Interface
    +EventCallbackObject Interface
    +Exp (DAStatic Functions Relevant to DANumber Objects)
    +exp (Static Methods Relevant to NumberBvr Objects)
    +ExtendedApplet Java sample
    +ExtentHeight, ExtentWidth, ExtentLeft, ExtentTop Properties
    +extract (Behavior Methods)
    +extract (BooleanBvr Methods)
    +Extract (DABoolean Functions)
    +Extract (DANumber Functions)
    +Extract (DAString Functions)
    +extract (NumberBvr Methods)
    +extract (StringBvr Methods)
    +Eyes JScript sample
    +

    F

    +

    +falseBvr
    +Family (DAFontStyle Functions)
    +family (FontStyleBvr Methods)
    +FamilyAnim
    +FifteenPuzzle Java sample
    +Fill (DAPath2 Functions)
    +fill (Path2Bvr Methods)
    +FillColor
    +FillImage
    +FillMatte (DAStatic Functions Relevant to DAMatte Objects)
    +fillMatte (Static Methods Relevant to MatteBvr Objects)
    +FillPath
    +FillSpline Method
    +FillStyle
    +FillTexture
    +Filter DirectAnimation control sample
    +FinalFrame Property
    +First
    +FixedFillScale
    +Floor (DAStatic Functions Relevant to DANumber Objects)
    +floor (Static Methods Relevant to NumberBvr Objects)
    +FollowPath (DAStatic Functions Relevant to DATransform2 Objects)
    +followPath (Static Methods Relevant to Transform2Bvr Objects)
    +FollowPathAngle (DAStatic Functions Relevant to DATransform2 Objects)
    +followPathAngle (Static Methods Relevant to Transform2Bvr Objects)
    +FollowPathAngleEval
    +FollowPathAngleUpright (DAStatic Functions Relevant to DATransform2 Objects)
    +followPathAngleUpright (Static Methods Relevant to Transform2Bvr Objects)
    +FollowPathAngleUprightEval
    +FollowPathEval
    +Font (DADrawingSurface Subroutines)
    +Font (DAStatic Functions Relevant to DAFontStyle Objects)
    +font (Static Methods Relevant to FontStyleBvr Objects)
    +FontAnim
    +FontStyle
    +FontStyleBvr Class
    +Foot (Miscellaneous DAStatic Properties)
    +foot (Static Fields (Miscellaneous))
    +Frame Property
    +FrameMap Property
    +FrameSeek Method
    +Fuchsia (DAStatic Properties Relevant to DAColor Objects)
    +fuchsia (Static Fields Relevant to ColorBvr Objects)
    +

    More entries... +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +
    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX002.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX002.HTM new file mode 100644 index 0000000..7261288 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX002.HTM @@ -0,0 +1,500 @@ + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Index +DirectAnimation Animated Header --Index* + +Microsoft DirectAnimation SDK +
    
    +
    +

    +

    Index

    +

    +A B C D E F G H I J K L M N O P R S T U V W X Y Z 

    +

    G

    +

    +Gain (DASound Functions)
    +gain (SoundBvr Methods)
    +Gain (Using Sound)
    +GainAnim
    +GeoApplet1 Java sample
    +GeoApplet2 Java sample
    +GeoImage Java sample
    +geometry
    +Geometry (DAImportationResult Properties)
    +Geometry (DAPickableResult Properties)
    +Geometry Coordinate System
    +Geometry Java sample
    +Geometry JScript sample
    +GeometryBvr Class
    +GeometryBvr.diffuseColor(ColorBvr col)
    +GeometryBvr.lightAttenuation(NumberBvr const, NumberBvr linear, NumberBvr quadratic)
    +GeometryBvr.lightColor(ColorBvr col)
    +GeometryBvr.opacity((NumberBvr opac)
    +GeometryBvr.texture(ImageBvr image)
    +GeometryDrag Java sample
    +getBlue
    +getBoolean
    +getBvr (Cycler Methods)
    +getBvr (ModifiableBehavior Methods)
    +getBvr (PropertyDispatcher Methods)
    +getCanvas
    +GetClassName
    +getCurrentTickTime (DXMCanvas Methods from Viewer Interface)
    +getCurrentTickTime (Viewer Methods)
    +getCurrentTime (DXMCanvas Methods from Viewer Interface)
    +getCurrentTime (Viewer Methods)
    +getDouble
    +getErrorCode
    +getErrorString
    +getFirst
    +getGeometryBvr
    +getGreen
    +getHue
    +getImage
    +getImageBvr
    +getImportBase
    +getInt
    +getLightness
    +getMax (Bbox2Bvr Methods)
    +getMax (Bbox3Bvr Methods)
    +getMin (Bbox2Bvr Methods)
    +getMin (Bbox3Bvr Methods)
    +getModel (DXMApplet Methods)
    +getModel (DXMCanvas Methods)
    +getPickEvent (PickableGeometry Methods)
    +getPickEvent (PickableImage Methods)
    +getPolarCoordAngle (Point2Bvr Methods)
    +getPolarCoordAngle (Vector2Bvr Methods)
    +getPolarCoordLength
    +getPolarCoordLength()
    +getPreferences (DXMCanvas Methods from Viewer Interface)
    +getPreferences (Viewer Methods)
    +getRed
    +getSaturation
    +getSecond
    +getSound
    +getSphericalCoordLength (Point3Bvr Methods)
    +getSphericalCoordLength (Vector3Bvr Methods)
    +getSphericalCoordXYAngle (Point3Bvr Methods)
    +getSphericalCoordXYAngle (Vector3Bvr Methods)
    +getSphericalCoordYZAngle (Point3Bvr Methods)
    +getSphericalCoordYZAngle (Vector3Bvr Methods)
    +getString
    +getVersionString
    +getX (Point2Bvr Methods)
    +getX (Point3Bvr Methods)
    +getX (Vector2Bvr Methods)
    +getX (Vector3Bvr Methods)
    +getY (Point2Bvr Methods)
    +getY (Point3Bvr Methods)
    +getY (Vector2Bvr Methods)
    +getY (Vector3Bvr Methods)
    +getZ (Point3Bvr Methods)
    +getZ (Vector3Bvr Methods)
    +GlobalTime (DAStatic Properties Relevant to DANumber Objects)
    +globalTime (Static Fields Relevant to NumberBvr Objects)
    +Globe DirectAnimation control sample
    +GotFocus
    +grabBackgroundImageComPtr
    +grabImageComPtr
    +grabSoundComPtr
    +grabViewComPtr
    +Gradient Fill Images
    +GradientExtent
    +GradientExtentPoints
    +GradientHorizontal (DAStatic Functions Relevant to DAImage Objects)
    +gradientHorizontal (Static Methods Relevant to ImageBvr Objects)
    +GradientHorizontalAnim
    +GradientPolygon (DAStatic Functions Relevant to DAImage Objects)
    +gradientPolygon (Static Methods Relevant to ImageBvr Objects)
    +GradientRolloffPower
    +GradientRolloffPowerAnim
    +GradientShape
    +GradientSquare (DAStatic Functions Relevant to DAImage Objects)
    +gradientSquare (Static Methods Relevant to ImageBvr Objects)
    +Gray (DAStatic Properties Relevant to DAColor Objects)
    +gray (Static Fields Relevant to ColorBvr Objects)
    +Green (DAColor Properties)
    +Green (DAStatic Properties Relevant to DAColor Objects)
    +green (Static Fields Relevant to ColorBvr Objects)
    +GT (DAStatic Functions Relevant to DANumber Objects)
    +gt (Static Methods Relevant to NumberBvr Objects)
    +GTE (DAStatic Functions Relevant to DANumber Objects)
    +gte (Static Methods Relevant to NumberBvr Objects)
    +

    H

    +

    +handleError
    +handleEvent
    +handleTickError
    +handleTickWarning
    +handleWarning
    +HatchBackwardDiagonal (DAStatic Functions Relevant to DAImage Objects)
    +hatchBackwardDiagonal (Static Methods Relevant to ImageBvr Objects)
    +HatchBackwardDiagonalAnim
    +HatchCross (DAStatic Functions Relevant to DAImage Objects)
    +hatchCross (Static Methods Relevant to ImageBvr Objects)
    +HatchCrossAnim
    +HatchDiagonalCross (DAStatic Functions Relevant to DAImage Objects)
    +hatchDiagonalCross (Static Methods Relevant to ImageBvr Objects)
    +HatchDiagonalCrossAnim
    +HatchFillTransparent
    +HatchForwardDiagonal (DAStatic Functions Relevant to DAImage Objects)
    +hatchForwardDiagonal (Static Methods Relevant to ImageBvr Objects)
    +HatchForwardDiagonalAnim
    +HatchHorizontal (DAStatic Functions Relevant to DAImage Objects)
    +hatchHorizontal (Static Methods Relevant to ImageBvr Objects)
    +HatchHorizontalAnim
    +HatchVertical (DAStatic Functions Relevant to DAImage Objects)
    +hatchVertical (Static Methods Relevant to ImageBvr Objects)
    +HatchVerticalAnim
    +Height
    +Hello Java sample
    +HelloBvr Java sample
    +HelloCycle Java sample
    +HelloRBvr Java sample
    +HelloWorld JScript sample
    +HelloWorld VBScript sample
    +HelloWorldJS JScript sample
    +HelpContextID
    +hide
    +hideModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 1)
    +hideModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 2)
    +HighQuality Property
    +Hook
    +HorizontalFillScale
    +Hue
    +

    I

    +

    +IDABvrHook Class
    +IDASite Class
    +IdentityTransform2 (DAStatic Properties Relevant to DATransform2 Objects)
    +identityTransform2 (Static Fields Relevant to Transform2Bvr Objects)
    +IdentityTransform3 (DAStatic Properties Relevant to DATransform3 Objects)
    +identityTransform3 (Static Fields Relevant to Transform3Bvr Objects)
    +IE4_Windowless Java sample
    +image
    +Image (DADrawingSurface Properties)
    +Image (DAImportationResult Properties)
    +Image (DAPickableResult Properties)
    +Image (DAViewerControl Properties)
    +Image Coordinate System
    +Image Java sample
    +Image JScript sample
    +Image Property
    +Image Property (Sprite Control Events)
    +ImageBvr Class
    +ImageBvr.opacity(NumberBvr opac)
    +ImageDrag Java sample
    +ImageMontage (DAStatic Functions Relevant to DAMontage Objects)
    +imageMontage (Static Methods Relevant to MontageBvr Objects)
    +ImageMontageAnim
    +ImageOsc sample
    +Import Java sample
    +ImportDirectDrawSurface
    +ImportGeometry (DAStatic Functions Relevant to DAGeometry Objects)
    +importGeometry (Java Reference: Static Methods Relevant to GeometryBvr Objects: 1)
    +importGeometry (Java Reference: Static Methods Relevant to GeometryBvr Objects: 2)
    +ImportGeometryAsync
    +ImportImage (DAStatic Functions Relevant to DAImage Objects)
    +importImage (Java Reference: Static Methods Relevant to ImageBvr Objects: 1)
    +importImage (Java Reference: Static Methods Relevant to ImageBvr Objects: 2)
    +ImportImageAsync
    +ImportImageAsyncColorKey
    +ImportImageColorKey (DAStatic Functions Relevant to DAImage Objects)
    +importImageColorKey (Java Reference: Static Methods Relevant to ImageBvr Objects: 1)
    +importImageColorKey (Java Reference: Static Methods Relevant to ImageBvr Objects: 2)
    +ImportMovie (DAStatic Functions Relevant to DAImage Objects)
    +importMovie (Java Reference: Static Methods Relevant to ImageBvr Objects: 1)
    +importMovie (Java Reference: Static Methods Relevant to ImageBvr Objects: 2)
    +ImportMovieAsync
    +ImportSound (DAStatic Functions Relevant to DASound Objects)
    +importSound (Java Reference: Static Methods Relevant to SoundBvr Objects: 1)
    +importSound (Java Reference: Static Methods Relevant to SoundBvr Objects: 2)
    +ImportSoundAsync
    +Inch (Miscellaneous DAStatic Properties)
    +inch (Static Fields (Miscellaneous))
    +Index
    +init (Behavior Methods)
    +Init (DABehavior Functions)
    +InitialFrame Property
    +Integral (DAStatic Functions Relevant to DANumber Objects)
    +integral (Static Methods Relevant to NumberBvr Objects)
    +integral (Static Methods Relevant to Vector2Bvr Objects)
    +integral (Static Methods Relevant to Vector3Bvr Objects)
    +IntegralVector2
    +IntegralVector3
    +Interpolate (DAStatic Functions Relevant to DANumber Objects)
    +interpolate (Static Methods Relevant to NumberBvr Objects)
    +InterpolateAnim
    +intersect
    +IntersectMatte
    +Inverse (DATransform2 Functions)
    +Inverse (DATransform3 Functions)
    +inverse (Transform2Bvr Methods)
    +inverse (Transform3Bvr Methods)
    +invoke
    +IsReady
    +IsSingular (DATransform2 Properties)
    +IsSingular (DATransform3 Properties)
    +isSingular (Transform2Bvr Methods)
    +isSingular (Transform3Bvr Methods)
    +Italic (DAFontStyle Functions)
    +italic (FontStyleBvr Methods)
    +

    J

    +

    +Java Class/Methods Summary
    +Java Defaults
    +Java Event Data
    +Java Hierarchy Chart
    +Java Reference Introduction
    +Join (DALineStyle Functions)
    +join (LineStyleBvr Methods)
    +JoinStyleBevel (DAStatic Properties Relevant to DAJoinStyle Objects)
    +joinStyleBevel (Static Fields Relevant to JoinStyleBvr Objects)
    +JoinStyleBvr Class
    +JoinStyleMiter (DAStatic Properties Relevant to DAJoinStyle Objects)
    +joinStyleMiter (Static Fields Relevant to JoinStyleBvr Objects)
    +JoinStyleRound (DAStatic Properties Relevant to DAJoinStyle Objects)
    +joinStyleRound (Static Fields Relevant to JoinStyleBvr Objects)
    +JumpURL Java sample
    +JumpURL JScript sample
    +

    K

    +

    +KeyDown (DAStatic Functions Relevant to DAEvent Objects)
    +keyDown (Static Methods Relevant to DXMEvent Objects)
    +KeyFrame Method
    +KeyState (DAStatic Functions Relevant to DABoolean Objects)
    +keyState (Static Methods Relevant to BooleanBvr Objects)
    +KeyUp (DAStatic Functions Relevant to DAEvent Objects)
    +keyUp (Static Methods Relevant to DXMEvent Objects)
    +

    L

    +

    +Left
    +LeftButtonDown (DAStatic Properties Relevant to DAEvent Objects)
    +leftButtonDown (Static Fields Relevant to DXMEvent Objects)
    +LeftButtonState (DAStatic Properties Relevant to DABoolean Objects)
    +leftButtonState (Static Fields Relevant to BooleanBvr Objects)
    +LeftButtonUp (DAStatic Properties Relevant to DAEvent Objects)
    +leftButtonUp (Static Fields Relevant to DXMEvent Objects)
    +length (ArrayBvr Methods)
    +Length (DAArray Functions)
    +Length (DATuple Functions)
    +Length (DAVector2 Properties)
    +Length (DAVector3 Properties)
    +length (TupleBvr Methods)
    +length (Vector2Bvr Methods)
    +length (Vector3Bvr Methods)
    +LengthSquared (DAVector2 Properties)
    +LengthSquared (DAVector3 Properties)
    +lengthSquared (Vector2Bvr Methods)
    +lengthSquared (Vector3Bvr Methods)
    +Library Property
    +Library Property (Path Control Events)
    +Library Property (Sprite Control Events)
    +light
    +LightAttenuation (DAGeometry Functions)
    +lightAttenuation (GeometryBvr Methods)
    +LightAttenuationAnim
    +LightBox JScript sample
    +LightBoxBG JScript sample
    +LightColor (DAGeometry Functions)
    +lightColor (GeometryBvr Methods)
    +Lighthouse Java sample
    +Lightness
    +Lime (DAStatic Properties Relevant to DAColor Objects)
    +lime (Static Fields Relevant to ColorBvr Objects)
    +Line (DADrawingSurface Subroutines)
    +Line (DAStatic Functions Relevant to DAPath2 Objects)
    +line (Static Methods Relevant to Path2Bvr Objects)
    +lineAntialiasing
    +LineColor
    +LineDashStyle
    +LineEndStyle
    +LineJoinStyle
    +LinePoints
    +LineStyle
    +LineStyleBvr Class
    +LineStyleBvr.color(ColorBvr color)
    +LineStyleBvr.dash(DashStyleBvr ds)
    +LineStyleBvr.detail()
    +LineStyleBvr.end(EndStyleBvr es)
    +LineStyleBvr.join(JoinStyleBvr js)
    +LineWidth
    +Ln (DAStatic Functions Relevant to DANumber Objects)
    +ln (Static Methods Relevant to NumberBvr Objects)
    +LocalContextImage
    +LocalTime (DAStatic Properties Relevant to DANumber Objects)
    +localTime (Static Fields Relevant to NumberBvr Objects)
    +Log10 (DAStatic Functions Relevant to DANumber Objects)
    +log10 (Static Methods Relevant to NumberBvr Objects)
    +LookAtFrom (DAStatic Functions Relevant to DATransform3 Objects)
    +lookAtFrom (Static Methods Relevant to Transform3Bvr Objects)
    +Loop (DASound Functions)
    +loop (SoundBvr Methods)
    +LostFocus
    +LT (DAStatic Functions Relevant to DANumber Objects)
    +lt (Static Methods Relevant to NumberBvr Objects)
    +LTE (DAStatic Functions Relevant to DANumber Objects)
    +lte (Static Methods Relevant to NumberBvr Objects)
    +

    More entries... +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +
    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX003.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX003.HTM new file mode 100644 index 0000000..35a862a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX003.HTM @@ -0,0 +1,365 @@ + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Index +DirectAnimation Animated Header --Index* + +Microsoft DirectAnimation SDK +
    
    +
    +

    +

    Index

    +

    +A B C D E F G H I J K L M N O P R S T U V W X Y Z 

    +

    M

    +

    +Magenta (DAStatic Properties Relevant to DAColor Objects)
    +magenta (Static Fields Relevant to ColorBvr Objects)
    +Magnify Java sample
    +MapToUnitSquare (DAImage Functions)
    +mapToUnitSquare (ImageBvr Methods)
    +Maroon (DAStatic Properties Relevant to DAColor Objects)
    +maroon (Static Fields Relevant to ColorBvr Objects)
    +MatteBvr Class
    +Max (DABbox2 Properties)
    +Max (DABbox3 Properties)
    +MaximumRate Property
    +Mega DirectAnimation control sample
    +Meter (Miscellaneous DAStatic Properties)
    +meter (Static Fields (Miscellaneous))
    +Meter-Based Space
    +MeterCoords JScript sample
    +MeterLibrary
    +MicrophoneBvr
    +MicrophoneBvr Class
    +Min (DABbox2 Properties)
    +Min (DABbox3 Properties)
    +Miscellaneous DAStatic Functions
    +Miscellaneous DAStatic Properties
    +Mix (DAStatic Functions Relevant to DASound Objects)
    +mix (Static Methods Relevant to SoundBvr Objects)
    +MixArray (DAStatic Functions Relevant to DASound Objects)
    +mixArray (Static Methods Relevant to SoundBvr Objects)
    +Mm (Miscellaneous DAStatic Properties)
    +mm (Static Fields (Miscellaneous))
    +Mod (DAStatic Functions Relevant to DANumber Objects)
    +mod (Static Methods Relevant to NumberBvr Objects)
    +Model Class
    +Model Constructor
    +ModelMakerApplet Class
    +ModelMakerApplet Constructor
    +ModifiableBehavior
    +ModifiableBehavior Class
    +ModifiableBehavior Constructor
    +MontageBvr Class
    +Montages
    +MouseEventsEnabled
    +MouseEventsEnabled Property
    +MouseEventsEnabled Property and Mouse Events
    +MousePosition (DAStatic Properties Relevant to DAPoint2 Objects)
    +mouseposition (Static Fields Relevant to Point2Bvr Objects)
    +Move
    +Movie Java sample
    +Movie JScript sample
    +Movie VBScript sample
    +MsCubes Java sample
    +MsCubes VBScript sample
    +MSWorldLogo JScript sample
    +Mul (DAStatic Functions Relevant to DANumber Objects)
    +Mul (DAVector2 Functions)
    +Mul (DAVector3 Functions)
    +mul (Static Methods Relevant to NumberBvr Objects)
    +mul (Vector2Bvr Class: Vector2Bvr Methods)
    +mul (Vector3Bvr Class: Vector3Bvr Methods)
    +MulAnim (DAVector2 Functions)
    +MulAnim (DAVector3 Functions)
    +

    N

    +

    +Name
    +Navy (DAStatic Properties Relevant to DAColor Objects)
    +navy (Static Fields Relevant to ColorBvr Objects)
    +NE (DAStatic Functions Relevant to DANumber Objects)
    +ne (Static Methods Relevant to NumberBvr Objects)
    +Neg (DAStatic Functions Relevant to DANumber Objects)
    +neg (Static Methods Relevant to NumberBvr Objects)
    +neg (Static Methods Relevant to Vector2Bvr Objects)
    +neg (Static Methods Relevant to Vector3Bvr Objects)
    +NegVector2
    +NegVector3
    +Never (DAStatic Properties Relevant to DAEvent Objects)
    +never (Static Fields Relevant to DXMEvent Objects)
    +NewDrawingSurface
    +newUninit
    +newUninitBvr (ArrayBvr Methods)
    +newUninitBvr (Bbox2Bvr Methods)
    +newUninitBvr (CameraBvr Methods)
    +newUninitBvr (ColorBvr Methods)
    +newUninitBvr (DXMEvent Methods)
    +newUninitBvr (EndStyleBvr Methods)
    +newUninitBvr (FontStyleBvr Methods)
    +newUninitBvr (GeometryBvr Methods)
    +newUninitBvr (ImageBvr Methods)
    +newUninitBvr (JoinStyleBvr Methods)
    +newUninitBvr (LineStyleBvr Methods)
    +newUninitBvr (MatteBvr Methods)
    +newUninitBvr (MicrophoneBvr Methods)
    +newUninitBvr (MontageBvr Methods)
    +newUninitBvr (NumberBvr Methods)
    +newUninitBvr (Path2Bvr Methods)
    +newUninitBvr (Point2Bvr Methods)
    +newUninitBvr (Point3Bvr Methods)
    +newUninitBvr (SoundBvr Methods)
    +newUninitBvr (StringBvr Methods)
    +newUninitBvr (Transform2Bvr Methods)
    +newUninitBvr (Transform3Bvr Methods)
    +newUninitBvr (Vector2Bvr Methods)
    +newUninitBvr (Vector3Bvr Methods)
    +newUninitBvr(); (Bbox3Bvr Methods)
    +newUninitBvr(); (BooleanBvr Methods)
    +newUninitBvr(); (DashStyleBvr Methods)
    +Normalize (DAVector2 Functions)
    +Normalize (DAVector3 Functions)
    +normalize (Vector2Bvr Methods)
    +normalize (Vector3Bvr Methods)
    +Not (DAStatic Functions Relevant to DABoolean Objects)
    +not (Static Methods Relevant to BooleanBvr Objects)
    +NotEvent (DAStatic Functions Relevant to DAEvent Objects)
    +notEvent (Static Methods Relevant to DXMEvent Objects)
    +notify (BvrCallback Methods)
    +Notify (DAEvent Functions)
    +Notify (IDABvrHook Functions)
    +notify (UntilNotifier Methods)
    +notifyEvent
    +nth (ArrayBvr Methods)
    +Nth (DATuple Functions)
    +nth (TupleBvr Methods)
    +NthAnim
    +NumberBSpline
    +NumberBvr Class
    +NumFrames Property
    +NumFramesAcross Property
    +NumFramesDown Property
    +

    O

    +

    +Object
    +Olive (DAStatic Properties Relevant to DAColor Objects)
    +olive (Static Fields Relevant to ColorBvr Objects)
    +onclick Event
    +ondblclick Event
    +onframeseek Event
    +oninit Event
    +onmarker Event (Path Control Events)
    +onmarker Event (Sprite Control Events)
    +onmedialoaded Event
    +onmousedown Event
    +onmousemove Event
    +onmouseout Event
    +onmouseover Event
    +onmouseup Event
    +onpause Event (Action Set)
    +onpause Event (Path Control Events)
    +onpause Event (Sprite Control Events)
    +onplay Event (Action Set)
    +onplay Event (Path Control Events)
    +onplay Event (Sprite Control Events)
    +onplaymarker Event (Path Control Events)
    +onplaymarker Event (Sprite Control Events)
    +onseek Event (Action Set)
    +onseek Event (Path Control Events)
    +onseek Event (Sprite Control Events)
    +onstop Event (Action Set)
    +onstop Event (Path Control Events)
    +onstop Event (Sprite Control Events)
    +opacity
    +Opacity (DADrawingSurface Subroutines)
    +Opacity (DAGeometry Functions)
    +Opacity (DAImage Functions)
    +opacity (GeometryBvr Methods)
    +opacity (ImageBvr Methods)
    +OpacityAnim (DADrawingSurface Subroutines)
    +OpacityAnim (DAGeometry Functions)
    +OpacityAnim (DAImage Functions)
    +OpaqueMatte (DAStatic Properties Relevant to DAMatte Objects)
    +opaqueMatte (Static Fields Relevant to MatteBvr Objects)
    +Operations on Geometries
    +Or (DAStatic Functions Relevant to DABoolean Objects)
    +or (Static Methods Relevant to BooleanBvr Objects)
    +OrEvent (DAStatic Functions Relevant to DAEvent Objects)
    +orEvent (Static Methods Relevant to DXMEvent Objects)
    +Origin2 (DAStatic Properties Relevant to DAPoint2 Objects)
    +origin2 (Static Fields Relevant to Point2Bvr Objects)
    +Origin3 (DAStatic Properties Relevant to DAPoint3 Objects)
    +origin3 (Static Fields Relevant to Point3Bvr Objects)
    +Oval (DADrawingSurface Subroutines)
    +Oval (DAStatic Functions Relevant to DAPath2 Objects)
    +oval (Static Methods Relevant to Path2Bvr Objects)
    +Oval Method
    +Oval Method (Path Control Events)
    +OvalAnim
    +Overlay (DAStatic Functions Relevant to DAImage Objects)
    +overlay (O)
    +overlay (Static Methods Relevant to ImageBvr Objects)
    +OverlayArray (DAStatic Functions Relevant to DAImage Objects)
    +overlayArray (Static Methods Relevant to ImageBvr Objects)
    +OverlayImage
    +

    More entries... +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +
    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX004.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX004.HTM new file mode 100644 index 0000000..028510c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX004.HTM @@ -0,0 +1,419 @@ + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Index +DirectAnimation Animated Header --Index* + +Microsoft DirectAnimation SDK +
    
    +
    +

    +

    Index

    +

    +A B C D E F G H I J K L M N O P R S T U V W X Y Z 

    +

    P

    +

    +paint
    +pairBvr
    +PairObject Class
    +PairObject Constructor
    +Pan (DASound Functions)
    +pan (SoundBvr Methods)
    +Pan (Using Sound)
    +PanAnim
    +ParallelCamera (DAStatic Functions Relevant to DACamera Objects)
    +parallelCamera (Static Methods Relevant to CameraBvr Objects)
    +ParallelCameraAnim
    +ParallelTransform2 (DATransform3 Functions)
    +parallelTransform2 (Transform3Bvr Methods)
    +Parent
    +path
    +Path Control
    +Path Control Events
    +Path Control Methods
    +Path Control Properties
    +Path DirectAnimation control sample
    +Path2Bvr Class
    +Path2Bvr fill(ImageBvr im, LineStyleBvr ls)
    +Path2Bvr.draw(LineStyleBvr ls)
    +Pause Method (Action Set)
    +Pause Method (Path Control Events)
    +Pause Method (Sprite Control Events)
    +PerspectiveCamera (DAStatic Functions Relevant to DACamera Objects)
    +perspectiveCamera (Static Methods Relevant to CameraBvr Objects)
    +PerspectiveCameraAnim
    +PerspectiveImg JScript sample
    +Phase (DASound Functions)
    +phase (SoundBvr Methods)
    +PhaseAnim
    +Pick3 Java sample
    +Pick3 VBScript sample
    +Pickable (DAGeometry Functions)
    +Pickable (DAImage Functions)
    +PickableGeometry Class
    +PickableGeometry Constructor
    +PickableImage Class
    +PickableImage Constructor
    +PickableOccluded
    +PickEvent
    +pie
    +Pie Method
    +PieDegrees (DADrawingSurface Subroutines)
    +PieDegrees (DAStatic Functions Relevant to DAPath2 Objects)
    +pieDegrees (Static Methods Relevant to Path2Bvr Objects)
    +PieRadians
    +PieRadians (DADrawingSurface Subroutines)
    +PieRadiansAnim
    +Pixel
    +Pixel-Based Space
    +pixelBvr
    +PixelConstructionMode
    +PixelCoords JScript sample
    +PixelLibrary
    +Plane3D JScript sample
    +Play Method (Action Set)
    +Play Method (Path Control Events)
    +Play Method (Sprite Control Events)
    +PlayRate Property
    +PlayState Property (Action Set)
    +Playstate Property (Path Control Events)
    +PlayState Property (Sprite Control Events)
    +point (2-D)
    +point (3-D)
    +point light
    +Point2 (DAStatic Functions Relevant to DAPoint2 Objects)
    +point2 (Static Methods Relevant to Point2Bvr Objects)
    +Point2Anim
    +Point2BSpline
    +Point2Bvr Class
    +Point2Polar (DAStatic Functions Relevant to DAPoint2 Objects)
    +point2Polar (Static Methods Relevant to Point2Bvr Objects)
    +Point2PolarAnim
    +Point3 (DAStatic Functions Relevant to DAPoint3 Objects)
    +point3 (Static Methods Relevant to Point3Bvr Objects)
    +Point3Anim
    +Point3BSpline
    +Point3Bvr Class
    +Point3Spherical (DAStatic Functions Relevant to DAPoint3 Objects)
    +point3Spherical (Static Methods Relevant to Point3Bvr Objects)
    +Point3SphericalAnim
    +PointLight (DAStatic Properties Relevant to DAGeometry Objects)
    +pointLight (Static Fields Relevant to GeometryBvr Objects)
    +PolarCoordAngle (DAPoint2 Properties)
    +PolarCoordAngle (DAVector2 Properties)
    +PolarCoordLength (DAPoint2 Properties)
    +PolarCoordLength (DAVector2 Properties)
    +PolyDrawPath (DAStatic Functions Relevant to DAPath2 Objects)
    +polydrawPath (Static Methods Relevant to Path2Bvr Objects)
    +Polygon
    +Polygon Method
    +Polygon Method (Path Control Events)
    +Polyline (DADrawingSurface Subroutines)
    +Polyline (DAStatic Functions Relevant to DAPath2 Objects)
    +polyline (Static Methods Relevant to Path2Bvr Objects)
    +PolyLine Method
    +PolyLine Method (Path Control Events)
    +PolySpline Method
    +Pow (DAStatic Functions Relevant to DANumber Objects)
    +pow (Static Methods Relevant to NumberBvr Objects)
    +Predicate (DAStatic Functions Relevant to DAEvent Objects)
    +predicate (Static Methods Relevant to DXMEvent Objects)
    +Preferences Class
    +Preferences Constructor
    +Preferences.COLOR_KEY_BLUE
    +Preferences.COLOR_KEY_GREEN
    +Preferences.COLOR_KEY_RED
    +Preferences.DITHERING
    +Preferences.ENGINE_OPTIMIZATIONS
    +Preferences.FILL_MODE
    +Preferences.MAX_FRAMES_PER_SEC
    +Preferences.OVERRIDE_APPLICATION_PREFERENCES
    +Preferences.PERSPECTIVE_CORRECT
    +Preferences.RGB_LIGHTING_MODE
    +Preferences.SHADE_MODE
    +Preferences.TEXTURE_QUALITY
    +Preferences.USE_3-D_HW
    +Preferences.USE_VIDEOMEM
    +PreserveAspectRatio Property
    +Progress
    +Project (DAPoint3 Functions)
    +project (Point3Bvr Methods)
    +propagate
    +PropertyDispatcher Class
    +PropertyDispatcher Constructor
    +public final static int FILL_MODE_POINT
    +public final static int FILL_MODE_SOLID
    +public final static int FILL_MODE_WIREFRAME
    +public final static int SHADE_MODE_GOURAUD
    +public final static int SHADE_MODE_PHONG
    +public final static int TEXTURE_QUALITY_LINEAR
    +public final static int TEXTURE_QUALITY_NEAREST
    +public final static MAX_FRAMES_PER_SEC
    +public final static SHADE_MODE_FLAT
    +public final static String COLOR_KEY_BLUE
    +public final static String COLOR_KEY_GREEN
    +public final static String COLOR_KEY_RED
    +public final static String DITHERING
    +public final static String ENGINE_OPTIMIZATIONS
    +public final static String FILL_MODE
    +public final static String OVERRIDE_APPLICATION_PREFERENCES
    +public final static String PERSPECTIVE_CORRECT
    +public final static String RGB_LIGHTING_MODE
    +public final static String SHADE_MODE
    +public final static String TEXTURE_QUALITY
    +public final static String USE_3-D_HW
    +public final static USE_VIDEOMEM
    +Purple (DAStatic Properties Relevant to DAColor Objects)
    +purple (Static Fields Relevant to ColorBvr Objects)
    +

    R

    +

    +RadialGradientPolygon (DAStatic Functions Relevant to DAImage Objects)
    +radialGradientPolygon (Static Methods Relevant to ImageBvr Objects)
    +RadialGradientPolygonAnim
    +RadialGradientRegularPoly (DAStatic Functions Relevant to DAImage Objects)
    +radialGradientRegularPoly (Static Methods Relevant to ImageBvr Objects)
    +RadialGradientRegularPolyAnim
    +RadialGradientSquare (DAStatic Functions Relevant to DAImage Objects)
    +radialGradientSquare (Static Methods Relevant to ImageBvr Objects)
    +RadialGradientSquareAnim
    +radiansToDegrees
    +Random JScript sample
    +Rate (DASound Functions)
    +rate (SoundBvr Methods)
    +RateAnim
    +Ray (DAStatic Functions Relevant to DAPath2 Objects)
    +ray (Static Methods Relevant to Path2Bvr Objects)
    +Rect (DADrawingSurface Subroutines)
    +Rect (DAStatic Functions Relevant to DAPath2 Objects)
    +rect (Static Methods Relevant to Path2Bvr Objects)
    +Rect Method
    +Rect Method (Path Control Events)
    +RectAnim
    +Red (DAColor Properties)
    +Red (DAStatic Properties Relevant to DAColor Objects)
    +red (Static Fields Relevant to ColorBvr Objects)
    +registerCallback
    +registerErrorAndWarningReceiver
    +registerErrorAndWarningReceiver (DXMCanvas Methods from Viewer Interface)
    +registerErrorAndWarningReceiver (ModelMakerApplet Methods)
    +registerErrorAndWarningReceiver (Viewer Methods)
    +Relative Property
    +remove
    +removeModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 1)
    +removeModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 2)
    +removeNotify
    +Render (DAGeometry Functions)
    +Render (DAMontage Functions)
    +render (Java Reference: GeometryBvr Class: GeometryBvr Methods: 1)
    +render (Java Reference: GeometryBvr Class: GeometryBvr Methods: 2)
    +render (Java Reference: MontageBvr Class: MontageBvr Methods: 3)
    +RenderSound
    +repeat (Behavior Methods)
    +Repeat (DABehavior Functions)
    +Repeat Property (Path Control Events)
    +Repeat Property (Sprite Control Events)
    +repeatForever (Behavior Methods)
    +RepeatForever (DABehavior Functions)
    +ReportGC
    +Reset
    +reshape
    +Resize JScript sample
    +RestoreGraphicsState
    +RightButtonDown (DAStatic Properties Relevant to DAEvent Objects)
    +rightButtonDown (Static Fields Relevant to DXMEvent Objects)
    +RightButtonState (DAStatic Properties Relevant to DABoolean Objects)
    +rightButtonState (Static Fields Relevant to BooleanBvr Objects)
    +RightButtonUp (DAStatic Properties Relevant to DAEvent Objects)
    +rightButtonUp (Static Fields Relevant to DXMEvent Objects)
    +rotate (Static Methods Relevant to Transform2Bvr Objects)
    +rotate (Static Methods Relevant to Transform3Bvr Objects)
    +Rotate Method
    +Rotate2
    +Rotate2Anim
    +Rotate2-Degrees
    +Rotate2Rate
    +Rotate2RateDegrees
    +Rotate3
    +Rotate3Anim
    +Rotate3-Degrees
    +Rotate3Rate
    +Rotate3RateDegrees
    +rotateDegrees (Static Methods Relevant to Transform2Bvr Objects)
    +rotateDegrees (Static Methods Relevant to Transform3Bvr Objects)
    +rotateRate (Static Methods Relevant to Transform2Bvr Objects)
    +rotateRate (Static Methods Relevant to Transform3Bvr Objects)
    +rotateRateDegrees (Static Methods Relevant to Transform2Bvr Objects)
    +rotateRateDegrees (Static Methods Relevant to Transform3Bvr Objects)
    +Rotational JScript sample
    +Round (DAStatic Functions Relevant to DANumber Objects)
    +round (Static Methods Relevant to NumberBvr Objects)
    +RoundRect (DADrawingSurface Subroutines)
    +RoundRect (DAStatic Functions Relevant to DAPath2 Objects)
    +roundRect (Static Methods Relevant to Path2Bvr Objects)
    +RoundRect Method
    +RoundRectAnim
    +run
    +Runners VBScript sample
    +runOnce (Behavior Methods)
    +RunOnce (DABehavior Functions)
    +

    More entries... +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +
    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX005.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX005.HTM new file mode 100644 index 0000000..1bd5ddc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX005.HTM @@ -0,0 +1,495 @@ + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Index +DirectAnimation Animated Header --Index* + +Microsoft DirectAnimation SDK +
    
    +
    +

    +

    Index

    +

    +A B C D E F G H I J K L M N O P R S T U V W X Y Z 

    +

    S

    +

    +Saturation
    +SaveGraphicsState
    +scale (Java Reference: Static Methods Relevant to Transform2Bvr Objects: 1)
    +scale (Java Reference: Static Methods Relevant to Transform2Bvr Objects: 2)
    +scale (Java Reference: Static Methods Relevant to Transform3Bvr Objects: 3)
    +scale (Java Reference: Static Methods Relevant to Transform3Bvr Objects: 4)
    +Scale Method
    +Scale2 (DAStatic Functions Relevant to DATransform2 Objects)
    +scale2 (Static Methods Relevant to Transform2Bvr Objects)
    +Scale2Anim
    +Scale2Rate (DAStatic Functions Relevant to DATransform2 Objects)
    +scale2Rate (Static Methods Relevant to Transform2Bvr Objects)
    +Scale2Uniform
    +Scale2UniformAnim
    +Scale2UniformRate
    +Scale2Vector
    +Scale3 (DAStatic Functions Relevant to DATransform3 Objects)
    +scale3 (Static Methods Relevant to Transform3Bvr Objects)
    +Scale3Anim
    +Scale3Rate (DAStatic Functions Relevant to DATransform3 Objects)
    +scale3Rate (Static Methods Relevant to Transform3Bvr Objects)
    +Scale3Uniform
    +Scale3UniformAnim
    +Scale3UniformRate
    +Scale3Vector
    +scaleRate (Static Methods Relevant to Transform2Bvr Objects)
    +scaleRate (Static Methods Relevant to Transform3Bvr Objects)
    +ScriptCallback
    +Scripting Reference Introduction
    +ScrollSwitch VBScript sample
    +Second
    +SecondaryFillColor
    +SeededRandom (DAStatic Functions Relevant to DANumber Objects)
    +seededRandom (Static Methods Relevant to NumberBvr Objects)
    +Seek Method (Action Set)
    +Seek Method (Path Control Events)
    +Seek Method (Sprite Control Events)
    +Sequence (DAStatic Functions Relevant to DABehavior Objects)
    +sequence (Static Methods Relevant to Behavior Objects)
    +Sequencer Control
    +Sequencer Control Events
    +Sequencer Control Methods
    +Sequencing JScript sample
    +set (Java Reference: Preferences Class: Preferences Methods: 1)
    +set (Java Reference: Preferences Class: Preferences Methods: 2)
    +set (Java Reference: Preferences Class: Preferences Methods: 3)
    +set (Java Reference: Preferences Class: Preferences Methods: 4)
    +setControl
    +SetFillColor Method
    +SetFillStyle Method
    +SetFocus
    +SetFont Method
    +SetGradientFill Method
    +SetGradientShape Method
    +SetHatchFill Method
    +SetIdentity Method
    +setImage
    +setImportBase
    +SetLineColor Method
    +SetLineStyle Method
    +setModel (DXMApplet Methods)
    +setModel (DXMCanvas Methods)
    +setModel (ModelMakerApplet Methods)
    +setPropertyName
    +setSound
    +SetStatusString
    +SetTextureFill Method
    +SG-DrawingSurface DirectAnimation control sample
    +SG-Preserve DirectAnimation control sample
    +Shapes JScript sample
    +show
    +showModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 1)
    +showModel (Java Reference: DXMCanvas Class: DXMCanvas Methods: 2)
    +ShowWhatsThis
    +Silence (DAStatic Properties Relevant to DASound Objects)
    +silence (Static Fields Relevant to SoundBvr Objects)
    +Silver (DAStatic Properties Relevant to DAColor Objects)
    +silver (Static Fields Relevant to ColorBvr Objects)
    +Sin (DAStatic Functions Relevant to DANumber Objects)
    +sin (Static Methods Relevant to NumberBvr Objects)
    +SinSynth (DAStatic Properties Relevant to DASound Objects)
    +sinSynth (Static Fields Relevant to SoundBvr Objects)
    +Site
    +Size (DAFontStyle Functions)
    +Size (DAImportationResult Properties)
    +size (FontStyleBvr Methods)
    +SizeAnim
    +SlowInSlowOut (DAStatic Functions Relevant to DANumber Objects)
    +slowInSlowOut (Static Methods Relevant to NumberBvr Objects)
    +SlowInSlowOutAnim
    +Snapshot
    +snapshotEvent
    +Solar Java sample
    +SolidColorImage (DAStatic Functions Relevant to DAImage Objects)
    +solidColorImage (Static Methods Relevant to ImageBvr Objects)
    +sound
    +Sound (DAImportationResult Properties)
    +Sound (DAViewerControl Properties)
    +Sound Java sample
    +SoundBvr Class
    +SoundSource (DAStatic Functions Relevant to DAGeometry Objects)
    +soundSource (Static Methods Relevant to GeometryBvr Objects)
    +source light
    +SourceURL Property
    +SourceURL Property (Sprite Control Events)
    +SphericalCoordLength (DAPoint3 Properties)
    +SphericalCoordLength (DAVector3 Properties)
    +SphericalCoordXYAngle
    +SphericalCoordYZAngle (DAPoint3 Properties)
    +SphericalCoordYZAngle (DAVector3 Properties)
    +SpinIE DirectAnimation control sample
    +spline
    +Spline Method
    +SplineLogo VBScript sample
    +Splines Java sample
    +SpotLight (DAStatic Functions Relevant to DAGeometry Objects)
    +spotLight (Static Methods Relevant to GeometryBvr Objects)
    +SpotLightAnim
    +sprite
    +Sprite Control
    +Sprite Control Events
    +Sprite Control Methods
    +Sprite Control Properties
    +Sqrt (DAStatic Functions Relevant to DANumber Objects)
    +sqrt (Static Methods Relevant to NumberBvr Objects)
    +Start (DAViewerControl Subroutines)
    +start (DXMApplet Methods)
    +startModel (DXMCanvas Methods from Viewer Interface)
    +startModel (Viewer Methods)
    +StartTime JScript sample
    +Static Fields (Miscellaneous)
    +Static Fields Relevant to BooleanBvr Objects
    +Static Fields Relevant to ColorBvr Objects
    +Static Fields Relevant to DashStyleBvr Objects
    +Static Fields Relevant to DXMEvent Objects
    +Static Fields Relevant to EndStyleBvr Objects
    +Static Fields Relevant to FontStyleBvr Objects
    +Static Fields Relevant to GeometryBvr Objects
    +Static Fields Relevant to ImageBvr Objects
    +Static Fields Relevant to JoinStyleBvr Objects
    +Static Fields Relevant to LineStyleBvr Objects
    +Static Fields Relevant to MatteBvr Objects
    +Static Fields Relevant to MicrophoneBvr Objects
    +Static Fields Relevant to MontageBvr Objects
    +Static Fields Relevant to NumberBvr Objects
    +Static Fields Relevant to Point2Bvr Objects
    +Static Fields Relevant to Point3Bvr Objects
    +Static Fields Relevant to SoundBvr Objects
    +Static Fields Relevant to Transform2Bvr Objects
    +Static Fields Relevant to Transform3Bvr Objects
    +Static Fields Relevant to Vector2Bvr Objects
    +Static Fields Relevant to Vector3Bvr Objects
    +Static Methods (Miscellaneous)
    +Static Methods Relevant to Behavior Objects
    +Static Methods Relevant to BooleanBvr Objects
    +Static Methods Relevant to CameraBvr Objects
    +Static Methods Relevant to ColorBvr Objects
    +Static Methods Relevant to DXMApplet Objects
    +Static Methods Relevant to DXMEvent Objects
    +Static Methods Relevant to FontStyleBvr Objects
    +Static Methods Relevant to GeometryBvr Objects
    +Static Methods Relevant to ImageBvr Objects
    +Static Methods Relevant to MatteBvr Objects
    +Static Methods Relevant to MontageBvr Objects
    +Static Methods Relevant to NumberBvr Objects
    +Static Methods Relevant to Path2Bvr Objects
    +Static Methods Relevant to Point2Bvr Objects
    +Static Methods Relevant to Point3Bvr Objects
    +Static Methods Relevant to SoundBvr Objects
    +Static Methods Relevant to StringBvr Objects
    +Static Methods Relevant to Transform2Bvr Objects
    +Static Methods Relevant to Transform3Bvr Objects
    +Static Methods Relevant to TupleBvr Objects
    +Static Methods Relevant to Vector2Bvr Objects
    +Static Methods Relevant to Vector3Bvr Objects
    +Statics Class
    +Statics.defaultFont
    +Statics.defaultLineStyle
    +Statics.public static Path2Bvr polyline(Point2Bvr[] points)
    +stop
    +Stop Method (Action Set)
    +Stop Method (Path Control Events)
    +Stop Method (Sprite Control Events)
    +stopModel (DXMCanvas Methods from Viewer Interface)
    +stopModel (Viewer Methods)
    +Strikethrough (DAFontStyle Functions)
    +strikethrough (FontStyleBvr Methods)
    +StringBvr Class
    +StringImage (DAStatic Functions Relevant to DAImage Objects)
    +stringImage (Static Methods Relevant to ImageBvr Objects)
    +StringImageAnim
    +StringPath (DAStatic Functions Relevant to DAPath2 Objects)
    +stringPath (Static Methods Relevant to Path2Bvr Objects)
    +StringPathAnim
    +Structured Graphics Control
    +Sub (DAStatic Functions Relevant to DANumber Objects)
    +sub (Java Reference: Static Methods Relevant to Point2Bvr Objects: 1)
    +sub (Java Reference: Static Methods Relevant to Point2Bvr Objects: 2)
    +sub (Java Reference: Static Methods Relevant to Point3Bvr Objects: 3)
    +sub (Java Reference: Static Methods Relevant to Point3Bvr Objects: 4)
    +sub (Java Reference: Static Methods Relevant to Vector2Bvr Objects: 5)
    +sub (Java Reference: Static Methods Relevant to Vector3Bvr Objects: 6)
    +sub (Static Methods Relevant to NumberBvr Objects)
    +SubPoint2
    +SubPoint2Vector
    +SubPoint3
    +SubPoint3Vector
    +substituteTime (Behavior Methods)
    +SubstituteTime (DABehavior Functions)
    +SubVector2
    +SubVector3
    +Switch Java sample
    +SwitchTo (DABehavior Subroutines)
    +switchTo (ModifiableBehavior Methods)
    +

    T

    +

    +TabStop
    +Tag
    +Tan (DAStatic Functions Relevant to DANumber Objects)
    +tan (Static Methods Relevant to NumberBvr Objects)
    +Target Property
    +Teal (DAStatic Properties Relevant to DAColor Objects)
    +teal (Static Fields Relevant to ColorBvr Objects)
    +Text
    +Text Method
    +textAntialiasing
    +TextMask DirectAnimation control sample
    +TextMatte (DAStatic Functions Relevant to DAMatte Objects)
    +textMatte (Static Methods Relevant to MatteBvr Objects)
    +TextPoint
    +texture
    +Texture (DAGeometry Functions)
    +texture (GeometryBvr Methods)
    +ThenEvent (DAStatic Functions Relevant to DAEvent Objects)
    +thenEvent (Static Methods Relevant to DXMEvent Objects)
    +tick (Java Reference: DXMCanvas Class: DXMCanvas Methods from Viewer Interface: 1)
    +tick (Java Reference: DXMCanvas Class: DXMCanvas Methods from Viewer Interface: 2)
    +tick (Java Reference: Viewer Interface: Viewer Methods: 3)
    +tick (Java Reference: Viewer Interface: Viewer Methods: 4)
    +tile
    +Tile (DAImage Functions)
    +tile (ImageBvr Methods)
    +Tile Java sample
    +Tile JScript sample
    +Time Property (Action Set)
    +Time Property (Path Control Events)
    +Time Property (Sprite Control Events)
    +Timer (DAStatic Functions Relevant to DAEvent Objects)
    +timer (Static Methods Relevant to DXMEvent Objects)
    +TimerAnim
    +TimerInterval Property (Path Control Events)
    +TimerInterval Property (Sprite Control Events)
    +toBvr (Static Methods Relevant to BooleanBvr Objects)
    +toBvr (Static Methods Relevant to NumberBvr Objects)
    +toBvr (Static Methods Relevant to StringBvr Objects)
    +ToDegrees
    +ToolTipText
    +Top
    +ToRadians
    +ToString (DANumber Functions)
    +toString (Java Reference: NumberBvr Class: NumberBvr Methods: 1)
    +toString (Java Reference: NumberBvr Class: NumberBvr Methods: 2)
    +ToStringAnim
    +transform (CameraBvr Methods)
    +Transform (DACamera Functions)
    +Transform (DADrawingSurface Subroutines)
    +Transform (DAGeometry Functions)
    +Transform (DAImage Functions)
    +Transform (DAMatte Functions)
    +Transform (DAMicrophone Functions)
    +Transform (DAPath2 Functions)
    +Transform (DAPoint2 Functions)
    +Transform (DAPoint3 Functions)
    +Transform (DAVector2 Functions)
    +Transform (DAVector3 Functions)
    +transform (GeometryBvr Methods)
    +transform (ImageBvr Methods)
    +transform (MatteBvr Methods)
    +transform (MicrophoneBvr Methods)
    +transform (Path2Bvr Methods)
    +transform (Point2Bvr Methods)
    +transform (Point3Bvr Methods)
    +transform (Vector2Bvr Methods)
    +transform (Vector3Bvr Methods)
    +Transform Property
    +Transform2Bvr Class
    +Transform3Bvr Class
    +transform3x2
    +Transform3x2Anim
    +transform4x4
    +Transform4x4 Method
    +Transform4x4Anim
    +Transformations
    +translate (Java Reference: Static Methods Relevant to Transform2Bvr Objects: 1)
    +translate (Java Reference: Static Methods Relevant to Transform2Bvr Objects: 2)
    +translate (Java Reference: Static Methods Relevant to Transform2Bvr Objects: 3)
    +translate (Java Reference: Static Methods Relevant to Transform3Bvr Objects: 4)
    +translate (Java Reference: Static Methods Relevant to Transform3Bvr Objects: 5)
    +translate (Java Reference: Static Methods Relevant to Transform3Bvr Objects: 6)
    +Translate Method
    +Translate2
    +Translate2Anim
    +Translate2Point
    +Translate2Rate
    +Translate2Vector
    +Translate3
    +Translate3Anim
    +Translate3Point
    +Translate3Rate
    +Translate3Vector
    +translateRate (Static Methods Relevant to Transform2Bvr Objects)
    +translateRate (Static Methods Relevant to Transform3Bvr Objects)
    +trigger (Java Reference: AppTriggeredEvent Class: AppTriggeredEvent Methods: 1)
    +trigger (Java Reference: AppTriggeredEvent Class: AppTriggeredEvent Methods: 2)
    +TriggerEvent
    +tripleBvr
    +trueBvr
    +TupleBvr Class
    +TupleBvr Constructor
    +

    More entries... +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +
    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX006.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX006.HTM new file mode 100644 index 0000000..8d5fe67 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/INDEX006.HTM @@ -0,0 +1,306 @@ + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +DirectAnimation Animated Header --Index +DirectAnimation Animated Header --Index* + +Microsoft DirectAnimation SDK +
    
    +
    +

    +

    Index

    +

    +A B C D E F G H I J K L M N O P R S T U V W X Y Z 

    +

    U

    +

    +Underline (DAFontStyle Functions)
    +underline (FontStyleBvr Methods)
    +Undetectable (DAGeometry Functions)
    +Undetectable (DAImage Functions)
    +undetectable (GeometryBvr Methods)
    +undetectable (ImageBvr Methods)
    +UninitializedArray
    +UninitializedTuple
    +union (Static Methods Relevant to GeometryBvr Objects)
    +union (Static Methods Relevant to MatteBvr Objects)
    +union (Static Methods Relevant to MontageBvr Objects)
    +Union Java sample
    +unionArray
    +UnionGeometry
    +UnionGeometryArray
    +UnionMatte
    +UnionMontage
    +Units
    +unregisterCallback
    +Until (DAStatic Functions Relevant to DABehavior Objects)
    +until (Static Methods Relevant to Behavior Objects)
    +UntilEx (DAStatic Functions Relevant to DABehavior Objects)
    +untilEx (Static Methods Relevant to Behavior Objects)
    +UntilNotifier Interface
    +untilNotify
    +update
    +UpdateInterval
    +UseColorKey Property
    +Using_AFCMenus Java sample
    +Using_AFCScrollBar Java sample
    +Using_VBScript Java sample
    +

    V

    +

    +VCR Java sample
    +vector
    +Vector2 (DAStatic Functions Relevant to DAVector2 Objects)
    +vector2 (Static Methods Relevant to Vector2Bvr Objects)
    +Vector2Anim
    +Vector2BSpline
    +Vector2Bvr Class
    +Vector2Polar (DAStatic Functions Relevant to DAVector2 Objects)
    +vector2Polar (Static Methods Relevant to Vector2Bvr Objects)
    +Vector2PolarAnim
    +Vector2PolarDegrees (DAStatic Functions Relevant to DAVector2 Objects)
    +vector2PolarDegrees (Static Methods Relevant to Vector2Bvr Objects)
    +Vector3 (DAStatic Functions Relevant to DAVector3 Objects)
    +vector3 (Static Methods Relevant to Vector3Bvr Objects)
    +Vector3Anim
    +Vector3BSpline
    +Vector3Bvr Class
    +vector3Obj.SphericalCoordXYAngle
    +Vector3Spherical (DAStatic Functions Relevant to DAVector3 Objects)
    +vector3Spherical (Static Methods Relevant to Vector3Bvr Objects)
    +Vector3SphericalAnim
    +VersionString
    +VerticalFillScale
    +Viewer Interface
    +Visible
    +

    W

    +

    +WebVCR JScript sample
    +Weight (DAFontStyle Functions)
    +weight (FontStyleBvr Methods)
    +WeightAnim
    +WhatsThisHelpID
    +White (DAStatic Properties Relevant to DAColor Objects)
    +white (Static Fields Relevant to ColorBvr Objects)
    +Width (DALineStyle Functions)
    +Width (DAViewerControl Properties)
    +width (LineStyleBvr Methods)
    +WidthAnim
    +Windows Metafile to Structured Graphics Converter
    +

    X

    +

    +X (DAPoint2 Properties)
    +X (DAPoint3 Properties)
    +X (DAVector2 Properties)
    +X (DAVector3 Properties)
    +xShear (Static Methods Relevant to Transform2Bvr Objects)
    +xShear (Static Methods Relevant to Transform3Bvr Objects)
    +XShear2
    +XShear2Anim
    +XShear2Rate
    +XShear3
    +XShear3Anim
    +XShear3Rate
    +xShearRate (Static Methods Relevant to Transform2Bvr Objects)
    +xShearRate (Static Methods Relevant to Transform3Bvr Objects)
    +XVector2 (DAStatic Properties Relevant to DAVector2 Objects)
    +xVector2 (Static Fields Relevant to Vector2Bvr Objects)
    +XVector3 (DAStatic Properties Relevant to DAVector3 Objects)
    +xVector3 (Static Fields Relevant to Vector3Bvr Objects)
    +

    Y

    +

    +Y (DAPoint2 Properties)
    +Y (DAPoint3 Properties)
    +Y (DAVector2 Properties)
    +Y (DAVector3 Properties)
    +Yellow (DAStatic Properties Relevant to DAColor Objects)
    +yellow (Static Fields Relevant to ColorBvr Objects)
    +Yoyo DirectAnimation control sample
    +yShear (Static Methods Relevant to Transform2Bvr Objects)
    +yShear (Static Methods Relevant to Transform3Bvr Objects)
    +YShear2
    +YShear2Anim
    +YShear2Rate
    +YShear3
    +YShear3Anim
    +YShear3Rate
    +yShearRate (Static Methods Relevant to Transform2Bvr Objects)
    +yShearRate (Static Methods Relevant to Transform3Bvr Objects)
    +YVector2 (DAStatic Properties Relevant to DAVector2 Objects)
    +yVector2 (Static Fields Relevant to Vector2Bvr Objects)
    +YVector3 (DAStatic Properties Relevant to DAVector3 Objects)
    +yVector3 (Static Fields Relevant to Vector3Bvr Objects)
    +

    Z

    +

    +Z (DAPoint3 Properties)
    +Z (DAVector3 Properties)
    +ZeroVector2 (DAStatic Properties Relevant to DAVector2 Objects)
    +zeroVector2 (Static Fields Relevant to Vector2Bvr Objects)
    +ZeroVector3 (DAStatic Properties Relevant to DAVector3 Objects)
    +zeroVector3 (Static Fields Relevant to Vector3Bvr Objects)
    +ZOrder
    +zShear
    +ZShear3
    +ZShear3Anim
    +ZShear3Rate
    +zShearRate
    +ZVector3 (DAStatic Properties Relevant to DAVector3 Objects)
    +zVector3 (Static Fields Relevant to Vector3Bvr Objects)
    +

    +© 1998 Microsoft Corporation. All rights reserved. Terms of Use. + +
    +*Top of Page +

    +

    + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/VER.JS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/VER.JS new file mode 100644 index 0000000..1cdd998 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/HELP/DA/VER.JS @@ -0,0 +1,16 @@ +// common sniffing code +g_sUA = window.navigator.appVersion; + +if (parseInt(g_sUA.indexOf("MSIE ")) >= 0) // Check if IE +{ + g_isIE = true; + g_iMaj = parseInt(g_sUA.substring(g_sUA.indexOf("MSIE ")+5,g_sUA.indexOf (".",g_sUA.indexOf("MSIE ")))); + if (g_sUA.lastIndexOf("Win") >= 0) + g_sPlat = "Win"; +} +else if (parseInt(g_sUA.lastIndexOf("Nav")) >= 0) +{ + g_isNav = true; + g_iMaj = parseInt(g_sUA.substring(0, g_sUA.indexOf('.'))); +} + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/ARROW.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/ARROW.X new file mode 100644 index 0000000..11d6662 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/ARROW.X @@ -0,0 +1,3245 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 924; + 0.008658;0.011097;-0.009700;, + 0.008658;0.016892;0.000387;, + 0.008658;-0.000493;-0.009700;, + 0.008658;0.016892;0.000387;, + 0.008658;0.011097;0.010475;, + 0.008658;-0.000493;-0.009700;, + 0.008658;0.011097;0.010475;, + 0.008658;-0.000493;0.010475;, + 0.008658;-0.000493;-0.009700;, + 0.008658;-0.000493;0.010475;, + 0.008658;-0.006288;0.000387;, + 0.008658;-0.000493;-0.009700;, + 0.333001;-0.006288;0.000387;, + 0.008658;-0.000493;-0.009700;, + 0.008658;-0.006288;0.000387;, + 0.333258;-0.001757;-0.010977;, + 0.008658;-0.000493;-0.009700;, + 0.333001;-0.006288;0.000387;, + 0.008658;-0.000493;-0.009700;, + 0.333258;-0.001757;-0.010977;, + 0.008658;0.011097;-0.009700;, + 0.008658;0.011097;-0.009700;, + 0.332956;0.009275;-0.009700;, + 0.008658;0.016892;0.000387;, + 0.332956;0.009275;-0.009700;, + 0.008658;0.011097;-0.009700;, + 0.333258;-0.001757;-0.010977;, + 0.333392;0.016684;0.000749;, + 0.008658;0.016892;0.000387;, + 0.332956;0.009275;-0.009700;, + 0.008658;0.016892;0.000387;, + 0.333392;0.016684;0.000749;, + 0.008658;0.011097;0.010475;, + 0.333110;0.009231;0.012475;, + 0.008658;0.011097;0.010475;, + 0.333392;0.016684;0.000749;, + 0.008658;0.011097;0.010475;, + 0.333110;0.009231;0.012475;, + 0.008658;-0.000493;0.010475;, + 0.333258;-0.001757;0.012475;, + 0.008658;-0.000493;0.010475;, + 0.333110;0.009231;0.012475;, + 0.008658;-0.000493;0.010475;, + 0.333258;-0.001757;0.012475;, + 0.008658;-0.006288;0.000387;, + 0.008658;-0.006288;0.000387;, + 0.333258;-0.001757;0.012475;, + 0.333001;-0.006288;0.000387;, + 0.346138;0.013897;0.029058;, + 0.354161;0.014180;0.029058;, + 0.351844;-0.007051;0.029058;, + 0.346138;0.013897;0.029058;, + 0.351844;-0.007051;0.029058;, + 0.343230;0.001814;0.029058;, + 0.346138;0.013897;0.029058;, + 0.339026;0.015923;0.022415;, + 0.352598;0.025571;0.022415;, + 0.346138;0.013897;0.029058;, + 0.352598;0.025571;0.022415;, + 0.354161;0.014180;0.029058;, + 0.354161;0.014180;0.029058;, + 0.352598;0.025571;0.022415;, + 0.363309;0.009006;0.022415;, + 0.354161;0.014180;0.029058;, + 0.363309;0.009006;0.022415;, + 0.351844;-0.007051;0.029058;, + 0.351844;-0.007051;0.029058;, + 0.363309;0.009006;0.022415;, + 0.357935;-0.013320;0.022415;, + 0.351844;-0.007051;0.029058;, + 0.357935;-0.013320;0.022415;, + 0.343111;-0.013843;0.022415;, + 0.351844;-0.007051;0.029058;, + 0.343111;-0.013843;0.022415;, + 0.343230;0.001814;0.029058;, + 0.343230;0.001814;0.029058;, + 0.339026;0.015923;0.022415;, + 0.346138;0.013897;0.029058;, + 0.339026;0.015923;0.022415;, + 0.333110;0.009231;0.012475;, + 0.340280;0.027414;0.012475;, + 0.339026;0.015923;0.022415;, + 0.340280;0.027414;0.012475;, + 0.346507;0.031840;0.012475;, + 0.339026;0.015923;0.022415;, + 0.346507;0.031840;0.012475;, + 0.352598;0.025571;0.022415;, + 0.352598;0.025571;0.022415;, + 0.346507;0.031840;0.012475;, + 0.359649;0.028097;0.012475;, + 0.352598;0.025571;0.022415;, + 0.359649;0.028097;0.012475;, + 0.364563;0.020496;0.012475;, + 0.352598;0.025571;0.022415;, + 0.364563;0.020496;0.012475;, + 0.363309;0.009006;0.022415;, + 0.363309;0.009006;0.022415;, + 0.364563;0.020496;0.012475;, + 0.367452;-0.000552;0.012475;, + 0.363309;0.009006;0.022415;, + 0.367452;-0.000552;0.012475;, + 0.364986;-0.010795;0.012475;, + 0.363309;0.009006;0.022415;, + 0.364986;-0.010795;0.012475;, + 0.357935;-0.013320;0.022415;, + 0.357935;-0.013320;0.022415;, + 0.364986;-0.010795;0.012475;, + 0.354055;-0.023161;0.012475;, + 0.357935;-0.013320;0.022415;, + 0.354055;-0.023161;0.012475;, + 0.347253;-0.023400;0.012475;, + 0.357935;-0.013320;0.022415;, + 0.347253;-0.023400;0.012475;, + 0.343111;-0.013843;0.022415;, + 0.343111;-0.013843;0.022415;, + 0.347253;-0.023400;0.012475;, + 0.335998;-0.011817;0.012475;, + 0.343111;-0.013843;0.022415;, + 0.335998;-0.011817;0.012475;, + 0.333258;-0.001757;0.012475;, + 0.343111;-0.013843;0.022415;, + 0.333258;-0.001757;0.012475;, + 0.343230;0.001814;0.029058;, + 0.343230;0.001814;0.029058;, + 0.333258;-0.001757;0.012475;, + 0.333110;0.009231;0.012475;, + 0.343230;0.001814;0.029058;, + 0.333110;0.009231;0.012475;, + 0.339026;0.015923;0.022415;, + 0.333110;0.009231;0.012475;, + 0.333392;0.016684;0.000749;, + 0.340280;0.027414;0.012475;, + 0.340280;0.027414;0.012475;, + 0.333392;0.016684;0.000749;, + 0.339456;0.029315;0.000749;, + 0.340280;0.027414;0.012475;, + 0.339456;0.029315;0.000749;, + 0.346196;0.034106;0.000749;, + 0.340280;0.027414;0.012475;, + 0.346196;0.034106;0.000749;, + 0.346507;0.031840;0.012475;, + 0.346507;0.031840;0.012475;, + 0.346196;0.034106;0.000749;, + 0.353558;0.034366;0.000749;, + 0.346507;0.031840;0.012475;, + 0.353558;0.034366;0.000749;, + 0.359649;0.028097;0.012475;, + 0.359649;0.028097;0.012475;, + 0.353558;0.034366;0.000749;, + 0.360421;0.030054;0.000749;, + 0.359649;0.028097;0.012475;, + 0.360421;0.030054;0.000749;, + 0.365740;0.021828;0.000749;, + 0.359649;0.028097;0.012475;, + 0.365740;0.021828;0.000749;, + 0.364563;0.020496;0.012475;, + 0.364563;0.020496;0.012475;, + 0.365740;0.021828;0.000749;, + 0.368706;0.010939;0.000749;, + 0.364563;0.020496;0.012475;, + 0.368706;0.010939;0.000749;, + 0.367452;-0.000552;0.012475;, + 0.367452;-0.000552;0.012475;, + 0.368706;0.010939;0.000749;, + 0.368867;-0.000955;0.000749;, + 0.367452;-0.000552;0.012475;, + 0.368867;-0.000955;0.000749;, + 0.366198;-0.012042;0.000749;, + 0.367452;-0.000552;0.012475;, + 0.366198;-0.012042;0.000749;, + 0.364986;-0.010795;0.012475;, + 0.364986;-0.010795;0.012475;, + 0.366198;-0.012042;0.000749;, + 0.361106;-0.020635;0.000749;, + 0.364986;-0.010795;0.012475;, + 0.361106;-0.020635;0.000749;, + 0.354055;-0.023161;0.012475;, + 0.354055;-0.023161;0.012475;, + 0.361106;-0.020635;0.000749;, + 0.354366;-0.025427;0.000749;, + 0.354055;-0.023161;0.012475;, + 0.354366;-0.025427;0.000749;, + 0.347004;-0.025686;0.000749;, + 0.354055;-0.023161;0.012475;, + 0.347004;-0.025686;0.000749;, + 0.347253;-0.023400;0.012475;, + 0.347253;-0.023400;0.012475;, + 0.347004;-0.025686;0.000749;, + 0.340141;-0.021374;0.000749;, + 0.347253;-0.023400;0.012475;, + 0.340141;-0.021374;0.000749;, + 0.335998;-0.011817;0.012475;, + 0.335998;-0.011817;0.012475;, + 0.340141;-0.021374;0.000749;, + 0.333001;-0.006288;0.000387;, + 0.333392;0.016684;0.000749;, + 0.340280;0.027414;-0.010977;, + 0.339456;0.029315;0.000749;, + 0.339456;0.029315;0.000749;, + 0.340280;0.027414;-0.010977;, + 0.346196;0.034106;0.000749;, + 0.346196;0.034106;0.000749;, + 0.340280;0.027414;-0.010977;, + 0.353309;0.032080;-0.010977;, + 0.346196;0.034106;0.000749;, + 0.353309;0.032080;-0.010977;, + 0.353558;0.034366;0.000749;, + 0.353558;0.034366;0.000749;, + 0.353309;0.032080;-0.010977;, + 0.359649;0.028097;-0.010977;, + 0.353558;0.034366;0.000749;, + 0.359649;0.028097;-0.010977;, + 0.360421;0.030054;0.000749;, + 0.360421;0.030054;0.000749;, + 0.359649;0.028097;-0.010977;, + 0.365740;0.021828;0.000749;, + 0.365740;0.021828;0.000749;, + 0.359649;0.028097;-0.010977;, + 0.367303;0.010437;-0.010977;, + 0.365740;0.021828;0.000749;, + 0.367303;0.010437;-0.010977;, + 0.368706;0.010939;0.000749;, + 0.368706;0.010939;0.000749;, + 0.367303;0.010437;-0.010977;, + 0.367452;-0.000552;-0.010977;, + 0.368706;0.010939;0.000749;, + 0.367452;-0.000552;-0.010977;, + 0.368867;-0.000955;0.000749;, + 0.368867;-0.000955;0.000749;, + 0.367452;-0.000552;-0.010977;, + 0.366198;-0.012042;0.000749;, + 0.366198;-0.012042;0.000749;, + 0.367452;-0.000552;-0.010977;, + 0.360282;-0.018734;-0.010977;, + 0.366198;-0.012042;0.000749;, + 0.360282;-0.018734;-0.010977;, + 0.361106;-0.020635;0.000749;, + 0.361106;-0.020635;0.000749;, + 0.360282;-0.018734;-0.010977;, + 0.354055;-0.023161;-0.010977;, + 0.361106;-0.020635;0.000749;, + 0.354055;-0.023161;-0.010977;, + 0.354366;-0.025427;0.000749;, + 0.354366;-0.025427;0.000749;, + 0.354055;-0.023161;-0.010977;, + 0.347004;-0.025686;0.000749;, + 0.347004;-0.025686;0.000749;, + 0.354055;-0.023161;-0.010977;, + 0.343111;-0.013843;-0.020918;, + 0.347004;-0.025686;0.000749;, + 0.343111;-0.013843;-0.020918;, + 0.340141;-0.021374;0.000749;, + 0.340141;-0.021374;0.000749;, + 0.343111;-0.013843;-0.020918;, + 0.333258;-0.001757;-0.010977;, + 0.340141;-0.021374;0.000749;, + 0.333258;-0.001757;-0.010977;, + 0.333001;-0.006288;0.000387;, + 0.332956;0.009275;-0.009700;, + 0.339026;0.015923;-0.020918;, + 0.340280;0.027414;-0.010977;, + 0.340280;0.027414;-0.010977;, + 0.339026;0.015923;-0.020918;, + 0.352598;0.025571;-0.020918;, + 0.340280;0.027414;-0.010977;, + 0.352598;0.025571;-0.020918;, + 0.353309;0.032080;-0.010977;, + 0.353309;0.032080;-0.010977;, + 0.352598;0.025571;-0.020918;, + 0.359649;0.028097;-0.010977;, + 0.359649;0.028097;-0.010977;, + 0.352598;0.025571;-0.020918;, + 0.363309;0.009006;-0.020918;, + 0.359649;0.028097;-0.010977;, + 0.363309;0.009006;-0.020918;, + 0.367303;0.010437;-0.010977;, + 0.367303;0.010437;-0.010977;, + 0.363309;0.009006;-0.020918;, + 0.367452;-0.000552;-0.010977;, + 0.367452;-0.000552;-0.010977;, + 0.363309;0.009006;-0.020918;, + 0.357935;-0.013320;-0.020918;, + 0.367452;-0.000552;-0.010977;, + 0.357935;-0.013320;-0.020918;, + 0.360282;-0.018734;-0.010977;, + 0.360282;-0.018734;-0.010977;, + 0.357935;-0.013320;-0.020918;, + 0.354055;-0.023161;-0.010977;, + 0.354055;-0.023161;-0.010977;, + 0.357935;-0.013320;-0.020918;, + 0.343111;-0.013843;-0.020918;, + 0.333258;-0.001757;-0.010977;, + 0.339026;0.015923;-0.020918;, + 0.332956;0.009275;-0.009700;, + 0.339026;0.015923;-0.020918;, + 0.344190;0.010609;-0.027560;, + 0.352598;0.025571;-0.020918;, + 0.352598;0.025571;-0.020918;, + 0.344190;0.010609;-0.027560;, + 0.356197;0.011032;-0.027560;, + 0.352598;0.025571;-0.020918;, + 0.356197;0.011032;-0.027560;, + 0.363309;0.009006;-0.020918;, + 0.363309;0.009006;-0.020918;, + 0.356197;0.011032;-0.027560;, + 0.351844;-0.007051;-0.027560;, + 0.363309;0.009006;-0.020918;, + 0.351844;-0.007051;-0.027560;, + 0.357935;-0.013320;-0.020918;, + 0.357935;-0.013320;-0.020918;, + 0.351844;-0.007051;-0.027560;, + 0.343111;-0.013843;-0.020918;, + 0.343111;-0.013843;-0.020918;, + 0.351844;-0.007051;-0.027560;, + 0.344190;0.010609;-0.027560;, + 0.343111;-0.013843;-0.020918;, + 0.344190;0.010609;-0.027560;, + 0.333258;-0.001757;-0.010977;, + 0.333258;-0.001757;-0.010977;, + 0.344190;0.010609;-0.027560;, + 0.339026;0.015923;-0.020918;, + 0.344190;0.010609;-0.027560;, + 0.351844;-0.007051;-0.027560;, + 0.356197;0.011032;-0.027560;, + 0.332956;0.009275;-0.009700;, + 0.340280;0.027414;-0.010977;, + 0.333392;0.016684;0.000749;, + 0.335998;-0.011817;0.012475;, + 0.333001;-0.006288;0.000387;, + 0.333258;-0.001757;0.012475;, + -0.008658;-0.000998;-0.009700;, + -0.008658;-0.006793;0.000387;, + -0.008658;0.010593;-0.009700;, + -0.008658;-0.006793;0.000387;, + -0.008658;-0.000998;0.010475;, + -0.008658;0.010593;-0.009700;, + -0.008658;-0.000998;0.010475;, + -0.008658;0.010593;0.010475;, + -0.008658;0.010593;-0.009700;, + -0.008658;0.010593;0.010475;, + -0.008658;0.016388;0.000387;, + -0.008658;0.010593;-0.009700;, + -0.008658;0.010593;-0.009700;, + -0.330537;0.010491;-0.009700;, + -0.008658;-0.000998;-0.009700;, + -0.008658;0.010593;-0.009700;, + -0.330714;0.016180;0.000749;, + -0.330537;0.010491;-0.009700;, + -0.330714;0.016180;0.000749;, + -0.008658;0.010593;-0.009700;, + -0.008658;0.016388;0.000387;, + -0.008658;-0.000998;-0.009700;, + -0.330537;0.010491;-0.009700;, + -0.330541;-0.000552;-0.010977;, + -0.008658;-0.000998;-0.009700;, + -0.330541;-0.000552;-0.010977;, + -0.008658;-0.006793;0.000387;, + -0.330482;-0.006585;0.000749;, + -0.008658;-0.006793;0.000387;, + -0.330541;-0.000552;-0.010977;, + -0.008658;-0.006793;0.000387;, + -0.330482;-0.006585;0.000749;, + -0.008658;-0.000998;0.010475;, + -0.008658;-0.000998;0.010475;, + -0.330541;-0.000552;0.012475;, + -0.008658;0.010593;0.010475;, + -0.008658;-0.000998;0.010475;, + -0.330482;-0.006585;0.000749;, + -0.330541;-0.000552;0.012475;, + -0.008658;0.010593;0.010475;, + -0.330450;0.010522;0.010475;, + -0.008658;0.016388;0.000387;, + -0.330450;0.010522;0.010475;, + -0.008658;0.010593;0.010475;, + -0.330541;-0.000552;0.012475;, + -0.330714;0.016180;0.000749;, + -0.008658;0.016388;0.000387;, + -0.330450;0.010522;0.010475;, + -0.351854;0.013897;0.029058;, + -0.343831;0.014180;0.029058;, + -0.346149;-0.007051;0.029058;, + -0.351854;0.013897;0.029058;, + -0.346149;-0.007051;0.029058;, + -0.354763;0.001814;0.029058;, + -0.351854;0.013897;0.029058;, + -0.358967;0.015923;0.022415;, + -0.345395;0.025571;0.022415;, + -0.351854;0.013897;0.029058;, + -0.345395;0.025571;0.022415;, + -0.343831;0.014180;0.029058;, + -0.343831;0.014180;0.029058;, + -0.345395;0.025571;0.022415;, + -0.334683;0.009006;0.022415;, + -0.343831;0.014180;0.029058;, + -0.334683;0.009006;0.022415;, + -0.346149;-0.007051;0.029058;, + -0.346149;-0.007051;0.029058;, + -0.334683;0.009006;0.022415;, + -0.340058;-0.013320;0.022415;, + -0.346149;-0.007051;0.029058;, + -0.340058;-0.013320;0.022415;, + -0.354882;-0.013843;0.022415;, + -0.346149;-0.007051;0.029058;, + -0.354882;-0.013843;0.022415;, + -0.354763;0.001814;0.029058;, + -0.354763;0.001814;0.029058;, + -0.358967;0.015923;0.022415;, + -0.351854;0.013897;0.029058;, + -0.358967;0.015923;0.022415;, + -0.362417;0.019475;0.012475;, + -0.351486;0.031840;0.012475;, + -0.358967;0.015923;0.022415;, + -0.351486;0.031840;0.012475;, + -0.345395;0.025571;0.022415;, + -0.345395;0.025571;0.022415;, + -0.351486;0.031840;0.012475;, + -0.338344;0.028097;0.012475;, + -0.345395;0.025571;0.022415;, + -0.338344;0.028097;0.012475;, + -0.333429;0.020496;0.012475;, + -0.345395;0.025571;0.022415;, + -0.333429;0.020496;0.012475;, + -0.334683;0.009006;0.022415;, + -0.334683;0.009006;0.022415;, + -0.333429;0.020496;0.012475;, + -0.330450;0.010522;0.010475;, + -0.334683;0.009006;0.022415;, + -0.330450;0.010522;0.010475;, + -0.330541;-0.000552;0.012475;, + -0.334683;0.009006;0.022415;, + -0.330541;-0.000552;0.012475;, + -0.333007;-0.010795;0.012475;, + -0.334683;0.009006;0.022415;, + -0.333007;-0.010795;0.012475;, + -0.340058;-0.013320;0.022415;, + -0.340058;-0.013320;0.022415;, + -0.333007;-0.010795;0.012475;, + -0.343938;-0.023161;0.012475;, + -0.340058;-0.013320;0.022415;, + -0.343938;-0.023161;0.012475;, + -0.350740;-0.023400;0.012475;, + -0.340058;-0.013320;0.022415;, + -0.350740;-0.023400;0.012475;, + -0.354882;-0.013843;0.022415;, + -0.354882;-0.013843;0.022415;, + -0.350740;-0.023400;0.012475;, + -0.361994;-0.011817;0.012475;, + -0.354882;-0.013843;0.022415;, + -0.361994;-0.011817;0.012475;, + -0.364734;-0.001757;0.012475;, + -0.354882;-0.013843;0.022415;, + -0.364734;-0.001757;0.012475;, + -0.354763;0.001814;0.029058;, + -0.354763;0.001814;0.029058;, + -0.364734;-0.001757;0.012475;, + -0.362417;0.019475;0.012475;, + -0.354763;0.001814;0.029058;, + -0.362417;0.019475;0.012475;, + -0.358967;0.015923;0.022415;, + -0.362417;0.019475;0.012475;, + -0.363629;0.020722;0.000749;, + -0.358537;0.029315;0.000749;, + -0.362417;0.019475;0.012475;, + -0.358537;0.029315;0.000749;, + -0.351486;0.031840;0.012475;, + -0.351486;0.031840;0.012475;, + -0.358537;0.029315;0.000749;, + -0.351797;0.034106;0.000749;, + -0.351486;0.031840;0.012475;, + -0.351797;0.034106;0.000749;, + -0.344435;0.034366;0.000749;, + -0.351486;0.031840;0.012475;, + -0.344435;0.034366;0.000749;, + -0.338344;0.028097;0.012475;, + -0.338344;0.028097;0.012475;, + -0.344435;0.034366;0.000749;, + -0.337572;0.030054;0.000749;, + -0.338344;0.028097;0.012475;, + -0.337572;0.030054;0.000749;, + -0.330714;0.016180;0.000749;, + -0.338344;0.028097;0.012475;, + -0.330714;0.016180;0.000749;, + -0.333429;0.020496;0.012475;, + -0.330541;-0.000552;0.012475;, + -0.330482;-0.006585;0.000749;, + -0.333007;-0.010795;0.012475;, + -0.333007;-0.010795;0.012475;, + -0.330482;-0.006585;0.000749;, + -0.336887;-0.020635;0.000749;, + -0.333007;-0.010795;0.012475;, + -0.336887;-0.020635;0.000749;, + -0.343938;-0.023161;0.012475;, + -0.343938;-0.023161;0.012475;, + -0.336887;-0.020635;0.000749;, + -0.343627;-0.025427;0.000749;, + -0.343938;-0.023161;0.012475;, + -0.343627;-0.025427;0.000749;, + -0.350989;-0.025686;0.000749;, + -0.343938;-0.023161;0.012475;, + -0.350989;-0.025686;0.000749;, + -0.350740;-0.023400;0.012475;, + -0.350740;-0.023400;0.012475;, + -0.350989;-0.025686;0.000749;, + -0.357852;-0.021374;0.000749;, + -0.350740;-0.023400;0.012475;, + -0.357852;-0.021374;0.000749;, + -0.361994;-0.011817;0.012475;, + -0.361994;-0.011817;0.012475;, + -0.357852;-0.021374;0.000749;, + -0.363171;-0.013148;0.000749;, + -0.361994;-0.011817;0.012475;, + -0.363171;-0.013148;0.000749;, + -0.366137;-0.002259;0.000749;, + -0.361994;-0.011817;0.012475;, + -0.366137;-0.002259;0.000749;, + -0.364734;-0.001757;0.012475;, + -0.364734;-0.001757;0.012475;, + -0.366137;-0.002259;0.000749;, + -0.363629;0.020722;0.000749;, + -0.364734;-0.001757;0.012475;, + -0.363629;0.020722;0.000749;, + -0.362417;0.019475;0.012475;, + -0.363629;0.020722;0.000749;, + -0.364734;-0.001757;-0.010977;, + -0.362417;0.019475;-0.010977;, + -0.363629;0.020722;0.000749;, + -0.362417;0.019475;-0.010977;, + -0.357713;0.027414;-0.010977;, + -0.363629;0.020722;0.000749;, + -0.357713;0.027414;-0.010977;, + -0.358537;0.029315;0.000749;, + -0.358537;0.029315;0.000749;, + -0.357713;0.027414;-0.010977;, + -0.351797;0.034106;0.000749;, + -0.351797;0.034106;0.000749;, + -0.357713;0.027414;-0.010977;, + -0.344684;0.032080;-0.010977;, + -0.351797;0.034106;0.000749;, + -0.344684;0.032080;-0.010977;, + -0.344435;0.034366;0.000749;, + -0.344435;0.034366;0.000749;, + -0.344684;0.032080;-0.010977;, + -0.338344;0.028097;-0.010977;, + -0.344435;0.034366;0.000749;, + -0.338344;0.028097;-0.010977;, + -0.337572;0.030054;0.000749;, + -0.337572;0.030054;0.000749;, + -0.338344;0.028097;-0.010977;, + -0.330689;0.010437;-0.010977;, + -0.337572;0.030054;0.000749;, + -0.330689;0.010437;-0.010977;, + -0.330714;0.016180;0.000749;, + -0.330482;-0.006585;0.000749;, + -0.337711;-0.018734;-0.010977;, + -0.336887;-0.020635;0.000749;, + -0.336887;-0.020635;0.000749;, + -0.337711;-0.018734;-0.010977;, + -0.343938;-0.023161;-0.010977;, + -0.336887;-0.020635;0.000749;, + -0.343938;-0.023161;-0.010977;, + -0.343627;-0.025427;0.000749;, + -0.343627;-0.025427;0.000749;, + -0.343938;-0.023161;-0.010977;, + -0.350989;-0.025686;0.000749;, + -0.350989;-0.025686;0.000749;, + -0.343938;-0.023161;-0.010977;, + -0.357080;-0.019417;-0.010977;, + -0.350989;-0.025686;0.000749;, + -0.357080;-0.019417;-0.010977;, + -0.357852;-0.021374;0.000749;, + -0.357852;-0.021374;0.000749;, + -0.357080;-0.019417;-0.010977;, + -0.363171;-0.013148;0.000749;, + -0.363171;-0.013148;0.000749;, + -0.357080;-0.019417;-0.010977;, + -0.364734;-0.001757;-0.010977;, + -0.363171;-0.013148;0.000749;, + -0.364734;-0.001757;-0.010977;, + -0.366137;-0.002259;0.000749;, + -0.366137;-0.002259;0.000749;, + -0.364734;-0.001757;-0.010977;, + -0.363629;0.020722;0.000749;, + -0.364734;-0.001757;-0.010977;, + -0.353803;0.010609;-0.027560;, + -0.362417;0.019475;-0.010977;, + -0.362417;0.019475;-0.010977;, + -0.353803;0.010609;-0.027560;, + -0.357713;0.027414;-0.010977;, + -0.357713;0.027414;-0.010977;, + -0.353803;0.010609;-0.027560;, + -0.345395;0.025571;-0.020918;, + -0.357713;0.027414;-0.010977;, + -0.345395;0.025571;-0.020918;, + -0.344684;0.032080;-0.010977;, + -0.344684;0.032080;-0.010977;, + -0.345395;0.025571;-0.020918;, + -0.338344;0.028097;-0.010977;, + -0.338344;0.028097;-0.010977;, + -0.345395;0.025571;-0.020918;, + -0.334683;0.009006;-0.020918;, + -0.338344;0.028097;-0.010977;, + -0.334683;0.009006;-0.020918;, + -0.330689;0.010437;-0.010977;, + -0.330689;0.010437;-0.010977;, + -0.334683;0.009006;-0.020918;, + -0.330541;-0.000552;-0.010977;, + -0.330541;-0.000552;-0.010977;, + -0.334683;0.009006;-0.020918;, + -0.340058;-0.013320;-0.020918;, + -0.330541;-0.000552;-0.010977;, + -0.340058;-0.013320;-0.020918;, + -0.337711;-0.018734;-0.010977;, + -0.337711;-0.018734;-0.010977;, + -0.340058;-0.013320;-0.020918;, + -0.343938;-0.023161;-0.010977;, + -0.343938;-0.023161;-0.010977;, + -0.340058;-0.013320;-0.020918;, + -0.354882;-0.013843;-0.020918;, + -0.343938;-0.023161;-0.010977;, + -0.354882;-0.013843;-0.020918;, + -0.357080;-0.019417;-0.010977;, + -0.357080;-0.019417;-0.010977;, + -0.354882;-0.013843;-0.020918;, + -0.364734;-0.001757;-0.010977;, + -0.345395;0.025571;-0.020918;, + -0.353803;0.010609;-0.027560;, + -0.341796;0.011032;-0.027560;, + -0.345395;0.025571;-0.020918;, + -0.341796;0.011032;-0.027560;, + -0.334683;0.009006;-0.020918;, + -0.334683;0.009006;-0.020918;, + -0.341796;0.011032;-0.027560;, + -0.346149;-0.007051;-0.027560;, + -0.334683;0.009006;-0.020918;, + -0.346149;-0.007051;-0.027560;, + -0.340058;-0.013320;-0.020918;, + -0.340058;-0.013320;-0.020918;, + -0.346149;-0.007051;-0.027560;, + -0.354882;-0.013843;-0.020918;, + -0.354882;-0.013843;-0.020918;, + -0.346149;-0.007051;-0.027560;, + -0.353803;0.010609;-0.027560;, + -0.354882;-0.013843;-0.020918;, + -0.353803;0.010609;-0.027560;, + -0.364734;-0.001757;-0.010977;, + -0.353803;0.010609;-0.027560;, + -0.346149;-0.007051;-0.027560;, + -0.341796;0.011032;-0.027560;, + -0.330714;0.016180;0.000749;, + -0.330689;0.010437;-0.010977;, + -0.330537;0.010491;-0.009700;, + -0.330689;0.010437;-0.010977;, + -0.330541;-0.000552;-0.010977;, + -0.330537;0.010491;-0.009700;, + -0.330541;-0.000552;-0.010977;, + -0.337711;-0.018734;-0.010977;, + -0.330482;-0.006585;0.000749;, + -0.330450;0.010522;0.010475;, + -0.333429;0.020496;0.012475;, + -0.330714;0.016180;0.000749;, + 0.000224;0.002143;0.595628;, + -0.008890;-0.095426;0.395935;, + -0.008890;-0.032981;0.420611;, + -0.008890;0.036602;0.420611;, + -0.008890;0.099047;0.395935;, + 0.000224;0.002143;0.595628;, + -0.008890;0.036602;0.420611;, + 0.000224;0.002143;0.595628;, + -0.008890;-0.032981;0.420611;, + -0.008890;0.029007;-0.496839;, + -0.000927;0.097453;-0.523513;, + -0.000927;0.097453;-0.395219;, + -0.000927;-0.094040;-0.395219;, + -0.000927;-0.094040;-0.523514;, + -0.008890;-0.025594;-0.496839;, + -0.008890;0.036602;0.420611;, + -0.008890;-0.032981;0.420611;, + -0.008890;-0.017132;0.396076;, + -0.008890;0.020934;0.396076;, + -0.008890;0.036602;0.420611;, + -0.008890;-0.017132;0.396076;, + -0.008890;-0.025594;-0.496839;, + -0.008890;-0.025602;-0.523513;, + -0.008890;0.029015;-0.523513;, + -0.008890;-0.025594;-0.496839;, + -0.008890;0.029015;-0.523513;, + -0.008890;0.029007;-0.496839;, + -0.008890;0.020934;0.396076;, + -0.008890;-0.017132;0.396076;, + -0.008890;-0.017033;-0.359665;, + -0.008890;0.020872;-0.359665;, + -0.008890;0.020934;0.396076;, + -0.008890;-0.017033;-0.359665;, + -0.008890;-0.017033;-0.359665;, + -0.000927;-0.094040;-0.395219;, + -0.008890;-0.025594;-0.496839;, + -0.008890;-0.017033;-0.359665;, + -0.008890;-0.025594;-0.496839;, + -0.008890;0.029007;-0.496839;, + -0.008890;-0.017033;-0.359665;, + -0.008890;0.029007;-0.496839;, + -0.000927;0.097453;-0.395219;, + -0.008890;-0.017033;-0.359665;, + -0.000927;0.097453;-0.395219;, + -0.008890;0.020872;-0.359665;, + -0.008890;0.029015;-0.523513;, + -0.008890;-0.025602;-0.523513;, + 0.009522;-0.025602;-0.523513;, + -0.008890;0.029015;-0.523513;, + 0.009522;-0.025602;-0.523513;, + 0.009522;0.029015;-0.523513;, + -0.008890;-0.025602;-0.523513;, + -0.008890;-0.025594;-0.496839;, + 0.009522;-0.025594;-0.496839;, + -0.008890;-0.025602;-0.523513;, + 0.009522;-0.025594;-0.496839;, + 0.009522;-0.025602;-0.523513;, + -0.008890;-0.025594;-0.496839;, + -0.000927;-0.094040;-0.523514;, + 0.001559;-0.094040;-0.523514;, + -0.008890;-0.025594;-0.496839;, + 0.001559;-0.094040;-0.523514;, + 0.009522;-0.025594;-0.496839;, + -0.000927;-0.094040;-0.523514;, + -0.000927;-0.094040;-0.395219;, + 0.001559;-0.094040;-0.395219;, + -0.000927;-0.094040;-0.523514;, + 0.001559;-0.094040;-0.395219;, + 0.001559;-0.094040;-0.523514;, + -0.000927;-0.094040;-0.395219;, + -0.008890;-0.017033;-0.359665;, + 0.009522;-0.017033;-0.359665;, + -0.000927;-0.094040;-0.395219;, + 0.009522;-0.017033;-0.359665;, + 0.001559;-0.094040;-0.395219;, + -0.008890;-0.017033;-0.359665;, + -0.008890;-0.017132;0.396076;, + 0.009522;-0.017132;0.396076;, + -0.008890;-0.017033;-0.359665;, + 0.009522;-0.017132;0.396076;, + 0.009522;-0.017033;-0.359665;, + -0.008890;-0.017132;0.396076;, + -0.008890;-0.032981;0.420611;, + 0.009522;-0.032981;0.420611;, + -0.008890;-0.017132;0.396076;, + 0.009522;-0.032981;0.420611;, + 0.009522;-0.017132;0.396076;, + -0.008890;-0.032981;0.420611;, + -0.008890;-0.095426;0.395935;, + 0.009522;-0.095426;0.395935;, + -0.008890;-0.032981;0.420611;, + 0.009522;-0.095426;0.395935;, + 0.009522;-0.032981;0.420611;, + -0.008890;-0.095426;0.395935;, + 0.000224;0.002143;0.595628;, + 0.000409;0.002143;0.595628;, + -0.008890;-0.095426;0.395935;, + 0.000409;0.002143;0.595628;, + 0.009522;-0.095426;0.395935;, + 0.000224;0.002143;0.595628;, + -0.008890;0.099047;0.395935;, + 0.009522;0.099047;0.395935;, + 0.000224;0.002143;0.595628;, + 0.009522;0.099047;0.395935;, + 0.000409;0.002143;0.595628;, + -0.008890;0.099047;0.395935;, + -0.008890;0.036602;0.420611;, + 0.009522;0.036602;0.420611;, + -0.008890;0.099047;0.395935;, + 0.009522;0.036602;0.420611;, + 0.009522;0.099047;0.395935;, + -0.008890;0.036602;0.420611;, + -0.008890;0.020934;0.396076;, + 0.009522;0.020934;0.396076;, + -0.008890;0.036602;0.420611;, + 0.009522;0.020934;0.396076;, + 0.009522;0.036602;0.420611;, + -0.008890;0.020934;0.396076;, + -0.008890;0.020872;-0.359665;, + 0.009522;0.020872;-0.359665;, + -0.008890;0.020934;0.396076;, + 0.009522;0.020872;-0.359665;, + 0.009522;0.020934;0.396076;, + -0.008890;0.020872;-0.359665;, + -0.000927;0.097453;-0.395219;, + 0.001559;0.097453;-0.395219;, + -0.008890;0.020872;-0.359665;, + 0.001559;0.097453;-0.395219;, + 0.009522;0.020872;-0.359665;, + -0.000927;0.097453;-0.395219;, + -0.000927;0.097453;-0.523513;, + 0.001559;0.097453;-0.523513;, + -0.000927;0.097453;-0.395219;, + 0.001559;0.097453;-0.523513;, + 0.001559;0.097453;-0.395219;, + -0.000927;0.097453;-0.523513;, + -0.008890;0.029007;-0.496839;, + 0.009522;0.029007;-0.496839;, + -0.000927;0.097453;-0.523513;, + 0.009522;0.029007;-0.496839;, + 0.001559;0.097453;-0.523513;, + -0.008890;0.029007;-0.496839;, + -0.008890;0.029015;-0.523513;, + 0.009522;0.029015;-0.523513;, + -0.008890;0.029007;-0.496839;, + 0.009522;0.029015;-0.523513;, + 0.009522;0.029007;-0.496839;, + 0.009522;-0.032981;0.420611;, + 0.009522;-0.095426;0.395935;, + 0.000409;0.002143;0.595628;, + 0.000409;0.002143;0.595628;, + 0.009522;0.099047;0.395935;, + 0.009522;0.036602;0.420611;, + 0.009522;-0.032981;0.420611;, + 0.000409;0.002143;0.595628;, + 0.009522;0.036602;0.420611;, + 0.001559;0.097453;-0.395219;, + 0.001559;0.097453;-0.523513;, + 0.009522;0.029007;-0.496839;, + 0.009522;-0.025594;-0.496839;, + 0.001559;-0.094040;-0.523514;, + 0.001559;-0.094040;-0.395219;, + 0.009522;-0.017132;0.396076;, + 0.009522;-0.032981;0.420611;, + 0.009522;0.036602;0.420611;, + 0.009522;-0.017132;0.396076;, + 0.009522;0.036602;0.420611;, + 0.009522;0.020934;0.396076;, + 0.009522;0.029015;-0.523513;, + 0.009522;-0.025602;-0.523513;, + 0.009522;-0.025594;-0.496839;, + 0.009522;0.029007;-0.496839;, + 0.009522;0.029015;-0.523513;, + 0.009522;-0.025594;-0.496839;, + 0.009522;-0.017033;-0.359665;, + 0.009522;-0.017132;0.396076;, + 0.009522;0.020934;0.396076;, + 0.009522;-0.017033;-0.359665;, + 0.009522;0.020934;0.396076;, + 0.009522;0.020872;-0.359665;, + 0.009522;-0.025594;-0.496839;, + 0.001559;-0.094040;-0.395219;, + 0.009522;-0.017033;-0.359665;, + 0.009522;0.029007;-0.496839;, + 0.009522;-0.025594;-0.496839;, + 0.009522;-0.017033;-0.359665;, + 0.001559;0.097453;-0.395219;, + 0.009522;0.029007;-0.496839;, + 0.009522;-0.017033;-0.359665;, + 0.009522;0.020872;-0.359665;, + 0.001559;0.097453;-0.395219;, + 0.009522;-0.017033;-0.359665;, + -0.019800;0.000000;0.000410;, + -0.009922;0.000000;0.017520;, + -0.009922;-0.083499;0.017520;, + -0.019800;0.000000;0.000410;, + -0.009922;-0.083499;0.017520;, + -0.019800;-0.083499;0.000410;, + -0.009922;0.000000;0.017520;, + 0.009835;0.000000;0.017520;, + 0.009835;-0.083499;0.017520;, + -0.009922;0.000000;0.017520;, + 0.009835;-0.083499;0.017520;, + -0.009922;-0.083499;0.017520;, + 0.009835;0.000000;0.017520;, + 0.019713;0.000000;0.000410;, + 0.019713;-0.083499;0.000410;, + 0.009835;0.000000;0.017520;, + 0.019713;-0.083499;0.000410;, + 0.009835;-0.083499;0.017520;, + 0.019713;0.000000;0.000410;, + 0.009835;0.000000;-0.016700;, + 0.009835;-0.083499;-0.016700;, + 0.019713;0.000000;0.000410;, + 0.009835;-0.083499;-0.016700;, + 0.019713;-0.083499;0.000410;, + 0.009835;0.000000;-0.016700;, + -0.009922;0.000000;-0.016700;, + -0.009922;-0.083499;-0.016700;, + 0.009835;0.000000;-0.016700;, + -0.009922;-0.083499;-0.016700;, + 0.009835;-0.083499;-0.016700;, + -0.009922;0.000000;-0.016700;, + -0.019800;0.000000;0.000410;, + -0.019800;-0.083499;0.000410;, + -0.009922;0.000000;-0.016700;, + -0.019800;-0.083499;0.000410;, + -0.009922;-0.083499;-0.016700;, + -0.009922;0.000000;0.017520;, + -0.019800;0.000000;0.000410;, + -0.000043;0.000000;0.000410;, + 0.009835;0.000000;0.017520;, + -0.009922;0.000000;0.017520;, + -0.000043;0.000000;0.000410;, + 0.019713;0.000000;0.000410;, + 0.009835;0.000000;0.017520;, + -0.000043;0.000000;0.000410;, + 0.009835;0.000000;-0.016700;, + 0.019713;0.000000;0.000410;, + -0.000043;0.000000;0.000410;, + -0.009922;0.000000;-0.016700;, + 0.009835;0.000000;-0.016700;, + -0.000043;0.000000;0.000410;, + -0.019800;0.000000;0.000410;, + -0.009922;0.000000;-0.016700;, + -0.000043;0.000000;0.000410;, + -0.019800;-0.083499;0.000410;, + -0.009922;-0.083499;0.017520;, + -0.000043;-0.083499;0.000410;, + -0.009922;-0.083499;0.017520;, + 0.009835;-0.083499;0.017520;, + -0.000043;-0.083499;0.000410;, + 0.009835;-0.083499;0.017520;, + 0.019713;-0.083499;0.000410;, + -0.000043;-0.083499;0.000410;, + 0.019713;-0.083499;0.000410;, + 0.009835;-0.083499;-0.016700;, + -0.000043;-0.083499;0.000410;, + 0.009835;-0.083499;-0.016700;, + -0.009922;-0.083499;-0.016700;, + -0.000043;-0.083499;0.000410;, + -0.009922;-0.083499;-0.016700;, + -0.019800;-0.083499;0.000410;, + -0.000043;-0.083499;0.000410;; + + 308; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;; + + MeshMaterialList { + 1; + 308; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;; + Material { + 0.592157;0.364706;0.094118;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 308; + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;-0.867093;-0.498146;, + -0.005074;-0.928836;-0.370456;, + -0.003934;0.000000;-0.999992;, + 0.004872;0.867083;-0.498140;, + 0.000646;0.115004;-0.993365;, + 0.001167;0.815720;-0.578446;, + 0.000000;0.867114;0.498109;, + 0.001547;0.843937;0.536440;, + -0.006164;0.000000;0.999981;, + -0.006162;-0.000083;0.999981;, + -0.006445;-0.867096;0.498099;, + 0.000000;-0.936380;0.350988;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + -0.437365;0.615248;0.655883;, + -0.017703;0.501879;0.864756;, + 0.677123;0.437830;0.591448;, + 0.563471;-0.061493;0.823844;, + 0.650008;-0.156460;0.743647;, + 0.025240;-0.715397;0.698262;, + -0.370841;-0.360342;0.855938;, + -0.650029;0.156441;0.743632;, + -0.889393;0.350709;0.293230;, + -0.437257;0.615185;0.656013;, + -0.437321;0.615187;0.655969;, + 0.250841;0.880725;0.401749;, + 0.677098;0.437738;0.591543;, + 0.677091;0.437809;0.591499;, + 0.953480;0.130873;0.271568;, + 0.822481;-0.198012;0.533213;, + 0.822519;-0.197985;0.533165;, + 0.704222;-0.622502;0.341413;, + 0.025133;-0.715300;0.698365;, + 0.025238;-0.715354;0.698307;, + -0.672366;-0.653326;0.347979;, + -0.813818;-0.221656;0.537185;, + -0.813836;-0.221712;0.537135;, + -0.855831;-0.011527;0.517127;, + -0.855831;-0.011528;0.517127;, + -0.910284;0.358947;0.206254;, + -0.893563;0.428989;0.132339;, + -0.570906;0.803154;0.170324;, + -0.570873;0.803171;0.170351;, + -0.034648;0.981074;0.190507;, + 0.256740;0.901435;0.348567;, + 0.523921;0.833875;0.173662;, + 0.830944;0.537295;0.144378;, + 0.830981;0.537223;0.144436;, + 0.957195;0.260725;0.125696;, + 0.963528;0.132252;0.232642;, + 0.992763;0.013440;0.119338;, + 0.964674;-0.232229;0.124392;, + 0.964669;-0.232243;0.124406;, + 0.851619;-0.504648;0.141690;, + 0.716075;-0.632980;0.294231;, + 0.570984;-0.803095;0.170339;, + 0.034515;-0.981079;0.190505;, + 0.034472;-0.981076;0.190530;, + -0.523919;-0.833871;0.173690;, + -0.684136;-0.664763;0.300082;, + -0.903770;-0.427053;0.028742;, + -0.893563;0.428989;-0.132339;, + -0.570906;0.803154;-0.170324;, + -0.316494;0.883757;-0.344680;, + -0.034648;0.981071;-0.190526;, + 0.523880;0.833894;-0.173693;, + 0.523921;0.833875;-0.173662;, + 0.830944;0.537295;-0.144378;, + 0.887135;0.384493;-0.255258;, + 0.957197;0.260725;-0.125687;, + 0.992760;0.013459;-0.119356;, + 0.992763;0.013440;-0.119338;, + 0.964674;-0.232229;-0.124392;, + 0.900349;-0.355049;-0.251619;, + 0.851623;-0.504650;-0.141658;, + 0.570962;-0.803115;-0.170322;, + 0.570984;-0.803095;-0.170339;, + 0.034515;-0.981079;-0.190505;, + -0.358326;-0.844803;-0.397380;, + -0.499395;-0.794839;-0.344724;, + -0.843542;-0.460834;-0.275805;, + -0.885824;-0.423784;-0.189004;, + -0.896289;0.342022;-0.282289;, + -0.437329;0.615198;-0.655953;, + -0.290088;0.810020;-0.509624;, + 0.457669;0.728502;-0.509729;, + 0.677092;0.437810;-0.591497;, + 0.844163;0.365868;-0.391828;, + 0.927208;0.012570;-0.374336;, + 0.822526;-0.197986;-0.533153;, + 0.857877;-0.338300;-0.386781;, + 0.501077;-0.704815;-0.502152;, + 0.025238;-0.715353;-0.698307;, + -0.886277;0.029242;-0.462232;, + -0.389249;0.547563;-0.740716;, + -0.014532;0.412510;-0.910837;, + 0.677107;0.437820;-0.591473;, + 0.649965;-0.156461;-0.743683;, + 0.649953;-0.156447;-0.743697;, + 0.025238;-0.715344;-0.698316;, + -0.483456;-0.209534;-0.849921;, + -0.779559;-0.131916;-0.612279;, + -0.811401;-0.062070;-0.581185;, + 0.000000;0.000000;-1.000000;, + -0.911232;0.352986;-0.212266;, + -0.958090;-0.260951;0.118184;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + -0.000278;0.878263;-0.478178;, + -0.001120;0.867092;-0.498146;, + 0.004100;0.114871;-0.993372;, + 0.000775;-0.867093;-0.498146;, + -0.001089;-0.889213;-0.457492;, + 0.000000;-0.867114;0.498109;, + 0.006213;0.000000;0.999981;, + 0.001611;-0.889207;0.457503;, + -0.000191;0.867114;0.498109;, + -0.000039;0.177728;0.984080;, + 0.000007;0.864378;0.502843;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + -0.437345;0.615221;0.655921;, + -0.017703;0.501878;0.864757;, + 0.677123;0.437872;0.591416;, + 0.563460;-0.061518;0.823849;, + 0.649991;-0.156486;0.743656;, + 0.025240;-0.715397;0.698262;, + -0.370841;-0.360342;0.855938;, + -0.649967;0.156481;0.743678;, + -0.670996;0.593180;0.444861;, + -0.437321;0.615187;0.655969;, + 0.250841;0.880725;0.401749;, + 0.677062;0.437805;0.591535;, + 0.677060;0.437830;0.591519;, + 0.914504;0.202963;0.349983;, + 0.939001;0.053635;0.339707;, + 0.822518;-0.198020;0.533153;, + 0.822517;-0.198021;0.533154;, + 0.704223;-0.622501;0.341414;, + 0.025133;-0.715300;0.698365;, + 0.025238;-0.715353;0.698307;, + -0.672404;-0.653306;0.347942;, + -0.813855;-0.221666;0.537126;, + -0.813864;-0.221696;0.537099;, + -0.862025;0.094070;0.498060;, + -0.949223;-0.153550;0.274589;, + -0.851617;0.504650;0.141690;, + -0.716044;0.633003;0.294259;, + -0.570906;0.803149;0.170348;, + -0.034648;0.981074;0.190507;, + 0.256740;0.901435;0.348567;, + 0.523921;0.833875;0.173662;, + 0.888637;0.439260;0.131815;, + 0.839724;0.542987;-0.005429;, + 0.964677;-0.232245;0.124344;, + 0.908908;-0.414345;0.046955;, + 0.716077;-0.632979;0.294230;, + 0.570984;-0.803095;0.170338;, + 0.034515;-0.981079;0.190505;, + 0.034472;-0.981076;0.190530;, + -0.523918;-0.833871;0.173691;, + -0.684160;-0.664728;0.300104;, + -0.830942;-0.537294;0.144394;, + -0.957198;-0.260725;0.125675;, + -0.957201;-0.260708;0.125689;, + -0.987667;0.107787;0.113559;, + -0.987669;0.107781;0.113548;, + -0.987669;0.107781;-0.113548;, + -0.851640;0.504612;-0.141689;, + -0.851622;0.504652;-0.141656;, + -0.570908;0.803153;-0.170323;, + -0.316494;0.883757;-0.344680;, + -0.034648;0.981071;-0.190526;, + 0.523880;0.833894;-0.173693;, + 0.523921;0.833875;-0.173662;, + 0.910225;0.394551;-0.125774;, + 0.876410;0.433216;-0.210308;, + 0.902181;-0.411279;-0.130073;, + 0.570964;-0.803113;-0.170322;, + 0.570984;-0.803095;-0.170338;, + 0.034515;-0.981079;-0.190505;, + -0.256807;-0.901431;-0.348530;, + -0.523921;-0.833875;-0.173662;, + -0.830944;-0.537295;-0.144378;, + -0.887135;-0.384491;-0.255259;, + -0.957196;-0.260725;-0.125689;, + -0.987667;0.107787;-0.113559;, + -0.862020;0.094070;-0.498068;, + -0.698368;0.413796;-0.583999;, + -0.465698;0.564313;-0.681672;, + -0.290088;0.810020;-0.509624;, + 0.457669;0.728502;-0.509729;, + 0.677075;0.437841;-0.591493;, + 0.844147;0.365908;-0.391825;, + 0.927214;0.012488;-0.374324;, + 0.822541;-0.198027;-0.533115;, + 0.857877;-0.338300;-0.386781;, + 0.501079;-0.704814;-0.502152;, + 0.025238;-0.715353;-0.698307;, + -0.234959;-0.824741;-0.514390;, + -0.844175;-0.365872;-0.391799;, + -0.014532;0.412510;-0.910837;, + 0.677059;0.437830;-0.591521;, + 0.649917;-0.156450;-0.743728;, + 0.649937;-0.156473;-0.743706;, + 0.025238;-0.715344;-0.698316;, + -0.483456;-0.209534;-0.849921;, + -0.779590;-0.131905;-0.612243;, + 0.000000;0.000000;-1.000000;, + 0.957668;0.259333;-0.124973;, + 0.992833;0.013371;-0.118758;, + 0.913351;-0.360176;-0.189906;, + 0.957206;0.260695;0.125676;, + -0.998156;-0.022309;0.056456;, + -0.998162;0.022273;0.056365;, + -0.998647;0.000000;0.052004;, + -0.993300;0.115560;0.000000;, + -0.993300;-0.115560;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.994358;-0.105873;0.006608;, + -1.000000;0.000000;0.000000;, + -0.996663;0.077389;0.025974;, + -0.975825;0.000000;-0.218555;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;-1.000000;0.000300;, + 0.000000;-1.000000;0.000300;, + 0.000000;0.363121;-0.931742;, + 0.000000;0.363121;-0.931742;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-0.419178;0.907904;, + 0.000000;-0.419178;0.907904;, + 0.000000;-1.000000;-0.000131;, + 0.000000;-1.000000;-0.000131;, + 0.000000;-0.839985;-0.542610;, + 0.000000;-0.839985;-0.542610;, + 0.000000;0.367510;-0.930020;, + 0.000000;0.367510;-0.930020;, + 0.000000;-0.898488;0.438998;, + 0.000000;-0.898489;0.438997;, + 0.000000;0.899667;0.436577;, + 0.000000;0.899667;0.436577;, + 0.000000;-0.367510;-0.930020;, + 0.000000;-0.367510;-0.930020;, + 0.000000;0.842808;-0.538215;, + 0.000000;0.842808;-0.538215;, + 0.000000;1.000000;-0.000082;, + 0.000000;1.000000;-0.000082;, + 0.000000;0.421097;0.907016;, + 0.000000;0.421097;0.907016;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-0.363110;-0.931746;, + 0.000000;-0.363110;-0.931746;, + 0.000000;1.000000;0.000300;, + 0.000000;1.000000;0.000300;, + 0.998156;-0.022307;0.056450;, + 0.998162;0.022271;0.056358;, + 0.998647;0.000000;0.051999;, + 0.993300;0.115560;0.000000;, + 0.993300;-0.115560;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.994358;-0.105873;0.006608;, + 1.000000;0.000000;0.000000;, + 0.996663;0.077389;0.025974;, + 0.975825;0.000000;-0.218555;, + -0.866036;0.000000;0.499982;, + -0.866036;0.000000;0.499982;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.866036;0.000000;0.499982;, + 0.866036;0.000000;0.499982;, + 0.866036;0.000000;-0.499982;, + 0.866036;0.000000;-0.499982;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + -0.866036;0.000000;-0.499982;, + -0.866036;0.000000;-0.499982;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;; + + 308; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;; + } # MeshNormals + MeshTextureCoords { + 924; + 0.459114;0.678138;, + 0.468127;0.678138;, + 0.459114;0.678138;, + 0.468127;0.678138;, + 0.477141;0.678138;, + 0.459114;0.678138;, + 0.477141;0.678138;, + 0.477141;0.678138;, + 0.459114;0.678138;, + 0.477141;0.678138;, + 0.468127;0.678138;, + 0.459114;0.678138;, + 0.468127;0.967952;, + 0.459114;0.678138;, + 0.468127;0.678138;, + 0.457973;0.968182;, + 0.459114;0.678138;, + 0.468127;0.967952;, + 0.459114;0.678138;, + 0.457973;0.968182;, + 0.459114;0.678138;, + 0.459114;0.678138;, + 0.459114;0.967912;, + 0.468127;0.678138;, + 0.459114;0.967912;, + 0.459114;0.678138;, + 0.457973;0.968182;, + 0.468451;0.968302;, + 0.468127;0.678138;, + 0.459114;0.967912;, + 0.468127;0.678138;, + 0.468451;0.968302;, + 0.477141;0.678138;, + 0.478928;0.968050;, + 0.477141;0.678138;, + 0.468451;0.968302;, + 0.477141;0.678138;, + 0.478928;0.968050;, + 0.477141;0.678138;, + 0.478928;0.968182;, + 0.477141;0.678138;, + 0.478928;0.968050;, + 0.477141;0.678138;, + 0.478928;0.968182;, + 0.468127;0.678138;, + 0.468127;0.678138;, + 0.478928;0.968182;, + 0.468127;0.967952;, + 0.493746;0.979691;, + 0.493746;0.986860;, + 0.493746;0.984789;, + 0.493746;0.979691;, + 0.493746;0.984789;, + 0.493746;0.977092;, + 0.493746;0.979691;, + 0.487810;0.973336;, + 0.487810;0.985463;, + 0.493746;0.979691;, + 0.487810;0.985463;, + 0.493746;0.986860;, + 0.493746;0.986860;, + 0.487810;0.985463;, + 0.487810;0.995034;, + 0.493746;0.986860;, + 0.487810;0.995034;, + 0.493746;0.984789;, + 0.493746;0.984789;, + 0.487810;0.995034;, + 0.487810;0.990232;, + 0.493746;0.984789;, + 0.487810;0.990232;, + 0.487810;0.976986;, + 0.493746;0.984789;, + 0.487810;0.976986;, + 0.493746;0.977092;, + 0.493746;0.977092;, + 0.487810;0.973336;, + 0.493746;0.979691;, + 0.487810;0.973336;, + 0.478928;0.968050;, + 0.478928;0.974456;, + 0.487810;0.973336;, + 0.478928;0.974456;, + 0.478928;0.980020;, + 0.487810;0.973336;, + 0.478928;0.980020;, + 0.487810;0.985463;, + 0.487810;0.985463;, + 0.478928;0.980020;, + 0.478928;0.991763;, + 0.487810;0.985463;, + 0.478928;0.991763;, + 0.478928;0.996154;, + 0.487810;0.985463;, + 0.478928;0.996154;, + 0.487810;0.995034;, + 0.487810;0.995034;, + 0.478928;0.996154;, + 0.478928;0.998736;, + 0.487810;0.995034;, + 0.478928;0.998736;, + 0.478928;0.996532;, + 0.487810;0.995034;, + 0.478928;0.996532;, + 0.487810;0.990232;, + 0.487810;0.990232;, + 0.478928;0.996532;, + 0.478928;0.986765;, + 0.487810;0.990232;, + 0.478928;0.986765;, + 0.478928;0.980687;, + 0.487810;0.990232;, + 0.478928;0.980687;, + 0.487810;0.976986;, + 0.487810;0.976986;, + 0.478928;0.980687;, + 0.478928;0.970630;, + 0.487810;0.976986;, + 0.478928;0.970630;, + 0.478928;0.968182;, + 0.487810;0.976986;, + 0.478928;0.968182;, + 0.493746;0.977092;, + 0.493746;0.977092;, + 0.478928;0.968182;, + 0.478928;0.968050;, + 0.493746;0.977092;, + 0.478928;0.968050;, + 0.487810;0.973336;, + 0.478928;0.968050;, + 0.468451;0.968302;, + 0.478928;0.974456;, + 0.478928;0.974456;, + 0.468451;0.968302;, + 0.468451;0.973720;, + 0.478928;0.974456;, + 0.468451;0.973720;, + 0.468451;0.979743;, + 0.478928;0.974456;, + 0.468451;0.979743;, + 0.478928;0.980020;, + 0.478928;0.980020;, + 0.468451;0.979743;, + 0.468451;0.986321;, + 0.478928;0.980020;, + 0.468451;0.986321;, + 0.478928;0.991763;, + 0.478928;0.991763;, + 0.468451;0.986321;, + 0.468451;0.992453;, + 0.478928;0.991763;, + 0.468451;0.992453;, + 0.468451;0.997206;, + 0.478928;0.991763;, + 0.468451;0.997206;, + 0.478928;0.996154;, + 0.478928;0.996154;, + 0.468451;0.997206;, + 0.468451;0.999856;, + 0.478928;0.996154;, + 0.468451;0.999856;, + 0.478928;0.998736;, + 0.478928;0.998736;, + 0.468451;0.999856;, + 0.468451;1.000000;, + 0.478928;0.998736;, + 0.468451;1.000000;, + 0.468451;0.997615;, + 0.478928;0.998736;, + 0.468451;0.997615;, + 0.478928;0.996532;, + 0.478928;0.996532;, + 0.468451;0.997615;, + 0.468451;0.993065;, + 0.478928;0.996532;, + 0.468451;0.993065;, + 0.478928;0.986765;, + 0.478928;0.986765;, + 0.468451;0.993065;, + 0.468451;0.987043;, + 0.478928;0.986765;, + 0.468451;0.987043;, + 0.468451;0.980464;, + 0.478928;0.986765;, + 0.468451;0.980464;, + 0.478928;0.980687;, + 0.478928;0.980687;, + 0.468451;0.980464;, + 0.468451;0.974332;, + 0.478928;0.980687;, + 0.468451;0.974332;, + 0.478928;0.970630;, + 0.478928;0.970630;, + 0.468451;0.974332;, + 0.468127;0.967952;, + 0.468451;0.968302;, + 0.457973;0.974456;, + 0.468451;0.973720;, + 0.468451;0.973720;, + 0.457973;0.974456;, + 0.468451;0.979743;, + 0.468451;0.979743;, + 0.457973;0.974456;, + 0.457973;0.986098;, + 0.468451;0.979743;, + 0.457973;0.986098;, + 0.468451;0.986321;, + 0.468451;0.986321;, + 0.457973;0.986098;, + 0.457973;0.991763;, + 0.468451;0.986321;, + 0.457973;0.991763;, + 0.468451;0.992453;, + 0.468451;0.992453;, + 0.457973;0.991763;, + 0.468451;0.997206;, + 0.468451;0.997206;, + 0.457973;0.991763;, + 0.457973;0.998603;, + 0.468451;0.997206;, + 0.457973;0.998603;, + 0.468451;0.999856;, + 0.468451;0.999856;, + 0.457973;0.998603;, + 0.457973;0.998736;, + 0.468451;0.999856;, + 0.457973;0.998736;, + 0.468451;1.000000;, + 0.468451;1.000000;, + 0.457973;0.998736;, + 0.468451;0.997615;, + 0.468451;0.997615;, + 0.457973;0.998736;, + 0.457973;0.992329;, + 0.468451;0.997615;, + 0.457973;0.992329;, + 0.468451;0.993065;, + 0.468451;0.993065;, + 0.457973;0.992329;, + 0.457973;0.986765;, + 0.468451;0.993065;, + 0.457973;0.986765;, + 0.468451;0.987043;, + 0.468451;0.987043;, + 0.457973;0.986765;, + 0.468451;0.980464;, + 0.468451;0.980464;, + 0.457973;0.986765;, + 0.449090;0.976986;, + 0.468451;0.980464;, + 0.449090;0.976986;, + 0.468451;0.974332;, + 0.468451;0.974332;, + 0.449090;0.976986;, + 0.457973;0.968182;, + 0.468451;0.974332;, + 0.457973;0.968182;, + 0.468127;0.967952;, + 0.459114;0.967912;, + 0.449090;0.973336;, + 0.457973;0.974456;, + 0.457973;0.974456;, + 0.449090;0.973336;, + 0.449090;0.985463;, + 0.457973;0.974456;, + 0.449090;0.985463;, + 0.457973;0.986098;, + 0.457973;0.986098;, + 0.449090;0.985463;, + 0.457973;0.991763;, + 0.457973;0.991763;, + 0.449090;0.985463;, + 0.449090;0.995034;, + 0.457973;0.991763;, + 0.449090;0.995034;, + 0.457973;0.998603;, + 0.457973;0.998603;, + 0.449090;0.995034;, + 0.457973;0.998736;, + 0.457973;0.998736;, + 0.449090;0.995034;, + 0.449090;0.990232;, + 0.457973;0.998736;, + 0.449090;0.990232;, + 0.457973;0.992329;, + 0.457973;0.992329;, + 0.449090;0.990232;, + 0.457973;0.986765;, + 0.457973;0.986765;, + 0.449090;0.990232;, + 0.449090;0.976986;, + 0.457973;0.968182;, + 0.449090;0.973336;, + 0.459114;0.967912;, + 0.449090;0.973336;, + 0.443156;0.977950;, + 0.449090;0.985463;, + 0.449090;0.985463;, + 0.443156;0.977950;, + 0.443156;0.988679;, + 0.449090;0.985463;, + 0.443156;0.988679;, + 0.449090;0.995034;, + 0.449090;0.995034;, + 0.443156;0.988679;, + 0.443156;0.984789;, + 0.449090;0.995034;, + 0.443156;0.984789;, + 0.449090;0.990232;, + 0.449090;0.990232;, + 0.443156;0.984789;, + 0.449090;0.976986;, + 0.449090;0.976986;, + 0.443156;0.984789;, + 0.443156;0.977950;, + 0.449090;0.976986;, + 0.443156;0.977950;, + 0.457973;0.968182;, + 0.457973;0.968182;, + 0.443156;0.977950;, + 0.449090;0.973336;, + 0.443156;0.977950;, + 0.443156;0.984789;, + 0.443156;0.988679;, + 0.459114;0.967912;, + 0.457973;0.974456;, + 0.468451;0.968302;, + 0.478928;0.970630;, + 0.468127;0.967952;, + 0.478928;0.968182;, + 0.459114;0.662666;, + 0.468127;0.662666;, + 0.459114;0.662666;, + 0.468127;0.662666;, + 0.477141;0.662666;, + 0.459114;0.662666;, + 0.477141;0.662666;, + 0.477141;0.662666;, + 0.459114;0.662666;, + 0.477141;0.662666;, + 0.468127;0.662666;, + 0.459114;0.662666;, + 0.459114;0.662666;, + 0.459114;0.375053;, + 0.459114;0.662666;, + 0.459114;0.662666;, + 0.468451;0.374895;, + 0.459114;0.375053;, + 0.468451;0.374895;, + 0.459114;0.662666;, + 0.468127;0.662666;, + 0.459114;0.662666;, + 0.459114;0.375053;, + 0.457973;0.375050;, + 0.459114;0.662666;, + 0.457973;0.375050;, + 0.468127;0.662666;, + 0.468451;0.375103;, + 0.468127;0.662666;, + 0.457973;0.375050;, + 0.468127;0.662666;, + 0.468451;0.375103;, + 0.477141;0.662666;, + 0.477141;0.662666;, + 0.478928;0.375050;, + 0.477141;0.662666;, + 0.477141;0.662666;, + 0.468451;0.375103;, + 0.478928;0.375050;, + 0.477141;0.662666;, + 0.477141;0.375131;, + 0.468127;0.662666;, + 0.477141;0.375131;, + 0.477141;0.662666;, + 0.478928;0.375050;, + 0.468451;0.374895;, + 0.468127;0.662666;, + 0.477141;0.375131;, + 0.493746;0.356006;, + 0.493746;0.363175;, + 0.493746;0.361103;, + 0.493746;0.356006;, + 0.493746;0.361103;, + 0.493746;0.353406;, + 0.493746;0.356006;, + 0.487810;0.349650;, + 0.487810;0.361777;, + 0.493746;0.356006;, + 0.487810;0.361777;, + 0.493746;0.363175;, + 0.493746;0.363175;, + 0.487810;0.361777;, + 0.487810;0.371349;, + 0.493746;0.363175;, + 0.487810;0.371349;, + 0.493746;0.361103;, + 0.493746;0.361103;, + 0.487810;0.371349;, + 0.487810;0.366546;, + 0.493746;0.361103;, + 0.487810;0.366546;, + 0.487810;0.353300;, + 0.493746;0.361103;, + 0.487810;0.353300;, + 0.493746;0.353406;, + 0.493746;0.353406;, + 0.487810;0.349650;, + 0.493746;0.356006;, + 0.487810;0.349650;, + 0.478928;0.346567;, + 0.478928;0.356335;, + 0.487810;0.349650;, + 0.478928;0.356335;, + 0.487810;0.361777;, + 0.487810;0.361777;, + 0.478928;0.356335;, + 0.478928;0.368078;, + 0.487810;0.361777;, + 0.478928;0.368078;, + 0.478928;0.372469;, + 0.487810;0.361777;, + 0.478928;0.372469;, + 0.487810;0.371349;, + 0.487810;0.371349;, + 0.478928;0.372469;, + 0.477141;0.375131;, + 0.487810;0.371349;, + 0.477141;0.375131;, + 0.478928;0.375050;, + 0.487810;0.371349;, + 0.478928;0.375050;, + 0.478928;0.372846;, + 0.487810;0.371349;, + 0.478928;0.372846;, + 0.487810;0.366546;, + 0.487810;0.366546;, + 0.478928;0.372846;, + 0.478928;0.363079;, + 0.487810;0.366546;, + 0.478928;0.363079;, + 0.478928;0.357001;, + 0.487810;0.366546;, + 0.478928;0.357001;, + 0.487810;0.353300;, + 0.487810;0.353300;, + 0.478928;0.357001;, + 0.478928;0.346945;, + 0.487810;0.353300;, + 0.478928;0.346945;, + 0.478928;0.344497;, + 0.487810;0.353300;, + 0.478928;0.344497;, + 0.493746;0.353406;, + 0.493746;0.353406;, + 0.478928;0.344497;, + 0.478928;0.346567;, + 0.493746;0.353406;, + 0.478928;0.346567;, + 0.487810;0.349650;, + 0.478928;0.346567;, + 0.468451;0.345484;, + 0.468451;0.350034;, + 0.478928;0.346567;, + 0.468451;0.350034;, + 0.478928;0.356335;, + 0.478928;0.356335;, + 0.468451;0.350034;, + 0.468451;0.356057;, + 0.478928;0.356335;, + 0.468451;0.356057;, + 0.468451;0.362635;, + 0.478928;0.356335;, + 0.468451;0.362635;, + 0.478928;0.368078;, + 0.478928;0.368078;, + 0.468451;0.362635;, + 0.468451;0.368767;, + 0.478928;0.368078;, + 0.468451;0.368767;, + 0.468451;0.374895;, + 0.478928;0.368078;, + 0.468451;0.374895;, + 0.478928;0.372469;, + 0.478928;0.375050;, + 0.468451;0.375103;, + 0.478928;0.372846;, + 0.478928;0.372846;, + 0.468451;0.375103;, + 0.468451;0.369379;, + 0.478928;0.372846;, + 0.468451;0.369379;, + 0.478928;0.363079;, + 0.478928;0.363079;, + 0.468451;0.369379;, + 0.468451;0.363357;, + 0.478928;0.363079;, + 0.468451;0.363357;, + 0.468451;0.356779;, + 0.478928;0.363079;, + 0.468451;0.356779;, + 0.478928;0.357001;, + 0.478928;0.357001;, + 0.468451;0.356779;, + 0.468451;0.350646;, + 0.478928;0.357001;, + 0.468451;0.350646;, + 0.478928;0.346945;, + 0.478928;0.346945;, + 0.468451;0.350646;, + 0.468451;0.345894;, + 0.478928;0.346945;, + 0.468451;0.345894;, + 0.468451;0.343243;, + 0.478928;0.346945;, + 0.468451;0.343243;, + 0.478928;0.344497;, + 0.478928;0.344497;, + 0.468451;0.343243;, + 0.468451;0.345484;, + 0.478928;0.344497;, + 0.468451;0.345484;, + 0.478928;0.346567;, + 0.468451;0.345484;, + 0.457973;0.344497;, + 0.457973;0.346567;, + 0.468451;0.345484;, + 0.457973;0.346567;, + 0.457973;0.350770;, + 0.468451;0.345484;, + 0.457973;0.350770;, + 0.468451;0.350034;, + 0.468451;0.350034;, + 0.457973;0.350770;, + 0.468451;0.356057;, + 0.468451;0.356057;, + 0.457973;0.350770;, + 0.457973;0.362412;, + 0.468451;0.356057;, + 0.457973;0.362412;, + 0.468451;0.362635;, + 0.468451;0.362635;, + 0.457973;0.362412;, + 0.457973;0.368078;, + 0.468451;0.362635;, + 0.457973;0.368078;, + 0.468451;0.368767;, + 0.468451;0.368767;, + 0.457973;0.368078;, + 0.457973;0.374918;, + 0.468451;0.368767;, + 0.457973;0.374918;, + 0.468451;0.374895;, + 0.468451;0.375103;, + 0.457973;0.368643;, + 0.468451;0.369379;, + 0.468451;0.369379;, + 0.457973;0.368643;, + 0.457973;0.363079;, + 0.468451;0.369379;, + 0.457973;0.363079;, + 0.468451;0.363357;, + 0.468451;0.363357;, + 0.457973;0.363079;, + 0.468451;0.356779;, + 0.468451;0.356779;, + 0.457973;0.363079;, + 0.457973;0.351336;, + 0.468451;0.356779;, + 0.457973;0.351336;, + 0.468451;0.350646;, + 0.468451;0.350646;, + 0.457973;0.351336;, + 0.468451;0.345894;, + 0.468451;0.345894;, + 0.457973;0.351336;, + 0.457973;0.344497;, + 0.468451;0.345894;, + 0.457973;0.344497;, + 0.468451;0.343243;, + 0.468451;0.343243;, + 0.457973;0.344497;, + 0.468451;0.345484;, + 0.457973;0.344497;, + 0.443156;0.354264;, + 0.457973;0.346567;, + 0.457973;0.346567;, + 0.443156;0.354264;, + 0.457973;0.350770;, + 0.457973;0.350770;, + 0.443156;0.354264;, + 0.449090;0.361777;, + 0.457973;0.350770;, + 0.449090;0.361777;, + 0.457973;0.362412;, + 0.457973;0.362412;, + 0.449090;0.361777;, + 0.457973;0.368078;, + 0.457973;0.368078;, + 0.449090;0.361777;, + 0.449090;0.371349;, + 0.457973;0.368078;, + 0.449090;0.371349;, + 0.457973;0.374918;, + 0.457973;0.374918;, + 0.449090;0.371349;, + 0.457973;0.375050;, + 0.457973;0.375050;, + 0.449090;0.371349;, + 0.449090;0.366546;, + 0.457973;0.375050;, + 0.449090;0.366546;, + 0.457973;0.368643;, + 0.457973;0.368643;, + 0.449090;0.366546;, + 0.457973;0.363079;, + 0.457973;0.363079;, + 0.449090;0.366546;, + 0.449090;0.353300;, + 0.457973;0.363079;, + 0.449090;0.353300;, + 0.457973;0.351336;, + 0.457973;0.351336;, + 0.449090;0.353300;, + 0.457973;0.344497;, + 0.449090;0.361777;, + 0.443156;0.354264;, + 0.443156;0.364993;, + 0.449090;0.361777;, + 0.443156;0.364993;, + 0.449090;0.371349;, + 0.449090;0.371349;, + 0.443156;0.364993;, + 0.443156;0.361103;, + 0.449090;0.371349;, + 0.443156;0.361103;, + 0.449090;0.366546;, + 0.449090;0.366546;, + 0.443156;0.361103;, + 0.449090;0.353300;, + 0.449090;0.353300;, + 0.443156;0.361103;, + 0.443156;0.354264;, + 0.449090;0.353300;, + 0.443156;0.354264;, + 0.457973;0.344497;, + 0.443156;0.354264;, + 0.443156;0.361103;, + 0.443156;0.364993;, + 0.468451;0.374895;, + 0.457973;0.374918;, + 0.459114;0.375053;, + 0.457973;0.374918;, + 0.457973;0.375050;, + 0.459114;0.375053;, + 0.457973;0.375050;, + 0.457973;0.368643;, + 0.468451;0.375103;, + 0.477141;0.375131;, + 0.478928;0.372469;, + 0.468451;0.374895;, + 1.000000;0.670602;, + 0.821566;0.662458;, + 0.843615;0.662458;, + 0.843615;0.662458;, + 0.821566;0.662458;, + 1.000000;0.670602;, + 0.843615;0.662458;, + 1.000000;0.670602;, + 0.843615;0.662458;, + 0.023835;0.662458;, + 0.000001;0.669574;, + 0.114637;0.669574;, + 0.114637;0.669574;, + 0.000000;0.669574;, + 0.023835;0.662458;, + 0.843615;0.662458;, + 0.843615;0.662458;, + 0.821692;0.662458;, + 0.821692;0.662458;, + 0.843615;0.662458;, + 0.821692;0.662458;, + 0.023835;0.662458;, + 0.000001;0.662458;, + 0.000001;0.662458;, + 0.023835;0.662458;, + 0.000001;0.662458;, + 0.023835;0.662458;, + 0.821692;0.662458;, + 0.821692;0.662458;, + 0.146406;0.662458;, + 0.146406;0.662458;, + 0.821692;0.662458;, + 0.146406;0.662458;, + 0.146406;0.662458;, + 0.114637;0.669574;, + 0.023835;0.662458;, + 0.146406;0.662458;, + 0.023835;0.662458;, + 0.023835;0.662458;, + 0.146406;0.662458;, + 0.023835;0.662458;, + 0.114637;0.669574;, + 0.146406;0.662458;, + 0.114637;0.669574;, + 0.146406;0.662458;, + 0.000001;0.662458;, + 0.000001;0.662458;, + 0.000001;0.678910;, + 0.000001;0.662458;, + 0.000001;0.678910;, + 0.000001;0.678910;, + 0.000001;0.662458;, + 0.023835;0.662458;, + 0.023835;0.678910;, + 0.000001;0.662458;, + 0.023835;0.678910;, + 0.000001;0.678910;, + 0.023835;0.662458;, + 0.000000;0.669574;, + 0.000000;0.671795;, + 0.023835;0.662458;, + 0.000000;0.671795;, + 0.023835;0.678910;, + 0.000000;0.669574;, + 0.114637;0.669574;, + 0.114637;0.671795;, + 0.000000;0.669574;, + 0.114637;0.671795;, + 0.000000;0.671795;, + 0.114637;0.669574;, + 0.146406;0.662458;, + 0.146406;0.678910;, + 0.114637;0.669574;, + 0.146406;0.678910;, + 0.114637;0.671795;, + 0.146406;0.662458;, + 0.821692;0.662458;, + 0.821692;0.678910;, + 0.146406;0.662458;, + 0.821692;0.678910;, + 0.146406;0.678910;, + 0.821692;0.662458;, + 0.843615;0.662458;, + 0.843615;0.678910;, + 0.821692;0.662458;, + 0.843615;0.678910;, + 0.821692;0.678910;, + 0.843615;0.662458;, + 0.821566;0.662458;, + 0.821566;0.678910;, + 0.843615;0.662458;, + 0.821566;0.678910;, + 0.843615;0.678910;, + 0.821566;0.662458;, + 1.000000;0.670602;, + 1.000000;0.670767;, + 0.821566;0.662458;, + 1.000000;0.670767;, + 0.821566;0.678910;, + 1.000000;0.670602;, + 0.821566;0.662458;, + 0.821566;0.678910;, + 1.000000;0.670602;, + 0.821566;0.678910;, + 1.000000;0.670767;, + 0.821566;0.662458;, + 0.843615;0.662458;, + 0.843615;0.678910;, + 0.821566;0.662458;, + 0.843615;0.678910;, + 0.821566;0.678910;, + 0.843615;0.662458;, + 0.821692;0.662458;, + 0.821692;0.678910;, + 0.843615;0.662458;, + 0.821692;0.678910;, + 0.843615;0.678910;, + 0.821692;0.662458;, + 0.146406;0.662458;, + 0.146406;0.678910;, + 0.821692;0.662458;, + 0.146406;0.678910;, + 0.821692;0.678910;, + 0.146406;0.662458;, + 0.114637;0.669574;, + 0.114637;0.671795;, + 0.146406;0.662458;, + 0.114637;0.671795;, + 0.146406;0.678910;, + 0.114637;0.669574;, + 0.000001;0.669574;, + 0.000001;0.671795;, + 0.114637;0.669574;, + 0.000001;0.671795;, + 0.114637;0.671795;, + 0.000001;0.669574;, + 0.023835;0.662458;, + 0.023835;0.678910;, + 0.000001;0.669574;, + 0.023835;0.678910;, + 0.000001;0.671795;, + 0.023835;0.662458;, + 0.000001;0.662458;, + 0.000001;0.678910;, + 0.023835;0.662458;, + 0.000001;0.678910;, + 0.023835;0.678910;, + 0.843615;0.678910;, + 0.821566;0.678910;, + 1.000000;0.670767;, + 1.000000;0.670767;, + 0.821566;0.678910;, + 0.843615;0.678910;, + 0.843615;0.678910;, + 1.000000;0.670767;, + 0.843615;0.678910;, + 0.114637;0.671795;, + 0.000001;0.671795;, + 0.023835;0.678910;, + 0.023835;0.678910;, + 0.000000;0.671795;, + 0.114637;0.671795;, + 0.821692;0.678910;, + 0.843615;0.678910;, + 0.843615;0.678910;, + 0.821692;0.678910;, + 0.843615;0.678910;, + 0.821692;0.678910;, + 0.000001;0.678910;, + 0.000001;0.678910;, + 0.023835;0.678910;, + 0.023835;0.678910;, + 0.000001;0.678910;, + 0.023835;0.678910;, + 0.146406;0.678910;, + 0.821692;0.678910;, + 0.821692;0.678910;, + 0.146406;0.678910;, + 0.821692;0.678910;, + 0.146406;0.678910;, + 0.023835;0.678910;, + 0.114637;0.671795;, + 0.146406;0.678910;, + 0.023835;0.678910;, + 0.023835;0.678910;, + 0.146406;0.678910;, + 0.114637;0.671795;, + 0.023835;0.678910;, + 0.146406;0.678910;, + 0.146406;0.678910;, + 0.114637;0.671795;, + 0.146406;0.678910;, + 0.468148;0.652710;, + 0.483436;0.661536;, + 0.483436;0.661536;, + 0.468148;0.652710;, + 0.483436;0.661536;, + 0.468148;0.652710;, + 0.483436;0.661536;, + 0.483436;0.679190;, + 0.483436;0.679190;, + 0.483436;0.661536;, + 0.483436;0.679190;, + 0.483436;0.661536;, + 0.483436;0.679190;, + 0.468148;0.688016;, + 0.468148;0.688016;, + 0.483436;0.679190;, + 0.468148;0.688016;, + 0.483436;0.679190;, + 0.468148;0.688016;, + 0.452859;0.679190;, + 0.452859;0.679190;, + 0.468148;0.688016;, + 0.452859;0.679190;, + 0.468148;0.688016;, + 0.452859;0.679190;, + 0.452859;0.661536;, + 0.452859;0.661536;, + 0.452859;0.679190;, + 0.452859;0.661536;, + 0.452859;0.679190;, + 0.452859;0.661536;, + 0.468148;0.652710;, + 0.468148;0.652710;, + 0.452859;0.661536;, + 0.468148;0.652710;, + 0.452859;0.661536;, + 0.483436;0.661536;, + 0.468148;0.652710;, + 0.468148;0.670364;, + 0.483436;0.679190;, + 0.483436;0.661536;, + 0.468148;0.670364;, + 0.468148;0.688016;, + 0.483436;0.679190;, + 0.468148;0.670364;, + 0.452859;0.679190;, + 0.468148;0.688016;, + 0.468148;0.670364;, + 0.452859;0.661536;, + 0.452859;0.679190;, + 0.468148;0.670364;, + 0.468148;0.652710;, + 0.452859;0.661536;, + 0.468148;0.670364;, + 0.468148;0.652710;, + 0.483436;0.661536;, + 0.468148;0.670364;, + 0.483436;0.661536;, + 0.483436;0.679190;, + 0.468148;0.670364;, + 0.483436;0.679190;, + 0.468148;0.688016;, + 0.468148;0.670364;, + 0.468148;0.688016;, + 0.452859;0.679190;, + 0.468148;0.670364;, + 0.452859;0.679190;, + 0.452859;0.661536;, + 0.468148;0.670364;, + 0.452859;0.661536;, + 0.468148;0.652710;, + 0.468148;0.670364;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/BIRDBODY.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/BIRDBODY.X new file mode 100644 index 0000000..76263c3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/BIRDBODY.X @@ -0,0 +1,4056 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 1161; + 0.006344;0.000165;0.053233;, + 0.008287;0.000575;0.059299;, + 0.004018;0.000575;0.029345;, + 0.006344;0.000165;0.053233;, + 0.006290;0.000575;0.060501;, + 0.008287;0.000575;0.059299;, + 0.006344;0.000165;0.053233;, + -0.004201;0.000165;0.052935;, + 0.004703;0.000575;0.059548;, + 0.006344;0.000165;0.053233;, + 0.004703;0.000575;0.059548;, + 0.006290;0.000575;0.060501;, + -0.004201;0.000165;0.052935;, + 0.002056;0.000575;0.061559;, + 0.004703;0.000575;0.059548;, + -0.004201;0.000165;0.052935;, + -0.000802;0.000575;0.059971;, + 0.002056;0.000575;0.061559;, + -0.004201;0.000165;0.052935;, + -0.002916;0.000575;0.060395;, + -0.000802;0.000575;0.059971;, + -0.004201;0.000165;0.052935;, + -0.005351;0.000575;0.058913;, + -0.002916;0.000575;0.060395;, + -0.004201;0.000165;0.052935;, + -0.008841;0.000575;0.059760;, + -0.005351;0.000575;0.058913;, + 0.004018;0.000575;0.029345;, + 0.008287;0.000575;0.059299;, + 0.008287;0.000985;0.059299;, + 0.004018;0.000575;0.029345;, + 0.008287;0.000985;0.059299;, + 0.004018;0.000985;0.029345;, + 0.008287;0.000575;0.059299;, + 0.006290;0.000575;0.060501;, + 0.006290;0.000985;0.060501;, + 0.008287;0.000575;0.059299;, + 0.006290;0.000985;0.060501;, + 0.008287;0.000985;0.059299;, + 0.006290;0.000575;0.060501;, + 0.004703;0.000575;0.059548;, + 0.004703;0.000985;0.059548;, + 0.006290;0.000575;0.060501;, + 0.004703;0.000985;0.059548;, + 0.006290;0.000985;0.060501;, + 0.004703;0.000575;0.059548;, + 0.002056;0.000575;0.061559;, + 0.002056;0.000985;0.061559;, + 0.004703;0.000575;0.059548;, + 0.002056;0.000985;0.061559;, + 0.004703;0.000985;0.059548;, + 0.002056;0.000575;0.061559;, + -0.000802;0.000575;0.059971;, + -0.000802;0.000985;0.059971;, + 0.002056;0.000575;0.061559;, + -0.000802;0.000985;0.059971;, + 0.002056;0.000985;0.061559;, + -0.000802;0.000575;0.059971;, + -0.002916;0.000575;0.060395;, + -0.002916;0.000985;0.060395;, + -0.000802;0.000575;0.059971;, + -0.002916;0.000985;0.060395;, + -0.000802;0.000985;0.059971;, + -0.002916;0.000575;0.060395;, + -0.005351;0.000575;0.058913;, + -0.005351;0.000985;0.058913;, + -0.002916;0.000575;0.060395;, + -0.005351;0.000985;0.058913;, + -0.002916;0.000985;0.060395;, + -0.005351;0.000575;0.058913;, + -0.008841;0.000575;0.059760;, + -0.008841;0.000985;0.059760;, + -0.005351;0.000575;0.058913;, + -0.008841;0.000985;0.059760;, + -0.005351;0.000985;0.058913;, + -0.008841;0.000575;0.059760;, + -0.003705;0.000575;0.029345;, + -0.003705;0.000985;0.029345;, + -0.008841;0.000575;0.059760;, + -0.003705;0.000985;0.029345;, + -0.008841;0.000985;0.059760;, + 0.004018;0.000985;0.029345;, + 0.008287;0.000985;0.059299;, + 0.005537;0.001395;0.047514;, + 0.008287;0.000985;0.059299;, + 0.006290;0.000985;0.060501;, + 0.005537;0.001395;0.047514;, + -0.002916;0.000985;0.060395;, + -0.005351;0.000985;0.058913;, + -0.004201;0.001395;0.052935;, + -0.005351;0.000985;0.058913;, + -0.008841;0.000985;0.059760;, + -0.004201;0.001395;0.052935;, + -0.002916;0.000985;0.060395;, + -0.004201;0.001395;0.052935;, + 0.005537;0.001395;0.047514;, + -0.000802;0.000985;0.059971;, + -0.002916;0.000985;0.060395;, + 0.005537;0.001395;0.047514;, + 0.002056;0.000985;0.061559;, + -0.000802;0.000985;0.059971;, + 0.005537;0.001395;0.047514;, + 0.004703;0.000985;0.059548;, + 0.002056;0.000985;0.061559;, + 0.005537;0.001395;0.047514;, + 0.004703;0.000985;0.059548;, + 0.005537;0.001395;0.047514;, + 0.006290;0.000985;0.060501;, + -0.003340;0.000383;0.029687;, + -0.008841;0.000575;0.059760;, + -0.004201;0.000165;0.052935;, + -0.008841;0.000575;0.059760;, + -0.003340;0.000383;0.029687;, + -0.003705;0.000575;0.029345;, + -0.003340;0.000383;0.029687;, + -0.004201;0.000165;0.052935;, + -0.000121;0.000165;0.045785;, + 0.003355;0.000223;0.031170;, + 0.006344;0.000165;0.053233;, + 0.004018;0.000575;0.029345;, + 0.002435;0.000058;0.036433;, + 0.006344;0.000165;0.053233;, + 0.003355;0.000223;0.031170;, + -0.004201;0.000165;0.052935;, + 0.000289;0.000165;0.046564;, + -0.000121;0.000165;0.045785;, + 0.006344;0.000165;0.053233;, + 0.002435;0.000058;0.036433;, + 0.000916;-0.000012;0.043521;, + -0.004201;0.000165;0.052935;, + 0.006344;0.000165;0.053233;, + 0.000289;0.000165;0.046564;, + 0.006344;0.000165;0.053233;, + 0.000916;-0.000012;0.043521;, + 0.000289;0.000165;0.046564;, + -0.004201;0.000165;0.052935;, + -0.000121;0.000165;0.045785;, + 0.000731;0.000165;0.045700;, + -0.000121;0.000165;0.045785;, + -0.004201;0.000165;0.052935;, + 0.000289;0.000165;0.046564;, + 0.004018;0.000575;0.029345;, + 0.003698;0.000440;0.029586;, + 0.003355;0.000223;0.031170;, + -0.003475;0.000575;0.029338;, + -0.003705;0.000575;0.029345;, + -0.003340;0.000383;0.029687;, + 0.004018;0.000575;0.029345;, + 0.003788;0.000575;0.029334;, + 0.003698;0.000440;0.029586;, + 0.003788;0.000575;0.029334;, + 0.004018;0.000575;0.029345;, + 0.004018;0.000985;0.029345;, + -0.003705;0.000575;0.029345;, + -0.003475;0.000575;0.029338;, + -0.003705;0.000985;0.029345;, + -0.003633;0.000986;0.029345;, + -0.003705;0.000985;0.029345;, + -0.003475;0.000575;0.029338;, + 0.004018;0.000985;0.029345;, + 0.003946;0.000985;0.029342;, + 0.003788;0.000575;0.029334;, + 0.004018;0.000985;0.029345;, + 0.005537;0.001395;0.047514;, + 0.003373;0.001395;0.032354;, + 0.003950;0.001014;0.029396;, + 0.004018;0.000985;0.029345;, + 0.003373;0.001395;0.032354;, + 0.004018;0.000985;0.029345;, + 0.003950;0.001014;0.029396;, + 0.003946;0.000985;0.029342;, + -0.008841;0.000985;0.059760;, + -0.003705;0.000985;0.029345;, + -0.003043;0.001395;0.032202;, + -0.003705;0.000985;0.029345;, + -0.003633;0.001021;0.029409;, + -0.003043;0.001395;0.032202;, + -0.008841;0.000985;0.059760;, + -0.003043;0.001395;0.032202;, + -0.004201;0.001395;0.052935;, + -0.003705;0.000985;0.029345;, + -0.003633;0.000986;0.029345;, + -0.003633;0.001021;0.029409;, + -0.004201;0.001395;0.052935;, + -0.003043;0.001395;0.032202;, + -0.000658;0.001395;0.043311;, + 0.003373;0.001395;0.032354;, + -0.004201;0.001395;0.052935;, + 0.000276;0.001395;0.045269;, + -0.004201;0.001395;0.052935;, + -0.000658;0.001395;0.043311;, + -0.000279;0.001395;0.044597;, + 0.000276;0.001395;0.045269;, + -0.004201;0.001395;0.052935;, + -0.000279;0.001395;0.044597;, + 0.003373;0.001395;0.032354;, + 0.005537;0.001395;0.047514;, + 0.001655;0.001395;0.041633;, + 0.001655;0.001395;0.041633;, + 0.005537;0.001395;0.047514;, + 0.001394;0.001395;0.042571;, + -0.004201;0.001395;0.052935;, + 0.001394;0.001395;0.042571;, + 0.001128;0.001395;0.043521;, + 0.001394;0.001395;0.042571;, + 0.005537;0.001395;0.047514;, + 0.001128;0.001395;0.043521;, + 0.005537;0.001395;0.047514;, + -0.004201;0.001395;0.052935;, + 0.000826;0.001395;0.044597;, + 0.001128;0.001395;0.043521;, + 0.005537;0.001395;0.047514;, + 0.000826;0.001395;0.044597;, + 0.000826;0.001395;0.044597;, + -0.004201;0.001395;0.052935;, + 0.001128;0.001395;0.043521;, + 0.001655;0.001395;0.041633;, + 0.001394;0.001395;0.042571;, + -0.004201;0.001395;0.052935;, + -0.001929;0.003021;-0.029801;, + -0.001659;0.003021;-0.029801;, + -0.000951;0.003021;-0.029801;, + -0.001929;0.003021;-0.029801;, + -0.000951;0.003021;-0.029801;, + 0.001047;0.003021;-0.029801;, + 0.002025;0.003021;-0.029801;, + 0.001754;0.003021;-0.029801;, + 0.001047;0.003021;-0.029801;, + 0.001047;0.003021;-0.029801;, + 0.001754;0.003021;-0.029801;, + 0.002250;0.003362;-0.028872;, + 0.001047;0.003021;-0.029801;, + 0.002250;0.003362;-0.028872;, + 0.001335;0.003683;-0.028872;, + 0.001754;0.003021;-0.029801;, + 0.002025;0.003021;-0.029801;, + 0.002597;0.002910;-0.028872;, + 0.001754;0.003021;-0.029801;, + 0.002597;0.002910;-0.028872;, + 0.002250;0.003362;-0.028872;, + 0.002025;0.003021;-0.029801;, + 0.002250;0.002459;-0.028872;, + 0.002597;0.002910;-0.028872;, + 0.002025;0.003021;-0.029801;, + 0.001047;0.003021;-0.029801;, + 0.001335;0.002138;-0.028872;, + 0.002025;0.003021;-0.029801;, + 0.001335;0.002138;-0.028872;, + 0.002250;0.002459;-0.028872;, + -0.000951;0.003021;-0.029801;, + -0.001239;0.002138;-0.028872;, + 0.001047;0.003021;-0.029801;, + -0.000951;0.003021;-0.029801;, + -0.001659;0.003021;-0.029801;, + -0.002154;0.002459;-0.028872;, + -0.000951;0.003021;-0.029801;, + -0.002154;0.002459;-0.028872;, + -0.001239;0.002138;-0.028872;, + -0.001659;0.003021;-0.029801;, + -0.001929;0.003021;-0.029801;, + -0.002502;0.002910;-0.028872;, + -0.001659;0.003021;-0.029801;, + -0.002502;0.002910;-0.028872;, + -0.002154;0.002459;-0.028872;, + -0.001929;0.003021;-0.029801;, + -0.002154;0.003362;-0.028872;, + -0.002502;0.002910;-0.028872;, + -0.001929;0.003021;-0.029801;, + 0.001047;0.003021;-0.029801;, + -0.001239;0.003683;-0.028872;, + -0.001929;0.003021;-0.029801;, + -0.001239;0.003683;-0.028872;, + -0.002154;0.003362;-0.028872;, + 0.001047;0.003021;-0.029801;, + 0.001335;0.003683;-0.028872;, + -0.001239;0.003683;-0.028872;, + 0.001335;0.003683;-0.028872;, + 0.001912;0.005005;-0.027015;, + 0.000046;0.007109;-0.024955;, + 0.001335;0.003683;-0.028872;, + 0.002250;0.003362;-0.028872;, + 0.003242;0.004042;-0.027015;, + 0.001335;0.003683;-0.028872;, + 0.003242;0.004042;-0.027015;, + 0.001912;0.005005;-0.027015;, + 0.002250;0.003362;-0.028872;, + 0.002597;0.002910;-0.028872;, + 0.003747;0.002688;-0.027015;, + 0.002250;0.003362;-0.028872;, + 0.003747;0.002688;-0.027015;, + 0.003242;0.004042;-0.027015;, + 0.002597;0.002910;-0.028872;, + 0.002250;0.002459;-0.028872;, + 0.003242;0.001334;-0.027015;, + 0.002597;0.002910;-0.028872;, + 0.003242;0.001334;-0.027015;, + 0.003747;0.002688;-0.027015;, + 0.002250;0.002459;-0.028872;, + 0.001335;0.002138;-0.028872;, + 0.001912;0.000371;-0.027015;, + 0.002250;0.002459;-0.028872;, + 0.001912;0.000371;-0.027015;, + 0.003242;0.001334;-0.027015;, + 0.001335;0.002138;-0.028872;, + 0.001047;0.003021;-0.029801;, + 0.000046;0.000004;-0.027015;, + 0.001335;0.002138;-0.028872;, + 0.000046;0.000004;-0.027015;, + 0.001912;0.000371;-0.027015;, + 0.001047;0.003021;-0.029801;, + -0.001239;0.002138;-0.028872;, + -0.001816;0.000371;-0.027015;, + 0.001047;0.003021;-0.029801;, + -0.001816;0.000371;-0.027015;, + 0.000046;0.000004;-0.027015;, + -0.001239;0.002138;-0.028872;, + -0.002154;0.002459;-0.028872;, + -0.003146;0.001334;-0.027015;, + -0.001239;0.002138;-0.028872;, + -0.003146;0.001334;-0.027015;, + -0.001816;0.000371;-0.027015;, + -0.002154;0.002459;-0.028872;, + -0.002502;0.002910;-0.028872;, + -0.003651;0.002688;-0.027015;, + -0.002154;0.002459;-0.028872;, + -0.003651;0.002688;-0.027015;, + -0.003146;0.001334;-0.027015;, + -0.002502;0.002910;-0.028872;, + -0.002154;0.003362;-0.028872;, + -0.003146;0.004042;-0.027015;, + -0.002502;0.002910;-0.028872;, + -0.003146;0.004042;-0.027015;, + -0.003651;0.002688;-0.027015;, + -0.002154;0.003362;-0.028872;, + -0.001239;0.003683;-0.028872;, + -0.002033;0.005414;-0.026328;, + -0.002154;0.003362;-0.028872;, + -0.002033;0.005414;-0.026328;, + -0.003146;0.004042;-0.027015;, + -0.001239;0.003683;-0.028872;, + 0.001335;0.003683;-0.028872;, + 0.000046;0.007109;-0.024955;, + -0.001239;0.003683;-0.028872;, + 0.000046;0.007109;-0.024955;, + -0.002033;0.005414;-0.026328;, + 0.001912;0.005005;-0.027015;, + 0.003242;0.004042;-0.027015;, + 0.003607;0.004005;-0.026328;, + 0.003242;0.004042;-0.027015;, + 0.003747;0.002688;-0.027015;, + 0.004171;0.002023;-0.026328;, + 0.003242;0.004042;-0.027015;, + 0.004171;0.002023;-0.026328;, + 0.003607;0.004005;-0.026328;, + 0.003747;0.002688;-0.027015;, + 0.003242;0.001334;-0.027015;, + 0.003607;0.000042;-0.026328;, + 0.003747;0.002688;-0.027015;, + 0.003607;0.000042;-0.026328;, + 0.004171;0.002023;-0.026328;, + 0.003242;0.001334;-0.027015;, + 0.001912;0.000371;-0.027015;, + 0.002129;-0.001368;-0.026328;, + 0.003242;0.001334;-0.027015;, + 0.002129;-0.001368;-0.026328;, + 0.003607;0.000042;-0.026328;, + 0.001912;0.000371;-0.027015;, + 0.000046;0.000004;-0.027015;, + 0.000046;-0.001905;-0.026328;, + 0.001912;0.000371;-0.027015;, + 0.000046;-0.001905;-0.026328;, + 0.002129;-0.001368;-0.026328;, + 0.000046;0.000004;-0.027015;, + -0.001816;0.000371;-0.027015;, + -0.002033;-0.001368;-0.026328;, + 0.000046;0.000004;-0.027015;, + -0.002033;-0.001368;-0.026328;, + 0.000046;-0.001905;-0.026328;, + -0.001816;0.000371;-0.027015;, + -0.003146;0.001334;-0.027015;, + -0.003512;0.000042;-0.026328;, + -0.001816;0.000371;-0.027015;, + -0.003512;0.000042;-0.026328;, + -0.002033;-0.001368;-0.026328;, + -0.003146;0.001334;-0.027015;, + -0.003651;0.002688;-0.027015;, + -0.004075;0.002023;-0.026328;, + -0.003146;0.001334;-0.027015;, + -0.004075;0.002023;-0.026328;, + -0.003512;0.000042;-0.026328;, + -0.003651;0.002688;-0.027015;, + -0.003146;0.004042;-0.027015;, + -0.003512;0.004005;-0.026328;, + -0.003651;0.002688;-0.027015;, + -0.003512;0.004005;-0.026328;, + -0.004075;0.002023;-0.026328;, + -0.003146;0.004042;-0.027015;, + -0.002033;0.005414;-0.026328;, + -0.003512;0.004005;-0.026328;, + 0.000046;0.007109;-0.024955;, + 0.001912;0.005005;-0.027015;, + 0.002557;0.006465;-0.024955;, + 0.001912;0.005005;-0.027015;, + 0.003607;0.004005;-0.026328;, + 0.004338;0.004776;-0.024955;, + 0.001912;0.005005;-0.027015;, + 0.004338;0.004776;-0.024955;, + 0.002557;0.006465;-0.024955;, + 0.003607;0.004005;-0.026328;, + 0.004171;0.002023;-0.026328;, + 0.005019;0.002400;-0.024955;, + 0.003607;0.004005;-0.026328;, + 0.005019;0.002400;-0.024955;, + 0.004338;0.004776;-0.024955;, + 0.004171;0.002023;-0.026328;, + 0.003607;0.000042;-0.026328;, + 0.004338;0.000025;-0.024955;, + 0.004171;0.002023;-0.026328;, + 0.004338;0.000025;-0.024955;, + 0.005019;0.002400;-0.024955;, + 0.003607;0.000042;-0.026328;, + 0.002129;-0.001368;-0.026328;, + 0.004338;0.000025;-0.024955;, + -0.002033;-0.001368;-0.026328;, + -0.003512;0.000042;-0.026328;, + -0.004242;0.000025;-0.024955;, + -0.003512;0.000042;-0.026328;, + -0.004075;0.002023;-0.026328;, + -0.004923;0.002400;-0.024955;, + -0.003512;0.000042;-0.026328;, + -0.004923;0.002400;-0.024955;, + -0.004242;0.000025;-0.024955;, + -0.004075;0.002023;-0.026328;, + -0.003512;0.004005;-0.026328;, + -0.004242;0.004776;-0.024955;, + -0.004075;0.002023;-0.026328;, + -0.004242;0.004776;-0.024955;, + -0.004923;0.002400;-0.024955;, + -0.003512;0.004005;-0.026328;, + -0.002033;0.005414;-0.026328;, + -0.002461;0.006465;-0.024955;, + -0.003512;0.004005;-0.026328;, + -0.002461;0.006465;-0.024955;, + -0.004242;0.004776;-0.024955;, + -0.002033;0.005414;-0.026328;, + 0.000046;0.007109;-0.024955;, + -0.002461;0.006465;-0.024955;, + 0.004338;0.000025;-0.024955;, + 0.002129;-0.001368;-0.026328;, + 0.002435;-0.003709;-0.017573;, + 0.002129;-0.001368;-0.026328;, + 0.000046;-0.001905;-0.026328;, + 0.002435;-0.003709;-0.017573;, + 0.000046;-0.001905;-0.026328;, + -0.002033;-0.001368;-0.026328;, + -0.002339;-0.003709;-0.017573;, + -0.002033;-0.001368;-0.026328;, + -0.004242;0.000025;-0.024955;, + -0.002339;-0.003709;-0.017573;, + 0.002435;-0.003709;-0.017573;, + 0.000046;-0.001905;-0.026328;, + 0.000046;-0.005787;-0.012261;, + 0.000046;-0.001905;-0.026328;, + -0.002339;-0.003709;-0.017573;, + 0.000046;-0.005787;-0.012261;, + 0.002557;0.006465;-0.024955;, + 0.004338;0.004776;-0.024955;, + 0.004094;0.003855;-0.016084;, + 0.004338;0.004776;-0.024955;, + 0.005019;0.002400;-0.024955;, + 0.004094;0.003855;-0.016084;, + -0.004923;0.002400;-0.024955;, + -0.004242;0.004776;-0.024955;, + -0.003976;0.003785;-0.015340;, + -0.004242;0.004776;-0.024955;, + -0.002461;0.006465;-0.024955;, + -0.002303;0.005887;-0.015340;, + -0.004242;0.004776;-0.024955;, + -0.002303;0.005887;-0.015340;, + -0.003976;0.003785;-0.015340;, + -0.002461;0.006465;-0.024955;, + 0.000046;0.007109;-0.024955;, + -0.002303;0.005887;-0.015340;, + 0.000046;0.007109;-0.024955;, + 0.002557;0.006465;-0.024955;, + 0.002399;0.005887;-0.015340;, + 0.000046;0.007109;-0.024955;, + 0.002399;0.005887;-0.015340;, + 0.000046;0.006687;-0.015340;, + 0.002557;0.006465;-0.024955;, + 0.004094;0.003855;-0.016084;, + 0.004072;0.003785;-0.015340;, + 0.002557;0.006465;-0.024955;, + 0.004072;0.003785;-0.015340;, + 0.002399;0.005887;-0.015340;, + 0.004094;0.003855;-0.016084;, + 0.005019;0.002400;-0.024955;, + 0.004712;0.000829;-0.015340;, + 0.004094;0.003855;-0.016084;, + 0.004712;0.000829;-0.015340;, + 0.004072;0.003785;-0.015340;, + 0.005019;0.002400;-0.024955;, + 0.004338;0.000025;-0.024955;, + 0.004072;-0.002126;-0.015340;, + 0.005019;0.002400;-0.024955;, + 0.004072;-0.002126;-0.015340;, + 0.004712;0.000829;-0.015340;, + 0.004338;0.000025;-0.024955;, + 0.002435;-0.003709;-0.017573;, + 0.002399;-0.004228;-0.015340;, + 0.004338;0.000025;-0.024955;, + 0.002399;-0.004228;-0.015340;, + 0.004072;-0.002126;-0.015340;, + 0.002435;-0.003709;-0.017573;, + 0.000046;-0.005787;-0.012261;, + 0.002399;-0.004228;-0.015340;, + 0.000046;-0.005787;-0.012261;, + -0.002339;-0.003709;-0.017573;, + -0.002303;-0.004228;-0.015340;, + -0.002339;-0.003709;-0.017573;, + -0.004242;0.000025;-0.024955;, + -0.003976;-0.002126;-0.015340;, + -0.002339;-0.003709;-0.017573;, + -0.003976;-0.002126;-0.015340;, + -0.002303;-0.004228;-0.015340;, + -0.004242;0.000025;-0.024955;, + -0.004923;0.002400;-0.024955;, + -0.004612;0.000829;-0.015340;, + -0.004242;0.000025;-0.024955;, + -0.004612;0.000829;-0.015340;, + -0.003976;-0.002126;-0.015340;, + -0.004923;0.002400;-0.024955;, + -0.003976;0.003785;-0.015340;, + -0.004612;0.000829;-0.015340;, + -0.002303;0.005887;-0.015340;, + 0.000046;0.007109;-0.024955;, + 0.000046;0.006687;-0.015340;, + 0.000046;0.006687;-0.015340;, + 0.002399;0.005887;-0.015340;, + 0.004018;0.006412;-0.009182;, + 0.002399;0.005887;-0.015340;, + 0.004072;0.003785;-0.015340;, + 0.007724;0.004288;-0.012261;, + 0.002399;0.005887;-0.015340;, + 0.007724;0.004288;-0.012261;, + 0.004018;0.006412;-0.009182;, + 0.004072;0.003785;-0.015340;, + 0.004712;0.000829;-0.015340;, + 0.007827;0.000619;-0.012261;, + 0.004072;0.003785;-0.015340;, + 0.007827;0.000619;-0.012261;, + 0.007724;0.004288;-0.012261;, + 0.004712;0.000829;-0.015340;, + 0.004072;-0.002126;-0.015340;, + 0.006520;-0.002613;-0.012261;, + 0.004712;0.000829;-0.015340;, + 0.006520;-0.002613;-0.012261;, + 0.007827;0.000619;-0.012261;, + 0.004072;-0.002126;-0.015340;, + 0.002399;-0.004228;-0.015340;, + 0.003828;-0.004911;-0.012261;, + 0.004072;-0.002126;-0.015340;, + 0.003828;-0.004911;-0.012261;, + 0.006520;-0.002613;-0.012261;, + 0.002399;-0.004228;-0.015340;, + 0.000046;-0.005787;-0.012261;, + 0.003828;-0.004911;-0.012261;, + 0.000046;-0.005787;-0.012261;, + -0.002303;-0.004228;-0.015340;, + -0.003732;-0.004911;-0.012261;, + -0.002303;-0.004228;-0.015340;, + -0.003976;-0.002126;-0.015340;, + -0.006419;-0.002613;-0.012261;, + -0.002303;-0.004228;-0.015340;, + -0.006419;-0.002613;-0.012261;, + -0.003732;-0.004911;-0.012261;, + -0.003976;-0.002126;-0.015340;, + -0.004612;0.000829;-0.015340;, + -0.007772;0.000619;-0.012261;, + -0.003976;-0.002126;-0.015340;, + -0.007772;0.000619;-0.012261;, + -0.006419;-0.002613;-0.012261;, + -0.004612;0.000829;-0.015340;, + -0.003976;0.003785;-0.015340;, + -0.007668;0.004288;-0.012261;, + -0.004612;0.000829;-0.015340;, + -0.007668;0.004288;-0.012261;, + -0.007772;0.000619;-0.012261;, + -0.003976;0.003785;-0.015340;, + -0.002303;0.005887;-0.015340;, + -0.003732;0.006149;-0.012261;, + -0.003976;0.003785;-0.015340;, + -0.003732;0.006149;-0.012261;, + -0.007668;0.004288;-0.012261;, + -0.002303;0.005887;-0.015340;, + 0.000046;0.006687;-0.015340;, + -0.003732;0.006149;-0.012261;, + 0.007827;0.000619;-0.012261;, + 0.006520;-0.002613;-0.012261;, + 0.007169;-0.003586;-0.006103;, + 0.006520;-0.002613;-0.012261;, + 0.003828;-0.004911;-0.012261;, + 0.007169;-0.003586;-0.006103;, + 0.000046;0.006687;-0.015340;, + 0.004018;0.006412;-0.009182;, + 0.000046;0.007699;-0.006103;, + 0.004018;0.006412;-0.009182;, + 0.007724;0.004288;-0.012261;, + 0.008179;0.004420;-0.006103;, + 0.007724;0.004288;-0.012261;, + 0.007827;0.000619;-0.012261;, + 0.008296;0.000198;-0.006103;, + 0.007724;0.004288;-0.012261;, + 0.008296;0.000198;-0.006103;, + 0.008179;0.004420;-0.006103;, + 0.007827;0.000619;-0.012261;, + 0.007169;-0.003586;-0.006103;, + 0.008296;0.000198;-0.006103;, + 0.007169;-0.003586;-0.006103;, + 0.003828;-0.004911;-0.012261;, + 0.004212;-0.006277;-0.006103;, + 0.003828;-0.004911;-0.012261;, + 0.000046;-0.005787;-0.012261;, + 0.000046;-0.007302;-0.006103;, + 0.003828;-0.004911;-0.012261;, + 0.000046;-0.007302;-0.006103;, + 0.004212;-0.006277;-0.006103;, + 0.000046;-0.005787;-0.012261;, + -0.003732;-0.004911;-0.012261;, + -0.004111;-0.006277;-0.006103;, + 0.000046;-0.005787;-0.012261;, + -0.004111;-0.006277;-0.006103;, + 0.000046;-0.007302;-0.006103;, + -0.003732;-0.004911;-0.012261;, + -0.006419;-0.002613;-0.012261;, + -0.007073;-0.003586;-0.006103;, + -0.003732;-0.004911;-0.012261;, + -0.007073;-0.003586;-0.006103;, + -0.004111;-0.006277;-0.006103;, + -0.006419;-0.002613;-0.012261;, + -0.007772;0.000619;-0.012261;, + -0.007073;-0.003586;-0.006103;, + -0.007772;0.000619;-0.012261;, + -0.007668;0.004288;-0.012261;, + -0.007876;0.004126;0.008027;, + -0.007668;0.004288;-0.012261;, + -0.003732;0.006149;-0.012261;, + -0.004111;0.006674;-0.006103;, + -0.007668;0.004288;-0.012261;, + -0.004111;0.006674;-0.006103;, + -0.007876;0.004126;0.008027;, + -0.003732;0.006149;-0.012261;, + 0.000046;0.006687;-0.015340;, + 0.000046;0.007699;-0.006103;, + -0.003732;0.006149;-0.012261;, + 0.000046;0.007699;-0.006103;, + -0.004111;0.006674;-0.006103;, + 0.000046;0.007699;-0.006103;, + 0.004018;0.006412;-0.009182;, + 0.007773;0.004126;0.008027;, + 0.004018;0.006412;-0.009182;, + 0.008179;0.004420;-0.006103;, + 0.007773;0.004126;0.008027;, + 0.008179;0.004420;-0.006103;, + 0.008296;0.000198;-0.006103;, + 0.007773;0.004126;0.008027;, + -0.004111;-0.006277;-0.006103;, + -0.007073;-0.003586;-0.006103;, + -0.006555;-0.002939;0.000962;, + -0.007073;-0.003586;-0.006103;, + -0.007772;0.000619;-0.012261;, + -0.008038;0.000448;0.000962;, + -0.007073;-0.003586;-0.006103;, + -0.008038;0.000448;0.000962;, + -0.006555;-0.002939;0.000962;, + -0.007772;0.000619;-0.012261;, + -0.007876;0.004126;0.008027;, + -0.008038;0.000448;0.000962;, + 0.000046;0.007699;-0.006103;, + 0.007773;0.004126;0.008027;, + 0.000046;0.006090;0.015091;, + 0.007773;0.004126;0.008027;, + 0.008296;0.000198;-0.006103;, + 0.007872;0.000698;0.008027;, + 0.008296;0.000198;-0.006103;, + 0.007169;-0.003586;-0.006103;, + 0.006132;-0.002293;0.008027;, + 0.008296;0.000198;-0.006103;, + 0.006132;-0.002293;0.008027;, + 0.007872;0.000698;0.008027;, + 0.007169;-0.003586;-0.006103;, + 0.004212;-0.006277;-0.006103;, + 0.006132;-0.002293;0.008027;, + -0.006555;-0.002939;0.000962;, + -0.008038;0.000448;0.000962;, + -0.007970;0.000698;0.008027;, + -0.008038;0.000448;0.000962;, + -0.007876;0.004126;0.008027;, + -0.007970;0.000698;0.008027;, + -0.004111;0.006674;-0.006103;, + 0.000046;0.007699;-0.006103;, + 0.000046;0.006090;0.015091;, + -0.004111;0.006674;-0.006103;, + 0.000046;0.006090;0.015091;, + -0.007876;0.004126;0.008027;, + 0.000046;0.006090;0.015091;, + 0.007773;0.004126;0.008027;, + 0.003188;0.005203;0.016456;, + 0.007872;0.000698;0.008027;, + 0.006132;-0.002293;0.008027;, + 0.005411;-0.001549;0.016456;, + 0.006132;-0.002293;0.008027;, + 0.004212;-0.006277;-0.006103;, + 0.005411;-0.001549;0.016456;, + -0.004111;-0.006277;-0.006103;, + -0.006555;-0.002939;0.000962;, + -0.004291;-0.000967;0.022572;, + -0.006555;-0.002939;0.000962;, + -0.007970;0.000698;0.008027;, + -0.005626;0.000929;0.019186;, + -0.006555;-0.002939;0.000962;, + -0.005626;0.000929;0.019186;, + -0.004291;-0.000967;0.022572;, + -0.007970;0.000698;0.008027;, + -0.007876;0.004126;0.008027;, + -0.005626;0.000929;0.019186;, + 0.003188;0.005203;0.016456;, + 0.007773;0.004126;0.008027;, + 0.005708;0.003649;0.019186;, + 0.007773;0.004126;0.008027;, + 0.007872;0.000698;0.008027;, + 0.005708;0.003649;0.019186;, + 0.004212;-0.006277;-0.006103;, + 0.000046;-0.007302;-0.006103;, + 0.000154;-0.001535;0.029345;, + 0.000046;-0.007302;-0.006103;, + -0.004111;-0.006277;-0.006103;, + -0.002127;-0.001769;0.025959;, + 0.000046;-0.007302;-0.006103;, + -0.002127;-0.001769;0.025959;, + 0.000154;-0.001535;0.029345;, + -0.004111;-0.006277;-0.006103;, + -0.004291;-0.000967;0.022572;, + -0.002127;-0.001769;0.025959;, + -0.005626;0.000929;0.019186;, + -0.007876;0.004126;0.008027;, + -0.005540;0.003649;0.019186;, + -0.007876;0.004126;0.008027;, + 0.000046;0.006090;0.015091;, + -0.005540;0.003649;0.019186;, + 0.003188;0.005203;0.016456;, + 0.005708;0.003649;0.019186;, + 0.004500;0.002985;0.022572;, + 0.005708;0.003649;0.019186;, + 0.007872;0.000698;0.008027;, + 0.005194;0.001009;0.022572;, + 0.005708;0.003649;0.019186;, + 0.005194;0.001009;0.022572;, + 0.004500;0.002985;0.022572;, + 0.007872;0.000698;0.008027;, + 0.005411;-0.001549;0.016456;, + 0.005194;0.001009;0.022572;, + -0.005626;0.000929;0.019186;, + -0.005540;0.003649;0.019186;, + -0.004291;0.002985;0.022572;, + -0.005540;0.003649;0.019186;, + 0.000046;0.006090;0.015091;, + -0.002466;0.004391;0.022572;, + -0.005540;0.003649;0.019186;, + -0.002466;0.004391;0.022572;, + -0.004291;0.002985;0.022572;, + 0.004500;0.002985;0.022572;, + 0.005194;0.001009;0.022572;, + 0.004018;0.001169;0.029345;, + 0.005194;0.001009;0.022572;, + 0.005411;-0.001549;0.016456;, + 0.003490;-0.000195;0.029345;, + 0.005411;-0.001549;0.016456;, + 0.004212;-0.006277;-0.006103;, + 0.002106;-0.001165;0.029345;, + 0.005411;-0.001549;0.016456;, + 0.002106;-0.001165;0.029345;, + 0.003490;-0.000195;0.029345;, + 0.004212;-0.006277;-0.006103;, + 0.000154;-0.001535;0.029345;, + 0.002106;-0.001165;0.029345;, + 0.000154;-0.001535;0.029345;, + -0.002127;-0.001769;0.025959;, + -0.001789;-0.001165;0.029345;, + -0.002127;-0.001769;0.025959;, + -0.004291;-0.000967;0.022572;, + -0.003178;-0.000195;0.029345;, + -0.002127;-0.001769;0.025959;, + -0.003178;-0.000195;0.029345;, + -0.001789;-0.001165;0.029345;, + -0.004291;-0.000967;0.022572;, + -0.005626;0.000929;0.019186;, + -0.003705;0.001169;0.029345;, + -0.005626;0.000929;0.019186;, + -0.004291;0.002985;0.022572;, + -0.003705;0.001169;0.029345;, + 0.003490;-0.000195;0.029345;, + 0.002106;-0.001165;0.029345;, + 0.002435;0.000058;0.036433;, + 0.000046;0.006090;0.015091;, + 0.003188;0.005203;0.016456;, + 0.000276;0.001395;0.045269;, + 0.002435;0.000058;0.036433;, + 0.002106;-0.001165;0.029345;, + 0.000916;-0.000012;0.043521;, + 0.002106;-0.001165;0.029345;, + 0.000154;-0.001535;0.029345;, + 0.000916;-0.000012;0.043521;, + 0.000154;-0.001535;0.029345;, + -0.001789;-0.001165;0.029345;, + -0.000121;0.000165;0.045785;, + -0.002466;0.004391;0.022572;, + 0.000046;0.006090;0.015091;, + 0.000276;0.001395;0.045269;, + -0.000121;0.000165;0.045785;, + -0.003178;-0.000195;0.029345;, + -0.003340;0.000383;0.029687;, + -0.001789;-0.001165;0.029345;, + -0.003178;-0.000195;0.029345;, + -0.000121;0.000165;0.045785;, + 0.003490;-0.000195;0.029345;, + 0.002435;0.000058;0.036433;, + 0.003355;0.000223;0.031170;, + 0.000289;0.000165;0.046564;, + 0.000154;-0.001535;0.029345;, + -0.000121;0.000165;0.045785;, + 0.000154;-0.001535;0.029345;, + 0.000289;0.000165;0.046564;, + 0.000916;-0.000012;0.043521;, + 0.003490;-0.000195;0.029345;, + 0.003355;0.000223;0.031170;, + 0.003698;0.000440;0.029586;, + -0.004291;-0.000967;0.022572;, + -0.003705;0.001169;0.029345;, + -0.003475;0.000575;0.029338;, + -0.003178;-0.000195;0.029345;, + -0.004291;-0.000967;0.022572;, + -0.003475;0.000575;0.029338;, + -0.003340;0.000383;0.029687;, + -0.003178;-0.000195;0.029345;, + -0.003475;0.000575;0.029338;, + 0.005194;0.001009;0.022572;, + 0.003490;-0.000195;0.029345;, + 0.003788;0.000575;0.029334;, + 0.004018;0.001169;0.029345;, + 0.005194;0.001009;0.022572;, + 0.003788;0.000575;0.029334;, + 0.003490;-0.000195;0.029345;, + 0.003698;0.000440;0.029586;, + 0.003788;0.000575;0.029334;, + -0.003475;0.000575;0.029338;, + -0.003705;0.001169;0.029345;, + -0.003633;0.000986;0.029345;, + 0.004018;0.001169;0.029345;, + 0.003788;0.000575;0.029334;, + 0.003946;0.000985;0.029342;, + 0.004500;0.002985;0.022572;, + 0.004018;0.001169;0.029345;, + 0.003373;0.001395;0.032354;, + 0.003373;0.001395;0.032354;, + 0.004018;0.001169;0.029345;, + 0.003950;0.001014;0.029396;, + -0.003705;0.001169;0.029345;, + -0.003043;0.001395;0.032202;, + -0.003633;0.001021;0.029409;, + -0.003705;0.001169;0.029345;, + -0.004291;0.002985;0.022572;, + -0.003043;0.001395;0.032202;, + -0.003633;0.001021;0.029409;, + -0.003633;0.000986;0.029345;, + -0.003705;0.001169;0.029345;, + 0.003950;0.001014;0.029396;, + 0.004018;0.001169;0.029345;, + 0.003946;0.000985;0.029342;, + -0.004291;0.002985;0.022572;, + -0.000658;0.001395;0.043311;, + -0.003043;0.001395;0.032202;, + -0.000658;0.001395;0.043311;, + -0.004291;0.002985;0.022572;, + -0.002466;0.004391;0.022572;, + -0.002466;0.004391;0.022572;, + -0.000279;0.001395;0.044597;, + -0.000658;0.001395;0.043311;, + -0.000279;0.001395;0.044597;, + -0.002466;0.004391;0.022572;, + 0.000276;0.001395;0.045269;, + 0.004500;0.002985;0.022572;, + 0.001655;0.001395;0.041633;, + 0.003188;0.005203;0.016456;, + 0.001655;0.001395;0.041633;, + 0.004500;0.002985;0.022572;, + 0.003373;0.001395;0.032354;, + 0.001394;0.001395;0.042571;, + 0.003188;0.005203;0.016456;, + 0.001655;0.001395;0.041633;, + 0.001128;0.001395;0.043521;, + 0.003188;0.005203;0.016456;, + 0.001394;0.001395;0.042571;, + 0.003188;0.005203;0.016456;, + 0.000826;0.001395;0.044597;, + 0.000276;0.001395;0.045269;, + 0.000826;0.001395;0.044597;, + 0.003188;0.005203;0.016456;, + 0.001128;0.001395;0.043521;, + -0.005013;0.001635;-0.023166;, + -0.005013;0.002459;-0.023166;, + -0.005491;0.002047;-0.022453;, + -0.005013;0.001224;-0.022453;, + -0.005013;0.001635;-0.023166;, + -0.005491;0.002047;-0.022453;, + -0.005013;0.001635;-0.021740;, + -0.005013;0.001224;-0.022453;, + -0.005491;0.002047;-0.022453;, + -0.005013;0.002459;-0.021740;, + -0.005013;0.001635;-0.021740;, + -0.005491;0.002047;-0.022453;, + -0.005013;0.002871;-0.022453;, + -0.005013;0.002459;-0.021740;, + -0.005491;0.002047;-0.022453;, + -0.005013;0.002459;-0.023166;, + -0.005013;0.002871;-0.022453;, + -0.005491;0.002047;-0.022453;, + -0.005013;0.001635;-0.023166;, + -0.005013;0.001224;-0.022453;, + -0.005013;0.002459;-0.023166;, + -0.005013;0.001224;-0.022453;, + -0.005013;0.001635;-0.021740;, + -0.005013;0.002459;-0.023166;, + -0.005013;0.001635;-0.021740;, + -0.005013;0.002459;-0.021740;, + -0.005013;0.002459;-0.023166;, + -0.005013;0.002459;-0.021740;, + -0.005013;0.002871;-0.022453;, + -0.005013;0.002459;-0.023166;, + 0.005537;0.002047;-0.022453;, + 0.005064;0.002459;-0.023166;, + 0.005064;0.001635;-0.023166;, + 0.005537;0.002047;-0.022453;, + 0.005064;0.001635;-0.023166;, + 0.005064;0.001224;-0.022453;, + 0.005537;0.002047;-0.022453;, + 0.005064;0.001224;-0.022453;, + 0.005064;0.001635;-0.021740;, + 0.005537;0.002047;-0.022453;, + 0.005064;0.001635;-0.021740;, + 0.005064;0.002459;-0.021740;, + 0.005537;0.002047;-0.022453;, + 0.005064;0.002459;-0.021740;, + 0.005064;0.002871;-0.022453;, + 0.005537;0.002047;-0.022453;, + 0.005064;0.002871;-0.022453;, + 0.005064;0.002459;-0.023166;, + 0.005064;0.002459;-0.023166;, + 0.005064;0.001224;-0.022453;, + 0.005064;0.001635;-0.023166;, + 0.005064;0.002459;-0.023166;, + 0.005064;0.001635;-0.021740;, + 0.005064;0.001224;-0.022453;, + 0.005064;0.002459;-0.023166;, + 0.005064;0.002459;-0.021740;, + 0.005064;0.001635;-0.021740;, + 0.005064;0.002459;-0.023166;, + 0.005064;0.002871;-0.022453;, + 0.005064;0.002459;-0.021740;, + 0.000866;-0.000177;-0.042525;, + 0.000839;-0.002022;-0.042732;, + 0.000938;-0.001529;-0.041902;, + 0.000938;-0.001529;-0.041902;, + 0.002895;-0.000297;-0.025423;, + 0.002521;0.002590;-0.029206;, + 0.000938;-0.001529;-0.041902;, + 0.002521;0.002590;-0.029206;, + 0.000866;-0.000177;-0.042525;, + 0.000866;-0.000177;-0.042525;, + 0.002521;0.002590;-0.029206;, + 0.001137;0.003030;-0.029826;, + 0.000866;-0.000177;-0.042525;, + 0.001137;0.003030;-0.029826;, + 0.000357;-0.000153;-0.045152;, + 0.002521;0.002590;-0.029206;, + 0.002895;-0.000297;-0.025423;, + 0.001389;-0.000292;-0.025473;, + 0.002521;0.002590;-0.029206;, + 0.001389;-0.000292;-0.025473;, + 0.001137;0.003030;-0.029826;, + 0.002895;-0.000297;-0.025423;, + 0.000938;-0.001529;-0.041902;, + 0.000388;-0.001708;-0.044436;, + 0.002895;-0.000297;-0.025423;, + 0.000388;-0.001708;-0.044436;, + 0.001389;-0.000292;-0.025473;, + 0.000938;-0.001529;-0.041902;, + 0.000839;-0.002022;-0.042732;, + 0.000348;-0.002276;-0.045391;, + 0.000938;-0.001529;-0.041902;, + 0.000348;-0.002276;-0.045391;, + 0.000388;-0.001708;-0.044436;, + 0.000839;-0.002022;-0.042732;, + 0.000866;-0.000177;-0.042525;, + 0.000357;-0.000153;-0.045152;, + 0.000839;-0.002022;-0.042732;, + 0.000357;-0.000153;-0.045152;, + 0.000348;-0.002276;-0.045391;, + 0.000357;-0.000153;-0.045152;, + 0.001137;0.003030;-0.029826;, + -0.000933;0.003030;-0.029826;, + 0.000357;-0.000153;-0.045152;, + -0.000933;0.003030;-0.029826;, + -0.000153;-0.000153;-0.045152;, + 0.001137;0.003030;-0.029826;, + 0.001389;-0.000292;-0.025473;, + -0.001185;-0.000292;-0.025473;, + 0.001137;0.003030;-0.029826;, + -0.001185;-0.000292;-0.025473;, + -0.000933;0.003030;-0.029826;, + 0.001389;-0.000292;-0.025473;, + 0.000388;-0.001708;-0.044436;, + -0.000184;-0.001708;-0.044436;, + 0.001389;-0.000292;-0.025473;, + -0.000184;-0.001708;-0.044436;, + -0.001185;-0.000292;-0.025473;, + 0.000388;-0.001708;-0.044436;, + 0.000348;-0.002276;-0.045391;, + -0.000144;-0.002276;-0.045391;, + 0.000388;-0.001708;-0.044436;, + -0.000144;-0.002276;-0.045391;, + -0.000184;-0.001708;-0.044436;, + 0.000348;-0.002276;-0.045391;, + 0.000357;-0.000153;-0.045152;, + -0.000153;-0.000153;-0.045152;, + 0.000348;-0.002276;-0.045391;, + -0.000153;-0.000153;-0.045152;, + -0.000144;-0.002276;-0.045391;, + -0.000153;-0.000153;-0.045152;, + -0.000933;0.003030;-0.029826;, + -0.002312;0.002590;-0.029206;, + -0.000153;-0.000153;-0.045152;, + -0.002312;0.002590;-0.029206;, + -0.000658;-0.000177;-0.042525;, + -0.000933;0.003030;-0.029826;, + -0.001185;-0.000292;-0.025473;, + -0.002691;-0.000297;-0.025423;, + -0.000933;0.003030;-0.029826;, + -0.002691;-0.000297;-0.025423;, + -0.002312;0.002590;-0.029206;, + -0.001185;-0.000292;-0.025473;, + -0.000184;-0.001708;-0.044436;, + -0.000739;-0.001529;-0.041902;, + -0.001185;-0.000292;-0.025473;, + -0.000739;-0.001529;-0.041902;, + -0.002691;-0.000297;-0.025423;, + -0.000184;-0.001708;-0.044436;, + -0.000144;-0.002276;-0.045391;, + -0.000635;-0.002022;-0.042732;, + -0.000184;-0.001708;-0.044436;, + -0.000635;-0.002022;-0.042732;, + -0.000739;-0.001529;-0.041902;, + -0.000144;-0.002276;-0.045391;, + -0.000153;-0.000153;-0.045152;, + -0.000658;-0.000177;-0.042525;, + -0.000144;-0.002276;-0.045391;, + -0.000658;-0.000177;-0.042525;, + -0.000635;-0.002022;-0.042732;, + -0.000739;-0.001529;-0.041902;, + -0.000635;-0.002022;-0.042732;, + -0.000658;-0.000177;-0.042525;, + -0.002312;0.002590;-0.029206;, + -0.002691;-0.000297;-0.025423;, + -0.000739;-0.001529;-0.041902;, + -0.000658;-0.000177;-0.042525;, + -0.002312;0.002590;-0.029206;, + -0.000739;-0.001529;-0.041902;, + 0.000938;-0.001503;-0.041919;, + 0.000857;-0.001869;-0.042577;, + 0.002859;-0.001783;-0.025801;, + 0.002895;-0.000263;-0.025407;, + 0.000938;-0.001503;-0.041919;, + 0.002859;-0.001783;-0.025801;, + 0.002859;-0.001783;-0.025801;, + 0.000857;-0.001869;-0.042577;, + 0.000357;-0.002100;-0.045213;, + 0.002859;-0.001783;-0.025801;, + 0.000357;-0.002100;-0.045213;, + 0.001367;-0.002002;-0.025908;, + 0.000857;-0.001869;-0.042577;, + 0.000938;-0.001503;-0.041919;, + 0.000384;-0.001679;-0.044455;, + 0.000857;-0.001869;-0.042577;, + 0.000384;-0.001679;-0.044455;, + 0.000357;-0.002100;-0.045213;, + 0.000938;-0.001503;-0.041919;, + 0.002895;-0.000263;-0.025407;, + 0.001389;-0.000252;-0.025455;, + 0.000938;-0.001503;-0.041919;, + 0.001389;-0.000252;-0.025455;, + 0.000384;-0.001679;-0.044455;, + 0.002895;-0.000263;-0.025407;, + 0.002859;-0.001783;-0.025801;, + 0.001367;-0.002002;-0.025908;, + 0.002895;-0.000263;-0.025407;, + 0.001367;-0.002002;-0.025908;, + 0.001389;-0.000252;-0.025455;, + 0.001367;-0.002002;-0.025908;, + 0.000357;-0.002100;-0.045213;, + -0.000153;-0.002100;-0.045213;, + 0.001367;-0.002002;-0.025908;, + -0.000153;-0.002100;-0.045213;, + -0.001163;-0.002002;-0.025908;, + 0.000357;-0.002100;-0.045213;, + 0.000384;-0.001679;-0.044455;, + -0.000180;-0.001679;-0.044455;, + 0.000357;-0.002100;-0.045213;, + -0.000180;-0.001679;-0.044455;, + -0.000153;-0.002100;-0.045213;, + 0.000384;-0.001679;-0.044455;, + 0.001389;-0.000252;-0.025455;, + -0.001185;-0.000252;-0.025455;, + 0.000384;-0.001679;-0.044455;, + -0.001185;-0.000252;-0.025455;, + -0.000180;-0.001679;-0.044455;, + 0.001389;-0.000252;-0.025455;, + 0.001367;-0.002002;-0.025908;, + -0.001163;-0.002002;-0.025908;, + 0.001389;-0.000252;-0.025455;, + -0.001163;-0.002002;-0.025908;, + -0.001185;-0.000252;-0.025455;, + -0.001163;-0.002002;-0.025908;, + -0.000153;-0.002100;-0.045213;, + -0.000653;-0.001869;-0.042577;, + -0.001163;-0.002002;-0.025908;, + -0.000653;-0.001869;-0.042577;, + -0.002655;-0.001783;-0.025801;, + -0.000153;-0.002100;-0.045213;, + -0.000180;-0.001679;-0.044455;, + -0.000734;-0.001503;-0.041919;, + -0.000153;-0.002100;-0.045213;, + -0.000734;-0.001503;-0.041919;, + -0.000653;-0.001869;-0.042577;, + -0.000180;-0.001679;-0.044455;, + -0.001185;-0.000252;-0.025455;, + -0.002691;-0.000263;-0.025407;, + -0.000180;-0.001679;-0.044455;, + -0.002691;-0.000263;-0.025407;, + -0.000734;-0.001503;-0.041919;, + -0.001185;-0.000252;-0.025455;, + -0.001163;-0.002002;-0.025908;, + -0.002655;-0.001783;-0.025801;, + -0.001185;-0.000252;-0.025455;, + -0.002655;-0.001783;-0.025801;, + -0.002691;-0.000263;-0.025407;, + -0.002655;-0.001783;-0.025801;, + -0.000653;-0.001869;-0.042577;, + -0.000734;-0.001503;-0.041919;, + -0.002655;-0.001783;-0.025801;, + -0.000734;-0.001503;-0.041919;, + -0.002691;-0.000263;-0.025407;; + + 387; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;, + 3;926,925,924;, + 3;929,928,927;, + 3;932,931,930;, + 3;935,934,933;, + 3;938,937,936;, + 3;941,940,939;, + 3;944,943,942;, + 3;947,946,945;, + 3;950,949,948;, + 3;953,952,951;, + 3;956,955,954;, + 3;959,958,957;, + 3;962,961,960;, + 3;965,964,963;, + 3;968,967,966;, + 3;971,970,969;, + 3;974,973,972;, + 3;977,976,975;, + 3;980,979,978;, + 3;983,982,981;, + 3;986,985,984;, + 3;989,988,987;, + 3;992,991,990;, + 3;995,994,993;, + 3;998,997,996;, + 3;1001,1000,999;, + 3;1004,1003,1002;, + 3;1007,1006,1005;, + 3;1010,1009,1008;, + 3;1013,1012,1011;, + 3;1016,1015,1014;, + 3;1019,1018,1017;, + 3;1022,1021,1020;, + 3;1025,1024,1023;, + 3;1028,1027,1026;, + 3;1031,1030,1029;, + 3;1034,1033,1032;, + 3;1037,1036,1035;, + 3;1040,1039,1038;, + 3;1043,1042,1041;, + 3;1046,1045,1044;, + 3;1049,1048,1047;, + 3;1052,1051,1050;, + 3;1055,1054,1053;, + 3;1058,1057,1056;, + 3;1061,1060,1059;, + 3;1064,1063,1062;, + 3;1067,1066,1065;, + 3;1070,1069,1068;, + 3;1073,1072,1071;, + 3;1076,1075,1074;, + 3;1079,1078,1077;, + 3;1082,1081,1080;, + 3;1085,1084,1083;, + 3;1088,1087,1086;, + 3;1091,1090,1089;, + 3;1094,1093,1092;, + 3;1097,1096,1095;, + 3;1100,1099,1098;, + 3;1103,1102,1101;, + 3;1106,1105,1104;, + 3;1109,1108,1107;, + 3;1112,1111,1110;, + 3;1115,1114,1113;, + 3;1118,1117,1116;, + 3;1121,1120,1119;, + 3;1124,1123,1122;, + 3;1127,1126,1125;, + 3;1130,1129,1128;, + 3;1133,1132,1131;, + 3;1136,1135,1134;, + 3;1139,1138,1137;, + 3;1142,1141,1140;, + 3;1145,1144,1143;, + 3;1148,1147,1146;, + 3;1151,1150,1149;, + 3;1154,1153,1152;, + 3;1157,1156,1155;, + 3;1160,1159,1158;; + + MeshMaterialList { + 3; + 387; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;; + Material { + 0.800000;0.800000;0.800000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/bird.ppm"; + } #TextureFilename + } # Material + Material { + 0.000000;0.000000;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/bird.ppm"; + } #TextureFilename + } # Material + Material { + 0.000000;0.000000;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/bird.ppm"; + } #TextureFilename + } # Material + } # MeshMaterialList + MeshNormals { + 387; + 0.354897;-0.933536;-0.050579;, + 0.034033;-0.997820;0.056542;, + -0.001818;-0.997928;0.064318;, + -0.033653;-0.997861;0.056041;, + 0.023267;-0.999260;0.030626;, + -0.044075;-0.995874;0.079323;, + 0.010639;-0.998535;0.053047;, + -0.037271;-0.997427;0.061238;, + 0.017413;-0.997271;0.071747;, + 0.989996;0.000000;-0.141093;, + 0.989996;0.000000;-0.141093;, + 0.515695;0.000000;0.856772;, + 0.515695;0.000000;0.856772;, + -0.514814;0.000000;0.857302;, + -0.514814;0.000000;0.857302;, + 0.604946;0.000000;0.796267;, + 0.604946;0.000000;0.796267;, + -0.485694;0.000000;0.874129;, + -0.485694;0.000000;0.874129;, + 0.196650;0.000000;0.980474;, + 0.196650;0.000000;0.980474;, + -0.519902;0.000000;0.854226;, + -0.519902;0.000000;0.854226;, + 0.235847;0.000000;0.971790;, + 0.235847;0.000000;0.971790;, + -0.986040;0.000000;-0.166507;, + -0.986040;0.000000;-0.166507;, + 0.357223;0.932631;-0.050911;, + 0.018350;0.999367;0.030486;, + -0.037271;0.997427;0.061238;, + 0.017413;0.997271;0.071747;, + 0.027872;0.998357;0.050068;, + 0.007346;0.999302;0.036629;, + -0.014251;0.999569;0.025647;, + 0.027295;0.998982;0.035927;, + -0.019628;0.999273;0.032685;, + -0.107406;-0.994126;-0.013300;, + -0.412513;-0.908284;-0.069659;, + -0.017570;-0.999795;-0.010026;, + 0.355935;-0.933136;-0.050674;, + 0.092163;-0.995629;-0.015103;, + 0.000000;-1.000000;0.000000;, + 0.036319;-0.999338;-0.002086;, + 0.000000;-1.000000;0.000000;, + -0.052085;-0.997522;0.047290;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.355412;-0.933323;-0.050899;, + -0.014537;-0.878434;-0.477642;, + 0.022284;-0.884553;-0.465907;, + 0.047775;0.000000;-0.998858;, + -0.030420;0.000000;-0.999537;, + -0.000235;0.016938;-0.999856;, + 0.041640;0.003449;-0.999127;, + 0.356036;0.933089;-0.050822;, + 0.359980;0.931631;-0.049778;, + 0.019762;0.880211;-0.474170;, + -0.336717;0.939888;-0.056859;, + -0.424441;0.904907;-0.031513;, + -0.095827;0.995384;-0.005352;, + -0.012185;0.877308;-0.479773;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.938756;-0.344581;, + 0.261653;0.745834;-0.612592;, + 0.000000;0.992937;0.118639;, + 0.665967;0.511263;-0.543230;, + 0.691261;-0.531857;-0.489169;, + 0.000000;-0.724824;-0.688934;, + 0.277429;-0.790801;-0.545588;, + 0.000000;-0.724824;-0.688934;, + 0.000000;-0.855618;-0.517608;, + -0.234137;-0.667398;-0.706937;, + 0.000000;-0.992937;-0.118639;, + -0.620814;-0.479031;-0.620580;, + -0.731629;0.563289;-0.383959;, + 0.000000;0.814384;-0.580326;, + -0.304497;0.867957;-0.392342;, + 0.000000;0.814384;-0.580326;, + 0.195656;0.769164;-0.608362;, + 0.293418;0.836378;-0.463009;, + 0.467184;0.645228;-0.604500;, + 0.731738;0.561755;-0.385993;, + 0.793292;0.295873;-0.532116;, + 0.621058;-0.477843;-0.621251;, + 0.795602;-0.296735;-0.528173;, + 0.233993;-0.666990;-0.707370;, + 0.457066;-0.631254;-0.626586;, + 0.137759;-0.696237;-0.704469;, + 0.136894;-0.696035;-0.704837;, + -0.000354;-0.724389;-0.689391;, + -0.128032;-0.649577;-0.749438;, + -0.265023;-0.755438;-0.599230;, + -0.424565;-0.586367;-0.689868;, + -0.689919;-0.532354;-0.490522;, + -0.763175;-0.284641;-0.580124;, + -0.665364;0.512271;-0.543019;, + -0.825135;0.307750;-0.473753;, + -0.265419;0.756568;-0.597626;, + -0.514283;0.679322;-0.523483;, + 0.000000;0.752708;-0.658355;, + -0.233186;0.768581;-0.595740;, + 0.566483;0.782370;-0.258833;, + 0.911081;0.339805;-0.233374;, + 0.861557;0.245166;-0.444537;, + 0.613291;-0.228738;-0.756012;, + 0.729698;-0.207748;-0.651446;, + 0.239474;-0.330737;-0.912834;, + 0.345817;-0.362495;-0.865452;, + 0.066451;-0.337867;-0.938845;, + 0.091763;-0.355947;-0.929990;, + -0.070730;-0.358856;-0.930709;, + -0.087131;-0.337327;-0.937346;, + -0.280552;-0.387471;-0.878156;, + -0.302513;-0.317317;-0.898775;, + -0.690727;-0.257620;-0.675669;, + -0.671195;-0.190754;-0.716317;, + -0.844573;0.314999;-0.432981;, + -0.913709;0.259545;-0.312685;, + -0.655317;0.687874;-0.312073;, + 0.197381;0.769604;-0.607249;, + 0.570992;0.547692;-0.611556;, + 0.555859;0.586137;-0.589461;, + 0.799346;0.227463;-0.556154;, + 0.799899;0.229264;-0.554617;, + 0.854893;-0.243392;-0.458168;, + 0.853541;-0.244741;-0.459968;, + 0.646005;-0.677160;-0.352325;, + -0.645910;-0.677518;-0.351808;, + -0.853757;-0.242638;-0.460679;, + -0.854766;-0.245093;-0.457499;, + -0.801042;0.227541;-0.553675;, + -0.798846;0.228962;-0.556257;, + -0.546719;0.573881;-0.609720;, + -0.544342;0.573992;-0.611740;, + -0.192489;0.749332;-0.633601;, + 0.615535;-0.755728;-0.223588;, + 0.241151;-0.935414;-0.258549;, + -0.241587;-0.935305;-0.258535;, + -0.615535;-0.755728;-0.223588;, + 0.239769;-0.935848;-0.258261;, + -0.240148;-0.935758;-0.258236;, + 0.685081;0.722397;0.093844;, + 0.959842;0.275106;0.054963;, + -0.959844;0.275107;0.054909;, + -0.687082;0.724507;0.054844;, + -0.779562;0.620460;0.085516;, + -0.248321;0.966679;0.062192;, + 0.247950;0.966774;0.062192;, + 0.321618;0.945959;0.041518;, + 0.699665;0.709105;0.087406;, + 0.781440;0.621955;0.050230;, + 0.974301;0.215278;0.066283;, + 0.976193;0.211354;0.048752;, + 0.960673;-0.275460;-0.035047;, + 0.977335;-0.211673;-0.003380;, + 0.741827;-0.655720;-0.140445;, + 0.777067;-0.618474;-0.116863;, + 0.336301;-0.918485;-0.208055;, + -0.336821;-0.918306;-0.208005;, + -0.769375;-0.627594;-0.119116;, + -0.775687;-0.617376;-0.130987;, + -0.961170;-0.275603;-0.013942;, + -0.977417;-0.210368;-0.020022;, + -0.975506;0.209886;0.065846;, + -0.322109;0.945792;0.041511;, + 0.317584;0.934092;-0.163132;, + 0.545087;0.433839;-0.717401;, + 0.375166;0.910053;-0.176221;, + 0.700014;0.151559;-0.697861;, + 0.643021;0.018052;-0.765636;, + 0.759260;-0.164442;-0.629669;, + 0.667613;-0.269979;-0.693833;, + 0.699468;-0.556713;-0.448124;, + 0.547718;-0.641626;-0.536955;, + 0.214862;-0.927636;-0.305493;, + -0.215072;-0.927561;-0.305574;, + -0.635176;-0.505542;-0.583934;, + -0.588170;-0.687734;-0.425533;, + -0.685193;-0.147473;-0.713276;, + -0.722771;-0.302571;-0.621332;, + -0.623827;0.134220;-0.769952;, + -0.698406;0.019797;-0.715428;, + -0.722380;0.574949;-0.384189;, + -0.356711;0.754441;-0.550978;, + -0.314172;0.922487;-0.224308;, + 0.915855;-0.370366;-0.155043;, + 0.638007;-0.747395;-0.185333;, + 0.231227;0.967113;-0.105956;, + 0.462926;0.884801;-0.053171;, + 0.996865;0.027985;-0.074009;, + 0.996857;0.027625;-0.074247;, + 0.954321;-0.284228;-0.092114;, + 0.659213;-0.724375;-0.201792;, + 0.219435;-0.947378;-0.233075;, + 0.232820;-0.946271;-0.224425;, + -0.220129;-0.949370;-0.224142;, + -0.232851;-0.944353;-0.232331;, + -0.638633;-0.746740;-0.185814;, + -0.658663;-0.724994;-0.201360;, + -0.910993;-0.381366;-0.157008;, + -0.999548;0.028333;-0.010022;, + -0.425178;0.899249;-0.102833;, + -0.558146;0.829742;0.000903;, + -0.224438;0.968692;-0.106129;, + -0.238272;0.966337;-0.097050;, + 0.342627;0.938147;0.049860;, + 0.412960;0.910228;0.030805;, + 0.999188;0.027690;0.029286;, + -0.667874;-0.735133;0.116290;, + -0.980438;-0.195566;-0.022252;, + -0.911135;-0.398941;0.103338;, + -0.996581;0.080407;-0.019008;, + 0.307062;0.948959;0.072043;, + 0.999164;0.028856;0.028961;, + 0.953968;-0.284123;0.096011;, + 0.863550;-0.502366;0.043689;, + 0.668493;-0.734572;0.116279;, + -0.915797;-0.400982;0.023004;, + -0.999587;0.027410;0.008651;, + -0.238754;0.968294;0.073511;, + -0.312391;0.945930;0.087338;, + 0.263527;0.964442;0.020117;, + 0.858388;-0.499363;0.117502;, + 0.653493;-0.747062;0.121839;, + -0.639796;-0.756406;0.136054;, + -0.757803;-0.629348;0.172208;, + -0.905818;-0.402695;0.131647;, + -0.978402;0.026829;0.204963;, + 0.426181;0.897013;0.117209;, + 0.982691;0.028380;0.183063;, + 0.236014;-0.959253;0.155341;, + -0.236707;-0.959991;0.149625;, + -0.136438;-0.977727;0.159481;, + -0.541172;-0.827456;0.149830;, + -0.978050;0.030924;0.206065;, + -0.329781;0.937730;0.109120;, + 0.268950;0.922505;0.276856;, + 0.982847;0.039650;0.180112;, + 0.875538;0.307502;0.372661;, + 0.921675;-0.345194;0.177078;, + -0.935897;0.029591;0.351029;, + -0.336050;0.936536;0.099855;, + -0.570408;0.740394;0.355600;, + 0.932226;0.327412;0.154129;, + 0.925891;-0.335716;0.173264;, + 0.496329;-0.854594;0.152729;, + 0.565674;-0.807106;0.169096;, + 0.184097;-0.971240;0.151001;, + -0.183645;-0.964384;0.190360;, + -0.584004;-0.790146;0.186031;, + -0.561062;-0.803418;0.199322;, + -0.927446;-0.326077;0.183077;, + -0.929963;0.326959;0.168126;, + 0.570203;-0.813568;0.113910;, + 0.208253;0.966689;0.148807;, + 0.569545;-0.814014;0.114018;, + 0.185389;-0.978051;0.095112;, + -0.186166;-0.977621;0.097978;, + -0.201552;0.967600;0.152072;, + -0.915072;-0.361843;0.178080;, + -0.568170;-0.813596;0.123467;, + 0.921978;-0.357021;0.149974;, + -0.186160;-0.977622;0.097978;, + 0.185477;-0.978036;0.095105;, + 0.921226;-0.358809;0.150328;, + -0.914512;-0.356361;0.191509;, + -0.916461;-0.351759;0.190695;, + -0.921220;-0.353858;0.161673;, + 0.920052;-0.353663;0.168604;, + 0.918244;-0.358658;0.167908;, + 0.924143;-0.355662;0.139517;, + -0.834794;-0.328444;0.441864;, + 0.465549;-0.196246;0.862990;, + 0.910015;0.379647;0.166553;, + 0.917723;-0.329739;0.221486;, + -0.909932;-0.339868;0.237727;, + -0.907479;0.379458;0.180257;, + -0.912456;-0.358999;0.196326;, + 0.923034;-0.363254;0.126708;, + -0.873131;0.450005;0.187453;, + -0.601899;0.781269;0.165337;, + -0.563378;0.809344;0.166034;, + -0.181926;0.971765;0.150251;, + 0.601530;0.783639;0.155151;, + 0.905575;0.389643;0.167667;, + 0.564089;0.810659;0.156958;, + 0.560920;0.812836;0.157058;, + 0.179220;0.972813;0.146682;, + 0.559675;0.813689;0.157083;, + -0.830614;0.000000;-0.556849;, + -0.830621;-0.482426;-0.278089;, + -0.830621;-0.482426;0.278089;, + -0.830614;0.000000;0.556849;, + -0.830778;0.481932;0.278479;, + -0.830778;0.481932;-0.278479;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.833307;0.000000;-0.552811;, + 0.833314;-0.478928;-0.276072;, + 0.833314;-0.478928;0.276072;, + 0.833307;0.000000;0.552811;, + 0.833469;0.478435;0.276459;, + 0.833469;0.478435;-0.276459;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.993053;-0.001332;-0.117657;, + 0.992951;-0.023575;-0.116158;, + 0.992454;-0.003627;-0.122567;, + 0.388031;0.891592;-0.233443;, + 0.824957;0.543561;-0.154875;, + -0.017539;0.793995;0.607672;, + -0.019533;0.794256;0.607269;, + -0.041774;-0.995965;0.079421;, + -0.005793;-0.997184;0.074767;, + -0.973084;-0.127634;0.191878;, + -0.924656;-0.309021;0.222524;, + 0.981730;0.006967;-0.190153;, + 0.982960;0.016443;-0.183080;, + 0.000000;0.979107;-0.203347;, + 0.000000;0.979107;-0.203347;, + 0.000000;0.794954;0.606670;, + 0.000000;0.794954;0.606670;, + 0.000000;-0.997224;0.074464;, + 0.000000;-0.997224;0.074464;, + 0.000000;-0.859472;0.511183;, + 0.000000;-0.859472;0.511183;, + 0.000000;0.111870;-0.993723;, + 0.000000;0.111870;-0.993723;, + -0.380493;0.901416;-0.206577;, + -0.938932;0.294605;-0.177804;, + 0.017523;0.794342;0.607218;, + 0.019985;0.793829;0.607813;, + 0.024181;-0.996836;0.075712;, + 0.005809;-0.997149;0.075237;, + 0.942091;-0.269416;0.199699;, + 0.959703;-0.171866;0.222336;, + -0.981906;0.017069;-0.188600;, + -0.983202;0.008201;-0.182337;, + -0.992115;0.001692;-0.125318;, + -0.993012;-0.021650;-0.116007;, + -0.992312;0.002434;-0.123734;, + 0.992936;-0.006781;-0.118459;, + 0.992962;0.007127;-0.118221;, + 0.758070;-0.646324;-0.087153;, + 0.145408;-0.989368;-0.002585;, + 0.956857;0.187416;-0.222036;, + 0.929989;0.306290;-0.203242;, + 0.009706;0.997059;-0.076026;, + 0.034335;0.996466;-0.076656;, + -0.032695;-0.250058;0.967679;, + -0.032669;-0.250079;0.967674;, + 0.000000;-0.999987;0.005076;, + 0.000000;-0.999987;0.005076;, + 0.000000;0.874212;-0.485545;, + 0.000000;0.874212;-0.485545;, + 0.000000;0.997191;-0.074894;, + 0.000000;0.997191;-0.074894;, + 0.000000;-0.250598;0.968091;, + 0.000000;-0.250598;0.968091;, + -0.514999;-0.856893;-0.022594;, + -0.146084;-0.989195;-0.012362;, + -0.912364;0.343227;-0.223130;, + -0.970807;0.137936;-0.196232;, + -0.009686;0.997106;-0.075400;, + -0.056718;0.995062;-0.081448;, + 0.032691;-0.250079;0.967674;, + 0.032669;-0.250059;0.967679;, + -0.992936;-0.006780;-0.118459;, + -0.992962;0.007127;-0.118221;; + + 387; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;, + 3;308,308,308;, + 3;309,309,309;, + 3;310,310,310;, + 3;311,311,311;, + 3;312,312,312;, + 3;313,313,313;, + 3;314,314,314;, + 3;315,315,315;, + 3;316,316,316;, + 3;317,317,317;, + 3;318,318,318;, + 3;319,319,319;, + 3;320,320,320;, + 3;321,321,321;, + 3;322,322,322;, + 3;323,323,323;, + 3;324,324,324;, + 3;325,325,325;, + 3;326,326,326;, + 3;327,327,327;, + 3;328,328,328;, + 3;329,329,329;, + 3;330,330,330;, + 3;331,331,331;, + 3;332,332,332;, + 3;333,333,333;, + 3;334,334,334;, + 3;335,335,335;, + 3;336,336,336;, + 3;337,337,337;, + 3;338,338,338;, + 3;339,339,339;, + 3;340,340,340;, + 3;341,341,341;, + 3;342,342,342;, + 3;343,343,343;, + 3;344,344,344;, + 3;345,345,345;, + 3;346,346,346;, + 3;347,347,347;, + 3;348,348,348;, + 3;349,349,349;, + 3;350,350,350;, + 3;351,351,351;, + 3;352,352,352;, + 3;353,353,353;, + 3;354,354,354;, + 3;355,355,355;, + 3;356,356,356;, + 3;357,357,357;, + 3;358,358,358;, + 3;359,359,359;, + 3;360,360,360;, + 3;361,361,361;, + 3;362,362,362;, + 3;363,363,363;, + 3;364,364,364;, + 3;365,365,365;, + 3;366,366,366;, + 3;367,367,367;, + 3;368,368,368;, + 3;369,369,369;, + 3;370,370,370;, + 3;371,371,371;, + 3;372,372,372;, + 3;373,373,373;, + 3;374,374,374;, + 3;375,375,375;, + 3;376,376,376;, + 3;377,377,377;, + 3;378,378,378;, + 3;379,379,379;, + 3;380,380,380;, + 3;381,381,381;, + 3;382,382,382;, + 3;383,383,383;, + 3;384,384,384;, + 3;385,385,385;, + 3;386,386,386;; + } # MeshNormals + MeshTextureCoords { + 1161; + 0.113917;0.922152;, + 0.000526;0.978871;, + 0.249671;0.698797;, + 0.113917;0.922152;, + 0.117074;0.990104;, + 0.000526;0.978871;, + 0.113917;0.922152;, + 0.729282;0.919361;, + 0.209682;0.981197;, + 0.113917;0.922152;, + 0.209682;0.981197;, + 0.117074;0.990104;, + 0.729282;0.919361;, + 0.364115;1.000000;, + 0.209682;0.981197;, + 0.729282;0.919361;, + 0.530913;0.985156;, + 0.364115;1.000000;, + 0.729282;0.919361;, + 0.654301;0.989113;, + 0.530913;0.985156;, + 0.729282;0.919361;, + 0.796369;0.975260;, + 0.654301;0.989113;, + 0.729282;0.919361;, + 1.000000;0.983177;, + 0.796369;0.975260;, + 0.249671;0.698797;, + 0.000526;0.978871;, + 0.000526;0.978871;, + 0.249671;0.698797;, + 0.000526;0.978871;, + 0.249671;0.698797;, + 0.000526;0.978871;, + 0.117074;0.990104;, + 0.117074;0.990104;, + 0.000526;0.978871;, + 0.117074;0.990104;, + 0.000526;0.978871;, + 0.117074;0.990104;, + 0.209682;0.981197;, + 0.209682;0.981197;, + 0.117074;0.990104;, + 0.209682;0.981197;, + 0.117074;0.990104;, + 0.209682;0.981197;, + 0.364115;1.000000;, + 0.364115;1.000000;, + 0.209682;0.981197;, + 0.364115;1.000000;, + 0.209682;0.981197;, + 0.364115;1.000000;, + 0.530913;0.985156;, + 0.530913;0.985156;, + 0.364115;1.000000;, + 0.530913;0.985156;, + 0.364115;1.000000;, + 0.530913;0.985156;, + 0.654301;0.989113;, + 0.654301;0.989113;, + 0.530913;0.985156;, + 0.654301;0.989113;, + 0.530913;0.985156;, + 0.654301;0.989113;, + 0.796369;0.975260;, + 0.796369;0.975260;, + 0.654301;0.989113;, + 0.796369;0.975260;, + 0.654301;0.989113;, + 0.796369;0.975260;, + 1.000000;0.983177;, + 1.000000;0.983177;, + 0.796369;0.975260;, + 1.000000;0.983177;, + 0.796369;0.975260;, + 1.000000;0.983177;, + 0.700342;0.698796;, + 0.700342;0.698796;, + 1.000000;0.983177;, + 0.700342;0.698796;, + 1.000000;0.983177;, + 0.249671;0.698797;, + 0.000526;0.978871;, + 0.161010;0.868677;, + 0.000526;0.978871;, + 0.117074;0.990104;, + 0.161010;0.868677;, + 0.654301;0.989113;, + 0.796369;0.975260;, + 0.729282;0.919361;, + 0.796369;0.975260;, + 1.000000;0.983177;, + 0.729282;0.919361;, + 0.654301;0.989113;, + 0.729282;0.919361;, + 0.161010;0.868677;, + 0.530913;0.985156;, + 0.654301;0.989113;, + 0.161010;0.868677;, + 0.364115;1.000000;, + 0.530913;0.985156;, + 0.161010;0.868677;, + 0.209682;0.981197;, + 0.364115;1.000000;, + 0.161010;0.868677;, + 0.209682;0.981197;, + 0.161010;0.868677;, + 0.117074;0.990104;, + 0.679032;0.701992;, + 1.000000;0.983177;, + 0.729282;0.919361;, + 1.000000;0.983177;, + 0.679032;0.701992;, + 0.700342;0.698796;, + 0.679032;0.701992;, + 0.729282;0.919361;, + 0.491186;0.852508;, + 0.288345;0.715858;, + 0.113917;0.922152;, + 0.249671;0.698797;, + 0.342015;0.765070;, + 0.113917;0.922152;, + 0.288345;0.715858;, + 0.729282;0.919361;, + 0.467245;0.859793;, + 0.491186;0.852508;, + 0.113917;0.922152;, + 0.342015;0.765070;, + 0.430676;0.831346;, + 0.729282;0.919361;, + 0.113917;0.922152;, + 0.467245;0.859793;, + 0.113917;0.922152;, + 0.430676;0.831346;, + 0.467245;0.859793;, + 0.729282;0.919361;, + 0.491186;0.852508;, + 0.441463;0.851716;, + 0.491186;0.852508;, + 0.729282;0.919361;, + 0.467245;0.859793;, + 0.249671;0.698797;, + 0.268350;0.701051;, + 0.288345;0.715858;, + 0.686924;0.698725;, + 0.700342;0.698796;, + 0.679032;0.701992;, + 0.249671;0.698797;, + 0.263089;0.698687;, + 0.268350;0.701051;, + 0.263089;0.698687;, + 0.249671;0.698797;, + 0.249671;0.698797;, + 0.700342;0.698796;, + 0.686924;0.698725;, + 0.700342;0.698796;, + 0.696133;0.698795;, + 0.700342;0.698796;, + 0.686924;0.698725;, + 0.249671;0.698797;, + 0.253880;0.698762;, + 0.263089;0.698687;, + 0.249671;0.698797;, + 0.161010;0.868677;, + 0.287293;0.726931;, + 0.253617;0.699274;, + 0.249671;0.698797;, + 0.287293;0.726931;, + 0.249671;0.698797;, + 0.253617;0.699274;, + 0.253880;0.698762;, + 1.000000;0.983177;, + 0.700342;0.698796;, + 0.661668;0.725503;, + 0.700342;0.698796;, + 0.696133;0.699391;, + 0.661668;0.725503;, + 1.000000;0.983177;, + 0.661668;0.725503;, + 0.729282;0.919361;, + 0.700342;0.698796;, + 0.696133;0.698795;, + 0.696133;0.699391;, + 0.729282;0.919361;, + 0.661668;0.725503;, + 0.522494;0.829381;, + 0.287293;0.726931;, + 0.729282;0.919361;, + 0.468035;0.847683;, + 0.729282;0.919361;, + 0.522494;0.829381;, + 0.500395;0.841404;, + 0.468035;0.847683;, + 0.729282;0.919361;, + 0.500395;0.841404;, + 0.287293;0.726931;, + 0.161010;0.868677;, + 0.387530;0.813693;, + 0.387530;0.813693;, + 0.161010;0.868677;, + 0.402789;0.822455;, + 0.729282;0.919361;, + 0.402789;0.822455;, + 0.418311;0.831346;, + 0.402789;0.822455;, + 0.161010;0.868677;, + 0.418311;0.831346;, + 0.161010;0.868677;, + 0.729282;0.919361;, + 0.435938;0.841404;, + 0.418311;0.831346;, + 0.161010;0.868677;, + 0.435938;0.841404;, + 0.435938;0.841404;, + 0.729282;0.919361;, + 0.418311;0.831346;, + 0.387530;0.813693;, + 0.402789;0.822455;, + 0.729282;0.919361;, + 0.596685;0.145767;, + 0.580900;0.145767;, + 0.539595;0.145767;, + 0.596685;0.145767;, + 0.539595;0.145767;, + 0.423046;0.145767;, + 0.365956;0.145767;, + 0.381742;0.145767;, + 0.423046;0.145767;, + 0.423046;0.145767;, + 0.381742;0.145767;, + 0.352802;0.154451;, + 0.423046;0.145767;, + 0.352802;0.154451;, + 0.406209;0.154451;, + 0.381742;0.145767;, + 0.365956;0.145767;, + 0.332544;0.154451;, + 0.381742;0.145767;, + 0.332544;0.154451;, + 0.352802;0.154451;, + 0.365956;0.145767;, + 0.352802;0.154451;, + 0.332544;0.154451;, + 0.365956;0.145767;, + 0.423046;0.145767;, + 0.406209;0.154451;, + 0.365956;0.145767;, + 0.406209;0.154451;, + 0.352802;0.154451;, + 0.539595;0.145767;, + 0.556432;0.154451;, + 0.423046;0.145767;, + 0.539595;0.145767;, + 0.580900;0.145767;, + 0.609839;0.154451;, + 0.539595;0.145767;, + 0.609839;0.154451;, + 0.556432;0.154451;, + 0.580900;0.145767;, + 0.596685;0.145767;, + 0.630097;0.154451;, + 0.580900;0.145767;, + 0.630097;0.154451;, + 0.609839;0.154451;, + 0.596685;0.145767;, + 0.609839;0.154451;, + 0.630097;0.154451;, + 0.596685;0.145767;, + 0.423046;0.145767;, + 0.556432;0.154451;, + 0.596685;0.145767;, + 0.556432;0.154451;, + 0.609839;0.154451;, + 0.423046;0.145767;, + 0.406209;0.154451;, + 0.556432;0.154451;, + 0.406209;0.154451;, + 0.372533;0.171821;, + 0.481452;0.191075;, + 0.406209;0.154451;, + 0.352802;0.154451;, + 0.294922;0.171821;, + 0.406209;0.154451;, + 0.294922;0.171821;, + 0.372533;0.171821;, + 0.352802;0.154451;, + 0.332544;0.154451;, + 0.265456;0.171821;, + 0.352802;0.154451;, + 0.265456;0.171821;, + 0.294922;0.171821;, + 0.332544;0.154451;, + 0.352802;0.154451;, + 0.294922;0.171821;, + 0.332544;0.154451;, + 0.294922;0.171821;, + 0.265456;0.171821;, + 0.352802;0.154451;, + 0.406209;0.154451;, + 0.372533;0.171821;, + 0.352802;0.154451;, + 0.372533;0.171821;, + 0.294922;0.171821;, + 0.406209;0.154451;, + 0.423046;0.145767;, + 0.481452;0.171821;, + 0.406209;0.154451;, + 0.481452;0.171821;, + 0.372533;0.171821;, + 0.423046;0.145767;, + 0.556432;0.154451;, + 0.590108;0.171821;, + 0.423046;0.145767;, + 0.590108;0.171821;, + 0.481452;0.171821;, + 0.556432;0.154451;, + 0.609839;0.154451;, + 0.667719;0.171821;, + 0.556432;0.154451;, + 0.667719;0.171821;, + 0.590108;0.171821;, + 0.609839;0.154451;, + 0.630097;0.154451;, + 0.697185;0.171821;, + 0.609839;0.154451;, + 0.697185;0.171821;, + 0.667719;0.171821;, + 0.630097;0.154451;, + 0.609839;0.154451;, + 0.667719;0.171821;, + 0.630097;0.154451;, + 0.667719;0.171821;, + 0.697185;0.171821;, + 0.609839;0.154451;, + 0.556432;0.154451;, + 0.602736;0.178239;, + 0.609839;0.154451;, + 0.602736;0.178239;, + 0.667719;0.171821;, + 0.556432;0.154451;, + 0.406209;0.154451;, + 0.481452;0.191075;, + 0.556432;0.154451;, + 0.481452;0.191075;, + 0.602736;0.178239;, + 0.372533;0.171821;, + 0.294922;0.171821;, + 0.273612;0.178239;, + 0.294922;0.171821;, + 0.265456;0.171821;, + 0.240726;0.178239;, + 0.294922;0.171821;, + 0.240726;0.178239;, + 0.273612;0.178239;, + 0.265456;0.171821;, + 0.294922;0.171821;, + 0.273612;0.178239;, + 0.265456;0.171821;, + 0.273612;0.178239;, + 0.240726;0.178239;, + 0.294922;0.171821;, + 0.372533;0.171821;, + 0.359905;0.178239;, + 0.294922;0.171821;, + 0.359905;0.178239;, + 0.273612;0.178239;, + 0.372533;0.171821;, + 0.481452;0.171821;, + 0.481452;0.178239;, + 0.372533;0.171821;, + 0.481452;0.178239;, + 0.359905;0.178239;, + 0.481452;0.171821;, + 0.590108;0.171821;, + 0.602736;0.178239;, + 0.481452;0.171821;, + 0.602736;0.178239;, + 0.481452;0.178239;, + 0.590108;0.171821;, + 0.667719;0.171821;, + 0.689029;0.178239;, + 0.590108;0.171821;, + 0.689029;0.178239;, + 0.602736;0.178239;, + 0.667719;0.171821;, + 0.697185;0.171821;, + 0.721915;0.178239;, + 0.667719;0.171821;, + 0.721915;0.178239;, + 0.689029;0.178239;, + 0.697185;0.171821;, + 0.667719;0.171821;, + 0.689029;0.178239;, + 0.697185;0.171821;, + 0.689029;0.178239;, + 0.721915;0.178239;, + 0.667719;0.171821;, + 0.602736;0.178239;, + 0.689029;0.178239;, + 0.481452;0.191075;, + 0.372533;0.171821;, + 0.334912;0.191075;, + 0.372533;0.171821;, + 0.273612;0.178239;, + 0.230992;0.191075;, + 0.372533;0.171821;, + 0.230992;0.191075;, + 0.334912;0.191075;, + 0.273612;0.178239;, + 0.240726;0.178239;, + 0.191265;0.191075;, + 0.273612;0.178239;, + 0.191265;0.191075;, + 0.230992;0.191075;, + 0.240726;0.178239;, + 0.273612;0.178239;, + 0.230992;0.191075;, + 0.240726;0.178239;, + 0.230992;0.191075;, + 0.191265;0.191075;, + 0.273612;0.178239;, + 0.359905;0.178239;, + 0.230992;0.191075;, + 0.602736;0.178239;, + 0.689029;0.178239;, + 0.731650;0.191075;, + 0.689029;0.178239;, + 0.721915;0.178239;, + 0.771376;0.191075;, + 0.689029;0.178239;, + 0.771376;0.191075;, + 0.731650;0.191075;, + 0.721915;0.178239;, + 0.689029;0.178239;, + 0.731650;0.191075;, + 0.721915;0.178239;, + 0.731650;0.191075;, + 0.771376;0.191075;, + 0.689029;0.178239;, + 0.602736;0.178239;, + 0.627730;0.191075;, + 0.689029;0.178239;, + 0.627730;0.191075;, + 0.731650;0.191075;, + 0.602736;0.178239;, + 0.481452;0.191075;, + 0.627730;0.191075;, + 0.230992;0.191075;, + 0.359905;0.178239;, + 0.342015;0.260100;, + 0.359905;0.178239;, + 0.481452;0.178239;, + 0.342015;0.260100;, + 0.481452;0.178239;, + 0.602736;0.178239;, + 0.620626;0.260100;, + 0.602736;0.178239;, + 0.731650;0.191075;, + 0.620626;0.260100;, + 0.342015;0.260100;, + 0.481452;0.178239;, + 0.481452;0.309773;, + 0.481452;0.178239;, + 0.620626;0.260100;, + 0.481452;0.309773;, + 0.334912;0.191075;, + 0.230992;0.191075;, + 0.245199;0.274022;, + 0.230992;0.191075;, + 0.191265;0.191075;, + 0.245199;0.274022;, + 0.771376;0.191075;, + 0.731650;0.191075;, + 0.716127;0.280984;, + 0.731650;0.191075;, + 0.627730;0.191075;, + 0.618521;0.280984;, + 0.731650;0.191075;, + 0.618521;0.280984;, + 0.716127;0.280984;, + 0.627730;0.191075;, + 0.481452;0.191075;, + 0.618521;0.280984;, + 0.481452;0.191075;, + 0.334912;0.191075;, + 0.344120;0.280984;, + 0.481452;0.191075;, + 0.344120;0.280984;, + 0.481452;0.280984;, + 0.334912;0.191075;, + 0.245199;0.274022;, + 0.246514;0.280984;, + 0.334912;0.191075;, + 0.246514;0.280984;, + 0.344120;0.280984;, + 0.245199;0.274022;, + 0.191265;0.191075;, + 0.209155;0.280984;, + 0.245199;0.274022;, + 0.209155;0.280984;, + 0.246514;0.280984;, + 0.191265;0.191075;, + 0.230992;0.191075;, + 0.246514;0.280984;, + 0.191265;0.191075;, + 0.246514;0.280984;, + 0.209155;0.280984;, + 0.230992;0.191075;, + 0.342015;0.260100;, + 0.344120;0.280984;, + 0.230992;0.191075;, + 0.344120;0.280984;, + 0.246514;0.280984;, + 0.342015;0.260100;, + 0.481452;0.309773;, + 0.344120;0.280984;, + 0.481452;0.309773;, + 0.620626;0.260100;, + 0.618521;0.280984;, + 0.620626;0.260100;, + 0.731650;0.191075;, + 0.716127;0.280984;, + 0.620626;0.260100;, + 0.716127;0.280984;, + 0.618521;0.280984;, + 0.731650;0.191075;, + 0.771376;0.191075;, + 0.753223;0.280984;, + 0.731650;0.191075;, + 0.753223;0.280984;, + 0.716127;0.280984;, + 0.771376;0.191075;, + 0.716127;0.280984;, + 0.753223;0.280984;, + 0.618521;0.280984;, + 0.481452;0.191075;, + 0.481452;0.280984;, + 0.481452;0.280984;, + 0.344120;0.280984;, + 0.249671;0.338563;, + 0.344120;0.280984;, + 0.246514;0.280984;, + 0.033412;0.309773;, + 0.344120;0.280984;, + 0.033412;0.309773;, + 0.249671;0.338563;, + 0.246514;0.280984;, + 0.209155;0.280984;, + 0.027361;0.309773;, + 0.246514;0.280984;, + 0.027361;0.309773;, + 0.033412;0.309773;, + 0.209155;0.280984;, + 0.246514;0.280984;, + 0.103657;0.309773;, + 0.209155;0.280984;, + 0.103657;0.309773;, + 0.027361;0.309773;, + 0.246514;0.280984;, + 0.344120;0.280984;, + 0.260721;0.309773;, + 0.246514;0.280984;, + 0.260721;0.309773;, + 0.103657;0.309773;, + 0.344120;0.280984;, + 0.481452;0.309773;, + 0.260721;0.309773;, + 0.481452;0.309773;, + 0.618521;0.280984;, + 0.701920;0.309773;, + 0.618521;0.280984;, + 0.716127;0.280984;, + 0.858721;0.309773;, + 0.618521;0.280984;, + 0.858721;0.309773;, + 0.701920;0.309773;, + 0.716127;0.280984;, + 0.753223;0.280984;, + 0.937648;0.309773;, + 0.716127;0.280984;, + 0.937648;0.309773;, + 0.858721;0.309773;, + 0.753223;0.280984;, + 0.716127;0.280984;, + 0.931597;0.309773;, + 0.753223;0.280984;, + 0.931597;0.309773;, + 0.937648;0.309773;, + 0.716127;0.280984;, + 0.618521;0.280984;, + 0.701921;0.309773;, + 0.716127;0.280984;, + 0.701921;0.309773;, + 0.931597;0.309773;, + 0.618521;0.280984;, + 0.481452;0.280984;, + 0.701921;0.309773;, + 0.027361;0.309773;, + 0.103657;0.309773;, + 0.065772;0.367352;, + 0.103657;0.309773;, + 0.260721;0.309773;, + 0.065772;0.367352;, + 0.481452;0.280984;, + 0.249671;0.338563;, + 0.481452;0.367352;, + 0.249671;0.338563;, + 0.033412;0.309773;, + 0.006840;0.367352;, + 0.033412;0.309773;, + 0.027361;0.309773;, + 0.000000;0.367352;, + 0.033412;0.309773;, + 0.000000;0.367352;, + 0.006840;0.367352;, + 0.027361;0.309773;, + 0.065772;0.367352;, + 0.000000;0.367352;, + 0.065772;0.367352;, + 0.260721;0.309773;, + 0.238358;0.367352;, + 0.260721;0.309773;, + 0.481452;0.309773;, + 0.481452;0.367352;, + 0.260721;0.309773;, + 0.481452;0.367352;, + 0.238358;0.367352;, + 0.481452;0.309773;, + 0.701920;0.309773;, + 0.724020;0.367352;, + 0.481452;0.309773;, + 0.724020;0.367352;, + 0.481452;0.367352;, + 0.701920;0.309773;, + 0.858721;0.309773;, + 0.896869;0.367352;, + 0.701920;0.309773;, + 0.896869;0.367352;, + 0.724020;0.367352;, + 0.858721;0.309773;, + 0.937648;0.309773;, + 0.896869;0.367352;, + 0.937648;0.309773;, + 0.931597;0.309773;, + 0.943699;0.499462;, + 0.931597;0.309773;, + 0.701921;0.309773;, + 0.724020;0.367352;, + 0.931597;0.309773;, + 0.724020;0.367352;, + 0.943699;0.499462;, + 0.701921;0.309773;, + 0.481452;0.280984;, + 0.481452;0.367352;, + 0.701921;0.309773;, + 0.481452;0.367352;, + 0.724020;0.367352;, + 0.481452;0.367352;, + 0.249671;0.338563;, + 0.030518;0.499462;, + 0.249671;0.338563;, + 0.006840;0.367352;, + 0.030518;0.499462;, + 0.006840;0.367352;, + 0.000000;0.367352;, + 0.030518;0.499462;, + 0.724020;0.367352;, + 0.896869;0.367352;, + 0.866614;0.433407;, + 0.896869;0.367352;, + 0.937648;0.309773;, + 0.953170;0.433407;, + 0.896869;0.367352;, + 0.953170;0.433407;, + 0.866614;0.433407;, + 0.937648;0.309773;, + 0.943699;0.499462;, + 0.953170;0.433407;, + 0.481452;0.367352;, + 0.030518;0.499462;, + 0.481452;0.565517;, + 0.030518;0.499462;, + 0.000000;0.367352;, + 0.024730;0.499462;, + 0.000000;0.367352;, + 0.065772;0.367352;, + 0.126282;0.499462;, + 0.000000;0.367352;, + 0.126282;0.499462;, + 0.024730;0.499462;, + 0.065772;0.367352;, + 0.238358;0.367352;, + 0.126282;0.499462;, + 0.866614;0.433407;, + 0.953170;0.433407;, + 0.949224;0.499462;, + 0.953170;0.433407;, + 0.943699;0.499462;, + 0.949224;0.499462;, + 0.724020;0.367352;, + 0.481452;0.367352;, + 0.481452;0.565517;, + 0.724020;0.367352;, + 0.481452;0.565517;, + 0.943699;0.499462;, + 0.481452;0.565517;, + 0.030518;0.499462;, + 0.298079;0.578279;, + 0.024730;0.499462;, + 0.126282;0.499462;, + 0.168377;0.578280;, + 0.126282;0.499462;, + 0.238358;0.367352;, + 0.168377;0.578280;, + 0.724020;0.367352;, + 0.866614;0.433407;, + 0.734544;0.635468;, + 0.866614;0.433407;, + 0.949224;0.499462;, + 0.812418;0.603804;, + 0.866614;0.433407;, + 0.812418;0.603804;, + 0.734544;0.635468;, + 0.949224;0.499462;, + 0.943699;0.499462;, + 0.812418;0.603804;, + 0.298079;0.578279;, + 0.030518;0.499462;, + 0.151013;0.603804;, + 0.030518;0.499462;, + 0.024730;0.499462;, + 0.151013;0.603804;, + 0.238358;0.367352;, + 0.481452;0.367352;, + 0.475138;0.698795;, + 0.481452;0.367352;, + 0.724020;0.367352;, + 0.608261;0.667131;, + 0.481452;0.367352;, + 0.608261;0.667131;, + 0.475138;0.698795;, + 0.724020;0.367352;, + 0.734544;0.635468;, + 0.608261;0.667131;, + 0.812418;0.603804;, + 0.943699;0.499462;, + 0.807419;0.603804;, + 0.943699;0.499462;, + 0.481452;0.565517;, + 0.807419;0.603804;, + 0.298079;0.578279;, + 0.151013;0.603804;, + 0.221521;0.635468;, + 0.151013;0.603804;, + 0.024730;0.499462;, + 0.181005;0.635468;, + 0.151013;0.603804;, + 0.181005;0.635468;, + 0.221521;0.635468;, + 0.024730;0.499462;, + 0.168377;0.578280;, + 0.181005;0.635468;, + 0.812418;0.603804;, + 0.807419;0.603804;, + 0.734544;0.635468;, + 0.807419;0.603804;, + 0.481452;0.565517;, + 0.627993;0.635468;, + 0.807419;0.603804;, + 0.627993;0.635468;, + 0.734544;0.635468;, + 0.221521;0.635468;, + 0.181005;0.635468;, + 0.249671;0.698795;, + 0.181005;0.635468;, + 0.168377;0.578280;, + 0.280452;0.698795;, + 0.168377;0.578280;, + 0.238358;0.367352;, + 0.361221;0.698795;, + 0.168377;0.578280;, + 0.361221;0.698795;, + 0.280452;0.698795;, + 0.238358;0.367352;, + 0.475138;0.698795;, + 0.361221;0.698795;, + 0.475138;0.698795;, + 0.608261;0.667131;, + 0.588529;0.698795;, + 0.608261;0.667131;, + 0.734544;0.635468;, + 0.669561;0.698795;, + 0.608261;0.667131;, + 0.669561;0.698795;, + 0.588529;0.698795;, + 0.734544;0.635468;, + 0.812418;0.603804;, + 0.700342;0.698795;, + 0.812418;0.603804;, + 0.734544;0.635468;, + 0.700342;0.698795;, + 0.280452;0.698795;, + 0.361221;0.698795;, + 0.342015;0.765070;, + 0.481452;0.565517;, + 0.298079;0.578279;, + 0.468035;0.847683;, + 0.342015;0.765070;, + 0.361221;0.698795;, + 0.430676;0.831346;, + 0.361221;0.698795;, + 0.475138;0.698795;, + 0.430676;0.831346;, + 0.475138;0.698795;, + 0.588529;0.698795;, + 0.491186;0.852508;, + 0.627993;0.635468;, + 0.481452;0.565517;, + 0.468035;0.847683;, + 0.491186;0.852508;, + 0.669561;0.698795;, + 0.679032;0.701992;, + 0.588529;0.698795;, + 0.669561;0.698795;, + 0.491186;0.852508;, + 0.280452;0.698795;, + 0.342015;0.765070;, + 0.288345;0.715858;, + 0.467245;0.859793;, + 0.475138;0.698795;, + 0.491186;0.852508;, + 0.475138;0.698795;, + 0.467245;0.859793;, + 0.430676;0.831346;, + 0.280452;0.698795;, + 0.288345;0.715858;, + 0.268350;0.701051;, + 0.734544;0.635468;, + 0.700342;0.698795;, + 0.686924;0.698725;, + 0.669561;0.698795;, + 0.734544;0.635468;, + 0.686924;0.698725;, + 0.679032;0.701992;, + 0.669561;0.698795;, + 0.686924;0.698725;, + 0.181005;0.635468;, + 0.280452;0.698795;, + 0.263089;0.698687;, + 0.249671;0.698795;, + 0.181005;0.635468;, + 0.263089;0.698687;, + 0.280452;0.698795;, + 0.268350;0.701051;, + 0.263089;0.698687;, + 0.686924;0.698725;, + 0.700342;0.698795;, + 0.696133;0.698795;, + 0.249671;0.698795;, + 0.263089;0.698687;, + 0.253880;0.698762;, + 0.221521;0.635468;, + 0.249671;0.698795;, + 0.287293;0.726931;, + 0.287293;0.726931;, + 0.249671;0.698795;, + 0.253617;0.699274;, + 0.700342;0.698795;, + 0.661668;0.725503;, + 0.696133;0.699391;, + 0.700342;0.698795;, + 0.734544;0.635468;, + 0.661668;0.725503;, + 0.696133;0.699391;, + 0.696133;0.698795;, + 0.700342;0.698795;, + 0.253617;0.699274;, + 0.249671;0.698795;, + 0.253880;0.698762;, + 0.734544;0.635468;, + 0.522494;0.829381;, + 0.661668;0.725503;, + 0.522494;0.829381;, + 0.734544;0.635468;, + 0.627993;0.635468;, + 0.627993;0.635468;, + 0.500395;0.841404;, + 0.522494;0.829381;, + 0.500395;0.841404;, + 0.627993;0.635468;, + 0.468035;0.847683;, + 0.221521;0.635468;, + 0.387530;0.813693;, + 0.298079;0.578279;, + 0.387530;0.813693;, + 0.221521;0.635468;, + 0.287293;0.726931;, + 0.402789;0.822455;, + 0.298079;0.578279;, + 0.387530;0.813693;, + 0.418311;0.831346;, + 0.298079;0.578279;, + 0.402789;0.822455;, + 0.298079;0.578279;, + 0.435938;0.841404;, + 0.468035;0.847683;, + 0.435938;0.841404;, + 0.298079;0.578279;, + 0.418311;0.831346;, + 0.776638;0.207803;, + 0.776638;0.207803;, + 0.804525;0.214471;, + 0.776638;0.214471;, + 0.776638;0.207803;, + 0.804525;0.214471;, + 0.776638;0.221139;, + 0.776638;0.214471;, + 0.804525;0.214471;, + 0.776638;0.221139;, + 0.776638;0.221139;, + 0.804525;0.214471;, + 0.776638;0.214471;, + 0.776638;0.221139;, + 0.804525;0.214471;, + 0.776638;0.207803;, + 0.776638;0.214471;, + 0.804525;0.214471;, + 0.776638;0.207803;, + 0.776638;0.214471;, + 0.776638;0.207803;, + 0.776638;0.214471;, + 0.776638;0.221139;, + 0.776638;0.207803;, + 0.776638;0.221139;, + 0.776638;0.221139;, + 0.776638;0.207803;, + 0.776638;0.221139;, + 0.776638;0.214471;, + 0.776638;0.207803;, + 0.161010;0.214471;, + 0.188634;0.207803;, + 0.188634;0.207803;, + 0.161010;0.214471;, + 0.188634;0.207803;, + 0.188634;0.214471;, + 0.161010;0.214471;, + 0.188634;0.214471;, + 0.188634;0.221139;, + 0.161010;0.214471;, + 0.188634;0.221139;, + 0.188634;0.221139;, + 0.161010;0.214471;, + 0.188634;0.221139;, + 0.188634;0.214471;, + 0.161010;0.214471;, + 0.188634;0.214471;, + 0.188634;0.207803;, + 0.188634;0.207803;, + 0.188634;0.214471;, + 0.188634;0.207803;, + 0.188634;0.207803;, + 0.188634;0.221139;, + 0.188634;0.214471;, + 0.188634;0.207803;, + 0.188634;0.221139;, + 0.188634;0.221139;, + 0.188634;0.207803;, + 0.188634;0.214471;, + 0.188634;0.221139;, + 0.433570;0.026798;, + 0.435149;0.024860;, + 0.429361;0.032619;, + 0.429361;0.032619;, + 0.315180;0.186707;, + 0.337016;0.151333;, + 0.429361;0.032619;, + 0.337016;0.151333;, + 0.433570;0.026798;, + 0.433570;0.026798;, + 0.337016;0.151333;, + 0.417785;0.145532;, + 0.433570;0.026798;, + 0.417785;0.145532;, + 0.463299;0.002230;, + 0.337016;0.151333;, + 0.315180;0.186707;, + 0.403052;0.186235;, + 0.337016;0.151333;, + 0.403052;0.186235;, + 0.417785;0.145532;, + 0.315180;0.186707;, + 0.429361;0.032619;, + 0.461457;0.008929;, + 0.315180;0.186707;, + 0.461457;0.008929;, + 0.403052;0.186235;, + 0.429361;0.032619;, + 0.435149;0.024860;, + 0.463825;0.000000;, + 0.429361;0.032619;, + 0.463825;0.000000;, + 0.461457;0.008929;, + 0.435149;0.024860;, + 0.433570;0.026798;, + 0.463299;0.002230;, + 0.435149;0.024860;, + 0.463299;0.002230;, + 0.463825;0.000000;, + 0.463299;0.002230;, + 0.417785;0.145532;, + 0.538542;0.145532;, + 0.463299;0.002230;, + 0.538542;0.145532;, + 0.493028;0.002230;, + 0.417785;0.145532;, + 0.403052;0.186235;, + 0.553275;0.186235;, + 0.417785;0.145532;, + 0.553275;0.186235;, + 0.538542;0.145532;, + 0.403052;0.186235;, + 0.461457;0.008929;, + 0.494870;0.008929;, + 0.403052;0.186235;, + 0.494870;0.008929;, + 0.553275;0.186235;, + 0.461457;0.008929;, + 0.463825;0.000000;, + 0.492502;0.000000;, + 0.461457;0.008929;, + 0.492502;0.000000;, + 0.494870;0.008929;, + 0.463825;0.000000;, + 0.463299;0.002230;, + 0.493028;0.002230;, + 0.463825;0.000000;, + 0.493028;0.002230;, + 0.492502;0.000000;, + 0.493028;0.002230;, + 0.538542;0.145532;, + 0.619048;0.151333;, + 0.493028;0.002230;, + 0.619048;0.151333;, + 0.522494;0.026798;, + 0.538542;0.145532;, + 0.553275;0.186235;, + 0.641147;0.186707;, + 0.538542;0.145532;, + 0.641147;0.186707;, + 0.619048;0.151333;, + 0.553275;0.186235;, + 0.494870;0.008929;, + 0.527230;0.032619;, + 0.553275;0.186235;, + 0.527230;0.032619;, + 0.641147;0.186707;, + 0.494870;0.008929;, + 0.492502;0.000000;, + 0.521179;0.024860;, + 0.494870;0.008929;, + 0.521179;0.024860;, + 0.527230;0.032619;, + 0.492502;0.000000;, + 0.493028;0.002230;, + 0.522494;0.026798;, + 0.492502;0.000000;, + 0.522494;0.026798;, + 0.521179;0.024860;, + 0.527230;0.032619;, + 0.521179;0.024860;, + 0.522494;0.026798;, + 0.619048;0.151333;, + 0.641147;0.186707;, + 0.527230;0.032619;, + 0.522494;0.026798;, + 0.619048;0.151333;, + 0.527230;0.032619;, + 0.429361;0.032466;, + 0.434096;0.026306;, + 0.317285;0.183168;, + 0.315180;0.186853;, + 0.429361;0.032466;, + 0.317285;0.183168;, + 0.317285;0.183168;, + 0.434096;0.026306;, + 0.463299;0.001664;, + 0.317285;0.183168;, + 0.463299;0.001664;, + 0.404367;0.182163;, + 0.434096;0.026306;, + 0.429361;0.032466;, + 0.461720;0.008753;, + 0.434096;0.026306;, + 0.461720;0.008753;, + 0.463299;0.001664;, + 0.429361;0.032466;, + 0.315180;0.186853;, + 0.403052;0.186402;, + 0.429361;0.032466;, + 0.403052;0.186402;, + 0.461720;0.008753;, + 0.315180;0.186853;, + 0.317285;0.183168;, + 0.404367;0.182163;, + 0.315180;0.186853;, + 0.404367;0.182163;, + 0.403052;0.186402;, + 0.404367;0.182163;, + 0.463299;0.001664;, + 0.493028;0.001664;, + 0.404367;0.182163;, + 0.493028;0.001664;, + 0.551960;0.182163;, + 0.463299;0.001664;, + 0.461720;0.008753;, + 0.494607;0.008753;, + 0.463299;0.001664;, + 0.494607;0.008753;, + 0.493028;0.001664;, + 0.461720;0.008753;, + 0.403052;0.186402;, + 0.553275;0.186402;, + 0.461720;0.008753;, + 0.553275;0.186402;, + 0.494607;0.008753;, + 0.403052;0.186402;, + 0.404367;0.182163;, + 0.551960;0.182163;, + 0.403052;0.186402;, + 0.551960;0.182163;, + 0.553275;0.186402;, + 0.551960;0.182163;, + 0.493028;0.001664;, + 0.522231;0.026306;, + 0.551960;0.182163;, + 0.522231;0.026306;, + 0.639042;0.183168;, + 0.493028;0.001664;, + 0.494607;0.008753;, + 0.526967;0.032466;, + 0.493028;0.001664;, + 0.526967;0.032466;, + 0.522231;0.026306;, + 0.494607;0.008753;, + 0.553275;0.186402;, + 0.641147;0.186853;, + 0.494607;0.008753;, + 0.641147;0.186853;, + 0.526967;0.032466;, + 0.553275;0.186402;, + 0.551960;0.182163;, + 0.639042;0.183168;, + 0.553275;0.186402;, + 0.639042;0.183168;, + 0.641147;0.186853;, + 0.639042;0.183168;, + 0.522231;0.026306;, + 0.526967;0.032466;, + 0.639042;0.183168;, + 0.526967;0.032466;, + 0.641147;0.186853;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/BOX.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/BOX.X new file mode 100644 index 0000000..368113a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/BOX.X @@ -0,0 +1,304 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 30; + -4.032391;4.899019;-39.505329;, + -4.032526;4.890853;-38.005283;, + -4.032526;-4.857732;-38.058346;, + -4.032391;4.899019;-39.505329;, + -4.032526;-4.857732;-38.058346;, + -4.032391;-4.849567;-39.558392;, + 3.967700;4.899018;-39.504601;, + 3.967564;4.890852;-38.004555;, + -4.032527;4.890852;-38.005283;, + 3.967700;4.899018;-39.504601;, + -4.032527;4.890852;-38.005283;, + -4.032391;4.899018;-39.505329;, + -4.032391;-4.849567;-39.558392;, + -4.032527;-4.857732;-38.058346;, + 3.967564;-4.857732;-38.057617;, + -4.032391;-4.849567;-39.558392;, + 3.967564;-4.857732;-38.057617;, + 3.967700;-4.849567;-39.557663;, + 3.967700;-4.849567;-39.557663;, + 3.967564;-4.857732;-38.057617;, + 3.967564;4.890852;-38.004555;, + 3.967700;-4.849567;-39.557663;, + 3.967564;4.890852;-38.004555;, + 3.967700;4.899018;-39.504601;, + 3.967531;-4.857710;-38.057674;, + -4.032492;-4.857680;-38.058403;, + -4.032513;4.890810;-38.005341;, + 3.967531;-4.857710;-38.057674;, + -4.032513;4.890810;-38.005341;, + 3.967509;4.890807;-38.004612;; + + 10; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;; + + MeshMaterialList { + 5; + 10; + 0;, + 0;, + 1;, + 1;, + 2;, + 2;, + 3;, + 3;, + 4;, + 4;; + Material { + 0.498039;0.498039;0.498039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/box_top.gif"; + } #TextureFilename + } # Material + Material { + 0.498039;0.498039;0.498039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/box_top.gif"; + } #TextureFilename + } # Material + Material { + 0.498039;0.498039;0.498039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/box_top.gif"; + } #TextureFilename + } # Material + Material { + 0.498039;0.498039;0.498039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/box_top.gif"; + } #TextureFilename + } # Material + Material { + 0.698039;0.698039;0.698039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/box_boxart.gif"; + } #TextureFilename + } # Material + } # MeshMaterialList + MeshNormals { + 10; + -1.000000;0.000000;-0.000090;, + -1.000000;0.000000;-0.000090;, + 0.000000;0.999985;0.005443;, + 0.000000;0.999985;0.005443;, + 0.000000;-0.999985;-0.005443;, + 0.000000;-0.999985;-0.005443;, + 1.000000;0.000000;0.000091;, + 1.000000;0.000000;0.000091;, + -0.000091;-0.005443;0.999985;, + -0.000091;-0.005443;0.999985;; + + 10; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;; + } # MeshNormals + MeshTextureCoords { + 30; + 0.000000;1.000000;, + 0.000000;0.000000;, + 1.000000;0.000000;, + 0.000000;1.000000;, + 1.000000;0.000000;, + 1.000000;1.000000;, + 0.000000;1.000000;, + 0.000000;0.000000;, + 1.000000;0.000000;, + 0.000000;1.000000;, + 1.000000;0.000000;, + 1.000000;1.000000;, + 1.000000;1.000000;, + 1.000000;0.000000;, + 0.000000;0.000000;, + 1.000000;1.000000;, + 0.000000;0.000000;, + 0.000000;1.000000;, + 1.000000;0.000000;, + 1.000000;1.000000;, + 0.000000;1.000000;, + 1.000000;0.000000;, + 0.000000;1.000000;, + 0.000000;0.000000;, + 0.000000;1.000000;, + 0.999997;0.999997;, + 1.000000;0.000000;, + 0.000000;1.000000;, + 1.000000;0.000000;, + 0.000003;0.000000;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CONE.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CONE.X new file mode 100644 index 0000000..946fab4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CONE.X @@ -0,0 +1,353 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +Header { + 1; + 0; + 1; +} + +Mesh { + 45; + 0.00000;-1.00000;-1.00000;, + 0.00000; 1.00000; 0.00000;, +-0.43388;-1.00000;-0.90097;, + 0.00000; 1.00000; 0.00000;, +-0.78183;-1.00000;-0.62349;, + 0.00000; 1.00000; 0.00000;, +-0.97493;-1.00000;-0.22252;, + 0.00000; 1.00000; 0.00000;, +-0.97493;-1.00000; 0.22252;, + 0.00000; 1.00000; 0.00000;, +-0.78183;-1.00000; 0.62349;, + 0.00000; 1.00000; 0.00000;, +-0.43388;-1.00000; 0.90097;, + 0.00000; 1.00000; 0.00000;, +-0.00000;-1.00000; 1.00000;, + 0.00000; 1.00000; 0.00000;, + 0.43388;-1.00000; 0.90097;, + 0.00000; 1.00000; 0.00000;, + 0.78183;-1.00000; 0.62349;, + 0.00000; 1.00000; 0.00000;, + 0.97493;-1.00000; 0.22252;, + 0.00000; 1.00000; 0.00000;, + 0.97493;-1.00000;-0.22252;, + 0.00000; 1.00000; 0.00000;, + 0.78183;-1.00000;-0.62349;, + 0.00000; 1.00000; 0.00000;, + 0.43388;-1.00000;-0.90097;, + 0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000;-1.00000;, + 0.00000; 1.00000; 0.00000;, + + 0.00000;-1.00000;-1.00000;, +-0.43388;-1.00000;-0.90097;, +-0.78183;-1.00000;-0.62349;, +-0.97493;-1.00000;-0.22252;, +-0.97493;-1.00000; 0.22252;, +-0.78183;-1.00000; 0.62349;, +-0.43388;-1.00000; 0.90097;, +-0.00000;-1.00000; 1.00000;, + 0.43388;-1.00000; 0.90097;, + 0.78183;-1.00000; 0.62349;, + 0.97493;-1.00000; 0.22252;, + 0.97493;-1.00000;-0.22252;, + 0.78183;-1.00000;-0.62349;, + 0.43388;-1.00000;-0.90097;, + 0.00000;-1.00000;-1.00000;; + +29; +3;0,2,1;, +3;1,2,3;, +3;2,4,3;, +3;3,4,5;, +3;4,6,5;, +3;5,6,7;, +3;6,8,7;, +3;7,8,9;, +3;8,10,9;, +3;9,10,11;, +3;10,12,11;, +3;11,12,13;, +3;12,14,13;, +3;13,14,15;, +3;14,16,15;, +3;15,16,17;, +3;16,18,17;, +3;17,18,19;, +3;18,20,19;, +3;19,20,21;, +3;20,22,21;, +3;21,22,23;, +3;22,24,23;, +3;23,24,25;, +3;24,26,25;, +3;25,26,27;, +3;26,28,27;, +3;27,28,29;, +15;44,43,42,41,40,39,38,37,36,35,34,33,32,31,30;; + MeshMaterialList { + 1; + 1; + 0;; + Material { + 1.000000;1.000000;1.000000;1.000000;; + 0.000000; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + MeshNormals { + 45; + 0.00000; 0.24254;-0.97014;, + 0.00000; 0.24254;-0.97014;, + -0.42093; 0.24254;-0.87407;, + -0.42093; 0.24254;-0.87407;, + -0.75849; 0.24254;-0.60487;, + -0.75849; 0.24254;-0.60487;, + -0.94582; 0.24254;-0.21588;, + -0.94582; 0.24254;-0.21588;, + -0.94582; 0.24254; 0.21588;, + -0.94582; 0.24254; 0.21588;, + -0.75849; 0.24254; 0.60487;, + -0.75849; 0.24254; 0.60487;, + -0.42093; 0.24254; 0.87407;, + -0.42093; 0.24254; 0.87407;, + -0.00000; 0.24254; 0.97014;, + -0.00000; 0.24254; 0.97014;, + 0.42093; 0.24254; 0.87407;, + 0.42093; 0.24254; 0.87407;, + 0.75849; 0.24254; 0.60487;, + 0.75849; 0.24254; 0.60487;, + 0.94582; 0.24254; 0.21588;, + 0.94582; 0.24254; 0.21588;, + 0.94582; 0.24254;-0.21588;, + 0.94582; 0.24254;-0.21588;, + 0.75849; 0.24254;-0.60487;, + 0.75849; 0.24254;-0.60487;, + 0.42093; 0.24254;-0.87407;, + 0.42093; 0.24254;-0.87407;, + 0.00000; 0.24254;-0.97014;, + 0.00000; 0.24254;-0.97014;, + + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;; + + 29; + 3;0,2,1;, + 3;1,2,3;, + 3;2,4,3;, + 3;3,4,5;, + 3;4,6,5;, + 3;5,6,7;, + 3;6,8,7;, + 3;7,8,9;, + 3;8,10,9;, + 3;9,10,11;, + 3;10,12,11;, + 3;11,12,13;, + 3;12,14,13;, + 3;13,14,15;, + 3;14,16,15;, + 3;15,16,17;, + 3;16,18,17;, + 3;17,18,19;, + 3;18,20,19;, + 3;19,20,21;, + 3;20,22,21;, + 3;21,22,23;, + 3;22,24,23;, + 3;23,24,25;, + 3;24,26,25;, + 3;25,26,27;, + 3;26,28,27;, + 3;27,28,29;, + 15;44,43,42,41,40,39,38,37,36,35,34,33,32,31,30;; +} + MeshTextureCoords { + 45; + 1.00000; 0.00000;, + 1.00000; 1.00000;, + 0.92857; 0.00000;, + 0.92857; 1.00000;, + 0.85714; 0.00000;, + 0.85714; 1.00000;, + 0.78571; 0.00000;, + 0.78571; 1.00000;, + 0.71429; 0.00000;, + 0.71429; 1.00000;, + 0.64286; 0.00000;, + 0.64286; 1.00000;, + 0.57143; 0.00000;, + 0.57143; 1.00000;, + 0.50000; 0.00000;, + 0.50000; 1.00000;, + 0.42857; 0.00000;, + 0.42857; 1.00000;, + 0.35714; 0.00000;, + 0.35714; 1.00000;, + 0.28571; 0.00000;, + 0.28571; 1.00000;, + 0.21429; 0.00000;, + 0.21429; 1.00000;, + 0.14286; 0.00000;, + 0.14286; 1.00000;, + 0.07143; 0.00000;, + 0.07143; 1.00000;, + 0.00000; 0.00000;, + 0.00000; 1.00000;, + + 0.5; 0.0;, + 0.28306; 0.049515;, + 0.109085;0.188255;, + 0.012535;0.38874;, + 0.012535;0.61126;, + 0.109085;0.811745;, + 0.28306; 0.950485;, + 0.5; 1.0;, + 0.71694; 0.950485;, + 0.890915;0.811745;, + 0.987465;0.61126;, + 0.987465;0.38874;, + 0.890915;0.188255;, + 0.71694; 0.049515;, + 0.5; 0.0;; + } +} \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COPTER8B.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COPTER8B.X new file mode 100644 index 0000000..f4906ea --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COPTER8B.X @@ -0,0 +1,4887 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 1413; + -1.614144;8.050888;-59.001976;, + -1.614145;9.591663;-61.861847;, + -1.574145;9.591663;-61.861847;, + -1.614144;8.050888;-59.001976;, + -1.574145;9.591663;-61.861847;, + -1.574144;8.050888;-59.001976;, + -1.614145;9.591663;-61.861847;, + -1.614146;8.635530;-64.971413;, + -1.574146;8.635530;-64.971413;, + -1.614145;9.591663;-61.861847;, + -1.574146;8.635530;-64.971413;, + -1.574145;9.591663;-61.861847;, + -1.614146;8.635530;-64.971413;, + -1.614147;5.763481;-66.513405;, + -1.574147;5.763481;-66.513405;, + -1.614146;8.635530;-64.971413;, + -1.574147;5.763481;-66.513405;, + -1.574146;8.635530;-64.971413;, + -1.614147;5.763481;-66.513405;, + -1.614146;2.679496;-65.567017;, + -1.574146;2.679496;-65.567017;, + -1.614147;5.763481;-66.513405;, + -1.574146;2.679496;-65.567017;, + -1.574147;5.763481;-66.513405;, + -1.614146;2.679496;-65.567017;, + -1.614145;1.115579;-62.721764;, + -1.574145;1.115579;-62.721764;, + -1.614146;2.679496;-65.567017;, + -1.574145;1.115579;-62.721764;, + -1.574146;2.679496;-65.567017;, + -1.614145;1.115579;-62.721764;, + -1.614144;2.070492;-59.600021;, + -1.574144;2.070492;-59.600021;, + -1.614145;1.115579;-62.721764;, + -1.574144;2.070492;-59.600021;, + -1.574145;1.115579;-62.721764;, + -1.614144;2.070492;-59.600021;, + -1.614144;4.929146;-58.047062;, + -1.574144;4.929146;-58.047062;, + -1.614144;2.070492;-59.600021;, + -1.574144;4.929146;-58.047062;, + -1.574144;2.070492;-59.600021;, + -1.614144;4.929146;-58.047062;, + -1.614144;8.050888;-59.001976;, + -1.574144;8.050888;-59.001976;, + -1.614144;4.929146;-58.047062;, + -1.574144;8.050888;-59.001976;, + -1.574144;4.929146;-58.047062;, + -1.574145;9.591663;-61.861847;, + -1.574146;8.635530;-64.971413;, + -1.574147;5.763481;-66.513405;, + -1.574145;9.591663;-61.861847;, + -1.574147;5.763481;-66.513405;, + -1.574146;2.679496;-65.567017;, + -1.574145;9.591663;-61.861847;, + -1.574146;2.679496;-65.567017;, + -1.574145;1.115579;-62.721764;, + -1.574145;9.591663;-61.861847;, + -1.574145;1.115579;-62.721764;, + -1.574144;2.070492;-59.600021;, + -1.574145;9.591663;-61.861847;, + -1.574144;2.070492;-59.600021;, + -1.574144;4.929146;-58.047062;, + -1.574145;9.591663;-61.861847;, + -1.574144;4.929146;-58.047062;, + -1.574144;8.050888;-59.001976;, + -1.614144;8.050888;-59.001976;, + -1.614144;4.929146;-58.047062;, + -1.614144;2.070492;-59.600021;, + -1.614144;8.050888;-59.001976;, + -1.614144;2.070492;-59.600021;, + -1.614145;1.115579;-62.721764;, + -1.614144;8.050888;-59.001976;, + -1.614145;1.115579;-62.721764;, + -1.614146;2.679496;-65.567017;, + -1.614144;8.050888;-59.001976;, + -1.614146;2.679496;-65.567017;, + -1.614147;5.763481;-66.513405;, + -1.614144;8.050888;-59.001976;, + -1.614147;5.763481;-66.513405;, + -1.614146;8.635530;-64.971413;, + -1.614144;8.050888;-59.001976;, + -1.614146;8.635530;-64.971413;, + -1.614145;9.591663;-61.861847;, + -0.629816;7.629324;-43.701771;, + -0.418933;7.679983;-44.208359;, + -0.418933;9.684366;-44.007919;, + -0.629816;7.629324;-43.701771;, + -0.418933;9.684366;-44.007919;, + -0.629816;9.633707;-43.501331;, + 0.090369;5.539330;-63.519550;, + 0.090192;1.733619;-52.368793;, + 0.090177;4.504181;-60.501236;, + 0.090369;5.539330;-63.519550;, + 0.090177;4.504181;-60.501236;, + 0.090190;-0.220447;-64.448280;, + 0.090369;5.539330;-63.519550;, + 0.090190;-0.220447;-64.448280;, + 0.090190;-0.072235;-65.845963;, + -0.502980;4.663809;-40.874268;, + -1.074145;4.593606;-41.365070;, + -0.913108;7.502623;-42.640888;, + -0.502980;4.663809;-40.874268;, + -0.913108;7.502623;-42.640888;, + -0.522541;7.480080;-42.289188;, + 0.090177;4.504181;-60.501236;, + 0.090192;1.733619;-52.368793;, + 0.090370;5.539328;-63.519550;, + 0.090177;4.504181;-60.501236;, + 0.090370;5.539328;-63.519550;, + 0.090190;-0.072235;-65.845963;, + 0.090177;4.504181;-60.501236;, + 0.090190;-0.072235;-65.845963;, + 0.090190;-0.220447;-64.448280;, + 0.685445;4.629865;-40.864532;, + 0.090186;4.710207;-40.760750;, + 0.090187;7.450539;-42.112988;, + 0.685445;4.629865;-40.864532;, + 0.090187;7.450539;-42.112988;, + 0.649487;7.479809;-42.276825;, + 2.734428;3.915359;-46.131393;, + 2.492484;3.530806;-47.688347;, + 2.561042;3.188633;-47.696121;, + 2.734428;3.915359;-46.131393;, + 2.561042;3.188633;-47.696121;, + 2.804250;3.608513;-46.101364;, + -1.935632;-4.420299;-35.772118;, + -3.134439;-3.316094;-37.540470;, + -1.343972;-3.177187;-36.615990;, + 2.734428;3.915359;-46.131393;, + 2.804250;3.608513;-46.101364;, + 2.944887;3.856738;-44.529655;, + 2.734428;3.915359;-46.131393;, + 2.944887;3.856738;-44.529655;, + 2.761725;4.160208;-44.565544;, + 3.049287;0.520903;-48.153584;, + 3.616029;-4.766136;-48.491600;, + 4.236418;-5.088964;-46.971115;, + 3.049287;0.520903;-48.153584;, + 4.236418;-5.088964;-46.971115;, + 3.605167;0.358480;-46.513348;, + 2.804250;3.608513;-46.101364;, + 2.561042;3.188633;-47.696121;, + 2.160112;2.764774;-49.294125;, + 2.804250;3.608513;-46.101364;, + 2.160112;2.764774;-49.294125;, + 2.345015;0.685999;-49.787182;, + 2.804250;3.608513;-46.101364;, + 2.345015;0.685999;-49.787182;, + 3.049287;0.520903;-48.153584;, + 2.804250;3.608513;-46.101364;, + 3.049287;0.520903;-48.153584;, + 3.605167;0.358480;-46.513348;, + -1.935632;-4.420299;-35.772118;, + -3.369859;-3.500305;-37.835079;, + -3.134439;-3.316094;-37.540470;, + 2.124468;3.028416;-49.247406;, + 2.160112;2.764774;-49.294125;, + 2.561042;3.188633;-47.696121;, + 2.124468;3.028416;-49.247406;, + 2.561042;3.188633;-47.696121;, + 2.492484;3.530806;-47.688347;, + -2.115014;3.558352;-38.784512;, + -2.305577;3.600927;-39.049423;, + -2.394434;3.654708;-39.387318;, + 3.605167;0.358480;-46.513348;, + 4.236418;-5.088964;-46.971115;, + 4.697404;-5.290276;-45.444355;, + 3.605167;0.358480;-46.513348;, + 4.697404;-5.290276;-45.444355;, + 4.054987;-3.498727;-45.281498;, + 2.944887;3.856738;-44.529655;, + 2.804250;3.608513;-46.101364;, + 3.605167;0.358480;-46.513348;, + 2.944887;3.856738;-44.529655;, + 3.605167;0.358480;-46.513348;, + 4.054987;-3.498727;-45.281498;, + 1.199501;4.849438;-48.484459;, + 0.090370;5.539328;-63.519550;, + 2.492484;3.530806;-47.688347;, + 2.492484;3.530806;-47.688347;, + 0.090370;5.539328;-63.519550;, + 2.124468;3.028416;-49.247406;, + -3.369859;-3.500305;-37.835079;, + -2.305577;3.600927;-39.049423;, + -2.115014;3.558352;-38.784512;, + -3.369859;-3.500305;-37.835079;, + -2.115014;3.558352;-38.784512;, + -3.134439;-3.316094;-37.540470;, + -2.115014;3.558352;-38.784512;, + -2.394434;3.654708;-39.387318;, + -1.851085;4.004131;-39.900234;, + 4.912997;-3.832293;-42.207664;, + 5.077136;-5.598254;-42.384258;, + 4.981283;-5.715190;-40.872169;, + 4.912997;-3.832293;-42.207664;, + 4.981283;-5.715190;-40.872169;, + 4.724675;-4.141721;-39.673752;, + 5.077136;-5.598254;-42.384258;, + 4.912997;-3.832293;-42.207664;, + 4.820296;-3.679985;-43.730759;, + 5.077136;-5.598254;-42.384258;, + 4.820296;-3.679985;-43.730759;, + 4.981281;-5.445930;-43.914631;, + -3.369859;-3.500305;-37.835079;, + -1.935632;-4.420299;-35.772118;, + -2.209280;-4.609667;-35.791054;, + -3.369859;-3.500305;-37.835079;, + -2.209280;-4.609667;-35.791054;, + -2.675732;-5.133950;-35.843483;, + -3.369859;-3.500305;-37.835079;, + -2.675732;-5.133950;-35.843483;, + -3.387323;-4.788698;-36.780312;, + 4.912997;-3.832293;-42.207664;, + 2.849724;3.855520;-41.438873;, + 2.925629;3.890504;-42.980984;, + 4.912997;-3.832293;-42.207664;, + 2.925629;3.890504;-42.980984;, + 4.820296;-3.679985;-43.730759;, + 2.849724;3.855520;-41.438873;, + 4.912997;-3.832293;-42.207664;, + 4.724675;-4.141721;-39.673752;, + 2.849724;3.855520;-41.438873;, + 4.724675;-4.141721;-39.673752;, + 2.574041;3.654709;-39.387314;, + 4.732824;-4.207119;-39.256115;, + 4.236416;-5.880675;-38.073116;, + 3.616028;-5.892648;-36.890709;, + 4.732824;-4.207119;-39.256115;, + 3.616028;-5.892648;-36.890709;, + 3.564536;-4.788699;-36.780312;, + 4.236416;-5.880675;-38.073116;, + 4.732824;-4.207119;-39.256115;, + 4.697403;-5.809213;-39.416336;, + 4.732824;-4.207119;-39.256115;, + 3.564536;-4.788699;-36.780312;, + 3.547072;-3.500305;-37.835075;, + 4.724675;-4.141721;-39.673752;, + 4.981283;-5.715190;-40.872169;, + 4.697403;-5.809213;-39.416336;, + 4.724675;-4.141721;-39.673752;, + 4.697403;-5.809213;-39.416336;, + 4.732824;-4.207119;-39.256115;, + 4.732824;-4.207119;-39.256115;, + 3.547072;-3.500305;-37.835075;, + 2.485160;3.600927;-39.049419;, + 4.732824;-4.207119;-39.256115;, + 2.485160;3.600927;-39.049419;, + 2.574041;3.654709;-39.387314;, + 4.732824;-4.207119;-39.256115;, + 2.574041;3.654709;-39.387314;, + 4.724675;-4.141721;-39.673752;, + 2.345015;0.685999;-49.787182;, + 2.160112;2.764774;-49.294125;, + 1.532790;2.246215;-50.879467;, + 2.345015;0.685999;-49.787182;, + 1.532790;2.246215;-50.879467;, + 1.561050;0.808837;-51.023552;, + 0.090192;-1.480764;-52.693501;, + 0.088691;-3.810062;-51.480850;, + 1.549717;-3.466758;-51.442085;, + 0.090192;-1.480764;-52.693501;, + 1.549717;-3.466758;-51.442085;, + 1.997639;-2.719596;-51.376045;, + 0.090192;-1.480764;-52.693501;, + 1.997639;-2.719596;-51.376045;, + 0.090192;-1.062579;-52.648403;, + 0.090192;0.948450;-52.451374;, + 0.090192;-1.062579;-52.648403;, + 1.997639;-2.719596;-51.376045;, + 0.090192;0.948450;-52.451374;, + 1.997639;-2.719596;-51.376045;, + 1.561050;0.808837;-51.023552;, + 2.209806;-5.005462;-50.127815;, + 2.860092;-3.965932;-50.013416;, + 1.997639;-2.719596;-51.376045;, + 2.209806;-5.005462;-50.127815;, + 1.997639;-2.719596;-51.376045;, + 1.549717;-3.466758;-51.442085;, + -2.565645;4.249475;-42.985825;, + -2.357149;4.175038;-41.406925;, + -2.670072;3.855542;-41.438873;, + -2.565645;4.249475;-42.985825;, + -2.670072;3.855542;-41.438873;, + -2.746137;3.890519;-42.980984;, + 1.561050;0.808837;-51.023552;, + 1.997639;-2.719596;-51.376045;, + 2.860092;-3.965932;-50.013416;, + 1.561050;0.808837;-51.023552;, + 2.860092;-3.965932;-50.013416;, + 2.345015;0.685999;-49.787182;, + 3.616029;-4.766136;-48.491600;, + 2.788383;-6.077836;-48.618408;, + 3.263203;-6.537543;-47.176682;, + 3.616029;-4.766136;-48.491600;, + 3.263203;-6.537543;-47.176682;, + 4.236418;-5.088964;-46.971115;, + 2.209806;-5.005462;-50.127815;, + 2.788383;-6.077836;-48.618408;, + 3.616029;-4.766136;-48.491600;, + 2.209806;-5.005462;-50.127815;, + 3.616029;-4.766136;-48.491600;, + 2.860092;-3.965932;-50.013416;, + 0.088724;-5.311376;-50.156467;, + 2.209806;-5.005462;-50.127815;, + 1.549717;-3.466758;-51.442085;, + 0.088724;-5.311376;-50.156467;, + 1.549717;-3.466758;-51.442085;, + 0.088691;-3.810062;-51.480850;, + 0.088759;-6.348396;-48.647224;, + 2.788383;-6.077836;-48.618408;, + 2.209806;-5.005462;-50.127815;, + 0.088759;-6.348396;-48.647224;, + 2.209806;-5.005462;-50.127815;, + 0.088724;-5.311376;-50.156467;, + 0.088783;-6.790424;-47.195423;, + 3.263203;-6.537543;-47.176682;, + 2.788383;-6.077836;-48.618408;, + 0.088783;-6.790424;-47.195423;, + 2.788383;-6.077836;-48.618408;, + 0.088759;-6.348396;-48.647224;, + 3.263203;-6.537543;-47.176682;, + 0.088783;-6.790424;-47.195423;, + 0.088802;-7.028604;-45.659050;, + 3.263203;-6.537543;-47.176682;, + 0.088802;-7.028604;-45.659050;, + 3.616031;-6.779131;-45.659489;, + 3.616031;-6.779131;-45.659489;, + 4.697404;-5.290276;-45.444355;, + 4.236418;-5.088964;-46.971115;, + 3.616031;-6.779131;-45.659489;, + 4.236418;-5.088964;-46.971115;, + 3.263203;-6.537543;-47.176682;, + 4.697404;-5.290276;-45.444355;, + 3.616031;-6.779131;-45.659489;, + 3.833296;-6.939559;-44.104729;, + 4.697404;-5.290276;-45.444355;, + 3.833296;-6.939559;-44.104729;, + 4.981281;-5.445930;-43.914631;, + -2.167794;0.685999;-49.787186;, + -1.982755;2.764775;-49.294125;, + -2.382986;3.188633;-47.696121;, + -2.167794;0.685999;-49.787186;, + -2.382986;3.188633;-47.696121;, + -2.872067;0.520903;-48.153584;, + 3.049287;0.520903;-48.153584;, + 2.345015;0.685999;-49.787182;, + 2.860092;-3.965932;-50.013416;, + 3.049287;0.520903;-48.153584;, + 2.860092;-3.965932;-50.013416;, + 3.616029;-4.766136;-48.491600;, + 4.981281;-5.445930;-43.914631;, + 4.820296;-3.679985;-43.730759;, + 4.054987;-3.498727;-45.281498;, + 4.981281;-5.445930;-43.914631;, + 4.054987;-3.498727;-45.281498;, + 4.697404;-5.290276;-45.444355;, + 4.236416;-5.880675;-38.073116;, + 3.263201;-7.252952;-38.210346;, + 2.788376;-7.194830;-37.020927;, + 4.236416;-5.880675;-38.073116;, + 2.788376;-7.194830;-37.020927;, + 3.616028;-5.892648;-36.890709;, + 3.263201;-7.252952;-38.210346;, + 4.236416;-5.880675;-38.073116;, + 4.697403;-5.809213;-39.416336;, + 3.263201;-7.252952;-38.210346;, + 4.697403;-5.809213;-39.416336;, + 3.616028;-7.234228;-39.558838;, + 4.981283;-5.715190;-40.872169;, + 5.077136;-5.598254;-42.384258;, + 3.906659;-7.095318;-42.533966;, + 4.981283;-5.715190;-40.872169;, + 3.906659;-7.095318;-42.533966;, + 3.833297;-7.183485;-41.018997;, + -3.877768;-3.498727;-45.281498;, + -2.765650;3.856738;-44.529655;, + -2.746137;3.890519;-42.980984;, + -3.877768;-3.498727;-45.281498;, + -2.746137;3.890519;-42.980984;, + -4.643136;-3.680040;-43.730766;, + 3.906659;-7.095318;-42.533966;, + 5.077136;-5.598254;-42.384258;, + 4.981281;-5.445930;-43.914631;, + 3.906659;-7.095318;-42.533966;, + 4.981281;-5.445930;-43.914631;, + 3.833296;-6.939559;-44.104729;, + 0.088812;-7.188171;-44.109974;, + 0.088815;-7.342060;-42.558640;, + 3.906659;-7.095318;-42.533966;, + 0.088812;-7.188171;-44.109974;, + 3.906659;-7.095318;-42.533966;, + 3.833296;-6.939559;-44.104729;, + -3.877768;-3.498727;-45.281498;, + -4.520186;-5.290274;-45.444359;, + -4.059201;-5.088962;-46.971119;, + -3.877768;-3.498727;-45.281498;, + -4.059201;-5.088962;-46.971119;, + -3.427949;0.358480;-46.513351;, + 0.088812;-7.188171;-44.109974;, + 3.833296;-6.939559;-44.104729;, + 3.616031;-6.779131;-45.659489;, + 0.088812;-7.188171;-44.109974;, + 3.616031;-6.779131;-45.659489;, + 0.088802;-7.028604;-45.659050;, + 3.616028;-7.234228;-39.558838;, + 3.833297;-7.183485;-41.018997;, + 0.088811;-7.433950;-41.044044;, + 3.616028;-7.234228;-39.558838;, + 0.088811;-7.433950;-41.044044;, + 0.088798;-7.490282;-39.584442;, + 3.616028;-7.234228;-39.558838;, + 0.088798;-7.490282;-39.584442;, + 0.088779;-7.515799;-38.236633;, + 3.616028;-7.234228;-39.558838;, + 0.088779;-7.515799;-38.236633;, + 3.263201;-7.252952;-38.210346;, + 0.088815;-7.342060;-42.558640;, + 0.088811;-7.433950;-41.044044;, + 3.833297;-7.183485;-41.018997;, + 0.088815;-7.342060;-42.558640;, + 3.833297;-7.183485;-41.018997;, + 3.906659;-7.095318;-42.533966;, + -4.735839;-3.832350;-42.207672;, + -4.547462;-4.141720;-39.673752;, + -4.804067;-5.715190;-40.872169;, + -4.735839;-3.832350;-42.207672;, + -4.804067;-5.715190;-40.872169;, + -4.899922;-5.598253;-42.384262;, + -4.555611;-4.207119;-39.256119;, + -4.059202;-5.880673;-38.073120;, + -4.520189;-5.809212;-39.416336;, + 4.981283;-5.715190;-40.872169;, + 3.833297;-7.183485;-41.018997;, + 3.616028;-7.234228;-39.558838;, + 4.981283;-5.715190;-40.872169;, + 3.616028;-7.234228;-39.558838;, + 4.697403;-5.809213;-39.416336;, + -1.946788;3.028416;-49.247406;, + 0.090369;5.539330;-63.519550;, + -1.019545;4.849439;-48.484459;, + -1.946788;3.028416;-49.247406;, + -1.019545;4.849439;-48.484459;, + -2.314015;3.530806;-47.688351;, + -2.314015;3.530806;-47.688351;, + -2.382986;3.188633;-47.696121;, + -1.982755;2.764775;-49.294125;, + -2.314015;3.530806;-47.688351;, + -1.982755;2.764775;-49.294125;, + -1.946788;3.028416;-49.247406;, + -1.851085;4.004131;-39.900234;, + -2.394434;3.654708;-39.387318;, + -2.670072;3.855542;-41.438873;, + -1.851085;4.004131;-39.900234;, + -2.670072;3.855542;-41.438873;, + -2.357149;4.175038;-41.406925;, + 4.820296;-3.679985;-43.730759;, + 2.925629;3.890504;-42.980984;, + 2.944887;3.856738;-44.529655;, + 4.820296;-3.679985;-43.730759;, + 2.944887;3.856738;-44.529655;, + 4.054987;-3.498727;-45.281498;, + 1.413135;-4.986828;-35.106976;, + 2.112844;-4.420300;-35.772118;, + 2.386492;-4.609667;-35.791054;, + 1.413135;-4.986828;-35.106976;, + 2.386492;-4.609667;-35.791054;, + 1.617603;-5.146251;-35.122917;, + 2.852944;-5.133950;-35.843479;, + 1.956019;-5.464047;-35.154694;, + 1.617603;-5.146251;-35.122917;, + 2.852944;-5.133950;-35.843479;, + 1.617603;-5.146251;-35.122917;, + 2.386492;-4.609667;-35.791054;, + 2.852944;-5.133950;-35.843479;, + 2.860083;-5.899612;-35.920048;, + 1.997632;-5.913673;-35.199657;, + 2.852944;-5.133950;-35.843479;, + 1.997632;-5.913673;-35.199657;, + 1.956019;-5.464047;-35.154694;, + 3.564536;-4.788699;-36.780312;, + 2.852944;-5.133950;-35.843479;, + 2.386492;-4.609667;-35.791054;, + 3.564536;-4.788699;-36.780312;, + 2.386492;-4.609667;-35.791054;, + 2.112844;-4.420300;-35.772118;, + 3.564536;-4.788699;-36.780312;, + 2.112844;-4.420300;-35.772118;, + 3.311652;-3.316094;-37.540466;, + 3.564536;-4.788699;-36.780312;, + 3.311652;-3.316094;-37.540466;, + 3.547072;-3.500305;-37.835075;, + 3.564536;-4.788699;-36.780312;, + 3.616028;-5.892648;-36.890709;, + 2.860083;-5.899612;-35.920048;, + 3.564536;-4.788699;-36.780312;, + 2.860083;-5.899612;-35.920048;, + 2.852944;-5.133950;-35.843479;, + 2.072806;-6.906208;-36.020706;, + 2.860083;-5.899612;-35.920048;, + 3.616028;-5.892648;-36.890709;, + 2.072806;-6.906208;-36.020706;, + 3.616028;-5.892648;-36.890709;, + 2.788376;-7.194830;-37.020927;, + 2.860083;-5.899612;-35.920048;, + 2.072806;-6.906208;-36.020706;, + 1.549712;-6.599020;-35.268196;, + 2.860083;-5.899612;-35.920048;, + 1.549712;-6.599020;-35.268196;, + 1.997632;-5.913673;-35.199657;, + 3.311652;-3.316094;-37.540466;, + 1.521186;-3.177187;-36.615990;, + 1.116680;3.494902;-38.123669;, + 3.311652;-3.316094;-37.540466;, + 1.116680;3.494902;-38.123669;, + 2.294578;3.558352;-38.784512;, + -4.735839;-3.832350;-42.207672;, + -4.899922;-5.598253;-42.384262;, + -4.804065;-5.445930;-43.914631;, + -4.735839;-3.832350;-42.207672;, + -4.804065;-5.445930;-43.914631;, + -4.643136;-3.680040;-43.730766;, + 1.617603;-5.146251;-35.122917;, + 1.956019;-5.464047;-35.154694;, + 0.904219;-5.746009;-34.738434;, + -1.372491;2.433214;-50.805870;, + 0.090369;5.539330;-63.519550;, + -1.946788;3.028416;-49.247406;, + 0.904219;-5.746009;-34.738434;, + 1.956019;-5.464047;-35.154694;, + 1.997632;-5.913673;-35.199657;, + 1.521186;-3.177187;-36.615990;, + 3.311652;-3.316094;-37.540466;, + 2.112844;-4.420300;-35.772118;, + 3.547072;-3.500305;-37.835075;, + 3.311652;-3.316094;-37.540466;, + 2.294578;3.558352;-38.784512;, + 3.547072;-3.500305;-37.835075;, + 2.294578;3.558352;-38.784512;, + 2.485160;3.600927;-39.049419;, + 1.617603;-5.146251;-35.122917;, + 0.904219;-5.746009;-34.738434;, + 1.413135;-4.986828;-35.106976;, + 0.088633;-4.040557;-35.734142;, + 2.112844;-4.420300;-35.772118;, + 1.413135;-4.986828;-35.106976;, + 0.088633;-4.040557;-35.734142;, + 1.413135;-4.986828;-35.106976;, + 0.088624;-4.696818;-35.077972;, + 1.997632;-5.913673;-35.199657;, + 1.549712;-6.599020;-35.268196;, + 0.833471;-6.265546;-34.790390;, + 1.997632;-5.913673;-35.199657;, + 0.833471;-6.265546;-34.790390;, + 0.904219;-5.746009;-34.738434;, + 0.090187;5.399126;-60.437675;, + 0.090370;5.539328;-63.519550;, + 1.199501;4.849438;-48.484459;, + 2.112844;-4.420300;-35.772118;, + 0.088633;-4.040557;-35.734142;, + 1.521186;-3.177187;-36.615990;, + 1.549714;2.433214;-50.805866;, + 0.090192;1.733619;-52.368793;, + 1.532790;2.246215;-50.879467;, + 1.549714;2.433214;-50.805866;, + 1.532790;2.246215;-50.879467;, + 2.160112;2.764774;-49.294125;, + 1.549714;2.433214;-50.805866;, + 2.160112;2.764774;-49.294125;, + 2.124468;3.028416;-49.247406;, + 1.532790;2.246215;-50.879467;, + 0.090192;1.733619;-52.368793;, + 0.090192;0.948450;-52.451374;, + 1.532790;2.246215;-50.879467;, + 0.090192;0.948450;-52.451374;, + 1.561050;0.808837;-51.023552;, + -1.372495;-3.466758;-51.442085;, + 0.088533;-3.810062;-51.480850;, + 0.090192;-1.480764;-52.693501;, + 0.090192;-1.480764;-52.693501;, + 0.090192;-1.062579;-52.648403;, + -1.820417;-2.719596;-51.376045;, + 0.090192;-1.480764;-52.693501;, + -1.820417;-2.719596;-51.376045;, + -1.372495;-3.466758;-51.442085;, + -1.851085;4.004131;-39.900234;, + -0.937334;3.494866;-38.123672;, + -2.115014;3.558352;-38.784512;, + 0.090192;-1.062579;-52.648403;, + 0.090192;0.948450;-52.451374;, + -1.383827;0.808836;-51.023552;, + 0.090192;-1.062579;-52.648403;, + -1.383827;0.808836;-51.023552;, + -1.820417;-2.719596;-51.376045;, + 0.088437;-6.790424;-47.195423;, + -3.085983;-6.537542;-47.176685;, + -3.438814;-6.779130;-45.659489;, + 0.088437;-6.790424;-47.195423;, + -3.438814;-6.779130;-45.659489;, + 0.088419;-7.028605;-45.659050;, + -3.656078;-6.939559;-44.104733;, + -3.729444;-7.095317;-42.533966;, + 0.088403;-7.342061;-42.558640;, + -3.656078;-6.939559;-44.104733;, + 0.088403;-7.342061;-42.558640;, + 0.088419;-7.028605;-45.659050;, + -3.656078;-6.939559;-44.104733;, + 0.088419;-7.028605;-45.659050;, + -3.438814;-6.779130;-45.659489;, + -4.555611;-4.207119;-39.256119;, + -3.387323;-4.788698;-36.780312;, + -3.438815;-5.892648;-36.890709;, + -4.555611;-4.207119;-39.256119;, + -3.438815;-5.892648;-36.890709;, + -4.059202;-5.880673;-38.073120;, + -4.555611;-4.207119;-39.256119;, + -2.305577;3.600927;-39.049423;, + -3.369859;-3.500305;-37.835079;, + -2.305577;3.600927;-39.049423;, + -4.555611;-4.207119;-39.256119;, + -4.547462;-4.141720;-39.673752;, + -2.305577;3.600927;-39.049423;, + -4.547462;-4.141720;-39.673752;, + -2.394434;3.654708;-39.387318;, + 0.088721;-7.181510;-36.048237;, + 2.072806;-6.906208;-36.020706;, + 2.788376;-7.194830;-37.020927;, + 0.088721;-7.181510;-36.048237;, + 2.788376;-7.194830;-37.020927;, + 0.088752;-7.434160;-37.044861;, + 0.088686;-6.764900;-35.284786;, + 1.549712;-6.599020;-35.268196;, + 2.072806;-6.906208;-36.020706;, + 0.088686;-6.764900;-35.284786;, + 2.072806;-6.906208;-36.020706;, + 0.088721;-7.181510;-36.048237;, + 0.088646;-6.379745;-34.801807;, + 0.833471;-6.265546;-34.790390;, + 1.549712;-6.599020;-35.268196;, + 0.088646;-6.379745;-34.801807;, + 1.549712;-6.599020;-35.268196;, + 0.088686;-6.764900;-35.284786;, + 0.088463;-6.348396;-48.647224;, + -2.611163;-6.077835;-48.618412;, + -3.085983;-6.537542;-47.176685;, + 0.088463;-6.348396;-48.647224;, + -3.085983;-6.537542;-47.176685;, + 0.088437;-6.790424;-47.195423;, + -2.032585;-5.005462;-50.127815;, + 0.088499;-5.311377;-50.156467;, + 0.088533;-3.810062;-51.480850;, + -2.032585;-5.005462;-50.127815;, + 0.088533;-3.810062;-51.480850;, + -1.372495;-3.466758;-51.442085;, + -2.611163;-6.077835;-48.618412;, + 0.088463;-6.348396;-48.647224;, + 0.088499;-5.311377;-50.156467;, + -2.611163;-6.077835;-48.618412;, + 0.088499;-5.311377;-50.156467;, + -2.032585;-5.005462;-50.127815;, + 0.088463;-7.434161;-37.044861;, + -2.611163;-7.194830;-37.020927;, + -1.895594;-6.906208;-36.020710;, + 0.088463;-7.434161;-37.044861;, + -1.895594;-6.906208;-36.020710;, + 0.088492;-7.181510;-36.048237;, + 0.088436;-7.515799;-38.236633;, + -3.085987;-7.252951;-38.210346;, + -2.611163;-7.194830;-37.020927;, + 0.088436;-7.515799;-38.236633;, + -2.611163;-7.194830;-37.020927;, + 0.088463;-7.434161;-37.044861;, + 0.088418;-7.490283;-39.584442;, + -3.438814;-7.234228;-39.558838;, + -3.085987;-7.252951;-38.210346;, + 0.088418;-7.490283;-39.584442;, + -3.085987;-7.252951;-38.210346;, + 0.088436;-7.515799;-38.236633;, + -3.438814;-7.234228;-39.558838;, + 0.088418;-7.490283;-39.584442;, + 0.088407;-7.433950;-41.044044;, + -3.438814;-7.234228;-39.558838;, + 0.088407;-7.433950;-41.044044;, + -3.656082;-7.183485;-41.018997;, + -3.656082;-7.183485;-41.018997;, + 0.088407;-7.433950;-41.044044;, + 0.088403;-7.342061;-42.558640;, + -3.656082;-7.183485;-41.018997;, + 0.088403;-7.342061;-42.558640;, + -3.729444;-7.095317;-42.533966;, + -3.387323;-4.788698;-36.780312;, + -2.675732;-5.133950;-35.843483;, + -2.682871;-5.899612;-35.920048;, + -3.387323;-4.788698;-36.780312;, + -2.682871;-5.899612;-35.920048;, + -3.438815;-5.892648;-36.890709;, + -2.625500;3.608513;-46.101368;, + -2.765650;3.856738;-44.529655;, + -3.877768;-3.498727;-45.281498;, + -2.625500;3.608513;-46.101368;, + -3.877768;-3.498727;-45.281498;, + -3.427949;0.358480;-46.513351;, + 3.263201;-7.252952;-38.210346;, + 0.088779;-7.515799;-38.236633;, + 0.088752;-7.434160;-37.044861;, + 3.263201;-7.252952;-38.210346;, + 0.088752;-7.434160;-37.044861;, + 2.788376;-7.194830;-37.020927;, + -2.115014;3.558352;-38.784512;, + -0.937334;3.494866;-38.123672;, + -1.343972;-3.177187;-36.615990;, + -2.115014;3.558352;-38.784512;, + -1.343972;-3.177187;-36.615990;, + -3.134439;-3.316094;-37.540470;, + 0.090370;5.539328;-63.519550;, + 0.090192;1.733619;-52.368793;, + 1.549714;2.433214;-50.805866;, + 1.549714;2.433214;-50.805866;, + 2.124468;3.028416;-49.247406;, + 0.090370;5.539328;-63.519550;, + 2.745647;4.249433;-42.985828;, + 1.093772;7.502573;-42.640896;, + 1.098549;7.588112;-44.232494;, + 2.745647;4.249433;-42.985828;, + 1.098549;7.588112;-44.232494;, + 2.761725;4.160208;-44.565544;, + 2.745647;4.249433;-42.985828;, + 2.761725;4.160208;-44.565544;, + 2.944887;3.856738;-44.529655;, + 2.745647;4.249433;-42.985828;, + 2.944887;3.856738;-44.529655;, + 2.925629;3.890504;-42.980984;, + 1.098549;7.588112;-44.232494;, + 1.093772;7.502573;-42.640896;, + 0.090185;7.607758;-45.604641;, + 1.098549;7.588112;-44.232494;, + 0.090185;7.607758;-45.604641;, + 0.090190;7.576410;-47.390713;, + 1.098549;7.588112;-44.232494;, + 0.090190;7.576410;-47.390713;, + 0.751427;7.561281;-47.045837;, + 0.751427;7.561281;-47.045837;, + 2.734428;3.915359;-46.131393;, + 2.761725;4.160208;-44.565544;, + 0.751427;7.561281;-47.045837;, + 2.761725;4.160208;-44.565544;, + 1.098549;7.588112;-44.232494;, + 1.199501;4.849438;-48.484459;, + 2.492484;3.530806;-47.688347;, + 2.734428;3.915359;-46.131393;, + 1.199501;4.849438;-48.484459;, + 2.734428;3.915359;-46.131393;, + 0.751427;7.561281;-47.045837;, + 2.294578;3.558352;-38.784512;, + 0.090182;4.289235;-38.933414;, + 2.030750;4.004235;-39.900223;, + 2.030750;4.004235;-39.900223;, + 2.574041;3.654709;-39.387314;, + 2.485160;3.600927;-39.049419;, + 2.294578;3.558352;-38.784512;, + 2.030750;4.004235;-39.900223;, + 2.485160;3.600927;-39.049419;, + 2.030750;4.004235;-39.900223;, + 0.090182;4.289235;-38.933414;, + 1.254099;4.593699;-41.365059;, + 2.030750;4.004235;-39.900223;, + 1.254099;4.593699;-41.365059;, + 2.537139;4.175038;-41.406921;, + 2.537139;4.175038;-41.406921;, + 2.849724;3.855520;-41.438873;, + 2.574041;3.654709;-39.387314;, + 2.537139;4.175038;-41.406921;, + 2.574041;3.654709;-39.387314;, + 2.030750;4.004235;-39.900223;, + 2.745647;4.249433;-42.985828;, + 2.925629;3.890504;-42.980984;, + 2.849724;3.855520;-41.438873;, + 2.745647;4.249433;-42.985828;, + 2.849724;3.855520;-41.438873;, + 2.537139;4.175038;-41.406921;, + 1.093772;7.502573;-42.640896;, + 2.745647;4.249433;-42.985828;, + 2.537139;4.175038;-41.406921;, + 2.537139;4.175038;-41.406921;, + 1.254099;4.593699;-41.365059;, + 1.093772;7.502573;-42.640896;, + -0.918175;7.588112;-44.232494;, + -0.571051;7.561281;-47.045841;, + 0.090190;7.576410;-47.390713;, + -0.918175;7.588112;-44.232494;, + 0.090190;7.576410;-47.390713;, + 0.090185;7.607758;-45.604641;, + 0.090190;7.576410;-47.390713;, + -0.571051;7.561281;-47.045841;, + -1.019545;4.849439;-48.484459;, + 0.090190;7.576410;-47.390713;, + -1.019545;4.849439;-48.484459;, + 0.090189;5.386889;-48.562382;, + 0.751427;7.561281;-47.045837;, + 0.090190;7.576410;-47.390713;, + 0.090189;5.386889;-48.562382;, + 0.751427;7.561281;-47.045837;, + 0.090189;5.386889;-48.562382;, + 1.199501;4.849438;-48.484459;, + -4.555611;-4.207119;-39.256119;, + -4.520189;-5.809212;-39.416336;, + -4.804067;-5.715190;-40.872169;, + -4.555611;-4.207119;-39.256119;, + -4.804067;-5.715190;-40.872169;, + -4.547462;-4.141720;-39.673752;, + -0.522541;7.480080;-42.289188;, + 0.090187;7.450539;-42.112988;, + 0.090186;4.710207;-40.760750;, + -0.522541;7.480080;-42.289188;, + 0.090186;4.710207;-40.760750;, + -0.502980;4.663809;-40.874268;, + 0.090369;5.539330;-63.519550;, + -1.372491;2.433214;-50.805870;, + 0.090192;1.733619;-52.368793;, + 1.254099;4.593699;-41.365059;, + 0.090182;4.289235;-38.933414;, + 0.090186;4.710207;-40.760750;, + 1.254099;4.593699;-41.365059;, + 0.090186;4.710207;-40.760750;, + 0.685445;4.629865;-40.864532;, + 0.649487;7.479809;-42.276825;, + 1.093772;7.502573;-42.640896;, + 1.254099;4.593699;-41.365059;, + 0.649487;7.479809;-42.276825;, + 1.254099;4.593699;-41.365059;, + 0.685445;4.629865;-40.864532;, + 0.090185;7.607758;-45.604641;, + 1.093772;7.502573;-42.640896;, + 0.649487;7.479809;-42.276825;, + 0.090185;7.607758;-45.604641;, + 0.649487;7.479809;-42.276825;, + 0.090187;7.450539;-42.112988;, + 0.090187;7.450539;-42.112988;, + -0.522541;7.480080;-42.289188;, + -0.913108;7.502623;-42.640888;, + 0.090187;7.450539;-42.112988;, + -0.913108;7.502623;-42.640888;, + -0.918175;7.588112;-44.232494;, + 0.090187;7.450539;-42.112988;, + -0.918175;7.588112;-44.232494;, + 0.090185;7.607758;-45.604641;, + 0.090369;5.539330;-63.519550;, + 0.090192;11.982307;-64.778625;, + 0.090191;11.830563;-63.256744;, + 0.090369;5.539330;-63.519550;, + 0.090191;11.830563;-63.256744;, + 0.090187;5.399126;-60.437675;, + -2.394434;3.654708;-39.387318;, + -4.547462;-4.141720;-39.673752;, + -4.735839;-3.832350;-42.207672;, + -2.394434;3.654708;-39.387318;, + -4.735839;-3.832350;-42.207672;, + -2.670072;3.855542;-41.438873;, + -2.582081;4.160230;-44.565544;, + -2.565645;4.249475;-42.985825;, + -2.746137;3.890519;-42.980984;, + -2.582081;4.160230;-44.565544;, + -2.746137;3.890519;-42.980984;, + -2.765650;3.856738;-44.529655;, + 0.090187;5.399126;-60.437675;, + 0.090191;11.830563;-63.256744;, + 0.090192;11.982307;-64.778625;, + 0.090187;5.399126;-60.437675;, + 0.090192;11.982307;-64.778625;, + 0.090370;5.539328;-63.519550;, + -2.209280;-4.609667;-35.791054;, + -1.440390;-5.146251;-35.122917;, + -1.778807;-5.464047;-35.154697;, + -2.209280;-4.609667;-35.791054;, + -1.778807;-5.464047;-35.154697;, + -2.675732;-5.133950;-35.843483;, + -1.019545;4.849439;-48.484459;, + 0.090369;5.539330;-63.519550;, + 0.090187;5.399126;-60.437675;, + -2.314015;3.530806;-47.688351;, + -1.019545;4.849439;-48.484459;, + -0.571051;7.561281;-47.045841;, + -2.314015;3.530806;-47.688351;, + -0.571051;7.561281;-47.045841;, + -2.555312;3.915359;-46.131393;, + -2.555312;3.915359;-46.131393;, + -0.571051;7.561281;-47.045841;, + -0.918175;7.588112;-44.232494;, + -2.555312;3.915359;-46.131393;, + -0.918175;7.588112;-44.232494;, + -2.582081;4.160230;-44.565544;, + -1.074145;4.593606;-41.365070;, + -0.502980;4.663809;-40.874268;, + 0.090186;4.710207;-40.760750;, + -1.074145;4.593606;-41.365070;, + 0.090186;4.710207;-40.760750;, + 0.090182;4.289235;-38.933414;, + -2.565645;4.249475;-42.985825;, + -0.913108;7.502623;-42.640888;, + -1.074145;4.593606;-41.365070;, + -2.565645;4.249475;-42.985825;, + -1.074145;4.593606;-41.365070;, + -2.357149;4.175038;-41.406925;, + -2.582081;4.160230;-44.565544;, + -0.918175;7.588112;-44.232494;, + -0.913108;7.502623;-42.640888;, + -2.582081;4.160230;-44.565544;, + -0.913108;7.502623;-42.640888;, + -2.565645;4.249475;-42.985825;, + 1.116680;3.494902;-38.123669;, + -0.937334;3.494866;-38.123672;, + -0.394193;3.889114;-38.356964;, + 1.116680;3.494902;-38.123669;, + -0.394193;3.889114;-38.356964;, + 0.090182;4.289235;-38.933414;, + 1.116680;3.494902;-38.123669;, + 0.090182;4.289235;-38.933414;, + 0.548567;3.884851;-38.358208;, + 1.116680;3.494902;-38.123669;, + 0.548567;3.884851;-38.358208;, + 0.090182;4.289235;-38.933414;, + 1.116680;3.494902;-38.123669;, + 0.090182;4.289235;-38.933414;, + 2.294578;3.558352;-38.784512;, + -0.937334;3.494866;-38.123672;, + -1.851085;4.004131;-39.900234;, + 0.090182;4.289235;-38.933414;, + -0.937334;3.494866;-38.123672;, + 0.090182;4.289235;-38.933414;, + -0.394193;3.889114;-38.356964;, + -2.357149;4.175038;-41.406925;, + -1.074145;4.593606;-41.365070;, + 0.090182;4.289235;-38.933414;, + -2.357149;4.175038;-41.406925;, + 0.090182;4.289235;-38.933414;, + -1.851085;4.004131;-39.900234;, + 0.090189;5.386889;-48.562382;, + -1.019545;4.849439;-48.484459;, + 0.090187;5.399126;-60.437675;, + 0.090187;5.399126;-60.437675;, + 1.199501;4.849438;-48.484459;, + 0.090189;5.386889;-48.562382;, + -0.727007;-5.746010;-34.738434;, + -1.235923;-4.986828;-35.106976;, + 0.088624;-4.696818;-35.077972;, + -0.727007;-5.746010;-34.738434;, + 0.088624;-4.696818;-35.077972;, + 0.088615;-5.455910;-34.709423;, + 0.088624;-4.696818;-35.077972;, + -1.235923;-4.986828;-35.106976;, + -1.935632;-4.420299;-35.772118;, + 0.088624;-4.696818;-35.077972;, + -1.935632;-4.420299;-35.772118;, + 0.088633;-4.040557;-35.734142;, + 0.904219;-5.746009;-34.738434;, + 0.088615;-5.455910;-34.709423;, + 0.088624;-4.696818;-35.077972;, + 0.904219;-5.746009;-34.738434;, + 0.088624;-4.696818;-35.077972;, + 1.413135;-4.986828;-35.106976;, + -1.982755;2.764775;-49.294125;, + -2.167794;0.685999;-49.787186;, + -1.383827;0.808836;-51.023552;, + -1.982755;2.764775;-49.294125;, + -1.383827;0.808836;-51.023552;, + -1.355567;2.246215;-50.879467;, + -1.355567;2.246215;-50.879467;, + -1.372491;2.433214;-50.805870;, + -1.946788;3.028416;-49.247406;, + -1.355567;2.246215;-50.879467;, + -1.946788;3.028416;-49.247406;, + -1.982755;2.764775;-49.294125;, + -1.355567;2.246215;-50.879467;, + 0.090192;1.733619;-52.368793;, + -1.372491;2.433214;-50.805870;, + -1.440390;-5.146251;-35.122917;, + -0.727007;-5.746010;-34.738434;, + -1.778807;-5.464047;-35.154697;, + -4.555611;-4.207119;-39.256119;, + -3.369859;-3.500305;-37.835079;, + -3.387323;-4.788698;-36.780312;, + -4.735839;-3.832350;-42.207672;, + -4.643136;-3.680040;-43.730766;, + -2.746137;3.890519;-42.980984;, + -4.735839;-3.832350;-42.207672;, + -2.746137;3.890519;-42.980984;, + -2.670072;3.855542;-41.438873;, + -0.727007;-5.746010;-34.738434;, + -0.656258;-6.265546;-34.790390;, + -1.372500;-6.599020;-35.268196;, + -0.727007;-5.746010;-34.738434;, + -1.372500;-6.599020;-35.268196;, + -1.820419;-5.913673;-35.199661;, + 0.088528;-6.764900;-35.284786;, + -1.372500;-6.599020;-35.268196;, + -0.656258;-6.265546;-34.790390;, + 0.088528;-6.764900;-35.284786;, + -0.656258;-6.265546;-34.790390;, + 0.088567;-6.379745;-34.801807;, + -0.727007;-5.746010;-34.738434;, + -1.440390;-5.146251;-35.122917;, + -1.235923;-4.986828;-35.106976;, + -1.778807;-5.464047;-35.154697;, + -0.727007;-5.746010;-34.738434;, + -1.820419;-5.913673;-35.199661;, + -0.727007;-5.746010;-34.738434;, + 0.088615;-5.455910;-34.709423;, + 0.088607;-5.952104;-34.608963;, + 0.088567;-6.379745;-34.801807;, + -0.656258;-6.265546;-34.790390;, + 0.088607;-5.952104;-34.608963;, + -0.656258;-6.265546;-34.790390;, + -0.727007;-5.746010;-34.738434;, + 0.088607;-5.952104;-34.608963;, + 0.088607;-5.952104;-34.608963;, + 0.833471;-6.265546;-34.790390;, + 0.088646;-6.379745;-34.801807;, + 0.088607;-5.952104;-34.608963;, + 0.088615;-5.455910;-34.709423;, + 0.904219;-5.746009;-34.738434;, + 0.904219;-5.746009;-34.738434;, + 0.833471;-6.265546;-34.790390;, + 0.088607;-5.952104;-34.608963;, + -2.682871;-5.899612;-35.920048;, + -1.895594;-6.906208;-36.020710;, + -2.611163;-7.194830;-37.020927;, + -2.682871;-5.899612;-35.920048;, + -2.611163;-7.194830;-37.020927;, + -3.438815;-5.892648;-36.890709;, + -2.675732;-5.133950;-35.843483;, + -1.778807;-5.464047;-35.154697;, + -1.820419;-5.913673;-35.199661;, + -2.675732;-5.133950;-35.843483;, + -1.820419;-5.913673;-35.199661;, + -2.682871;-5.899612;-35.920048;, + -1.895594;-6.906208;-36.020710;, + -2.682871;-5.899612;-35.920048;, + -1.820419;-5.913673;-35.199661;, + -1.895594;-6.906208;-36.020710;, + -1.820419;-5.913673;-35.199661;, + -1.372500;-6.599020;-35.268196;, + 0.088633;-4.040557;-35.734142;, + -1.935632;-4.420299;-35.772118;, + -1.343972;-3.177187;-36.615990;, + -2.209280;-4.609667;-35.791054;, + -1.935632;-4.420299;-35.772118;, + -1.235923;-4.986828;-35.106976;, + -2.209280;-4.609667;-35.791054;, + -1.235923;-4.986828;-35.106976;, + -1.440390;-5.146251;-35.122917;, + -1.372500;-6.599020;-35.268196;, + 0.088528;-6.764900;-35.284786;, + 0.088492;-7.181510;-36.048237;, + -1.372500;-6.599020;-35.268196;, + 0.088492;-7.181510;-36.048237;, + -1.895594;-6.906208;-36.020710;, + 0.088633;-4.040557;-35.734142;, + -1.343972;-3.177187;-36.615990;, + 1.521186;-3.177187;-36.615990;, + -2.555312;3.915359;-46.131393;, + -2.582081;4.160230;-44.565544;, + -2.765650;3.856738;-44.529655;, + -2.555312;3.915359;-46.131393;, + -2.765650;3.856738;-44.529655;, + -2.625500;3.608513;-46.101368;, + 1.116680;3.494902;-38.123669;, + 1.521186;-3.177187;-36.615990;, + -1.343972;-3.177187;-36.615990;, + 1.116680;3.494902;-38.123669;, + -1.343972;-3.177187;-36.615990;, + -0.937334;3.494866;-38.123672;, + -2.555312;3.915359;-46.131393;, + -2.625500;3.608513;-46.101368;, + -3.427949;0.358480;-46.513351;, + -2.555312;3.915359;-46.131393;, + -3.427949;0.358480;-46.513351;, + -2.872067;0.520903;-48.153584;, + -2.555312;3.915359;-46.131393;, + -2.872067;0.520903;-48.153584;, + -2.382986;3.188633;-47.696121;, + -2.555312;3.915359;-46.131393;, + -2.382986;3.188633;-47.696121;, + -2.314015;3.530806;-47.688351;, + -4.804065;-5.445930;-43.914631;, + -4.520186;-5.290274;-45.444359;, + -3.877768;-3.498727;-45.281498;, + -4.804065;-5.445930;-43.914631;, + -3.877768;-3.498727;-45.281498;, + -4.643136;-3.680040;-43.730766;, + 0.090192;0.948450;-52.451374;, + 0.090192;1.733619;-52.368793;, + -1.355567;2.246215;-50.879467;, + 0.090192;0.948450;-52.451374;, + -1.355567;2.246215;-50.879467;, + -1.383827;0.808836;-51.023552;, + -4.899922;-5.598253;-42.384262;, + -3.729444;-7.095317;-42.533966;, + -3.656078;-6.939559;-44.104733;, + -4.899922;-5.598253;-42.384262;, + -3.656078;-6.939559;-44.104733;, + -4.804065;-5.445930;-43.914631;, + -3.729444;-7.095317;-42.533966;, + -4.899922;-5.598253;-42.384262;, + -4.804067;-5.715190;-40.872169;, + -3.729444;-7.095317;-42.533966;, + -4.804067;-5.715190;-40.872169;, + -3.656082;-7.183485;-41.018997;, + -2.167794;0.685999;-49.787186;, + -2.872067;0.520903;-48.153584;, + -3.438808;-4.766136;-48.491600;, + -2.167794;0.685999;-49.787186;, + -3.438808;-4.766136;-48.491600;, + -2.682870;-3.965933;-50.013420;, + -4.520189;-5.809212;-39.416336;, + -3.438814;-7.234228;-39.558838;, + -3.656082;-7.183485;-41.018997;, + -4.520189;-5.809212;-39.416336;, + -3.656082;-7.183485;-41.018997;, + -4.804067;-5.715190;-40.872169;, + -4.059202;-5.880673;-38.073120;, + -3.085987;-7.252951;-38.210346;, + -3.438814;-7.234228;-39.558838;, + -4.059202;-5.880673;-38.073120;, + -3.438814;-7.234228;-39.558838;, + -4.520189;-5.809212;-39.416336;, + -3.438815;-5.892648;-36.890709;, + -2.611163;-7.194830;-37.020927;, + -3.085987;-7.252951;-38.210346;, + -3.438815;-5.892648;-36.890709;, + -3.085987;-7.252951;-38.210346;, + -4.059202;-5.880673;-38.073120;, + -3.438808;-4.766136;-48.491600;, + -2.872067;0.520903;-48.153584;, + -3.427949;0.358480;-46.513351;, + -3.438808;-4.766136;-48.491600;, + -3.427949;0.358480;-46.513351;, + -4.059201;-5.088962;-46.971119;, + -3.438814;-6.779130;-45.659489;, + -4.520186;-5.290274;-45.444359;, + -4.804065;-5.445930;-43.914631;, + -3.438814;-6.779130;-45.659489;, + -4.804065;-5.445930;-43.914631;, + -3.656078;-6.939559;-44.104733;, + -3.085983;-6.537542;-47.176685;, + -4.059201;-5.088962;-46.971119;, + -4.520186;-5.290274;-45.444359;, + -3.085983;-6.537542;-47.176685;, + -4.520186;-5.290274;-45.444359;, + -3.438814;-6.779130;-45.659489;, + -2.611163;-6.077835;-48.618412;, + -3.438808;-4.766136;-48.491600;, + -4.059201;-5.088962;-46.971119;, + -2.611163;-6.077835;-48.618412;, + -4.059201;-5.088962;-46.971119;, + -3.085983;-6.537542;-47.176685;, + -2.682870;-3.965933;-50.013420;, + -2.032585;-5.005462;-50.127815;, + -1.372495;-3.466758;-51.442085;, + -2.682870;-3.965933;-50.013420;, + -1.372495;-3.466758;-51.442085;, + -1.820417;-2.719596;-51.376045;, + -3.438808;-4.766136;-48.491600;, + -2.611163;-6.077835;-48.618412;, + -2.032585;-5.005462;-50.127815;, + -3.438808;-4.766136;-48.491600;, + -2.032585;-5.005462;-50.127815;, + -2.682870;-3.965933;-50.013420;, + -1.820417;-2.719596;-51.376045;, + -1.383827;0.808836;-51.023552;, + -2.167794;0.685999;-49.787186;, + -1.820417;-2.719596;-51.376045;, + -2.167794;0.685999;-49.787186;, + -2.682870;-3.965933;-50.013420;, + -4.319024;11.982014;-64.787537;, + 4.499367;11.982021;-64.787575;, + 4.499373;11.902815;-63.283722;, + -4.319024;11.982014;-64.787537;, + 4.499373;11.902815;-63.283722;, + -4.319019;11.902805;-63.283684;, + 4.499373;11.902815;-63.283722;, + 4.499367;11.982021;-64.787575;, + 4.499376;11.827740;-63.244751;, + 4.499373;11.902815;-63.283718;, + 4.499373;11.902815;-63.283722;, + 4.499376;11.827740;-63.244751;, + 4.499376;11.827740;-63.244751;, + -4.319017;11.827730;-63.244709;, + -4.319019;11.902805;-63.283676;, + 4.499376;11.827740;-63.244751;, + -4.319019;11.902805;-63.283676;, + 4.499373;11.902815;-63.283718;, + -4.319019;11.902805;-63.283676;, + -4.319017;11.827730;-63.244709;, + -4.319024;11.982014;-64.787537;, + -4.319019;11.902805;-63.283684;, + -4.319019;11.902805;-63.283676;, + -4.319024;11.982014;-64.787537;, + -4.319017;11.827730;-63.244709;, + 4.499376;11.827740;-63.244751;, + 4.499367;11.982021;-64.787575;, + -4.319017;11.827730;-63.244709;, + 4.499367;11.982021;-64.787575;, + -4.319024;11.982014;-64.787537;, + 0.810184;7.629324;-43.701767;, + 0.599301;7.578665;-43.195179;, + 0.599301;9.583048;-42.994740;, + 0.810184;7.629324;-43.701767;, + 0.599301;9.583048;-42.994740;, + 0.810184;9.633707;-43.501331;, + -6.566365;-10.487874;-50.598923;, + -6.147033;-10.088690;-50.559002;, + -6.574507;-9.936144;-50.543751;, + -6.564239;-10.488680;-50.599003;, + -6.566365;-10.487874;-50.598923;, + -6.574507;-9.936144;-50.543751;, + -6.574507;-9.936144;-50.543751;, + -6.574511;-11.392984;-35.975384;, + -6.564244;-11.945520;-36.030640;, + -6.574507;-9.936144;-50.543751;, + -6.564244;-11.945520;-36.030640;, + -6.564239;-10.488680;-50.599003;, + -6.591063;-11.250750;-34.880714;, + -6.122952;-10.930162;-34.980038;, + -6.147038;-11.545530;-35.990639;, + -6.591063;-11.250750;-34.880714;, + -6.147038;-11.545530;-35.990639;, + -6.566370;-11.944715;-36.030556;, + -6.147038;-11.545530;-35.990639;, + -6.147033;-10.088690;-50.559002;, + -6.566365;-10.487874;-50.598923;, + -6.147038;-11.545530;-35.990639;, + -6.566365;-10.487874;-50.598923;, + -6.566370;-11.944715;-36.030556;, + -6.147038;-11.545530;-35.990639;, + -6.574511;-11.392984;-35.975384;, + -6.574507;-9.936144;-50.543751;, + -6.147038;-11.545530;-35.990639;, + -6.574507;-9.936144;-50.543751;, + -6.147033;-10.088690;-50.559002;, + -6.578065;-10.777615;-34.964783;, + -6.588780;-11.251555;-34.880798;, + -6.564244;-11.945520;-36.030640;, + -6.578065;-10.777615;-34.964783;, + -6.564244;-11.945520;-36.030640;, + -6.574511;-11.392984;-35.975384;, + -6.122952;-10.930162;-34.980038;, + -6.578065;-10.777615;-34.964783;, + -6.574511;-11.392984;-35.975384;, + -6.122952;-10.930162;-34.980038;, + -6.574511;-11.392984;-35.975384;, + -6.147038;-11.545530;-35.990639;, + -6.588780;-11.251555;-34.880798;, + -6.591063;-11.250750;-34.880714;, + -6.566370;-11.944715;-36.030556;, + -6.588780;-11.251555;-34.880798;, + -6.566370;-11.944715;-36.030556;, + -6.564244;-11.945520;-36.030640;, + -3.529621;-6.501422;-45.956047;, + -3.495568;-6.051006;-46.905941;, + -6.354486;-10.332779;-47.334122;, + -3.529621;-6.501422;-45.956047;, + -6.354486;-10.332779;-47.334122;, + -6.235557;-10.473923;-46.353298;, + -3.495591;-6.050998;-46.905941;, + -3.690169;-6.272764;-45.933182;, + -6.474483;-10.388647;-46.344772;, + -3.495591;-6.050998;-46.905941;, + -6.474483;-10.388647;-46.344772;, + -6.354509;-10.332772;-47.334122;, + -3.690169;-6.272764;-45.933182;, + -3.529621;-6.501422;-45.956047;, + -6.235557;-10.473923;-46.353298;, + -3.690169;-6.272764;-45.933182;, + -6.235557;-10.473923;-46.353298;, + -6.474483;-10.388647;-46.344772;, + -3.467959;-7.052942;-39.146461;, + -3.652067;-7.055934;-40.141701;, + -6.354489;-11.012458;-40.537354;, + -3.467959;-7.052942;-39.146461;, + -6.354489;-11.012458;-40.537354;, + -6.235560;-11.153599;-39.556534;, + -3.652089;-7.055926;-40.141701;, + -3.628332;-6.823925;-39.123562;, + -6.474486;-11.068328;-39.548004;, + -3.652089;-7.055926;-40.141701;, + -6.474486;-11.068328;-39.548004;, + -6.354513;-11.012449;-40.537354;, + -3.628332;-6.823925;-39.123562;, + -3.467959;-7.052942;-39.146461;, + -6.235560;-11.153599;-39.556534;, + -3.628332;-6.823925;-39.123562;, + -6.235560;-11.153599;-39.556534;, + -6.474486;-11.068328;-39.548004;, + 6.132704;-10.088693;-50.558998;, + 6.535230;-10.487872;-50.598919;, + 6.533104;-10.488681;-50.598999;, + 6.132704;-10.088693;-50.558998;, + 6.533104;-10.488681;-50.598999;, + 6.560181;-9.936144;-50.543743;, + 6.533104;-10.488681;-50.598999;, + 6.533099;-11.945521;-36.030636;, + 6.560177;-11.392985;-35.975380;, + 6.533104;-10.488681;-50.598999;, + 6.560177;-11.392985;-35.975380;, + 6.560181;-9.936144;-50.543743;, + 6.535226;-11.944714;-36.030556;, + 6.132700;-11.545533;-35.990635;, + 6.135945;-10.930164;-34.980034;, + 6.535226;-11.944714;-36.030556;, + 6.135945;-10.930164;-34.980034;, + 6.587418;-11.250752;-34.880714;, + 6.535226;-11.944714;-36.030556;, + 6.535230;-10.487872;-50.598919;, + 6.132704;-10.088693;-50.558998;, + 6.535226;-11.944714;-36.030556;, + 6.132704;-10.088693;-50.558998;, + 6.132700;-11.545533;-35.990635;, + 6.132704;-10.088693;-50.558998;, + 6.560181;-9.936144;-50.543743;, + 6.560177;-11.392985;-35.975380;, + 6.132704;-10.088693;-50.558998;, + 6.560177;-11.392985;-35.975380;, + 6.132700;-11.545533;-35.990635;, + 6.560177;-11.392985;-35.975380;, + 6.533099;-11.945521;-36.030636;, + 6.585136;-11.251557;-34.880791;, + 6.560177;-11.392985;-35.975380;, + 6.585136;-11.251557;-34.880791;, + 6.591063;-10.777617;-34.964783;, + 6.132700;-11.545533;-35.990635;, + 6.560177;-11.392985;-35.975380;, + 6.591063;-10.777617;-34.964783;, + 6.132700;-11.545533;-35.990635;, + 6.591063;-10.777617;-34.964783;, + 6.135945;-10.930164;-34.980034;, + 6.533099;-11.945521;-36.030636;, + 6.535226;-11.944714;-36.030556;, + 6.587418;-11.250752;-34.880714;, + 6.533099;-11.945521;-36.030636;, + 6.587418;-11.250752;-34.880714;, + 6.585136;-11.251557;-34.880791;, + 6.221220;-11.153606;-39.556526;, + 6.340153;-11.012464;-40.537350;, + 3.829274;-7.055937;-40.141697;, + 6.221220;-11.153606;-39.556526;, + 3.829274;-7.055937;-40.141697;, + 3.645165;-7.052945;-39.146461;, + 6.340176;-11.012454;-40.537350;, + 6.460150;-11.068331;-39.548000;, + 3.805539;-6.823925;-39.123558;, + 6.340176;-11.012454;-40.537350;, + 3.805539;-6.823925;-39.123558;, + 3.829296;-7.055928;-40.141697;, + 6.460150;-11.068331;-39.548000;, + 6.221220;-11.153606;-39.556526;, + 3.645165;-7.052945;-39.146461;, + 6.460150;-11.068331;-39.548000;, + 3.645165;-7.052945;-39.146461;, + 3.805539;-6.823925;-39.123558;, + 6.221224;-10.473927;-46.353294;, + 6.340156;-10.332784;-47.334118;, + 3.672779;-6.051008;-46.905941;, + 6.221224;-10.473927;-46.353294;, + 3.672779;-6.051008;-46.905941;, + 3.706832;-6.501424;-45.956043;, + 6.340178;-10.332777;-47.334118;, + 6.460154;-10.388651;-46.344769;, + 3.867379;-6.272764;-45.933178;, + 6.340178;-10.332777;-47.334118;, + 3.867379;-6.272764;-45.933178;, + 3.672802;-6.050999;-46.905937;, + 6.460154;-10.388651;-46.344769;, + 6.221224;-10.473927;-46.353294;, + 3.706832;-6.501424;-45.956043;, + 6.460154;-10.388651;-46.344769;, + 3.706832;-6.501424;-45.956043;, + 3.867379;-6.272764;-45.933178;, + 0.599301;7.679983;-44.208359;, + 0.810184;7.629324;-43.701767;, + 0.810184;9.633707;-43.501331;, + 0.599301;7.679983;-44.208359;, + 0.810184;9.633707;-43.501331;, + 0.599301;9.684366;-44.007919;, + 0.090184;7.557682;-42.985344;, + -0.418933;7.578665;-43.195179;, + -0.418933;9.583048;-42.994740;, + 0.090184;7.557682;-42.985344;, + -0.418933;9.583048;-42.994740;, + 0.090184;9.562065;-42.784904;, + 0.599301;7.578665;-43.195179;, + 0.090184;7.557682;-42.985344;, + 0.090184;9.562065;-42.784904;, + 0.599301;7.578665;-43.195179;, + 0.090184;9.562065;-42.784904;, + 0.599301;9.583048;-42.994740;, + 0.090184;7.700968;-44.418198;, + 0.599301;7.679983;-44.208359;, + 0.599301;9.684366;-44.007919;, + 0.090184;7.700968;-44.418198;, + 0.599301;9.684366;-44.007919;, + 0.090184;9.705351;-44.217758;, + -0.418933;7.578665;-43.195179;, + -0.629816;7.629324;-43.701771;, + -0.629816;9.633707;-43.501331;, + -0.418933;7.578665;-43.195179;, + -0.629816;9.633707;-43.501331;, + -0.418933;9.583048;-42.994740;, + -0.418933;7.679983;-44.208359;, + 0.090184;7.700968;-44.418198;, + 0.090184;9.705351;-44.217758;, + -0.418933;7.679983;-44.208359;, + 0.090184;9.705351;-44.217758;, + -0.418933;9.684366;-44.007919;; + + 471; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;, + 3;926,925,924;, + 3;929,928,927;, + 3;932,931,930;, + 3;935,934,933;, + 3;938,937,936;, + 3;941,940,939;, + 3;944,943,942;, + 3;947,946,945;, + 3;950,949,948;, + 3;953,952,951;, + 3;956,955,954;, + 3;959,958,957;, + 3;962,961,960;, + 3;965,964,963;, + 3;968,967,966;, + 3;971,970,969;, + 3;974,973,972;, + 3;977,976,975;, + 3;980,979,978;, + 3;983,982,981;, + 3;986,985,984;, + 3;989,988,987;, + 3;992,991,990;, + 3;995,994,993;, + 3;998,997,996;, + 3;1001,1000,999;, + 3;1004,1003,1002;, + 3;1007,1006,1005;, + 3;1010,1009,1008;, + 3;1013,1012,1011;, + 3;1016,1015,1014;, + 3;1019,1018,1017;, + 3;1022,1021,1020;, + 3;1025,1024,1023;, + 3;1028,1027,1026;, + 3;1031,1030,1029;, + 3;1034,1033,1032;, + 3;1037,1036,1035;, + 3;1040,1039,1038;, + 3;1043,1042,1041;, + 3;1046,1045,1044;, + 3;1049,1048,1047;, + 3;1052,1051,1050;, + 3;1055,1054,1053;, + 3;1058,1057,1056;, + 3;1061,1060,1059;, + 3;1064,1063,1062;, + 3;1067,1066,1065;, + 3;1070,1069,1068;, + 3;1073,1072,1071;, + 3;1076,1075,1074;, + 3;1079,1078,1077;, + 3;1082,1081,1080;, + 3;1085,1084,1083;, + 3;1088,1087,1086;, + 3;1091,1090,1089;, + 3;1094,1093,1092;, + 3;1097,1096,1095;, + 3;1100,1099,1098;, + 3;1103,1102,1101;, + 3;1106,1105,1104;, + 3;1109,1108,1107;, + 3;1112,1111,1110;, + 3;1115,1114,1113;, + 3;1118,1117,1116;, + 3;1121,1120,1119;, + 3;1124,1123,1122;, + 3;1127,1126,1125;, + 3;1130,1129,1128;, + 3;1133,1132,1131;, + 3;1136,1135,1134;, + 3;1139,1138,1137;, + 3;1142,1141,1140;, + 3;1145,1144,1143;, + 3;1148,1147,1146;, + 3;1151,1150,1149;, + 3;1154,1153,1152;, + 3;1157,1156,1155;, + 3;1160,1159,1158;, + 3;1163,1162,1161;, + 3;1166,1165,1164;, + 3;1169,1168,1167;, + 3;1172,1171,1170;, + 3;1175,1174,1173;, + 3;1178,1177,1176;, + 3;1181,1180,1179;, + 3;1184,1183,1182;, + 3;1187,1186,1185;, + 3;1190,1189,1188;, + 3;1193,1192,1191;, + 3;1196,1195,1194;, + 3;1199,1198,1197;, + 3;1202,1201,1200;, + 3;1205,1204,1203;, + 3;1208,1207,1206;, + 3;1211,1210,1209;, + 3;1214,1213,1212;, + 3;1217,1216,1215;, + 3;1220,1219,1218;, + 3;1223,1222,1221;, + 3;1226,1225,1224;, + 3;1229,1228,1227;, + 3;1232,1231,1230;, + 3;1235,1234,1233;, + 3;1238,1237,1236;, + 3;1241,1240,1239;, + 3;1244,1243,1242;, + 3;1247,1246,1245;, + 3;1250,1249,1248;, + 3;1253,1252,1251;, + 3;1256,1255,1254;, + 3;1259,1258,1257;, + 3;1262,1261,1260;, + 3;1265,1264,1263;, + 3;1268,1267,1266;, + 3;1271,1270,1269;, + 3;1274,1273,1272;, + 3;1277,1276,1275;, + 3;1280,1279,1278;, + 3;1283,1282,1281;, + 3;1286,1285,1284;, + 3;1289,1288,1287;, + 3;1292,1291,1290;, + 3;1295,1294,1293;, + 3;1298,1297,1296;, + 3;1301,1300,1299;, + 3;1304,1303,1302;, + 3;1307,1306,1305;, + 3;1310,1309,1308;, + 3;1313,1312,1311;, + 3;1316,1315,1314;, + 3;1319,1318,1317;, + 3;1322,1321,1320;, + 3;1325,1324,1323;, + 3;1328,1327,1326;, + 3;1331,1330,1329;, + 3;1334,1333,1332;, + 3;1337,1336,1335;, + 3;1340,1339,1338;, + 3;1343,1342,1341;, + 3;1346,1345,1344;, + 3;1349,1348,1347;, + 3;1352,1351,1350;, + 3;1355,1354,1353;, + 3;1358,1357,1356;, + 3;1361,1360,1359;, + 3;1364,1363,1362;, + 3;1367,1366,1365;, + 3;1370,1369,1368;, + 3;1373,1372,1371;, + 3;1376,1375,1374;, + 3;1379,1378,1377;, + 3;1382,1381,1380;, + 3;1385,1384,1383;, + 3;1388,1387,1386;, + 3;1391,1390,1389;, + 3;1394,1393,1392;, + 3;1397,1396,1395;, + 3;1400,1399,1398;, + 3;1403,1402,1401;, + 3;1406,1405,1404;, + 3;1409,1408,1407;, + 3;1412,1411,1410;; + + MeshMaterialList { + 2; + 471; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;; + Material { + 0.698039;0.698039;0.698039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/copter8st_prop2.ppm"; + } #TextureFilename + } # Material + Material { + 1.000000;1.000000;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/copter8s_pilote.ppm"; + } #TextureFilename + } # Material + } # MeshMaterialList + MeshNormals { + 471; + 0.000000;0.880363;0.474301;, + 0.000000;0.880363;0.474301;, + 0.000000;0.955836;-0.293901;, + 0.000000;0.955836;-0.293901;, + 0.000000;0.473030;-0.881046;, + 0.000000;0.473030;-0.881046;, + 0.000000;-0.293369;-0.955999;, + 0.000000;-0.293369;-0.955999;, + 0.000000;-0.876342;-0.481689;, + 0.000000;-0.876342;-0.481689;, + 0.000000;-0.956262;0.292512;, + 0.000000;-0.956262;0.292512;, + 0.000000;-0.477357;0.878709;, + 0.000000;-0.477357;0.878709;, + 0.000000;0.292512;0.956262;, + 0.000000;0.292512;0.956262;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;-0.000001;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.923879;0.038079;-0.380785;, + -0.923879;0.038079;-0.380785;, + -0.999539;0.028751;0.009797;, + -1.000000;0.000039;-0.000050;, + -1.000000;0.000031;0.000003;, + -0.636769;0.338982;0.692544;, + -0.615487;0.350409;0.705966;, + 0.999534;-0.028904;-0.009849;, + 1.000000;-0.000051;0.000046;, + 1.000000;0.000003;0.000000;, + 0.211201;0.432532;0.876533;, + 0.232230;0.434233;0.870351;, + 0.960254;0.196893;-0.197850;, + 0.959656;0.198919;-0.198725;, + -0.392075;0.637096;0.663616;, + 0.970518;0.209108;-0.119867;, + 0.857231;0.506260;-0.094107;, + 0.927770;0.121998;-0.352647;, + 0.942414;0.134923;-0.306026;, + 0.019226;-0.967583;0.251821;, + 0.962672;0.140500;-0.231348;, + 0.885702;0.303687;-0.351150;, + 0.921294;0.263312;-0.286155;, + -0.801995;0.077761;0.592247;, + 0.942357;0.177653;-0.283553;, + 0.938789;0.194556;-0.284295;, + 0.003354;0.987700;0.156324;, + 0.953506;0.133210;-0.270335;, + 0.833091;0.254067;0.491334;, + 0.959430;0.252371;-0.125708;, + 0.986788;0.140720;0.080295;, + 0.720258;0.693378;-0.021317;, + 0.968519;-0.181832;-0.170025;, + -0.775426;0.217581;0.592767;, + -0.824251;0.216883;0.523042;, + -0.310144;0.905840;0.288556;, + 0.993910;0.085419;0.069611;, + 0.991644;0.096604;0.085496;, + 0.993945;0.097458;-0.050749;, + 0.993976;0.096098;-0.052693;, + -0.477887;0.629290;0.612877;, + -0.618119;0.488337;0.616000;, + -0.574789;0.523015;0.629343;, + 0.965770;0.253866;0.053296;, + 0.968700;0.245841;-0.034375;, + 0.963296;0.248340;0.101919;, + 0.954016;0.257528;0.153405;, + 0.883303;0.066073;0.464122;, + 0.904411;-0.000482;0.426662;, + 0.945378;-0.053066;0.321626;, + 0.792789;0.392491;0.466301;, + 0.981257;0.013625;0.192220;, + 0.999548;-0.019838;-0.022610;, + 0.799824;0.215410;0.560250;, + 0.923380;0.258291;0.284000;, + 0.963961;0.265073;0.022699;, + 0.893942;0.177160;-0.411682;, + 0.845595;0.069679;-0.529257;, + 0.130919;-0.457869;-0.879327;, + 0.464304;-0.202132;-0.862302;, + 0.603234;0.085514;-0.792967;, + 0.599269;0.078059;-0.796733;, + 0.695580;0.156126;-0.701280;, + 0.638371;-0.322419;-0.698948;, + 0.639690;-0.321795;-0.698030;, + -0.714959;0.687567;0.126827;, + -0.891810;0.449154;0.054176;, + 0.892233;0.152850;-0.424919;, + 0.843842;0.118880;-0.523257;, + 0.789904;-0.459106;-0.406538;, + 0.780643;-0.465249;-0.417300;, + 0.722749;-0.401664;-0.562406;, + 0.725396;-0.391471;-0.566172;, + 0.100071;-0.621045;-0.777360;, + 0.172706;-0.651593;-0.738647;, + 0.086195;-0.796275;-0.598762;, + 0.125518;-0.817671;-0.561835;, + 0.076989;-0.942294;-0.325815;, + 0.098504;-0.951989;-0.289852;, + 0.079375;-0.985078;-0.152715;, + 0.069471;-0.982538;-0.172609;, + 0.790297;-0.529435;-0.308430;, + 0.816354;-0.509995;-0.271054;, + 0.808767;-0.562696;-0.171080;, + 0.788431;-0.579847;-0.205313;, + -0.948892;0.150288;-0.277519;, + -0.902247;0.228158;-0.365915;, + 0.916009;0.120039;-0.382776;, + 0.913028;0.122741;-0.388992;, + 0.895355;0.126095;-0.427130;, + 0.928392;0.345371;-0.137143;, + 0.754466;-0.567960;0.328942;, + 0.757989;-0.521012;0.392427;, + 0.781034;-0.577639;0.237316;, + 0.772109;-0.605277;0.193615;, + 0.787683;-0.616077;0.002288;, + 0.787682;-0.616078;0.002289;, + -0.988859;0.148569;0.009219;, + -0.877646;0.259809;-0.402788;, + 0.788337;-0.605396;-0.109635;, + 0.795066;-0.598795;-0.096511;, + 0.064814;-0.993023;-0.098506;, + 0.066048;-0.992639;-0.101516;, + -0.909530;0.346948;-0.228873;, + -0.993334;0.115261;-0.001815;, + 0.065991;-0.991567;-0.111536;, + 0.070169;-0.992285;-0.102214;, + 0.066884;-0.997455;-0.024711;, + 0.072627;-0.996617;-0.038463;, + 0.072526;-0.997188;-0.018878;, + 0.082453;-0.996565;0.007736;, + 0.067020;-0.995920;-0.060422;, + 0.064750;-0.996393;-0.054852;, + -0.991644;0.096589;0.085514;, + -0.993913;0.085390;0.069610;, + -0.945378;-0.053066;0.321627;, + 0.779662;-0.619028;0.094500;, + 0.785888;-0.607771;0.113992;, + -0.882755;0.467797;-0.043701;, + -0.765324;0.537831;-0.353578;, + -0.937834;0.195549;-0.286755;, + -0.943406;0.178261;-0.279657;, + -0.434408;0.888906;0.145383;, + -0.695050;0.650033;0.307186;, + 0.970217;0.242144;0.006785;, + 0.890611;0.177222;-0.418813;, + 0.379329;0.468361;0.797965;, + 0.400222;0.432517;0.807930;, + 0.457045;0.407655;0.790523;, + 0.471641;0.338185;0.814362;, + 0.640147;-0.070534;0.765007;, + 0.614017;-0.022073;0.788984;, + 0.606793;0.476224;0.636406;, + 0.518518;0.700219;0.490747;, + 0.583713;0.449340;0.676294;, + 0.825200;0.364460;0.431525;, + 0.788810;-0.024623;0.614144;, + 0.804346;-0.051693;0.591908;, + 0.654351;-0.562337;0.505570;, + 0.647282;-0.471313;0.599074;, + 0.586533;-0.520768;0.620305;, + 0.578015;-0.446105;0.683292;, + 0.460876;0.222098;0.859224;, + 0.467663;0.223930;0.855071;, + -0.993838;0.097598;-0.052536;, + -0.994088;0.095895;-0.050916;, + 0.303829;0.231124;0.924267;, + -0.909257;-0.367984;-0.194524;, + 0.380581;-0.057078;0.922984;, + 0.392074;0.637096;0.663617;, + 0.824228;0.216624;0.523185;, + 0.775458;0.217336;0.592815;, + 0.277052;0.262920;0.924183;, + 0.140384;0.675972;0.723433;, + 0.167882;0.697021;0.697120;, + 0.402783;-0.347910;0.846596;, + 0.366185;-0.141836;0.919669;, + 0.005318;0.998953;0.045445;, + 0.126992;0.597772;0.791544;, + 0.660970;0.222279;-0.716736;, + 0.919729;0.068870;-0.386465;, + 0.894560;0.192429;-0.403402;, + 0.703387;0.074349;-0.706908;, + 0.698153;0.084987;-0.710886;, + -0.130888;-0.457731;-0.879404;, + -0.602598;0.085566;-0.793445;, + -0.463901;-0.201866;-0.862581;, + -0.139879;0.930451;0.338666;, + -0.697468;0.069875;-0.713202;, + -0.636845;0.154265;-0.755401;, + -0.079214;-0.981430;-0.174698;, + -0.069704;-0.985792;-0.152826;, + -0.064815;-0.992725;-0.101466;, + -0.065274;-0.992806;-0.100375;, + -0.070093;-0.991224;-0.112075;, + -0.904411;-0.000482;0.426662;, + -0.883304;0.066072;0.464121;, + -0.799836;0.215660;0.560137;, + -0.960782;0.276219;0.024506;, + -0.927156;0.245645;0.282915;, + 0.123603;-0.926375;0.355741;, + 0.083464;-0.965955;0.244878;, + 0.096825;-0.896121;0.433119;, + 0.114397;-0.872043;0.475873;, + 0.102729;-0.736820;0.668239;, + 0.081416;-0.779239;0.621416;, + -0.097589;-0.938440;-0.331370;, + -0.077692;-0.953750;-0.290388;, + -0.104957;-0.657880;-0.745773;, + -0.161748;-0.599887;-0.783565;, + -0.088299;-0.820971;-0.564101;, + -0.121619;-0.786550;-0.605432;, + -0.080493;-0.940865;0.329082;, + -0.129979;-0.961113;0.243653;, + -0.081581;-0.993361;0.081108;, + -0.087503;-0.993835;0.068081;, + -0.072366;-0.997365;0.005087;, + -0.082660;-0.996399;-0.018862;, + -0.072627;-0.996617;-0.038463;, + -0.066884;-0.997455;-0.024711;, + -0.067020;-0.995920;-0.060422;, + -0.064751;-0.996393;-0.054853;, + -0.804345;-0.051690;0.591910;, + -0.788810;-0.024623;0.614143;, + -0.980697;0.159796;-0.112686;, + -0.940996;0.197501;0.274809;, + 0.081767;-0.994321;0.068115;, + 0.087266;-0.992692;0.083345;, + -0.468045;0.221823;0.855412;, + -0.460804;0.223753;0.858833;, + 0.624464;-0.739191;-0.252273;, + 0.908988;-0.368704;-0.194417;, + 0.892461;0.450323;0.026881;, + 0.898990;0.437692;-0.015572;, + 0.857031;0.514862;-0.020358;, + 0.893903;0.448259;0.001342;, + -0.053280;0.997149;0.053431;, + 0.043318;0.998907;-0.017532;, + 0.029754;0.999470;-0.013203;, + 0.884141;0.459013;-0.087188;, + 0.889439;0.442617;-0.113964;, + 0.763566;0.589214;-0.264185;, + 0.841180;0.355261;-0.407684;, + 0.282261;0.911973;0.297716;, + 0.356848;0.903425;0.237662;, + 0.230248;0.921184;0.313696;, + 0.257185;0.936008;0.240299;, + 0.309505;0.927605;0.209178;, + 0.713387;0.681649;0.162584;, + 0.367352;0.902270;0.225748;, + 0.892310;0.448172;0.054088;, + 0.715357;0.687150;0.126846;, + 0.888937;0.436754;0.137970;, + 0.161160;0.403851;0.900518;, + -0.029754;0.999470;-0.013203;, + -0.043318;0.998907;-0.017532;, + -0.414517;0.479030;-0.773761;, + -0.278892;0.453098;-0.846713;, + 0.425845;0.426899;-0.797755;, + 0.293033;0.485399;-0.823723;, + -0.981195;-0.040566;0.188707;, + -0.987583;0.157009;0.005316;, + -0.230193;0.430630;0.872679;, + -0.201898;0.438570;0.875725;, + -0.623649;-0.739801;-0.252501;, + 0.209360;0.952880;0.219520;, + -0.150105;-0.983654;-0.099461;, + 0.582053;0.353306;0.732386;, + 0.631201;0.350771;0.691770;, + -0.017325;0.998996;0.041322;, + -0.039074;0.998225;0.044947;, + 0.043705;0.998924;0.015493;, + 0.023650;0.998285;0.053545;, + 0.041710;0.998118;0.044942;, + -1.000000;-0.000028;-0.000003;, + -1.000000;-0.000026;-0.000060;, + -0.959736;0.261243;0.103245;, + -0.958170;0.242219;0.152447;, + -0.893387;0.449000;-0.016071;, + -0.855680;0.517504;-0.000507;, + 1.000000;0.000000;0.000001;, + 1.000000;0.000040;0.000061;, + -0.437646;0.384776;0.812658;, + -0.485292;0.351711;0.800494;, + -0.005315;0.998953;0.045445;, + -0.741790;0.405888;-0.533857;, + -0.876809;0.417264;-0.238948;, + -0.884344;0.452846;-0.113433;, + -0.893168;0.441742;-0.084350;, + 0.065132;-0.995651;0.066618;, + -0.209362;0.952879;0.219519;, + -0.731857;0.307276;0.608249;, + -0.311537;0.946357;0.085755;, + -0.900307;0.434466;0.026202;, + -0.890740;0.454217;-0.016393;, + -0.000010;0.509269;0.860608;, + 0.105237;0.773332;0.625206;, + -0.498503;-0.844359;-0.196346;, + 0.498503;0.844359;0.196346;, + 0.240108;0.827563;0.507432;, + -0.330414;0.848584;0.413197;, + -0.552903;0.826109;0.108823;, + -0.307056;0.915042;0.261561;, + -0.233073;0.954400;0.186543;, + -0.435825;0.900031;0.000928;, + 0.435959;0.899966;0.000927;, + -0.102857;0.377747;0.920178;, + -0.184140;0.429291;0.884195;, + -0.160857;0.661413;0.732570;, + -0.144378;0.699651;0.699746;, + 0.184142;0.429288;0.884197;, + 0.102859;0.377746;0.920178;, + -0.836872;0.195744;-0.511204;, + -0.921924;0.056541;-0.383223;, + -0.929047;0.059620;-0.365126;, + -0.888595;0.194814;-0.415266;, + -0.660114;0.222612;-0.717422;, + -0.303833;0.231119;0.924267;, + -0.792788;0.392492;0.466301;, + -0.968631;0.246117;-0.034344;, + -0.965691;0.254145;0.053397;, + -0.498058;-0.153179;0.853507;, + -0.330048;-0.305040;0.893319;, + -0.078737;-0.758228;0.647218;, + -0.109651;-0.777119;0.619728;, + -0.277053;0.262919;0.924183;, + -0.380584;-0.057079;0.922983;, + -0.104860;0.197343;0.974710;, + -0.048996;-0.410586;0.910505;, + -0.185782;-0.122793;0.974888;, + 0.048996;-0.410586;0.910505;, + 0.104861;0.197340;0.974711;, + 0.185783;-0.122792;0.974888;, + -0.607258;-0.533796;0.588472;, + -0.688937;-0.491182;0.533015;, + -0.614017;-0.022075;0.788984;, + -0.640145;-0.070531;0.765010;, + -0.558869;-0.503029;0.659263;, + -0.623295;-0.469872;0.625079;, + -0.126988;0.597771;0.791545;, + -0.379330;0.468360;0.797965;, + -0.400223;0.432515;0.807931;, + -0.093808;-0.873935;0.476905;, + -0.117100;-0.888328;0.444028;, + 0.000000;0.714553;0.699581;, + -0.856751;0.507102;-0.093948;, + -0.970294;0.210230;-0.119724;, + 0.000000;0.220411;0.975407;, + -0.000006;0.220413;0.975407;, + -0.970122;0.229583;0.078453;, + -0.922681;0.257213;-0.287230;, + -0.956382;0.210133;-0.202923;, + -0.960057;0.198006;-0.197695;, + -0.928391;0.345372;-0.137143;, + -0.895344;0.126070;-0.427159;, + -0.702609;0.074430;-0.707673;, + -0.697385;0.085046;-0.711633;, + -0.788763;-0.606991;-0.097030;, + -0.794795;-0.596972;-0.109202;, + -0.787682;-0.616078;0.002289;, + -0.787682;-0.616078;0.002289;, + -0.915812;0.122620;-0.382430;, + -0.912825;0.120052;-0.390304;, + -0.788256;-0.607786;0.096169;, + -0.777426;-0.618991;0.111617;, + -0.789956;-0.580098;0.198635;, + -0.764002;-0.602777;0.230134;, + -0.779029;-0.528825;0.336835;, + -0.735966;-0.559993;0.380476;, + -0.943724;0.120845;-0.307866;, + -0.927012;0.136767;-0.349205;, + -0.805663;-0.555393;-0.206024;, + -0.791576;-0.586614;-0.171146;, + -0.808930;-0.499468;-0.310103;, + -0.796981;-0.539659;-0.271273;, + -0.786154;-0.455676;-0.417518;, + -0.783719;-0.468700;-0.407560;, + -0.638688;-0.322665;-0.698545;, + -0.639220;-0.321462;-0.698613;, + -0.722749;-0.401662;-0.562407;, + -0.725396;-0.391472;-0.566172;, + -0.841143;0.155815;-0.517880;, + -0.884764;0.119866;-0.450361;, + -0.000001;0.998616;0.052596;, + -0.000001;0.998616;0.052597;, + 1.000000;0.000037;-0.000002;, + 1.000000;0.000038;0.000000;, + 0.000004;0.460683;0.887565;, + 0.000004;0.460683;0.887565;, + -1.000000;-0.000031;0.000002;, + 1.000000;0.000060;0.000000;, + 0.000001;-0.995037;-0.099503;, + 0.000000;-0.995037;-0.099504;, + 0.923879;-0.038079;0.380785;, + 0.923880;-0.038078;0.380783;, + 0.000007;0.099502;-0.995037;, + -0.000224;-0.099505;0.995037;, + -0.999829;-0.018394;-0.001840;, + -0.999829;-0.018397;-0.001840;, + 0.572201;-0.706460;0.416535;, + 0.603956;-0.676568;0.421300;, + 0.691290;-0.718991;-0.071899;, + 0.691290;-0.718991;-0.071899;, + 0.337582;0.936625;0.093663;, + 0.337581;0.936625;0.093663;, + -0.999357;0.016997;-0.031583;, + -0.999777;-0.019407;0.008302;, + 0.259783;0.825197;-0.501561;, + 0.274066;0.818497;-0.504925;, + 0.273476;0.826106;-0.492707;, + 0.292104;0.821561;-0.489604;, + 0.821277;-0.526349;-0.220139;, + 0.821514;-0.541830;-0.177583;, + -0.825992;0.562467;-0.036992;, + -0.826507;0.558722;-0.068672;, + -0.000002;-0.099503;0.995037;, + -0.000006;-0.099500;0.995038;, + 0.823289;-0.547265;-0.150654;, + 0.823873;-0.538309;-0.177362;, + -0.820567;0.561116;-0.108714;, + -0.820723;0.567327;-0.067482;, + -0.000008;-0.099500;0.995038;, + 0.000008;-0.099510;0.995037;, + 0.000260;-0.099252;0.995062;, + -0.000001;0.099508;-0.995037;, + 0.998813;-0.048464;-0.004846;, + 0.998813;-0.048462;-0.004846;, + -0.621887;-0.667975;0.408736;, + -0.582361;-0.684033;0.439267;, + -0.705913;-0.704783;-0.070479;, + -0.705914;-0.704782;-0.070479;, + -0.337585;0.936624;0.093663;, + -0.337583;0.936624;0.093663;, + 0.998743;-0.047279;-0.016665;, + 0.999655;-0.016171;-0.020705;, + -0.276620;0.824519;-0.493609;, + -0.259772;0.825164;-0.501620;, + -0.294677;0.824000;-0.483931;, + -0.275873;0.828406;-0.487480;, + -0.839035;-0.514882;-0.175832;, + -0.843496;-0.514439;-0.154492;, + 0.842379;0.534055;-0.071989;, + 0.835061;0.540308;-0.103635;, + 0.000006;-0.099500;0.995038;, + -0.000004;-0.099507;0.995037;, + -0.843399;-0.507869;-0.175352;, + -0.835371;-0.507670;-0.210776;, + 0.840693;0.536753;-0.071636;, + 0.845640;0.531595;-0.047959;, + 0.000006;-0.099500;0.995038;, + 0.000003;-0.099503;0.995037;, + 0.923880;0.038078;-0.380783;, + 0.923879;0.038079;-0.380785;, + -0.382681;-0.091930;0.919296;, + -0.382681;-0.091930;0.919296;, + 0.382681;-0.091930;0.919296;, + 0.382681;-0.091930;0.919296;, + 0.382687;0.091930;-0.919293;, + 0.382687;0.091930;-0.919293;, + -0.923880;-0.038079;0.380783;, + -0.923880;-0.038079;0.380783;, + -0.382687;0.091930;-0.919293;, + -0.382687;0.091930;-0.919293;; + + 471; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;, + 3;308,308,308;, + 3;309,309,309;, + 3;310,310,310;, + 3;311,311,311;, + 3;312,312,312;, + 3;313,313,313;, + 3;314,314,314;, + 3;315,315,315;, + 3;316,316,316;, + 3;317,317,317;, + 3;318,318,318;, + 3;319,319,319;, + 3;320,320,320;, + 3;321,321,321;, + 3;322,322,322;, + 3;323,323,323;, + 3;324,324,324;, + 3;325,325,325;, + 3;326,326,326;, + 3;327,327,327;, + 3;328,328,328;, + 3;329,329,329;, + 3;330,330,330;, + 3;331,331,331;, + 3;332,332,332;, + 3;333,333,333;, + 3;334,334,334;, + 3;335,335,335;, + 3;336,336,336;, + 3;337,337,337;, + 3;338,338,338;, + 3;339,339,339;, + 3;340,340,340;, + 3;341,341,341;, + 3;342,342,342;, + 3;343,343,343;, + 3;344,344,344;, + 3;345,345,345;, + 3;346,346,346;, + 3;347,347,347;, + 3;348,348,348;, + 3;349,349,349;, + 3;350,350,350;, + 3;351,351,351;, + 3;352,352,352;, + 3;353,353,353;, + 3;354,354,354;, + 3;355,355,355;, + 3;356,356,356;, + 3;357,357,357;, + 3;358,358,358;, + 3;359,359,359;, + 3;360,360,360;, + 3;361,361,361;, + 3;362,362,362;, + 3;363,363,363;, + 3;364,364,364;, + 3;365,365,365;, + 3;366,366,366;, + 3;367,367,367;, + 3;368,368,368;, + 3;369,369,369;, + 3;370,370,370;, + 3;371,371,371;, + 3;372,372,372;, + 3;373,373,373;, + 3;374,374,374;, + 3;375,375,375;, + 3;376,376,376;, + 3;377,377,377;, + 3;378,378,378;, + 3;379,379,379;, + 3;380,380,380;, + 3;381,381,381;, + 3;382,382,382;, + 3;383,383,383;, + 3;384,384,384;, + 3;385,385,385;, + 3;386,386,386;, + 3;387,387,387;, + 3;388,388,388;, + 3;389,389,389;, + 3;390,390,390;, + 3;391,391,391;, + 3;392,392,392;, + 3;393,393,393;, + 3;394,394,394;, + 3;395,395,395;, + 3;396,396,396;, + 3;397,397,397;, + 3;398,398,398;, + 3;399,399,399;, + 3;400,400,400;, + 3;401,401,401;, + 3;402,402,402;, + 3;403,403,403;, + 3;404,404,404;, + 3;405,405,405;, + 3;406,406,406;, + 3;407,407,407;, + 3;408,408,408;, + 3;409,409,409;, + 3;410,410,410;, + 3;411,411,411;, + 3;412,412,412;, + 3;413,413,413;, + 3;414,414,414;, + 3;415,415,415;, + 3;416,416,416;, + 3;417,417,417;, + 3;418,418,418;, + 3;419,419,419;, + 3;420,420,420;, + 3;421,421,421;, + 3;422,422,422;, + 3;423,423,423;, + 3;424,424,424;, + 3;425,425,425;, + 3;426,426,426;, + 3;427,427,427;, + 3;428,428,428;, + 3;429,429,429;, + 3;430,430,430;, + 3;431,431,431;, + 3;432,432,432;, + 3;433,433,433;, + 3;434,434,434;, + 3;435,435,435;, + 3;436,436,436;, + 3;437,437,437;, + 3;438,438,438;, + 3;439,439,439;, + 3;440,440,440;, + 3;441,441,441;, + 3;442,442,442;, + 3;443,443,443;, + 3;444,444,444;, + 3;445,445,445;, + 3;446,446,446;, + 3;447,447,447;, + 3;448,448,448;, + 3;449,449,449;, + 3;450,450,450;, + 3;451,451,451;, + 3;452,452,452;, + 3;453,453,453;, + 3;454,454,454;, + 3;455,455,455;, + 3;456,456,456;, + 3;457,457,457;, + 3;458,458,458;, + 3;459,459,459;, + 3;460,460,460;, + 3;461,461,461;, + 3;462,462,462;, + 3;463,463,463;, + 3;464,464,464;, + 3;465,465,465;, + 3;466,466,466;, + 3;467,467,467;, + 3;468,468,468;, + 3;469,469,469;, + 3;470,470,470;; + } # MeshNormals + MeshTextureCoords { + 1413; + 0.148202;0.146552;, + 0.500719;0.000000;, + 0.500719;0.000000;, + 0.148202;0.146552;, + 0.500719;0.000000;, + 0.148202;0.146552;, + 0.500719;0.000000;, + 0.853237;0.147989;, + 0.853237;0.147989;, + 0.500719;0.000000;, + 0.853237;0.147989;, + 0.500719;0.000000;, + 0.853237;0.147989;, + 1.000000;0.501437;, + 1.000000;0.501437;, + 0.853237;0.147989;, + 1.000000;0.501437;, + 0.853237;0.147989;, + 1.000000;0.501437;, + 0.853237;0.850575;, + 0.853237;0.850575;, + 1.000000;0.501437;, + 0.853237;0.850575;, + 1.000000;0.501437;, + 0.853237;0.850575;, + 0.502158;1.000000;, + 0.502158;1.000000;, + 0.853237;0.850575;, + 0.502158;1.000000;, + 0.853237;0.850575;, + 0.502158;1.000000;, + 0.148202;0.852011;, + 0.148202;0.852011;, + 0.502158;1.000000;, + 0.148202;0.852011;, + 0.502158;1.000000;, + 0.148202;0.852011;, + 0.000000;0.500000;, + 0.000000;0.500000;, + 0.148202;0.852011;, + 0.000000;0.500000;, + 0.148202;0.852011;, + 0.000000;0.500000;, + 0.148202;0.146552;, + 0.148202;0.146552;, + 0.000000;0.500000;, + 0.148202;0.146552;, + 0.000000;0.500000;, + 0.500719;0.000000;, + 0.853237;0.147989;, + 1.000000;0.501437;, + 0.500719;0.000000;, + 1.000000;0.501437;, + 0.853237;0.850575;, + 0.500719;0.000000;, + 0.853237;0.850575;, + 0.502158;1.000000;, + 0.500719;0.000000;, + 0.502158;1.000000;, + 0.148202;0.852011;, + 0.500719;0.000000;, + 0.148202;0.852011;, + 0.000000;0.500000;, + 0.500719;0.000000;, + 0.000000;0.500000;, + 0.148202;0.146552;, + 0.148202;0.146552;, + 0.000000;0.500000;, + 0.148202;0.852011;, + 0.148202;0.146552;, + 0.148202;0.852011;, + 0.502158;1.000000;, + 0.148202;0.146552;, + 0.502158;1.000000;, + 0.853237;0.850575;, + 0.148202;0.146552;, + 0.853237;0.850575;, + 1.000000;0.501437;, + 0.148202;0.146552;, + 1.000000;0.501437;, + 0.853237;0.147989;, + 0.148202;0.146552;, + 0.853237;0.147989;, + 0.500719;0.000000;, + 0.667731;0.109610;, + 0.651856;0.109610;, + 0.651856;0.013770;, + 0.667731;0.109610;, + 0.651856;0.013770;, + 0.667731;0.013770;, + 0.059333;0.302375;, + 0.417113;0.429754;, + 0.156193;0.337091;, + 0.059333;0.302375;, + 0.156193;0.337091;, + 0.048388;0.579449;, + 0.059333;0.302375;, + 0.048388;0.579449;, + 0.004562;0.579050;, + 0.764661;0.236616;, + 0.749651;0.242264;, + 0.701040;0.110586;, + 0.764661;0.236616;, + 0.701040;0.110586;, + 0.712022;0.109988;, + 0.156193;0.337091;, + 0.417113;0.429754;, + 0.059333;0.302375;, + 0.156193;0.337091;, + 0.059333;0.302375;, + 0.004562;0.579050;, + 0.156193;0.337091;, + 0.004562;0.579050;, + 0.048388;0.579449;, + 0.765068;0.238177;, + 0.768039;0.233882;, + 0.717581;0.110552;, + 0.765068;0.238177;, + 0.717581;0.110552;, + 0.712407;0.109942;, + 0.603871;0.296938;, + 0.556757;0.322514;, + 0.557577;0.338750;, + 0.603871;0.296938;, + 0.557577;0.338750;, + 0.605755;0.311322;, + 0.951150;0.642519;, + 0.892857;0.598616;, + 0.921110;0.587663;, + 0.603871;0.296938;, + 0.605755;0.311322;, + 0.653750;0.292130;, + 0.603871;0.296938;, + 0.653750;0.292130;, + 0.651695;0.277933;, + 0.551661;0.467210;, + 0.557577;0.719108;, + 0.605755;0.727193;, + 0.551661;0.467210;, + 0.605755;0.727193;, + 0.603056;0.467135;, + 0.605755;0.311322;, + 0.557577;0.338750;, + 0.509311;0.366381;, + 0.605755;0.311322;, + 0.509311;0.366381;, + 0.500463;0.467128;, + 0.605755;0.311322;, + 0.500463;0.467128;, + 0.551661;0.467210;, + 0.605755;0.311322;, + 0.551661;0.467210;, + 0.603056;0.467135;, + 0.951150;0.642519;, + 0.884288;0.608732;, + 0.892857;0.598616;, + 0.509943;0.353679;, + 0.509311;0.366381;, + 0.557577;0.338750;, + 0.509943;0.353679;, + 0.557577;0.338750;, + 0.556757;0.322514;, + 0.832929;0.279057;, + 0.824578;0.278296;, + 0.813927;0.277350;, + 0.603056;0.467135;, + 0.605755;0.727193;, + 0.653750;0.729496;, + 0.603056;0.467135;, + 0.653750;0.729496;, + 0.653244;0.643910;, + 0.653750;0.292130;, + 0.605755;0.311322;, + 0.603056;0.467135;, + 0.653750;0.292130;, + 0.603056;0.467135;, + 0.653244;0.643910;, + 0.527965;0.263857;, + 0.059333;0.302375;, + 0.556757;0.322514;, + 0.556757;0.322514;, + 0.059333;0.302375;, + 0.509943;0.353679;, + 0.884288;0.608732;, + 0.824578;0.278296;, + 0.832929;0.279057;, + 0.884288;0.608732;, + 0.832929;0.279057;, + 0.892857;0.598616;, + 0.832929;0.279057;, + 0.813927;0.277350;, + 0.796929;0.263235;, + 0.749651;0.645149;, + 0.749651;0.729589;, + 0.796929;0.727966;, + 0.749651;0.645149;, + 0.796929;0.727966;, + 0.829230;0.647802;, + 0.749651;0.729589;, + 0.749651;0.645149;, + 0.701921;0.645149;, + 0.749651;0.729589;, + 0.701921;0.645149;, + 0.701695;0.729622;, + 0.884288;0.608732;, + 0.951150;0.642519;, + 0.951150;0.651574;, + 0.884288;0.608732;, + 0.951150;0.651574;, + 0.951150;0.676643;, + 0.884288;0.608732;, + 0.951150;0.676643;, + 0.921012;0.664733;, + 0.749651;0.645149;, + 0.749651;0.277555;, + 0.701696;0.283200;, + 0.749651;0.645149;, + 0.701696;0.283200;, + 0.701921;0.645149;, + 0.749651;0.277555;, + 0.749651;0.645149;, + 0.829230;0.647802;, + 0.749651;0.277555;, + 0.829230;0.647802;, + 0.813927;0.277350;, + 0.842391;0.648921;, + 0.884288;0.722549;, + 0.921012;0.717518;, + 0.842391;0.648921;, + 0.921012;0.717518;, + 0.921012;0.664733;, + 0.884288;0.722549;, + 0.842391;0.648921;, + 0.842390;0.725525;, + 0.842391;0.648921;, + 0.921012;0.664733;, + 0.884288;0.608732;, + 0.829230;0.647802;, + 0.796929;0.727966;, + 0.842390;0.725525;, + 0.829230;0.647802;, + 0.842390;0.725525;, + 0.842391;0.648921;, + 0.842391;0.648921;, + 0.884288;0.608732;, + 0.824578;0.278296;, + 0.842391;0.648921;, + 0.824578;0.278296;, + 0.813927;0.277350;, + 0.842391;0.648921;, + 0.813927;0.277350;, + 0.829230;0.647802;, + 0.500463;0.467128;, + 0.509311;0.366381;, + 0.461732;0.398436;, + 0.500463;0.467128;, + 0.461732;0.398436;, + 0.461721;0.467166;, + 0.417012;0.583466;, + 0.461864;0.687998;, + 0.462001;0.671562;, + 0.417012;0.583466;, + 0.462001;0.671562;, + 0.461732;0.635877;, + 0.417012;0.583466;, + 0.461732;0.635877;, + 0.417114;0.563455;, + 0.416987;0.467316;, + 0.417114;0.563455;, + 0.461732;0.635877;, + 0.416987;0.467316;, + 0.461732;0.635877;, + 0.461721;0.467166;, + 0.507553;0.738184;, + 0.507877;0.688430;, + 0.461732;0.635877;, + 0.507553;0.738184;, + 0.461732;0.635877;, + 0.462001;0.671562;, + 0.700431;0.266228;, + 0.749651;0.262277;, + 0.749651;0.277554;, + 0.700431;0.266228;, + 0.749651;0.277554;, + 0.701696;0.283199;, + 0.461721;0.467166;, + 0.461732;0.635877;, + 0.507877;0.688430;, + 0.461721;0.467166;, + 0.507877;0.688430;, + 0.500463;0.467128;, + 0.557577;0.719108;, + 0.557713;0.781807;, + 0.603871;0.796745;, + 0.557577;0.719108;, + 0.603871;0.796745;, + 0.605755;0.727193;, + 0.507553;0.738184;, + 0.557713;0.781807;, + 0.557577;0.719108;, + 0.507553;0.738184;, + 0.557577;0.719108;, + 0.507877;0.688430;, + 0.507613;0.752803;, + 0.507553;0.738184;, + 0.462001;0.671562;, + 0.507613;0.752803;, + 0.462001;0.671562;, + 0.461864;0.687998;, + 0.557658;0.794752;, + 0.557713;0.781807;, + 0.507553;0.738184;, + 0.557658;0.794752;, + 0.507553;0.738184;, + 0.507613;0.752803;, + 0.604074;0.808805;, + 0.603871;0.796745;, + 0.557713;0.781807;, + 0.604074;0.808805;, + 0.557713;0.781807;, + 0.557658;0.794752;, + 0.603871;0.796745;, + 0.604074;0.808805;, + 0.652482;0.812807;, + 0.603871;0.796745;, + 0.652482;0.812807;, + 0.651694;0.800999;, + 0.651694;0.800999;, + 0.653750;0.729496;, + 0.605755;0.727193;, + 0.651694;0.800999;, + 0.605755;0.727193;, + 0.603871;0.796745;, + 0.653750;0.729496;, + 0.651694;0.800999;, + 0.700431;0.801233;, + 0.653750;0.729496;, + 0.700431;0.801233;, + 0.701695;0.729622;, + 0.500463;0.467128;, + 0.509311;0.366381;, + 0.557577;0.338750;, + 0.500463;0.467128;, + 0.557577;0.338750;, + 0.551661;0.467210;, + 0.551661;0.467210;, + 0.500463;0.467128;, + 0.507877;0.688430;, + 0.551661;0.467210;, + 0.507877;0.688430;, + 0.557577;0.719108;, + 0.701695;0.729622;, + 0.701921;0.645149;, + 0.653244;0.643910;, + 0.701695;0.729622;, + 0.653244;0.643910;, + 0.653750;0.729496;, + 0.884288;0.722549;, + 0.884288;0.788165;, + 0.921012;0.779782;, + 0.884288;0.722549;, + 0.921012;0.779782;, + 0.921012;0.717518;, + 0.884288;0.788165;, + 0.884288;0.722549;, + 0.842390;0.725525;, + 0.884288;0.788165;, + 0.842390;0.725525;, + 0.842390;0.793662;, + 0.796929;0.727966;, + 0.749651;0.729589;, + 0.749651;0.801171;, + 0.796929;0.727966;, + 0.749651;0.801171;, + 0.796929;0.798173;, + 0.653244;0.643910;, + 0.653750;0.292130;, + 0.701696;0.283199;, + 0.653244;0.643910;, + 0.701696;0.283199;, + 0.701921;0.645152;, + 0.749651;0.801171;, + 0.749651;0.729589;, + 0.701695;0.729622;, + 0.749651;0.801171;, + 0.701695;0.729622;, + 0.700431;0.801233;, + 0.701040;0.813028;, + 0.749651;0.812969;, + 0.749651;0.801171;, + 0.701040;0.813028;, + 0.749651;0.801171;, + 0.700431;0.801233;, + 0.653244;0.643910;, + 0.653750;0.729496;, + 0.605755;0.727193;, + 0.653244;0.643910;, + 0.605755;0.727193;, + 0.603056;0.467135;, + 0.701040;0.813028;, + 0.700431;0.801233;, + 0.651694;0.800999;, + 0.701040;0.813028;, + 0.651694;0.800999;, + 0.652482;0.812807;, + 0.842390;0.793662;, + 0.796929;0.798173;, + 0.796929;0.810149;, + 0.842390;0.793662;, + 0.796929;0.810149;, + 0.842390;0.805906;, + 0.842390;0.793662;, + 0.842390;0.805906;, + 0.884288;0.800733;, + 0.842390;0.793662;, + 0.884288;0.800733;, + 0.884288;0.788165;, + 0.749651;0.812969;, + 0.796929;0.810149;, + 0.796929;0.798173;, + 0.749651;0.812969;, + 0.796929;0.798173;, + 0.749651;0.801171;, + 0.749651;0.645152;, + 0.829230;0.647802;, + 0.796929;0.727966;, + 0.749651;0.645152;, + 0.796929;0.727966;, + 0.749651;0.729589;, + 0.842391;0.648921;, + 0.884288;0.722549;, + 0.842390;0.725525;, + 0.796929;0.727966;, + 0.796929;0.798173;, + 0.842390;0.793662;, + 0.796929;0.727966;, + 0.842390;0.793662;, + 0.842390;0.725525;, + 0.509943;0.353679;, + 0.059333;0.302375;, + 0.527965;0.263857;, + 0.509943;0.353679;, + 0.527965;0.263857;, + 0.556757;0.322514;, + 0.556757;0.322514;, + 0.557577;0.338750;, + 0.509311;0.366381;, + 0.556757;0.322514;, + 0.509311;0.366381;, + 0.509943;0.353679;, + 0.796929;0.263235;, + 0.813927;0.277350;, + 0.749651;0.277554;, + 0.796929;0.263235;, + 0.749651;0.277554;, + 0.749651;0.262277;, + 0.701921;0.645149;, + 0.701696;0.283200;, + 0.653750;0.292130;, + 0.701921;0.645149;, + 0.653750;0.292130;, + 0.653244;0.643910;, + 0.973545;0.666191;, + 0.951150;0.642519;, + 0.951150;0.651574;, + 0.973545;0.666191;, + 0.951150;0.651574;, + 0.973545;0.673814;, + 0.951150;0.676643;, + 0.973545;0.689009;, + 0.973545;0.673814;, + 0.951150;0.676643;, + 0.973545;0.673814;, + 0.951150;0.651574;, + 0.951150;0.676643;, + 0.951150;0.713253;, + 0.973545;0.710508;, + 0.951150;0.676643;, + 0.973545;0.710508;, + 0.973545;0.689009;, + 0.921012;0.664733;, + 0.951150;0.676643;, + 0.951150;0.651574;, + 0.921012;0.664733;, + 0.951150;0.651574;, + 0.951150;0.642519;, + 0.921012;0.664733;, + 0.951150;0.642519;, + 0.892857;0.598616;, + 0.921012;0.664733;, + 0.892857;0.598616;, + 0.884288;0.608732;, + 0.921012;0.664733;, + 0.921012;0.717518;, + 0.951150;0.713253;, + 0.921012;0.664733;, + 0.951150;0.713253;, + 0.951150;0.676643;, + 0.951150;0.761383;, + 0.951150;0.713253;, + 0.921012;0.717518;, + 0.951150;0.761383;, + 0.921012;0.717518;, + 0.921012;0.779782;, + 0.951150;0.713253;, + 0.951150;0.761383;, + 0.973545;0.743278;, + 0.951150;0.713253;, + 0.973545;0.743278;, + 0.973545;0.710508;, + 0.892857;0.598616;, + 0.921110;0.587663;, + 0.853630;0.278933;, + 0.892857;0.598616;, + 0.853630;0.278933;, + 0.832929;0.279057;, + 0.749651;0.645152;, + 0.749651;0.729589;, + 0.701695;0.729623;, + 0.749651;0.645152;, + 0.701695;0.729623;, + 0.701921;0.645152;, + 0.973545;0.673814;, + 0.973545;0.689009;, + 0.987335;0.700387;, + 0.463435;0.389235;, + 0.059333;0.302375;, + 0.509943;0.353679;, + 0.987335;0.700387;, + 0.973545;0.689009;, + 0.973545;0.710508;, + 0.921110;0.587663;, + 0.892857;0.598616;, + 0.951150;0.642519;, + 0.884288;0.608732;, + 0.892857;0.598616;, + 0.832929;0.279057;, + 0.884288;0.608732;, + 0.832929;0.279057;, + 0.824578;0.278296;, + 0.973545;0.673814;, + 0.987335;0.700387;, + 0.973545;0.666191;, + 0.951150;0.624362;, + 0.951150;0.642519;, + 0.973545;0.666191;, + 0.951150;0.624362;, + 0.973545;0.666191;, + 0.973545;0.652324;, + 0.973545;0.710508;, + 0.973545;0.743278;, + 0.987335;0.725229;, + 0.973545;0.710508;, + 0.987335;0.725229;, + 0.987335;0.700387;, + 0.155388;0.294422;, + 0.059333;0.302375;, + 0.527965;0.263857;, + 0.951150;0.642519;, + 0.951150;0.624362;, + 0.921110;0.587663;, + 0.463435;0.389235;, + 0.417113;0.429754;, + 0.461732;0.398436;, + 0.463435;0.389235;, + 0.461732;0.398436;, + 0.509311;0.366381;, + 0.463435;0.389235;, + 0.509311;0.366381;, + 0.509943;0.353679;, + 0.461732;0.398436;, + 0.417113;0.429754;, + 0.416987;0.467316;, + 0.461732;0.398436;, + 0.416987;0.467316;, + 0.461721;0.467166;, + 0.462001;0.671561;, + 0.461864;0.687998;, + 0.417012;0.583466;, + 0.417012;0.583466;, + 0.417114;0.563455;, + 0.461732;0.635877;, + 0.417012;0.583466;, + 0.461732;0.635877;, + 0.462001;0.671561;, + 0.796929;0.263235;, + 0.853630;0.278934;, + 0.832929;0.279057;, + 0.417114;0.563455;, + 0.416987;0.467316;, + 0.461721;0.467166;, + 0.417114;0.563455;, + 0.461721;0.467166;, + 0.461732;0.635877;, + 0.604074;0.808805;, + 0.603871;0.796744;, + 0.651694;0.800999;, + 0.604074;0.808805;, + 0.651694;0.800999;, + 0.652482;0.812808;, + 0.700431;0.801233;, + 0.749651;0.801171;, + 0.749651;0.812969;, + 0.700431;0.801233;, + 0.749651;0.812969;, + 0.652482;0.812808;, + 0.700431;0.801233;, + 0.652482;0.812808;, + 0.651694;0.800999;, + 0.842391;0.648921;, + 0.921012;0.664733;, + 0.921012;0.717518;, + 0.842391;0.648921;, + 0.921012;0.717518;, + 0.884288;0.722549;, + 0.842391;0.648921;, + 0.824578;0.278296;, + 0.884288;0.608732;, + 0.824578;0.278296;, + 0.842391;0.648921;, + 0.829230;0.647802;, + 0.824578;0.278296;, + 0.829230;0.647802;, + 0.813927;0.277350;, + 0.951150;0.774547;, + 0.951150;0.761383;, + 0.921012;0.779782;, + 0.951150;0.774547;, + 0.921012;0.779782;, + 0.921012;0.791226;, + 0.973545;0.751210;, + 0.973545;0.743278;, + 0.951150;0.761383;, + 0.973545;0.751210;, + 0.951150;0.761383;, + 0.951150;0.774547;, + 0.987335;0.730689;, + 0.987335;0.725229;, + 0.973545;0.743278;, + 0.987335;0.730689;, + 0.973545;0.743278;, + 0.973545;0.751210;, + 0.557658;0.794752;, + 0.557713;0.781807;, + 0.603871;0.796744;, + 0.557658;0.794752;, + 0.603871;0.796744;, + 0.604074;0.808805;, + 0.507553;0.738184;, + 0.507613;0.752803;, + 0.461864;0.687998;, + 0.507553;0.738184;, + 0.461864;0.687998;, + 0.462001;0.671561;, + 0.557713;0.781807;, + 0.557658;0.794752;, + 0.507613;0.752803;, + 0.557713;0.781807;, + 0.507613;0.752803;, + 0.507553;0.738184;, + 0.921012;0.791226;, + 0.921012;0.779782;, + 0.951150;0.761383;, + 0.921012;0.791226;, + 0.951150;0.761383;, + 0.951150;0.774547;, + 0.884288;0.800733;, + 0.884288;0.788165;, + 0.921012;0.779782;, + 0.884288;0.800733;, + 0.921012;0.779782;, + 0.921012;0.791226;, + 0.842390;0.805906;, + 0.842390;0.793662;, + 0.884288;0.788165;, + 0.842390;0.805906;, + 0.884288;0.788165;, + 0.884288;0.800733;, + 0.842390;0.793662;, + 0.842390;0.805906;, + 0.796929;0.810149;, + 0.842390;0.793662;, + 0.796929;0.810149;, + 0.796929;0.798173;, + 0.796929;0.798173;, + 0.796929;0.810149;, + 0.749651;0.812969;, + 0.796929;0.798173;, + 0.749651;0.812969;, + 0.749651;0.801171;, + 0.921012;0.664733;, + 0.951150;0.676643;, + 0.951150;0.713253;, + 0.921012;0.664733;, + 0.951150;0.713253;, + 0.921012;0.717518;, + 0.605755;0.311322;, + 0.653750;0.292130;, + 0.653244;0.643910;, + 0.605755;0.311322;, + 0.653244;0.643910;, + 0.603056;0.467135;, + 0.884288;0.788165;, + 0.884288;0.800733;, + 0.921012;0.791226;, + 0.884288;0.788165;, + 0.921012;0.791226;, + 0.921012;0.779782;, + 0.832929;0.279057;, + 0.853630;0.278934;, + 0.921110;0.587663;, + 0.832929;0.279057;, + 0.921110;0.587663;, + 0.892857;0.598616;, + 0.059333;0.302375;, + 0.417113;0.429754;, + 0.463435;0.389235;, + 0.463435;0.389235;, + 0.509943;0.353679;, + 0.059333;0.302375;, + 0.700431;0.266230;, + 0.701040;0.110588;, + 0.651392;0.114073;, + 0.700431;0.266230;, + 0.651392;0.114073;, + 0.651695;0.277933;, + 0.700431;0.266230;, + 0.651695;0.277933;, + 0.653750;0.292130;, + 0.700431;0.266230;, + 0.653750;0.292130;, + 0.701696;0.283200;, + 0.651392;0.114073;, + 0.701040;0.110588;, + 0.608758;0.119639;, + 0.651392;0.114073;, + 0.608758;0.119639;, + 0.553439;0.129579;, + 0.651392;0.114073;, + 0.553439;0.129579;, + 0.564186;0.128663;, + 0.564186;0.128663;, + 0.603871;0.296938;, + 0.651695;0.277933;, + 0.564186;0.128663;, + 0.651695;0.277933;, + 0.651392;0.114073;, + 0.527965;0.263857;, + 0.556757;0.322514;, + 0.603871;0.296938;, + 0.527965;0.263857;, + 0.603871;0.296938;, + 0.564186;0.128663;, + 0.832929;0.279057;, + 0.826042;0.245161;, + 0.796929;0.263231;, + 0.796929;0.263231;, + 0.813927;0.277350;, + 0.824578;0.278296;, + 0.832929;0.279057;, + 0.796929;0.263231;, + 0.824578;0.278296;, + 0.796929;0.263231;, + 0.826042;0.245161;, + 0.749651;0.242259;, + 0.796929;0.263231;, + 0.749651;0.242259;, + 0.749651;0.262277;, + 0.749651;0.262277;, + 0.749651;0.277555;, + 0.813927;0.277350;, + 0.749651;0.262277;, + 0.813927;0.277350;, + 0.796929;0.263231;, + 0.700431;0.266230;, + 0.701696;0.283200;, + 0.749651;0.277555;, + 0.700431;0.266230;, + 0.749651;0.277555;, + 0.749651;0.262277;, + 0.701040;0.110588;, + 0.700431;0.266230;, + 0.749651;0.262277;, + 0.749651;0.262277;, + 0.749651;0.242259;, + 0.701040;0.110588;, + 0.651392;0.114073;, + 0.564186;0.128663;, + 0.553439;0.129579;, + 0.651392;0.114073;, + 0.553439;0.129579;, + 0.608758;0.119639;, + 0.553439;0.129579;, + 0.564186;0.128663;, + 0.527965;0.263857;, + 0.553439;0.129579;, + 0.527965;0.263857;, + 0.523879;0.238782;, + 0.564186;0.128663;, + 0.553439;0.129579;, + 0.523879;0.238782;, + 0.564186;0.128663;, + 0.523879;0.238782;, + 0.527965;0.263857;, + 0.842391;0.648921;, + 0.842390;0.725525;, + 0.796929;0.727966;, + 0.842391;0.648921;, + 0.796929;0.727966;, + 0.829230;0.647802;, + 0.712022;0.109988;, + 0.717581;0.110552;, + 0.768039;0.233882;, + 0.712022;0.109988;, + 0.768039;0.233882;, + 0.764661;0.236616;, + 0.059333;0.302375;, + 0.463435;0.389235;, + 0.417113;0.429754;, + 0.749651;0.242259;, + 0.826042;0.245161;, + 0.768039;0.233882;, + 0.749651;0.242259;, + 0.768039;0.233882;, + 0.765068;0.238177;, + 0.712407;0.109942;, + 0.701040;0.110588;, + 0.749651;0.242259;, + 0.712407;0.109942;, + 0.749651;0.242259;, + 0.765068;0.238177;, + 0.608758;0.119639;, + 0.701040;0.110588;, + 0.712407;0.109942;, + 0.608758;0.119639;, + 0.712407;0.109942;, + 0.717581;0.110552;, + 0.717581;0.110552;, + 0.712022;0.109988;, + 0.701040;0.110586;, + 0.717581;0.110552;, + 0.701040;0.110586;, + 0.651392;0.114073;, + 0.717581;0.110552;, + 0.651392;0.114073;, + 0.608758;0.119639;, + 0.059333;0.302375;, + 0.000277;0.003314;, + 0.047967;0.003293;, + 0.059333;0.302375;, + 0.047967;0.003293;, + 0.155388;0.294422;, + 0.813927;0.277350;, + 0.829230;0.647802;, + 0.749651;0.645152;, + 0.813927;0.277350;, + 0.749651;0.645152;, + 0.749651;0.277554;, + 0.651695;0.277932;, + 0.700431;0.266228;, + 0.701696;0.283199;, + 0.651695;0.277932;, + 0.701696;0.283199;, + 0.653750;0.292130;, + 0.155388;0.294422;, + 0.047967;0.003293;, + 0.000277;0.003314;, + 0.155388;0.294422;, + 0.000277;0.003314;, + 0.059333;0.302375;, + 0.951150;0.651574;, + 0.973545;0.673814;, + 0.973545;0.689009;, + 0.951150;0.651574;, + 0.973545;0.689009;, + 0.951150;0.676643;, + 0.527965;0.263857;, + 0.059333;0.302375;, + 0.155388;0.294422;, + 0.556757;0.322514;, + 0.527965;0.263857;, + 0.564186;0.128663;, + 0.556757;0.322514;, + 0.564186;0.128663;, + 0.603871;0.296938;, + 0.603871;0.296938;, + 0.564186;0.128663;, + 0.651392;0.114073;, + 0.603871;0.296938;, + 0.651392;0.114073;, + 0.651695;0.277932;, + 0.749651;0.242264;, + 0.764661;0.236616;, + 0.768039;0.233882;, + 0.749651;0.242264;, + 0.768039;0.233882;, + 0.826042;0.245161;, + 0.700431;0.266228;, + 0.701040;0.110586;, + 0.749651;0.242264;, + 0.700431;0.266228;, + 0.749651;0.242264;, + 0.749651;0.262277;, + 0.651695;0.277932;, + 0.651392;0.114073;, + 0.701040;0.110586;, + 0.651695;0.277932;, + 0.701040;0.110586;, + 0.700431;0.266228;, + 0.853630;0.278933;, + 0.853630;0.278934;, + 0.845168;0.261375;, + 0.853630;0.278933;, + 0.845168;0.261375;, + 0.826042;0.245161;, + 0.853630;0.278933;, + 0.826042;0.245161;, + 0.845143;0.261582;, + 0.853630;0.278933;, + 0.845143;0.261582;, + 0.826042;0.245161;, + 0.853630;0.278933;, + 0.826042;0.245161;, + 0.832929;0.279057;, + 0.853630;0.278934;, + 0.796929;0.263235;, + 0.826042;0.245161;, + 0.853630;0.278934;, + 0.826042;0.245161;, + 0.845168;0.261375;, + 0.749651;0.262277;, + 0.749651;0.242264;, + 0.826042;0.245161;, + 0.749651;0.262277;, + 0.826042;0.245161;, + 0.796929;0.263235;, + 0.523879;0.238782;, + 0.527965;0.263857;, + 0.155388;0.294422;, + 0.155388;0.294422;, + 0.527965;0.263857;, + 0.523879;0.238782;, + 0.987335;0.700387;, + 0.973545;0.666191;, + 0.973545;0.652324;, + 0.987335;0.700387;, + 0.973545;0.652324;, + 0.987335;0.686516;, + 0.973545;0.652324;, + 0.973545;0.666191;, + 0.951150;0.642519;, + 0.973545;0.652324;, + 0.951150;0.642519;, + 0.951150;0.624362;, + 0.987335;0.700387;, + 0.987335;0.686516;, + 0.973545;0.652324;, + 0.987335;0.700387;, + 0.973545;0.652324;, + 0.973545;0.666191;, + 0.509311;0.366381;, + 0.500463;0.467128;, + 0.461721;0.467166;, + 0.509311;0.366381;, + 0.461721;0.467166;, + 0.461732;0.398436;, + 0.461732;0.398436;, + 0.463435;0.389235;, + 0.509943;0.353679;, + 0.461732;0.398436;, + 0.509943;0.353679;, + 0.509311;0.366381;, + 0.461732;0.398436;, + 0.417113;0.429754;, + 0.463435;0.389235;, + 0.973545;0.673814;, + 0.987335;0.700387;, + 0.973545;0.689009;, + 0.842391;0.648921;, + 0.884288;0.608732;, + 0.921012;0.664733;, + 0.749651;0.645152;, + 0.701921;0.645152;, + 0.701696;0.283199;, + 0.749651;0.645152;, + 0.701696;0.283199;, + 0.749651;0.277554;, + 0.987335;0.700387;, + 0.987335;0.725229;, + 0.973545;0.743278;, + 0.987335;0.700387;, + 0.973545;0.743278;, + 0.973545;0.710508;, + 0.973545;0.751210;, + 0.973545;0.743278;, + 0.987335;0.725229;, + 0.973545;0.751210;, + 0.987335;0.725229;, + 0.987335;0.730689;, + 0.987335;0.700387;, + 0.973545;0.673814;, + 0.973545;0.666191;, + 0.973545;0.689009;, + 0.987335;0.700387;, + 0.973545;0.710508;, + 0.987335;0.700387;, + 0.987335;0.686516;, + 0.991992;0.709531;, + 0.987335;0.730689;, + 0.987335;0.725229;, + 0.991992;0.709531;, + 0.987335;0.725229;, + 0.987335;0.700387;, + 0.991992;0.709531;, + 0.991992;0.709531;, + 0.987335;0.725229;, + 0.987335;0.730689;, + 0.991992;0.709531;, + 0.987335;0.686516;, + 0.987335;0.700387;, + 0.987335;0.700387;, + 0.987335;0.725229;, + 0.991992;0.709531;, + 0.951150;0.713253;, + 0.951150;0.761383;, + 0.921012;0.779782;, + 0.951150;0.713253;, + 0.921012;0.779782;, + 0.921012;0.717518;, + 0.951150;0.676643;, + 0.973545;0.689009;, + 0.973545;0.710508;, + 0.951150;0.676643;, + 0.973545;0.710508;, + 0.951150;0.713253;, + 0.951150;0.761383;, + 0.951150;0.713253;, + 0.973545;0.710508;, + 0.951150;0.761383;, + 0.973545;0.710508;, + 0.973545;0.743278;, + 0.951150;0.624362;, + 0.951150;0.642519;, + 0.921110;0.587663;, + 0.951150;0.651574;, + 0.951150;0.642519;, + 0.973545;0.666191;, + 0.951150;0.651574;, + 0.973545;0.666191;, + 0.973545;0.673814;, + 0.973545;0.743278;, + 0.973545;0.751210;, + 0.951150;0.774547;, + 0.973545;0.743278;, + 0.951150;0.774547;, + 0.951150;0.761383;, + 0.951150;0.624362;, + 0.921110;0.587663;, + 0.921110;0.587663;, + 0.603871;0.296938;, + 0.651695;0.277932;, + 0.653750;0.292130;, + 0.603871;0.296938;, + 0.653750;0.292130;, + 0.605755;0.311322;, + 0.853630;0.278933;, + 0.921110;0.587663;, + 0.921110;0.587663;, + 0.853630;0.278933;, + 0.921110;0.587663;, + 0.853630;0.278934;, + 0.603871;0.296938;, + 0.605755;0.311322;, + 0.603056;0.467135;, + 0.603871;0.296938;, + 0.603056;0.467135;, + 0.551661;0.467210;, + 0.603871;0.296938;, + 0.551661;0.467210;, + 0.557577;0.338750;, + 0.603871;0.296938;, + 0.557577;0.338750;, + 0.556757;0.322514;, + 0.701695;0.729623;, + 0.653750;0.729496;, + 0.653244;0.643910;, + 0.701695;0.729623;, + 0.653244;0.643910;, + 0.701921;0.645152;, + 0.416987;0.467316;, + 0.417113;0.429754;, + 0.461732;0.398436;, + 0.416987;0.467316;, + 0.461732;0.398436;, + 0.461721;0.467166;, + 0.749651;0.729589;, + 0.749651;0.801171;, + 0.700431;0.801233;, + 0.749651;0.729589;, + 0.700431;0.801233;, + 0.701695;0.729623;, + 0.749651;0.801171;, + 0.749651;0.729589;, + 0.796929;0.727966;, + 0.749651;0.801171;, + 0.796929;0.727966;, + 0.796929;0.798173;, + 0.500463;0.467128;, + 0.551661;0.467210;, + 0.557577;0.719108;, + 0.500463;0.467128;, + 0.557577;0.719108;, + 0.507877;0.688430;, + 0.842390;0.725525;, + 0.842390;0.793662;, + 0.796929;0.798173;, + 0.842390;0.725525;, + 0.796929;0.798173;, + 0.796929;0.727966;, + 0.884288;0.722549;, + 0.884288;0.788165;, + 0.842390;0.793662;, + 0.884288;0.722549;, + 0.842390;0.793662;, + 0.842390;0.725525;, + 0.921012;0.717518;, + 0.921012;0.779782;, + 0.884288;0.788165;, + 0.921012;0.717518;, + 0.884288;0.788165;, + 0.884288;0.722549;, + 0.557577;0.719108;, + 0.551661;0.467210;, + 0.603056;0.467135;, + 0.557577;0.719108;, + 0.603056;0.467135;, + 0.605755;0.727193;, + 0.651694;0.800999;, + 0.653750;0.729496;, + 0.701695;0.729623;, + 0.651694;0.800999;, + 0.701695;0.729623;, + 0.700431;0.801233;, + 0.603871;0.796744;, + 0.605755;0.727193;, + 0.653750;0.729496;, + 0.603871;0.796744;, + 0.653750;0.729496;, + 0.651694;0.800999;, + 0.557713;0.781807;, + 0.557577;0.719108;, + 0.605755;0.727193;, + 0.557713;0.781807;, + 0.605755;0.727193;, + 0.603871;0.796744;, + 0.507877;0.688430;, + 0.507553;0.738184;, + 0.462001;0.671561;, + 0.507877;0.688430;, + 0.462001;0.671561;, + 0.461732;0.635877;, + 0.557577;0.719108;, + 0.557713;0.781807;, + 0.507553;0.738184;, + 0.557577;0.719108;, + 0.507553;0.738184;, + 0.507877;0.688430;, + 0.461732;0.635877;, + 0.461721;0.467166;, + 0.500463;0.467128;, + 0.461732;0.635877;, + 0.500463;0.467128;, + 0.507877;0.688430;, + 0.000001;0.003370;, + 0.000000;0.003370;, + 0.046906;0.000000;, + 0.000001;0.003370;, + 0.046906;0.000000;, + 0.046907;0.000000;, + 0.046906;0.000000;, + 0.000000;0.003370;, + 0.048348;0.003370;, + 0.046906;0.000000;, + 0.046906;0.000000;, + 0.048348;0.003370;, + 0.048348;0.003370;, + 0.048349;0.003370;, + 0.046907;0.000000;, + 0.048348;0.003370;, + 0.046907;0.000000;, + 0.046906;0.000000;, + 0.046907;0.000000;, + 0.048349;0.003370;, + 0.000001;0.003370;, + 0.046907;0.000000;, + 0.046907;0.000000;, + 0.000001;0.003370;, + 0.048349;0.003370;, + 0.048348;0.003370;, + 0.000000;0.003370;, + 0.048349;0.003370;, + 0.000000;0.003370;, + 0.000001;0.003370;, + 0.667731;0.109610;, + 0.683606;0.109610;, + 0.683606;0.013770;, + 0.667731;0.109610;, + 0.683606;0.013770;, + 0.667731;0.013770;, + 0.509947;0.999961;, + 0.509947;0.980874;, + 0.509947;0.973580;, + 0.509947;1.000000;, + 0.509947;0.999961;, + 0.509947;0.973580;, + 0.509947;0.973580;, + 0.966477;0.973580;, + 0.966477;1.000000;, + 0.509947;0.973580;, + 0.966477;1.000000;, + 0.509947;1.000000;, + 1.000000;0.961664;, + 0.995924;0.946957;, + 0.966477;0.980874;, + 1.000000;0.961664;, + 0.966477;0.980874;, + 0.966477;0.999961;, + 0.966477;0.980874;, + 0.509947;0.980874;, + 0.509947;0.999961;, + 0.966477;0.980874;, + 0.509947;0.999961;, + 0.966477;0.999961;, + 0.966477;0.980874;, + 0.966477;0.973580;, + 0.509947;0.973580;, + 0.966477;0.980874;, + 0.509947;0.973580;, + 0.509947;0.980874;, + 0.995924;0.939663;, + 1.000000;0.961703;, + 0.966477;1.000000;, + 0.995924;0.939663;, + 0.966477;1.000000;, + 0.966477;0.973580;, + 0.995924;0.946957;, + 0.995924;0.939663;, + 0.966477;0.973580;, + 0.995924;0.946957;, + 0.966477;0.973580;, + 0.966477;0.980874;, + 1.000000;0.961703;, + 1.000000;0.961664;, + 0.966477;0.999961;, + 1.000000;0.961703;, + 0.966477;0.999961;, + 0.966477;1.000000;, + 0.641632;0.789256;, + 0.610762;0.772429;, + 0.610762;0.977163;, + 0.641632;0.789256;, + 0.610762;0.977163;, + 0.641632;0.979201;, + 0.610762;0.772429;, + 0.641632;0.778322;, + 0.641632;0.975124;, + 0.610762;0.772429;, + 0.641632;0.975124;, + 0.610762;0.977163;, + 0.641632;0.778322;, + 0.641632;0.789256;, + 0.641632;0.979201;, + 0.641632;0.778322;, + 0.641632;0.979201;, + 0.641632;0.975124;, + 0.854623;0.783128;, + 0.823753;0.787981;, + 0.823753;0.977163;, + 0.854623;0.783128;, + 0.823753;0.977163;, + 0.854623;0.979201;, + 0.823753;0.787981;, + 0.854623;0.772177;, + 0.854623;0.975124;, + 0.823753;0.787981;, + 0.854623;0.975124;, + 0.823753;0.977162;, + 0.854623;0.772177;, + 0.854623;0.783128;, + 0.854623;0.979201;, + 0.854623;0.772177;, + 0.854623;0.979201;, + 0.854623;0.975124;, + 0.509947;0.980875;, + 0.509947;0.999961;, + 0.509947;1.000000;, + 0.509947;0.980875;, + 0.509947;1.000000;, + 0.509947;0.973580;, + 0.509947;1.000000;, + 0.966477;1.000000;, + 0.966477;0.973580;, + 0.509947;1.000000;, + 0.966477;0.973580;, + 0.509947;0.973580;, + 0.966477;0.999961;, + 0.966477;0.980875;, + 0.995924;0.946958;, + 0.966477;0.999961;, + 0.995924;0.946958;, + 1.000000;0.961665;, + 0.966477;0.999961;, + 0.509947;0.999961;, + 0.509947;0.980875;, + 0.966477;0.999961;, + 0.509947;0.980875;, + 0.966477;0.980875;, + 0.509947;0.980875;, + 0.509947;0.973580;, + 0.966477;0.973580;, + 0.509947;0.980875;, + 0.966477;0.973580;, + 0.966477;0.980875;, + 0.966477;0.973580;, + 0.966477;1.000000;, + 1.000000;0.961703;, + 0.966477;0.973580;, + 1.000000;0.961703;, + 0.995924;0.939663;, + 0.966477;0.980875;, + 0.966477;0.973580;, + 0.995924;0.939663;, + 0.966477;0.980875;, + 0.995924;0.939663;, + 0.995924;0.946958;, + 0.966477;1.000000;, + 0.966477;0.999961;, + 1.000000;0.961665;, + 0.966477;1.000000;, + 1.000000;0.961665;, + 1.000000;0.961703;, + 0.854623;0.979202;, + 0.823753;0.977163;, + 0.823753;0.787981;, + 0.854623;0.979202;, + 0.823753;0.787981;, + 0.854623;0.783128;, + 0.823753;0.977163;, + 0.854623;0.975124;, + 0.854623;0.772177;, + 0.823753;0.977163;, + 0.854623;0.772177;, + 0.823753;0.787981;, + 0.854623;0.975124;, + 0.854623;0.979202;, + 0.854623;0.783128;, + 0.854623;0.975124;, + 0.854623;0.783128;, + 0.854623;0.772177;, + 0.641632;0.979202;, + 0.610762;0.977163;, + 0.610762;0.772429;, + 0.641632;0.979202;, + 0.610762;0.772429;, + 0.641632;0.789256;, + 0.610762;0.977163;, + 0.641632;0.975124;, + 0.641632;0.778322;, + 0.610762;0.977163;, + 0.641632;0.778322;, + 0.610762;0.772429;, + 0.641632;0.975124;, + 0.641632;0.979202;, + 0.641632;0.789256;, + 0.641632;0.975124;, + 0.641632;0.789256;, + 0.641632;0.778322;, + 0.651856;0.109610;, + 0.667731;0.109610;, + 0.667731;0.013770;, + 0.651856;0.109610;, + 0.667731;0.013770;, + 0.651856;0.013770;, + 0.690182;0.109610;, + 0.683606;0.109610;, + 0.683606;0.013770;, + 0.690182;0.109610;, + 0.683606;0.013770;, + 0.690182;0.013770;, + 0.683606;0.109610;, + 0.690182;0.109610;, + 0.690182;0.013770;, + 0.683606;0.109610;, + 0.690182;0.013770;, + 0.683606;0.013770;, + 0.645281;0.109610;, + 0.651856;0.109610;, + 0.651856;0.013770;, + 0.645281;0.109610;, + 0.651856;0.013770;, + 0.645281;0.013770;, + 0.683606;0.109610;, + 0.667731;0.109610;, + 0.667731;0.013770;, + 0.683606;0.109610;, + 0.667731;0.013770;, + 0.683606;0.013770;, + 0.651856;0.109610;, + 0.645281;0.109610;, + 0.645281;0.013770;, + 0.651856;0.109610;, + 0.645281;0.013770;, + 0.651856;0.013770;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COPTER8P.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COPTER8P.X new file mode 100644 index 0000000..05e261f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COPTER8P.X @@ -0,0 +1,448 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 84; + 13.134227;10.939844;-56.528271;, + 18.575108;9.634140;-43.471279;, + 18.575108;9.654039;-43.469288;, + 13.134227;10.939844;-56.528271;, + 18.575108;9.654039;-43.469288;, + 13.134227;10.959743;-56.526283;, + 18.575108;9.634140;-43.471279;, + 13.134234;8.333746;-30.467369;, + 13.134234;8.353645;-30.465378;, + 18.575108;9.634140;-43.471279;, + 13.134234;8.353645;-30.465378;, + 18.575108;9.654039;-43.469288;, + 13.134234;8.333746;-30.467369;, + 0.065462;7.792358;-25.053507;, + 0.065462;7.812258;-25.051516;, + 13.134234;8.333746;-30.467369;, + 0.065462;7.812258;-25.051516;, + 13.134234;8.353645;-30.465378;, + 0.065462;7.792358;-25.053507;, + -13.056655;8.328438;-30.414284;, + -13.056655;8.348337;-30.412292;, + 0.065462;7.792358;-25.053507;, + -13.056655;8.348337;-30.412292;, + 0.065462;7.812258;-25.051516;, + -13.056655;8.328438;-30.414284;, + -18.497536;9.639448;-43.524345;, + -18.497536;9.659348;-43.522354;, + -13.056655;8.328438;-30.414284;, + -18.497536;9.659348;-43.522354;, + -13.056655;8.348337;-30.412292;, + -18.497536;9.639448;-43.524345;, + -13.110004;10.939844;-56.528263;, + -13.110004;10.959743;-56.526276;, + -18.497536;9.639448;-43.524345;, + -13.110004;10.959743;-56.526276;, + -18.497536;9.659348;-43.522354;, + -13.110004;10.939844;-56.528263;, + 0.118793;11.481234;-61.942154;, + 0.118793;11.501133;-61.940163;, + -13.110004;10.939844;-56.528263;, + 0.118793;11.501133;-61.940163;, + -13.110004;10.959743;-56.526276;, + 0.118793;11.481234;-61.942154;, + 13.134227;10.939844;-56.528271;, + 13.134227;10.959743;-56.526283;, + 0.118793;11.481234;-61.942154;, + 13.134227;10.959743;-56.526283;, + 0.118793;11.501133;-61.940163;, + 13.134227;10.939844;-56.528271;, + 0.118793;11.481234;-61.942154;, + -13.110004;10.939844;-56.528263;, + 13.134227;10.939844;-56.528271;, + -13.110004;10.939844;-56.528263;, + -18.497536;9.639448;-43.524345;, + 13.134227;10.939844;-56.528271;, + -18.497536;9.639448;-43.524345;, + -13.056655;8.328438;-30.414284;, + 13.134227;10.939844;-56.528271;, + -13.056655;8.328438;-30.414284;, + 0.065462;7.792358;-25.053507;, + 13.134227;10.939844;-56.528271;, + 0.065462;7.792358;-25.053507;, + 13.134234;8.333746;-30.467369;, + 13.134227;10.939844;-56.528271;, + 13.134234;8.333746;-30.467369;, + 18.575108;9.634140;-43.471279;, + 18.575108;9.654039;-43.469288;, + 13.134234;8.353645;-30.465378;, + 0.065462;7.812258;-25.051516;, + 18.575108;9.654039;-43.469288;, + 0.065462;7.812258;-25.051516;, + -13.056655;8.348337;-30.412292;, + 18.575108;9.654039;-43.469288;, + -13.056655;8.348337;-30.412292;, + -18.497536;9.659348;-43.522354;, + 18.575108;9.654039;-43.469288;, + -18.497536;9.659348;-43.522354;, + -13.110004;10.959743;-56.526276;, + 18.575108;9.654039;-43.469288;, + -13.110004;10.959743;-56.526276;, + 0.118793;11.501133;-61.940163;, + 18.575108;9.654039;-43.469288;, + 0.118793;11.501133;-61.940163;, + 13.134227;10.959743;-56.526283;; + + 28; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;; + + MeshMaterialList { + 1; + 28; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;; + Material { + 0.698039;0.698039;0.698039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/copter8st_propa1.ppm"; + } #TextureFilename + } # Material + } # MeshMaterialList + MeshNormals { + 28; + 0.923742;0.038135;-0.381112;, + 0.923742;0.038064;-0.381119;, + 0.923188;-0.038268;0.382439;, + 0.923188;-0.038269;0.382438;, + 0.384347;-0.091923;0.918601;, + 0.384347;-0.091922;0.918601;, + -0.379803;-0.092112;0.920470;, + -0.379803;-0.092109;0.920471;, + -0.924290;-0.038003;0.379795;, + -0.924290;-0.038005;0.379794;, + -0.924522;0.037865;-0.379243;, + -0.924522;0.037949;-0.379235;, + -0.380375;0.092093;-0.920236;, + -0.380375;0.091911;-0.920254;, + 0.385690;0.091678;-0.918062;, + 0.385689;0.091866;-0.918044;, + 0.000000;-0.995037;-0.099504;, + 0.000000;-0.995037;-0.099504;, + 0.000000;-0.995037;-0.099504;, + 0.000000;-0.995037;-0.099504;, + 0.000000;-0.995037;-0.099504;, + 0.000000;-0.995037;-0.099504;, + 0.000000;0.995037;0.099504;, + 0.000000;0.995037;0.099504;, + 0.000000;0.995037;0.099504;, + 0.000000;0.995037;0.099504;, + 0.000000;0.995037;0.099504;, + 0.000000;0.995037;0.099504;; + + 28; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;; + } # MeshNormals + MeshTextureCoords { + 84; + 0.853237;0.853237;, + 0.499280;1.000000;, + 0.499280;1.000000;, + 0.853237;0.853237;, + 0.499280;1.000000;, + 0.853237;0.853237;, + 0.499280;1.000000;, + 0.146762;0.853237;, + 0.146762;0.853237;, + 0.499280;1.000000;, + 0.146762;0.853237;, + 0.499280;1.000000;, + 0.146762;0.853237;, + 0.000000;0.500719;, + 0.000000;0.500719;, + 0.146762;0.853237;, + 0.000000;0.500719;, + 0.146762;0.853237;, + 0.000000;0.500719;, + 0.145323;0.146763;, + 0.145323;0.146763;, + 0.000000;0.500719;, + 0.145323;0.146763;, + 0.000000;0.500719;, + 0.145323;0.146763;, + 0.500719;0.000000;, + 0.500719;0.000000;, + 0.145323;0.146763;, + 0.500719;0.000000;, + 0.145323;0.146763;, + 0.500719;0.000000;, + 0.853237;0.145324;, + 0.853237;0.145324;, + 0.500719;0.000000;, + 0.853237;0.145324;, + 0.500719;0.000000;, + 0.853237;0.145324;, + 1.000000;0.502158;, + 1.000000;0.502158;, + 0.853237;0.145324;, + 1.000000;0.502158;, + 0.853237;0.145324;, + 1.000000;0.502158;, + 0.853237;0.853237;, + 0.853237;0.853237;, + 1.000000;0.502158;, + 0.853237;0.853237;, + 1.000000;0.502158;, + 0.853237;0.853237;, + 1.000000;0.502158;, + 0.853237;0.145324;, + 0.853237;0.853237;, + 0.853237;0.145324;, + 0.500719;0.000000;, + 0.853237;0.853237;, + 0.500719;0.000000;, + 0.145323;0.146763;, + 0.853237;0.853237;, + 0.145323;0.146763;, + 0.000000;0.500719;, + 0.853237;0.853237;, + 0.000000;0.500719;, + 0.146762;0.853237;, + 0.853237;0.853237;, + 0.146762;0.853237;, + 0.499280;1.000000;, + 0.499280;1.000000;, + 0.146762;0.853237;, + 0.000000;0.500719;, + 0.499280;1.000000;, + 0.000000;0.500719;, + 0.145323;0.146763;, + 0.499280;1.000000;, + 0.145323;0.146763;, + 0.500719;0.000000;, + 0.499280;1.000000;, + 0.500719;0.000000;, + 0.853237;0.145324;, + 0.499280;1.000000;, + 0.853237;0.145324;, + 1.000000;0.502158;, + 0.499280;1.000000;, + 1.000000;0.502158;, + 0.853237;0.853237;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COW.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COW.X new file mode 100644 index 0000000..a08370c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/COW.X differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CUBE.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CUBE.X new file mode 100644 index 0000000..066747f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CUBE.X @@ -0,0 +1,229 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +Header { + 1; + 0; + 1; +} + +Mesh { + 24; + -1.0; 1.0; 1.0;, + 1.0; 1.0; 1.0;, + -1.0;-1.0; 1.0;, + 1.0;-1.0; 1.0;, + + -1.0;-1.0; 1.0;, + 1.0;-1.0; 1.0;, + -1.0;-1.0;-1.0;, + 1.0;-1.0;-1.0;, + + 1.0; 1.0;-1.0;, + -1.0; 1.0;-1.0;, + 1.0;-1.0;-1.0;, + -1.0;-1.0;-1.0;, + + -1.0; 1.0;-1.0;, + -1.0; 1.0; 1.0;, + -1.0;-1.0;-1.0;, + -1.0;-1.0; 1.0;, + + 1.0; 1.0; 1.0;, + 1.0; 1.0;-1.0;, + 1.0;-1.0; 1.0;, + 1.0;-1.0;-1.0;, + + -1.0; 1.0;-1.0;, + 1.0; 1.0;-1.0;, + -1.0; 1.0; 1.0;, + 1.0; 1.0; 1.0;; + + 6; + 4;0,2,3,1;, + 4;4,6,7,5;, + 4;8,10,11,9;, + 4;12,14,15,13;, + 4;16,18,19,17;, + 4;20,22,23,21;; + + MeshMaterialList { + 1; + 1; + 0;; + Material { + 1.000000;1.000000;1.000000;1.000000;; + 0.000000; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + MeshNormals { + 6; + 0.0;0.0;1.0;, + 0.0;-1.0;0.0;, + 0.0;0.0;-1.0;, + -1.0;0.0;0.0;, + 1.0;0.0;0.0;, + 0.0;1.0;0.0;; + + 6; + 4;0,0,0,0;, + 4;1,1,1,1;, + 4;2,2,2,2;, + 4;3,3,3,3;, + 4;4,4,4,4;, + 4;5,5,5,5;; + } + MeshTextureCoords { + 24; + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;, + 1.0;1.0;, + 0.0;1.0;, + 1.0;0.0;, + 0.0;0.0;; +} +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CYLINDER.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CYLINDER.X new file mode 100644 index 0000000..720d87f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/CYLINDER.X @@ -0,0 +1,403 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +Header { + 1; + 0; + 1; +} + +Mesh { + 60; + 0.00000;-1.00000;-1.00000;, + 0.00000; 1.00000;-1.00000;, +-0.43388;-1.00000;-0.90097;, +-0.43388; 1.00000;-0.90097;, +-0.78183;-1.00000;-0.62349;, +-0.78183; 1.00000;-0.62349;, +-0.97493;-1.00000;-0.22252;, +-0.97493; 1.00000;-0.22252;, +-0.97493;-1.00000; 0.22252;, +-0.97493; 1.00000; 0.22252;, +-0.78183;-1.00000; 0.62349;, +-0.78183; 1.00000; 0.62349;, +-0.43388;-1.00000; 0.90097;, +-0.43388; 1.00000; 0.90097;, +-0.00000;-1.00000; 1.00000;, +-0.00000; 1.00000; 1.00000;, + 0.43388;-1.00000; 0.90097;, + 0.43388; 1.00000; 0.90097;, + 0.78183;-1.00000; 0.62349;, + 0.78183; 1.00000; 0.62349;, + 0.97493;-1.00000; 0.22252;, + 0.97493; 1.00000; 0.22252;, + 0.97493;-1.00000;-0.22252;, + 0.97493; 1.00000;-0.22252;, + 0.78183;-1.00000;-0.62349;, + 0.78183; 1.00000;-0.62349;, + 0.43388;-1.00000;-0.90097;, + 0.43388; 1.00000;-0.90097;, + 0.00000;-1.00000;-1.00000;, + 0.00000; 1.00000;-1.00000;, + + 0.00000;1.00000;-1.00000;, +-0.43388;1.00000;-0.90097;, +-0.78183;1.00000;-0.62349;, +-0.97493;1.00000;-0.22252;, +-0.97493;1.00000; 0.22252;, +-0.78183;1.00000; 0.62349;, +-0.43388;1.00000; 0.90097;, +-0.00000;1.00000; 1.00000;, + 0.43388;1.00000; 0.90097;, + 0.78183;1.00000; 0.62349;, + 0.97493;1.00000; 0.22252;, + 0.97493;1.00000;-0.22252;, + 0.78183;1.00000;-0.62349;, + 0.43388;1.00000;-0.90097;, + 0.00000;1.00000;-1.00000;, + + 0.00000;-1.00000;-1.00000;, +-0.43388;-1.00000;-0.90097;, +-0.78183;-1.00000;-0.62349;, +-0.97493;-1.00000;-0.22252;, +-0.97493;-1.00000; 0.22252;, +-0.78183;-1.00000; 0.62349;, +-0.43388;-1.00000; 0.90097;, +-0.00000;-1.00000; 1.00000;, + 0.43388;-1.00000; 0.90097;, + 0.78183;-1.00000; 0.62349;, + 0.97493;-1.00000; 0.22252;, + 0.97493;-1.00000;-0.22252;, + 0.78183;-1.00000;-0.62349;, + 0.43388;-1.00000;-0.90097;, + 0.00000;-1.00000;-1.00000;, + +30; +3;0,2,1;, +3;1,2,3;, +3;2,4,3;, +3;3,4,5;, +3;4,6,5;, +3;5,6,7;, +3;6,8,7;, +3;7,8,9;, +3;8,10,9;, +3;9,10,11;, +3;10,12,11;, +3;11,12,13;, +3;12,14,13;, +3;13,14,15;, +3;14,16,15;, +3;15,16,17;, +3;16,18,17;, +3;17,18,19;, +3;18,20,19;, +3;19,20,21;, +3;20,22,21;, +3;21,22,23;, +3;22,24,23;, +3;23,24,25;, +3;24,26,25;, +3;25,26,27;, +3;26,28,27;, +3;27,28,29;, +15;30,31,32,33,34,35,36,37,38,39,40,41,42,43,44;, +15;59,58,57,56,55,54,53,52,51,50,49,48,47,46,45;; + MeshMaterialList { + 1; + 1; + 0;; + Material { + 1.000000;1.000000;1.000000;1.000000;; + 0.000000; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + MeshNormals { + 60; + 0.00000; 0.00000;-1.00000;, + 0.00000; 0.00000;-1.00000;, + -0.43388; 0.00000;-0.90097;, + -0.43388; 0.00000;-0.90097;, + -0.78183; 0.00000;-0.62349;, + -0.78183; 0.00000;-0.62349;, + -0.97493; 0.00000;-0.22252;, + -0.97493; 0.00000;-0.22252;, + -0.97493; 0.00000; 0.22252;, + -0.97493; 0.00000; 0.22252;, + -0.78183; 0.00000; 0.62349;, + -0.78183; 0.00000; 0.62349;, + -0.43388; 0.00000; 0.90097;, + -0.43388; 0.00000; 0.90097;, + -0.00000; 0.00000; 1.00000;, + -0.00000; 0.00000; 1.00000;, + 0.43388; 0.00000; 0.90097;, + 0.43388; 0.00000; 0.90097;, + 0.78183; 0.00000; 0.62349;, + 0.78183; 0.00000; 0.62349;, + 0.97493; 0.00000; 0.22252;, + 0.97493; 0.00000; 0.22252;, + 0.97493; 0.00000;-0.22252;, + 0.97493; 0.00000;-0.22252;, + 0.78183; 0.00000;-0.62349;, + 0.78183; 0.00000;-0.62349;, + 0.43388; 0.00000;-0.90097;, + 0.43388; 0.00000;-0.90097;, + 0.00000; 0.00000;-1.00000;, + 0.00000; 0.00000;-1.00000;, + + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + 0.00000; 1.00000; 0.00000;, + + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;, + 0.00000; -1.00000; 0.00000;; + + 30; + 3;0,2,1;, + 3;1,2,3;, + 3;2,4,3;, + 3;3,4,5;, + 3;4,6,5;, + 3;5,6,7;, + 3;6,8,7;, + 3;7,8,9;, + 3;8,10,9;, + 3;9,10,11;, + 3;10,12,11;, + 3;11,12,13;, + 3;12,14,13;, + 3;13,14,15;, + 3;14,16,15;, + 3;15,16,17;, + 3;16,18,17;, + 3;17,18,19;, + 3;18,20,19;, + 3;19,20,21;, + 3;20,22,21;, + 3;21,22,23;, + 3;22,24,23;, + 3;23,24,25;, + 3;24,26,25;, + 3;25,26,27;, + 3;26,28,27;, + 3;27,28,29;, + 15;30,31,32,33,34,35,36,37,38,39,40,41,42,43,44;, + 15;59,58,57,56,55,54,53,52,51,50,49,48,47,46,45;; +} + MeshTextureCoords { + 60; + 1.00000; 0.00000;, + 1.00000; 1.00000;, + 0.92857; 0.00000;, + 0.92857; 1.00000;, + 0.85714; 0.00000;, + 0.85714; 1.00000;, + 0.78571; 0.00000;, + 0.78571; 1.00000;, + 0.71429; 0.00000;, + 0.71429; 1.00000;, + 0.64286; 0.00000;, + 0.64286; 1.00000;, + 0.57143; 0.00000;, + 0.57143; 1.00000;, + 0.50000; 0.00000;, + 0.50000; 1.00000;, + 0.42857; 0.00000;, + 0.42857; 1.00000;, + 0.35714; 0.00000;, + 0.35714; 1.00000;, + 0.28571; 0.00000;, + 0.28571; 1.00000;, + 0.21429; 0.00000;, + 0.21429; 1.00000;, + 0.14286; 0.00000;, + 0.14286; 1.00000;, + 0.07143; 0.00000;, + 0.07143; 1.00000;, + 0.00000; 0.00000;, + 0.00000; 1.00000;, + + 0.5; 0.0;, + 0.28306; 0.049515;, + 0.109085;0.188255;, + 0.012535;0.38874;, + 0.012535;0.61126;, + 0.109085;0.811745;, + 0.28306; 0.950485;, + 0.5; 1.0;, + 0.71694; 0.950485;, + 0.890915;0.811745;, + 0.987465;0.61126;, + 0.987465;0.38874;, + 0.890915;0.188255;, + 0.71694; 0.049515;, + 0.5; 0.0;, + + 0.5; 0.0;, + 0.28306; 0.049515;, + 0.109085;0.188255;, + 0.012535;0.38874;, + 0.012535;0.61126;, + 0.109085;0.811745;, + 0.28306; 0.950485;, + 0.5; 1.0;, + 0.71694; 0.950485;, + 0.890915;0.811745;, + 0.987465;0.61126;, + 0.987465;0.38874;, + 0.890915;0.188255;, + 0.71694; 0.049515;, + 0.5; 0.0;; + } +} \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/HLFDONUT.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/HLFDONUT.X new file mode 100644 index 0000000..e5e55cb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/HLFDONUT.X @@ -0,0 +1,2725 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 768; + -0.693000;0.287000;-0.250000;, + -0.605000;0.250000;-0.231000;, + -0.654000;0.000000;-0.231000;, + -0.750000;0.000000;-0.250000;, + -0.693000;0.287000;-0.250000;, + -0.654000;0.000000;-0.231000;, + -0.605000;0.250000;-0.231000;, + -0.530000;0.530000;-0.250000;, + -0.463000;0.463000;-0.231000;, + -0.693000;0.287000;-0.250000;, + -0.530000;0.530000;-0.250000;, + -0.605000;0.250000;-0.231000;, + -0.463000;0.463000;-0.231000;, + -0.287000;0.693000;-0.250000;, + -0.250000;0.605000;-0.231000;, + -0.530000;0.530000;-0.250000;, + -0.287000;0.693000;-0.250000;, + -0.463000;0.463000;-0.231000;, + -0.250000;0.605000;-0.231000;, + 0.000000;0.750000;-0.250000;, + 0.000000;0.654000;-0.231000;, + -0.287000;0.693000;-0.250000;, + 0.000000;0.750000;-0.250000;, + -0.250000;0.605000;-0.231000;, + 0.000000;0.654000;-0.231000;, + 0.287000;0.693000;-0.250000;, + 0.250000;0.605000;-0.231000;, + 0.000000;0.750000;-0.250000;, + 0.287000;0.693000;-0.250000;, + 0.000000;0.654000;-0.231000;, + 0.287000;0.693000;-0.250000;, + 0.530000;0.530000;-0.250000;, + 0.463000;0.463000;-0.231000;, + 0.250000;0.605000;-0.231000;, + 0.287000;0.693000;-0.250000;, + 0.463000;0.463000;-0.231000;, + 0.530000;0.530000;-0.250000;, + 0.693000;0.287000;-0.250000;, + 0.605000;0.250000;-0.231000;, + 0.463000;0.463000;-0.231000;, + 0.530000;0.530000;-0.250000;, + 0.605000;0.250000;-0.231000;, + 0.654000;0.000000;-0.231000;, + 0.693000;0.287000;-0.250000;, + 0.750000;0.000000;-0.250000;, + 0.605000;0.250000;-0.231000;, + 0.693000;0.287000;-0.250000;, + 0.654000;0.000000;-0.231000;, + -0.605000;0.250000;-0.231000;, + -0.530000;0.219000;-0.177000;, + -0.573000;0.000000;-0.177000;, + -0.654000;0.000000;-0.231000;, + -0.605000;0.250000;-0.231000;, + -0.573000;0.000000;-0.177000;, + -0.530000;0.219000;-0.177000;, + -0.463000;0.463000;-0.231000;, + -0.405000;0.405000;-0.177000;, + -0.605000;0.250000;-0.231000;, + -0.463000;0.463000;-0.231000;, + -0.530000;0.219000;-0.177000;, + -0.405000;0.405000;-0.177000;, + -0.250000;0.605000;-0.231000;, + -0.219000;0.530000;-0.177000;, + -0.463000;0.463000;-0.231000;, + -0.250000;0.605000;-0.231000;, + -0.405000;0.405000;-0.177000;, + -0.219000;0.530000;-0.177000;, + 0.000000;0.654000;-0.231000;, + 0.000000;0.573000;-0.177000;, + -0.250000;0.605000;-0.231000;, + 0.000000;0.654000;-0.231000;, + -0.219000;0.530000;-0.177000;, + 0.000000;0.573000;-0.177000;, + 0.250000;0.605000;-0.231000;, + 0.219000;0.530000;-0.177000;, + 0.000000;0.654000;-0.231000;, + 0.250000;0.605000;-0.231000;, + 0.000000;0.573000;-0.177000;, + 0.250000;0.605000;-0.231000;, + 0.463000;0.463000;-0.231000;, + 0.405000;0.405000;-0.177000;, + 0.219000;0.530000;-0.177000;, + 0.250000;0.605000;-0.231000;, + 0.405000;0.405000;-0.177000;, + 0.463000;0.463000;-0.231000;, + 0.605000;0.250000;-0.231000;, + 0.530000;0.219000;-0.177000;, + 0.405000;0.405000;-0.177000;, + 0.463000;0.463000;-0.231000;, + 0.530000;0.219000;-0.177000;, + 0.573000;0.000000;-0.177000;, + 0.605000;0.250000;-0.231000;, + 0.654000;0.000000;-0.231000;, + 0.530000;0.219000;-0.177000;, + 0.605000;0.250000;-0.231000;, + 0.573000;0.000000;-0.177000;, + -0.480000;0.199000;-0.096000;, + -0.519000;0.000000;-0.096000;, + -0.573000;0.000000;-0.177000;, + -0.530000;0.219000;-0.177000;, + -0.480000;0.199000;-0.096000;, + -0.573000;0.000000;-0.177000;, + -0.367000;0.367000;-0.096000;, + -0.480000;0.199000;-0.096000;, + -0.530000;0.219000;-0.177000;, + -0.405000;0.405000;-0.177000;, + -0.367000;0.367000;-0.096000;, + -0.530000;0.219000;-0.177000;, + -0.199000;0.480000;-0.096000;, + -0.405000;0.405000;-0.177000;, + -0.219000;0.530000;-0.177000;, + -0.367000;0.367000;-0.096000;, + -0.405000;0.405000;-0.177000;, + -0.199000;0.480000;-0.096000;, + 0.000000;0.519000;-0.096000;, + -0.219000;0.530000;-0.177000;, + 0.000000;0.573000;-0.177000;, + -0.199000;0.480000;-0.096000;, + -0.219000;0.530000;-0.177000;, + 0.000000;0.519000;-0.096000;, + 0.199000;0.480000;-0.096000;, + 0.000000;0.573000;-0.177000;, + 0.219000;0.530000;-0.177000;, + 0.000000;0.519000;-0.096000;, + 0.000000;0.573000;-0.177000;, + 0.199000;0.480000;-0.096000;, + 0.367000;0.367000;-0.096000;, + 0.219000;0.530000;-0.177000;, + 0.405000;0.405000;-0.177000;, + 0.199000;0.480000;-0.096000;, + 0.219000;0.530000;-0.177000;, + 0.367000;0.367000;-0.096000;, + 0.480000;0.199000;-0.096000;, + 0.405000;0.405000;-0.177000;, + 0.530000;0.219000;-0.177000;, + 0.367000;0.367000;-0.096000;, + 0.405000;0.405000;-0.177000;, + 0.480000;0.199000;-0.096000;, + 0.519000;0.000000;-0.096000;, + 0.530000;0.219000;-0.177000;, + 0.573000;0.000000;-0.177000;, + 0.480000;0.199000;-0.096000;, + 0.530000;0.219000;-0.177000;, + 0.519000;0.000000;-0.096000;, + -0.462000;0.191000;0.000000;, + -0.500000;0.000000;0.000000;, + -0.519000;0.000000;-0.096000;, + -0.480000;0.199000;-0.096000;, + -0.462000;0.191000;0.000000;, + -0.519000;0.000000;-0.096000;, + -0.354000;0.354000;0.000000;, + -0.462000;0.191000;0.000000;, + -0.480000;0.199000;-0.096000;, + -0.367000;0.367000;-0.096000;, + -0.354000;0.354000;0.000000;, + -0.480000;0.199000;-0.096000;, + -0.191000;0.462000;0.000000;, + -0.367000;0.367000;-0.096000;, + -0.199000;0.480000;-0.096000;, + -0.354000;0.354000;0.000000;, + -0.367000;0.367000;-0.096000;, + -0.191000;0.462000;0.000000;, + 0.000000;0.500000;0.000000;, + -0.199000;0.480000;-0.096000;, + 0.000000;0.519000;-0.096000;, + -0.191000;0.462000;0.000000;, + -0.199000;0.480000;-0.096000;, + 0.000000;0.500000;0.000000;, + 0.191000;0.462000;0.000000;, + 0.000000;0.519000;-0.096000;, + 0.199000;0.480000;-0.096000;, + 0.000000;0.500000;0.000000;, + 0.000000;0.519000;-0.096000;, + 0.191000;0.462000;0.000000;, + 0.354000;0.354000;0.000000;, + 0.199000;0.480000;-0.096000;, + 0.367000;0.367000;-0.096000;, + 0.191000;0.462000;0.000000;, + 0.199000;0.480000;-0.096000;, + 0.354000;0.354000;0.000000;, + 0.462000;0.191000;0.000000;, + 0.367000;0.367000;-0.096000;, + 0.480000;0.199000;-0.096000;, + 0.354000;0.354000;0.000000;, + 0.367000;0.367000;-0.096000;, + 0.462000;0.191000;0.000000;, + 0.500000;0.000000;0.000000;, + 0.480000;0.199000;-0.096000;, + 0.519000;0.000000;-0.096000;, + 0.462000;0.191000;0.000000;, + 0.480000;0.199000;-0.096000;, + 0.500000;0.000000;0.000000;, + -0.462000;0.191000;0.000000;, + -0.519000;0.000000;0.096000;, + -0.500000;0.000000;0.000000;, + -0.480000;0.199000;0.096000;, + -0.519000;0.000000;0.096000;, + -0.462000;0.191000;0.000000;, + -0.354000;0.354000;0.000000;, + -0.480000;0.199000;0.096000;, + -0.462000;0.191000;0.000000;, + -0.367000;0.367000;0.096000;, + -0.480000;0.199000;0.096000;, + -0.354000;0.354000;0.000000;, + -0.199000;0.480000;0.096000;, + -0.354000;0.354000;0.000000;, + -0.191000;0.462000;0.000000;, + -0.367000;0.367000;0.096000;, + -0.354000;0.354000;0.000000;, + -0.199000;0.480000;0.096000;, + 0.000000;0.519000;0.096000;, + -0.191000;0.462000;0.000000;, + 0.000000;0.500000;0.000000;, + -0.199000;0.480000;0.096000;, + -0.191000;0.462000;0.000000;, + 0.000000;0.519000;0.096000;, + 0.199000;0.480000;0.096000;, + 0.000000;0.500000;0.000000;, + 0.191000;0.462000;0.000000;, + 0.000000;0.519000;0.096000;, + 0.000000;0.500000;0.000000;, + 0.199000;0.480000;0.096000;, + 0.367000;0.367000;0.096000;, + 0.191000;0.462000;0.000000;, + 0.354000;0.354000;0.000000;, + 0.199000;0.480000;0.096000;, + 0.191000;0.462000;0.000000;, + 0.367000;0.367000;0.096000;, + 0.480000;0.199000;0.096000;, + 0.354000;0.354000;0.000000;, + 0.462000;0.191000;0.000000;, + 0.367000;0.367000;0.096000;, + 0.354000;0.354000;0.000000;, + 0.480000;0.199000;0.096000;, + 0.519000;0.000000;0.096000;, + 0.462000;0.191000;0.000000;, + 0.500000;0.000000;0.000000;, + 0.480000;0.199000;0.096000;, + 0.462000;0.191000;0.000000;, + 0.519000;0.000000;0.096000;, + -0.480000;0.199000;0.096000;, + -0.573000;0.000000;0.177000;, + -0.519000;0.000000;0.096000;, + -0.530000;0.219000;0.177000;, + -0.573000;0.000000;0.177000;, + -0.480000;0.199000;0.096000;, + -0.367000;0.367000;0.096000;, + -0.530000;0.219000;0.177000;, + -0.480000;0.199000;0.096000;, + -0.405000;0.405000;0.177000;, + -0.530000;0.219000;0.177000;, + -0.367000;0.367000;0.096000;, + -0.219000;0.530000;0.177000;, + -0.367000;0.367000;0.096000;, + -0.199000;0.480000;0.096000;, + -0.405000;0.405000;0.177000;, + -0.367000;0.367000;0.096000;, + -0.219000;0.530000;0.177000;, + 0.000000;0.573000;0.177000;, + -0.199000;0.480000;0.096000;, + 0.000000;0.519000;0.096000;, + -0.219000;0.530000;0.177000;, + -0.199000;0.480000;0.096000;, + 0.000000;0.573000;0.177000;, + 0.219000;0.530000;0.177000;, + 0.000000;0.519000;0.096000;, + 0.199000;0.480000;0.096000;, + 0.000000;0.573000;0.177000;, + 0.000000;0.519000;0.096000;, + 0.219000;0.530000;0.177000;, + 0.405000;0.405000;0.177000;, + 0.199000;0.480000;0.096000;, + 0.367000;0.367000;0.096000;, + 0.219000;0.530000;0.177000;, + 0.199000;0.480000;0.096000;, + 0.405000;0.405000;0.177000;, + 0.530000;0.219000;0.177000;, + 0.367000;0.367000;0.096000;, + 0.480000;0.199000;0.096000;, + 0.405000;0.405000;0.177000;, + 0.367000;0.367000;0.096000;, + 0.530000;0.219000;0.177000;, + 0.573000;0.000000;0.177000;, + 0.480000;0.199000;0.096000;, + 0.519000;0.000000;0.096000;, + 0.530000;0.219000;0.177000;, + 0.480000;0.199000;0.096000;, + 0.573000;0.000000;0.177000;, + -0.530000;0.219000;0.177000;, + -0.654000;0.000000;0.231000;, + -0.573000;0.000000;0.177000;, + -0.605000;0.250000;0.231000;, + -0.654000;0.000000;0.231000;, + -0.530000;0.219000;0.177000;, + -0.405000;0.405000;0.177000;, + -0.605000;0.250000;0.231000;, + -0.530000;0.219000;0.177000;, + -0.463000;0.463000;0.231000;, + -0.605000;0.250000;0.231000;, + -0.405000;0.405000;0.177000;, + -0.219000;0.530000;0.177000;, + -0.463000;0.463000;0.231000;, + -0.405000;0.405000;0.177000;, + -0.250000;0.605000;0.231000;, + -0.463000;0.463000;0.231000;, + -0.219000;0.530000;0.177000;, + -0.250000;0.605000;0.231000;, + -0.219000;0.530000;0.177000;, + 0.000000;0.573000;0.177000;, + 0.000000;0.654000;0.231000;, + -0.250000;0.605000;0.231000;, + 0.000000;0.573000;0.177000;, + 0.250000;0.605000;0.231000;, + 0.000000;0.573000;0.177000;, + 0.219000;0.530000;0.177000;, + 0.000000;0.654000;0.231000;, + 0.000000;0.573000;0.177000;, + 0.250000;0.605000;0.231000;, + 0.219000;0.530000;0.177000;, + 0.405000;0.405000;0.177000;, + 0.463000;0.463000;0.231000;, + 0.250000;0.605000;0.231000;, + 0.219000;0.530000;0.177000;, + 0.463000;0.463000;0.231000;, + 0.405000;0.405000;0.177000;, + 0.530000;0.219000;0.177000;, + 0.605000;0.250000;0.231000;, + 0.463000;0.463000;0.231000;, + 0.405000;0.405000;0.177000;, + 0.605000;0.250000;0.231000;, + 0.530000;0.219000;0.177000;, + 0.573000;0.000000;0.177000;, + 0.654000;0.000000;0.231000;, + 0.605000;0.250000;0.231000;, + 0.530000;0.219000;0.177000;, + 0.654000;0.000000;0.231000;, + -0.605000;0.250000;0.231000;, + -0.750000;0.000000;0.250000;, + -0.654000;0.000000;0.231000;, + -0.693000;0.287000;0.250000;, + -0.750000;0.000000;0.250000;, + -0.605000;0.250000;0.231000;, + -0.463000;0.463000;0.231000;, + -0.693000;0.287000;0.250000;, + -0.605000;0.250000;0.231000;, + -0.530000;0.530000;0.250000;, + -0.693000;0.287000;0.250000;, + -0.463000;0.463000;0.231000;, + -0.250000;0.605000;0.231000;, + -0.530000;0.530000;0.250000;, + -0.463000;0.463000;0.231000;, + -0.287000;0.693000;0.250000;, + -0.530000;0.530000;0.250000;, + -0.250000;0.605000;0.231000;, + -0.287000;0.693000;0.250000;, + -0.250000;0.605000;0.231000;, + 0.000000;0.654000;0.231000;, + 0.000000;0.750000;0.250000;, + -0.287000;0.693000;0.250000;, + 0.000000;0.654000;0.231000;, + 0.287000;0.693000;0.250000;, + 0.000000;0.654000;0.231000;, + 0.250000;0.605000;0.231000;, + 0.000000;0.750000;0.250000;, + 0.000000;0.654000;0.231000;, + 0.287000;0.693000;0.250000;, + 0.250000;0.605000;0.231000;, + 0.463000;0.463000;0.231000;, + 0.530000;0.530000;0.250000;, + 0.287000;0.693000;0.250000;, + 0.250000;0.605000;0.231000;, + 0.530000;0.530000;0.250000;, + 0.463000;0.463000;0.231000;, + 0.605000;0.250000;0.231000;, + 0.693000;0.287000;0.250000;, + 0.530000;0.530000;0.250000;, + 0.463000;0.463000;0.231000;, + 0.693000;0.287000;0.250000;, + 0.605000;0.250000;0.231000;, + 0.654000;0.000000;0.231000;, + 0.750000;0.000000;0.250000;, + 0.693000;0.287000;0.250000;, + 0.605000;0.250000;0.231000;, + 0.750000;0.000000;0.250000;, + -0.693000;0.287000;0.250000;, + -0.846000;0.000000;0.231000;, + -0.750000;0.000000;0.250000;, + -0.781000;0.324000;0.231000;, + -0.846000;0.000000;0.231000;, + -0.693000;0.287000;0.250000;, + -0.530000;0.530000;0.250000;, + -0.781000;0.324000;0.231000;, + -0.693000;0.287000;0.250000;, + -0.598000;0.598000;0.231000;, + -0.781000;0.324000;0.231000;, + -0.530000;0.530000;0.250000;, + -0.287000;0.693000;0.250000;, + -0.598000;0.598000;0.231000;, + -0.530000;0.530000;0.250000;, + -0.324000;0.781000;0.231000;, + -0.598000;0.598000;0.231000;, + -0.287000;0.693000;0.250000;, + -0.324000;0.781000;0.231000;, + -0.287000;0.693000;0.250000;, + 0.000000;0.750000;0.250000;, + 0.000000;0.846000;0.231000;, + -0.324000;0.781000;0.231000;, + 0.000000;0.750000;0.250000;, + 0.324000;0.781000;0.231000;, + 0.000000;0.750000;0.250000;, + 0.287000;0.693000;0.250000;, + 0.000000;0.846000;0.231000;, + 0.000000;0.750000;0.250000;, + 0.324000;0.781000;0.231000;, + 0.287000;0.693000;0.250000;, + 0.530000;0.530000;0.250000;, + 0.598000;0.598000;0.231000;, + 0.324000;0.781000;0.231000;, + 0.287000;0.693000;0.250000;, + 0.598000;0.598000;0.231000;, + 0.530000;0.530000;0.250000;, + 0.693000;0.287000;0.250000;, + 0.781000;0.324000;0.231000;, + 0.598000;0.598000;0.231000;, + 0.530000;0.530000;0.250000;, + 0.781000;0.324000;0.231000;, + 0.693000;0.287000;0.250000;, + 0.750000;0.000000;0.250000;, + 0.846000;0.000000;0.231000;, + 0.781000;0.324000;0.231000;, + 0.693000;0.287000;0.250000;, + 0.846000;0.000000;0.231000;, + -0.781000;0.324000;0.231000;, + -0.927000;0.000000;0.177000;, + -0.846000;0.000000;0.231000;, + -0.856000;0.355000;0.177000;, + -0.927000;0.000000;0.177000;, + -0.781000;0.324000;0.231000;, + -0.598000;0.598000;0.231000;, + -0.856000;0.355000;0.177000;, + -0.781000;0.324000;0.231000;, + -0.655000;0.655000;0.177000;, + -0.856000;0.355000;0.177000;, + -0.598000;0.598000;0.231000;, + -0.324000;0.781000;0.231000;, + -0.655000;0.655000;0.177000;, + -0.598000;0.598000;0.231000;, + -0.355000;0.856000;0.177000;, + -0.655000;0.655000;0.177000;, + -0.324000;0.781000;0.231000;, + -0.355000;0.856000;0.177000;, + -0.324000;0.781000;0.231000;, + 0.000000;0.846000;0.231000;, + 0.000000;0.927000;0.177000;, + -0.355000;0.856000;0.177000;, + 0.000000;0.846000;0.231000;, + 0.355000;0.856000;0.177000;, + 0.000000;0.846000;0.231000;, + 0.324000;0.781000;0.231000;, + 0.000000;0.927000;0.177000;, + 0.000000;0.846000;0.231000;, + 0.355000;0.856000;0.177000;, + 0.324000;0.781000;0.231000;, + 0.598000;0.598000;0.231000;, + 0.655000;0.655000;0.177000;, + 0.355000;0.856000;0.177000;, + 0.324000;0.781000;0.231000;, + 0.655000;0.655000;0.177000;, + 0.598000;0.598000;0.231000;, + 0.781000;0.324000;0.231000;, + 0.856000;0.355000;0.177000;, + 0.655000;0.655000;0.177000;, + 0.598000;0.598000;0.231000;, + 0.856000;0.355000;0.177000;, + 0.781000;0.324000;0.231000;, + 0.846000;0.000000;0.231000;, + 0.927000;0.000000;0.177000;, + 0.856000;0.355000;0.177000;, + 0.781000;0.324000;0.231000;, + 0.927000;0.000000;0.177000;, + -0.927000;0.000000;0.177000;, + -0.906000;0.375000;0.096000;, + -0.981000;0.000000;0.096000;, + -0.856000;0.355000;0.177000;, + -0.906000;0.375000;0.096000;, + -0.927000;0.000000;0.177000;, + -0.856000;0.355000;0.177000;, + -0.694000;0.694000;0.096000;, + -0.906000;0.375000;0.096000;, + -0.655000;0.655000;0.177000;, + -0.694000;0.694000;0.096000;, + -0.856000;0.355000;0.177000;, + -0.655000;0.655000;0.177000;, + -0.355000;0.856000;0.177000;, + -0.375000;0.906000;0.096000;, + -0.694000;0.694000;0.096000;, + -0.655000;0.655000;0.177000;, + -0.375000;0.906000;0.096000;, + -0.355000;0.856000;0.177000;, + 0.000000;0.927000;0.177000;, + 0.000000;0.981000;0.096000;, + -0.375000;0.906000;0.096000;, + -0.355000;0.856000;0.177000;, + 0.000000;0.981000;0.096000;, + 0.000000;0.981000;0.096000;, + 0.355000;0.856000;0.177000;, + 0.375000;0.906000;0.096000;, + 0.000000;0.927000;0.177000;, + 0.355000;0.856000;0.177000;, + 0.000000;0.981000;0.096000;, + 0.375000;0.906000;0.096000;, + 0.655000;0.655000;0.177000;, + 0.694000;0.694000;0.096000;, + 0.355000;0.856000;0.177000;, + 0.655000;0.655000;0.177000;, + 0.375000;0.906000;0.096000;, + 0.655000;0.655000;0.177000;, + 0.856000;0.355000;0.177000;, + 0.906000;0.375000;0.096000;, + 0.694000;0.694000;0.096000;, + 0.655000;0.655000;0.177000;, + 0.906000;0.375000;0.096000;, + 0.856000;0.355000;0.177000;, + 0.927000;0.000000;0.177000;, + 0.981000;0.000000;0.096000;, + 0.906000;0.375000;0.096000;, + 0.856000;0.355000;0.177000;, + 0.981000;0.000000;0.096000;, + -0.981000;0.000000;0.096000;, + -0.924000;0.383000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.906000;0.375000;0.096000;, + -0.924000;0.383000;0.000000;, + -0.981000;0.000000;0.096000;, + -0.906000;0.375000;0.096000;, + -0.707000;0.707000;0.000000;, + -0.924000;0.383000;0.000000;, + -0.694000;0.694000;0.096000;, + -0.707000;0.707000;0.000000;, + -0.906000;0.375000;0.096000;, + -0.694000;0.694000;0.096000;, + -0.375000;0.906000;0.096000;, + -0.383000;0.924000;0.000000;, + -0.707000;0.707000;0.000000;, + -0.694000;0.694000;0.096000;, + -0.383000;0.924000;0.000000;, + -0.375000;0.906000;0.096000;, + 0.000000;0.981000;0.096000;, + 0.000000;1.000000;0.000000;, + -0.383000;0.924000;0.000000;, + -0.375000;0.906000;0.096000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.375000;0.906000;0.096000;, + 0.383000;0.924000;0.000000;, + 0.000000;0.981000;0.096000;, + 0.375000;0.906000;0.096000;, + 0.000000;1.000000;0.000000;, + 0.383000;0.924000;0.000000;, + 0.694000;0.694000;0.096000;, + 0.707000;0.707000;0.000000;, + 0.375000;0.906000;0.096000;, + 0.694000;0.694000;0.096000;, + 0.383000;0.924000;0.000000;, + 0.694000;0.694000;0.096000;, + 0.906000;0.375000;0.096000;, + 0.924000;0.383000;0.000000;, + 0.707000;0.707000;0.000000;, + 0.694000;0.694000;0.096000;, + 0.924000;0.383000;0.000000;, + 0.906000;0.375000;0.096000;, + 0.981000;0.000000;0.096000;, + 1.000000;0.000000;0.000000;, + 0.924000;0.383000;0.000000;, + 0.906000;0.375000;0.096000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.906000;0.375000;-0.096000;, + -0.981000;0.000000;-0.096000;, + -0.924000;0.383000;0.000000;, + -0.906000;0.375000;-0.096000;, + -1.000000;0.000000;0.000000;, + -0.924000;0.383000;0.000000;, + -0.694000;0.694000;-0.096000;, + -0.906000;0.375000;-0.096000;, + -0.707000;0.707000;0.000000;, + -0.694000;0.694000;-0.096000;, + -0.924000;0.383000;0.000000;, + -0.694000;0.694000;-0.096000;, + -0.383000;0.924000;0.000000;, + -0.375000;0.906000;-0.096000;, + -0.707000;0.707000;0.000000;, + -0.383000;0.924000;0.000000;, + -0.694000;0.694000;-0.096000;, + -0.375000;0.906000;-0.096000;, + 0.000000;1.000000;0.000000;, + 0.000000;0.981000;-0.096000;, + -0.383000;0.924000;0.000000;, + 0.000000;1.000000;0.000000;, + -0.375000;0.906000;-0.096000;, + 0.000000;0.981000;-0.096000;, + 0.383000;0.924000;0.000000;, + 0.375000;0.906000;-0.096000;, + 0.000000;1.000000;0.000000;, + 0.383000;0.924000;0.000000;, + 0.000000;0.981000;-0.096000;, + 0.383000;0.924000;0.000000;, + 0.707000;0.707000;0.000000;, + 0.694000;0.694000;-0.096000;, + 0.375000;0.906000;-0.096000;, + 0.383000;0.924000;0.000000;, + 0.694000;0.694000;-0.096000;, + 0.694000;0.694000;-0.096000;, + 0.924000;0.383000;0.000000;, + 0.906000;0.375000;-0.096000;, + 0.707000;0.707000;0.000000;, + 0.924000;0.383000;0.000000;, + 0.694000;0.694000;-0.096000;, + 0.906000;0.375000;-0.096000;, + 1.000000;0.000000;0.000000;, + 0.981000;0.000000;-0.096000;, + 0.924000;0.383000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.906000;0.375000;-0.096000;, + -0.981000;0.000000;-0.096000;, + -0.856000;0.355000;-0.177000;, + -0.927000;0.000000;-0.177000;, + -0.906000;0.375000;-0.096000;, + -0.856000;0.355000;-0.177000;, + -0.981000;0.000000;-0.096000;, + -0.906000;0.375000;-0.096000;, + -0.655000;0.655000;-0.177000;, + -0.856000;0.355000;-0.177000;, + -0.694000;0.694000;-0.096000;, + -0.655000;0.655000;-0.177000;, + -0.906000;0.375000;-0.096000;, + -0.655000;0.655000;-0.177000;, + -0.375000;0.906000;-0.096000;, + -0.355000;0.856000;-0.177000;, + -0.694000;0.694000;-0.096000;, + -0.375000;0.906000;-0.096000;, + -0.655000;0.655000;-0.177000;, + -0.355000;0.856000;-0.177000;, + 0.000000;0.981000;-0.096000;, + 0.000000;0.927000;-0.177000;, + -0.375000;0.906000;-0.096000;, + 0.000000;0.981000;-0.096000;, + -0.355000;0.856000;-0.177000;, + 0.000000;0.927000;-0.177000;, + 0.375000;0.906000;-0.096000;, + 0.355000;0.856000;-0.177000;, + 0.000000;0.981000;-0.096000;, + 0.375000;0.906000;-0.096000;, + 0.000000;0.927000;-0.177000;, + 0.375000;0.906000;-0.096000;, + 0.694000;0.694000;-0.096000;, + 0.655000;0.655000;-0.177000;, + 0.355000;0.856000;-0.177000;, + 0.375000;0.906000;-0.096000;, + 0.655000;0.655000;-0.177000;, + 0.655000;0.655000;-0.177000;, + 0.906000;0.375000;-0.096000;, + 0.856000;0.355000;-0.177000;, + 0.694000;0.694000;-0.096000;, + 0.906000;0.375000;-0.096000;, + 0.655000;0.655000;-0.177000;, + 0.856000;0.355000;-0.177000;, + 0.981000;0.000000;-0.096000;, + 0.927000;0.000000;-0.177000;, + 0.906000;0.375000;-0.096000;, + 0.981000;0.000000;-0.096000;, + 0.856000;0.355000;-0.177000;, + -0.856000;0.355000;-0.177000;, + -0.781000;0.324000;-0.231000;, + -0.846000;0.000000;-0.231000;, + -0.927000;0.000000;-0.177000;, + -0.856000;0.355000;-0.177000;, + -0.846000;0.000000;-0.231000;, + -0.781000;0.324000;-0.231000;, + -0.655000;0.655000;-0.177000;, + -0.598000;0.598000;-0.231000;, + -0.856000;0.355000;-0.177000;, + -0.655000;0.655000;-0.177000;, + -0.781000;0.324000;-0.231000;, + -0.598000;0.598000;-0.231000;, + -0.355000;0.856000;-0.177000;, + -0.324000;0.781000;-0.231000;, + -0.655000;0.655000;-0.177000;, + -0.355000;0.856000;-0.177000;, + -0.598000;0.598000;-0.231000;, + -0.324000;0.781000;-0.231000;, + 0.000000;0.927000;-0.177000;, + 0.000000;0.846000;-0.231000;, + -0.355000;0.856000;-0.177000;, + 0.000000;0.927000;-0.177000;, + -0.324000;0.781000;-0.231000;, + 0.000000;0.846000;-0.231000;, + 0.355000;0.856000;-0.177000;, + 0.324000;0.781000;-0.231000;, + 0.000000;0.927000;-0.177000;, + 0.355000;0.856000;-0.177000;, + 0.000000;0.846000;-0.231000;, + 0.355000;0.856000;-0.177000;, + 0.655000;0.655000;-0.177000;, + 0.598000;0.598000;-0.231000;, + 0.324000;0.781000;-0.231000;, + 0.355000;0.856000;-0.177000;, + 0.598000;0.598000;-0.231000;, + 0.655000;0.655000;-0.177000;, + 0.856000;0.355000;-0.177000;, + 0.781000;0.324000;-0.231000;, + 0.598000;0.598000;-0.231000;, + 0.655000;0.655000;-0.177000;, + 0.781000;0.324000;-0.231000;, + 0.846000;0.000000;-0.231000;, + 0.856000;0.355000;-0.177000;, + 0.927000;0.000000;-0.177000;, + 0.781000;0.324000;-0.231000;, + 0.856000;0.355000;-0.177000;, + 0.846000;0.000000;-0.231000;, + -0.781000;0.324000;-0.231000;, + -0.693000;0.287000;-0.250000;, + -0.750000;0.000000;-0.250000;, + -0.846000;0.000000;-0.231000;, + -0.781000;0.324000;-0.231000;, + -0.750000;0.000000;-0.250000;, + -0.693000;0.287000;-0.250000;, + -0.598000;0.598000;-0.231000;, + -0.530000;0.530000;-0.250000;, + -0.781000;0.324000;-0.231000;, + -0.598000;0.598000;-0.231000;, + -0.693000;0.287000;-0.250000;, + -0.530000;0.530000;-0.250000;, + -0.324000;0.781000;-0.231000;, + -0.287000;0.693000;-0.250000;, + -0.598000;0.598000;-0.231000;, + -0.324000;0.781000;-0.231000;, + -0.530000;0.530000;-0.250000;, + -0.287000;0.693000;-0.250000;, + 0.000000;0.846000;-0.231000;, + 0.000000;0.750000;-0.250000;, + -0.324000;0.781000;-0.231000;, + 0.000000;0.846000;-0.231000;, + -0.287000;0.693000;-0.250000;, + 0.000000;0.750000;-0.250000;, + 0.324000;0.781000;-0.231000;, + 0.287000;0.693000;-0.250000;, + 0.000000;0.846000;-0.231000;, + 0.324000;0.781000;-0.231000;, + 0.000000;0.750000;-0.250000;, + 0.324000;0.781000;-0.231000;, + 0.598000;0.598000;-0.231000;, + 0.530000;0.530000;-0.250000;, + 0.287000;0.693000;-0.250000;, + 0.324000;0.781000;-0.231000;, + 0.530000;0.530000;-0.250000;, + 0.598000;0.598000;-0.231000;, + 0.781000;0.324000;-0.231000;, + 0.693000;0.287000;-0.250000;, + 0.530000;0.530000;-0.250000;, + 0.598000;0.598000;-0.231000;, + 0.693000;0.287000;-0.250000;, + 0.750000;0.000000;-0.250000;, + 0.781000;0.324000;-0.231000;, + 0.846000;0.000000;-0.231000;, + 0.693000;0.287000;-0.250000;, + 0.781000;0.324000;-0.231000;, + 0.750000;0.000000;-0.250000;; + + 256; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;; + + MeshMaterialList { + 1; + 256; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;; + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 256; + -0.195473;0.038313;0.979960;, + -0.194006;0.038531;0.980243;, + -0.166699;0.111133;0.979725;, + -0.165052;0.110714;0.980051;, + -0.110186;0.165278;0.980073;, + -0.111546;0.166293;0.979747;, + -0.038026;0.194010;0.980262;, + -0.038784;0.195280;0.979980;, + 0.038313;0.195473;0.979960;, + 0.038531;0.194006;0.980243;, + 0.111546;0.166293;0.979747;, + 0.110186;0.165278;0.980073;, + 0.165052;0.110714;0.980051;, + 0.166699;0.111133;0.979725;, + 0.194006;0.038531;0.980243;, + 0.195473;0.038313;0.979960;, + -0.551035;0.108194;0.827438;, + -0.551451;0.108084;0.827176;, + -0.462404;0.310755;0.830430;, + -0.467115;0.311410;0.827543;, + -0.313302;0.466193;0.827349;, + -0.309193;0.463789;0.830240;, + -0.108274;0.551439;0.827159;, + -0.108015;0.551097;0.827421;, + 0.108194;0.551035;0.827438;, + 0.108084;0.551451;0.827176;, + 0.309193;0.463789;0.830240;, + 0.313302;0.466193;0.827349;, + 0.467115;0.311410;0.827543;, + 0.462404;0.310755;0.830430;, + 0.551451;0.108084;0.827176;, + 0.551035;0.108194;0.827438;, + -0.821204;0.160939;0.547469;, + -0.821497;0.161299;0.546924;, + -0.695708;0.467946;0.544992;, + -0.695561;0.467447;0.545608;, + -0.467659;0.695876;0.545024;, + -0.467712;0.695359;0.545638;, + -0.161233;0.821164;0.547443;, + -0.161011;0.821570;0.546898;, + 0.161299;0.821497;0.546924;, + 0.160939;0.821204;0.547469;, + 0.467447;0.695561;0.545608;, + 0.467946;0.695708;0.544992;, + 0.695876;0.467659;0.545024;, + 0.695359;0.467712;0.545638;, + 0.821164;0.161233;0.547443;, + 0.821570;0.161011;0.546898;, + -0.962806;0.191553;0.190555;, + -0.962270;0.188586;0.196141;, + -0.817064;0.541367;0.198313;, + -0.815486;0.548512;0.184708;, + -0.547056;0.813322;0.198086;, + -0.542859;0.819315;0.184461;, + -0.188793;0.963331;0.190659;, + -0.191333;0.961703;0.196263;, + 0.188586;0.962270;0.196141;, + 0.191553;0.962806;0.190555;, + 0.548512;0.815486;0.184708;, + 0.541367;0.817064;0.198313;, + 0.813322;0.547056;0.198086;, + 0.819315;0.542859;0.184461;, + 0.963331;0.188793;0.190659;, + 0.961703;0.191333;0.196263;, + -0.962806;0.191553;-0.190555;, + -0.962270;0.188586;-0.196141;, + -0.817064;0.541367;-0.198313;, + -0.815486;0.548512;-0.184708;, + -0.541367;0.817064;-0.198313;, + -0.548512;0.815486;-0.184708;, + -0.191553;0.962806;-0.190555;, + -0.188586;0.962270;-0.196141;, + 0.191333;0.961703;-0.196263;, + 0.188793;0.963331;-0.190659;, + 0.542859;0.819315;-0.184461;, + 0.547056;0.813322;-0.198086;, + 0.817064;0.541367;-0.198313;, + 0.815486;0.548512;-0.184708;, + 0.962806;0.191553;-0.190555;, + 0.962270;0.188586;-0.196141;, + -0.821204;0.160939;-0.547469;, + -0.821497;0.161299;-0.546924;, + -0.695708;0.467946;-0.544992;, + -0.695561;0.467447;-0.545608;, + -0.467946;0.695708;-0.544992;, + -0.467447;0.695561;-0.545608;, + -0.160939;0.821204;-0.547469;, + -0.161299;0.821497;-0.546924;, + 0.161011;0.821570;-0.546898;, + 0.161233;0.821164;-0.547443;, + 0.467712;0.695359;-0.545638;, + 0.467659;0.695876;-0.545024;, + 0.695708;0.467946;-0.544992;, + 0.695561;0.467447;-0.545608;, + 0.821204;0.160939;-0.547469;, + 0.821497;0.161299;-0.546924;, + -0.551439;0.108274;-0.827159;, + -0.551097;0.108015;-0.827421;, + -0.466193;0.313302;-0.827349;, + -0.463789;0.309193;-0.830240;, + -0.310755;0.462404;-0.830430;, + -0.311410;0.467115;-0.827543;, + -0.108194;0.551035;-0.827438;, + -0.108084;0.551451;-0.827176;, + 0.108194;0.551035;-0.827438;, + 0.108084;0.551451;-0.827176;, + 0.310755;0.462404;-0.830430;, + 0.311410;0.467115;-0.827543;, + 0.466193;0.313302;-0.827349;, + 0.463789;0.309193;-0.830240;, + 0.551439;0.108274;-0.827159;, + 0.551097;0.108015;-0.827421;, + -0.194010;0.038026;-0.980262;, + -0.195280;0.038784;-0.979980;, + -0.165278;0.110186;-0.980073;, + -0.166293;0.111546;-0.979747;, + -0.111133;0.166699;-0.979725;, + -0.110714;0.165052;-0.980051;, + -0.038313;0.195473;-0.979960;, + -0.038531;0.194006;-0.980243;, + 0.038313;0.195473;-0.979960;, + 0.038531;0.194006;-0.980243;, + 0.111133;0.166699;-0.979725;, + 0.110714;0.165052;-0.980051;, + 0.165278;0.110186;-0.980073;, + 0.166293;0.111546;-0.979747;, + 0.194010;0.038026;-0.980262;, + 0.195280;0.038784;-0.979980;, + 0.194006;-0.038531;-0.980243;, + 0.195131;-0.039147;-0.979996;, + 0.165052;-0.110714;-0.980051;, + 0.164225;-0.109683;-0.980306;, + 0.109970;-0.163943;-0.980321;, + 0.110342;-0.165211;-0.980066;, + 0.038784;-0.195280;-0.979980;, + 0.038920;-0.194003;-0.980229;, + -0.038784;-0.195280;-0.979980;, + -0.038920;-0.194003;-0.980229;, + -0.109970;-0.163943;-0.980321;, + -0.110342;-0.165211;-0.980066;, + -0.165052;-0.110714;-0.980051;, + -0.164225;-0.109683;-0.980306;, + -0.194006;-0.038531;-0.980243;, + -0.195131;-0.039147;-0.979996;, + 0.551297;-0.110600;-0.826946;, + 0.550388;-0.110078;-0.827621;, + 0.466906;-0.311839;-0.827499;, + 0.468484;-0.313884;-0.825833;, + 0.313261;-0.469035;-0.825756;, + 0.312584;-0.466543;-0.827423;, + 0.110395;-0.550279;-0.827651;, + 0.110264;-0.551318;-0.826977;, + -0.110395;-0.550279;-0.827651;, + -0.110264;-0.551318;-0.826977;, + -0.313261;-0.469035;-0.825756;, + -0.312584;-0.466543;-0.827423;, + -0.466906;-0.311839;-0.827499;, + -0.468484;-0.313884;-0.825833;, + -0.551297;-0.110600;-0.826946;, + -0.550388;-0.110078;-0.827621;, + 0.820763;-0.164153;-0.547176;, + 0.820763;-0.164153;-0.547176;, + 0.698054;-0.463910;-0.545443;, + 0.690817;-0.462847;-0.555468;, + 0.466636;-0.696472;-0.545140;, + 0.460358;-0.692708;-0.555181;, + 0.164153;-0.820763;-0.547176;, + 0.164153;-0.820763;-0.547176;, + -0.164153;-0.820763;-0.547176;, + -0.164153;-0.820763;-0.547176;, + -0.460358;-0.692708;-0.555181;, + -0.466636;-0.696472;-0.545140;, + -0.696472;-0.466636;-0.545140;, + -0.692708;-0.460358;-0.555181;, + -0.820763;-0.164153;-0.547176;, + -0.820763;-0.164153;-0.547176;, + 0.962899;-0.191071;-0.190574;, + 0.961501;-0.192300;-0.196307;, + 0.814390;-0.545440;-0.198151;, + 0.818553;-0.543991;-0.184511;, + 0.542507;-0.816319;-0.198269;, + 0.546906;-0.816579;-0.184639;, + 0.192524;-0.962620;-0.190518;, + 0.190854;-0.961802;-0.196242;, + -0.190854;-0.961802;-0.196242;, + -0.192524;-0.962620;-0.190518;, + -0.546906;-0.816579;-0.184639;, + -0.542507;-0.816319;-0.198269;, + -0.816319;-0.542507;-0.198269;, + -0.816579;-0.546906;-0.184639;, + -0.962620;-0.192524;-0.190518;, + -0.961802;-0.190854;-0.196242;, + 0.962620;-0.192524;0.190518;, + 0.961802;-0.190854;0.196242;, + 0.816319;-0.542507;0.198269;, + 0.816579;-0.546906;0.184639;, + 0.542507;-0.816319;0.198269;, + 0.546906;-0.816579;0.184639;, + 0.192524;-0.962620;0.190518;, + 0.190854;-0.961802;0.196242;, + -0.192300;-0.961501;0.196307;, + -0.191071;-0.962899;0.190574;, + -0.546906;-0.816579;0.184639;, + -0.542507;-0.816319;0.198269;, + -0.816319;-0.542507;0.198269;, + -0.816579;-0.546906;0.184639;, + -0.962620;-0.192524;0.190518;, + -0.961802;-0.190854;0.196242;, + 0.820763;-0.164153;0.547176;, + 0.820763;-0.164153;0.547176;, + 0.696472;-0.466636;0.545140;, + 0.692708;-0.460358;0.555181;, + 0.466636;-0.696472;0.545140;, + 0.460358;-0.692708;0.555181;, + 0.164153;-0.820763;0.547176;, + 0.164153;-0.820763;0.547176;, + -0.164153;-0.820763;0.547176;, + -0.164153;-0.820763;0.547176;, + -0.460358;-0.692708;0.555181;, + -0.466636;-0.696472;0.545140;, + -0.696472;-0.466636;0.545140;, + -0.692708;-0.460358;0.555181;, + -0.820763;-0.164153;0.547176;, + -0.820763;-0.164153;0.547176;, + 0.550279;-0.110395;0.827651;, + 0.551318;-0.110264;0.826977;, + 0.469035;-0.313261;0.825756;, + 0.466543;-0.312584;0.827423;, + 0.311839;-0.466906;0.827499;, + 0.313884;-0.468484;0.825833;, + 0.110600;-0.551297;0.826946;, + 0.110078;-0.550388;0.827621;, + -0.110395;-0.550279;0.827651;, + -0.110264;-0.551318;0.826977;, + -0.313884;-0.468484;0.825833;, + -0.311839;-0.466906;0.827499;, + -0.466543;-0.312584;0.827423;, + -0.469035;-0.313261;0.825756;, + -0.551318;-0.110264;0.826977;, + -0.550279;-0.110395;0.827651;, + 0.195280;-0.038784;0.979980;, + 0.194003;-0.038920;0.980229;, + 0.163943;-0.109970;0.980321;, + 0.165211;-0.110342;0.980066;, + 0.110714;-0.165052;0.980051;, + 0.109683;-0.164225;0.980306;, + 0.038531;-0.194006;0.980243;, + 0.039147;-0.195131;0.979996;, + -0.038784;-0.195280;0.979980;, + -0.038920;-0.194003;0.980229;, + -0.109683;-0.164225;0.980306;, + -0.110714;-0.165052;0.980051;, + -0.165211;-0.110342;0.980066;, + -0.163943;-0.109970;0.980321;, + -0.194003;-0.038920;0.980229;, + -0.195280;-0.038784;0.979980;; + + 256; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;; + } # MeshNormals + MeshTextureCoords { + 768; + 0.846500;0.856500;, + 0.802500;0.875000;, + 0.827000;1.000000;, + 0.875000;1.000000;, + 0.846500;0.856500;, + 0.827000;1.000000;, + 0.802500;0.875000;, + 0.765000;0.735000;, + 0.731500;0.768500;, + 0.846500;0.856500;, + 0.765000;0.735000;, + 0.802500;0.875000;, + 0.731500;0.768500;, + 0.643500;0.653500;, + 0.625000;0.697500;, + 0.765000;0.735000;, + 0.643500;0.653500;, + 0.731500;0.768500;, + 0.625000;0.697500;, + 0.500000;0.625000;, + 0.500000;0.673000;, + 0.643500;0.653500;, + 0.500000;0.625000;, + 0.625000;0.697500;, + 0.500000;0.673000;, + 0.356500;0.653500;, + 0.375000;0.697500;, + 0.500000;0.625000;, + 0.356500;0.653500;, + 0.500000;0.673000;, + 0.356500;0.653500;, + 0.235000;0.735000;, + 0.268500;0.768500;, + 0.375000;0.697500;, + 0.356500;0.653500;, + 0.268500;0.768500;, + 0.235000;0.735000;, + 0.153500;0.856500;, + 0.197500;0.875000;, + 0.268500;0.768500;, + 0.235000;0.735000;, + 0.197500;0.875000;, + 0.173000;1.000000;, + 0.153500;0.856500;, + 0.125000;1.000000;, + 0.197500;0.875000;, + 0.153500;0.856500;, + 0.173000;1.000000;, + 0.802500;0.875000;, + 0.765000;0.890500;, + 0.786500;1.000000;, + 0.827000;1.000000;, + 0.802500;0.875000;, + 0.786500;1.000000;, + 0.765000;0.890500;, + 0.731500;0.768500;, + 0.702500;0.797500;, + 0.802500;0.875000;, + 0.731500;0.768500;, + 0.765000;0.890500;, + 0.702500;0.797500;, + 0.625000;0.697500;, + 0.609500;0.735000;, + 0.731500;0.768500;, + 0.625000;0.697500;, + 0.702500;0.797500;, + 0.609500;0.735000;, + 0.500000;0.673000;, + 0.500000;0.713500;, + 0.625000;0.697500;, + 0.500000;0.673000;, + 0.609500;0.735000;, + 0.500000;0.713500;, + 0.375000;0.697500;, + 0.390500;0.735000;, + 0.500000;0.673000;, + 0.375000;0.697500;, + 0.500000;0.713500;, + 0.375000;0.697500;, + 0.268500;0.768500;, + 0.297500;0.797500;, + 0.390500;0.735000;, + 0.375000;0.697500;, + 0.297500;0.797500;, + 0.268500;0.768500;, + 0.197500;0.875000;, + 0.235000;0.890500;, + 0.297500;0.797500;, + 0.268500;0.768500;, + 0.235000;0.890500;, + 0.213500;1.000000;, + 0.197500;0.875000;, + 0.173000;1.000000;, + 0.235000;0.890500;, + 0.197500;0.875000;, + 0.213500;1.000000;, + 0.740000;0.900500;, + 0.759500;1.000000;, + 0.786500;1.000000;, + 0.765000;0.890500;, + 0.740000;0.900500;, + 0.786500;1.000000;, + 0.683500;0.816500;, + 0.740000;0.900500;, + 0.765000;0.890500;, + 0.702500;0.797500;, + 0.683500;0.816500;, + 0.765000;0.890500;, + 0.599500;0.760000;, + 0.702500;0.797500;, + 0.609500;0.735000;, + 0.683500;0.816500;, + 0.702500;0.797500;, + 0.599500;0.760000;, + 0.500000;0.740500;, + 0.609500;0.735000;, + 0.500000;0.713500;, + 0.599500;0.760000;, + 0.609500;0.735000;, + 0.500000;0.740500;, + 0.400500;0.760000;, + 0.500000;0.713500;, + 0.390500;0.735000;, + 0.500000;0.740500;, + 0.500000;0.713500;, + 0.400500;0.760000;, + 0.316500;0.816500;, + 0.390500;0.735000;, + 0.297500;0.797500;, + 0.400500;0.760000;, + 0.390500;0.735000;, + 0.316500;0.816500;, + 0.260000;0.900500;, + 0.297500;0.797500;, + 0.235000;0.890500;, + 0.316500;0.816500;, + 0.297500;0.797500;, + 0.260000;0.900500;, + 0.240500;1.000000;, + 0.235000;0.890500;, + 0.213500;1.000000;, + 0.260000;0.900500;, + 0.235000;0.890500;, + 0.240500;1.000000;, + 0.731000;0.904500;, + 0.750000;1.000000;, + 0.759500;1.000000;, + 0.740000;0.900500;, + 0.731000;0.904500;, + 0.759500;1.000000;, + 0.677000;0.823000;, + 0.731000;0.904500;, + 0.740000;0.900500;, + 0.683500;0.816500;, + 0.677000;0.823000;, + 0.740000;0.900500;, + 0.595500;0.769000;, + 0.683500;0.816500;, + 0.599500;0.760000;, + 0.677000;0.823000;, + 0.683500;0.816500;, + 0.595500;0.769000;, + 0.500000;0.750000;, + 0.599500;0.760000;, + 0.500000;0.740500;, + 0.595500;0.769000;, + 0.599500;0.760000;, + 0.500000;0.750000;, + 0.404500;0.769000;, + 0.500000;0.740500;, + 0.400500;0.760000;, + 0.500000;0.750000;, + 0.500000;0.740500;, + 0.404500;0.769000;, + 0.323000;0.823000;, + 0.400500;0.760000;, + 0.316500;0.816500;, + 0.404500;0.769000;, + 0.400500;0.760000;, + 0.323000;0.823000;, + 0.269000;0.904500;, + 0.316500;0.816500;, + 0.260000;0.900500;, + 0.323000;0.823000;, + 0.316500;0.816500;, + 0.269000;0.904500;, + 0.250000;1.000000;, + 0.260000;0.900500;, + 0.240500;1.000000;, + 0.269000;0.904500;, + 0.260000;0.900500;, + 0.250000;1.000000;, + 0.731000;0.904500;, + 0.759500;1.000000;, + 0.750000;1.000000;, + 0.740000;0.900500;, + 0.759500;1.000000;, + 0.731000;0.904500;, + 0.677000;0.823000;, + 0.740000;0.900500;, + 0.731000;0.904500;, + 0.683500;0.816500;, + 0.740000;0.900500;, + 0.677000;0.823000;, + 0.599500;0.760000;, + 0.677000;0.823000;, + 0.595500;0.769000;, + 0.683500;0.816500;, + 0.677000;0.823000;, + 0.599500;0.760000;, + 0.500000;0.740500;, + 0.595500;0.769000;, + 0.500000;0.750000;, + 0.599500;0.760000;, + 0.595500;0.769000;, + 0.500000;0.740500;, + 0.400500;0.760000;, + 0.500000;0.750000;, + 0.404500;0.769000;, + 0.500000;0.740500;, + 0.500000;0.750000;, + 0.400500;0.760000;, + 0.316500;0.816500;, + 0.404500;0.769000;, + 0.323000;0.823000;, + 0.400500;0.760000;, + 0.404500;0.769000;, + 0.316500;0.816500;, + 0.260000;0.900500;, + 0.323000;0.823000;, + 0.269000;0.904500;, + 0.316500;0.816500;, + 0.323000;0.823000;, + 0.260000;0.900500;, + 0.240500;1.000000;, + 0.269000;0.904500;, + 0.250000;1.000000;, + 0.260000;0.900500;, + 0.269000;0.904500;, + 0.240500;1.000000;, + 0.740000;0.900500;, + 0.786500;1.000000;, + 0.759500;1.000000;, + 0.765000;0.890500;, + 0.786500;1.000000;, + 0.740000;0.900500;, + 0.683500;0.816500;, + 0.765000;0.890500;, + 0.740000;0.900500;, + 0.702500;0.797500;, + 0.765000;0.890500;, + 0.683500;0.816500;, + 0.609500;0.735000;, + 0.683500;0.816500;, + 0.599500;0.760000;, + 0.702500;0.797500;, + 0.683500;0.816500;, + 0.609500;0.735000;, + 0.500000;0.713500;, + 0.599500;0.760000;, + 0.500000;0.740500;, + 0.609500;0.735000;, + 0.599500;0.760000;, + 0.500000;0.713500;, + 0.390500;0.735000;, + 0.500000;0.740500;, + 0.400500;0.760000;, + 0.500000;0.713500;, + 0.500000;0.740500;, + 0.390500;0.735000;, + 0.297500;0.797500;, + 0.400500;0.760000;, + 0.316500;0.816500;, + 0.390500;0.735000;, + 0.400500;0.760000;, + 0.297500;0.797500;, + 0.235000;0.890500;, + 0.316500;0.816500;, + 0.260000;0.900500;, + 0.297500;0.797500;, + 0.316500;0.816500;, + 0.235000;0.890500;, + 0.213500;1.000000;, + 0.260000;0.900500;, + 0.240500;1.000000;, + 0.235000;0.890500;, + 0.260000;0.900500;, + 0.213500;1.000000;, + 0.765000;0.890500;, + 0.827000;1.000000;, + 0.786500;1.000000;, + 0.802500;0.875000;, + 0.827000;1.000000;, + 0.765000;0.890500;, + 0.702500;0.797500;, + 0.802500;0.875000;, + 0.765000;0.890500;, + 0.731500;0.768500;, + 0.802500;0.875000;, + 0.702500;0.797500;, + 0.609500;0.735000;, + 0.731500;0.768500;, + 0.702500;0.797500;, + 0.625000;0.697500;, + 0.731500;0.768500;, + 0.609500;0.735000;, + 0.625000;0.697500;, + 0.609500;0.735000;, + 0.500000;0.713500;, + 0.500000;0.673000;, + 0.625000;0.697500;, + 0.500000;0.713500;, + 0.375000;0.697500;, + 0.500000;0.713500;, + 0.390500;0.735000;, + 0.500000;0.673000;, + 0.500000;0.713500;, + 0.375000;0.697500;, + 0.390500;0.735000;, + 0.297500;0.797500;, + 0.268500;0.768500;, + 0.375000;0.697500;, + 0.390500;0.735000;, + 0.268500;0.768500;, + 0.297500;0.797500;, + 0.235000;0.890500;, + 0.197500;0.875000;, + 0.268500;0.768500;, + 0.297500;0.797500;, + 0.197500;0.875000;, + 0.235000;0.890500;, + 0.213500;1.000000;, + 0.173000;1.000000;, + 0.197500;0.875000;, + 0.235000;0.890500;, + 0.173000;1.000000;, + 0.802500;0.875000;, + 0.875000;1.000000;, + 0.827000;1.000000;, + 0.846500;0.856500;, + 0.875000;1.000000;, + 0.802500;0.875000;, + 0.731500;0.768500;, + 0.846500;0.856500;, + 0.802500;0.875000;, + 0.765000;0.735000;, + 0.846500;0.856500;, + 0.731500;0.768500;, + 0.625000;0.697500;, + 0.765000;0.735000;, + 0.731500;0.768500;, + 0.643500;0.653500;, + 0.765000;0.735000;, + 0.625000;0.697500;, + 0.643500;0.653500;, + 0.625000;0.697500;, + 0.500000;0.673000;, + 0.500000;0.625000;, + 0.643500;0.653500;, + 0.500000;0.673000;, + 0.356500;0.653500;, + 0.500000;0.673000;, + 0.375000;0.697500;, + 0.500000;0.625000;, + 0.500000;0.673000;, + 0.356500;0.653500;, + 0.375000;0.697500;, + 0.268500;0.768500;, + 0.235000;0.735000;, + 0.356500;0.653500;, + 0.375000;0.697500;, + 0.235000;0.735000;, + 0.268500;0.768500;, + 0.197500;0.875000;, + 0.153500;0.856500;, + 0.235000;0.735000;, + 0.268500;0.768500;, + 0.153500;0.856500;, + 0.197500;0.875000;, + 0.173000;1.000000;, + 0.125000;1.000000;, + 0.153500;0.856500;, + 0.197500;0.875000;, + 0.125000;1.000000;, + 0.846500;0.856500;, + 0.923000;1.000000;, + 0.875000;1.000000;, + 0.890500;0.838000;, + 0.923000;1.000000;, + 0.846500;0.856500;, + 0.765000;0.735000;, + 0.890500;0.838000;, + 0.846500;0.856500;, + 0.799000;0.701000;, + 0.890500;0.838000;, + 0.765000;0.735000;, + 0.643500;0.653500;, + 0.799000;0.701000;, + 0.765000;0.735000;, + 0.662000;0.609500;, + 0.799000;0.701000;, + 0.643500;0.653500;, + 0.662000;0.609500;, + 0.643500;0.653500;, + 0.500000;0.625000;, + 0.500000;0.577000;, + 0.662000;0.609500;, + 0.500000;0.625000;, + 0.338000;0.609500;, + 0.500000;0.625000;, + 0.356500;0.653500;, + 0.500000;0.577000;, + 0.500000;0.625000;, + 0.338000;0.609500;, + 0.356500;0.653500;, + 0.235000;0.735000;, + 0.201000;0.701000;, + 0.338000;0.609500;, + 0.356500;0.653500;, + 0.201000;0.701000;, + 0.235000;0.735000;, + 0.153500;0.856500;, + 0.109500;0.838000;, + 0.201000;0.701000;, + 0.235000;0.735000;, + 0.109500;0.838000;, + 0.153500;0.856500;, + 0.125000;1.000000;, + 0.077000;1.000000;, + 0.109500;0.838000;, + 0.153500;0.856500;, + 0.077000;1.000000;, + 0.890500;0.838000;, + 0.963500;1.000000;, + 0.923000;1.000000;, + 0.928000;0.822500;, + 0.963500;1.000000;, + 0.890500;0.838000;, + 0.799000;0.701000;, + 0.928000;0.822500;, + 0.890500;0.838000;, + 0.827500;0.672500;, + 0.928000;0.822500;, + 0.799000;0.701000;, + 0.662000;0.609500;, + 0.827500;0.672500;, + 0.799000;0.701000;, + 0.677500;0.572000;, + 0.827500;0.672500;, + 0.662000;0.609500;, + 0.677500;0.572000;, + 0.662000;0.609500;, + 0.500000;0.577000;, + 0.500000;0.536500;, + 0.677500;0.572000;, + 0.500000;0.577000;, + 0.322500;0.572000;, + 0.500000;0.577000;, + 0.338000;0.609500;, + 0.500000;0.536500;, + 0.500000;0.577000;, + 0.322500;0.572000;, + 0.338000;0.609500;, + 0.201000;0.701000;, + 0.172500;0.672500;, + 0.322500;0.572000;, + 0.338000;0.609500;, + 0.172500;0.672500;, + 0.201000;0.701000;, + 0.109500;0.838000;, + 0.072000;0.822500;, + 0.172500;0.672500;, + 0.201000;0.701000;, + 0.072000;0.822500;, + 0.109500;0.838000;, + 0.077000;1.000000;, + 0.036500;1.000000;, + 0.072000;0.822500;, + 0.109500;0.838000;, + 0.036500;1.000000;, + 0.963500;1.000000;, + 0.953000;0.812500;, + 0.990500;1.000000;, + 0.928000;0.822500;, + 0.953000;0.812500;, + 0.963500;1.000000;, + 0.928000;0.822500;, + 0.847000;0.653000;, + 0.953000;0.812500;, + 0.827500;0.672500;, + 0.847000;0.653000;, + 0.928000;0.822500;, + 0.827500;0.672500;, + 0.677500;0.572000;, + 0.687500;0.547000;, + 0.847000;0.653000;, + 0.827500;0.672500;, + 0.687500;0.547000;, + 0.677500;0.572000;, + 0.500000;0.536500;, + 0.500000;0.509500;, + 0.687500;0.547000;, + 0.677500;0.572000;, + 0.500000;0.509500;, + 0.500000;0.509500;, + 0.322500;0.572000;, + 0.312500;0.547000;, + 0.500000;0.536500;, + 0.322500;0.572000;, + 0.500000;0.509500;, + 0.312500;0.547000;, + 0.172500;0.672500;, + 0.153000;0.653000;, + 0.322500;0.572000;, + 0.172500;0.672500;, + 0.312500;0.547000;, + 0.172500;0.672500;, + 0.072000;0.822500;, + 0.047000;0.812500;, + 0.153000;0.653000;, + 0.172500;0.672500;, + 0.047000;0.812500;, + 0.072000;0.822500;, + 0.036500;1.000000;, + 0.009500;1.000000;, + 0.047000;0.812500;, + 0.072000;0.822500;, + 0.009500;1.000000;, + 0.990500;1.000000;, + 0.962000;0.808500;, + 1.000000;1.000000;, + 0.953000;0.812500;, + 0.962000;0.808500;, + 0.990500;1.000000;, + 0.953000;0.812500;, + 0.853500;0.646500;, + 0.962000;0.808500;, + 0.847000;0.653000;, + 0.853500;0.646500;, + 0.953000;0.812500;, + 0.847000;0.653000;, + 0.687500;0.547000;, + 0.691500;0.538000;, + 0.853500;0.646500;, + 0.847000;0.653000;, + 0.691500;0.538000;, + 0.687500;0.547000;, + 0.500000;0.509500;, + 0.500000;0.500000;, + 0.691500;0.538000;, + 0.687500;0.547000;, + 0.500000;0.500000;, + 0.500000;0.500000;, + 0.312500;0.547000;, + 0.308500;0.538000;, + 0.500000;0.509500;, + 0.312500;0.547000;, + 0.500000;0.500000;, + 0.308500;0.538000;, + 0.153000;0.653000;, + 0.146500;0.646500;, + 0.312500;0.547000;, + 0.153000;0.653000;, + 0.308500;0.538000;, + 0.153000;0.653000;, + 0.047000;0.812500;, + 0.038000;0.808500;, + 0.146500;0.646500;, + 0.153000;0.653000;, + 0.038000;0.808500;, + 0.047000;0.812500;, + 0.009500;1.000000;, + 0.000000;1.000000;, + 0.038000;0.808500;, + 0.047000;0.812500;, + 0.000000;1.000000;, + 1.000000;1.000000;, + 0.953000;0.812500;, + 0.990500;1.000000;, + 0.962000;0.808500;, + 0.953000;0.812500;, + 1.000000;1.000000;, + 0.962000;0.808500;, + 0.847000;0.653000;, + 0.953000;0.812500;, + 0.853500;0.646500;, + 0.847000;0.653000;, + 0.962000;0.808500;, + 0.847000;0.653000;, + 0.691500;0.538000;, + 0.687500;0.547000;, + 0.853500;0.646500;, + 0.691500;0.538000;, + 0.847000;0.653000;, + 0.687500;0.547000;, + 0.500000;0.500000;, + 0.500000;0.509500;, + 0.691500;0.538000;, + 0.500000;0.500000;, + 0.687500;0.547000;, + 0.500000;0.509500;, + 0.308500;0.538000;, + 0.312500;0.547000;, + 0.500000;0.500000;, + 0.308500;0.538000;, + 0.500000;0.509500;, + 0.308500;0.538000;, + 0.146500;0.646500;, + 0.153000;0.653000;, + 0.312500;0.547000;, + 0.308500;0.538000;, + 0.153000;0.653000;, + 0.153000;0.653000;, + 0.038000;0.808500;, + 0.047000;0.812500;, + 0.146500;0.646500;, + 0.038000;0.808500;, + 0.153000;0.653000;, + 0.047000;0.812500;, + 0.000000;1.000000;, + 0.009500;1.000000;, + 0.038000;0.808500;, + 0.000000;1.000000;, + 0.047000;0.812500;, + 0.990500;1.000000;, + 0.928000;0.822500;, + 0.963500;1.000000;, + 0.953000;0.812500;, + 0.928000;0.822500;, + 0.990500;1.000000;, + 0.953000;0.812500;, + 0.827500;0.672500;, + 0.928000;0.822500;, + 0.847000;0.653000;, + 0.827500;0.672500;, + 0.953000;0.812500;, + 0.827500;0.672500;, + 0.687500;0.547000;, + 0.677500;0.572000;, + 0.847000;0.653000;, + 0.687500;0.547000;, + 0.827500;0.672500;, + 0.677500;0.572000;, + 0.500000;0.509500;, + 0.500000;0.536500;, + 0.687500;0.547000;, + 0.500000;0.509500;, + 0.677500;0.572000;, + 0.500000;0.536500;, + 0.312500;0.547000;, + 0.322500;0.572000;, + 0.500000;0.509500;, + 0.312500;0.547000;, + 0.500000;0.536500;, + 0.312500;0.547000;, + 0.153000;0.653000;, + 0.172500;0.672500;, + 0.322500;0.572000;, + 0.312500;0.547000;, + 0.172500;0.672500;, + 0.172500;0.672500;, + 0.047000;0.812500;, + 0.072000;0.822500;, + 0.153000;0.653000;, + 0.047000;0.812500;, + 0.172500;0.672500;, + 0.072000;0.822500;, + 0.009500;1.000000;, + 0.036500;1.000000;, + 0.047000;0.812500;, + 0.009500;1.000000;, + 0.072000;0.822500;, + 0.928000;0.822500;, + 0.890500;0.838000;, + 0.923000;1.000000;, + 0.963500;1.000000;, + 0.928000;0.822500;, + 0.923000;1.000000;, + 0.890500;0.838000;, + 0.827500;0.672500;, + 0.799000;0.701000;, + 0.928000;0.822500;, + 0.827500;0.672500;, + 0.890500;0.838000;, + 0.799000;0.701000;, + 0.677500;0.572000;, + 0.662000;0.609500;, + 0.827500;0.672500;, + 0.677500;0.572000;, + 0.799000;0.701000;, + 0.662000;0.609500;, + 0.500000;0.536500;, + 0.500000;0.577000;, + 0.677500;0.572000;, + 0.500000;0.536500;, + 0.662000;0.609500;, + 0.500000;0.577000;, + 0.322500;0.572000;, + 0.338000;0.609500;, + 0.500000;0.536500;, + 0.322500;0.572000;, + 0.500000;0.577000;, + 0.322500;0.572000;, + 0.172500;0.672500;, + 0.201000;0.701000;, + 0.338000;0.609500;, + 0.322500;0.572000;, + 0.201000;0.701000;, + 0.172500;0.672500;, + 0.072000;0.822500;, + 0.109500;0.838000;, + 0.201000;0.701000;, + 0.172500;0.672500;, + 0.109500;0.838000;, + 0.077000;1.000000;, + 0.072000;0.822500;, + 0.036500;1.000000;, + 0.109500;0.838000;, + 0.072000;0.822500;, + 0.077000;1.000000;, + 0.890500;0.838000;, + 0.846500;0.856500;, + 0.875000;1.000000;, + 0.923000;1.000000;, + 0.890500;0.838000;, + 0.875000;1.000000;, + 0.846500;0.856500;, + 0.799000;0.701000;, + 0.765000;0.735000;, + 0.890500;0.838000;, + 0.799000;0.701000;, + 0.846500;0.856500;, + 0.765000;0.735000;, + 0.662000;0.609500;, + 0.643500;0.653500;, + 0.799000;0.701000;, + 0.662000;0.609500;, + 0.765000;0.735000;, + 0.643500;0.653500;, + 0.500000;0.577000;, + 0.500000;0.625000;, + 0.662000;0.609500;, + 0.500000;0.577000;, + 0.643500;0.653500;, + 0.500000;0.625000;, + 0.338000;0.609500;, + 0.356500;0.653500;, + 0.500000;0.577000;, + 0.338000;0.609500;, + 0.500000;0.625000;, + 0.338000;0.609500;, + 0.201000;0.701000;, + 0.235000;0.735000;, + 0.356500;0.653500;, + 0.338000;0.609500;, + 0.235000;0.735000;, + 0.201000;0.701000;, + 0.109500;0.838000;, + 0.153500;0.856500;, + 0.235000;0.735000;, + 0.201000;0.701000;, + 0.153500;0.856500;, + 0.125000;1.000000;, + 0.109500;0.838000;, + 0.077000;1.000000;, + 0.153500;0.856500;, + 0.109500;0.838000;, + 0.125000;1.000000;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/KITE.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/KITE.X new file mode 100644 index 0000000..65b231c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/KITE.X @@ -0,0 +1,989 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 222; + 0.413087;4.474685;-15.790100;, + 0.413706;-0.318745;-18.416378;, + 0.961971;4.160919;-18.284191;, + 0.411795;-0.318498;-18.416830;, + 0.411175;4.474933;-15.790552;, + 0.960059;4.161167;-18.284643;, + 0.410374;5.514184;-15.221317;, + -0.668315;-1.529466;-18.995529;, + -0.229985;0.062733;-18.161251;, + -0.229985;0.062733;-18.161251;, + -0.668315;-1.529466;-18.995529;, + 0.410374;5.514184;-15.221317;, + 0.410374;5.514184;-15.221317;, + -1.866417;0.950154;-17.536638;, + -1.653061;0.970478;-17.544977;, + -1.653061;0.970478;-17.544977;, + -1.866417;0.950154;-17.536638;, + 0.410374;5.514184;-15.221317;, + -0.989757;0.751074;-17.720007;, + 0.410374;5.514184;-15.221317;, + -1.653061;0.970478;-17.544977;, + 0.410374;5.514184;-15.221317;, + -0.989757;0.751074;-17.720007;, + -1.653061;0.970478;-17.544977;, + 5.186303;-1.383877;-15.062380;, + 0.395956;5.277723;-15.282420;, + 5.253173;-1.388002;-15.050552;, + 5.253173;-1.388002;-15.050552;, + 0.395956;5.277723;-15.282420;, + 0.381280;5.240342;-15.240785;, + 5.253173;-1.388002;-15.050552;, + 0.381280;5.240342;-15.240785;, + 5.264679;-1.327710;-15.079899;, + 5.264679;-1.327710;-15.079899;, + 0.381280;5.240342;-15.240785;, + 0.371884;5.263135;-15.188557;, + 5.264679;-1.327710;-15.079899;, + 0.371884;5.263135;-15.188557;, + 5.214083;-1.238323;-15.133225;, + 5.214083;-1.238323;-15.133225;, + 0.371884;5.263135;-15.188557;, + 0.373274;5.332749;-15.156332;, + 5.214083;-1.238323;-15.133225;, + 0.373274;5.332749;-15.156332;, + 5.131021;-1.172201;-15.179296;, + 5.131021;-1.172201;-15.179296;, + 0.373274;5.332749;-15.156332;, + 0.384634;5.408404;-15.162988;, + 5.131021;-1.172201;-15.179296;, + 0.384634;5.408404;-15.162988;, + 5.064150;-1.168077;-15.191123;, + 5.064150;-1.168077;-15.191123;, + 0.384634;5.408404;-15.162988;, + 0.399310;5.445783;-15.204624;, + 5.064150;-1.168077;-15.191123;, + 0.399310;5.445783;-15.204624;, + 5.052643;-1.228368;-15.161777;, + -2.105850;2.881259;-16.372505;, + 2.525613;2.166275;-15.266047;, + 2.476461;2.214705;-15.312257;, + -2.105850;2.881259;-16.372505;, + 2.476461;2.214705;-15.312257;, + -2.163011;2.902881;-16.334044;, + -2.243697;2.886963;-16.305172;, + -2.163011;2.902881;-16.334044;, + 2.456102;2.270376;-15.311906;, + -2.300642;2.842829;-16.302803;, + -2.243697;2.886963;-16.305172;, + 2.476461;2.300675;-15.265202;, + -2.300642;2.842829;-16.302803;, + 2.476461;2.300675;-15.265202;, + 2.525613;2.287854;-15.199502;, + 2.476461;2.300675;-15.265202;, + -2.243697;2.886963;-16.305172;, + 2.456102;2.270376;-15.311906;, + 2.456102;2.270376;-15.311906;, + -2.163011;2.902881;-16.334044;, + 2.476461;2.214705;-15.312257;, + 0.408711;5.422990;-15.256850;, + 5.103240;-1.317755;-15.108450;, + 5.052643;-1.228368;-15.161777;, + 0.408711;5.422990;-15.256850;, + 5.052643;-1.228368;-15.161777;, + 0.399310;5.445783;-15.204624;, + 0.406771;5.353448;-15.289205;, + -5.252927;0.104797;-17.597483;, + -5.341737;0.033443;-17.577105;, + 0.406771;5.353448;-15.289205;, + -5.341737;0.033443;-17.577105;, + 0.395956;5.277723;-15.282420;, + 0.395956;5.277723;-15.282420;, + -5.341737;0.033443;-17.577105;, + -5.449810;-0.007953;-17.576208;, + 0.395956;5.277723;-15.282420;, + -5.449810;-0.007953;-17.576208;, + 0.381280;5.240342;-15.240785;, + 0.381280;5.240342;-15.240785;, + -5.449810;-0.007953;-17.576208;, + -5.513836;0.004856;-17.595318;, + 0.381280;5.240342;-15.240785;, + -5.513836;0.004856;-17.595318;, + 0.371884;5.263135;-15.188557;, + 0.371884;5.263135;-15.188557;, + -5.513836;0.004856;-17.595318;, + -5.496308;0.064369;-17.623241;, + -5.496308;0.064369;-17.623241;, + -5.407497;0.135722;-17.643620;, + 0.373273;5.332748;-15.156331;, + 0.371884;5.263135;-15.188557;, + -5.496308;0.064369;-17.623241;, + 0.373273;5.332748;-15.156331;, + 5.186303;-1.383877;-15.062380;, + 5.103240;-1.317755;-15.108450;, + 0.407862;5.353307;-15.288947;, + 5.186303;-1.383877;-15.062380;, + 0.407862;5.353307;-15.288947;, + 0.395956;5.277723;-15.282420;, + -5.252927;0.104797;-17.597483;, + 0.406771;5.353448;-15.289205;, + 0.408700;5.422991;-15.256851;, + -5.252927;0.104797;-17.597483;, + 0.408700;5.422991;-15.256851;, + -5.235399;0.164309;-17.625406;, + -5.235399;0.164309;-17.625406;, + 0.408700;5.422991;-15.256851;, + 0.399310;5.445783;-15.204623;, + -5.299425;0.177118;-17.644516;, + 0.399310;5.445783;-15.204623;, + 0.384633;5.408403;-15.162987;, + -5.235399;0.164309;-17.625406;, + 0.399310;5.445783;-15.204623;, + -5.299425;0.177118;-17.644516;, + 2.574763;2.153453;-15.200349;, + -2.162641;2.790629;-16.395657;, + 2.595120;2.183753;-15.153644;, + 2.595120;2.183753;-15.153644;, + -2.162641;2.790629;-16.395657;, + -2.243326;2.774711;-16.366785;, + 2.595120;2.183753;-15.153644;, + -2.243326;2.774711;-16.366785;, + 2.574763;2.239423;-15.153294;, + -2.300488;2.796333;-16.328323;, + 2.525613;2.287854;-15.199502;, + 2.574763;2.239423;-15.153294;, + -2.300488;2.796333;-16.328323;, + 2.574763;2.239423;-15.153294;, + -2.243326;2.774711;-16.366785;, + 2.525613;2.287854;-15.199502;, + -2.300488;2.796333;-16.328323;, + -2.300642;2.842829;-16.302803;, + 2.525613;2.166275;-15.266047;, + -2.105850;2.881259;-16.372505;, + -2.105695;2.834763;-16.398027;, + -2.105695;2.834763;-16.398027;, + 2.574763;2.153453;-15.200349;, + 2.525613;2.166275;-15.266047;, + 2.574763;2.153453;-15.200349;, + -2.105695;2.834763;-16.398027;, + -2.162641;2.790629;-16.395657;, + -5.299425;0.177118;-17.644516;, + 0.384633;5.408403;-15.162987;, + -5.407497;0.135722;-17.643620;, + -5.407497;0.135722;-17.643620;, + 0.384633;5.408403;-15.162987;, + 0.373273;5.332748;-15.156331;, + 0.407862;5.353307;-15.288947;, + 5.103240;-1.317755;-15.108450;, + 0.408711;5.422990;-15.256850;, + -1.866417;0.950154;-17.536638;, + 0.410374;5.514184;-15.221317;, + -5.811385;-0.148908;-17.803377;, + 0.410374;5.514184;-15.221317;, + -1.866417;0.950154;-17.536638;, + -5.811385;-0.148908;-17.803377;, + 0.410374;5.514184;-15.221317;, + -0.989757;0.751074;-17.720007;, + -0.668315;-1.529466;-18.995529;, + -0.989757;0.751074;-17.720007;, + 0.410374;5.514184;-15.221317;, + -0.668315;-1.529466;-18.995529;, + 0.410374;5.514184;-15.221317;, + 2.081203;0.453431;-16.686710;, + 2.259637;0.418805;-16.565859;, + 2.259637;0.418805;-16.565859;, + 2.081203;0.453431;-16.686710;, + 0.410374;5.514184;-15.221317;, + 0.410374;5.514184;-15.221317;, + 2.081203;0.453431;-16.686710;, + 1.546522;0.435100;-17.113924;, + 2.081203;0.453431;-16.686710;, + 0.410374;5.514184;-15.221317;, + 1.546522;0.435100;-17.113924;, + 0.410374;5.514184;-15.221317;, + 0.930103;-0.101878;-17.889297;, + 0.398288;-4.098679;-20.492300;, + 0.930103;-0.101878;-17.889297;, + 0.410374;5.514184;-15.221317;, + 0.398288;-4.098679;-20.492300;, + 0.410374;5.514184;-15.221317;, + 0.930103;-0.101878;-17.889297;, + 1.268530;-1.765484;-18.535530;, + 0.410374;5.514184;-15.221317;, + 1.268530;-1.765484;-18.535530;, + 1.546522;0.435100;-17.113924;, + 0.410374;5.514184;-15.221317;, + 2.259637;0.418805;-16.565859;, + 5.535126;-1.604606;-15.115009;, + 0.930103;-0.101878;-17.889297;, + 0.410374;5.514184;-15.221317;, + 1.268530;-1.765484;-18.535530;, + 1.268530;-1.765484;-18.535530;, + 0.410374;5.514184;-15.221317;, + 1.546522;0.435100;-17.113924;, + 2.259637;0.418805;-16.565859;, + 0.410374;5.514184;-15.221317;, + 5.535126;-1.604606;-15.115009;, + 0.410374;5.514184;-15.221317;, + -0.229985;0.062733;-18.161251;, + 0.398288;-4.098679;-20.492300;, + 0.398288;-4.098679;-20.492300;, + -0.229985;0.062733;-18.161251;, + 0.410374;5.514184;-15.221317;; + + 74; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;; + + MeshMaterialList { + 15; + 74; + 0;, + 0;, + 1;, + 1;, + 2;, + 2;, + 3;, + 3;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 5;, + 5;, + 6;, + 6;, + 7;, + 7;, + 8;, + 8;, + 9;, + 9;, + 10;, + 10;, + 11;, + 12;, + 12;, + 13;, + 14;, + 14;; + Material { + 0.000000;0.039216;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.749020;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 0.000000;0.000000;0.207843;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.886275;0.698039;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 0.000000;0.545098;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.749020;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 0.000000;0.000000;0.207843;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.043137;0.007843;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.749020;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 0.000000;0.039216;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.749020;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 0.000000;0.039216;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 1.000000;0.043137;0.007843;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 74; + -0.965566;0.124909;-0.228210;, + 0.965566;-0.124909;0.228210;, + -0.084694;0.480651;-0.872813;, + 0.084694;-0.480651;0.872812;, + -0.080048;0.482432;-0.872268;, + 0.080048;-0.482432;0.872268;, + -0.072004;0.479861;-0.874385;, + 0.072004;-0.479861;0.874385;, + -0.179124;-0.096467;0.979086;, + -0.612581;-0.468522;-0.636578;, + 0.418316;0.331733;0.845556;, + -0.798577;-0.590950;0.114252;, + 0.778273;0.581660;0.236565;, + -0.489941;-0.358138;0.794792;, + 0.689996;0.506491;-0.517081;, + 0.102977;0.071815;0.992088;, + 0.180541;0.132634;-0.974584;, + 0.635580;0.449564;0.627639;, + -0.450770;-0.319635;-0.833450;, + 0.082730;-0.642724;-0.761617;, + 0.194754;0.949878;-0.244546;, + 0.007989;0.866084;0.499834;, + -0.174099;0.275384;0.945438;, + 0.083877;0.987954;0.130044;, + 0.227197;0.768791;-0.597781;, + 0.226810;0.089060;-0.969859;, + -0.804903;-0.564589;-0.182674;, + 0.816398;0.568557;-0.101179;, + 0.639791;-0.754416;0.146709;, + 0.479516;-0.146011;-0.865301;, + 0.233413;-0.592679;0.770876;, + 0.701314;-0.635359;-0.323229;, + -0.301029;-0.088076;0.949539;, + 0.502999;-0.755310;0.420117;, + -0.659551;0.469630;0.586890;, + -0.637773;0.762266;-0.110439;, + -0.004418;-0.420016;0.907506;, + -0.682821;-0.465360;0.563201;, + -0.060537;-0.076406;-0.995237;, + -0.021952;0.422216;-0.906230;, + 0.674842;-0.466901;-0.571482;, + -0.518839;0.745391;-0.418567;, + -0.713549;0.627420;0.311756;, + 0.304276;0.109120;-0.946313;, + -0.253701;-0.757249;0.601839;, + 0.008382;-0.885407;-0.464740;, + -0.253338;-0.098689;0.962330;, + -0.115691;0.621700;0.774664;, + -0.173946;-0.946066;0.273317;, + -0.247751;-0.466778;0.848963;, + 0.272951;0.463614;-0.842947;, + -0.116794;-0.987552;-0.105355;, + 0.194912;-0.301630;-0.933289;, + -0.243146;0.618604;-0.747134;, + -0.501653;0.150272;0.851917;, + 0.527276;0.350172;-0.774183;, + -0.074808;0.480574;-0.873758;, + 0.074808;-0.480574;0.873758;, + -0.069828;0.479436;-0.874794;, + 0.069828;-0.479436;0.874794;, + 0.566348;0.396237;-0.722666;, + -0.566348;-0.396237;0.722666;, + -0.564837;-0.396102;0.723921;, + 0.564837;0.396102;-0.723921;, + -0.565207;-0.396082;0.723644;, + 0.565207;0.396082;-0.723644;, + 0.565209;0.396082;-0.723643;, + 0.565209;0.396081;-0.723642;, + 0.565208;0.396082;-0.723643;, + -0.565209;-0.396081;0.723642;, + -0.565209;-0.396081;0.723642;, + -0.565208;-0.396082;0.723643;, + -0.067990;0.479745;-0.874770;, + 0.067991;-0.479745;0.874770;; + + 74; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;; + } # MeshNormals + MeshTextureCoords { + 222; + 1.000000;0.613993;, + 0.000000;0.614429;, + 0.730554;1.000000;, + 0.000000;0.614429;, + 1.000000;0.613993;, + 0.730554;1.000000;, + 1.000000;1.000000;, + 0.000000;0.871972;, + 0.224913;0.923875;, + 0.224913;0.923875;, + 0.000000;0.871972;, + 1.000000;1.000000;, + 1.000000;1.000000;, + 0.000000;0.578379;, + 0.002703;0.617784;, + 0.002703;0.617784;, + 0.000000;0.578379;, + 1.000000;1.000000;, + 0.000000;0.753213;, + 1.000000;1.000000;, + 0.051414;0.636453;, + 1.000000;1.000000;, + 0.000000;0.753213;, + 0.051414;0.636453;, + 0.006079;1.000000;, + 0.500000;0.485436;, + 0.000000;0.999815;, + 0.000000;0.999815;, + 0.500000;0.485436;, + 0.500000;0.486584;, + 0.000000;0.999815;, + 0.500000;0.486584;, + 0.000280;0.996336;, + 0.000280;0.996336;, + 0.500000;0.486584;, + 0.500000;0.482542;, + 0.000280;0.996336;, + 0.500000;0.482542;, + 0.006753;0.991600;, + 0.006753;0.991600;, + 0.500000;0.482542;, + 0.500000;0.475678;, + 0.006753;0.991600;, + 0.500000;0.475678;, + 0.015629;0.988382;, + 0.015629;0.988382;, + 0.500000;0.475678;, + 0.500000;0.470013;, + 0.015629;0.988382;, + 0.500000;0.470013;, + 0.021708;0.988567;, + 0.021708;0.988567;, + 0.500000;0.470013;, + 0.500000;0.468866;, + 0.021708;0.988567;, + 0.500000;0.468866;, + 0.021428;0.992047;, + 0.712097;0.720891;, + 0.280404;0.729495;, + 0.286148;0.727674;, + 0.712097;0.720891;, + 0.286148;0.727674;, + 0.716501;0.717534;, + 0.722719;0.717543;, + 0.716501;0.717534;, + 0.288528;0.723280;, + 0.727107;0.720913;, + 0.722719;0.717543;, + 0.286148;0.718886;, + 0.727107;0.720913;, + 0.286148;0.718886;, + 0.280404;0.717065;, + 0.286148;0.718886;, + 0.722719;0.717543;, + 0.288528;0.723280;, + 0.288528;0.723280;, + 0.716501;0.717534;, + 0.286148;0.727674;, + 0.499999;0.472907;, + 0.014955;0.996782;, + 0.021428;0.992047;, + 0.499999;0.472907;, + 0.021428;0.992047;, + 0.500000;0.468866;, + 0.500051;0.479771;, + 0.978572;0.992047;, + 0.985045;0.996782;, + 0.500051;0.479771;, + 0.985045;0.996782;, + 0.500000;0.485436;, + 0.500000;0.485436;, + 0.985045;0.996782;, + 0.993921;1.000000;, + 0.500000;0.485436;, + 0.993921;1.000000;, + 0.500000;0.486584;, + 0.500000;0.486584;, + 0.993921;1.000000;, + 1.000000;0.999815;, + 0.500000;0.486584;, + 1.000000;0.999815;, + 0.500000;0.482542;, + 0.500000;0.482542;, + 1.000000;0.999815;, + 0.999720;0.996336;, + 0.999720;0.996336;, + 0.993246;0.991600;, + 0.500000;0.475678;, + 0.500000;0.482542;, + 0.999720;0.996336;, + 0.500000;0.475678;, + 0.006079;1.000000;, + 0.014955;0.996782;, + 0.499949;0.479771;, + 0.006079;1.000000;, + 0.499949;0.479771;, + 0.500000;0.485436;, + 0.978572;0.992047;, + 0.500051;0.479771;, + 0.500000;0.472907;, + 0.978572;0.992047;, + 0.500000;0.472907;, + 0.978292;0.988567;, + 0.978292;0.988567;, + 0.500000;0.472907;, + 0.500000;0.468866;, + 0.984370;0.988382;, + 0.500000;0.468866;, + 0.500000;0.470013;, + 0.978292;0.988567;, + 0.500000;0.468866;, + 0.984370;0.988382;, + 0.274660;0.727674;, + 0.716473;0.729017;, + 0.272281;0.723280;, + 0.272281;0.723280;, + 0.716473;0.729017;, + 0.722690;0.729026;, + 0.272281;0.723280;, + 0.722690;0.729026;, + 0.274660;0.718886;, + 0.727095;0.725669;, + 0.280404;0.717065;, + 0.274660;0.718886;, + 0.727095;0.725669;, + 0.274660;0.718886;, + 0.722690;0.729026;, + 0.280404;0.717065;, + 0.727095;0.725669;, + 0.727107;0.720913;, + 0.280404;0.729495;, + 0.712097;0.720891;, + 0.712085;0.725647;, + 0.712085;0.725647;, + 0.274660;0.727674;, + 0.280404;0.729495;, + 0.274660;0.727674;, + 0.712085;0.725647;, + 0.716473;0.729017;, + 0.984370;0.988382;, + 0.500000;0.470013;, + 0.993246;0.991600;, + 0.993246;0.991600;, + 0.500000;0.470013;, + 0.500000;0.475678;, + 0.499949;0.479771;, + 0.014955;0.996782;, + 0.499999;0.472907;, + 0.175946;0.652561;, + 1.000000;1.000000;, + 0.000000;0.051225;, + 1.000000;1.000000;, + 0.175946;0.652561;, + 0.000000;0.051225;, + 1.000000;1.000000;, + 0.326989;0.833910;, + 0.000000;0.871972;, + 0.326989;0.833910;, + 1.000000;1.000000;, + 0.000000;0.871972;, + 1.000000;0.588710;, + 0.000000;0.960296;, + 0.005376;1.000000;, + 0.005376;1.000000;, + 0.000000;0.960296;, + 1.000000;0.588710;, + 1.000000;0.643737;, + 0.041237;1.000000;, + 0.000000;0.886005;, + 0.041237;1.000000;, + 1.000000;0.643737;, + 0.000000;0.886005;, + 1.000000;0.945775;, + 0.433796;1.000000;, + 0.000000;0.944514;, + 0.433796;1.000000;, + 1.000000;0.945775;, + 0.000000;0.944514;, + 1.000000;0.837088;, + 0.221837;0.911612;, + 0.000000;0.960139;, + 1.000000;0.837088;, + 0.000000;0.960139;, + 0.327556;1.000000;, + 1.000000;0.053572;, + 0.174107;0.395089;, + 0.000000;1.000000;, + 0.221837;0.911612;, + 1.000000;0.837088;, + 0.000000;0.960139;, + 0.000000;0.960139;, + 1.000000;0.837088;, + 0.327556;1.000000;, + 0.174107;0.395089;, + 1.000000;0.053572;, + 0.000000;1.000000;, + 1.000000;1.000000;, + 0.435057;0.944515;, + 0.000000;0.998739;, + 0.000000;0.998739;, + 0.435057;0.944515;, + 1.000000;1.000000;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/LEFTWING.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/LEFTWING.X new file mode 100644 index 0000000..d1d9af1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/LEFTWING.X @@ -0,0 +1,3757 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 1074; + 0.066780;0.004460;-0.012378;, + 0.066780;0.004679;-0.004435;, + 0.067722;0.004576;-0.004198;, + 0.066780;0.004460;-0.012378;, + 0.067722;0.004576;-0.004198;, + 0.067722;0.004346;-0.012180;, + 0.066780;0.004679;-0.004435;, + 0.066780;0.004831;0.002267;, + 0.067722;0.004737;0.002537;, + 0.066780;0.004679;-0.004435;, + 0.067722;0.004737;0.002537;, + 0.067722;0.004576;-0.004198;, + 0.066780;0.004831;0.002267;, + 0.066780;0.005171;-0.004435;, + 0.067722;0.005096;-0.004198;, + 0.066780;0.004831;0.002267;, + 0.067722;0.005096;-0.004198;, + 0.067722;0.004737;0.002537;, + 0.066780;0.005171;-0.004435;, + 0.066780;0.005577;-0.012378;, + 0.067722;0.005525;-0.012180;, + 0.066780;0.005171;-0.004435;, + 0.067722;0.005525;-0.012180;, + 0.067722;0.005096;-0.004198;, + 0.066780;0.005577;-0.012378;, + 0.066780;0.005293;-0.013400;, + 0.067722;0.005224;-0.013207;, + 0.066780;0.005577;-0.012378;, + 0.067722;0.005224;-0.013207;, + 0.067722;0.005525;-0.012180;, + 0.066780;0.005293;-0.013400;, + 0.066780;0.005008;-0.013634;, + 0.067722;0.004923;-0.013443;, + 0.066780;0.005293;-0.013400;, + 0.067722;0.004923;-0.013443;, + 0.067722;0.005224;-0.013207;, + 0.066780;0.005008;-0.013634;, + 0.066780;0.004734;-0.013400;, + 0.067722;0.004634;-0.013207;, + 0.066780;0.005008;-0.013634;, + 0.067722;0.004634;-0.013207;, + 0.067722;0.004923;-0.013443;, + 0.066780;0.004734;-0.013400;, + 0.066780;0.004460;-0.012378;, + 0.067722;0.004346;-0.012180;, + 0.066780;0.004734;-0.013400;, + 0.067722;0.004346;-0.012180;, + 0.067722;0.004634;-0.013207;, + 0.067722;0.004346;-0.012180;, + 0.067722;0.004576;-0.004198;, + 0.076947;0.003340;0.001816;, + 0.067722;0.004346;-0.012180;, + 0.076947;0.003340;0.001816;, + 0.076947;0.003225;-0.002177;, + 0.067722;0.004576;-0.004198;, + 0.067722;0.004737;0.002537;, + 0.076947;0.003420;0.005184;, + 0.067722;0.004576;-0.004198;, + 0.076947;0.003420;0.005184;, + 0.076947;0.003340;0.001816;, + 0.067722;0.004737;0.002537;, + 0.067722;0.005096;-0.004198;, + 0.076947;0.003600;0.001816;, + 0.067722;0.004737;0.002537;, + 0.076947;0.003600;0.001816;, + 0.076947;0.003420;0.005184;, + 0.067722;0.005096;-0.004198;, + 0.067722;0.005525;-0.012180;, + 0.076947;0.003814;-0.002177;, + 0.067722;0.005096;-0.004198;, + 0.076947;0.003814;-0.002177;, + 0.076947;0.003600;0.001816;, + 0.067722;0.005525;-0.012180;, + 0.067722;0.005224;-0.013207;, + 0.076947;0.003664;-0.002690;, + 0.067722;0.005525;-0.012180;, + 0.076947;0.003664;-0.002690;, + 0.076947;0.003814;-0.002177;, + 0.067722;0.005224;-0.013207;, + 0.067722;0.004923;-0.013443;, + 0.076947;0.003513;-0.002808;, + 0.067722;0.005224;-0.013207;, + 0.076947;0.003513;-0.002808;, + 0.076947;0.003664;-0.002690;, + 0.067722;0.004923;-0.013443;, + 0.067722;0.004634;-0.013207;, + 0.076947;0.003369;-0.002690;, + 0.067722;0.004923;-0.013443;, + 0.076947;0.003369;-0.002690;, + 0.076947;0.003513;-0.002808;, + 0.067722;0.004634;-0.013207;, + 0.067722;0.004346;-0.012180;, + 0.076947;0.003225;-0.002177;, + 0.067722;0.004634;-0.013207;, + 0.076947;0.003225;-0.002177;, + 0.076947;0.003369;-0.002690;, + 0.076947;0.003225;-0.002177;, + 0.076947;0.003340;0.001816;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003225;-0.002177;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003340;0.001816;, + 0.076947;0.003420;0.005184;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003340;0.001816;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003420;0.005184;, + 0.076947;0.003600;0.001816;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003420;0.005184;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003600;0.001816;, + 0.076947;0.003814;-0.002177;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003600;0.001816;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003814;-0.002177;, + 0.076947;0.003664;-0.002690;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003814;-0.002177;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003664;-0.002690;, + 0.076947;0.003513;-0.002808;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003664;-0.002690;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003513;-0.002808;, + 0.076947;0.003369;-0.002690;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003513;-0.002808;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003369;-0.002690;, + 0.076947;0.003225;-0.002177;, + 0.086171;0.002104;0.007831;, + 0.076947;0.003369;-0.002690;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.086171;0.002104;0.007831;, + 0.066776;0.004678;-0.004474;, + 0.066780;0.004679;-0.004435;, + 0.066780;0.004460;-0.012378;, + 0.066776;0.004679;-0.004436;, + 0.066780;0.004679;-0.004435;, + 0.066776;0.004678;-0.004474;, + 0.066780;0.004679;-0.004435;, + 0.066776;0.004679;-0.004436;, + 0.066780;0.004831;0.002267;, + 0.066780;0.004460;-0.012378;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.004678;-0.004474;, + 0.066776;0.004831;0.002265;, + 0.066780;0.004831;0.002267;, + 0.066776;0.004830;0.002233;, + 0.066780;0.004831;0.002267;, + 0.066776;0.004831;0.002265;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.004822;0.001863;, + 0.066776;0.004830;0.002233;, + 0.066780;0.004831;0.002267;, + 0.066776;0.004679;-0.004436;, + 0.066776;0.004822;0.001863;, + 0.066780;0.004831;0.002267;, + 0.066776;0.005171;-0.004436;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.005170;-0.004404;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.005171;-0.004436;, + 0.066780;0.005577;-0.012378;, + 0.066776;0.004831;0.002265;, + 0.066776;0.004832;0.002239;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.004832;0.002239;, + 0.066776;0.004848;0.001933;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.005097;-0.002977;, + 0.066776;0.005170;-0.004404;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.005096;-0.002950;, + 0.066776;0.005097;-0.002977;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.004848;0.001933;, + 0.066776;0.005096;-0.002950;, + 0.066780;0.005171;-0.004435;, + 0.066776;0.005578;-0.012379;, + 0.066780;0.005577;-0.012378;, + 0.066776;0.005576;-0.012341;, + 0.066780;0.005577;-0.012378;, + 0.066776;0.005578;-0.012379;, + 0.066780;0.005293;-0.013400;, + 0.066776;0.005236;-0.005707;, + 0.066776;0.005576;-0.012341;, + 0.066780;0.005577;-0.012378;, + 0.066776;0.005171;-0.004436;, + 0.066776;0.005236;-0.005707;, + 0.066780;0.005577;-0.012378;, + 0.066776;0.005293;-0.013401;, + 0.066780;0.005293;-0.013400;, + 0.066776;0.005294;-0.013396;, + 0.066780;0.005293;-0.013400;, + 0.066776;0.005293;-0.013401;, + 0.066780;0.005008;-0.013634;, + 0.066776;0.005337;-0.013241;, + 0.066776;0.005294;-0.013396;, + 0.066780;0.005293;-0.013400;, + 0.066776;0.005578;-0.012379;, + 0.066776;0.005337;-0.013241;, + 0.066780;0.005293;-0.013400;, + 0.066776;0.005009;-0.013634;, + 0.066780;0.005008;-0.013634;, + 0.066776;0.005293;-0.013401;, + 0.066776;0.005008;-0.013635;, + 0.066780;0.005008;-0.013634;, + 0.066776;0.005009;-0.013634;, + 0.066780;0.005008;-0.013634;, + 0.066776;0.005008;-0.013635;, + 0.066780;0.004734;-0.013400;, + 0.066776;0.004734;-0.013401;, + 0.066780;0.004734;-0.013400;, + 0.066776;0.004736;-0.013402;, + 0.066780;0.004734;-0.013400;, + 0.066776;0.004734;-0.013401;, + 0.066780;0.004460;-0.012378;, + 0.066776;0.004980;-0.013611;, + 0.066776;0.004736;-0.013402;, + 0.066780;0.004734;-0.013400;, + 0.066776;0.004983;-0.013613;, + 0.066776;0.004980;-0.013611;, + 0.066780;0.004734;-0.013400;, + 0.066776;0.005008;-0.013635;, + 0.066776;0.004983;-0.013613;, + 0.066780;0.004734;-0.013400;, + 0.066776;0.005008;-0.013635;, + 0.066776;0.005008;-0.013635;, + 0.066780;0.004734;-0.013400;, + 0.066780;0.004460;-0.012378;, + 0.066776;0.004462;-0.012384;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.004462;-0.012384;, + 0.066780;0.004460;-0.012378;, + 0.066776;0.004734;-0.013401;, + 0.066776;0.005170;-0.004404;, + 0.066776;0.004678;-0.004474;, + 0.066776;0.005171;-0.004436;, + 0.066776;0.004832;0.002239;, + 0.066776;0.004830;0.002233;, + 0.066776;0.004822;0.001863;, + 0.066776;0.004830;0.002233;, + 0.066776;0.004832;0.002239;, + 0.066776;0.004831;0.002265;, + 0.066776;0.004822;0.001863;, + 0.066776;0.004848;0.001933;, + 0.066776;0.004832;0.002239;, + 0.066776;0.004848;0.001933;, + 0.066776;0.004822;0.001863;, + 0.066776;0.004679;-0.004436;, + 0.066776;0.005097;-0.002977;, + 0.066776;0.004678;-0.004474;, + 0.066776;0.005170;-0.004404;, + 0.066776;0.004678;-0.004474;, + 0.066776;0.005097;-0.002977;, + 0.066776;0.004679;-0.004436;, + 0.066776;0.005096;-0.002950;, + 0.066776;0.004679;-0.004436;, + 0.066776;0.005097;-0.002977;, + 0.066776;0.004679;-0.004436;, + 0.066776;0.005096;-0.002950;, + 0.066776;0.004848;0.001933;, + 0.066776;0.004678;-0.004474;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.005576;-0.012341;, + 0.066776;0.005576;-0.012341;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.005578;-0.012379;, + 0.066776;0.005236;-0.005707;, + 0.066776;0.004678;-0.004474;, + 0.066776;0.005576;-0.012341;, + 0.066776;0.004678;-0.004474;, + 0.066776;0.005236;-0.005707;, + 0.066776;0.005171;-0.004436;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.005337;-0.013241;, + 0.066776;0.005578;-0.012379;, + 0.066776;0.005337;-0.013241;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.005294;-0.013396;, + 0.066776;0.005294;-0.013396;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.004736;-0.013402;, + 0.066776;0.004736;-0.013402;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.004734;-0.013401;, + 0.066776;0.004980;-0.013611;, + 0.066776;0.005294;-0.013396;, + 0.066776;0.004736;-0.013402;, + 0.066776;0.005294;-0.013396;, + 0.066776;0.004980;-0.013611;, + 0.066776;0.005293;-0.013401;, + 0.066776;0.004983;-0.013613;, + 0.066776;0.005293;-0.013401;, + 0.066776;0.004980;-0.013611;, + 0.066776;0.005293;-0.013401;, + 0.066776;0.004983;-0.013613;, + 0.066776;0.005009;-0.013634;, + 0.066776;0.005008;-0.013635;, + 0.066776;0.005009;-0.013634;, + 0.066776;0.004983;-0.013613;, + 0.066776;0.005009;-0.013634;, + 0.066776;0.005008;-0.013635;, + 0.066776;0.005008;-0.013635;, + 0.066776;0.004734;-0.013401;, + 0.066776;0.004461;-0.012379;, + 0.066776;0.004462;-0.012384;, + 0.033853;0.005749;-0.018408;, + 0.033853;0.006077;-0.006292;, + 0.034627;0.006134;-0.006342;, + 0.033853;0.005749;-0.018408;, + 0.034627;0.006134;-0.006342;, + 0.034627;0.005829;-0.018287;, + 0.033853;0.006077;-0.006292;, + 0.033853;0.006306;0.003930;, + 0.034627;0.006347;0.003735;, + 0.033853;0.006077;-0.006292;, + 0.034627;0.006347;0.003735;, + 0.034627;0.006134;-0.006342;, + 0.033853;0.006306;0.003930;, + 0.033853;0.006818;-0.006292;, + 0.034627;0.006822;-0.006342;, + 0.033853;0.006306;0.003930;, + 0.034627;0.006822;-0.006342;, + 0.034627;0.006347;0.003735;, + 0.033853;0.006818;-0.006292;, + 0.033853;0.007430;-0.018408;, + 0.034627;0.007389;-0.018287;, + 0.033853;0.006818;-0.006292;, + 0.034627;0.007389;-0.018287;, + 0.034627;0.006822;-0.006342;, + 0.033853;0.007430;-0.018408;, + 0.033853;0.007001;-0.019966;, + 0.034627;0.006992;-0.019823;, + 0.033853;0.007430;-0.018408;, + 0.034627;0.006992;-0.019823;, + 0.034627;0.007389;-0.018287;, + 0.033853;0.007001;-0.019966;, + 0.033853;0.006572;-0.020324;, + 0.034627;0.006594;-0.020176;, + 0.033853;0.007001;-0.019966;, + 0.034627;0.006594;-0.020176;, + 0.034627;0.006992;-0.019823;, + 0.033853;0.006572;-0.020324;, + 0.033853;0.006160;-0.019966;, + 0.034627;0.006211;-0.019823;, + 0.033853;0.006572;-0.020324;, + 0.034627;0.006211;-0.019823;, + 0.034627;0.006594;-0.020176;, + 0.033853;0.006160;-0.019966;, + 0.033853;0.005749;-0.018408;, + 0.034627;0.005829;-0.018287;, + 0.033853;0.006160;-0.019966;, + 0.034627;0.005829;-0.018287;, + 0.034627;0.006211;-0.019823;, + 0.034627;0.005829;-0.018287;, + 0.034627;0.006134;-0.006342;, + 0.035398;0.006191;-0.006388;, + 0.034627;0.005829;-0.018287;, + 0.035398;0.006191;-0.006388;, + 0.035398;0.005910;-0.018157;, + 0.034627;0.006134;-0.006342;, + 0.034627;0.006347;0.003735;, + 0.035398;0.006386;0.003541;, + 0.034627;0.006134;-0.006342;, + 0.035398;0.006386;0.003541;, + 0.035398;0.006191;-0.006388;, + 0.034627;0.006347;0.003735;, + 0.034627;0.006822;-0.006342;, + 0.035398;0.006823;-0.006388;, + 0.034627;0.006347;0.003735;, + 0.035398;0.006823;-0.006388;, + 0.035398;0.006386;0.003541;, + 0.034627;0.006822;-0.006342;, + 0.034627;0.007389;-0.018287;, + 0.035398;0.007346;-0.018157;, + 0.034627;0.006822;-0.006342;, + 0.035398;0.007346;-0.018157;, + 0.035398;0.006823;-0.006388;, + 0.034627;0.007389;-0.018287;, + 0.034627;0.006992;-0.019823;, + 0.035398;0.006980;-0.019671;, + 0.034627;0.007389;-0.018287;, + 0.035398;0.006980;-0.019671;, + 0.035398;0.007346;-0.018157;, + 0.034627;0.006992;-0.019823;, + 0.034627;0.006594;-0.020176;, + 0.035398;0.006613;-0.020019;, + 0.034627;0.006992;-0.019823;, + 0.035398;0.006613;-0.020019;, + 0.035398;0.006980;-0.019671;, + 0.034627;0.006594;-0.020176;, + 0.034627;0.006211;-0.019823;, + 0.035398;0.006262;-0.019671;, + 0.034627;0.006594;-0.020176;, + 0.035398;0.006262;-0.019671;, + 0.035398;0.006613;-0.020019;, + 0.034627;0.006211;-0.019823;, + 0.034627;0.005829;-0.018287;, + 0.035398;0.005910;-0.018157;, + 0.034627;0.006211;-0.019823;, + 0.035398;0.005910;-0.018157;, + 0.035398;0.006262;-0.019671;, + 0.035398;0.005910;-0.018157;, + 0.035398;0.006191;-0.006388;, + 0.050618;0.005490;-0.005533;, + 0.035398;0.005910;-0.018157;, + 0.050618;0.005490;-0.005533;, + 0.050618;0.005247;-0.015370;, + 0.035398;0.006191;-0.006388;, + 0.035398;0.006386;0.003541;, + 0.050618;0.005660;0.002766;, + 0.035398;0.006191;-0.006388;, + 0.050618;0.005660;0.002766;, + 0.050618;0.005490;-0.005533;, + 0.035398;0.006386;0.003541;, + 0.035398;0.006823;-0.006388;, + 0.050618;0.006039;-0.005533;, + 0.035398;0.006386;0.003541;, + 0.050618;0.006039;-0.005533;, + 0.050618;0.005660;0.002766;, + 0.035398;0.006823;-0.006388;, + 0.035398;0.007346;-0.018157;, + 0.050618;0.006492;-0.015370;, + 0.035398;0.006823;-0.006388;, + 0.050618;0.006492;-0.015370;, + 0.050618;0.006039;-0.005533;, + 0.035398;0.007346;-0.018157;, + 0.035398;0.006980;-0.019671;, + 0.050618;0.006174;-0.016634;, + 0.035398;0.007346;-0.018157;, + 0.050618;0.006174;-0.016634;, + 0.050618;0.006492;-0.015370;, + 0.035398;0.006980;-0.019671;, + 0.035398;0.006613;-0.020019;, + 0.050618;0.005857;-0.016925;, + 0.035398;0.006980;-0.019671;, + 0.050618;0.005857;-0.016925;, + 0.050618;0.006174;-0.016634;, + 0.035398;0.006613;-0.020019;, + 0.035398;0.006262;-0.019671;, + 0.050618;0.005552;-0.016634;, + 0.035398;0.006613;-0.020019;, + 0.050618;0.005552;-0.016634;, + 0.050618;0.005857;-0.016925;, + 0.035398;0.006262;-0.019671;, + 0.035398;0.005910;-0.018157;, + 0.050618;0.005247;-0.015370;, + 0.035398;0.006262;-0.019671;, + 0.050618;0.005247;-0.015370;, + 0.050618;0.005552;-0.016634;, + 0.050618;0.005247;-0.015370;, + 0.050618;0.005490;-0.005533;, + 0.065835;0.004788;-0.004676;, + 0.050618;0.005247;-0.015370;, + 0.065835;0.004788;-0.004676;, + 0.065835;0.004582;-0.012581;, + 0.050618;0.005490;-0.005533;, + 0.050618;0.005660;0.002766;, + 0.065835;0.004932;0.001993;, + 0.050618;0.005490;-0.005533;, + 0.065835;0.004932;0.001993;, + 0.065835;0.004788;-0.004676;, + 0.050618;0.005660;0.002766;, + 0.050618;0.006039;-0.005533;, + 0.065835;0.005253;-0.004676;, + 0.050618;0.005660;0.002766;, + 0.065835;0.005253;-0.004676;, + 0.065835;0.004932;0.001993;, + 0.050618;0.006039;-0.005533;, + 0.050618;0.006492;-0.015370;, + 0.065835;0.005638;-0.012581;, + 0.050618;0.006039;-0.005533;, + 0.065835;0.005638;-0.012581;, + 0.065835;0.005253;-0.004676;, + 0.050618;0.006492;-0.015370;, + 0.050618;0.006174;-0.016634;, + 0.065835;0.005368;-0.013597;, + 0.050618;0.006492;-0.015370;, + 0.065835;0.005368;-0.013597;, + 0.065835;0.005638;-0.012581;, + 0.050618;0.006174;-0.016634;, + 0.050618;0.005857;-0.016925;, + 0.065835;0.005099;-0.013831;, + 0.050618;0.006174;-0.016634;, + 0.065835;0.005099;-0.013831;, + 0.065835;0.005368;-0.013597;, + 0.050618;0.005857;-0.016925;, + 0.050618;0.005552;-0.016634;, + 0.065835;0.004840;-0.013597;, + 0.050618;0.005857;-0.016925;, + 0.065835;0.004840;-0.013597;, + 0.065835;0.005099;-0.013831;, + 0.050618;0.005552;-0.016634;, + 0.050618;0.005247;-0.015370;, + 0.065835;0.004582;-0.012581;, + 0.050618;0.005552;-0.016634;, + 0.065835;0.004582;-0.012581;, + 0.065835;0.004840;-0.013597;, + 0.033849;0.006077;-0.006295;, + 0.033853;0.006077;-0.006292;, + 0.033853;0.005749;-0.018408;, + 0.033849;0.006077;-0.006291;, + 0.033853;0.006077;-0.006292;, + 0.033849;0.006077;-0.006295;, + 0.033853;0.006077;-0.006292;, + 0.033849;0.006077;-0.006291;, + 0.033853;0.006306;0.003930;, + 0.033849;0.006077;-0.006295;, + 0.033853;0.005749;-0.018408;, + 0.033849;0.005947;-0.011090;, + 0.033853;0.005749;-0.018408;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.006305;0.003928;, + 0.033853;0.006306;0.003930;, + 0.033849;0.006077;-0.006291;, + 0.033849;0.006305;0.003931;, + 0.033853;0.006306;0.003930;, + 0.033849;0.006305;0.003928;, + 0.033853;0.006306;0.003930;, + 0.033849;0.006305;0.003931;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.006818;-0.006291;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.006817;-0.006288;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.006818;-0.006291;, + 0.033853;0.007430;-0.018408;, + 0.033849;0.006790;-0.005741;, + 0.033849;0.006817;-0.006288;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.006660;-0.003146;, + 0.033849;0.006790;-0.005741;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.006660;-0.003143;, + 0.033849;0.006660;-0.003146;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.006306;0.003928;, + 0.033849;0.006660;-0.003143;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.006305;0.003931;, + 0.033849;0.006306;0.003928;, + 0.033853;0.006818;-0.006292;, + 0.033849;0.007430;-0.018407;, + 0.033853;0.007430;-0.018408;, + 0.033849;0.007429;-0.018403;, + 0.033853;0.007430;-0.018408;, + 0.033849;0.007430;-0.018407;, + 0.033853;0.007001;-0.019966;, + 0.033849;0.007354;-0.016908;, + 0.033849;0.007429;-0.018403;, + 0.033853;0.007430;-0.018408;, + 0.033849;0.006818;-0.006291;, + 0.033849;0.007354;-0.016908;, + 0.033853;0.007430;-0.018408;, + 0.033849;0.007001;-0.019964;, + 0.033853;0.007001;-0.019966;, + 0.033849;0.007430;-0.018407;, + 0.033849;0.007001;-0.019965;, + 0.033853;0.007001;-0.019966;, + 0.033849;0.007001;-0.019964;, + 0.033853;0.007001;-0.019966;, + 0.033849;0.007001;-0.019965;, + 0.033853;0.006572;-0.020324;, + 0.033849;0.006572;-0.020323;, + 0.033853;0.006572;-0.020324;, + 0.033849;0.007001;-0.019965;, + 0.033849;0.006572;-0.020323;, + 0.033853;0.006572;-0.020324;, + 0.033849;0.006572;-0.020323;, + 0.033853;0.006572;-0.020324;, + 0.033849;0.006572;-0.020323;, + 0.033853;0.006160;-0.019966;, + 0.033849;0.006160;-0.019965;, + 0.033853;0.006160;-0.019966;, + 0.033849;0.006160;-0.019965;, + 0.033853;0.006160;-0.019966;, + 0.033849;0.006160;-0.019965;, + 0.033853;0.005749;-0.018408;, + 0.033849;0.006563;-0.020316;, + 0.033849;0.006160;-0.019965;, + 0.033853;0.006160;-0.019966;, + 0.033849;0.006572;-0.020323;, + 0.033849;0.006563;-0.020316;, + 0.033853;0.006160;-0.019966;, + 0.033853;0.005749;-0.018408;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.005748;-0.018407;, + 0.033853;0.005749;-0.018408;, + 0.033849;0.006160;-0.019965;, + 0.065835;0.004788;-0.004676;, + 0.066774;0.004686;-0.004441;, + 0.065835;0.004582;-0.012581;, + 0.066774;0.004686;-0.004479;, + 0.065835;0.004582;-0.012581;, + 0.066774;0.004686;-0.004441;, + 0.066774;0.004468;-0.012384;, + 0.065835;0.004582;-0.012581;, + 0.066774;0.004686;-0.004479;, + 0.065835;0.004582;-0.012581;, + 0.066774;0.004468;-0.012384;, + 0.065835;0.004840;-0.013597;, + 0.065835;0.004932;0.001993;, + 0.066774;0.004838;0.002260;, + 0.065835;0.004788;-0.004676;, + 0.066774;0.004838;0.002228;, + 0.065835;0.004788;-0.004676;, + 0.066774;0.004838;0.002260;, + 0.065835;0.004788;-0.004676;, + 0.066774;0.004838;0.002228;, + 0.066774;0.004686;-0.004441;, + 0.065835;0.005253;-0.004676;, + 0.066774;0.005179;-0.004441;, + 0.065835;0.004932;0.001993;, + 0.066774;0.005177;-0.004409;, + 0.065835;0.004932;0.001993;, + 0.066774;0.005179;-0.004441;, + 0.066774;0.004841;0.002210;, + 0.066774;0.004838;0.002260;, + 0.065835;0.004932;0.001993;, + 0.066774;0.005177;-0.004409;, + 0.066774;0.004841;0.002210;, + 0.065835;0.004932;0.001993;, + 0.065835;0.005638;-0.012581;, + 0.066774;0.005585;-0.012384;, + 0.065835;0.005253;-0.004676;, + 0.066774;0.005583;-0.012346;, + 0.065835;0.005253;-0.004676;, + 0.066774;0.005585;-0.012384;, + 0.066774;0.005321;-0.007228;, + 0.066774;0.005179;-0.004441;, + 0.065835;0.005253;-0.004676;, + 0.066774;0.005324;-0.007277;, + 0.066774;0.005321;-0.007228;, + 0.065835;0.005253;-0.004676;, + 0.066774;0.005583;-0.012346;, + 0.066774;0.005324;-0.007277;, + 0.065835;0.005253;-0.004676;, + 0.065835;0.005368;-0.013597;, + 0.066774;0.005300;-0.013405;, + 0.065835;0.005638;-0.012581;, + 0.066774;0.005301;-0.013401;, + 0.065835;0.005638;-0.012581;, + 0.066774;0.005300;-0.013405;, + 0.065835;0.005638;-0.012581;, + 0.066774;0.005301;-0.013401;, + 0.066774;0.005585;-0.012384;, + 0.065835;0.005099;-0.013831;, + 0.066774;0.005015;-0.013640;, + 0.065835;0.005368;-0.013597;, + 0.066774;0.005017;-0.013639;, + 0.065835;0.005368;-0.013597;, + 0.066774;0.005015;-0.013640;, + 0.065835;0.005368;-0.013597;, + 0.066774;0.005017;-0.013639;, + 0.066774;0.005300;-0.013405;, + 0.065835;0.004840;-0.013597;, + 0.066774;0.004742;-0.013405;, + 0.065835;0.005099;-0.013831;, + 0.066774;0.004743;-0.013407;, + 0.065835;0.005099;-0.013831;, + 0.066774;0.004742;-0.013405;, + 0.066774;0.004861;-0.013508;, + 0.066774;0.005015;-0.013640;, + 0.065835;0.005099;-0.013831;, + 0.066774;0.004743;-0.013407;, + 0.066774;0.004861;-0.013508;, + 0.065835;0.005099;-0.013831;, + 0.066774;0.004469;-0.012389;, + 0.065835;0.004840;-0.013597;, + 0.066774;0.004468;-0.012384;, + 0.065835;0.004840;-0.013597;, + 0.066774;0.004469;-0.012389;, + 0.066774;0.004742;-0.013405;, + 0.033849;0.006817;-0.006288;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.006818;-0.006291;, + 0.033849;0.006660;-0.003146;, + 0.033849;0.006077;-0.006295;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.006077;-0.006295;, + 0.033849;0.006660;-0.003146;, + 0.033849;0.006077;-0.006291;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.006790;-0.005741;, + 0.033849;0.006660;-0.003146;, + 0.033849;0.006790;-0.005741;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.006817;-0.006288;, + 0.033849;0.006660;-0.003143;, + 0.033849;0.006077;-0.006291;, + 0.033849;0.006660;-0.003146;, + 0.033849;0.006077;-0.006291;, + 0.033849;0.006660;-0.003143;, + 0.033849;0.006305;0.003928;, + 0.033849;0.006306;0.003928;, + 0.033849;0.006305;0.003928;, + 0.033849;0.006660;-0.003143;, + 0.033849;0.006305;0.003928;, + 0.033849;0.006306;0.003928;, + 0.033849;0.006305;0.003931;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.007429;-0.018403;, + 0.033849;0.007429;-0.018403;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.007430;-0.018407;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.007354;-0.016908;, + 0.033849;0.006818;-0.006291;, + 0.033849;0.007354;-0.016908;, + 0.033849;0.005947;-0.011090;, + 0.033849;0.007429;-0.018403;, + 0.033849;0.007430;-0.018407;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.007001;-0.019964;, + 0.033849;0.007001;-0.019964;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.007001;-0.019965;, + 0.033849;0.007001;-0.019965;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.006572;-0.020323;, + 0.033849;0.006572;-0.020323;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.006572;-0.020323;, + 0.033849;0.006160;-0.019965;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.006160;-0.019965;, + 0.033849;0.006563;-0.020316;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.006160;-0.019965;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.006563;-0.020316;, + 0.033849;0.006572;-0.020323;, + 0.033849;0.006160;-0.019965;, + 0.033849;0.005748;-0.018407;, + 0.033849;0.005748;-0.018407;, + 0.066774;0.004686;-0.004441;, + 0.066774;0.004838;0.002228;, + 0.066774;0.005179;-0.004441;, + 0.066774;0.005179;-0.004441;, + 0.066774;0.004838;0.002228;, + 0.066774;0.005177;-0.004409;, + 0.066774;0.004841;0.002210;, + 0.066774;0.004838;0.002228;, + 0.066774;0.004838;0.002260;, + 0.066774;0.004838;0.002228;, + 0.066774;0.004841;0.002210;, + 0.066774;0.005177;-0.004409;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.004686;-0.004479;, + 0.066774;0.005585;-0.012384;, + 0.066774;0.005585;-0.012384;, + 0.066774;0.004686;-0.004479;, + 0.066774;0.005583;-0.012346;, + 0.066774;0.005321;-0.007228;, + 0.066774;0.004686;-0.004441;, + 0.066774;0.005179;-0.004441;, + 0.066774;0.004686;-0.004441;, + 0.066774;0.005321;-0.007228;, + 0.066774;0.004686;-0.004479;, + 0.066774;0.005324;-0.007277;, + 0.066774;0.004686;-0.004479;, + 0.066774;0.005321;-0.007228;, + 0.066774;0.004686;-0.004479;, + 0.066774;0.005324;-0.007277;, + 0.066774;0.005583;-0.012346;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.005585;-0.012384;, + 0.066774;0.005301;-0.013401;, + 0.066774;0.005300;-0.013405;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.005301;-0.013401;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.005300;-0.013405;, + 0.066774;0.005017;-0.013639;, + 0.066774;0.005015;-0.013640;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.005017;-0.013639;, + 0.066774;0.004742;-0.013405;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.004743;-0.013407;, + 0.066774;0.004861;-0.013508;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.005015;-0.013640;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.004861;-0.013508;, + 0.066774;0.004743;-0.013407;, + 0.066774;0.004468;-0.012384;, + 0.066774;0.004742;-0.013405;, + 0.066774;0.004469;-0.012389;, + 0.008104;0.003898;0.000907;, + 0.008104;0.003497;0.010399;, + 0.008104;0.003318;0.000907;, + 0.008104;0.003898;0.000907;, + 0.008104;0.003318;0.000907;, + 0.008104;0.003061;-0.010343;, + 0.008104;0.004376;-0.010343;, + 0.008104;0.003898;0.000907;, + 0.008104;0.003061;-0.010343;, + 0.008104;0.004041;-0.011790;, + 0.008104;0.004376;-0.010343;, + 0.008104;0.003061;-0.010343;, + 0.008104;0.004041;-0.011790;, + 0.008104;0.003061;-0.010343;, + 0.008104;0.003383;-0.011790;, + 0.008065;0.003705;-0.012122;, + 0.008104;0.004041;-0.011790;, + 0.008104;0.003383;-0.011790;, + 0.008104;0.003061;-0.010343;, + 0.008104;0.003318;0.000907;, + 0.020982;0.004698;-0.002692;, + 0.008104;0.003061;-0.010343;, + 0.020982;0.004698;-0.002692;, + 0.020982;0.004405;-0.014376;, + 0.008104;0.003318;0.000907;, + 0.008104;0.003497;0.010399;, + 0.020982;0.004902;0.007164;, + 0.008104;0.003318;0.000907;, + 0.020982;0.004902;0.007164;, + 0.020982;0.004698;-0.002692;, + 0.008104;0.003497;0.010399;, + 0.008104;0.003898;0.000907;, + 0.020982;0.005358;-0.002692;, + 0.008104;0.003497;0.010399;, + 0.020982;0.005358;-0.002692;, + 0.020982;0.004902;0.007164;, + 0.008104;0.003898;0.000907;, + 0.008104;0.004376;-0.010343;, + 0.020982;0.005903;-0.014376;, + 0.008104;0.003898;0.000907;, + 0.020982;0.005903;-0.014376;, + 0.020982;0.005358;-0.002692;, + 0.008104;0.004376;-0.010343;, + 0.008104;0.004041;-0.011790;, + 0.020982;0.005521;-0.015878;, + 0.008104;0.004376;-0.010343;, + 0.020982;0.005521;-0.015878;, + 0.020982;0.005903;-0.014376;, + 0.008104;0.004041;-0.011790;, + 0.008065;0.003705;-0.012122;, + 0.020982;0.005139;-0.016223;, + 0.008104;0.004041;-0.011790;, + 0.020982;0.005139;-0.016223;, + 0.020982;0.005521;-0.015878;, + 0.008065;0.003705;-0.012122;, + 0.008104;0.003383;-0.011790;, + 0.020982;0.004772;-0.015878;, + 0.008065;0.003705;-0.012122;, + 0.020982;0.004772;-0.015878;, + 0.020982;0.005139;-0.016223;, + 0.008104;0.003383;-0.011790;, + 0.008104;0.003061;-0.010343;, + 0.020982;0.004405;-0.014376;, + 0.008104;0.003383;-0.011790;, + 0.020982;0.004405;-0.014376;, + 0.020982;0.004772;-0.015878;, + 0.020982;0.004405;-0.014376;, + 0.020982;0.004698;-0.002692;, + 0.033853;0.006077;-0.006292;, + 0.020982;0.004405;-0.014376;, + 0.033853;0.006077;-0.006292;, + 0.033853;0.005749;-0.018408;, + 0.020982;0.004698;-0.002692;, + 0.020982;0.004902;0.007164;, + 0.033853;0.006306;0.003930;, + 0.020982;0.004698;-0.002692;, + 0.033853;0.006306;0.003930;, + 0.033853;0.006077;-0.006292;, + 0.020982;0.004902;0.007164;, + 0.020982;0.005358;-0.002692;, + 0.033853;0.006818;-0.006292;, + 0.020982;0.004902;0.007164;, + 0.033853;0.006818;-0.006292;, + 0.033853;0.006306;0.003930;, + 0.020982;0.005358;-0.002692;, + 0.020982;0.005903;-0.014376;, + 0.033853;0.007430;-0.018408;, + 0.020982;0.005358;-0.002692;, + 0.033853;0.007430;-0.018408;, + 0.033853;0.006818;-0.006292;, + 0.020982;0.005903;-0.014376;, + 0.020982;0.005521;-0.015878;, + 0.033853;0.007001;-0.019966;, + 0.020982;0.005903;-0.014376;, + 0.033853;0.007001;-0.019966;, + 0.033853;0.007430;-0.018408;, + 0.020982;0.005521;-0.015878;, + 0.020982;0.005139;-0.016223;, + 0.033853;0.006572;-0.020324;, + 0.020982;0.005521;-0.015878;, + 0.033853;0.006572;-0.020324;, + 0.033853;0.007001;-0.019966;, + 0.020982;0.005139;-0.016223;, + 0.020982;0.004772;-0.015878;, + 0.033853;0.006160;-0.019966;, + 0.020982;0.005139;-0.016223;, + 0.033853;0.006160;-0.019966;, + 0.033853;0.006572;-0.020324;, + 0.020982;0.004772;-0.015878;, + 0.020982;0.004405;-0.014376;, + 0.033853;0.005749;-0.018408;, + 0.020982;0.004772;-0.015878;, + 0.033853;0.005749;-0.018408;, + 0.033853;0.006160;-0.019966;, + 0.033853;0.006077;-0.006292;, + 0.033868;0.006078;-0.006293;, + 0.033853;0.005749;-0.018408;, + 0.033868;0.005755;-0.018198;, + 0.033853;0.005749;-0.018408;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.005750;-0.018406;, + 0.033853;0.005749;-0.018408;, + 0.033868;0.005755;-0.018198;, + 0.033853;0.005749;-0.018408;, + 0.033868;0.005750;-0.018406;, + 0.033853;0.006160;-0.019966;, + 0.033853;0.006306;0.003930;, + 0.033868;0.006307;0.003926;, + 0.033853;0.006077;-0.006292;, + 0.033868;0.006082;-0.006117;, + 0.033853;0.006077;-0.006292;, + 0.033868;0.006307;0.003926;, + 0.033853;0.006077;-0.006292;, + 0.033868;0.006082;-0.006117;, + 0.033868;0.006078;-0.006293;, + 0.033853;0.006306;0.003930;, + 0.033853;0.006818;-0.006292;, + 0.033868;0.006665;-0.003233;, + 0.033868;0.006315;0.003751;, + 0.033853;0.006306;0.003930;, + 0.033868;0.006665;-0.003233;, + 0.033853;0.006306;0.003930;, + 0.033868;0.006315;0.003751;, + 0.033868;0.006307;0.003926;, + 0.033853;0.006818;-0.006292;, + 0.033868;0.006818;-0.006293;, + 0.033868;0.006665;-0.003233;, + 0.033853;0.006818;-0.006292;, + 0.033853;0.007430;-0.018408;, + 0.033868;0.007019;-0.010287;, + 0.033868;0.006828;-0.006501;, + 0.033853;0.006818;-0.006292;, + 0.033868;0.007019;-0.010287;, + 0.033853;0.006818;-0.006292;, + 0.033868;0.006828;-0.006501;, + 0.033868;0.006818;-0.006293;, + 0.033853;0.007430;-0.018408;, + 0.033868;0.007429;-0.018406;, + 0.033868;0.007019;-0.010287;, + 0.033853;0.007001;-0.019966;, + 0.033868;0.007001;-0.019964;, + 0.033853;0.007430;-0.018408;, + 0.033868;0.007422;-0.018433;, + 0.033853;0.007430;-0.018408;, + 0.033868;0.007001;-0.019964;, + 0.033853;0.007430;-0.018408;, + 0.033868;0.007422;-0.018433;, + 0.033868;0.007429;-0.018406;, + 0.033853;0.007001;-0.019966;, + 0.033853;0.006572;-0.020324;, + 0.033868;0.006632;-0.020273;, + 0.033868;0.006994;-0.019970;, + 0.033853;0.007001;-0.019966;, + 0.033868;0.006632;-0.020273;, + 0.033853;0.007001;-0.019966;, + 0.033868;0.006994;-0.019970;, + 0.033868;0.007001;-0.019964;, + 0.033853;0.006572;-0.020324;, + 0.033868;0.006573;-0.020322;, + 0.033868;0.006632;-0.020273;, + 0.033853;0.006160;-0.019966;, + 0.033868;0.006161;-0.019964;, + 0.033853;0.006572;-0.020324;, + 0.033868;0.006566;-0.020316;, + 0.033853;0.006572;-0.020324;, + 0.033868;0.006161;-0.019964;, + 0.033868;0.006568;-0.020318;, + 0.033868;0.006573;-0.020322;, + 0.033853;0.006572;-0.020324;, + 0.033868;0.006566;-0.020316;, + 0.033868;0.006568;-0.020318;, + 0.033853;0.006572;-0.020324;, + 0.033868;0.006155;-0.019937;, + 0.033853;0.006160;-0.019966;, + 0.033868;0.005750;-0.018406;, + 0.033853;0.006160;-0.019966;, + 0.033868;0.006155;-0.019937;, + 0.033868;0.006161;-0.019964;, + 0.033868;0.006307;0.003926;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.006082;-0.006117;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.006307;0.003926;, + 0.033868;0.006315;0.003751;, + 0.033868;0.006665;-0.003233;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.006315;0.003751;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.006665;-0.003233;, + 0.033868;0.006818;-0.006293;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.006818;-0.006293;, + 0.033868;0.006828;-0.006501;, + 0.033868;0.007019;-0.010287;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.006828;-0.006501;, + 0.033868;0.006078;-0.006293;, + 0.033868;0.007019;-0.010287;, + 0.033868;0.005755;-0.018198;, + 0.033868;0.005755;-0.018198;, + 0.033868;0.007019;-0.010287;, + 0.033868;0.007429;-0.018406;, + 0.033868;0.005755;-0.018198;, + 0.033868;0.007429;-0.018406;, + 0.033868;0.007001;-0.019964;, + 0.033868;0.007001;-0.019964;, + 0.033868;0.007429;-0.018406;, + 0.033868;0.007422;-0.018433;, + 0.033868;0.005755;-0.018198;, + 0.033868;0.007001;-0.019964;, + 0.033868;0.006994;-0.019970;, + 0.033868;0.006632;-0.020273;, + 0.033868;0.005755;-0.018198;, + 0.033868;0.006994;-0.019970;, + 0.033868;0.005755;-0.018198;, + 0.033868;0.006632;-0.020273;, + 0.033868;0.005750;-0.018406;, + 0.033868;0.005750;-0.018406;, + 0.033868;0.006632;-0.020273;, + 0.033868;0.006573;-0.020322;, + 0.033868;0.006568;-0.020318;, + 0.033868;0.005750;-0.018406;, + 0.033868;0.006573;-0.020322;, + 0.033868;0.005750;-0.018406;, + 0.033868;0.006568;-0.020318;, + 0.033868;0.006566;-0.020316;, + 0.033868;0.006566;-0.020316;, + 0.033868;0.006161;-0.019964;, + 0.033868;0.006155;-0.019937;, + 0.033868;0.005750;-0.018406;, + 0.033868;0.006566;-0.020316;, + 0.033868;0.006155;-0.019937;; + + 358; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;, + 3;926,925,924;, + 3;929,928,927;, + 3;932,931,930;, + 3;935,934,933;, + 3;938,937,936;, + 3;941,940,939;, + 3;944,943,942;, + 3;947,946,945;, + 3;950,949,948;, + 3;953,952,951;, + 3;956,955,954;, + 3;959,958,957;, + 3;962,961,960;, + 3;965,964,963;, + 3;968,967,966;, + 3;971,970,969;, + 3;974,973,972;, + 3;977,976,975;, + 3;980,979,978;, + 3;983,982,981;, + 3;986,985,984;, + 3;989,988,987;, + 3;992,991,990;, + 3;995,994,993;, + 3;998,997,996;, + 3;1001,1000,999;, + 3;1004,1003,1002;, + 3;1007,1006,1005;, + 3;1010,1009,1008;, + 3;1013,1012,1011;, + 3;1016,1015,1014;, + 3;1019,1018,1017;, + 3;1022,1021,1020;, + 3;1025,1024,1023;, + 3;1028,1027,1026;, + 3;1031,1030,1029;, + 3;1034,1033,1032;, + 3;1037,1036,1035;, + 3;1040,1039,1038;, + 3;1043,1042,1041;, + 3;1046,1045,1044;, + 3;1049,1048,1047;, + 3;1052,1051,1050;, + 3;1055,1054,1053;, + 3;1058,1057,1056;, + 3;1061,1060,1059;, + 3;1064,1063,1062;, + 3;1067,1066,1065;, + 3;1070,1069,1068;, + 3;1073,1072,1071;; + + MeshMaterialList { + 2; + 358; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;; + Material { + 0.000000;0.000000;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "..image/wing.ppm"; + } #TextureFilename + } # Material + Material { + 0.800000;0.800000;0.800000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "..image/wing.ppm"; + } #TextureFilename + } # Material + } # MeshMaterialList + MeshNormals { + 358; + -0.115457;-0.992935;0.027377;, + -0.126011;-0.991617;0.028573;, + -0.105666;-0.994146;0.022547;, + -0.114564;-0.993132;0.023741;, + 0.066620;0.996497;0.050553;, + 0.084091;0.995046;0.053040;, + 0.044356;0.997713;0.050997;, + 0.065857;0.996391;0.053552;, + 0.124455;0.956000;-0.265659;, + 0.111393;0.953661;-0.279505;, + 0.209231;0.620521;-0.755762;, + 0.202166;0.604272;-0.770704;, + 0.086533;-0.646984;-0.757578;, + 0.099480;-0.629370;-0.770712;, + -0.062339;-0.964010;-0.258453;, + -0.046842;-0.961800;-0.269716;, + -0.150955;-0.988130;0.028473;, + -0.150934;-0.988134;0.028459;, + -0.147935;-0.988715;0.023635;, + -0.147786;-0.988740;0.023485;, + 0.126220;0.990596;0.052802;, + 0.126230;0.990587;0.052941;, + 0.126000;0.990601;0.053241;, + 0.126034;0.990604;0.053090;, + 0.434871;0.864143;-0.253268;, + 0.434440;0.864503;-0.252779;, + 0.707652;0.435957;-0.556031;, + 0.707963;0.434870;-0.556486;, + 0.622928;-0.494797;-0.605918;, + 0.622220;-0.496185;-0.605510;, + 0.173126;-0.948318;-0.265935;, + 0.173414;-0.948201;-0.266162;, + -0.150966;-0.988129;0.028459;, + 0.000000;0.000000;0.000000;, + -0.147804;-0.988738;0.023485;, + 0.000000;0.000000;0.000000;, + 0.126137;0.990599;0.052942;, + 0.000000;0.000000;0.000000;, + 0.126041;0.990603;0.053090;, + 0.000000;0.000000;0.000000;, + 0.434513;0.864469;-0.252769;, + 0.000000;0.000000;0.000000;, + 0.708122;0.434772;-0.556361;, + 0.000000;0.000000;0.000000;, + 0.622456;-0.496064;-0.605366;, + 0.000000;0.000000;0.000000;, + 0.173545;-0.948179;-0.266155;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + -0.018863;-0.999442;0.027556;, + -0.006572;-0.999633;0.026300;, + -0.005666;-0.999727;0.022674;, + -0.248699;-0.968216;0.026578;, + -0.015616;-0.999390;0.031238;, + -0.025319;0.998395;0.050650;, + 0.066098;-0.997580;0.021569;, + -0.042764;-0.998828;0.022675;, + -0.007807;0.999481;0.031242;, + -0.012755;0.998615;0.051043;, + -0.998821;0.048519;0.001866;, + 0.927884;0.372361;0.019470;, + 0.144637;0.988193;0.050552;, + -0.980569;0.196041;0.007259;, + 0.104511;0.993244;0.050445;, + 0.230165;0.971807;0.051148;, + 0.294187;0.920854;-0.255893;, + 0.218378;0.974585;0.049949;, + 0.039744;0.997906;0.051034;, + 0.048957;0.979415;-0.195828;, + 0.189708;0.623043;-0.758833;, + -0.026463;0.963269;-0.267230;, + -0.108586;0.957374;-0.267665;, + 0.156612;0.626448;-0.763567;, + 0.174078;0.696311;-0.696311;, + 0.186763;-0.637994;-0.747050;, + 0.218208;-0.436518;-0.872833;, + 0.064604;-0.963871;-0.258416;, + 0.054467;-0.649569;-0.758349;, + 0.994813;-0.056417;-0.084639;, + -0.754470;-0.433600;-0.492713;, + 0.000000;0.000000;0.000000;, + -0.192465;-0.962258;-0.192398;, + -0.094981;-0.961678;-0.257204;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.075151;-0.996807;0.026985;, + 0.098848;-0.994778;0.025400;, + 0.058500;-0.998037;0.022359;, + 0.074782;-0.996977;0.021073;, + -0.001929;0.998746;0.050025;, + -0.041016;0.998050;0.047045;, + 0.044972;0.997716;0.050396;, + -0.002099;0.998873;0.047414;, + 0.060149;0.962373;-0.264992;, + 0.090039;0.964251;-0.249224;, + 0.127547;0.635478;-0.761511;, + 0.144407;0.656593;-0.740292;, + 0.179706;-0.645227;-0.742555;, + 0.157860;-0.669225;-0.726098;, + 0.138469;-0.957607;-0.252617;, + 0.107900;-0.964773;-0.239937;, + 0.075215;-0.996842;0.025453;, + 0.100493;-0.994654;0.023749;, + 0.055803;-0.998219;0.021100;, + 0.074876;-0.997001;0.019581;, + 0.001513;0.998890;0.047085;, + -0.039440;0.998255;0.043936;, + 0.047660;0.997740;0.047360;, + 0.001353;0.999013;0.044395;, + 0.064270;0.966182;-0.249723;, + 0.093420;0.967751;-0.233948;, + 0.134752;0.657496;-0.741310;, + 0.151981;0.680080;-0.717212;, + 0.186467;-0.665837;-0.722421;, + 0.159874;-0.695010;-0.701001;, + 0.141217;-0.960714;-0.238928;, + 0.108432;-0.968278;-0.225122;, + -0.047332;-0.998595;0.023843;, + -0.048014;-0.998542;0.024667;, + -0.046641;-0.998719;0.019614;, + -0.047146;-0.998679;0.020457;, + 0.048933;0.997836;0.043917;, + 0.049911;0.997714;0.045564;, + 0.047871;0.997869;0.044344;, + 0.048814;0.997750;0.045947;, + 0.097888;0.967333;-0.233847;, + 0.098608;0.965054;-0.242791;, + 0.178763;0.676990;-0.713953;, + 0.179827;0.665226;-0.724663;, + 0.108217;-0.699931;-0.705964;, + 0.112081;-0.685955;-0.718960;, + -0.000962;-0.974021;-0.226457;, + 0.001457;-0.972099;-0.234565;, + -0.047456;-0.998569;0.024667;, + -0.048404;-0.998489;0.026020;, + -0.046740;-0.998698;0.020458;, + -0.047285;-0.998649;0.021563;, + 0.048971;0.997760;0.045566;, + 0.050165;0.997586;0.048017;, + 0.047577;0.997810;0.045950;, + 0.048794;0.997626;0.048588;, + 0.099563;0.964962;-0.242767;, + 0.100796;0.961533;-0.255526;, + 0.180458;0.665148;-0.724578;, + 0.182239;0.645326;-0.741851;, + 0.111402;-0.686008;-0.719015;, + 0.116673;-0.665809;-0.736943;, + 0.000510;-0.972100;-0.234565;, + 0.003771;-0.969231;-0.246124;, + -0.020308;-0.999428;0.027056;, + 0.000000;-1.000000;0.000000;, + 0.005602;-0.999733;0.022397;, + 0.100149;-0.994607;0.026965;, + 0.248754;-0.968209;0.026332;, + 0.232462;-0.972363;0.021695;, + 0.242748;-0.970089;0.000000;, + -0.230987;0.971739;0.048673;, + 0.078858;0.945714;0.315287;, + 0.012617;0.998647;0.050443;, + -0.196676;0.979276;0.048337;, + -0.098741;0.993867;0.049789;, + -0.999680;0.025291;0.000000;, + -0.087091;0.994954;0.049811;, + 0.999999;0.001380;0.000460;, + 0.060579;0.968361;0.242090;, + -0.066284;0.961998;-0.264889;, + -0.184032;0.981686;0.049248;, + -0.067917;0.996422;0.050304;, + -0.131780;0.955667;-0.263315;, + 0.000000;1.000000;0.000000;, + -0.188674;0.629204;-0.753993;, + -0.188335;0.629247;-0.754041;, + 0.000000;0.000000;0.000000;, + -0.185271;-0.644549;-0.741776;, + 0.000000;0.000000;0.000000;, + -0.063698;-0.964958;-0.254556;, + -0.185428;-0.645389;-0.741005;, + 0.990506;-0.084411;-0.108506;, + 0.000000;0.000000;0.000000;, + 0.175085;-0.951835;-0.251705;, + -0.114354;-0.993103;0.025880;, + 0.110082;-0.993923;0.000000;, + -0.126127;-0.991637;0.027347;, + -0.065891;-0.967132;-0.245591;, + -0.105627;-0.994174;0.021467;, + 0.053172;-0.998585;0.000000;, + -0.113561;-0.993273;0.022639;, + 0.066536;0.996630;0.047971;, + 0.162683;0.984757;0.061547;, + 0.082614;0.994793;0.059683;, + 0.084764;0.995120;0.050515;, + 0.046121;0.997753;0.048594;, + 0.078128;0.995565;0.052399;, + 0.065827;0.996538;0.050774;, + 0.093405;0.993767;0.060848;, + 0.065691;0.996540;0.050918;, + 0.121594;0.959284;-0.254928;, + 0.135077;0.961238;-0.240365;, + 0.110117;0.957293;-0.267327;, + 0.207559;0.642024;-0.738055;, + 0.126050;0.443399;-0.887417;, + 0.199627;0.624407;-0.755158;, + 0.081483;-0.668158;-0.739544;, + -0.135892;-0.886130;-0.443065;, + 0.095779;-0.647798;-0.755768;, + 0.096064;-0.647254;-0.756197;, + -0.133936;-0.971749;-0.194332;, + -0.047677;-0.964646;-0.259201;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.993171;0.000000;0.116668;, + 0.112790;-0.993360;0.022693;, + 0.111483;-0.993454;0.024913;, + 0.113088;-0.993408;0.018734;, + 0.112207;-0.993472;0.020563;, + -0.100956;0.994004;0.041993;, + -0.096916;0.994229;0.045999;, + -0.104596;0.993618;0.042218;, + -0.099727;0.993934;0.046362;, + -0.180545;0.958222;-0.221841;, + -0.188657;0.951745;-0.242055;, + -0.287524;0.689860;-0.664396;, + -0.298372;0.639722;-0.708329;, + -0.138644;-0.718992;-0.681050;, + -0.153447;-0.676820;-0.719978;, + 0.033827;-0.975565;-0.217092;, + 0.029416;-0.971002;-0.237256;, + 0.113382;-0.993239;0.024907;, + 0.112148;-0.993328;0.026891;, + 0.113520;-0.993323;0.020560;, + 0.112656;-0.993385;0.022254;, + -0.099883;0.993936;0.045986;, + -0.095932;0.994142;0.049795;, + -0.103357;0.993564;0.046345;, + -0.098695;0.993851;0.050201;, + -0.186400;0.952162;-0.242161;, + -0.193799;0.945840;-0.260440;, + -0.297043;0.640000;-0.708636;, + -0.302641;0.610665;-0.731777;, + -0.155633;-0.676586;-0.719729;, + -0.165184;-0.646894;-0.744474;, + 0.027071;-0.971066;-0.237271;, + 0.023251;-0.966660;-0.255005;, + 0.068295;-0.997300;0.026999;, + 0.020148;-0.999429;0.027116;, + 0.063324;-0.997705;0.023982;, + 0.098009;-0.962266;-0.253846;, + 0.072409;-0.997125;0.022338;, + 0.071764;-0.997171;0.022340;, + 0.068015;-0.997427;0.022669;, + -0.014603;0.998641;0.050020;, + -0.001952;0.998745;0.050052;, + -0.054318;0.997482;0.045599;, + 0.003330;0.998747;0.049937;, + 0.052814;0.997333;0.050377;, + 0.036209;0.998075;0.050352;, + 0.003202;0.998841;0.048019;, + 0.059758;0.996943;0.050344;, + 0.035379;0.963515;-0.265307;, + 0.072141;0.961697;-0.264451;, + 0.097538;0.963385;-0.249752;, + 0.047516;0.639987;-0.766915;, + 0.094643;0.638969;-0.763388;, + 0.100734;0.647465;-0.755409;, + 0.059802;0.637761;-0.767909;, + 0.142909;-0.649172;-0.747096;, + 0.138774;-0.649646;-0.747464;, + 0.144139;-0.618277;-0.772630;, + 0.093779;-0.704073;-0.703909;, + 0.169694;-0.952726;-0.252028;, + 0.093601;-0.971903;-0.215973;, + -1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;; + + 358; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;, + 3;308,308,308;, + 3;309,309,309;, + 3;310,310,310;, + 3;311,311,311;, + 3;312,312,312;, + 3;313,313,313;, + 3;314,314,314;, + 3;315,315,315;, + 3;316,316,316;, + 3;317,317,317;, + 3;318,318,318;, + 3;319,319,319;, + 3;320,320,320;, + 3;321,321,321;, + 3;322,322,322;, + 3;323,323,323;, + 3;324,324,324;, + 3;325,325,325;, + 3;326,326,326;, + 3;327,327,327;, + 3;328,328,328;, + 3;329,329,329;, + 3;330,330,330;, + 3;331,331,331;, + 3;332,332,332;, + 3;333,333,333;, + 3;334,334,334;, + 3;335,335,335;, + 3;336,336,336;, + 3;337,337,337;, + 3;338,338,338;, + 3;339,339,339;, + 3;340,340,340;, + 3;341,341,341;, + 3;342,342,342;, + 3;343,343,343;, + 3;344,344,344;, + 3;345,345,345;, + 3;346,346,346;, + 3;347,347,347;, + 3;348,348,348;, + 3;349,349,349;, + 3;350,350,350;, + 3;351,351,351;, + 3;352,352,352;, + 3;353,353,353;, + 3;354,354,354;, + 3;355,355,355;, + 3;356,356,356;, + 3;357,357,357;; + } # MeshNormals + MeshTextureCoords { + 1074; + 0.258643;0.248266;, + 0.517184;0.248266;, + 0.524907;0.236202;, + 0.258643;0.248266;, + 0.524907;0.236202;, + 0.265082;0.236202;, + 0.517184;0.248266;, + 0.735307;0.248266;, + 0.744111;0.236202;, + 0.517184;0.248266;, + 0.744111;0.236202;, + 0.524907;0.236202;, + 0.735307;0.248266;, + 0.517184;0.248266;, + 0.524907;0.236202;, + 0.735307;0.248266;, + 0.524907;0.236202;, + 0.744111;0.236202;, + 0.517184;0.248266;, + 0.258643;0.248266;, + 0.265082;0.236202;, + 0.517184;0.248266;, + 0.265082;0.236202;, + 0.524907;0.236202;, + 0.258643;0.248266;, + 0.225397;0.248266;, + 0.231670;0.236202;, + 0.258643;0.248266;, + 0.231670;0.236202;, + 0.265082;0.236202;, + 0.225397;0.248266;, + 0.217757;0.248266;, + 0.223993;0.236202;, + 0.225397;0.248266;, + 0.223993;0.236202;, + 0.231670;0.236202;, + 0.217757;0.248266;, + 0.225397;0.248266;, + 0.231670;0.236202;, + 0.217757;0.248266;, + 0.231670;0.236202;, + 0.223993;0.236202;, + 0.225397;0.248266;, + 0.258643;0.248266;, + 0.265082;0.236202;, + 0.225397;0.248266;, + 0.265082;0.236202;, + 0.231670;0.236202;, + 0.265082;0.236202;, + 0.524907;0.236202;, + 0.720628;0.118101;, + 0.265082;0.236202;, + 0.720628;0.118101;, + 0.590676;0.118101;, + 0.524907;0.236202;, + 0.744111;0.236202;, + 0.830260;0.118101;, + 0.524907;0.236202;, + 0.830260;0.118101;, + 0.720628;0.118101;, + 0.744111;0.236202;, + 0.524907;0.236202;, + 0.720628;0.118101;, + 0.744111;0.236202;, + 0.720628;0.118101;, + 0.830260;0.118101;, + 0.524907;0.236202;, + 0.265082;0.236202;, + 0.590676;0.118101;, + 0.524907;0.236202;, + 0.590676;0.118101;, + 0.720628;0.118101;, + 0.265082;0.236202;, + 0.231670;0.236202;, + 0.573965;0.118101;, + 0.265082;0.236202;, + 0.573965;0.118101;, + 0.590676;0.118101;, + 0.231670;0.236202;, + 0.223993;0.236202;, + 0.570127;0.118101;, + 0.231670;0.236202;, + 0.570127;0.118101;, + 0.573965;0.118101;, + 0.223993;0.236202;, + 0.231670;0.236202;, + 0.573965;0.118101;, + 0.223993;0.236202;, + 0.573965;0.118101;, + 0.570127;0.118101;, + 0.231670;0.236202;, + 0.265082;0.236202;, + 0.590676;0.118101;, + 0.231670;0.236202;, + 0.590676;0.118101;, + 0.573965;0.118101;, + 0.590676;0.118101;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.830260;0.118101;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.830260;0.118101;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.830260;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.590676;0.118101;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.570127;0.118101;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.570127;0.118101;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.570127;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.515919;0.248324;, + 0.517184;0.248266;, + 0.258643;0.248266;, + 0.517148;0.248324;, + 0.517184;0.248266;, + 0.515919;0.248324;, + 0.517184;0.248266;, + 0.517148;0.248324;, + 0.735307;0.248266;, + 0.258643;0.248266;, + 0.258611;0.248324;, + 0.515919;0.248324;, + 0.735265;0.248324;, + 0.735307;0.248266;, + 0.734224;0.248324;, + 0.735307;0.248266;, + 0.735265;0.248324;, + 0.517184;0.248266;, + 0.722178;0.248324;, + 0.734224;0.248324;, + 0.735307;0.248266;, + 0.517148;0.248324;, + 0.722178;0.248324;, + 0.735307;0.248266;, + 0.517148;0.248324;, + 0.517184;0.248266;, + 0.518184;0.248324;, + 0.517184;0.248266;, + 0.517148;0.248324;, + 0.258643;0.248266;, + 0.735265;0.248324;, + 0.734399;0.248324;, + 0.517184;0.248266;, + 0.734399;0.248324;, + 0.724438;0.248324;, + 0.517184;0.248266;, + 0.564643;0.248324;, + 0.518184;0.248324;, + 0.517184;0.248266;, + 0.565528;0.248324;, + 0.564643;0.248324;, + 0.517184;0.248266;, + 0.724438;0.248324;, + 0.565528;0.248324;, + 0.517184;0.248266;, + 0.258611;0.248324;, + 0.258643;0.248266;, + 0.259845;0.248324;, + 0.258643;0.248266;, + 0.258611;0.248324;, + 0.225397;0.248266;, + 0.475789;0.248324;, + 0.259845;0.248324;, + 0.258643;0.248266;, + 0.517148;0.248324;, + 0.475789;0.248324;, + 0.258643;0.248266;, + 0.225365;0.248324;, + 0.225397;0.248266;, + 0.225525;0.248324;, + 0.225397;0.248266;, + 0.225365;0.248324;, + 0.217757;0.248266;, + 0.230565;0.248324;, + 0.225525;0.248324;, + 0.225397;0.248266;, + 0.258611;0.248324;, + 0.230565;0.248324;, + 0.225397;0.248266;, + 0.217761;0.248324;, + 0.217757;0.248266;, + 0.225365;0.248324;, + 0.217725;0.248324;, + 0.217757;0.248266;, + 0.217761;0.248324;, + 0.217757;0.248266;, + 0.217725;0.248324;, + 0.225397;0.248266;, + 0.225365;0.248324;, + 0.225397;0.248266;, + 0.225332;0.248324;, + 0.225397;0.248266;, + 0.225365;0.248324;, + 0.258643;0.248266;, + 0.218504;0.248324;, + 0.225332;0.248324;, + 0.225397;0.248266;, + 0.218435;0.248324;, + 0.218504;0.248324;, + 0.225397;0.248266;, + 0.217729;0.248324;, + 0.218435;0.248324;, + 0.225397;0.248266;, + 0.217725;0.248324;, + 0.217729;0.248324;, + 0.225397;0.248266;, + 0.258643;0.248266;, + 0.258455;0.248324;, + 0.258611;0.248324;, + 0.258455;0.248324;, + 0.258643;0.248266;, + 0.225365;0.248324;, + 0.518184;0.248324;, + 0.515919;0.248324;, + 0.517148;0.248324;, + 0.734399;0.248324;, + 0.734224;0.248324;, + 0.722178;0.248324;, + 0.734224;0.248324;, + 0.734399;0.248324;, + 0.735265;0.248324;, + 0.722178;0.248324;, + 0.724438;0.248324;, + 0.734399;0.248324;, + 0.724438;0.248324;, + 0.722178;0.248324;, + 0.517148;0.248324;, + 0.564643;0.248324;, + 0.515919;0.248324;, + 0.518184;0.248324;, + 0.515919;0.248324;, + 0.564643;0.248324;, + 0.517148;0.248324;, + 0.565528;0.248324;, + 0.517148;0.248324;, + 0.564643;0.248324;, + 0.517148;0.248324;, + 0.565528;0.248324;, + 0.724438;0.248324;, + 0.515919;0.248324;, + 0.258611;0.248324;, + 0.259845;0.248324;, + 0.259845;0.248324;, + 0.258611;0.248324;, + 0.258611;0.248324;, + 0.475789;0.248324;, + 0.515919;0.248324;, + 0.259845;0.248324;, + 0.515919;0.248324;, + 0.475789;0.248324;, + 0.517148;0.248324;, + 0.258611;0.248324;, + 0.230565;0.248324;, + 0.258611;0.248324;, + 0.230565;0.248324;, + 0.258611;0.248324;, + 0.225525;0.248324;, + 0.225525;0.248324;, + 0.258611;0.248324;, + 0.225332;0.248324;, + 0.225332;0.248324;, + 0.258611;0.248324;, + 0.225365;0.248324;, + 0.218504;0.248324;, + 0.225525;0.248324;, + 0.225332;0.248324;, + 0.225525;0.248324;, + 0.218504;0.248324;, + 0.225365;0.248324;, + 0.218435;0.248324;, + 0.225365;0.248324;, + 0.218504;0.248324;, + 0.225365;0.248324;, + 0.218435;0.248324;, + 0.217761;0.248324;, + 0.217729;0.248324;, + 0.217761;0.248324;, + 0.218435;0.248324;, + 0.217761;0.248324;, + 0.217729;0.248324;, + 0.217725;0.248324;, + 0.225365;0.248324;, + 0.258611;0.248324;, + 0.258455;0.248324;, + 0.062369;0.669840;, + 0.456729;0.669840;, + 0.455107;0.659926;, + 0.062369;0.669840;, + 0.455107;0.659926;, + 0.066326;0.659926;, + 0.456729;0.669840;, + 0.789439;0.669840;, + 0.783107;0.659926;, + 0.456729;0.669840;, + 0.783107;0.659926;, + 0.455107;0.659926;, + 0.789439;0.669840;, + 0.456729;0.669840;, + 0.455107;0.659926;, + 0.789439;0.669840;, + 0.455107;0.659926;, + 0.783107;0.659926;, + 0.456729;0.669840;, + 0.062369;0.669840;, + 0.066326;0.659926;, + 0.456729;0.669840;, + 0.066326;0.659926;, + 0.455107;0.659926;, + 0.062369;0.669840;, + 0.011652;0.669840;, + 0.016331;0.659926;, + 0.062369;0.669840;, + 0.016331;0.659926;, + 0.066326;0.659926;, + 0.011652;0.669840;, + 0.000000;0.669840;, + 0.004838;0.659926;, + 0.011652;0.669840;, + 0.004838;0.659926;, + 0.016331;0.659926;, + 0.000000;0.669840;, + 0.011652;0.669840;, + 0.016331;0.659926;, + 0.000000;0.669840;, + 0.016331;0.659926;, + 0.004838;0.659926;, + 0.011652;0.669840;, + 0.062369;0.669840;, + 0.066326;0.659926;, + 0.011652;0.669840;, + 0.066326;0.659926;, + 0.016331;0.659926;, + 0.066326;0.659926;, + 0.455107;0.659926;, + 0.453606;0.650060;, + 0.066326;0.659926;, + 0.453606;0.650060;, + 0.070540;0.650060;, + 0.455107;0.659926;, + 0.783107;0.659926;, + 0.776782;0.650060;, + 0.455107;0.659926;, + 0.776782;0.650060;, + 0.453606;0.650060;, + 0.783107;0.659926;, + 0.455107;0.659926;, + 0.453606;0.650060;, + 0.783107;0.659926;, + 0.453606;0.650060;, + 0.776782;0.650060;, + 0.455107;0.659926;, + 0.066326;0.659926;, + 0.070540;0.650060;, + 0.455107;0.659926;, + 0.070540;0.650060;, + 0.453606;0.650060;, + 0.066326;0.659926;, + 0.016331;0.659926;, + 0.021278;0.650060;, + 0.066326;0.659926;, + 0.021278;0.650060;, + 0.070540;0.650060;, + 0.016331;0.659926;, + 0.004838;0.659926;, + 0.009956;0.650060;, + 0.016331;0.659926;, + 0.009956;0.650060;, + 0.021278;0.650060;, + 0.004838;0.659926;, + 0.016331;0.659926;, + 0.021278;0.650060;, + 0.004838;0.659926;, + 0.021278;0.650060;, + 0.009956;0.650060;, + 0.016331;0.659926;, + 0.066326;0.659926;, + 0.070540;0.650060;, + 0.016331;0.659926;, + 0.070540;0.650060;, + 0.021278;0.650060;, + 0.070540;0.650060;, + 0.453606;0.650060;, + 0.481442;0.455188;, + 0.070540;0.650060;, + 0.481442;0.455188;, + 0.161276;0.455188;, + 0.453606;0.650060;, + 0.776782;0.650060;, + 0.751550;0.455188;, + 0.453606;0.650060;, + 0.751550;0.455188;, + 0.481442;0.455188;, + 0.776782;0.650060;, + 0.453606;0.650060;, + 0.481442;0.455188;, + 0.776782;0.650060;, + 0.481442;0.455188;, + 0.751550;0.455188;, + 0.453606;0.650060;, + 0.070540;0.650060;, + 0.161276;0.455188;, + 0.453606;0.650060;, + 0.161276;0.455188;, + 0.481442;0.455188;, + 0.070540;0.650060;, + 0.021278;0.650060;, + 0.120112;0.455188;, + 0.070540;0.650060;, + 0.120112;0.455188;, + 0.161276;0.455188;, + 0.021278;0.650060;, + 0.009956;0.650060;, + 0.110653;0.455188;, + 0.021278;0.650060;, + 0.110653;0.455188;, + 0.120112;0.455188;, + 0.009956;0.650060;, + 0.021278;0.650060;, + 0.120112;0.455188;, + 0.009956;0.650060;, + 0.120112;0.455188;, + 0.110653;0.455188;, + 0.021278;0.650060;, + 0.070540;0.650060;, + 0.161276;0.455188;, + 0.021278;0.650060;, + 0.161276;0.455188;, + 0.120112;0.455188;, + 0.161276;0.455188;, + 0.481442;0.455188;, + 0.509343;0.260365;, + 0.161276;0.455188;, + 0.509343;0.260365;, + 0.252047;0.260365;, + 0.481442;0.455188;, + 0.751550;0.455188;, + 0.726415;0.260365;, + 0.481442;0.455188;, + 0.726415;0.260365;, + 0.509343;0.260365;, + 0.751550;0.455188;, + 0.481442;0.455188;, + 0.509343;0.260365;, + 0.751550;0.455188;, + 0.509343;0.260365;, + 0.726415;0.260365;, + 0.481442;0.455188;, + 0.161276;0.455188;, + 0.252047;0.260365;, + 0.481442;0.455188;, + 0.252047;0.260365;, + 0.509343;0.260365;, + 0.161276;0.455188;, + 0.120112;0.455188;, + 0.218961;0.260365;, + 0.161276;0.455188;, + 0.218961;0.260365;, + 0.252047;0.260365;, + 0.120112;0.455188;, + 0.110653;0.455188;, + 0.211360;0.260365;, + 0.120112;0.455188;, + 0.211360;0.260365;, + 0.218961;0.260365;, + 0.110653;0.455188;, + 0.120112;0.455188;, + 0.218961;0.260365;, + 0.110653;0.455188;, + 0.218961;0.260365;, + 0.211360;0.260365;, + 0.120112;0.455188;, + 0.161276;0.455188;, + 0.252047;0.260365;, + 0.120112;0.455188;, + 0.252047;0.260365;, + 0.218961;0.260365;, + 0.456636;0.669889;, + 0.456729;0.669840;, + 0.062369;0.669840;, + 0.456772;0.669889;, + 0.456729;0.669840;, + 0.456636;0.669889;, + 0.456729;0.669840;, + 0.456772;0.669889;, + 0.789439;0.669840;, + 0.456636;0.669889;, + 0.062369;0.669840;, + 0.300579;0.669889;, + 0.062369;0.669840;, + 0.062411;0.669889;, + 0.300579;0.669889;, + 0.789369;0.669889;, + 0.789439;0.669840;, + 0.456772;0.669889;, + 0.789478;0.669889;, + 0.789439;0.669840;, + 0.789369;0.669889;, + 0.789439;0.669840;, + 0.789478;0.669889;, + 0.456729;0.669840;, + 0.456772;0.669889;, + 0.456729;0.669840;, + 0.456881;0.669889;, + 0.456729;0.669840;, + 0.456772;0.669889;, + 0.062369;0.669840;, + 0.474675;0.669889;, + 0.456881;0.669889;, + 0.456729;0.669840;, + 0.559144;0.669889;, + 0.474675;0.669889;, + 0.456729;0.669840;, + 0.559222;0.669889;, + 0.559144;0.669889;, + 0.456729;0.669840;, + 0.789385;0.669889;, + 0.559222;0.669889;, + 0.456729;0.669840;, + 0.789478;0.669889;, + 0.789385;0.669889;, + 0.456729;0.669840;, + 0.062411;0.669889;, + 0.062369;0.669840;, + 0.062547;0.669889;, + 0.062369;0.669840;, + 0.062411;0.669889;, + 0.011652;0.669840;, + 0.111215;0.669889;, + 0.062547;0.669889;, + 0.062369;0.669840;, + 0.456772;0.669889;, + 0.111215;0.669889;, + 0.062369;0.669840;, + 0.011718;0.669889;, + 0.011652;0.669840;, + 0.062411;0.669889;, + 0.011698;0.669889;, + 0.011652;0.669840;, + 0.011718;0.669889;, + 0.011652;0.669840;, + 0.011698;0.669889;, + 0.000000;0.669840;, + 0.000050;0.669889;, + 0.000000;0.669840;, + 0.011698;0.669889;, + 0.000047;0.669889;, + 0.000000;0.669840;, + 0.000050;0.669889;, + 0.000000;0.669840;, + 0.000047;0.669889;, + 0.011652;0.669840;, + 0.011698;0.669889;, + 0.011652;0.669840;, + 0.011695;0.669889;, + 0.011652;0.669840;, + 0.011698;0.669889;, + 0.062369;0.669840;, + 0.000279;0.669889;, + 0.011695;0.669889;, + 0.011652;0.669840;, + 0.000047;0.669889;, + 0.000279;0.669889;, + 0.011652;0.669840;, + 0.062369;0.669840;, + 0.062396;0.669889;, + 0.062411;0.669889;, + 0.062396;0.669889;, + 0.062369;0.669840;, + 0.011698;0.669889;, + 0.509343;0.260365;, + 0.516987;0.248350;, + 0.252047;0.260365;, + 0.515757;0.248350;, + 0.252047;0.260365;, + 0.516987;0.248350;, + 0.258449;0.248350;, + 0.252047;0.260365;, + 0.515757;0.248350;, + 0.252047;0.260365;, + 0.258449;0.248350;, + 0.218961;0.260365;, + 0.726415;0.260365;, + 0.735103;0.248350;, + 0.509343;0.260365;, + 0.734063;0.248350;, + 0.509343;0.260365;, + 0.735103;0.248350;, + 0.509343;0.260365;, + 0.734063;0.248350;, + 0.516987;0.248350;, + 0.509343;0.260365;, + 0.516987;0.248350;, + 0.726415;0.260365;, + 0.518023;0.248350;, + 0.726415;0.260365;, + 0.516987;0.248350;, + 0.733457;0.248350;, + 0.735103;0.248350;, + 0.726415;0.260365;, + 0.518023;0.248350;, + 0.733457;0.248350;, + 0.726415;0.260365;, + 0.252047;0.260365;, + 0.258449;0.248350;, + 0.509343;0.260365;, + 0.259683;0.248350;, + 0.509343;0.260365;, + 0.258449;0.248350;, + 0.426259;0.248350;, + 0.516987;0.248350;, + 0.509343;0.260365;, + 0.424688;0.248350;, + 0.426259;0.248350;, + 0.509343;0.260365;, + 0.259683;0.248350;, + 0.424688;0.248350;, + 0.509343;0.260365;, + 0.218961;0.260365;, + 0.225204;0.248350;, + 0.252047;0.260365;, + 0.225364;0.248350;, + 0.252047;0.260365;, + 0.225204;0.248350;, + 0.252047;0.260365;, + 0.225364;0.248350;, + 0.258449;0.248350;, + 0.211360;0.260365;, + 0.217565;0.248350;, + 0.218961;0.260365;, + 0.217599;0.248350;, + 0.218961;0.260365;, + 0.217565;0.248350;, + 0.218961;0.260365;, + 0.217599;0.248350;, + 0.225204;0.248350;, + 0.218961;0.260365;, + 0.225204;0.248350;, + 0.211360;0.260365;, + 0.225170;0.248350;, + 0.211360;0.260365;, + 0.225204;0.248350;, + 0.221875;0.248350;, + 0.217565;0.248350;, + 0.211360;0.260365;, + 0.225170;0.248350;, + 0.221875;0.248350;, + 0.211360;0.260365;, + 0.258294;0.248350;, + 0.218961;0.260365;, + 0.258449;0.248350;, + 0.218961;0.260365;, + 0.258294;0.248350;, + 0.225204;0.248350;, + 0.456881;0.669889;, + 0.300579;0.669889;, + 0.456772;0.669889;, + 0.559144;0.669889;, + 0.456636;0.669889;, + 0.300579;0.669889;, + 0.456636;0.669889;, + 0.559144;0.669889;, + 0.456772;0.669889;, + 0.300579;0.669889;, + 0.474675;0.669889;, + 0.559144;0.669889;, + 0.474675;0.669889;, + 0.300579;0.669889;, + 0.456881;0.669889;, + 0.559222;0.669889;, + 0.456772;0.669889;, + 0.559144;0.669889;, + 0.456772;0.669889;, + 0.559222;0.669889;, + 0.789369;0.669889;, + 0.789385;0.669889;, + 0.789369;0.669889;, + 0.559222;0.669889;, + 0.789369;0.669889;, + 0.789385;0.669889;, + 0.789478;0.669889;, + 0.300579;0.669889;, + 0.062411;0.669889;, + 0.062547;0.669889;, + 0.062547;0.669889;, + 0.062411;0.669889;, + 0.062411;0.669889;, + 0.300579;0.669889;, + 0.111215;0.669889;, + 0.456772;0.669889;, + 0.111215;0.669889;, + 0.300579;0.669889;, + 0.062547;0.669889;, + 0.062411;0.669889;, + 0.062411;0.669889;, + 0.011718;0.669889;, + 0.011718;0.669889;, + 0.062411;0.669889;, + 0.011698;0.669889;, + 0.011698;0.669889;, + 0.062411;0.669889;, + 0.000050;0.669889;, + 0.000050;0.669889;, + 0.062411;0.669889;, + 0.000047;0.669889;, + 0.011695;0.669889;, + 0.062411;0.669889;, + 0.011698;0.669889;, + 0.000279;0.669889;, + 0.062411;0.669889;, + 0.011695;0.669889;, + 0.062411;0.669889;, + 0.000279;0.669889;, + 0.000047;0.669889;, + 0.011698;0.669889;, + 0.062411;0.669889;, + 0.062396;0.669889;, + 0.516987;0.248350;, + 0.734063;0.248350;, + 0.516987;0.248350;, + 0.516987;0.248350;, + 0.734063;0.248350;, + 0.518023;0.248350;, + 0.733457;0.248350;, + 0.734063;0.248350;, + 0.735103;0.248350;, + 0.734063;0.248350;, + 0.733457;0.248350;, + 0.518023;0.248350;, + 0.258449;0.248350;, + 0.515757;0.248350;, + 0.258449;0.248350;, + 0.258449;0.248350;, + 0.515757;0.248350;, + 0.259683;0.248350;, + 0.426259;0.248350;, + 0.516987;0.248350;, + 0.516987;0.248350;, + 0.516987;0.248350;, + 0.426259;0.248350;, + 0.515757;0.248350;, + 0.424688;0.248350;, + 0.515757;0.248350;, + 0.426259;0.248350;, + 0.515757;0.248350;, + 0.424688;0.248350;, + 0.259683;0.248350;, + 0.258449;0.248350;, + 0.258449;0.248350;, + 0.225364;0.248350;, + 0.225204;0.248350;, + 0.258449;0.248350;, + 0.225364;0.248350;, + 0.258449;0.248350;, + 0.225204;0.248350;, + 0.217599;0.248350;, + 0.217565;0.248350;, + 0.258449;0.248350;, + 0.217599;0.248350;, + 0.225204;0.248350;, + 0.258449;0.248350;, + 0.225170;0.248350;, + 0.221875;0.248350;, + 0.258449;0.248350;, + 0.217565;0.248350;, + 0.258449;0.248350;, + 0.221875;0.248350;, + 0.225170;0.248350;, + 0.258449;0.248350;, + 0.225204;0.248350;, + 0.258294;0.248350;, + 0.691067;0.999512;, + 1.000000;0.999512;, + 0.691067;0.999512;, + 0.691067;0.999512;, + 0.691067;0.999512;, + 0.324876;0.999512;, + 0.324876;0.999512;, + 0.691067;0.999512;, + 0.324876;0.999512;, + 0.277787;0.999512;, + 0.324876;0.999512;, + 0.324876;0.999512;, + 0.277787;0.999512;, + 0.324876;0.999512;, + 0.277787;0.999512;, + 0.266966;1.000000;, + 0.277787;0.999512;, + 0.277787;0.999512;, + 0.324876;0.999512;, + 0.691067;0.999512;, + 0.573896;0.834627;, + 0.324876;0.999512;, + 0.573896;0.834627;, + 0.193620;0.834627;, + 0.691067;0.999512;, + 1.000000;0.999512;, + 0.894718;0.834627;, + 0.691067;0.999512;, + 0.894718;0.834627;, + 0.573896;0.834627;, + 1.000000;0.999512;, + 0.691067;0.999512;, + 0.573896;0.834627;, + 1.000000;0.999512;, + 0.573896;0.834627;, + 0.894718;0.834627;, + 0.691067;0.999512;, + 0.324876;0.999512;, + 0.193620;0.834627;, + 0.691067;0.999512;, + 0.193620;0.834627;, + 0.573896;0.834627;, + 0.324876;0.999512;, + 0.277787;0.999512;, + 0.144723;0.834627;, + 0.324876;0.999512;, + 0.144723;0.834627;, + 0.193620;0.834627;, + 0.277787;0.999512;, + 0.266966;1.000000;, + 0.133483;0.834627;, + 0.277787;0.999512;, + 0.133483;0.834627;, + 0.144723;0.834627;, + 0.266966;1.000000;, + 0.277787;0.999512;, + 0.144723;0.834627;, + 0.266966;1.000000;, + 0.144723;0.834627;, + 0.133483;0.834627;, + 0.277787;0.999512;, + 0.324876;0.999512;, + 0.193620;0.834627;, + 0.277787;0.999512;, + 0.193620;0.834627;, + 0.144723;0.834627;, + 0.193620;0.834627;, + 0.573896;0.834627;, + 0.456729;0.669840;, + 0.193620;0.834627;, + 0.456729;0.669840;, + 0.062369;0.669840;, + 0.573896;0.834627;, + 0.894718;0.834627;, + 0.789439;0.669840;, + 0.573896;0.834627;, + 0.789439;0.669840;, + 0.456729;0.669840;, + 0.894718;0.834627;, + 0.573896;0.834627;, + 0.456729;0.669840;, + 0.894718;0.834627;, + 0.456729;0.669840;, + 0.789439;0.669840;, + 0.573896;0.834627;, + 0.193620;0.834627;, + 0.062369;0.669840;, + 0.573896;0.834627;, + 0.062369;0.669840;, + 0.456729;0.669840;, + 0.193620;0.834627;, + 0.144723;0.834627;, + 0.011652;0.669840;, + 0.193620;0.834627;, + 0.011652;0.669840;, + 0.062369;0.669840;, + 0.144723;0.834627;, + 0.133483;0.834627;, + 0.000000;0.669840;, + 0.144723;0.834627;, + 0.000000;0.669840;, + 0.011652;0.669840;, + 0.133483;0.834627;, + 0.144723;0.834627;, + 0.011652;0.669840;, + 0.133483;0.834627;, + 0.011652;0.669840;, + 0.000000;0.669840;, + 0.144723;0.834627;, + 0.193620;0.834627;, + 0.062369;0.669840;, + 0.144723;0.834627;, + 0.062369;0.669840;, + 0.011652;0.669840;, + 0.456729;0.669840;, + 0.456702;0.669645;, + 0.062369;0.669840;, + 0.069217;0.669645;, + 0.062369;0.669840;, + 0.456702;0.669645;, + 0.062435;0.669645;, + 0.062369;0.669840;, + 0.069217;0.669645;, + 0.062369;0.669840;, + 0.062435;0.669645;, + 0.011652;0.669840;, + 0.789439;0.669840;, + 0.789331;0.669645;, + 0.456729;0.669840;, + 0.462421;0.669645;, + 0.456729;0.669840;, + 0.789331;0.669645;, + 0.456729;0.669840;, + 0.462421;0.669645;, + 0.456702;0.669645;, + 0.789439;0.669840;, + 0.456729;0.669840;, + 0.556308;0.669645;, + 0.783607;0.669645;, + 0.789439;0.669840;, + 0.556308;0.669645;, + 0.789439;0.669840;, + 0.783607;0.669645;, + 0.789331;0.669645;, + 0.456729;0.669840;, + 0.456702;0.669645;, + 0.556308;0.669645;, + 0.456729;0.669840;, + 0.062369;0.669840;, + 0.326719;0.669645;, + 0.449920;0.669645;, + 0.456729;0.669840;, + 0.326719;0.669645;, + 0.456729;0.669840;, + 0.449920;0.669645;, + 0.456702;0.669645;, + 0.062369;0.669840;, + 0.062435;0.669645;, + 0.326719;0.669645;, + 0.011652;0.669840;, + 0.011737;0.669645;, + 0.062369;0.669840;, + 0.061565;0.669645;, + 0.062369;0.669840;, + 0.011737;0.669645;, + 0.062369;0.669840;, + 0.061565;0.669645;, + 0.062435;0.669645;, + 0.011652;0.669840;, + 0.000000;0.669840;, + 0.001692;0.669645;, + 0.011536;0.669645;, + 0.011652;0.669840;, + 0.001692;0.669645;, + 0.011652;0.669840;, + 0.011536;0.669645;, + 0.011737;0.669645;, + 0.000000;0.669840;, + 0.000081;0.669645;, + 0.001692;0.669645;, + 0.011652;0.669840;, + 0.011737;0.669645;, + 0.000000;0.669840;, + 0.000283;0.669645;, + 0.000000;0.669840;, + 0.011737;0.669645;, + 0.000213;0.669645;, + 0.000081;0.669645;, + 0.000000;0.669840;, + 0.000283;0.669645;, + 0.000213;0.669645;, + 0.000000;0.669840;, + 0.012606;0.669645;, + 0.011652;0.669840;, + 0.062435;0.669645;, + 0.011652;0.669840;, + 0.012606;0.669645;, + 0.011737;0.669645;, + 0.789331;0.669645;, + 0.456702;0.669645;, + 0.462421;0.669645;, + 0.456702;0.669645;, + 0.789331;0.669645;, + 0.783607;0.669645;, + 0.556308;0.669645;, + 0.456702;0.669645;, + 0.783607;0.669645;, + 0.456702;0.669645;, + 0.556308;0.669645;, + 0.456702;0.669645;, + 0.456702;0.669645;, + 0.456702;0.669645;, + 0.449920;0.669645;, + 0.326719;0.669645;, + 0.456702;0.669645;, + 0.449920;0.669645;, + 0.456702;0.669645;, + 0.326719;0.669645;, + 0.069217;0.669645;, + 0.069217;0.669645;, + 0.326719;0.669645;, + 0.062435;0.669645;, + 0.069217;0.669645;, + 0.062435;0.669645;, + 0.011737;0.669645;, + 0.011737;0.669645;, + 0.062435;0.669645;, + 0.061565;0.669645;, + 0.069217;0.669645;, + 0.011737;0.669645;, + 0.011536;0.669645;, + 0.001692;0.669645;, + 0.069217;0.669645;, + 0.011536;0.669645;, + 0.069217;0.669645;, + 0.001692;0.669645;, + 0.062435;0.669645;, + 0.062435;0.669645;, + 0.001692;0.669645;, + 0.000081;0.669645;, + 0.000213;0.669645;, + 0.062435;0.669645;, + 0.000081;0.669645;, + 0.062435;0.669645;, + 0.000213;0.669645;, + 0.000283;0.669645;, + 0.000283;0.669645;, + 0.011737;0.669645;, + 0.012606;0.669645;, + 0.062435;0.669645;, + 0.000283;0.669645;, + 0.012606;0.669645;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/NSEW.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/NSEW.X new file mode 100644 index 0000000..f89188a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/NSEW.X @@ -0,0 +1,4931 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 1428; + -0.016244;-0.081661;0.000410;, + -0.008144;-0.081661;0.014440;, + -0.008144;-0.540348;0.014440;, + -0.016244;-0.081661;0.000410;, + -0.008144;-0.540348;0.014440;, + -0.016244;-0.540348;0.000410;, + -0.008144;-0.081661;0.014440;, + 0.008057;-0.081661;0.014440;, + 0.008057;-0.540348;0.014440;, + -0.008144;-0.081661;0.014440;, + 0.008057;-0.540348;0.014440;, + -0.008144;-0.540348;0.014440;, + 0.008057;-0.081661;0.014440;, + 0.016157;-0.081661;0.000410;, + 0.016157;-0.540348;0.000410;, + 0.008057;-0.081661;0.014440;, + 0.016157;-0.540348;0.000410;, + 0.008057;-0.540348;0.014440;, + 0.016157;-0.081661;0.000410;, + 0.008057;-0.081661;-0.013620;, + 0.008057;-0.540348;-0.013620;, + 0.016157;-0.081661;0.000410;, + 0.008057;-0.540348;-0.013620;, + 0.016157;-0.540348;0.000410;, + 0.008057;-0.081661;-0.013620;, + -0.008144;-0.081661;-0.013620;, + -0.008144;-0.540348;-0.013620;, + 0.008057;-0.081661;-0.013620;, + -0.008144;-0.540348;-0.013620;, + 0.008057;-0.540348;-0.013620;, + -0.008144;-0.081661;-0.013620;, + -0.016244;-0.081661;0.000410;, + -0.016244;-0.540348;0.000410;, + -0.008144;-0.081661;-0.013620;, + -0.016244;-0.540348;0.000410;, + -0.008144;-0.540348;-0.013620;, + 0.008057;-0.081661;0.014440;, + -0.008144;-0.081661;0.014440;, + -0.016244;-0.081661;0.000410;, + 0.016157;-0.081661;0.000410;, + 0.008057;-0.081661;0.014440;, + -0.016244;-0.081661;0.000410;, + 0.008057;-0.081661;-0.013620;, + 0.016157;-0.081661;0.000410;, + -0.016244;-0.081661;0.000410;, + -0.008144;-0.081661;-0.013620;, + 0.008057;-0.081661;-0.013620;, + -0.016244;-0.081661;0.000410;, + 0.008057;-0.540348;0.014440;, + 0.016157;-0.540348;0.000410;, + -0.008144;-0.540348;0.014440;, + 0.016157;-0.540348;0.000410;, + 0.008057;-0.540348;-0.013620;, + -0.008144;-0.540348;0.014440;, + 0.008057;-0.540348;-0.013620;, + -0.008144;-0.540348;-0.013620;, + -0.008144;-0.540348;0.014440;, + -0.008144;-0.540348;-0.013620;, + -0.016244;-0.540348;0.000410;, + -0.008144;-0.540348;0.014440;, + 0.005070;-0.209447;-0.130761;, + 0.005070;-0.209447;-0.126235;, + 0.005070;-0.158482;-0.127240;, + 0.005070;-0.182077;-0.147105;, + 0.005070;-0.209447;-0.130761;, + 0.005070;-0.158482;-0.127240;, + 0.005070;-0.182077;-0.147105;, + 0.005070;-0.158482;-0.127240;, + 0.005070;-0.158482;-0.131766;, + 0.005070;-0.182077;-0.147105;, + 0.005070;-0.158482;-0.131766;, + 0.005070;-0.170280;-0.144339;, + 0.005070;-0.167213;-0.188844;, + 0.005070;-0.182077;-0.147105;, + 0.005070;-0.170280;-0.144339;, + 0.005070;-0.167213;-0.188844;, + 0.005070;-0.170280;-0.144339;, + 0.005070;-0.158482;-0.191108;, + 0.005070;-0.167213;-0.188844;, + 0.005070;-0.158482;-0.191108;, + 0.005070;-0.174055;-0.233601;, + 0.005070;-0.192459;-0.221532;, + 0.005070;-0.167213;-0.188844;, + 0.005070;-0.174055;-0.233601;, + 0.005070;-0.192459;-0.221532;, + 0.005070;-0.174055;-0.233601;, + 0.005070;-0.204020;-0.247180;, + 0.005070;-0.192459;-0.221532;, + 0.005070;-0.204020;-0.247180;, + 0.005070;-0.237997;-0.228824;, + 0.005070;-0.219121;-0.182559;, + 0.005070;-0.192459;-0.221532;, + 0.005070;-0.237997;-0.228824;, + 0.005070;-0.241064;-0.133275;, + 0.005070;-0.219121;-0.182559;, + 0.005070;-0.237997;-0.228824;, + 0.005070;-0.241064;-0.133275;, + 0.005070;-0.237997;-0.228824;, + 0.005070;-0.267255;-0.158671;, + 0.005070;-0.275277;-0.116429;, + 0.005070;-0.241064;-0.133275;, + 0.005070;-0.267255;-0.158671;, + 0.005070;-0.275277;-0.116429;, + 0.005070;-0.267255;-0.158671;, + 0.005070;-0.289669;-0.143836;, + 0.005070;-0.309725;-0.134784;, + 0.005070;-0.275277;-0.116429;, + 0.005070;-0.289669;-0.143836;, + 0.005070;-0.322703;-0.180798;, + 0.005070;-0.309725;-0.134784;, + 0.005070;-0.289669;-0.143836;, + 0.005070;-0.322703;-0.180798;, + 0.005070;-0.289669;-0.143836;, + 0.005070;-0.314208;-0.182307;, + 0.005070;-0.312085;-0.228824;, + 0.005070;-0.322703;-0.180798;, + 0.005070;-0.314208;-0.182307;, + 0.005070;-0.312085;-0.228824;, + 0.005070;-0.314208;-0.182307;, + 0.005070;-0.297927;-0.224801;, + 0.005070;-0.264659;-0.242654;, + 0.005070;-0.264659;-0.247430;, + 0.005070;-0.322703;-0.247430;, + 0.005070;-0.297927;-0.224801;, + 0.005070;-0.264659;-0.242654;, + 0.005070;-0.322703;-0.247430;, + 0.005070;-0.312085;-0.228824;, + 0.005070;-0.297927;-0.224801;, + 0.005070;-0.322703;-0.247430;, + 0.005070;-0.322703;-0.242654;, + 0.005070;-0.312085;-0.228824;, + 0.005070;-0.322703;-0.247430;, + 0.005070;-0.158482;-0.127240;, + 0.005070;-0.209447;-0.126235;, + -0.004779;-0.209447;-0.126235;, + 0.005070;-0.158482;-0.127240;, + -0.004779;-0.209447;-0.126235;, + -0.004779;-0.158482;-0.127240;, + 0.005070;-0.209447;-0.126235;, + 0.005070;-0.209447;-0.130761;, + -0.004779;-0.209447;-0.130761;, + 0.005070;-0.209447;-0.126235;, + -0.004779;-0.209447;-0.130761;, + -0.004779;-0.209447;-0.126235;, + 0.005070;-0.209447;-0.130761;, + 0.005070;-0.182077;-0.147105;, + -0.004779;-0.182077;-0.147105;, + 0.005070;-0.209447;-0.130761;, + -0.004779;-0.182077;-0.147105;, + -0.004779;-0.209447;-0.130761;, + 0.005070;-0.182077;-0.147105;, + 0.005070;-0.167213;-0.188844;, + -0.004779;-0.167213;-0.188844;, + 0.005070;-0.182077;-0.147105;, + -0.004779;-0.167213;-0.188844;, + -0.004779;-0.182077;-0.147105;, + 0.005070;-0.167213;-0.188844;, + 0.005070;-0.192459;-0.221532;, + -0.004779;-0.192459;-0.221532;, + 0.005070;-0.167213;-0.188844;, + -0.004779;-0.192459;-0.221532;, + -0.004779;-0.167213;-0.188844;, + 0.005070;-0.192459;-0.221532;, + 0.005070;-0.219121;-0.182559;, + -0.004779;-0.192459;-0.221532;, + 0.005070;-0.241064;-0.133275;, + 0.005070;-0.275277;-0.116429;, + -0.004779;-0.275277;-0.116429;, + 0.005070;-0.275277;-0.116429;, + 0.005070;-0.309725;-0.134784;, + -0.004779;-0.309725;-0.134784;, + 0.005070;-0.275277;-0.116429;, + -0.004779;-0.309725;-0.134784;, + -0.004779;-0.275277;-0.116429;, + 0.005070;-0.309725;-0.134784;, + 0.005070;-0.322703;-0.180798;, + -0.004779;-0.322703;-0.180798;, + 0.005070;-0.309725;-0.134784;, + -0.004779;-0.322703;-0.180798;, + -0.004779;-0.309725;-0.134784;, + 0.005070;-0.322703;-0.180798;, + 0.005070;-0.312085;-0.228824;, + -0.004779;-0.312085;-0.228824;, + 0.005070;-0.322703;-0.180798;, + -0.004779;-0.312085;-0.228824;, + -0.004779;-0.322703;-0.180798;, + 0.005070;-0.312085;-0.228824;, + 0.005070;-0.322703;-0.242654;, + -0.004779;-0.322703;-0.242654;, + 0.005070;-0.312085;-0.228824;, + -0.004779;-0.322703;-0.242654;, + -0.004779;-0.312085;-0.228824;, + 0.005070;-0.322703;-0.242654;, + 0.005070;-0.322703;-0.247430;, + -0.004779;-0.322703;-0.247430;, + 0.005070;-0.322703;-0.242654;, + -0.004779;-0.322703;-0.247430;, + -0.004779;-0.322703;-0.242654;, + 0.005070;-0.322703;-0.247430;, + 0.005070;-0.264659;-0.247430;, + -0.004779;-0.264659;-0.247430;, + 0.005070;-0.322703;-0.247430;, + -0.004779;-0.264659;-0.247430;, + -0.004779;-0.322703;-0.247430;, + 0.005070;-0.264659;-0.247430;, + 0.005070;-0.264659;-0.242654;, + -0.004779;-0.264659;-0.242654;, + 0.005070;-0.264659;-0.247430;, + -0.004779;-0.264659;-0.242654;, + -0.004779;-0.264659;-0.247430;, + 0.005070;-0.264659;-0.242654;, + 0.005070;-0.297927;-0.224801;, + -0.004779;-0.297927;-0.224801;, + 0.005070;-0.264659;-0.242654;, + -0.004779;-0.297927;-0.224801;, + -0.004779;-0.264659;-0.242654;, + 0.005070;-0.297927;-0.224801;, + 0.005070;-0.314208;-0.182307;, + -0.004779;-0.314208;-0.182307;, + 0.005070;-0.297927;-0.224801;, + -0.004779;-0.314208;-0.182307;, + -0.004779;-0.297927;-0.224801;, + 0.005070;-0.314208;-0.182307;, + 0.005070;-0.289669;-0.143836;, + -0.004779;-0.289669;-0.143836;, + 0.005070;-0.314208;-0.182307;, + -0.004779;-0.289669;-0.143836;, + -0.004779;-0.314208;-0.182307;, + 0.005070;-0.289669;-0.143836;, + 0.005070;-0.267255;-0.158671;, + -0.004779;-0.267255;-0.158671;, + 0.005070;-0.289669;-0.143836;, + -0.004779;-0.267255;-0.158671;, + -0.004779;-0.289669;-0.143836;, + 0.005070;-0.267255;-0.158671;, + 0.005070;-0.237997;-0.228824;, + -0.004779;-0.267255;-0.158671;, + 0.005070;-0.237997;-0.228824;, + 0.005070;-0.204020;-0.247180;, + -0.004779;-0.204020;-0.247180;, + 0.005070;-0.204020;-0.247180;, + 0.005070;-0.174055;-0.233601;, + -0.004779;-0.174055;-0.233601;, + 0.005070;-0.204020;-0.247180;, + -0.004779;-0.174055;-0.233601;, + -0.004779;-0.204020;-0.247180;, + 0.005070;-0.174055;-0.233601;, + 0.005070;-0.158482;-0.191108;, + -0.004779;-0.158482;-0.191108;, + 0.005070;-0.174055;-0.233601;, + -0.004779;-0.158482;-0.191108;, + -0.004779;-0.174055;-0.233601;, + 0.005070;-0.158482;-0.191108;, + 0.005070;-0.170280;-0.144339;, + -0.004779;-0.170280;-0.144339;, + 0.005070;-0.158482;-0.191108;, + -0.004779;-0.170280;-0.144339;, + -0.004779;-0.158482;-0.191108;, + 0.005070;-0.170280;-0.144339;, + 0.005070;-0.158482;-0.131766;, + -0.004779;-0.158482;-0.131766;, + 0.005070;-0.170280;-0.144339;, + -0.004779;-0.158482;-0.131766;, + -0.004779;-0.170280;-0.144339;, + 0.005070;-0.158482;-0.131766;, + 0.005070;-0.158482;-0.127240;, + -0.004779;-0.158482;-0.127240;, + 0.005070;-0.158482;-0.131766;, + -0.004779;-0.158482;-0.127240;, + -0.004779;-0.158482;-0.131766;, + -0.004779;-0.158482;-0.127240;, + -0.004779;-0.209447;-0.126235;, + -0.004779;-0.209447;-0.130761;, + -0.004779;-0.158482;-0.127240;, + -0.004779;-0.209447;-0.130761;, + -0.004779;-0.182077;-0.147105;, + -0.004779;-0.158482;-0.131766;, + -0.004779;-0.158482;-0.127240;, + -0.004779;-0.182077;-0.147105;, + -0.004779;-0.170280;-0.144339;, + -0.004779;-0.158482;-0.131766;, + -0.004779;-0.182077;-0.147105;, + -0.004779;-0.170280;-0.144339;, + -0.004779;-0.182077;-0.147105;, + -0.004779;-0.167213;-0.188844;, + -0.004779;-0.158482;-0.191108;, + -0.004779;-0.170280;-0.144339;, + -0.004779;-0.167213;-0.188844;, + -0.004779;-0.174055;-0.233601;, + -0.004779;-0.158482;-0.191108;, + -0.004779;-0.167213;-0.188844;, + -0.004779;-0.174055;-0.233601;, + -0.004779;-0.167213;-0.188844;, + -0.004779;-0.192459;-0.221532;, + -0.004779;-0.204020;-0.247180;, + -0.004779;-0.174055;-0.233601;, + -0.004779;-0.192459;-0.221532;, + 0.005070;-0.237997;-0.228824;, + -0.004779;-0.204020;-0.247180;, + -0.004779;-0.192459;-0.221532;, + 0.005070;-0.237997;-0.228824;, + -0.004779;-0.192459;-0.221532;, + 0.005070;-0.219121;-0.182559;, + -0.004779;-0.267255;-0.158671;, + 0.005070;-0.237997;-0.228824;, + 0.005070;-0.219121;-0.182559;, + -0.004779;-0.267255;-0.158671;, + 0.005070;-0.219121;-0.182559;, + -0.004779;-0.241064;-0.133275;, + -0.004779;-0.267255;-0.158671;, + -0.004779;-0.241064;-0.133275;, + -0.004779;-0.275277;-0.116429;, + -0.004779;-0.289669;-0.143836;, + -0.004779;-0.267255;-0.158671;, + -0.004779;-0.275277;-0.116429;, + -0.004779;-0.289669;-0.143836;, + -0.004779;-0.275277;-0.116429;, + -0.004779;-0.309725;-0.134784;, + -0.004779;-0.289669;-0.143836;, + -0.004779;-0.309725;-0.134784;, + -0.004779;-0.322703;-0.180798;, + -0.004779;-0.314208;-0.182307;, + -0.004779;-0.289669;-0.143836;, + -0.004779;-0.322703;-0.180798;, + -0.004779;-0.314208;-0.182307;, + -0.004779;-0.322703;-0.180798;, + -0.004779;-0.312085;-0.228824;, + -0.004779;-0.297927;-0.224801;, + -0.004779;-0.314208;-0.182307;, + -0.004779;-0.312085;-0.228824;, + -0.004779;-0.322703;-0.247430;, + -0.004779;-0.264659;-0.247430;, + -0.004779;-0.264659;-0.242654;, + -0.004779;-0.322703;-0.247430;, + -0.004779;-0.264659;-0.242654;, + -0.004779;-0.297927;-0.224801;, + -0.004779;-0.322703;-0.247430;, + -0.004779;-0.297927;-0.224801;, + -0.004779;-0.312085;-0.228824;, + -0.004779;-0.322703;-0.247430;, + -0.004779;-0.312085;-0.228824;, + -0.004779;-0.322703;-0.242654;, + 0.005070;-0.219121;-0.182559;, + 0.005070;-0.241064;-0.133275;, + 0.001255;-0.239137;-0.137605;, + 0.001255;-0.239137;-0.137605;, + 0.005070;-0.241064;-0.133275;, + 0.001255;-0.241064;-0.133275;, + -0.004779;-0.241064;-0.133275;, + 0.005070;-0.219121;-0.182559;, + -0.001515;-0.239137;-0.137605;, + -0.001515;-0.241064;-0.133275;, + -0.004779;-0.241064;-0.133275;, + -0.001515;-0.239137;-0.137605;, + -0.004779;-0.241064;-0.133275;, + -0.001515;-0.241064;-0.133275;, + -0.004779;-0.275277;-0.116429;, + 0.001255;-0.239137;-0.137605;, + -0.001515;-0.239137;-0.137605;, + 0.005070;-0.219121;-0.182559;, + 0.001255;-0.241064;-0.133275;, + 0.005070;-0.241064;-0.133275;, + 0.001255;-0.245600;-0.131042;, + 0.005070;-0.241064;-0.133275;, + -0.004779;-0.275277;-0.116429;, + 0.001255;-0.245600;-0.131042;, + 0.001255;-0.245600;-0.131042;, + -0.004779;-0.275277;-0.116429;, + -0.001515;-0.245600;-0.131042;, + -0.001515;-0.241064;-0.133275;, + -0.001515;-0.245600;-0.131042;, + -0.004779;-0.275277;-0.116429;, + -0.001515;-0.245600;-0.008882;, + -0.001515;-0.239137;-0.008882;, + 0.001255;-0.239137;-0.008882;, + -0.001515;-0.245600;-0.008882;, + 0.001255;-0.239137;-0.008882;, + 0.001255;-0.245600;-0.008882;, + 0.001255;-0.239137;-0.008882;, + 0.001255;-0.239137;-0.137605;, + 0.001255;-0.245600;-0.008882;, + 0.001255;-0.239137;-0.137605;, + 0.001255;-0.239137;-0.008882;, + -0.001515;-0.239137;-0.008882;, + 0.001255;-0.241064;-0.133275;, + 0.001255;-0.245600;-0.008882;, + 0.001255;-0.239137;-0.137605;, + -0.001515;-0.239137;-0.137605;, + -0.001515;-0.239137;-0.008882;, + -0.001515;-0.241064;-0.133275;, + 0.001255;-0.239137;-0.137605;, + -0.001515;-0.239137;-0.008882;, + -0.001515;-0.239137;-0.137605;, + 0.001255;-0.245600;-0.008882;, + 0.001255;-0.245600;-0.131042;, + -0.001515;-0.245600;-0.008882;, + 0.001255;-0.245600;-0.131042;, + 0.001255;-0.245600;-0.008882;, + 0.001255;-0.241064;-0.133275;, + -0.001515;-0.245600;-0.131042;, + -0.001515;-0.245600;-0.008882;, + 0.001255;-0.245600;-0.131042;, + -0.001515;-0.245600;-0.008882;, + -0.001515;-0.245600;-0.131042;, + -0.001515;-0.239137;-0.008882;, + -0.001515;-0.239137;-0.008882;, + -0.001515;-0.245600;-0.131042;, + -0.001515;-0.241064;-0.133275;, + 0.094720;-0.320426;0.005615;, + 0.087316;-0.272715;0.005615;, + 0.091265;-0.272715;0.005615;, + 0.094720;-0.320426;0.005615;, + 0.091265;-0.272715;0.005615;, + 0.113725;-0.304445;0.005615;, + 0.103112;-0.209717;0.005615;, + 0.098916;-0.209717;0.005615;, + 0.098916;-0.165942;0.005615;, + 0.115206;-0.184239;0.005615;, + 0.103112;-0.209717;0.005615;, + 0.098916;-0.165942;0.005615;, + 0.098916;-0.165942;0.005615;, + 0.237629;-0.165942;0.005615;, + 0.237629;-0.170343;0.005615;, + 0.098916;-0.165942;0.005615;, + 0.237629;-0.170343;0.005615;, + 0.221585;-0.171964;0.005615;, + 0.237629;-0.316257;0.005615;, + 0.237629;-0.320426;0.005615;, + 0.094720;-0.320426;0.005615;, + 0.219611;-0.313478;0.005615;, + 0.237629;-0.316257;0.005615;, + 0.094720;-0.320426;0.005615;, + 0.139394;-0.280589;0.005615;, + 0.134952;-0.280589;0.005615;, + 0.134952;-0.202074;0.005615;, + 0.146305;-0.257197;0.005615;, + 0.139394;-0.280589;0.005615;, + 0.134952;-0.202074;0.005615;, + 0.146305;-0.257197;0.005615;, + 0.134952;-0.202074;0.005615;, + 0.139394;-0.202074;0.005615;, + 0.146305;-0.257197;0.005615;, + 0.139394;-0.202074;0.005615;, + 0.146305;-0.225698;0.005615;, + 0.146305;-0.257197;0.005615;, + 0.146305;-0.225698;0.005615;, + 0.175430;-0.237742;0.005615;, + 0.175183;-0.245616;0.005615;, + 0.146305;-0.257197;0.005615;, + 0.175430;-0.237742;0.005615;, + 0.152970;-0.174049;0.005615;, + 0.115206;-0.184239;0.005615;, + 0.098916;-0.165942;0.005615;, + 0.152970;-0.174049;0.005615;, + 0.098916;-0.165942;0.005615;, + 0.221585;-0.171964;0.005615;, + 0.175430;-0.174049;0.005615;, + 0.152970;-0.174049;0.005615;, + 0.221585;-0.171964;0.005615;, + 0.175430;-0.174049;0.005615;, + 0.221585;-0.171964;0.005615;, + 0.213687;-0.190725;0.005615;, + 0.175430;-0.237742;0.005615;, + 0.175430;-0.174049;0.005615;, + 0.213687;-0.190725;0.005615;, + 0.175430;-0.237742;0.005615;, + 0.213687;-0.190725;0.005615;, + 0.213687;-0.295875;0.005615;, + 0.175183;-0.245616;0.005615;, + 0.175430;-0.237742;0.005615;, + 0.213687;-0.295875;0.005615;, + 0.175430;-0.294254;0.005615;, + 0.175183;-0.245616;0.005615;, + 0.213687;-0.295875;0.005615;, + 0.175430;-0.294254;0.005615;, + 0.213687;-0.295875;0.005615;, + 0.219611;-0.313478;0.005615;, + 0.159387;-0.312320;0.005615;, + 0.175430;-0.294254;0.005615;, + 0.219611;-0.313478;0.005615;, + 0.159387;-0.312320;0.005615;, + 0.219611;-0.313478;0.005615;, + 0.094720;-0.320426;0.005615;, + 0.113725;-0.304445;0.005615;, + 0.159387;-0.312320;0.005615;, + 0.094720;-0.320426;0.005615;, + 0.175430;-0.174049;0.005615;, + 0.175430;-0.237742;0.005615;, + 0.175430;-0.237742;-0.004378;, + 0.175430;-0.174049;0.005615;, + 0.175430;-0.237742;-0.004378;, + 0.175430;-0.174049;-0.004378;, + 0.175430;-0.237742;0.005615;, + 0.146305;-0.225698;0.005615;, + 0.146305;-0.225698;-0.004378;, + 0.175430;-0.237742;0.005615;, + 0.146305;-0.225698;-0.004378;, + 0.175430;-0.237742;-0.004378;, + 0.146305;-0.225698;0.005615;, + 0.139394;-0.202074;0.005615;, + 0.139394;-0.202074;-0.004378;, + 0.146305;-0.225698;0.005615;, + 0.139394;-0.202074;-0.004378;, + 0.146305;-0.225698;-0.004378;, + 0.139394;-0.202074;0.005615;, + 0.134952;-0.202074;0.005615;, + 0.134952;-0.202074;-0.004378;, + 0.139394;-0.202074;0.005615;, + 0.134952;-0.202074;-0.004378;, + 0.139394;-0.202074;-0.004378;, + 0.134952;-0.280589;0.005615;, + 0.139394;-0.280589;0.005615;, + 0.139394;-0.280589;-0.004378;, + 0.134952;-0.280589;0.005615;, + 0.139394;-0.280589;-0.004378;, + 0.134952;-0.280589;-0.004378;, + 0.139394;-0.280589;0.005615;, + 0.146305;-0.257197;0.005615;, + 0.146305;-0.257197;-0.004378;, + 0.139394;-0.280589;0.005615;, + 0.146305;-0.257197;-0.004378;, + 0.139394;-0.280589;-0.004378;, + 0.146305;-0.257197;0.005615;, + 0.175183;-0.245616;0.005615;, + 0.175183;-0.245616;-0.004378;, + 0.146305;-0.257197;0.005615;, + 0.175183;-0.245616;-0.004378;, + 0.146305;-0.257197;-0.004378;, + 0.175183;-0.245616;0.005615;, + 0.175430;-0.294254;0.005615;, + 0.175430;-0.294254;-0.004378;, + 0.175183;-0.245616;0.005615;, + 0.175430;-0.294254;-0.004378;, + 0.175183;-0.245616;-0.004378;, + 0.175430;-0.294254;0.005615;, + 0.159387;-0.312320;0.005615;, + 0.159387;-0.312320;-0.004378;, + 0.175430;-0.294254;0.005615;, + 0.159387;-0.312320;-0.004378;, + 0.175430;-0.294254;-0.004378;, + 0.159387;-0.312320;0.005615;, + 0.113725;-0.304445;0.005615;, + 0.113725;-0.304445;-0.004378;, + 0.159387;-0.312320;0.005615;, + 0.113725;-0.304445;-0.004378;, + 0.159387;-0.312320;-0.004378;, + 0.113725;-0.304445;0.005615;, + 0.091265;-0.272715;0.005615;, + 0.091265;-0.272715;-0.004378;, + 0.113725;-0.304445;0.005615;, + 0.091265;-0.272715;-0.004378;, + 0.113725;-0.304445;-0.004378;, + 0.091265;-0.272715;0.005615;, + 0.087316;-0.272715;0.005615;, + 0.087316;-0.272715;-0.004378;, + 0.091265;-0.272715;0.005615;, + 0.087316;-0.272715;-0.004378;, + 0.091265;-0.272715;-0.004378;, + 0.087316;-0.272715;0.005615;, + 0.094720;-0.320426;0.005615;, + 0.094720;-0.320426;-0.004378;, + 0.087316;-0.272715;0.005615;, + 0.094720;-0.320426;-0.004378;, + 0.087316;-0.272715;-0.004378;, + 0.094720;-0.320426;0.005615;, + 0.237629;-0.320426;0.005615;, + 0.237629;-0.320426;-0.004378;, + 0.094720;-0.320426;0.005615;, + 0.237629;-0.320426;-0.004378;, + 0.094720;-0.320426;-0.004378;, + 0.237629;-0.320426;0.005615;, + 0.237629;-0.316257;0.005615;, + 0.237629;-0.316257;-0.004378;, + 0.237629;-0.320426;0.005615;, + 0.237629;-0.316257;-0.004378;, + 0.237629;-0.320426;-0.004378;, + 0.237629;-0.316257;0.005615;, + 0.219611;-0.313478;0.005615;, + 0.219611;-0.313478;-0.004378;, + 0.237629;-0.316257;0.005615;, + 0.219611;-0.313478;-0.004378;, + 0.237629;-0.316257;-0.004378;, + 0.219611;-0.313478;0.005615;, + 0.213687;-0.295875;0.005615;, + 0.213687;-0.295875;-0.004378;, + 0.219611;-0.313478;0.005615;, + 0.213687;-0.295875;-0.004378;, + 0.219611;-0.313478;-0.004378;, + 0.213687;-0.295875;0.005615;, + 0.213687;-0.190725;0.005615;, + 0.213687;-0.190725;-0.004378;, + 0.213687;-0.295875;0.005615;, + 0.213687;-0.190725;-0.004378;, + 0.213687;-0.295875;-0.004378;, + 0.213687;-0.190725;0.005615;, + 0.221585;-0.171964;0.005615;, + 0.221585;-0.171964;-0.004378;, + 0.213687;-0.190725;0.005615;, + 0.221585;-0.171964;-0.004378;, + 0.213687;-0.190725;-0.004378;, + 0.221585;-0.171964;0.005615;, + 0.237629;-0.170343;0.005615;, + 0.237629;-0.170343;-0.004378;, + 0.221585;-0.171964;0.005615;, + 0.237629;-0.170343;-0.004378;, + 0.221585;-0.171964;-0.004378;, + 0.237629;-0.170343;0.005615;, + 0.237629;-0.165942;0.005615;, + 0.237629;-0.165942;-0.004378;, + 0.237629;-0.170343;0.005615;, + 0.237629;-0.165942;-0.004378;, + 0.237629;-0.170343;-0.004378;, + 0.237629;-0.165942;0.005615;, + 0.098916;-0.165942;0.005615;, + 0.098916;-0.165942;-0.004378;, + 0.237629;-0.165942;0.005615;, + 0.098916;-0.165942;-0.004378;, + 0.237629;-0.165942;-0.004378;, + 0.098916;-0.165942;0.005615;, + 0.098916;-0.209717;0.005615;, + 0.098916;-0.209717;-0.004378;, + 0.098916;-0.165942;0.005615;, + 0.098916;-0.209717;-0.004378;, + 0.098916;-0.165942;-0.004378;, + 0.098916;-0.209717;0.005615;, + 0.103112;-0.209717;0.005615;, + 0.103112;-0.209717;-0.004378;, + 0.098916;-0.209717;0.005615;, + 0.103112;-0.209717;-0.004378;, + 0.098916;-0.209717;-0.004378;, + 0.103112;-0.209717;0.005615;, + 0.115206;-0.184239;0.005615;, + 0.115206;-0.184239;-0.004378;, + 0.103112;-0.209717;0.005615;, + 0.115206;-0.184239;-0.004378;, + 0.103112;-0.209717;-0.004378;, + 0.115206;-0.184239;0.005615;, + 0.152970;-0.174049;0.005615;, + 0.152970;-0.174049;-0.004378;, + 0.115206;-0.184239;0.005615;, + 0.152970;-0.174049;-0.004378;, + 0.115206;-0.184239;-0.004378;, + 0.152970;-0.174049;0.005615;, + 0.175430;-0.174049;0.005615;, + 0.175430;-0.174049;-0.004378;, + 0.152970;-0.174049;0.005615;, + 0.175430;-0.174049;-0.004378;, + 0.152970;-0.174049;-0.004378;, + 0.091265;-0.272715;-0.004378;, + 0.087316;-0.272715;-0.004378;, + 0.094720;-0.320426;-0.004378;, + 0.113725;-0.304445;-0.004378;, + 0.091265;-0.272715;-0.004378;, + 0.094720;-0.320426;-0.004378;, + 0.098916;-0.165942;-0.004378;, + 0.098916;-0.209717;-0.004378;, + 0.103112;-0.209717;-0.004378;, + 0.098916;-0.165942;-0.004378;, + 0.103112;-0.209717;-0.004378;, + 0.115206;-0.184239;-0.004378;, + 0.237629;-0.170343;-0.004378;, + 0.237629;-0.165942;-0.004378;, + 0.098916;-0.165942;-0.004378;, + 0.221585;-0.171964;-0.004378;, + 0.237629;-0.170343;-0.004378;, + 0.098916;-0.165942;-0.004378;, + 0.094720;-0.320426;-0.004378;, + 0.237629;-0.320426;-0.004378;, + 0.237629;-0.316257;-0.004378;, + 0.094720;-0.320426;-0.004378;, + 0.237629;-0.316257;-0.004378;, + 0.219611;-0.313478;-0.004378;, + 0.134952;-0.202074;-0.004378;, + 0.134952;-0.280589;-0.004378;, + 0.139394;-0.280589;-0.004378;, + 0.134952;-0.202074;-0.004378;, + 0.139394;-0.280589;-0.004378;, + 0.146305;-0.257197;-0.004378;, + 0.139394;-0.202074;-0.004378;, + 0.134952;-0.202074;-0.004378;, + 0.146305;-0.257197;-0.004378;, + 0.146305;-0.225698;-0.004378;, + 0.139394;-0.202074;-0.004378;, + 0.146305;-0.257197;-0.004378;, + 0.175430;-0.237742;-0.004378;, + 0.146305;-0.225698;-0.004378;, + 0.146305;-0.257197;-0.004378;, + 0.175430;-0.237742;-0.004378;, + 0.146305;-0.257197;-0.004378;, + 0.175183;-0.245616;-0.004378;, + 0.098916;-0.165942;-0.004378;, + 0.115206;-0.184239;-0.004378;, + 0.152970;-0.174049;-0.004378;, + 0.221585;-0.171964;-0.004378;, + 0.098916;-0.165942;-0.004378;, + 0.152970;-0.174049;-0.004378;, + 0.221585;-0.171964;-0.004378;, + 0.152970;-0.174049;-0.004378;, + 0.175430;-0.174049;-0.004378;, + 0.213687;-0.190725;-0.004378;, + 0.221585;-0.171964;-0.004378;, + 0.175430;-0.174049;-0.004378;, + 0.213687;-0.190725;-0.004378;, + 0.175430;-0.174049;-0.004378;, + 0.175430;-0.237742;-0.004378;, + 0.213687;-0.295875;-0.004378;, + 0.213687;-0.190725;-0.004378;, + 0.175430;-0.237742;-0.004378;, + 0.213687;-0.295875;-0.004378;, + 0.175430;-0.237742;-0.004378;, + 0.175183;-0.245616;-0.004378;, + 0.213687;-0.295875;-0.004378;, + 0.175183;-0.245616;-0.004378;, + 0.175430;-0.294254;-0.004378;, + 0.219611;-0.313478;-0.004378;, + 0.213687;-0.295875;-0.004378;, + 0.175430;-0.294254;-0.004378;, + 0.219611;-0.313478;-0.004378;, + 0.175430;-0.294254;-0.004378;, + 0.159387;-0.312320;-0.004378;, + 0.094720;-0.320426;-0.004378;, + 0.219611;-0.313478;-0.004378;, + 0.159387;-0.312320;-0.004378;, + 0.094720;-0.320426;-0.004378;, + 0.159387;-0.312320;-0.004378;, + 0.113725;-0.304445;-0.004378;, + 0.134952;-0.202074;0.005615;, + 0.134952;-0.280589;0.005615;, + 0.134952;-0.245600;0.001733;, + 0.134952;-0.280589;0.005615;, + 0.134952;-0.280589;-0.004378;, + 0.134952;-0.245600;0.001733;, + 0.134952;-0.245600;0.001733;, + 0.134952;-0.280589;-0.004378;, + 0.134952;-0.245600;-0.001037;, + 0.134952;-0.239137;0.001733;, + 0.134952;-0.202074;0.005615;, + 0.134952;-0.245600;0.001733;, + 0.134952;-0.202074;0.005615;, + 0.134952;-0.239137;0.001733;, + 0.134952;-0.202074;-0.004378;, + 0.134952;-0.280589;-0.004378;, + 0.134952;-0.202074;-0.004378;, + 0.134952;-0.245600;-0.001037;, + 0.134952;-0.245600;-0.001037;, + 0.134952;-0.202074;-0.004378;, + 0.134952;-0.239137;-0.001037;, + 0.134952;-0.202074;-0.004378;, + 0.134952;-0.239137;0.001733;, + 0.134952;-0.239137;-0.001037;, + 0.009246;-0.245600;-0.001037;, + 0.009246;-0.239137;-0.001037;, + 0.009246;-0.239137;0.001733;, + 0.009246;-0.245600;-0.001037;, + 0.009246;-0.239137;0.001733;, + 0.009246;-0.245600;0.001733;, + 0.009246;-0.245600;0.001733;, + 0.134952;-0.245600;0.001733;, + 0.009246;-0.245600;-0.001037;, + 0.134952;-0.245600;-0.001037;, + 0.009246;-0.245600;-0.001037;, + 0.134952;-0.245600;0.001733;, + 0.009246;-0.239137;0.001733;, + 0.134952;-0.239137;0.001733;, + 0.009246;-0.245600;0.001733;, + 0.134952;-0.239137;0.001733;, + 0.009246;-0.239137;0.001733;, + 0.009246;-0.239137;-0.001037;, + 0.134952;-0.245600;0.001733;, + 0.009246;-0.245600;0.001733;, + 0.134952;-0.239137;0.001733;, + 0.009246;-0.245600;-0.001037;, + 0.134952;-0.245600;-0.001037;, + 0.009246;-0.239137;-0.001037;, + 0.134952;-0.239137;-0.001037;, + 0.009246;-0.239137;-0.001037;, + 0.134952;-0.245600;-0.001037;, + 0.134952;-0.239137;-0.001037;, + 0.134952;-0.239137;0.001733;, + 0.009246;-0.239137;-0.001037;, + 0.004918;-0.162022;0.170017;, + 0.004918;-0.162022;0.114449;, + 0.004918;-0.166032;0.114449;, + 0.004918;-0.162022;0.170017;, + 0.004918;-0.166032;0.114449;, + 0.004918;-0.181369;0.138085;, + 0.004918;-0.315152;0.114449;, + 0.004918;-0.319163;0.114449;, + 0.004918;-0.319163;0.173287;, + 0.004918;-0.309489;0.133307;, + 0.004918;-0.315152;0.114449;, + 0.004918;-0.319163;0.173287;, + 0.004918;-0.309489;0.133307;, + 0.004918;-0.319163;0.173287;, + 0.004918;-0.315152;0.173287;, + 0.004918;-0.309489;0.133307;, + 0.004918;-0.315152;0.173287;, + 0.004918;-0.309961;0.151913;, + 0.004918;-0.309489;0.133307;, + 0.004918;-0.309961;0.151913;, + 0.004918;-0.293445;0.146885;, + 0.004918;-0.293445;0.138085;, + 0.004918;-0.309489;0.133307;, + 0.004918;-0.293445;0.146885;, + 0.004918;-0.293445;0.138085;, + 0.004918;-0.293445;0.146885;, + 0.004918;-0.190807;0.146885;, + 0.004918;-0.181369;0.138085;, + 0.004918;-0.293445;0.138085;, + 0.004918;-0.190807;0.146885;, + 0.004918;-0.162022;0.170017;, + 0.004918;-0.181369;0.138085;, + 0.004918;-0.190807;0.146885;, + 0.004918;-0.263715;0.265818;, + 0.004918;-0.162022;0.170017;, + 0.004918;-0.190807;0.146885;, + 0.004918;-0.263715;0.265818;, + 0.004918;-0.190807;0.146885;, + 0.004918;-0.321523;0.270342;, + 0.004918;-0.321523;0.270342;, + 0.004918;-0.321523;0.274618;, + 0.004918;-0.191987;0.274618;, + 0.004918;-0.263715;0.265818;, + 0.004918;-0.321523;0.270342;, + 0.004918;-0.191987;0.274618;, + 0.004918;-0.191987;0.265818;, + 0.004918;-0.263715;0.265818;, + 0.004918;-0.191987;0.274618;, + 0.004918;-0.166032;0.295738;, + 0.004918;-0.162022;0.295738;, + 0.004918;-0.162022;0.240925;, + 0.004918;-0.171931;0.279394;, + 0.004918;-0.166032;0.295738;, + 0.004918;-0.162022;0.240925;, + 0.004918;-0.171931;0.279394;, + 0.004918;-0.162022;0.240925;, + 0.004918;-0.166032;0.240925;, + 0.004918;-0.171931;0.279394;, + 0.004918;-0.166032;0.240925;, + 0.004918;-0.170280;0.259783;, + 0.004918;-0.171931;0.279394;, + 0.004918;-0.170280;0.259783;, + 0.004918;-0.191987;0.265818;, + 0.004918;-0.191987;0.274618;, + 0.004918;-0.171931;0.279394;, + 0.004918;-0.191987;0.265818;, + 0.004918;-0.162022;0.170017;, + 0.004918;-0.263715;0.265818;, + -0.004930;-0.263715;0.265818;, + 0.004918;-0.162022;0.170017;, + -0.004930;-0.263715;0.265818;, + -0.004930;-0.162022;0.170017;, + 0.004918;-0.263715;0.265818;, + 0.004918;-0.191987;0.265818;, + -0.004930;-0.191987;0.265818;, + 0.004918;-0.263715;0.265818;, + -0.004930;-0.191987;0.265818;, + -0.004930;-0.263715;0.265818;, + 0.004918;-0.191987;0.265818;, + 0.004918;-0.170280;0.259783;, + -0.004930;-0.170280;0.259783;, + 0.004918;-0.191987;0.265818;, + -0.004930;-0.170280;0.259783;, + -0.004930;-0.191987;0.265818;, + 0.004918;-0.170280;0.259783;, + 0.004918;-0.166032;0.240925;, + -0.004930;-0.166032;0.240925;, + 0.004918;-0.170280;0.259783;, + -0.004930;-0.166032;0.240925;, + -0.004930;-0.170280;0.259783;, + 0.004918;-0.166032;0.240925;, + 0.004918;-0.162022;0.240925;, + -0.004930;-0.162022;0.240925;, + 0.004918;-0.166032;0.240925;, + -0.004930;-0.162022;0.240925;, + -0.004930;-0.166032;0.240925;, + 0.004918;-0.162022;0.240925;, + 0.004918;-0.162022;0.295738;, + -0.004930;-0.162022;0.295738;, + 0.004918;-0.162022;0.240925;, + -0.004930;-0.162022;0.295738;, + -0.004930;-0.162022;0.240925;, + 0.004918;-0.162022;0.295738;, + 0.004918;-0.166032;0.295738;, + -0.004930;-0.166032;0.295738;, + 0.004918;-0.162022;0.295738;, + -0.004930;-0.166032;0.295738;, + -0.004930;-0.162022;0.295738;, + 0.004918;-0.166032;0.295738;, + 0.004918;-0.171931;0.279394;, + -0.004930;-0.171931;0.279394;, + 0.004918;-0.166032;0.295738;, + -0.004930;-0.171931;0.279394;, + -0.004930;-0.166032;0.295738;, + 0.004918;-0.171931;0.279394;, + 0.004918;-0.191987;0.274618;, + -0.004930;-0.191987;0.274618;, + 0.004918;-0.171931;0.279394;, + -0.004930;-0.191987;0.274618;, + -0.004930;-0.171931;0.279394;, + 0.004918;-0.191987;0.274618;, + 0.004918;-0.321523;0.274618;, + -0.004930;-0.321523;0.274618;, + 0.004918;-0.191987;0.274618;, + -0.004930;-0.321523;0.274618;, + -0.004930;-0.191987;0.274618;, + 0.004918;-0.321523;0.274618;, + 0.004918;-0.321523;0.270342;, + -0.004930;-0.321523;0.270342;, + 0.004918;-0.321523;0.274618;, + -0.004930;-0.321523;0.270342;, + -0.004930;-0.321523;0.274618;, + 0.004918;-0.321523;0.270342;, + 0.004918;-0.190807;0.146885;, + -0.004930;-0.190807;0.146885;, + 0.004918;-0.321523;0.270342;, + -0.004930;-0.190807;0.146885;, + -0.004930;-0.321523;0.270342;, + 0.004918;-0.190807;0.146885;, + 0.004918;-0.293445;0.146885;, + -0.004930;-0.293445;0.146885;, + 0.004918;-0.190807;0.146885;, + -0.004930;-0.293445;0.146885;, + -0.004930;-0.190807;0.146885;, + 0.004918;-0.293445;0.146885;, + 0.004918;-0.309961;0.151913;, + -0.004930;-0.309961;0.151913;, + 0.004918;-0.293445;0.146885;, + -0.004930;-0.309961;0.151913;, + -0.004930;-0.293445;0.146885;, + 0.004918;-0.309961;0.151913;, + 0.004918;-0.315152;0.173287;, + -0.004930;-0.315152;0.173287;, + 0.004918;-0.309961;0.151913;, + -0.004930;-0.315152;0.173287;, + -0.004930;-0.309961;0.151913;, + 0.004918;-0.315152;0.173287;, + 0.004918;-0.319163;0.173287;, + -0.004930;-0.319163;0.173287;, + 0.004918;-0.315152;0.173287;, + -0.004930;-0.319163;0.173287;, + -0.004930;-0.315152;0.173287;, + 0.004918;-0.319163;0.173287;, + 0.004918;-0.319163;0.114449;, + -0.004930;-0.319163;0.114449;, + 0.004918;-0.319163;0.173287;, + -0.004930;-0.319163;0.114449;, + -0.004930;-0.319163;0.173287;, + 0.004918;-0.319163;0.114449;, + 0.004918;-0.315152;0.114449;, + -0.004930;-0.315152;0.114449;, + 0.004918;-0.319163;0.114449;, + -0.004930;-0.315152;0.114449;, + -0.004930;-0.319163;0.114449;, + 0.004918;-0.315152;0.114449;, + 0.004918;-0.309489;0.133307;, + -0.004930;-0.309489;0.133307;, + 0.004918;-0.315152;0.114449;, + -0.004930;-0.309489;0.133307;, + -0.004930;-0.315152;0.114449;, + 0.004918;-0.309489;0.133307;, + 0.004918;-0.293445;0.138085;, + -0.004930;-0.293445;0.138085;, + 0.004918;-0.309489;0.133307;, + -0.004930;-0.293445;0.138085;, + -0.004930;-0.309489;0.133307;, + 0.004918;-0.181369;0.138085;, + 0.004918;-0.166032;0.114449;, + -0.004930;-0.166032;0.114449;, + 0.004918;-0.181369;0.138085;, + -0.004930;-0.166032;0.114449;, + -0.004930;-0.181369;0.138085;, + 0.004918;-0.166032;0.114449;, + 0.004918;-0.162022;0.114449;, + -0.004930;-0.162022;0.114449;, + 0.004918;-0.166032;0.114449;, + -0.004930;-0.162022;0.114449;, + -0.004930;-0.166032;0.114449;, + 0.004918;-0.162022;0.114449;, + 0.004918;-0.162022;0.170017;, + -0.004930;-0.162022;0.170017;, + 0.004918;-0.162022;0.114449;, + -0.004930;-0.162022;0.170017;, + -0.004930;-0.162022;0.114449;, + -0.004930;-0.166032;0.114449;, + -0.004930;-0.162022;0.114449;, + -0.004930;-0.162022;0.170017;, + -0.004930;-0.181369;0.138085;, + -0.004930;-0.166032;0.114449;, + -0.004930;-0.162022;0.170017;, + -0.004930;-0.319163;0.173287;, + -0.004930;-0.319163;0.114449;, + -0.004930;-0.315152;0.114449;, + -0.004930;-0.319163;0.173287;, + -0.004930;-0.315152;0.114449;, + -0.004930;-0.309489;0.133307;, + -0.004930;-0.315152;0.173287;, + -0.004930;-0.319163;0.173287;, + -0.004930;-0.309489;0.133307;, + -0.004930;-0.309961;0.151913;, + -0.004930;-0.315152;0.173287;, + -0.004930;-0.309489;0.133307;, + -0.004930;-0.293445;0.146885;, + -0.004930;-0.309961;0.151913;, + -0.004930;-0.309489;0.133307;, + -0.004930;-0.293445;0.146885;, + -0.004930;-0.309489;0.133307;, + -0.004930;-0.293445;0.138085;, + -0.004930;-0.190807;0.146885;, + -0.004930;-0.293445;0.146885;, + -0.004930;-0.293445;0.138085;, + -0.004930;-0.190807;0.146885;, + -0.004930;-0.293445;0.138085;, + -0.004930;-0.181369;0.138085;, + -0.004930;-0.190807;0.146885;, + -0.004930;-0.181369;0.138085;, + -0.004930;-0.162022;0.170017;, + -0.004930;-0.190807;0.146885;, + -0.004930;-0.162022;0.170017;, + -0.004930;-0.263715;0.265818;, + -0.004930;-0.321523;0.270342;, + -0.004930;-0.190807;0.146885;, + -0.004930;-0.263715;0.265818;, + -0.004930;-0.191987;0.274618;, + -0.004930;-0.321523;0.274618;, + -0.004930;-0.321523;0.270342;, + -0.004930;-0.191987;0.274618;, + -0.004930;-0.321523;0.270342;, + -0.004930;-0.263715;0.265818;, + -0.004930;-0.191987;0.274618;, + -0.004930;-0.263715;0.265818;, + -0.004930;-0.191987;0.265818;, + -0.004930;-0.162022;0.240925;, + -0.004930;-0.162022;0.295738;, + -0.004930;-0.166032;0.295738;, + -0.004930;-0.162022;0.240925;, + -0.004930;-0.166032;0.295738;, + -0.004930;-0.171931;0.279394;, + -0.004930;-0.166032;0.240925;, + -0.004930;-0.162022;0.240925;, + -0.004930;-0.171931;0.279394;, + -0.004930;-0.170280;0.259783;, + -0.004930;-0.166032;0.240925;, + -0.004930;-0.171931;0.279394;, + -0.004930;-0.191987;0.265818;, + -0.004930;-0.170280;0.259783;, + -0.004930;-0.171931;0.279394;, + -0.004930;-0.191987;0.265818;, + -0.004930;-0.171931;0.279394;, + -0.004930;-0.191987;0.274618;, + 0.004918;-0.293445;0.138085;, + 0.004918;-0.181369;0.138085;, + 0.001401;-0.245600;0.138085;, + 0.004918;-0.293445;0.138085;, + 0.001401;-0.245600;0.138085;, + -0.004930;-0.293445;0.138085;, + 0.001401;-0.245600;0.138085;, + 0.004918;-0.181369;0.138085;, + 0.001401;-0.239137;0.138085;, + 0.004918;-0.181369;0.138085;, + -0.004930;-0.181369;0.138085;, + 0.001401;-0.239137;0.138085;, + -0.004930;-0.181369;0.138085;, + -0.001369;-0.239137;0.138085;, + 0.001401;-0.239137;0.138085;, + -0.004930;-0.181369;0.138085;, + -0.004930;-0.293445;0.138085;, + -0.001369;-0.245600;0.138085;, + -0.001369;-0.245600;0.138085;, + -0.004930;-0.293445;0.138085;, + 0.001401;-0.245600;0.138085;, + -0.001369;-0.245600;0.138085;, + -0.001369;-0.239137;0.138085;, + -0.004930;-0.181369;0.138085;, + 0.001401;-0.245600;0.009724;, + 0.001401;-0.239137;0.009724;, + -0.001369;-0.239137;0.009724;, + 0.001401;-0.245600;0.009724;, + -0.001369;-0.239137;0.009724;, + -0.001369;-0.245600;0.009724;, + 0.001401;-0.245600;0.009724;, + 0.001401;-0.245600;0.138085;, + 0.001401;-0.239137;0.009724;, + 0.001401;-0.239137;0.138085;, + 0.001401;-0.239137;0.009724;, + 0.001401;-0.245600;0.138085;, + 0.001401;-0.239137;0.138085;, + -0.001369;-0.239137;0.138085;, + 0.001401;-0.239137;0.009724;, + -0.001369;-0.245600;0.009724;, + -0.001369;-0.245600;0.138085;, + 0.001401;-0.245600;0.009724;, + 0.001401;-0.245600;0.138085;, + 0.001401;-0.245600;0.009724;, + -0.001369;-0.245600;0.138085;, + -0.001369;-0.239137;0.009724;, + -0.001369;-0.239137;0.138085;, + -0.001369;-0.245600;0.009724;, + -0.001369;-0.239137;0.138085;, + -0.001369;-0.239137;0.009724;, + 0.001401;-0.239137;0.009724;, + -0.001369;-0.245600;0.138085;, + -0.001369;-0.245600;0.009724;, + -0.001369;-0.239137;0.138085;, + -0.325791;-0.165399;0.005151;, + -0.287103;-0.165399;0.005151;, + -0.287103;-0.169509;0.005151;, + -0.325791;-0.165399;0.005151;, + -0.287103;-0.169509;0.005151;, + -0.302919;-0.180241;0.005151;, + -0.310949;-0.187547;0.005151;, + -0.325791;-0.165399;0.005151;, + -0.302919;-0.180241;0.005151;, + -0.258147;-0.320893;0.005151;, + -0.310949;-0.187547;0.005151;, + -0.302919;-0.180241;0.005151;, + -0.258147;-0.320893;0.005151;, + -0.302919;-0.180241;0.005151;, + -0.270800;-0.265637;0.005151;, + -0.254254;-0.169509;0.005151;, + -0.254254;-0.165399;0.005151;, + -0.178093;-0.165399;0.005151;, + -0.237465;-0.179556;0.005151;, + -0.254254;-0.169509;0.005151;, + -0.178093;-0.165399;0.005151;, + -0.237465;-0.179556;0.005151;, + -0.178093;-0.165399;0.005151;, + -0.178093;-0.169509;0.005151;, + -0.237465;-0.179556;0.005151;, + -0.178093;-0.169509;0.005151;, + -0.201939;-0.189374;0.005151;, + -0.237465;-0.179556;0.005151;, + -0.201939;-0.189374;0.005151;, + -0.210942;-0.211750;0.005151;, + -0.270800;-0.265637;0.005151;, + -0.237465;-0.179556;0.005151;, + -0.210942;-0.211750;0.005151;, + -0.163007;-0.169509;0.005151;, + -0.163007;-0.165399;0.005151;, + -0.097066;-0.165399;0.005151;, + -0.149381;-0.176587;0.005151;, + -0.163007;-0.169509;0.005151;, + -0.097066;-0.165399;0.005151;, + -0.149381;-0.176587;0.005151;, + -0.097066;-0.165399;0.005151;, + -0.112395;-0.187091;0.005151;, + -0.149381;-0.176587;0.005151;, + -0.112395;-0.187091;0.005151;, + -0.167387;-0.320893;0.005151;, + -0.185150;-0.269518;0.005151;, + -0.149381;-0.176587;0.005151;, + -0.167387;-0.320893;0.005151;, + -0.185150;-0.269518;0.005151;, + -0.167387;-0.320893;0.005151;, + -0.171767;-0.320893;0.005151;, + -0.185150;-0.269518;0.005151;, + -0.171767;-0.320893;0.005151;, + -0.215078;-0.223167;0.005151;, + -0.210942;-0.211750;0.005151;, + -0.185150;-0.269518;0.005151;, + -0.215078;-0.223167;0.005151;, + -0.270800;-0.265637;0.005151;, + -0.210942;-0.211750;0.005151;, + -0.215078;-0.223167;0.005151;, + -0.270800;-0.265637;0.005151;, + -0.215078;-0.223167;0.005151;, + -0.254254;-0.320893;0.005151;, + -0.258147;-0.320893;0.005151;, + -0.270800;-0.265637;0.005151;, + -0.254254;-0.320893;0.005151;, + -0.325791;-0.165399;0.005151;, + -0.310949;-0.187547;0.005151;, + -0.310949;-0.187547;-0.004493;, + -0.325791;-0.165399;0.005151;, + -0.310949;-0.187547;-0.004493;, + -0.325791;-0.165399;-0.004493;, + -0.310949;-0.187547;0.005151;, + -0.258147;-0.320893;0.005151;, + -0.258147;-0.320893;-0.004493;, + -0.310949;-0.187547;0.005151;, + -0.258147;-0.320893;-0.004493;, + -0.310949;-0.187547;-0.004493;, + -0.258147;-0.320893;0.005151;, + -0.254254;-0.320893;0.005151;, + -0.254254;-0.320893;-0.004493;, + -0.258147;-0.320893;0.005151;, + -0.254254;-0.320893;-0.004493;, + -0.258147;-0.320893;-0.004493;, + -0.254254;-0.320893;0.005151;, + -0.215078;-0.223167;0.005151;, + -0.215078;-0.223167;-0.004493;, + -0.254254;-0.320893;0.005151;, + -0.215078;-0.223167;-0.004493;, + -0.254254;-0.320893;-0.004493;, + -0.215078;-0.223167;0.005151;, + -0.171767;-0.320893;0.005151;, + -0.171767;-0.320893;-0.004493;, + -0.215078;-0.223167;0.005151;, + -0.171767;-0.320893;-0.004493;, + -0.215078;-0.223167;-0.004493;, + -0.171767;-0.320893;0.005151;, + -0.167387;-0.320893;0.005151;, + -0.167387;-0.320893;-0.004493;, + -0.171767;-0.320893;0.005151;, + -0.167387;-0.320893;-0.004493;, + -0.171767;-0.320893;-0.004493;, + -0.112395;-0.187091;0.005151;, + -0.097066;-0.165399;0.005151;, + -0.097066;-0.165399;-0.004493;, + -0.112395;-0.187091;0.005151;, + -0.097066;-0.165399;-0.004493;, + -0.112395;-0.187091;-0.004493;, + -0.097066;-0.165399;0.005151;, + -0.163007;-0.165399;0.005151;, + -0.163007;-0.165399;-0.004493;, + -0.097066;-0.165399;0.005151;, + -0.163007;-0.165399;-0.004493;, + -0.097066;-0.165399;-0.004493;, + -0.163007;-0.165399;0.005151;, + -0.163007;-0.169509;0.005151;, + -0.163007;-0.169509;-0.004493;, + -0.163007;-0.165399;0.005151;, + -0.163007;-0.169509;-0.004493;, + -0.163007;-0.165399;-0.004493;, + -0.163007;-0.169509;0.005151;, + -0.149381;-0.176587;0.005151;, + -0.149381;-0.176587;-0.004493;, + -0.163007;-0.169509;0.005151;, + -0.149381;-0.176587;-0.004493;, + -0.163007;-0.169509;-0.004493;, + -0.149381;-0.176587;0.005151;, + -0.185150;-0.269518;0.005151;, + -0.185150;-0.269518;-0.004493;, + -0.149381;-0.176587;0.005151;, + -0.185150;-0.269518;-0.004493;, + -0.149381;-0.176587;-0.004493;, + -0.185150;-0.269518;0.005151;, + -0.210942;-0.211750;0.005151;, + -0.210942;-0.211750;-0.004493;, + -0.185150;-0.269518;0.005151;, + -0.210942;-0.211750;-0.004493;, + -0.185150;-0.269518;-0.004493;, + -0.210942;-0.211750;0.005151;, + -0.201939;-0.189374;0.005151;, + -0.201939;-0.189374;-0.004493;, + -0.210942;-0.211750;0.005151;, + -0.201939;-0.189374;-0.004493;, + -0.210942;-0.211750;-0.004493;, + -0.201939;-0.189374;0.005151;, + -0.178093;-0.169509;0.005151;, + -0.178093;-0.169509;-0.004493;, + -0.201939;-0.189374;0.005151;, + -0.178093;-0.169509;-0.004493;, + -0.201939;-0.189374;-0.004493;, + -0.178093;-0.169509;0.005151;, + -0.178093;-0.165399;0.005151;, + -0.178093;-0.165399;-0.004493;, + -0.178093;-0.169509;0.005151;, + -0.178093;-0.165399;-0.004493;, + -0.178093;-0.169509;-0.004493;, + -0.178093;-0.165399;0.005151;, + -0.254254;-0.165399;0.005151;, + -0.254254;-0.165399;-0.004493;, + -0.178093;-0.165399;0.005151;, + -0.254254;-0.165399;-0.004493;, + -0.178093;-0.165399;-0.004493;, + -0.254254;-0.165399;0.005151;, + -0.254254;-0.169509;0.005151;, + -0.254254;-0.169509;-0.004493;, + -0.254254;-0.165399;0.005151;, + -0.254254;-0.169509;-0.004493;, + -0.254254;-0.165399;-0.004493;, + -0.254254;-0.169509;0.005151;, + -0.237465;-0.179556;0.005151;, + -0.237465;-0.179556;-0.004493;, + -0.254254;-0.169509;0.005151;, + -0.237465;-0.179556;-0.004493;, + -0.254254;-0.169509;-0.004493;, + -0.237465;-0.179556;0.005151;, + -0.270800;-0.265637;0.005151;, + -0.270800;-0.265637;-0.004493;, + -0.237465;-0.179556;0.005151;, + -0.270800;-0.265637;-0.004493;, + -0.237465;-0.179556;-0.004493;, + -0.270800;-0.265637;0.005151;, + -0.302919;-0.180241;0.005151;, + -0.270800;-0.265637;-0.004493;, + -0.302919;-0.180241;0.005151;, + -0.302919;-0.180241;-0.004493;, + -0.270800;-0.265637;-0.004493;, + -0.302919;-0.180241;0.005151;, + -0.287103;-0.169509;0.005151;, + -0.287103;-0.169509;-0.004493;, + -0.302919;-0.180241;0.005151;, + -0.287103;-0.169509;-0.004493;, + -0.302919;-0.180241;-0.004493;, + -0.287103;-0.169509;0.005151;, + -0.287103;-0.165399;0.005151;, + -0.287103;-0.165399;-0.004493;, + -0.287103;-0.169509;0.005151;, + -0.287103;-0.165399;-0.004493;, + -0.287103;-0.169509;-0.004493;, + -0.287103;-0.165399;0.005151;, + -0.325791;-0.165399;0.005151;, + -0.325791;-0.165399;-0.004493;, + -0.287103;-0.165399;0.005151;, + -0.325791;-0.165399;-0.004493;, + -0.287103;-0.165399;-0.004493;, + -0.287103;-0.169509;-0.004493;, + -0.287103;-0.165399;-0.004493;, + -0.325791;-0.165399;-0.004493;, + -0.302919;-0.180241;-0.004493;, + -0.287103;-0.169509;-0.004493;, + -0.325791;-0.165399;-0.004493;, + -0.302919;-0.180241;-0.004493;, + -0.325791;-0.165399;-0.004493;, + -0.310949;-0.187547;-0.004493;, + -0.270800;-0.265637;-0.004493;, + -0.302919;-0.180241;-0.004493;, + -0.310949;-0.187547;-0.004493;, + -0.270800;-0.265637;-0.004493;, + -0.310949;-0.187547;-0.004493;, + -0.258147;-0.320893;-0.004493;, + -0.178093;-0.165399;-0.004493;, + -0.254254;-0.165399;-0.004493;, + -0.254254;-0.169509;-0.004493;, + -0.178093;-0.165399;-0.004493;, + -0.254254;-0.169509;-0.004493;, + -0.237465;-0.179556;-0.004493;, + -0.178093;-0.169509;-0.004493;, + -0.178093;-0.165399;-0.004493;, + -0.237465;-0.179556;-0.004493;, + -0.201939;-0.189374;-0.004493;, + -0.178093;-0.169509;-0.004493;, + -0.237465;-0.179556;-0.004493;, + -0.210942;-0.211750;-0.004493;, + -0.201939;-0.189374;-0.004493;, + -0.237465;-0.179556;-0.004493;, + -0.210942;-0.211750;-0.004493;, + -0.237465;-0.179556;-0.004493;, + -0.270800;-0.265637;-0.004493;, + -0.097066;-0.165399;-0.004493;, + -0.163007;-0.165399;-0.004493;, + -0.163007;-0.169509;-0.004493;, + -0.097066;-0.165399;-0.004493;, + -0.163007;-0.169509;-0.004493;, + -0.149381;-0.176587;-0.004493;, + -0.112395;-0.187091;-0.004493;, + -0.097066;-0.165399;-0.004493;, + -0.149381;-0.176587;-0.004493;, + -0.167387;-0.320893;-0.004493;, + -0.112395;-0.187091;-0.004493;, + -0.149381;-0.176587;-0.004493;, + -0.167387;-0.320893;-0.004493;, + -0.149381;-0.176587;-0.004493;, + -0.185150;-0.269518;-0.004493;, + -0.171767;-0.320893;-0.004493;, + -0.167387;-0.320893;-0.004493;, + -0.185150;-0.269518;-0.004493;, + -0.215078;-0.223167;-0.004493;, + -0.171767;-0.320893;-0.004493;, + -0.185150;-0.269518;-0.004493;, + -0.215078;-0.223167;-0.004493;, + -0.185150;-0.269518;-0.004493;, + -0.210942;-0.211750;-0.004493;, + -0.215078;-0.223167;-0.004493;, + -0.210942;-0.211750;-0.004493;, + -0.270800;-0.265637;-0.004493;, + -0.254254;-0.320893;-0.004493;, + -0.215078;-0.223167;-0.004493;, + -0.270800;-0.265637;-0.004493;, + -0.254254;-0.320893;-0.004493;, + -0.270800;-0.265637;-0.004493;, + -0.258147;-0.320893;-0.004493;, + -0.167387;-0.320893;0.005151;, + -0.112395;-0.187091;0.005151;, + -0.136442;-0.245600;0.001879;, + -0.167387;-0.320893;0.005151;, + -0.136442;-0.245600;0.001879;, + -0.167387;-0.320893;-0.004493;, + -0.136442;-0.245600;0.001879;, + -0.112395;-0.187091;0.005151;, + -0.133786;-0.239137;0.001879;, + -0.112395;-0.187091;0.005151;, + -0.112395;-0.187091;-0.004493;, + -0.133786;-0.239137;0.001879;, + -0.136442;-0.245600;0.001879;, + -0.136442;-0.245600;-0.000891;, + -0.167387;-0.320893;-0.004493;, + -0.112395;-0.187091;-0.004493;, + -0.167387;-0.320893;-0.004493;, + -0.133786;-0.239137;-0.000891;, + -0.133786;-0.239137;-0.000891;, + -0.167387;-0.320893;-0.004493;, + -0.136442;-0.245600;-0.000891;, + -0.133786;-0.239137;-0.000891;, + -0.133786;-0.239137;0.001879;, + -0.112395;-0.187091;-0.004493;, + -0.009360;-0.245600;0.001879;, + -0.009360;-0.239137;0.001879;, + -0.009360;-0.239137;-0.000891;, + -0.009360;-0.245600;0.001879;, + -0.009360;-0.239137;-0.000891;, + -0.009360;-0.245600;-0.000891;, + -0.009360;-0.245600;0.001879;, + -0.136442;-0.245600;0.001879;, + -0.009360;-0.239137;0.001879;, + -0.133786;-0.239137;0.001879;, + -0.009360;-0.239137;0.001879;, + -0.136442;-0.245600;0.001879;, + -0.009360;-0.245600;-0.000891;, + -0.136442;-0.245600;-0.000891;, + -0.009360;-0.245600;0.001879;, + -0.136442;-0.245600;0.001879;, + -0.009360;-0.245600;0.001879;, + -0.136442;-0.245600;-0.000891;, + -0.009360;-0.239137;-0.000891;, + -0.133786;-0.239137;-0.000891;, + -0.009360;-0.245600;-0.000891;, + -0.133786;-0.239137;-0.000891;, + -0.009360;-0.239137;-0.000891;, + -0.009360;-0.239137;0.001879;, + -0.136442;-0.245600;-0.000891;, + -0.009360;-0.245600;-0.000891;, + -0.133786;-0.239137;-0.000891;, + -0.009360;-0.239137;0.001879;, + -0.133786;-0.239137;0.001879;, + -0.133786;-0.239137;-0.000891;; + + 476; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;, + 3;926,925,924;, + 3;929,928,927;, + 3;932,931,930;, + 3;935,934,933;, + 3;938,937,936;, + 3;941,940,939;, + 3;944,943,942;, + 3;947,946,945;, + 3;950,949,948;, + 3;953,952,951;, + 3;956,955,954;, + 3;959,958,957;, + 3;962,961,960;, + 3;965,964,963;, + 3;968,967,966;, + 3;971,970,969;, + 3;974,973,972;, + 3;977,976,975;, + 3;980,979,978;, + 3;983,982,981;, + 3;986,985,984;, + 3;989,988,987;, + 3;992,991,990;, + 3;995,994,993;, + 3;998,997,996;, + 3;1001,1000,999;, + 3;1004,1003,1002;, + 3;1007,1006,1005;, + 3;1010,1009,1008;, + 3;1013,1012,1011;, + 3;1016,1015,1014;, + 3;1019,1018,1017;, + 3;1022,1021,1020;, + 3;1025,1024,1023;, + 3;1028,1027,1026;, + 3;1031,1030,1029;, + 3;1034,1033,1032;, + 3;1037,1036,1035;, + 3;1040,1039,1038;, + 3;1043,1042,1041;, + 3;1046,1045,1044;, + 3;1049,1048,1047;, + 3;1052,1051,1050;, + 3;1055,1054,1053;, + 3;1058,1057,1056;, + 3;1061,1060,1059;, + 3;1064,1063,1062;, + 3;1067,1066,1065;, + 3;1070,1069,1068;, + 3;1073,1072,1071;, + 3;1076,1075,1074;, + 3;1079,1078,1077;, + 3;1082,1081,1080;, + 3;1085,1084,1083;, + 3;1088,1087,1086;, + 3;1091,1090,1089;, + 3;1094,1093,1092;, + 3;1097,1096,1095;, + 3;1100,1099,1098;, + 3;1103,1102,1101;, + 3;1106,1105,1104;, + 3;1109,1108,1107;, + 3;1112,1111,1110;, + 3;1115,1114,1113;, + 3;1118,1117,1116;, + 3;1121,1120,1119;, + 3;1124,1123,1122;, + 3;1127,1126,1125;, + 3;1130,1129,1128;, + 3;1133,1132,1131;, + 3;1136,1135,1134;, + 3;1139,1138,1137;, + 3;1142,1141,1140;, + 3;1145,1144,1143;, + 3;1148,1147,1146;, + 3;1151,1150,1149;, + 3;1154,1153,1152;, + 3;1157,1156,1155;, + 3;1160,1159,1158;, + 3;1163,1162,1161;, + 3;1166,1165,1164;, + 3;1169,1168,1167;, + 3;1172,1171,1170;, + 3;1175,1174,1173;, + 3;1178,1177,1176;, + 3;1181,1180,1179;, + 3;1184,1183,1182;, + 3;1187,1186,1185;, + 3;1190,1189,1188;, + 3;1193,1192,1191;, + 3;1196,1195,1194;, + 3;1199,1198,1197;, + 3;1202,1201,1200;, + 3;1205,1204,1203;, + 3;1208,1207,1206;, + 3;1211,1210,1209;, + 3;1214,1213,1212;, + 3;1217,1216,1215;, + 3;1220,1219,1218;, + 3;1223,1222,1221;, + 3;1226,1225,1224;, + 3;1229,1228,1227;, + 3;1232,1231,1230;, + 3;1235,1234,1233;, + 3;1238,1237,1236;, + 3;1241,1240,1239;, + 3;1244,1243,1242;, + 3;1247,1246,1245;, + 3;1250,1249,1248;, + 3;1253,1252,1251;, + 3;1256,1255,1254;, + 3;1259,1258,1257;, + 3;1262,1261,1260;, + 3;1265,1264,1263;, + 3;1268,1267,1266;, + 3;1271,1270,1269;, + 3;1274,1273,1272;, + 3;1277,1276,1275;, + 3;1280,1279,1278;, + 3;1283,1282,1281;, + 3;1286,1285,1284;, + 3;1289,1288,1287;, + 3;1292,1291,1290;, + 3;1295,1294,1293;, + 3;1298,1297,1296;, + 3;1301,1300,1299;, + 3;1304,1303,1302;, + 3;1307,1306,1305;, + 3;1310,1309,1308;, + 3;1313,1312,1311;, + 3;1316,1315,1314;, + 3;1319,1318,1317;, + 3;1322,1321,1320;, + 3;1325,1324,1323;, + 3;1328,1327,1326;, + 3;1331,1330,1329;, + 3;1334,1333,1332;, + 3;1337,1336,1335;, + 3;1340,1339,1338;, + 3;1343,1342,1341;, + 3;1346,1345,1344;, + 3;1349,1348,1347;, + 3;1352,1351,1350;, + 3;1355,1354,1353;, + 3;1358,1357,1356;, + 3;1361,1360,1359;, + 3;1364,1363,1362;, + 3;1367,1366,1365;, + 3;1370,1369,1368;, + 3;1373,1372,1371;, + 3;1376,1375,1374;, + 3;1379,1378,1377;, + 3;1382,1381,1380;, + 3;1385,1384,1383;, + 3;1388,1387,1386;, + 3;1391,1390,1389;, + 3;1394,1393,1392;, + 3;1397,1396,1395;, + 3;1400,1399,1398;, + 3;1403,1402,1401;, + 3;1406,1405,1404;, + 3;1409,1408,1407;, + 3;1412,1411,1410;, + 3;1415,1414,1413;, + 3;1418,1417,1416;, + 3;1421,1420,1419;, + 3;1424,1423,1422;, + 3;1427,1426,1425;; + + MeshMaterialList { + 2; + 476; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;; + Material { + 0.611765;0.482353;0.294118;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 0.376471;0.203922;0.164706;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 476; + -0.866031;0.000000;0.499990;, + -0.866031;0.000000;0.499990;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.866031;0.000000;0.499990;, + 0.866031;0.000000;0.499990;, + 0.866031;0.000000;-0.499990;, + 0.866031;0.000000;-0.499990;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + -0.866031;0.000000;-0.499990;, + -0.866031;0.000000;-0.499990;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.019716;0.999806;, + 0.000000;0.019716;0.999806;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-0.512695;-0.858570;, + 0.000000;-0.512695;-0.858570;, + 0.000000;-0.942047;-0.335480;, + 0.000000;-0.942047;-0.335480;, + 0.000000;-0.791436;0.611252;, + 0.000000;-0.791436;0.611252;, + 0.000000;0.825344;0.564630;, + 0.000000;0.441741;0.897143;, + 0.000000;-0.470244;0.882537;, + 0.000000;-0.470244;0.882537;, + 0.000000;-0.962451;0.271455;, + 0.000000;-0.962451;0.271455;, + 0.000000;-0.976421;-0.215875;, + 0.000000;-0.976421;-0.215875;, + 0.000000;-0.793191;0.608974;, + 0.000000;-0.793191;0.608974;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;0.472856;0.881140;, + 0.000000;0.472856;0.881140;, + 0.000000;0.933807;0.357776;, + 0.000000;0.933807;0.357776;, + 0.000000;0.843091;-0.537771;, + 0.000000;0.843091;-0.537771;, + 0.000000;-0.551924;-0.833894;, + 0.000000;-0.551924;-0.833894;, + 0.000000;-0.922948;-0.384925;, + 0.000000;-0.475318;-0.879814;, + 0.000000;0.412758;-0.910841;, + 0.000000;0.412758;-0.910841;, + 0.000000;0.938932;-0.344103;, + 0.000000;0.938932;-0.344103;, + 0.000000;0.969625;0.244598;, + 0.000000;0.969625;0.244598;, + 0.000000;0.729224;-0.684275;, + 0.000000;0.729224;-0.684275;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.968831;-0.225841;0.101799;, + -0.970161;-0.224494;0.091593;, + -0.983529;0.167359;-0.068282;, + -0.981619;0.132857;-0.137016;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.000207;0.913543;0.406742;, + 0.000000;0.913611;0.406590;, + 0.000330;0.913518;0.406797;, + 0.000000;0.913611;0.406590;, + 0.000000;0.441741;0.897143;, + 0.000000;0.913537;0.406757;, + 0.000000;0.441666;0.897179;, + -0.000167;0.441779;0.897124;, + 0.000000;0.441752;0.897137;, + 0.000966;0.441666;0.897179;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.382143;0.924103;0.000000;, + 0.382143;0.924103;0.000000;, + 0.959774;0.280774;0.000000;, + 0.959774;0.280774;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.959021;-0.283335;0.000000;, + 0.959021;-0.283335;0.000000;, + 0.372216;-0.928146;0.000000;, + 0.372216;-0.928146;0.000000;, + -0.999987;-0.005078;0.000000;, + -0.999987;-0.005078;0.000000;, + -0.747731;0.664002;0.000000;, + -0.747731;0.664002;0.000000;, + 0.169954;0.985452;0.000000;, + 0.169954;0.985452;0.000000;, + 0.816212;0.577753;0.000000;, + 0.816212;0.577753;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -0.988172;-0.153349;0.000000;, + -0.988172;-0.153349;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.152433;0.988314;0.000000;, + 0.152433;0.988314;0.000000;, + 0.947769;0.318957;0.000000;, + 0.947769;0.318957;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.921659;-0.388000;0.000000;, + 0.921659;-0.388000;0.000000;, + 0.100523;-0.994935;0.000000;, + 0.100523;-0.994935;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.903388;-0.428824;0.000000;, + 0.903388;-0.428824;0.000000;, + 0.260516;-0.965469;0.000000;, + 0.260516;-0.965469;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;1.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.685706;0.727879;, + 0.000000;0.685706;0.727879;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;-0.267861;-0.963458;, + 0.000000;-0.267861;-0.963458;, + 0.000000;-0.975555;-0.219756;, + 0.000000;-0.975555;-0.219756;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;-0.940609;0.339491;, + 0.000000;-0.940609;0.339491;, + 0.000000;-0.231656;0.972798;, + 0.000000;-0.231656;0.972798;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-0.686632;-0.727005;, + 0.000000;-0.686632;-0.727005;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.291236;0.956651;, + 0.000000;0.291236;0.956651;, + 0.000000;0.971752;0.236005;, + 0.000000;0.971752;0.236005;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.957748;-0.287608;, + 0.000000;0.957748;-0.287608;, + 0.000000;0.285418;-0.958403;, + 0.000000;0.285418;-0.958403;, + 0.000000;-0.838871;-0.544330;, + 0.000000;-0.838871;-0.544330;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + -0.830721;-0.556690;0.000000;, + -0.830721;-0.556690;0.000000;, + -0.929761;-0.368164;0.000000;, + -0.929761;-0.368164;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.928196;-0.372092;0.000000;, + 0.928196;-0.372092;0.000000;, + -0.914237;-0.405179;0.000000;, + -0.914237;-0.405179;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.816666;-0.577111;0.000000;, + 0.816666;-0.577111;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.460967;-0.887417;0.000000;, + -0.460967;-0.887417;0.000000;, + -0.933257;0.359209;0.000000;, + -0.933257;0.359209;0.000000;, + 0.913122;0.407687;0.000000;, + 0.913122;0.407687;0.000000;, + 0.927723;-0.373270;0.000000;, + 0.927723;-0.373270;0.000000;, + 0.640058;-0.768327;0.000000;, + 0.640058;-0.768327;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.513503;-0.858088;0.000000;, + -0.513503;-0.858088;0.000000;, + -0.932520;0.361120;0.000000;, + -0.932520;0.361120;0.000000;, + 0.935985;0.352041;0.000000;, + 0.935985;0.352041;0.000000;, + 0.561491;-0.827483;0.000000;, + 0.561491;-0.827483;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.924928;-0.380141;-0.000021;, + 0.924929;-0.380140;0.000000;, + 0.924941;-0.380110;-0.000667;, + 0.924926;-0.380146;0.000000;, + 0.924929;-0.380140;0.000000;, + 0.924928;-0.380141;0.000084;, + 0.924941;-0.380110;-0.000735;, + 0.924926;-0.380146;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;1.000000;0.000000;; + + 476; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;, + 3;308,308,308;, + 3;309,309,309;, + 3;310,310,310;, + 3;311,311,311;, + 3;312,312,312;, + 3;313,313,313;, + 3;314,314,314;, + 3;315,315,315;, + 3;316,316,316;, + 3;317,317,317;, + 3;318,318,318;, + 3;319,319,319;, + 3;320,320,320;, + 3;321,321,321;, + 3;322,322,322;, + 3;323,323,323;, + 3;324,324,324;, + 3;325,325,325;, + 3;326,326,326;, + 3;327,327,327;, + 3;328,328,328;, + 3;329,329,329;, + 3;330,330,330;, + 3;331,331,331;, + 3;332,332,332;, + 3;333,333,333;, + 3;334,334,334;, + 3;335,335,335;, + 3;336,336,336;, + 3;337,337,337;, + 3;338,338,338;, + 3;339,339,339;, + 3;340,340,340;, + 3;341,341,341;, + 3;342,342,342;, + 3;343,343,343;, + 3;344,344,344;, + 3;345,345,345;, + 3;346,346,346;, + 3;347,347,347;, + 3;348,348,348;, + 3;349,349,349;, + 3;350,350,350;, + 3;351,351,351;, + 3;352,352,352;, + 3;353,353,353;, + 3;354,354,354;, + 3;355,355,355;, + 3;356,356,356;, + 3;357,357,357;, + 3;358,358,358;, + 3;359,359,359;, + 3;360,360,360;, + 3;361,361,361;, + 3;362,362,362;, + 3;363,363,363;, + 3;364,364,364;, + 3;365,365,365;, + 3;366,366,366;, + 3;367,367,367;, + 3;368,368,368;, + 3;369,369,369;, + 3;370,370,370;, + 3;371,371,371;, + 3;372,372,372;, + 3;373,373,373;, + 3;374,374,374;, + 3;375,375,375;, + 3;376,376,376;, + 3;377,377,377;, + 3;378,378,378;, + 3;379,379,379;, + 3;380,380,380;, + 3;381,381,381;, + 3;382,382,382;, + 3;383,383,383;, + 3;384,384,384;, + 3;385,385,385;, + 3;386,386,386;, + 3;387,387,387;, + 3;388,388,388;, + 3;389,389,389;, + 3;390,390,390;, + 3;391,391,391;, + 3;392,392,392;, + 3;393,393,393;, + 3;394,394,394;, + 3;395,395,395;, + 3;396,396,396;, + 3;397,397,397;, + 3;398,398,398;, + 3;399,399,399;, + 3;400,400,400;, + 3;401,401,401;, + 3;402,402,402;, + 3;403,403,403;, + 3;404,404,404;, + 3;405,405,405;, + 3;406,406,406;, + 3;407,407,407;, + 3;408,408,408;, + 3;409,409,409;, + 3;410,410,410;, + 3;411,411,411;, + 3;412,412,412;, + 3;413,413,413;, + 3;414,414,414;, + 3;415,415,415;, + 3;416,416,416;, + 3;417,417,417;, + 3;418,418,418;, + 3;419,419,419;, + 3;420,420,420;, + 3;421,421,421;, + 3;422,422,422;, + 3;423,423,423;, + 3;424,424,424;, + 3;425,425,425;, + 3;426,426,426;, + 3;427,427,427;, + 3;428,428,428;, + 3;429,429,429;, + 3;430,430,430;, + 3;431,431,431;, + 3;432,432,432;, + 3;433,433,433;, + 3;434,434,434;, + 3;435,435,435;, + 3;436,436,436;, + 3;437,437,437;, + 3;438,438,438;, + 3;439,439,439;, + 3;440,440,440;, + 3;441,441,441;, + 3;442,442,442;, + 3;443,443,443;, + 3;444,444,444;, + 3;445,445,445;, + 3;446,446,446;, + 3;447,447,447;, + 3;448,448,448;, + 3;449,449,449;, + 3;450,450,450;, + 3;451,451,451;, + 3;452,452,452;, + 3;453,453,453;, + 3;454,454,454;, + 3;455,455,455;, + 3;456,456,456;, + 3;457,457,457;, + 3;458,458,458;, + 3;459,459,459;, + 3;460,460,460;, + 3;461,461,461;, + 3;462,462,462;, + 3;463,463,463;, + 3;464,464,464;, + 3;465,465,465;, + 3;466,466,466;, + 3;467,467,467;, + 3;468,468,468;, + 3;469,469,469;, + 3;470,470,470;, + 3;471,471,471;, + 3;472,472,472;, + 3;473,473,473;, + 3;474,474,474;, + 3;475,475,475;; + } # MeshNormals + MeshTextureCoords { + 1428; + 0.450593;0.560115;, + 0.436216;0.535213;, + 0.436216;0.535213;, + 0.450593;0.560115;, + 0.436216;0.535213;, + 0.450593;0.560115;, + 0.436216;0.535213;, + 0.407462;0.535213;, + 0.407462;0.535213;, + 0.436216;0.535213;, + 0.407462;0.535213;, + 0.436216;0.535213;, + 0.407462;0.535213;, + 0.393085;0.560115;, + 0.393085;0.560115;, + 0.407462;0.535213;, + 0.393085;0.560115;, + 0.407462;0.535213;, + 0.393085;0.560115;, + 0.407462;0.585016;, + 0.407462;0.585016;, + 0.393085;0.560115;, + 0.407462;0.585016;, + 0.393085;0.560115;, + 0.407462;0.585016;, + 0.436216;0.585016;, + 0.436216;0.585016;, + 0.407462;0.585016;, + 0.436216;0.585016;, + 0.407462;0.585016;, + 0.436216;0.585016;, + 0.450593;0.560115;, + 0.450593;0.560115;, + 0.436216;0.585016;, + 0.450593;0.560115;, + 0.436216;0.585016;, + 0.407462;0.535213;, + 0.436216;0.535213;, + 0.450593;0.560115;, + 0.393085;0.560115;, + 0.407462;0.535213;, + 0.450593;0.560115;, + 0.407462;0.585016;, + 0.393085;0.560115;, + 0.450593;0.560115;, + 0.436216;0.585016;, + 0.407462;0.585016;, + 0.450593;0.560115;, + 0.407462;0.535213;, + 0.393085;0.560115;, + 0.436216;0.535213;, + 0.393085;0.560115;, + 0.407462;0.585016;, + 0.436216;0.535213;, + 0.407462;0.585016;, + 0.436216;0.585016;, + 0.436216;0.535213;, + 0.436216;0.585016;, + 0.450593;0.560115;, + 0.436216;0.535213;, + 0.412763;0.792927;, + 0.412763;0.784894;, + 0.412763;0.786678;, + 0.412763;0.821936;, + 0.412763;0.792927;, + 0.412763;0.786678;, + 0.412763;0.821936;, + 0.412763;0.786678;, + 0.412763;0.794711;, + 0.412763;0.821936;, + 0.412763;0.794711;, + 0.412763;0.817026;, + 0.412763;0.896017;, + 0.412763;0.821936;, + 0.412763;0.817026;, + 0.412763;0.896017;, + 0.412763;0.817026;, + 0.412763;0.900036;, + 0.412763;0.896017;, + 0.412763;0.900036;, + 0.412763;0.975455;, + 0.412763;0.954034;, + 0.412763;0.896017;, + 0.412763;0.975455;, + 0.412763;0.954034;, + 0.412763;0.975455;, + 0.412763;0.999556;, + 0.412763;0.954034;, + 0.412763;0.999556;, + 0.412763;0.966977;, + 0.412763;0.884862;, + 0.412763;0.954034;, + 0.412763;0.966977;, + 0.412763;0.797389;, + 0.412763;0.884862;, + 0.412763;0.966977;, + 0.412763;0.797389;, + 0.412763;0.966977;, + 0.412763;0.842464;, + 0.412763;0.767490;, + 0.412763;0.797389;, + 0.412763;0.842464;, + 0.412763;0.767490;, + 0.412763;0.842464;, + 0.412763;0.816134;, + 0.412763;0.800067;, + 0.412763;0.767490;, + 0.412763;0.816134;, + 0.412763;0.881737;, + 0.412763;0.800067;, + 0.412763;0.816134;, + 0.412763;0.881737;, + 0.412763;0.816134;, + 0.412763;0.884415;, + 0.412763;0.966977;, + 0.412763;0.881737;, + 0.412763;0.884415;, + 0.412763;0.966977;, + 0.412763;0.884415;, + 0.412763;0.959836;, + 0.412763;0.991523;, + 0.412763;1.000000;, + 0.412763;1.000000;, + 0.412763;0.959836;, + 0.412763;0.991523;, + 0.412763;1.000000;, + 0.412763;0.966977;, + 0.412763;0.959836;, + 0.412763;1.000000;, + 0.412763;0.991523;, + 0.412763;0.966977;, + 0.412763;1.000000;, + 0.412763;0.786678;, + 0.412763;0.784894;, + 0.430244;0.784894;, + 0.412763;0.786678;, + 0.430244;0.784894;, + 0.430244;0.786678;, + 0.412763;0.784894;, + 0.412763;0.792927;, + 0.430244;0.792927;, + 0.412763;0.784894;, + 0.430244;0.792927;, + 0.430244;0.784894;, + 0.412763;0.792927;, + 0.412763;0.821936;, + 0.430244;0.821936;, + 0.412763;0.792927;, + 0.430244;0.821936;, + 0.430244;0.792927;, + 0.412763;0.821936;, + 0.412763;0.896017;, + 0.430244;0.896017;, + 0.412763;0.821936;, + 0.430244;0.896017;, + 0.430244;0.821936;, + 0.412763;0.896017;, + 0.412763;0.954034;, + 0.430244;0.954034;, + 0.412763;0.896017;, + 0.430244;0.954034;, + 0.430244;0.896017;, + 0.412763;0.954034;, + 0.412763;0.884862;, + 0.430244;0.954034;, + 0.412763;0.797389;, + 0.412763;0.767490;, + 0.430244;0.767490;, + 0.412763;0.767490;, + 0.412763;0.800067;, + 0.430244;0.800067;, + 0.412763;0.767490;, + 0.430244;0.800067;, + 0.430244;0.767490;, + 0.412763;0.800067;, + 0.412763;0.881737;, + 0.430244;0.881737;, + 0.412763;0.800067;, + 0.430244;0.881737;, + 0.430244;0.800067;, + 0.412763;0.881737;, + 0.412763;0.966977;, + 0.430244;0.966977;, + 0.412763;0.881737;, + 0.430244;0.966977;, + 0.430244;0.881737;, + 0.412763;0.966977;, + 0.412763;0.991523;, + 0.430244;0.991523;, + 0.412763;0.966977;, + 0.430244;0.991523;, + 0.430244;0.966977;, + 0.412763;0.991523;, + 0.412763;1.000000;, + 0.430244;1.000000;, + 0.412763;0.991523;, + 0.430244;1.000000;, + 0.430244;0.991523;, + 0.412763;1.000000;, + 0.412763;1.000000;, + 0.430244;1.000000;, + 0.412763;1.000000;, + 0.430244;1.000000;, + 0.430244;1.000000;, + 0.412763;1.000000;, + 0.412763;0.991523;, + 0.430244;0.991523;, + 0.412763;1.000000;, + 0.430244;0.991523;, + 0.430244;1.000000;, + 0.412763;0.991523;, + 0.412763;0.959836;, + 0.430244;0.959836;, + 0.412763;0.991523;, + 0.430244;0.959836;, + 0.430244;0.991523;, + 0.412763;0.959836;, + 0.412763;0.884415;, + 0.430244;0.884415;, + 0.412763;0.959836;, + 0.430244;0.884415;, + 0.430244;0.959836;, + 0.412763;0.884415;, + 0.412763;0.816134;, + 0.430244;0.816134;, + 0.412763;0.884415;, + 0.430244;0.816134;, + 0.430244;0.884415;, + 0.412763;0.816134;, + 0.412763;0.842464;, + 0.430244;0.842464;, + 0.412763;0.816134;, + 0.430244;0.842464;, + 0.430244;0.816134;, + 0.412763;0.842464;, + 0.412763;0.966977;, + 0.430244;0.842464;, + 0.412763;0.966977;, + 0.412763;0.999556;, + 0.430244;0.999556;, + 0.412763;0.999556;, + 0.412763;0.975455;, + 0.430244;0.975455;, + 0.412763;0.999556;, + 0.430244;0.975455;, + 0.430244;0.999556;, + 0.412763;0.975455;, + 0.412763;0.900036;, + 0.430244;0.900036;, + 0.412763;0.975455;, + 0.430244;0.900036;, + 0.430244;0.975455;, + 0.412763;0.900036;, + 0.412763;0.817026;, + 0.430244;0.817026;, + 0.412763;0.900036;, + 0.430244;0.817026;, + 0.430244;0.900036;, + 0.412763;0.817026;, + 0.412763;0.794711;, + 0.430244;0.794711;, + 0.412763;0.817026;, + 0.430244;0.794711;, + 0.430244;0.817026;, + 0.412763;0.794711;, + 0.412763;0.786678;, + 0.430244;0.786678;, + 0.412763;0.794711;, + 0.430244;0.786678;, + 0.430244;0.794711;, + 0.430244;0.786678;, + 0.430244;0.784894;, + 0.430244;0.792927;, + 0.430244;0.786678;, + 0.430244;0.792927;, + 0.430244;0.821936;, + 0.430244;0.794711;, + 0.430244;0.786678;, + 0.430244;0.821936;, + 0.430244;0.817026;, + 0.430244;0.794711;, + 0.430244;0.821936;, + 0.430244;0.817026;, + 0.430244;0.821936;, + 0.430244;0.896017;, + 0.430244;0.900036;, + 0.430244;0.817026;, + 0.430244;0.896017;, + 0.430244;0.975455;, + 0.430244;0.900036;, + 0.430244;0.896017;, + 0.430244;0.975455;, + 0.430244;0.896017;, + 0.430244;0.954034;, + 0.430244;0.999556;, + 0.430244;0.975455;, + 0.430244;0.954034;, + 0.412763;0.966977;, + 0.430244;0.999556;, + 0.430244;0.954034;, + 0.412763;0.966977;, + 0.430244;0.954034;, + 0.412763;0.884862;, + 0.430244;0.842464;, + 0.412763;0.966977;, + 0.412763;0.884862;, + 0.430244;0.842464;, + 0.412763;0.884862;, + 0.430244;0.797389;, + 0.430244;0.842464;, + 0.430244;0.797389;, + 0.430244;0.767490;, + 0.430244;0.816134;, + 0.430244;0.842464;, + 0.430244;0.767490;, + 0.430244;0.816134;, + 0.430244;0.767490;, + 0.430244;0.800067;, + 0.430244;0.816134;, + 0.430244;0.800067;, + 0.430244;0.881737;, + 0.430244;0.884415;, + 0.430244;0.816134;, + 0.430244;0.881737;, + 0.430244;0.884415;, + 0.430244;0.881737;, + 0.430244;0.966977;, + 0.430244;0.959836;, + 0.430244;0.884415;, + 0.430244;0.966977;, + 0.430244;1.000000;, + 0.430244;1.000000;, + 0.430244;0.991523;, + 0.430244;1.000000;, + 0.430244;0.991523;, + 0.430244;0.959836;, + 0.430244;1.000000;, + 0.430244;0.959836;, + 0.430244;0.966977;, + 0.430244;1.000000;, + 0.430244;0.966977;, + 0.430244;0.991523;, + 0.412763;0.884862;, + 0.412763;0.797389;, + 0.419534;0.805074;, + 0.419534;0.805074;, + 0.412763;0.797389;, + 0.419534;0.797389;, + 0.430244;0.797389;, + 0.412763;0.884862;, + 0.424451;0.805074;, + 0.424451;0.797389;, + 0.430244;0.797389;, + 0.424451;0.805074;, + 0.430244;0.797389;, + 0.424451;0.797389;, + 0.430244;0.767490;, + 0.419534;0.805074;, + 0.424451;0.805074;, + 0.412763;0.884862;, + 0.419534;0.797389;, + 0.412763;0.797389;, + 0.419534;0.793426;, + 0.412763;0.797389;, + 0.430244;0.767490;, + 0.419534;0.793426;, + 0.419534;0.793426;, + 0.430244;0.767490;, + 0.424451;0.793426;, + 0.424451;0.797389;, + 0.424451;0.793426;, + 0.430244;0.767490;, + 0.424451;0.576607;, + 0.424451;0.576607;, + 0.419534;0.576607;, + 0.424451;0.576607;, + 0.419534;0.576607;, + 0.419534;0.576607;, + 0.419534;0.576607;, + 0.419534;0.805074;, + 0.419534;0.576607;, + 0.419534;0.805074;, + 0.419534;0.576607;, + 0.424451;0.576607;, + 0.419534;0.797389;, + 0.419534;0.576607;, + 0.419534;0.805074;, + 0.424451;0.805074;, + 0.424451;0.576607;, + 0.424451;0.797389;, + 0.419534;0.805074;, + 0.424451;0.576607;, + 0.424451;0.805074;, + 0.419534;0.576607;, + 0.419534;0.793426;, + 0.424451;0.576607;, + 0.419534;0.793426;, + 0.419534;0.576607;, + 0.419534;0.797389;, + 0.424451;0.793426;, + 0.424451;0.576607;, + 0.419534;0.793426;, + 0.424451;0.576607;, + 0.424451;0.793426;, + 0.424451;0.576607;, + 0.424451;0.576607;, + 0.424451;0.793426;, + 0.424451;0.797389;, + 0.253646;0.550877;, + 0.266787;0.550877;, + 0.259778;0.550877;, + 0.253646;0.550877;, + 0.259778;0.550877;, + 0.219914;0.550877;, + 0.238751;0.550877;, + 0.246198;0.550877;, + 0.246198;0.550877;, + 0.217285;0.550877;, + 0.238751;0.550877;, + 0.246198;0.550877;, + 0.246198;0.550877;, + 0.000000;0.550877;, + 0.000000;0.550877;, + 0.246198;0.550877;, + 0.000000;0.550877;, + 0.028476;0.550877;, + 0.000000;0.550877;, + 0.000000;0.550877;, + 0.253646;0.550877;, + 0.031980;0.550877;, + 0.000000;0.550877;, + 0.253646;0.550877;, + 0.174355;0.550877;, + 0.182239;0.550877;, + 0.182239;0.550877;, + 0.162089;0.550877;, + 0.174355;0.550877;, + 0.182239;0.550877;, + 0.162089;0.550877;, + 0.182239;0.550877;, + 0.174355;0.550877;, + 0.162089;0.550877;, + 0.174355;0.550877;, + 0.162089;0.550877;, + 0.162089;0.550877;, + 0.162089;0.550877;, + 0.110395;0.550877;, + 0.110834;0.550877;, + 0.162089;0.550877;, + 0.110395;0.550877;, + 0.150259;0.550877;, + 0.217285;0.550877;, + 0.246198;0.550877;, + 0.150259;0.550877;, + 0.246198;0.550877;, + 0.028476;0.550877;, + 0.110395;0.550877;, + 0.150259;0.550877;, + 0.028476;0.550877;, + 0.110395;0.550877;, + 0.028476;0.550877;, + 0.042494;0.550877;, + 0.110395;0.550877;, + 0.110395;0.550877;, + 0.042494;0.550877;, + 0.110395;0.550877;, + 0.042494;0.550877;, + 0.042494;0.550877;, + 0.110834;0.550877;, + 0.110395;0.550877;, + 0.042494;0.550877;, + 0.110395;0.550877;, + 0.110834;0.550877;, + 0.042494;0.550877;, + 0.110395;0.550877;, + 0.042494;0.550877;, + 0.031980;0.550877;, + 0.138870;0.550877;, + 0.110395;0.550877;, + 0.031980;0.550877;, + 0.138870;0.550877;, + 0.031980;0.550877;, + 0.253646;0.550877;, + 0.219914;0.550877;, + 0.138870;0.550877;, + 0.253646;0.550877;, + 0.110395;0.550877;, + 0.110395;0.550877;, + 0.110395;0.568613;, + 0.110395;0.550877;, + 0.110395;0.568613;, + 0.110395;0.568613;, + 0.110395;0.550877;, + 0.162089;0.550877;, + 0.162089;0.568613;, + 0.110395;0.550877;, + 0.162089;0.568613;, + 0.110395;0.568613;, + 0.162089;0.550877;, + 0.174355;0.550877;, + 0.174355;0.568613;, + 0.162089;0.550877;, + 0.174355;0.568613;, + 0.162089;0.568613;, + 0.174355;0.550877;, + 0.182239;0.550877;, + 0.182239;0.568613;, + 0.174355;0.550877;, + 0.182239;0.568613;, + 0.174355;0.568613;, + 0.182239;0.550877;, + 0.174355;0.550877;, + 0.174355;0.568613;, + 0.182239;0.550877;, + 0.174355;0.568613;, + 0.182239;0.568613;, + 0.174355;0.550877;, + 0.162089;0.550877;, + 0.162089;0.568613;, + 0.174355;0.550877;, + 0.162089;0.568613;, + 0.174355;0.568613;, + 0.162089;0.550877;, + 0.110834;0.550877;, + 0.110834;0.568613;, + 0.162089;0.550877;, + 0.110834;0.568613;, + 0.162089;0.568613;, + 0.110834;0.550877;, + 0.110395;0.550877;, + 0.110395;0.568613;, + 0.110834;0.550877;, + 0.110395;0.568613;, + 0.110834;0.568613;, + 0.110395;0.550877;, + 0.138870;0.550877;, + 0.138870;0.568613;, + 0.110395;0.550877;, + 0.138870;0.568613;, + 0.110395;0.568613;, + 0.138870;0.550877;, + 0.219914;0.550877;, + 0.219914;0.568613;, + 0.138870;0.550877;, + 0.219914;0.568613;, + 0.138870;0.568613;, + 0.219914;0.550877;, + 0.259778;0.550877;, + 0.259778;0.568613;, + 0.219914;0.550877;, + 0.259778;0.568613;, + 0.219914;0.568613;, + 0.259778;0.550877;, + 0.266787;0.550877;, + 0.266787;0.568613;, + 0.259778;0.550877;, + 0.266787;0.568613;, + 0.259778;0.568613;, + 0.266787;0.550877;, + 0.253646;0.550877;, + 0.253646;0.568613;, + 0.266787;0.550877;, + 0.253646;0.568613;, + 0.266787;0.568613;, + 0.253646;0.550877;, + 0.000000;0.550877;, + 0.000000;0.568613;, + 0.253646;0.550877;, + 0.000000;0.568613;, + 0.253646;0.568613;, + 0.000000;0.550877;, + 0.000000;0.550877;, + 0.000000;0.568613;, + 0.000000;0.550877;, + 0.000000;0.568613;, + 0.000000;0.568613;, + 0.000000;0.550877;, + 0.031980;0.550877;, + 0.031980;0.568613;, + 0.000000;0.550877;, + 0.031980;0.568613;, + 0.000000;0.568613;, + 0.031980;0.550877;, + 0.042494;0.550877;, + 0.042494;0.568613;, + 0.031980;0.550877;, + 0.042494;0.568613;, + 0.031980;0.568613;, + 0.042494;0.550877;, + 0.042494;0.550877;, + 0.042494;0.568613;, + 0.042494;0.550877;, + 0.042494;0.568613;, + 0.042494;0.568613;, + 0.042494;0.550877;, + 0.028476;0.550877;, + 0.028476;0.568613;, + 0.042494;0.550877;, + 0.028476;0.568613;, + 0.042494;0.568613;, + 0.028476;0.550877;, + 0.000000;0.550877;, + 0.000000;0.568613;, + 0.028476;0.550877;, + 0.000000;0.568613;, + 0.028476;0.568613;, + 0.000000;0.550877;, + 0.000000;0.550877;, + 0.000000;0.568613;, + 0.000000;0.550877;, + 0.000000;0.568613;, + 0.000000;0.568613;, + 0.000000;0.550877;, + 0.246198;0.550877;, + 0.246198;0.568613;, + 0.000000;0.550877;, + 0.246198;0.568613;, + 0.000000;0.568613;, + 0.246198;0.550877;, + 0.246198;0.550877;, + 0.246198;0.568613;, + 0.246198;0.550877;, + 0.246198;0.568613;, + 0.246198;0.568613;, + 0.246198;0.550877;, + 0.238751;0.550877;, + 0.238751;0.568613;, + 0.246198;0.550877;, + 0.238751;0.568613;, + 0.246198;0.568613;, + 0.238751;0.550877;, + 0.217285;0.550877;, + 0.217285;0.568613;, + 0.238751;0.550877;, + 0.217285;0.568613;, + 0.238751;0.568613;, + 0.217285;0.550877;, + 0.150259;0.550877;, + 0.150259;0.568613;, + 0.217285;0.550877;, + 0.150259;0.568613;, + 0.217285;0.568613;, + 0.150259;0.550877;, + 0.110395;0.550877;, + 0.110395;0.568613;, + 0.150259;0.550877;, + 0.110395;0.568613;, + 0.150259;0.568613;, + 0.259778;0.568613;, + 0.266787;0.568613;, + 0.253646;0.568613;, + 0.219914;0.568613;, + 0.259778;0.568613;, + 0.253646;0.568613;, + 0.246198;0.568613;, + 0.246198;0.568613;, + 0.238751;0.568613;, + 0.246198;0.568613;, + 0.238751;0.568613;, + 0.217285;0.568613;, + 0.000000;0.568613;, + 0.000000;0.568613;, + 0.246198;0.568613;, + 0.028476;0.568613;, + 0.000000;0.568613;, + 0.246198;0.568613;, + 0.253646;0.568613;, + 0.000000;0.568613;, + 0.000000;0.568613;, + 0.253646;0.568613;, + 0.000000;0.568613;, + 0.031980;0.568613;, + 0.182239;0.568613;, + 0.182239;0.568613;, + 0.174355;0.568613;, + 0.182239;0.568613;, + 0.174355;0.568613;, + 0.162089;0.568613;, + 0.174355;0.568613;, + 0.182239;0.568613;, + 0.162089;0.568613;, + 0.162089;0.568613;, + 0.174355;0.568613;, + 0.162089;0.568613;, + 0.110395;0.568613;, + 0.162089;0.568613;, + 0.162089;0.568613;, + 0.110395;0.568613;, + 0.162089;0.568613;, + 0.110834;0.568613;, + 0.246198;0.568613;, + 0.217285;0.568613;, + 0.150259;0.568613;, + 0.028476;0.568613;, + 0.246198;0.568613;, + 0.150259;0.568613;, + 0.028476;0.568613;, + 0.150259;0.568613;, + 0.110395;0.568613;, + 0.042494;0.568613;, + 0.028476;0.568613;, + 0.110395;0.568613;, + 0.042494;0.568613;, + 0.110395;0.568613;, + 0.110395;0.568613;, + 0.042494;0.568613;, + 0.042494;0.568613;, + 0.110395;0.568613;, + 0.042494;0.568613;, + 0.110395;0.568613;, + 0.110834;0.568613;, + 0.042494;0.568613;, + 0.110834;0.568613;, + 0.110395;0.568613;, + 0.031980;0.568613;, + 0.042494;0.568613;, + 0.110395;0.568613;, + 0.031980;0.568613;, + 0.110395;0.568613;, + 0.138870;0.568613;, + 0.253646;0.568613;, + 0.031980;0.568613;, + 0.138870;0.568613;, + 0.253646;0.568613;, + 0.138870;0.568613;, + 0.219914;0.568613;, + 0.182239;0.550877;, + 0.182239;0.550877;, + 0.182239;0.557767;, + 0.182239;0.550877;, + 0.182239;0.568613;, + 0.182239;0.557767;, + 0.182239;0.557767;, + 0.182239;0.568613;, + 0.182239;0.562683;, + 0.182239;0.557767;, + 0.182239;0.550877;, + 0.182239;0.557767;, + 0.182239;0.550877;, + 0.182239;0.557767;, + 0.182239;0.568613;, + 0.182239;0.568613;, + 0.182239;0.568613;, + 0.182239;0.562683;, + 0.182239;0.562683;, + 0.182239;0.568613;, + 0.182239;0.562683;, + 0.182239;0.568613;, + 0.182239;0.557767;, + 0.182239;0.562683;, + 0.405351;0.562683;, + 0.405351;0.562683;, + 0.405351;0.557767;, + 0.405351;0.562683;, + 0.405351;0.557767;, + 0.405351;0.557767;, + 0.405351;0.557767;, + 0.182239;0.557767;, + 0.405351;0.562683;, + 0.182239;0.562683;, + 0.405351;0.562683;, + 0.182239;0.557767;, + 0.405351;0.557767;, + 0.182239;0.557767;, + 0.405351;0.557767;, + 0.182239;0.557767;, + 0.405351;0.557767;, + 0.405351;0.562683;, + 0.182239;0.557767;, + 0.405351;0.557767;, + 0.182239;0.557767;, + 0.405351;0.562683;, + 0.182239;0.562683;, + 0.405351;0.562683;, + 0.182239;0.562683;, + 0.405351;0.562683;, + 0.182239;0.562683;, + 0.182239;0.562683;, + 0.182239;0.557767;, + 0.405351;0.562683;, + 0.413033;0.259084;, + 0.413033;0.357710;, + 0.413033;0.357710;, + 0.413033;0.259084;, + 0.413033;0.357710;, + 0.413033;0.315759;, + 0.413033;0.357710;, + 0.413033;0.357710;, + 0.413033;0.253280;, + 0.413033;0.324239;, + 0.413033;0.357710;, + 0.413033;0.253280;, + 0.413033;0.324239;, + 0.413033;0.253280;, + 0.413033;0.253280;, + 0.413033;0.324239;, + 0.413033;0.253280;, + 0.413033;0.291216;, + 0.413033;0.324239;, + 0.413033;0.291216;, + 0.413033;0.300140;, + 0.413033;0.315759;, + 0.413033;0.324239;, + 0.413033;0.300140;, + 0.413033;0.315759;, + 0.413033;0.300140;, + 0.413033;0.300140;, + 0.413033;0.315759;, + 0.413033;0.315759;, + 0.413033;0.300140;, + 0.413033;0.259084;, + 0.413033;0.315759;, + 0.413033;0.300140;, + 0.413033;0.089049;, + 0.413033;0.259084;, + 0.413033;0.300140;, + 0.413033;0.089049;, + 0.413033;0.300140;, + 0.413033;0.081019;, + 0.413033;0.081019;, + 0.413033;0.073430;, + 0.413033;0.073430;, + 0.413033;0.089049;, + 0.413033;0.081019;, + 0.413033;0.073430;, + 0.413033;0.089049;, + 0.413033;0.089049;, + 0.413033;0.073430;, + 0.413033;0.035945;, + 0.413033;0.035945;, + 0.413033;0.133231;, + 0.413033;0.064953;, + 0.413033;0.035945;, + 0.413033;0.133231;, + 0.413033;0.064953;, + 0.413033;0.133231;, + 0.413033;0.133231;, + 0.413033;0.064953;, + 0.413033;0.133231;, + 0.413033;0.099760;, + 0.413033;0.064953;, + 0.413033;0.099760;, + 0.413033;0.089049;, + 0.413033;0.073430;, + 0.413033;0.064953;, + 0.413033;0.089049;, + 0.413033;0.259084;, + 0.413033;0.089049;, + 0.430512;0.089049;, + 0.413033;0.259084;, + 0.430512;0.089049;, + 0.430512;0.259084;, + 0.413033;0.089049;, + 0.413033;0.089049;, + 0.430512;0.089049;, + 0.413033;0.089049;, + 0.430512;0.089049;, + 0.430512;0.089049;, + 0.413033;0.089049;, + 0.413033;0.099760;, + 0.430512;0.099760;, + 0.413033;0.089049;, + 0.430512;0.099760;, + 0.430512;0.089049;, + 0.413033;0.099760;, + 0.413033;0.133231;, + 0.430512;0.133231;, + 0.413033;0.099760;, + 0.430512;0.133231;, + 0.430512;0.099760;, + 0.413033;0.133231;, + 0.413033;0.133231;, + 0.430512;0.133231;, + 0.413033;0.133231;, + 0.430512;0.133231;, + 0.430512;0.133231;, + 0.413033;0.133231;, + 0.413033;0.035945;, + 0.430512;0.035945;, + 0.413033;0.133231;, + 0.430512;0.035945;, + 0.430512;0.133231;, + 0.413033;0.035945;, + 0.413033;0.035945;, + 0.430512;0.035945;, + 0.413033;0.035945;, + 0.430512;0.035945;, + 0.430512;0.035945;, + 0.413033;0.035945;, + 0.413033;0.064953;, + 0.430512;0.064953;, + 0.413033;0.035945;, + 0.430512;0.064953;, + 0.430512;0.035945;, + 0.413033;0.064953;, + 0.413033;0.073430;, + 0.430512;0.073430;, + 0.413033;0.064953;, + 0.430512;0.073430;, + 0.430512;0.064953;, + 0.413033;0.073430;, + 0.413033;0.073430;, + 0.430512;0.073430;, + 0.413033;0.073430;, + 0.430512;0.073430;, + 0.430512;0.073430;, + 0.413033;0.073430;, + 0.413033;0.081019;, + 0.430512;0.081019;, + 0.413033;0.073430;, + 0.430512;0.081019;, + 0.430512;0.073430;, + 0.413033;0.081019;, + 0.413033;0.300140;, + 0.430512;0.300140;, + 0.413033;0.081019;, + 0.430512;0.300140;, + 0.430512;0.081019;, + 0.413033;0.300140;, + 0.413033;0.300140;, + 0.430512;0.300140;, + 0.413033;0.300140;, + 0.430512;0.300140;, + 0.430512;0.300140;, + 0.413033;0.300140;, + 0.413033;0.291216;, + 0.430512;0.291216;, + 0.413033;0.300140;, + 0.430512;0.291216;, + 0.430512;0.300140;, + 0.413033;0.291216;, + 0.413033;0.253280;, + 0.430512;0.253280;, + 0.413033;0.291216;, + 0.430512;0.253280;, + 0.430512;0.291216;, + 0.413033;0.253280;, + 0.413033;0.253280;, + 0.430512;0.253280;, + 0.413033;0.253280;, + 0.430512;0.253280;, + 0.430512;0.253280;, + 0.413033;0.253280;, + 0.413033;0.357710;, + 0.430512;0.357710;, + 0.413033;0.253280;, + 0.430512;0.357710;, + 0.430512;0.253280;, + 0.413033;0.357710;, + 0.413033;0.357710;, + 0.430512;0.357710;, + 0.413033;0.357710;, + 0.430512;0.357710;, + 0.430512;0.357710;, + 0.413033;0.357710;, + 0.413033;0.324239;, + 0.430512;0.324239;, + 0.413033;0.357710;, + 0.430512;0.324239;, + 0.430512;0.357710;, + 0.413033;0.324239;, + 0.413033;0.315759;, + 0.430512;0.315759;, + 0.413033;0.324239;, + 0.430512;0.315759;, + 0.430512;0.324239;, + 0.413033;0.315759;, + 0.413033;0.357710;, + 0.430512;0.357710;, + 0.413033;0.315759;, + 0.430512;0.357710;, + 0.430512;0.315759;, + 0.413033;0.357710;, + 0.413033;0.357710;, + 0.430512;0.357710;, + 0.413033;0.357710;, + 0.430512;0.357710;, + 0.430512;0.357710;, + 0.413033;0.357710;, + 0.413033;0.259084;, + 0.430512;0.259084;, + 0.413033;0.357710;, + 0.430512;0.259084;, + 0.430512;0.357710;, + 0.430512;0.357710;, + 0.430512;0.357710;, + 0.430512;0.259084;, + 0.430512;0.315759;, + 0.430512;0.357710;, + 0.430512;0.259084;, + 0.430512;0.253280;, + 0.430512;0.357710;, + 0.430512;0.357710;, + 0.430512;0.253280;, + 0.430512;0.357710;, + 0.430512;0.324239;, + 0.430512;0.253280;, + 0.430512;0.253280;, + 0.430512;0.324239;, + 0.430512;0.291216;, + 0.430512;0.253280;, + 0.430512;0.324239;, + 0.430512;0.300140;, + 0.430512;0.291216;, + 0.430512;0.324239;, + 0.430512;0.300140;, + 0.430512;0.324239;, + 0.430512;0.315759;, + 0.430512;0.300140;, + 0.430512;0.300140;, + 0.430512;0.315759;, + 0.430512;0.300140;, + 0.430512;0.315759;, + 0.430512;0.315759;, + 0.430512;0.300140;, + 0.430512;0.315759;, + 0.430512;0.259084;, + 0.430512;0.300140;, + 0.430512;0.259084;, + 0.430512;0.089049;, + 0.430512;0.081019;, + 0.430512;0.300140;, + 0.430512;0.089049;, + 0.430512;0.073430;, + 0.430512;0.073430;, + 0.430512;0.081019;, + 0.430512;0.073430;, + 0.430512;0.081019;, + 0.430512;0.089049;, + 0.430512;0.073430;, + 0.430512;0.089049;, + 0.430512;0.089049;, + 0.430512;0.133231;, + 0.430512;0.035945;, + 0.430512;0.035945;, + 0.430512;0.133231;, + 0.430512;0.035945;, + 0.430512;0.064953;, + 0.430512;0.133231;, + 0.430512;0.133231;, + 0.430512;0.064953;, + 0.430512;0.099760;, + 0.430512;0.133231;, + 0.430512;0.064953;, + 0.430512;0.089049;, + 0.430512;0.099760;, + 0.430512;0.064953;, + 0.430512;0.089049;, + 0.430512;0.064953;, + 0.430512;0.073430;, + 0.413033;0.315759;, + 0.413033;0.315759;, + 0.419275;0.315759;, + 0.413033;0.315759;, + 0.419275;0.315759;, + 0.430512;0.315759;, + 0.419275;0.315759;, + 0.413033;0.315759;, + 0.419275;0.315759;, + 0.413033;0.315759;, + 0.430512;0.315759;, + 0.419275;0.315759;, + 0.430512;0.315759;, + 0.424192;0.315759;, + 0.419275;0.315759;, + 0.430512;0.315759;, + 0.430512;0.315759;, + 0.424192;0.315759;, + 0.424192;0.315759;, + 0.430512;0.315759;, + 0.419275;0.315759;, + 0.424192;0.315759;, + 0.424192;0.315759;, + 0.430512;0.315759;, + 0.419275;0.543584;, + 0.419275;0.543584;, + 0.424192;0.543584;, + 0.419275;0.543584;, + 0.424192;0.543584;, + 0.424192;0.543584;, + 0.419275;0.543584;, + 0.419275;0.315759;, + 0.419275;0.543584;, + 0.419275;0.315759;, + 0.419275;0.543584;, + 0.419275;0.315759;, + 0.419275;0.315759;, + 0.424192;0.315759;, + 0.419275;0.543584;, + 0.424192;0.543584;, + 0.424192;0.315759;, + 0.419275;0.543584;, + 0.419275;0.315759;, + 0.419275;0.543584;, + 0.424192;0.315759;, + 0.424192;0.543584;, + 0.424192;0.315759;, + 0.424192;0.543584;, + 0.424192;0.315759;, + 0.424192;0.543584;, + 0.419275;0.543584;, + 0.424192;0.315759;, + 0.424192;0.543584;, + 0.424192;0.315759;, + 1.000000;0.551700;, + 0.931334;0.551700;, + 0.931334;0.551700;, + 1.000000;0.551700;, + 0.931334;0.551700;, + 0.959405;0.551700;, + 0.973657;0.551700;, + 1.000000;0.551700;, + 0.959405;0.551700;, + 0.879940;0.551700;, + 0.973657;0.551700;, + 0.959405;0.551700;, + 0.879940;0.551700;, + 0.959405;0.551700;, + 0.902398;0.551700;, + 0.873031;0.551700;, + 0.873031;0.551700;, + 0.737855;0.551700;, + 0.843232;0.551700;, + 0.873031;0.551700;, + 0.737855;0.551700;, + 0.843232;0.551700;, + 0.737855;0.551700;, + 0.737855;0.551700;, + 0.843232;0.551700;, + 0.737855;0.551700;, + 0.780178;0.551700;, + 0.843232;0.551700;, + 0.780178;0.551700;, + 0.796157;0.551700;, + 0.902398;0.551700;, + 0.843232;0.551700;, + 0.796157;0.551700;, + 0.711079;0.551700;, + 0.711079;0.551700;, + 0.594042;0.551700;, + 0.686894;0.551700;, + 0.711079;0.551700;, + 0.594042;0.551700;, + 0.686894;0.551700;, + 0.594042;0.551700;, + 0.621249;0.551700;, + 0.686894;0.551700;, + 0.621249;0.551700;, + 0.718853;0.551700;, + 0.750380;0.551700;, + 0.686894;0.551700;, + 0.718853;0.551700;, + 0.750380;0.551700;, + 0.718853;0.551700;, + 0.726627;0.551700;, + 0.750380;0.551700;, + 0.726627;0.551700;, + 0.803498;0.551700;, + 0.796157;0.551700;, + 0.750380;0.551700;, + 0.803498;0.551700;, + 0.902398;0.551700;, + 0.796157;0.551700;, + 0.803498;0.551700;, + 0.902398;0.551700;, + 0.803498;0.551700;, + 0.873031;0.551700;, + 0.879940;0.551700;, + 0.902398;0.551700;, + 0.873031;0.551700;, + 1.000000;0.551700;, + 0.973657;0.551700;, + 0.973657;0.568817;, + 1.000000;0.551700;, + 0.973657;0.568817;, + 1.000000;0.568817;, + 0.973657;0.551700;, + 0.879940;0.551700;, + 0.879940;0.568817;, + 0.973657;0.551700;, + 0.879940;0.568817;, + 0.973657;0.568817;, + 0.879940;0.551700;, + 0.873031;0.551700;, + 0.873031;0.568817;, + 0.879940;0.551700;, + 0.873031;0.568817;, + 0.879940;0.568817;, + 0.873031;0.551700;, + 0.803498;0.551700;, + 0.803498;0.568817;, + 0.873031;0.551700;, + 0.803498;0.568817;, + 0.873031;0.568817;, + 0.803498;0.551700;, + 0.726627;0.551700;, + 0.726627;0.568817;, + 0.803498;0.551700;, + 0.726627;0.568817;, + 0.803498;0.568817;, + 0.726627;0.551700;, + 0.718853;0.551700;, + 0.718853;0.568817;, + 0.726627;0.551700;, + 0.718853;0.568817;, + 0.726627;0.568817;, + 0.621249;0.551700;, + 0.594042;0.551700;, + 0.594042;0.568817;, + 0.621249;0.551700;, + 0.594042;0.568817;, + 0.621249;0.568817;, + 0.594042;0.551700;, + 0.711079;0.551700;, + 0.711079;0.568817;, + 0.594042;0.551700;, + 0.711079;0.568817;, + 0.594042;0.568817;, + 0.711079;0.551700;, + 0.711079;0.551700;, + 0.711079;0.568817;, + 0.711079;0.551700;, + 0.711079;0.568817;, + 0.711079;0.568817;, + 0.711079;0.551700;, + 0.686894;0.551700;, + 0.686894;0.568817;, + 0.711079;0.551700;, + 0.686894;0.568817;, + 0.711079;0.568817;, + 0.686894;0.551700;, + 0.750380;0.551700;, + 0.750380;0.568817;, + 0.686894;0.551700;, + 0.750380;0.568817;, + 0.686894;0.568817;, + 0.750380;0.551700;, + 0.796157;0.551700;, + 0.796157;0.568817;, + 0.750380;0.551700;, + 0.796157;0.568817;, + 0.750380;0.568817;, + 0.796157;0.551700;, + 0.780178;0.551700;, + 0.780178;0.568817;, + 0.796157;0.551700;, + 0.780178;0.568817;, + 0.796157;0.568817;, + 0.780178;0.551700;, + 0.737855;0.551700;, + 0.737855;0.568817;, + 0.780178;0.551700;, + 0.737855;0.568817;, + 0.780178;0.568817;, + 0.737855;0.551700;, + 0.737855;0.551700;, + 0.737855;0.568817;, + 0.737855;0.551700;, + 0.737855;0.568817;, + 0.737855;0.568817;, + 0.737855;0.551700;, + 0.873031;0.551700;, + 0.873031;0.568817;, + 0.737855;0.551700;, + 0.873031;0.568817;, + 0.737855;0.568817;, + 0.873031;0.551700;, + 0.873031;0.551700;, + 0.873031;0.568817;, + 0.873031;0.551700;, + 0.873031;0.568817;, + 0.873031;0.568817;, + 0.873031;0.551700;, + 0.843232;0.551700;, + 0.843232;0.568817;, + 0.873031;0.551700;, + 0.843232;0.568817;, + 0.873031;0.568817;, + 0.843232;0.551700;, + 0.902398;0.551700;, + 0.902398;0.568817;, + 0.843232;0.551700;, + 0.902398;0.568817;, + 0.843232;0.568817;, + 0.902398;0.551700;, + 0.959405;0.551700;, + 0.902398;0.568817;, + 0.959405;0.551700;, + 0.959405;0.568817;, + 0.902398;0.568817;, + 0.959405;0.551700;, + 0.931334;0.551700;, + 0.931334;0.568817;, + 0.959405;0.551700;, + 0.931334;0.568817;, + 0.959405;0.568817;, + 0.931334;0.551700;, + 0.931334;0.551700;, + 0.931334;0.568817;, + 0.931334;0.551700;, + 0.931334;0.568817;, + 0.931334;0.568817;, + 0.931334;0.551700;, + 1.000000;0.551700;, + 1.000000;0.568817;, + 0.931334;0.551700;, + 1.000000;0.568817;, + 0.931334;0.568817;, + 0.931334;0.568817;, + 0.931334;0.568817;, + 1.000000;0.568817;, + 0.959405;0.568817;, + 0.931334;0.568817;, + 1.000000;0.568817;, + 0.959405;0.568817;, + 1.000000;0.568817;, + 0.973657;0.568817;, + 0.902398;0.568817;, + 0.959405;0.568817;, + 0.973657;0.568817;, + 0.902398;0.568817;, + 0.973657;0.568817;, + 0.879940;0.568817;, + 0.737855;0.568817;, + 0.873031;0.568817;, + 0.873031;0.568817;, + 0.737855;0.568817;, + 0.873031;0.568817;, + 0.843232;0.568817;, + 0.737855;0.568817;, + 0.737855;0.568817;, + 0.843232;0.568817;, + 0.780178;0.568817;, + 0.737855;0.568817;, + 0.843232;0.568817;, + 0.796157;0.568817;, + 0.780178;0.568817;, + 0.843232;0.568817;, + 0.796157;0.568817;, + 0.843232;0.568817;, + 0.902398;0.568817;, + 0.594042;0.568817;, + 0.711079;0.568817;, + 0.711079;0.568817;, + 0.594042;0.568817;, + 0.711079;0.568817;, + 0.686894;0.568817;, + 0.621249;0.568817;, + 0.594042;0.568817;, + 0.686894;0.568817;, + 0.718853;0.568817;, + 0.621249;0.568817;, + 0.686894;0.568817;, + 0.718853;0.568817;, + 0.686894;0.568817;, + 0.750380;0.568817;, + 0.726627;0.568817;, + 0.718853;0.568817;, + 0.750380;0.568817;, + 0.803498;0.568817;, + 0.726627;0.568817;, + 0.750380;0.568817;, + 0.803498;0.568817;, + 0.750380;0.568817;, + 0.796157;0.568817;, + 0.803498;0.568817;, + 0.796157;0.568817;, + 0.902398;0.568817;, + 0.873031;0.568817;, + 0.803498;0.568817;, + 0.902398;0.568817;, + 0.873031;0.568817;, + 0.902398;0.568817;, + 0.879940;0.568817;, + 0.718853;0.551700;, + 0.621249;0.551700;, + 0.663929;0.557508;, + 0.718853;0.551700;, + 0.663929;0.557508;, + 0.718853;0.568817;, + 0.663929;0.557508;, + 0.621249;0.551700;, + 0.659215;0.557508;, + 0.621249;0.551700;, + 0.621249;0.568817;, + 0.659215;0.557508;, + 0.663929;0.557508;, + 0.663929;0.562424;, + 0.718853;0.568817;, + 0.621249;0.568817;, + 0.718853;0.568817;, + 0.659215;0.562424;, + 0.659215;0.562424;, + 0.718853;0.568817;, + 0.663929;0.562424;, + 0.659215;0.562424;, + 0.659215;0.557508;, + 0.621249;0.568817;, + 0.438375;0.557508;, + 0.438375;0.557508;, + 0.438375;0.562424;, + 0.438375;0.557508;, + 0.438375;0.562424;, + 0.438375;0.562424;, + 0.438375;0.557508;, + 0.663929;0.557508;, + 0.438375;0.557508;, + 0.659215;0.557508;, + 0.438375;0.557508;, + 0.663929;0.557508;, + 0.438375;0.562424;, + 0.663929;0.562424;, + 0.438375;0.557508;, + 0.663929;0.557508;, + 0.438375;0.557508;, + 0.663929;0.562424;, + 0.438375;0.562424;, + 0.659215;0.562424;, + 0.438375;0.562424;, + 0.659215;0.562424;, + 0.438375;0.562424;, + 0.438375;0.557508;, + 0.663929;0.562424;, + 0.438375;0.562424;, + 0.659215;0.562424;, + 0.438375;0.557508;, + 0.659215;0.557508;, + 0.659215;0.562424;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/PANEL2.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/PANEL2.X new file mode 100644 index 0000000..9a639db --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/PANEL2.X @@ -0,0 +1,205 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 12; + 1.000000;-1.000000;0.000000;, + -1.000000;-1.000000;0.000000;, + -1.000000;1.000000;0.000000;, + 1.000000;-1.000000;0.000000;, + -1.000000;1.000000;0.000000;, + 1.000000;1.000000;0.000000;, + -1.000000;-1.000000;0.000000;, + 1.000000;-1.000000;0.000000;, + 1.000000;1.000000;0.000000;, + -1.000000;-1.000000;0.000000;, + 1.000000;1.000000;0.000000;, + -1.000000;1.000000;0.000000;; + + 4; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;; + + MeshMaterialList { + 1; + 4; + 0;, + 0;, + 0;, + 0;; + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 4; + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;; + + 4; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;; + } # MeshNormals + MeshTextureCoords { + 12; + 0.000000;1.000000;, + 1.000000;1.000000;, + 1.000000;0.000000;, + 0.000000;1.000000;, + 1.000000;0.000000;, + 0.000000;0.000000;, + 1.000000;1.000000;, + 0.000000;1.000000;, + 0.000000;0.000000;, + 1.000000;1.000000;, + 0.000000;0.000000;, + 1.000000;0.000000;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/QUAD.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/QUAD.X new file mode 100644 index 0000000..049c672 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/QUAD.X @@ -0,0 +1,185 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 6; + 1.000000;1.000000;-0.010000;, + 1.000000;-1.000000;-0.010000;, + -1.000000;-1.000000;-0.010000;, + 1.000000;1.000000;-0.010000;, + -1.000000;-1.000000;-0.010000;, + -1.000000;1.000000;-0.010000;; + + 2; + 3;2,1,0;, + 3;5,4,3;; + + MeshMaterialList { + 1; + 2; + 0;, + 0;; + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 2; + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;; + + 2; + 3;0,0,0;, + 3;1,1,1;; + } # MeshNormals + MeshTextureCoords { + 6; + 1.000000;1.000000;, + 0.000000;1.000000;, + 0.000000;0.000000;, + 1.000000;1.000000;, + 0.000000;0.000000;, + 1.000000;0.000000;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/QUAD5X10.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/QUAD5X10.X new file mode 100644 index 0000000..1054cde --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/QUAD5X10.X @@ -0,0 +1,420 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 66; + -1.000000;-1.000000;0.000000;, +-1.000000;-0.600000;0.000000;, +-1.000000;-0.200000;0.000000;, +-1.000000;0.200000;0.000000;, +-1.000000;0.600000;0.000000;, +-1.000000;1.000000;0.000000;, +-0.800000;-1.000000;0.000000;, +-0.800000;-0.600000;0.000000;, +-0.800000;-0.200000;0.000000;, +-0.800000;0.200000;0.000000;, +-0.800000;0.600000;0.000000;, +-0.800000;1.000000;0.000000;, +-0.600000;-1.000000;0.000000;, +-0.600000;-0.600000;0.000000;, +-0.600000;-0.200000;0.000000;, +-0.600000;0.200000;0.000000;, +-0.600000;0.600000;0.000000;, +-0.600000;1.000000;0.000000;, +-0.400000;-1.000000;0.000000;, +-0.400000;-0.600000;0.000000;, +-0.400000;-0.200000;0.000000;, +-0.400000;0.200000;0.000000;, +-0.400000;0.600000;0.000000;, +-0.400000;1.000000;0.000000;, +-0.200000;-1.000000;0.000000;, +-0.200000;-0.600000;0.000000;, +-0.200000;-0.200000;0.000000;, +-0.200000;0.200000;0.000000;, +-0.200000;0.600000;0.000000;, +-0.200000;1.000000;0.000000;, +0.000000;-1.000000;0.000000;, +0.000000;-0.600000;0.000000;, +0.000000;-0.200000;0.000000;, +0.000000;0.200000;0.000000;, +0.000000;0.600000;0.000000;, +0.000000;1.000000;0.000000;, +0.200000;-1.000000;0.000000;, +0.200000;-0.600000;0.000000;, +0.200000;-0.200000;0.000000;, +0.200000;0.200000;0.000000;, +0.200000;0.600000;0.000000;, +0.200000;1.000000;0.000000;, +0.400000;-1.000000;0.000000;, +0.400000;-0.600000;0.000000;, +0.400000;-0.200000;0.000000;, +0.400000;0.200000;0.000000;, +0.400000;0.600000;0.000000;, +0.400000;1.000000;0.000000;, +0.600000;-1.000000;0.000000;, +0.600000;-0.600000;0.000000;, +0.600000;-0.200000;0.000000;, +0.600000;0.200000;0.000000;, +0.600000;0.600000;0.000000;, +0.600000;1.000000;0.000000;, +0.800000;-1.000000;0.000000;, +0.800000;-0.600000;0.000000;, +0.800000;-0.200000;0.000000;, +0.800000;0.200000;0.000000;, +0.800000;0.600000;0.000000;, +0.800000;1.000000;0.000000;, +1.000000;-1.000000;0.000000;, +1.000000;-0.600000;0.000000;, +1.000000;-0.200000;0.000000;, +1.000000;0.200000;0.000000;, +1.000000;0.600000;0.000000;, +1.000000;1.000000;0.000000;; + +100; +3;0,7,6;, +3;0,1,7;, +3;1,8,7;, +3;1,2,8;, +3;2,9,8;, +3;2,3,9;, +3;3,10,9;, +3;3,4,10;, +3;4,11,10;, +3;4,5,11;, +3;6,13,12;, +3;6,7,13;, +3;7,14,13;, +3;7,8,14;, +3;8,15,14;, +3;8,9,15;, +3;9,16,15;, +3;9,10,16;, +3;10,17,16;, +3;10,11,17;, +3;12,19,18;, +3;12,13,19;, +3;13,20,19;, +3;13,14,20;, +3;14,21,20;, +3;14,15,21;, +3;15,22,21;, +3;15,16,22;, +3;16,23,22;, +3;16,17,23;, +3;18,25,24;, +3;18,19,25;, +3;19,26,25;, +3;19,20,26;, +3;20,27,26;, +3;20,21,27;, +3;21,28,27;, +3;21,22,28;, +3;22,29,28;, +3;22,23,29;, +3;24,31,30;, +3;24,25,31;, +3;25,32,31;, +3;25,26,32;, +3;26,33,32;, +3;26,27,33;, +3;27,34,33;, +3;27,28,34;, +3;28,35,34;, +3;28,29,35;, +3;30,37,36;, +3;30,31,37;, +3;31,38,37;, +3;31,32,38;, +3;32,39,38;, +3;32,33,39;, +3;33,40,39;, +3;33,34,40;, +3;34,41,40;, +3;34,35,41;, +3;36,43,42;, +3;36,37,43;, +3;37,44,43;, +3;37,38,44;, +3;38,45,44;, +3;38,39,45;, +3;39,46,45;, +3;39,40,46;, +3;40,47,46;, +3;40,41,47;, +3;42,49,48;, +3;42,43,49;, +3;43,50,49;, +3;43,44,50;, +3;44,51,50;, +3;44,45,51;, +3;45,52,51;, +3;45,46,52;, +3;46,53,52;, +3;46,47,53;, +3;48,55,54;, +3;48,49,55;, +3;49,56,55;, +3;49,50,56;, +3;50,57,56;, +3;50,51,57;, +3;51,58,57;, +3;51,52,58;, +3;52,59,58;, +3;52,53,59;, +3;54,61,60;, +3;54,55,61;, +3;55,62,61;, +3;55,56,62;, +3;56,63,62;, +3;56,57,63;, +3;57,64,63;, +3;57,58,64;, +3;58,65,64;, +3;58,59,65;; + + MeshNormals { + 1; + 0.000000;0.000000;-1.000000;; + + 100; + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, + 3;0,0,0;, +3;0,0,0;; + } # MeshNormals + +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/RIGHTWING.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/RIGHTWING.X new file mode 100644 index 0000000..68bca12 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/RIGHTWING.X @@ -0,0 +1,3757 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 1074; + -0.066581;0.004576;-0.004198;, + -0.065638;0.004679;-0.004435;, + -0.065638;0.004460;-0.012378;, + -0.066581;0.004346;-0.012180;, + -0.066581;0.004576;-0.004198;, + -0.065638;0.004460;-0.012378;, + -0.066581;0.004737;0.002537;, + -0.065638;0.004831;0.002267;, + -0.065638;0.004679;-0.004435;, + -0.066581;0.004576;-0.004198;, + -0.066581;0.004737;0.002537;, + -0.065638;0.004679;-0.004435;, + -0.066581;0.005096;-0.004198;, + -0.065638;0.005171;-0.004435;, + -0.065638;0.004831;0.002267;, + -0.066581;0.004737;0.002537;, + -0.066581;0.005096;-0.004198;, + -0.065638;0.004831;0.002267;, + -0.066581;0.005525;-0.012180;, + -0.065638;0.005577;-0.012378;, + -0.065638;0.005171;-0.004435;, + -0.066581;0.005096;-0.004198;, + -0.066581;0.005525;-0.012180;, + -0.065638;0.005171;-0.004435;, + -0.066581;0.005224;-0.013207;, + -0.065638;0.005293;-0.013400;, + -0.065638;0.005577;-0.012378;, + -0.066581;0.005525;-0.012180;, + -0.066581;0.005224;-0.013207;, + -0.065638;0.005577;-0.012378;, + -0.066581;0.004923;-0.013443;, + -0.065638;0.005008;-0.013634;, + -0.065638;0.005293;-0.013400;, + -0.066581;0.005224;-0.013207;, + -0.066581;0.004923;-0.013443;, + -0.065638;0.005293;-0.013400;, + -0.066581;0.004634;-0.013207;, + -0.065638;0.004734;-0.013400;, + -0.065638;0.005008;-0.013634;, + -0.066581;0.004923;-0.013443;, + -0.066581;0.004634;-0.013207;, + -0.065638;0.005008;-0.013634;, + -0.066581;0.004346;-0.012180;, + -0.065638;0.004460;-0.012378;, + -0.065638;0.004734;-0.013400;, + -0.066581;0.004634;-0.013207;, + -0.066581;0.004346;-0.012180;, + -0.065638;0.004734;-0.013400;, + -0.075805;0.003340;0.001816;, + -0.066581;0.004576;-0.004198;, + -0.066581;0.004346;-0.012180;, + -0.075805;0.003225;-0.002177;, + -0.075805;0.003340;0.001816;, + -0.066581;0.004346;-0.012180;, + -0.075805;0.003420;0.005184;, + -0.066581;0.004737;0.002537;, + -0.066581;0.004576;-0.004198;, + -0.075805;0.003340;0.001816;, + -0.075805;0.003420;0.005184;, + -0.066581;0.004576;-0.004198;, + -0.075805;0.003600;0.001816;, + -0.066581;0.005096;-0.004198;, + -0.066581;0.004737;0.002537;, + -0.075805;0.003420;0.005184;, + -0.075805;0.003600;0.001816;, + -0.066581;0.004737;0.002537;, + -0.075805;0.003814;-0.002177;, + -0.066581;0.005525;-0.012180;, + -0.066581;0.005096;-0.004198;, + -0.075805;0.003600;0.001816;, + -0.075805;0.003814;-0.002177;, + -0.066581;0.005096;-0.004198;, + -0.075805;0.003664;-0.002690;, + -0.066581;0.005224;-0.013207;, + -0.066581;0.005525;-0.012180;, + -0.075805;0.003814;-0.002177;, + -0.075805;0.003664;-0.002690;, + -0.066581;0.005525;-0.012180;, + -0.075805;0.003513;-0.002808;, + -0.066581;0.004923;-0.013443;, + -0.066581;0.005224;-0.013207;, + -0.075805;0.003664;-0.002690;, + -0.075805;0.003513;-0.002808;, + -0.066581;0.005224;-0.013207;, + -0.075805;0.003369;-0.002690;, + -0.066581;0.004634;-0.013207;, + -0.066581;0.004923;-0.013443;, + -0.075805;0.003513;-0.002808;, + -0.075805;0.003369;-0.002690;, + -0.066581;0.004923;-0.013443;, + -0.075805;0.003225;-0.002177;, + -0.066581;0.004346;-0.012180;, + -0.066581;0.004634;-0.013207;, + -0.075805;0.003369;-0.002690;, + -0.075805;0.003225;-0.002177;, + -0.066581;0.004634;-0.013207;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003340;0.001816;, + -0.075805;0.003225;-0.002177;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003225;-0.002177;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003420;0.005184;, + -0.075805;0.003340;0.001816;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003340;0.001816;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003600;0.001816;, + -0.075805;0.003420;0.005184;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003420;0.005184;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003814;-0.002177;, + -0.075805;0.003600;0.001816;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003600;0.001816;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003664;-0.002690;, + -0.075805;0.003814;-0.002177;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003814;-0.002177;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003513;-0.002808;, + -0.075805;0.003664;-0.002690;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003664;-0.002690;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003369;-0.002690;, + -0.075805;0.003513;-0.002808;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003513;-0.002808;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003225;-0.002177;, + -0.075805;0.003369;-0.002690;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.075805;0.003369;-0.002690;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.085029;0.002104;0.007831;, + -0.065638;0.004460;-0.012378;, + -0.065638;0.004679;-0.004435;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.004678;-0.004474;, + -0.065638;0.004679;-0.004435;, + -0.065634;0.004679;-0.004436;, + -0.065638;0.004831;0.002267;, + -0.065634;0.004679;-0.004436;, + -0.065638;0.004679;-0.004435;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.004461;-0.012379;, + -0.065638;0.004460;-0.012378;, + -0.065634;0.004830;0.002233;, + -0.065638;0.004831;0.002267;, + -0.065634;0.004831;0.002265;, + -0.065638;0.005171;-0.004435;, + -0.065634;0.004831;0.002265;, + -0.065638;0.004831;0.002267;, + -0.065638;0.004831;0.002267;, + -0.065634;0.004830;0.002233;, + -0.065634;0.004822;0.001863;, + -0.065638;0.004831;0.002267;, + -0.065634;0.004822;0.001863;, + -0.065634;0.004679;-0.004436;, + -0.065634;0.005170;-0.004404;, + -0.065638;0.005171;-0.004435;, + -0.065634;0.005171;-0.004436;, + -0.065638;0.005577;-0.012378;, + -0.065634;0.005171;-0.004436;, + -0.065638;0.005171;-0.004435;, + -0.065638;0.005171;-0.004435;, + -0.065634;0.004832;0.002239;, + -0.065634;0.004831;0.002265;, + -0.065638;0.005171;-0.004435;, + -0.065634;0.004848;0.001933;, + -0.065634;0.004832;0.002239;, + -0.065638;0.005171;-0.004435;, + -0.065634;0.005170;-0.004404;, + -0.065634;0.005097;-0.002977;, + -0.065638;0.005171;-0.004435;, + -0.065634;0.005097;-0.002977;, + -0.065634;0.005096;-0.002950;, + -0.065638;0.005171;-0.004435;, + -0.065634;0.005096;-0.002950;, + -0.065634;0.004848;0.001933;, + -0.065634;0.005576;-0.012341;, + -0.065638;0.005577;-0.012378;, + -0.065634;0.005578;-0.012379;, + -0.065638;0.005293;-0.013400;, + -0.065634;0.005578;-0.012379;, + -0.065638;0.005577;-0.012378;, + -0.065638;0.005577;-0.012378;, + -0.065634;0.005576;-0.012341;, + -0.065634;0.005236;-0.005707;, + -0.065638;0.005577;-0.012378;, + -0.065634;0.005236;-0.005707;, + -0.065634;0.005171;-0.004436;, + -0.065634;0.005294;-0.013396;, + -0.065638;0.005293;-0.013400;, + -0.065634;0.005293;-0.013401;, + -0.065638;0.005008;-0.013634;, + -0.065634;0.005293;-0.013401;, + -0.065638;0.005293;-0.013400;, + -0.065638;0.005293;-0.013400;, + -0.065634;0.005294;-0.013396;, + -0.065634;0.005337;-0.013241;, + -0.065638;0.005293;-0.013400;, + -0.065634;0.005337;-0.013241;, + -0.065634;0.005578;-0.012379;, + -0.065634;0.005293;-0.013401;, + -0.065638;0.005008;-0.013634;, + -0.065634;0.005009;-0.013634;, + -0.065634;0.005009;-0.013634;, + -0.065638;0.005008;-0.013634;, + -0.065634;0.005008;-0.013635;, + -0.065638;0.004734;-0.013400;, + -0.065634;0.005008;-0.013635;, + -0.065638;0.005008;-0.013634;, + -0.065634;0.004736;-0.013402;, + -0.065638;0.004734;-0.013400;, + -0.065634;0.004734;-0.013401;, + -0.065638;0.004460;-0.012378;, + -0.065634;0.004734;-0.013401;, + -0.065638;0.004734;-0.013400;, + -0.065638;0.004734;-0.013400;, + -0.065634;0.004736;-0.013402;, + -0.065634;0.004980;-0.013611;, + -0.065638;0.004734;-0.013400;, + -0.065634;0.004980;-0.013611;, + -0.065634;0.004983;-0.013613;, + -0.065638;0.004734;-0.013400;, + -0.065634;0.004983;-0.013613;, + -0.065634;0.005008;-0.013635;, + -0.065638;0.004734;-0.013400;, + -0.065634;0.005008;-0.013635;, + -0.065634;0.005008;-0.013635;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.004462;-0.012384;, + -0.065638;0.004460;-0.012378;, + -0.065634;0.004734;-0.013401;, + -0.065638;0.004460;-0.012378;, + -0.065634;0.004462;-0.012384;, + -0.065634;0.005171;-0.004436;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.005170;-0.004404;, + -0.065634;0.004822;0.001863;, + -0.065634;0.004830;0.002233;, + -0.065634;0.004832;0.002239;, + -0.065634;0.004831;0.002265;, + -0.065634;0.004832;0.002239;, + -0.065634;0.004830;0.002233;, + -0.065634;0.004832;0.002239;, + -0.065634;0.004848;0.001933;, + -0.065634;0.004822;0.001863;, + -0.065634;0.004679;-0.004436;, + -0.065634;0.004822;0.001863;, + -0.065634;0.004848;0.001933;, + -0.065634;0.005170;-0.004404;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.005097;-0.002977;, + -0.065634;0.004679;-0.004436;, + -0.065634;0.005097;-0.002977;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.005097;-0.002977;, + -0.065634;0.004679;-0.004436;, + -0.065634;0.005096;-0.002950;, + -0.065634;0.004848;0.001933;, + -0.065634;0.005096;-0.002950;, + -0.065634;0.004679;-0.004436;, + -0.065634;0.005576;-0.012341;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.005578;-0.012379;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.005576;-0.012341;, + -0.065634;0.005576;-0.012341;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.005236;-0.005707;, + -0.065634;0.005171;-0.004436;, + -0.065634;0.005236;-0.005707;, + -0.065634;0.004678;-0.004474;, + -0.065634;0.005578;-0.012379;, + -0.065634;0.005337;-0.013241;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.005294;-0.013396;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.005337;-0.013241;, + -0.065634;0.004736;-0.013402;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.005294;-0.013396;, + -0.065634;0.004734;-0.013401;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.004736;-0.013402;, + -0.065634;0.004736;-0.013402;, + -0.065634;0.005294;-0.013396;, + -0.065634;0.004980;-0.013611;, + -0.065634;0.005293;-0.013401;, + -0.065634;0.004980;-0.013611;, + -0.065634;0.005294;-0.013396;, + -0.065634;0.004980;-0.013611;, + -0.065634;0.005293;-0.013401;, + -0.065634;0.004983;-0.013613;, + -0.065634;0.005009;-0.013634;, + -0.065634;0.004983;-0.013613;, + -0.065634;0.005293;-0.013401;, + -0.065634;0.004983;-0.013613;, + -0.065634;0.005009;-0.013634;, + -0.065634;0.005008;-0.013635;, + -0.065634;0.005008;-0.013635;, + -0.065634;0.005008;-0.013635;, + -0.065634;0.005009;-0.013634;, + -0.065634;0.004462;-0.012384;, + -0.065634;0.004461;-0.012379;, + -0.065634;0.004734;-0.013401;, + -0.033485;0.006134;-0.006342;, + -0.032711;0.006077;-0.006292;, + -0.032711;0.005749;-0.018408;, + -0.033485;0.005829;-0.018287;, + -0.033485;0.006134;-0.006342;, + -0.032711;0.005749;-0.018408;, + -0.033485;0.006347;0.003735;, + -0.032711;0.006306;0.003930;, + -0.032711;0.006077;-0.006292;, + -0.033485;0.006134;-0.006342;, + -0.033485;0.006347;0.003735;, + -0.032711;0.006077;-0.006292;, + -0.033485;0.006822;-0.006342;, + -0.032711;0.006818;-0.006292;, + -0.032711;0.006306;0.003930;, + -0.033485;0.006347;0.003735;, + -0.033485;0.006822;-0.006342;, + -0.032711;0.006306;0.003930;, + -0.033485;0.007390;-0.018287;, + -0.032711;0.007430;-0.018408;, + -0.032711;0.006818;-0.006292;, + -0.033485;0.006822;-0.006342;, + -0.033485;0.007390;-0.018287;, + -0.032711;0.006818;-0.006292;, + -0.033485;0.006992;-0.019823;, + -0.032711;0.007001;-0.019966;, + -0.032711;0.007430;-0.018408;, + -0.033485;0.007390;-0.018287;, + -0.033485;0.006992;-0.019823;, + -0.032711;0.007430;-0.018408;, + -0.033485;0.006594;-0.020176;, + -0.032711;0.006572;-0.020324;, + -0.032711;0.007001;-0.019966;, + -0.033485;0.006992;-0.019823;, + -0.033485;0.006594;-0.020176;, + -0.032711;0.007001;-0.019966;, + -0.033485;0.006211;-0.019823;, + -0.032711;0.006160;-0.019966;, + -0.032711;0.006572;-0.020324;, + -0.033485;0.006594;-0.020176;, + -0.033485;0.006211;-0.019823;, + -0.032711;0.006572;-0.020324;, + -0.033485;0.005829;-0.018287;, + -0.032711;0.005749;-0.018408;, + -0.032711;0.006160;-0.019966;, + -0.033485;0.006211;-0.019823;, + -0.033485;0.005829;-0.018287;, + -0.032711;0.006160;-0.019966;, + -0.034256;0.006191;-0.006388;, + -0.033485;0.006134;-0.006342;, + -0.033485;0.005829;-0.018287;, + -0.034256;0.005910;-0.018157;, + -0.034256;0.006191;-0.006388;, + -0.033485;0.005829;-0.018287;, + -0.034256;0.006386;0.003541;, + -0.033485;0.006347;0.003735;, + -0.033485;0.006134;-0.006342;, + -0.034256;0.006191;-0.006388;, + -0.034256;0.006386;0.003541;, + -0.033485;0.006134;-0.006342;, + -0.034256;0.006823;-0.006388;, + -0.033485;0.006822;-0.006342;, + -0.033485;0.006347;0.003735;, + -0.034256;0.006386;0.003541;, + -0.034256;0.006823;-0.006388;, + -0.033485;0.006347;0.003735;, + -0.034256;0.007346;-0.018157;, + -0.033485;0.007390;-0.018287;, + -0.033485;0.006822;-0.006342;, + -0.034256;0.006823;-0.006388;, + -0.034256;0.007346;-0.018157;, + -0.033485;0.006822;-0.006342;, + -0.034256;0.006980;-0.019671;, + -0.033485;0.006992;-0.019823;, + -0.033485;0.007390;-0.018287;, + -0.034256;0.007346;-0.018157;, + -0.034256;0.006980;-0.019671;, + -0.033485;0.007390;-0.018287;, + -0.034256;0.006613;-0.020019;, + -0.033485;0.006594;-0.020176;, + -0.033485;0.006992;-0.019823;, + -0.034256;0.006980;-0.019671;, + -0.034256;0.006613;-0.020019;, + -0.033485;0.006992;-0.019823;, + -0.034256;0.006262;-0.019671;, + -0.033485;0.006211;-0.019823;, + -0.033485;0.006594;-0.020176;, + -0.034256;0.006613;-0.020019;, + -0.034256;0.006262;-0.019671;, + -0.033485;0.006594;-0.020176;, + -0.034256;0.005910;-0.018157;, + -0.033485;0.005829;-0.018287;, + -0.033485;0.006211;-0.019823;, + -0.034256;0.006262;-0.019671;, + -0.034256;0.005910;-0.018157;, + -0.033485;0.006211;-0.019823;, + -0.049477;0.005490;-0.005533;, + -0.034256;0.006191;-0.006388;, + -0.034256;0.005910;-0.018157;, + -0.049477;0.005247;-0.015370;, + -0.049477;0.005490;-0.005533;, + -0.034256;0.005910;-0.018157;, + -0.049477;0.005660;0.002766;, + -0.034256;0.006386;0.003541;, + -0.034256;0.006191;-0.006388;, + -0.049477;0.005490;-0.005533;, + -0.049477;0.005660;0.002766;, + -0.034256;0.006191;-0.006388;, + -0.049477;0.006039;-0.005533;, + -0.034256;0.006823;-0.006388;, + -0.034256;0.006386;0.003541;, + -0.049477;0.005660;0.002766;, + -0.049477;0.006039;-0.005533;, + -0.034256;0.006386;0.003541;, + -0.049477;0.006492;-0.015370;, + -0.034256;0.007346;-0.018157;, + -0.034256;0.006823;-0.006388;, + -0.049477;0.006039;-0.005533;, + -0.049477;0.006492;-0.015370;, + -0.034256;0.006823;-0.006388;, + -0.049477;0.006174;-0.016634;, + -0.034256;0.006980;-0.019671;, + -0.034256;0.007346;-0.018157;, + -0.049477;0.006492;-0.015370;, + -0.049477;0.006174;-0.016634;, + -0.034256;0.007346;-0.018157;, + -0.049477;0.005857;-0.016925;, + -0.034256;0.006613;-0.020019;, + -0.034256;0.006980;-0.019671;, + -0.049477;0.006174;-0.016634;, + -0.049477;0.005857;-0.016925;, + -0.034256;0.006980;-0.019671;, + -0.049477;0.005552;-0.016634;, + -0.034256;0.006262;-0.019671;, + -0.034256;0.006613;-0.020019;, + -0.049477;0.005857;-0.016925;, + -0.049477;0.005552;-0.016634;, + -0.034256;0.006613;-0.020019;, + -0.049477;0.005247;-0.015370;, + -0.034256;0.005910;-0.018157;, + -0.034256;0.006262;-0.019671;, + -0.049477;0.005552;-0.016634;, + -0.049477;0.005247;-0.015370;, + -0.034256;0.006262;-0.019671;, + -0.064693;0.004788;-0.004676;, + -0.049477;0.005490;-0.005533;, + -0.049477;0.005247;-0.015370;, + -0.064693;0.004582;-0.012581;, + -0.064693;0.004788;-0.004676;, + -0.049477;0.005247;-0.015370;, + -0.064693;0.004932;0.001993;, + -0.049477;0.005660;0.002766;, + -0.049477;0.005490;-0.005533;, + -0.064693;0.004788;-0.004676;, + -0.064693;0.004932;0.001993;, + -0.049477;0.005490;-0.005533;, + -0.064693;0.005253;-0.004676;, + -0.049477;0.006039;-0.005533;, + -0.049477;0.005660;0.002766;, + -0.064693;0.004932;0.001993;, + -0.064693;0.005253;-0.004676;, + -0.049477;0.005660;0.002766;, + -0.064693;0.005638;-0.012581;, + -0.049477;0.006492;-0.015370;, + -0.049477;0.006039;-0.005533;, + -0.064693;0.005253;-0.004676;, + -0.064693;0.005638;-0.012581;, + -0.049477;0.006039;-0.005533;, + -0.064693;0.005368;-0.013597;, + -0.049477;0.006174;-0.016634;, + -0.049477;0.006492;-0.015370;, + -0.064693;0.005638;-0.012581;, + -0.064693;0.005368;-0.013597;, + -0.049477;0.006492;-0.015370;, + -0.064693;0.005099;-0.013831;, + -0.049477;0.005857;-0.016925;, + -0.049477;0.006174;-0.016634;, + -0.064693;0.005368;-0.013597;, + -0.064693;0.005099;-0.013831;, + -0.049477;0.006174;-0.016634;, + -0.064693;0.004840;-0.013597;, + -0.049477;0.005552;-0.016634;, + -0.049477;0.005857;-0.016925;, + -0.064693;0.005099;-0.013831;, + -0.064693;0.004840;-0.013597;, + -0.049477;0.005857;-0.016925;, + -0.064693;0.004582;-0.012581;, + -0.049477;0.005247;-0.015370;, + -0.049477;0.005552;-0.016634;, + -0.064693;0.004840;-0.013597;, + -0.064693;0.004582;-0.012581;, + -0.049477;0.005552;-0.016634;, + -0.032711;0.005749;-0.018408;, + -0.032711;0.006077;-0.006292;, + -0.032707;0.006077;-0.006295;, + -0.032707;0.006077;-0.006295;, + -0.032711;0.006077;-0.006292;, + -0.032707;0.006077;-0.006291;, + -0.032711;0.006306;0.003930;, + -0.032707;0.006077;-0.006291;, + -0.032711;0.006077;-0.006292;, + -0.032707;0.005947;-0.011090;, + -0.032711;0.005749;-0.018408;, + -0.032707;0.006077;-0.006295;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.005748;-0.018407;, + -0.032711;0.005749;-0.018408;, + -0.032707;0.006077;-0.006291;, + -0.032711;0.006306;0.003930;, + -0.032707;0.006305;0.003928;, + -0.032707;0.006305;0.003928;, + -0.032711;0.006306;0.003930;, + -0.032707;0.006305;0.003931;, + -0.032711;0.006818;-0.006292;, + -0.032707;0.006305;0.003931;, + -0.032711;0.006306;0.003930;, + -0.032707;0.006817;-0.006288;, + -0.032711;0.006818;-0.006292;, + -0.032707;0.006818;-0.006291;, + -0.032711;0.007430;-0.018408;, + -0.032707;0.006818;-0.006291;, + -0.032711;0.006818;-0.006292;, + -0.032711;0.006818;-0.006292;, + -0.032707;0.006817;-0.006288;, + -0.032707;0.006790;-0.005741;, + -0.032711;0.006818;-0.006292;, + -0.032707;0.006790;-0.005741;, + -0.032707;0.006660;-0.003146;, + -0.032711;0.006818;-0.006292;, + -0.032707;0.006660;-0.003146;, + -0.032707;0.006660;-0.003143;, + -0.032711;0.006818;-0.006292;, + -0.032707;0.006660;-0.003143;, + -0.032707;0.006306;0.003928;, + -0.032711;0.006818;-0.006292;, + -0.032707;0.006306;0.003928;, + -0.032707;0.006305;0.003931;, + -0.032707;0.007429;-0.018403;, + -0.032711;0.007430;-0.018408;, + -0.032707;0.007430;-0.018407;, + -0.032711;0.007001;-0.019966;, + -0.032707;0.007430;-0.018407;, + -0.032711;0.007430;-0.018408;, + -0.032711;0.007430;-0.018408;, + -0.032707;0.007429;-0.018403;, + -0.032707;0.007354;-0.016908;, + -0.032711;0.007430;-0.018408;, + -0.032707;0.007354;-0.016908;, + -0.032707;0.006818;-0.006291;, + -0.032707;0.007430;-0.018407;, + -0.032711;0.007001;-0.019966;, + -0.032707;0.007001;-0.019964;, + -0.032707;0.007001;-0.019964;, + -0.032711;0.007001;-0.019966;, + -0.032707;0.007001;-0.019965;, + -0.032711;0.006572;-0.020324;, + -0.032707;0.007001;-0.019965;, + -0.032711;0.007001;-0.019966;, + -0.032707;0.007001;-0.019965;, + -0.032711;0.006572;-0.020324;, + -0.032707;0.006572;-0.020323;, + -0.032707;0.006572;-0.020323;, + -0.032711;0.006572;-0.020324;, + -0.032707;0.006572;-0.020323;, + -0.032711;0.006160;-0.019966;, + -0.032707;0.006572;-0.020323;, + -0.032711;0.006572;-0.020324;, + -0.032707;0.006160;-0.019965;, + -0.032711;0.006160;-0.019966;, + -0.032707;0.006160;-0.019965;, + -0.032711;0.005749;-0.018408;, + -0.032707;0.006160;-0.019965;, + -0.032711;0.006160;-0.019966;, + -0.032711;0.006160;-0.019966;, + -0.032707;0.006160;-0.019965;, + -0.032707;0.006563;-0.020316;, + -0.032711;0.006160;-0.019966;, + -0.032707;0.006563;-0.020316;, + -0.032707;0.006572;-0.020323;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.005748;-0.018407;, + -0.032711;0.005749;-0.018408;, + -0.032707;0.006160;-0.019965;, + -0.032711;0.005749;-0.018408;, + -0.032707;0.005748;-0.018407;, + -0.064693;0.004582;-0.012581;, + -0.065632;0.004686;-0.004441;, + -0.064693;0.004788;-0.004676;, + -0.065632;0.004686;-0.004441;, + -0.064693;0.004582;-0.012581;, + -0.065632;0.004686;-0.004479;, + -0.065632;0.004686;-0.004479;, + -0.064693;0.004582;-0.012581;, + -0.065632;0.004468;-0.012384;, + -0.064693;0.004840;-0.013597;, + -0.065632;0.004468;-0.012384;, + -0.064693;0.004582;-0.012581;, + -0.064693;0.004788;-0.004676;, + -0.065632;0.004838;0.002260;, + -0.064693;0.004932;0.001993;, + -0.065632;0.004838;0.002260;, + -0.064693;0.004788;-0.004676;, + -0.065632;0.004838;0.002228;, + -0.065632;0.004686;-0.004441;, + -0.065632;0.004838;0.002228;, + -0.064693;0.004788;-0.004676;, + -0.064693;0.004932;0.001993;, + -0.065632;0.005179;-0.004441;, + -0.064693;0.005253;-0.004676;, + -0.065632;0.005179;-0.004441;, + -0.064693;0.004932;0.001993;, + -0.065632;0.005177;-0.004409;, + -0.064693;0.004932;0.001993;, + -0.065632;0.004838;0.002260;, + -0.065632;0.004841;0.002210;, + -0.064693;0.004932;0.001993;, + -0.065632;0.004841;0.002210;, + -0.065632;0.005177;-0.004409;, + -0.064693;0.005253;-0.004676;, + -0.065632;0.005585;-0.012384;, + -0.064693;0.005638;-0.012581;, + -0.065632;0.005585;-0.012384;, + -0.064693;0.005253;-0.004676;, + -0.065632;0.005583;-0.012346;, + -0.064693;0.005253;-0.004676;, + -0.065632;0.005179;-0.004441;, + -0.065632;0.005321;-0.007228;, + -0.064693;0.005253;-0.004676;, + -0.065632;0.005321;-0.007228;, + -0.065632;0.005324;-0.007277;, + -0.064693;0.005253;-0.004676;, + -0.065632;0.005324;-0.007277;, + -0.065632;0.005583;-0.012346;, + -0.064693;0.005638;-0.012581;, + -0.065632;0.005300;-0.013405;, + -0.064693;0.005368;-0.013597;, + -0.065632;0.005300;-0.013405;, + -0.064693;0.005638;-0.012581;, + -0.065632;0.005301;-0.013401;, + -0.065632;0.005585;-0.012384;, + -0.065632;0.005301;-0.013401;, + -0.064693;0.005638;-0.012581;, + -0.064693;0.005368;-0.013597;, + -0.065632;0.005015;-0.013640;, + -0.064693;0.005099;-0.013831;, + -0.065632;0.005015;-0.013640;, + -0.064693;0.005368;-0.013597;, + -0.065632;0.005017;-0.013639;, + -0.065632;0.005300;-0.013405;, + -0.065632;0.005017;-0.013639;, + -0.064693;0.005368;-0.013597;, + -0.064693;0.005099;-0.013831;, + -0.065632;0.004742;-0.013405;, + -0.064693;0.004840;-0.013597;, + -0.065632;0.004742;-0.013405;, + -0.064693;0.005099;-0.013831;, + -0.065632;0.004743;-0.013407;, + -0.064693;0.005099;-0.013831;, + -0.065632;0.005015;-0.013640;, + -0.065632;0.004861;-0.013508;, + -0.064693;0.005099;-0.013831;, + -0.065632;0.004861;-0.013508;, + -0.065632;0.004743;-0.013407;, + -0.065632;0.004468;-0.012384;, + -0.064693;0.004840;-0.013597;, + -0.065632;0.004469;-0.012389;, + -0.065632;0.004742;-0.013405;, + -0.065632;0.004469;-0.012389;, + -0.064693;0.004840;-0.013597;, + -0.032707;0.006818;-0.006291;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.006817;-0.006288;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.006077;-0.006295;, + -0.032707;0.006660;-0.003146;, + -0.032707;0.006077;-0.006291;, + -0.032707;0.006660;-0.003146;, + -0.032707;0.006077;-0.006295;, + -0.032707;0.006660;-0.003146;, + -0.032707;0.006790;-0.005741;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.006817;-0.006288;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.006790;-0.005741;, + -0.032707;0.006660;-0.003146;, + -0.032707;0.006077;-0.006291;, + -0.032707;0.006660;-0.003143;, + -0.032707;0.006305;0.003928;, + -0.032707;0.006660;-0.003143;, + -0.032707;0.006077;-0.006291;, + -0.032707;0.006660;-0.003143;, + -0.032707;0.006305;0.003928;, + -0.032707;0.006306;0.003928;, + -0.032707;0.006305;0.003931;, + -0.032707;0.006306;0.003928;, + -0.032707;0.006305;0.003928;, + -0.032707;0.007429;-0.018403;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.007430;-0.018407;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.007429;-0.018403;, + -0.032707;0.006818;-0.006291;, + -0.032707;0.007354;-0.016908;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.007429;-0.018403;, + -0.032707;0.005947;-0.011090;, + -0.032707;0.007354;-0.016908;, + -0.032707;0.007001;-0.019964;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.007430;-0.018407;, + -0.032707;0.007001;-0.019965;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.007001;-0.019964;, + -0.032707;0.006572;-0.020323;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.007001;-0.019965;, + -0.032707;0.006572;-0.020323;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.006572;-0.020323;, + -0.032707;0.006160;-0.019965;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.006160;-0.019965;, + -0.032707;0.006160;-0.019965;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.006563;-0.020316;, + -0.032707;0.006572;-0.020323;, + -0.032707;0.006563;-0.020316;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.005748;-0.018407;, + -0.032707;0.006160;-0.019965;, + -0.065632;0.005179;-0.004441;, + -0.065632;0.004838;0.002228;, + -0.065632;0.004686;-0.004441;, + -0.065632;0.005177;-0.004409;, + -0.065632;0.004838;0.002228;, + -0.065632;0.005179;-0.004441;, + -0.065632;0.004838;0.002260;, + -0.065632;0.004838;0.002228;, + -0.065632;0.004841;0.002210;, + -0.065632;0.005177;-0.004409;, + -0.065632;0.004841;0.002210;, + -0.065632;0.004838;0.002228;, + -0.065632;0.005585;-0.012384;, + -0.065632;0.004686;-0.004479;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.005583;-0.012346;, + -0.065632;0.004686;-0.004479;, + -0.065632;0.005585;-0.012384;, + -0.065632;0.005179;-0.004441;, + -0.065632;0.004686;-0.004441;, + -0.065632;0.005321;-0.007228;, + -0.065632;0.004686;-0.004479;, + -0.065632;0.005321;-0.007228;, + -0.065632;0.004686;-0.004441;, + -0.065632;0.005321;-0.007228;, + -0.065632;0.004686;-0.004479;, + -0.065632;0.005324;-0.007277;, + -0.065632;0.005583;-0.012346;, + -0.065632;0.005324;-0.007277;, + -0.065632;0.004686;-0.004479;, + -0.065632;0.005301;-0.013401;, + -0.065632;0.005585;-0.012384;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.005301;-0.013401;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.005300;-0.013405;, + -0.065632;0.005017;-0.013639;, + -0.065632;0.005300;-0.013405;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.005017;-0.013639;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.005015;-0.013640;, + -0.065632;0.004743;-0.013407;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.004742;-0.013405;, + -0.065632;0.005015;-0.013640;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.004861;-0.013508;, + -0.065632;0.004743;-0.013407;, + -0.065632;0.004861;-0.013508;, + -0.065632;0.004468;-0.012384;, + -0.065632;0.004469;-0.012389;, + -0.065632;0.004742;-0.013405;, + -0.065632;0.004468;-0.012384;, + -0.006962;0.003318;0.000907;, + -0.006962;0.003497;0.010399;, + -0.006962;0.003898;0.000907;, + -0.006962;0.003061;-0.010343;, + -0.006962;0.003318;0.000907;, + -0.006962;0.003898;0.000907;, + -0.006962;0.003061;-0.010343;, + -0.006962;0.003898;0.000907;, + -0.006962;0.004376;-0.010343;, + -0.006962;0.003061;-0.010343;, + -0.006962;0.004376;-0.010343;, + -0.006962;0.004041;-0.011790;, + -0.006962;0.003383;-0.011790;, + -0.006962;0.003061;-0.010343;, + -0.006962;0.004041;-0.011790;, + -0.006962;0.003383;-0.011790;, + -0.006962;0.004041;-0.011790;, + -0.006924;0.003705;-0.012122;, + -0.019840;0.004698;-0.002692;, + -0.006962;0.003318;0.000907;, + -0.006962;0.003061;-0.010343;, + -0.019840;0.004405;-0.014376;, + -0.019840;0.004698;-0.002692;, + -0.006962;0.003061;-0.010343;, + -0.019840;0.004902;0.007164;, + -0.006962;0.003497;0.010399;, + -0.006962;0.003318;0.000907;, + -0.019840;0.004698;-0.002692;, + -0.019840;0.004902;0.007164;, + -0.006962;0.003318;0.000907;, + -0.019840;0.005358;-0.002692;, + -0.006962;0.003898;0.000907;, + -0.006962;0.003497;0.010399;, + -0.019840;0.004902;0.007164;, + -0.019840;0.005358;-0.002692;, + -0.006962;0.003497;0.010399;, + -0.019840;0.005903;-0.014376;, + -0.006962;0.004376;-0.010343;, + -0.006962;0.003898;0.000907;, + -0.019840;0.005358;-0.002692;, + -0.019840;0.005903;-0.014376;, + -0.006962;0.003898;0.000907;, + -0.019840;0.005521;-0.015878;, + -0.006962;0.004041;-0.011790;, + -0.006962;0.004376;-0.010343;, + -0.019840;0.005903;-0.014376;, + -0.019840;0.005521;-0.015878;, + -0.006962;0.004376;-0.010343;, + -0.019840;0.005139;-0.016223;, + -0.006924;0.003705;-0.012122;, + -0.006962;0.004041;-0.011790;, + -0.019840;0.005521;-0.015878;, + -0.019840;0.005139;-0.016223;, + -0.006962;0.004041;-0.011790;, + -0.019840;0.004772;-0.015878;, + -0.006962;0.003383;-0.011790;, + -0.006924;0.003705;-0.012122;, + -0.019840;0.005139;-0.016223;, + -0.019840;0.004772;-0.015878;, + -0.006924;0.003705;-0.012122;, + -0.019840;0.004405;-0.014376;, + -0.006962;0.003061;-0.010343;, + -0.006962;0.003383;-0.011790;, + -0.019840;0.004772;-0.015878;, + -0.019840;0.004405;-0.014376;, + -0.006962;0.003383;-0.011790;, + -0.032711;0.006077;-0.006292;, + -0.019840;0.004698;-0.002692;, + -0.019840;0.004405;-0.014376;, + -0.032711;0.005749;-0.018408;, + -0.032711;0.006077;-0.006292;, + -0.019840;0.004405;-0.014376;, + -0.032711;0.006306;0.003930;, + -0.019840;0.004902;0.007164;, + -0.019840;0.004698;-0.002692;, + -0.032711;0.006077;-0.006292;, + -0.032711;0.006306;0.003930;, + -0.019840;0.004698;-0.002692;, + -0.032711;0.006818;-0.006292;, + -0.019840;0.005358;-0.002692;, + -0.019840;0.004902;0.007164;, + -0.032711;0.006306;0.003930;, + -0.032711;0.006818;-0.006292;, + -0.019840;0.004902;0.007164;, + -0.032711;0.007430;-0.018408;, + -0.019840;0.005903;-0.014376;, + -0.019840;0.005358;-0.002692;, + -0.032711;0.006818;-0.006292;, + -0.032711;0.007430;-0.018408;, + -0.019840;0.005358;-0.002692;, + -0.032711;0.007001;-0.019966;, + -0.019840;0.005521;-0.015878;, + -0.019840;0.005903;-0.014376;, + -0.032711;0.007430;-0.018408;, + -0.032711;0.007001;-0.019966;, + -0.019840;0.005903;-0.014376;, + -0.032711;0.006572;-0.020324;, + -0.019840;0.005139;-0.016223;, + -0.019840;0.005521;-0.015878;, + -0.032711;0.007001;-0.019966;, + -0.032711;0.006572;-0.020324;, + -0.019840;0.005521;-0.015878;, + -0.032711;0.006160;-0.019966;, + -0.019840;0.004772;-0.015878;, + -0.019840;0.005139;-0.016223;, + -0.032711;0.006572;-0.020324;, + -0.032711;0.006160;-0.019966;, + -0.019840;0.005139;-0.016223;, + -0.032711;0.005749;-0.018408;, + -0.019840;0.004405;-0.014376;, + -0.019840;0.004772;-0.015878;, + -0.032711;0.006160;-0.019966;, + -0.032711;0.005749;-0.018408;, + -0.019840;0.004772;-0.015878;, + -0.032711;0.005749;-0.018408;, + -0.032726;0.006078;-0.006293;, + -0.032711;0.006077;-0.006292;, + -0.032726;0.006078;-0.006293;, + -0.032711;0.005749;-0.018408;, + -0.032726;0.005755;-0.018198;, + -0.032726;0.005755;-0.018198;, + -0.032711;0.005749;-0.018408;, + -0.032726;0.005750;-0.018406;, + -0.032711;0.006160;-0.019966;, + -0.032726;0.005750;-0.018406;, + -0.032711;0.005749;-0.018408;, + -0.032711;0.006077;-0.006292;, + -0.032726;0.006307;0.003926;, + -0.032711;0.006306;0.003930;, + -0.032726;0.006307;0.003926;, + -0.032711;0.006077;-0.006292;, + -0.032726;0.006082;-0.006117;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.006082;-0.006117;, + -0.032711;0.006077;-0.006292;, + -0.032726;0.006665;-0.003233;, + -0.032711;0.006818;-0.006292;, + -0.032711;0.006306;0.003930;, + -0.032726;0.006665;-0.003233;, + -0.032711;0.006306;0.003930;, + -0.032726;0.006315;0.003751;, + -0.032726;0.006307;0.003926;, + -0.032726;0.006315;0.003751;, + -0.032711;0.006306;0.003930;, + -0.032726;0.006665;-0.003233;, + -0.032726;0.006818;-0.006293;, + -0.032711;0.006818;-0.006292;, + -0.032726;0.007019;-0.010287;, + -0.032711;0.007430;-0.018408;, + -0.032711;0.006818;-0.006292;, + -0.032726;0.007019;-0.010287;, + -0.032711;0.006818;-0.006292;, + -0.032726;0.006828;-0.006501;, + -0.032726;0.006818;-0.006293;, + -0.032726;0.006828;-0.006501;, + -0.032711;0.006818;-0.006292;, + -0.032726;0.007019;-0.010287;, + -0.032726;0.007429;-0.018406;, + -0.032711;0.007430;-0.018408;, + -0.032711;0.007430;-0.018408;, + -0.032726;0.007001;-0.019964;, + -0.032711;0.007001;-0.019966;, + -0.032726;0.007001;-0.019964;, + -0.032711;0.007430;-0.018408;, + -0.032726;0.007422;-0.018433;, + -0.032726;0.007429;-0.018406;, + -0.032726;0.007422;-0.018433;, + -0.032711;0.007430;-0.018408;, + -0.032726;0.006632;-0.020272;, + -0.032711;0.006572;-0.020324;, + -0.032711;0.007001;-0.019966;, + -0.032726;0.006632;-0.020272;, + -0.032711;0.007001;-0.019966;, + -0.032726;0.006994;-0.019970;, + -0.032726;0.007001;-0.019964;, + -0.032726;0.006994;-0.019970;, + -0.032711;0.007001;-0.019966;, + -0.032726;0.006632;-0.020272;, + -0.032726;0.006573;-0.020322;, + -0.032711;0.006572;-0.020324;, + -0.032711;0.006572;-0.020324;, + -0.032726;0.006161;-0.019964;, + -0.032711;0.006160;-0.019966;, + -0.032726;0.006161;-0.019964;, + -0.032711;0.006572;-0.020324;, + -0.032726;0.006566;-0.020316;, + -0.032711;0.006572;-0.020324;, + -0.032726;0.006573;-0.020322;, + -0.032726;0.006568;-0.020318;, + -0.032711;0.006572;-0.020324;, + -0.032726;0.006568;-0.020318;, + -0.032726;0.006566;-0.020316;, + -0.032726;0.005750;-0.018406;, + -0.032711;0.006160;-0.019966;, + -0.032726;0.006155;-0.019937;, + -0.032726;0.006161;-0.019964;, + -0.032726;0.006155;-0.019937;, + -0.032711;0.006160;-0.019966;, + -0.032726;0.006082;-0.006117;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.006307;0.003926;, + -0.032726;0.006315;0.003751;, + -0.032726;0.006307;0.003926;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.006315;0.003751;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.006665;-0.003233;, + -0.032726;0.006818;-0.006293;, + -0.032726;0.006665;-0.003233;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.006828;-0.006501;, + -0.032726;0.006818;-0.006293;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.006828;-0.006501;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.007019;-0.010287;, + -0.032726;0.005755;-0.018198;, + -0.032726;0.007019;-0.010287;, + -0.032726;0.006078;-0.006293;, + -0.032726;0.007429;-0.018406;, + -0.032726;0.007019;-0.010287;, + -0.032726;0.005755;-0.018198;, + -0.032726;0.007001;-0.019964;, + -0.032726;0.007429;-0.018406;, + -0.032726;0.005755;-0.018198;, + -0.032726;0.007422;-0.018433;, + -0.032726;0.007429;-0.018406;, + -0.032726;0.007001;-0.019964;, + -0.032726;0.006994;-0.019970;, + -0.032726;0.007001;-0.019964;, + -0.032726;0.005755;-0.018198;, + -0.032726;0.006994;-0.019970;, + -0.032726;0.005755;-0.018198;, + -0.032726;0.006632;-0.020272;, + -0.032726;0.005750;-0.018406;, + -0.032726;0.006632;-0.020272;, + -0.032726;0.005755;-0.018198;, + -0.032726;0.006573;-0.020322;, + -0.032726;0.006632;-0.020272;, + -0.032726;0.005750;-0.018406;, + -0.032726;0.006573;-0.020322;, + -0.032726;0.005750;-0.018406;, + -0.032726;0.006568;-0.020318;, + -0.032726;0.006566;-0.020316;, + -0.032726;0.006568;-0.020318;, + -0.032726;0.005750;-0.018406;, + -0.032726;0.006155;-0.019937;, + -0.032726;0.006161;-0.019964;, + -0.032726;0.006566;-0.020316;, + -0.032726;0.006155;-0.019937;, + -0.032726;0.006566;-0.020316;, + -0.032726;0.005750;-0.018406;; + + 358; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;, + 3;926,925,924;, + 3;929,928,927;, + 3;932,931,930;, + 3;935,934,933;, + 3;938,937,936;, + 3;941,940,939;, + 3;944,943,942;, + 3;947,946,945;, + 3;950,949,948;, + 3;953,952,951;, + 3;956,955,954;, + 3;959,958,957;, + 3;962,961,960;, + 3;965,964,963;, + 3;968,967,966;, + 3;971,970,969;, + 3;974,973,972;, + 3;977,976,975;, + 3;980,979,978;, + 3;983,982,981;, + 3;986,985,984;, + 3;989,988,987;, + 3;992,991,990;, + 3;995,994,993;, + 3;998,997,996;, + 3;1001,1000,999;, + 3;1004,1003,1002;, + 3;1007,1006,1005;, + 3;1010,1009,1008;, + 3;1013,1012,1011;, + 3;1016,1015,1014;, + 3;1019,1018,1017;, + 3;1022,1021,1020;, + 3;1025,1024,1023;, + 3;1028,1027,1026;, + 3;1031,1030,1029;, + 3;1034,1033,1032;, + 3;1037,1036,1035;, + 3;1040,1039,1038;, + 3;1043,1042,1041;, + 3;1046,1045,1044;, + 3;1049,1048,1047;, + 3;1052,1051,1050;, + 3;1055,1054,1053;, + 3;1058,1057,1056;, + 3;1061,1060,1059;, + 3;1064,1063,1062;, + 3;1067,1066,1065;, + 3;1070,1069,1068;, + 3;1073,1072,1071;; + + MeshMaterialList { + 2; + 358; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;; + Material { + 0.000000;0.000000;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/wing.ppm"; + } #TextureFilename + } # Material + Material { + 0.800000;0.800000;0.800000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/wing.ppm"; + } #TextureFilename + } # Material + } # MeshMaterialList + MeshNormals { + 358; + 0.115336;-0.992949;0.027377;, + 0.125878;-0.991634;0.028574;, + 0.105555;-0.994158;0.022547;, + 0.114443;-0.993146;0.023741;, + -0.066549;0.996502;0.050554;, + -0.084002;0.995053;0.053040;, + -0.044309;0.997715;0.050997;, + -0.065787;0.996396;0.053552;, + -0.124324;0.956016;-0.265664;, + -0.111276;0.953673;-0.279509;, + -0.209017;0.620550;-0.755797;, + -0.201959;0.604298;-0.770737;, + -0.086441;-0.646989;-0.757584;, + -0.099375;-0.629377;-0.770720;, + 0.062273;-0.964014;-0.258454;, + 0.046792;-0.961802;-0.269717;, + 0.150972;-0.988128;0.028473;, + 0.150950;-0.988132;0.028459;, + 0.147951;-0.988712;0.023635;, + 0.147802;-0.988738;0.023485;, + -0.126233;0.990594;0.052802;, + -0.126243;0.990586;0.052941;, + -0.126014;0.990599;0.053241;, + -0.126047;0.990603;0.053090;, + -0.434909;0.864125;-0.253263;, + -0.434478;0.864485;-0.252773;, + -0.707690;0.435934;-0.556000;, + -0.708001;0.434846;-0.556456;, + -0.622969;-0.494778;-0.605891;, + -0.622263;-0.496162;-0.605485;, + -0.173144;-0.948314;-0.265934;, + -0.173433;-0.948198;-0.266161;, + 0.150966;-0.988129;0.028459;, + 0.000000;0.000000;0.000000;, + 0.147804;-0.988738;0.023485;, + 0.000000;0.000000;0.000000;, + -0.126137;0.990599;0.052942;, + 0.000000;0.000000;0.000000;, + -0.126041;0.990603;0.053090;, + 0.000000;0.000000;0.000000;, + -0.434513;0.864469;-0.252768;, + 0.000000;0.000000;0.000000;, + -0.708122;0.434770;-0.556361;, + 0.000000;0.000000;0.000000;, + -0.622458;-0.496062;-0.605367;, + 0.000000;0.000000;0.000000;, + -0.173544;-0.948179;-0.266155;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.018864;-0.999442;0.027556;, + 0.006572;-0.999633;0.026300;, + 0.005663;-0.999727;0.022674;, + 0.248699;-0.968216;0.026578;, + 0.015616;-0.999390;0.031238;, + 0.025322;0.998395;0.050650;, + -0.066099;-0.997580;0.021569;, + 0.042767;-0.998828;0.022675;, + 0.007807;0.999481;0.031242;, + 0.012746;0.998615;0.051043;, + 0.998820;0.048520;0.001866;, + -0.927878;0.372376;0.019471;, + -0.144637;0.988193;0.050552;, + 0.980569;0.196040;0.007259;, + -0.104508;0.993244;0.050445;, + -0.230165;0.971807;0.051148;, + -0.294182;0.920856;-0.255893;, + -0.218376;0.974586;0.049949;, + -0.039711;0.997907;0.051034;, + -0.048957;0.979415;-0.195828;, + -0.189709;0.623043;-0.758833;, + 0.026463;0.963269;-0.267230;, + 0.108588;0.957373;-0.267665;, + -0.156613;0.626448;-0.763567;, + -0.174078;0.696311;-0.696311;, + -0.186761;-0.637994;-0.747050;, + -0.218208;-0.436518;-0.872833;, + -0.064605;-0.963871;-0.258416;, + -0.054465;-0.649569;-0.758349;, + -0.994813;-0.056417;-0.084638;, + 0.754475;-0.433597;-0.492708;, + 0.000000;0.000000;0.000000;, + 0.192465;-0.962258;-0.192398;, + 0.094983;-0.961678;-0.257204;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -0.075152;-0.996807;0.026985;, + -0.098849;-0.994778;0.025400;, + -0.058501;-0.998037;0.022359;, + -0.074782;-0.996977;0.021073;, + 0.001929;0.998746;0.050025;, + 0.041016;0.998050;0.047045;, + -0.043686;0.997773;0.050399;, + 0.002093;0.998869;0.047498;, + -0.060149;0.962373;-0.264992;, + -0.088888;0.964199;-0.249838;, + -0.127548;0.635478;-0.761511;, + -0.144408;0.656592;-0.740292;, + -0.179706;-0.645227;-0.742555;, + -0.157860;-0.669225;-0.726098;, + -0.138470;-0.957607;-0.252616;, + -0.107900;-0.964773;-0.239937;, + -0.075215;-0.996842;0.025453;, + -0.100492;-0.994654;0.023749;, + -0.055803;-0.998219;0.021100;, + -0.074876;-0.997001;0.019581;, + -0.001513;0.998890;0.047085;, + 0.039440;0.998256;0.043936;, + -0.048937;0.997675;0.047441;, + -0.001353;0.999013;0.044395;, + -0.064383;0.966022;-0.250310;, + -0.094663;0.967637;-0.233920;, + -0.134752;0.657496;-0.741311;, + -0.151980;0.680080;-0.717212;, + -0.186466;-0.665837;-0.722421;, + -0.159873;-0.695010;-0.701001;, + -0.141217;-0.960714;-0.238928;, + -0.108431;-0.968278;-0.225122;, + 0.047329;-0.998595;0.023843;, + 0.048011;-0.998542;0.024667;, + 0.046638;-0.998719;0.019614;, + 0.047143;-0.998679;0.020457;, + -0.048929;0.997836;0.043917;, + -0.049908;0.997714;0.045564;, + -0.047868;0.997869;0.044344;, + -0.048811;0.997751;0.045947;, + -0.097882;0.967334;-0.233847;, + -0.098602;0.965055;-0.242791;, + -0.178752;0.676991;-0.713954;, + -0.179816;0.665227;-0.724665;, + -0.108210;-0.699931;-0.705965;, + -0.112074;-0.685956;-0.718960;, + 0.000962;-0.974021;-0.226457;, + -0.001457;-0.972099;-0.234565;, + 0.047459;-0.998569;0.024667;, + 0.048407;-0.998489;0.026020;, + 0.046743;-0.998697;0.020458;, + 0.047288;-0.998649;0.021563;, + -0.048974;0.997760;0.045566;, + -0.050168;0.997586;0.048017;, + -0.047580;0.997810;0.045950;, + -0.048797;0.997626;0.048588;, + -0.099569;0.964961;-0.242767;, + -0.100802;0.961533;-0.255526;, + -0.180469;0.665146;-0.724577;, + -0.182251;0.645325;-0.741849;, + -0.111410;-0.686008;-0.719014;, + -0.116681;-0.665808;-0.736943;, + -0.000510;-0.972100;-0.234565;, + -0.003771;-0.969231;-0.246124;, + 0.020289;-0.999428;0.027056;, + 0.000000;-1.000000;0.000000;, + -0.005597;-0.999734;0.022397;, + -0.100057;-0.994616;0.026966;, + -0.248536;-0.968265;0.026334;, + -0.232253;-0.972413;0.021696;, + -0.242536;-0.970142;0.000000;, + 0.230792;0.971785;0.048675;, + -0.078786;0.945720;0.315289;, + -0.012610;0.998647;0.050443;, + 0.196500;0.979312;0.048339;, + 0.098651;0.993876;0.049790;, + 0.999680;0.025316;0.000000;, + 0.087018;0.994961;0.049811;, + -0.999999;0.001381;0.000461;, + -0.060523;0.968364;0.242091;, + 0.066224;0.962002;-0.264890;, + 0.183867;0.981717;0.049250;, + 0.067854;0.996426;0.050305;, + 0.131662;0.955682;-0.263319;, + 0.000000;1.000000;0.000000;, + 0.188502;0.629225;-0.754018;, + 0.188164;0.629268;-0.754066;, + 0.000000;0.000000;0.000000;, + 0.185099;-0.644571;-0.741800;, + 0.000000;0.000000;0.000000;, + 0.063638;-0.964962;-0.254557;, + 0.185257;-0.645410;-0.741030;, + -0.990488;-0.084488;-0.108605;, + 0.000000;0.000000;0.000000;, + -0.174921;-0.951863;-0.251712;, + 0.114354;-0.993103;0.025880;, + -0.110082;-0.993923;0.000000;, + 0.126127;-0.991637;0.027347;, + 0.065891;-0.967132;-0.245591;, + 0.105627;-0.994174;0.021467;, + -0.053172;-0.998585;0.000000;, + 0.113561;-0.993273;0.022639;, + -0.066536;0.996630;0.047971;, + -0.162683;0.984757;0.061547;, + -0.082614;0.994793;0.059683;, + -0.084764;0.995120;0.050515;, + -0.046121;0.997753;0.048594;, + -0.078128;0.995565;0.052399;, + -0.065827;0.996538;0.050774;, + -0.093406;0.993767;0.060848;, + -0.065691;0.996540;0.050918;, + -0.121594;0.959284;-0.254928;, + -0.135077;0.961238;-0.240365;, + -0.110117;0.957293;-0.267327;, + -0.207559;0.642024;-0.738055;, + -0.126050;0.443399;-0.887417;, + -0.199627;0.624407;-0.755158;, + -0.081483;-0.668158;-0.739544;, + 0.135892;-0.886130;-0.443065;, + -0.095779;-0.647798;-0.755768;, + -0.096064;-0.647254;-0.756197;, + 0.133936;-0.971749;-0.194332;, + 0.047677;-0.964646;-0.259201;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.993513;0.000000;0.113715;, + -0.112790;-0.993360;0.022693;, + -0.111483;-0.993454;0.024913;, + -0.113088;-0.993408;0.018734;, + -0.112207;-0.993472;0.020563;, + 0.100956;0.994004;0.041993;, + 0.096916;0.994229;0.045999;, + 0.104596;0.993618;0.042218;, + 0.099727;0.993934;0.046362;, + 0.180545;0.958222;-0.221841;, + 0.188657;0.951745;-0.242055;, + 0.287628;0.689421;-0.664807;, + 0.298372;0.639722;-0.708328;, + 0.138731;-0.718782;-0.681254;, + 0.153458;-0.676819;-0.719976;, + -0.033827;-0.975565;-0.217092;, + -0.029416;-0.971002;-0.237256;, + -0.113382;-0.993239;0.024908;, + -0.112148;-0.993328;0.026891;, + -0.113520;-0.993323;0.020560;, + -0.112656;-0.993385;0.022254;, + 0.099883;0.993936;0.045986;, + 0.095932;0.994142;0.049795;, + 0.103357;0.993564;0.046345;, + 0.098695;0.993851;0.050201;, + 0.186400;0.952162;-0.242161;, + 0.193799;0.945840;-0.260440;, + 0.297043;0.640001;-0.708636;, + 0.302641;0.610665;-0.731777;, + 0.155633;-0.676587;-0.719728;, + 0.165184;-0.646894;-0.744474;, + -0.027071;-0.971066;-0.237271;, + -0.023251;-0.966660;-0.255005;, + -0.068294;-0.997300;0.026999;, + -0.020150;-0.999429;0.027116;, + -0.063324;-0.997705;0.023982;, + -0.098011;-0.962266;-0.253846;, + -0.072408;-0.997125;0.022338;, + -0.071764;-0.997171;0.022340;, + -0.068015;-0.997427;0.022669;, + 0.014604;0.998641;0.050020;, + 0.001951;0.998745;0.050052;, + 0.054318;0.997482;0.045599;, + -0.003330;0.998747;0.049937;, + -0.052813;0.997333;0.050377;, + -0.036209;0.998075;0.050352;, + -0.003202;0.998841;0.048019;, + -0.059758;0.996943;0.050344;, + -0.035379;0.963515;-0.265307;, + -0.072142;0.961697;-0.264451;, + -0.097538;0.963385;-0.249752;, + -0.098284;0.637609;-0.764065;, + -0.093794;0.637778;-0.764488;, + -0.100734;0.647465;-0.755409;, + -0.058450;0.645421;-0.761587;, + -0.142907;-0.649173;-0.747096;, + -0.138774;-0.649646;-0.747464;, + -0.144139;-0.618277;-0.772630;, + -0.093779;-0.704072;-0.703909;, + -0.169696;-0.952725;-0.252027;, + -0.093601;-0.971903;-0.215973;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;; + + 358; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;, + 3;308,308,308;, + 3;309,309,309;, + 3;310,310,310;, + 3;311,311,311;, + 3;312,312,312;, + 3;313,313,313;, + 3;314,314,314;, + 3;315,315,315;, + 3;316,316,316;, + 3;317,317,317;, + 3;318,318,318;, + 3;319,319,319;, + 3;320,320,320;, + 3;321,321,321;, + 3;322,322,322;, + 3;323,323,323;, + 3;324,324,324;, + 3;325,325,325;, + 3;326,326,326;, + 3;327,327,327;, + 3;328,328,328;, + 3;329,329,329;, + 3;330,330,330;, + 3;331,331,331;, + 3;332,332,332;, + 3;333,333,333;, + 3;334,334,334;, + 3;335,335,335;, + 3;336,336,336;, + 3;337,337,337;, + 3;338,338,338;, + 3;339,339,339;, + 3;340,340,340;, + 3;341,341,341;, + 3;342,342,342;, + 3;343,343,343;, + 3;344,344,344;, + 3;345,345,345;, + 3;346,346,346;, + 3;347,347,347;, + 3;348,348,348;, + 3;349,349,349;, + 3;350,350,350;, + 3;351,351,351;, + 3;352,352,352;, + 3;353,353,353;, + 3;354,354,354;, + 3;355,355,355;, + 3;356,356,356;, + 3;357,357,357;; + } # MeshNormals + MeshTextureCoords { + 1074; + 0.524907;0.236202;, + 0.517184;0.248266;, + 0.258643;0.248266;, + 0.265082;0.236202;, + 0.524907;0.236202;, + 0.258643;0.248266;, + 0.744111;0.236202;, + 0.735307;0.248266;, + 0.517184;0.248266;, + 0.524907;0.236202;, + 0.744111;0.236202;, + 0.517184;0.248266;, + 0.524907;0.236202;, + 0.517184;0.248266;, + 0.735307;0.248266;, + 0.744111;0.236202;, + 0.524907;0.236202;, + 0.735307;0.248266;, + 0.265082;0.236202;, + 0.258643;0.248266;, + 0.517184;0.248266;, + 0.524907;0.236202;, + 0.265082;0.236202;, + 0.517184;0.248266;, + 0.231670;0.236202;, + 0.225397;0.248266;, + 0.258643;0.248266;, + 0.265082;0.236202;, + 0.231670;0.236202;, + 0.258643;0.248266;, + 0.223993;0.236202;, + 0.217757;0.248266;, + 0.225397;0.248266;, + 0.231670;0.236202;, + 0.223993;0.236202;, + 0.225397;0.248266;, + 0.231670;0.236202;, + 0.225397;0.248266;, + 0.217757;0.248266;, + 0.223993;0.236202;, + 0.231670;0.236202;, + 0.217757;0.248266;, + 0.265082;0.236202;, + 0.258643;0.248266;, + 0.225397;0.248266;, + 0.231670;0.236202;, + 0.265082;0.236202;, + 0.225397;0.248266;, + 0.720628;0.118101;, + 0.524907;0.236202;, + 0.265082;0.236202;, + 0.590676;0.118101;, + 0.720628;0.118101;, + 0.265082;0.236202;, + 0.830260;0.118101;, + 0.744111;0.236202;, + 0.524907;0.236202;, + 0.720628;0.118101;, + 0.830260;0.118101;, + 0.524907;0.236202;, + 0.720628;0.118101;, + 0.524907;0.236202;, + 0.744111;0.236202;, + 0.830260;0.118101;, + 0.720628;0.118101;, + 0.744111;0.236202;, + 0.590676;0.118101;, + 0.265082;0.236202;, + 0.524907;0.236202;, + 0.720628;0.118101;, + 0.590676;0.118101;, + 0.524907;0.236202;, + 0.573965;0.118101;, + 0.231670;0.236202;, + 0.265082;0.236202;, + 0.590676;0.118101;, + 0.573965;0.118101;, + 0.265082;0.236202;, + 0.570127;0.118101;, + 0.223993;0.236202;, + 0.231670;0.236202;, + 0.573965;0.118101;, + 0.570127;0.118101;, + 0.231670;0.236202;, + 0.573965;0.118101;, + 0.231670;0.236202;, + 0.223993;0.236202;, + 0.570127;0.118101;, + 0.573965;0.118101;, + 0.223993;0.236202;, + 0.590676;0.118101;, + 0.265082;0.236202;, + 0.231670;0.236202;, + 0.573965;0.118101;, + 0.590676;0.118101;, + 0.231670;0.236202;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.830260;0.118101;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.830260;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.830260;0.118101;, + 0.916408;0.000000;, + 0.590676;0.118101;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.720628;0.118101;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.590676;0.118101;, + 0.916408;0.000000;, + 0.570127;0.118101;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.570127;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.570127;0.118101;, + 0.916408;0.000000;, + 0.590676;0.118101;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.573965;0.118101;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.916408;0.000000;, + 0.258643;0.248266;, + 0.517184;0.248266;, + 0.515919;0.248324;, + 0.515919;0.248324;, + 0.517184;0.248266;, + 0.517148;0.248324;, + 0.735307;0.248266;, + 0.517148;0.248324;, + 0.517184;0.248266;, + 0.515919;0.248324;, + 0.258611;0.248324;, + 0.258643;0.248266;, + 0.734224;0.248324;, + 0.735307;0.248266;, + 0.735265;0.248324;, + 0.517184;0.248266;, + 0.735265;0.248324;, + 0.735307;0.248266;, + 0.735307;0.248266;, + 0.734224;0.248324;, + 0.722178;0.248324;, + 0.735307;0.248266;, + 0.722178;0.248324;, + 0.517148;0.248324;, + 0.518184;0.248324;, + 0.517184;0.248266;, + 0.517148;0.248324;, + 0.258643;0.248266;, + 0.517148;0.248324;, + 0.517184;0.248266;, + 0.517184;0.248266;, + 0.734399;0.248324;, + 0.735265;0.248324;, + 0.517184;0.248266;, + 0.724438;0.248324;, + 0.734399;0.248324;, + 0.517184;0.248266;, + 0.518184;0.248324;, + 0.564643;0.248324;, + 0.517184;0.248266;, + 0.564643;0.248324;, + 0.565528;0.248324;, + 0.517184;0.248266;, + 0.565528;0.248324;, + 0.724438;0.248324;, + 0.259845;0.248324;, + 0.258643;0.248266;, + 0.258611;0.248324;, + 0.225397;0.248266;, + 0.258611;0.248324;, + 0.258643;0.248266;, + 0.258643;0.248266;, + 0.259845;0.248324;, + 0.475789;0.248324;, + 0.258643;0.248266;, + 0.475789;0.248324;, + 0.517148;0.248324;, + 0.225525;0.248324;, + 0.225397;0.248266;, + 0.225365;0.248324;, + 0.217757;0.248266;, + 0.225365;0.248324;, + 0.225397;0.248266;, + 0.225397;0.248266;, + 0.225525;0.248324;, + 0.230565;0.248324;, + 0.225397;0.248266;, + 0.230565;0.248324;, + 0.258611;0.248324;, + 0.225365;0.248324;, + 0.217757;0.248266;, + 0.217761;0.248324;, + 0.217761;0.248324;, + 0.217757;0.248266;, + 0.217725;0.248324;, + 0.225397;0.248266;, + 0.217725;0.248324;, + 0.217757;0.248266;, + 0.225332;0.248324;, + 0.225397;0.248266;, + 0.225365;0.248324;, + 0.258643;0.248266;, + 0.225365;0.248324;, + 0.225397;0.248266;, + 0.225397;0.248266;, + 0.225332;0.248324;, + 0.218504;0.248324;, + 0.225397;0.248266;, + 0.218504;0.248324;, + 0.218435;0.248324;, + 0.225397;0.248266;, + 0.218435;0.248324;, + 0.217729;0.248324;, + 0.225397;0.248266;, + 0.217729;0.248324;, + 0.217725;0.248324;, + 0.258611;0.248324;, + 0.258455;0.248324;, + 0.258643;0.248266;, + 0.225365;0.248324;, + 0.258643;0.248266;, + 0.258455;0.248324;, + 0.517148;0.248324;, + 0.515919;0.248324;, + 0.518184;0.248324;, + 0.722178;0.248324;, + 0.734224;0.248324;, + 0.734399;0.248324;, + 0.735265;0.248324;, + 0.734399;0.248324;, + 0.734224;0.248324;, + 0.734399;0.248324;, + 0.724438;0.248324;, + 0.722178;0.248324;, + 0.517148;0.248324;, + 0.722178;0.248324;, + 0.724438;0.248324;, + 0.518184;0.248324;, + 0.515919;0.248324;, + 0.564643;0.248324;, + 0.517148;0.248324;, + 0.564643;0.248324;, + 0.515919;0.248324;, + 0.564643;0.248324;, + 0.517148;0.248324;, + 0.565528;0.248324;, + 0.724438;0.248324;, + 0.565528;0.248324;, + 0.517148;0.248324;, + 0.259845;0.248324;, + 0.258611;0.248324;, + 0.515919;0.248324;, + 0.258611;0.248324;, + 0.258611;0.248324;, + 0.259845;0.248324;, + 0.259845;0.248324;, + 0.515919;0.248324;, + 0.475789;0.248324;, + 0.517148;0.248324;, + 0.475789;0.248324;, + 0.515919;0.248324;, + 0.258611;0.248324;, + 0.230565;0.248324;, + 0.258611;0.248324;, + 0.225525;0.248324;, + 0.258611;0.248324;, + 0.230565;0.248324;, + 0.225332;0.248324;, + 0.258611;0.248324;, + 0.225525;0.248324;, + 0.225365;0.248324;, + 0.258611;0.248324;, + 0.225332;0.248324;, + 0.225332;0.248324;, + 0.225525;0.248324;, + 0.218504;0.248324;, + 0.225365;0.248324;, + 0.218504;0.248324;, + 0.225525;0.248324;, + 0.218504;0.248324;, + 0.225365;0.248324;, + 0.218435;0.248324;, + 0.217761;0.248324;, + 0.218435;0.248324;, + 0.225365;0.248324;, + 0.218435;0.248324;, + 0.217761;0.248324;, + 0.217729;0.248324;, + 0.217725;0.248324;, + 0.217729;0.248324;, + 0.217761;0.248324;, + 0.258455;0.248324;, + 0.258611;0.248324;, + 0.225365;0.248324;, + 0.455107;0.659926;, + 0.456729;0.669840;, + 0.062369;0.669840;, + 0.066326;0.659926;, + 0.455107;0.659926;, + 0.062369;0.669840;, + 0.783107;0.659926;, + 0.789439;0.669840;, + 0.456729;0.669840;, + 0.455107;0.659926;, + 0.783107;0.659926;, + 0.456729;0.669840;, + 0.455107;0.659926;, + 0.456729;0.669840;, + 0.789439;0.669840;, + 0.783107;0.659926;, + 0.455107;0.659926;, + 0.789439;0.669840;, + 0.066326;0.659926;, + 0.062369;0.669840;, + 0.456729;0.669840;, + 0.455107;0.659926;, + 0.066326;0.659926;, + 0.456729;0.669840;, + 0.016331;0.659926;, + 0.011652;0.669840;, + 0.062369;0.669840;, + 0.066326;0.659926;, + 0.016331;0.659926;, + 0.062369;0.669840;, + 0.004838;0.659926;, + 0.000000;0.669840;, + 0.011652;0.669840;, + 0.016331;0.659926;, + 0.004838;0.659926;, + 0.011652;0.669840;, + 0.016331;0.659926;, + 0.011652;0.669840;, + 0.000000;0.669840;, + 0.004838;0.659926;, + 0.016331;0.659926;, + 0.000000;0.669840;, + 0.066326;0.659926;, + 0.062369;0.669840;, + 0.011652;0.669840;, + 0.016331;0.659926;, + 0.066326;0.659926;, + 0.011652;0.669840;, + 0.453606;0.650060;, + 0.455107;0.659926;, + 0.066326;0.659926;, + 0.070540;0.650060;, + 0.453606;0.650060;, + 0.066326;0.659926;, + 0.776782;0.650060;, + 0.783107;0.659926;, + 0.455107;0.659926;, + 0.453606;0.650060;, + 0.776782;0.650060;, + 0.455107;0.659926;, + 0.453606;0.650060;, + 0.455107;0.659926;, + 0.783107;0.659926;, + 0.776782;0.650060;, + 0.453606;0.650060;, + 0.783107;0.659926;, + 0.070540;0.650060;, + 0.066326;0.659926;, + 0.455107;0.659926;, + 0.453606;0.650060;, + 0.070540;0.650060;, + 0.455107;0.659926;, + 0.021278;0.650060;, + 0.016331;0.659926;, + 0.066326;0.659926;, + 0.070540;0.650060;, + 0.021278;0.650060;, + 0.066326;0.659926;, + 0.009956;0.650060;, + 0.004838;0.659926;, + 0.016331;0.659926;, + 0.021278;0.650060;, + 0.009956;0.650060;, + 0.016331;0.659926;, + 0.021278;0.650060;, + 0.016331;0.659926;, + 0.004838;0.659926;, + 0.009956;0.650060;, + 0.021278;0.650060;, + 0.004838;0.659926;, + 0.070540;0.650060;, + 0.066326;0.659926;, + 0.016331;0.659926;, + 0.021278;0.650060;, + 0.070540;0.650060;, + 0.016331;0.659926;, + 0.481442;0.455188;, + 0.453606;0.650060;, + 0.070540;0.650060;, + 0.161276;0.455188;, + 0.481442;0.455188;, + 0.070540;0.650060;, + 0.751550;0.455188;, + 0.776782;0.650060;, + 0.453606;0.650060;, + 0.481442;0.455188;, + 0.751550;0.455188;, + 0.453606;0.650060;, + 0.481442;0.455188;, + 0.453606;0.650060;, + 0.776782;0.650060;, + 0.751550;0.455188;, + 0.481442;0.455188;, + 0.776782;0.650060;, + 0.161276;0.455188;, + 0.070540;0.650060;, + 0.453606;0.650060;, + 0.481442;0.455188;, + 0.161276;0.455188;, + 0.453606;0.650060;, + 0.120112;0.455188;, + 0.021278;0.650060;, + 0.070540;0.650060;, + 0.161276;0.455188;, + 0.120112;0.455188;, + 0.070540;0.650060;, + 0.110653;0.455188;, + 0.009956;0.650060;, + 0.021278;0.650060;, + 0.120112;0.455188;, + 0.110653;0.455188;, + 0.021278;0.650060;, + 0.120112;0.455188;, + 0.021278;0.650060;, + 0.009956;0.650060;, + 0.110653;0.455188;, + 0.120112;0.455188;, + 0.009956;0.650060;, + 0.161276;0.455188;, + 0.070540;0.650060;, + 0.021278;0.650060;, + 0.120112;0.455188;, + 0.161276;0.455188;, + 0.021278;0.650060;, + 0.509343;0.260365;, + 0.481442;0.455188;, + 0.161276;0.455188;, + 0.252047;0.260365;, + 0.509343;0.260365;, + 0.161276;0.455188;, + 0.726415;0.260365;, + 0.751550;0.455188;, + 0.481442;0.455188;, + 0.509343;0.260365;, + 0.726415;0.260365;, + 0.481442;0.455188;, + 0.509343;0.260365;, + 0.481442;0.455188;, + 0.751550;0.455188;, + 0.726415;0.260365;, + 0.509343;0.260365;, + 0.751550;0.455188;, + 0.252047;0.260365;, + 0.161276;0.455188;, + 0.481442;0.455188;, + 0.509343;0.260365;, + 0.252047;0.260365;, + 0.481442;0.455188;, + 0.218961;0.260365;, + 0.120112;0.455188;, + 0.161276;0.455188;, + 0.252047;0.260365;, + 0.218961;0.260365;, + 0.161276;0.455188;, + 0.211360;0.260365;, + 0.110653;0.455188;, + 0.120112;0.455188;, + 0.218961;0.260365;, + 0.211360;0.260365;, + 0.120112;0.455188;, + 0.218961;0.260365;, + 0.120112;0.455188;, + 0.110653;0.455188;, + 0.211360;0.260365;, + 0.218961;0.260365;, + 0.110653;0.455188;, + 0.252047;0.260365;, + 0.161276;0.455188;, + 0.120112;0.455188;, + 0.218961;0.260365;, + 0.252047;0.260365;, + 0.120112;0.455188;, + 0.062369;0.669840;, + 0.456729;0.669840;, + 0.456636;0.669889;, + 0.456636;0.669889;, + 0.456729;0.669840;, + 0.456772;0.669889;, + 0.789439;0.669840;, + 0.456772;0.669889;, + 0.456729;0.669840;, + 0.300579;0.669889;, + 0.062369;0.669840;, + 0.456636;0.669889;, + 0.300579;0.669889;, + 0.062411;0.669889;, + 0.062369;0.669840;, + 0.456772;0.669889;, + 0.789439;0.669840;, + 0.789369;0.669889;, + 0.789369;0.669889;, + 0.789439;0.669840;, + 0.789478;0.669889;, + 0.456729;0.669840;, + 0.789478;0.669889;, + 0.789439;0.669840;, + 0.456881;0.669889;, + 0.456729;0.669840;, + 0.456772;0.669889;, + 0.062369;0.669840;, + 0.456772;0.669889;, + 0.456729;0.669840;, + 0.456729;0.669840;, + 0.456881;0.669889;, + 0.474675;0.669889;, + 0.456729;0.669840;, + 0.474675;0.669889;, + 0.559144;0.669889;, + 0.456729;0.669840;, + 0.559144;0.669889;, + 0.559222;0.669889;, + 0.456729;0.669840;, + 0.559222;0.669889;, + 0.789385;0.669889;, + 0.456729;0.669840;, + 0.789385;0.669889;, + 0.789478;0.669889;, + 0.062547;0.669889;, + 0.062369;0.669840;, + 0.062411;0.669889;, + 0.011652;0.669840;, + 0.062411;0.669889;, + 0.062369;0.669840;, + 0.062369;0.669840;, + 0.062547;0.669889;, + 0.111215;0.669889;, + 0.062369;0.669840;, + 0.111215;0.669889;, + 0.456772;0.669889;, + 0.062411;0.669889;, + 0.011652;0.669840;, + 0.011718;0.669889;, + 0.011718;0.669889;, + 0.011652;0.669840;, + 0.011698;0.669889;, + 0.000000;0.669840;, + 0.011698;0.669889;, + 0.011652;0.669840;, + 0.011698;0.669889;, + 0.000000;0.669840;, + 0.000050;0.669889;, + 0.000050;0.669889;, + 0.000000;0.669840;, + 0.000047;0.669889;, + 0.011652;0.669840;, + 0.000047;0.669889;, + 0.000000;0.669840;, + 0.011695;0.669889;, + 0.011652;0.669840;, + 0.011698;0.669889;, + 0.062369;0.669840;, + 0.011698;0.669889;, + 0.011652;0.669840;, + 0.011652;0.669840;, + 0.011695;0.669889;, + 0.000279;0.669889;, + 0.011652;0.669840;, + 0.000279;0.669889;, + 0.000047;0.669889;, + 0.062411;0.669889;, + 0.062396;0.669889;, + 0.062369;0.669840;, + 0.011698;0.669889;, + 0.062369;0.669840;, + 0.062396;0.669889;, + 0.252047;0.260365;, + 0.516987;0.248350;, + 0.509343;0.260365;, + 0.516987;0.248350;, + 0.252047;0.260365;, + 0.515757;0.248350;, + 0.515757;0.248350;, + 0.252047;0.260365;, + 0.258449;0.248350;, + 0.218961;0.260365;, + 0.258449;0.248350;, + 0.252047;0.260365;, + 0.509343;0.260365;, + 0.735103;0.248350;, + 0.726415;0.260365;, + 0.735103;0.248350;, + 0.509343;0.260365;, + 0.734063;0.248350;, + 0.516987;0.248350;, + 0.734063;0.248350;, + 0.509343;0.260365;, + 0.726415;0.260365;, + 0.516987;0.248350;, + 0.509343;0.260365;, + 0.516987;0.248350;, + 0.726415;0.260365;, + 0.518023;0.248350;, + 0.726415;0.260365;, + 0.735103;0.248350;, + 0.733457;0.248350;, + 0.726415;0.260365;, + 0.733457;0.248350;, + 0.518023;0.248350;, + 0.509343;0.260365;, + 0.258449;0.248350;, + 0.252047;0.260365;, + 0.258449;0.248350;, + 0.509343;0.260365;, + 0.259683;0.248350;, + 0.509343;0.260365;, + 0.516987;0.248350;, + 0.426259;0.248350;, + 0.509343;0.260365;, + 0.426259;0.248350;, + 0.424688;0.248350;, + 0.509343;0.260365;, + 0.424688;0.248350;, + 0.259683;0.248350;, + 0.252047;0.260365;, + 0.225204;0.248350;, + 0.218961;0.260365;, + 0.225204;0.248350;, + 0.252047;0.260365;, + 0.225364;0.248350;, + 0.258449;0.248350;, + 0.225364;0.248350;, + 0.252047;0.260365;, + 0.218961;0.260365;, + 0.217565;0.248350;, + 0.211360;0.260365;, + 0.217565;0.248350;, + 0.218961;0.260365;, + 0.217599;0.248350;, + 0.225204;0.248350;, + 0.217599;0.248350;, + 0.218961;0.260365;, + 0.211360;0.260365;, + 0.225204;0.248350;, + 0.218961;0.260365;, + 0.225204;0.248350;, + 0.211360;0.260365;, + 0.225170;0.248350;, + 0.211360;0.260365;, + 0.217565;0.248350;, + 0.221875;0.248350;, + 0.211360;0.260365;, + 0.221875;0.248350;, + 0.225170;0.248350;, + 0.258449;0.248350;, + 0.218961;0.260365;, + 0.258294;0.248350;, + 0.225204;0.248350;, + 0.258294;0.248350;, + 0.218961;0.260365;, + 0.456772;0.669889;, + 0.300579;0.669889;, + 0.456881;0.669889;, + 0.300579;0.669889;, + 0.456636;0.669889;, + 0.559144;0.669889;, + 0.456772;0.669889;, + 0.559144;0.669889;, + 0.456636;0.669889;, + 0.559144;0.669889;, + 0.474675;0.669889;, + 0.300579;0.669889;, + 0.456881;0.669889;, + 0.300579;0.669889;, + 0.474675;0.669889;, + 0.559144;0.669889;, + 0.456772;0.669889;, + 0.559222;0.669889;, + 0.789369;0.669889;, + 0.559222;0.669889;, + 0.456772;0.669889;, + 0.559222;0.669889;, + 0.789369;0.669889;, + 0.789385;0.669889;, + 0.789478;0.669889;, + 0.789385;0.669889;, + 0.789369;0.669889;, + 0.062547;0.669889;, + 0.062411;0.669889;, + 0.300579;0.669889;, + 0.062411;0.669889;, + 0.062411;0.669889;, + 0.062547;0.669889;, + 0.456772;0.669889;, + 0.111215;0.669889;, + 0.300579;0.669889;, + 0.062547;0.669889;, + 0.300579;0.669889;, + 0.111215;0.669889;, + 0.011718;0.669889;, + 0.062411;0.669889;, + 0.062411;0.669889;, + 0.011698;0.669889;, + 0.062411;0.669889;, + 0.011718;0.669889;, + 0.000050;0.669889;, + 0.062411;0.669889;, + 0.011698;0.669889;, + 0.000047;0.669889;, + 0.062411;0.669889;, + 0.000050;0.669889;, + 0.011698;0.669889;, + 0.062411;0.669889;, + 0.011695;0.669889;, + 0.011695;0.669889;, + 0.062411;0.669889;, + 0.000279;0.669889;, + 0.000047;0.669889;, + 0.000279;0.669889;, + 0.062411;0.669889;, + 0.062396;0.669889;, + 0.062411;0.669889;, + 0.011698;0.669889;, + 0.516987;0.248350;, + 0.734063;0.248350;, + 0.516987;0.248350;, + 0.518023;0.248350;, + 0.734063;0.248350;, + 0.516987;0.248350;, + 0.735103;0.248350;, + 0.734063;0.248350;, + 0.733457;0.248350;, + 0.518023;0.248350;, + 0.733457;0.248350;, + 0.734063;0.248350;, + 0.258449;0.248350;, + 0.515757;0.248350;, + 0.258449;0.248350;, + 0.259683;0.248350;, + 0.515757;0.248350;, + 0.258449;0.248350;, + 0.516987;0.248350;, + 0.516987;0.248350;, + 0.426259;0.248350;, + 0.515757;0.248350;, + 0.426259;0.248350;, + 0.516987;0.248350;, + 0.426259;0.248350;, + 0.515757;0.248350;, + 0.424688;0.248350;, + 0.259683;0.248350;, + 0.424688;0.248350;, + 0.515757;0.248350;, + 0.225364;0.248350;, + 0.258449;0.248350;, + 0.258449;0.248350;, + 0.225364;0.248350;, + 0.258449;0.248350;, + 0.225204;0.248350;, + 0.217599;0.248350;, + 0.225204;0.248350;, + 0.258449;0.248350;, + 0.217599;0.248350;, + 0.258449;0.248350;, + 0.217565;0.248350;, + 0.225170;0.248350;, + 0.258449;0.248350;, + 0.225204;0.248350;, + 0.217565;0.248350;, + 0.258449;0.248350;, + 0.221875;0.248350;, + 0.225170;0.248350;, + 0.221875;0.248350;, + 0.258449;0.248350;, + 0.258294;0.248350;, + 0.225204;0.248350;, + 0.258449;0.248350;, + 0.691067;0.999512;, + 1.000000;0.999512;, + 0.691067;0.999512;, + 0.324876;0.999512;, + 0.691067;0.999512;, + 0.691067;0.999512;, + 0.324876;0.999512;, + 0.691067;0.999512;, + 0.324876;0.999512;, + 0.324876;0.999512;, + 0.324876;0.999512;, + 0.277787;0.999512;, + 0.277787;0.999512;, + 0.324876;0.999512;, + 0.277787;0.999512;, + 0.277787;0.999512;, + 0.277787;0.999512;, + 0.266966;1.000000;, + 0.573896;0.834627;, + 0.691067;0.999512;, + 0.324876;0.999512;, + 0.193620;0.834627;, + 0.573896;0.834627;, + 0.324876;0.999512;, + 0.894718;0.834627;, + 1.000000;0.999512;, + 0.691067;0.999512;, + 0.573896;0.834627;, + 0.894718;0.834627;, + 0.691067;0.999512;, + 0.573896;0.834627;, + 0.691067;0.999512;, + 1.000000;0.999512;, + 0.894718;0.834627;, + 0.573896;0.834627;, + 1.000000;0.999512;, + 0.193620;0.834627;, + 0.324876;0.999512;, + 0.691067;0.999512;, + 0.573896;0.834627;, + 0.193620;0.834627;, + 0.691067;0.999512;, + 0.144723;0.834627;, + 0.277787;0.999512;, + 0.324876;0.999512;, + 0.193620;0.834627;, + 0.144723;0.834627;, + 0.324876;0.999512;, + 0.133483;0.834627;, + 0.266966;1.000000;, + 0.277787;0.999512;, + 0.144723;0.834627;, + 0.133483;0.834627;, + 0.277787;0.999512;, + 0.144723;0.834627;, + 0.277787;0.999512;, + 0.266966;1.000000;, + 0.133483;0.834627;, + 0.144723;0.834627;, + 0.266966;1.000000;, + 0.193620;0.834627;, + 0.324876;0.999512;, + 0.277787;0.999512;, + 0.144723;0.834627;, + 0.193620;0.834627;, + 0.277787;0.999512;, + 0.456729;0.669840;, + 0.573896;0.834627;, + 0.193620;0.834627;, + 0.062369;0.669840;, + 0.456729;0.669840;, + 0.193620;0.834627;, + 0.789439;0.669840;, + 0.894718;0.834627;, + 0.573896;0.834627;, + 0.456729;0.669840;, + 0.789439;0.669840;, + 0.573896;0.834627;, + 0.456729;0.669840;, + 0.573896;0.834627;, + 0.894718;0.834627;, + 0.789439;0.669840;, + 0.456729;0.669840;, + 0.894718;0.834627;, + 0.062369;0.669840;, + 0.193620;0.834627;, + 0.573896;0.834627;, + 0.456729;0.669840;, + 0.062369;0.669840;, + 0.573896;0.834627;, + 0.011652;0.669840;, + 0.144723;0.834627;, + 0.193620;0.834627;, + 0.062369;0.669840;, + 0.011652;0.669840;, + 0.193620;0.834627;, + 0.000000;0.669840;, + 0.133483;0.834627;, + 0.144723;0.834627;, + 0.011652;0.669840;, + 0.000000;0.669840;, + 0.144723;0.834627;, + 0.011652;0.669840;, + 0.144723;0.834627;, + 0.133483;0.834627;, + 0.000000;0.669840;, + 0.011652;0.669840;, + 0.133483;0.834627;, + 0.062369;0.669840;, + 0.193620;0.834627;, + 0.144723;0.834627;, + 0.011652;0.669840;, + 0.062369;0.669840;, + 0.144723;0.834627;, + 0.062369;0.669840;, + 0.456702;0.669645;, + 0.456729;0.669840;, + 0.456702;0.669645;, + 0.062369;0.669840;, + 0.069217;0.669645;, + 0.069217;0.669645;, + 0.062369;0.669840;, + 0.062435;0.669645;, + 0.011652;0.669840;, + 0.062435;0.669645;, + 0.062369;0.669840;, + 0.456729;0.669840;, + 0.789331;0.669645;, + 0.789439;0.669840;, + 0.789331;0.669645;, + 0.456729;0.669840;, + 0.462421;0.669645;, + 0.456702;0.669645;, + 0.462421;0.669645;, + 0.456729;0.669840;, + 0.556308;0.669645;, + 0.456729;0.669840;, + 0.789439;0.669840;, + 0.556308;0.669645;, + 0.789439;0.669840;, + 0.783607;0.669645;, + 0.789331;0.669645;, + 0.783607;0.669645;, + 0.789439;0.669840;, + 0.556308;0.669645;, + 0.456702;0.669645;, + 0.456729;0.669840;, + 0.326719;0.669645;, + 0.062369;0.669840;, + 0.456729;0.669840;, + 0.326719;0.669645;, + 0.456729;0.669840;, + 0.449920;0.669645;, + 0.456702;0.669645;, + 0.449920;0.669645;, + 0.456729;0.669840;, + 0.326719;0.669645;, + 0.062435;0.669645;, + 0.062369;0.669840;, + 0.062369;0.669840;, + 0.011737;0.669645;, + 0.011652;0.669840;, + 0.011737;0.669645;, + 0.062369;0.669840;, + 0.061565;0.669645;, + 0.062435;0.669645;, + 0.061565;0.669645;, + 0.062369;0.669840;, + 0.001692;0.669645;, + 0.000000;0.669840;, + 0.011652;0.669840;, + 0.001692;0.669645;, + 0.011652;0.669840;, + 0.011536;0.669645;, + 0.011737;0.669645;, + 0.011536;0.669645;, + 0.011652;0.669840;, + 0.001692;0.669645;, + 0.000081;0.669645;, + 0.000000;0.669840;, + 0.000000;0.669840;, + 0.011737;0.669645;, + 0.011652;0.669840;, + 0.011737;0.669645;, + 0.000000;0.669840;, + 0.000283;0.669645;, + 0.000000;0.669840;, + 0.000081;0.669645;, + 0.000213;0.669645;, + 0.000000;0.669840;, + 0.000213;0.669645;, + 0.000283;0.669645;, + 0.062435;0.669645;, + 0.011652;0.669840;, + 0.012606;0.669645;, + 0.011737;0.669645;, + 0.012606;0.669645;, + 0.011652;0.669840;, + 0.462421;0.669645;, + 0.456702;0.669645;, + 0.789331;0.669645;, + 0.783607;0.669645;, + 0.789331;0.669645;, + 0.456702;0.669645;, + 0.783607;0.669645;, + 0.456702;0.669645;, + 0.556308;0.669645;, + 0.456702;0.669645;, + 0.556308;0.669645;, + 0.456702;0.669645;, + 0.449920;0.669645;, + 0.456702;0.669645;, + 0.456702;0.669645;, + 0.449920;0.669645;, + 0.456702;0.669645;, + 0.326719;0.669645;, + 0.069217;0.669645;, + 0.326719;0.669645;, + 0.456702;0.669645;, + 0.062435;0.669645;, + 0.326719;0.669645;, + 0.069217;0.669645;, + 0.011737;0.669645;, + 0.062435;0.669645;, + 0.069217;0.669645;, + 0.061565;0.669645;, + 0.062435;0.669645;, + 0.011737;0.669645;, + 0.011536;0.669645;, + 0.011737;0.669645;, + 0.069217;0.669645;, + 0.011536;0.669645;, + 0.069217;0.669645;, + 0.001692;0.669645;, + 0.062435;0.669645;, + 0.001692;0.669645;, + 0.069217;0.669645;, + 0.000081;0.669645;, + 0.001692;0.669645;, + 0.062435;0.669645;, + 0.000081;0.669645;, + 0.062435;0.669645;, + 0.000213;0.669645;, + 0.000283;0.669645;, + 0.000213;0.669645;, + 0.062435;0.669645;, + 0.012606;0.669645;, + 0.011737;0.669645;, + 0.000283;0.669645;, + 0.012606;0.669645;, + 0.000283;0.669645;, + 0.062435;0.669645;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SAILBOAT.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SAILBOAT.X new file mode 100644 index 0000000..680aefb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SAILBOAT.X @@ -0,0 +1,2171 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 582; + 0.014500;1.744090;-0.347360;, + 0.014500;3.368840;-0.229230;, + 0.014500;5.049620;-0.229230;, + 0.014500;1.744090;-0.347360;, + 0.014500;5.049620;-0.229230;, + 0.014500;8.691300;-0.544240;, + 0.014500;1.744090;-0.347360;, + 0.014500;8.691300;-0.544240;, + 0.014500;8.355150;0.637020;, + 0.014500;1.744090;-0.347360;, + 0.014500;8.355150;0.637020;, + 0.014500;7.906940;1.582030;, + 0.014500;1.744090;-0.347360;, + 0.014500;7.906940;1.582030;, + 0.014500;7.458730;2.369540;, + 0.014500;1.744090;-0.347360;, + 0.014500;7.458730;2.369540;, + 0.014500;6.562320;3.235800;, + 0.014500;1.744090;-0.347360;, + 0.014500;6.562320;3.235800;, + 0.014500;5.609880;3.747680;, + 0.014500;1.744090;-0.347360;, + 0.014500;5.609880;3.747680;, + 0.014500;4.321280;4.141430;, + 0.014500;1.744090;-0.347360;, + 0.014500;4.321280;4.141430;, + 0.014500;3.200770;4.259560;, + 0.014500;1.744090;-0.347360;, + 0.014500;3.200770;4.259560;, + 0.014500;1.968200;4.259560;, + 0.014500;1.744090;-0.347360;, + 0.014500;1.968200;4.259560;, + 0.014500;1.744090;4.220190;, + 0.014500;1.744090;-0.347360;, + 0.014500;1.744090;4.220190;, + 0.014500;1.968200;4.259560;, + 0.014500;1.744090;-0.347360;, + 0.014500;1.968200;4.259560;, + 0.014500;3.200770;4.259560;, + 0.014500;1.744090;-0.347360;, + 0.014500;3.200770;4.259560;, + 0.014500;4.321280;4.141430;, + 0.014500;1.744090;-0.347360;, + 0.014500;4.321280;4.141430;, + 0.014500;5.609880;3.747680;, + 0.014500;1.744090;-0.347360;, + 0.014500;5.609880;3.747680;, + 0.014500;6.562320;3.235800;, + 0.014500;1.744090;-0.347360;, + 0.014500;6.562320;3.235800;, + 0.014500;7.458730;2.369540;, + 0.014500;1.744090;-0.347360;, + 0.014500;7.458730;2.369540;, + 0.014500;7.906940;1.582030;, + 0.014500;1.744090;-0.347360;, + 0.014500;7.906940;1.582030;, + 0.014500;8.355150;0.637020;, + 0.014500;1.744090;-0.347360;, + 0.014500;8.355150;0.637020;, + 0.014500;8.691300;-0.544240;, + 0.014500;1.744090;-0.347360;, + 0.014500;8.691300;-0.544240;, + 0.014500;5.049620;-0.229230;, + 0.014500;1.744090;-0.347360;, + 0.014500;5.049620;-0.229230;, + 0.014500;3.368840;-0.229230;, + 0.014500;0.961590;-0.857740;, + 0.014500;7.947690;-0.857740;, + 0.014500;6.698140;-1.662480;, + 0.014500;0.961590;-0.857740;, + 0.014500;6.698140;-1.662480;, + 0.014500;5.505390;-2.320900;, + 0.014500;0.961590;-0.857740;, + 0.014500;5.505390;-2.320900;, + 0.014500;4.539830;-2.735460;, + 0.014500;0.961590;-0.857740;, + 0.014500;4.539830;-2.735460;, + 0.014500;0.961590;-3.735280;, + 0.014500;0.961590;-0.857740;, + 0.014500;0.961590;-3.735280;, + 0.014500;4.539830;-2.735460;, + 0.014500;0.961590;-0.857740;, + 0.014500;4.539830;-2.735460;, + 0.014500;5.505390;-2.320900;, + 0.014500;0.961590;-0.857740;, + 0.014500;5.505390;-2.320900;, + 0.014500;6.698140;-1.662480;, + 0.014500;0.961590;-0.857740;, + 0.014500;6.698140;-1.662480;, + 0.014500;7.947690;-0.857740;, + -0.662575;7.701635;-0.722639;, + -0.662575;7.698882;-0.722650;, + 0.029388;7.687132;-0.719625;, + 0.029388;7.713421;-0.719625;, + -0.662575;7.701635;-0.722639;, + 0.029388;7.687132;-0.719625;, + -0.662796;7.698892;-0.656026;, + 0.029060;7.687122;-0.653006;, + 0.029388;7.687132;-0.719625;, + -0.662575;7.698882;-0.722650;, + -0.662796;7.698892;-0.656026;, + 0.029388;7.687132;-0.719625;, + -0.662796;7.701635;-0.656021;, + -0.662796;7.698892;-0.656026;, + -0.662575;7.698882;-0.722650;, + -0.662575;7.701635;-0.722639;, + -0.662796;7.701635;-0.656021;, + -0.662575;7.698882;-0.722650;, + 0.029060;7.713409;-0.653006;, + -0.662796;7.701635;-0.656021;, + -0.662575;7.701635;-0.722639;, + 0.029388;7.713421;-0.719625;, + 0.029060;7.713409;-0.653006;, + -0.662575;7.701635;-0.722639;, + 0.029060;7.687122;-0.653006;, + 0.029060;7.713409;-0.653006;, + 0.029388;7.713421;-0.719625;, + 0.029388;7.687132;-0.719625;, + 0.029060;7.687122;-0.653006;, + 0.029388;7.713421;-0.719625;, + -0.662796;7.701635;-0.656021;, + 0.029060;7.713409;-0.653006;, + 0.029060;7.687122;-0.653006;, + -0.662796;7.698892;-0.656026;, + -0.662796;7.701635;-0.656021;, + 0.029060;7.687122;-0.653006;, + 0.014252;7.687122;-0.719705;, + 0.706215;7.698897;-0.716695;, + 0.706215;7.701635;-0.716684;, + 0.014252;7.687122;-0.719705;, + 0.706215;7.701635;-0.716684;, + 0.014252;7.713406;-0.719695;, + 0.014252;7.687122;-0.719705;, + 0.013916;7.687122;-0.653081;, + 0.705872;7.698882;-0.650071;, + 0.014252;7.687122;-0.719705;, + 0.705872;7.698882;-0.650071;, + 0.706215;7.698897;-0.716695;, + 0.706215;7.698897;-0.716695;, + 0.705872;7.698882;-0.650071;, + 0.705872;7.701635;-0.650061;, + 0.706215;7.698897;-0.716695;, + 0.705872;7.701635;-0.650061;, + 0.706215;7.701635;-0.716684;, + 0.706215;7.701635;-0.716684;, + 0.705872;7.701635;-0.650061;, + 0.013916;7.713406;-0.653077;, + 0.706215;7.701635;-0.716684;, + 0.013916;7.713406;-0.653077;, + 0.014252;7.713406;-0.719695;, + 0.014252;7.713406;-0.719695;, + 0.013916;7.713406;-0.653077;, + 0.013916;7.687122;-0.653081;, + 0.014252;7.713406;-0.719695;, + 0.013916;7.687122;-0.653081;, + 0.014252;7.687122;-0.719705;, + 0.013916;7.687122;-0.653081;, + 0.013916;7.713406;-0.653077;, + 0.705872;7.701635;-0.650061;, + 0.013916;7.687122;-0.653081;, + 0.705872;7.701635;-0.650061;, + 0.705872;7.698882;-0.650071;, + 0.013245;1.624977;-0.676412;, + 0.049591;1.603996;-0.676236;, + 0.017731;1.596118;4.386924;, + 0.013245;1.624977;-0.676412;, + 0.017731;1.596118;4.386924;, + -0.004936;1.609216;4.386828;, + 0.049591;1.603996;-0.676236;, + 0.049591;1.562042;-0.676246;, + 0.017731;1.569917;4.386934;, + 0.049591;1.603996;-0.676236;, + 0.017731;1.569917;4.386934;, + 0.017731;1.596118;4.386924;, + 0.049591;1.562042;-0.676246;, + 0.013245;1.541069;-0.676412;, + -0.004936;1.556816;4.386833;, + 0.049591;1.562042;-0.676246;, + -0.004936;1.556816;4.386833;, + 0.017731;1.569917;4.386934;, + 0.013245;1.541069;-0.676412;, + -0.023003;1.562042;-0.676579;, + -0.027702;1.569915;4.386737;, + 0.013245;1.541069;-0.676412;, + -0.027702;1.569915;4.386737;, + -0.004936;1.556816;4.386833;, + -0.023003;1.562042;-0.676579;, + -0.023003;1.603996;-0.676574;, + -0.027702;1.596125;4.386743;, + -0.023003;1.562042;-0.676579;, + -0.027702;1.596125;4.386743;, + -0.027702;1.569915;4.386737;, + -0.023003;1.603996;-0.676574;, + 0.013245;1.624977;-0.676412;, + -0.004936;1.609216;4.386828;, + -0.023003;1.603996;-0.676574;, + -0.004936;1.609216;4.386828;, + -0.027702;1.596125;4.386743;, + 0.049591;1.603996;-0.676236;, + 0.013245;1.624977;-0.676412;, + 0.013245;1.583026;-0.676412;, + 0.049591;1.562042;-0.676246;, + 0.049591;1.603996;-0.676236;, + 0.013245;1.583026;-0.676412;, + 0.013245;1.541069;-0.676412;, + 0.049591;1.562042;-0.676246;, + 0.013245;1.583026;-0.676412;, + -0.023003;1.562042;-0.676579;, + 0.013245;1.541069;-0.676412;, + 0.013245;1.583026;-0.676412;, + -0.023003;1.603996;-0.676574;, + -0.023003;1.562042;-0.676579;, + 0.013245;1.583026;-0.676412;, + 0.013245;1.624977;-0.676412;, + -0.023003;1.603996;-0.676574;, + 0.013245;1.583026;-0.676412;, + -0.004936;1.609216;4.386828;, + 0.017731;1.596118;4.386924;, + -0.004936;1.583025;4.386828;, + 0.017731;1.596118;4.386924;, + 0.017731;1.569917;4.386934;, + -0.004936;1.583025;4.386828;, + 0.017731;1.569917;4.386934;, + -0.004936;1.556816;4.386833;, + -0.004936;1.583025;4.386828;, + -0.004936;1.556816;4.386833;, + -0.027702;1.569915;4.386737;, + -0.004936;1.583025;4.386828;, + -0.027702;1.569915;4.386737;, + -0.027702;1.596125;4.386743;, + -0.004936;1.583025;4.386828;, + -0.027702;1.596125;4.386743;, + -0.004936;1.609216;4.386828;, + -0.004936;1.583025;4.386828;, + 0.013687;0.585624;-0.769578;, + 0.086388;0.585676;-0.727153;, + 0.040726;8.975447;-0.701038;, + 0.013687;0.585624;-0.769578;, + 0.040726;8.975447;-0.701038;, + 0.013466;8.975447;-0.716942;, + 0.086388;0.585676;-0.727153;, + 0.086044;0.585682;-0.642937;, + 0.040497;8.975447;-0.669474;, + 0.086388;0.585676;-0.727153;, + 0.040497;8.975447;-0.669474;, + 0.040726;8.975447;-0.701038;, + 0.086044;0.585682;-0.642937;, + 0.012909;0.585624;-0.601142;, + 0.013245;8.975447;-0.653803;, + 0.086044;0.585682;-0.642937;, + 0.013245;8.975447;-0.653803;, + 0.040497;8.975447;-0.669474;, + 0.012909;0.585624;-0.601142;, + -0.059792;0.585634;-0.643567;, + -0.014137;8.975447;-0.669706;, + 0.012909;0.585624;-0.601142;, + -0.014137;8.975447;-0.669706;, + 0.013245;8.975447;-0.653803;, + -0.059792;0.585634;-0.643567;, + -0.059456;0.585634;-0.727793;, + -0.014023;8.975447;-0.701281;, + -0.059792;0.585634;-0.643567;, + -0.014023;8.975447;-0.701281;, + -0.014137;8.975447;-0.669706;, + -0.059456;0.585634;-0.727793;, + 0.013687;0.585624;-0.769578;, + 0.013466;8.975447;-0.716942;, + -0.059456;0.585634;-0.727793;, + 0.013466;8.975447;-0.716942;, + -0.014023;8.975447;-0.701281;, + 0.086388;0.585676;-0.727153;, + 0.013687;0.585624;-0.769578;, + 0.013245;0.585624;-0.685373;, + 0.086044;0.585682;-0.642937;, + 0.086388;0.585676;-0.727153;, + 0.013245;0.585624;-0.685373;, + 0.012909;0.585624;-0.601142;, + 0.086044;0.585682;-0.642937;, + 0.013245;0.585624;-0.685373;, + -0.059792;0.585634;-0.643567;, + 0.012909;0.585624;-0.601142;, + 0.013245;0.585624;-0.685373;, + -0.059456;0.585634;-0.727793;, + -0.059792;0.585634;-0.643567;, + 0.013245;0.585624;-0.685373;, + 0.013687;0.585624;-0.769578;, + -0.059456;0.585634;-0.727793;, + 0.013245;0.585624;-0.685373;, + 0.013466;8.975447;-0.716942;, + 0.040726;8.975447;-0.701038;, + 0.013351;8.975447;-0.685367;, + 0.040726;8.975447;-0.701038;, + 0.040497;8.975447;-0.669474;, + 0.013351;8.975447;-0.685367;, + 0.040497;8.975447;-0.669474;, + 0.013245;8.975447;-0.653803;, + 0.013351;8.975447;-0.685367;, + 0.013245;8.975447;-0.653803;, + -0.014137;8.975447;-0.669706;, + 0.013351;8.975447;-0.685367;, + -0.014137;8.975447;-0.669706;, + -0.014023;8.975447;-0.701281;, + 0.013351;8.975447;-0.685367;, + -0.014023;8.975447;-0.701281;, + 0.013466;8.975447;-0.716942;, + 0.013351;8.975447;-0.685367;, + -0.734482;0.741983;4.638220;, + 0.693306;0.741983;4.644423;, + 0.591789;0.358495;4.643983;, + -0.630363;0.358486;4.638676;, + -0.734482;0.741983;4.638220;, + 0.591789;0.358495;4.643983;, + -0.630363;0.358486;4.638676;, + 0.591789;0.358495;4.643983;, + -0.020302;-0.120496;4.641341;, + -0.328140;0.071849;4.640000;, + -0.630363;0.358486;4.638676;, + -0.020302;-0.120496;4.641341;, + -0.630363;0.358486;4.638676;, + -0.328140;0.071849;4.640000;, + -0.443245;-0.296633;1.773076;, + -0.328140;0.071849;4.640000;, + -0.020302;-0.120496;4.641341;, + -0.014137;-0.409222;3.208220;, + -0.328140;0.071849;4.640000;, + -0.014137;-0.409222;3.208220;, + -0.443245;-0.296633;1.773076;, + -0.020302;-0.120496;4.641341;, + 0.358215;-0.153482;3.209849;, + -0.014137;-0.409222;3.208220;, + -0.020302;-0.120496;4.641341;, + 0.591789;0.358495;4.643983;, + 0.727524;0.231343;3.211453;, + -0.020302;-0.120496;4.641341;, + 0.727524;0.231343;3.211453;, + 0.358215;-0.153482;3.209849;, + 0.591789;0.358495;4.643983;, + 0.693306;0.741983;4.644423;, + 0.727524;0.231343;3.211453;, + -0.734482;0.741983;4.638220;, + -0.630363;0.358486;4.638676;, + -0.874374;0.151724;1.771194;, + -0.734482;0.741983;4.638220;, + -0.874374;0.151724;1.771194;, + -1.020775;0.748237;1.770565;, + -0.630363;0.358486;4.638676;, + -0.443245;-0.296633;1.773076;, + -0.874374;0.151724;1.771194;, + -0.443245;-0.296633;1.773076;, + -0.014137;-0.409222;3.208220;, + -0.007851;-0.593895;1.774971;, + -0.014137;-0.409222;3.208220;, + 0.358215;-0.153482;3.209849;, + 0.424622;-0.296633;1.776877;, + -0.014137;-0.409222;3.208220;, + 0.424622;-0.296633;1.776877;, + -0.007851;-0.593895;1.774971;, + 0.358215;-0.153482;3.209849;, + 0.727524;0.231343;3.211453;, + 0.863159;0.151724;1.778799;, + 0.358215;-0.153482;3.209849;, + 0.863159;0.151724;1.778799;, + 0.424622;-0.296633;1.776877;, + 0.727524;0.231343;3.211453;, + 0.693306;0.741983;4.644423;, + 1.004959;0.748237;1.779398;, + 0.727524;0.231343;3.211453;, + 1.004959;0.748237;1.779398;, + 0.863159;0.151724;1.778799;, + -0.874374;0.151724;1.771194;, + -0.443245;-0.296633;1.773076;, + -0.382782;-0.188630;-1.088127;, + -0.443245;-0.296633;1.773076;, + -0.007851;-0.593895;1.774971;, + 0.004601;-0.453320;-1.086433;, + -0.443245;-0.296633;1.773076;, + 0.004601;-0.453320;-1.086433;, + -0.382782;-0.188630;-1.088127;, + -0.007851;-0.593895;1.774971;, + 0.424622;-0.296633;1.776877;, + 0.004601;-0.453320;-1.086433;, + -1.020775;0.748237;1.770565;, + -0.874374;0.151724;1.771194;, + -0.768021;0.209799;-1.089816;, + -1.020775;0.748237;1.770565;, + -0.768021;0.209799;-1.089816;, + -0.899277;0.741802;-1.090381;, + -0.874374;0.151724;1.771194;, + -0.382782;-0.188630;-1.088127;, + -0.768021;0.209799;-1.089816;, + 0.004601;-0.453320;-1.086433;, + 0.424622;-0.296633;1.776877;, + 0.394218;-0.188619;-1.084744;, + 0.424622;-0.296633;1.776877;, + 0.863159;0.151724;1.778799;, + 0.776436;0.209799;-1.083091;, + 0.424622;-0.296633;1.776877;, + 0.776436;0.209799;-1.083091;, + 0.394218;-0.188619;-1.084744;, + 0.863159;0.151724;1.778799;, + 1.004959;0.748237;1.779398;, + 0.905556;0.741786;-1.082500;, + 0.863159;0.151724;1.778799;, + 0.905556;0.741786;-1.082500;, + 0.776436;0.209799;-1.083091;, + -0.899277;0.741802;-1.090381;, + -0.768021;0.209799;-1.089816;, + -0.457603;0.415024;-2.521708;, + -0.899277;0.741802;-1.090381;, + -0.457603;0.415024;-2.521708;, + -0.538605;0.739206;-2.522062;, + -0.768021;0.209799;-1.089816;, + -0.382782;-0.188630;-1.088127;, + -0.227173;0.173264;-2.520725;, + -0.768021;0.209799;-1.089816;, + -0.227173;0.173264;-2.520725;, + -0.457603;0.415024;-2.521708;, + -0.382782;-0.188630;-1.088127;, + 0.004601;-0.453320;-1.086433;, + 0.008080;0.011151;-2.519697;, + -0.382782;-0.188630;-1.088127;, + 0.008080;0.011151;-2.519697;, + -0.227173;0.173264;-2.520725;, + 0.004601;-0.453320;-1.086433;, + 0.394218;-0.188619;-1.084744;, + 0.246246;0.173272;-2.518673;, + 0.004601;-0.453320;-1.086433;, + 0.246246;0.173272;-2.518673;, + 0.008080;0.011151;-2.519697;, + 0.394218;-0.188619;-1.084744;, + 0.776436;0.209799;-1.083091;, + 0.479378;0.415024;-2.517666;, + 0.394218;-0.188619;-1.084744;, + 0.479378;0.415024;-2.517666;, + 0.246246;0.173272;-2.518673;, + 0.776436;0.209799;-1.083091;, + 0.905556;0.741786;-1.082500;, + 0.557571;0.739190;-2.517322;, + 0.776436;0.209799;-1.083091;, + 0.557571;0.739190;-2.517322;, + 0.479378;0.415024;-2.517666;, + -0.538605;0.739206;-2.522062;, + -0.457603;0.415024;-2.521708;, + 0.019295;0.741786;-3.950182;, + -0.457603;0.415024;-2.521708;, + -0.227173;0.173264;-2.520725;, + 0.019295;0.741786;-3.950182;, + -0.227173;0.173264;-2.520725;, + 0.008080;0.011151;-2.519697;, + 0.019295;0.741786;-3.950182;, + 0.008080;0.011151;-2.519697;, + 0.246246;0.173272;-2.518673;, + 0.019295;0.741786;-3.950182;, + 0.246246;0.173272;-2.518673;, + 0.479378;0.415024;-2.517666;, + 0.019295;0.741786;-3.950182;, + 0.479378;0.415024;-2.517666;, + 0.557571;0.739190;-2.517322;, + 0.019295;0.741786;-3.950182;, + 0.693306;0.741983;4.644423;, + -0.734482;0.741983;4.638220;, + -0.880661;0.743173;3.204443;, + 0.693306;0.741983;4.644423;, + -0.880661;0.743173;3.204443;, + 0.856880;0.743173;3.212016;, + 0.856880;0.743173;3.212016;, + -0.880661;0.743173;3.204443;, + -1.020775;0.748237;1.770565;, + 0.856880;0.743173;3.212016;, + -1.020775;0.748237;1.770565;, + 1.004959;0.748237;1.779398;, + 1.004959;0.748237;1.779398;, + -1.020775;0.748237;1.770565;, + -0.989250;0.750695;0.342358;, + 1.004959;0.748237;1.779398;, + -0.989250;0.750695;0.342358;, + 0.983315;0.750706;0.350960;, + 0.983315;0.750706;0.350960;, + -0.989250;0.750695;0.342358;, + -0.899277;0.741802;-1.090381;, + 0.983315;0.750706;0.350960;, + -0.899277;0.741802;-1.090381;, + 0.905556;0.741786;-1.082500;, + 0.905556;0.741786;-1.082500;, + -0.899277;0.741802;-1.090381;, + -0.538605;0.739206;-2.522062;, + 0.905556;0.741786;-1.082500;, + -0.538605;0.739206;-2.522062;, + 0.557571;0.739190;-2.517322;, + -0.538605;0.739206;-2.522062;, + 0.019295;0.741786;-3.950182;, + 0.017166;0.741797;-3.950182;, + 0.557571;0.739190;-2.517322;, + -0.538605;0.739206;-2.522062;, + 0.017166;0.741797;-3.950182;, + 0.557571;0.739190;-2.517322;, + 0.017166;0.741797;-3.950182;, + 0.019295;0.741786;-3.950182;, + -0.430000;1.287855;0.346402;, + -0.383667;1.056631;-0.889468;, + 0.410492;1.056620;-0.885338;, + -0.430000;1.287855;0.346402;, + 0.410492;1.056620;-0.885338;, + 0.446053;1.287846;0.363404;, + -0.443016;1.287855;1.755286;, + -0.430000;1.287855;0.346402;, + 0.446053;1.287846;0.363404;, + -0.443016;1.287855;1.755286;, + 0.446053;1.287846;0.363404;, + 0.467255;1.287855;1.772425;, + -0.443016;1.287855;1.755286;, + 0.467255;1.287855;1.772425;, + 0.385696;1.077274;3.207328;, + -0.443016;1.287855;1.755286;, + 0.385696;1.077274;3.207328;, + -0.387711;1.077274;3.203949;, + 0.410492;1.056620;-0.885338;, + -0.383667;1.056631;-0.889468;, + -0.645294;0.724522;-1.090462;, + 0.410492;1.056620;-0.885338;, + -0.645294;0.724522;-1.090462;, + 0.660667;0.724533;-1.084098;, + -0.383667;1.056631;-0.889468;, + -0.430000;1.287855;0.346402;, + -0.719109;0.724533;0.345146;, + -0.383667;1.056631;-0.889468;, + -0.719109;0.724533;0.345146;, + -0.645294;0.724522;-1.090462;, + -0.430000;1.287855;0.346402;, + -0.443016;1.287855;1.755286;, + -0.736496;0.724543;1.753995;, + -0.430000;1.287855;0.346402;, + -0.736496;0.724543;1.753995;, + -0.719109;0.724533;0.345146;, + -0.443016;1.287855;1.755286;, + -0.387711;1.077274;3.203949;, + -0.641594;0.724521;3.202840;, + -0.443016;1.287855;1.755286;, + -0.641594;0.724521;3.202840;, + -0.736496;0.724543;1.753995;, + -0.387711;1.077274;3.203949;, + 0.385696;1.077274;3.207328;, + 0.630707;0.724533;3.208391;, + -0.387711;1.077274;3.203949;, + 0.630707;0.724533;3.208391;, + -0.641594;0.724521;3.202840;, + 0.385696;1.077274;3.207328;, + 0.467255;1.287855;1.772425;, + 0.760735;0.724521;1.773700;, + 0.385696;1.077274;3.207328;, + 0.760735;0.724521;1.773700;, + 0.630707;0.724533;3.208391;, + 0.467255;1.287855;1.772425;, + 0.446053;1.287846;0.363404;, + 0.721802;0.724521;0.364600;, + 0.467255;1.287855;1.772425;, + 0.721802;0.724521;0.364600;, + 0.760735;0.724521;1.773700;, + 0.446053;1.287846;0.363404;, + 0.410492;1.056620;-0.885338;, + 0.660667;0.724533;-1.084098;, + 0.446053;1.287846;0.363404;, + 0.660667;0.724533;-1.084098;, + 0.721802;0.724521;0.364600;, + 0.660667;0.724533;-1.084098;, + -0.645294;0.724522;-1.090462;, + -0.719109;0.724533;0.345146;, + 0.721802;0.724521;0.364600;, + 0.660667;0.724533;-1.084098;, + -0.719109;0.724533;0.345146;, + 0.721802;0.724521;0.364600;, + -0.719109;0.724533;0.345146;, + -0.736496;0.724543;1.753995;, + 0.760735;0.724521;1.773700;, + 0.721802;0.724521;0.364600;, + -0.736496;0.724543;1.753995;, + 0.630707;0.724533;3.208391;, + 0.760735;0.724521;1.773700;, + -0.736496;0.724543;1.753995;, + -0.641594;0.724521;3.202840;, + 0.630707;0.724533;3.208391;, + -0.736496;0.724543;1.753995;; + + 194; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;; + + MeshMaterialList { + 8; + 194; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 2;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 3;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 4;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 5;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 6;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;, + 7;; + Material { + 0.800000;0.800000;0.800000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbsail1.ppm"; + } #TextureFilename + } # Material + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbsail2.ppm"; + } #TextureFilename + } # Material + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbsail2.ppm"; + } #TextureFilename + } # Material + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbsail2.ppm"; + } #TextureFilename + } # Material + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbsail2.ppm"; + } #TextureFilename + } # Material + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbsail2.ppm"; + } #TextureFilename + } # Material + Material { + 0.000000;0.000000;0.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbdeck.ppm"; + } #TextureFilename + } # Material + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + TextureFilename { + "../image/sbcabin.ppm"; + } #TextureFilename + } # Material + } # MeshMaterialList + MeshNormals { + 194; + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.004439;0.003984;-0.999982;, + 0.004356;0.000000;-0.999991;, + -0.017009;-0.999855;-0.000234;, + -0.016979;-0.999856;0.000094;, + -0.999995;0.000006;-0.003317;, + -0.999995;0.000013;-0.003318;, + -0.017015;0.999855;-0.000056;, + -0.017031;0.999855;0.000095;, + 0.999988;0.000000;0.004923;, + 0.999988;0.000000;0.004923;, + -0.004358;0.000000;0.999990;, + -0.004396;-0.001825;0.999989;, + 0.004281;0.004027;-0.999983;, + 0.004358;0.000381;-0.999990;, + 0.016993;-0.999856;0.000086;, + 0.017015;-0.999855;-0.000134;, + 0.999987;-0.000019;0.005149;, + 0.999987;-0.000021;0.005149;, + 0.017009;0.999855;0.000088;, + 0.017008;0.999855;0.000086;, + -0.999987;0.000001;-0.005044;, + -0.999987;0.000002;-0.005043;, + -0.004361;-0.000152;0.999990;, + -0.004288;-0.003637;0.999984;, + 0.499918;0.866061;0.004493;, + 0.500302;0.865839;0.004492;, + 0.999980;-0.000002;0.006292;, + 0.999980;0.000002;0.006292;, + 0.499776;-0.866143;0.004488;, + 0.500386;-0.865791;0.004495;, + -0.500812;-0.865556;0.000881;, + -0.498721;-0.866762;0.000905;, + -1.000000;0.000000;-0.000928;, + -1.000000;0.000000;-0.000928;, + -0.500954;0.865473;0.000895;, + -0.498488;0.866896;0.000885;, + 0.004843;0.000000;-0.999988;, + 0.004705;0.000239;-0.999989;, + 0.004567;0.000000;-0.999990;, + 0.004607;0.000000;-0.999989;, + 0.004538;0.000119;-0.999990;, + 0.004469;0.000000;-0.999990;, + -0.004228;0.000000;0.999991;, + -0.004449;0.000382;0.999990;, + -0.004554;0.000200;0.999990;, + -0.004116;0.000200;0.999992;, + -0.003864;-0.000237;0.999992;, + -0.003728;0.000000;0.999993;, + 0.504003;0.005431;-0.863685;, + 0.503919;0.005432;-0.863734;, + 0.999977;0.005442;0.004084;, + 0.999959;0.005420;0.007255;, + 0.496160;0.005430;0.868214;, + 0.498490;0.005448;0.866878;, + -0.504006;0.005434;0.863683;, + -0.502217;0.005448;0.864724;, + -0.999977;0.005428;-0.003989;, + -0.999979;0.005430;-0.003610;, + -0.496033;0.005434;-0.868287;, + -0.495011;0.005426;-0.868870;, + 0.000714;-1.000000;0.000004;, + 0.000754;-1.000000;0.000074;, + 0.000795;-1.000000;0.000003;, + -0.000137;-1.000000;-0.000001;, + -0.000137;-1.000000;-0.000001;, + -0.000137;-1.000000;-0.000001;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -0.004345;0.000002;0.999991;, + -0.004342;0.000011;0.999991;, + -0.004342;0.000034;0.999991;, + -0.004314;0.000070;0.999991;, + -0.683455;-0.720064;0.119989;, + -0.523046;-0.835949;0.166166;, + -0.619653;-0.774942;0.124481;, + 0.557779;-0.813173;0.166227;, + 0.610929;-0.781393;0.127243;, + 0.706154;-0.678526;0.202358;, + 0.960414;-0.254371;0.113579;, + -0.960208;-0.260576;0.100499;, + -0.966717;-0.237158;0.095995;, + -0.716627;-0.688626;0.110636;, + -0.561145;-0.821239;0.103355;, + 0.562520;-0.819705;0.107955;, + 0.562807;-0.819495;0.108060;, + 0.717203;-0.688728;0.106176;, + 0.710911;-0.695780;0.102452;, + 0.967735;-0.229156;0.104768;, + 0.967551;-0.230106;0.104390;, + -0.720116;-0.692620;-0.041362;, + -0.563209;-0.825195;-0.042991;, + -0.563508;-0.824988;-0.043049;, + 0.566152;-0.823425;-0.037989;, + -0.970355;-0.238195;-0.040906;, + -0.970074;-0.239380;-0.040658;, + -0.718221;-0.694618;-0.040798;, + 0.561686;-0.826516;-0.037165;, + 0.714510;-0.698707;-0.035830;, + 0.721284;-0.691816;-0.033777;, + 0.972359;-0.231111;-0.033252;, + 0.971226;-0.235691;-0.034214;, + -0.942976;-0.232904;-0.237807;, + -0.942471;-0.235750;-0.237002;, + -0.696299;-0.674291;-0.245967;, + -0.700785;-0.668951;-0.247799;, + -0.544002;-0.797828;-0.259869;, + -0.547077;-0.795552;-0.260391;, + 0.543749;-0.798708;-0.257687;, + 0.544508;-0.798291;-0.257377;, + 0.700827;-0.671330;-0.241158;, + 0.698935;-0.673006;-0.241977;, + 0.946016;-0.229356;-0.229021;, + 0.946433;-0.228049;-0.228602;, + -0.906991;-0.227013;-0.354729;, + -0.671475;-0.641515;-0.370919;, + -0.520971;-0.758499;-0.391495;, + 0.520424;-0.762103;-0.385172;, + 0.671474;-0.646020;-0.363017;, + 0.913083;-0.219883;-0.343412;, + -0.000004;1.000000;0.000830;, + -0.000004;1.000000;0.000830;, + -0.000015;0.999994;0.003533;, + -0.000015;0.999994;0.003533;, + -0.000008;0.999999;0.001721;, + -0.000013;0.999998;0.001729;, + 0.000021;0.999981;-0.006206;, + 0.000036;0.999981;-0.006225;, + 0.000017;0.999998;-0.001809;, + 0.000022;0.999998;-0.001815;, + -0.005151;-0.999979;-0.003819;, + 0.000007;0.999998;0.001817;, + 0.005151;0.999987;-0.000123;, + 0.000970;0.982950;-0.183868;, + 0.003546;0.983261;-0.182169;, + 0.000010;1.000000;0.000000;, + 0.000000;1.000000;-0.000006;, + -0.002731;0.989421;0.145048;, + -0.000629;0.989596;0.143874;, + 0.004464;0.515185;-0.857068;, + 0.004170;0.515867;-0.856659;, + -0.883352;0.453618;-0.117986;, + -0.773075;0.633068;-0.039754;, + -0.886820;0.462043;-0.008193;, + -0.889609;0.456591;-0.010982;, + -0.806420;0.580034;0.115101;, + -0.885418;0.461161;0.058004;, + -0.004369;-0.000022;0.999991;, + -0.004363;-0.000003;0.999990;, + 0.880620;0.459042;0.117421;, + 0.818943;0.569055;0.074217;, + 0.898096;0.439592;-0.013517;, + 0.886621;0.461847;-0.024497;, + 0.748199;0.648245;-0.141340;, + 0.897554;0.439275;-0.037873;, + 0.000008;-1.000000;0.000008;, + -0.000008;-1.000000;-0.000008;, + -0.000008;-1.000000;0.000007;, + -0.000015;-1.000000;0.000000;, + -0.000015;-1.000000;0.000007;, + 0.000010;-1.000000;-0.000016;; + + 194; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;; + } # MeshNormals + MeshTextureCoords { + 582; + 0.055118;0.984252;, + 0.078740;0.755906;, + 0.078740;0.519685;, + 0.055118;0.984252;, + 0.078740;0.519685;, + 0.015748;0.007874;, + 0.055118;0.984252;, + 0.015748;0.007874;, + 0.251969;0.055118;, + 0.055118;0.984252;, + 0.251969;0.055118;, + 0.440945;0.118110;, + 0.055118;0.984252;, + 0.440945;0.118110;, + 0.598425;0.181102;, + 0.055118;0.984252;, + 0.598425;0.181102;, + 0.771654;0.307087;, + 0.055118;0.984252;, + 0.771654;0.307087;, + 0.874016;0.440945;, + 0.055118;0.984252;, + 0.874016;0.440945;, + 0.952756;0.622047;, + 0.055118;0.984252;, + 0.952756;0.622047;, + 0.976378;0.779528;, + 0.055118;0.984252;, + 0.976378;0.779528;, + 0.976378;0.952756;, + 0.055118;0.984252;, + 0.976378;0.952756;, + 0.968504;0.984252;, + 0.055118;0.984252;, + 0.968504;0.984252;, + 0.976378;0.952756;, + 0.055118;0.984252;, + 0.976378;0.952756;, + 0.976378;0.779528;, + 0.055118;0.984252;, + 0.976378;0.779528;, + 0.952756;0.622047;, + 0.055118;0.984252;, + 0.952756;0.622047;, + 0.874016;0.440945;, + 0.055118;0.984252;, + 0.874016;0.440945;, + 0.771654;0.307087;, + 0.055118;0.984252;, + 0.771654;0.307087;, + 0.598425;0.181102;, + 0.055118;0.984252;, + 0.598425;0.181102;, + 0.440945;0.118110;, + 0.055118;0.984252;, + 0.440945;0.118110;, + 0.251969;0.055118;, + 0.055118;0.984252;, + 0.251969;0.055118;, + 0.015748;0.007874;, + 0.055118;0.984252;, + 0.015748;0.007874;, + 0.078740;0.519685;, + 0.055118;0.984252;, + 0.078740;0.519685;, + 0.078740;0.755906;, + 0.968504;0.984252;, + 0.968504;0.015748;, + 0.708661;0.188976;, + 0.968504;0.984252;, + 0.708661;0.188976;, + 0.496063;0.354331;, + 0.968504;0.984252;, + 0.496063;0.354331;, + 0.362205;0.488189;, + 0.968504;0.984252;, + 0.362205;0.488189;, + 0.039370;0.984252;, + 0.968504;0.984252;, + 0.039370;0.984252;, + 0.362205;0.488189;, + 0.968504;0.984252;, + 0.362205;0.488189;, + 0.496063;0.354331;, + 0.968504;0.984252;, + 0.496063;0.354331;, + 0.708661;0.188976;, + 0.968504;0.984252;, + 0.708661;0.188976;, + 0.968504;0.015748;, + 0.999681;0.999984;, + 0.999681;1.000000;, + 0.000000;0.995630;, + 0.000000;0.995630;, + 0.999681;0.999984;, + 0.000000;0.995630;, + 1.000000;0.903748;, + 0.000474;0.899385;, + 0.000000;0.995630;, + 0.999681;1.000000;, + 1.000000;0.903748;, + 0.000000;0.995630;, + 1.000000;0.903741;, + 1.000000;0.903748;, + 0.999681;1.000000;, + 0.999681;0.999984;, + 1.000000;0.903741;, + 0.999681;1.000000;, + 0.000474;0.899385;, + 1.000000;0.903741;, + 0.999681;0.999984;, + 0.000000;0.995630;, + 0.000474;0.899385;, + 0.999681;0.999984;, + 0.000474;0.899385;, + 0.000474;0.899385;, + 0.000000;0.995630;, + 0.000000;0.995630;, + 0.000474;0.899385;, + 0.000000;0.995630;, + 1.000000;0.903741;, + 0.000474;0.899385;, + 0.000474;0.899385;, + 1.000000;0.903748;, + 1.000000;0.903741;, + 0.000474;0.899385;, + 0.999515;1.000000;, + 0.000000;0.995652;, + 0.000000;0.995636;, + 0.999515;1.000000;, + 0.000000;0.995636;, + 0.999515;0.999986;, + 0.999515;1.000000;, + 1.000000;0.903764;, + 0.000496;0.899416;, + 0.999515;1.000000;, + 0.000496;0.899416;, + 0.000000;0.995652;, + 0.000000;0.995652;, + 0.000496;0.899416;, + 0.000496;0.899402;, + 0.000000;0.995652;, + 0.000496;0.899402;, + 0.000000;0.995636;, + 0.000000;0.995636;, + 0.000496;0.899402;, + 1.000000;0.903758;, + 0.000000;0.995636;, + 1.000000;0.903758;, + 0.999515;0.999986;, + 0.999515;0.999986;, + 1.000000;0.903758;, + 1.000000;0.903764;, + 0.999515;0.999986;, + 1.000000;0.903764;, + 0.999515;1.000000;, + 1.000000;0.903764;, + 1.000000;0.903758;, + 0.000496;0.899402;, + 1.000000;0.903764;, + 0.000496;0.899402;, + 0.000496;0.899416;, + 0.000033;0.983429;, + 0.000068;0.987572;, + 0.999998;0.989128;, + 0.000033;0.983429;, + 0.999998;0.989128;, + 0.999979;0.986542;, + 0.000068;0.987572;, + 0.000066;0.995858;, + 1.000000;0.994303;, + 0.000068;0.987572;, + 1.000000;0.994303;, + 0.999998;0.989128;, + 0.000066;0.995858;, + 0.000033;1.000000;, + 0.999980;0.996890;, + 0.000066;0.995858;, + 0.999980;0.996890;, + 1.000000;0.994303;, + 0.000033;1.000000;, + 0.000000;0.995858;, + 0.999961;0.994303;, + 0.000033;1.000000;, + 0.999961;0.994303;, + 0.999980;0.996890;, + 0.000000;0.995858;, + 0.000001;0.987572;, + 0.999962;0.989127;, + 0.000000;0.995858;, + 0.999962;0.989127;, + 0.999961;0.994303;, + 0.000001;0.987572;, + 0.000033;0.983429;, + 0.999979;0.986542;, + 0.000001;0.987572;, + 0.999979;0.986542;, + 0.999962;0.989127;, + 0.000068;0.987572;, + 0.000033;0.983429;, + 0.000033;0.991714;, + 0.000066;0.995858;, + 0.000068;0.987572;, + 0.000033;0.991714;, + 0.000033;1.000000;, + 0.000066;0.995858;, + 0.000033;0.991714;, + 0.000000;0.995858;, + 0.000033;1.000000;, + 0.000033;0.991714;, + 0.000001;0.987572;, + 0.000000;0.995858;, + 0.000033;0.991714;, + 0.000033;0.983429;, + 0.000001;0.987572;, + 0.000033;0.991714;, + 0.999979;0.986542;, + 0.999998;0.989128;, + 0.999979;0.991714;, + 0.999998;0.989128;, + 1.000000;0.994303;, + 0.999979;0.991714;, + 1.000000;0.994303;, + 0.999980;0.996890;, + 0.999979;0.991714;, + 0.999980;0.996890;, + 0.999961;0.994303;, + 0.999979;0.991714;, + 0.999961;0.994303;, + 0.999962;0.989127;, + 0.999979;0.991714;, + 0.999962;0.989127;, + 0.999979;0.986542;, + 0.999979;0.991714;, + 0.000000;1.000000;, + 0.000006;0.994943;, + 1.000000;0.991831;, + 0.000000;1.000000;, + 1.000000;0.991831;, + 1.000000;0.993726;, + 0.000006;0.994943;, + 0.000007;0.984905;, + 1.000000;0.988068;, + 0.000006;0.994943;, + 1.000000;0.988068;, + 1.000000;0.991831;, + 0.000007;0.984905;, + 0.000000;0.979924;, + 1.000000;0.986201;, + 0.000007;0.984905;, + 1.000000;0.986201;, + 1.000000;0.988068;, + 0.000000;0.979924;, + 0.000001;0.984980;, + 1.000000;0.988096;, + 0.000000;0.979924;, + 1.000000;0.988096;, + 1.000000;0.986201;, + 0.000001;0.984980;, + 0.000001;0.995020;, + 1.000000;0.991860;, + 0.000001;0.984980;, + 1.000000;0.991860;, + 1.000000;0.988096;, + 0.000001;0.995020;, + 0.000000;1.000000;, + 1.000000;0.993726;, + 0.000001;0.995020;, + 1.000000;0.993726;, + 1.000000;0.991860;, + 0.000006;0.994943;, + 0.000000;1.000000;, + 0.000000;0.989963;, + 0.000007;0.984905;, + 0.000006;0.994943;, + 0.000000;0.989963;, + 0.000000;0.979924;, + 0.000007;0.984905;, + 0.000000;0.989963;, + 0.000001;0.984980;, + 0.000000;0.979924;, + 0.000000;0.989963;, + 0.000001;0.995020;, + 0.000001;0.984980;, + 0.000000;0.989963;, + 0.000000;1.000000;, + 0.000001;0.995020;, + 0.000000;0.989963;, + 1.000000;0.993726;, + 1.000000;0.991831;, + 1.000000;0.989963;, + 1.000000;0.991831;, + 1.000000;0.988068;, + 1.000000;0.989963;, + 1.000000;0.988068;, + 1.000000;0.986201;, + 1.000000;0.989963;, + 1.000000;0.986201;, + 1.000000;0.988096;, + 1.000000;0.989963;, + 1.000000;0.988096;, + 1.000000;0.991860;, + 1.000000;0.989963;, + 1.000000;0.991860;, + 1.000000;0.993726;, + 1.000000;0.989963;, + 0.999278;0.797612;, + 1.000000;0.963739;, + 0.999949;0.951927;, + 0.999331;0.809727;, + 0.999278;0.797612;, + 0.999949;0.951927;, + 0.999331;0.809727;, + 0.999949;0.951927;, + 0.999641;0.880709;, + 0.999485;0.844891;, + 0.999331;0.809727;, + 0.999641;0.880709;, + 0.999331;0.809727;, + 0.999485;0.844891;, + 0.665913;0.831499;, + 0.999485;0.844891;, + 0.999641;0.880709;, + 0.832895;0.881426;, + 0.999485;0.844891;, + 0.832895;0.881426;, + 0.665913;0.831499;, + 0.999641;0.880709;, + 0.833084;0.924750;, + 0.832895;0.881426;, + 0.999641;0.880709;, + 0.999949;0.951927;, + 0.833271;0.967720;, + 0.999641;0.880709;, + 0.833271;0.967720;, + 0.833084;0.924750;, + 0.999949;0.951927;, + 1.000000;0.963739;, + 0.833271;0.967720;, + 0.999278;0.797612;, + 0.999331;0.809727;, + 0.665694;0.781336;, + 0.999278;0.797612;, + 0.665694;0.781336;, + 0.665621;0.764302;, + 0.999331;0.809727;, + 0.665913;0.831499;, + 0.665694;0.781336;, + 0.665913;0.831499;, + 0.832895;0.881426;, + 0.666133;0.882157;, + 0.832895;0.881426;, + 0.833084;0.924750;, + 0.666355;0.932477;, + 0.832895;0.881426;, + 0.666355;0.932477;, + 0.666133;0.882157;, + 0.833084;0.924750;, + 0.833271;0.967720;, + 0.666579;0.983501;, + 0.833084;0.924750;, + 0.666579;0.983501;, + 0.666355;0.932477;, + 0.833271;0.967720;, + 1.000000;0.963739;, + 0.666648;1.000000;, + 0.833271;0.967720;, + 0.666648;1.000000;, + 0.666579;0.983501;, + 0.665694;0.781336;, + 0.665913;0.831499;, + 0.333006;0.838533;, + 0.665913;0.831499;, + 0.666133;0.882157;, + 0.333203;0.883606;, + 0.665913;0.831499;, + 0.333203;0.883606;, + 0.333006;0.838533;, + 0.666133;0.882157;, + 0.666355;0.932477;, + 0.333203;0.883606;, + 0.665621;0.764302;, + 0.665694;0.781336;, + 0.332810;0.793710;, + 0.665621;0.764302;, + 0.332810;0.793710;, + 0.332744;0.778438;, + 0.665694;0.781336;, + 0.333006;0.838533;, + 0.332810;0.793710;, + 0.333203;0.883606;, + 0.666355;0.932477;, + 0.333400;0.928939;, + 0.666355;0.932477;, + 0.666579;0.983501;, + 0.333592;0.973411;, + 0.666355;0.932477;, + 0.333592;0.973411;, + 0.333400;0.928939;, + 0.666579;0.983501;, + 0.666648;1.000000;, + 0.333661;0.988434;, + 0.666579;0.983501;, + 0.333661;0.988434;, + 0.333592;0.973411;, + 0.332744;0.778438;, + 0.332810;0.793710;, + 0.166206;0.829828;, + 0.332744;0.778438;, + 0.166206;0.829828;, + 0.166165;0.820403;, + 0.332810;0.793710;, + 0.333006;0.838533;, + 0.166320;0.856639;, + 0.332810;0.793710;, + 0.166320;0.856639;, + 0.166206;0.829828;, + 0.333006;0.838533;, + 0.333203;0.883606;, + 0.166440;0.884011;, + 0.333006;0.838533;, + 0.166440;0.884011;, + 0.166320;0.856639;, + 0.333203;0.883606;, + 0.333400;0.928939;, + 0.166559;0.911722;, + 0.333203;0.883606;, + 0.166559;0.911722;, + 0.166440;0.884011;, + 0.333400;0.928939;, + 0.333592;0.973411;, + 0.166676;0.938848;, + 0.333400;0.928939;, + 0.166676;0.938848;, + 0.166559;0.911722;, + 0.333592;0.973411;, + 0.333661;0.988434;, + 0.166716;0.947945;, + 0.333592;0.973411;, + 0.166716;0.947945;, + 0.166676;0.938848;, + 0.166165;0.820403;, + 0.166206;0.829828;, + 0.000000;0.885316;, + 0.166206;0.829828;, + 0.166320;0.856639;, + 0.000000;0.885316;, + 0.166320;0.856639;, + 0.166440;0.884011;, + 0.000000;0.885316;, + 0.166440;0.884011;, + 0.166559;0.911722;, + 0.000000;0.885316;, + 0.166559;0.911722;, + 0.166676;0.938848;, + 0.000000;0.885316;, + 0.166676;0.938848;, + 0.166716;0.947945;, + 0.000000;0.885316;, + 0.000000;0.147733;, + 0.000000;0.852550;, + 0.166804;0.927760;, + 0.000000;0.147733;, + 0.166804;0.927760;, + 0.166804;0.070060;, + 0.166804;0.070060;, + 0.166804;0.927760;, + 0.333626;1.000000;, + 0.166804;0.070060;, + 0.333626;1.000000;, + 0.333626;0.000000;, + 0.333626;0.000000;, + 0.333626;1.000000;, + 0.499873;0.987556;, + 0.333626;0.000000;, + 0.499873;0.987556;, + 0.499873;0.013811;, + 0.499873;0.013811;, + 0.499873;0.987556;, + 0.666677;0.946197;, + 0.499873;0.013811;, + 0.666677;0.946197;, + 0.666677;0.055269;, + 0.666677;0.055269;, + 0.666677;0.946197;, + 0.833499;0.771214;, + 0.666677;0.055269;, + 0.833499;0.771214;, + 0.833499;0.230151;, + 0.833499;0.771214;, + 1.000000;0.498921;, + 1.000000;0.499994;, + 0.833499;0.230151;, + 0.833499;0.771214;, + 1.000000;0.499994;, + 0.833499;0.230151;, + 1.000000;0.499994;, + 1.000000;0.498921;, + 0.665542;0.799429;, + 0.953451;0.772000;, + 0.953296;0.241707;, + 0.665542;0.799429;, + 0.953296;0.241707;, + 0.662474;0.214281;, + 0.337371;0.804000;, + 0.665542;0.799429;, + 0.662474;0.214281;, + 0.337371;0.804000;, + 0.662474;0.214281;, + 0.334304;0.195994;, + 0.337371;0.804000;, + 0.334304;0.195994;, + 0.000000;0.246279;, + 0.337371;0.804000;, + 0.000000;0.246279;, + 0.000000;0.762859;, + 0.953296;0.241707;, + 0.953451;0.772000;, + 1.000000;0.947368;, + 0.953296;0.241707;, + 1.000000;0.947368;, + 0.999846;0.075186;, + 0.953451;0.772000;, + 0.665542;0.799429;, + 0.665542;0.992481;, + 0.953451;0.772000;, + 0.665542;0.992481;, + 1.000000;0.947368;, + 0.665542;0.799429;, + 0.337371;0.804000;, + 0.337371;1.000000;, + 0.665542;0.799429;, + 0.337371;1.000000;, + 0.665542;0.992481;, + 0.337371;0.804000;, + 0.000000;0.762859;, + 0.000000;0.932332;, + 0.337371;0.804000;, + 0.000000;0.932332;, + 0.337371;1.000000;, + 0.000000;0.762859;, + 0.000000;0.246279;, + 0.000000;0.082706;, + 0.000000;0.762859;, + 0.000000;0.082706;, + 0.000000;0.932332;, + 0.000000;0.246279;, + 0.334304;0.195994;, + 0.334304;-0.000001;, + 0.000000;0.246279;, + 0.334304;-0.000001;, + 0.000000;0.082706;, + 0.334304;0.195994;, + 0.662474;0.214281;, + 0.662474;0.030073;, + 0.334304;0.195994;, + 0.662474;0.030073;, + 0.334304;-0.000001;, + 0.662474;0.214281;, + 0.953296;0.241707;, + 0.999846;0.075186;, + 0.662474;0.214281;, + 0.999846;0.075186;, + 0.662474;0.030073;, + 0.999846;0.075186;, + 1.000000;0.947368;, + 0.665542;0.992481;, + 0.662474;0.030073;, + 0.999846;0.075186;, + 0.665542;0.992481;, + 0.662474;0.030073;, + 0.665542;0.992481;, + 0.337371;1.000000;, + 0.334304;-0.000001;, + 0.662474;0.030073;, + 0.337371;1.000000;, + 0.000000;0.082706;, + 0.334304;-0.000001;, + 0.337371;1.000000;, + 0.000000;0.932332;, + 0.000000;0.082706;, + 0.337371;1.000000;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SCOOPS.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SCOOPS.X new file mode 100644 index 0000000..ba3856b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SCOOPS.X @@ -0,0 +1,3891 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 1116; + 0.233121;0.103044;0.039212;, + 0.223904;0.093827;0.039212;, + 0.201652;0.103044;0.039212;, + 0.233121;0.103044;0.039212;, + 0.201652;0.103044;0.039212;, + 0.210869;0.125295;0.039212;, + 0.233121;0.103044;0.039212;, + 0.210869;0.125295;0.039212;, + 0.233121;0.116079;0.039212;, + 0.233121;0.103044;0.039212;, + 0.246460;0.097519;0.029565;, + 0.229429;0.080488;0.029565;, + 0.233121;0.103044;0.039212;, + 0.229429;0.080488;0.029565;, + 0.223904;0.093827;0.039212;, + 0.223904;0.093827;0.039212;, + 0.229429;0.080488;0.029565;, + 0.195135;0.087310;0.029565;, + 0.223904;0.093827;0.039212;, + 0.195135;0.087310;0.029565;, + 0.201652;0.103044;0.039212;, + 0.201652;0.103044;0.039212;, + 0.195135;0.087310;0.029565;, + 0.188313;0.121604;0.029565;, + 0.201652;0.103044;0.039212;, + 0.188313;0.121604;0.029565;, + 0.210869;0.125295;0.039212;, + 0.210869;0.125295;0.039212;, + 0.188313;0.121604;0.029565;, + 0.217387;0.141030;0.029565;, + 0.210869;0.125295;0.039212;, + 0.217387;0.141030;0.029565;, + 0.233121;0.116079;0.039212;, + 0.233121;0.116079;0.039212;, + 0.217387;0.141030;0.029565;, + 0.246460;0.121604;0.029565;, + 0.233121;0.116079;0.039212;, + 0.246460;0.121604;0.029565;, + 0.246460;0.097519;0.029565;, + 0.233121;0.116079;0.039212;, + 0.246460;0.097519;0.029565;, + 0.233121;0.103044;0.039212;, + 0.246460;0.097519;0.029565;, + 0.258502;0.109561;0.015127;, + 0.255373;0.093827;0.015127;, + 0.246460;0.097519;0.029565;, + 0.255373;0.093827;0.015127;, + 0.246460;0.080488;0.015127;, + 0.246460;0.097519;0.029565;, + 0.246460;0.080488;0.015127;, + 0.233121;0.071575;0.015127;, + 0.246460;0.097519;0.029565;, + 0.233121;0.071575;0.015127;, + 0.229429;0.080488;0.029565;, + 0.229429;0.080488;0.029565;, + 0.233121;0.071575;0.015127;, + 0.217387;0.068446;0.015127;, + 0.229429;0.080488;0.029565;, + 0.217387;0.068446;0.015127;, + 0.201652;0.071575;0.015127;, + 0.229429;0.080488;0.029565;, + 0.201652;0.071575;0.015127;, + 0.195135;0.087310;0.029565;, + 0.195135;0.087310;0.029565;, + 0.201652;0.071575;0.015127;, + 0.188313;0.080488;0.015127;, + 0.195135;0.087310;0.029565;, + 0.188313;0.080488;0.015127;, + 0.179401;0.093827;0.015127;, + 0.195135;0.087310;0.029565;, + 0.179401;0.093827;0.015127;, + 0.176271;0.109561;0.015127;, + 0.195135;0.087310;0.029565;, + 0.176271;0.109561;0.015127;, + 0.188313;0.121604;0.029565;, + 0.188313;0.121604;0.029565;, + 0.176271;0.109561;0.015127;, + 0.179401;0.125296;0.015127;, + 0.188313;0.121604;0.029565;, + 0.179401;0.125296;0.015127;, + 0.188313;0.138634;0.015127;, + 0.188313;0.121604;0.029565;, + 0.188313;0.138634;0.015127;, + 0.201652;0.147547;0.015127;, + 0.188313;0.121604;0.029565;, + 0.201652;0.147547;0.015127;, + 0.217387;0.141030;0.029565;, + 0.217387;0.141030;0.029565;, + 0.201652;0.147547;0.015127;, + 0.217387;0.150677;0.015127;, + 0.217387;0.141030;0.029565;, + 0.217387;0.150677;0.015127;, + 0.233121;0.147547;0.015127;, + 0.217387;0.141030;0.029565;, + 0.233121;0.147547;0.015127;, + 0.246460;0.138634;0.015127;, + 0.217387;0.141030;0.029565;, + 0.246460;0.138634;0.015127;, + 0.246460;0.121604;0.029565;, + 0.246460;0.121604;0.029565;, + 0.246460;0.138634;0.015127;, + 0.255373;0.125295;0.015127;, + 0.246460;0.121604;0.029565;, + 0.255373;0.125295;0.015127;, + 0.258502;0.109561;0.015127;, + 0.246460;0.121604;0.029565;, + 0.258502;0.109561;0.015127;, + 0.246460;0.097519;0.029565;, + 0.258502;0.109561;0.015127;, + 0.261890;0.109561;-0.001903;, + 0.258502;0.092531;-0.001903;, + 0.258502;0.109561;0.015127;, + 0.258502;0.092531;-0.001903;, + 0.255373;0.093827;0.015127;, + 0.255373;0.093827;0.015127;, + 0.258502;0.092531;-0.001903;, + 0.248855;0.078093;-0.001903;, + 0.255373;0.093827;0.015127;, + 0.248855;0.078093;-0.001903;, + 0.246460;0.080488;0.015127;, + 0.246460;0.080488;0.015127;, + 0.248855;0.078093;-0.001903;, + 0.234417;0.068446;-0.001903;, + 0.246460;0.080488;0.015127;, + 0.234417;0.068446;-0.001903;, + 0.233121;0.071575;0.015127;, + 0.233121;0.071575;0.015127;, + 0.234417;0.068446;-0.001903;, + 0.217387;0.065058;-0.001903;, + 0.233121;0.071575;0.015127;, + 0.217387;0.065058;-0.001903;, + 0.217387;0.068446;0.015127;, + 0.217387;0.068446;0.015127;, + 0.217387;0.065058;-0.001903;, + 0.200356;0.068446;-0.001903;, + 0.217387;0.068446;0.015127;, + 0.200356;0.068446;-0.001903;, + 0.201652;0.071575;0.015127;, + 0.201652;0.071575;0.015127;, + 0.200356;0.068446;-0.001903;, + 0.185918;0.078093;-0.001903;, + 0.201652;0.071575;0.015127;, + 0.185918;0.078093;-0.001903;, + 0.188313;0.080488;0.015127;, + 0.188313;0.080488;0.015127;, + 0.185918;0.078093;-0.001903;, + 0.176271;0.092531;-0.001903;, + 0.188313;0.080488;0.015127;, + 0.176271;0.092531;-0.001903;, + 0.179401;0.093827;0.015127;, + 0.179401;0.093827;0.015127;, + 0.176271;0.092531;-0.001903;, + 0.172883;0.109561;-0.001903;, + 0.179401;0.093827;0.015127;, + 0.172883;0.109561;-0.001903;, + 0.176271;0.109561;0.015127;, + 0.176271;0.109561;0.015127;, + 0.172883;0.109561;-0.001903;, + 0.176271;0.126592;-0.001903;, + 0.176271;0.109561;0.015127;, + 0.176271;0.126592;-0.001903;, + 0.179401;0.125296;0.015127;, + 0.179401;0.125296;0.015127;, + 0.176271;0.126592;-0.001903;, + 0.185918;0.141030;-0.001903;, + 0.179401;0.125296;0.015127;, + 0.185918;0.141030;-0.001903;, + 0.188313;0.138634;0.015127;, + 0.188313;0.138634;0.015127;, + 0.185918;0.141030;-0.001903;, + 0.200356;0.150677;-0.001903;, + 0.188313;0.138634;0.015127;, + 0.200356;0.150677;-0.001903;, + 0.201652;0.147547;0.015127;, + 0.201652;0.147547;0.015127;, + 0.200356;0.150677;-0.001903;, + 0.217387;0.154064;-0.001903;, + 0.201652;0.147547;0.015127;, + 0.217387;0.154064;-0.001903;, + 0.217387;0.150677;0.015127;, + 0.217387;0.150677;0.015127;, + 0.217387;0.154064;-0.001903;, + 0.234417;0.150677;-0.001903;, + 0.217387;0.150677;0.015127;, + 0.234417;0.150677;-0.001903;, + 0.233121;0.147547;0.015127;, + 0.233121;0.147547;0.015127;, + 0.234417;0.150677;-0.001903;, + 0.248855;0.141030;-0.001903;, + 0.233121;0.147547;0.015127;, + 0.248855;0.141030;-0.001903;, + 0.246460;0.138634;0.015127;, + 0.246460;0.138634;0.015127;, + 0.248855;0.141030;-0.001903;, + 0.258502;0.126592;-0.001903;, + 0.246460;0.138634;0.015127;, + 0.258502;0.126592;-0.001903;, + 0.255373;0.125295;0.015127;, + 0.255373;0.125295;0.015127;, + 0.258502;0.126592;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.255373;0.125295;0.015127;, + 0.261890;0.109561;-0.001903;, + 0.258502;0.109561;0.015127;, + 0.261890;0.109561;-0.001903;, + 0.248855;0.078093;-0.001903;, + 0.258502;0.092531;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.234417;0.068446;-0.001903;, + 0.248855;0.078093;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.217387;0.065058;-0.001903;, + 0.234417;0.068446;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.200356;0.068446;-0.001903;, + 0.217387;0.065058;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.185918;0.078093;-0.001903;, + 0.200356;0.068446;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.176271;0.092531;-0.001903;, + 0.185918;0.078093;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.172883;0.109561;-0.001903;, + 0.176271;0.092531;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.176271;0.126592;-0.001903;, + 0.172883;0.109561;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.185918;0.141030;-0.001903;, + 0.176271;0.126592;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.200356;0.150677;-0.001903;, + 0.185918;0.141030;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.217387;0.154064;-0.001903;, + 0.200356;0.150677;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.234417;0.150677;-0.001903;, + 0.217387;0.154064;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.248855;0.141030;-0.001903;, + 0.234417;0.150677;-0.001903;, + 0.261890;0.109561;-0.001903;, + 0.258502;0.126592;-0.001903;, + 0.248855;0.141030;-0.001903;, + 0.039205;0.103044;-0.232443;, + 0.039205;0.093827;-0.223226;, + 0.039205;0.103044;-0.200975;, + 0.039205;0.103044;-0.232443;, + 0.039205;0.103044;-0.200975;, + 0.039205;0.125295;-0.210192;, + 0.039205;0.103044;-0.232443;, + 0.039205;0.125295;-0.210192;, + 0.039205;0.116079;-0.232443;, + 0.039205;0.103044;-0.232443;, + 0.029558;0.097519;-0.245782;, + 0.029558;0.080488;-0.228751;, + 0.039205;0.103044;-0.232443;, + 0.029558;0.080488;-0.228751;, + 0.039205;0.093827;-0.223226;, + 0.039205;0.093827;-0.223226;, + 0.029558;0.080488;-0.228751;, + 0.029558;0.087310;-0.194457;, + 0.039205;0.093827;-0.223226;, + 0.029558;0.087310;-0.194457;, + 0.039205;0.103044;-0.200975;, + 0.039205;0.103044;-0.200975;, + 0.029558;0.087310;-0.194457;, + 0.029558;0.121604;-0.187636;, + 0.039205;0.103044;-0.200975;, + 0.029558;0.121604;-0.187636;, + 0.039205;0.125295;-0.210192;, + 0.039205;0.125295;-0.210192;, + 0.029558;0.121604;-0.187636;, + 0.029558;0.141030;-0.216709;, + 0.039205;0.125295;-0.210192;, + 0.029558;0.141030;-0.216709;, + 0.039205;0.116079;-0.232443;, + 0.039205;0.116079;-0.232443;, + 0.029558;0.141030;-0.216709;, + 0.029558;0.121604;-0.245782;, + 0.039205;0.116079;-0.232443;, + 0.029558;0.121604;-0.245782;, + 0.029558;0.097519;-0.245782;, + 0.039205;0.116079;-0.232443;, + 0.029558;0.097519;-0.245782;, + 0.039205;0.103044;-0.232443;, + 0.029558;0.097519;-0.245782;, + 0.015120;0.109561;-0.257825;, + 0.015120;0.093827;-0.254695;, + 0.029558;0.097519;-0.245782;, + 0.015120;0.093827;-0.254695;, + 0.015120;0.080488;-0.245782;, + 0.029558;0.097519;-0.245782;, + 0.015120;0.080488;-0.245782;, + 0.015120;0.071575;-0.232443;, + 0.029558;0.097519;-0.245782;, + 0.015120;0.071575;-0.232443;, + 0.029558;0.080488;-0.228751;, + 0.029558;0.080488;-0.228751;, + 0.015120;0.071575;-0.232443;, + 0.015120;0.068446;-0.216709;, + 0.029558;0.080488;-0.228751;, + 0.015120;0.068446;-0.216709;, + 0.015120;0.071575;-0.200975;, + 0.029558;0.080488;-0.228751;, + 0.015120;0.071575;-0.200975;, + 0.029558;0.087310;-0.194457;, + 0.029558;0.087310;-0.194457;, + 0.015120;0.071575;-0.200975;, + 0.015120;0.080488;-0.187636;, + 0.029558;0.087310;-0.194457;, + 0.015120;0.080488;-0.187636;, + 0.015120;0.093827;-0.178723;, + 0.029558;0.087310;-0.194457;, + 0.015120;0.093827;-0.178723;, + 0.015120;0.109561;-0.175593;, + 0.029558;0.087310;-0.194457;, + 0.015120;0.109561;-0.175593;, + 0.029558;0.121604;-0.187636;, + 0.029558;0.121604;-0.187636;, + 0.015120;0.109561;-0.175593;, + 0.015120;0.125295;-0.178723;, + 0.029558;0.121604;-0.187636;, + 0.015120;0.125295;-0.178723;, + 0.015120;0.138634;-0.187636;, + 0.029558;0.121604;-0.187636;, + 0.015120;0.138634;-0.187636;, + 0.015120;0.147547;-0.200975;, + 0.029558;0.121604;-0.187636;, + 0.015120;0.147547;-0.200975;, + 0.029558;0.141030;-0.216709;, + 0.029558;0.141030;-0.216709;, + 0.015120;0.147547;-0.200975;, + 0.015120;0.150677;-0.216709;, + 0.029558;0.141030;-0.216709;, + 0.015120;0.150677;-0.216709;, + 0.015120;0.147547;-0.232443;, + 0.029558;0.141030;-0.216709;, + 0.015120;0.147547;-0.232443;, + 0.015120;0.138634;-0.245782;, + 0.029558;0.141030;-0.216709;, + 0.015120;0.138634;-0.245782;, + 0.029558;0.121604;-0.245782;, + 0.029558;0.121604;-0.245782;, + 0.015120;0.138634;-0.245782;, + 0.015120;0.125295;-0.254695;, + 0.029558;0.121604;-0.245782;, + 0.015120;0.125295;-0.254695;, + 0.015120;0.109561;-0.257825;, + 0.029558;0.121604;-0.245782;, + 0.015120;0.109561;-0.257825;, + 0.029558;0.097519;-0.245782;, + 0.015120;0.109561;-0.257825;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.092531;-0.257825;, + 0.015120;0.109561;-0.257825;, + -0.001910;0.092531;-0.257825;, + 0.015120;0.093827;-0.254695;, + 0.015120;0.093827;-0.254695;, + -0.001910;0.092531;-0.257825;, + -0.001910;0.078093;-0.248177;, + 0.015120;0.093827;-0.254695;, + -0.001910;0.078093;-0.248177;, + 0.015120;0.080488;-0.245782;, + 0.015120;0.080488;-0.245782;, + -0.001910;0.078093;-0.248177;, + -0.001910;0.068446;-0.233740;, + 0.015120;0.080488;-0.245782;, + -0.001910;0.068446;-0.233740;, + 0.015120;0.071575;-0.232443;, + 0.015120;0.071575;-0.232443;, + -0.001910;0.068446;-0.233740;, + -0.001910;0.065058;-0.216709;, + 0.015120;0.071575;-0.232443;, + -0.001910;0.065058;-0.216709;, + 0.015120;0.068446;-0.216709;, + 0.015120;0.068446;-0.216709;, + -0.001910;0.065058;-0.216709;, + -0.001910;0.068446;-0.199678;, + 0.015120;0.068446;-0.216709;, + -0.001910;0.068446;-0.199678;, + 0.015120;0.071575;-0.200975;, + 0.015120;0.071575;-0.200975;, + -0.001910;0.068446;-0.199678;, + -0.001910;0.078093;-0.185240;, + 0.015120;0.071575;-0.200975;, + -0.001910;0.078093;-0.185240;, + 0.015120;0.080488;-0.187636;, + 0.015120;0.080488;-0.187636;, + -0.001910;0.078093;-0.185240;, + -0.001910;0.092531;-0.175593;, + 0.015120;0.080488;-0.187636;, + -0.001910;0.092531;-0.175593;, + 0.015120;0.093827;-0.178723;, + 0.015120;0.093827;-0.178723;, + -0.001910;0.092531;-0.175593;, + -0.001910;0.109561;-0.172206;, + 0.015120;0.093827;-0.178723;, + -0.001910;0.109561;-0.172206;, + 0.015120;0.109561;-0.175593;, + 0.015120;0.109561;-0.175593;, + -0.001910;0.109561;-0.172206;, + -0.001910;0.126592;-0.175593;, + 0.015120;0.109561;-0.175593;, + -0.001910;0.126592;-0.175593;, + 0.015120;0.125295;-0.178723;, + 0.015120;0.125295;-0.178723;, + -0.001910;0.126592;-0.175593;, + -0.001910;0.141030;-0.185240;, + 0.015120;0.125295;-0.178723;, + -0.001910;0.141030;-0.185240;, + 0.015120;0.138634;-0.187636;, + 0.015120;0.138634;-0.187636;, + -0.001910;0.141030;-0.185240;, + -0.001910;0.150677;-0.199678;, + 0.015120;0.138634;-0.187636;, + -0.001910;0.150677;-0.199678;, + 0.015120;0.147547;-0.200975;, + 0.015120;0.147547;-0.200975;, + -0.001910;0.150677;-0.199678;, + -0.001910;0.154064;-0.216709;, + 0.015120;0.147547;-0.200975;, + -0.001910;0.154064;-0.216709;, + 0.015120;0.150677;-0.216709;, + 0.015120;0.150677;-0.216709;, + -0.001910;0.154064;-0.216709;, + -0.001910;0.150677;-0.233740;, + 0.015120;0.150677;-0.216709;, + -0.001910;0.150677;-0.233740;, + 0.015120;0.147547;-0.232443;, + 0.015120;0.147547;-0.232443;, + -0.001910;0.150677;-0.233740;, + -0.001910;0.141030;-0.248178;, + 0.015120;0.147547;-0.232443;, + -0.001910;0.141030;-0.248178;, + 0.015120;0.138634;-0.245782;, + 0.015120;0.138634;-0.245782;, + -0.001910;0.141030;-0.248178;, + -0.001910;0.126592;-0.257825;, + 0.015120;0.138634;-0.245782;, + -0.001910;0.126592;-0.257825;, + 0.015120;0.125295;-0.254695;, + 0.015120;0.125295;-0.254695;, + -0.001910;0.126592;-0.257825;, + -0.001910;0.109561;-0.261212;, + 0.015120;0.125295;-0.254695;, + -0.001910;0.109561;-0.261212;, + 0.015120;0.109561;-0.257825;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.078093;-0.248177;, + -0.001910;0.092531;-0.257825;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.068446;-0.233740;, + -0.001910;0.078093;-0.248177;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.065058;-0.216709;, + -0.001910;0.068446;-0.233740;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.068446;-0.199678;, + -0.001910;0.065058;-0.216709;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.078093;-0.185240;, + -0.001910;0.068446;-0.199678;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.092531;-0.175593;, + -0.001910;0.078093;-0.185240;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.109561;-0.172206;, + -0.001910;0.092531;-0.175593;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.126592;-0.175593;, + -0.001910;0.109561;-0.172206;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.141030;-0.185240;, + -0.001910;0.126592;-0.175593;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.150677;-0.199678;, + -0.001910;0.141030;-0.185240;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.154064;-0.216709;, + -0.001910;0.150677;-0.199678;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.150677;-0.233740;, + -0.001910;0.154064;-0.216709;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.141030;-0.248178;, + -0.001910;0.150677;-0.233740;, + -0.001910;0.109561;-0.261212;, + -0.001910;0.126592;-0.257825;, + -0.001910;0.141030;-0.248178;, + -0.003709;0.113268;0.000494;, + -0.001768;0.113268;0.003856;, + -0.001768;0.017599;0.003856;, + -0.003709;0.113268;0.000494;, + -0.001768;0.017599;0.003856;, + -0.003709;0.017599;0.000494;, + -0.001768;0.113268;0.003856;, + 0.002114;0.113268;0.003856;, + 0.002114;0.017599;0.003856;, + -0.001768;0.113268;0.003856;, + 0.002114;0.017599;0.003856;, + -0.001768;0.017599;0.003856;, + 0.002114;0.113268;0.003856;, + 0.004055;0.113268;0.000494;, + 0.004055;0.017599;0.000494;, + 0.002114;0.113268;0.003856;, + 0.004055;0.017599;0.000494;, + 0.002114;0.017599;0.003856;, + 0.004055;0.113268;0.000494;, + 0.002114;0.113268;-0.002868;, + 0.002114;0.017599;-0.002868;, + 0.004055;0.113268;0.000494;, + 0.002114;0.017599;-0.002868;, + 0.004055;0.017599;0.000494;, + 0.002114;0.113268;-0.002868;, + -0.001768;0.113268;-0.002868;, + -0.001768;0.017599;-0.002868;, + 0.002114;0.113268;-0.002868;, + -0.001768;0.017599;-0.002868;, + 0.002114;0.017599;-0.002868;, + -0.001768;0.113268;-0.002868;, + -0.003709;0.113268;0.000494;, + -0.003709;0.017599;0.000494;, + -0.001768;0.113268;-0.002868;, + -0.003709;0.017599;0.000494;, + -0.001768;0.017599;-0.002868;, + 0.002114;0.113268;0.003856;, + -0.001768;0.113268;0.003856;, + -0.003709;0.113268;0.000494;, + 0.004055;0.113268;0.000494;, + 0.002114;0.113268;0.003856;, + -0.003709;0.113268;0.000494;, + 0.002114;0.113268;-0.002868;, + 0.004055;0.113268;0.000494;, + -0.003709;0.113268;0.000494;, + -0.001768;0.113268;-0.002868;, + 0.002114;0.113268;-0.002868;, + -0.003709;0.113268;0.000494;, + 0.002114;0.017599;0.003856;, + 0.004055;0.017599;0.000494;, + -0.001768;0.017599;0.003856;, + 0.004055;0.017599;0.000494;, + 0.002114;0.017599;-0.002868;, + -0.001768;0.017599;0.003856;, + 0.002114;0.017599;-0.002868;, + -0.001768;0.017599;-0.002868;, + -0.001768;0.017599;0.003856;, + -0.001768;0.017599;-0.002868;, + -0.003709;0.017599;0.000494;, + -0.001768;0.017599;0.003856;, + -0.176953;0.106599;-0.001458;, + -0.176953;0.106599;0.002353;, + 0.176488;0.106599;0.002353;, + -0.176953;0.106599;-0.001458;, + 0.176488;0.106599;0.002353;, + 0.176488;0.106599;-0.001458;, + -0.176953;0.106599;-0.001458;, + -0.176953;0.113268;-0.001458;, + -0.176953;0.113268;0.002353;, + -0.176953;0.106599;-0.001458;, + -0.176953;0.113268;0.002353;, + -0.176953;0.106599;0.002353;, + -0.176953;0.106599;0.002353;, + -0.176953;0.113268;0.002353;, + 0.176488;0.113268;0.002353;, + -0.176953;0.106599;0.002353;, + 0.176488;0.113268;0.002353;, + 0.176488;0.106599;0.002353;, + 0.176488;0.106599;0.002353;, + 0.176488;0.113268;0.002353;, + 0.176488;0.113268;-0.001458;, + 0.176488;0.106599;0.002353;, + 0.176488;0.113268;-0.001458;, + 0.176488;0.106599;-0.001458;, + 0.176488;0.106599;-0.001458;, + 0.176488;0.113268;-0.001458;, + -0.176953;0.113268;-0.001458;, + 0.176488;0.106599;-0.001458;, + -0.176953;0.113268;-0.001458;, + -0.176953;0.106599;-0.001458;, + -0.176953;0.113268;-0.001458;, + 0.176488;0.113268;-0.001458;, + 0.176488;0.113268;0.002353;, + -0.176953;0.113268;-0.001458;, + 0.176488;0.113268;0.002353;, + -0.176953;0.113268;0.002353;, + 0.002136;0.106599;-0.176946;, + -0.001675;0.106599;-0.176946;, + -0.001675;0.106599;0.176495;, + 0.002136;0.106599;-0.176946;, + -0.001675;0.106599;0.176495;, + 0.002136;0.106599;0.176495;, + 0.002136;0.106599;-0.176946;, + 0.002136;0.113268;-0.176946;, + -0.001675;0.113268;-0.176946;, + 0.002136;0.106599;-0.176946;, + -0.001675;0.113268;-0.176946;, + -0.001675;0.106599;-0.176946;, + -0.001675;0.106599;-0.176946;, + -0.001675;0.113268;-0.176946;, + -0.001675;0.113268;0.176494;, + -0.001675;0.106599;-0.176946;, + -0.001675;0.113268;0.176494;, + -0.001675;0.106599;0.176495;, + -0.001675;0.106599;0.176495;, + -0.001675;0.113268;0.176494;, + 0.002136;0.113268;0.176494;, + -0.001675;0.106599;0.176495;, + 0.002136;0.113268;0.176494;, + 0.002136;0.106599;0.176495;, + 0.002136;0.106599;0.176495;, + 0.002136;0.113268;0.176494;, + 0.002136;0.113268;-0.176946;, + 0.002136;0.106599;0.176495;, + 0.002136;0.113268;-0.176946;, + 0.002136;0.106599;-0.176946;, + 0.002136;0.113268;-0.176946;, + 0.002136;0.113268;0.176494;, + -0.001675;0.113268;0.176494;, + 0.002136;0.113268;-0.176946;, + -0.001675;0.113268;0.176494;, + -0.001675;0.113268;-0.176946;, + -0.038535;0.103044;0.233128;, + -0.038535;0.093827;0.223911;, + -0.038535;0.103044;0.201659;, + -0.038535;0.103044;0.233128;, + -0.038535;0.103044;0.201659;, + -0.038535;0.125295;0.210876;, + -0.038535;0.103044;0.233128;, + -0.038535;0.125295;0.210876;, + -0.038535;0.116079;0.233128;, + -0.038535;0.103044;0.233128;, + -0.028888;0.097519;0.246467;, + -0.028888;0.080488;0.229436;, + -0.038535;0.103044;0.233128;, + -0.028888;0.080488;0.229436;, + -0.038535;0.093827;0.223911;, + -0.038535;0.093827;0.223911;, + -0.028888;0.080488;0.229436;, + -0.028888;0.087310;0.195142;, + -0.038535;0.093827;0.223911;, + -0.028888;0.087310;0.195142;, + -0.038535;0.103044;0.201659;, + -0.038535;0.103044;0.201659;, + -0.028888;0.087310;0.195142;, + -0.028888;0.121604;0.188320;, + -0.038535;0.103044;0.201659;, + -0.028888;0.121604;0.188320;, + -0.038535;0.125295;0.210876;, + -0.038535;0.125295;0.210876;, + -0.028888;0.121604;0.188320;, + -0.028888;0.141030;0.217393;, + -0.038535;0.125295;0.210876;, + -0.028888;0.141030;0.217393;, + -0.038535;0.116079;0.233128;, + -0.038535;0.116079;0.233128;, + -0.028888;0.141030;0.217393;, + -0.028888;0.121604;0.246467;, + -0.038535;0.116079;0.233128;, + -0.028888;0.121604;0.246467;, + -0.028888;0.097519;0.246467;, + -0.038535;0.116079;0.233128;, + -0.028888;0.097519;0.246467;, + -0.038535;0.103044;0.233128;, + -0.028888;0.097519;0.246467;, + -0.014450;0.109561;0.258509;, + -0.014450;0.093827;0.255379;, + -0.028888;0.097519;0.246467;, + -0.014450;0.093827;0.255379;, + -0.014450;0.080488;0.246467;, + -0.028888;0.097519;0.246467;, + -0.014450;0.080488;0.246467;, + -0.014450;0.071575;0.233128;, + -0.028888;0.097519;0.246467;, + -0.014450;0.071575;0.233128;, + -0.028888;0.080488;0.229436;, + -0.028888;0.080488;0.229436;, + -0.014450;0.071575;0.233128;, + -0.014450;0.068446;0.217393;, + -0.028888;0.080488;0.229436;, + -0.014450;0.068446;0.217393;, + -0.014450;0.071575;0.201659;, + -0.028888;0.080488;0.229436;, + -0.014450;0.071575;0.201659;, + -0.028888;0.087310;0.195142;, + -0.028888;0.087310;0.195142;, + -0.014450;0.071575;0.201659;, + -0.014450;0.080488;0.188320;, + -0.028888;0.087310;0.195142;, + -0.014450;0.080488;0.188320;, + -0.014450;0.093827;0.179408;, + -0.028888;0.087310;0.195142;, + -0.014450;0.093827;0.179408;, + -0.014450;0.109561;0.176278;, + -0.028888;0.087310;0.195142;, + -0.014450;0.109561;0.176278;, + -0.028888;0.121604;0.188320;, + -0.028888;0.121604;0.188320;, + -0.014450;0.109561;0.176278;, + -0.014450;0.125295;0.179408;, + -0.028888;0.121604;0.188320;, + -0.014450;0.125295;0.179408;, + -0.014450;0.138634;0.188320;, + -0.028888;0.121604;0.188320;, + -0.014450;0.138634;0.188320;, + -0.014450;0.147547;0.201659;, + -0.028888;0.121604;0.188320;, + -0.014450;0.147547;0.201659;, + -0.028888;0.141030;0.217393;, + -0.028888;0.141030;0.217393;, + -0.014450;0.147547;0.201659;, + -0.014450;0.150677;0.217393;, + -0.028888;0.141030;0.217393;, + -0.014450;0.150677;0.217393;, + -0.014450;0.147547;0.233128;, + -0.028888;0.141030;0.217393;, + -0.014450;0.147547;0.233128;, + -0.014450;0.138634;0.246467;, + -0.028888;0.141030;0.217393;, + -0.014450;0.138634;0.246467;, + -0.028888;0.121604;0.246467;, + -0.028888;0.121604;0.246467;, + -0.014450;0.138634;0.246467;, + -0.014450;0.125295;0.255379;, + -0.028888;0.121604;0.246467;, + -0.014450;0.125295;0.255379;, + -0.014450;0.109561;0.258509;, + -0.028888;0.121604;0.246467;, + -0.014450;0.109561;0.258509;, + -0.028888;0.097519;0.246467;, + -0.014450;0.109561;0.258509;, + 0.002581;0.109561;0.261897;, + 0.002581;0.092531;0.258509;, + -0.014450;0.109561;0.258509;, + 0.002581;0.092531;0.258509;, + -0.014450;0.093827;0.255379;, + -0.014450;0.093827;0.255379;, + 0.002581;0.092531;0.258509;, + 0.002581;0.078093;0.248862;, + -0.014450;0.093827;0.255379;, + 0.002581;0.078093;0.248862;, + -0.014450;0.080488;0.246467;, + -0.014450;0.080488;0.246467;, + 0.002581;0.078093;0.248862;, + 0.002581;0.068446;0.234424;, + -0.014450;0.080488;0.246467;, + 0.002581;0.068446;0.234424;, + -0.014450;0.071575;0.233128;, + -0.014450;0.071575;0.233128;, + 0.002581;0.068446;0.234424;, + 0.002581;0.065058;0.217393;, + -0.014450;0.071575;0.233128;, + 0.002581;0.065058;0.217393;, + -0.014450;0.068446;0.217393;, + -0.014450;0.068446;0.217393;, + 0.002581;0.065058;0.217393;, + 0.002581;0.068446;0.200363;, + -0.014450;0.068446;0.217393;, + 0.002581;0.068446;0.200363;, + -0.014450;0.071575;0.201659;, + -0.014450;0.071575;0.201659;, + 0.002581;0.068446;0.200363;, + 0.002581;0.078093;0.185925;, + -0.014450;0.071575;0.201659;, + 0.002581;0.078093;0.185925;, + -0.014450;0.080488;0.188320;, + -0.014450;0.080488;0.188320;, + 0.002581;0.078093;0.185925;, + 0.002581;0.092531;0.176278;, + -0.014450;0.080488;0.188320;, + 0.002581;0.092531;0.176278;, + -0.014450;0.093827;0.179408;, + -0.014450;0.093827;0.179408;, + 0.002581;0.092531;0.176278;, + 0.002581;0.109561;0.172890;, + -0.014450;0.093827;0.179408;, + 0.002581;0.109561;0.172890;, + -0.014450;0.109561;0.176278;, + -0.014450;0.109561;0.176278;, + 0.002581;0.109561;0.172890;, + 0.002581;0.126592;0.176278;, + -0.014450;0.109561;0.176278;, + 0.002581;0.126592;0.176278;, + -0.014450;0.125295;0.179408;, + -0.014450;0.125295;0.179408;, + 0.002581;0.126592;0.176278;, + 0.002581;0.141030;0.185925;, + -0.014450;0.125295;0.179408;, + 0.002581;0.141030;0.185925;, + -0.014450;0.138634;0.188320;, + -0.014450;0.138634;0.188320;, + 0.002581;0.141030;0.185925;, + 0.002581;0.150677;0.200363;, + -0.014450;0.138634;0.188320;, + 0.002581;0.150677;0.200363;, + -0.014450;0.147547;0.201659;, + -0.014450;0.147547;0.201659;, + 0.002581;0.150677;0.200363;, + 0.002581;0.154064;0.217393;, + -0.014450;0.147547;0.201659;, + 0.002581;0.154064;0.217393;, + -0.014450;0.150677;0.217393;, + -0.014450;0.150677;0.217393;, + 0.002581;0.154064;0.217393;, + 0.002581;0.150677;0.234424;, + -0.014450;0.150677;0.217393;, + 0.002581;0.150677;0.234424;, + -0.014450;0.147547;0.233128;, + -0.014450;0.147547;0.233128;, + 0.002581;0.150677;0.234424;, + 0.002581;0.141030;0.248862;, + -0.014450;0.147547;0.233128;, + 0.002581;0.141030;0.248862;, + -0.014450;0.138634;0.246467;, + -0.014450;0.138634;0.246467;, + 0.002581;0.141030;0.248862;, + 0.002581;0.126592;0.258509;, + -0.014450;0.138634;0.246467;, + 0.002581;0.126592;0.258509;, + -0.014450;0.125295;0.255379;, + -0.014450;0.125295;0.255379;, + 0.002581;0.126592;0.258509;, + 0.002581;0.109561;0.261897;, + -0.014450;0.125295;0.255379;, + 0.002581;0.109561;0.261897;, + -0.014450;0.109561;0.258509;, + 0.002581;0.109561;0.261897;, + 0.002581;0.078093;0.248862;, + 0.002581;0.092531;0.258509;, + 0.002581;0.109561;0.261897;, + 0.002581;0.068446;0.234424;, + 0.002581;0.078093;0.248862;, + 0.002581;0.109561;0.261897;, + 0.002581;0.065058;0.217393;, + 0.002581;0.068446;0.234424;, + 0.002581;0.109561;0.261897;, + 0.002581;0.068446;0.200363;, + 0.002581;0.065058;0.217393;, + 0.002581;0.109561;0.261897;, + 0.002581;0.078093;0.185925;, + 0.002581;0.068446;0.200363;, + 0.002581;0.109561;0.261897;, + 0.002581;0.092531;0.176278;, + 0.002581;0.078093;0.185925;, + 0.002581;0.109561;0.261897;, + 0.002581;0.109561;0.172890;, + 0.002581;0.092531;0.176278;, + 0.002581;0.109561;0.261897;, + 0.002581;0.126592;0.176278;, + 0.002581;0.109561;0.172890;, + 0.002581;0.109561;0.261897;, + 0.002581;0.141030;0.185925;, + 0.002581;0.126592;0.176278;, + 0.002581;0.109561;0.261897;, + 0.002581;0.150677;0.200363;, + 0.002581;0.141030;0.185925;, + 0.002581;0.109561;0.261897;, + 0.002581;0.154064;0.217393;, + 0.002581;0.150677;0.200363;, + 0.002581;0.109561;0.261897;, + 0.002581;0.150677;0.234424;, + 0.002581;0.154064;0.217393;, + 0.002581;0.109561;0.261897;, + 0.002581;0.141030;0.248862;, + 0.002581;0.150677;0.234424;, + 0.002581;0.109561;0.261897;, + 0.002581;0.126592;0.258509;, + 0.002581;0.141030;0.248862;, + -0.232450;0.103044;-0.038528;, + -0.223233;0.093827;-0.038528;, + -0.200981;0.103044;-0.038528;, + -0.232450;0.103044;-0.038528;, + -0.200981;0.103044;-0.038528;, + -0.210198;0.125295;-0.038528;, + -0.232450;0.103044;-0.038528;, + -0.210198;0.125295;-0.038528;, + -0.232450;0.116079;-0.038528;, + -0.232450;0.103044;-0.038528;, + -0.245789;0.097519;-0.028881;, + -0.228758;0.080488;-0.028881;, + -0.232450;0.103044;-0.038528;, + -0.228758;0.080488;-0.028881;, + -0.223233;0.093827;-0.038528;, + -0.223233;0.093827;-0.038528;, + -0.228758;0.080488;-0.028881;, + -0.194464;0.087310;-0.028881;, + -0.223233;0.093827;-0.038528;, + -0.194464;0.087310;-0.028881;, + -0.200981;0.103044;-0.038528;, + -0.200981;0.103044;-0.038528;, + -0.194464;0.087310;-0.028881;, + -0.187643;0.121604;-0.028881;, + -0.200981;0.103044;-0.038528;, + -0.187643;0.121604;-0.028881;, + -0.210198;0.125295;-0.038528;, + -0.210198;0.125295;-0.038528;, + -0.187643;0.121604;-0.028881;, + -0.216716;0.141030;-0.028881;, + -0.210198;0.125295;-0.038528;, + -0.216716;0.141030;-0.028881;, + -0.232450;0.116079;-0.038528;, + -0.232450;0.116079;-0.038528;, + -0.216716;0.141030;-0.028881;, + -0.245789;0.121604;-0.028881;, + -0.232450;0.116079;-0.038528;, + -0.245789;0.121604;-0.028881;, + -0.245789;0.097519;-0.028881;, + -0.232450;0.116079;-0.038528;, + -0.245789;0.097519;-0.028881;, + -0.232450;0.103044;-0.038528;, + -0.245789;0.097519;-0.028881;, + -0.257831;0.109561;-0.014443;, + -0.254702;0.093827;-0.014443;, + -0.245789;0.097519;-0.028881;, + -0.254702;0.093827;-0.014443;, + -0.245789;0.080488;-0.014443;, + -0.245789;0.097519;-0.028881;, + -0.245789;0.080488;-0.014443;, + -0.232450;0.071575;-0.014443;, + -0.245789;0.097519;-0.028881;, + -0.232450;0.071575;-0.014443;, + -0.228758;0.080488;-0.028881;, + -0.228758;0.080488;-0.028881;, + -0.232450;0.071575;-0.014443;, + -0.216716;0.068446;-0.014443;, + -0.228758;0.080488;-0.028881;, + -0.216716;0.068446;-0.014443;, + -0.200982;0.071575;-0.014443;, + -0.228758;0.080488;-0.028881;, + -0.200982;0.071575;-0.014443;, + -0.194464;0.087310;-0.028881;, + -0.194464;0.087310;-0.028881;, + -0.200982;0.071575;-0.014443;, + -0.187643;0.080488;-0.014443;, + -0.194464;0.087310;-0.028881;, + -0.187643;0.080488;-0.014443;, + -0.178730;0.093827;-0.014443;, + -0.194464;0.087310;-0.028881;, + -0.178730;0.093827;-0.014443;, + -0.175600;0.109561;-0.014443;, + -0.194464;0.087310;-0.028881;, + -0.175600;0.109561;-0.014443;, + -0.187643;0.121604;-0.028881;, + -0.187643;0.121604;-0.028881;, + -0.175600;0.109561;-0.014443;, + -0.178730;0.125295;-0.014443;, + -0.187643;0.121604;-0.028881;, + -0.178730;0.125295;-0.014443;, + -0.187643;0.138634;-0.014443;, + -0.187643;0.121604;-0.028881;, + -0.187643;0.138634;-0.014443;, + -0.200981;0.147547;-0.014443;, + -0.187643;0.121604;-0.028881;, + -0.200981;0.147547;-0.014443;, + -0.216716;0.141030;-0.028881;, + -0.216716;0.141030;-0.028881;, + -0.200981;0.147547;-0.014443;, + -0.216716;0.150677;-0.014443;, + -0.216716;0.141030;-0.028881;, + -0.216716;0.150677;-0.014443;, + -0.232450;0.147547;-0.014443;, + -0.216716;0.141030;-0.028881;, + -0.232450;0.147547;-0.014443;, + -0.245789;0.138634;-0.014443;, + -0.216716;0.141030;-0.028881;, + -0.245789;0.138634;-0.014443;, + -0.245789;0.121604;-0.028881;, + -0.245789;0.121604;-0.028881;, + -0.245789;0.138634;-0.014443;, + -0.254702;0.125295;-0.014443;, + -0.245789;0.121604;-0.028881;, + -0.254702;0.125295;-0.014443;, + -0.257831;0.109561;-0.014443;, + -0.245789;0.121604;-0.028881;, + -0.257831;0.109561;-0.014443;, + -0.245789;0.097519;-0.028881;, + -0.257831;0.109561;-0.014443;, + -0.261219;0.109561;0.002588;, + -0.257831;0.092531;0.002588;, + -0.257831;0.109561;-0.014443;, + -0.257831;0.092531;0.002588;, + -0.254702;0.093827;-0.014443;, + -0.254702;0.093827;-0.014443;, + -0.257831;0.092531;0.002588;, + -0.248184;0.078093;0.002588;, + -0.254702;0.093827;-0.014443;, + -0.248184;0.078093;0.002588;, + -0.245789;0.080488;-0.014443;, + -0.245789;0.080488;-0.014443;, + -0.248184;0.078093;0.002588;, + -0.233747;0.068446;0.002588;, + -0.245789;0.080488;-0.014443;, + -0.233747;0.068446;0.002588;, + -0.232450;0.071575;-0.014443;, + -0.232450;0.071575;-0.014443;, + -0.233747;0.068446;0.002588;, + -0.216716;0.065058;0.002588;, + -0.232450;0.071575;-0.014443;, + -0.216716;0.065058;0.002588;, + -0.216716;0.068446;-0.014443;, + -0.216716;0.068446;-0.014443;, + -0.216716;0.065058;0.002588;, + -0.199685;0.068446;0.002588;, + -0.216716;0.068446;-0.014443;, + -0.199685;0.068446;0.002588;, + -0.200982;0.071575;-0.014443;, + -0.200982;0.071575;-0.014443;, + -0.199685;0.068446;0.002588;, + -0.185247;0.078093;0.002588;, + -0.200982;0.071575;-0.014443;, + -0.185247;0.078093;0.002588;, + -0.187643;0.080488;-0.014443;, + -0.187643;0.080488;-0.014443;, + -0.185247;0.078093;0.002588;, + -0.175600;0.092531;0.002588;, + -0.187643;0.080488;-0.014443;, + -0.175600;0.092531;0.002588;, + -0.178730;0.093827;-0.014443;, + -0.178730;0.093827;-0.014443;, + -0.175600;0.092531;0.002588;, + -0.172212;0.109561;0.002588;, + -0.178730;0.093827;-0.014443;, + -0.172212;0.109561;0.002588;, + -0.175600;0.109561;-0.014443;, + -0.175600;0.109561;-0.014443;, + -0.172212;0.109561;0.002588;, + -0.175600;0.126592;0.002588;, + -0.175600;0.109561;-0.014443;, + -0.175600;0.126592;0.002588;, + -0.178730;0.125295;-0.014443;, + -0.178730;0.125295;-0.014443;, + -0.175600;0.126592;0.002588;, + -0.185247;0.141030;0.002588;, + -0.178730;0.125295;-0.014443;, + -0.185247;0.141030;0.002588;, + -0.187643;0.138634;-0.014443;, + -0.187643;0.138634;-0.014443;, + -0.185247;0.141030;0.002588;, + -0.199685;0.150677;0.002588;, + -0.187643;0.138634;-0.014443;, + -0.199685;0.150677;0.002588;, + -0.200981;0.147547;-0.014443;, + -0.200981;0.147547;-0.014443;, + -0.199685;0.150677;0.002588;, + -0.216716;0.154064;0.002588;, + -0.200981;0.147547;-0.014443;, + -0.216716;0.154064;0.002588;, + -0.216716;0.150677;-0.014443;, + -0.216716;0.150677;-0.014443;, + -0.216716;0.154064;0.002588;, + -0.233747;0.150677;0.002588;, + -0.216716;0.150677;-0.014443;, + -0.233747;0.150677;0.002588;, + -0.232450;0.147547;-0.014443;, + -0.232450;0.147547;-0.014443;, + -0.233747;0.150677;0.002588;, + -0.248184;0.141030;0.002588;, + -0.232450;0.147547;-0.014443;, + -0.248184;0.141030;0.002588;, + -0.245789;0.138634;-0.014443;, + -0.245789;0.138634;-0.014443;, + -0.248184;0.141030;0.002588;, + -0.257831;0.126592;0.002588;, + -0.245789;0.138634;-0.014443;, + -0.257831;0.126592;0.002588;, + -0.254702;0.125295;-0.014443;, + -0.254702;0.125295;-0.014443;, + -0.257831;0.126592;0.002588;, + -0.261219;0.109561;0.002588;, + -0.254702;0.125295;-0.014443;, + -0.261219;0.109561;0.002588;, + -0.257831;0.109561;-0.014443;, + -0.261219;0.109561;0.002588;, + -0.248184;0.078093;0.002588;, + -0.257831;0.092531;0.002588;, + -0.261219;0.109561;0.002588;, + -0.233747;0.068446;0.002588;, + -0.248184;0.078093;0.002588;, + -0.261219;0.109561;0.002588;, + -0.216716;0.065058;0.002588;, + -0.233747;0.068446;0.002588;, + -0.261219;0.109561;0.002588;, + -0.199685;0.068446;0.002588;, + -0.216716;0.065058;0.002588;, + -0.261219;0.109561;0.002588;, + -0.185247;0.078093;0.002588;, + -0.199685;0.068446;0.002588;, + -0.261219;0.109561;0.002588;, + -0.175600;0.092531;0.002588;, + -0.185247;0.078093;0.002588;, + -0.261219;0.109561;0.002588;, + -0.172212;0.109561;0.002588;, + -0.175600;0.092531;0.002588;, + -0.261219;0.109561;0.002588;, + -0.175600;0.126592;0.002588;, + -0.172212;0.109561;0.002588;, + -0.261219;0.109561;0.002588;, + -0.185247;0.141030;0.002588;, + -0.175600;0.126592;0.002588;, + -0.261219;0.109561;0.002588;, + -0.199685;0.150677;0.002588;, + -0.185247;0.141030;0.002588;, + -0.261219;0.109561;0.002588;, + -0.216716;0.154064;0.002588;, + -0.199685;0.150677;0.002588;, + -0.261219;0.109561;0.002588;, + -0.233747;0.150677;0.002588;, + -0.216716;0.154064;0.002588;, + -0.261219;0.109561;0.002588;, + -0.248184;0.141030;0.002588;, + -0.233747;0.150677;0.002588;, + -0.261219;0.109561;0.002588;, + -0.257831;0.126592;0.002588;, + -0.248184;0.141030;0.002588;; + + 372; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;, + 3;14,13,12;, + 3;17,16,15;, + 3;20,19,18;, + 3;23,22,21;, + 3;26,25,24;, + 3;29,28,27;, + 3;32,31,30;, + 3;35,34,33;, + 3;38,37,36;, + 3;41,40,39;, + 3;44,43,42;, + 3;47,46,45;, + 3;50,49,48;, + 3;53,52,51;, + 3;56,55,54;, + 3;59,58,57;, + 3;62,61,60;, + 3;65,64,63;, + 3;68,67,66;, + 3;71,70,69;, + 3;74,73,72;, + 3;77,76,75;, + 3;80,79,78;, + 3;83,82,81;, + 3;86,85,84;, + 3;89,88,87;, + 3;92,91,90;, + 3;95,94,93;, + 3;98,97,96;, + 3;101,100,99;, + 3;104,103,102;, + 3;107,106,105;, + 3;110,109,108;, + 3;113,112,111;, + 3;116,115,114;, + 3;119,118,117;, + 3;122,121,120;, + 3;125,124,123;, + 3;128,127,126;, + 3;131,130,129;, + 3;134,133,132;, + 3;137,136,135;, + 3;140,139,138;, + 3;143,142,141;, + 3;146,145,144;, + 3;149,148,147;, + 3;152,151,150;, + 3;155,154,153;, + 3;158,157,156;, + 3;161,160,159;, + 3;164,163,162;, + 3;167,166,165;, + 3;170,169,168;, + 3;173,172,171;, + 3;176,175,174;, + 3;179,178,177;, + 3;182,181,180;, + 3;185,184,183;, + 3;188,187,186;, + 3;191,190,189;, + 3;194,193,192;, + 3;197,196,195;, + 3;200,199,198;, + 3;203,202,201;, + 3;206,205,204;, + 3;209,208,207;, + 3;212,211,210;, + 3;215,214,213;, + 3;218,217,216;, + 3;221,220,219;, + 3;224,223,222;, + 3;227,226,225;, + 3;230,229,228;, + 3;233,232,231;, + 3;236,235,234;, + 3;239,238,237;, + 3;242,241,240;, + 3;245,244,243;, + 3;248,247,246;, + 3;251,250,249;, + 3;254,253,252;, + 3;257,256,255;, + 3;260,259,258;, + 3;263,262,261;, + 3;266,265,264;, + 3;269,268,267;, + 3;272,271,270;, + 3;275,274,273;, + 3;278,277,276;, + 3;281,280,279;, + 3;284,283,282;, + 3;287,286,285;, + 3;290,289,288;, + 3;293,292,291;, + 3;296,295,294;, + 3;299,298,297;, + 3;302,301,300;, + 3;305,304,303;, + 3;308,307,306;, + 3;311,310,309;, + 3;314,313,312;, + 3;317,316,315;, + 3;320,319,318;, + 3;323,322,321;, + 3;326,325,324;, + 3;329,328,327;, + 3;332,331,330;, + 3;335,334,333;, + 3;338,337,336;, + 3;341,340,339;, + 3;344,343,342;, + 3;347,346,345;, + 3;350,349,348;, + 3;353,352,351;, + 3;356,355,354;, + 3;359,358,357;, + 3;362,361,360;, + 3;365,364,363;, + 3;368,367,366;, + 3;371,370,369;, + 3;374,373,372;, + 3;377,376,375;, + 3;380,379,378;, + 3;383,382,381;, + 3;386,385,384;, + 3;389,388,387;, + 3;392,391,390;, + 3;395,394,393;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;, + 3;926,925,924;, + 3;929,928,927;, + 3;932,931,930;, + 3;935,934,933;, + 3;938,937,936;, + 3;941,940,939;, + 3;944,943,942;, + 3;947,946,945;, + 3;950,949,948;, + 3;953,952,951;, + 3;956,955,954;, + 3;959,958,957;, + 3;962,961,960;, + 3;965,964,963;, + 3;968,967,966;, + 3;971,970,969;, + 3;974,973,972;, + 3;977,976,975;, + 3;980,979,978;, + 3;983,982,981;, + 3;986,985,984;, + 3;989,988,987;, + 3;992,991,990;, + 3;995,994,993;, + 3;998,997,996;, + 3;1001,1000,999;, + 3;1004,1003,1002;, + 3;1007,1006,1005;, + 3;1010,1009,1008;, + 3;1013,1012,1011;, + 3;1016,1015,1014;, + 3;1019,1018,1017;, + 3;1022,1021,1020;, + 3;1025,1024,1023;, + 3;1028,1027,1026;, + 3;1031,1030,1029;, + 3;1034,1033,1032;, + 3;1037,1036,1035;, + 3;1040,1039,1038;, + 3;1043,1042,1041;, + 3;1046,1045,1044;, + 3;1049,1048,1047;, + 3;1052,1051,1050;, + 3;1055,1054,1053;, + 3;1058,1057,1056;, + 3;1061,1060,1059;, + 3;1064,1063,1062;, + 3;1067,1066,1065;, + 3;1070,1069,1068;, + 3;1073,1072,1071;, + 3;1076,1075,1074;, + 3;1079,1078,1077;, + 3;1082,1081,1080;, + 3;1085,1084,1083;, + 3;1088,1087,1086;, + 3;1091,1090,1089;, + 3;1094,1093,1092;, + 3;1097,1096,1095;, + 3;1100,1099,1098;, + 3;1103,1102,1101;, + 3;1106,1105,1104;, + 3;1109,1108,1107;, + 3;1112,1111,1110;, + 3;1115,1114,1113;; + + MeshMaterialList { + 2; + 372; + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 0;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;, + 1;; + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + Material { + 0.003922;0.003922;0.003922;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 372; + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.414382;-0.414382;0.810294;, + 0.414382;-0.414382;0.810294;, + -0.122214;-0.614367;0.779498;, + -0.188615;-0.455360;0.870099;, + -0.700216;-0.139292;0.700211;, + -0.410912;0.170211;0.895645;, + -0.396620;0.593602;0.700235;, + 0.188586;0.455341;0.870115;, + 0.348014;0.520839;0.779496;, + 0.586020;0.000000;0.810297;, + 0.586020;0.000000;0.810297;, + 0.820329;-0.163138;0.548130;, + 0.695430;-0.464679;0.548134;, + 0.396643;-0.593608;0.700217;, + 0.601689;-0.601689;0.525300;, + 0.163138;-0.820329;0.548129;, + -0.139249;-0.700251;0.700184;, + -0.139289;-0.700199;0.700228;, + -0.464674;-0.695421;0.548149;, + -0.695447;-0.464640;0.548145;, + -0.700224;-0.139297;0.700202;, + -0.700221;-0.139293;0.700206;, + -0.820344;0.163182;0.548094;, + -0.695455;0.464680;0.548102;, + -0.396655;0.593625;0.700196;, + -0.396633;0.593622;0.700211;, + -0.163179;0.820329;0.548117;, + 0.163189;0.820328;0.548116;, + 0.396651;0.593619;0.700203;, + 0.396649;0.593626;0.700198;, + 0.695442;0.464688;0.548111;, + 0.820334;0.163139;0.548122;, + 0.767951;0.000000;0.640509;, + 0.962627;-0.191507;0.191507;, + 0.962653;-0.191442;0.191442;, + 0.816095;-0.545288;0.191442;, + 0.816084;-0.545299;0.191456;, + 0.545287;-0.816093;0.191456;, + 0.545301;-0.816087;0.191442;, + 0.191510;-0.962638;0.191444;, + 0.191439;-0.962640;0.191511;, + -0.191497;-0.962628;0.191508;, + -0.191430;-0.962655;0.191441;, + -0.545288;-0.816095;0.191442;, + -0.545300;-0.816084;0.191457;, + -0.816093;-0.545286;0.191456;, + -0.816106;-0.545254;0.191489;, + -0.962628;-0.191508;0.191498;, + -0.962628;-0.191497;0.191508;, + -0.962628;0.191497;0.191508;, + -0.962633;0.191486;0.191497;, + -0.816088;0.545283;0.191487;, + -0.816088;0.545283;0.191488;, + -0.545281;0.816085;0.191503;, + -0.545297;0.816078;0.191487;, + -0.191443;0.962642;0.191495;, + -0.191487;0.962641;0.191454;, + 0.191456;0.962647;0.191456;, + 0.191498;0.962630;0.191498;, + 0.545283;0.816087;0.191488;, + 0.545295;0.816076;0.191503;, + 0.816087;0.545283;0.191487;, + 0.816081;0.545298;0.191472;, + 0.962639;0.191498;0.191455;, + 0.962640;0.191439;0.191510;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.810293;-0.414382;-0.414382;, + 0.810294;-0.414382;-0.414382;, + 0.779498;-0.614367;0.122214;, + 0.870103;-0.455349;0.188619;, + 0.700233;-0.139268;0.700199;, + 0.895645;0.170212;0.410912;, + 0.700247;0.593586;0.396622;, + 0.870110;0.455346;-0.188597;, + 0.779495;0.520839;-0.348014;, + 0.810296;0.000000;-0.586021;, + 0.810296;0.000000;-0.586021;, + 0.548134;-0.163187;-0.820316;, + 0.548134;-0.464679;-0.695430;, + 0.700217;-0.593608;-0.396643;, + 0.525300;-0.601689;-0.601689;, + 0.548130;-0.820329;-0.163138;, + 0.700187;-0.700247;0.139257;, + 0.700223;-0.700204;0.139290;, + 0.548126;-0.695434;0.464682;, + 0.548115;-0.464686;0.695440;, + 0.700202;-0.139297;0.700224;, + 0.700224;-0.139270;0.700208;, + 0.548126;0.163189;0.820321;, + 0.548111;0.464688;0.695442;, + 0.700196;0.593625;0.396655;, + 0.700201;0.593624;0.396647;, + 0.548116;0.820328;0.163189;, + 0.548116;0.820328;-0.163189;, + 0.700203;0.593619;-0.396651;, + 0.700198;0.593626;-0.396649;, + 0.548111;0.464688;-0.695442;, + 0.548126;0.163188;-0.820321;, + 0.640540;0.000000;-0.767925;, + 0.191456;-0.191456;-0.962647;, + 0.191498;-0.191498;-0.962630;, + 0.191486;-0.545322;-0.816062;, + 0.191457;-0.545299;-0.816084;, + 0.191458;-0.816075;-0.545312;, + 0.191472;-0.816081;-0.545298;, + 0.191454;-0.962639;-0.191499;, + 0.191511;-0.962640;-0.191439;, + 0.191508;-0.962628;0.191497;, + 0.191452;-0.962651;0.191441;, + 0.191473;-0.816090;0.545285;, + 0.191488;-0.816079;0.545296;, + 0.191503;-0.545281;0.816085;, + 0.191488;-0.545296;0.816079;, + 0.191497;-0.191454;0.962639;, + 0.191454;-0.191500;0.962639;, + 0.191456;0.191445;0.962649;, + 0.191509;0.191498;0.962628;, + 0.191519;0.545279;0.816083;, + 0.191534;0.545291;0.816071;, + 0.191534;0.816080;0.545278;, + 0.191518;0.816073;0.545294;, + 0.191506;0.962640;0.191443;, + 0.191454;0.962639;0.191499;, + 0.191456;0.962649;-0.191445;, + 0.191508;0.962628;-0.191497;, + 0.191518;0.816083;-0.545280;, + 0.191534;0.816071;-0.545292;, + 0.191534;0.545277;-0.816081;, + 0.191518;0.545293;-0.816074;, + 0.191506;0.191443;-0.962640;, + 0.191454;0.191499;-0.962639;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.866031;0.000000;0.499990;, + -0.866031;0.000000;0.499990;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.866031;0.000000;0.499990;, + 0.866031;0.000000;0.499990;, + 0.866031;0.000000;-0.499990;, + 0.866031;0.000000;-0.499990;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + -0.866031;0.000000;-0.499990;, + -0.866031;0.000000;-0.499990;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + 0.000000;0.000150;1.000000;, + 0.000000;0.000150;1.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;1.000000;0.000000;, + 0.000000;1.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -1.000000;0.000000;0.000000;, + -0.810293;-0.414382;0.414382;, + -0.810293;-0.414382;0.414382;, + -0.779498;-0.614367;-0.122214;, + -0.870099;-0.455360;-0.188615;, + -0.700210;-0.139292;-0.700217;, + -0.895645;0.170212;-0.410912;, + -0.700248;0.593586;-0.396622;, + -0.870110;0.455349;0.188590;, + -0.779492;0.520848;0.348008;, + -0.810296;0.000000;0.586021;, + -0.810296;0.000000;0.586021;, + -0.548095;-0.163193;0.820341;, + -0.548104;-0.464654;0.695470;, + -0.700217;-0.593608;0.396643;, + -0.525300;-0.601689;0.601689;, + -0.548129;-0.820332;0.163128;, + -0.700192;-0.700242;-0.139256;, + -0.700228;-0.700199;-0.139289;, + -0.548149;-0.695421;-0.464674;, + -0.548145;-0.464639;-0.695448;, + -0.700202;-0.139297;-0.700224;, + -0.700206;-0.139293;-0.700221;, + -0.548087;0.163194;-0.820347;, + -0.548082;0.464663;-0.695482;, + -0.700196;0.593625;-0.396655;, + -0.700201;0.593624;-0.396648;, + -0.548116;0.820328;-0.163189;, + -0.548117;0.820329;0.163179;, + -0.700217;0.593607;0.396644;, + -0.700202;0.593630;0.396638;, + -0.548082;0.464663;0.695482;, + -0.548087;0.163194;0.820347;, + -0.640509;0.000000;0.767951;, + -0.191496;-0.191508;0.962629;, + -0.191488;-0.191500;0.962632;, + -0.191478;-0.545285;0.816089;, + -0.191444;-0.545259;0.816114;, + -0.191446;-0.816095;0.545287;, + -0.191430;-0.816088;0.545303;, + -0.191433;-0.962643;0.191500;, + -0.191500;-0.962644;0.191427;, + -0.191497;-0.962628;-0.191508;, + -0.191431;-0.962655;-0.191442;, + -0.191431;-0.816097;-0.545289;, + -0.191446;-0.816085;-0.545301;, + -0.191445;-0.545288;-0.816094;, + -0.191479;-0.545255;-0.816109;, + -0.191488;-0.191509;-0.962630;, + -0.191497;-0.191498;-0.962630;, + -0.191498;0.191498;-0.962630;, + -0.191498;0.191498;-0.962630;, + -0.191508;0.545281;-0.816084;, + -0.191475;0.545255;-0.816109;, + -0.191492;0.816087;-0.545283;, + -0.191476;0.816080;-0.545298;, + -0.191485;0.962642;-0.191455;, + -0.191443;0.962641;-0.191500;, + -0.191445;0.962651;0.191445;, + -0.191486;0.962635;0.191486;, + -0.191477;0.816090;0.545284;, + -0.191493;0.816077;0.545296;, + -0.191477;0.545285;0.816089;, + -0.191510;0.545252;0.816103;, + -0.191499;0.191497;0.962630;, + -0.191497;0.191499;0.962630;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 1.000000;0.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + -0.414382;-0.414382;-0.810294;, + -0.414382;-0.414382;-0.810294;, + 0.122214;-0.614367;-0.779498;, + 0.188615;-0.455360;-0.870099;, + 0.700235;-0.139275;-0.700196;, + 0.410928;0.170218;-0.895636;, + 0.396634;0.593603;-0.700226;, + -0.188586;0.455341;-0.870115;, + -0.348014;0.520839;-0.779496;, + -0.586020;0.000000;-0.810297;, + -0.586020;0.000000;-0.810297;, + -0.820329;-0.163138;-0.548130;, + -0.695430;-0.464679;-0.548134;, + -0.396643;-0.593608;-0.700217;, + -0.601689;-0.601689;-0.525300;, + -0.163138;-0.820329;-0.548129;, + 0.139257;-0.700247;-0.700187;, + 0.139290;-0.700204;-0.700223;, + 0.464682;-0.695434;-0.548126;, + 0.695440;-0.464687;-0.548115;, + 0.700224;-0.139297;-0.700202;, + 0.700208;-0.139270;-0.700224;, + 0.820321;0.163188;-0.548127;, + 0.695441;0.464688;-0.548112;, + 0.396680;0.593618;-0.700188;, + 0.396640;0.593612;-0.700215;, + 0.163179;0.820329;-0.548117;, + -0.163189;0.820328;-0.548116;, + -0.396651;0.593619;-0.700203;, + -0.396649;0.593626;-0.700198;, + -0.695442;0.464688;-0.548111;, + -0.820334;0.163139;-0.548122;, + -0.767951;0.000000;-0.640509;, + -0.962629;-0.191508;-0.191496;, + -0.962655;-0.191442;-0.191431;, + -0.816096;-0.545290;-0.191431;, + -0.816086;-0.545301;-0.191446;, + -0.545314;-0.816077;-0.191446;, + -0.545299;-0.816083;-0.191462;, + -0.191500;-0.962641;-0.191444;, + -0.191439;-0.962642;-0.191500;, + 0.191498;-0.962630;-0.191498;, + 0.191441;-0.962653;-0.191441;, + 0.545286;-0.816092;-0.191462;, + 0.545297;-0.816081;-0.191477;, + 0.816087;-0.545282;-0.191492;, + 0.816080;-0.545298;-0.191476;, + 0.962630;-0.191509;-0.191487;, + 0.962630;-0.191498;-0.191498;, + 0.962630;0.191498;-0.191498;, + 0.962631;0.191498;-0.191498;, + 0.816084;0.545281;-0.191507;, + 0.816072;0.545293;-0.191523;, + 0.545279;0.816082;-0.191523;, + 0.545327;0.816062;-0.191475;, + 0.191444;0.962644;-0.191485;, + 0.191488;0.962643;-0.191444;, + -0.191445;0.962651;-0.191445;, + -0.191498;0.962630;-0.191498;, + -0.545307;0.816067;-0.191507;, + -0.545296;0.816078;-0.191492;, + -0.816089;0.545285;-0.191476;, + -0.816083;0.545299;-0.191461;, + -0.962641;0.191499;-0.191444;, + -0.962642;0.191440;-0.191499;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;; + + 372; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;, + 3;4,4,4;, + 3;5,5,5;, + 3;6,6,6;, + 3;7,7,7;, + 3;8,8,8;, + 3;9,9,9;, + 3;10,10,10;, + 3;11,11,11;, + 3;12,12,12;, + 3;13,13,13;, + 3;14,14,14;, + 3;15,15,15;, + 3;16,16,16;, + 3;17,17,17;, + 3;18,18,18;, + 3;19,19,19;, + 3;20,20,20;, + 3;21,21,21;, + 3;22,22,22;, + 3;23,23,23;, + 3;24,24,24;, + 3;25,25,25;, + 3;26,26,26;, + 3;27,27,27;, + 3;28,28,28;, + 3;29,29,29;, + 3;30,30,30;, + 3;31,31,31;, + 3;32,32,32;, + 3;33,33,33;, + 3;34,34,34;, + 3;35,35,35;, + 3;36,36,36;, + 3;37,37,37;, + 3;38,38,38;, + 3;39,39,39;, + 3;40,40,40;, + 3;41,41,41;, + 3;42,42,42;, + 3;43,43,43;, + 3;44,44,44;, + 3;45,45,45;, + 3;46,46,46;, + 3;47,47,47;, + 3;48,48,48;, + 3;49,49,49;, + 3;50,50,50;, + 3;51,51,51;, + 3;52,52,52;, + 3;53,53,53;, + 3;54,54,54;, + 3;55,55,55;, + 3;56,56,56;, + 3;57,57,57;, + 3;58,58,58;, + 3;59,59,59;, + 3;60,60,60;, + 3;61,61,61;, + 3;62,62,62;, + 3;63,63,63;, + 3;64,64,64;, + 3;65,65,65;, + 3;66,66,66;, + 3;67,67,67;, + 3;68,68,68;, + 3;69,69,69;, + 3;70,70,70;, + 3;71,71,71;, + 3;72,72,72;, + 3;73,73,73;, + 3;74,74,74;, + 3;75,75,75;, + 3;76,76,76;, + 3;77,77,77;, + 3;78,78,78;, + 3;79,79,79;, + 3;80,80,80;, + 3;81,81,81;, + 3;82,82,82;, + 3;83,83,83;, + 3;84,84,84;, + 3;85,85,85;, + 3;86,86,86;, + 3;87,87,87;, + 3;88,88,88;, + 3;89,89,89;, + 3;90,90,90;, + 3;91,91,91;, + 3;92,92,92;, + 3;93,93,93;, + 3;94,94,94;, + 3;95,95,95;, + 3;96,96,96;, + 3;97,97,97;, + 3;98,98,98;, + 3;99,99,99;, + 3;100,100,100;, + 3;101,101,101;, + 3;102,102,102;, + 3;103,103,103;, + 3;104,104,104;, + 3;105,105,105;, + 3;106,106,106;, + 3;107,107,107;, + 3;108,108,108;, + 3;109,109,109;, + 3;110,110,110;, + 3;111,111,111;, + 3;112,112,112;, + 3;113,113,113;, + 3;114,114,114;, + 3;115,115,115;, + 3;116,116,116;, + 3;117,117,117;, + 3;118,118,118;, + 3;119,119,119;, + 3;120,120,120;, + 3;121,121,121;, + 3;122,122,122;, + 3;123,123,123;, + 3;124,124,124;, + 3;125,125,125;, + 3;126,126,126;, + 3;127,127,127;, + 3;128,128,128;, + 3;129,129,129;, + 3;130,130,130;, + 3;131,131,131;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;, + 3;308,308,308;, + 3;309,309,309;, + 3;310,310,310;, + 3;311,311,311;, + 3;312,312,312;, + 3;313,313,313;, + 3;314,314,314;, + 3;315,315,315;, + 3;316,316,316;, + 3;317,317,317;, + 3;318,318,318;, + 3;319,319,319;, + 3;320,320,320;, + 3;321,321,321;, + 3;322,322,322;, + 3;323,323,323;, + 3;324,324,324;, + 3;325,325,325;, + 3;326,326,326;, + 3;327,327,327;, + 3;328,328,328;, + 3;329,329,329;, + 3;330,330,330;, + 3;331,331,331;, + 3;332,332,332;, + 3;333,333,333;, + 3;334,334,334;, + 3;335,335,335;, + 3;336,336,336;, + 3;337,337,337;, + 3;338,338,338;, + 3;339,339,339;, + 3;340,340,340;, + 3;341,341,341;, + 3;342,342,342;, + 3;343,343,343;, + 3;344,344,344;, + 3;345,345,345;, + 3;346,346,346;, + 3;347,347,347;, + 3;348,348,348;, + 3;349,349,349;, + 3;350,350,350;, + 3;351,351,351;, + 3;352,352,352;, + 3;353,353,353;, + 3;354,354,354;, + 3;355,355,355;, + 3;356,356,356;, + 3;357,357,357;, + 3;358,358,358;, + 3;359,359,359;, + 3;360,360,360;, + 3;361,361,361;, + 3;362,362,362;, + 3;363,363,363;, + 3;364,364,364;, + 3;365,365,365;, + 3;366,366,366;, + 3;367,367,367;, + 3;368,368,368;, + 3;369,369,369;, + 3;370,370,370;, + 3;371,371,371;; + } # MeshNormals + MeshTextureCoords { + 1116; + 0.574305;0.945004;, + 0.574305;0.927384;, + 0.574305;0.884846;, + 0.574305;0.945004;, + 0.574305;0.884846;, + 0.574305;0.902466;, + 0.574305;0.945004;, + 0.574305;0.902466;, + 0.574305;0.945004;, + 0.574305;0.945004;, + 0.555863;0.970503;, + 0.555863;0.937946;, + 0.574305;0.945004;, + 0.555863;0.937946;, + 0.574305;0.927384;, + 0.574305;0.927384;, + 0.555863;0.937946;, + 0.555863;0.872388;, + 0.574305;0.927384;, + 0.555863;0.872388;, + 0.574305;0.884846;, + 0.574305;0.884846;, + 0.555863;0.872388;, + 0.555863;0.859347;, + 0.574305;0.884846;, + 0.555863;0.859347;, + 0.574305;0.902466;, + 0.574305;0.902466;, + 0.555863;0.859347;, + 0.555863;0.914926;, + 0.574305;0.902466;, + 0.555863;0.914926;, + 0.574305;0.945004;, + 0.574305;0.945004;, + 0.555863;0.914926;, + 0.555863;0.970503;, + 0.574305;0.945004;, + 0.555863;0.970503;, + 0.555863;0.970503;, + 0.574305;0.945004;, + 0.555863;0.970503;, + 0.574305;0.945004;, + 0.555863;0.970503;, + 0.528263;0.993523;, + 0.528263;0.987542;, + 0.555863;0.970503;, + 0.528263;0.987542;, + 0.528263;0.970503;, + 0.555863;0.970503;, + 0.528263;0.970503;, + 0.528263;0.945004;, + 0.555863;0.970503;, + 0.528263;0.945004;, + 0.555863;0.937946;, + 0.555863;0.937946;, + 0.528263;0.945004;, + 0.528263;0.914926;, + 0.555863;0.937946;, + 0.528263;0.914926;, + 0.528263;0.884846;, + 0.555863;0.937946;, + 0.528263;0.884846;, + 0.555863;0.872388;, + 0.555863;0.872388;, + 0.528263;0.884846;, + 0.528263;0.859347;, + 0.555863;0.872388;, + 0.528263;0.859347;, + 0.528263;0.842310;, + 0.555863;0.872388;, + 0.528263;0.842310;, + 0.528263;0.836327;, + 0.555863;0.872388;, + 0.528263;0.836327;, + 0.555863;0.859347;, + 0.555863;0.859347;, + 0.528263;0.836327;, + 0.528263;0.842310;, + 0.555863;0.859347;, + 0.528263;0.842310;, + 0.528263;0.859347;, + 0.555863;0.859347;, + 0.528263;0.859347;, + 0.528263;0.884846;, + 0.555863;0.859347;, + 0.528263;0.884846;, + 0.555863;0.914926;, + 0.555863;0.914926;, + 0.528263;0.884846;, + 0.528263;0.914926;, + 0.555863;0.914926;, + 0.528263;0.914926;, + 0.528263;0.945004;, + 0.555863;0.914926;, + 0.528263;0.945004;, + 0.528263;0.970503;, + 0.555863;0.914926;, + 0.528263;0.970503;, + 0.555863;0.970503;, + 0.555863;0.970503;, + 0.528263;0.970503;, + 0.528263;0.987542;, + 0.555863;0.970503;, + 0.528263;0.987542;, + 0.528263;0.993523;, + 0.555863;0.970503;, + 0.528263;0.993523;, + 0.555863;0.970503;, + 0.528263;0.993523;, + 0.495707;1.000000;, + 0.495707;0.993523;, + 0.528263;0.993523;, + 0.495707;0.993523;, + 0.528263;0.987542;, + 0.528263;0.987542;, + 0.495707;0.993523;, + 0.495707;0.975082;, + 0.528263;0.987542;, + 0.495707;0.975082;, + 0.528263;0.970503;, + 0.528263;0.970503;, + 0.495707;0.975082;, + 0.495707;0.947481;, + 0.528263;0.970503;, + 0.495707;0.947481;, + 0.528263;0.945004;, + 0.528263;0.945004;, + 0.495707;0.947481;, + 0.495707;0.914926;, + 0.528263;0.945004;, + 0.495707;0.914926;, + 0.528263;0.914926;, + 0.528263;0.914926;, + 0.495707;0.914926;, + 0.495707;0.882369;, + 0.528263;0.914926;, + 0.495707;0.882369;, + 0.528263;0.884846;, + 0.528263;0.884846;, + 0.495707;0.882369;, + 0.495707;0.854768;, + 0.528263;0.884846;, + 0.495707;0.854768;, + 0.528263;0.859347;, + 0.528263;0.859347;, + 0.495707;0.854768;, + 0.495707;0.836327;, + 0.528263;0.859347;, + 0.495707;0.836327;, + 0.528263;0.842310;, + 0.528263;0.842310;, + 0.495707;0.836327;, + 0.495707;0.829850;, + 0.528263;0.842310;, + 0.495707;0.829850;, + 0.528263;0.836327;, + 0.528263;0.836327;, + 0.495707;0.829850;, + 0.495707;0.836327;, + 0.528263;0.836327;, + 0.495707;0.836327;, + 0.528263;0.842310;, + 0.528263;0.842310;, + 0.495707;0.836327;, + 0.495707;0.854768;, + 0.528263;0.842310;, + 0.495707;0.854768;, + 0.528263;0.859347;, + 0.528263;0.859347;, + 0.495707;0.854768;, + 0.495707;0.882369;, + 0.528263;0.859347;, + 0.495707;0.882369;, + 0.528263;0.884846;, + 0.528263;0.884846;, + 0.495707;0.882369;, + 0.495707;0.914926;, + 0.528263;0.884846;, + 0.495707;0.914926;, + 0.528263;0.914926;, + 0.528263;0.914926;, + 0.495707;0.914926;, + 0.495707;0.947481;, + 0.528263;0.914926;, + 0.495707;0.947481;, + 0.528263;0.945004;, + 0.528263;0.945004;, + 0.495707;0.947481;, + 0.495707;0.975082;, + 0.528263;0.945004;, + 0.495707;0.975082;, + 0.528263;0.970503;, + 0.528263;0.970503;, + 0.495707;0.975082;, + 0.495707;0.993523;, + 0.528263;0.970503;, + 0.495707;0.993523;, + 0.528263;0.987542;, + 0.528263;0.987542;, + 0.495707;0.993523;, + 0.495707;1.000000;, + 0.528263;0.987542;, + 0.495707;1.000000;, + 0.528263;0.993523;, + 0.495707;1.000000;, + 0.495707;0.975082;, + 0.495707;0.993523;, + 0.495707;1.000000;, + 0.495707;0.947481;, + 0.495707;0.975082;, + 0.495707;1.000000;, + 0.495707;0.914926;, + 0.495707;0.947481;, + 0.495707;1.000000;, + 0.495707;0.882369;, + 0.495707;0.914926;, + 0.495707;1.000000;, + 0.495707;0.854768;, + 0.495707;0.882369;, + 0.495707;1.000000;, + 0.495707;0.836327;, + 0.495707;0.854768;, + 0.495707;1.000000;, + 0.495707;0.829850;, + 0.495707;0.836327;, + 0.495707;1.000000;, + 0.495707;0.836327;, + 0.495707;0.829850;, + 0.495707;1.000000;, + 0.495707;0.854768;, + 0.495707;0.836327;, + 0.495707;1.000000;, + 0.495707;0.882369;, + 0.495707;0.854768;, + 0.495707;1.000000;, + 0.495707;0.914926;, + 0.495707;0.882369;, + 0.495707;1.000000;, + 0.495707;0.947481;, + 0.495707;0.914926;, + 0.495707;1.000000;, + 0.495707;0.975082;, + 0.495707;0.947481;, + 0.495707;1.000000;, + 0.495707;0.993523;, + 0.495707;0.975082;, + 0.054996;0.574305;, + 0.072616;0.574305;, + 0.115152;0.574305;, + 0.054996;0.574305;, + 0.115152;0.574305;, + 0.097532;0.574305;, + 0.054996;0.574305;, + 0.097532;0.574305;, + 0.054996;0.574305;, + 0.054996;0.574305;, + 0.029497;0.555863;, + 0.062054;0.555863;, + 0.054996;0.574305;, + 0.062054;0.555863;, + 0.072616;0.574305;, + 0.072616;0.574305;, + 0.062054;0.555863;, + 0.127612;0.555863;, + 0.072616;0.574305;, + 0.127612;0.555863;, + 0.115152;0.574305;, + 0.115152;0.574305;, + 0.127612;0.555863;, + 0.140651;0.555863;, + 0.115152;0.574305;, + 0.140651;0.555863;, + 0.097532;0.574305;, + 0.097532;0.574305;, + 0.140651;0.555863;, + 0.085074;0.555863;, + 0.097532;0.574305;, + 0.085074;0.555863;, + 0.054996;0.574305;, + 0.054996;0.574305;, + 0.085074;0.555863;, + 0.029497;0.555863;, + 0.054996;0.574305;, + 0.029497;0.555863;, + 0.029497;0.555863;, + 0.054996;0.574305;, + 0.029497;0.555863;, + 0.054996;0.574305;, + 0.029497;0.555863;, + 0.006475;0.528263;, + 0.012458;0.528263;, + 0.029497;0.555863;, + 0.012458;0.528263;, + 0.029497;0.528263;, + 0.029497;0.555863;, + 0.029497;0.528263;, + 0.054996;0.528263;, + 0.029497;0.555863;, + 0.054996;0.528263;, + 0.062054;0.555863;, + 0.062054;0.555863;, + 0.054996;0.528263;, + 0.085074;0.528263;, + 0.062054;0.555863;, + 0.085074;0.528263;, + 0.115152;0.528263;, + 0.062054;0.555863;, + 0.115152;0.528263;, + 0.127612;0.555863;, + 0.127612;0.555863;, + 0.115152;0.528263;, + 0.140651;0.528263;, + 0.127612;0.555863;, + 0.140651;0.528263;, + 0.157690;0.528263;, + 0.127612;0.555863;, + 0.157690;0.528263;, + 0.163673;0.528263;, + 0.127612;0.555863;, + 0.163673;0.528263;, + 0.140651;0.555863;, + 0.140651;0.555863;, + 0.163673;0.528263;, + 0.157690;0.528263;, + 0.140651;0.555863;, + 0.157690;0.528263;, + 0.140651;0.528263;, + 0.140651;0.555863;, + 0.140651;0.528263;, + 0.115152;0.528263;, + 0.140651;0.555863;, + 0.115152;0.528263;, + 0.085074;0.555863;, + 0.085074;0.555863;, + 0.115152;0.528263;, + 0.085074;0.528263;, + 0.085074;0.555863;, + 0.085074;0.528263;, + 0.054996;0.528263;, + 0.085074;0.555863;, + 0.054996;0.528263;, + 0.029497;0.528263;, + 0.085074;0.555863;, + 0.029497;0.528263;, + 0.029497;0.555863;, + 0.029497;0.555863;, + 0.029497;0.528263;, + 0.012458;0.528263;, + 0.029497;0.555863;, + 0.012458;0.528263;, + 0.006475;0.528263;, + 0.029497;0.555863;, + 0.006475;0.528263;, + 0.029497;0.555863;, + 0.006475;0.528263;, + 0.000000;0.495707;, + 0.006475;0.495707;, + 0.006475;0.528263;, + 0.006475;0.495707;, + 0.012458;0.528263;, + 0.012458;0.528263;, + 0.006475;0.495707;, + 0.024918;0.495707;, + 0.012458;0.528263;, + 0.024918;0.495707;, + 0.029497;0.528263;, + 0.029497;0.528263;, + 0.024918;0.495707;, + 0.052517;0.495707;, + 0.029497;0.528263;, + 0.052517;0.495707;, + 0.054996;0.528263;, + 0.054996;0.528263;, + 0.052517;0.495707;, + 0.085074;0.495707;, + 0.054996;0.528263;, + 0.085074;0.495707;, + 0.085074;0.528263;, + 0.085074;0.528263;, + 0.085074;0.495707;, + 0.117631;0.495707;, + 0.085074;0.528263;, + 0.117631;0.495707;, + 0.115152;0.528263;, + 0.115152;0.528263;, + 0.117631;0.495707;, + 0.145232;0.495707;, + 0.115152;0.528263;, + 0.145232;0.495707;, + 0.140651;0.528263;, + 0.140651;0.528263;, + 0.145232;0.495707;, + 0.163673;0.495707;, + 0.140651;0.528263;, + 0.163673;0.495707;, + 0.157690;0.528263;, + 0.157690;0.528263;, + 0.163673;0.495707;, + 0.170148;0.495707;, + 0.157690;0.528263;, + 0.170148;0.495707;, + 0.163673;0.528263;, + 0.163673;0.528263;, + 0.170148;0.495707;, + 0.163673;0.495707;, + 0.163673;0.528263;, + 0.163673;0.495707;, + 0.157690;0.528263;, + 0.157690;0.528263;, + 0.163673;0.495707;, + 0.145232;0.495707;, + 0.157690;0.528263;, + 0.145232;0.495707;, + 0.140651;0.528263;, + 0.140651;0.528263;, + 0.145232;0.495707;, + 0.117631;0.495707;, + 0.140651;0.528263;, + 0.117631;0.495707;, + 0.115152;0.528263;, + 0.115152;0.528263;, + 0.117631;0.495707;, + 0.085074;0.495707;, + 0.115152;0.528263;, + 0.085074;0.495707;, + 0.085074;0.528263;, + 0.085074;0.528263;, + 0.085074;0.495707;, + 0.052517;0.495707;, + 0.085074;0.528263;, + 0.052517;0.495707;, + 0.054996;0.528263;, + 0.054996;0.528263;, + 0.052517;0.495707;, + 0.024916;0.495707;, + 0.054996;0.528263;, + 0.024916;0.495707;, + 0.029497;0.528263;, + 0.029497;0.528263;, + 0.024916;0.495707;, + 0.006475;0.495707;, + 0.029497;0.528263;, + 0.006475;0.495707;, + 0.012458;0.528263;, + 0.012458;0.528263;, + 0.006475;0.495707;, + 0.000000;0.495707;, + 0.012458;0.528263;, + 0.000000;0.495707;, + 0.006475;0.528263;, + 0.000000;0.495707;, + 0.024918;0.495707;, + 0.006475;0.495707;, + 0.000000;0.495707;, + 0.052517;0.495707;, + 0.024918;0.495707;, + 0.000000;0.495707;, + 0.085074;0.495707;, + 0.052517;0.495707;, + 0.000000;0.495707;, + 0.117631;0.495707;, + 0.085074;0.495707;, + 0.000000;0.495707;, + 0.145232;0.495707;, + 0.117631;0.495707;, + 0.000000;0.495707;, + 0.163673;0.495707;, + 0.145232;0.495707;, + 0.000000;0.495707;, + 0.170148;0.495707;, + 0.163673;0.495707;, + 0.000000;0.495707;, + 0.163673;0.495707;, + 0.170148;0.495707;, + 0.000000;0.495707;, + 0.145232;0.495707;, + 0.163673;0.495707;, + 0.000000;0.495707;, + 0.117631;0.495707;, + 0.145232;0.495707;, + 0.000000;0.495707;, + 0.085074;0.495707;, + 0.117631;0.495707;, + 0.000000;0.495707;, + 0.052517;0.495707;, + 0.085074;0.495707;, + 0.000000;0.495707;, + 0.024916;0.495707;, + 0.052517;0.495707;, + 0.000000;0.495707;, + 0.006475;0.495707;, + 0.024916;0.495707;, + 0.500290;0.492268;, + 0.506717;0.495979;, + 0.506717;0.495979;, + 0.500290;0.492268;, + 0.506717;0.495979;, + 0.500290;0.492268;, + 0.506717;0.495979;, + 0.506717;0.503400;, + 0.506717;0.503400;, + 0.506717;0.495979;, + 0.506717;0.503400;, + 0.506717;0.495979;, + 0.506717;0.503400;, + 0.500290;0.507110;, + 0.500290;0.507110;, + 0.506717;0.503400;, + 0.500290;0.507110;, + 0.506717;0.503400;, + 0.500290;0.507110;, + 0.493863;0.503400;, + 0.493863;0.503400;, + 0.500290;0.507110;, + 0.493863;0.503400;, + 0.500290;0.507110;, + 0.493863;0.503400;, + 0.493863;0.495979;, + 0.493863;0.495979;, + 0.493863;0.503400;, + 0.493863;0.495979;, + 0.493863;0.503400;, + 0.493863;0.495979;, + 0.500290;0.492268;, + 0.500290;0.492268;, + 0.493863;0.495979;, + 0.500290;0.492268;, + 0.493863;0.495979;, + 0.506717;0.503400;, + 0.506717;0.495979;, + 0.500290;0.492268;, + 0.500290;0.507110;, + 0.506717;0.503400;, + 0.500290;0.492268;, + 0.493863;0.503400;, + 0.500290;0.507110;, + 0.500290;0.492268;, + 0.493863;0.495979;, + 0.493863;0.503400;, + 0.500290;0.492268;, + 0.506717;0.503400;, + 0.500290;0.507110;, + 0.506717;0.495979;, + 0.500290;0.507110;, + 0.493863;0.503400;, + 0.506717;0.495979;, + 0.493863;0.503400;, + 0.493863;0.495979;, + 0.506717;0.495979;, + 0.493863;0.495979;, + 0.500290;0.492268;, + 0.506717;0.495979;, + 0.496558;0.161087;, + 0.503843;0.161087;, + 0.503843;0.836741;, + 0.496558;0.161087;, + 0.503843;0.836741;, + 0.496558;0.836741;, + 0.496558;0.161087;, + 0.496558;0.161087;, + 0.503843;0.161087;, + 0.496558;0.161087;, + 0.503843;0.161087;, + 0.503843;0.161087;, + 0.503843;0.161087;, + 0.503843;0.161087;, + 0.503843;0.836741;, + 0.503843;0.161087;, + 0.503843;0.836741;, + 0.503843;0.836741;, + 0.503843;0.836741;, + 0.503843;0.836741;, + 0.496558;0.836741;, + 0.503843;0.836741;, + 0.496558;0.836741;, + 0.496558;0.836741;, + 0.496558;0.836741;, + 0.496558;0.836741;, + 0.496558;0.161087;, + 0.496558;0.836741;, + 0.496558;0.161087;, + 0.496558;0.161087;, + 0.496558;0.161087;, + 0.496558;0.836741;, + 0.503843;0.836741;, + 0.496558;0.161087;, + 0.503843;0.836741;, + 0.503843;0.161087;, + 0.161087;0.503442;, + 0.161087;0.496157;, + 0.836742;0.496157;, + 0.161087;0.503442;, + 0.836742;0.496157;, + 0.836742;0.503442;, + 0.161087;0.503442;, + 0.161087;0.503442;, + 0.161087;0.496157;, + 0.161087;0.503442;, + 0.161087;0.496157;, + 0.161087;0.496157;, + 0.161087;0.496157;, + 0.161087;0.496157;, + 0.836740;0.496157;, + 0.161087;0.496157;, + 0.836740;0.496157;, + 0.836742;0.496157;, + 0.836742;0.496157;, + 0.836740;0.496157;, + 0.836740;0.503442;, + 0.836742;0.496157;, + 0.836740;0.503442;, + 0.836742;0.503442;, + 0.836742;0.503442;, + 0.836740;0.503442;, + 0.161087;0.503442;, + 0.836742;0.503442;, + 0.161087;0.503442;, + 0.161087;0.503442;, + 0.161087;0.503442;, + 0.836740;0.503442;, + 0.836740;0.496157;, + 0.161087;0.503442;, + 0.836740;0.496157;, + 0.161087;0.496157;, + 0.945004;0.425693;, + 0.927384;0.425693;, + 0.884846;0.425693;, + 0.945004;0.425693;, + 0.884846;0.425693;, + 0.902466;0.425693;, + 0.945004;0.425693;, + 0.902466;0.425693;, + 0.945004;0.425693;, + 0.945004;0.425693;, + 0.970503;0.444135;, + 0.937946;0.444135;, + 0.945004;0.425693;, + 0.937946;0.444135;, + 0.927384;0.425693;, + 0.927384;0.425693;, + 0.937946;0.444135;, + 0.872388;0.444135;, + 0.927384;0.425693;, + 0.872388;0.444135;, + 0.884846;0.425693;, + 0.884846;0.425693;, + 0.872388;0.444135;, + 0.859347;0.444135;, + 0.884846;0.425693;, + 0.859347;0.444135;, + 0.902466;0.425693;, + 0.902466;0.425693;, + 0.859347;0.444135;, + 0.914924;0.444135;, + 0.902466;0.425693;, + 0.914924;0.444135;, + 0.945004;0.425693;, + 0.945004;0.425693;, + 0.914924;0.444135;, + 0.970503;0.444135;, + 0.945004;0.425693;, + 0.970503;0.444135;, + 0.970503;0.444135;, + 0.945004;0.425693;, + 0.970503;0.444135;, + 0.945004;0.425693;, + 0.970503;0.444135;, + 0.993523;0.471735;, + 0.987540;0.471735;, + 0.970503;0.444135;, + 0.987540;0.471735;, + 0.970503;0.471735;, + 0.970503;0.444135;, + 0.970503;0.471735;, + 0.945004;0.471735;, + 0.970503;0.444135;, + 0.945004;0.471735;, + 0.937946;0.444135;, + 0.937946;0.444135;, + 0.945004;0.471735;, + 0.914924;0.471735;, + 0.937946;0.444135;, + 0.914924;0.471735;, + 0.884846;0.471735;, + 0.937946;0.444135;, + 0.884846;0.471735;, + 0.872388;0.444135;, + 0.872388;0.444135;, + 0.884846;0.471735;, + 0.859347;0.471735;, + 0.872388;0.444135;, + 0.859347;0.471735;, + 0.842310;0.471735;, + 0.872388;0.444135;, + 0.842310;0.471735;, + 0.836327;0.471735;, + 0.872388;0.444135;, + 0.836327;0.471735;, + 0.859347;0.444135;, + 0.859347;0.444135;, + 0.836327;0.471735;, + 0.842310;0.471735;, + 0.859347;0.444135;, + 0.842310;0.471735;, + 0.859347;0.471735;, + 0.859347;0.444135;, + 0.859347;0.471735;, + 0.884846;0.471735;, + 0.859347;0.444135;, + 0.884846;0.471735;, + 0.914924;0.444135;, + 0.914924;0.444135;, + 0.884846;0.471735;, + 0.914924;0.471735;, + 0.914924;0.444135;, + 0.914924;0.471735;, + 0.945004;0.471735;, + 0.914924;0.444135;, + 0.945004;0.471735;, + 0.970503;0.471735;, + 0.914924;0.444135;, + 0.970503;0.471735;, + 0.970503;0.444135;, + 0.970503;0.444135;, + 0.970503;0.471735;, + 0.987540;0.471735;, + 0.970503;0.444135;, + 0.987540;0.471735;, + 0.993523;0.471735;, + 0.970503;0.444135;, + 0.993523;0.471735;, + 0.970503;0.444135;, + 0.993523;0.471735;, + 1.000000;0.504293;, + 0.993523;0.504293;, + 0.993523;0.471735;, + 0.993523;0.504293;, + 0.987540;0.471735;, + 0.987540;0.471735;, + 0.993523;0.504293;, + 0.975082;0.504293;, + 0.987540;0.471735;, + 0.975082;0.504293;, + 0.970503;0.471735;, + 0.970503;0.471735;, + 0.975082;0.504293;, + 0.947481;0.504293;, + 0.970503;0.471735;, + 0.947481;0.504293;, + 0.945004;0.471735;, + 0.945004;0.471735;, + 0.947481;0.504293;, + 0.914924;0.504293;, + 0.945004;0.471735;, + 0.914924;0.504293;, + 0.914924;0.471735;, + 0.914924;0.471735;, + 0.914924;0.504293;, + 0.882369;0.504293;, + 0.914924;0.471735;, + 0.882369;0.504293;, + 0.884846;0.471735;, + 0.884846;0.471735;, + 0.882369;0.504293;, + 0.854768;0.504293;, + 0.884846;0.471735;, + 0.854768;0.504293;, + 0.859347;0.471735;, + 0.859347;0.471735;, + 0.854768;0.504293;, + 0.836327;0.504293;, + 0.859347;0.471735;, + 0.836327;0.504293;, + 0.842310;0.471735;, + 0.842310;0.471735;, + 0.836327;0.504293;, + 0.829850;0.504293;, + 0.842310;0.471735;, + 0.829850;0.504293;, + 0.836327;0.471735;, + 0.836327;0.471735;, + 0.829850;0.504293;, + 0.836327;0.504293;, + 0.836327;0.471735;, + 0.836327;0.504293;, + 0.842310;0.471735;, + 0.842310;0.471735;, + 0.836327;0.504293;, + 0.854768;0.504293;, + 0.842310;0.471735;, + 0.854768;0.504293;, + 0.859347;0.471735;, + 0.859347;0.471735;, + 0.854768;0.504293;, + 0.882369;0.504293;, + 0.859347;0.471735;, + 0.882369;0.504293;, + 0.884846;0.471735;, + 0.884846;0.471735;, + 0.882369;0.504293;, + 0.914924;0.504293;, + 0.884846;0.471735;, + 0.914924;0.504293;, + 0.914924;0.471735;, + 0.914924;0.471735;, + 0.914924;0.504293;, + 0.947481;0.504293;, + 0.914924;0.471735;, + 0.947481;0.504293;, + 0.945004;0.471735;, + 0.945004;0.471735;, + 0.947481;0.504293;, + 0.975082;0.504293;, + 0.945004;0.471735;, + 0.975082;0.504293;, + 0.970503;0.471735;, + 0.970503;0.471735;, + 0.975082;0.504293;, + 0.993523;0.504293;, + 0.970503;0.471735;, + 0.993523;0.504293;, + 0.987540;0.471735;, + 0.987540;0.471735;, + 0.993523;0.504293;, + 1.000000;0.504293;, + 0.987540;0.471735;, + 1.000000;0.504293;, + 0.993523;0.471735;, + 1.000000;0.504293;, + 0.975082;0.504293;, + 0.993523;0.504293;, + 1.000000;0.504293;, + 0.947481;0.504293;, + 0.975082;0.504293;, + 1.000000;0.504293;, + 0.914924;0.504293;, + 0.947481;0.504293;, + 1.000000;0.504293;, + 0.882369;0.504293;, + 0.914924;0.504293;, + 1.000000;0.504293;, + 0.854768;0.504293;, + 0.882369;0.504293;, + 1.000000;0.504293;, + 0.836327;0.504293;, + 0.854768;0.504293;, + 1.000000;0.504293;, + 0.829850;0.504293;, + 0.836327;0.504293;, + 1.000000;0.504293;, + 0.836327;0.504293;, + 0.829850;0.504293;, + 1.000000;0.504293;, + 0.854768;0.504293;, + 0.836327;0.504293;, + 1.000000;0.504293;, + 0.882369;0.504293;, + 0.854768;0.504293;, + 1.000000;0.504293;, + 0.914924;0.504293;, + 0.882369;0.504293;, + 1.000000;0.504293;, + 0.947481;0.504293;, + 0.914924;0.504293;, + 1.000000;0.504293;, + 0.975082;0.504293;, + 0.947481;0.504293;, + 1.000000;0.504293;, + 0.993523;0.504293;, + 0.975082;0.504293;, + 0.425693;0.054996;, + 0.425693;0.072616;, + 0.425693;0.115154;, + 0.425693;0.054996;, + 0.425693;0.115154;, + 0.425693;0.097534;, + 0.425693;0.054996;, + 0.425693;0.097534;, + 0.425693;0.054996;, + 0.425693;0.054996;, + 0.444135;0.029497;, + 0.444135;0.062054;, + 0.425693;0.054996;, + 0.444135;0.062054;, + 0.425693;0.072616;, + 0.425693;0.072616;, + 0.444135;0.062054;, + 0.444135;0.127612;, + 0.425693;0.072616;, + 0.444135;0.127612;, + 0.425693;0.115154;, + 0.425693;0.115154;, + 0.444135;0.127612;, + 0.444135;0.140651;, + 0.425693;0.115154;, + 0.444135;0.140651;, + 0.425693;0.097534;, + 0.425693;0.097534;, + 0.444135;0.140651;, + 0.444135;0.085074;, + 0.425693;0.097534;, + 0.444135;0.085074;, + 0.425693;0.054996;, + 0.425693;0.054996;, + 0.444135;0.085074;, + 0.444135;0.029497;, + 0.425693;0.054996;, + 0.444135;0.029497;, + 0.444135;0.029497;, + 0.425693;0.054996;, + 0.444135;0.029497;, + 0.425693;0.054996;, + 0.444135;0.029497;, + 0.471735;0.006477;, + 0.471735;0.012458;, + 0.444135;0.029497;, + 0.471735;0.012458;, + 0.471735;0.029497;, + 0.444135;0.029497;, + 0.471735;0.029497;, + 0.471735;0.054996;, + 0.444135;0.029497;, + 0.471735;0.054996;, + 0.444135;0.062054;, + 0.444135;0.062054;, + 0.471735;0.054996;, + 0.471735;0.085074;, + 0.444135;0.062054;, + 0.471735;0.085074;, + 0.471735;0.115152;, + 0.444135;0.062054;, + 0.471735;0.115152;, + 0.444135;0.127612;, + 0.444135;0.127612;, + 0.471735;0.115152;, + 0.471735;0.140651;, + 0.444135;0.127612;, + 0.471735;0.140651;, + 0.471735;0.157690;, + 0.444135;0.127612;, + 0.471735;0.157690;, + 0.471735;0.163673;, + 0.444135;0.127612;, + 0.471735;0.163673;, + 0.444135;0.140651;, + 0.444135;0.140651;, + 0.471735;0.163673;, + 0.471735;0.157690;, + 0.444135;0.140651;, + 0.471735;0.157690;, + 0.471735;0.140651;, + 0.444135;0.140651;, + 0.471735;0.140651;, + 0.471735;0.115154;, + 0.444135;0.140651;, + 0.471735;0.115154;, + 0.444135;0.085074;, + 0.444135;0.085074;, + 0.471735;0.115154;, + 0.471735;0.085074;, + 0.444135;0.085074;, + 0.471735;0.085074;, + 0.471735;0.054996;, + 0.444135;0.085074;, + 0.471735;0.054996;, + 0.471735;0.029497;, + 0.444135;0.085074;, + 0.471735;0.029497;, + 0.444135;0.029497;, + 0.444135;0.029497;, + 0.471735;0.029497;, + 0.471735;0.012458;, + 0.444135;0.029497;, + 0.471735;0.012458;, + 0.471735;0.006477;, + 0.444135;0.029497;, + 0.471735;0.006477;, + 0.444135;0.029497;, + 0.471735;0.006477;, + 0.504293;0.000000;, + 0.504293;0.006477;, + 0.471735;0.006477;, + 0.504293;0.006477;, + 0.471735;0.012458;, + 0.471735;0.012458;, + 0.504293;0.006477;, + 0.504293;0.024918;, + 0.471735;0.012458;, + 0.504293;0.024918;, + 0.471735;0.029497;, + 0.471735;0.029497;, + 0.504293;0.024918;, + 0.504293;0.052517;, + 0.471735;0.029497;, + 0.504293;0.052517;, + 0.471735;0.054996;, + 0.471735;0.054996;, + 0.504293;0.052517;, + 0.504293;0.085074;, + 0.471735;0.054996;, + 0.504293;0.085074;, + 0.471735;0.085074;, + 0.471735;0.085074;, + 0.504293;0.085074;, + 0.504293;0.117631;, + 0.471735;0.085074;, + 0.504293;0.117631;, + 0.471735;0.115152;, + 0.471735;0.115152;, + 0.504293;0.117631;, + 0.504293;0.145232;, + 0.471735;0.115152;, + 0.504293;0.145232;, + 0.471735;0.140651;, + 0.471735;0.140651;, + 0.504293;0.145232;, + 0.504293;0.163673;, + 0.471735;0.140651;, + 0.504293;0.163673;, + 0.471735;0.157690;, + 0.471735;0.157690;, + 0.504293;0.163673;, + 0.504293;0.170150;, + 0.471735;0.157690;, + 0.504293;0.170150;, + 0.471735;0.163673;, + 0.471735;0.163673;, + 0.504293;0.170150;, + 0.504293;0.163673;, + 0.471735;0.163673;, + 0.504293;0.163673;, + 0.471735;0.157690;, + 0.471735;0.157690;, + 0.504293;0.163673;, + 0.504293;0.145232;, + 0.471735;0.157690;, + 0.504293;0.145232;, + 0.471735;0.140651;, + 0.471735;0.140651;, + 0.504293;0.145232;, + 0.504293;0.117631;, + 0.471735;0.140651;, + 0.504293;0.117631;, + 0.471735;0.115154;, + 0.471735;0.115154;, + 0.504293;0.117631;, + 0.504293;0.085074;, + 0.471735;0.115154;, + 0.504293;0.085074;, + 0.471735;0.085074;, + 0.471735;0.085074;, + 0.504293;0.085074;, + 0.504293;0.052517;, + 0.471735;0.085074;, + 0.504293;0.052517;, + 0.471735;0.054996;, + 0.471735;0.054996;, + 0.504293;0.052517;, + 0.504293;0.024918;, + 0.471735;0.054996;, + 0.504293;0.024918;, + 0.471735;0.029497;, + 0.471735;0.029497;, + 0.504293;0.024918;, + 0.504293;0.006477;, + 0.471735;0.029497;, + 0.504293;0.006477;, + 0.471735;0.012458;, + 0.471735;0.012458;, + 0.504293;0.006477;, + 0.504293;0.000000;, + 0.471735;0.012458;, + 0.504293;0.000000;, + 0.471735;0.006477;, + 0.504293;0.000000;, + 0.504293;0.024918;, + 0.504293;0.006477;, + 0.504293;0.000000;, + 0.504293;0.052517;, + 0.504293;0.024918;, + 0.504293;0.000000;, + 0.504293;0.085074;, + 0.504293;0.052517;, + 0.504293;0.000000;, + 0.504293;0.117631;, + 0.504293;0.085074;, + 0.504293;0.000000;, + 0.504293;0.145232;, + 0.504293;0.117631;, + 0.504293;0.000000;, + 0.504293;0.163673;, + 0.504293;0.145232;, + 0.504293;0.000000;, + 0.504293;0.170150;, + 0.504293;0.163673;, + 0.504293;0.000000;, + 0.504293;0.163673;, + 0.504293;0.170150;, + 0.504293;0.000000;, + 0.504293;0.145232;, + 0.504293;0.163673;, + 0.504293;0.000000;, + 0.504293;0.117631;, + 0.504293;0.145232;, + 0.504293;0.000000;, + 0.504293;0.085074;, + 0.504293;0.117631;, + 0.504293;0.000000;, + 0.504293;0.052517;, + 0.504293;0.085074;, + 0.504293;0.000000;, + 0.504293;0.024918;, + 0.504293;0.052517;, + 0.504293;0.000000;, + 0.504293;0.006477;, + 0.504293;0.024918;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SPHERE.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SPHERE.X new file mode 100644 index 0000000..39ffd37 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SPHERE.X @@ -0,0 +1,1616 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +Header { + 1; + 0; + 1; +} + +Mesh { + 225; + 0.00000;-1.00000; 0.00000;, + 0.00000;-0.97493;-0.22252;, + 0.00000;-0.90097;-0.43388;, + 0.00000;-0.78183;-0.62349;, + 0.00000;-0.62349;-0.78183;, + 0.00000;-0.43388;-0.90097;, + 0.00000;-0.22252;-0.97493;, + 0.00000;-0.00000;-1.00000;, + 0.00000; 0.22252;-0.97493;, + 0.00000; 0.43388;-0.90097;, + 0.00000; 0.62349;-0.78183;, + 0.00000; 0.78183;-0.62349;, + 0.00000; 0.90097;-0.43388;, + 0.00000; 0.97493;-0.22252;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, +-0.09655;-0.97493;-0.20048;, +-0.18826;-0.90097;-0.39092;, +-0.27052;-0.78183;-0.56174;, +-0.33922;-0.62349;-0.70441;, +-0.39092;-0.43388;-0.81174;, +-0.42301;-0.22252;-0.87838;, +-0.43388;-0.00000;-0.90097;, +-0.42301; 0.22252;-0.87838;, +-0.39092; 0.43388;-0.81174;, +-0.33922; 0.62349;-0.70441;, +-0.27052; 0.78183;-0.56174;, +-0.18826; 0.90097;-0.39092;, +-0.09655; 0.97493;-0.20048;, +-0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, +-0.17397;-0.97493;-0.13874;, +-0.33922;-0.90097;-0.27052;, +-0.48746;-0.78183;-0.38874;, +-0.61126;-0.62349;-0.48746;, +-0.70441;-0.43388;-0.56174;, +-0.76223;-0.22252;-0.60786;, +-0.78183;-0.00000;-0.62349;, +-0.76223; 0.22252;-0.60786;, +-0.70441; 0.43388;-0.56174;, +-0.61126; 0.62349;-0.48746;, +-0.48746; 0.78183;-0.38874;, +-0.33922; 0.90097;-0.27052;, +-0.17397; 0.97493;-0.13874;, +-0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, +-0.21694;-0.97493;-0.04952;, +-0.42301;-0.90097;-0.09655;, +-0.60786;-0.78183;-0.13874;, +-0.76223;-0.62349;-0.17397;, +-0.87838;-0.43388;-0.20048;, +-0.95048;-0.22252;-0.21694;, +-0.97493;-0.00000;-0.22252;, +-0.95048; 0.22252;-0.21694;, +-0.87838; 0.43388;-0.20048;, +-0.76223; 0.62349;-0.17397;, +-0.60786; 0.78183;-0.13874;, +-0.42301; 0.90097;-0.09655;, +-0.21694; 0.97493;-0.04952;, +-0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, +-0.21694;-0.97493; 0.04952;, +-0.42301;-0.90097; 0.09655;, +-0.60786;-0.78183; 0.13874;, +-0.76223;-0.62349; 0.17397;, +-0.87838;-0.43388; 0.20048;, +-0.95048;-0.22252; 0.21694;, +-0.97493;-0.00000; 0.22252;, +-0.95048; 0.22252; 0.21694;, +-0.87838; 0.43388; 0.20048;, +-0.76223; 0.62349; 0.17397;, +-0.60786; 0.78183; 0.13874;, +-0.42301; 0.90097; 0.09655;, +-0.21694; 0.97493; 0.04952;, +-0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, +-0.17397;-0.97493; 0.13874;, +-0.33922;-0.90097; 0.27052;, +-0.48746;-0.78183; 0.38874;, +-0.61126;-0.62349; 0.48746;, +-0.70441;-0.43388; 0.56174;, +-0.76223;-0.22252; 0.60786;, +-0.78183;-0.00000; 0.62349;, +-0.76223; 0.22252; 0.60786;, +-0.70441; 0.43388; 0.56174;, +-0.61126; 0.62349; 0.48746;, +-0.48746; 0.78183; 0.38874;, +-0.33922; 0.90097; 0.27052;, +-0.17397; 0.97493; 0.13874;, +-0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, +-0.09655;-0.97493; 0.20048;, +-0.18826;-0.90097; 0.39092;, +-0.27052;-0.78183; 0.56174;, +-0.33922;-0.62349; 0.70441;, +-0.39092;-0.43388; 0.81174;, +-0.42301;-0.22252; 0.87838;, +-0.43388;-0.00000; 0.90097;, +-0.42301; 0.22252; 0.87838;, +-0.39092; 0.43388; 0.81174;, +-0.33922; 0.62349; 0.70441;, +-0.27052; 0.78183; 0.56174;, +-0.18826; 0.90097; 0.39092;, +-0.09655; 0.97493; 0.20048;, +-0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, +-0.00000;-0.97493; 0.22252;, +-0.00000;-0.90097; 0.43388;, +-0.00000;-0.78183; 0.62349;, +-0.00000;-0.62349; 0.78183;, +-0.00000;-0.43388; 0.90097;, +-0.00000;-0.22252; 0.97493;, +-0.00000;-0.00000; 1.00000;, +-0.00000; 0.22252; 0.97493;, +-0.00000; 0.43388; 0.90097;, +-0.00000; 0.62349; 0.78183;, +-0.00000; 0.78183; 0.62349;, +-0.00000; 0.90097; 0.43388;, +-0.00000; 0.97493; 0.22252;, +-0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.09655;-0.97493; 0.20048;, + 0.18826;-0.90097; 0.39092;, + 0.27052;-0.78183; 0.56174;, + 0.33922;-0.62349; 0.70441;, + 0.39092;-0.43388; 0.81174;, + 0.42301;-0.22252; 0.87838;, + 0.43388;-0.00000; 0.90097;, + 0.42301; 0.22252; 0.87838;, + 0.39092; 0.43388; 0.81174;, + 0.33922; 0.62349; 0.70441;, + 0.27052; 0.78183; 0.56174;, + 0.18826; 0.90097; 0.39092;, + 0.09655; 0.97493; 0.20048;, + 0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.17397;-0.97493; 0.13874;, + 0.33922;-0.90097; 0.27052;, + 0.48746;-0.78183; 0.38874;, + 0.61126;-0.62349; 0.48746;, + 0.70441;-0.43388; 0.56174;, + 0.76223;-0.22252; 0.60786;, + 0.78183;-0.00000; 0.62349;, + 0.76223; 0.22252; 0.60786;, + 0.70441; 0.43388; 0.56174;, + 0.61126; 0.62349; 0.48746;, + 0.48746; 0.78183; 0.38874;, + 0.33922; 0.90097; 0.27052;, + 0.17397; 0.97493; 0.13874;, + 0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.21694;-0.97493; 0.04952;, + 0.42301;-0.90097; 0.09655;, + 0.60786;-0.78183; 0.13874;, + 0.76223;-0.62349; 0.17397;, + 0.87838;-0.43388; 0.20048;, + 0.95048;-0.22252; 0.21694;, + 0.97493;-0.00000; 0.22252;, + 0.95048; 0.22252; 0.21694;, + 0.87838; 0.43388; 0.20048;, + 0.76223; 0.62349; 0.17397;, + 0.60786; 0.78183; 0.13874;, + 0.42301; 0.90097; 0.09655;, + 0.21694; 0.97493; 0.04952;, + 0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.21694;-0.97493;-0.04952;, + 0.42301;-0.90097;-0.09655;, + 0.60786;-0.78183;-0.13874;, + 0.76223;-0.62349;-0.17397;, + 0.87838;-0.43388;-0.20048;, + 0.95048;-0.22252;-0.21694;, + 0.97493;-0.00000;-0.22252;, + 0.95048; 0.22252;-0.21694;, + 0.87838; 0.43388;-0.20048;, + 0.76223; 0.62349;-0.17397;, + 0.60786; 0.78183;-0.13874;, + 0.42301; 0.90097;-0.09655;, + 0.21694; 0.97493;-0.04952;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.17397;-0.97493;-0.13874;, + 0.33922;-0.90097;-0.27052;, + 0.48746;-0.78183;-0.38874;, + 0.61126;-0.62349;-0.48746;, + 0.70441;-0.43388;-0.56174;, + 0.76223;-0.22252;-0.60786;, + 0.78183;-0.00000;-0.62349;, + 0.76223; 0.22252;-0.60786;, + 0.70441; 0.43388;-0.56174;, + 0.61126; 0.62349;-0.48746;, + 0.48746; 0.78183;-0.38874;, + 0.33922; 0.90097;-0.27052;, + 0.17397; 0.97493;-0.13874;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.09655;-0.97493;-0.20048;, + 0.18826;-0.90097;-0.39092;, + 0.27052;-0.78183;-0.56174;, + 0.33922;-0.62349;-0.70441;, + 0.39092;-0.43388;-0.81174;, + 0.42301;-0.22252;-0.87838;, + 0.43388;-0.00000;-0.90097;, + 0.42301; 0.22252;-0.87838;, + 0.39092; 0.43388;-0.81174;, + 0.33922; 0.62349;-0.70441;, + 0.27052; 0.78183;-0.56174;, + 0.18826; 0.90097;-0.39092;, + 0.09655; 0.97493;-0.20048;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.00000;-0.97493;-0.22252;, + 0.00000;-0.90097;-0.43388;, + 0.00000;-0.78183;-0.62349;, + 0.00000;-0.62349;-0.78183;, + 0.00000;-0.43388;-0.90097;, + 0.00000;-0.22252;-0.97493;, + 0.00000;-0.00000;-1.00000;, + 0.00000; 0.22252;-0.97493;, + 0.00000; 0.43388;-0.90097;, + 0.00000; 0.62349;-0.78183;, + 0.00000; 0.78183;-0.62349;, + 0.00000; 0.90097;-0.43388;, + 0.00000; 0.97493;-0.22252;, + 0.00000; 1.00000;-0.00000;; + +392; +3;0,15,1;, +3;1,15,16;, +3;1,16,2;, +3;2,16,17;, +3;2,17,3;, +3;3,17,18;, +3;3,18,4;, +3;4,18,19;, +3;4,19,5;, +3;5,19,20;, +3;5,20,6;, +3;6,20,21;, +3;6,21,7;, +3;7,21,22;, +3;7,22,8;, +3;8,22,23;, +3;8,23,9;, +3;9,23,24;, +3;9,24,10;, +3;10,24,25;, +3;10,25,11;, +3;11,25,26;, +3;11,26,12;, +3;12,26,27;, +3;12,27,13;, +3;13,27,28;, +3;13,28,14;, +3;14,28,29;, +3;15,30,16;, +3;16,30,31;, +3;16,31,17;, +3;17,31,32;, +3;17,32,18;, +3;18,32,33;, +3;18,33,19;, +3;19,33,34;, +3;19,34,20;, +3;20,34,35;, +3;20,35,21;, +3;21,35,36;, +3;21,36,22;, +3;22,36,37;, +3;22,37,23;, +3;23,37,38;, +3;23,38,24;, +3;24,38,39;, +3;24,39,25;, +3;25,39,40;, +3;25,40,26;, +3;26,40,41;, +3;26,41,27;, +3;27,41,42;, +3;27,42,28;, +3;28,42,43;, +3;28,43,29;, +3;29,43,44;, +3;30,45,31;, +3;31,45,46;, +3;31,46,32;, +3;32,46,47;, +3;32,47,33;, +3;33,47,48;, +3;33,48,34;, +3;34,48,49;, +3;34,49,35;, +3;35,49,50;, +3;35,50,36;, +3;36,50,51;, +3;36,51,37;, +3;37,51,52;, +3;37,52,38;, +3;38,52,53;, +3;38,53,39;, +3;39,53,54;, +3;39,54,40;, +3;40,54,55;, +3;40,55,41;, +3;41,55,56;, +3;41,56,42;, +3;42,56,57;, +3;42,57,43;, +3;43,57,58;, +3;43,58,44;, +3;44,58,59;, +3;45,60,46;, +3;46,60,61;, +3;46,61,47;, +3;47,61,62;, +3;47,62,48;, +3;48,62,63;, +3;48,63,49;, +3;49,63,64;, +3;49,64,50;, +3;50,64,65;, +3;50,65,51;, +3;51,65,66;, +3;51,66,52;, +3;52,66,67;, +3;52,67,53;, +3;53,67,68;, +3;53,68,54;, +3;54,68,69;, +3;54,69,55;, +3;55,69,70;, +3;55,70,56;, +3;56,70,71;, +3;56,71,57;, +3;57,71,72;, +3;57,72,58;, +3;58,72,73;, +3;58,73,59;, +3;59,73,74;, +3;60,75,61;, +3;61,75,76;, +3;61,76,62;, +3;62,76,77;, +3;62,77,63;, +3;63,77,78;, +3;63,78,64;, +3;64,78,79;, +3;64,79,65;, +3;65,79,80;, +3;65,80,66;, +3;66,80,81;, +3;66,81,67;, +3;67,81,82;, +3;67,82,68;, +3;68,82,83;, +3;68,83,69;, +3;69,83,84;, +3;69,84,70;, +3;70,84,85;, +3;70,85,71;, +3;71,85,86;, +3;71,86,72;, +3;72,86,87;, +3;72,87,73;, +3;73,87,88;, +3;73,88,74;, +3;74,88,89;, +3;75,90,76;, +3;76,90,91;, +3;76,91,77;, +3;77,91,92;, +3;77,92,78;, +3;78,92,93;, +3;78,93,79;, +3;79,93,94;, +3;79,94,80;, +3;80,94,95;, +3;80,95,81;, +3;81,95,96;, +3;81,96,82;, +3;82,96,97;, +3;82,97,83;, +3;83,97,98;, +3;83,98,84;, +3;84,98,99;, +3;84,99,85;, +3;85,99,100;, +3;85,100,86;, +3;86,100,101;, +3;86,101,87;, +3;87,101,102;, +3;87,102,88;, +3;88,102,103;, +3;88,103,89;, +3;89,103,104;, +3;90,105,91;, +3;91,105,106;, +3;91,106,92;, +3;92,106,107;, +3;92,107,93;, +3;93,107,108;, +3;93,108,94;, +3;94,108,109;, +3;94,109,95;, +3;95,109,110;, +3;95,110,96;, +3;96,110,111;, +3;96,111,97;, +3;97,111,112;, +3;97,112,98;, +3;98,112,113;, +3;98,113,99;, +3;99,113,114;, +3;99,114,100;, +3;100,114,115;, +3;100,115,101;, +3;101,115,116;, +3;101,116,102;, +3;102,116,117;, +3;102,117,103;, +3;103,117,118;, +3;103,118,104;, +3;104,118,119;, +3;105,120,106;, +3;106,120,121;, +3;106,121,107;, +3;107,121,122;, +3;107,122,108;, +3;108,122,123;, +3;108,123,109;, +3;109,123,124;, +3;109,124,110;, +3;110,124,125;, +3;110,125,111;, +3;111,125,126;, +3;111,126,112;, +3;112,126,127;, +3;112,127,113;, +3;113,127,128;, +3;113,128,114;, +3;114,128,129;, +3;114,129,115;, +3;115,129,130;, +3;115,130,116;, +3;116,130,131;, +3;116,131,117;, +3;117,131,132;, +3;117,132,118;, +3;118,132,133;, +3;118,133,119;, +3;119,133,134;, +3;120,135,121;, +3;121,135,136;, +3;121,136,122;, +3;122,136,137;, +3;122,137,123;, +3;123,137,138;, +3;123,138,124;, +3;124,138,139;, +3;124,139,125;, +3;125,139,140;, +3;125,140,126;, +3;126,140,141;, +3;126,141,127;, +3;127,141,142;, +3;127,142,128;, +3;128,142,143;, +3;128,143,129;, +3;129,143,144;, +3;129,144,130;, +3;130,144,145;, +3;130,145,131;, +3;131,145,146;, +3;131,146,132;, +3;132,146,147;, +3;132,147,133;, +3;133,147,148;, +3;133,148,134;, +3;134,148,149;, +3;135,150,136;, +3;136,150,151;, +3;136,151,137;, +3;137,151,152;, +3;137,152,138;, +3;138,152,153;, +3;138,153,139;, +3;139,153,154;, +3;139,154,140;, +3;140,154,155;, +3;140,155,141;, +3;141,155,156;, +3;141,156,142;, +3;142,156,157;, +3;142,157,143;, +3;143,157,158;, +3;143,158,144;, +3;144,158,159;, +3;144,159,145;, +3;145,159,160;, +3;145,160,146;, +3;146,160,161;, +3;146,161,147;, +3;147,161,162;, +3;147,162,148;, +3;148,162,163;, +3;148,163,149;, +3;149,163,164;, +3;150,165,151;, +3;151,165,166;, +3;151,166,152;, +3;152,166,167;, +3;152,167,153;, +3;153,167,168;, +3;153,168,154;, +3;154,168,169;, +3;154,169,155;, +3;155,169,170;, +3;155,170,156;, +3;156,170,171;, +3;156,171,157;, +3;157,171,172;, +3;157,172,158;, +3;158,172,173;, +3;158,173,159;, +3;159,173,174;, +3;159,174,160;, +3;160,174,175;, +3;160,175,161;, +3;161,175,176;, +3;161,176,162;, +3;162,176,177;, +3;162,177,163;, +3;163,177,178;, +3;163,178,164;, +3;164,178,179;, +3;165,180,166;, +3;166,180,181;, +3;166,181,167;, +3;167,181,182;, +3;167,182,168;, +3;168,182,183;, +3;168,183,169;, +3;169,183,184;, +3;169,184,170;, +3;170,184,185;, +3;170,185,171;, +3;171,185,186;, +3;171,186,172;, +3;172,186,187;, +3;172,187,173;, +3;173,187,188;, +3;173,188,174;, +3;174,188,189;, +3;174,189,175;, +3;175,189,190;, +3;175,190,176;, +3;176,190,191;, +3;176,191,177;, +3;177,191,192;, +3;177,192,178;, +3;178,192,193;, +3;178,193,179;, +3;179,193,194;, +3;180,195,181;, +3;181,195,196;, +3;181,196,182;, +3;182,196,197;, +3;182,197,183;, +3;183,197,198;, +3;183,198,184;, +3;184,198,199;, +3;184,199,185;, +3;185,199,200;, +3;185,200,186;, +3;186,200,201;, +3;186,201,187;, +3;187,201,202;, +3;187,202,188;, +3;188,202,203;, +3;188,203,189;, +3;189,203,204;, +3;189,204,190;, +3;190,204,205;, +3;190,205,191;, +3;191,205,206;, +3;191,206,192;, +3;192,206,207;, +3;192,207,193;, +3;193,207,208;, +3;193,208,194;, +3;194,208,209;, +3;195,210,196;, +3;196,210,211;, +3;196,211,197;, +3;197,211,212;, +3;197,212,198;, +3;198,212,213;, +3;198,213,199;, +3;199,213,214;, +3;199,214,200;, +3;200,214,215;, +3;200,215,201;, +3;201,215,216;, +3;201,216,202;, +3;202,216,217;, +3;202,217,203;, +3;203,217,218;, +3;203,218,204;, +3;204,218,219;, +3;204,219,205;, +3;205,219,220;, +3;205,220,206;, +3;206,220,221;, +3;206,221,207;, +3;207,221,222;, +3;207,222,208;, +3;208,222,223;, +3;208,223,209;, +3;209,223,224;; + MeshMaterialList { + 1; + 1; + 0;; + Material { + 1.000000;1.000000;1.000000;1.000000;; + 0.000000; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + MeshNormals { + 225; + 0.00000;-1.00000; 0.00000;, + 0.00000;-0.97493;-0.22252;, + 0.00000;-0.90097;-0.43388;, + 0.00000;-0.78183;-0.62349;, + 0.00000;-0.62349;-0.78183;, + 0.00000;-0.43388;-0.90097;, + 0.00000;-0.22252;-0.97493;, + 0.00000;-0.00000;-1.00000;, + 0.00000; 0.22252;-0.97493;, + 0.00000; 0.43388;-0.90097;, + 0.00000; 0.62349;-0.78183;, + 0.00000; 0.78183;-0.62349;, + 0.00000; 0.90097;-0.43388;, + 0.00000; 0.97493;-0.22252;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + -0.09655;-0.97493;-0.20048;, + -0.18826;-0.90097;-0.39092;, + -0.27052;-0.78183;-0.56174;, + -0.33922;-0.62349;-0.70441;, + -0.39092;-0.43388;-0.81174;, + -0.42301;-0.22252;-0.87838;, + -0.43388;-0.00000;-0.90097;, + -0.42301; 0.22252;-0.87838;, + -0.39092; 0.43388;-0.81174;, + -0.33922; 0.62349;-0.70441;, + -0.27052; 0.78183;-0.56174;, + -0.18826; 0.90097;-0.39092;, + -0.09655; 0.97493;-0.20048;, + -0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + -0.17397;-0.97493;-0.13874;, + -0.33922;-0.90097;-0.27052;, + -0.48746;-0.78183;-0.38874;, + -0.61126;-0.62349;-0.48746;, + -0.70441;-0.43388;-0.56174;, + -0.76223;-0.22252;-0.60786;, + -0.78183;-0.00000;-0.62349;, + -0.76223; 0.22252;-0.60786;, + -0.70441; 0.43388;-0.56174;, + -0.61126; 0.62349;-0.48746;, + -0.48746; 0.78183;-0.38874;, + -0.33922; 0.90097;-0.27052;, + -0.17397; 0.97493;-0.13874;, + -0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + -0.21694;-0.97493;-0.04952;, + -0.42301;-0.90097;-0.09655;, + -0.60786;-0.78183;-0.13874;, + -0.76223;-0.62349;-0.17397;, + -0.87838;-0.43388;-0.20048;, + -0.95048;-0.22252;-0.21694;, + -0.97493;-0.00000;-0.22252;, + -0.95048; 0.22252;-0.21694;, + -0.87838; 0.43388;-0.20048;, + -0.76223; 0.62349;-0.17397;, + -0.60786; 0.78183;-0.13874;, + -0.42301; 0.90097;-0.09655;, + -0.21694; 0.97493;-0.04952;, + -0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + -0.21694;-0.97493; 0.04952;, + -0.42301;-0.90097; 0.09655;, + -0.60786;-0.78183; 0.13874;, + -0.76223;-0.62349; 0.17397;, + -0.87838;-0.43388; 0.20048;, + -0.95048;-0.22252; 0.21694;, + -0.97493;-0.00000; 0.22252;, + -0.95048; 0.22252; 0.21694;, + -0.87838; 0.43388; 0.20048;, + -0.76223; 0.62349; 0.17397;, + -0.60786; 0.78183; 0.13874;, + -0.42301; 0.90097; 0.09655;, + -0.21694; 0.97493; 0.04952;, + -0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + -0.17397;-0.97493; 0.13874;, + -0.33922;-0.90097; 0.27052;, + -0.48746;-0.78183; 0.38874;, + -0.61126;-0.62349; 0.48746;, + -0.70441;-0.43388; 0.56174;, + -0.76223;-0.22252; 0.60786;, + -0.78183;-0.00000; 0.62349;, + -0.76223; 0.22252; 0.60786;, + -0.70441; 0.43388; 0.56174;, + -0.61126; 0.62349; 0.48746;, + -0.48746; 0.78183; 0.38874;, + -0.33922; 0.90097; 0.27052;, + -0.17397; 0.97493; 0.13874;, + -0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + -0.09655;-0.97493; 0.20048;, + -0.18826;-0.90097; 0.39092;, + -0.27052;-0.78183; 0.56174;, + -0.33922;-0.62349; 0.70441;, + -0.39092;-0.43388; 0.81174;, + -0.42301;-0.22252; 0.87838;, + -0.43388;-0.00000; 0.90097;, + -0.42301; 0.22252; 0.87838;, + -0.39092; 0.43388; 0.81174;, + -0.33922; 0.62349; 0.70441;, + -0.27052; 0.78183; 0.56174;, + -0.18826; 0.90097; 0.39092;, + -0.09655; 0.97493; 0.20048;, + -0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + -0.00000;-0.97493; 0.22252;, + -0.00000;-0.90097; 0.43388;, + -0.00000;-0.78183; 0.62349;, + -0.00000;-0.62349; 0.78183;, + -0.00000;-0.43388; 0.90097;, + -0.00000;-0.22252; 0.97493;, + -0.00000;-0.00000; 1.00000;, + -0.00000; 0.22252; 0.97493;, + -0.00000; 0.43388; 0.90097;, + -0.00000; 0.62349; 0.78183;, + -0.00000; 0.78183; 0.62349;, + -0.00000; 0.90097; 0.43388;, + -0.00000; 0.97493; 0.22252;, + -0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.09655;-0.97493; 0.20048;, + 0.18826;-0.90097; 0.39092;, + 0.27052;-0.78183; 0.56174;, + 0.33922;-0.62349; 0.70441;, + 0.39092;-0.43388; 0.81174;, + 0.42301;-0.22252; 0.87838;, + 0.43388;-0.00000; 0.90097;, + 0.42301; 0.22252; 0.87838;, + 0.39092; 0.43388; 0.81174;, + 0.33922; 0.62349; 0.70441;, + 0.27052; 0.78183; 0.56174;, + 0.18826; 0.90097; 0.39092;, + 0.09655; 0.97493; 0.20048;, + 0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.17397;-0.97493; 0.13874;, + 0.33922;-0.90097; 0.27052;, + 0.48746;-0.78183; 0.38874;, + 0.61126;-0.62349; 0.48746;, + 0.70441;-0.43388; 0.56174;, + 0.76223;-0.22252; 0.60786;, + 0.78183;-0.00000; 0.62349;, + 0.76223; 0.22252; 0.60786;, + 0.70441; 0.43388; 0.56174;, + 0.61126; 0.62349; 0.48746;, + 0.48746; 0.78183; 0.38874;, + 0.33922; 0.90097; 0.27052;, + 0.17397; 0.97493; 0.13874;, + 0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.21694;-0.97493; 0.04952;, + 0.42301;-0.90097; 0.09655;, + 0.60786;-0.78183; 0.13874;, + 0.76223;-0.62349; 0.17397;, + 0.87838;-0.43388; 0.20048;, + 0.95048;-0.22252; 0.21694;, + 0.97493;-0.00000; 0.22252;, + 0.95048; 0.22252; 0.21694;, + 0.87838; 0.43388; 0.20048;, + 0.76223; 0.62349; 0.17397;, + 0.60786; 0.78183; 0.13874;, + 0.42301; 0.90097; 0.09655;, + 0.21694; 0.97493; 0.04952;, + 0.00000; 1.00000; 0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.21694;-0.97493;-0.04952;, + 0.42301;-0.90097;-0.09655;, + 0.60786;-0.78183;-0.13874;, + 0.76223;-0.62349;-0.17397;, + 0.87838;-0.43388;-0.20048;, + 0.95048;-0.22252;-0.21694;, + 0.97493;-0.00000;-0.22252;, + 0.95048; 0.22252;-0.21694;, + 0.87838; 0.43388;-0.20048;, + 0.76223; 0.62349;-0.17397;, + 0.60786; 0.78183;-0.13874;, + 0.42301; 0.90097;-0.09655;, + 0.21694; 0.97493;-0.04952;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.17397;-0.97493;-0.13874;, + 0.33922;-0.90097;-0.27052;, + 0.48746;-0.78183;-0.38874;, + 0.61126;-0.62349;-0.48746;, + 0.70441;-0.43388;-0.56174;, + 0.76223;-0.22252;-0.60786;, + 0.78183;-0.00000;-0.62349;, + 0.76223; 0.22252;-0.60786;, + 0.70441; 0.43388;-0.56174;, + 0.61126; 0.62349;-0.48746;, + 0.48746; 0.78183;-0.38874;, + 0.33922; 0.90097;-0.27052;, + 0.17397; 0.97493;-0.13874;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.09655;-0.97493;-0.20048;, + 0.18826;-0.90097;-0.39092;, + 0.27052;-0.78183;-0.56174;, + 0.33922;-0.62349;-0.70441;, + 0.39092;-0.43388;-0.81174;, + 0.42301;-0.22252;-0.87838;, + 0.43388;-0.00000;-0.90097;, + 0.42301; 0.22252;-0.87838;, + 0.39092; 0.43388;-0.81174;, + 0.33922; 0.62349;-0.70441;, + 0.27052; 0.78183;-0.56174;, + 0.18826; 0.90097;-0.39092;, + 0.09655; 0.97493;-0.20048;, + 0.00000; 1.00000;-0.00000;, + 0.00000;-1.00000; 0.00000;, + 0.00000;-0.97493;-0.22252;, + 0.00000;-0.90097;-0.43388;, + 0.00000;-0.78183;-0.62349;, + 0.00000;-0.62349;-0.78183;, + 0.00000;-0.43388;-0.90097;, + 0.00000;-0.22252;-0.97493;, + 0.00000;-0.00000;-1.00000;, + 0.00000; 0.22252;-0.97493;, + 0.00000; 0.43388;-0.90097;, + 0.00000; 0.62349;-0.78183;, + 0.00000; 0.78183;-0.62349;, + 0.00000; 0.90097;-0.43388;, + 0.00000; 0.97493;-0.22252;, + 0.00000; 1.00000;-0.00000;; + + 392; + 3;0,15,1;, + 3;1,15,16;, + 3;1,16,2;, + 3;2,16,17;, + 3;2,17,3;, + 3;3,17,18;, + 3;3,18,4;, + 3;4,18,19;, + 3;4,19,5;, + 3;5,19,20;, + 3;5,20,6;, + 3;6,20,21;, + 3;6,21,7;, + 3;7,21,22;, + 3;7,22,8;, + 3;8,22,23;, + 3;8,23,9;, + 3;9,23,24;, + 3;9,24,10;, + 3;10,24,25;, + 3;10,25,11;, + 3;11,25,26;, + 3;11,26,12;, + 3;12,26,27;, + 3;12,27,13;, + 3;13,27,28;, + 3;13,28,14;, + 3;14,28,29;, + 3;15,30,16;, + 3;16,30,31;, + 3;16,31,17;, + 3;17,31,32;, + 3;17,32,18;, + 3;18,32,33;, + 3;18,33,19;, + 3;19,33,34;, + 3;19,34,20;, + 3;20,34,35;, + 3;20,35,21;, + 3;21,35,36;, + 3;21,36,22;, + 3;22,36,37;, + 3;22,37,23;, + 3;23,37,38;, + 3;23,38,24;, + 3;24,38,39;, + 3;24,39,25;, + 3;25,39,40;, + 3;25,40,26;, + 3;26,40,41;, + 3;26,41,27;, + 3;27,41,42;, + 3;27,42,28;, + 3;28,42,43;, + 3;28,43,29;, + 3;29,43,44;, + 3;30,45,31;, + 3;31,45,46;, + 3;31,46,32;, + 3;32,46,47;, + 3;32,47,33;, + 3;33,47,48;, + 3;33,48,34;, + 3;34,48,49;, + 3;34,49,35;, + 3;35,49,50;, + 3;35,50,36;, + 3;36,50,51;, + 3;36,51,37;, + 3;37,51,52;, + 3;37,52,38;, + 3;38,52,53;, + 3;38,53,39;, + 3;39,53,54;, + 3;39,54,40;, + 3;40,54,55;, + 3;40,55,41;, + 3;41,55,56;, + 3;41,56,42;, + 3;42,56,57;, + 3;42,57,43;, + 3;43,57,58;, + 3;43,58,44;, + 3;44,58,59;, + 3;45,60,46;, + 3;46,60,61;, + 3;46,61,47;, + 3;47,61,62;, + 3;47,62,48;, + 3;48,62,63;, + 3;48,63,49;, + 3;49,63,64;, + 3;49,64,50;, + 3;50,64,65;, + 3;50,65,51;, + 3;51,65,66;, + 3;51,66,52;, + 3;52,66,67;, + 3;52,67,53;, + 3;53,67,68;, + 3;53,68,54;, + 3;54,68,69;, + 3;54,69,55;, + 3;55,69,70;, + 3;55,70,56;, + 3;56,70,71;, + 3;56,71,57;, + 3;57,71,72;, + 3;57,72,58;, + 3;58,72,73;, + 3;58,73,59;, + 3;59,73,74;, + 3;60,75,61;, + 3;61,75,76;, + 3;61,76,62;, + 3;62,76,77;, + 3;62,77,63;, + 3;63,77,78;, + 3;63,78,64;, + 3;64,78,79;, + 3;64,79,65;, + 3;65,79,80;, + 3;65,80,66;, + 3;66,80,81;, + 3;66,81,67;, + 3;67,81,82;, + 3;67,82,68;, + 3;68,82,83;, + 3;68,83,69;, + 3;69,83,84;, + 3;69,84,70;, + 3;70,84,85;, + 3;70,85,71;, + 3;71,85,86;, + 3;71,86,72;, + 3;72,86,87;, + 3;72,87,73;, + 3;73,87,88;, + 3;73,88,74;, + 3;74,88,89;, + 3;75,90,76;, + 3;76,90,91;, + 3;76,91,77;, + 3;77,91,92;, + 3;77,92,78;, + 3;78,92,93;, + 3;78,93,79;, + 3;79,93,94;, + 3;79,94,80;, + 3;80,94,95;, + 3;80,95,81;, + 3;81,95,96;, + 3;81,96,82;, + 3;82,96,97;, + 3;82,97,83;, + 3;83,97,98;, + 3;83,98,84;, + 3;84,98,99;, + 3;84,99,85;, + 3;85,99,100;, + 3;85,100,86;, + 3;86,100,101;, + 3;86,101,87;, + 3;87,101,102;, + 3;87,102,88;, + 3;88,102,103;, + 3;88,103,89;, + 3;89,103,104;, + 3;90,105,91;, + 3;91,105,106;, + 3;91,106,92;, + 3;92,106,107;, + 3;92,107,93;, + 3;93,107,108;, + 3;93,108,94;, + 3;94,108,109;, + 3;94,109,95;, + 3;95,109,110;, + 3;95,110,96;, + 3;96,110,111;, + 3;96,111,97;, + 3;97,111,112;, + 3;97,112,98;, + 3;98,112,113;, + 3;98,113,99;, + 3;99,113,114;, + 3;99,114,100;, + 3;100,114,115;, + 3;100,115,101;, + 3;101,115,116;, + 3;101,116,102;, + 3;102,116,117;, + 3;102,117,103;, + 3;103,117,118;, + 3;103,118,104;, + 3;104,118,119;, + 3;105,120,106;, + 3;106,120,121;, + 3;106,121,107;, + 3;107,121,122;, + 3;107,122,108;, + 3;108,122,123;, + 3;108,123,109;, + 3;109,123,124;, + 3;109,124,110;, + 3;110,124,125;, + 3;110,125,111;, + 3;111,125,126;, + 3;111,126,112;, + 3;112,126,127;, + 3;112,127,113;, + 3;113,127,128;, + 3;113,128,114;, + 3;114,128,129;, + 3;114,129,115;, + 3;115,129,130;, + 3;115,130,116;, + 3;116,130,131;, + 3;116,131,117;, + 3;117,131,132;, + 3;117,132,118;, + 3;118,132,133;, + 3;118,133,119;, + 3;119,133,134;, + 3;120,135,121;, + 3;121,135,136;, + 3;121,136,122;, + 3;122,136,137;, + 3;122,137,123;, + 3;123,137,138;, + 3;123,138,124;, + 3;124,138,139;, + 3;124,139,125;, + 3;125,139,140;, + 3;125,140,126;, + 3;126,140,141;, + 3;126,141,127;, + 3;127,141,142;, + 3;127,142,128;, + 3;128,142,143;, + 3;128,143,129;, + 3;129,143,144;, + 3;129,144,130;, + 3;130,144,145;, + 3;130,145,131;, + 3;131,145,146;, + 3;131,146,132;, + 3;132,146,147;, + 3;132,147,133;, + 3;133,147,148;, + 3;133,148,134;, + 3;134,148,149;, + 3;135,150,136;, + 3;136,150,151;, + 3;136,151,137;, + 3;137,151,152;, + 3;137,152,138;, + 3;138,152,153;, + 3;138,153,139;, + 3;139,153,154;, + 3;139,154,140;, + 3;140,154,155;, + 3;140,155,141;, + 3;141,155,156;, + 3;141,156,142;, + 3;142,156,157;, + 3;142,157,143;, + 3;143,157,158;, + 3;143,158,144;, + 3;144,158,159;, + 3;144,159,145;, + 3;145,159,160;, + 3;145,160,146;, + 3;146,160,161;, + 3;146,161,147;, + 3;147,161,162;, + 3;147,162,148;, + 3;148,162,163;, + 3;148,163,149;, + 3;149,163,164;, + 3;150,165,151;, + 3;151,165,166;, + 3;151,166,152;, + 3;152,166,167;, + 3;152,167,153;, + 3;153,167,168;, + 3;153,168,154;, + 3;154,168,169;, + 3;154,169,155;, + 3;155,169,170;, + 3;155,170,156;, + 3;156,170,171;, + 3;156,171,157;, + 3;157,171,172;, + 3;157,172,158;, + 3;158,172,173;, + 3;158,173,159;, + 3;159,173,174;, + 3;159,174,160;, + 3;160,174,175;, + 3;160,175,161;, + 3;161,175,176;, + 3;161,176,162;, + 3;162,176,177;, + 3;162,177,163;, + 3;163,177,178;, + 3;163,178,164;, + 3;164,178,179;, + 3;165,180,166;, + 3;166,180,181;, + 3;166,181,167;, + 3;167,181,182;, + 3;167,182,168;, + 3;168,182,183;, + 3;168,183,169;, + 3;169,183,184;, + 3;169,184,170;, + 3;170,184,185;, + 3;170,185,171;, + 3;171,185,186;, + 3;171,186,172;, + 3;172,186,187;, + 3;172,187,173;, + 3;173,187,188;, + 3;173,188,174;, + 3;174,188,189;, + 3;174,189,175;, + 3;175,189,190;, + 3;175,190,176;, + 3;176,190,191;, + 3;176,191,177;, + 3;177,191,192;, + 3;177,192,178;, + 3;178,192,193;, + 3;178,193,179;, + 3;179,193,194;, + 3;180,195,181;, + 3;181,195,196;, + 3;181,196,182;, + 3;182,196,197;, + 3;182,197,183;, + 3;183,197,198;, + 3;183,198,184;, + 3;184,198,199;, + 3;184,199,185;, + 3;185,199,200;, + 3;185,200,186;, + 3;186,200,201;, + 3;186,201,187;, + 3;187,201,202;, + 3;187,202,188;, + 3;188,202,203;, + 3;188,203,189;, + 3;189,203,204;, + 3;189,204,190;, + 3;190,204,205;, + 3;190,205,191;, + 3;191,205,206;, + 3;191,206,192;, + 3;192,206,207;, + 3;192,207,193;, + 3;193,207,208;, + 3;193,208,194;, + 3;194,208,209;, + 3;195,210,196;, + 3;196,210,211;, + 3;196,211,197;, + 3;197,211,212;, + 3;197,212,198;, + 3;198,212,213;, + 3;198,213,199;, + 3;199,213,214;, + 3;199,214,200;, + 3;200,214,215;, + 3;200,215,201;, + 3;201,215,216;, + 3;201,216,202;, + 3;202,216,217;, + 3;202,217,203;, + 3;203,217,218;, + 3;203,218,204;, + 3;204,218,219;, + 3;204,219,205;, + 3;205,219,220;, + 3;205,220,206;, + 3;206,220,221;, + 3;206,221,207;, + 3;207,221,222;, + 3;207,222,208;, + 3;208,222,223;, + 3;208,223,209;, + 3;209,223,224;; +} + MeshTextureCoords { + 225; + 1.00000; 0.00000;, + 1.00000; 0.07143;, + 1.00000; 0.14286;, + 1.00000; 0.21429;, + 1.00000; 0.28571;, + 1.00000; 0.35714;, + 1.00000; 0.42857;, + 1.00000; 0.50000;, + 1.00000; 0.57143;, + 1.00000; 0.64286;, + 1.00000; 0.71429;, + 1.00000; 0.78571;, + 1.00000; 0.85714;, + 1.00000; 0.92857;, + 1.00000; 1.00000;, + 0.92857; 0.00000;, + 0.92857; 0.07143;, + 0.92857; 0.14286;, + 0.92857; 0.21429;, + 0.92857; 0.28571;, + 0.92857; 0.35714;, + 0.92857; 0.42857;, + 0.92857; 0.50000;, + 0.92857; 0.57143;, + 0.92857; 0.64286;, + 0.92857; 0.71429;, + 0.92857; 0.78571;, + 0.92857; 0.85714;, + 0.92857; 0.92857;, + 0.92857; 1.00000;, + 0.85714; 0.00000;, + 0.85714; 0.07143;, + 0.85714; 0.14286;, + 0.85714; 0.21429;, + 0.85714; 0.28571;, + 0.85714; 0.35714;, + 0.85714; 0.42857;, + 0.85714; 0.50000;, + 0.85714; 0.57143;, + 0.85714; 0.64286;, + 0.85714; 0.71429;, + 0.85714; 0.78571;, + 0.85714; 0.85714;, + 0.85714; 0.92857;, + 0.85714; 1.00000;, + 0.78571; 0.00000;, + 0.78571; 0.07143;, + 0.78571; 0.14286;, + 0.78571; 0.21429;, + 0.78571; 0.28571;, + 0.78571; 0.35714;, + 0.78571; 0.42857;, + 0.78571; 0.50000;, + 0.78571; 0.57143;, + 0.78571; 0.64286;, + 0.78571; 0.71429;, + 0.78571; 0.78571;, + 0.78571; 0.85714;, + 0.78571; 0.92857;, + 0.78571; 1.00000;, + 0.71429; 0.00000;, + 0.71429; 0.07143;, + 0.71429; 0.14286;, + 0.71429; 0.21429;, + 0.71429; 0.28571;, + 0.71429; 0.35714;, + 0.71429; 0.42857;, + 0.71429; 0.50000;, + 0.71429; 0.57143;, + 0.71429; 0.64286;, + 0.71429; 0.71429;, + 0.71429; 0.78571;, + 0.71429; 0.85714;, + 0.71429; 0.92857;, + 0.71429; 1.00000;, + 0.64286; 0.00000;, + 0.64286; 0.07143;, + 0.64286; 0.14286;, + 0.64286; 0.21429;, + 0.64286; 0.28571;, + 0.64286; 0.35714;, + 0.64286; 0.42857;, + 0.64286; 0.50000;, + 0.64286; 0.57143;, + 0.64286; 0.64286;, + 0.64286; 0.71429;, + 0.64286; 0.78571;, + 0.64286; 0.85714;, + 0.64286; 0.92857;, + 0.64286; 1.00000;, + 0.57143; 0.00000;, + 0.57143; 0.07143;, + 0.57143; 0.14286;, + 0.57143; 0.21429;, + 0.57143; 0.28571;, + 0.57143; 0.35714;, + 0.57143; 0.42857;, + 0.57143; 0.50000;, + 0.57143; 0.57143;, + 0.57143; 0.64286;, + 0.57143; 0.71429;, + 0.57143; 0.78571;, + 0.57143; 0.85714;, + 0.57143; 0.92857;, + 0.57143; 1.00000;, + 0.50000; 0.00000;, + 0.50000; 0.07143;, + 0.50000; 0.14286;, + 0.50000; 0.21429;, + 0.50000; 0.28571;, + 0.50000; 0.35714;, + 0.50000; 0.42857;, + 0.50000; 0.50000;, + 0.50000; 0.57143;, + 0.50000; 0.64286;, + 0.50000; 0.71429;, + 0.50000; 0.78571;, + 0.50000; 0.85714;, + 0.50000; 0.92857;, + 0.50000; 1.00000;, + 0.42857; 0.00000;, + 0.42857; 0.07143;, + 0.42857; 0.14286;, + 0.42857; 0.21429;, + 0.42857; 0.28571;, + 0.42857; 0.35714;, + 0.42857; 0.42857;, + 0.42857; 0.50000;, + 0.42857; 0.57143;, + 0.42857; 0.64286;, + 0.42857; 0.71429;, + 0.42857; 0.78571;, + 0.42857; 0.85714;, + 0.42857; 0.92857;, + 0.42857; 1.00000;, + 0.35714; 0.00000;, + 0.35714; 0.07143;, + 0.35714; 0.14286;, + 0.35714; 0.21429;, + 0.35714; 0.28571;, + 0.35714; 0.35714;, + 0.35714; 0.42857;, + 0.35714; 0.50000;, + 0.35714; 0.57143;, + 0.35714; 0.64286;, + 0.35714; 0.71429;, + 0.35714; 0.78571;, + 0.35714; 0.85714;, + 0.35714; 0.92857;, + 0.35714; 1.00000;, + 0.28571; 0.00000;, + 0.28571; 0.07143;, + 0.28571; 0.14286;, + 0.28571; 0.21429;, + 0.28571; 0.28571;, + 0.28571; 0.35714;, + 0.28571; 0.42857;, + 0.28571; 0.50000;, + 0.28571; 0.57143;, + 0.28571; 0.64286;, + 0.28571; 0.71429;, + 0.28571; 0.78571;, + 0.28571; 0.85714;, + 0.28571; 0.92857;, + 0.28571; 1.00000;, + 0.21429; 0.00000;, + 0.21429; 0.07143;, + 0.21429; 0.14286;, + 0.21429; 0.21429;, + 0.21429; 0.28571;, + 0.21429; 0.35714;, + 0.21429; 0.42857;, + 0.21429; 0.50000;, + 0.21429; 0.57143;, + 0.21429; 0.64286;, + 0.21429; 0.71429;, + 0.21429; 0.78571;, + 0.21429; 0.85714;, + 0.21429; 0.92857;, + 0.21429; 1.00000;, + 0.14286; 0.00000;, + 0.14286; 0.07143;, + 0.14286; 0.14286;, + 0.14286; 0.21429;, + 0.14286; 0.28571;, + 0.14286; 0.35714;, + 0.14286; 0.42857;, + 0.14286; 0.50000;, + 0.14286; 0.57143;, + 0.14286; 0.64286;, + 0.14286; 0.71429;, + 0.14286; 0.78571;, + 0.14286; 0.85714;, + 0.14286; 0.92857;, + 0.14286; 1.00000;, + 0.07143; 0.00000;, + 0.07143; 0.07143;, + 0.07143; 0.14286;, + 0.07143; 0.21429;, + 0.07143; 0.28571;, + 0.07143; 0.35714;, + 0.07143; 0.42857;, + 0.07143; 0.50000;, + 0.07143; 0.57143;, + 0.07143; 0.64286;, + 0.07143; 0.71429;, + 0.07143; 0.78571;, + 0.07143; 0.85714;, + 0.07143; 0.92857;, + 0.07143; 1.00000;, + 0.00000; 0.00000;, + 0.00000; 0.07143;, + 0.00000; 0.14286;, + 0.00000; 0.21429;, + 0.00000; 0.28571;, + 0.00000; 0.35714;, + 0.00000; 0.42857;, + 0.00000; 0.50000;, + 0.00000; 0.57143;, + 0.00000; 0.64286;, + 0.00000; 0.71429;, + 0.00000; 0.78571;, + 0.00000; 0.85714;, + 0.00000; 0.92857;, + 0.00000; 1.00000;; + } +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SQUARE.X b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SQUARE.X new file mode 100644 index 0000000..b325dee --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/GEOMETRY/SQUARE.X @@ -0,0 +1,207 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor { + <1630B820-7842-11cf-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean { + <4885AE61-78E8-11cf-8F52-0040333594A3> + WORD truefalse; +} + +template Boolean2d { + <4885AE63-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap { + <4885AE60-78E8-11cf-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps { + <4885AE62-78E8-11cf-8F52-0040333594A3> + DWORD nFaceWrapValues; + Boolean2d faceWrapValues; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors { + <1630B821-7842-11cf-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +Header { + 1; + 0; + 1; +} + +Mesh object0 { + 12; + 1.000000;-1.000000;0.000000;, + 1.000000;1.000000;0.000000;, + -1.000000;1.000000;0.000000;, + 1.000000;-1.000000;0.000000;, + + -1.000000;1.000000;0.000000;, + -1.000000;-1.000000;0.000000;, + 1.000000;-1.000000;0.000000;, + -1.000000;-1.000000;0.000000;, + + -1.000000;1.000000;0.000000;, + 1.000000;-1.000000;0.000000;, + -1.000000;1.000000;0.000000;, + 1.000000;1.000000;0.000000;; + + 4; + 3;2,1,0;, + 3;5,4,3;, + 3;8,7,6;, + 3;11,10,9;; + + MeshMaterialList { + 1; + 4; + 0;, + 0;, + 0;, + 0;; + Material { + 1.000000;1.000000;1.000000;1.0;; + 1.0; + 0.000000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } # Material + } # MeshMaterialList + MeshNormals { + 4; + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;0.000000;1.000000;; + + 4; + 3;0,0,0;, + 3;1,1,1;, + 3;2,2,2;, + 3;3,3,3;; + } # MeshNormals + MeshTextureCoords { + 12; + 0.000000;-1.000000;, + 0.000000;0.000000;, + -1.000000;0.000000;, + 0.000000;-1.000000;, + -1.000000;0.000000;, + -1.000000;-1.000000;, + 0.000000;-1.000000;, + -1.000000;-1.000000;, + -1.000000;0.000000;, + 0.000000;-1.000000;, + -1.000000;0.000000;, + 0.000000;0.000000;; + } # MeshTextureCoords +} # Mesh diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/APPLE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/APPLE.GIF new file mode 100644 index 0000000..4c91d43 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/APPLE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ARCHES.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ARCHES.JPG new file mode 100644 index 0000000..4506fd2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ARCHES.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEACHBOY.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEACHBOY.GIF new file mode 100644 index 0000000..36a1ffc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEACHBOY.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEAN1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEAN1.GIF new file mode 100644 index 0000000..7c9650c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEAN1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEAN2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEAN2.GIF new file mode 100644 index 0000000..6b25130 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BEAN2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BIRD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BIRD.GIF new file mode 100644 index 0000000..6d4e9d8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BIRD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BLK.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BLK.JPG new file mode 100644 index 0000000..82ba794 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BLK.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX3D_MOVIE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX3D_MOVIE.GIF new file mode 100644 index 0000000..4f49544 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX3D_MOVIE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOXBACK_MOVIE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOXBACK_MOVIE.GIF new file mode 100644 index 0000000..fc76fc4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOXBACK_MOVIE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX_BOXART.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX_BOXART.GIF new file mode 100644 index 0000000..c92c927 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX_BOXART.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX_TOP.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX_TOP.GIF new file mode 100644 index 0000000..3f29a05 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BOX_TOP.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BRANCH1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BRANCH1.GIF new file mode 100644 index 0000000..0ce38a2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BRANCH1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BRANCH2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BRANCH2.GIF new file mode 100644 index 0000000..176f66d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/BRANCH2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CAR2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CAR2.GIF new file mode 100644 index 0000000..3e52c90 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CAR2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CAR3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CAR3.GIF new file mode 100644 index 0000000..e5f0b67 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CAR3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CARTOON.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CARTOON.GIF new file mode 100644 index 0000000..78ec4ea Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CARTOON.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CHERRIES.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CHERRIES.GIF new file mode 100644 index 0000000..54d0fca Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CHERRIES.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLDTILE.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLDTILE.JPG new file mode 100644 index 0000000..e33bf74 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLDTILE.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO1.GIF new file mode 100644 index 0000000..ecce620 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO2.GIF new file mode 100644 index 0000000..6de0c5b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO3.GIF new file mode 100644 index 0000000..3b4b1a9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO4.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO4.GIF new file mode 100644 index 0000000..972d01c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO4.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO5.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO5.GIF new file mode 100644 index 0000000..3f48e5c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO5.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO6.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO6.GIF new file mode 100644 index 0000000..62f8da0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO6.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO7.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO7.GIF new file mode 100644 index 0000000..c46bfee Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO7.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO8.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO8.GIF new file mode 100644 index 0000000..96e814e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO8.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO9.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO9.GIF new file mode 100644 index 0000000..c2fa5be Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOGO9.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS.GIF new file mode 100644 index 0000000..c238f02 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS.JPG new file mode 100644 index 0000000..2b41731 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS1.GIF new file mode 100644 index 0000000..e2d463a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS2.GIF new file mode 100644 index 0000000..ed9785f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDSF.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDSF.GIF new file mode 100644 index 0000000..2a9346c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDSF.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDSN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDSN.GIF new file mode 100644 index 0000000..6d2e5f0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDSN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS_COFFEE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS_COFFEE.GIF new file mode 100644 index 0000000..37aecac Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CLOUDS_COFFEE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/COPTER8S_PILOTE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/COPTER8S_PILOTE.GIF new file mode 100644 index 0000000..5a9b794 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/COPTER8S_PILOTE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/COUPLE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/COUPLE.GIF new file mode 100644 index 0000000..a3283a7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/COUPLE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CRAYONS.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CRAYONS.GIF new file mode 100644 index 0000000..41bae13 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CRAYONS.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP1.GIF new file mode 100644 index 0000000..a96d414 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP2.GIF new file mode 100644 index 0000000..57f914f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP3.GIF new file mode 100644 index 0000000..a7837d5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP4.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP4.GIF new file mode 100644 index 0000000..ebf5b56 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP4.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP5.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP5.GIF new file mode 100644 index 0000000..c245dd1 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP5.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP6.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP6.GIF new file mode 100644 index 0000000..edabf5b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP6.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP7.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP7.GIF new file mode 100644 index 0000000..20e8576 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP7.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP8.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP8.GIF new file mode 100644 index 0000000..a280ebc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/CUP8.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DAYPAL2W.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DAYPAL2W.GIF new file mode 100644 index 0000000..27f83cd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DAYPAL2W.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DBACK.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DBACK.GIF new file mode 100644 index 0000000..7f00a59 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DBACK.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DBRIDGE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DBRIDGE.GIF new file mode 100644 index 0000000..d8e1ac3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DBRIDGE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFLAG1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFLAG1.GIF new file mode 100644 index 0000000..5e20b25 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFLAG1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFLAG2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFLAG2.GIF new file mode 100644 index 0000000..7d3828e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFLAG2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFRONT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFRONT.GIF new file mode 100644 index 0000000..68c0642 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DFRONT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DIRECTANIMATION.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DIRECTANIMATION.JPG new file mode 100644 index 0000000..09c8f42 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DIRECTANIMATION.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DIRXLOGO.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DIRXLOGO.GIF new file mode 100644 index 0000000..0143d19 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DIRXLOGO.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DMIDDLE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DMIDDLE.GIF new file mode 100644 index 0000000..d82c158 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DMIDDLE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DXMBG.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DXMBG.GIF new file mode 100644 index 0000000..e7667eb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DXMBG.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DXMLOGO.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DXMLOGO.JPG new file mode 100644 index 0000000..82ba794 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/DXMLOGO.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_HOME.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_HOME.GIF new file mode 100644 index 0000000..de51554 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_HOME.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_LOCAL.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_LOCAL.GIF new file mode 100644 index 0000000..f1074e5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_LOCAL.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_NEXT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_NEXT.GIF new file mode 100644 index 0000000..4871132 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_NEXT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_PREV.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_PREV.GIF new file mode 100644 index 0000000..2883929 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/D_PREV.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EARTH.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EARTH.JPG new file mode 100644 index 0000000..cec82e3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EARTH.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EARTHMAP.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EARTHMAP.JPG new file mode 100644 index 0000000..87ea8ec Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EARTHMAP.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EIGHTBLL.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EIGHTBLL.GIF new file mode 100644 index 0000000..8c8e9f3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EIGHTBLL.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EPAD512.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EPAD512.GIF new file mode 100644 index 0000000..7da67c7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EPAD512.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ESPRESO1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ESPRESO1.GIF new file mode 100644 index 0000000..90d2248 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ESPRESO1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ESPRESO2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ESPRESO2.GIF new file mode 100644 index 0000000..e3f2705 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ESPRESO2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EYEBALL2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EYEBALL2.GIF new file mode 100644 index 0000000..c2556ac Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/EYEBALL2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH.GIF new file mode 100644 index 0000000..497ac3b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH1.GIF new file mode 100644 index 0000000..8a48bce Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH10.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH10.GIF new file mode 100644 index 0000000..5bbca0d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH10.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH2.GIF new file mode 100644 index 0000000..2ceba80 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH3.GIF new file mode 100644 index 0000000..f21712a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH4.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH4.GIF new file mode 100644 index 0000000..54b9428 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH4.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH5.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH5.GIF new file mode 100644 index 0000000..49bd7ab Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH5.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH6.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH6.GIF new file mode 100644 index 0000000..c1c240d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH6.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH7.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH7.GIF new file mode 100644 index 0000000..54926c7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH7.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH8.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH8.GIF new file mode 100644 index 0000000..3a1a79e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH8.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH9.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH9.GIF new file mode 100644 index 0000000..e9e77e6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FISH9.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FOLIAGEUTAH.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FOLIAGEUTAH.JPG new file mode 100644 index 0000000..5017355 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/FOLIAGEUTAH.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GLOBE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GLOBE.GIF new file mode 100644 index 0000000..aa96844 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GLOBE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GLOBE_REDMASK.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GLOBE_REDMASK.GIF new file mode 100644 index 0000000..8f46c9e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GLOBE_REDMASK.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GRAY.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GRAY.JPG new file mode 100644 index 0000000..9b8c33e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GRAY.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GUMBALLS.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GUMBALLS.GIF new file mode 100644 index 0000000..1a15a77 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/GUMBALLS.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/HIDDENBEACHSG.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/HIDDENBEACHSG.JPG new file mode 100644 index 0000000..e921076 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/HIDDENBEACHSG.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/HIDDENBEACHSS.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/HIDDENBEACHSS.JPG new file mode 100644 index 0000000..eed696f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/HIDDENBEACHSS.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/IE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/IE.GIF new file mode 100644 index 0000000..22e43ae Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/IE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/INFO.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/INFO.GIF new file mode 100644 index 0000000..099a572 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/INFO.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/INUP.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/INUP.GIF new file mode 100644 index 0000000..6b7af08 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/INUP.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/JOTUNHEIMEN1.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/JOTUNHEIMEN1.JPG new file mode 100644 index 0000000..f217dd8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/JOTUNHEIMEN1.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KIDSUTAH.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KIDSUTAH.JPG new file mode 100644 index 0000000..a076440 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KIDSUTAH.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITE.GIF new file mode 100644 index 0000000..acacf57 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITEL1B.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITEL1B.GIF new file mode 100644 index 0000000..f266e7d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITEL1B.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITER1B.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITER1B.GIF new file mode 100644 index 0000000..04931c2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITER1B.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITETALK.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITETALK.GIF new file mode 100644 index 0000000..6df4a70 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/KITETALK.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/LAKE.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/LAKE.JPG new file mode 100644 index 0000000..3214e52 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/LAKE.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/LETTERG.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/LETTERG.GIF new file mode 100644 index 0000000..16d1bcd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/LETTERG.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MARS.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MARS.JPG new file mode 100644 index 0000000..b1c66d7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MARS.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MERCURY.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MERCURY.JPG new file mode 100644 index 0000000..754686b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MERCURY.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/METALIC.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/METALIC.JPG new file mode 100644 index 0000000..fc2f974 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/METALIC.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MINIMIZE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MINIMIZE.GIF new file mode 100644 index 0000000..8d03afb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MINIMIZE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MOON.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MOON.JPG new file mode 100644 index 0000000..9eb4b8b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MOON.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MSHINGLE.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MSHINGLE.JPG new file mode 100644 index 0000000..bcd316a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/MSHINGLE.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OCEAN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OCEAN.GIF new file mode 100644 index 0000000..ee760e1 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OCEAN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OCEAN2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OCEAN2.GIF new file mode 100644 index 0000000..af83c96 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OCEAN2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OUTUP.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OUTUP.GIF new file mode 100644 index 0000000..ebd717f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/OUTUP.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM1.GIF new file mode 100644 index 0000000..3515465 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM2.GIF new file mode 100644 index 0000000..e199aad Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM3.GIF new file mode 100644 index 0000000..49534c9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PALM3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PARROT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PARROT.GIF new file mode 100644 index 0000000..f48d3e3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PARROT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PEANUT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PEANUT.GIF new file mode 100644 index 0000000..c7f4f84 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PEANUT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PHANTOM.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PHANTOM.JPG new file mode 100644 index 0000000..0f49d9e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PHANTOM.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLANE3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLANE3.GIF new file mode 100644 index 0000000..f7286bb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLANE3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLANETBUTTON.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLANETBUTTON.GIF new file mode 100644 index 0000000..6e85fcd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLANETBUTTON.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLAYBACK.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLAYBACK.GIF new file mode 100644 index 0000000..2513f85 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PLAYBACK.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PRETZEL.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PRETZEL.GIF new file mode 100644 index 0000000..71337e8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/PRETZEL.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RADIO3B.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RADIO3B.GIF new file mode 100644 index 0000000..40e0e46 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RADIO3B.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAIN.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAIN.JPG new file mode 100644 index 0000000..32484a9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAIN.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAINDOWN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAINDOWN.GIF new file mode 100644 index 0000000..760c0e5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAINDOWN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAINUP.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAINUP.GIF new file mode 100644 index 0000000..9a5c3fb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RAINUP.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/REDWOODCAR.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/REDWOODCAR.JPG new file mode 100644 index 0000000..cc101b7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/REDWOODCAR.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/REDWOODROOT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/REDWOODROOT.JPG new file mode 100644 index 0000000..2f8d6ca Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/REDWOODROOT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RESET.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RESET.GIF new file mode 100644 index 0000000..32307a4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RESET.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ROSEWOOD.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ROSEWOOD.GIF new file mode 100644 index 0000000..6e53e80 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ROSEWOOD.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RUBBERMAT.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RUBBERMAT.JPG new file mode 100644 index 0000000..1cc19c5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/RUBBERMAT.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SANDBG1.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SANDBG1.JPG new file mode 100644 index 0000000..594c01d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SANDBG1.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBCABIN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBCABIN.GIF new file mode 100644 index 0000000..2e60ea4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBCABIN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBDECK.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBDECK.GIF new file mode 100644 index 0000000..d31103d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBDECK.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBSAIL1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBSAIL1.GIF new file mode 100644 index 0000000..a587dbb Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBSAIL1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBSAIL2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBSAIL2.GIF new file mode 100644 index 0000000..ff7453a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SBSAIL2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SCENE.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SCENE.JPG new file mode 100644 index 0000000..df53e77 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SCENE.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SEATTLE.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SEATTLE.JPG new file mode 100644 index 0000000..2bef94f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SEATTLE.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SHINGLE.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SHINGLE.JPG new file mode 100644 index 0000000..85844d3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SHINGLE.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SPIN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SPIN.GIF new file mode 100644 index 0000000..d150d45 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SPIN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STARS.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STARS.JPG new file mode 100644 index 0000000..0bd7056 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STARS.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/START.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/START.GIF new file mode 100644 index 0000000..2e0bc69 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/START.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_1.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_1.GIF new file mode 100644 index 0000000..862aed5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_1.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_2.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_2.GIF new file mode 100644 index 0000000..7919110 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_2.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_3.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_3.GIF new file mode 100644 index 0000000..0e3899f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_3.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_4.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_4.GIF new file mode 100644 index 0000000..c39eec7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_4.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_5.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_5.GIF new file mode 100644 index 0000000..eb63959 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/STEAM_5.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SUN.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SUN.JPG new file mode 100644 index 0000000..049e52c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/SUN.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TAGLINE.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TAGLINE.GIF new file mode 100644 index 0000000..83c9801 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TAGLINE.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TODBACK.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TODBACK.JPG new file mode 100644 index 0000000..0c66dfc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TODBACK.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TRAIN16S.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TRAIN16S.GIF new file mode 100644 index 0000000..a9c0bf0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TRAIN16S.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TULIPSHOL1.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TULIPSHOL1.JPG new file mode 100644 index 0000000..53745d8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TULIPSHOL1.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TULIPSHOL2.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TULIPSHOL2.JPG new file mode 100644 index 0000000..97080bd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/TULIPSHOL2.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/USAFLAG.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/USAFLAG.GIF new file mode 100644 index 0000000..9b95f44 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/USAFLAG.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_INDEX.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_INDEX.GIF new file mode 100644 index 0000000..a6568e9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_INDEX.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_NEXT.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_NEXT.GIF new file mode 100644 index 0000000..0dd7010 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_NEXT.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_PREV.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_PREV.GIF new file mode 100644 index 0000000..e02d10c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/U_PREV.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/VENUS.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/VENUS.JPG new file mode 100644 index 0000000..804069a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/VENUS.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/VORTEX.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/VORTEX.GIF new file mode 100644 index 0000000..f8f79c5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/VORTEX.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WATERFALL.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WATERFALL.JPG new file mode 100644 index 0000000..04122fd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WATERFALL.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WENATCHEECASCADES.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WENATCHEECASCADES.JPG new file mode 100644 index 0000000..91cdfe7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WENATCHEECASCADES.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WING.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WING.GIF new file mode 100644 index 0000000..af329f3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/WING.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/YOSEMITECREEK.JPG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/YOSEMITECREEK.JPG new file mode 100644 index 0000000..a2206e9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/YOSEMITECREEK.JPG differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/YOYO.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/YOYO.GIF new file mode 100644 index 0000000..0b17df7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/YOYO.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ZOOMDOWN.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ZOOMDOWN.GIF new file mode 100644 index 0000000..a49b694 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ZOOMDOWN.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ZOOMUP.GIF b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ZOOMUP.GIF new file mode 100644 index 0000000..3e65127 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/IMAGE/ZOOMUP.GIF differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/1-OPEN2.MID b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/1-OPEN2.MID new file mode 100644 index 0000000..25ccf02 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/1-OPEN2.MID differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/BOXSPINS2.MID b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/BOXSPINS2.MID new file mode 100644 index 0000000..ca5d2f5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/BOXSPINS2.MID differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/CIRCUS.MID b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/CIRCUS.MID new file mode 100644 index 0000000..4f4b0a4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/CIRCUS.MID differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/FINDING2.MID b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/FINDING2.MID new file mode 100644 index 0000000..669fd6a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/FINDING2.MID differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/HIT.MID b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/HIT.MID new file mode 100644 index 0000000..a038327 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/HIT.MID differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/ISLAND.MID b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/ISLAND.MID new file mode 100644 index 0000000..b4f28b7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/ISLAND.MID differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/WSH2.MID b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/WSH2.MID new file mode 100644 index 0000000..2966d88 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MIDI/WSH2.MID differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MOVIE/MOVIE.AVI b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MOVIE/MOVIE.AVI new file mode 100644 index 0000000..c376ddd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/MOVIE/MOVIE.AVI differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BANG.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BANG.MP2 new file mode 100644 index 0000000..8cf555e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BANG.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BANG.WAV b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BANG.WAV new file mode 100644 index 0000000..2d270b9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BANG.WAV differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BLOW1.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BLOW1.MP2 new file mode 100644 index 0000000..021fcd9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BLOW1.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BLOW2.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BLOW2.MP2 new file mode 100644 index 0000000..9f905e1 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BLOW2.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BUTIN.WAV b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BUTIN.WAV new file mode 100644 index 0000000..4d2ce4f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BUTIN.WAV differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BUTNOUT.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BUTNOUT.MP2 new file mode 100644 index 0000000..4270979 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/BUTNOUT.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CARALARM.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CARALARM.MP2 new file mode 100644 index 0000000..cf5cde8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CARALARM.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CARHORN1.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CARHORN1.MP2 new file mode 100644 index 0000000..a11ad80 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CARHORN1.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CITYDRON.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CITYDRON.MP2 new file mode 100644 index 0000000..ec15446 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CITYDRON.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CLOCK1.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CLOCK1.MP2 new file mode 100644 index 0000000..72b781b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/CLOCK1.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/COPTER2.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/COPTER2.MP2 new file mode 100644 index 0000000..3a0c41e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/COPTER2.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/DEFLATE.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/DEFLATE.MP2 new file mode 100644 index 0000000..cf7d213 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/DEFLATE.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/EARTH.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/EARTH.MP2 new file mode 100644 index 0000000..021bc10 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/EARTH.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ETHERIAL.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ETHERIAL.MP2 new file mode 100644 index 0000000..647e383 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ETHERIAL.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/FISHBUCK.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/FISHBUCK.MP2 new file mode 100644 index 0000000..9538bfe Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/FISHBUCK.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/HELICOPT.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/HELICOPT.MP2 new file mode 100644 index 0000000..e266ecc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/HELICOPT.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/INFLATE.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/INFLATE.MP2 new file mode 100644 index 0000000..39b96bc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/INFLATE.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/JBIRD1.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/JBIRD1.MP2 new file mode 100644 index 0000000..c4a0726 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/JBIRD1.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MARS.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MARS.MP2 new file mode 100644 index 0000000..f4f2478 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MARS.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MERCURY.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MERCURY.MP2 new file mode 100644 index 0000000..bd02135 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MERCURY.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MOON.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MOON.MP2 new file mode 100644 index 0000000..7c096e3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/MOON.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/PLANE.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/PLANE.MP2 new file mode 100644 index 0000000..ea81ce2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/PLANE.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RADIOTOW.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RADIOTOW.MP2 new file mode 100644 index 0000000..9b280d9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RADIOTOW.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RAIN.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RAIN.MP2 new file mode 100644 index 0000000..161f4a5 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RAIN.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RUN.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RUN.MP2 new file mode 100644 index 0000000..21ebf86 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/RUN.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SEAGULL.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SEAGULL.MP2 new file mode 100644 index 0000000..d95936c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SEAGULL.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/STEAM.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/STEAM.MP2 new file mode 100644 index 0000000..9737046 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/STEAM.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SUN.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SUN.MP2 new file mode 100644 index 0000000..614f597 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SUN.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SURF.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SURF.MP2 new file mode 100644 index 0000000..f9e3b01 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/SURF.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THOUGHT.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THOUGHT.MP2 new file mode 100644 index 0000000..bd0da27 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THOUGHT.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THROW.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THROW.MP2 new file mode 100644 index 0000000..b0bc27a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THROW.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THRUST.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THRUST.MP2 new file mode 100644 index 0000000..3e94b10 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/THRUST.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TOEARTH.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TOEARTH.MP2 new file mode 100644 index 0000000..f1b1fba Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TOEARTH.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TORAIN.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TORAIN.MP2 new file mode 100644 index 0000000..46eb002 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TORAIN.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TRAIN.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TRAIN.MP2 new file mode 100644 index 0000000..8d09fec Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TRAIN.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TRAINWHI.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TRAINWHI.MP2 new file mode 100644 index 0000000..c2359e3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/TRAINWHI.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/VENUS.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/VENUS.MP2 new file mode 100644 index 0000000..eb6b9c0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/VENUS.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WALK.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WALK.MP2 new file mode 100644 index 0000000..2a8ef9f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WALK.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WATER.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WATER.MP2 new file mode 100644 index 0000000..110737a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WATER.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WAVE.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WAVE.MP2 new file mode 100644 index 0000000..037954f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WAVE.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WFALL1.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WFALL1.MP2 new file mode 100644 index 0000000..f00ccfc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WFALL1.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WOOB.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WOOB.MP2 new file mode 100644 index 0000000..390b0df Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/WOOB.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMIN.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMIN.MP2 new file mode 100644 index 0000000..a914f58 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMIN.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMIN2.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMIN2.MP2 new file mode 100644 index 0000000..e65e9fd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMIN2.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMOUT.MP2 b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMOUT.MP2 new file mode 100644 index 0000000..c222b82 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/MEDIA/SOUND/ZOOMOUT.MP2 differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/RELNOTDA.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/RELNOTDA.HTM new file mode 100644 index 0000000..2646d95 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/RELNOTDA.HTM @@ -0,0 +1,495 @@ + + + + + + +DirectAnimation Readme + + + + + + + +

    DirectAnimation Readme

    + +

    © 1997, 1998 Microsoft +Corporation. All rights reserved. Terms of use.
    + +

    This document +provides late-breaking or other information that supplements the +Microsoft DirectAnimation documentation.

    + +

    Overview

    + +

    Requirements, Dependencies, and +Installation

    + +

    Additional Information

    + +

    Known Bugs

    + +

    Contact Information

    + +
    + +

    Overview

    + +

    DirectAnimation +was released as an integrated component of Internet Explorer 4.0 +minimal install. This provides unprecedented animation and +multimedia capabilities built into a major Internet browser (no +special download is needed). Furthermore, DirectAnimation allows +for integration with DHTML, and hence is especially suitable for +adding compact and lightweight animation effects to web pages.

    + +

    DirectAnimation +is the component of the DirectX family of APIs that provides rich +animation and integrated media support for Web pages, CD-ROM +titles, and multimedia applications. DirectAnimation provides +unified and comprehensive support for the different media types, +including: 2-D vector graphics, 3-D graphics, sprites, audio, +video, and a rich time and event model that applies uniformly +across the different media types. DirectAnimation is a COM API +and an underlying engine/run time whose functionally can be +accessed in different ways by different user groups:

    + +
      +
    • HTML + authors can integrate animation using the DirectAnimation + controls.
    • +
    • Visual + Basic® Scripting Edition (VBScript), JScript™ + users, and Java applet writers can program animation for + web pages with integration with DHTML.
    • +
    • Finally, + Java, Visual Basic, and C++ programmers can develop + ActiveX Controls or full applications with rich media and + interactivity.
    • +
    + +

    The supported +media types are as follows:

    + +
    +
      +
    • 2-D + images (.bmp, .gif, .png, and .jpeg files)
    • +
    • 3-D + models (.x and VRML files)
    • +
    • Sounds + (.wav and .midi files)
    • +
    • Movies + (.avi, .mpeg, and .mov files)
    • +
    • Text
    • +
    • Vector + graphics
    • +
    +
    + +

    In the case of +movies and sounds, additional media formats can be supported by +supplying DirectShow CODECs for those formats.

    + +

    One of the key +DirectAnimation classes is the Behavior class. Different types of +media are incorporated into the animation by encapsulating them +as DirectAnimation Behavior objects. Behavior objects can be used +interchangeably, and have a number of methods applied to them, +independent of the media type they are encapsulating. Of course, +you can still access methods that are specific to the different +types of behaviors, based on the type of media.

    + +

    Back to the top

    + +

    Requirements, +Dependencies, and Installation

    + +

    The minimum +requirements in order to run DirectAnimation applications and +content are as follows:

    + +
      +
    • Pentium-based + computer with 16 Megabytes of memory
    • +
    • Windows + 95 or NT 4.0
    • +
    • DirectX, including + Direct3D (for NT users, we recommend SP3)
    • +
    + +

    The +DirectAnimation run time comes as part of IE4 minimal install. DirectAnimation will +also be part of Windows 98 and future releases of Windows NT.

    + +

    Back to the top

    + +

    Additional Information

    + + +

    DirectAnimation +supports several scripting languages (JScript and VBScript), as +well as the integration of the multimedia controls (in Internet +Explorer 4.x) with the DirectAnimation run time. In addition to +the multimedia controls, a windowed control is provided which can +be used, not only with IE 4.0, but also with IE 3.02 and with +Visual Basic 5.0. With the addition of the multimedia controls, +content developers can now access DirectAnimation functionality +through different levels, from PARAM tags at the control level, +to scripting, to raw COM.

    + +

    The +DirectAnimation Java classes are dependent on the version of the +Java VM that ships with the Microsoft SDK for Java 2.0 and +Internet Explorer 4.x. We used Microsoft Visual J++ 1.1 to author +the Java samples.

    + +

    In order to +use DirectAnimation Java-based content within Netscape's +Navigator, follow these instructions:

    + +
    +

    Microsoft + has made a plug-in available to users of Netscape Navigator + 2.02 and 3.0 which allows them to make use of the Microsoft + Java VM. Netscape Communicator is not yet supported because + of changes made to the plug-in interface. Note that this + plug-in does not replace the Netscape Java VM, but it does + provide access to the MS VM through the use of the + <embed> tag. To get an applet up and running under + Netscape, follow these simple steps:

    +
    + +
    +
      +
    1. Get + the plug-in from the Java SDK 2.0 and place it in + your Navigator\Program\Plugins directory.
    2. +
    3. Install + the required MS Java VM, if you haven't already. +
    4. +
    5. Change + the applet tag in your source html from this:
    6. +
    +
    +

    <applet + code="myjava.class" width=100 + height=100></applet>

    +

    To + this:

    +

    <embed + src="myjava.class" width=100 + height=100></embed>

    +
    +
    + +

    In general, we +recommend that you upgrade to the DirectX 5 set of video drivers. +Several visual artifacts that appear under older versions of +video drivers disappear with the newer set.

    + +

    We have added +some C++ based samples to the SDK. Some samples rely on the DA +control, while others composite directly to a DirectDraw surface.

    + +

    When possible, +we suggest that you take advantage of the asynchronous import +methods. This leads to more responsive content, since the end +user does not have to wait for all the content to load, before +experiencing the animation.

    + +

    Back to the top

    + +

    Known Bugs

    + +

    The following +is a list of current known problems. We strongly encourage you to +send us mail if you find a problem (dxmbug@microsoft.com). There are newsgroups +set up to allow DirectAnimation content developers to discuss +issues and ideas; however, mailing a bug description is the only +sure way to get a fix for a bug.

    + +

    The release +of DirectAnimation in this SDK and accompanying redist package is +newer than that distributed with IE 4.0. There were many bug +fixes related to memory leaks, as well as the following +functional changes:

    + +
      +
    • In the + size parameter for text, a negative quantity can be + specified. The negative quantity allows you to indicate + to DirectAnimation that the text behavior's + size/orientation is not going to be animated (although + animating the position is fine), allowing us to produce a + higher quality text. We will carry support for this + parameter forward, but eventually you will get the same + high quality text regardless of transforms applied to the + text behavior.
    • +
    • The timer + source for the DirectAnimation control can be selected + using the IDAViewerControl::TimerSource property. This is + useful for Web scripting. By default, DirectAnimation + uses WM_TIMER messages
      + You can use the IE 4.0 DHTML timers by specifying values + of DA_TIMER_SOURCE type, which allows your + DirectAnimation content to be in sync with other controls + or DHTML elements. Note that, if you use this property, + you should check for the version number which is + accessible through the VersionString method on DAStatics. + Failure to do so will cause an error when the page is + viewed with the previous version of DirectAnimation.
    • +
    • If you + find a problem with your scripting-based content that + seems to make your Web page appear unresponsive to + events and timers outside of your DirectAnimation + content, you should set the UpdateInterval property of + the control to 0.15 (this causes a new frame to be + drawn every 0.15 seconds, meaning that the content gets + 6.66 frames per second).
    • +
    • The + DirectAnimation Java classes fully enforce the Java + security model, only allowing media located in + directories below the location of the Web page to be + opened by the applet.
    • +
    + +

    General

    + +
      + +
    • For Java + content, all initialization of DirectAnimation + behaviors and events needs to happen in methods (cannot + happen in classes outside of methods); however, you can + have declarations of behaviors outside methods to + make them accessible from other classes and throughout + the methods of a class.
    • +
    • There are + some small memory leaks, most notably when using 3-D, + sounds, or notifiers. To fix this in Java, implement public + void cleanup() to the class that extends Model. In + this method, call super.cleanup() and set all + behaviors that are suspected of leaking memory to NULL. + If you have other classes which contain DA behaviors, + implement public void cleanup() and only set + suspect behaviors to NULL. Also, add the public void + destroy() to the class that extends DXMApplet. In + this method, call super.destroy() and set the model to + NULL.
    • +
    • For Java + content, sometimes the LeftButtonPress events miss.
    • +
    • The + cursor is considered to be in the middle of the window + when DirectAnimation first comes up.
    • +
    • TextPath + and TextImage are now obsolete. Please use StringPath and + StringImage instead.
    • +
    • Notifiers + can only be implemented in Java.
    • + +
    • AnimateControlPosition + takes parameters in meters, even if you are using the + pixel library.
    • +
    • Only + DirectDraw surfaces created through DirectDrawEx can be + imported.
    • +
    • bvrhook + does not get called at snapshot time.
    • +
    + +

    Graphics

    + +
      +
    • Shearing + movies and lines does not work properly.
    • +
    • Color + palette is not correct for 256 colors displays under NT.
    • +
    • SubstituteTime + does not work right when applied to splines.
    • +
    • FollowPathAngleUpright + isn't doing the uprightness.
    • + +
    • Although + class browsers or Visual Basic show the parameters to arc + and roundedrect as radius, they are really the diameter.
    • +
    • Using + Java, time-varying opacity may cause the whole object to + become solid after some time.
    • +
    • TextMatte + isn't allowing enough of the image to be drawn through.
    • +
    • Knot + duplicity for splines is not handled.
    • +
    • Bounding + box of a sheared behavior is incorrect.
    • +
    • Overlaying + an image on a solidColorImage, cropping it, and then + adding a rotation transform, results in the + solidColorImage disappearing. The workaround is to crop + the solidColorImage into a matte.
    • +
    • Underline + and strikethrough don't work on NT.
    • +
    • When + loading a large number of JPEG images, there is a + significant delay. A workaround is to make use of the + asynchronous import method.
    • +
    + +

    Audio

    + +
      +
    • Sound + does not turn off all the time.
    • +
    • SinSynth + plays at 440Hz no matter what rate is specified.
    • +
    • Dynamic + phasing isn't enabled.
    • +
    • Loop + causes the leaf sounds to loop, not the combined sound + behavior (this is the intended behavior).
    • +
    • SinSynth + mixed with static sound gives a choppy sinusoidal sound.
    • +
    • Audio + time substitutions not accumulating
    • +
    + +

    3-D

    + +
      +
    • Textures + are not propagating down the leaf geometries for + .X-files-based 3-D objects.
    • +
    + +

    Movies

    + +
      +
    • To use a + movie as a texture, you have to use the following + workaround (code snippet in JScript):
    • +
    + +
    +
    +

    movieImport + = m.ImportMovie("http://movie.avi");
    + movieImg = movieImport .Image;
    +
    + // This is the workaround
    + movieBBox = movieImg.BoundingBox;
    + solidImg = m.SolidColorImage(m.White);
    + solidImg = solidImg.Crop(movieBBox.Min,movieBBox.Max);
    +
    + movieImg = m.Overlay(movieImg,solidImg);

    +
    +
    + +

    Controls

    + +
      +
    • When + using the Sprite multimedia control, source .bmp images + over 2048 pixels long have to be broken into arrays of + images (rows and columns of images, instead of just one + long row or column).
    • +
    • Under + some video drivers, filtered transparent pixels render as + black.
    • +
    • For the + Path control, TimeMarker persistence parameter + "-1" works like FALSE in JScript.
    • +
    + +

    Using +Visual Basic

    + +
      +
    • Use the + DirectAnimation Windowed Control when creating Visual + Basic samples. There is a buffering problem in Visual + Basic 5.0 that causes flashing if the DirectAnimation + Windowless Control is used instead. This will be fixed in + a future version of Visual Basic.
    • +
    • Button + events do not work.
    • +
    • If the + animation runs too slowly, increase the value of the UpdateInterval + property.
    • +
    + +

    Back to the top

    + +

    Contact Information

    + +
    +

    We've set + public news groups on the Microsoft Public News Server, as a forum for + the DirectAnimation user community. We encourage you to post + all questions related to the use of DirectAnimation on the + appropriate news group:

    + +

    For + reporting bugs against the preview version, send mail to dxmbug@microsoft.com. When you do so, + make sure to be specific about the OS, PC/graphics card, + version of IE4, and specific host language/control that + you're using to access DirectAnimation.

    +


    +

    +
    + +

    Back to the top

    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/ANIFILT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/ANIFILT.HTM new file mode 100644 index 0000000..54ebad7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/ANIFILT.HTM @@ -0,0 +1,58 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + +
    +
    +
    +HTML text +
    +
    +
    + + + STYLE="WIDTH:0;HEIGHT:0" + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/BUTTONS.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/BUTTONS.HTM new file mode 100644 index 0000000..3332962 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/BUTTONS.HTM @@ -0,0 +1,195 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + +Roll over Buttons to activate
    +Roll off Buttons to unactivate
    +Click Buttons to depress or to change state
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/CLOCK.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/CLOCK.HTM new file mode 100644 index 0000000..352ecce --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/CLOCK.HTM @@ -0,0 +1,184 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + + + +
    + + + +
    +


    +
    +NOW
    +IS THE
    +TIME +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/COMPLEX.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/COMPLEX.HTM new file mode 100644 index 0000000..6f37db8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/COMPLEX.HTM @@ -0,0 +1,143 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/COUNT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/COUNT.HTM new file mode 100644 index 0000000..5ba87fe --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/COUNT.HTM @@ -0,0 +1,483 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/FILTER.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/FILTER.HTM new file mode 100644 index 0000000..6956c83 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/FILTER.HTM @@ -0,0 +1,236 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + + + + + +
    +
    +Filters can affect any HTML element; including text, windowless controls, intrinsic controls, and images.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +
    +

    +

    + + + + + + + + + + + + + +

    + + + + + +

    + +
    Click one of the filter buttons to apply a filter to the objects.
    + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/GLOBE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/GLOBE.HTM new file mode 100644 index 0000000..2d36f5a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/GLOBE.HTM @@ -0,0 +1,51 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + +
    +

    This is an example of a sprite control. Mouse over the image to play, slowly mouse off to pause

    +
    + +
    + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/MEGA.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/MEGA.HTM new file mode 100644 index 0000000..5263798 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/MEGA.HTM @@ -0,0 +1,116 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/PATH.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/PATH.HTM new file mode 100644 index 0000000..3f05766 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/PATH.HTM @@ -0,0 +1,101 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + +
    +

    Example of using a path to animate HTML elements

    +
    +

    Paths can animate most visual objects - images, structured graphics, buttons. Here we have a standard input button, two images, and a structured graphic being animated by 4 seperate path objects.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SG-DRAWINGSURFACE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SG-DRAWINGSURFACE.HTM new file mode 100644 index 0000000..6ce5841 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SG-DRAWINGSURFACE.HTM @@ -0,0 +1,66 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SG-PRESERVE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SG-PRESERVE.HTM new file mode 100644 index 0000000..786402a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SG-PRESERVE.HTM @@ -0,0 +1,39 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + +

    Preserve Aspect Ratio Method

    + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SPINIE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SPINIE.HTM new file mode 100644 index 0000000..d1cc07c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/SPINIE.HTM @@ -0,0 +1,97 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/TEXTMASK.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/TEXTMASK.HTM new file mode 100644 index 0000000..d896649 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/TEXTMASK.HTM @@ -0,0 +1,112 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +

    + + + + +Welcome to
    the Future of
    Multimedia +
    +
    +
    + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/YOYO.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/YOYO.HTM new file mode 100644 index 0000000..233bcec --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/CONTROLS/YOYO.HTM @@ -0,0 +1,49 @@ + + +DirectAnimation SDK, Control sample + + + + + + + + + +
    + + + + + + + + + + + + +
    + + + +Click the mouse button to activate the sprite. + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/CLOCK.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/CLOCK.HTML new file mode 100644 index 0000000..17d1b03 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/CLOCK.HTML @@ -0,0 +1,133 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    CLOCK SAMPLE

    +
    + + + + +

    +This sample displays a clock and demonstrates the integration between VBScript and DirectAnimation. The time +(hours, minutes, and seconds) for the clock is obtained using VBScript functions. These values are then +used to construct the corresponding clock-hands using the DirectAnimation control. +

    + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/COFFEE.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/COFFEE.HTML new file mode 100644 index 0000000..8186356 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/COFFEE.HTML @@ -0,0 +1,196 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    Coffee Sprite Animation +

    +
    + + + +

    +This sample demonstrates the use of sprites, +montages, and reactivity in DirectAnimation. +Click on the image to activate the espresso machine. +


    + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/CURVES.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/CURVES.HTML new file mode 100644 index 0000000..df205f9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/CURVES.HTML @@ -0,0 +1,126 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + + +

    Spline Matte

    +

    +This is standard HTML and on top of it we have +placed a DirectAnimation windowless control. +

    +The animation you see is the clipping of an image with +a time-varying closed cubic spline path. +

    +The rate of the sound you hear also varies with time. + + + +

    + + +
    + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/DANCINGTRAPZOIDS.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/DANCINGTRAPZOIDS.HTML new file mode 100644 index 0000000..6f8b06b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/DANCINGTRAPZOIDS.HTML @@ -0,0 +1,110 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +

    Dancing Trapezoids


    +DirectAnimation has a powerful, high-level interface for sequencing any behavior. DirectAnimation +behaviors support methods for specifying their duration, number of repetitions, and for +sequencing two behaviors together so that one will begin when the other ends. This +example shows how this can be used to create very complex transformations with a +minimum amount of scripting. +
    +
    + + +
    + + +
    + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/MSCUBES.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/MSCUBES.HTML new file mode 100644 index 0000000..6815e9d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/MSCUBES.HTML @@ -0,0 +1,112 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    FLYING CUBES SAMPLE +

    +
    + + +
    +

    +Click on the DirectAnimation control to stop the horizontal movement of the animation. +Click again to resume. +

    + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/PICK3.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/PICK3.HTML new file mode 100644 index 0000000..82773bd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/PICK3.HTML @@ -0,0 +1,139 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +

    Animate 3D objects in a Windowless Controls

    +

    +This animation is made up of 3D objects imported from .X files and animated in 3D +using DirectAnimation. +The objects are rendered as a windowless control on top of HTML text. +You can still select text below the animate objects. +Left-click on an object to change its color and start it spinning. Click again +to stop it. One of the cubes assumes a time-varying color. +Right-click to switch between a perspective and a parallel view. + + + +

    + + +
    + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/RUNNERS.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/RUNNERS.HTML new file mode 100644 index 0000000..925ee80 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/SHOWCASE/RUNNERS.HTML @@ -0,0 +1,159 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    + + +Complex, animated graphics +that use very little bandwidth. + + + + + +
    + + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/ANIMATEDPROPERTIES.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/ANIMATEDPROPERTIES.HTML new file mode 100644 index 0000000..2234e79 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/ANIMATEDPROPERTIES.HTML @@ -0,0 +1,77 @@ + +DirectAnimation VBScript SDK Sample + + + + + + + + +
    +Animated properties in VBScript +
    + +
    +This is a div using an animated string +
    + +
    +This is a div using an animated number +
    + +
    +This is a div using function callbacks +
    +
    + +
    + +Behaviors don't just have to be used for multimedia elements, they can also be used to create a value +which constantly updates a dynamic HTML property. Time varying strings, numbers, and function callbacks +are demonstrated here. +
    + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/AUDIOMIXING.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/AUDIOMIXING.HTML new file mode 100644 index 0000000..25c05d2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/AUDIOMIXING.HTML @@ -0,0 +1,205 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    Audio Mixing

    +
    + +
    +This template shows how DirectAnimation can be used to mix audio. The volume +and panning of three sounds are controled by the positions of scrollbars. +
    + + + + + + + + + + + + + + +
    +VOLUME 1 +
    + + + + + + + + + +
    +PAN 1 +
    + + + + + + + + + +
    +VOLUME 2 +
    + + + + + + + + +
    +PAN 2 +
    + + + + + + + + + +
    +VOLUME 3 +
    + + + + + + + + + +
    +PAN 3 +
    + + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BASIC.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BASIC.HTML new file mode 100644 index 0000000..ebb1a06 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BASIC.HTML @@ -0,0 +1,58 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    Drawing a Rotating Oval

    +
    + + + + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BASICDS.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BASICDS.HTML new file mode 100644 index 0000000..d90b934 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BASICDS.HTML @@ -0,0 +1,53 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + +
    +

    Drawing a Rotating Oval With the Drawing Surface

    +
    + + + + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BUTTONSWITCH.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BUTTONSWITCH.HTML new file mode 100644 index 0000000..366b488 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/BUTTONSWITCH.HTML @@ -0,0 +1,95 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    Using Modifiable Behaviors and Buttons

    +
    + + + +
    + + + + +
    +This sample demonstrates the switcher/switching functionality, +in this case image and sound behaviors are switched +to new values in reaction to button clicks. +
    + + +
    +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/CALLBACK.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/CALLBACK.HTML new file mode 100644 index 0000000..891103f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/CALLBACK.HTML @@ -0,0 +1,91 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + +
    +

    Issuing Scripting callbacks

    +
    + + +DirectAnimation scripting callbacks are used to +move an HTML DIV tag. The buttons, when clicked, exhibit a simple animation +and sound effect, and also call a function that moves the HTML. + + +
    +Click on the buttons to move this text +
    + + + + + + + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/HELLOWORLDVBS.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/HELLOWORLDVBS.HTML new file mode 100644 index 0000000..a5a3739 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/HELLOWORLDVBS.HTML @@ -0,0 +1,70 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + +
    +

    DirectAnimation Hello World

    +
    + + + + + + + + +

    +To use the DirectAnimation windowless control, simply place it in the page and +then, from scripting, build an animation and assign +it to the control. In this example, the words "Hello VBScript" are constructed using an +animated +color for the text. + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/MOVIE.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/MOVIE.HTML new file mode 100644 index 0000000..002083f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/MOVIE.HTML @@ -0,0 +1,64 @@ + + +DirectAnimation SDK, Filter Download sample + + + + + + + + + +

    + +Filter download +

    + + + + + + + + + + + +
    +
    + +This sample demonstrates how a video codec can be downloaded automatically +with the CODEBASE attribute of the OBJECT tag. + +
    +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/SCROLLSWITCH.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/SCROLLSWITCH.HTML new file mode 100644 index 0000000..50b4a20 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/SCROLLSWITCH.HTML @@ -0,0 +1,80 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    Using Modifiable Behaviors and Scrollbars

    +
    + + + + + + + + + + + + +
    +This sample demonstrates the use +of a stream of events from a VB slider to +repeatedly modify a behavior. In this case the position +of the scrollbar is mapped to the X position of the oval. +
    + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/SPLINELOGO.HTML b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/SPLINELOGO.HTML new file mode 100644 index 0000000..b75bfc6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VBSCRIPT/TEMPLATES/SPLINELOGO.HTML @@ -0,0 +1,74 @@ + + +DirectAnimation SDK, VBScript sample + + + + + + + + + + +
    +

    A Spline Shape and Path

    +
    + + + + + +
    + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.FRM new file mode 100644 index 0000000..884304e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.FRM @@ -0,0 +1,186 @@ +VERSION 5.00 +Object = "{34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0"; "danim.dll" +Begin VB.Form coffee + BorderStyle = 1 'Fixed Single + Caption = "Coffee" + ClientHeight = 4080 + ClientLeft = 45 + ClientTop = 330 + ClientWidth = 7800 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 4080 + ScaleWidth = 7800 + StartUpPosition = 3 'Windows Default + Begin DirectAnimationCtl.DAViewerControlWindowed DAViewerControlWindowed + Height = 3850 + Left = 120 + OleObjectBlob = "coffee.frx":0000 + TabIndex = 0 + Top = 120 + Width = 7575 + End +End +Attribute VB_Name = "coffee" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +' Visual Basic verion of Coffee +Dim mediaBase, geoBase, imgBase, midiBase As String +Private Sub Form_Load() + mediaBase = CurDir + "\..\..\..\..\..\Media\" + geoBase = mediaBase + "geometry\" + imgBase = mediaBase + "image\" + sndBase = mediaBase + "sound\" + + 'Set the background + Set imgBackGround = ImportImage(imgBase + "clouds_coffee.gif") + + 'Create the final montage by layering the espresso machine, the cups and the steam + 'on top of each other. + Set finalMtg = UnionMontage(UnionMontage(steamMontage(), _ + montage()), machineMontage()) + + 'Create the final image. + Set finalImage = Overlay(finalMtg.Render(), Overlay(beans(), imgBackGround)) + Set finalImage = Overlay(finalImage, SolidColorImage(White)) + + DAViewerControlWindowed.UpdateInterval = 0.2 + + 'Display the final image. + DAViewerControlWindowed.Image = finalImage + + 'Set the sound. + DAViewerControlWindowed.sound = Mix(sound().Pan(-1), sound().Pan(1)) + + 'Start the animation. + DAViewerControlWindowed.Start +End Sub +Function sound() + 'This function creates the sound, which starts out as silence, and then + 'changes to steam.mp2 when the image is clicked. + Set steamDurationConst = DANumber(7.25) + Set steamSound = ImportSound(sndBase + "steam.mp2").sound + + Set s0 = CreateObject("DirectAnimation.DASound") + s0.Init DAStatics.Until(Silence, LeftButtonDown, _ + DAStatics.Until(steamSound.Gain(0.85), TimerAnim(steamDurationConst), s0)) + + Set sound = s0 +End Function +Function montage() + 'This function creates a montage of five cups, which rotate around the espresso + 'machine. The orbit is constructed by the orbitCup function. + pi = 3.14159265359 + total = 5 + Set cupImageX = EmptyMontage + + For i = 0 To total + Set cupImageX = UnionMontage(cupImageX, orbitCup(Add(Mul(DANumber(i), _ + Mul(DANumber(2), Div(DANumber(pi), DANumber(total)))), LocalTime))) + Next + Set montage = cupImageX +End Function +Function beans() + 'This function creates the beans you see in the background. Two images, + 'bean1.gif and bean2.gif are imported, and then moved across the screen + 'while being rotated. + Set delay = DANumber(0.5) + Set Size = DANumber(0.5) + Set initBean1 = ImportImage(imgBase + "bean1.gif") + Set initBean2 = ImportImage(imgBase + "bean2.gif") + + Set image0 = CreateObject("DirectAnimation.DAImage") + Set image1 = CreateObject("DirectAnimation.DAImage") + image0.Init DAStatics.Until(initBean1, TimerAnim(delay), image1) + image1.Init DAStatics.Until(initBean2, TimerAnim(delay), image0) + + Set bean1 = image0.Transform(Scale2UniformAnim(Size)) + Set bean2 = image1.Transform(Scale2UniformAnim(Size)) + + Set beans = Overlay(bean1.Transform(Translate2(-0.01, -0.01)), _ + bean2.Transform(Translate2(0.01, 0))) + + Set rain = beans.Tile() + + Set motion = Mul(LocalTime, Mul(DANumber(2), _ + Div(DANumber(0.03), DANumber(4)))) + + Set beans = rain.Transform(Translate2Anim(Neg(motion), Neg(motion))) +End Function +Function machineMontage() + 'This function displays the espresso machine. + Set steamDurationConst = DANumber(7.25) + Set espreso1 = ImportImage(imgBase + "espreso1.gif") + Set espreso2 = ImportImage(imgBase + "espreso2.gif") + + Set image5 = CreateObject("DirectAnimation.DAImage") + image5.Init DAStatics.Until(espreso1, LeftButtonDown, _ + DAStatics.Until(espreso2, TimerAnim(steamDurationConst), image5)) + + Set machineMontage = ImageMontage(image5, 0) +End Function +Function steamMontage() + 'This function displays the steam you see when you click on the image. + Set steamDurationConst = DANumber(7.25) + Dim steamImages(4) + Set steamImages(0) = ImportImage(imgBase + "steam_1.gif") + Set steamImages(1) = ImportImage(imgBase + "steam_2.gif") + Set steamImages(2) = ImportImage(imgBase + "steam_3.gif") + Set steamImages(3) = ImportImage(imgBase + "steam_4.gif") + Set steamImages(4) = ImportImage(imgBase + "steam_5.gif") + + Set steamLen = DANumber(4) + + Set condition = GT(Add(Div(Mul(LocalTime, steamLen), _ + steamDurationConst), DANumber(1)), steamLen) + + Set result2 = Add(Div(Mul(LocalTime, steamLen), _ + steamDurationConst), DANumber(1)) + + Set Index = Cond(condition, steamLen, result2) + + Set a = DAStatics.Array(steamImages) + + Set s0 = CreateObject("DirectAnimation.DAImage") + s0.Init DAStatics.Until(EmptyImage, LeftButtonDown, _ + DAStatics.Until(a.NthAnim(Index), TimerAnim(steamDurationConst), s0)) + + Set image1 = s0.Transform(Translate2(-0.0085, 0.002)) + + Set steamMontage = ImageMontage(image1, -0.0001) + End Function +Function orbitCup(angle) + pi = 3.14159265359 + Set pos = Point3(0, 0.05, 0) + Set pos = pos.Transform(Compose3(Rotate3Anim(XVector3, Mul(DANumber(7), _ + Div(DANumber(pi), DANumber(16)))), Rotate3Anim(ZVector3, angle))) + + Set cupAngle = LocalTime + + Set imageXX = cupImage(cupAngle).Transform(Compose2(Translate2Anim(pos.X, pos.Y), _ + Scale2UniformAnim(DAStatics.Sub(DANumber(1), _ + Mul(DAStatics.Abs(DAStatics.Cos(Div(angle, _ + DANumber(2)))), DANumber(0.5)))))) + + Set orbitCup = ImageMontageAnim(imageXX, Neg(pos.Z)) +End Function +Function cupImage(cupAngle) + pi = 3.14159265359 + Dim cupImages + cupImages = Array(ImportImage(imgBase + "cup1.gif"), _ + ImportImage(imgBase + "cup2.gif"), ImportImage(imgBase + "cup3.gif"), _ + ImportImage(imgBase + "cup4.gif"), ImportImage(imgBase + "cup5.gif"), _ + ImportImage(imgBase + "cup6.gif"), ImportImage(imgBase + "cup7.gif"), _ + ImportImage(imgBase + "cup8.gif")) + + Set Number = DANumber(7) + Set Index = Add(DAStatics.Mod(Mul(Number, Div(cupAngle, _ + Mul(DANumber(2), DANumber(pi)))), Number), DANumber(1)) + + Set a = DAStatics.Array(cupImages) + + Set cupImage = a.NthAnim(Index) +End Function diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.FRX new file mode 100644 index 0000000..ea17b34 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.VBP new file mode 100644 index 0000000..2c4f3e1 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.VBP @@ -0,0 +1,32 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT40\System32\stdole2.tlb#OLE Automation +Reference=*\G{34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0#C:\WINNT40\System32\danim.dll#ActiveX Animation Control Library +Object={34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0; danim.dll +Form=..\..\..\..\DIRECT~1\VISUAL~1\SHOWCASE\COFFEE\coffee.frm +Startup="coffee" +HelpFile="" +ExeName32="coffee.exe" +Command32="" +Name="DACoffee" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.VBW b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.VBW new file mode 100644 index 0000000..418135a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/COFFEE.VBW @@ -0,0 +1 @@ +coffee = -31, -3, 977, 777, Z, 66, 66, 599, 514, diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/MSSCCPRJ.SCC b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/MSSCCPRJ.SCC new file mode 100644 index 0000000..b544abc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/COFFEE/MSSCCPRJ.SCC @@ -0,0 +1,4 @@ +SCC = This is a Source Code Control file + +[coffee.vbp] +SCC_Project_Name = "$/DXM_RTW_WEB/dxm/Samples/da/VisualBasic/Showcase/coffee", EPFGAAAA diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.FRM new file mode 100644 index 0000000..3eaaf93 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.FRM @@ -0,0 +1,116 @@ +VERSION 5.00 +Object = "{34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0"; "danim.dll" +Begin VB.Form mscubes + BorderStyle = 1 'Fixed Single + Caption = "Mscubes" + ClientHeight = 4080 + ClientLeft = 45 + ClientTop = 330 + ClientWidth = 8505 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 4080 + ScaleWidth = 8505 + StartUpPosition = 3 'Windows Default + Begin DirectAnimationCtl.DAViewerControlWindowed DAViewerControlWindowed + Height = 3855 + Left = 120 + OleObjectBlob = "mscubes.frx":0000 + TabIndex = 0 + Top = 120 + Width = 8295 + End +End +Attribute VB_Name = "mscubes" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +' Visual Basic verion of Mscubes +Private Sub Form_Load() + Set changingRate = CreateObject("DirectAnimation.DANumber") + changingRate.Init DAStatics.Until(DANumber(0.2), LeftButtonDown, _ + DAStatics.Until(DANumber(0), LeftButtonDown, changingRate)) + + ' Set up relative paths for media imports. Does not work in VB + ' debug. Create executable. + Dim mediaBase, geoBase, imgBase, midiBase As String + mediaBase = CurDir + "\..\..\..\..\..\Media\" + geoBase = mediaBase + "geometry\" + imgBase = mediaBase + "image\" + midiBase = mediaBase + "midi\" + + 'Import the needed geometry & images & sound. + Set geo = ImportGeometry(geoBase + "cube.x") + Set importSnd = ImportSound(midiBase + "circus.mid") + Set backgroundSnd = importSnd.Sound.RepeatForever() + + Dim IELogos(8) + Set IELogos(0) = ImportImage(imgBase + "clogo1.gif") + Set IELogos(1) = ImportImage(imgBase + "clogo2.gif") + Set IELogos(2) = ImportImage(imgBase + "clogo3.gif") + Set IELogos(3) = ImportImage(imgBase + "clogo4.gif") + Set IELogos(4) = ImportImage(imgBase + "clogo5.gif") + Set IELogos(5) = ImportImage(imgBase + "clogo6.gif") + Set IELogos(6) = ImportImage(imgBase + "clogo7.gif") + Set IELogos(7) = ImportImage(imgBase + "clogo8.gif") + Set IELogos(8) = ImportImage(imgBase + "clogo9.gif") + + 'Call the Movie(), which cycles through the IELogos images every second. + Set imageCube = Movie(IELogos) + + 'Set lights. + Set pLight = PointLight.Transform(Translate3(0, 0, 4)) + Set dLight = DirectionalLight.Transform(Rotate3(YVector3, 0.5)) + + 'Manipulate the geometry. + Set geo = geo.Transform(Scale3Uniform(0.5)).Texture(imageCube.MapToUnitSquare()) + + 'Create the four cubes and set them to rotate. + Set srate = Mul(LocalTime, DANumber(9)) + Set cube1 = geo.Transform(Compose3(Translate3(0, 0, 2), _ + Rotate3Anim(Vector3(0, 1, 0), Mul(DANumber(0.04), srate)))) + Set cube2 = geo.Transform(Compose3(Translate3(0, 0, -2), _ + Rotate3Anim(Vector3(0, 1, 1), Mul(DANumber(0.03), srate)))) + Set cube3 = geo.Transform(Compose3(Translate3(2, 0, 0), _ + Rotate3Anim(Vector3(0, 0, 1), Mul(DANumber(0.02), srate)))) + Set cube4 = geo.Transform(Compose3(Translate3(-2, 0, 0), _ + Rotate3Anim(Vector3(1, 1, 1), Mul(DANumber(0.03), srate)))) + + 'Do the final prep work on the model. + Set finalgeo = UnionGeometry(cube1, UnionGeometry(cube2, UnionGeometry(cube3, cube4))) + Set Camera = PerspectiveCamera(5.5, 4.5).Transform(Scale3(45, 45, 1)) + + 'Make the complete image rotate. + Set finalgeo = finalgeo.Transform(Rotate3Anim(YVector3, Integral(changingRate))) + Set finalgeo = UnionGeometry(finalgeo, pLight) + + 'Render and display the image. + Set rendered_geo = finalgeo.Render(Camera) + + DAViewerControlWindowed.UpdateInterval = 0.2 + + 'Set the image. + DAViewerControlWindowed.Image = Overlay(rendered_geo, DAStatics.SolidColorImage(White)) + + 'Set the sound. + DAViewerControlWindowed.Sound = backgroundSnd + + 'Start the animation. + DAViewerControlWindowed.Start +End Sub + +Function Movie(IELogos) + Set movieArray = DAStatics.DAArray(IELogos) + Set Movie = movieArray.NthAnim(DAStatics.Mod(LocalTime, DANumber(9))) +End Function + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.FRX new file mode 100644 index 0000000..650d05a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.VBP new file mode 100644 index 0000000..50140a0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.VBP @@ -0,0 +1,32 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT40\System32\stdole2.tlb#OLE Automation +Reference=*\G{34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0#C:\WINNT40\System32\danim.dll#ActiveX Animation Control Library +Object={34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0; danim.dll +Form=mscubes.frm +Startup="mscubes" +HelpFile="" +ExeName32="mscubes.exe" +Command32="" +Name="Cubes" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.VBW b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.VBW new file mode 100644 index 0000000..ccfa3d8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSCUBES.VBW @@ -0,0 +1 @@ +mscubes = -31, -3, 977, 777, , 66, 66, 599, 514, diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSSCCPRJ.SCC b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSSCCPRJ.SCC new file mode 100644 index 0000000..a26434f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/MSCUBES/MSSCCPRJ.SCC @@ -0,0 +1,4 @@ +SCC = This is a Source Code Control file + +[mscubes.vbp] +SCC_Project_Name = "$/DXM_RTW_WEB/dxm/Samples/da/VisualBasic/Showcase/mscubes", ZOFGAAAA diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/MSSCCPRJ.SCC b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/MSSCCPRJ.SCC new file mode 100644 index 0000000..608b651 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/MSSCCPRJ.SCC @@ -0,0 +1,4 @@ +SCC = This is a Source Code Control file + +[Pick3.vbp] +SCC_Project_Name = "$/DXM_RTW_WEB/dxm/Samples/da/VisualBasic/Showcase/pick3", JPFGAAAA diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.FRM new file mode 100644 index 0000000..a0089b5 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.FRM @@ -0,0 +1,167 @@ +VERSION 5.00 +Object = "{34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0"; "danim.dll" +Begin VB.Form Picking + BorderStyle = 1 'Fixed Single + Caption = "Picking" + ClientHeight = 4665 + ClientLeft = 30 + ClientTop = 270 + ClientWidth = 5055 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 4665 + ScaleWidth = 5055 + StartUpPosition = 3 'Windows Default + Begin DirectAnimationCtl.DAViewerControlWindowed DAViewerControlWindowed + Height = 4455 + Left = 120 + OleObjectBlob = "Pick3.frx":0000 + TabIndex = 0 + Top = 120 + Width = 4815 + End +End +Attribute VB_Name = "Picking" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +'Pick3 Visual Basic Sample +Private Sub Form_Load() + pi = 3.1459 + + Dim size As DATransform3 + Set size = Scale3Uniform(0.25) + + Dim speed As DANumber + Set speed = DANumber(0.07) + + ' Set up relative paths for media imports. Does not work in VB + ' debug. Create executable. + Dim mediaBase, geoBase, imgBase As String + mediaBase = CurDir + "\..\..\..\..\..\Media\" + geoBase = mediaBase + "geometry\" + imgBase = mediaBase + "image\" + + 'Import the geometries. + Dim rawCube As DAGeometry + Set rawCube = ImportGeometry(geoBase + "cube.x").Transform(size) + + Dim rawCylinder As DAGeometry + Set rawCylinder = ImportGeometry(geoBase + "cylinder.x").Transform(size) + + Dim rawCone As DAGeometry + Set rawCone = ImportGeometry(geoBase + "cone.x").Transform(size) + + 'Import background. + Dim stillSky As DAImage + Set stillSky = ImportImage(imgBase + "cldtile.jpg") + + 'Make the geometries pickable. + Set cone1 = activate(rawCone, Green) + Set cube1 = activate(rawCube, Magenta) + Set cube2 = activate(rawCube, ColorHslAnim(Div(LocalTime, DANumber(8)), DANumber(1), DANumber(0.5))) + Set cylinder = activate(rawCylinder, ColorRgb(0.8, 0.4, 0.4)) + + 'Construct the final geometry, scale and rotate it. + Set multigeo = UnionGeometry(cone1.Transform(Translate3(0, 1, 0)), _ + UnionGeometry(cube1.Transform(Translate3(0, 0, 1)), _ + UnionGeometry(cube2.Transform(Translate3(0, 0, -1)), cylinder))) + + Set X = Add(DAStatics.Abs(DAStatics.Sin(Mul(LocalTime, _ + DANumber(0.2)))), DANumber(0.5)) + Set Y = Add(DAStatics.Abs(DAStatics.Sin(Mul(LocalTime, _ + DANumber(0.26)))), DANumber(0.5)) + Set Z = Add(DAStatics.Abs(DAStatics.Sin(Mul(LocalTime, _ + DANumber(0.14)))), DANumber(0.5)) + + Set geo = multigeo.Transform(Scale3Anim(X, Y, Z)) + + Set maxSky = stillSky.BoundingBox().Max() + + Set tiledSky = stillSky.Tile() + Set movingSky = tiledSky.Transform(Translate2Anim(Mul(LocalTime, _ + Div(maxSky.X, DANumber(8))), Mul(LocalTime, Div(maxSky.X, DANumber(16))))) + + Set movingGeoImg = geometryImage(geo.Transform(Compose3(Rotate3Anim(ZVector3, _ + Mul(speed, Mul(LocalTime(), DANumber(1.9)))), _ + Rotate3Anim(YVector3, Mul(speed, Mul(LocalTime(), DANumber(pi)))))), speed) + + Set fs = DefaultFont.size(14).Color(Black) + Set titleIm = StringImage("Left Click on an Object", fs).Transform(Translate2(0, 0.04)) + + DAViewerControlWindowed.UpdateInterval = 0.2 + + 'Display the final image. + DAViewerControlWindowed.Image = Overlay(titleIm, Overlay(movingGeoImg, movingSky)) + + 'Start the animation. + DAViewerControlWindowed.Start +End Sub + +Function activate(unpickedGeo As DAGeometry, col As DAColor) As DAGeometry + Dim pickGeo As DAPickableResult + Set pickGeo = unpickedGeo.Pickable() + + Dim pickEvent As DAEvent + Set pickEvent = AndEvent(LeftButtonDown, pickGeo.pickEvent) + + Dim numcyc As DANumber + Set numcyc = CreateObject("DirectAnimation.DANumber") + numcyc.Init DAStatics.Until(DANumber(0), pickEvent, DAStatics.Until(DANumber(1), pickEvent, numcyc)) + + Dim colcyc As DAColor + Set colcyc = CreateObject("DirectAnimation.DAColor") + colcyc.Init DAStatics.Until(White, pickEvent, DAStatics.Until(col, pickEvent, colcyc)) + + Dim xf As DATransform3 + Set xf = Rotate3Anim(XVector3, Integral(numcyc)) + + Set activate = pickGeo.Geometry.DiffuseColor(colcyc).Transform(xf) +End Function +Function geometryImage(geo As DAGeometry, speed As DANumber) As DAImage + Dim scaleFactor As DANumber + Set scaleFactor = DANumber(0.02) + + Dim perspTransform As DATransform3 + Set perspTransform = CreateObject("DirectAnimation.DATransform3") + perspTransform.Init DAStatics.Until(Compose3(Rotate3Anim(XVector3, _ + Mul(speed, LocalTime)), Translate3(0, 0, 0.2)), RightButtonDown, _ + DAStatics.Until(Rotate3Anim(XVector3, Mul(speed, LocalTime)), _ + RightButtonDown, perspTransform)) + + Set light = UnionGeometry(DirectionalLight.Transform(perspTransform), _ + DirectionalLight) + + Dim strcyl As DAString + Set strcyl = CreateObject("DirectAnimation.DAString") + strcyl.Init DAStatics.Until(DAString("Perspective - Right Click to Switch"), _ + RightButtonDown, DAStatics.Until(DAString("Parallel - Right Click to Switch"), _ + RightButtonDown, strcyl)) + + Dim perspectiveCam As DACamera + Set perspectiveCam = PerspectiveCamera(1, 0).Transform(Compose3(Rotate3Anim(XVector3, _ + Mul(speed, LocalTime)), Translate3(0, 0, 0.2))) + + Dim parallelCam As DACamera + Set parallelCam = ParallelCamera(1).Transform(Rotate3Anim(XVector3, _ + Mul(speed, LocalTime))) + + Dim camera As DACamera + Set camera = CreateObject("DirectAnimation.DACamera") + camera.Init DAStatics.Until(perspectiveCam, RightButtonDown, _ + DAStatics.Until(parallelCam, RightButtonDown, camera)) + + Dim fs As DAFontStyle + Set fs = DefaultFont.size(14).Color(Red) + + Dim txtIm, xltTxt As DAImage + Set txtIm = StringImageAnim(strcyl, fs) + Set xltTxt = txtIm.Transform(Translate2(0, -0.045)) + + Set geometryImg = UnionGeometry(geo.Transform(Scale3UniformAnim(scaleFactor)), _ + light).Render(camera) + + Set geometryImage = Overlay(xltTxt, geometryImg) +End Function diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.FRX new file mode 100644 index 0000000..19e3888 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.VBP new file mode 100644 index 0000000..9076f8d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.VBP @@ -0,0 +1,31 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT40\System32\stdole2.tlb#OLE Automation +Reference=*\G{34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0#C:\WINNT40\System32\danim.dll#DirectAnimation Library +Form=Pick3.frm +Object={34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0; danim.dll +Startup="Picking" +ExeName32="Pick3.exe" +Command32="" +Name="Pick3" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.VBW b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.VBW new file mode 100644 index 0000000..b56ea8b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SAMPLES/DA/VISUALBASIC/SHOWCASE/PICK3/PICK3.VBW @@ -0,0 +1 @@ +Picking = 44, 44, 710, 504, , 22, 22, 690, 482, diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SHELLDX.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SHELLDX.HTM new file mode 100644 index 0000000..13a88a7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/SHELLDX.HTM @@ -0,0 +1,48 @@ + + +DirectX Media Shell Page + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    DirectX Media SDK + DirectAnimation SDK + +
    + DirectX Media SDK +
    +
    +
    +
    +

    © 1998 Microsoft +Corporation. All rights reserved. Terms of use.
    +

    + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/VER.JS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/VER.JS new file mode 100644 index 0000000..1cdd998 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/VER.JS @@ -0,0 +1,16 @@ +// common sniffing code +g_sUA = window.navigator.appVersion; + +if (parseInt(g_sUA.indexOf("MSIE ")) >= 0) // Check if IE +{ + g_isIE = true; + g_iMaj = parseInt(g_sUA.substring(g_sUA.indexOf("MSIE ")+5,g_sUA.indexOf (".",g_sUA.indexOf("MSIE ")))); + if (g_sUA.lastIndexOf("Win") >= 0) + g_sPlat = "Win"; +} +else if (parseInt(g_sUA.lastIndexOf("Nav")) >= 0) +{ + g_isNav = true; + g_iMaj = parseInt(g_sUA.substring(0, g_sUA.indexOf('.'))); +} + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/BUTTONS.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/BUTTONS.HTM new file mode 100644 index 0000000..46ff41f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/BUTTONS.HTM @@ -0,0 +1,10 @@ + + +DirectAnimation SDK + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/C-FRAME.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/C-FRAME.HTM new file mode 100644 index 0000000..9af8677 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/C-FRAME.HTM @@ -0,0 +1,24 @@ + +Direct Animation SDK + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/CONTENTS.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/CONTENTS.HTM new file mode 100644 index 0000000..2bb6e9e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/CONTENTS.HTM @@ -0,0 +1,125 @@ + + + + + + +Contents + + + + + + + + + + + + +
    +
    +Microsoft DirectAnimation SDK + +
    + +
    + +DirectAnimation SDK +
    + +
    + +Getting Started +
    + +
    + +Guide to Samples +
    + +
    + +Scripting Cookbook +
    + +
    + +DirectAnimation Controls +
    + +
    + +Programmer's Guide +
    + +
    + +Scripting Reference +
    + +
    + +Java Reference +
    + +
    + +Glossary +
    + +
    + +Tutorials +
    + +
    + +DirectAnimation Readme +
    +
    + + +
    + +Returnto DirectX Media SDK + +Returnto DirectX Expo +

    +Best experienced with
    + + +Microsoft Internet Explorer +
    +Click here to start. +
    +
    +
    + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/CONTROL_MAIN.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/CONTROL_MAIN.HTM new file mode 100644 index 0000000..ed67140 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/CONTROL_MAIN.HTM @@ -0,0 +1,28 @@ + +DirectX Media SDK Control Samples + + + + + + + + + + + + + + + + + +<BODY BGPROPERTIES="FIXED" BGCOLOR="#FFFFFF"> +<BLOCKQUOTE><FONT FACE="VERDANA,ARIAL,HELVETICA" SIZE="2"> +<P><B>Microsoft DirectX Media SDK Control Samples</B> Last updated: November 15, 1997 +<P>Your browser does not support frames. For the latest release of Internet Explorer<BR> +<A HREF="http://www.microsoft.com/ie/ie40/">CLICK HERE</A>. +</FONT></BLOCKQUOTE> +</BODY> + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/HEADGRPH.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/HEADGRPH.HTM new file mode 100644 index 0000000..cad3d01 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/HEADGRPH.HTM @@ -0,0 +1,12 @@ + + +Microsoft DirectAnimation SDK + + + + + +Microsoft DirectAnimation SDK + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/NAVBAR.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/NAVBAR.HTM new file mode 100644 index 0000000..4cb5c57 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/NAVBAR.HTM @@ -0,0 +1,66 @@ + +DirectPlay + + + + + + + + + + + + + +
    +ProductsSearchSupport +Microsoft Home
    + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_CONTROL.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_CONTROL.HTM new file mode 100644 index 0000000..876bbf6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_CONTROL.HTM @@ -0,0 +1,122 @@ + + +DirectX Media SDK Control Samples + + + + + + + + + + + + + + + + +Control Samples + +
    +

    +

    +

    + +

    + +To interact with the animation, left-click on it. +To view the source code, right-click to the right of the animation. + +

    + +

    + +Returnto DirectAnimation SDK Documentation + +Returnto DirectAnimation SDK Guide to Samples Page +

    + +
    +Best experienced with
    + + +Microsoft Internet Explorer +
    +Click here to start.
    +
    + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_VBSCRIPT_SH.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_VBSCRIPT_SH.HTM new file mode 100644 index 0000000..5858740 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_VBSCRIPT_SH.HTM @@ -0,0 +1,102 @@ + + +DirectX Media SDK VBScript Samples + + + + + + + + + + + + + + + + +VBScript Showcase + +
    +

    +

    +

    + +

    + +To interact with the animation, left-click on it. +To view the source code, right-click to the right of the animation. + +

    + +

    + +Returnto DirectAnimation SDK Documentation + +Returnto DirectAnimation SDK Guide to Samples Page +

    + +
    +Best experienced with
    + + +Microsoft Internet Explorer +
    +Click here to start.
    +
    + + + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_VBSCRIPT_TE.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_VBSCRIPT_TE.HTM new file mode 100644 index 0000000..dabec8a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TOC_VBSCRIPT_TE.HTM @@ -0,0 +1,109 @@ + + +DirectAnimation SDK VBScript Samples + + + + + + + + + + + + + + + + +VBScript Templates + +
    +

    +

    +

    + +To interact with the animation, left-click on it. +To view the source code, right-click to the right of the animation. + +

    +

    + +Returnto DirectAnimation SDK Documentation + +Returnto DirectAnimation SDK Guide to Samples Page +

    +

    +

    +Best experienced with
    + + +Microsoft Internet Explorer +
    +Click here to start.
    +
    + + +

    + + \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TUTORIAL.CSS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TUTORIAL.CSS new file mode 100644 index 0000000..e200482 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/TUTORIAL.CSS @@ -0,0 +1,78 @@ +body { background: white; } + +.title { + font-size: 15pt; + font-family: "Verdana, Arial, Helvetica"; + font-weight: bold; + font-style: normal; + color: "black"; + } +.code { + font-size: 10pt; + font-family: "Courier New"; + font-weight: light; + font-style: normal; + color: "BA008F"; + } +.link { + font-size: 10pt; + font-family: "Verdana, Arial, Helvetica"; + font-weight: normal; + font-style: normal; + color: "blue"; + } +.demo { + font-size: 8pt; + font-family: "Verdana, Arial, Helvetica"; + font-weight: normal; + font-style: normal; + color: "blue"; + } +.demotitle{ + font-size: 8pt; + font-family: "Verdana, Arial, Helvetica"; + font-weight: bold; + font-style: normal; + color: "red"; + } +.desc1 { + font-size: 10pt; + font-family: "Verdana, Arial, Helvetica"; + font-weight: bold; + font-style: normal; + color: "black"; + } +.desc2 { + font-size: 10pt; + font-family: "Verdana, Arial, Helvetica"; + font-weight: bold; + font-style: normal; + color: "black"; + } +.flush { + margin-left: -20p; + margin-right: -20p; + } + +.head1 { + line-height: 40pt; + margin-top: 10pt; + margin-left: 70pt; + font-size: 50pt; + font-style: italic; + } + +.head2 { + line-height: 40pt; + margin-left: 150pt; + font: 40pt "arial"; + font-weight: bold; + color: silver; + } +.name { + font-size: 10pt; + font-family: "Verdana, Arial, Helvetica"; + font-weight: normal; + font-style: italic; + color: blue; + } \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VBSCRIPT_MAIN.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VBSCRIPT_MAIN.HTM new file mode 100644 index 0000000..b86bc05 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VBSCRIPT_MAIN.HTM @@ -0,0 +1,29 @@ + +DirectX Media SDK VBScript Samples + + + + + + + + + + + + + + + + + + +<BODY BGPROPERTIES="FIXED" BGCOLOR="#FFFFFF"> +<BLOCKQUOTE><FONT FACE="VERDANA,ARIAL,HELVETICA" SIZE="2"> +<P><B>Microsoft DirectX Media SDK VBScript Samples</B> Last updated: November 15, 1997 +<P>Your browser does not support frames. For the latest release of Internet Explorer<BR> +<A HREF="http://www.microsoft.com/ie/ie40/">CLICK HERE</A>. +</FONT></BLOCKQUOTE> +</BODY> + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VBSCRIPT_RIGHT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VBSCRIPT_RIGHT.HTM new file mode 100644 index 0000000..b1bc9a8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VBSCRIPT_RIGHT.HTM @@ -0,0 +1,59 @@ + + + + +DirectX Media SDK VBScript Samples + + + + + + + + + +

    +

    Welcome to the DirectAnimation VBScript Samples +

    +
    + +

    +Our VBScript samples are divided into two categories: +

    + +We hope you enjoy viewing these samples. + +
    + + +
    + +
    +© 1997 Microsoft Corporation. All rights reserved. Terms of use. + +
    +
    Best viewed in 16-bit color with Internet Explorer 4.0. +
    Email contact for this page is dxmbeta@microsoft.com. +
    + +
    + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VB_RIGHT.HTM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VB_RIGHT.HTM new file mode 100644 index 0000000..580de1b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DANIM/WEBCD/DA/VB_RIGHT.HTM @@ -0,0 +1,114 @@ + + + +DirectX Media SDK VB Samples + + + + + + + + + + + + + + + + + +
    +ProductsSearchSupport +Microsoft Home
    + + + +
    +

    Welcome to the DirectAnimation Visual Basic Samples +

    +
    + +

    +The DirectAnimation Visual Basic Samples were created with the +DirectAnimation Windowed Control. +To download the source code for these samples click here. +

    + +

    +Please Note: There is a buffering problem in Visual Basic +5.0 that causes flashing if the DirectAnimation Windowless Control +is used instead. This will be fixed in Visual Basic 6.0. For now either write your DirectAnimation +Windowless Control animations in VBScript for Web pages, or in Java for applications. +

    + +
    + + +
    + +
    +© 1997 Microsoft Corporation. All rights reserved. Terms of use. +
    +
    Best viewed in 16-bit color with Internet Explorer 4.01. +
    Email contact for this page is dxmbeta@microsoft.com. +
    + +
    + + + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.CNT b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.CNT new file mode 100644 index 0000000..abcfa37 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.CNT @@ -0,0 +1,18 @@ +:Base depends.hlp +1 Overview of Dependency Walker +2 Why use Dependency Walker?=overview_1 +2 Using Dependency Walker for Trouble Shooting Modules=overview_2 +2 Using Dependency Walker for General Information about Modules=overview_3 +1 Understanding the Module Session +2 The Module Session Window=HIDR_DEPENDTYPE +2 The Module Dependency Tree View=HIDR_MODULE_TREE_VIEW +2 The Module List View=HIDR_MODULE_LIST_VIEW +2 The Parent Import Function List View=HIDR_IMPORT_LIST_VIEW +2 The Export Function List View=HIDR_EXPORT_LIST_VIEW +1 Menus and Toolbar +2 The File Menu=file_menu +2 The Edit Menu=edit_menu +2 The View Menu=view_menu +2 The Window Menu=window_menu +2 The Help Menu=help_menu +2 The Toolbar=AFX_HIDW_TOOLBAR diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.EXE b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.EXE new file mode 100644 index 0000000..9ad3eaf Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.HLP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.HLP new file mode 100644 index 0000000..21d819e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DEPEND/DEPENDS.HLP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DLGOBJ/DLGOBJS.REG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DLGOBJ/DLGOBJS.REG new file mode 100644 index 0000000..e6ce1d0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DLGOBJ/DLGOBJS.REG @@ -0,0 +1,5 @@ +REGEDIT +HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. + +// Dialog objects license key +HKEY_CLASSES_ROOT\Licenses\DC4D7921-6AC8-11cf-8ADB-00AA00C00905 = kqmqwjnqqjtqljkjvpqqkqmqokypoqjquoun diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DLGOBJ/README.TXT b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DLGOBJ/README.TXT new file mode 100644 index 0000000..044ffcd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/DLGOBJ/README.TXT @@ -0,0 +1,29 @@ +\DlgObj + +Microsoft Dialog Automation Objects +=================================== + +The Microsoft Dialog Automation Objects component provides Common Dialog +functionality without requiring that you place a control on a form. + +To use install the Microsoft Dialog Automation Objects: + +1. Copy DLGOBJS.DLL from VB98\Wizards\PDWizard to your \Windows\System + directory (or \System32 directory on Windows NT). + +2. Register the design time license by merging the Registry file DLGOBJS.REG + into your registry. + + - Under Windows NT 4.0 and Windows 95/98, right click on + \Tools\Unsupprt\DlgObj\DLGOBJS.REG and choose 'Merge' + + - Under Windows NT 3.51, copy \Tools\Unsupprt\DlgObj\DLGOBJS.REG to your + hard drive and merge it into the registry using RegEdt32.Exe + +3. Register DLGOBJS.DLL by either using RegSvr32.Exe found in \Tools\RegUtils + or by Browsing for the DLGOBJS.DLL in the Project|References Dialog in + Visual Basic and clicking 'Open'. + +4. Once the DLL is registered, select "Microsoft Dialog Automation Objects" + in the Project|References Dialog in Visual Basic. + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.BAS new file mode 100644 index 0000000..0407e90 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.BAS @@ -0,0 +1,25 @@ +Attribute VB_Name = "mExtractIcon" +Option Explicit + +'---------------------------------------------------------------- +'- Public type used in Ole32 api calls... +'---------------------------------------------------------------- +Public Type GUID + Data1 As Long + Data2 As Integer + Data3 As Integer + Data4(7) As Byte +End Type + +'---------------------------------------------------------------- +'- Public API Declares... +'---------------------------------------------------------------- +Public Declare Function CLSIDFromString Lib "ole32.dll" (strCLS As Long, clsid As GUID) As Long +Public Declare Function CoCreateInstance Lib "ole32.dll" (rclsid As GUID, pUnkOuter As Any, ByVal dwClsContext As Long, riid As GUID, ppvObj As IUnknown) As Long + +'---------------------------------------------------------------- +'- Public Constants... +'---------------------------------------------------------------- +Public Const CLSCTX_INPROC_SERVER = 1 +Public Const CLSCTX_INPROC_HANDLER = 2 +Public Const CLSCTX_LOCAL_SERVER = 4 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.CLS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.CLS new file mode 100644 index 0000000..ce306af --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.CLS @@ -0,0 +1,82 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "cExtractIcon" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit + +'---------------------------------------------------------------- +'- Public Enums... +'---------------------------------------------------------------- +Public Enum INPUTFLAGS + FOR_SHELL = GIL_FORSHELL + OPEN_ICON = GIL_OPENICON +End Enum + +Public Enum RETURNFLAGS + DONTCACHE = GIL_DONTCACHE + NOTFILENAME = GIL_NOTFILENAME + PERCLASS = GIL_PERCLASS + PERINSTANCE = GIL_PERINSTANCE + SIMULATEDOC = GIL_SIMULATEDOC +End Enum + +'---------------------------------------------------------------- +Public Sub GetIconLocation(clsid As String, iFlag As INPUTFLAGS, Idx As Long, IconFile As String, rFlags As RETURNFLAGS) +'---------------------------------------------------------------- + Dim ExIcon As IExtractIcon ' Object --> IExtractIcon Interface + Dim pUnk As IUnknown ' Object --> IUnknown Interface + Dim szIconFile As String ' Icon file path... + Dim cchMax As Long ' Char count of icon file path +'---------------------------------------------------------------- + Set pUnk = CreateObjectLocal(clsid) ' Get IUnknown pointer to clsid object + Set ExIcon = pUnk ' Implement Known Interface (IEctractIcon) from IUnknown... + + szIconFile = String(255, 0) ' Preallocate 255 null chars for string + cchMax = Len(szIconFile) ' Count length of string... + + ' Call GetIconLocation from clsid's IExtractIcon interface... + ExIcon.GetIconLocation iFlag, StrPtr(szIconFile), cchMax, Idx, rFlags + + IconFile = StrConv(szIconFile, vbUnicode) ' Convert string to Unicode... + + Set ExIcon = Nothing ' Destroy IExtractIcon Interface reference + Set pUnk = Nothing ' Destroy IUnknown Interface reference... +'---------------------------------------------------------------- +End Sub +'---------------------------------------------------------------- + +'---------------------------------------------------------------- +Public Function CreateObjectLocal(strCLS As String) As IUnknown +'---------------------------------------------------------------- + Dim rclsid As GUID ' Class identifier (CLSID) of object + Dim IID_IUnknown As GUID ' Reference to identifier of IUnknown interface + Dim pvObj As IUnknown ' Indirect pointer to requested interface + Dim hr As Long ' HRESULT +'---------------------------------------------------------------- + hr = CLSIDFromString(ByVal StrPtr(strCLS), rclsid) ' Convert classid to guid + + If (hr = 0) Then ' If Success + With IID_IUnknown ' Build IUnknown Guid + .Data4(0) = &HC0 + .Data4(7) = &H46 + End With + + hr = CoCreateInstance(rclsid, ByVal 0&, CLSCTX_INPROC_SERVER, IID_IUnknown, pvObj) ' Get instance of object from classid + + If (hr = 0) Then ' If Success + Set CreateObjectLocal = pvObj ' Return Created object + Exit Function + End If + End If + + If hr Then Err.Raise hr ' Validate HRESULT +'---------------------------------------------------------------- +End Function +'---------------------------------------------------------------- + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.CMP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.CMP new file mode 100644 index 0000000..3e7ff32 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.CMP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.ODL b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.ODL new file mode 100644 index 0000000..0c3a29e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.ODL @@ -0,0 +1,63 @@ +//========================================================================== +// File: generated on 11/11/96 10:48 AM: By Brian Harris +//========================================================================== +[ + uuid(78268EF0-F53D-11cf-BD9C-00AA00575603), + helpstring("VB 5 - IExtractIcon Interface"), + version(1.0) +] + +//========================================================================== +library IExtractIconA +//========================================================================== +{ + importlib("stdole2.tlb"); + + //========================================================================== + typedef [ helpstring("GetIconLocation() return flags.") ] + //========================================================================== + enum Return_Flags + { + GIL_SIMULATEDOC =0x0001, // simulate this document icon for this + GIL_PERINSTANCE =0x0002, // icons from this class are per instance (each file has its own) + GIL_PERCLASS =0x0004, // icons from this class per class (shared for all files of this type) + GIL_NOTFILENAME =0x0008, // location is not a filename, must call ::ExtractIcon + GIL_DONTCACHE =0x0010 // this icon should not be cached + } Return_Flags; + + //========================================================================== + typedef [ helpstring("GetIconLocation() input flags.") ] + //========================================================================== + enum Input_Flags + { + GIL_OPENICON =0x0001, // allows containers to specify an "open" look + GIL_FORSHELL =0x0002 // icon is to be displayed in a ShellFolder + } Input_Flags; + + //========================================================================== + [ + uuid(000214EB-0000-0000-C000-000000000046), + helpstring("IExtractIcon Interface"), + odl + ] + //========================================================================== + interface IExtractIcon:IUnknown + //========================================================================== + { + [helpstring("GetIconLocation")] + HRESULT GetIconLocation( + [in] long uFlags, + [in] long szIconFile, + [in] long cchMax, + [in,out] long *piIndex, + [in,out] long *pwFlags); + + [helpstring("Extract")] + HRESULT Extract( + [in] long szIconFile, + [in] long nIconIndex, + [in,out] long *phiconLarge, + [in,out] long *phiconSmall, + [in] long nIconSize); + } +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.TLB b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.TLB new file mode 100644 index 0000000..844cc38 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.TLB differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.VBP new file mode 100644 index 0000000..bd3778b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/IHANDLER.VBP @@ -0,0 +1,33 @@ +Type=OleDll +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT35\System32\stdole2.tlb#OLE Automation +Reference=*\G{78268EF0-F53D-11CF-BD9C-00AA00575603}#1.0#0#IHandler.TLB#VB 5 - IExtractIcon Interface +Class=cExtractIcon; IHandler.cls +Module=mExtractIcon; IHandler.bas +Startup="(None)" +HelpFile="" +Title="pIconHandler" +ExeName32="IHandler.dll" +Command32="" +Name="pIconHandler" +HelpContextID="0" +CompatibleMode="1" +CompatibleEXE32="IHandler.cmp" +MajorVer=1 +MinorVer=0 +RevisionVer=3716 +AutoIncrementVer=0 +ServerSupportFiles=0 +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=-1 +BoundsCheck=-1 +OverflowCheck=-1 +FlPointCheck=-1 +FDIVCheck=-1 +UnroundedFP=-1 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.FRM new file mode 100644 index 0000000..3631f00 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.FRM @@ -0,0 +1,91 @@ +VERSION 5.00 +Begin VB.Form frmTest + Caption = "Test Icon Handler..." + ClientHeight = 2790 + ClientLeft = 2775 + ClientTop = 2730 + ClientWidth = 4575 + Icon = "Test_IH.frx":0000 + LinkTopic = "Form1" + ScaleHeight = 2790 + ScaleWidth = 4575 + Begin VB.ComboBox cmbGuids + Height = 315 + Left = 90 + TabIndex = 3 + Top = 300 + Width = 4395 + End + Begin VB.TextBox txtOut + Height = 1485 + Left = 90 + MultiLine = -1 'True + ScrollBars = 2 'Vertical + TabIndex = 2 + Top = 1200 + Width = 4395 + End + Begin VB.CommandButton cmdCallHandler + Caption = "Call IconHandler From GUID" + Height = 405 + Left = 90 + TabIndex = 0 + Top = 720 + Width = 4395 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "GUID:" + Height = 195 + Left = 120 + TabIndex = 1 + Top = 60 + Width = 450 + End +End +Attribute VB_Name = "frmTest" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +'---------------------------------------------------------------- +Private Sub cmdCallHandler_Click() +'---------------------------------------------------------------- + Dim rf As Long ' Return flags + Dim Idx As Long ' Icon Index + Dim IconFile As String ' Icon file output + Dim Handler As cExtractIcon ' Object reference variable +'---------------------------------------------------------------- + Set Handler = New cExtractIcon ' Instansiate cExtractIcon class. + txtOut.Text = "" ' Clear output textbox + + ' Call IconHandler in GUID object...(Method 1) + Handler.GetIconLocation cmbGuids.Text, FOR_SHELL, Idx, IconFile, rf + txtOut.Text = txtOut.Text & IconFile ' Display IconFile output + txtOut.Text = txtOut.Text & vbCrLf + + ' Call IconHandler in GUID object...(Method 2) + Handler.GetIconLocation cmbGuids.Text, OPEN_ICON, Idx, IconFile, rf + txtOut.Text = txtOut.Text & IconFile ' Display IconFile output + txtOut.Text = txtOut.Text & vbCrLf + + Set Handler = Nothing ' Destroy handler object. +'---------------------------------------------------------------- +End Sub +'---------------------------------------------------------------- + +'---------------------------------------------------------------- +Private Sub Form_Load() +'---------------------------------------------------------------- + ' Add a few known classid's that are known IconHandlers... + ' Note that these objects may not be installed on your system... + cmbGuids.AddItem "{FBF23B40-E3F0-101B-8488-00AA003E56F8}" + cmbGuids.AddItem "{00021401-0000-0000-C000-000000000046}" + cmbGuids.AddItem "{0006F045-0000-0000-C000-000000000046}" + cmbGuids.Text = cmbGuids.List(0) +'---------------------------------------------------------------- +End Sub +'---------------------------------------------------------------- + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.FRX new file mode 100644 index 0000000..b20c2b6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.VBP new file mode 100644 index 0000000..9c58440 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/IHANDLER/TEST_IH/TEST_IH.VBP @@ -0,0 +1,31 @@ +Type=Exe +Reference=*\G{8B7D6F47-0C17-11D0-BDAD-00AA00575603}#c.0#0#..\IHandler.dll# +Form=Test_IH.frm +IconForm="frmTest" +Startup="frmTest" +HelpFile="" +ExeName32="Test_IH.exe" +Command32="" +Name="TestIconHandler" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=3716 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName=" " +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=-1 +BoundsCheck=-1 +OverflowCheck=-1 +FlPointCheck=-1 +FDIVCheck=-1 +UnroundedFP=-1 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/MCIWINDX/MCIWINDX.DOC b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/MCIWINDX/MCIWINDX.DOC new file mode 100644 index 0000000..afbcf9b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/MCIWINDX/MCIWINDX.DOC differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/README.TXT b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/README.TXT new file mode 100644 index 0000000..b062652 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/README.TXT @@ -0,0 +1 @@ +The content of this directory is unsupported by Microsoft Technical Support. \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.BAS new file mode 100644 index 0000000..a778eee --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.BAS @@ -0,0 +1,19 @@ +Attribute VB_Name = "mShellLink" +Option Explicit + +'--------------------------------------------------------------- +'- Public API Declares... +'--------------------------------------------------------------- +#If UNICODE Then + Public Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromIDListW" (ByVal pidl As Long, ByVal szPath As Long) As Long +#Else + Public Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal szPath As String) As Long +#End If + +Public Declare Function SHGetSpecialFolderLocation Lib "Shell32" (ByVal hwndOwner As Long, ByVal nFolder As Integer, ppidl As Long) As Long + +'--------------------------------------------------------------- +'- Public constants... +'--------------------------------------------------------------- +Public Const MAX_PATH = 255 +Public Const MAX_NAME = 40 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.CLS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.CLS new file mode 100644 index 0000000..b1e80a9 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.CLS @@ -0,0 +1,213 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "cShellLink" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit + +'--------------------------------------------------------------- +'- Public enums... +'--------------------------------------------------------------- +Public Enum STGM + STGM_DIRECT = &H0& + STGM_TRANSACTED = &H10000 + STGM_SIMPLE = &H8000000 + STGM_READ = &H0& + STGM_WRITE = &H1& + STGM_READWRITE = &H2& + STGM_SHARE_DENY_NONE = &H40& + STGM_SHARE_DENY_READ = &H30& + STGM_SHARE_DENY_WRITE = &H20& + STGM_SHARE_EXCLUSIVE = &H10& + STGM_PRIORITY = &H40000 + STGM_DELETEONRELEASE = &H4000000 + STGM_CREATE = &H1000& + STGM_CONVERT = &H20000 + STGM_FAILIFTHERE = &H0& + STGM_NOSCRATCH = &H100000 +End Enum + +Public Enum SHELLFOLDERS ' Shell Folder Path Constants... + CSIDL_DESKTOP = &H0& ' ..\WinNT\profiles\username\Desktop + CSIDL_PROGRAMS = &H2& ' ..\WinNT\profiles\username\Start Menu\Programs + CSIDL_CONTROLS = &H3& ' No Path + CSIDL_PRINTERS = &H4& ' No Path + CSIDL_PERSONAL = &H5& ' ..\WinNT\profiles\username\Personal + CSIDL_FAVORITES = &H6& ' ..\WinNT\profiles\username\Favorites + CSIDL_STARTUP = &H7& ' ..\WinNT\profiles\username\Start Menu\Programs\Startup + CSIDL_RECENT = &H8& ' ..\WinNT\profiles\username\Recent + CSIDL_SENDTO = &H9& ' ..\WinNT\profiles\username\SendTo + CSIDL_BITBUCKET = &HA& ' No Path + CSIDL_STARTMENU = &HB& ' ..\WinNT\profiles\username\Start Menu + CSIDL_DESKTOPDIRECTORY = &H10& ' ..\WinNT\profiles\username\Desktop + CSIDL_DRIVES = &H11& ' No Path + CSIDL_NETWORK = &H12& ' No Path + CSIDL_NETHOOD = &H13& ' ..\WinNT\profiles\username\NetHood + CSIDL_FONTS = &H14& ' ..\WinNT\fonts + CSIDL_TEMPLATES = &H15& ' ..\WinNT\ShellNew + CSIDL_COMMON_STARTMENU = &H16& ' ..\WinNT\profiles\All Users\Start Menu + CSIDL_COMMON_PROGRAMS = &H17& ' ..\WinNT\profiles\All Users\Start Menu\Programs + CSIDL_COMMON_STARTUP = &H18& ' ..\WinNT\profiles\All Users\Start Menu\Programs\Startup + CSIDL_COMMON_DESKTOPDIRECTORY = &H19& '..\WinNT\profiles\All Users\Desktop + CSIDL_APPDATA = &H1A& ' ..\WinNT\profiles\username\Application Data + CSIDL_PRINTHOOD = &H1B& ' ..\WinNT\profiles\username\PrintHood +End Enum + +Public Enum SHOWCMDFLAGS + SHOWNORMAL = 5 + SHOWMAXIMIZE = 3 + SHOWMINIMIZE = 7 +End Enum + +'--------------------------------------------------------------- +Public Function GetSystemFolderPath(ByVal hwnd As Long, ByVal Id As Integer, sfPath As String) As Long +'--------------------------------------------------------------- + Dim rc As Long ' Return code + Dim pidl As Long ' ptr to Item ID List + Dim cbPath As Long ' char count of path + Dim szPath As String ' String var for path +'--------------------------------------------------------------- + szPath = Space(MAX_PATH) ' Pre-allocate path string for api call + + rc = SHGetSpecialFolderLocation(hwnd, Id, pidl) ' Get pidl for Id... + If (rc = 0) Then ' If success is 0 +#If UNICODE Then + rc = SHGetPathFromIDList(pidl, StrPtr(szPath)) ' Get Path from Item Id List +#Else + rc = SHGetPathFromIDList(pidl, szPath) ' Get Path from Item Id List +#End If + If (rc = 1) Then ' If success is 1 + szPath = Trim$(szPath) ' Fix path string + cbPath = Len(szPath) ' Get length of path + If (Asc(Right(szPath, 1)) = 0) Then cbPath = cbPath - 1 ' Adjust path length + If (cbPath > 0) Then sfPath = Left$(szPath, cbPath) ' Adjust path string variable + GetSystemFolderPath = True ' Return success + End If + End If +'--------------------------------------------------------------- +End Function +'--------------------------------------------------------------- + +'--------------------------------------------------------------- +Public Function CreateShellLink(LnkFile As String, ExeFile As String, WorkDir As String, _ + ExeArgs As String, IconFile As String, IconIdx As Long, _ + ShowCmd As SHOWCMDFLAGS) As Long +'--------------------------------------------------------------- + Dim rc As Long + Dim pidl As Long ' Item id list + Dim dwReserved As Long ' Reserved flag + Dim cShellLink As ShellLinkA ' An explorer IShellLinkA(Win 95/Win NT) instance + Dim cPersistFile As IPersistFile ' An explorer IPersistFile instance +'--------------------------------------------------------------- + If ((LnkFile = "") Or (ExeFile = "")) Then Exit Function ' Validate min. input requirements. + + On Error GoTo ErrHandler + Set cShellLink = New ShellLinkA ' Create new IShellLink interface + Set cPersistFile = cShellLink ' Implement cShellLink's IPersistFile interface + + With cShellLink + .SetPath ExeFile ' set command line exe name & path to new ShortCut. + + If (WorkDir <> "") Then .SetWorkingDirectory WorkDir ' Set working directory in shortcut + + If (ExeArgs <> "") Then .SetArguments ExeArgs ' Add arguments to command line + +' if (LnkDesc <> "") then .SetDescription pszName ' Set shortcut description +' .SetHotkey wHotKey + + If (IconFile <> "") Then .SetIconLocation IconFile, IconIdx ' Set shortcut icon location & index + + .SetDescription "ShellLink Sample" & vbNullChar +' .SetIDList pidl +' dwReserved = 0 +' .SetRelativePath pszPathRel, dwReserved + + .SetShowCmd ShowCmd ' Set shortcut's startup mode (min,max,normal) + End With + + cShellLink.Resolve 0, SLR_UPDATE + cPersistFile.Save StrConv(LnkFile, vbUnicode), 0 ' Unicode conversion hack... This must be done! + CreateShellLink = True ' Return Success + +'--------------------------------------------------------------- +ErrHandler: +'--------------------------------------------------------------- + Set cPersistFile = Nothing ' Destroy Object + Set cShellLink = Nothing ' Destroy Object +'--------------------------------------------------------------- +End Function +'--------------------------------------------------------------- + +'--------------------------------------------------------------- +Public Function GetShellLinkInfo(LnkFile As String, ExeFile As String, WorkDir As String, _ + ExeArgs As String, IconFile As String, IconIdx As Long, _ + ShowCmd As Long) As Long +'--------------------------------------------------------------- + Dim pidl As Long ' Item id list + Dim wHotKey As Long ' Hotkey to shortcut... + Dim fd As WIN32_FIND_DATA + Dim Description As String + Dim buffLen As Long + Dim cShellLink As ShellLinkA ' An explorer IShellLink instance + Dim cPersistFile As IPersistFile ' An explorer IPersistFile instance +'--------------------------------------------------------------- + If (LnkFile = "") Then Exit Function ' Validate min. input requirements. + + Set cShellLink = New ShellLinkA ' Create new IShellLink interface + Set cPersistFile = cShellLink ' Implement cShellLink's IPersistFile interface + + ' Load Shortcut file...(must do this UNICODE hack!) + On Error GoTo ErrHandler + cPersistFile.Load StrConv(LnkFile, vbUnicode), STGM_DIRECT + + With cShellLink + ' Get command line exe name & path of shortcut + ExeFile = Space(MAX_PATH) + buffLen = Len(ExeFile) + .GetPath ExeFile, buffLen, fd, SLGP_UNCPRIORITY + Dim s As String + s = fd.cFileName ' Not returned to calling function + + ' Get working directory of shortcut + WorkDir = Space(MAX_PATH) + buffLen = Len(WorkDir) + .GetWorkingDirectory WorkDir, buffLen + + ' Get command line arguments of shortcut + ExeArgs = Space(MAX_PATH) + buffLen = Len(ExeArgs) + .GetArguments ExeArgs, buffLen + + ' Get description of shortcut + Description = Space(MAX_PATH) + buffLen = Len(Description) + .GetDescription Description, buffLen ' Not returned to calling function + + ' Get the HotKey for shortcut + .GetHotkey wHotKey ' Not returned to calling function + + ' Get shortcut icon location & index + IconFile = Space(MAX_PATH) + buffLen = Len(IconFile) + .GetIconLocation IconFile, buffLen, IconIdx + + ' Get Item ID List... + .GetIDList pidl ' Not returned to calling function + + ' Set shortcut's startup mode (min,max,normal) + .GetShowCmd ShowCmd + End With + + GetShellLinkInfo = True ' Return Success +'--------------------------------------------------------------- +ErrHandler: +'--------------------------------------------------------------- + Set cPersistFile = Nothing ' Destroy Object + Set cShellLink = Nothing ' Destroy Object +'--------------------------------------------------------------- +End Function +'--------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.CMP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.CMP new file mode 100644 index 0000000..5ea3395 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.CMP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.ODL b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.ODL new file mode 100644 index 0000000..c210751 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.ODL @@ -0,0 +1,227 @@ +// File: generated on 8/29/96 4:51:01 PM - By Brian Harris + + // Default Win95[ANSI] +//#define UNICODE // WinNT[UNICODE] + +[ +#ifdef UNICODE + uuid(11269240-F241-11cf-BD9A-00AA00575603), + helpstring("VB 5 - IShellLinkW Interface(UNICODE)"), +#else + uuid(11269241-F241-11cf-BD9A-00AA00575603), + helpstring("VB 5 - IShellLinkA Interface(ANSI)"), +#endif + version(1.0) +] + + +#ifdef UNICODE + library IShellLinkW + #define ISTRING LPWSTR +#else + library IShellLinkA + #define ISTRING LPSTR +#endif +#define TCHAR unsigned char + +{ + importlib("stdole2.tlb"); + + #define MAX_PATH 255 + + typedef struct FILETIME + { + long dwLowDateTime; + long dwHighDateTime; + } FILETIME; + + typedef struct WIN32_FIND_DATA + { + long dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + long nFileSizeHigh; + long nFileSizeLow; + long dwReserved0; + long dwReserved1; + TCHAR cFileName[MAX_PATH]; + TCHAR cAlternate[14]; + } WIN32_FIND_DATA; + + // IShellLink::Resolve fFlags + typedef enum { + SLR_NO_UI = 0x0001, + SLR_ANY_MATCH = 0x0002, + SLR_UPDATE = 0x0004, + } SLR_FLAGS; + + // IShellLink::GetPath fFlags + typedef enum { + SLGP_SHORTPATH = 0x0001, + SLGP_UNCPRIORITY = 0x0002, + } SLGP_FLAGS; + + //========================================================================== + [ + uuid(0000010b-0000-0000-C000-000000000046), + helpstring("IPersistFile Interface"), + odl + ] + //========================================================================== + interface IPersistFile : IUnknown + //========================================================================== + { + [helpstring("GetClassID")] + HRESULT GetClassID ( + [in,out] long *pClassID); + + [helpstring("IsDirty")] + HRESULT IsDirty (void); + + [helpstring("Load")] + HRESULT Load ( + [in] LPSTR pszFileName, + [in] long dwMode); + + [helpstring("Save")] + HRESULT Save ( + [in] LPSTR pszFileName, + [in] long fRemember); + + [helpstring("SaveCompleted")] + HRESULT SaveCompleted ( + [in] LPSTR pszFileName); + + [helpstring("GetCurFile")] + HRESULT GetCurFile ( + [in,out] LPSTR *ppszFileName); + } + + //========================================================================== + [ +#ifdef UNICODE + uuid(000214F9-0000-0000-C000-000000000046), + helpstring("IShellLinkW Interface"), +#else + uuid(000214EE-0000-0000-C000-000000000046), + helpstring("IShellLinkA Interface"), +#endif + odl, hidden + ] + + //========================================================================== +#ifdef UNICODE + interface IShellLinkW:IUnknown +#else + interface IShellLinkA:IUnknown +#endif + //========================================================================== + { + [helpstring("GetPath")] + HRESULT GetPath( + [in] ISTRING pszFile, + [in] long cchMaxPath, + [in,out] WIN32_FIND_DATA *pfd, + [in] long fflags); + + [helpstring("GetIDList")] + HRESULT GetIDList( + [in,out] long *ppidl); + + [helpstring("SetIDList")] + HRESULT SetIDList( + [in] long pidl); + + [helpstring("GetDescription")] + HRESULT GetDescription( + [in] ISTRING pszName, + [in] long cchMaxName); + + [helpstring("SetDescription")] + HRESULT SetDescription( + [in] ISTRING pszName); + + [helpstring("GetWorkingDirectory")] + HRESULT GetWorkingDirectory( + [in] ISTRING pszDir, + [in] long cchMaxPath); + + [helpstring("SetWorkingDirectory")] + HRESULT SetWorkingDirectory( + [in] ISTRING pszDir); + + [helpstring("GetArguments")] + HRESULT GetArguments( + [in] ISTRING pszArgs, + [in] long cchMaxPath); + + [helpstring("SetArguments")] + HRESULT SetArguments( + [in] ISTRING pszArgs); + + [helpstring("GetHotkey")] + HRESULT GetHotkey( + [in,out] long *pwHotkey); + + [helpstring("SetHotkey")] + HRESULT SetHotkey( + [in] long wHotkey); + + [helpstring("GetShowCmd")] + HRESULT GetShowCmd( + [in,out] long *piShowCmd); + + [helpstring("SetShowCmd")] + HRESULT SetShowCmd( + [in] long iShowCmd); + + [helpstring("GetIconLocation")] + HRESULT GetIconLocation( + [in] ISTRING pszIconPath, + [in] long cchIconPath, + [in,out] long *piIcon); + + [helpstring("SetIconLocation")] + HRESULT SetIconLocation( + [in] ISTRING pszIconPath, + [in] long iIcon); + + [helpstring("SetRelativePath")] + HRESULT SetRelativePath( + [in] ISTRING pszPathRel, + [in] long dwReserved); + + [helpstring("Resolve")] + HRESULT Resolve( + [in] long hwnd, + [in] long fflags); + + [helpstring("SetPath")] + HRESULT SetPath( + [in] ISTRING pszFile); + } +#ifdef UNICODE + //========================================================================== + [ + uuid(00021401-0000-0000-C000-000000000046), + helpstring("ShellLinkW Class") + ] + //========================================================================== + coclass ShellLinkW + { + [default] interface IShellLinkW; + } +#else + //========================================================================== + [ + uuid(00021401-0000-0000-C000-000000000046), + helpstring("ShellLinkA Class") + ] + //========================================================================== + coclass ShellLinkA + { + [default] interface IShellLinkA; + } +#endif +} diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.TLB b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.TLB new file mode 100644 index 0000000..4929300 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.TLB differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.VBP new file mode 100644 index 0000000..5515dd8 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/SHELLLNK.VBP @@ -0,0 +1,35 @@ +Type=OleDll +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#stdole2.tlb#OLE Automation +Reference=*\G{11269241-F241-11CF-BD9A-00AA00575603}#1.0#0#ShellLnk.tlb#VB 5 - IShellLinkA Interface(ANSI) +Module=mShellLink; ShellLnk.bas +Class=cShellLink; ShellLnk.cls +Startup="(None)" +HelpFile="" +Title="pShellLink" +ExeName32="ShellLnk.dll" +Command32="" +Name="pShellLink" +HelpContextID="0" +CompatibleMode="1" +CompatibleEXE32="ShellLnk.cmp" +MajorVer=1 +MinorVer=0 +RevisionVer=3722 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName=" " +CondComp="UNICODE = 0" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=-1 +BoundsCheck=-1 +OverflowCheck=-1 +FlPointCheck=-1 +FDIVCheck=-1 +UnroundedFP=-1 +StartMode=1 +Unattended=-1 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.FRM new file mode 100644 index 0000000..07d9a6b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.FRM @@ -0,0 +1,369 @@ +VERSION 5.00 +Begin VB.Form frmTestSLnk + BorderStyle = 4 'Fixed ToolWindow + Caption = "Tests the IShellLink Typelib Interface." + ClientHeight = 3780 + ClientLeft = 420 + ClientTop = 720 + ClientWidth = 9195 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3780 + ScaleWidth = 9195 + ShowInTaskbar = 0 'False + Begin VB.TextBox txtProgramGroup + Height = 285 + Left = 3120 + TabIndex = 20 + Top = 3300 + Width = 5865 + End + Begin VB.CommandButton cmdCreateGroup + Caption = "Create Group" + Height = 375 + Left = 180 + TabIndex = 18 + Top = 1050 + Width = 1125 + End + Begin VB.CommandButton cmdGetLinkInfo + Caption = "GetLinkInfo" + Height = 375 + Left = 180 + TabIndex = 17 + Top = 540 + Width = 1125 + End + Begin VB.ComboBox cmbSysFolders + Height = 315 + Left = 3120 + TabIndex = 16 + Top = 90 + Width = 5865 + End + Begin VB.CommandButton cmdGetPath + Caption = "GetSysPath" + Height = 375 + Left = 1920 + TabIndex = 15 + Top = 60 + Width = 1125 + End + Begin VB.TextBox txtShowCmd + Height = 285 + Left = 3120 + TabIndex = 13 + Top = 2895 + Width = 585 + End + Begin VB.TextBox txtCmdArgs + Height = 285 + Left = 3120 + TabIndex = 11 + Top = 1740 + Width = 5865 + End + Begin VB.TextBox txtIconIndex + Height = 285 + Left = 3120 + TabIndex = 9 + Top = 2505 + Width = 585 + End + Begin VB.TextBox txtIconFile + Height = 285 + Left = 3120 + TabIndex = 7 + Top = 2130 + Width = 5865 + End + Begin VB.TextBox txtWorkDir + Height = 285 + Left = 3120 + TabIndex = 5 + Top = 1365 + Width = 5865 + End + Begin VB.TextBox txtExeName + Height = 285 + Left = 3120 + TabIndex = 3 + Top = 975 + Width = 5865 + End + Begin VB.TextBox txtLinkName + Height = 285 + Left = 3120 + TabIndex = 1 + Top = 600 + Width = 5865 + End + Begin VB.CommandButton cmdCreateLink + Caption = "CreateLink" + Height = 345 + Left = 180 + TabIndex = 0 + Top = 60 + Width = 1155 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Start Menu Group:" + Height = 195 + Index = 7 + Left = 1770 + TabIndex = 19 + Top = 3360 + Width = 1305 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Show Command:" + Height = 195 + Index = 6 + Left = 1860 + TabIndex = 14 + Top = 2940 + Width = 1200 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Cmd Arguments:" + Height = 195 + Index = 5 + Left = 1890 + TabIndex = 12 + Top = 1800 + Width = 1155 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Icon Index:" + Height = 195 + Index = 4 + Left = 2265 + TabIndex = 10 + Top = 2565 + Width = 795 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Icon FileName:" + Height = 195 + Index = 3 + Left = 1965 + TabIndex = 8 + Top = 2175 + Width = 1065 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Working Directory:" + Height = 195 + Index = 2 + Left = 1740 + TabIndex = 6 + Top = 1425 + Width = 1320 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Exe Name:" + Height = 195 + Index = 1 + Left = 2280 + TabIndex = 4 + Top = 1035 + Width = 780 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Link Name:" + Height = 195 + Index = 0 + Left = 2250 + TabIndex = 2 + Top = 660 + Width = 810 + End +End +Attribute VB_Name = "frmTestSLnk" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +'--------------------------------------------------------------- +Private Sub cmdCreateGroup_Click() +'--------------------------------------------------------------- + MkDir txtProgramGroup.Text ' Create Start Menu Program Group... +'--------------------------------------------------------------- +End Sub +'--------------------------------------------------------------- + +'--------------------------------------------------------------- +Private Sub cmdCreateLink_Click() +'--------------------------------------------------------------- + Dim sLnk As cShellLink ' ShellLink Variable +'--------------------------------------------------------------- + Set sLnk = New cShellLink ' Create ShellLink Instance + + sLnk.CreateShellLink txtLinkName.Text, _ + txtExeName.Text, _ + txtWorkDir.Text, _ + txtCmdArgs.Text, _ + txtIconFile.Text, _ + CLng(txtIconIndex.Text), _ + CLng(txtShowCmd.Text) ' Create a ShellLink (ShortCut) + + Set sLnk = Nothing ' Destroy object reference +'--------------------------------------------------------------- +End Sub +'--------------------------------------------------------------- + +'--------------------------------------------------------------- +Private Sub cmdGetLinkInfo_Click() +'--------------------------------------------------------------- + Dim sLnk As cShellLink ' ShellLink class variable + Dim LnkFile As String ' Link file name + Dim ExeFile As String ' Link - Exe file name + Dim WorkDir As String ' - Working directory + Dim ExeArgs As String ' - Command line arguments + Dim IconFile As String ' - Icon File name + Dim IconIdx As Long ' - Icon Index + Dim ShowCmd As Long ' - Program start state... +'--------------------------------------------------------------- + Set sLnk = New cShellLink ' Create new Explorer IShellLink Instance + + LnkFile = txtLinkName.Text ' Get link file name + txtExeName.Text = "" ' Clear output variables... + txtWorkDir.Text = "" + txtCmdArgs.Text = "" + txtIconFile.Text = "" + txtIconIndex.Text = "" + txtShowCmd.Text = "" + + sLnk.GetShellLinkInfo LnkFile, _ + ExeFile, _ + WorkDir, _ + ExeArgs, _ + IconFile, _ + IconIdx, _ + ShowCmd ' Get Info for shortcut file... + + txtLinkName.Text = LnkFile ' Display output... + txtExeName.Text = ExeFile + txtWorkDir.Text = WorkDir + txtCmdArgs.Text = ExeArgs + txtIconFile.Text = IconFile + txtIconIndex.Text = Val(IconIdx) + txtShowCmd.Text = Val(ShowCmd) + + Set sLnk = Nothing ' Destroy object reference... +'--------------------------------------------------------------- +End Sub +'--------------------------------------------------------------- + +'--------------------------------------------------------------- +Private Sub cmdGetPath_Click() +'--------------------------------------------------------------- + Dim rc As Long ' return code + Dim sLnk As cShellLink ' ShellLink class object + Dim sfPath As String ' System folder path + Dim Id As Long ' ID of System folder... +'--------------------------------------------------------------- + ' Create instance of Explorer's IShellLink Interface Base Class + Set sLnk = New cShellLink + + Id = cmbSysFolders.ItemData(cmbSysFolders.ListIndex) ' Get ID from combo box + If sLnk.GetSystemFolderPath(Me.hWnd, Id, sfPath) Then ' Get system folder path from id + SetDefaults sfPath ' Update UI with new path + End If + + Set sLnk = Nothing ' Destroy object reference +'--------------------------------------------------------------- +End Sub +'--------------------------------------------------------------- + +'--------------------------------------------------------------- +Private Sub Form_Load() +'--------------------------------------------------------------- + SetDefaults (App.Path & "\") ' Update UI with current application path + + With cmbSysFolders ' Add ID's for system folders to combo box... + .AddItem "DESKTOP" + .ItemData(.NewIndex) = 0 + .AddItem "PROGRAMS" + .ItemData(.NewIndex) = &H2 + .AddItem "Controls" + .ItemData(.NewIndex) = &H3 + .AddItem "Printers" + .ItemData(.NewIndex) = &H4 + .AddItem "PERSONAL" + .ItemData(.NewIndex) = &H5 + .AddItem "FAVORITES" + .ItemData(.NewIndex) = &H6 + .AddItem "STARTUP" + .ItemData(.NewIndex) = &H7 + .AddItem "RECENT" + .ItemData(.NewIndex) = &H8 + .AddItem "SENDTO" + .ItemData(.NewIndex) = &H9 + .AddItem "BITBUCKET: RECYCLE-BIN" + .ItemData(.NewIndex) = &HA + .AddItem "STARTMENU" + .ItemData(.NewIndex) = &HB + .AddItem "DESKTOPDIRECTORY" + .ItemData(.NewIndex) = &H10 + .AddItem "DRIVES" + .ItemData(.NewIndex) = &H11 + .AddItem "NETWORK" + .ItemData(.NewIndex) = &H12 + .AddItem "NETHOOD" + .ItemData(.NewIndex) = &H13 + .AddItem "Fonts" + .ItemData(.NewIndex) = &H14 + .AddItem "TEMPLATES" + .ItemData(.NewIndex) = &H15 + .AddItem "COMMON_STARTMENU" + .ItemData(.NewIndex) = &H16 + .AddItem "COMMON_PROGRAMS" + .ItemData(.NewIndex) = &H17 + .AddItem "COMMON_STARTUP" + .ItemData(.NewIndex) = &H18 + .AddItem "COMMON_DESKTOPDIRECTORY" + .ItemData(.NewIndex) = &H19 + .AddItem "APPDATA" + .ItemData(.NewIndex) = &H1A + .AddItem "PRINTHOOD" + .ItemData(.NewIndex) = &H1B + + .ListIndex = 0 + End With +'--------------------------------------------------------------- +End Sub +'--------------------------------------------------------------- + +'--------------------------------------------------------------- +Private Sub SetDefaults(pth As String) +'--------------------------------------------------------------- + Dim AppPath As String ' Current Application path +'--------------------------------------------------------------- + AppPath = App.Path ' Get current path + + If (Right$(AppPath, 1) <> "\") Then AppPath = AppPath & "\" ' Fix application path if necessary + If (Right$(pth, 1) <> "\") Then pth = pth & "\" ' Fix path if necessary + + txtLinkName.Text = pth & "testlink.lnk" ' Create a full path name for link file + txtExeName.Text = AppPath & App.EXEName & ".exe" ' Create a full path name for applicaton exe name + txtWorkDir.Text = AppPath ' Set default working directory + txtCmdArgs.Text = "-ARG1 -ARG2" ' Set default arguments + txtIconFile.Text = txtExeName.Text ' Set default IconFile name to default exename + txtIconIndex.Text = CStr(1) ' Set default Icon Index val + txtShowCmd.Text = CStr(7) ' set default showcommand val + txtProgramGroup.Text = pth & "Test Link Program Group" ' Set default Program group name +'--------------------------------------------------------------- +End Sub +'--------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.VBG b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.VBG new file mode 100644 index 0000000..95f6aa6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.VBG @@ -0,0 +1,3 @@ +VBGROUP 5.0 +StartupProject=TestSLnk.vbp +Project=..\ShellLnk.vbp diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.VBP new file mode 100644 index 0000000..32eeb2c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SHELLLNK/TESTSLNK/TESTSLNK.VBP @@ -0,0 +1,33 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT35\System32\stdole2.tlb#OLE Automation +Reference=*\G{8B7D6FA4-0C17-11D0-BDAD-00AA00575603}#16.0#0#..\ShellLnk.dll# +Form=TestSLnk.frm +IconForm="frmTestSLnk" +Startup="frmTestSLnk" +HelpFile="" +Title="TestSLnk" +ExeName32="TestSLnk.exe" +Command32="" +Name="TestSLnk" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=3722 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName=" " +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=-1 +BoundsCheck=-1 +OverflowCheck=-1 +FlPointCheck=-1 +FDIVCheck=-1 +UnroundedFP=-1 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/DSSAVER.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/DSSAVER.BAS new file mode 100644 index 0000000..bdbe1d6 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/DSSAVER.BAS @@ -0,0 +1,187 @@ +Attribute VB_Name = "dSSaver" +Option Explicit +'---------------------------------------------------------------------- +' Application Specific Constants... +'---------------------------------------------------------------------- +'''Public gSpriteCollection As Collection ' collection of active sprites... +Public gSSprite() As ssSprite ' Array of active sprites... + +Public gSpriteCount As Long ' count of active sprites.. +Public gTracers As Boolean ' tracers option (sprite doesn't clean up trails) +Public gRefreshRate As Long ' sprite animation frame movement rate +Public gRefreshRND As Boolean ' random refresh rate option +Public gSpriteSize As Long ' relative sprite size option +Public gSizeRND As Boolean ' randomize sprite size +Public gSpriteSpeed As Long ' active sprite velosity +Public gSpeedRND As Boolean ' randomize sprite speed +Public gSprite As ResBitmap ' bitmap resource loading bucket + +Public Const gREGKEY_APPROOT = "SOFTWARE\VB 5 Samples\VB 5 Saver" ' ScreenSaver registry subkey +Public Const gREGVAL_SPRITECOUNT = "SpriteCount" ' Sprite count registry setting key +Public Const DEF_SPRITECOUNT = 8 ' default +Public Const MIN_SPRITECOUNT = 1 ' min possible value +Public Const MAX_SPRITECOUNT = 30 ' max possible value + +Public Const gREGVAL_TRACERSON = "TracersOn" ' Tracers on regkey + +Public Const gREGVAL_REFRESHRATE = "RefreshRate" ' Animation refresh rate registry setting key +Public Const MIN_REFRESHRATE = 1 ' 1 / 1000 sec +Public Const MAX_REFRESHRATE = 100 ' 1 / 10 sec +Public Const gREGVAL_RATERANDOM = "RateRandom" ' Random refresh rate registry setting key + +Public Const gREGVAL_SPRITESIZE = "SpriteSize" ' Sprite size registry setting key +Public Const MIN_SPRITESIZE = 25 ' 25% normal size +Public Const MAX_SPRITESIZE = 150 ' 150% normal size +Public Const gREGVAL_SIZERANDOM = "SizeRandom" ' Sprite size random registry setting key + +Public Const gREGVAL_SPRITESPEED = "SpriteSpeed" ' Sprite speed registry setting key +Public Const MIN_SPRITESPEED = 1 ' Move in 1 pixel increments +Public Const MAX_SPRITESPEED = 50 ' Move in 50 pixel increments +Public Const gREGVAL_SPEEDRANDOM = "SpeedRandom" ' Sprite speed random registry setting key +Public Const sTRUE = "TRUE" ' Boolean TRUE registry value +Public Const sFALSE = "FALSE" ' Boolean FALSE registry value + +Public Const BASE_MASS = 100 ' Relative base mass for sprite size + +'---------------------------------------------------------------------- +'Public API Declares... +'---------------------------------------------------------------------- +Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long + +Public Declare Function GetDesktopWindow Lib "user32" () As Long +Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long +Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long +Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long +Public Declare Function GetMapMode Lib "gdi32" (ByVal hdc As Long) As Long + +Public Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long +Public Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long +Public Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long +Public Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long +Public Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long + +Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long +Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long +Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long +Public Declare Function SetMapMode Lib "gdi32" (ByVal hdc As Long, ByVal nMapMode As Long) As Long +Public Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) +Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long +Public Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long +Public Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long +Public Declare Function ShowCursor Lib "user32" (ByVal fShow As Integer) As Integer +Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long + +Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long +Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long +Public Declare Function CreateBitmap Lib "gdi32" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long +Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long +Public Declare Function CreateBitmapIndirect Lib "gdi32" (lpBitmap As Any) As Long +Public Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As String) As Long +Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long +Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long +Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long +Public Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long +Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long + +Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long + +'---------------------------------------------------------------------- +'Public Constants... +'---------------------------------------------------------------------- +Public Const WS_CHILD = &H40000000 +Public Const GWL_HWNDPARENT = (-8) +Public Const GWL_STYLE = (-16) + +Public Const HWND_TOPMOST = -1& +Public Const HWND_TOP = 0& +Public Const HWND_BOTTOM = 1& + +Public Const SWP_NOSIZE = &H1& +Public Const SWP_NOMOVE = &H2 +Public Const SWP_NOZORDER = &H4 +Public Const SWP_NOREDRAW = &H8 +Public Const SWP_NOACTIVATE = &H10 +Public Const SWP_FRAMECHANGED = &H20 +Public Const SWP_SHOWWINDOW = &H40 +Public Const SWP_HIDEWINDOW = &H80 +Public Const SWP_NOCOPYBITS = &H100 +Public Const SWP_NOOWNERZORDER = &H200 +Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED +Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER + +' Windows messages... +Public Const WM_PAINT = &HF& +Public Const WM_ACTIVATEAPP = &H1C& +Public Const SW_SHOWNOACTIVATE = 4& + +' Get Windows Long Constants +Public Const GWL_USERDATA = (-21&) +Public Const GWL_WNDPROC = (-4&) + +' ScreenSaver Running Modes +Public Const RM_NORMAL = 1 +Public Const RM_CONFIGURE = 2 +Public Const RM_PREVIEW = 4 + +' Reg Create Type Values... +Public Const REG_OPTION_RESERVED = 0 ' Parameter is reserved +Public Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted +Public Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted +Public Const REG_OPTION_CREATE_LINK = 2 ' Created key is a symbolic link +Public Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore + +' Reg Key Security Options... +Public Const READ_CONTROL = &H20000 +Public Const KEY_QUERY_VALUE = &H1 +Public Const KEY_SET_VALUE = &H2 +Public Const KEY_CREATE_SUB_KEY = &H4 +Public Const KEY_ENUMERATE_SUB_KEYS = &H8 +Public Const KEY_NOTIFY = &H10 +Public Const KEY_CREATE_LINK = &H20 +Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL + +' Reg Key ROOT Types... +Public Const HKEY_CLASSES_ROOT = &H80000000 +Public Const HKEY_CURRENT_USER = &H80000001 +Public Const HKEY_LOCAL_MACHINE = &H80000002 +Public Const HKEY_USERS = &H80000003 +Public Const HKEY_PERFORMANCE_DATA = &H80000004 + +Public Const ERROR_SUCCESS = 0 ' Return Value... +Public Const REG_SZ = 1 ' Unicode nul terminated string +Public Const REG_DWORD = 4 ' 32-bit number + +'---------------------------------------------------------------------- +'Public Type Defs... +'---------------------------------------------------------------------- +Public Type POINTAPI + x As Long + y As Long +End Type +Public Type RECT + Left As Long + Top As Long + Right As Long + Bottom As Long +End Type +Public Type BITMAP + bmType As Long + bmWidth As Long + bmHeight As Long + bmWidthBytes As Long + bmPlanes As Integer + bmBitsPixel As Integer + bmBits As Long +End Type +Public Type SECURITY_ATTRIBUTES + nLength As Long + lpSecurityDescriptor As Long + bInheritHandle As Boolean +End Type +Public Type ResBitmap + ResID As Long + Sprite As StdPicture +End Type diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/PAINTSUP.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/PAINTSUP.BAS new file mode 100644 index 0000000..e81032b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/PAINTSUP.BAS @@ -0,0 +1,233 @@ +Attribute VB_Name = "PaintSup" +Option Explicit + +'----------------------------------------------------------------- +Public Function ShrinkBmp(dispHdc As Long, hBmp As Long, RatioX As Single, RatioY As Single) As Long +'----------------------------------------------------------------- + Dim hBmpOut As Long ' output bitmap handle + Dim bm1 As BITMAP, bm2 As BITMAP ' temporary bitmap structs + Dim hdcMem1 As Long, hdcMem2 As Long ' temporary memory bitmap handles... +'----------------------------------------------------------------- + hdcMem1 = CreateCompatibleDC(dispHdc) ' create mem DC compatible to the display DC + hdcMem2 = CreateCompatibleDC(dispHdc) ' create mem DC compatible to the display DC + + GetObject hBmp, LenB(bm1), bm1 ' select bitmap object + + LSet bm2 = bm1 ' copy bitmap object + + bm2.bmWidth = CLng(bm2.bmWidth * RatioX) ' scale output bitmap width + bm2.bmHeight = CLng(bm2.bmHeight * RatioY) ' scale output bitmap height + bm2.bmWidthBytes = ((((bm2.bmWidth * bm2.bmBitsPixel) + 15) \ 16) * 2) ' calculate bitmap width bytes + + hBmpOut = CreateBitmapIndirect(bm2) ' create handle to output bitmap indirectly from new bm2 + + SelectObject hdcMem1, hBmp ' select original bitmap into mem dc + SelectObject hdcMem2, hBmpOut ' select new bitmap into mem dc + + ' stretch old bitmap into new bitmap + StretchBlt hdcMem2, 0, 0, bm2.bmWidth, bm2.bmHeight, _ + hdcMem1, 0, 0, bm1.bmWidth, bm1.bmHeight, vbSrcCopy + + DeleteDC hdcMem1 ' delete memory dc + DeleteDC hdcMem2 ' delete memory dc + + ShrinkBmp = hBmpOut ' return handle to new bitmap +'----------------------------------------------------------------- +End Function +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub InitDeskDC(OutHdc As Long, OutBmp As BITMAP, DispRec As RECT) +'----------------------------------------------------------------- + Dim DskHwnd As Long ' hWnd of desktop + Dim DskRect As RECT ' rect size of desktop + Dim DskHdc As Long ' hdc of desktop + Dim hOutBmp As Long ' handle to output bitmap + Dim rc As Long ' function return code +'----------------------------------------------------------------- + DskHwnd = GetDesktopWindow() ' Get src - HWND of Desktop + DskHdc = GetWindowDC(DskHwnd) ' Get src HDC - Handle to device context + rc = GetWindowRect(DskHwnd, DskRect) ' Get src Rectangle dimentions + + With DispRec + ' Create handle to compatible output bitmap + hOutBmp = CreateCompatibleBitmap(DskHdc, (.Right - .Left + 1), (.Bottom - .Top + 1)) + + rc = GetObject(hOutBmp, Len(OutBmp), OutBmp) ' Get handle to bitmap + OutHdc = CreateCompatibleDC(DskHdc) ' Create compatible hdc + rc = SelectObject(OutHdc, hOutBmp) ' copy bitmap structure into output dc + + rc = StretchBlt(OutHdc, 0, 0, _ + (.Right - .Left + 1), _ + (.Bottom - .Top + 1), _ + DskHdc, 0, 0, _ + (DskRect.Right - DskRect.Left + 1), _ + (DskRect.Bottom - DskRect.Top + 1), _ + vbSrcCopy) ' Paint bitmap desk dc to output dc + End With + + rc = DeleteObject(hOutBmp) ' delete handle to output bitmap + rc = ReleaseDC(DskHwnd, DskHdc) ' Clean up - Release src HDC +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub PaintDeskDC(InHdc As Long, InBmp As BITMAP, OutHwnd As Long) +'----------------------------------------------------------------- + Dim OutRect As RECT ' rect. size of output window + Dim OutHdc As Long ' hdc of output window + Dim rc As Long ' function return code +'----------------------------------------------------------------- + rc = GetClientRect(OutHwnd, OutRect) ' Get Dest Rectangle dimentions + OutHdc = GetWindowDC(OutHwnd) ' get Dest HDC + + With OutRect + ' Paint the desktop picture to the output window... + rc = StretchBlt(OutHdc, 0, 0, _ + (.Right - .Left + 1), _ + (.Bottom - .Top + 1), _ + InHdc, 0, 0, _ + InBmp.bmWidth, InBmp.bmHeight, vbSrcCopy) + End With + + rc = ReleaseDC(OutHwnd, OutHdc) ' Clean up - Release src HDC +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub DelDeskDC(OutHdc As Long) +'----------------------------------------------------------------- + Dim rc As Long +'----------------------------------------------------------------- + + rc = DeleteDC(OutHdc) ' Clean up - Release src HDC +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub DrawTransparentBitmap(lHDCDest As Long, _ + lBmSource As Long, _ + lMaskColor As Long, _ + Optional lDestStartX As Long, _ + Optional lDestStartY As Long, _ + Optional lDestWidth As Long, _ + Optional lDestHeight As Long, _ + Optional lSrcStartX As Long, _ + Optional lSrcStartY As Long, _ + Optional BkGrndHdc As Long) +'----------------------------------------------------------------- + Dim udtBitMap As BITMAP + Dim lColorRef As Long 'COLORREF + Dim lBmAndBack As Long 'HBITMAP + Dim lBmAndObject As Long + Dim lBmAndMem As Long + Dim lBmSave As Long + Dim lBmBackOld As Long + Dim lBmObjectOld As Long + Dim lBmMemOld As Long + Dim lBmSaveOld As Long + Dim lHDCMem As Long 'HDC + Dim lHDCBack As Long + Dim lHDCObject As Long + Dim lHDCTemp As Long + Dim lHDCSave As Long + Dim udtSize As POINTAPI 'POINT + Dim x As Long, y As Long +'----------------------------------------------------------------- + lHDCTemp = CreateCompatibleDC(lHDCDest) 'Create a temporary HDC compatible to the Destination HDC + SelectObject lHDCTemp, lBmSource 'Select the bitmap + GetObject lBmSource, Len(udtBitMap), udtBitMap + + With udtSize + .x = udtBitMap.bmWidth 'Get width of bitmap + .y = udtBitMap.bmHeight 'Get height of bitmap + 'Use passed width and height parameters + If lDestWidth <> 0 Then .x = lDestWidth + If lDestHeight <> 0 Then .y = lDestHeight + x = .x + y = .y + End With + + 'Create some DCs to hold temporary data + lHDCBack = CreateCompatibleDC(lHDCDest) + lHDCObject = CreateCompatibleDC(lHDCDest) + lHDCMem = CreateCompatibleDC(lHDCDest) + lHDCSave = CreateCompatibleDC(lHDCDest) + + 'Create a bitmap for each DC. DCs are required for + 'a number of GDI functions + + 'Monochrome DC + lBmAndBack = CreateBitmap(x, y, 1&, 1&, 0&) + 'Monochrome DC + lBmAndObject = CreateBitmap(x, y, 1&, 1&, 0&) + 'Compatible DC's + lBmAndMem = CreateCompatibleBitmap(lHDCDest, x, y) + lBmSave = CreateCompatibleBitmap(lHDCDest, x, y) + + 'Each DC must select a bitmap object to store pixel data. + lBmBackOld = SelectObject(lHDCBack, lBmAndBack) + lBmObjectOld = SelectObject(lHDCObject, lBmAndObject) + lBmMemOld = SelectObject(lHDCMem, lBmAndMem) + lBmSaveOld = SelectObject(lHDCSave, lBmSave) + + 'Set proper mapping mode. + SetMapMode lHDCTemp, GetMapMode(lHDCDest) + + 'Save the bitmap sent here, because it will be overwritten + BitBlt lHDCSave, 0&, 0&, x, y, lHDCTemp, lSrcStartX, lSrcStartY, vbSrcCopy + + 'Set the background color of the source DC to the color + 'contained in the parts of the bitmap that should be transparent + lColorRef = SetBkColor(lHDCTemp, lMaskColor) + + 'Create the object mask for the bitmap by performaing a BitBlt + 'from the source bitmap to a monochrome bitmap. + BitBlt lHDCObject, 0&, 0&, x, y, lHDCTemp, lSrcStartX, lSrcStartY, vbSrcCopy + + 'Set the background color of the source DC back to the original color + SetBkColor lHDCTemp, lColorRef + + 'Create the inverse of the object mask. + BitBlt lHDCBack, 0&, 0&, x, y, lHDCObject, 0&, 0&, vbNotSrcCopy + + 'Copy the background of the main DC to the destination + If (BkGrndHdc <> 0) Then + BitBlt lHDCMem, 0&, 0&, x, y, BkGrndHdc, lDestStartX, lDestStartY, vbSrcCopy + Else + BitBlt lHDCMem, 0&, 0&, x, y, lHDCDest, lDestStartX, lDestStartY, vbSrcCopy + End If + + 'Mask out the places where the bitmap will be placed + BitBlt lHDCMem, 0&, 0&, x, y, lHDCObject, 0&, 0&, vbSrcAnd + + 'Mask out the transparent colored pixels on the bitmap + BitBlt lHDCTemp, lSrcStartX, lSrcStartY, x, y, lHDCBack, 0&, 0&, vbSrcAnd + + 'XOR the bitmap with the background on the destination DC + BitBlt lHDCMem, 0&, 0&, x, y, lHDCTemp, lSrcStartX, lSrcStartY, vbSrcPaint + + 'Copy the destination to the screen + BitBlt lHDCDest, lDestStartX, lDestStartY, x, y, lHDCMem, 0&, 0&, vbSrcCopy + + 'Place the original bitmap back into the bitmap sent here + BitBlt lHDCTemp, lSrcStartX, lSrcStartY, x, y, lHDCSave, 0&, 0&, vbSrcCopy + + 'Delete memory bitmaps + DeleteObject SelectObject(lHDCBack, lBmBackOld) + DeleteObject SelectObject(lHDCObject, lBmObjectOld) + DeleteObject SelectObject(lHDCMem, lBmMemOld) + DeleteObject SelectObject(lHDCSave, lBmSaveOld) + + 'Delete memory DC's + DeleteDC lHDCMem + DeleteDC lHDCBack + DeleteDC lHDCObject + DeleteDC lHDCSave + DeleteDC lHDCTemp +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/BUILD.BAT b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/BUILD.BAT new file mode 100644 index 0000000..bad3129 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/BUILD.BAT @@ -0,0 +1,2 @@ +RC SSaver.rc +pause \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/DONUT16.BMP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/DONUT16.BMP new file mode 100644 index 0000000..bb674a3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/DONUT16.BMP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/IE.BMP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/IE.BMP new file mode 100644 index 0000000..5d0fe4e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/IE.BMP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/RESOURCE.H b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/RESOURCE.H new file mode 100644 index 0000000..5903447 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/RESOURCE.H @@ -0,0 +1 @@ +#define IDB_BITMAP1 102 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/SSAVER.RC b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/SSAVER.RC new file mode 100644 index 0000000..83ff77c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/SSAVER.RC @@ -0,0 +1,8 @@ +#include "resource.h" + +IDB_BITMAP1 BITMAP DISCARDABLE "Donut16.bmp" + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/SSAVER.RES b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/SSAVER.RES new file mode 100644 index 0000000..707f7dc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/RES/SSAVER.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.BAS new file mode 100644 index 0000000..3176927 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.BAS @@ -0,0 +1,350 @@ +Attribute VB_Name = "mSSaver" +Option Explicit + +Public DisplayHwnd As Long ' Hwnd of display form +Public DispRec As RECT ' Rectangle values of display form +Public PrevWndProc As Long ' Previous window proc (used in subclassing) +Public RunMode As Long ' Screen saver running mode (run, preview, setup) +Public DeskBmp As BITMAP ' Bitmap copy of the desktop +Public DeskDC As Long ' Desktop device context handle + +'----------------------------------------------------------------- +Sub Main() +'----------------------------------------------------------------- + Dim rc As Long ' function return code + Dim cmd As String ' command line arguments + Dim Style As Long ' window style of display form +'----------------------------------------------------------------- + If App.PrevInstance Then End ' Already have one instance running, end program! +''' Set gSpriteCollection = New Collection ' Create new sprite collection + + cmd = LCase$(Trim$(Command$)) ' copy command line parameters in lowercase... + + Select Case Mid$(cmd, 1, 2) ' Parse 1st 2 chars from cmd line + '------------------------------------------------------------ + Case "", "/s" '[Normal Run Mode] Run as Screen Saver on desktop. + '------------------------------------------------------------ + RunMode = RM_NORMAL ' Store screen saver's run mode + + GetWindowRect GetDesktopWindow(), DispRec ' Get DeskTop Rectangle dimentions + + Load frmSSaver ' Load Screen saver +#If DebugOn Then ' Do this only when debugging + frmSSaver.Show +#Else ' Do this only when NOT debugging + SetWindowPos frmSSaver.hwnd, _ + HWND_TOPMOST, 0&, 0&, DispRec.Right, DispRec.Bottom, _ + SWP_SHOWWINDOW ' Size window and make top most +#End If + '------------------------------------------------------------ + Case "/p" '[Win 95 & NT 4 Preview Mode] Run inside of the Screen Saver Config Viewer. + '------------------------------------------------------------ + '- Run the screen saver in the windows preview dialog, YES in VB! + '------------------------------------------------------------ + RunMode = RM_PREVIEW ' Store screen saver's run mode... + + DisplayHwnd = GetHwndFromCmd(cmd) ' ** Get HWND of Preview DeskTop + GetClientRect DisplayHwnd, DispRec ' Get Display Rectangle dimentions + + Load frmSSaver ' Load Screen saver form + frmSSaver.Caption = "Preview" ' Consistant with Win 95 screen savers(what the heck) + + Style = GetWindowLong(frmSSaver.hwnd, GWL_STYLE) ' ** Get current window style + Style = Style Or WS_CHILD ' ** Append "WS_CHILD" style to the hWnd window style + SetWindowLong frmSSaver.hwnd, GWL_STYLE, Style ' ** Add new style to window + + SetParent frmSSaver.hwnd, DisplayHwnd ' ** Set preview window as parent window + SetWindowLong frmSSaver.hwnd, GWL_HWNDPARENT, DisplayHwnd ' ** Save the hWnd Parent in hWnd's window struct. + + ' ** Show screensaver in the preview window... + SetWindowPos frmSSaver.hwnd, _ + HWND_TOP, 0&, 0&, DispRec.Right, DispRec.Bottom, _ + SWP_NOZORDER Or SWP_NOACTIVATE Or SWP_SHOWWINDOW + '------------------------------------------------------------ + ' lines prefixed with ** are necessary for the preview dialog to work correctly. + '------------------------------------------------------------ + Case "/c" '[ScreenSaver Configuration Mode] Run Screen Saver Settings Dialog. + '------------------------------------------------------------ + Load frmSSetup ' Load screensaver setup dialog + frmSSetup.Show vbModeless ' Show setup dialog + '------------------------------------------------------------ + Case Else + '------------------------------------------------------------ +#If DebugOn Then ' Do this only when debugging + MsgBox "Unknown Command Line Param: [" & Command$ & "]" ' Debug/display unknown param... +#End If + End Select +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'------------------------------------------------------------ +Public Function SubWndProc(ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +'------------------------------------------------------------ +'- Subclassing not implemented but reservered for furture use... +'------------------------------------------------------------ +' Select Case MSG +' Case WM_PAINT +' SubWndProc = CallWindowProc(PrevWndProc, hwnd, MSG, wParam, lParam) +' PaintDeskDC DeskDC, DeskBmp, hwnd +' Exit Function +' End Select + +' SubWndProc = CallWindowProc(PrevWndProc, hwnd, MSG, wParam, lParam) +'------------------------------------------------------------ +End Function +'------------------------------------------------------------ + +'----------------------------------------------------------------- +Private Function GetHwndFromCmd(cmd As String) As Long +'----------------------------------------------------------------- + Dim Str As String ' substring variable + Dim lenStr As Long ' length of substring + Dim Idx As Long ' Index variable +'----------------------------------------------------------------- + Str = Trim$(cmd) ' copy command line + lenStr = Len(Str) ' get size of string + + For Idx = lenStr To 1 Step -1 ' for each char in string + Str = Right$(Str, Idx) ' chop off the rightmost char + If IsNumeric(Str) Then ' if substring is numeric then value is an hWnd + GetHwndFromCmd = Val(Str) ' return hWnd value + Exit For ' exit for loop + End If + Next +'----------------------------------------------------------------- +End Function +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub AboutBox(hwnd As Long) +'----------------------------------------------------------------- + ' Show help about dialog... + ShellAbout hwnd, "Visual Basic 5.0 - Screen Saver...", _ + vbCrLf & "Building Applications in Visual Basic 5.0", 0 +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Private Sub AssertRC(bool As Boolean, rc As Long, fcnName As String) +'----------------------------------------------------------------- +#If DebugOn Then + If Not bool Then + MsgBox "Assertion Failed::" & vbCrLf & _ + " In Module:: " & fcnName & vbCrLf & _ + " Return Code:: " & CStr(rc), vbCritical + End If +#End If +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'------------------------------------------------------------ +Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean +'------------------------------------------------------------ + Dim i As Long ' Loop Counter + Dim rc As Long ' Return Code + Dim hKey As Long ' Handle To An Open Registry Key + Dim hDepth As Long ' + Dim KeyValType As Long ' Data Type Of A Registry Key + Dim tmpVal As String ' Tempory Storage For A Registry Key Value + Dim KeyValSize As Long ' Size Of Registry Key Variable + '------------------------------------------------------------ + ' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...} + '------------------------------------------------------------ + rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Error... + + tmpVal = String$(1024, 0) ' Allocate Variable Space + KeyValSize = 1024 ' Mark Variable Size + + '------------------------------------------------------------ + ' Retrieve Registry Key Value... + '------------------------------------------------------------ + rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ + KeyValType, tmpVal, KeyValSize) ' Get/Create Key Value + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Errors + + If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then ' Win95 Adds Null Terminated String... + tmpVal = Left(tmpVal, KeyValSize - 1) ' Null Found, Extract From String + Else ' WinNT Does NOT Null Terminate String... + tmpVal = Left(tmpVal, KeyValSize) ' Null Not Found, Extract String Only + End If + '------------------------------------------------------------ + ' Determine Key Value Type For Conversion... + '------------------------------------------------------------ + Select Case KeyValType ' Search Data Types... + Case REG_SZ ' String Registry Key Data Type + KeyVal = tmpVal ' Copy String Value + Case REG_DWORD ' Double Word Registry Key Data Type + For i = Len(tmpVal) To 1 Step -1 ' Convert Each Bit + KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1))) ' Build Value Char. By Char. + Next + KeyVal = Format$("&h" + KeyVal) ' Convert Double Word To String + End Select + + GetKeyValue = True ' Return Success + rc = RegCloseKey(hKey) ' Close Registry Key + Exit Function ' Exit +'------------------------------------------------------------ +GetKeyError: ' Cleanup After An Error Has Occured... +'------------------------------------------------------------ + KeyVal = "" ' Set Return Val To Empty String + GetKeyValue = False ' Return Failure + rc = RegCloseKey(hKey) ' Close Registry Key +'------------------------------------------------------------ +End Function +'------------------------------------------------------------ + +'------------------------------------------------------------ +Public Function UpdateKey(KeyRoot As Long, KeyName As String, SubKeyName As String, SubKeyValue As String) As Boolean +'------------------------------------------------------------ + Dim rc As Long ' Return Code + Dim hKey As Long ' Handle To A Registry Key + Dim hDepth As Long ' + Dim lpAttr As SECURITY_ATTRIBUTES ' Registry Security Type +'------------------------------------------------------------ + lpAttr.nLength = 50 ' Set Security Attributes To Defaults... + lpAttr.lpSecurityDescriptor = 0 ' ... + lpAttr.bInheritHandle = True ' ... + + '------------------------------------------------------------ + '- Create/Open Registry Key... + '------------------------------------------------------------ + rc = RegCreateKeyEx(KeyRoot, KeyName, _ + 0, REG_SZ, _ + REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, lpAttr, _ + hKey, hDepth) ' Create/Open //KeyRoot//KeyName + + If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError ' Handle Errors... + + '------------------------------------------------------------ + '- Create/Modify Key Value... + '------------------------------------------------------------ + If (SubKeyValue = "") Then SubKeyValue = " " ' A Space Is Needed For RegSetValueEx() To Work... + + rc = RegSetValueEx(hKey, SubKeyName, _ + 0, REG_SZ, _ + SubKeyValue, Len(SubKeyValue)) ' Create/Modify Key Value + + If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError ' Handle Error + '------------------------------------------------------------ + '- Close Registry Key... + '------------------------------------------------------------ + rc = RegCloseKey(hKey) ' Close Key + + UpdateKey = True ' Return Success + Exit Function ' Exit +'------------------------------------------------------------ +CreateKeyError: +'------------------------------------------------------------ + UpdateKey = False ' Set Error Return Code + rc = RegCloseKey(hKey) ' Attempt To Close Key +'------------------------------------------------------------ +End Function +'------------------------------------------------------------ + +'------------------------------------------------------------ +Public Sub SaveSettings() +'------------------------------------------------------------ + Dim RegVal As String ' String value of registry key + Dim lRegVal As Long ' long value of registry key +'------------------------------------------------------------ + ' Save Sprite Count Value + RegVal = CStr(gSpriteCount) + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPRITECOUNT, RegVal) + + ' Save Tracers on Value + RegVal = sFALSE + If gTracers Then RegVal = sTRUE + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_TRACERSON, RegVal) + + ' Save Refresh Rate Value + RegVal = CStr(gRefreshRate) + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_REFRESHRATE, RegVal) + + ' Save Rate Random Value + RegVal = sFALSE + If gRefreshRND Then RegVal = sTRUE + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_RATERANDOM, RegVal) + + ' Save Sprite Size Value + RegVal = CStr(gSpriteSize) + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPRITESIZE, RegVal) + + ' Save Size Random Value + RegVal = sFALSE + If gSizeRND Then RegVal = sTRUE + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SIZERANDOM, RegVal) + + ' Save Sprite Speed Value + RegVal = CStr(gSpriteSpeed) + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPRITESPEED, RegVal) + + ' Save Speed Random Value + RegVal = sFALSE + If gSpeedRND Then RegVal = sTRUE + Call UpdateKey(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPEEDRANDOM, RegVal) +'------------------------------------------------------------ +End Sub +'------------------------------------------------------------ + +'------------------------------------------------------------ +Public Sub LoadSettings() +'------------------------------------------------------------ + Dim RegVal As String + Dim iRegVal As Long +'------------------------------------------------------------ + ' Get Sprite Count Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPRITECOUNT, RegVal) + gSpriteCount = Val(RegVal) + If (gSpriteCount < MIN_SPRITECOUNT) Then gSpriteCount = DEF_SPRITECOUNT ' Default value. + If (gSpriteCount > MAX_SPRITECOUNT) Then gSpriteCount = MAX_SPRITECOUNT + + ' Get Tracers on Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_TRACERSON, RegVal) + gTracers = (RegVal = sTRUE) + + ' Get Refresh Rate Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_REFRESHRATE, RegVal) + gRefreshRate = Val(RegVal) + If (gRefreshRate < MIN_REFRESHRATE) Then gRefreshRate = MAX_REFRESHRATE ' Default value ...fast + If (gRefreshRate > MAX_REFRESHRATE) Then gRefreshRate = MAX_REFRESHRATE + + ' Get Rate Random Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_RATERANDOM, RegVal) + gRefreshRND = (RegVal = sTRUE) + + ' Get Sprite Size Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPRITESIZE, RegVal) + gSpriteSize = Val(RegVal) + If (gSpriteSize < MIN_SPRITESIZE) Then gSpriteSize = MIN_SPRITESIZE + If (gSpriteSize > MAX_SPRITESIZE) Then gSpriteSize = MAX_SPRITESIZE + + ' Get Size Random Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SIZERANDOM, RegVal) + gSizeRND = (RegVal = sTRUE) Or (RegVal = "") ' Default to TRUE + + ' Get Sprite Speed Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPRITESPEED, RegVal) + gSpriteSpeed = Val(RegVal) + If (gSpriteSpeed < MIN_SPRITESPEED) Then gSpriteSpeed = MIN_SPRITESPEED + If (gSpriteSpeed > MAX_SPRITESPEED) Then gSpriteSpeed = MAX_SPRITESPEED + + ' Get Speed Random Value + RegVal = "" + Call GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEY_APPROOT, gREGVAL_SPEEDRANDOM, RegVal) + gSpeedRND = (RegVal = sTRUE) +'------------------------------------------------------------ +End Sub +'------------------------------------------------------------ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.FRM new file mode 100644 index 0000000..6868e30 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.FRM @@ -0,0 +1,185 @@ +VERSION 5.00 +Begin VB.Form frmSSaver + BorderStyle = 0 'None + Caption = "VB 5 - Screen Saver" + ClientHeight = 2790 + ClientLeft = 2460 + ClientTop = 1935 + ClientWidth = 4440 + ClipControls = 0 'False + ControlBox = 0 'False + Icon = "SSaver.frx":0000 + KeyPreview = -1 'True + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + Moveable = 0 'False + NegotiateMenus = 0 'False + ScaleHeight = 186 + ScaleMode = 3 'Pixel + ScaleWidth = 296 + ShowInTaskbar = 0 'False + WindowState = 2 'Maximized + Begin VB.Timer ssTimer + Interval = 50 + Left = 3930 + Top = 2250 + End +End +Attribute VB_Name = "frmSSaver" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +'----------------------------------------------------------------- +' Declare Variables and Constants +'----------------------------------------------------------------- +Private ssEng As ssEngine ' Sprite builder engine +'''Private Sprite() As ssSprite ' Array of active sprites... + +Const BMPXUNITS = 1 ' # sprite frames on the x axis +Const BMPYUNITS = 46 ' # sprite frames on the y axis +Const IDB_BITMAP = 101 ' Res File bitmap image ID + +'----------------------------------------------------------------- +Private Sub Form_Load() +'----------------------------------------------------------------- + Dim Idx As Long ' Loop index + Dim ScaleSize As Single ' New sprite size (relative to resource size) +'----------------------------------------------------------------- + InitDeskDC DeskDC, DeskBmp, DispRec ' Initialize desktop image information... + LoadSettings ' Load saver registry settings... + +#If Not DebugOn Then ' Don't do if debugging... + ' Subclass windproc...(not currently used) +' PrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf SubWndProc) +#End If + + Set ssEng = New ssEngine ' Create new Sprite builder engine + ReDim gSSprite(gSpriteCount - 1) As ssSprite ' Resize active sprite array... + + For Idx = LBound(gSSprite) To UBound(gSSprite) ' Initialize each sprite... + If gSizeRND Then ' Determine if sprite size is random... + ' Randomize sprite size... + ScaleSize = (((MAX_SPRITESIZE - MIN_SPRITESIZE) * Rnd) + MIN_SPRITESIZE) / 100 + Else + ScaleSize = gSpriteSize / 100 ' Scale ALL sprite sizes to Registry setting... + End If + ' Create new active sprite... + Set gSSprite(Idx) = ssEng.CreateSprite(Me, DeskDC, IDB_BITMAP, vbBlack, _ + BMPXUNITS * BMPYUNITS, BMPXUNITS, BMPYUNITS, _ + ScaleSize, ScaleSize, Idx) + + With gSSprite(Idx) ' Initialize sprite settings... + .BdrX = DispRec.Right - CLng(.uWidth * 0.8) ' calculate width of display + .BdrY = DispRec.Bottom - CLng(.uHeight * 0.8) ' calculate height of display + + If gSpeedRND Then ' Determine if speed of sprite should be random + .Dx = CLng(((20 * Rnd) + 1) * ScaleSize) ' Randomize horizontal speed + .Dy = CLng(((20 * Rnd) + 1) * ScaleSize) ' Randomize verticle speed + Else + .Dx = CLng(gSpriteSpeed * ScaleSize) + 1 ' Use speed setting from registry setting... + .Dy = .Dx ' Use speed setting from registry setting... + End If + + .x = CLng(.BdrX * Rnd) + 1 ' Randomly place sprite on x axis + .y = CLng(.BdrY * Rnd) + 1 ' Randomly place sprite on y axis + .DDx = 1 ' (Sprite acceleration) Reserved for future use... + .DDy = 1 ' (Sprite acceleration) Reserved for future use... + .TRACERS = gTracers ' Set tracers option from registry setting + End With + Next + + If gRefreshRND Then ' Set timer animation interval + ' Use random animation interval + ssTimer.Interval = CLng((MAX_REFRESHRATE - MIN_REFRESHRATE + 1) * Rnd) + MIN_REFRESHRATE + Else + ' Get animation interval from registry setting... + ssTimer.Interval = (MAX_REFRESHRATE - MIN_REFRESHRATE) + 2 - gRefreshRate + End If + + ssTimer.Enabled = True ' Start timer (animate active sprites) + + Set ssEng = Nothing ' Destroy sprite creation engine +#If Not DebugOn Then ' Don't do if debugging... + If (RunMode = RM_NORMAL) Then ShowCursor 0 ' Hide MousePointer. +#End If +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +Private Sub Form_Click() + If (RunMode = RM_NORMAL) Then Unload Me ' Terminate if form is clicked +End Sub +Private Sub Form_DblClick() + If (RunMode = RM_NORMAL) Then Unload Me ' Terminate if form is double clicked +End Sub +Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) + If (RunMode = RM_NORMAL) Then Unload Me ' Terminate if a key is pressed down... +End Sub +Private Sub Form_KeyPress(KeyAscii As Integer) + If (RunMode = RM_NORMAL) Then Unload Me ' Terminate if a key is pressed +End Sub +Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) + If (RunMode = RM_NORMAL) Then Unload Me ' Terminate if form mouse is down +End Sub +'----------------------------------------------------------------- +Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) +'----------------------------------------------------------------- + Static X0 As Integer, Y0 As Integer +'----------------------------------------------------------------- + If (RunMode = RM_NORMAL) Then ' Determine screen saver mode + If ((X0 = 0) And (Y0 = 0)) Or _ + ((Abs(X0 - x) < 5) And (Abs(Y0 - y) < 5)) Then ' small mouse movement... + X0 = x ' Save current x coordinate + Y0 = y ' Save current y coordinate + Exit Sub ' Exit + End If + + Unload Me ' Large mouse movement (terminate screensaver) + End If +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +Private Sub Form_Paint() + PaintDeskDC DeskDC, DeskBmp, hwnd ' Repaint desktop bitmap to form +End Sub + +'----------------------------------------------------------------- +Private Sub Form_Unload(Cancel As Integer) +'----------------------------------------------------------------- + Dim Idx As Integer ' Array index +'----------------------------------------------------------------- + ' [* YOU MUST TURN OFF THE TIMER BEFORE DESTROYING THE SPRITE OBJECT *] + ssTimer.Enabled = False ' [* YOU MAY DEADLOCK!!! *] +' Set gSpriteCollection = Nothing ' Not sure if this would work... + + For Idx = LBound(gSSprite) To UBound(gSSprite) ' For each active sprite... + Set gSSprite(Idx) = Nothing ' Destroy active sprite + Next + +#If Not DebugOn Then ' Don't execute when debugging + ' Subclass windproc...(not currently used) +' SetWindowLong Me.hwnd, GWL_WNDPROC, PrevWndProc +#End If + DelDeskDC DeskDC ' Cleanup the DeskDC (Memleak will occure if not done) + + If (RunMode = RM_NORMAL) Then ShowCursor -1 ' Show MousePointer + Screen.MousePointer = vbDefault ' Reset MousePointer +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Private Sub ssTimer_Timer() +'----------------------------------------------------------------- + Dim Idx As Integer ' Array index +'----------------------------------------------------------------- + For Idx = LBound(gSSprite) To UBound(gSSprite) ' For each active sprite... + gSSprite(Idx).AutoMove ' Automatically move active sprite + Next +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.FRX new file mode 100644 index 0000000..354d594 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.ICO b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.ICO new file mode 100644 index 0000000..0f67d2c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.ICO differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.RES b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.RES new file mode 100644 index 0000000..c52eb0f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.VBP new file mode 100644 index 0000000..0e83f25 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSAVER.VBP @@ -0,0 +1,45 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT35\System32\stdole2.tlb#OLE Automation +Object={FE0065C0-1B7B-11CF-9D53-00AA003C9CB6}#1.0#0; ComCt232.Ocx +Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.1#0; comctl32.ocx +Form=SSaver.frm +Module=mSSaver; SSaver.bas +Module=dSSaver; dSSaver.bas +Module=PaintSup; PaintSup.bas +Class=ssEngine; ssEngine.cls +Class=ssSprite; ssSprite.cls +Form=SSetup.frm +ResFile32="SSAVER.RES" +IconForm="frmSSaver" +Startup="Sub Main" +HelpFile="" +Title="SCRNSAVE:VB 5 Screen Saver" +ExeName32="VB-5 Saver.scr" +Command32="" +Name="SSaver" +HelpContextID="0" +Description="SCRNSAVE:VB 5 Screen Saver" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=3716 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionComments="VB 5 Screen Saver" +VersionFileDescription="VB 5 Screen Saver" +VersionProductName="VB 5 Screen Saver" +CondComp="DebugOn = 0" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=-1 +CodeViewDebugInfo=0 +NoAliasing=-1 +BoundsCheck=-1 +OverflowCheck=-1 +FlPointCheck=-1 +FDIVCheck=-1 +UnroundedFP=-1 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSENGINE.CLS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSENGINE.CLS new file mode 100644 index 0000000..4745bcc --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSENGINE.CLS @@ -0,0 +1,69 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "ssEngine" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit + +'----------------------------------------------------------------- +Public Function CreateSprite(Display As Form, hDisplay As Long, _ + ResID As Long, MaskCol As Long, picCount As Long, _ + xUnits As Long, yUnits As Long, _ + Optional ScaleW As Single, _ + Optional ScaleH As Single, _ + Optional Idx As Long) As ssSprite +'----------------------------------------------------------------- + Dim cSprite As ssSprite ' ScreenSaver sprite + Dim RatioX As Single, RatioY As Single ' X and Y shrinkage factors +'----------------------------------------------------------------- + Randomize Timer ' Set the randomization seed + RatioX = 1 ' Set the x ratio base + RatioY = 1 ' Set the y ratio base + Display.ScaleMode = vbPixels ' Set the display form scalemode to pixels + + Set cSprite = New ssSprite ' Create a new screen saver sprite + With cSprite + .DestHDC = Display.hdc ' Set the display hdc + .ScreenW = (Screen.Width \ Screen.TwipsPerPixelX) ' Calculate the screen width in pixels + .ScreenH = (Screen.Height \ Screen.TwipsPerPixelY) ' Calculate the screen height in pixels + + If (gSprite.ResID <> ResID) Then ' Only load resource if it isn't already loaded + gSprite.ResID = ResID ' Save resource id + Set gSprite.Sprite = LoadResPicture(ResID, vbResBitmap) ' Load and save resource bitmap + End If + + If (.ScreenW <> 0) Then RatioX = (DispRec.Right - DispRec.Left) / .ScreenW ' Scale x ratio based on display size + If (.ScreenH <> 0) Then RatioY = (DispRec.Bottom - DispRec.Top) / .ScreenH ' Scale y ratio based on display size + If (ScaleW = 0) Then ScaleW = 1 ' Fix scale width + If (ScaleH = 0) Then ScaleH = 1 ' Fix scale height + RatioX = RatioX * ScaleW ' Adjust X ratio based on sprite scale width + RatioY = RatioY * ScaleH ' Adjust Y ratio based on sprite scale height + + .hBitmap = ShrinkBmp(.DestHDC, gSprite.Sprite.Handle, RatioX, RatioY) ' Shrink animated sprite frames... + + .SprtW = CLng(Display.ScaleX(gSprite.Sprite.Width, vbHimetric, vbPixels) * RatioX) ' Calc scaled source image width + .SprtH = CLng(Display.ScaleY(gSprite.Sprite.Height, vbHimetric, vbPixels) * RatioY) ' Calc scaled source image height + + .xUnits = xUnits ' Save # of horizontal frames + .yUnits = yUnits ' Save # of verticle frames + .uWidth = .SprtW \ xUnits ' calculate single frame width + .uHeight = .SprtH \ yUnits ' calculate single frame height + .idxMin = 0 ' initialize frame index = 0 + .idxMax = picCount - 1 ' init max frame index = # frames - 1 + .bmpIdx = (.idxMax - .idxMin) * Rnd + .idxMin ' randomize the first picture frame to be displayed + .hDisplayBack = hDisplay ' save handle to the display bitmap... + .MASKCOLOR = MaskCol ' save the bitmap mask color... + .Mass = CLng(BASE_MASS * ScaleW * ScaleH) ' calculate mass based on scaled surface area + .Index = Idx ' save index possition in global array... +''' gSpriteCollection.Add cSprite ' add sprite to global collection... + End With + + Set CreateSprite = cSprite ' return sprite reference... + Set cSprite = Nothing ' destroy local sprite reference... +'----------------------------------------------------------------- +End Function +'----------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSETUP.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSETUP.FRM new file mode 100644 index 0000000..07f963e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSETUP.FRM @@ -0,0 +1,386 @@ +VERSION 5.00 +Object = "{FE0065C0-1B7B-11CF-9D53-00AA003C9CB6}#1.0#0"; "ComCt232.Ocx" +Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.1#0"; "comctl32.ocx" +Begin VB.Form frmSSetup + BorderStyle = 4 'Fixed ToolWindow + Caption = "VB 5 Saver Setup" + ClientHeight = 3285 + ClientLeft = 2565 + ClientTop = 2070 + ClientWidth = 6015 + Icon = "SSetup.frx":0000 + KeyPreview = -1 'True + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3285 + ScaleWidth = 6015 + ShowInTaskbar = 0 'False + Begin VB.Frame frSpeed + Caption = "Sprite Speed" + Height = 645 + Left = 90 + TabIndex = 14 + Top = 2520 + Width = 5805 + Begin VB.CheckBox chkSpeedRND + Caption = "Randomize" + Height = 195 + Left = 150 + TabIndex = 15 + Top = 270 + Width = 1125 + End + Begin ComctlLib.Slider sldSpeed + Height = 330 + Left = 2100 + TabIndex = 16 + Top = 210 + Width = 2745 + _ExtentX = 4842 + _ExtentY = 582 + TickStyle = 3 + End + Begin VB.Label lblSpeed + Alignment = 1 'Right Justify + BorderStyle = 1 'Fixed Single + Height = 255 + Left = 5340 + TabIndex = 24 + Top = 270 + Width = 360 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Slow" + Height = 195 + Index = 6 + Left = 1710 + TabIndex = 18 + Top = 270 + Width = 345 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Fast" + Height = 195 + Index = 5 + Left = 4860 + TabIndex = 17 + Top = 270 + Width = 300 + End + End + Begin VB.Frame frSpriteSize + Caption = "Sprite Size %" + Height = 645 + Left = 90 + TabIndex = 9 + Top = 1800 + Width = 5805 + Begin VB.CheckBox chkSizeRND + Caption = "Randomize" + Height = 195 + Left = 150 + TabIndex = 10 + Top = 270 + Width = 1125 + End + Begin ComctlLib.Slider sldSize + Height = 330 + Left = 2100 + TabIndex = 11 + Top = 210 + Width = 2745 + _ExtentX = 4842 + _ExtentY = 582 + TickStyle = 3 + End + Begin VB.Label lblSize + Alignment = 1 'Right Justify + BorderStyle = 1 'Fixed Single + Height = 255 + Left = 5340 + TabIndex = 23 + Top = 270 + Width = 360 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Small" + Height = 195 + Index = 4 + Left = 1680 + TabIndex = 13 + Top = 270 + Width = 375 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Large" + Height = 195 + Index = 3 + Left = 4860 + TabIndex = 12 + Top = 270 + Width = 405 + End + End + Begin VB.Frame frRefreshRate + Caption = "Sprite Animation Rate" + Height = 645 + Left = 90 + TabIndex = 3 + Top = 1080 + Width = 5805 + Begin VB.CheckBox chkRefreshRND + Caption = "Randomize" + Height = 195 + Left = 150 + TabIndex = 8 + Top = 270 + Width = 1125 + End + Begin ComctlLib.Slider sldRefreshRate + Height = 330 + Left = 2100 + TabIndex = 4 + Top = 210 + Width = 2745 + _ExtentX = 4842 + _ExtentY = 582 + TickStyle = 3 + End + Begin VB.Label lblRefresh + Alignment = 1 'Right Justify + BorderStyle = 1 'Fixed Single + Height = 255 + Left = 5340 + TabIndex = 22 + Top = 270 + Width = 360 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Fast" + Height = 195 + Index = 2 + Left = 4860 + TabIndex = 6 + Top = 300 + Width = 300 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Slow" + Height = 195 + Index = 1 + Left = 1710 + TabIndex = 5 + Top = 300 + Width = 345 + End + End + Begin VB.Frame fSettings + Caption = "Sprites" + Height = 945 + Left = 90 + TabIndex = 2 + Top = 0 + Width = 1875 + Begin VB.PictureBox picCount + BackColor = &H80000005& + Height = 315 + Left = 720 + ScaleHeight = 255 + ScaleWidth = 525 + TabIndex = 20 + Top = 210 + Width = 585 + Begin VB.TextBox txtSprites + BorderStyle = 0 'None + Height = 195 + Left = 60 + Locked = -1 'True + TabIndex = 21 + Text = "10" + Top = 30 + Width = 195 + End + Begin ComCtl2.UpDown udCount + Height = 255 + Left = 330 + TabIndex = 25 + Top = 0 + Width = 195 + _ExtentX = 344 + _ExtentY = 450 + Value = 1 + AutoBuddy = -1 'True + BuddyControl = "txtSprites" + BuddyDispid = 196624 + OrigLeft = 345 + OrigRight = 540 + OrigBottom = 255 + Min = 1 + SyncBuddy = -1 'True + BuddyProperty = 65547 + Enabled = -1 'True + End + End + Begin VB.CheckBox chkTracers + Caption = "Show Tracers" + Height = 195 + Left = 180 + TabIndex = 19 + Top = 630 + Width = 1335 + End + Begin VB.Label Label1 + AutoSize = -1 'True + Caption = "Count:" + Height = 195 + Index = 0 + Left = 150 + TabIndex = 7 + Top = 270 + Width = 465 + End + End + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "Cancel" + Height = 375 + Left = 5010 + TabIndex = 1 + Top = 540 + Width = 915 + End + Begin VB.CommandButton cmdOK + Caption = "OK" + Default = -1 'True + Height = 375 + Left = 5010 + TabIndex = 0 + Top = 60 + Width = 915 + End +End +Attribute VB_Name = "frmSSetup" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Private Sub chkRefreshRND_Click() + gRefreshRND = (chkRefreshRND.Value = vbChecked) ' Save rand refresh rate globally + sldRefreshRate.Enabled = Not gRefreshRND +End Sub +Private Sub chkSizeRND_Click() + gSizeRND = (chkSizeRND.Value = vbChecked) ' Save rand sprite size globally + sldSize.Enabled = Not gSizeRND +End Sub +Private Sub chkSpeedRND_Click() + gSpeedRND = (chkSpeedRND.Value = vbChecked) ' Save rand animation rate globally + sldSpeed.Enabled = Not gSpeedRND +End Sub +Private Sub chkTracers_Click() + gTracers = (chkTracers.Value = vbChecked) ' Save use tracers option globally +End Sub +Private Sub cmdCancel_Click() + Unload Me ' Cancel screen saver setup dialog +End Sub +Private Sub cmdOK_Click() + SaveSettings ' Save current screen saver settings... + Unload Me ' Close setup dialog +End Sub + +'------------------------------------------------------------ +Private Sub Form_KeyPress(KeyAscii As Integer) +'------------------------------------------------------------ + ' Show the screensaver about box... + If (KeyAscii = Asc("?")) Then AboutBox Me.hwnd +'------------------------------------------------------------ +End Sub +'------------------------------------------------------------ + +'------------------------------------------------------------ +Private Sub Form_Load() +'------------------------------------------------------------ + ' Load current screen saver registry settings... + LoadSettings + + ' Get Sprite Count Value + With udCount + .Max = MAX_SPRITECOUNT + .Min = MIN_SPRITECOUNT + .Value = gSpriteCount + End With + + ' Get Refresh Rate Value + With sldRefreshRate + .Max = MAX_REFRESHRATE + .Min = MIN_REFRESHRATE + .Value = gRefreshRate + lblRefresh.Caption = CStr(gRefreshRate) + End With + + ' Get Sprite Size Value + With sldSize + .Max = MAX_SPRITESIZE + .Min = MIN_SPRITESIZE + .Value = gSpriteSize + lblSize.Caption = CStr(gSpriteSize) + End With + + ' Get Sprite Speed Value + With sldSpeed + .Max = MAX_SPRITESPEED + .Min = MIN_SPRITESPEED + .Value = gSpriteSpeed + lblSpeed.Caption = CStr(gSpriteSpeed) + End With + + ' Get Tracers on Value + If gTracers Then chkTracers.Value = vbChecked + + ' Get Rate Random Value + If gRefreshRND Then chkRefreshRND.Value = vbChecked + + ' Get Size Random Value + If gSizeRND Then chkSizeRND.Value = vbChecked + + ' Get Speed Random Value + If gSpeedRND Then chkSpeedRND.Value = vbChecked +'------------------------------------------------------------ +End Sub +'------------------------------------------------------------ + +Private Sub sldRefreshRate_Change() + gRefreshRate = sldRefreshRate.Value ' Save animation refresh rate globally + lblRefresh.Caption = CStr(gRefreshRate) +End Sub +Private Sub sldRefreshRate_Scroll() + gRefreshRate = sldRefreshRate.Value ' Save animation refresh rate globally + lblRefresh.Caption = CStr(gRefreshRate) +End Sub +Private Sub sldSize_Change() + gSpriteSize = sldSize.Value ' Save active sprite size globally + lblSize.Caption = CStr(gSpriteSize) +End Sub +Private Sub sldSize_Scroll() + gSpriteSize = sldSize.Value ' Save active sprite size globally + lblSize.Caption = CStr(gSpriteSize) +End Sub +Private Sub sldSpeed_Change() + gSpriteSpeed = sldSpeed.Value ' Save active sprite speed globally + lblSpeed.Caption = CStr(gSpriteSpeed) +End Sub +Private Sub sldSpeed_Scroll() + gSpriteSpeed = sldSpeed.Value ' Save active sprite speed globally + lblSpeed.Caption = CStr(gSpriteSpeed) +End Sub +Private Sub txtSprites_Change() + gSpriteCount = Val(txtSprites.Text) ' Save active sprite count globally +End Sub diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSETUP.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSETUP.FRX new file mode 100644 index 0000000..354d594 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSETUP.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSSPRITE.CLS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSSPRITE.CLS new file mode 100644 index 0000000..e401302 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SSAVER/SSSPRITE.CLS @@ -0,0 +1,278 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "ssSprite" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit + +'----------------------------------------------------------------- +' Public Variables +'----------------------------------------------------------------- +Public Index As Long ' Global array index value +Public idxMin As Long ' Minimum sprite frame index value +Public idxMax As Long ' Maximum sprite frame index value +Public xUnits As Long ' # of horizontal sprite frames +Public yUnits As Long ' # of virtical sprite frames +Public uWidth As Long ' sprite frame width in pixels +Public uHeight As Long ' sprite frame height in pixels +Public DestHDC As Long ' destination window hdc +Public hBitmap As Long ' handle to animation bitmap +Public hDisplayBack As Long ' handle to background bitmap +Public TRACERS As Boolean ' use tracers flag +Public MASKCOLOR As Long ' transparency blt color mask +Public SprtH As Long ' animation bitmap height in pixels +Public SprtW As Long ' animation bitmap width in pixels +Public Mass As Long ' sprite mass(virtual) + +'----------------------------------------------------------------- +' AutoMove Programmable Variables +'----------------------------------------------------------------- +Public x As Long ' sprite's current screen x coordinate +Public y As Long ' sprite's current screen y coordinate +Public BdrX As Long ' border width +Public BdrY As Long ' border height +Public Dx As Long ' current x velosity +Public Dy As Long ' current y velosity +Public DDx As Long ' current x acceleration (= 1 not currently used) +Public DDy As Long ' current Y acceleration (= 1 not currently used) +Public ScreenW As Long ' width of screen +Public ScreenH As Long ' height of screen +Public bmpIdx As Long ' current animated bitmap frame index + +'----------------------------------------------------------------- +' Private Variables +'----------------------------------------------------------------- +Private LastX As Long ' previous x coordinate +Private LastY As Long ' previous y coordinate + +'----------------------------------------------------------------- +Public Function CollisionTest(Sprite As ssSprite) As Boolean +'----------------------------------------------------------------- + Dim l1 As Long, r1 As Long, t1 As Long, b1 As Long ' left, right, top, bottom... positions of sprite + Dim l2 As Long, r2 As Long, t2 As Long, b2 As Long ' left, right, top, bottom... positions of sprite +'----------------------------------------------------------------- + If (Sprite Is Me) Then Exit Function ' don't compare sprite with itself + + With Me ' current sprite + l1 = .x + t1 = .y + r1 = l1 + .uWidth + b1 = t1 + .uHeight + End With + With Sprite ' other sprite + l2 = .x + t2 = .y + r2 = l2 + .uWidth + b2 = t2 + .uHeight + End With + + ' Test for sprite collision + CollisionTest = (((l2 <= l1) And (l1 <= r2)) Or _ + ((l2 <= r1) And (r1 <= r2))) And _ + (((t2 <= t1) And (t1 <= b2)) Or _ + ((t2 <= b1) And (b1 <= b2))) +'----------------------------------------------------------------- +End Function +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Private Function Atn2(y As Double, x As Double) As Double +'----------------------------------------------------------------- +'- VB implementation of the C runtime ATan2(x,y) function... +'----------------------------------------------------------------- + If (x <> 0) Then ' Prevent divide by zero + Atn2 = Atn(y / x) ' Atan2(y,x) = Atn(y/x) when x <> 0 + Else ' Handle special case + Atn2 = 2 * Atn(Sgn(y)) ' as N ~> infinity Atn(N) ~> (sign(N)*PI/2) = 2 * Atn(Sgn(y)) + End If +'----------------------------------------------------------------- +End Function +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Function ResolveCollision() As Boolean +'----------------------------------------------------------------- +''' Dim Sprite As ssSprite + Dim x1 As Long, y1 As Long, x2 As Long, y2 As Long + Dim a As Double, cos_a As Double, sin_a As Double + Dim vn1 As Double, vn2 As Double, vp1 As Double, vp2 As Double + Dim vx1 As Long, vx2 As Long, vy1 As Long, vy2 As Long + Dim m1 As Double, m2 As Double, k As Double, e As Double + Dim vn2p1 As Double, vn2p2 As Double, temp1 As Double + Dim Idx As Integer, First As Integer, Last As Integer +'----------------------------------------------------------------- +''' For Each Sprite In gSpriteCollection ' For each sprite check for... + First = Me.Index + 1 + Last = UBound(gSSprite) + + For Idx = First To Last +''' Set Sprite = gSprite(Idx) +''' If CollisionTest(Sprite) Then ' Check for Collision + If CollisionTest(gSSprite(Idx)) Then ' Check for Collision + With gSSprite(Idx) + ' Compute the coordinates of the centers of the objects. + x1 = Me.x + (Me.uWidth \ 2) + y1 = Me.y + (Me.uHeight \ 2) + x2 = .x + (.uWidth \ 2) + y2 = .y + (.uHeight \ 2) + + ' Compute the angle of the line joining the centers. + ' a = atan2((double)(y2 - y1), (double)(x2 - x1)) (C implementation) + a = Atn2((y2 - y1), (x2 - x1)) ' (VB implementation) + cos_a = Cos(a) + sin_a = Sin(a) + + ' Compute the velocities normal and perpendicular + ' to the center line. + vx1 = Me.Dx: vy1 = Me.Dy + vx2 = .Dx: vy2 = .Dy + vn1 = (vx1 * cos_a) + (vy1 * sin_a) + vp1 = (vy1 * cos_a) - (vx1 * sin_a) + + vn2 = (vx2 * cos_a) + (vy2 * sin_a) + vp2 = (vy2 * cos_a) - (vx2 * sin_a) + + ' Compute the momentum along the center line. + m1 = Me.Mass + m2 = .Mass + k = (m1 * vn1) + (m2 * vn2) + + ' Compute the energy. + e = 0.5 * ((m1 * vn1 ^ 2) + (m2 * vn2 ^ 2)) + + ' There are two possible solutions to the equations. + ' Compute both and choose. + ' <<<***Convert to long to fix Floating Point Error Bug.***>>> + temp1 = Sqr(Fix(k ^ 2 - ((m1 / m2) + 1) * (-2 * e * m1 + k ^ 2))) + vn2p1 = (k + temp1) / (m1 + m2) + vn2p2 = (k - temp1) / (m1 + m2) + + ' Choose the solution that is not the current state. + If (vn2p1 = vn2) Then + vn2 = vn2p2 + Else + vn2 = vn2p1 + End If + + ' Compute the new vn1 value. + vn1 = (k - m2 * vn2) / m1 + + ' Compute the new x and y velocities. + vx1 = (vn1 * cos_a) - (vp1 * sin_a) + vy1 = (vn1 * sin_a) + (vp1 * cos_a) + vx2 = (vn2 * cos_a) - (vp2 * sin_a) + vy2 = (vn2 * sin_a) + (vp2 * cos_a) + + Me.Dx = vx1 ' Save new change in x velosity + Me.Dy = vy1 ' Save new change in Y velosity + .Dx = vx2 ' Save new change in x velosity + .Dy = vy2 ' Save new change in Y velosity + + ' Move the sprites until they are no longer in collision. + If ((vx1 <> 0) Or (vy1 <> 0) Or (vx2 <> 0) Or (vy2 <> 0)) Then +''' Do While CollisionTest(Sprite) + Do While CollisionTest(gSSprite(Idx)) + If ((Dx <> 0) Or (Dy <> 0)) Then ' if 0 then update wont matter + UpdatePosition ' Move sprite out of the way + ElseIf ((.Dx <> 0) Or (.Dy <> 0)) Then ' if 0 then update wont matter + .UpdatePosition ' Move sprite out of the way + Else + Exit Do ' Exit to avoid dead lock(infinite loop) + End If + Loop + End If + ResolveCollision = True ' Return success + End With + End If + Next +'----------------------------------------------------------------- +End Function +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub UpdatePosition() +'----------------------------------------------------------------- + x = x + Dx ' Update x position + y = y + Dy ' Update y position + + If (x < 0) Then Dx = Abs(Dx) ' reverse direction when hitting a border. + If (x > BdrX) Then Dx = -1 * Abs(Dx) + If (y < 0) Then Dy = Abs(Dy) + If (y > BdrY) Then Dy = -1 * Abs(Dy) + + Dx = Dx * DDx ' acceleration sprite x velocity + Dy = Dy * DDy ' acceleration sprite y velocity +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub AutoMove() +'----------------------------------------------------------------- + DrawNext x, y ' Move sprite to next coordinate + If Not ResolveCollision Then UpdatePosition ' Check for collision or update current position +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- + +'----------------------------------------------------------------- +Public Sub DrawNext(PosX As Long, PosY As Long) +'----------------------------------------------------------------- + Dim rc As Long + Dim x As Long, y As Long ' Source indexed bmp coordinates... + Dim x1 As Long, y1 As Long, w1 As Long, h1 As Long ' Repaint Rectangle # 1 screen coordinates + Dim x2 As Long, y2 As Long, w2 As Long, h2 As Long ' Repaint Rectangle # 2 screen coordinates +'----------------------------------------------------------------- + x = CLng((bmpIdx Mod xUnits) * (SprtW / xUnits)) ' Get next indexed bmp x coordinate + y = CLng((bmpIdx \ xUnits) * (SprtH / yUnits)) ' Get next indexed bmp y coordinate + + If (TRACERS) Then ' Tracers? don't clean up previous blt + DrawTransparentBitmap DestHDC, hBitmap, MASKCOLOR, PosX, PosY, uWidth, uHeight, x, y + Else ' Clean up & calculate unused sprite space + Select Case PosX + Case Is < LastX ' PosX <=== LastX + x1 = PosX + uWidth: w1 = LastX - PosX + x2 = LastX: w2 = uWidth + Case LastX ' PosX ==== LastX + x2 = LastX: w2 = uWidth + Case Is > LastX ' PosX ===> LastX + x1 = LastX: w1 = PosX - LastX + x2 = LastX: w2 = uWidth + End Select + + Select Case PosY + Case Is < LastY ' PosY <=== LastY + y1 = LastY: h1 = uHeight - (LastY - PosY) + y2 = PosY + uHeight: h2 = uHeight - h1 + Case LastY ' PosY ==== LastY + y1 = LastY: h1 = uHeight + Case Is > LastY ' PosY ===> LastY + y1 = PosY: h1 = uHeight - (PosY - LastY) + y2 = LastY: h2 = uHeight - h1 + End Select + + ' paint sprite in new position... + DrawTransparentBitmap DestHDC, hBitmap, MASKCOLOR, PosX, PosY, uWidth, uHeight, x, y, hDisplayBack + + If ((LastX <> PosX) Or (LastY <> PosY)) Then ' If sprite has moved... + ' Repaint previous unoccupied positions... + If ((w1 > 0) And (h1 > 0)) Then BitBlt DestHDC, x1, y1, w1, h1, hDisplayBack, x1, y1, vbSrcCopy + If ((w2 > 0) And (h2 > 0)) Then BitBlt DestHDC, x2, y2, w2, h2, hDisplayBack, x2, y2, vbSrcCopy + End If + End If + + LastX = PosX ' Save previous x position + LastY = PosY ' Save previous y position + + If (bmpIdx < idxMax) Then ' Increment bitmap frame index + bmpIdx = bmpIdx + 1 + Else ' Reset to beginning + bmpIdx = idxMin + End If +'----------------------------------------------------------------- +End Sub +'----------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.BAS new file mode 100644 index 0000000..3f3faf0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.BAS @@ -0,0 +1,93 @@ +Attribute VB_Name = "mSysTray" +Option Explicit + +'------------------------------------------------------- +' Api Declares.... +'------------------------------------------------------- +Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long +Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long +Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long +Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long) +Public Declare Function DrawEdge Lib "user32" (ByVal hDC As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Boolean + +'------------------------------------------------------- +' Api Constants... +'------------------------------------------------------- +Public Const GWL_USERDATA = (-21&) +Public Const GWL_WNDPROC = (-4&) +Public Const WM_USER = &H400& + +Public Const TRAY_CALLBACK = (WM_USER + 101&) +Public Const NIM_ADD = &H0& +Public Const NIM_MODIFY = &H1& +Public Const NIM_DELETE = &H2& +Public Const NIF_MESSAGE = &H1& +Public Const NIF_ICON = &H2& +Public Const NIF_TIP = &H4& + +Public Const WM_MOUSEMOVE = &H200& +Public Const WM_LBUTTONDOWN = &H201& +Public Const WM_LBUTTONUP = &H202& +Public Const WM_LBUTTONDBLCLK = &H203& +Public Const WM_RBUTTONDOWN = &H204& +Public Const WM_RBUTTONUP = &H205& +Public Const WM_RBUTTONDBLCLK = &H206& + +'DrawEdge constants +Public Const BDR_RAISEDOUTER = &H1& +Public Const BDR_RAISEDINNER = &H4& +Public Const BF_LEFT = &H1& ' Border flags +Public Const BF_TOP = &H2& +Public Const BF_RIGHT = &H4& +Public Const BF_BOTTOM = &H8& +Public Const BF_RECT = BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM +Public Const BF_SOFT = &H1000& ' For softer buttons + +'------------------------------------------------------- +' Api Types.... +'------------------------------------------------------- +Public Type NOTIFYICONDATA + cbSize As Long + hwnd As Long + uID As Long + uFlags As Long + uCallbackMessage As Long + hIcon As Long + szTip As String * 64 +End Type +Public Type RECT + Left As Long + Top As Long + Right As Long + Bottom As Long +End Type + +Public PrevWndProc As Long + +'------------------------------------------------------------ +Public Function SubWndProc(ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +'------------------------------------------------------------ +' This is the control subclassed window proc. +'------------------------------------------------------------ + Dim SysTray As cSysTray ' SysTray class variable + Dim ClassAddr As Long ' long pointer to class object +'------------------------------------------------------------ + Select Case MSG ' Determine + Case TRAY_CALLBACK ' Callback message received when user clicks on system tray... + ' Retrieve long pointer to class object, this was saved in the _ + USERDATA of the window struct. after the user control was subclassed... + ClassAddr = GetWindowLong(hwnd, GWL_USERDATA) ' get pointer to object + CopyMemory SysTray, ClassAddr, 4 ' Copy an unreferenced pointer to object into variable + + SysTray.SendEvent lParam, wParam ' Send windows message\user event to control + + CopyMemory SysTray, 0&, 4 ' Nullify object pointer + End Select + + ' Forward all messages to previous window procedure...(This must be done) + SubWndProc = CallWindowProc(PrevWndProc, hwnd, MSG, wParam, lParam) +'------------------------------------------------------------ +End Function +'------------------------------------------------------------ + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CMP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CMP new file mode 100644 index 0000000..8f2eae3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CMP differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CTL b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CTL new file mode 100644 index 0000000..a7cbf8f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CTL @@ -0,0 +1,312 @@ +VERSION 5.00 +Begin VB.UserControl cSysTray + CanGetFocus = 0 'False + ClientHeight = 510 + ClientLeft = 0 + ClientTop = 0 + ClientWidth = 510 + ClipControls = 0 'False + EditAtDesignTime= -1 'True + InvisibleAtRuntime= -1 'True + MouseIcon = "SysTray.ctx":0000 + Picture = "SysTray.ctx":030A + ScaleHeight = 34 + ScaleMode = 3 'Pixel + ScaleWidth = 34 +End +Attribute VB_Name = "cSysTray" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit +'------------------------------------------------------- +' Control Property Globals... +'------------------------------------------------------- +Private gInTray As Boolean +Private gTrayId As Long +Private gTrayTip As String +Private gTrayHwnd As Long +Private gTrayIcon As StdPicture +Private gAddedToTray As Boolean +Const MAX_SIZE = 510 + +Private Const defInTray = False +Private Const defTrayTip = "VB 5 - SysTray Control." & vbNullChar + +Private Const sInTray = "InTray" +Private Const sTrayIcon = "TrayIcon" +Private Const sTrayTip = "TrayTip" + +'------------------------------------------------------- +' Control Events... +'------------------------------------------------------- +Public Event MouseMove(Id As Long) +Public Event MouseDown(Button As Integer, Id As Long) +Public Event MouseUp(Button As Integer, Id As Long) +Public Event MouseDblClick(Button As Integer, Id As Long) + +'------------------------------------------------------- +Private Sub UserControl_Initialize() +'------------------------------------------------------- + gInTray = defInTray ' Set global InTray defalt + gAddedToTray = False ' Set default state + gTrayId = 0 ' Set global TrayId default + gTrayHwnd = hwnd ' Set and keep HWND of user control +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub UserControl_InitProperties() +'------------------------------------------------------- + InTray = defInTray ' Init InTray Property + TrayTip = defTrayTip ' Init TrayTip Property + Set TrayIcon = Picture ' Init TrayIcon property +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub UserControl_Paint() +'------------------------------------------------------- + Dim edge As RECT ' Rectangle edge of control +'------------------------------------------------------- + edge.Left = 0 ' Set rect edges to outer + edge.Top = 0 ' - most position in pixels + edge.Bottom = ScaleHeight ' + edge.Right = ScaleWidth ' + DrawEdge hDC, edge, BDR_RAISEDOUTER, BF_RECT Or BF_SOFT ' Draw Edge... +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub UserControl_ReadProperties(PropBag As PropertyBag) +'------------------------------------------------------- + ' Read in the properties that have been saved into the PropertyBag... + With PropBag + InTray = .ReadProperty(sInTray, defInTray) ' Get InTray + Set TrayIcon = .ReadProperty(sTrayIcon, Picture) ' Get TrayIcon + TrayTip = .ReadProperty(sTrayTip, defTrayTip) ' Get TrayTip + End With +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub UserControl_WriteProperties(PropBag As PropertyBag) +'------------------------------------------------------- + With PropBag + .WriteProperty sInTray, gInTray ' Save InTray to propertybag + .WriteProperty sTrayIcon, gTrayIcon ' Save TrayIcon to propertybag + .WriteProperty sTrayTip, gTrayTip ' Save TrayTip to propertybag + End With +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub UserControl_Resize() +'------------------------------------------------------- + Height = MAX_SIZE ' Prevent Control from being resized... + Width = MAX_SIZE +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub UserControl_Terminate() +'------------------------------------------------------- + If InTray Then ' If TrayIcon is visible + InTray = False ' Cleanup and unplug it. + End If +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Public Property Set TrayIcon(Icon As StdPicture) +'------------------------------------------------------- + Dim Tray As NOTIFYICONDATA ' Notify Icon Data structure + Dim rc As Long ' API return code +'------------------------------------------------------- + If Not (Icon Is Nothing) Then ' If icon is valid... + If (Icon.Type = vbPicTypeIcon) Then ' Use ONLY if it is an icon + If gAddedToTray Then ' Modify tray only if it is in use. + Tray.uID = gTrayId ' Unique ID for each HWND and callback message. + Tray.hwnd = gTrayHwnd ' HWND receiving messages. + Tray.hIcon = Icon.Handle ' Tray icon. + Tray.uFlags = NIF_ICON ' Set flags for valid data items + Tray.cbSize = Len(Tray) ' Size of struct. + + rc = Shell_NotifyIcon(NIM_MODIFY, Tray) ' Send data to Sys Tray. + End If + + Set gTrayIcon = Icon ' Save Icon to global + Set Picture = Icon ' Show user change in control as well(gratuitous) + PropertyChanged sTrayIcon ' Notify control that property has changed. + End If + End If +'------------------------------------------------------- +End Property +'------------------------------------------------------- + +'------------------------------------------------------- +Public Property Get TrayIcon() As StdPicture +'------------------------------------------------------- + Set TrayIcon = gTrayIcon ' Return Icon value +'------------------------------------------------------- +End Property +'------------------------------------------------------- + +'------------------------------------------------------- +Public Property Let TrayTip(Tip As String) +Attribute TrayTip.VB_ProcData.VB_Invoke_PropertyPut = ";Misc" +Attribute TrayTip.VB_UserMemId = -517 +'------------------------------------------------------- + Dim Tray As NOTIFYICONDATA ' Notify Icon Data structure + Dim rc As Long ' API Return code +'------------------------------------------------------- + If gAddedToTray Then ' if TrayIcon is in taskbar + Tray.uID = gTrayId ' Unique ID for each HWND and callback message. + Tray.hwnd = gTrayHwnd ' HWND receiving messages. + Tray.szTip = Tip & vbNullChar ' Tray tool tip + Tray.uFlags = NIF_TIP ' Set flags for valid data items + Tray.cbSize = Len(Tray) ' Size of struct. + + rc = Shell_NotifyIcon(NIM_MODIFY, Tray) ' Send data to Sys Tray. + End If + + gTrayTip = Tip ' Save Tip + PropertyChanged sTrayTip ' Notify control that property has changed +'------------------------------------------------------- +End Property +'------------------------------------------------------- + +'------------------------------------------------------- +Public Property Get TrayTip() As String +'------------------------------------------------------- + TrayTip = gTrayTip ' Return Global Tip... +'------------------------------------------------------- +End Property +'------------------------------------------------------- + +'------------------------------------------------------- +Public Property Let InTray(Show As Boolean) +Attribute InTray.VB_ProcData.VB_Invoke_PropertyPut = ";Behavior" +'------------------------------------------------------- + Dim ClassAddr As Long ' Address pointer to Control Instance +'------------------------------------------------------- + If (Show <> gInTray) Then ' Modify ONLY if state is changing! + If Show Then ' If adding Icon to system tray... + If Ambient.UserMode Then ' If in RunMode and not in IDE... + ' SubClass Controls window proc. + PrevWndProc = SetWindowLong(gTrayHwnd, GWL_WNDPROC, AddressOf SubWndProc) + + ' Get address to user control object + 'CopyMemory ClassAddr, UserControl, 4& + + ' Save address to the USERDATA of the control's window struct. + ' this will be used to get an object refenence to the control + ' from an HWND in the callback. + SetWindowLong gTrayHwnd, GWL_USERDATA, ObjPtr(Me) 'ClassAddr + + AddIcon gTrayHwnd, gTrayId, TrayTip, TrayIcon ' Add TrayIcon to System Tray... + gAddedToTray = True ' Save state of control used in teardown procedure + End If + Else ' If removing Icon from system tray + If gAddedToTray Then ' If Added to system tray then remove... + DeleteIcon gTrayHwnd, gTrayId ' Remove icon from system tray + + ' Un SubClass controls window proc. + SetWindowLong gTrayHwnd, GWL_WNDPROC, PrevWndProc + gAddedToTray = False ' Maintain the state for teardown purposes + End If + End If + + gInTray = Show ' Update global variable + PropertyChanged sInTray ' Notify control that property has changed + End If +'------------------------------------------------------- +End Property +'------------------------------------------------------- + +'------------------------------------------------------- +Public Property Get InTray() As Boolean +'------------------------------------------------------- + InTray = gInTray ' Return global property +'------------------------------------------------------- +End Property +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub AddIcon(hwnd As Long, Id As Long, Tip As String, Icon As StdPicture) +'------------------------------------------------------- + Dim Tray As NOTIFYICONDATA ' Notify Icon Data structure + Dim tFlags As Long ' Tray action flag + Dim rc As Long ' API return code +'------------------------------------------------------- + Tray.uID = Id ' Unique ID for each HWND and callback message. + Tray.hwnd = hwnd ' HWND receiving messages. + + If Not (Icon Is Nothing) Then ' Validate Icon picture + Tray.hIcon = Icon.Handle ' Tray icon. + Tray.uFlags = Tray.uFlags Or NIF_ICON ' Set ICON flag to validate data item + Set gTrayIcon = Icon ' Save icon + End If + + If (Tip <> "") Then ' Validate Tip text + Tray.szTip = Tip & vbNullChar ' Tray tool tip + Tray.uFlags = Tray.uFlags Or NIF_TIP ' Set TIP flag to validate data item + gTrayTip = Tip ' Save tool tip + End If + + Tray.uCallbackMessage = TRAY_CALLBACK ' Set user defigned message + Tray.uFlags = Tray.uFlags Or NIF_MESSAGE ' Set flags for valid data item + Tray.cbSize = Len(Tray) ' Size of struct. + + rc = Shell_NotifyIcon(NIM_ADD, Tray) ' Send data to Sys Tray. +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Private Sub DeleteIcon(hwnd As Long, Id As Long) +'------------------------------------------------------- + Dim Tray As NOTIFYICONDATA ' Notify Icon Data structure + Dim rc As Long ' API return code +'------------------------------------------------------- + Tray.uID = Id ' Unique ID for each HWND and callback message. + Tray.hwnd = hwnd ' HWND receiving messages. + Tray.uFlags = 0& ' Set flags for valid data items + Tray.cbSize = Len(Tray) ' Size of struct. + + rc = Shell_NotifyIcon(NIM_DELETE, Tray) ' Send delete message. +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------- +Friend Sub SendEvent(MouseEvent As Long, Id As Long) +'------------------------------------------------------- + Select Case MouseEvent ' Dispatch mouse events to control + Case WM_MOUSEMOVE + RaiseEvent MouseMove(Id) + Case WM_LBUTTONDOWN + RaiseEvent MouseDown(vbLeftButton, Id) + Case WM_LBUTTONUP + RaiseEvent MouseUp(vbLeftButton, Id) + Case WM_LBUTTONDBLCLK + RaiseEvent MouseDblClick(vbLeftButton, Id) + Case WM_RBUTTONDOWN + RaiseEvent MouseDown(vbRightButton, Id) + Case WM_RBUTTONUP + RaiseEvent MouseUp(vbRightButton, Id) + Case WM_RBUTTONDBLCLK + RaiseEvent MouseDblClick(vbRightButton, Id) + End Select +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CTX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CTX new file mode 100644 index 0000000..a161c5b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.CTX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.ICO b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.ICO new file mode 100644 index 0000000..3d3f134 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.ICO differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.VBP new file mode 100644 index 0000000..9018099 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/SYSTRAY/SYSTRAY.VBP @@ -0,0 +1,35 @@ +Type=Control +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\VB5\stdole2.tlb#OLE Automation +UserControl=SysTray.ctl +Module=mSysTray; SysTray.bas +IconForm="cSysTray" +Startup="(None)" +HelpFile="" +Title="SysTray Icon Control" +ExeName32="SysTray.ocx" +Command32="" +Name="SysTrayCtl" +HelpContextID="0" +Description="System Tray Icon Control" +CompatibleMode="2" +CompatibleEXE32="SysTray.cmp" +VersionCompatible32="1" +MajorVer=1 +MinorVer=0 +RevisionVer=3722 +AutoIncrementVer=0 +ServerSupportFiles=0 +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=-1 +NoAliasing=-1 +BoundsCheck=-1 +OverflowCheck=-1 +FlPointCheck=-1 +FDIVCheck=-1 +UnroundedFP=-1 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/C1.EXE b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/C1.EXE new file mode 100644 index 0000000..cf836c6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/C1.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/CL.EXE b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/CL.EXE new file mode 100644 index 0000000..5e898bc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/CL.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/MKTYPLIB.EXE b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/MKTYPLIB.EXE new file mode 100644 index 0000000..7f2ee88 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/MKTYPLIB.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/MSPDB41.DLL b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/MSPDB41.DLL new file mode 100644 index 0000000..9d2953e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/TYPLIB/MSPDB41.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/ACM_DEFS.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/ACM_DEFS.BAS new file mode 100644 index 0000000..6ef155e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/ACM_DEFS.BAS @@ -0,0 +1,147 @@ +Attribute VB_Name = "ACM_Defs" +Option Explicit +'== ACM API Constants ================================================ +Public Const ACMERR_BASE = 512 +Public Const ACMERR_NOTPOSSIBLE = (ACMERR_BASE + 0) +Public Const ACMERR_BUSY = (ACMERR_BASE + 1) +Public Const ACMERR_UNPREPARED = (ACMERR_BASE + 2) +Public Const ACMERR_CANCELED = (ACMERR_BASE + 3) + +' AcmStreamSizeFormat Constants +Public Const ACM_STREAMSIZEF_SOURCE = &H0 +Public Const ACM_STREAMSIZEF_DESTINATION = &H1 +Public Const ACM_STREAMSIZEF_QUERYMASK = &HF + +' acmStreamConvert Formats +Public Const ACM_STREAMCONVERTF_BLOCKALIGN = &H4 +Public Const ACM_STREAMCONVERTF_START = &H10 +Public Const ACM_STREAMCONVERTF_END = &H20 + +' Done Bits For ACMSTREAMHEADER.fdwStatus +Public Const ACMSTREAMHEADER_STATUSF_DONE = &H10000 +Public Const ACMSTREAMHEADER_STATUSF_PREPARED = &H20000 +Public Const ACMSTREAMHEADER_STATUSF_INQUEUE = &H100000 + +' Done Bits For acmStreamOpen Formats +Public Const ACM_STREAMOPENF_QUERY = &H1 +Public Const ACM_STREAMOPENF_ASYNC = &H2 +Public Const ACM_STREAMOPENF_NONREALTIME = &H4 + +'== ACM API Declarations ================================================ +'Declare Function acmStreamOpen Lib "MSACM32" (ByVal hAS As Integer, ByVal hADrv As Integer, wfxSrc As WAVEFORMATEX, wfxDst As WAVEFORMATEX, wFltr As Any, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Integer +'Declare Function acmStreamOpen Lib "MSACM32" (ByVal hAS As Long, ByVal hADrv As Long, wfxSrc As WAVEFORMATEX, wfxDst As WAVEFORMATEX, wFltr As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long +Declare Function acmStreamOpen Lib "MSACM32" (ByVal hAS As Long, ByVal hADrv As Long, wfxSrc As WAVEFORMATEX, wfxDst As WAVEFORMATEX, ByVal wFltr As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long + +Declare Function acmStreamPrepareHeader Lib "MSACM32" (ByVal hAS As Integer, hASHdr As ACMSTREAMHEADER, ByVal dwPrepare As Long) As Integer +Declare Function acmStreamUnprepareHeader Lib "MSACM32" (ByVal hAS As Integer, hASHdr As ACMSTREAMHEADER, ByVal dwUnPrepare As Long) As Integer +Declare Function acmStreamConvert Lib "MSACM32" (ByVal hAS As Integer, hASHdr As ACMSTREAMHEADER, ByVal dwConvert As Long) As Integer +Declare Function acmStreamClose Lib "MSACM32" (ByVal hAS As Integer, ByVal dwClose As Long) As Integer +Declare Function acmStreamReset Lib "MSACM32" (ByVal hAS As Integer, ByVal dwReset As Long) As Integer +Declare Function acmStreamSize Lib "MSACM32" (ByVal hAS As Integer, ByVal cbInput As Long, ByVal dwOutBytes As Long, ByVal dwSize As Long) As Integer + + +'== ACM User Defined Datatypes ================================================ +Type WAVEFILTER + cbStruct As Long + dwFilterTag As Long + fdwFilter As Long + dwReserved(5) As Long +End Type + +Type ACMSTREAMHEADER ' [ACM STREAM HEADER TYPE] + cbStruct As Long ' Size of header in bytes + dwStatus As Long ' Conversion status buffer + dwUser As Long ' 32 bits of user data specified by application + pbSrc As Long ' Source data buffer pointer + cbSrcLength As Long ' Source data buffer size in bytes + cbSrcLengthUsed As Long ' Source data buffer size used in bytes + dwSrcUser As Long ' 32 bits of user data specified by application + cbDst As Long ' Dest data buffer pointer + cbDstLength As Long ' Dest data buffer size in bytes + cbDstLengthUsed As Long ' Dest data buffer size used in bytes + dwDstUser As Long ' 32 bits of user data specified by application + dwReservedDriver(10) As Long ' Reserved and should not be used +End Type +'============================================================================== + +'------------------------------------------------------------------ +Public Function acmCompress(srcWavefmt As WAVEFORMATEX, dstWavefmt As WAVEFORMATEX) As Boolean +'------------------------------------------------------------------ + Dim rc As Long + Dim hAS As Long + Dim hASHdr As ACMSTREAMHEADER +' Dim wFltr As WAVEFILTER + Dim dwConvert As Long, dwClose As Long, dwReset As Long + Dim cbInput As Long, dwOutBytes As Long, dwSize As Long +'------------------------------------------------------------------ + ' Open/Configure an acm Stream Handle For Compression +' rc = acmStreamOpen(hAS, 0, srcWavefmt, dstWavefmt, wFltr, 0, 0, dwOpen) + rc = acmStreamOpen(hAS, 0, srcWavefmt, dstWavefmt, 0, 0, 0, ACM_STREAMOPENF_ASYNC) + Debug.Print "acmStreamOpen rc= ", rc + + ' Prepare acm Stream Header + rc = acmStreamPrepareHeader(hAS, hASHdr, 0) + Debug.Print "acmStreamPrepareHeader rc= ", rc + + cbInput = 255 ' must be non zero + + ' Calculate acm Stream Size of Output Buffer + rc = acmStreamSize(hAS, cbInput, dwOutBytes, ACM_STREAMSIZEF_SOURCE) + Debug.Print "acmStreamSize(input) rc= ", rc + + ' Calculate acm Stream Size of Output Buffer + rc = acmStreamSize(hAS, cbInput, dwOutBytes, ACM_STREAMSIZEF_DESTINATION) + Debug.Print "acmStreamSize(output) rc= ", rc + + ' Convert/Compress acm Stream Wave Buffer + rc = acmStreamConvert(hAS, hASHdr, dwConvert) + Debug.Print "acmStreamConvert rc= ", rc + + ' Wait Until Conversion Complete... + Do ' Loop Until Conversion Is Done + DoEvents ' Post Events... + Loop Until hASHdr.dwStatus And ACMSTREAMHEADER_STATUSF_DONE ' Check For The DONE Flag. + + ' UnPrepare acm Stream Header + rc = acmStreamUnprepareHeader(hAS, hASHdr, 0) + Debug.Print "acmStreamUnprepareHeader rc= ", rc + + ' Close acm Stream Handle + rc = acmStreamClose(hAS, dwClose) + Debug.Print "acmStreamClose rc= ", rc +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'-------------------------------------------------------------- +Public Sub InitAcmHDR(asHdr As ACMSTREAMHEADER, srcHdr As WAVEHDR) +' Initialize's An Input Wave Header's DataBuffer And Size Members... +'-------------------------------------------------------------- + Dim rc As Long ' Function Return Code... +'-------------------------------------------------------------- + asHdr.cbStruct = Len(asHdr) ' Size of header in bytes + asHdr.pbSrc = srcHdr.lpData ' Copy pointer To uncompressed data + asHdr.cbSrcLength = srcHdr.lpData ' Copy size of uncompress data + + asHdr.cbDstLength = asHdr.cbSrcLength ' Allocate Enough Memory For Compression + asHdr.dwDstUser = GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE Or GMEM_ZEROINIT, _ + asHdr.cbDstLength) ' Allocate Global Memory + asHdr.cbDst = GlobalLock(asHdr.dwDstUser) ' Lock Memory handle +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Sub WaitForACMCallBack(CallBackBit As Long, cbFlag As Long) +' Waits For Asynchronous Function Callback Bit To Be Set. +'-------------------------------------------------------------- + Do ' Loop Until CallBack Bit Is Set! + DoEvents ' Post Events... + Loop Until (((CallBackBit And cbFlag) = cbFlag) Or _ + (CallBackBit = 0)) ' Check For (CallBack Bit Or Null)... +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT.FRM b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT.FRM new file mode 100644 index 0000000..519233c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT.FRM @@ -0,0 +1,546 @@ +VERSION 5.00 +Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.0#0"; "COMCTL32.OCX" +Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX" +Begin VB.Form frmChat + BorderStyle = 1 'Fixed Single + Caption = "Inter Net Voice" + ClientHeight = 3030 + ClientLeft = 2625 + ClientTop = 1530 + ClientWidth = 4170 + FillColor = &H00808080& + Icon = "chat.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + ScaleHeight = 3030 + ScaleWidth = 4170 + WhatsThisButton = -1 'True + WhatsThisHelp = -1 'True + Begin VB.PictureBox Picture3 + Height = 2565 + Left = 60 + ScaleHeight = 2505 + ScaleWidth = 3945 + TabIndex = 0 + Top = 390 + Width = 4005 + Begin VB.CommandButton cmdTalk + Caption = "&Talk" + BeginProperty Font + Name = "MS Sans Serif" + Size = 12 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 345 + Left = 540 + TabIndex = 4 + Top = 2130 + Width = 2865 + End + Begin VB.ListBox ConnectionList + Height = 1065 + ItemData = "chat.frx":0442 + Left = 60 + List = "chat.frx":0444 + TabIndex = 2 + Top = 840 + Width = 3825 + End + Begin VB.ComboBox txtServer + Height = 315 + ItemData = "chat.frx":0446 + Left = 630 + List = "chat.frx":0448 + Sorted = -1 'True + TabIndex = 1 + Top = 60 + Width = 3255 + End + Begin VB.Image outLight + Height = 345 + Left = 3510 + Picture = "chat.frx":044A + Stretch = -1 'True + Top = 2130 + Width = 345 + End + Begin VB.Image inLight + Height = 345 + Left = 60 + Picture = "chat.frx":0754 + Stretch = -1 'True + Top = 2130 + Width = 345 + End + Begin VB.Label Label2 + AutoSize = -1 'True + Caption = "Conference List:" + Height = 195 + Left = 60 + TabIndex = 3 + Top = 600 + Width = 1425 + End + Begin VB.Image imgStatus + Appearance = 0 'Flat + Height = 390 + Left = 90 + Picture = "chat.frx":0A5E + Stretch = -1 'True + Top = 30 + Width = 420 + End + End + Begin ComctlLib.Toolbar Tools + Align = 1 'Align Top + Height = 390 + Left = 0 + TabIndex = 5 + Top = 0 + Width = 4170 + _ExtentX = 7355 + _ExtentY = 688 + ImageList = "ImgIcons" + BeginProperty Buttons {0713E452-850A-101B-AFC0-4210102A8DA7} + NumButtons = 5 + BeginProperty Button1 {0713F354-850A-101B-AFC0-4210102A8DA7} + Style = 3 + EndProperty + BeginProperty Button2 {0713F354-850A-101B-AFC0-4210102A8DA7} + Object.ToolTipText = "Call" + ImageIndex = 4 + EndProperty + BeginProperty Button3 {0713F354-850A-101B-AFC0-4210102A8DA7} + Enabled = 0 'False + Object.ToolTipText = "Hangup" + ImageIndex = 5 + EndProperty + BeginProperty Button4 {0713F354-850A-101B-AFC0-4210102A8DA7} + Style = 3 + EndProperty + BeginProperty Button5 {0713F354-850A-101B-AFC0-4210102A8DA7} + Object.ToolTipText = "Auto Answering" + ImageIndex = 1 + Style = 1 + Value = 1 + EndProperty + EndProperty + End + Begin MSWinsockLib.Winsock TCPSocket + Index = 0 + Left = 3720 + Top = 3600 + _ExtentX = 741 + _ExtentY = 741 + End + Begin ComctlLib.ImageList ImgIcons + Left = 4290 + Top = 2070 + _ExtentX = 1005 + _ExtentY = 1005 + BackColor = -2147483643 + ImageWidth = 16 + ImageHeight = 16 + BeginProperty Images {0713E8C2-850A-101B-AFC0-4210102A8DA7} + NumListImages = 11 + BeginProperty ListImage1 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":0EA0 + Key = "" + EndProperty + BeginProperty ListImage2 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":11BA + Key = "" + EndProperty + BeginProperty ListImage3 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":14D4 + Key = "" + EndProperty + BeginProperty ListImage4 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":17EE + Key = "" + EndProperty + BeginProperty ListImage5 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":1B08 + Key = "" + EndProperty + BeginProperty ListImage6 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":1E22 + Key = "" + EndProperty + BeginProperty ListImage7 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":213C + Key = "" + EndProperty + BeginProperty ListImage8 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":2456 + Key = "" + EndProperty + BeginProperty ListImage9 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":2770 + Key = "" + EndProperty + BeginProperty ListImage10 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":2A8A + Key = "" + EndProperty + BeginProperty ListImage11 {0713E8C3-850A-101B-AFC0-4210102A8DA7} + Picture = "chat.frx":2DA4 + Key = "" + EndProperty + EndProperty + End +End +Attribute VB_Name = "frmChat" +Attribute VB_Base = "0{0E3A2BAD-DE40-11CF-8FDF-D0AF03C10000}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Option Explicit +Public CLOSINGAPPLICATION As Boolean ' Application status flag +Public wStream As Object + +'-------------------------------------------------------------- +Private Sub cmdTalk_Click() ' Activates Audio PlayBack +'-------------------------------------------------------------- + Dim rc As Long ' Return Code Variable + Dim iPort As Integer ' Local Port + Dim itm As Integer ' Current listitem +'-------------------------------------------------------------- + If (Not wStream.Playing And wStream.PlayDeviceFree And _ + Not wStream.Recording And wStream.RecDeviceFree) Then ' Validate Audio Device Status + wStream.Playing = True ' Turn Playing Status On + cmdTalk.Caption = "&Playing" ' Modify Button Status Caption + Screen.MousePointer = vbHourglass ' Set Pointer To HourGlass + + iPort = wStream.StreamInQueue + Do While (iPort <> NULLPORTID) ' While socket ports have data to playback + inLight.Picture = ImgIcons.ListImages(speakON).Picture ' Flash playback image + inLight.Refresh ' Repaint picture image + + For itm = 0 To ConnectionList.ListCount - 1 ' Search for listitem currently playing sound data + If (ConnectionList.ItemData(itm) = iPort) Then ' If a match is found... + ConnectionList.TopIndex = itm ' Set that listitem to top of listbox + ConnectionList.Selected(itm) = True ' Select listitem to show who is currently talking... + Exit For ' Quit listitem search + End If + Next ' Check next listitem + + rc = wStream.PlayWave(Me.hWnd, iPort) ' Play wave data in iPort... + Call wStream.RemoveStreamFromQueue(iPort) ' Remove PortID From PlayWave Queue + iPort = wStream.StreamInQueue + + inLight.Picture = ImgIcons.ListImages(speakOFF).Picture ' Show done talking image... + inLight.Refresh ' Repaint image... + Loop ' Search for next socket in playback queue + + ConnectionList.TopIndex = 0 ' Reset top image... + If (ConnectionList.ListCount > 0) Then + ConnectionList.Selected(0) = True ' Deselect previously listitem + ConnectionList.Selected(0) = False ' Deselect currently selected listitem + End If + Screen.MousePointer = vbDefault ' Set Pointer To Normal + cmdTalk.Caption = "&Talk" ' Modify Button Status Caption + wStream.Playing = False ' Turn Playing Status Off + End If +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub cmdTalk_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) +' Activates Audio Recording... +'-------------------------------------------------------------- + Dim rc As Long ' Return Code Variable +'-------------------------------------------------------------- + If (Not wStream.Playing And _ + Not wStream.Recording And _ + wStream.RecDeviceFree And _ + wStream.PlayDeviceFree) Then ' Check Audio Device Status + wStream.Recording = True ' Set Recording Flag + cmdTalk.Caption = "&Talking" ' Update Button Status To "Talking" + Screen.MousePointer = vbHourglass ' Set Hourglass + outLight.Picture = ImgIcons.ListImages(mikeON).Picture ' Show outgoing message image + outLight.Refresh ' Repaint image + + rc = wStream.RecordWave(Me.hWnd, TCPSocket) ' Record voice and send to all connected sockets + + outLight.Picture = ImgIcons.ListImages(mikeOFF).Picture ' Show done image + outLight.Refresh ' Repaint image + Screen.MousePointer = vbDefault ' Reset Mouse Pointer + cmdTalk.Caption = "&Talk" ' Reset Button Status + + If Not wStream.Playing And _ + wStream.PlayDeviceFree And _ + wStream.RecDeviceFree Then ' Is Audio Device Free? + Call cmdTalk_Click ' Active Playback Of Any Inbound Messages... + End If + End If +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +Private Sub cmdTalk_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) + wStream.Recording = False ' Stop Recording +End Sub + +Private Sub connectionlist_Click() + Tools.Buttons(tbHANGUP).Enabled = True +End Sub + +'-------------------------------------------------------------- +Private Sub ConnectionList_DblClick() +'-------------------------------------------------------------- + Dim MemberID As String ' (Server)(TCPidx)(RemoteIP) + Dim Idx As Long ' TCP idx +'-------------------------------------------------------------- + If (ConnectionList.Text = "") Then Exit Sub + MemberID = ConnectionList.List(ConnectionList.ListIndex) ' Get The Conversation MemberID String From List Box + + Call GetIdxFromMemberID(TCPSocket, MemberID, Idx) ' Get TCP idx From Member ID + Call RemoveConnectionFromList(TCPSocket(Idx), ConnectionList) ' Clear ListBox Entry(s)... + Call Disconnect(TCPSocket(Idx)) ' Disconnect Socket Connection + Unload TCPSocket(Idx) ' Destroy socket instance + + cmdTalk.Enabled = (ConnectionList.ListCount > 0) ' Enable/Disable Talk Button... + Tools.Buttons(tbHANGUP).Enabled = (ConnectionList.Text <> "") + If Not cmdTalk.Enabled Then + inLight.Picture = ImgIcons.ListImages(speakNO).Picture + outLight.Picture = ImgIcons.ListImages(mikeNO).Picture + End If +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub Form_Load() +'-------------------------------------------------------------- + Dim rc As Long ' Return Code Variable + Dim Idx As Long ' Current TCP idx variable + Dim TCPidx As Long ' Newly created TCP idx value +'-------------------------------------------------------------- + CLOSINGAPPLICATION = False ' Set status to not closing + Call InitServerList(txtServer) ' Get Common Servers List + txtServer.Text = txtServer.List(0) ' Display First Name In The List + imgStatus = ImgIcons.ListImages(phoneHungUp).Picture ' Change Icon To Phone HungUp + + Set wStream = CreateObject("WaveStreaming.WaveStream") + Call wStream.InitACMCodec(WAVE_FORMAT_GSM610, TIMESLICE) +' Call wStream.InitACMCodec(WAVE_FORMAT_ADPCM, TIMESLICE) +' Call wStream.InitACMCodec(WAVE_FORMAT_MSN_AUDIO, TIMESLICE) +' Call wStream.InitACMCodec(WAVE_FORMAT_PCM, TIMESLICE) + + cmdTalk.Enabled = False ' Disable Until Connect + Tools.Buttons(tbHANGUP).Enabled = (ConnectionList.Text <> "") + inLight.Picture = ImgIcons.ListImages(speakNO).Picture + outLight.Picture = ImgIcons.ListImages(mikeNO).Picture + + Call Listen(TCPSocket(0)) ' Listen For TCP Connection +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub Form_Unload(Cancel As Integer) +'-------------------------------------------------------------- + Dim Idx As Long ' TCP socket index + Dim Socket As Winsock ' TCP socket control +'-------------------------------------------------------------- + CLOSINGAPPLICATION = True ' Set status flag to closing... + For Each Socket In TCPSocket ' For each socket instance + Call Disconnect(Socket) ' Close connection/listen + Next ' Next Cntl + Set wStream = Nothing + End ' End Program +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + + + +'-------------------------------------------------------------- +Private Sub TCPSocket_Close(Index As Integer) +' Closing Current TCP Connection... +'-------------------------------------------------------------- + Call RemoveConnectionFromList(TCPSocket(Index), ConnectionList) ' Remove Connection From List + Call Disconnect(TCPSocket(Index)) ' Close Port Connection... + + cmdTalk.Enabled = (ConnectionList.ListCount > 0) ' Enable/Disable Talk Button... + If Not cmdTalk.Enabled Then + inLight.Picture = ImgIcons.ListImages(speakNO).Picture + outLight.Picture = ImgIcons.ListImages(mikeNO).Picture + End If + + Tools.Buttons(tbHANGUP).Enabled = (ConnectionList.Text <> "") + If cmdTalk.Enabled Then + imgStatus = ImgIcons.ListImages(phoneHungUp).Picture ' Show Phone HungUp Icon... + End If + + Unload TCPSocket(Index) ' Destroy socket instance +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub TCPSocket_Connect(Index As Integer) +' TCP Connection Has Been Accepted And Is Open... +'-------------------------------------------------------------- + Call AddConnectionToList(TCPSocket(Index), ConnectionList) ' Add New Connection To List + + imgStatus = ImgIcons.ListImages(phoneRingIng).Picture ' Show Phone Ringing Icon + Call ResPlaySound(RingOutId) + imgStatus = ImgIcons.ListImages(phoneAnswered).Picture ' Show Phone Answered Icon + cmdTalk.Enabled = True ' Enabled For Connection... + Tools.Buttons(tbHANGUP).Enabled = (ConnectionList.Text <> "") +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub TCPSocket_ConnectionRequest(Index As Integer, ByVal requestID As Long) +' Accepting Inbound TCP Connection Request... +'-------------------------------------------------------------- + Dim rc As Long + Dim Idx As Long + Dim RemHost As String +'-------------------------------------------------------------- + If (TCPSocket(Index).RemoteHost <> "") Then + RemHost = UCase(TCPSocket(Index).RemoteHost) + Else + RemHost = UCase(TCPSocket(Index).RemoteHostIP) + End If + + If (Tools.Buttons(tbAUTOANSWER).Value = tbrUnpressed) Then + rc = MsgBox("Incomming call from [" & RemHost & "]..." & vbCrLf & _ + "Do you wish to answer?", vbYesNo) ' Prompt user to answer... + Else + rc = vbYes + End If + + If (rc = vbYes) Then + Idx = InstanceTCP(TCPSocket) ' Instance TCP Control... + If (Idx > 0) Then ' Validate that control instance was created... + TCPSocket(Idx).LocalPort = 0 ' Set local port to 0, in order to get next available port. + Call TCPSocket(Idx).Accept(requestID) ' Accept connection + Call AddConnectionToList(TCPSocket(Idx), ConnectionList) ' Add New Connection To List + + imgStatus = ImgIcons.ListImages(phoneRingIng).Picture ' Show Phone Ringing Icon + Call ResPlaySound(RingInId) + imgStatus = ImgIcons.ListImages(phoneAnswered).Picture ' Show Phone Answered Icon + cmdTalk.Enabled = True ' Enabled For Connection... + Tools.Buttons(tbHANGUP).Enabled = (ConnectionList.Text <> "") + End If + End If +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub TCPSocket_DataArrival(Index As Integer, ByVal BytesTotal As Long) +' Incomming Buffer On... +'-------------------------------------------------------------- + Dim rc As Long ' Return Code Variable + Dim WaveData() As Byte ' Byte array of wave data + Static ExBytes(MAXTCP) As Long ' Extra bytes in frame buffer + Static ExData(MAXTCP) As Variant ' Extra bytes from frame buffer +'-------------------------------------------------------------- +With wStream + If (TCPSocket(Index).BytesReceived > 0) Then ' Validate that bytes where actually received + Do While (TCPSocket(Index).BytesReceived > 0) ' While data available... + If (ExBytes(Index) = 0) Then ' Was there leftover data from last time + If (.waveChunkSize <= TCPSocket(Index).BytesReceived) Then ' Can we get and entire wave buffer of data + Call TCPSocket(Index).GetData(WaveData, vbByte + vbArray, .waveChunkSize) ' Get 1 wave buffer of data + Call .SaveStreamBuffer(Index, WaveData) ' Save wave data to buffer + Call .AddStreamToQueue(Index) ' Queue current stream for playback + Else + ExBytes(Index) = TCPSocket(Index).BytesReceived ' Save Extra bytes + Call TCPSocket(Index).GetData(ExData(Index), vbByte + vbArray, ExBytes(Index)) ' Get Extra data + End If + Else + Call TCPSocket(Index).GetData(WaveData, vbByte + vbArray, .waveChunkSize - ExBytes(Index)) ' Get leftover bits + ExData(Index) = MidB(ExData(Index), 1) & MidB(WaveData, 1) ' Sync wave bits... + Call .SaveStreamBuffer(Index, ExData(Index)) ' Save the current wave data to the wave buffer + Call .AddStreamToQueue(Index) ' Queue the current wave stream + ExBytes(Index) = 0 ' Clear Extra byte count + ExData(Index) = "" ' Clear Extra data buffer + End If + Loop ' Look for next Data Chunk + + If (Not .Playing And .PlayDeviceFree And _ + Not .Recording And .RecDeviceFree) Then ' Check Audio Device Status + Call cmdTalk_Click ' Start PlayBack... + End If + End If +End With +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +Private Sub TCPSocket_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) +TCPSocket(Index).Close ' Close down socket + + Debug.Print "TCPSocket_Error: Number:", Number + Debug.Print "TCPSocket_Error: Scode:", Hex(Scode) + Debug.Print "TCPSocket_Error: Source:", Source + Debug.Print "TCPSocket_Error: HelpFile:", HelpFile + Debug.Print "TCPSocket_Error: HelpContext:", HelpContext + Debug.Print "TCPSocket_Error: Description:", Description + Call DebugSocket(TCPSocket(Index)) +End Sub + +'-------------------------------------------------------------- +Private Sub Tools_ButtonClick(ByVal Button As Button) +'-------------------------------------------------------------- + Dim rc As Long ' Return Code Variable + Dim Idx As Long ' TCP Socket control index + Dim LocalPort As Long ' LocalPort Setting + Dim RemotePort As Long ' RemotePort Setting +'-------------------------------------------------------------- + Select Case Button.Index + Case tbCALL + Idx = InstanceTCP(TCPSocket) ' Instance TCP Control... + + If (Idx > 0) Then ' Did control instance get created??? + Button.Enabled = False ' Disable Connect Button + ConnectionList.Enabled = False ' Disable connection list box + + On Error Resume Next + If Not Connect(TCPSocket(Idx), txtServer.Text, VOICEPORT) Then ' Attempt to connect + Unload TCPSocket(Idx) ' Connect failed unload control instance + End If + + ConnectionList.Enabled = True ' Renable connection list box + Button.Enabled = True ' Enable Connect Button + End If + Case tbHANGUP + ConnectionList_DblClick + Case tbAUTOANSWER + If (Button.Value = tbrPressed) Then + Button.Image = phoneHungUp + Else + Button.Image = phoneAnswered + End If + End Select +End Sub + +'-------------------------------------------------------------- +Private Sub txtServer_KeyPress(KeyAscii As Integer) +'-------------------------------------------------------------- + Dim Conn As Long ' Index counter +'-------------------------------------------------------------- + If (KeyAscii = vbKeyReturn) Then ' If Return Key Was Pressed... + For Conn = 0 To txtServer.ListCount ' Search Each Entry In ListBox + If (UCase(txtServer.Text) = UCase(txtServer.List(Conn))) Then Exit Sub + Next ' If Found Then Exit + txtServer.AddItem UCase(txtServer.Text) ' Add Server To List + End If +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT.FRX b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT.FRX new file mode 100644 index 0000000..40de29a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT.FRX differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT_DEF.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT_DEF.BAS new file mode 100644 index 0000000..07de55d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT_DEF.BAS @@ -0,0 +1,47 @@ +Attribute VB_Name = "CHAT_Defs" +Option Explicit + +' Application User Defined Types... +' Sound Format +Public Const WAVE_FORMAT_PCM = &H1 ' Microsoft Windows PCM Wave Format +Public Const WAVE_FORMAT_ADPCM = &H11 ' ADPCM Wave Format +Public Const WAVE_FORMAT_IMA_ADPCM = &H11 ' IMA ADPCM Wave Format +Public Const WAVE_FORMAT_DVI_ADPCM = &H11 ' DVI ADPCM Wave Format +Public Const WAVE_FORMAT_DSPGROUP_TRUESPEECH = &H22 ' DSP Group Wave Format +Public Const WAVE_FORMAT_GSM610 = &H31 ' GSM610 Wave Format +Public Const WAVE_FORMAT_MSN_AUDIO = &H32 ' MSN Audio Wave Format + +Public Const TIMESLICE = 0.2 ' Time Slicing 1/5 Second + +' Application Constants... +Public Const NoOfRings = 1 ' Number Of Times In/Out Bound Calls Ring... + +Public Const phoneHungUp = 3 ' Hangup Status Icon... +Public Const phoneRingIng = 2 ' Ringing Status Icon... +Public Const phoneAnswered = 1 ' Answered Status Icon... +Public Const mikeNO = 6 +Public Const mikeOFF = 7 +Public Const mikeON = 8 +Public Const speakNO = 9 +Public Const speakOFF = 10 +Public Const speakON = 11 + +Public Const RingInId = 101 ' Ringing InBound Sound... +Public Const RingOutId = 102 ' Ringing OutBound Sound... + +' Toolbar constants... +Public Const tbCALL = 2 +Public Const tbHANGUP = 3 +Public Const tbAUTOANSWER = 5 + +'== flag values for wFlags parameter ================================== +Public Const SND_SYNC = &H0 ' play synchronously (default) +Public Const SND_ASYNC = &H1 ' play asynchronously +Public Const SND_NODEFAULT = &H2 ' don't use default sound +Public Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file +Public Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound +Public Const SND_NOSTOP = &H10 ' don't stop any currently playing sound + +'== MCI Wave API Declarations ================================================ +Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal SoundData As Any, ByVal uFlags As Long) As Long + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT_FUN.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT_FUN.BAS new file mode 100644 index 0000000..4bece6a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/CHAT_FUN.BAS @@ -0,0 +1,116 @@ +Attribute VB_Name = "CHAT_Functions" +Option Explicit +Public Sub InitServerList(ServerList As ComboBox) + ' Populate Server List Box... + ServerList.AddItem "VBLABWK3" + ServerList.AddItem "VBLABWK9" +End Sub + +'-------------------------------------------------------------- +Public Sub DebugSocket(TCPSocket As Winsock) +' Prints Information In A TCP Socket, For Debugging TCP Events... +'-------------------------------------------------------------- + Debug.Print "TCPSocket.RemoteHost", TCPSocket.RemoteHost + Debug.Print "TCPSocket.RemoteHostIP", TCPSocket.RemoteHostIP + Debug.Print "TCPSocket.RemotePort", TCPSocket.RemotePort + Debug.Print "TCPSocket.LocalHostName", TCPSocket.LocalHostName + Debug.Print "TCPSocket.LocalIP", TCPSocket.LocalIP + Debug.Print "TCPSocket.LocalPort", TCPSocket.LocalPort + Debug.Print "TCPSocket.State", TCPSocket.State + Debug.Print "=====================================================" +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'------------------------------------------------------------------ +Public Sub ResPlaySound(ResourceId As Long) +' Uses Sound Play Sound To Play Back PreRecorded WaveFiles +'------------------------------------------------------------------ + Dim sndBuff As String +'------------------------------------------------------------------ + sndBuff = StrConv(LoadResData(ResourceId, "WAVE"), vbUnicode) + Call sndPlaySound(sndBuff, SND_SYNC Or SND_MEMORY) +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ + +'-------------------------------------------------------------- +Public Sub AddConnectionToList(Socket As Winsock, ConnList As ListBox) +' Adds A Connection Reference To A ListBox - [(Server)(LocalPort)(RemotePort)] +'-------------------------------------------------------------- + Dim MemberID As String ' Connection Reference Variable +'-------------------------------------------------------------- + ' Create MemberID From HostName and RemoteIP + MemberID = Socket.RemoteHostIP & " [" & _ + Format(Socket.RemotePort, "0") & "] - [" & _ + Format(Socket.LocalPort, "0") & "]" + + ConnList.AddItem MemberID ' Add New Member To List + ConnList.ItemData(ConnList.NewIndex) = Socket.Index +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Sub RemoveConnectionFromList(Socket As Winsock, ConnList As ListBox) +' Removes A Connection Reference From A ListBox +'-------------------------------------------------------------- + Dim Conn As Long ' Connection Array Element Variable + Dim MemberID As String ' Connection Reference Variable +'-------------------------------------------------------------- + ' Create MemberID From HostName and RemoteIP + MemberID = Socket.RemoteHostIP & " [" & _ + Format(Socket.RemotePort, "0") & "] - [" & _ + Format(Socket.LocalPort, "0") & "]" + + For Conn = 0 To ConnList.ListCount - 1 ' Search Each Member In List + If (ConnList.List(Conn) = MemberID) Then ' Look For MemberID In List + ConnList.RemoveItem Conn ' Remove MemberID From List + End If + Next ' Next Connection +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Sub GetIdxFromMemberID(Sockets As Variant, MemberID As String, Index As Long) +'-------------------------------------------------------------- + Dim Idx As Long ' Socket cntl index + Dim LocPortID As Long ' Local Port ID + Dim RemPortID As Long ' Remote Port ID + Dim RemoteIP As String ' Remote Host IP address + Dim sStart As Long ' Substring begin position + Dim sEnd As Long ' Substring end postition + Dim Socket As Winsock ' Winsock socket +'-------------------------------------------------------------- + sStart = 1 + sEnd = InStr(1, MemberID, " ") - 1 ' Get end of remote ip address + If (sEnd > 1) Then + RemoteIP = Mid(MemberID, sStart, sEnd) ' Get remote host ip address + sStart = InStr(sEnd, MemberID, "[") + 1 ' Get start of remote port + If (sStart > 1) Then ' If Start found + sEnd = InStr(sStart, MemberID, "]") - 1 ' Get end of remote port + If (sEnd > 2) Then ' If end found + RemPortID = Val(Mid(MemberID, sStart, sEnd)) ' Get RemotePort + sStart = InStr(sEnd, MemberID, "[") + 1 ' Get start of local port + If (sStart > 1) Then + sEnd = InStr(sStart, MemberID, "]") - 1 ' Get end of local port + If (sEnd > 2) Then ' If End Found + LocPortID = Val(Mid(MemberID, sStart, sEnd)) ' Extract local port + For Each Socket In Sockets + If ((Socket.RemoteHostIP = RemoteIP) And _ + (Socket.RemotePort = RemPortID) And _ + (Socket.LocalPort = LocPortID) And _ + (Socket.Index > 0)) Then ' Was a match found??? + Index = Socket.Index ' Save and return index + Exit Sub ' Done... exit + End If + Next + End If + End If + End If + End If + End If +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/TCP_DEFS.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/TCP_DEFS.BAS new file mode 100644 index 0000000..76ac40e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/TCP_DEFS.BAS @@ -0,0 +1,9 @@ +Attribute VB_Name = "TCP_Defs" +Option Explicit + +'== TCP Port Array Processing Const.s =================================== +Public Const MINTCP = 1 ' Minimum index for tcpsocket control instance +Public Const MAXTCP = 32 ' Maximum index for tcpsocket control instance +Public Const VOICEPORT = 701 ' Voice chat Port To Listen On... +Public Const NULLPORTID = 0 ' Null Port ID - A Port ID That Will Never Be Used... + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/TCP_FUNC.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/TCP_FUNC.BAS new file mode 100644 index 0000000..3825aa2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/TCP_FUNC.BAS @@ -0,0 +1,91 @@ +Attribute VB_Name = "TCP_Functions" +Option Explicit +'------------------------------------------------------------ +Public Function InstanceTCP(TCPArray As Variant) As Long +'------------------------------------------------------------ + Dim Ind As Long ' Array Index Var... +'------------------------------------------------------------ + InstanceTCP = -1 ' Set Default Value + On Error GoTo InitControl ' IF Error Then Control Is Available + + For Ind = MINTCP To MAXTCP ' For Each Member In TCPArray() + 1 + If (TCPArray(Ind).Name = "") Then ' If Control Is Not Valid Then.. + End If ' ..A Runtime Error Will Occure + Next ' Search Next Item In Array +'------------------------------------------------------------ +InitControl: ' Initialize New Control +'------------------------------------------------------------ + On Error GoTo ErrorHandler ' Enable Error Handling... + + If ((Ind >= MINTCP) And (Ind <= MAXTCP)) Then ' Check to make sure index value is with in range + Load TCPArray(Ind) ' Create New Member In TCPArray + InstanceTCP = Ind ' Return New TCPctl Index + End If + + Exit Function ' Exit +'------------------------------------------------------------ +ErrorHandler: ' Handler +'------------------------------------------------------------ + Debug.Print Err.Number, Err.Description ' Debug Errors + Resume Next ' Ignore Error And Continue +'------------------------------------------------------------ +End Function +'------------------------------------------------------------ + +'------------------------------------------------------------------ +Public Function Connect(Socket As Winsock, RemHost As String, RemPort As Long) As Boolean +' Attempts To Open A Socket Connection +'------------------------------------------------------------------ + Connect = False ' Set default return code + Call CloseListen(Socket) ' Stop Listening On LocalPort + Socket.LocalPort = 0 ' Not necessary, but done just in case + Call Socket.Connect(RemHost, RemPort) ' Connect To Server + + Do While ((Socket.State = sckConnecting) Or _ + (Socket.State = sckConnectionPending) Or _ + (Socket.State = sckResolvingHost) Or _ + (Socket.State = sckHostResolved) Or _ + (Socket.State = sckOpen)) ' Attempting To Connect... + DoEvents ' Post Events + Loop ' Keep Waiting + + Connect = (Socket.State = sckConnected) ' Did Socket Connect On Port... +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Public Function Listen(Socket As Winsock) As Long +' Starts Listening For A Remote Connection Request On The LocalPort ID +'------------------------------------------------------------------ + If (Socket.State <> sckListening) Then ' Is Socket Already Listening + If (Socket.LocalPort = 0) Then ' If local port is not initialized then... + Socket.LocalPort = VOICEPORT ' Set standard application port + End If + Call Socket.Listen ' Listen On Local Port... + End If +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Public Function CloseListen(Socket As Winsock) As Long +' Stops Listening On A LocalPort For A Remote Connection Request... +'------------------------------------------------------------------ + If (Socket.State = sckListening) Then ' Is Socket Listening? + Socket.Close ' Close Listen + End If +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Public Sub Disconnect(Socket As Winsock) +' Disconnects A Remote WinSock TCP/IP Connection If Connected +'------------------------------------------------------------------ + If (Socket.State <> sckClosed) Then ' Is Socket Already Closed? + Socket.Close ' Close Socket + End If +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/VOICE.RES b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/VOICE.RES new file mode 100644 index 0000000..7e4b47c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/VOICE.RES differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/VOICECHT.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/VOICECHT.VBP new file mode 100644 index 0000000..7bda47d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/VCHATAPP/VOICECHT.VBP @@ -0,0 +1,40 @@ +Type=Exe +Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.0#0; COMCTL32.OCX +Object={248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0; MSWINSCK.OCX +Reference=*\G{0E3A2B9B-DE40-11CF-8FDF-D0AF03C10000}#1.0#9#..\..\..\..\school\WaveStream.dll#MS Internet Audio Streaming Support +Form=chat.frm +Module=CHAT_Defs; CHAT_DEF.BAS +Module=TCP_Defs; TCP_DEFS.BAS +Module=TCP_Functions; TCP_FUNC.BAS +Module=CHAT_Functions; CHAT_FUN.BAS +ResFile32="voice.res" +IconForm="frmChat" +Startup="frmChat" +HelpFile="" +Title="Voice Chat" +ExeName32="VoiceChat.exe" +Name="InterNetVoice" +HelpContextID="0" +Description="Internet Voice Chat - Sample Application" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionComments="Winsock Voice Chat" +VersionCompanyName="Microsoft Corporation" +VersionProductName="Voice Chat" +CompilationType=-1 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +StartMode=0 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/ACM_DEFS.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/ACM_DEFS.BAS new file mode 100644 index 0000000..df2f6da --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/ACM_DEFS.BAS @@ -0,0 +1,60 @@ +Attribute VB_Name = "ACM_Defs" +Option Explicit +'== ACM API Constants ================================================ +Public Const ACMERR_BASE = 512 +Public Const ACMERR_NOTPOSSIBLE = (ACMERR_BASE + 0) +Public Const ACMERR_BUSY = (ACMERR_BASE + 1) +Public Const ACMERR_UNPREPARED = (ACMERR_BASE + 2) +Public Const ACMERR_CANCELED = (ACMERR_BASE + 3) + +' AcmStreamSize Flags... +Public Const ACM_STREAMSIZEF_SOURCE = &H0& +Public Const ACM_STREAMSIZEF_DESTINATION = &H1& +Public Const ACM_STREAMSIZEF_QUERYMASK = &HF& + +' acmStreamConvert Flags... +Public Const ACM_STREAMCONVERTF_BLOCKALIGN = &H4& +Public Const ACM_STREAMCONVERTF_START = &H10& +Public Const ACM_STREAMCONVERTF_END = &H20& + +' Done Bits For ACMSTREAMHEADER.fdwStatus +Public Const ACMSTREAMHEADER_STATUSF_DONE = &H10000 +Public Const ACMSTREAMHEADER_STATUSF_PREPARED = &H20000 +Public Const ACMSTREAMHEADER_STATUSF_INQUEUE = &H100000 + +' Done Bits For acmStreamOpen Formats +Public Const ACM_STREAMOPENF_QUERY = &H1& +Public Const ACM_STREAMOPENF_ASYNC = &H2& +Public Const ACM_STREAMOPENF_NONREALTIME = &H4& + +'== ACM API Declarations ================================================ +Public Declare Function acmStreamOpen Lib "MSACM32" (hAS As Long, ByVal hADrv As Long, wfxSrc As WAVEFORMATEX, wfxDst As WAVEFORMATEX, ByVal wFltr As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long +Public Declare Function acmStreamClose Lib "MSACM32" (ByVal hAS As Long, ByVal dwClose As Long) As Long +Public Declare Function acmStreamPrepareHeader Lib "MSACM32" (ByVal hAS As Long, hASHdr As ACMSTREAMHEADER, ByVal dwPrepare As Long) As Long +Public Declare Function acmStreamUnprepareHeader Lib "MSACM32" (ByVal hAS As Long, hASHdr As ACMSTREAMHEADER, ByVal dwUnPrepare As Long) As Long +Public Declare Function acmStreamConvert Lib "MSACM32" (ByVal hAS As Long, hASHdr As ACMSTREAMHEADER, ByVal dwConvert As Long) As Long +Public Declare Function acmStreamReset Lib "MSACM32" (ByVal hAS As Long, ByVal dwReset As Long) As Long +Public Declare Function acmStreamSize Lib "MSACM32" (ByVal hAS As Long, ByVal cbInput As Long, dwOutBytes As Long, ByVal dwSize As Long) As Long + +'== ACM User Defined Datatypes ================================================ +Type WAVEFILTER + cbStruct As Long + dwFilterTag As Long + fdwFilter As Long + dwReserved(5) As Long +End Type + +Type ACMSTREAMHEADER ' [ACM STREAM HEADER TYPE] + cbStruct As Long ' Size of header in bytes + dwStatus As Long ' Conversion status buffer + dwUser As Long ' 32 bits of user data specified by application + pbSrc As Long ' Source data buffer pointer + cbSrcLength As Long ' Source data buffer size in bytes + cbSrcLengthUsed As Long ' Source data buffer size used in bytes + dwSrcUser As Long ' 32 bits of user data specified by application + cbDst As Long ' Dest data buffer pointer + cbDstLength As Long ' Dest data buffer size in bytes + cbDstLengthUsed As Long ' Dest data buffer size used in bytes + dwDstUser As Long ' 32 bits of user data specified by application + dwReservedDriver(9) As Long ' Reserved and should not be used +End Type diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/MCI_DEFS.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/MCI_DEFS.BAS new file mode 100644 index 0000000..c36b662 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/MCI_DEFS.BAS @@ -0,0 +1,142 @@ +Attribute VB_Name = "MCI_Defs" +' Public Constants +Public Const MAXEXTRABYTES = 3 ' Maximum (Extra Bytes + 1) In Non PCM Wave Formats... +Public Const MAXBUFFERS = 500 ' Maximum Wave Buffer Array Member +Public Const MINBUFFERS = 0 ' Minimum Wave Buffer Array Member + +'== MCI Wave Constants ================================================ +' Sound Quality +Public Const c8_0kHz = 8000 ' 8.0 khz +Public Const c11_025kHz = 11025 ' 11.025 khz +Public Const c22_05kHz = 22050 ' 22.05 khz +Public Const c44_1kHz = 44010 ' 44.1 khz + +' Sound Format +Public Const WAVE_FORMAT_PCM = &H1 ' Microsoft Windows PCM Wave Format +Public Const WAVE_FORMAT_ADPCM = &H11 ' ADPCM Wave Format +Public Const WAVE_FORMAT_IMA_ADPCM = &H11 ' IMA ADPCM Wave Format +Public Const WAVE_FORMAT_DVI_ADPCM = &H11 ' DVI ADPCM Wave Format +Public Const WAVE_FORMAT_DSPGROUP_TRUESPEECH = &H22 ' DSP Group Wave Format +Public Const WAVE_FORMAT_GSM610 = &H31 ' GSM610 Wave Format +Public Const WAVE_FORMAT_MSN_AUDIO = &H32 ' MSN Audio Wave Format + +' PCM Wave Format Types +Public Const WAVE_FORMAT_1M08 = &H1 ' 11.025 kHz, Mono, 8-bit +Public Const WAVE_FORMAT_1M16 = &H4 ' 11.025 kHz, Mono, 16-bit +Public Const WAVE_FORMAT_1S08 = &H2 ' 11.025 kHz, Stereo, 8-bit +Public Const WAVE_FORMAT_1S16 = &H8 ' 11.025 kHz, Stereo, 16-bit +Public Const WAVE_FORMAT_2M08 = &H10 ' 22.05 kHz, Mono, 8-bit +Public Const WAVE_FORMAT_2M16 = &H40 ' 22.05 kHz, Mono, 16-bit +Public Const WAVE_FORMAT_2S08 = &H20 ' 22.05 kHz, Stereo, 8-bit +Public Const WAVE_FORMAT_2S16 = &H80 ' 22.05 kHz, Stereo, 16-bit +Public Const WAVE_FORMAT_4M08 = &H100 ' 44.1 kHz, Mono, 8-bit +Public Const WAVE_FORMAT_4M16 = &H400 ' 44.1 kHz, Mono, 16-bit +Public Const WAVE_FORMAT_4S08 = &H200 ' 44.1 kHz, Stereo, 8-bit +Public Const WAVE_FORMAT_4S16 = &H800 ' 44.1 kHz, Stereo, 16-bit + +'== Wave...Open() Constants =========================================== +Public Const WAVE_FORMAT_QUERY = &H1& ' Query wave format flag +Public Const WAVE_MAPPER = (-1) ' Maps To First Available Sound Device +Public Const WAVE_ALLOWSYNC = &H2& ' Asynchronous playback flag +Public Const CALLBACK_WINDOW = &H10000 ' dwCallback is a HWND +Public Const CALLBACK_NULL = &H0& ' no callback + +'== MCI WaveHeader Bit Values In dwflags ============================== +Public Const WHDR_DONE = &H1& '[00001][01] done bit +Public Const WHDR_PREPARED = &H2& '[00010][02] set if this header has been prepared +Public Const WHDR_BEGINLOOP = &H4& '[00100][04] loop start block +Public Const WHDR_ENDLOOP = &H8& '[01000][08] loop end block +Public Const WHDR_INQUEUE = &H10& '[10000][16] reserved for driver + +'== MCI MM Return Codes =============================================== +Public Const ERROR_SHARING_VIOLATION = 32 +Public Const MMSYSERR_NOERROR = 0 ' no error +Public Const MMSYSERR_BASE = 0 +Public Const MMSYSERR_ERROR = (MMSYSERR_BASE + 1) ' unspecified error +Public Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2) ' device ID out of range +Public Const MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3) ' driver failed enable +Public Const MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4) ' device already allocated +Public Const MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5) ' device handle is invalid +Public Const MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6) ' no device driver present +Public Const MMSYSERR_NOMEM = (MMSYSERR_BASE + 7) ' memory allocation error +Public Const MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE + 8) ' function isn't supported +Public Const MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9) ' error value out of range +Public Const MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10) ' invalid flag passed +Public Const MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11) ' invalid parameter passed +Public Const MMSYSERR_LASTERROR = (MMSYSERR_BASE + 11) ' last error in range + +Public Const WAVERR_BASE = 32 +Public Const WAVERR_BADFORMAT = (WAVERR_BASE + 0) ' unsupported wave format +Public Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1) ' still something playing +Public Const WAVERR_UNPREPARED = (WAVERR_BASE + 2) ' header not prepared +Public Const WAVERR_LASTERROR = (WAVERR_BASE + 3) ' last error in range +Public Const WAVERR_SYNC = (WAVERR_BASE + 3) ' device is synchronous + +'== flag values for wFlags parameter ================================== +Public Const SND_SYNC = &H0 ' play synchronously (default) +Public Const SND_ASYNC = &H1 ' play asynchronously +Public Const SND_NODEFAULT = &H2 ' don't use default sound +Public Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file +Public Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound +Public Const SND_NOSTOP = &H10 ' don't stop any currently playing sound + +'== MCI Wave API Declarations ================================================ +Declare Function timeGetTime Lib "winmm.dll" () As Long +Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal SoundData As Any, ByVal uFlags As Long) As Long + +Declare Function waveInOpen Lib "winmm.dll" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMATEX, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long +Declare Function waveInPrepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, wH As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveInUnprepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, wH As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveInAddBuffer Lib "winmm.dll" (ByVal hWaveIn As Long, wH As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveInStart Lib "winmm.dll" (ByVal hWaveIn As Long) As Long +Declare Function waveInStop Lib "winmm.dll" (ByVal hWaveIn As Long) As Long +Declare Function waveInReset Lib "winmm.dll" (ByVal hWaveIn As Long) As Long +Declare Function waveInClose Lib "winmm.dll" (ByVal hWaveIn As Long) As Long + +Declare Function waveOutOpen Lib "winmm.dll" (lphWaveOut As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMATEX, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long +Declare Function waveOutPrepareHeader Lib "winmm.dll" (ByVal hWaveOut As Long, wH As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveOutUnprepareHeader Lib "winmm.dll" (ByVal hWaveOut As Long, wH As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveOutWrite Lib "winmm.dll" (ByVal hWaveOut As Long, wH As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveOutClose Lib "winmm.dll" (ByVal hWaveOut As Long) As Long +Declare Function waveOutReset Lib "winmm.dll" (ByVal hWaveOut As Long) As Long +Declare Function waveOutPause Lib "winmm.dll" (ByVal hWaveOut As Long) As Long +Declare Function waveOutRestart Lib "winmm.dll" (ByVal hWaveOut As Long) As Long + +'== Global Memory Functions ================================================== +Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long +Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long +Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long +Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long + +Declare Sub CopyPTRtoBYTES Lib "Kernel32.dll" Alias "RtlMoveMemory" (ByRef ByteDest As Byte, ByVal PtrSrc As Long, ByVal length As Long) +Declare Sub CopyBYTEStoPTR Lib "Kernel32.dll" Alias "RtlMoveMemory" (ByVal PtrDest As Long, ByRef ByteSrc As Byte, ByVal length As Long) + +Public Const GMEM_MOVEABLE = &H2& +Public Const GMEM_SHARE = &H2000& +Public Const GMEM_ZEROINIT = &H40& + +'== MCI User Defined Data Types...======================================= +Type WAVEHDR + lpData As Long ' pointer to locked data buffer + dwBufferLength As Long ' length of data buffer + dwBytesRecorded As Long ' used for input only + dwUser As Long ' for client's use + dwFlags As Long ' assorted flags (see defines) + dwLoops As Long ' loop control counter + wavehdr_tag As Long ' reserved for driver + Reserved As Long ' reserved for driver + hData As Long ' handle to locked data buffer +End Type + +Type WAVEFORMATEX + wFormatTag As Integer ' format type + nChannels As Integer ' number of channels (i.e. mono, stereo, etc.) + nSamplesPerSec As Long ' sample rate + nAvgBytesPerSec As Long ' for buffer estimation + nBlockAlign As Integer ' block size of data + wBitsPerSample As Integer ' Bits Per Sample + cbSize As Integer ' Size Of (FACT CHUNCK) + xBytes(MAXEXTRABYTES) As Byte ' (FACT CHUNCK) +End Type + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/MCI_FUNC.BAS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/MCI_FUNC.BAS new file mode 100644 index 0000000..a58d8fe --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/MCI_FUNC.BAS @@ -0,0 +1,10 @@ +Attribute VB_Name = "MCI_Functions" +Option Explicit + +'== SUB MAIN =========================================================== +Sub main() +End Sub +'== SUB MAIN =========================================================== + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/WAVEDLL.VBP b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/WAVEDLL.VBP new file mode 100644 index 0000000..6422277 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/WAVEDLL.VBP @@ -0,0 +1,34 @@ +Type=OleDll +Module=MCI_Defs; Mci_defs.bas +Class=WaveStream; WaveStrm.cls +Module=MCI_Functions; Mci_func.bas +Module=ACM_Defs; Acm_defs.bas +Reference=*\G{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0#..\..\..\..\SCHOOL\MSWINSCK.OCX#Microsoft Winsock Control +Startup="Sub Main" +HelpFile="" +Title="Internet Wave Streaming Support" +ExeName32="WaveStream.dll" +Path32="..\..\..\..\school" +Name="WaveStreaming" +HelpContextID="0" +Description="MS Internet Audio Streaming Support" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="MICROSOFT" +CompilationType=-1 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/WAVESTRM.CLS b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/WAVESTRM.CLS new file mode 100644 index 0000000..9acaa72 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/VOICE/WAVESTRM/WAVESTRM.CLS @@ -0,0 +1,806 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "WaveStream" +Attribute VB_Creatable = True +Attribute VB_Exposed = True +Option Explicit +'-------------------------------------------------------------- +' Public Variable Declarations +'-------------------------------------------------------------- +Public Recording As Boolean ' Public Recording Status Indicator... +Public RecDeviceFree As Boolean ' Public Recording Device Status Indicator... +Public Playing As Boolean ' Public Recording Status Indicator... +Public PlayDeviceFree As Boolean ' Public Recording Device Status Indicator... + +Public waveChunkSize As Long ' size of wave data buffer +Public waveCodec As Long ' acm codec compression format +Public TIMESLICE As Single ' recording interval... + +'-------------------------------------------------------------- +Private Const MINSTREAM = 1 +Private Const MAXSTREAM = 32 +Private CurRecPos(MINSTREAM To MAXSTREAM) As Long ' Current Recording Buffer Position +Private CurPlayPos(MINSTREAM To MAXSTREAM) As Long ' Current Playing Buffer Position + +Private Type WaveData ' [Wave Stream Segment] + Data() As Byte ' Wave data byte array +End Type + +Private Type WaveArray ' [Wave Stream] + Waves(MAXBUFFERS) As WaveData ' Array of WaveBuffers +End Type + +Private Type uArrayWaves ' [Array of Wave Streams] + Stream(MINSTREAM To MAXSTREAM) As WaveArray ' Wave Buffer Array... + QueuePos(MAXSTREAM - MINSTREAM + 1) As Long ' Wave Buffer Queue Position +End Type + +Private PlayWaveBuffer As uArrayWaves ' Array Of WaveBuffer Data Type +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Sub InitACMCodec(fmtType As Long, Time_Slice As Single) +'-------------------------------------------------------------- + Dim waveFmt As WAVEFORMATEX ' Wave format type +'-------------------------------------------------------------- + waveCodec = fmtType ' Save compression format to public variable + TIMESLICE = Time_Slice ' Save recording interval to public variable + Call InitWaveFormat(waveFmt, waveCodec, TIMESLICE) ' Get wave format info + waveChunkSize = waveFmt.nAvgBytesPerSec * TIMESLICE ' Save wave buffer size to public variable +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Function StreamInQueue() As Long +' Return current stream index in queue for playback +'-------------------------------------------------------------- + StreamInQueue = PlayWaveBuffer.QueuePos(MINSTREAM) +'-------------------------------------------------------------- +End Function +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Sub RemoveStreamFromQueue(StreamIdx As Integer) +' Removes A Stream From The Wave PlayBack Queue When PlayBack Is Done +'-------------------------------------------------------------- + Dim Idx As Integer ' Queue Array Element Variable +'-------------------------------------------------------------- + For Idx = MINSTREAM To MAXSTREAM ' For Each Stream In The Queue + If (PlayWaveBuffer.QueuePos(Idx) = StreamIdx) Then ' If Stream Found In Queue... + PlayWaveBuffer.QueuePos(Idx) = 0 ' Remove Stream From Queue + ElseIf (Idx > MINSTREAM) Then ' If Not The First Item In The Queue... + If (PlayWaveBuffer.QueuePos(Idx - 1) = 0) Then ' If Previous Item Was Removed... + If (PlayWaveBuffer.QueuePos(Idx) = 0) Then Exit For + PlayWaveBuffer.QueuePos(Idx - 1) = PlayWaveBuffer.QueuePos(Idx) ' Move Stream Up To New Position + PlayWaveBuffer.QueuePos(Idx) = 0 ' Remove Stream From Old Position + End If + End If + Next ' Next Stream In Queue +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Sub WaitForCallBack(CallBackBit As Long, cbFlag As Long) +' Waits For Asynchronous Function Callback Bit To Be Set. +'-------------------------------------------------------------- + Do Until (((CallBackBit And cbFlag) = cbFlag) Or _ + (CallBackBit = WHDR_PREPARED) Or _ + (CallBackBit = 0)) ' Check For (CallBack Bit Or Null)... + DoEvents ' Post Events... + Loop +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Public Sub WaitForACMCallBack(CallBackBit As Long, cbFlag As Long) +' Waits For Asynchronous Function Callback Bit To Be Set. +'-------------------------------------------------------------- + Do Until (((CallBackBit And cbFlag) = cbFlag) Or _ + (CallBackBit = 0)) ' Check For (CallBack Bit Or Null)... + DoEvents ' Post Events... + Loop +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub InitWaveHDR(WaveHeader As WAVEHDR, waveFmt As WAVEFORMATEX, BuffSize As Long) +' Initialize's An Input Wave Header's DataBuffer And Size Members... +'-------------------------------------------------------------- + Dim rc As Long ' Function Return Code... +'-------------------------------------------------------------- + WaveHeader.hData = GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE Or GMEM_ZEROINIT, BuffSize) ' Allocate Global Memory + WaveHeader.lpData = GlobalLock(WaveHeader.hData) ' Lock Memory handle + + WaveHeader.dwBufferLength = BuffSize ' Get Wave Buffer Size + WaveHeader.dwFlags = 0 ' Must Be Set To 0 For (waveOutPrepareHeader & waveInPrepareHeader) +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Function FreeWaveHDR(WaveHeader As WAVEHDR) As Boolean +'-------------------------------------------------------------- + Dim rc As Long ' Function return code +'-------------------------------------------------------------- + rc = GlobalUnlock(WaveHeader.lpData) ' Unlock Global Memory + rc = GlobalFree(WaveHeader.hData) ' Free Global Memory + + FreeWaveHDR = True ' Set Default Return Code +'-------------------------------------------------------------- +End Function +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub InitAcmHDR(hAS As Long, acmHdr As ACMSTREAMHEADER, wavHdr As WAVEHDR) +' Initialize's An Input Wave Header's DataBuffer And Size Members... +'-------------------------------------------------------------- + Dim rc As Long ' Function Return Code... + Dim OutBytes As Long +'-------------------------------------------------------------- + acmHdr.cbStruct = Len(acmHdr) ' Size of header in bytes + acmHdr.dwStatus = 0 ' Must be initialized to 0 + acmHdr.dwUser = 0 ' clear user def info + acmHdr.cbSrcLengthUsed = 0 ' Must be initialized to 0 + acmHdr.cbDstLengthUsed = 0 ' Must be initialized to 0 + + acmHdr.pbSrc = wavHdr.lpData ' Copy address of unprocessed data + acmHdr.cbSrcLength = wavHdr.dwBufferLength ' Copy size of unprocessed data + + rc = acmStreamSize(hAS, acmHdr.cbSrcLength, acmHdr.cbDstLength, ACM_STREAMSIZEF_SOURCE) + Call AudioErrorHandler(rc, "acmStreamSize") + + ' Allocate memory for de/compression + acmHdr.dwDstUser = GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE Or GMEM_ZEROINIT, acmHdr.cbDstLength) ' Allocate Global Memory + acmHdr.cbDst = GlobalLock(acmHdr.dwDstUser) ' Lock Memory handle +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'-------------------------------------------------------------- +Private Sub FreeAcmHdr(acmHdr As ACMSTREAMHEADER) +' Initialize's An Input Wave Header's DataBuffer And Size Members... +'-------------------------------------------------------------- + Dim rc As Long ' Function Return Code... +'-------------------------------------------------------------- + rc = GlobalUnlock(acmHdr.cbDst) ' Unlock Global Memory + rc = GlobalFree(acmHdr.dwDstUser) ' Free Global Memory +'-------------------------------------------------------------- +End Sub +'-------------------------------------------------------------- + +'------------------------------------------------------------------ +Public Function RecordWave(hWND As Long, ByVal TCPSocket As Variant) As Boolean +' Records Audio Sounds To A String Buffer And Sends Buffer To TCP/IP Socket... +'------------------------------------------------------------------ + Dim rc As Long ' Function Return Code + Dim hAS As Long ' ACM stream device + Dim cWavefmt As WAVEFORMATEX ' Wave compression format + Dim acmHdr As ACMSTREAMHEADER ' ACM stream header + Dim acmHdr_x As ACMSTREAMHEADER ' <> ACM stream header + Dim hWaveIn As Long ' Handle To An Input Wave Device + Dim waveFmt As WAVEFORMATEX ' Wave compression format + Dim WaveInHDR As WAVEHDR ' Handle To An Input Wave Device Header + Dim WaveInHDR_x As WAVEHDR ' <> Handle To An xtra Input Wave Device Header +'------------------------------------------------------------------ + RecDeviceFree = False ' Allocate Recording Device + + Do While Not PlayDeviceFree ' Wait For Play Device To Free + DoEvents ' Yield Events... + Loop ' Check Play Device Status + + Call InitWaveFormat(waveFmt, WAVE_FORMAT_PCM, TIMESLICE) ' Set current wave format + + ' Open Input Wave Device, Let WAVE_MAPPER Pick The Best Device... + rc = waveInOpen(hWaveIn, WAVE_MAPPER, waveFmt, 0&, 0&, CALLBACK_NULL) + If Not AudioErrorHandler(rc, "WaveInOpen") Then Exit Function ' Validate Function Return Code + + '<> Initialize Wave Header Format Information + Call InitWaveHDR(WaveInHDR_x, waveFmt, (waveFmt.nAvgBytesPerSec * TIMESLICE)) + + ' Initialize Wave Header Format Information + Call InitWaveHDR(WaveInHDR, waveFmt, (waveFmt.nAvgBytesPerSec * TIMESLICE)) + + ' <> Prepare Input Wave Device Header + rc = waveInPrepareHeader(hWaveIn, WaveInHDR_x, Len(WaveInHDR_x)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInPrepareHeader_x") Then GoTo ErrorRecordWave + + ' Prepare Input Wave Device Header + rc = waveInPrepareHeader(hWaveIn, WaveInHDR, Len(WaveInHDR)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInPrepareHeader") Then GoTo ErrorRecordWave + + ' <> Wait For Wave (xtra)Header CallBack + Call WaitForCallBack(WaveInHDR_x.dwFlags, WHDR_PREPARED) + + ' Wait For Wave Header CallBack + Call WaitForCallBack(WaveInHDR.dwFlags, WHDR_PREPARED) + + ' <> Add Input Wave (xtra)Buffer To Wave Input Device + rc = waveInAddBuffer(hWaveIn, WaveInHDR_x, Len(WaveInHDR_x)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInAddBuffer_x") Then GoTo ErrorRecordWave + + ' Add Input Wave Buffer To Wave Input Device + rc = waveInAddBuffer(hWaveIn, WaveInHDR, Len(WaveInHDR)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInAddBuffer") Then GoTo ErrorRecordWave + + ' <> Wait For Wave (xtra)Header CallBack + Call WaitForCallBack(WaveInHDR_x.dwFlags, WHDR_PREPARED) + + ' Wait For Wave Header CallBack + Call WaitForCallBack(WaveInHDR.dwFlags, WHDR_PREPARED) + + Call InitWaveFormat(cWavefmt, waveCodec, TIMESLICE) ' Set current wave format + + ' Open/Configure an acm Stream Handle For Compression + rc = acmStreamOpen(hAS, 0&, waveFmt, cWavefmt, 0&, 0&, 0&, ACM_STREAMOPENF_NONREALTIME) + Call AudioErrorHandler(rc, "acmStreamOpen") + + ' Initialize Audio Compression Manager Streaming Headers + Call InitAcmHDR(hAS, acmHdr, WaveInHDR) + Call InitAcmHDR(hAS, acmHdr_x, WaveInHDR_x) + + ' Prepare acm Stream Header + rc = acmStreamPrepareHeader(hAS, acmHdr, 0&) + Call AudioErrorHandler(rc, "acmStreamPrepareHeader") + + ' Prepare acm Stream Header + rc = acmStreamPrepareHeader(hAS, acmHdr_x, 0&) + Call AudioErrorHandler(rc, "acmStreamPrepareHeader_x") + + ' <> Wait For Wave (xtra)Header CallBack + Call WaitForACMCallBack(acmHdr_x.dwStatus, ACMSTREAMHEADER_STATUSF_PREPARED) + + ' Wait For Wave Header CallBack + Call WaitForACMCallBack(acmHdr.dwStatus, ACMSTREAMHEADER_STATUSF_PREPARED) + + ' Start Input Wave Device Recording... + rc = waveInStart(hWaveIn) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInStart") Then GoTo ErrorRecordWave + + Do + ' <> Wait For Wave (xtra)Header CallBack + Call WaitForCallBack(WaveInHDR_x.dwFlags, WHDR_DONE) + + ' <> Compress acm Stream Wave Buffer + rc = acmStreamConvert(hAS, acmHdr_x, ACM_STREAMCONVERTF_BLOCKALIGN) + If Not AudioErrorHandler(rc, "acmStreamConvert_x") Then GoTo ErrorRecordWave + + rc = SendSoundAll(TCPSocket, acmHdr_x) ' <> Send Sound Buffer To TCPSocket + If Not Recording Then Exit Do ' Evaluate Recording Stop Flag + + ' <> Add Input Wave (xtra)Buffer To Wave Input Device + rc = waveInAddBuffer(hWaveIn, WaveInHDR_x, Len(WaveInHDR_x)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInAddBuffer_x") Then GoTo ErrorRecordWave + + Call WaitForCallBack(WaveInHDR.dwFlags, WHDR_DONE) ' Wait For Wave Header CallBack + + ' Convert/Compress acm Stream Wave Buffer + rc = acmStreamConvert(hAS, acmHdr, ACM_STREAMCONVERTF_BLOCKALIGN) + If Not AudioErrorHandler(rc, "acmStreamConvert") Then GoTo ErrorRecordWave + + rc = SendSoundAll(TCPSocket, acmHdr) ' Send Sound Buffer To TCPSocket + If Not Recording Then Exit Do ' Evaluate Recording Stop Flag + + ' Add Input Wave Buffer To Wave Input Device + rc = waveInAddBuffer(hWaveIn, WaveInHDR, Len(WaveInHDR)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInAddBuffer") Then GoTo ErrorRecordWave + Loop While Recording ' Continue Recording... + + ' <> UnPrepare acm Stream Header + rc = acmStreamUnprepareHeader(hAS, acmHdr_x, 0&) + Call AudioErrorHandler(rc, "acmStreamUnprepareHeader_x") + + ' UnPrepare acm Stream Header + rc = acmStreamUnprepareHeader(hAS, acmHdr, 0&) + Call AudioErrorHandler(rc, "acmStreamUnprepareHeader") + + ' Free globally allocated and locked memory variables... + Call FreeAcmHdr(acmHdr_x) ' Free extra wave header memory + Call FreeAcmHdr(acmHdr) ' Free wave header memory + + ' Close acm Stream Handle + rc = acmStreamClose(hAS, 0&) + Call AudioErrorHandler(rc, "acmStreamClose") + + ' <> Wait For Wave (xtra)Header CallBack + Call WaitForCallBack(WaveInHDR_x.dwFlags, WHDR_DONE) + + ' Wait For Wave Header CallBack + Call WaitForCallBack(WaveInHDR.dwFlags, WHDR_DONE) + + ' Stop Input Wave Device + rc = waveInStop(hWaveIn) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInStop") Then GoTo ErrorRecordWave + + ' UnPrepare Input Wave Device Header + rc = waveInUnprepareHeader(hWaveIn, WaveInHDR, Len(WaveInHDR)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInUnPrepareHeader") Then GoTo ErrorRecordWave + + ' <> UnPrepare Input Wave Device (xtra)Header + rc = waveInUnprepareHeader(hWaveIn, WaveInHDR_x, Len(WaveInHDR_x)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInUnPrepareHeader_x") Then GoTo ErrorRecordWave + + ' Close Input Wave Device + rc = waveInClose(hWaveIn) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveInClose") Then Exit Function + + ' Clean Up Memory Data... + rc = FreeWaveHDR(WaveInHDR) ' Free Wave Header Data + rc = FreeWaveHDR(WaveInHDR_x) ' Free Extra Wave Header Data + + RecordWave = True ' Return Success + RecDeviceFree = True ' Free Recording Device + Exit Function ' Exit +'------------------------------------------------------------------ +ErrorRecordWave: ' Clean Up Environment(Brute force no error handling)... +'------------------------------------------------------------------ + rc = acmStreamUnprepareHeader(hAS, acmHdr, 0&) ' Attempt To UnPrepare acm Stream Header + rc = acmStreamUnprepareHeader(hAS, acmHdr_x, 0&) ' Attempt To UnPrepare acm Stream (xtra)Header + Call FreeAcmHdr(acmHdr) ' Free wave header memory + Call FreeAcmHdr(acmHdr_x) ' Free extra wave header memory + rc = acmStreamClose(hAS, 0&) ' Attempt To Close acm Stream Handle + + rc = waveInStop(hWaveIn) ' Attempt To Stop WaveInput Device + rc = waveInReset(hWaveIn) ' Attempt To Reset WaveInput Device + rc = waveInUnprepareHeader(hWaveIn, WaveInHDR, Len(WaveInHDR)) ' Attempt To Unprepare WaveInput Header + rc = waveInUnprepareHeader(hWaveIn, WaveInHDR_x, Len(WaveInHDR_x)) ' Attempt To Unprepare WaveInput (xtra)Header + rc = waveInClose(hWaveIn) ' Attempt To Close Wave Input Device + rc = FreeWaveHDR(WaveInHDR) ' Free Wave Header Data + rc = FreeWaveHDR(WaveInHDR_x) ' Free Extra Wave Header Data + + RecDeviceFree = True ' Free Recording Device + Exit Function ' Exit +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Public Function PlayWave(hWND As Long, StreamIdx As Integer) As Boolean +' Play's Back Audio Wave Data From String Buffers... +'------------------------------------------------------------------ + Dim rc As Long ' Function Return Code + Dim hAS As Long ' ACM stream device + Dim acmHdr As ACMSTREAMHEADER ' ACM stream header + Dim acmHdr_x As ACMSTREAMHEADER ' <> ACM stream header + Dim cWavefmt As WAVEFORMATEX ' Wave compression format + Dim waveFmt As WAVEFORMATEX ' Wave format type + Dim hWaveOut As Long ' Handle To A Wave Output Device + Dim WaveOutHdr As WAVEHDR ' Handle To A Wave Output Device Header + Dim WaveOutHdr_x As WAVEHDR ' Handle To A Wave Output Device Header +'------------------------------------------------------------------ + Call InitWaveFormat(waveFmt, waveCodec, TIMESLICE) ' Set current wave format + + ' Open Output Wave Device + rc = waveOutOpen(hWaveOut, WAVE_MAPPER, waveFmt, 0&, 0&, CALLBACK_NULL) + If Not AudioErrorHandler(rc, "waveOutOpen") Then Exit Function ' Validate Return Code + + PlayDeviceFree = False ' Allocate Recording Device + + ' Init Extra Wave Header Format Information + Call InitWaveHDR(WaveOutHdr_x, waveFmt, (waveFmt.nAvgBytesPerSec * TIMESLICE)) + + ' Init Wave Header Format Information + Call InitWaveHDR(WaveOutHdr, waveFmt, (waveFmt.nAvgBytesPerSec * TIMESLICE)) + + ' Prepare Output Wave Device Header + rc = waveOutPrepareHeader(hWaveOut, WaveOutHdr_x, Len(WaveOutHdr_x)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveOutPrepareHeader") Then GoTo ErrorPlayWave + + ' Prepare Output Wave Device Header + rc = waveOutPrepareHeader(hWaveOut, WaveOutHdr, Len(WaveOutHdr)) ' Validate Return Code + If Not AudioErrorHandler(rc, "waveOutPrepareHeader") Then GoTo ErrorPlayWave + + ' <<>> Copy (extra)Wave Data To Buffer + If Not (LoadPlayBuffer(hWaveOut, WaveOutHdr_x, waveFmt, _ + PlayWaveBuffer.Stream(StreamIdx).Waves(CurPlayPos(StreamIdx)).Data, _ + CurPlayPos(StreamIdx))) Then GoTo ErrorPlayWave ' Cleanup And Leave + + ' <> Wait For Wave (xtra)Header CallBack + Call WaitForCallBack(WaveOutHdr_x.dwFlags, WHDR_PREPARED) + + ' Wait For Wave Header CallBack + Call WaitForCallBack(WaveOutHdr.dwFlags, WHDR_PREPARED) + + 'Call InitWaveFormat(cWavefmt, waveCodec, TIMESLICE) ' Set current wave format + Call InitWaveFormat(cWavefmt, WAVE_FORMAT_PCM, TIMESLICE) ' Set current wave format + + ' Open/Configure an acm Stream Handle For Compression + rc = acmStreamOpen(hAS, 0&, waveFmt, cWavefmt, 0&, 0&, 0&, ACM_STREAMOPENF_NONREALTIME) + Call AudioErrorHandler(rc, "acmStreamOpen") + + ' Initialize Audio Compression wave streaming headers... + Call InitAcmHDR(hAS, acmHdr, WaveOutHdr) + Call InitAcmHDR(hAS, acmHdr_x, WaveOutHdr_x) + + ' Prepare acm Stream Header + rc = acmStreamPrepareHeader(hAS, acmHdr, 0&) + Call AudioErrorHandler(rc, "acmStreamPrepareHeader") + + ' Prepare acm Stream Header + rc = acmStreamPrepareHeader(hAS, acmHdr_x, 0&) + Call AudioErrorHandler(rc, "acmStreamPrepareHeader_x") + + ' <> Wait For Wave (xtra)Header CallBack + Call WaitForACMCallBack(acmHdr_x.dwStatus, ACMSTREAMHEADER_STATUSF_PREPARED) + + ' Wait For Wave Header CallBack + Call WaitForACMCallBack(acmHdr.dwStatus, ACMSTREAMHEADER_STATUSF_PREPARED) + + ' <<>> Write (extra)Wave Buffer To Output Device... + rc = waveOutWrite(hWaveOut, WaveOutHdr_x, Len(WaveOutHdr_x)) + If Not AudioErrorHandler(rc, "waveOutWrite_x") Then GoTo ErrorPlayWave ' Validate Return Code + + Do + ' Copy Wave Data To Buffer + If Not (LoadPlayBuffer(hWaveOut, WaveOutHdr, waveFmt, _ + PlayWaveBuffer.Stream(StreamIdx).Waves(CurPlayPos(StreamIdx)).Data, _ + CurPlayPos(StreamIdx))) Then GoTo CleanUpPlayWave ' Cleanup And Leave + + ' <> Compress acm Stream Wave Buffer + rc = acmStreamConvert(hAS, acmHdr, ACM_STREAMCONVERTF_BLOCKALIGN) + If Not AudioErrorHandler(rc, "acmStreamConvert") Then GoTo ErrorPlayWave + + ' Write Wave Buffer To Output Device... + rc = waveOutWrite(hWaveOut, WaveOutHdr, Len(WaveOutHdr)) + If Not AudioErrorHandler(rc, "waveOutWrite") Then GoTo ErrorPlayWave ' Validate Return Code + + ' <<>> Wait For Wave Header CallBack + Call WaitForCallBack(WaveOutHdr_x.dwFlags, WHDR_DONE) + + ' <<>> Copy (extra)Wave Data To Buffer + If Not (LoadPlayBuffer(hWaveOut, WaveOutHdr_x, waveFmt, _ + PlayWaveBuffer.Stream(StreamIdx).Waves(CurPlayPos(StreamIdx)).Data, _ + CurPlayPos(StreamIdx))) Then GoTo CleanUpPlayWave ' Cleanup And Leave + + ' <> Compress acm Stream Wave Buffer + rc = acmStreamConvert(hAS, acmHdr_x, ACM_STREAMCONVERTF_BLOCKALIGN) + If Not AudioErrorHandler(rc, "acmStreamConvert_x") Then GoTo ErrorPlayWave + + ' <<>> Write (extra)Wave Buffer To Output Device... + rc = waveOutWrite(hWaveOut, WaveOutHdr_x, Len(WaveOutHdr_x)) + If Not AudioErrorHandler(rc, "waveOutWrite_x") Then GoTo ErrorPlayWave ' Validate Return Code + + ' Wait For Wave Header CallBack + Call WaitForCallBack(WaveOutHdr.dwFlags, WHDR_DONE) + Loop While Playing ' Continue Playing... + +'------------------------------------------------------------------ +CleanUpPlayWave: ' Cleanup... +'------------------------------------------------------------------ + ' <> UnPrepare acm Stream Header + rc = acmStreamUnprepareHeader(hAS, acmHdr_x, 0&) + Call AudioErrorHandler(rc, "acmStreamUnprepareHeader_x") + + ' UnPrepare acm Stream Header + rc = acmStreamUnprepareHeader(hAS, acmHdr, 0&) + Call AudioErrorHandler(rc, "acmStreamUnprepareHeader") + + Call FreeAcmHdr(acmHdr) ' Free wave header memory + Call FreeAcmHdr(acmHdr_x) ' Free extra wave header memory + + ' Close acm Stream Handle + rc = acmStreamClose(hAS, 0&) + Call AudioErrorHandler(rc, "acmStreamClose") + + ' Wait For Wave Header CallBack + Call WaitForCallBack(WaveOutHdr.dwFlags, WHDR_DONE) + + ' Unprepare Wave Output Buffer + rc = waveOutUnprepareHeader(hWaveOut, WaveOutHdr, Len(WaveOutHdr)) + + ' <> Wait For Wave Header CallBack + Call WaitForCallBack(WaveOutHdr_x.dwFlags, WHDR_DONE) + + ' <> Unprepare Wave Output Buffer + rc = waveOutUnprepareHeader(hWaveOut, WaveOutHdr_x, Len(WaveOutHdr_x)) + + ' Close Output Wave Device + rc = waveOutClose(hWaveOut) + If Not AudioErrorHandler(rc, "waveOutClose") Then Exit Function ' Validate Return Code + + ' Clean Up Memory Data... + rc = FreeWaveHDR(WaveOutHdr) ' Free Wave Header Data + rc = FreeWaveHDR(WaveOutHdr_x) ' Free Extra Wave Header Data + + PlayWave = True ' Return Success + PlayDeviceFree = True ' Free Recording Device + Exit Function ' Exit +'------------------------------------------------------------------ +ErrorPlayWave: ' Handle Errors And Cleanup... +'------------------------------------------------------------------ + rc = acmStreamUnprepareHeader(hAS, acmHdr, 0&) ' Attempt To UnPrepare acm Stream Header + rc = acmStreamUnprepareHeader(hAS, acmHdr_x, 0&) ' Attempt To UnPrepare acm Stream (xtra)Header + Call FreeAcmHdr(acmHdr) ' Free wave header memory + Call FreeAcmHdr(acmHdr_x) ' Free extra wave header memory + rc = acmStreamClose(hAS, 0&) ' Attempt To Close acm Stream Handle + + rc = waveOutUnprepareHeader(hWaveOut, WaveOutHdr, Len(WaveOutHdr)) ' Attempt To Unprepare Header + rc = waveOutUnprepareHeader(hWaveOut, WaveOutHdr_x, Len(WaveOutHdr_x)) ' Attempt To Unprepare Header + rc = waveOutClose(hWaveOut) ' Close Wave Output Device + rc = FreeWaveHDR(WaveOutHdr) ' Free Wave Header Data + rc = FreeWaveHDR(WaveOutHdr_x) ' Free Extra Wave Header Data + + PlayDeviceFree = True ' Free Recording Device Flag + Exit Function ' Exit +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Sub IncBufferPointer(NextVal As Long) +' Moves Buffer Pointer Up One Notch In A Continuous Loop... +'------------------------------------------------------------------ + If NextVal < MAXBUFFERS Then ' If Not At End Of Buffer + NextVal = NextVal + 1 ' Increment Buffer Pointer + Else ' At End Of Buffer + NextVal = MINBUFFERS ' Go To Beginning Of Buffer + End If +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Sub InitWaveFormat(waveFmt As WAVEFORMATEX, fmtType As Long, Time_Slice As Single) +' Initializes Wave Format Data Type +'------------------------------------------------------------------ + Dim i As Long +'------------------------------------------------------------------ + Select Case fmtType + Case WAVE_FORMAT_ADPCM + waveFmt.wFormatTag = WAVE_FORMAT_ADPCM ' wave format type + waveFmt.nChannels = 1 ' number of channels - mono + waveFmt.wBitsPerSample = 4 ' bits/sample of TRUESPEECH - not used. + waveFmt.nSamplesPerSec = c8_0kHz ' sample rate kHz + waveFmt.nAvgBytesPerSec = 4055 ' Bytes/Sec + waveFmt.nBlockAlign = 256 ' block size of data + waveFmt.cbSize = 2 ' extra bytes used for WaveFormatEx + waveFmt.xBytes(0) = &HF9 ' Fact Chunk - Byte 0 + waveFmt.xBytes(1) = &H1 ' Fact Chunk - Byte 1 + Case WAVE_FORMAT_MSN_AUDIO ' Initialize Wave Format - WAVE_FORMAT_MSN_AUDIO + waveFmt.wFormatTag = WAVE_FORMAT_MSN_AUDIO ' wave format type + waveFmt.nChannels = 1 ' number of channels - mono + waveFmt.wBitsPerSample = 0 ' bits/sample of TRUESPEECH - not used. + waveFmt.cbSize = 4 ' extra bytes used for WaveFormatEx + waveFmt.xBytes(0) = &H40 ' Fact Chunk - Byte 0 + waveFmt.xBytes(1) = &H1 ' Fact Chunk - Byte 1 +'<<< 8.0 kHz - 8200 Bauds >>> (Fair, No FeedBack) + waveFmt.nSamplesPerSec = c8_0kHz ' sample rate kHz + waveFmt.nAvgBytesPerSec = 1025 ' Bytes/Sec + waveFmt.nBlockAlign = 41 ' block size of data + waveFmt.xBytes(2) = &H8 ' Fact Chunk - Byte 2 + waveFmt.xBytes(3) = &H20 ' Fact Chunk - Byte 3 +'<<< 8.0 kHz - 10000 Bauds >>> (Excellent, No FeedBack) +' WaveFmt.nSamplesPerSec = c8_0kHz ' sample rate kHz +' WaveFmt.nAvgBytesPerSec = 1250 ' Bytes/Sec +' WaveFmt.nBlockAlign = 50 ' block size of data +' WaveFmt.xBytes(2) = &H10 ' Fact Chunk - Byte 2 +' WaveFmt.xBytes(3) = &H27 ' Fact Chunk - Byte 3 +'<<< 11.025 kHz - 11301 Bauds >>> (Bad, FeedBack) +'<<< 11.025 kHz - 12128 Bauds >>> (Bad, FeedBack) +'<<< 11.025 kHz - 13782 Bauds >>> (Bad, FeedBack) + Case WAVE_FORMAT_GSM610 ' Initialize Wave Format - WAVE_FORMAT_GSM610 + waveFmt.wFormatTag = WAVE_FORMAT_GSM610 ' wave format type + waveFmt.nChannels = 1 ' number of channels - mono + waveFmt.nSamplesPerSec = c8_0kHz ' sample rate kHz + waveFmt.nAvgBytesPerSec = 1625 ' Bytes/Sec + waveFmt.nBlockAlign = 65 ' block size of data + waveFmt.wBitsPerSample = 0 ' bits/sample of TRUESPEECH - not used. + waveFmt.cbSize = 2 ' extra bytes used for WaveFormatEx + waveFmt.xBytes(0) = &H40 ' Fact Chunk - Byte 0 + waveFmt.xBytes(1) = &H1 ' Fact Chunk - Byte 1 + Case WAVE_FORMAT_PCM ' Initialize Wave Format - WAVE_FORMAT_PCM + waveFmt.wFormatTag = WAVE_FORMAT_PCM ' format type + waveFmt.nChannels = WAVE_FORMAT_1M08 ' number of channels (i.e. mono, stereo, etc.) + waveFmt.nSamplesPerSec = c8_0kHz ' sample rate 8.0 kHz + waveFmt.nAvgBytesPerSec = waveFmt.nSamplesPerSec ' for buffer estimation + waveFmt.wBitsPerSample = 8 ' [8, 16, or 0] + waveFmt.nBlockAlign = waveFmt.nChannels * waveFmt.wBitsPerSample / 8 ' block size of data + waveFmt.cbSize = 0 ' Not Used If [wFormatTag= WAVE_FORMAT_PCM] + End Select +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ + +'-------------------------------------------------------------- +Public Function AddStreamToQueue(StreamIdx As Integer) +' Puts An Incoming Wave Segment Into The Wave PlayBack Queue +'-------------------------------------------------------------- + Dim Idx As Integer ' Queue Array Processing Variable +'-------------------------------------------------------------- + For Idx = MINSTREAM To MAXSTREAM ' For Each Stream In The Queue + If (PlayWaveBuffer.QueuePos(Idx) = StreamIdx) Then ' If Stream Already In Playback Queue + AddStreamToQueue = True ' Return Success + Exit Function ' Exit + ElseIf (PlayWaveBuffer.QueuePos(Idx) = 0) Then ' If Queue Space Available... + PlayWaveBuffer.QueuePos(Idx) = StreamIdx ' Put Stream Into The Playback Queue + AddStreamToQueue = True ' Return Success + Exit Function ' Exit + End If + Next ' Next Stream In The Queue +'-------------------------------------------------------------- +End Function +'-------------------------------------------------------------- + +'------------------------------------------------------------------ +Public Sub SaveStreamBuffer(StreamIdx As Integer, recBuffer() As Byte) +' Saves A Record Buffer To A Record Buffer Array +'------------------------------------------------------------------ + ' If Buffer Is Free + If (LenB(MidB(PlayWaveBuffer.Stream(StreamIdx).Waves(CurRecPos(StreamIdx)).Data, 1)) < 3) Then + PlayWaveBuffer.Stream(StreamIdx).Waves(CurRecPos(StreamIdx)).Data = recBuffer ' Copy Buffer From Rec + Call IncBufferPointer(CurRecPos(StreamIdx)) ' Increment Buffer Pointer To Next Free Position... + End If ' Else Ignore Buffer Data +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Function LoadPlayBuffer(hWaveOut As Long, WaveOutHdr As WAVEHDR, waveFmt As WAVEFORMATEX, Data() As Byte, playBuffPos As Long) As Boolean +' Loads Audio Sound From A String Buffer Into A Wave Header Structure For PlayBack +'------------------------------------------------------------------ + Dim rc As Long ' Return Code Variable +'------------------------------------------------------------------ + If (LenB(MidB(Data, 1)) > 2) Then + WaveOutHdr.dwBufferLength = UBound(Data) - LBound(Data) + 1 ' Get Wave Buffer Size + Call CopyBYTEStoPTR(WaveOutHdr.lpData, Data(0), _ + WaveOutHdr.dwBufferLength) ' Copy Buffer From String To Pointer + Data = "" ' Clear Buffer Space + Call IncBufferPointer(playBuffPos) ' Increment Play Buffer ptr To Next Position... + + LoadPlayBuffer = True ' Return Success + End If +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Function SendSoundAll(Sockets As Variant, WaveHeader As ACMSTREAMHEADER) As Long +' Sends Sound Buffers To Each Valid Connection In A Connection Array +'------------------------------------------------------------------ + Dim Idx As Integer ' Socket cntl index + Dim rc As Long ' Function Return Code + Dim Socket As Variant ' TCP socket control +'------------------------------------------------------------------ + For Each Socket In Sockets ' Check each socket + If (Socket.State = sckConnected) Then ' If Connection Is Active + rc = SendSound(Socket, WaveHeader) ' Send Sound To Socket Connection + End If + Next ' Try Next LocalPort +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Function SendSound(Socket As Variant, acmHdr As ACMSTREAMHEADER) As Long +' Checks A Socket SendFlag Status, And Sends A WaveBuffer When Socket Is Ready +'------------------------------------------------------------------ + Dim WaveBuffer() As Byte ' Wave Buffer byte array +'------------------------------------------------------------------ + ReDim WaveBuffer(acmHdr.cbDstLengthUsed - 1) As Byte ' Allocate byte array + Call CopyPTRtoBYTES(WaveBuffer(0), acmHdr.cbDst, _ + acmHdr.cbDstLengthUsed) ' Copy Data + Call Socket.SendData(WaveBuffer) ' Send wave data into the socket +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Public Function AudioErrorHandler(rc As Long, fcnName As String) As Boolean +'------------------------------------------------------------------ + Dim msg As String ' Error Message Body +'------------------------------------------------------------------ + AudioErrorHandler = False ' Return Failure + +' Select Case rc Or Err.LastDllError + Select Case rc + Case MMSYSERR_NOERROR ' no error + AudioErrorHandler = True ' Return Success + Exit Function ' Exit Function + Case MMSYSERR_ERROR ' unspecified error + msg = "Unspecified Error." + Case MMSYSERR_BADDEVICEID ' device ID out of range + msg = "device ID out of range" + Case MMSYSERR_NOTENABLED ' driver failed enable + msg = "driver failed enable" + Case MMSYSERR_ALLOCATED ' device already allocated + msg = "device already allocated" + Case MMSYSERR_INVALHANDLE ' device handle is invalid + msg = "device handle is invalid" + Case MMSYSERR_NODRIVER ' no device driver present + msg = "no device driver present" + Case MMSYSERR_NOMEM ' memory allocation error + msg = "memory allocation error" + Case MMSYSERR_NOTSUPPORTED ' function isn't supported + msg = "function isn't supported" + Case MMSYSERR_BADERRNUM ' error value out of range + msg = "error value out of range" + Case MMSYSERR_INVALFLAG ' invalid flag passed + msg = "invalid flag passed" + Case MMSYSERR_INVALPARAM ' invalid parameter passed + msg = "invalid parameter passed" + Case MMSYSERR_LASTERROR ' last error in range + msg = "last error in range" + Case WAVERR_BADFORMAT ' unsupported wave format + msg = "unsupported wave format" + Case WAVERR_STILLPLAYING ' still something playing + msg = "still something playing" + Case WAVERR_UNPREPARED ' header not prepared + msg = "header not prepared" + Case WAVERR_LASTERROR ' last error in range + msg = "last error in range" + Case WAVERR_SYNC ' device is synchronous + msg = "device is synchronous" + Case ACMERR_NOTPOSSIBLE ' The requested operation cannot be performed + msg = "The requested operation cannot be performed" + Case ACMERR_BUSY ' The stream header specified is currently in use and cannot be unprepared + msg = "The acm stream header busy" + Case ACMERR_UNPREPARED + msg = "The acm stream header is not prepared" + Case ACMERR_CANCELED + msg = "The acm operation has been canceled" + Case ERROR_SHARING_VIOLATION ' The process cannot access the file because it is being used by another process. + msg = "The process cannot access the file because it is being used by another process." + Case Else ' Unknown MM Error! + msg = "Unknown MM Error!" + End Select + + ' Format Text Body Of Message + msg = "Error In " & fcnName & _ + " rc= " & Str$(rc) & _ + " MSG= " & msg & _ + " LastDllError= " & Hex(Err.LastDllError) & _ + " Source= " & Err.Source & vbCrLf + + Debug.Print msg ' Print Error Message + MsgBox msg + Exit Function ' Exit +'------------------------------------------------------------------ +End Function +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Sub Class_Initialize() +'------------------------------------------------------------------ + Recording = False ' Set Recording Status Off... + Playing = False ' Set Playing Status Off... + RecDeviceFree = True ' Set Rec Device Free Status Indicator TRUE + PlayDeviceFree = True ' Set Play Device Free Status Indicator TRUE + Call InitACMCodec(WAVE_FORMAT_PCM, 0.2) ' Initialise codec default values... +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Sub Class_Terminate() +'------------------------------------------------------------------ + Recording = False ' Set Recording Status Off... + Playing = False ' Set Playing Status Off... + RecDeviceFree = False ' Set Rec Device Free Status Indicator TRUE + PlayDeviceFree = False ' Set Play Device Free Status Indicator TRUE +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ + +'------------------------------------------------------------------ +Private Sub debugACM(acmHdr As ACMSTREAMHEADER) +'------------------------------------------------------------------ + ' Used for debugging the audio compression streaming + MsgBox "cbStruct:" & CStr(acmHdr.cbStruct) & vbCrLf & "dwStatus:" & CStr(acmHdr.dwStatus) & vbCrLf & _ + "dwUser:" & CStr(acmHdr.dwUser) & vbCrLf & _ + "pbSrc:" & CStr(acmHdr.pbSrc) & vbCrLf & _ + "cbSrcLength:" & CStr(acmHdr.cbSrcLength) & vbCrLf & _ + "cbSrcLengthUsed:" & CStr(acmHdr.cbSrcLengthUsed) & vbCrLf & _ + "dwSrcUser:" & CStr(acmHdr.dwSrcUser) & vbCrLf & _ + "cbDst:" & CStr(acmHdr.cbDst) & vbCrLf & _ + "cbDstLength:" & CStr(acmHdr.cbDstLength) & vbCrLf & _ + "cbDstLengthUsed:" & CStr(acmHdr.cbDstLengthUsed) & vbCrLf & _ + "dwDstUser:" & CStr(acmHdr.dwDstUser) +'------------------------------------------------------------------ +End Sub +'------------------------------------------------------------------ + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/README.TXT b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/README.TXT new file mode 100644 index 0000000..251e0ae --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/README.TXT @@ -0,0 +1,35 @@ +\Tools\Unsupprt\WSView + +Working Set Viewer +================== + +To install the Working Set Viewer: + +Windows95: + +- Copy MEMMON.VXD and PSAPI.DLL from \Tools\Unsupprt\WSView\Win95\ to you Windows 95 + system directory. For example (assuming the VB CD is in drive D:): + + cd c:\win95\system + copy d:\Tools\Unsupprt\WSView\Win95\memmon.vxd + copy d:\Tools\Unsupprt\WSView\Win95\psapi.dll + +- Copy \Tools\Unsupprt\WSView\Win95\VMM.VXD to the \VMM32 directory under your Windows + 95 system directory. For example: + + cd c:\win95\system\vmm32 + copy d:\Tools\Unsupprt\WSView\Win95\vmm.vxd + +- Add the following line to your system.ini file in the [386Enh] section: + + Device = memmon.vxd + +- Reboot Windows 95 and then run WSVIEW.EXE + +Windows NT: + +- Copy \Tools\Unsupprt\WSView\WinNT\PSAPI.DLL to your \System32 directory and then run + WSVIEW.EXE + + + diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/MEMMON.VXD b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/MEMMON.VXD new file mode 100644 index 0000000..66fddcd Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/MEMMON.VXD differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/PSAPI.DLL b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/PSAPI.DLL new file mode 100644 index 0000000..4ef0ab8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/PSAPI.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/VMM.VXD b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/VMM.VXD new file mode 100644 index 0000000..2d58f27 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WIN95/VMM.VXD differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WINNT/PSAPI.DLL b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WINNT/PSAPI.DLL new file mode 100644 index 0000000..0b6c9d7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WINNT/PSAPI.DLL differ diff --git a/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WSVIEW.EXE b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WSVIEW.EXE new file mode 100644 index 0000000..39e386c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/UNSUPPRT/WSVIEW/WSVIEW.EXE differ diff --git a/cadVb/COMMON/TOOLS/VB/VBPDB/MSVBVM60.DBG b/cadVb/COMMON/TOOLS/VB/VBPDB/MSVBVM60.DBG new file mode 100644 index 0000000..6661e8e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/VBPDB/MSVBVM60.DBG differ diff --git a/cadVb/COMMON/TOOLS/VB/VBPDB/VB6.DBG b/cadVb/COMMON/TOOLS/VB/VBPDB/VB6.DBG new file mode 100644 index 0000000..3fd9897 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/VBPDB/VB6.DBG differ diff --git a/cadVb/COMMON/TOOLS/VB/VBPDB/VBA6.DBG b/cadVb/COMMON/TOOLS/VB/VBPDB/VBA6.DBG new file mode 100644 index 0000000..dec8881 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/VBPDB/VBA6.DBG differ diff --git a/cadVb/COMMON/TOOLS/VB/WININET/WININET.TXT b/cadVb/COMMON/TOOLS/VB/WININET/WININET.TXT new file mode 100644 index 0000000..6b8717a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/WININET/WININET.TXT @@ -0,0 +1,428 @@ +' ------------------------------------------------------------------------ +' +' WININET.TXT -- WININET API Declarations for Visual Basic +' +' Copyright (C) 1998 Microsoft Corporation +' +' This file is required for the Visual Basic 6.0 version of the APILoader. +' This file is backwards compatible with previous releases +' of the APILoader with the exception that Constants are no longer declared +' as Global or Public in this file. +' +' This file contains only the Const, Type, +' and Declare statements for the WININET APIs. +' +' You have a royalty-free right to use, modify, reproduce and distribute +' this file (and/or any modified version) in any way you find useful, +' provided that you agree that Microsoft has no warranty, obligation or +' liability for its contents. Refer to the Microsoft Windows Programmer's +' Reference for further information. +' +' ------------------------------------------------------------------------ + +Const MAX_PATH = 260 +Const NO_ERROR = 0 +Const FILE_ATTRIBUTE_READONLY = &H1 +Const FILE_ATTRIBUTE_HIDDEN = &H2 +Const FILE_ATTRIBUTE_SYSTEM = &H4 +Const FILE_ATTRIBUTE_DIRECTORY = &H10 +Const FILE_ATTRIBUTE_ARCHIVE = &H20 +Const FILE_ATTRIBUTE_NORMAL = &H80 +Const FILE_ATTRIBUTE_TEMPORARY = &H100 +Const FILE_ATTRIBUTE_COMPRESSED = &H800 +Const FILE_ATTRIBUTE_OFFLINE = &H1000 + + +Type FILETIME + dwLowDateTime As Long + dwHighDateTime As Long +End Type + +Type WIN32_FIND_DATA + dwFileAttributes As Long + ftCreationTime As FILETIME + ftLastAccessTime As FILETIME + ftLastWriteTime As FILETIME + nFileSizeHigh As Long + nFileSizeLow As Long + dwReserved0 As Long + dwReserved1 As Long + cFileName As String * MAX_PATH + cAlternate As String * 14 +End Type + + +Const ERROR_NO_MORE_FILES = 18 + +Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" (ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long + +Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long + +Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean + +Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, ByVal lpszRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean + +Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean +Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String, ByRef lpdwCurrentDirectory As Long) As Boolean + +' Initializes an application's use of the Win32 Internet functions +Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long + +' User agent constant. +Const scUserAgent = "vb wininet" + +' Use registry access settings. +Const INTERNET_OPEN_TYPE_PRECONFIG = 0 +Const INTERNET_OPEN_TYPE_DIRECT = 1 +Const INTERNET_OPEN_TYPE_PROXY = 3 +Const INTERNET_INVALID_PORT_NUMBER = 0 + +Const FTP_TRANSFER_TYPE_ASCII = &H1 +Const FTP_TRANSFER_TYPE_BINARY = &H2 + +' Opens a HTTP session for a given site. +Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long + +Declare Function InternetGetLastResponseInfo Lib "wininet.dll" Alias "InternetGetLastResponseInfoA" (lpdwError As Long, ByVal lpszBuffer As String, lpdwBufferLength As Long) As Boolean + +' Number of the TCP/IP port on the server to connect to. +Const INTERNET_DEFAULT_FTP_PORT = 21 +Const INTERNET_DEFAULT_GOPHER_PORT = 70 +Const INTERNET_DEFAULT_HTTP_PORT = 80 +Const INTERNET_DEFAULT_HTTPS_PORT = 443 +Const INTERNET_DEFAULT_SOCKS_PORT = 1080 + +Const INTERNET_OPTION_CONNECT_TIMEOUT = 2 +Const INTERNET_OPTION_RECEIVE_TIMEOUT = 6 +Const INTERNET_OPTION_SEND_TIMEOUT = 5 + +Const INTERNET_OPTION_USERNAME = 28 +Const INTERNET_OPTION_PASSWORD = 29 +Const INTERNET_OPTION_PROXY_USERNAME = 43 +Const INTERNET_OPTION_PROXY_PASSWORD = 44 + +' Type of service to access. +Const INTERNET_SERVICE_FTP = 1 +Const INTERNET_SERVICE_GOPHER = 2 +Const INTERNET_SERVICE_HTTP = 3 + +' Opens an HTTP request handle. +Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long + +Const GENERIC_READ = &H80000000 +Const GENERIC_WRITE = &H40000000 + +' Sends the specified request to the HTTP server. +Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Integer + +' Queries for information about an HTTP request. +Declare Function HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA" (ByVal hHttpRequest As Long, ByVal lInfoLevel As Long, ByRef sBuffer As Any, ByRef lBufferLength As Long, ByRef lIndex As Long) As Integer + +' InternetErrorDlg +Declare Function InternetErrorDlg Lib "wininet.dll" (ByVal hWnd As Long, ByVal hInternet As Long, ByVal dwError As Long, ByVal dwFlags As Long, ByVal lppvData As Long) As Long + +' InternetErrorDlg constants +Const FLAGS_ERROR_UI_FILTER_FOR_ERRORS = &H1 +Const FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = &H2 +Const FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = &H4 +Const FLAGS_ERROR_UI_FLAGS_NO_UI = &H8 +Const FLAGS_ERROR_UI_SERIALIZE_DIALOGS = &H10 + +Declare Function GetDesktopWindow Lib "user32.dll" () As Long + +' The possible values for the lInfoLevel parameter include: +Const HTTP_QUERY_CONTENT_TYPE = 1 +Const HTTP_QUERY_CONTENT_LENGTH = 5 +Const HTTP_QUERY_EXPIRES = 10 +Const HTTP_QUERY_LAST_MODIFIED = 11 +Const HTTP_QUERY_PRAGMA = 17 +Const HTTP_QUERY_VERSION = 18 +Const HTTP_QUERY_STATUS_CODE = 19 +Const HTTP_QUERY_STATUS_TEXT = 20 +Const HTTP_QUERY_RAW_HEADERS = 21 +Const HTTP_QUERY_RAW_HEADERS_CRLF = 22 +Const HTTP_QUERY_FORWARDED = 30 +Const HTTP_QUERY_SERVER = 37 +Const HTTP_QUERY_USER_AGENT = 39 +Const HTTP_QUERY_SET_COOKIE = 43 +Const HTTP_QUERY_REQUEST_METHOD = 45 +Const HTTP_STATUS_DENIED = 401 +Const HTTP_STATUS_PROXY_AUTH_REQ = 407 + +' Add this flag to the about flags to get request header. +Const HTTP_QUERY_FLAG_REQUEST_HEADERS = &H80000000 +Const HTTP_QUERY_FLAG_NUMBER = &H20000000 + +' Reads data from a handle opened by the HttpOpenRequest function. +Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer + +Type INTERNET_BUFFERS + dwStructSize As Long ' used for API versioning. Set to sizeof(INTERNET_BUFFERS) + Next As Long ' INTERNET_BUFFERS chain of buffers + lpcszHeader As Long ' pointer to headers (may be NULL) + dwHeadersLength As Long ' length of headers if not NULL + dwHeadersTotal As Long ' size of headers if not enough buffer + lpvBuffer As Long ' pointer to data buffer (may be NULL) + dwBufferLength As Long ' length of data buffer if not NULL + dwBufferTotal As Long ' total size of chunk, or content-length if not chunked + dwOffsetLow As Long ' used for read-ranges (only used in HttpSendRequest2) + dwOffsetHigh As Long +End Type + +Declare Function HttpSendRequestEx Lib "wininet.dll" Alias "HttpSendRequestExA" (ByVal hHttpRequest As Long, lpBuffersIn As INTERNET_BUFFERS, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long + +Declare Function HttpEndRequest Lib "wininet.dll" Alias "HttpEndRequestA" (ByVal hHttpRequest As Long, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long + + +Declare Function InternetWriteFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumberOfBytesToRead As Long, lNumberOfBytesRead As Long) As Integer + +Declare Function FtpOpenFile Lib "wininet.dll" Alias "FtpOpenFileA" (ByVal hFtpSession As Long, ByVal sFileName As String, ByVal lAccess As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long +Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean +Declare Function InternetSetOption Lib "wininet.dll" Alias "InternetSetOptionA" (ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As Any, ByVal lBufferLength As Long) As Integer +Declare Function InternetSetOptionStr Lib "wininet.dll" Alias "InternetSetOptionA" (ByVal hInternet As Long, ByVal lOption As Long, ByVal sBuffer As String, ByVal lBufferLength As Long) As Integer + +' Closes a single Internet handle or a subtree of Internet handles. +Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer + +' Queries an Internet option on the specified handle +Declare Function InternetQueryOption Lib "wininet.dll" Alias "InternetQueryOptionA" (ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As Any, ByRef lBufferLength As Long) As Integer + +' Returns the version number of Wininet.dll. +Const INTERNET_OPTION_VERSION = 40 + +' Contains the version number of the DLL that contains the Windows Internet +' functions (Wininet.dll). This structure is used when passing the +' INTERNET_OPTION_VERSION flag to the InternetQueryOption function. +Type tWinInetDLLVersion + lMajorVersion As Long + lMinorVersion As Long +End Type + +' Adds one or more HTTP request headers to the HTTP request handle. +Declare Function HttpAddRequestHeaders Lib "wininet.dll" Alias "HttpAddRequestHeadersA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lModifiers As Long) As Integer + +' Flags to modify the semantics of this function. Can be a combination of these values: + +' Adds the header only if it does not already exist; otherwise, an error is returned. +Const HTTP_ADDREQ_FLAG_ADD_IF_NEW = &H10000000 + +' Adds the header if it does not exist. Used with REPLACE. +Const HTTP_ADDREQ_FLAG_ADD = &H20000000 + +' Replaces or removes a header. If the header value is empty and the header is found, +' it is removed. If not empty, the header value is replaced +Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000 + +' Internet Errors +Const INTERNET_ERROR_BASE = 12000 + +Const ERROR_INTERNET_OUT_OF_HANDLES = (INTERNET_ERROR_BASE + 1) +Const ERROR_INTERNET_TIMEOUT = (INTERNET_ERROR_BASE + 2) +Const ERROR_INTERNET_EXTENDED_ERROR = (INTERNET_ERROR_BASE + 3) +Const ERROR_INTERNET_INTERNAL_ERROR = (INTERNET_ERROR_BASE + 4) +Const ERROR_INTERNET_INVALID_URL = (INTERNET_ERROR_BASE + 5) +Const ERROR_INTERNET_UNRECOGNIZED_SCHEME = (INTERNET_ERROR_BASE + 6) +Const ERROR_INTERNET_NAME_NOT_RESOLVED = (INTERNET_ERROR_BASE + 7) +Const ERROR_INTERNET_PROTOCOL_NOT_FOUND = (INTERNET_ERROR_BASE + 8) +Const ERROR_INTERNET_INVALID_OPTION = (INTERNET_ERROR_BASE + 9) +Const ERROR_INTERNET_BAD_OPTION_LENGTH = (INTERNET_ERROR_BASE + 10) +Const ERROR_INTERNET_OPTION_NOT_SETTABLE = (INTERNET_ERROR_BASE + 11) +Const ERROR_INTERNET_SHUTDOWN = (INTERNET_ERROR_BASE + 12) +Const ERROR_INTERNET_INCORRECT_USER_NAME = (INTERNET_ERROR_BASE + 13) +Const ERROR_INTERNET_INCORRECT_PASSWORD = (INTERNET_ERROR_BASE + 14) +Const ERROR_INTERNET_LOGIN_FAILURE = (INTERNET_ERROR_BASE + 15) +Const ERROR_INTERNET_INVALID_OPERATION = (INTERNET_ERROR_BASE + 16) +Const ERROR_INTERNET_OPERATION_CANCELLED = (INTERNET_ERROR_BASE + 17) +Const ERROR_INTERNET_INCORRECT_HANDLE_TYPE = (INTERNET_ERROR_BASE + 18) +Const ERROR_INTERNET_INCORRECT_HANDLE_STATE = (INTERNET_ERROR_BASE + 19) +Const ERROR_INTERNET_NOT_PROXY_REQUEST = (INTERNET_ERROR_BASE + 20) +Const ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND = (INTERNET_ERROR_BASE + 21) +Const ERROR_INTERNET_BAD_REGISTRY_PARAMETER = (INTERNET_ERROR_BASE + 22) +Const ERROR_INTERNET_NO_DIRECT_ACCESS = (INTERNET_ERROR_BASE + 23) +Const ERROR_INTERNET_NO_CONTEXT = (INTERNET_ERROR_BASE + 24) +Const ERROR_INTERNET_NO_CALLBACK = (INTERNET_ERROR_BASE + 25) +Const ERROR_INTERNET_REQUEST_PENDING = (INTERNET_ERROR_BASE + 26) +Const ERROR_INTERNET_INCORRECT_FORMAT = (INTERNET_ERROR_BASE + 27) +Const ERROR_INTERNET_ITEM_NOT_FOUND = (INTERNET_ERROR_BASE + 28) +Const ERROR_INTERNET_CANNOT_CONNECT = (INTERNET_ERROR_BASE + 29) +Const ERROR_INTERNET_CONNECTION_ABORTED = (INTERNET_ERROR_BASE + 30) +Const ERROR_INTERNET_CONNECTION_RESET = (INTERNET_ERROR_BASE + 31) +Const ERROR_INTERNET_FORCE_RETRY = (INTERNET_ERROR_BASE + 32) +Const ERROR_INTERNET_INVALID_PROXY_REQUEST = (INTERNET_ERROR_BASE + 33) +Const ERROR_INTERNET_NEED_UI = (INTERNET_ERROR_BASE + 34) + +Const ERROR_INTERNET_HANDLE_EXISTS = (INTERNET_ERROR_BASE + 36) +Const ERROR_INTERNET_SEC_CERT_DATE_INVALID = (INTERNET_ERROR_BASE + 37) +Const ERROR_INTERNET_SEC_CERT_CN_INVALID = (INTERNET_ERROR_BASE + 38) +Const ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR = (INTERNET_ERROR_BASE + 39) +Const ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR = (INTERNET_ERROR_BASE + 40) +Const ERROR_INTERNET_MIXED_SECURITY = (INTERNET_ERROR_BASE + 41) +Const ERROR_INTERNET_CHG_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 42) +Const ERROR_INTERNET_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 43) +Const ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED = (INTERNET_ERROR_BASE + 44) +Const ERROR_INTERNET_INVALID_CA = (INTERNET_ERROR_BASE + 45) +Const ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP = (INTERNET_ERROR_BASE + 46) +Const ERROR_INTERNET_ASYNC_THREAD_FAILED = (INTERNET_ERROR_BASE + 47) +Const ERROR_INTERNET_REDIRECT_SCHEME_CHANGE = (INTERNET_ERROR_BASE + 48) +Const ERROR_INTERNET_DIALOG_PENDING = (INTERNET_ERROR_BASE + 49) +Const ERROR_INTERNET_RETRY_DIALOG = (INTERNET_ERROR_BASE + 50) +Const ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR = (INTERNET_ERROR_BASE + 52) +Const ERROR_INTERNET_INSERT_CDROM = (INTERNET_ERROR_BASE + 53) + +' FTP API errors + +Const ERROR_FTP_TRANSFER_IN_PROGRESS = (INTERNET_ERROR_BASE + 110) +Const ERROR_FTP_DROPPED = (INTERNET_ERROR_BASE + 111) +Const ERROR_FTP_NO_PASSIVE_MODE = (INTERNET_ERROR_BASE + 112) + +' gopher API errors + +Const ERROR_GOPHER_PROTOCOL_ERROR = (INTERNET_ERROR_BASE + 130) +Const ERROR_GOPHER_NOT_FILE = (INTERNET_ERROR_BASE + 131) +Const ERROR_GOPHER_DATA_ERROR = (INTERNET_ERROR_BASE + 132) +Const ERROR_GOPHER_END_OF_DATA = (INTERNET_ERROR_BASE + 133) +Const ERROR_GOPHER_INVALID_LOCATOR = (INTERNET_ERROR_BASE + 134) +Const ERROR_GOPHER_INCORRECT_LOCATOR_TYPE = (INTERNET_ERROR_BASE + 135) +Const ERROR_GOPHER_NOT_GOPHER_PLUS = (INTERNET_ERROR_BASE + 136) +Const ERROR_GOPHER_ATTRIBUTE_NOT_FOUND = (INTERNET_ERROR_BASE + 137) +Const ERROR_GOPHER_UNKNOWN_LOCATOR = (INTERNET_ERROR_BASE + 138) + +' HTTP API errors + +Const ERROR_HTTP_HEADER_NOT_FOUND = (INTERNET_ERROR_BASE + 150) +Const ERROR_HTTP_DOWNLEVEL_SERVER = (INTERNET_ERROR_BASE + 151) +Const ERROR_HTTP_INVALID_SERVER_RESPONSE = (INTERNET_ERROR_BASE + 152) +Const ERROR_HTTP_INVALID_HEADER = (INTERNET_ERROR_BASE + 153) +Const ERROR_HTTP_INVALID_QUERY_REQUEST = (INTERNET_ERROR_BASE + 154) +Const ERROR_HTTP_HEADER_ALREADY_EXISTS = (INTERNET_ERROR_BASE + 155) +Const ERROR_HTTP_REDIRECT_FAILED = (INTERNET_ERROR_BASE + 156) +Const ERROR_HTTP_NOT_REDIRECTED = (INTERNET_ERROR_BASE + 160) +Const ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 161) +Const ERROR_HTTP_COOKIE_DECLINED = (INTERNET_ERROR_BASE + 162) +Const ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 168) + +' additional Internet API error codes + +Const ERROR_INTERNET_SECURITY_CHANNEL_ERROR = (INTERNET_ERROR_BASE + 157) +Const ERROR_INTERNET_UNABLE_TO_CACHE_FILE = (INTERNET_ERROR_BASE + 158) +Const ERROR_INTERNET_TCPIP_NOT_INSTALLED = (INTERNET_ERROR_BASE + 159) +Const ERROR_INTERNET_DISCONNECTED = (INTERNET_ERROR_BASE + 163) +Const ERROR_INTERNET_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 164) +Const ERROR_INTERNET_PROXY_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 165) + +Const ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT = (INTERNET_ERROR_BASE + 166) +Const ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT = (INTERNET_ERROR_BASE + 167) +Const ERROR_INTERNET_SEC_INVALID_CERT = (INTERNET_ERROR_BASE + 169) +Const ERROR_INTERNET_SEC_CERT_REVOKED = (INTERNET_ERROR_BASE + 170) + +' InternetAutodial specific errors + +Const ERROR_INTERNET_FAILED_DUETOSECURITYCHECK = (INTERNET_ERROR_BASE + 171) + +Const INTERNET_ERROR_LAST = ERROR_INTERNET_FAILED_DUETOSECURITYCHECK + +' +' flags common to open functions (not InternetOpen()): +' + +Const INTERNET_FLAG_RELOAD = &H80000000 ' retrieve the original item + +' +' flags for InternetOpenUrl(): +' + +Const INTERNET_FLAG_RAW_DATA = &H40000000 ' FTP/gopher find: receive the item as raw (structured) data +Const INTERNET_FLAG_EXISTING_CONNECT = &H20000000 ' FTP: use existing InternetConnect handle for server if possible + +' +' flags for InternetOpen(): +' + +Const INTERNET_FLAG_ASYNC = &H10000000 ' this request is asynchronous (where supported) + +' +' protocol-specific flags: +' + +Const INTERNET_FLAG_PASSIVE = &H8000000 ' used for FTP connections + +' +' additional cache flags +' + +Const INTERNET_FLAG_NO_CACHE_WRITE = &H4000000 ' don't write this item to the cache +Const INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE +Const INTERNET_FLAG_MAKE_PERSISTENT = &H2000000 ' make this item persistent in cache +Const INTERNET_FLAG_FROM_CACHE = &H1000000 ' use offline semantics +Const INTERNET_FLAG_OFFLINE = INTERNET_FLAG_FROM_CACHE + +' +' additional flags +' + +Const INTERNET_FLAG_SECURE = &H800000 ' use PCT/SSL if applicable (HTTP) +Const INTERNET_FLAG_KEEP_CONNECTION = &H400000 ' use keep-alive semantics +Const INTERNET_FLAG_NO_AUTO_REDIRECT = &H200000 ' don't handle redirections automatically +Const INTERNET_FLAG_READ_PREFETCH = &H100000 ' do background read prefetch +Const INTERNET_FLAG_NO_COOKIES = &H80000 ' no automatic cookie handling +Const INTERNET_FLAG_NO_AUTH = &H40000 ' no automatic authentication handling +Const INTERNET_FLAG_CACHE_IF_NET_FAIL = &H10000 ' return cache file if net request fails + +' +' Security Ignore Flags, Allow HttpOpenRequest to overide +' Secure Channel (SSL/PCT) failures of the following types. +' + +Const INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = &H8000 ' ex: https:// to http:// +Const INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = &H4000 ' ex: http:// to https:// +Const INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = &H2000 ' expired X509 Cert. +Const INTERNET_FLAG_IGNORE_CERT_CN_INVALID = &H1000 ' bad common name in X509 Cert. + +' +' more caching flags +' + +Const INTERNET_FLAG_RESYNCHRONIZE = &H800 ' asking wininet to update an item if it is newer +Const INTERNET_FLAG_HYPERLINK = &H400 ' asking wininet to do hyperlinking semantic which works right for scripts +Const INTERNET_FLAG_NO_UI = &H200 ' no cookie popup +Const INTERNET_FLAG_PRAGMA_NOCACHE = &H100 ' asking wininet to add "pragma: no-cache" +Const INTERNET_FLAG_CACHE_ASYNC = &H80 ' ok to perform lazy cache-write +Const INTERNET_FLAG_FORMS_SUBMIT = &H40 ' this is a forms submit +Const INTERNET_FLAG_NEED_FILE = &H10 ' need a file for this request +Const INTERNET_FLAG_MUST_CACHE_REQUEST = INTERNET_FLAG_NEED_FILE + +' +' flags for FTP +' + +Const INTERNET_FLAG_TRANSFER_ASCII = FTP_TRANSFER_TYPE_ASCII ' = &H00000001 +Const INTERNET_FLAG_TRANSFER_BINARY = FTP_TRANSFER_TYPE_BINARY ' = &H00000002 + +' +' flags field masks +' + +Const SECURITY_INTERNET_MASK = INTERNET_FLAG_IGNORE_CERT_CN_INVALID Or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID Or INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS Or INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP + +Const INTERNET_FLAGS_MASK = INTERNET_FLAG_RELOAD Or INTERNET_FLAG_RAW_DATA Or INTERNET_FLAG_EXISTING_CONNECT Or INTERNET_FLAG_ASYNC Or INTERNET_FLAG_PASSIVE Or INTERNET_FLAG_NO_CACHE_WRITE Or INTERNET_FLAG_MAKE_PERSISTENT Or INTERNET_FLAG_FROM_CACHE Or INTERNET_FLAG_SECURE Or INTERNET_FLAG_KEEP_CONNECTION Or INTERNET_FLAG_NO_AUTO_REDIRECT Or INTERNET_FLAG_READ_PREFETCH Or INTERNET_FLAG_NO_COOKIES Or INTERNET_FLAG_NO_AUTH Or INTERNET_FLAG_CACHE_IF_NET_FAIL Or SECURITY_INTERNET_MASK Or INTERNET_FLAG_RESYNCHRONIZE Or INTERNET_FLAG_HYPERLINK Or INTERNET_FLAG_NO_UI Or INTERNET_FLAG_PRAGMA_NOCACHE Or INTERNET_FLAG_CACHE_ASYNC Or INTERNET_FLAG_FORMS_SUBMIT Or INTERNET_FLAG_NEED_FILE Or INTERNET_FLAG_TRANSFER_BINARY Or INTERNET_FLAG_TRANSFER_ASCII + + +Const INTERNET_ERROR_MASK_INSERT_CDROM = &H1 + +Const INTERNET_OPTIONS_MASK = (Not INTERNET_FLAGS_MASK) + +' +' common per-API flags (new APIs) +' + +Const WININET_API_FLAG_ASYNC = &H1 ' force async operation +Const WININET_API_FLAG_SYNC = &H4 ' force sync operation +Const WININET_API_FLAG_USE_CONTEXT = &H8 ' use value supplied in dwContext (even if 0) + +' +' INTERNET_NO_CALLBACK - if this value is presented as the dwContext parameter +' then no call-backs will be made for that API +' + +Const INTERNET_NO_CALLBACK = 0 + diff --git a/cadVb/COMMON/TOOLS/VB/WINLESS/LTWTCT98.CHI b/cadVb/COMMON/TOOLS/VB/WINLESS/LTWTCT98.CHI new file mode 100644 index 0000000..45dbd6f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/WINLESS/LTWTCT98.CHI differ diff --git a/cadVb/COMMON/TOOLS/VB/WINLESS/LTWTCT98.CHM b/cadVb/COMMON/TOOLS/VB/WINLESS/LTWTCT98.CHM new file mode 100644 index 0000000..f629d80 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/WINLESS/LTWTCT98.CHM differ diff --git a/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.DEP b/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.DEP new file mode 100644 index 0000000..3406ee0 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSWLess.ocx + +; Default Dependencies ---------------------------------------------- + +[MSWLess.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSWLess.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLess.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSWLess.ocx <0007>] +Uses1=MSWLsDE.dll +Uses2= + +[MSWLsDE.dll <0007>] +Uses1= +CABFileName=MSWLsDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSWLess.ocx <000C>] +Uses1=MSWLsFR.dll +Uses2= + +[MSWLsFR.dll <000C>] +Uses1= +CABFileName=MSWLsFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSWLess.ocx <0010>] +Uses1=MSWLsIT.dll +Uses2= + +[MSWLsIT.dll <0010>] +Uses1= +CABFileName=MSWLsIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSWLess.ocx <000A>] +Uses1=MSWLsES.dll +Uses2= + +[MSWLsES.dll <000A>] +Uses1= +CABFileName=MSWLsES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSWLess.ocx <0011>] +Uses1=MSWLsJP.dll +Uses2= + +[MSWLsJP.dll <0011>] +Uses1= +CABFileName=MSWLsJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSWLess.ocx <0012>] +Uses1=MSWLsKO.dll +Uses2= + +[MSWLsKO.dll <0012>] +Uses1= +CABFileName=MSWLsKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSWLess.ocx <0404>] +Uses1=MSWLsCHT.dll +Uses2= + +[MSWLsCHT.dll <0404>] +Uses1= +CABFileName=MSWLsCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSWLess.ocx <0804>] +Uses1=MSWLsCHS.dll +Uses2= + +[MSWLsCHS.dll <0804>] +Uses1= +CABFileName=MSWLsCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWLsCHS.inf + diff --git a/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.OCX b/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.OCX new file mode 100644 index 0000000..2f8d07c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.OCX differ diff --git a/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.REG b/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.REG new file mode 100644 index 0000000..fc43299 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/WINLESS/MSWLESS.REG @@ -0,0 +1,4 @@ +REGEDIT +HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. + +HKEY_CLASSES_ROOT\Licenses\80E80EF0-DBBE-11D0-BCE2-00A0C90DCA10 = qijimitpmpnpxplpvjnikpkpqoxjmpkpoivj \ No newline at end of file diff --git a/cadVb/COMMON/TOOLS/VB/XTNSBLTY/VBIDE.H b/cadVb/COMMON/TOOLS/VB/XTNSBLTY/VBIDE.H new file mode 100644 index 0000000..6c7bafd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VB/XTNSBLTY/VBIDE.H @@ -0,0 +1,3825 @@ +/* This header file machine-generated by mktyplib.exe */ +/* Interface to type library: VBIDE */ + +#ifndef _VBIDE_H_ +#define _VBIDE_H_ + +DEFINE_GUID(LIBID_VBIDE,0xEF404E00L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); +#ifndef BEGIN_INTERFACE +#define BEGIN_INTERFACE +#endif + +interface VBEOBJ; + +interface _VBProjects; + +#ifdef __cplusplus +class VBProjects; +#endif + +interface _VBProject; + +#ifdef __cplusplus +class VBProject; +#endif + +interface _VBComponents; + +#ifdef __cplusplus +class VBComponents; +#endif + +interface _VBComponent; + +#ifdef __cplusplus +class VBComponent; +#endif + +interface VBForm; + +interface _ContainedVBControls; + +#ifdef __cplusplus +class ContainedVBControls; +#endif + +interface _VBControls; + +#ifdef __cplusplus +class VBControls; +#endif + +interface _SelectedControls; + +#ifdef __cplusplus +class SelectedVBControls; +#endif + +interface VBControl; + +interface _AddIns; + +#ifdef __cplusplus +class AddIns; +#endif + +interface AddIn; + +interface _Windows; + +#ifdef __cplusplus +class Windows; +#endif + +interface Window; + +interface _LinkedWindows; + +#ifdef __cplusplus +class LinkedWindows; +#endif + +interface _Properties; + +#ifdef __cplusplus +class Properties; +#endif + +interface Events; + +interface _VBProjectsEvents; + +#ifdef __cplusplus +class VBProjectsEvents; +#endif + +interface _VBComponentsEvents; + +#ifdef __cplusplus +class VBComponentsEvents; +#endif + +interface _ReferencesEvents; + +#ifdef __cplusplus +class ReferencesEvents; +#endif + +#ifdef __cplusplus +class VBControlsEvents; +#endif + +#ifdef __cplusplus +class SelectedVBControlsEvents; +#endif + +#ifdef __cplusplus +class FileControlEvents; +#endif + +#ifdef __cplusplus +class CommandBarEvents; +#endif + +#ifdef __cplusplus +class CodeModule; +#endif + +#ifdef __cplusplus +class CodePanes; +#endif + +#ifdef __cplusplus +class CodePane; +#endif + +interface Reference; + +interface _References; + +#ifdef __cplusplus +class References; +#endif + +#ifdef __cplusplus +class Members; +#endif + +interface Member; + +interface Application; + +interface _ProjectTemplate; + +interface _Components; + +#ifdef __cplusplus +class Components; +#endif + +interface _Component; + +#ifdef __cplusplus +class Component; +#endif + +interface SelectedComponents; + +interface FormTemplate; + +interface ControlTemplate; + +interface ControlTemplates; + +interface SelectedControlTemplates; + +interface _MenuLine; + +interface SubMenu; + +interface _FileControl; + +DEFINE_GUID(IID_Application,0xEF404E01L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: Application */ +#undef INTERFACE +#define INTERFACE Application + +DECLARE_INTERFACE_(Application, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* Application methods */ + STDMETHOD(get_Name)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_FullName)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_LastUsedPath)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(put_LastUsedPath)(THIS_ BSTR bstrNewPath) PURE; + STDMETHOD(get_Version)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_ActiveProject)(THIS_ _ProjectTemplate FAR* FAR* lppptReturn) PURE; + STDMETHOD(get_FileControl)(THIS_ _FileControl FAR* FAR* lppfcReturn) PURE; + STDMETHOD(get_AddInMenu)(THIS_ SubMenu FAR* FAR* lppmReturn) PURE; + STDMETHOD(LoadProject)(THIS_ BSTR FileName, VARIANT_BOOL ReplaceCurrent, _ProjectTemplate FAR* FAR* lppptReturn) PURE; + STDMETHOD(get_ReadOnlyMode)(THIS_ short FAR* pReadOnlyMode) PURE; + STDMETHOD(put_ReadOnlyMode)(THIS_ short ReadOnlyMode) PURE; +}; + +typedef enum vbextFileTypes { + vbextFileTypeForm = 0, + vbextFileTypeModule = 1, + vbextFileTypeClass = 2, + vbextFileTypeProject = 3, + vbextFileTypeExe = 4, + vbextFileTypeFrx = 5, + vbextFileTypeRes = 6, + vbextFileTypeUserControl = 7, + vbextFileTypePropertyPage = 8, + vbextFileTypeDocObject = 9, + vbextFileTypeBinary = 10, + vbextFileTypeGroupProject = 11, + vbextFileTypeDesigners = 12 +} vbextFileTypes; + +typedef enum vbext_FileType { + vbext_ft_Form = 0, + vbext_ft_Module = 1, + vbext_ft_Class = 2, + vbext_ft_Project = 3, + vbext_ft_Exe = 4, + vbext_ft_Frx = 5, + vbext_ft_Res = 6, + vbext_ft_UserControl = 7, + vbext_ft_PropertyPage = 8, + vbext_ft_DocObject = 9, + vbext_ft_Binary = 10, + vbext_ft_GroupProject = 11, + vbext_ft_Designers = 12 +} vbext_FileType; + +typedef enum vbextWrite { + vbextWriteSuccess = 0, + vbextWriteCancelled = 1, + vbextWriteFailed = 2 +} vbextWrite; + +typedef enum vbextDisconnectMode { + vbextHostShutdown = 0, + vbextUserClosed = 1 +} vbextDisconnectMode; + +typedef enum vbext_VBADisplayModel { + vbext_dm_SDI = 0, + vbext_dm_MDI = 1 +} vbext_VBADisplayModel; + +DEFINE_GUID(IID_VBEOBJ,0x0002E100L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: VBEOBJ */ +#undef INTERFACE +#define INTERFACE VBEOBJ + +DECLARE_INTERFACE_(VBEOBJ, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* VBEOBJ methods */ + STDMETHOD(get_Name)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_FullName)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_LastUsedPath)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(put_LastUsedPath)(THIS_ BSTR bstrNewPath) PURE; + STDMETHOD(get_Version)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_ReadOnlyMode)(THIS_ short FAR* pReadOnlyMode) PURE; + STDMETHOD(put_ReadOnlyMode)(THIS_ short ReadOnlyMode) PURE; + STDMETHOD(get_VBProjects)(THIS_ VBProjects FAR* FAR* lppptReturn) PURE; + STDMETHOD(get_CommandBars)(THIS_ CommandBars FAR* FAR* ppcbs) PURE; + STDMETHOD(get_CodePanes)(THIS_ CodePanes FAR* FAR* ppCodePanes) PURE; + STDMETHOD(get_Windows)(THIS_ Windows FAR* FAR* ppwnsVBWindows) PURE; + STDMETHOD(get_Events)(THIS_ Events FAR* FAR* ppevtEvents) PURE; + STDMETHOD(get_AddIns)(THIS_ AddIns FAR* FAR* lpppAddIns) PURE; + STDMETHOD(get_ActiveVBProject)(THIS_ VBProject FAR* FAR* lppptReturn) PURE; + STDMETHOD(putref_ActiveVBProject)(THIS_ VBProject FAR* lppptReturn) PURE; + STDMETHOD(get_SelectedVBComponent)(THIS_ VBComponent FAR* FAR* lppscReturn) PURE; + STDMETHOD(get_TemplatePath)(THIS_ BSTR FAR* lpbstrPath) PURE; + STDMETHOD(get_MainWindow)(THIS_ Window FAR* FAR* ppwin) PURE; + STDMETHOD(get_ActiveWindow)(THIS_ Window FAR* FAR* ppwinActive) PURE; + STDMETHOD(get_ActiveCodePane)(THIS_ CodePane FAR* FAR* ppCodePane) PURE; + STDMETHOD(putref_ActiveCodePane)(THIS_ CodePane FAR* ppCodePane) PURE; + STDMETHOD(Quit)(THIS) PURE; + STDMETHOD(get_DisplayModel)(THIS_ enum vbext_VBADisplayModel FAR* lpDispModel) PURE; + STDMETHOD(put_DisplayModel)(THIS_ enum vbext_VBADisplayModel DispModel) PURE; + STDMETHOD(get_Reserved0)(THIS_ AddIns FAR* FAR* lpppAddIns) PURE; +}; + +DEFINE_GUID(IID__FileControl,0xEF404E08L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: _FileControl */ +#undef INTERFACE +#define INTERFACE _FileControl + +DECLARE_INTERFACE_(_FileControl, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _FileControl methods */ + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(ConnectEvents)(THIS_ IDispatch * pdspSink, long FAR* lplReturn) PURE; + STDMETHOD(DisconnectEvents)(THIS_ long hConnection) PURE; +}; + +DEFINE_GUID(DIID__FileControlEvents,0xEF404E0AL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of dispatch interface: _FileControlEvents */ +#undef INTERFACE +#define INTERFACE _FileControlEvents + +DECLARE_INTERFACE_(_FileControlEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _FileControlEvents methods: + void AfterAddFile(BSTR FileName); + void AfterChangeFileName(short FileType, BSTR NewName, BSTR OldName); + void AfterCloseFile(SAFEARRAY FAR* FileNames); + void AfterWriteFile(BSTR FileName, short Result); + void AfterRemoveFile(BSTR FileName); + void BeforeLoadFile(SAFEARRAY FAR* FileNames); + void DoGetAddFileName(SAFEARRAY FAR* FileNames, VARIANT_BOOL FAR* CancelDefault); + void DoGetNewFileName(short FileType, BSTR FAR* NewName, BSTR OldName, VARIANT_BOOL FAR* CancelDefault); + void DoGetOpenProjectName(BSTR FAR* ProjectName, VARIANT_BOOL FAR* CancelDefault); + void RequestChangeFileName(short FileType, BSTR NewName, BSTR OldName, VARIANT_BOOL FAR* Cancel); + void RequestWriteFile(BSTR FileName, VARIANT_BOOL FAR* Cancel); + void AfterNewProject(BSTR ProjectName); + */ +}; + +DEFINE_GUID(CLSID_FileControl,0xEF404E0BL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +#ifdef __cplusplus +class FileControl; +#endif + +DEFINE_GUID(IID_MenuItems,0xEF404E12L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: MenuItems */ +#undef INTERFACE +#define INTERFACE MenuItems + +DECLARE_INTERFACE_(MenuItems, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* MenuItems methods */ + STDMETHOD(Item)(THIS_ BSTR Index, IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(Add)(THIS_ BSTR bstrCaption, _MenuLine FAR* FAR* lppmlReturn) PURE; + STDMETHOD(AddMenu)(THIS_ BSTR bstrCaption, SubMenu FAR* FAR* lppmReturn) PURE; + STDMETHOD(Remove)(THIS_ IDispatch * MenuItem, long FAR* lpsReturn) PURE; +}; + +DEFINE_GUID(IID_SubMenu,0xEF404E15L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: SubMenu */ +#undef INTERFACE +#define INTERFACE SubMenu + +DECLARE_INTERFACE_(SubMenu, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* SubMenu methods */ + STDMETHOD(get_MenuItems)(THIS_ MenuItems FAR* FAR* lppmiReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ MenuItems FAR* FAR* lppmiReturn) PURE; + STDMETHOD(get_Caption)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(put_Caption)(THIS_ BSTR bstrCaption) PURE; + STDMETHOD(get_Enabled)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_Enabled)(THIS_ VARIANT_BOOL sEnabled) PURE; +}; + +DEFINE_GUID(IID__MenuLine,0xEF404E18L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: _MenuLine */ +#undef INTERFACE +#define INTERFACE _MenuLine + +DECLARE_INTERFACE_(_MenuLine, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _MenuLine methods */ + STDMETHOD(get_Caption)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(put_Caption)(THIS_ BSTR bstrCaption) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ MenuItems FAR* FAR* lppmiReturn) PURE; + STDMETHOD(get_Enabled)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_Enabled)(THIS_ VARIANT_BOOL sEnabled) PURE; + STDMETHOD(get_Checked)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_Checked)(THIS_ VARIANT_BOOL fChecked) PURE; + STDMETHOD(get_HelpContextID)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(put_HelpContextID)(THIS_ long ulHelpID) PURE; + STDMETHOD(get_HelpFile)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(put_HelpFile)(THIS_ BSTR bstrFileName) PURE; + STDMETHOD(ConnectEvents)(THIS_ IDispatch * pdspSink, long FAR* lplReturn) PURE; + STDMETHOD(DisconnectEvents)(THIS_ long hConnection) PURE; +}; + +DEFINE_GUID(DIID_MenuLineEvents,0xEF404E1AL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of dispatch interface: MenuLineEvents */ +#undef INTERFACE +#define INTERFACE MenuLineEvents + +DECLARE_INTERFACE_(MenuLineEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* MenuLineEvents methods: + void AfterClick(void); + */ +}; + +DEFINE_GUID(CLSID_MenuLine,0xEF404E1BL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +#ifdef __cplusplus +class MenuLine; +#endif + +typedef enum vbext_WindowType { + vbext_wt_CodeWindow = 0, + vbext_wt_Designer = 1, + vbext_wt_Browser = 2, + vbext_wt_Watch = 3, + vbext_wt_Locals = 4, + vbext_wt_Immediate = 5, + vbext_wt_ProjectWindow = 6, + vbext_wt_PropertyWindow = 7, + vbext_wt_Find = 8, + vbext_wt_FindReplace = 9, + vbext_wt_Toolbox = 10, + vbext_wt_LinkedWindowFrame = 11, + vbext_wt_MainWindow = 12, + vbext_wt_Preview = 13, + vbext_wt_ColorPalette = 14, + vbext_wt_ToolWindow = 15 +} vbext_WindowType; + +typedef enum vbext_WindowState { + vbext_ws_Normal = 0, + vbext_ws_Minimize = 1, + vbext_ws_Maximize = 2 +} vbext_WindowState; + +DEFINE_GUID(IID_Window,0x0002E10EL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: Window */ +#undef INTERFACE +#define INTERFACE Window + +DECLARE_INTERFACE_(Window, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* Window methods */ + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Collection)(THIS_ Windows FAR* FAR* lppaReturn) PURE; + STDMETHOD(Close)(THIS) PURE; + STDMETHOD(get_Caption)(THIS_ BSTR FAR* pbstrTitle) PURE; + STDMETHOD(get_Visible)(THIS_ VARIANT_BOOL FAR* pfVisible) PURE; + STDMETHOD(put_Visible)(THIS_ VARIANT_BOOL fVisible) PURE; + STDMETHOD(get_Left)(THIS_ long FAR* plLeft) PURE; + STDMETHOD(put_Left)(THIS_ long lLeft) PURE; + STDMETHOD(get_Top)(THIS_ long FAR* plTop) PURE; + STDMETHOD(put_Top)(THIS_ long lTop_r) PURE; + STDMETHOD(get_Width)(THIS_ long FAR* plWidth) PURE; + STDMETHOD(put_Width)(THIS_ long lWidth) PURE; + STDMETHOD(get_Height)(THIS_ long FAR* plHeight) PURE; + STDMETHOD(put_Height)(THIS_ long lHeight_r) PURE; + STDMETHOD(get_WindowState)(THIS_ enum vbext_WindowState FAR* plWindowState) PURE; + STDMETHOD(put_WindowState)(THIS_ enum vbext_WindowState wstWindowState) PURE; + STDMETHOD(SetFocus)(THIS) PURE; + STDMETHOD(get_Type)(THIS_ enum vbext_WindowType FAR* pKind) PURE; + STDMETHOD(SetKind)(THIS_ enum vbext_WindowType eKind) PURE; + STDMETHOD(get_LinkedWindows)(THIS_ LinkedWindows FAR* FAR* ppwnsCollection) PURE; + STDMETHOD(get_LinkedWindowFrame)(THIS_ Window FAR* FAR* ppwinFrame) PURE; + STDMETHOD(Detach)(THIS) PURE; + STDMETHOD(Attach)(THIS_ long lWindowHandle) PURE; + STDMETHOD(get_HWnd)(THIS_ long FAR* plWindowHandle) PURE; +}; + +DEFINE_GUID(IID__Windows,0x0002E10DL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _Windows */ +#undef INTERFACE +#define INTERFACE _Windows + +DECLARE_INTERFACE_(_Windows, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _Windows methods */ + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(Item)(THIS_ VARIANT index, Window FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(CreateToolWindow)(THIS_ AddIn FAR* AddInInst, BSTR ProgId, BSTR Caption, BSTR GuidPosition, IDispatch * FAR* DocObj, Window FAR* FAR* lppcReturn) PURE; +}; + +DEFINE_GUID(CLSID_Windows,0x0002E184L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class Windows; +#endif + +DEFINE_GUID(IID__LinkedWindows,0x0002E10FL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _LinkedWindows */ +#undef INTERFACE +#define INTERFACE _LinkedWindows + +DECLARE_INTERFACE_(_LinkedWindows, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _LinkedWindows methods */ + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ Window FAR* FAR* ppptReturn) PURE; + STDMETHOD(Item)(THIS_ VARIANT index, Window FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(Remove)(THIS_ Window FAR* Window) PURE; + STDMETHOD(Add)(THIS_ Window FAR* Window) PURE; +}; + +DEFINE_GUID(CLSID_LinkedWindows,0x0002E186L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class LinkedWindows; +#endif + +DEFINE_GUID(IID_Events,0x0002E112L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: Events */ +#undef INTERFACE +#define INTERFACE Events + +DECLARE_INTERFACE_(Events, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* Events methods */ + STDMETHOD(get_VBProjectsEvents)(THIS_ VBProjectsEvents FAR* FAR* ppceNew) PURE; + STDMETHOD(get_VBComponentsEvents)(THIS_ VBProject FAR* VBProject, VBComponentsEvents FAR* FAR* pcceNew) PURE; + STDMETHOD(get_ReferencesEvents)(THIS_ VBProject FAR* VBProject, ReferencesEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_VBControlsEvents)(THIS_ VBProject FAR* VBProject, VBForm FAR* VBForm, VBControlsEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_SelectedVBControlsEvents)(THIS_ VBProject FAR* VBProject, VBForm FAR* VBForm, SelectedVBControlsEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_CommandBarEvents)(THIS_ IDispatch * CommandBarControl, CommandBarEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_FileControlEvents)(THIS_ VBProject FAR* VBProject, FileControlEvents FAR* FAR* prceNew) PURE; +}; + +DEFINE_GUID(IID__VBProjectsEvents,0x0002E191L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBProjectsEvents */ +#undef INTERFACE +#define INTERFACE _VBProjectsEvents + +DECLARE_INTERFACE_(_VBProjectsEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _VBProjectsEvents methods */ +}; + +DEFINE_GUID(DIID__dispVBProjectsEvents,0x0002E190L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispVBProjectsEvents */ +#undef INTERFACE +#define INTERFACE _dispVBProjectsEvents + +DECLARE_INTERFACE_(_dispVBProjectsEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispVBProjectsEvents methods: + void ItemAdded(VBProject FAR* VBProject); + void ItemRemoved(VBProject FAR* VBProject); + void ItemRenamed(VBProject FAR* VBProject, BSTR OldName); + void ItemActivated(VBProject FAR* VBProject); + */ +}; + +DEFINE_GUID(CLSID_VBProjectsEvents,0x0002E114L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class VBProjectsEvents; +#endif + +DEFINE_GUID(IID__VBComponentsEvents,0x0002E192L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBComponentsEvents */ +#undef INTERFACE +#define INTERFACE _VBComponentsEvents + +DECLARE_INTERFACE_(_VBComponentsEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _VBComponentsEvents methods */ +}; + +DEFINE_GUID(DIID__dispVBComponentsEvents,0x0002E193L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispVBComponentsEvents */ +#undef INTERFACE +#define INTERFACE _dispVBComponentsEvents + +DECLARE_INTERFACE_(_dispVBComponentsEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispVBComponentsEvents methods: + void ItemAdded(VBComponent FAR* VBComponent); + void ItemRemoved(VBComponent FAR* VBComponent); + void ItemRenamed(VBComponent FAR* VBComponent, BSTR OldName); + void ItemSelected(VBComponent FAR* VBComponent); + void ItemActivated(VBComponent FAR* VBComponent); + void ItemReloaded(VBComponent FAR* VBComponent); + */ +}; + +DEFINE_GUID(CLSID_VBComponentsEvents,0x0002E117L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class VBComponentsEvents; +#endif + +DEFINE_GUID(IID__ReferencesEvents,0x0002E195L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _ReferencesEvents */ +#undef INTERFACE +#define INTERFACE _ReferencesEvents + +DECLARE_INTERFACE_(_ReferencesEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _ReferencesEvents methods */ +}; + +DEFINE_GUID(DIID__dispReferencesEvents,0x0002E194L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispReferencesEvents */ +#undef INTERFACE +#define INTERFACE _dispReferencesEvents + +DECLARE_INTERFACE_(_dispReferencesEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispReferencesEvents methods: + void ItemAdded(Reference FAR* Reference); + void ItemRemoved(Reference FAR* Reference); + */ +}; + +DEFINE_GUID(CLSID_ReferencesEvents,0x0002E196L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class ReferencesEvents; +#endif + +DEFINE_GUID(IID__ContainedVBControlsEvents,0x0002E12AL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _ContainedVBControlsEvents */ +#undef INTERFACE +#define INTERFACE _ContainedVBControlsEvents + +DECLARE_INTERFACE_(_ContainedVBControlsEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _ContainedVBControlsEvents methods */ +}; + +DEFINE_GUID(DIID__dispContainedVBControlsEvents,0x0002E122L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispContainedVBControlsEvents */ +#undef INTERFACE +#define INTERFACE _dispContainedVBControlsEvents + +DECLARE_INTERFACE_(_dispContainedVBControlsEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispContainedVBControlsEvents methods: + void ItemAdded(VBControl FAR* VBControl); + void ItemRemoved(VBControl FAR* VBControl); + void ItemRenamed(VBControl FAR* VBControl, BSTR OldName, long OldIndex); + */ +}; + +DEFINE_GUID(CLSID_VBControlsEvents,0x0002E12BL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class VBControlsEvents; +#endif + +DEFINE_GUID(IID__SelectedVBControlsEvents,0x0002E12CL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _SelectedVBControlsEvents */ +#undef INTERFACE +#define INTERFACE _SelectedVBControlsEvents + +DECLARE_INTERFACE_(_SelectedVBControlsEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _SelectedVBControlsEvents methods */ +}; + +DEFINE_GUID(DIID__dispSelectedVBControlsEvents,0x0002E125L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispSelectedVBControlsEvents */ +#undef INTERFACE +#define INTERFACE _dispSelectedVBControlsEvents + +DECLARE_INTERFACE_(_dispSelectedVBControlsEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispSelectedVBControlsEvents methods: + void ItemAdded(VBControl FAR* VBControl); + void ItemRemoved(VBControl FAR* VBControl); + */ +}; + +DEFINE_GUID(CLSID_SelectedVBControlsEvents,0x0002E12DL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class SelectedVBControlsEvents; +#endif + +DEFINE_GUID(IID__CommandBarControlEvents,0x0002E197L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _CommandBarControlEvents */ +#undef INTERFACE +#define INTERFACE _CommandBarControlEvents + +DECLARE_INTERFACE_(_CommandBarControlEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _CommandBarControlEvents methods */ +}; + +DEFINE_GUID(DIID__dispCommandBarControlEvents,0x0002E198L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispCommandBarControlEvents */ +#undef INTERFACE +#define INTERFACE _dispCommandBarControlEvents + +DECLARE_INTERFACE_(_dispCommandBarControlEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispCommandBarControlEvents methods: + void Click(IDispatch * CommandBarControl, VARIANT_BOOL FAR* handled, VARIANT_BOOL FAR* CancelDefault); + */ +}; + +DEFINE_GUID(CLSID_CommandBarEvents,0x0002E199L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class CommandBarEvents; +#endif + +DEFINE_GUID(IID__VBFileControlEvents,0x0002E142L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBFileControlEvents */ +#undef INTERFACE +#define INTERFACE _VBFileControlEvents + +DECLARE_INTERFACE_(_VBFileControlEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _VBFileControlEvents methods */ +}; + +DEFINE_GUID(DIID__dispVBFileControlEvents,0x0002E141L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispVBFileControlEvents */ +#undef INTERFACE +#define INTERFACE _dispVBFileControlEvents + +DECLARE_INTERFACE_(_dispVBFileControlEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispVBFileControlEvents methods: + void AfterAddFile(VBProject FAR* VBProject, enum vbext_FileType FileType, BSTR FileName); + void AfterChangeFileName(VBProject FAR* VBProject, enum vbext_FileType FileType, BSTR NewName, BSTR OldName); + void AfterCloseFile(VBProject FAR* VBProject, enum vbext_FileType FileType, BSTR FileName, VARIANT_BOOL WasDirty); + void AfterWriteFile(VBProject FAR* VBProject, enum vbext_FileType FileType, BSTR FileName, short Result); + void AfterRemoveFile(VBProject FAR* VBProject, enum vbext_FileType FileType, BSTR FileName); + void BeforeLoadFile(VBProject FAR* VBProject, SAFEARRAY FAR* FAR* FileNames); + void DoGetNewFileName(VBProject FAR* VBProject, enum vbext_FileType FileType, BSTR FAR* NewName, BSTR OldName, VARIANT_BOOL FAR* CancelDefault); + void RequestChangeFileName(VBProject FAR* VBProject, enum vbext_FileType FileType, BSTR NewName, BSTR OldName, VARIANT_BOOL FAR* Cancel); + void RequestWriteFile(VBProject FAR* VBProject, BSTR FileName, VARIANT_BOOL FAR* Cancel); + */ +}; + +DEFINE_GUID(CLSID_FileControlEvents,0x0002E140L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class FileControlEvents; +#endif + +DEFINE_GUID(IID__ProjectTemplate,0xEF404E22L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: _ProjectTemplate */ +#undef INTERFACE +#define INTERFACE _ProjectTemplate + +DECLARE_INTERFACE_(_ProjectTemplate, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _ProjectTemplate methods */ + STDMETHOD(get_ActiveForm)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_SelectedComponents)(THIS_ SelectedComponents FAR* FAR* lppscReturn) PURE; + STDMETHOD(AddFile)(THIS_ BSTR FileName, BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(RemoveComponent)(THIS_ Component FAR* Comp, VARIANT_BOOL Save, VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(AddReference)(THIS_ VARIANT Guid, VARIANT VerMajor, VARIANT VerMinor, VARIANT FileName) PURE; + STDMETHOD(AddToolboxTypelib)(THIS_ BSTR Guid, short MajorVersion, short MinorVersion, VARIANT FileName) PURE; + STDMETHOD(AddToolboxProgID)(THIS_ BSTR ProgID, VARIANT FileName) PURE; + STDMETHOD(AddToolboxVBX)(THIS_ BSTR FileName) PURE; + STDMETHOD(AddFormTemplate)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE; + STDMETHOD(AddMDIFormTemplate)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE; + STDMETHOD(get_FileName)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_IsDirty)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_IsDirty)(THIS_ VARIANT_BOOL Dirty) PURE; + STDMETHOD(WriteProperty)(THIS_ BSTR Section, BSTR Key, BSTR Value) PURE; + STDMETHOD(ReadProperty)(THIS_ BSTR Section, BSTR Key, BSTR FAR* lpbstrValue) PURE; + STDMETHOD(ConnectEvents)(THIS_ IDispatch * pdspSink, long FAR* lplReturn) PURE; + STDMETHOD(DisconnectEvents)(THIS_ long hConnection) PURE; + STDMETHOD(get_Components)(THIS_ Components FAR* FAR* lppcReturn) PURE; +}; + +DEFINE_GUID(DIID_ProjectTemplateEvents,0x31DE1170L,0x1602,0x11CE,0xBF,0xDC,0x08,0x00,0x2B,0x2B,0x8C,0xDA); + +/* Definition of dispatch interface: ProjectTemplateEvents */ +#undef INTERFACE +#define INTERFACE ProjectTemplateEvents + +DECLARE_INTERFACE_(ProjectTemplateEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* ProjectTemplateEvents methods: + void CheckIn(void); + void CheckOut(void); + void Fetch(void); + void UncheckOut(void); + */ +}; + +DEFINE_GUID(CLSID_ProjectTemplate,0x32CDF9E0L,0x1602,0x11CE,0xBF,0xDC,0x08,0x00,0x2B,0x2B,0x8C,0xDA); + +#ifdef __cplusplus +class ProjectTemplate; +#endif + +typedef enum vbext_ProjectStartMode { + vbext_psm_StandAlone = 0, + vbext_psm_OleServer = 1 +} vbext_ProjectStartMode; + +typedef enum vbext_ProjectType { + vbext_pt_StandardExe = 0, + vbext_pt_ActiveXExe = 1, + vbext_pt_ActiveXDll = 2, + vbext_pt_ActiveXControl = 3 +} vbext_ProjectType; + +typedef enum vbextSCCStatus { + vbextSCCStatusNotControlled = 0, + vbextSCCStatusControlled = 1, + vbextSCCStatusCheckedOut = 2, + vbextSCCStatusOutOther = 4, + vbextSCCStatusOutOfDate = 32, + vbextSCCStatusShared = 512 +} vbextSCCStatus; + +typedef enum vbext_VBAMode { + vbext_vm_Run = 0, + vbext_vm_Break = 1, + vbext_vm_Design = 2 +} vbext_VBAMode; + +DEFINE_GUID(IID__VBProject,0x0002E106L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBProject */ +#undef INTERFACE +#define INTERFACE _VBProject + +DECLARE_INTERFACE_(_VBProject, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _VBProject methods */ + STDMETHOD(get_Name)(THIS_ BSTR FAR* lpbstrName) PURE; + STDMETHOD(put_Name)(THIS_ BSTR bstrName) PURE; + STDMETHOD(AddToolboxProgID)(THIS_ BSTR ProgID, VARIANT FileName) PURE; + STDMETHOD(get_FileName)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_IsDirty)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_IsDirty)(THIS_ VARIANT_BOOL Dirty) PURE; + STDMETHOD(WriteProperty)(THIS_ BSTR Section, BSTR Key, BSTR Value) PURE; + STDMETHOD(ReadProperty)(THIS_ BSTR Section, BSTR Key, BSTR FAR* lpbstrValue) PURE; + STDMETHOD(get_HelpFile)(THIS_ BSTR FAR* lpbstrHelpFile) PURE; + STDMETHOD(put_HelpFile)(THIS_ BSTR bstrHelpFile) PURE; + STDMETHOD(get_HelpContextID)(THIS_ long FAR* lpdwContextID) PURE; + STDMETHOD(put_HelpContextID)(THIS_ long dwContextID) PURE; + STDMETHOD(get_Description)(THIS_ BSTR FAR* lpbstrDescription) PURE; + STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) PURE; + STDMETHOD(get_References)(THIS_ References FAR* FAR* lppReferences) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Collection)(THIS_ VBProjects FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_StartMode)(THIS_ enum vbext_ProjectStartMode FAR* lpStartMode) PURE; + STDMETHOD(put_StartMode)(THIS_ enum vbext_ProjectStartMode StartMode) PURE; + STDMETHOD(get_CompatibleOleServer)(THIS_ BSTR FAR* lpbstrCompatibleOleServer) PURE; + STDMETHOD(put_CompatibleOleServer)(THIS_ BSTR bstrCompatibleOleServer) PURE; + STDMETHOD(SaveAs)(THIS_ BSTR FileName) PURE; + STDMETHOD(MakeCompiledFile)(THIS) PURE; + STDMETHOD(get_Type)(THIS_ enum vbext_ProjectType FAR* lpkind) PURE; + STDMETHOD(put_Type)(THIS_ enum vbext_ProjectType Type) PURE; + STDMETHOD(get_IconState)(THIS_ enum vbextSCCStatus FAR* lpIconState) PURE; + STDMETHOD(put_IconState)(THIS_ enum vbextSCCStatus IconState) PURE; + STDMETHOD(get_Saved)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(get_VBComponents)(THIS_ VBComponents FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_BuildFileName)(THIS_ BSTR FAR* lpbstrBldFName) PURE; + STDMETHOD(put_BuildFileName)(THIS_ BSTR bstrBldFName) PURE; +}; + +DEFINE_GUID(CLSID_VBProject,0x0002E105L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class VBProject; +#endif + +DEFINE_GUID(IID_VBNewProjects,0x0002E133L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: VBNewProjects */ +#undef INTERFACE +#define INTERFACE VBNewProjects + +DECLARE_INTERFACE_(VBNewProjects, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* VBNewProjects methods */ + STDMETHOD(Item)(THIS_ VARIANT index, VBProject FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; +}; + +DEFINE_GUID(IID__VBProjects,0x0002E102L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBProjects */ +#undef INTERFACE +#define INTERFACE _VBProjects + +DECLARE_INTERFACE_(_VBProjects, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _VBProjects methods */ + STDMETHOD(Item)(THIS_ VARIANT index, VBProject FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(Add)(THIS_ enum vbext_ProjectType Type, VARIANT_BOOL Exclusive, VBProject FAR* FAR* lppcReturn) PURE; + STDMETHOD(AddFromTemplate)(THIS_ BSTR PathName, VARIANT_BOOL Exclusive, VBNewProjects FAR* FAR* lppcReturn) PURE; + STDMETHOD(AddFromFile)(THIS_ BSTR PathName, VARIANT_BOOL Exclusive, VBNewProjects FAR* FAR* lppcReturn) PURE; + STDMETHOD(Remove)(THIS_ VBProject FAR* lpc) PURE; + STDMETHOD(get_StartProject)(THIS_ VBProject FAR* FAR* lppptReturn) PURE; + STDMETHOD(put_StartProject)(THIS_ VBProject FAR* lpptNewActiveProj) PURE; + STDMETHOD(FileName)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_IconState)(THIS_ enum vbextSCCStatus FAR* lpIconState) PURE; + STDMETHOD(put_IconState)(THIS_ enum vbextSCCStatus IconState) PURE; + STDMETHOD(SaveAs)(THIS_ BSTR PathName) PURE; +}; + +DEFINE_GUID(CLSID_VBProjects,0xBE39F3D3L,0x1B13,0x11D0,0x88,0x7F,0x00,0xA0,0xC9,0x0F,0x27,0x44); + +#ifdef __cplusplus +class VBProjects; +#endif + +DEFINE_GUID(IID_SelectedComponents,0xEF404E1CL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: SelectedComponents */ +#undef INTERFACE +#define INTERFACE SelectedComponents + +DECLARE_INTERFACE_(SelectedComponents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* SelectedComponents methods */ + STDMETHOD(Item)(THIS_ int index, Component FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ VBProject FAR* FAR* lppptReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; +}; + +typedef enum vbext_ComponentType { + vbext_ct_StdModule = 1, + vbext_ct_ClassModule = 2, + vbext_ct_MSForm = 3, + vbext_ct_ResFile = 4, + vbext_ct_VBForm = 5, + vbext_ct_VBMDIForm = 6, + vbext_ct_PropPage = 7, + vbext_ct_UserControl = 8, + vbext_ct_DocObject = 9, + vbext_ct_RelatedDocument = 10, + vbext_ct_ActiveXDesigner = 11 +} vbext_ComponentType; + +DEFINE_GUID(IID__Components,0x2F3304A0L,0x1602,0x11CE,0xBF,0xDC,0x08,0x00,0x2B,0x2B,0x8C,0xDA); + +/* Definition of interface: _Components */ +#undef INTERFACE +#define INTERFACE _Components + +DECLARE_INTERFACE_(_Components, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _Components methods */ + STDMETHOD(Item)(THIS_ VARIANT index, Component FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ ProjectTemplate FAR* FAR* lppptReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; +}; + +typedef enum vbext_StartupObject { + vbext_so_SubMain = 0, + vbext_so_None = 1 +} vbext_StartupObject; + +DEFINE_GUID(CLSID_Components,0x0002E143L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class Components; +#endif + +DEFINE_GUID(IID__VBComponents,0x0002E147L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBComponents */ +#undef INTERFACE +#define INTERFACE _VBComponents + +DECLARE_INTERFACE_(_VBComponents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _VBComponents methods */ + STDMETHOD(Item)(THIS_ VARIANT index, VBComponent FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_Parent)(THIS_ VBProject FAR* FAR* lppptReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(Remove)(THIS_ VBComponent FAR* VBComponent) PURE; + STDMETHOD(Add)(THIS_ enum vbext_ComponentType ComponentType, VBComponent FAR* FAR* lppComponent) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_StartUpObject)(THIS_ VARIANT FAR* lpVar) PURE; + STDMETHOD(put_StartUpObject)(THIS_ VARIANT varInput) PURE; + STDMETHOD(AddFile)(THIS_ BSTR FileName, VARIANT_BOOL RelatedDocuement, VBComponent FAR* FAR* lppComponent) PURE; + STDMETHOD(AddFromTemplate)(THIS_ BSTR FileName, VBComponent FAR* FAR* lppComponent) PURE; + STDMETHOD(AddCustom)(THIS_ BSTR ProgID, VBComponent FAR* FAR* lppComponent) PURE; +}; + +DEFINE_GUID(CLSID_VBComponents,0x0002E146L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x49); + +#ifdef __cplusplus +class VBComponents; +#endif + +DEFINE_GUID(IID__Component,0xEF404E1FL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB); + +/* Definition of interface: _Component */ +#undef INTERFACE +#define INTERFACE _Component + +DECLARE_INTERFACE_(_Component, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _Component methods */ + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ Components FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_IsDirty)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_IsDirty)(THIS_ VARIANT_BOOL DirtyFlag) PURE; + STDMETHOD(get_FileNames)(THIS_ short Index, BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(SaveAs)(THIS_ BSTR NewFileName, VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(get_FileCount)(THIS_ short FAR* lpsReturn) PURE; + STDMETHOD(get_IconState)(THIS_ long FAR* lpulReturn) PURE; + STDMETHOD(put_IconState)(THIS_ long Value) PURE; + STDMETHOD(InsertFile)(THIS_ BSTR FileName) PURE; + STDMETHOD(Reload)(THIS) PURE; + STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrReturn) PURE; + STDMETHOD(put_Name)(THIS_ BSTR bstrName) PURE; +}; + +DEFINE_GUID(CLSID_Component,0x0002E144L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class Component; +#endif + +DEFINE_GUID(IID__VBComponent,0x0002E148L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBComponent */ +#undef INTERFACE +#define INTERFACE _VBComponent + +DECLARE_INTERFACE_(_VBComponent, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _VBComponent methods */ + STDMETHOD(get_IsDirty)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_IsDirty)(THIS_ VARIANT_BOOL DirtyFlag) PURE; + STDMETHOD(get_FileNames)(THIS_ short Index, BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(SaveAs)(THIS_ BSTR NewFileName, VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(get_FileCount)(THIS_ short FAR* lpsReturn) PURE; + STDMETHOD(get_IconState)(THIS_ long FAR* lpulReturn) PURE; + STDMETHOD(put_IconState)(THIS_ long Value) PURE; + STDMETHOD(InsertFile)(THIS_ BSTR FileName) PURE; + STDMETHOD(Reload)(THIS) PURE; + STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrReturn) PURE; + STDMETHOD(put_Name)(THIS_ BSTR bstrName) PURE; + STDMETHOD(get_Designer)(THIS_ IDispatch * FAR* ppDispatch) PURE; + STDMETHOD(get_CodeModule)(THIS_ CodeModule FAR* FAR* ppVbaModule) PURE; + STDMETHOD(get_Type)(THIS_ enum vbext_ComponentType FAR* pkind) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Collection)(THIS_ VBComponents FAR* FAR* lppcReturn) PURE; + STDMETHOD(get_HasOpenDesigner)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(get_Properties)(THIS_ Properties FAR* FAR* lpppReturn) PURE; + STDMETHOD(DesignerWindow)(THIS_ Window FAR* FAR* lppcReturn) PURE; + STDMETHOD(ReadProperty)(THIS_ BSTR Key, BSTR FAR* lpbstrValue) PURE; + STDMETHOD(WriteProperty)(THIS_ BSTR Key, BSTR Value) PURE; + STDMETHOD(Activate)(THIS) PURE; + STDMETHOD(get_HelpContextID)(THIS_ long FAR* lpdwContextID) PURE; + STDMETHOD(put_HelpContextID)(THIS_ long dwContextID) PURE; + STDMETHOD(get_Description)(THIS_ BSTR FAR* lpbstrDescription) PURE; + STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) PURE; + STDMETHOD(get_DesignerID)(THIS_ BSTR FAR* pbstrReturn) PURE; +}; + +DEFINE_GUID(CLSID_VBComponent,0x0002E145L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x49); + +#ifdef __cplusplus +class VBComponent; +#endif + +DEFINE_GUID(IID_FormTemplate,0x79B1F921L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA); + +/* Definition of interface: FormTemplate */ +#undef INTERFACE +#define INTERFACE FormTemplate + +DECLARE_INTERFACE_(FormTemplate, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* FormTemplate methods */ + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ _ProjectTemplate FAR* FAR* lppptReturn) PURE; + STDMETHOD(get_SelectedControlTemplates)(THIS_ SelectedControlTemplates FAR* FAR* lppsctReturn) PURE; + STDMETHOD(get_ControlTemplates)(THIS_ ControlTemplates FAR* FAR* lppctReturn) PURE; + STDMETHOD(get_Properties)(THIS_ Properties FAR* FAR* lpppReturn) PURE; + STDMETHOD(AddMenuTemplate)(THIS_ BSTR Name, ControlTemplate FAR* Parent, ControlTemplate FAR* FAR* lppctReturn) PURE; + STDMETHOD(InsertFile)(THIS_ BSTR FileName) PURE; +}; + +DEFINE_GUID(IID_VBForm,0x0002E11BL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: VBForm */ +#undef INTERFACE +#define INTERFACE VBForm + +DECLARE_INTERFACE_(VBForm, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* VBForm methods */ + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ VBComponent FAR* FAR* lpComponent) PURE; + STDMETHOD(get_ContainedVBControls)(THIS_ ContainedVBControls FAR* FAR* lppsctReturn) PURE; + STDMETHOD(get_SelectedVBControls)(THIS_ SelectedVBControls FAR* FAR* lppctReturn) PURE; + STDMETHOD(get_CanPaste)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(Paste)(THIS) PURE; + STDMETHOD(SelectAll)(THIS_ long FAR* lpSelectAll) PURE; + STDMETHOD(get_VBControls)(THIS_ VBControls FAR* FAR* lppvbfcReturn) PURE; +}; + +DEFINE_GUID(IID_ControlTemplate,0x79B1F922L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA); + +/* Definition of interface: ControlTemplate */ +#undef INTERFACE +#define INTERFACE ControlTemplate + +DECLARE_INTERFACE_(ControlTemplate, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* ControlTemplate methods */ + STDMETHOD(get_ClassName)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ ControlTemplates FAR* FAR* lppctReturn) PURE; + STDMETHOD(get_Container)(THIS_ IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(putref_Container)(THIS_ IDispatch * NewContainer) PURE; + STDMETHOD(get_Properties)(THIS_ Properties FAR* FAR* lpppReturn) PURE; + STDMETHOD(ZOrder)(THIS_ int Position, ControlTemplate FAR* FAR* lppctReturn) PURE; +}; + +typedef enum vbext_ControlType { + vbext_ct_Light = 1, + vbext_ct_Standard = 2, + vbext_ct_Container = 3 +} vbext_ControlType; + +DEFINE_GUID(IID_VBControl,0x0002E11DL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: VBControl */ +#undef INTERFACE +#define INTERFACE VBControl + +DECLARE_INTERFACE_(VBControl, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* VBControl methods */ + STDMETHOD(get_ClassName)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Collection)(THIS_ VBControls FAR* FAR* lpvbfccReturn) PURE; + STDMETHOD(get_Container)(THIS_ IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(putref_Container)(THIS_ IDispatch * NewContainer) PURE; + STDMETHOD(get_Properties)(THIS_ Properties FAR* FAR* lpppReturn) PURE; + STDMETHOD(get_ContainedVBControls)(THIS_ ContainedVBControls FAR* FAR* lpppReturn) PURE; + STDMETHOD(get_InSelection)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE; + STDMETHOD(put_InSelection)(THIS_ VARIANT_BOOL fInSelections) PURE; + STDMETHOD(get_ControlObject)(THIS_ IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(get_ControlType)(THIS_ enum vbext_ControlType FAR* pkind) PURE; + STDMETHOD(ZOrder)(THIS_ int Position, VBControl FAR* FAR* lppvbcReturn) PURE; + STDMETHOD(get_ProgID)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_WizardHook)(THIS_ IUnknown * FAR* lppunk) PURE; +}; + +DEFINE_GUID(IID_Property,0x0002E18DL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: Property */ +#undef INTERFACE +#define INTERFACE Property + +DECLARE_INTERFACE_(Property, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* Property methods */ + STDMETHOD(get_Value)(THIS_ VARIANT FAR* lppvReturn) PURE; + STDMETHOD(put_Value)(THIS_ VARIANT NewValue) PURE; + STDMETHOD(get_IndexedValue)(THIS_ VARIANT Index1, VARIANT Index2, VARIANT Index3, VARIANT Index4, VARIANT FAR* lppvReturn) PURE; + STDMETHOD(put_IndexedValue)(THIS_ VARIANT Index1, VARIANT Index2, VARIANT Index3, VARIANT Index4, VARIANT NewValue) PURE; + STDMETHOD(get_NumIndices)(THIS_ short FAR* lpiRetVal) PURE; + STDMETHOD(get_Application)(THIS_ IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(get_Parent)(THIS_ Properties FAR* FAR* lpppReturn) PURE; + STDMETHOD(get_Name)(THIS_ BSTR FAR* lpbstrReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lpaReturn) PURE; + STDMETHOD(get_Collection)(THIS_ Properties FAR* FAR* lpppReturn) PURE; + STDMETHOD(get_Object)(THIS_ IUnknown * FAR* lppunk) PURE; + STDMETHOD(putref_Object)(THIS_ IUnknown * lpunk) PURE; +}; + +DEFINE_GUID(IID__Properties,0x0002E189L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _Properties */ +#undef INTERFACE +#define INTERFACE _Properties + +DECLARE_INTERFACE_(_Properties, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _Properties methods */ + STDMETHOD(Item)(THIS_ VARIANT index, Property FAR* FAR* lplppReturn) PURE; + STDMETHOD(get_Application)(THIS_ IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* lppidReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; +}; + +DEFINE_GUID(CLSID_Properties,0x0002E18AL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class Properties; +#endif + +DEFINE_GUID(IID_ControlTemplates,0x79B1F924L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA); + +/* Definition of interface: ControlTemplates */ +#undef INTERFACE +#define INTERFACE ControlTemplates + +DECLARE_INTERFACE_(ControlTemplates, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* ControlTemplates methods */ + STDMETHOD(Item)(THIS_ VARIANT Item, VARIANT Index, ControlTemplate FAR* FAR* lppctReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lpaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(Add)(THIS_ BSTR ClassName, VARIANT Container, ControlTemplate FAR* FAR* lppctReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; +}; + +DEFINE_GUID(IID__ContainedVBControls,0x0002E11EL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _ContainedVBControls */ +#undef INTERFACE +#define INTERFACE _ContainedVBControls + +DECLARE_INTERFACE_(_ContainedVBControls, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _ContainedVBControls methods */ + STDMETHOD(Item)(THIS_ VARIANT CollectionIndex, VARIANT ControlIndex, VBControl FAR* FAR* lppctReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lpaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* ppDispatch) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(Add)(THIS_ BSTR ProgID, VBControl FAR* RelativeVBControl, VARIANT_BOOL before, VBControl FAR* FAR* lppctReturn) PURE; + STDMETHOD(Remove)(THIS_ VBControl FAR* lpcontrol) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; +}; + +DEFINE_GUID(CLSID_ContainedVBControls,0x0002E120L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class ContainedVBControls; +#endif + +DEFINE_GUID(IID__VBControls,0x0002E121L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _VBControls */ +#undef INTERFACE +#define INTERFACE _VBControls + +DECLARE_INTERFACE_(_VBControls, _ContainedVBControls) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; + + /* _ContainedVBControls methods */ + STDMETHOD(Item)(THIS_ VARIANT CollectionIndex, VARIANT ControlIndex, VBControl FAR* FAR* lppctReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lpaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* ppDispatch) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(Add)(THIS_ BSTR ProgID, VBControl FAR* RelativeVBControl, VARIANT_BOOL before, VBControl FAR* FAR* lppctReturn) PURE; + STDMETHOD(Remove)(THIS_ VBControl FAR* lpcontrol) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; +#endif + + /* _VBControls methods */ +}; + +DEFINE_GUID(CLSID_VBControls,0x0002E123L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class VBControls; +#endif + +DEFINE_GUID(IID_SelectedControlTemplates,0x79B1F926L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA); + +/* Definition of interface: SelectedControlTemplates */ +#undef INTERFACE +#define INTERFACE SelectedControlTemplates + +DECLARE_INTERFACE_(SelectedControlTemplates, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* SelectedControlTemplates methods */ + STDMETHOD(Item)(THIS_ long Item, ControlTemplate FAR* FAR* lppctReturn) PURE; + STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lpaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; +}; + +DEFINE_GUID(IID__SelectedControls,0x0002E124L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _SelectedControls */ +#undef INTERFACE +#define INTERFACE _SelectedControls + +DECLARE_INTERFACE_(_SelectedControls, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _SelectedControls methods */ + STDMETHOD(Item)(THIS_ VARIANT CollectionIndex, VARIANT ControlIndex, VBControl FAR* FAR* lppvbcReturn) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lpaReturn) PURE; + STDMETHOD(get_Parent)(THIS_ VBForm FAR* FAR* lppiuReturn) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(Clear)(THIS_ long FAR* lpClear) PURE; + STDMETHOD(Cut)(THIS) PURE; + STDMETHOD(Copy)(THIS) PURE; +}; + +DEFINE_GUID(CLSID_SelectedVBControls,0x0002E126L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class SelectedVBControls; +#endif + +typedef enum vbextMenuShortcut { + vbextMenuShortcutCtrlA = 1, + vbextMenuShortcutCtrlB = 2, + vbextMenuShortcutCtrlC = 3, + vbextMenuShortcutCtrlD = 4, + vbextMenuShortcutCtrlE = 5, + vbextMenuShortcutCtrlF = 6, + vbextMenuShortcutCtrlG = 7, + vbextMenuShortcutCtrlH = 8, + vbextMenuShortcutCtrlI = 9, + vbextMenuShortcutCtrlJ = 10, + vbextMenuShortcutCtrlK = 11, + vbextMenuShortcutCtrlL = 12, + vbextMenuShortcutCtrlM = 13, + vbextMenuShortcutCtrlN = 14, + vbextMenuShortcutCtrlO = 15, + vbextMenuShortcutCtrlP = 16, + vbextMenuShortcutCtrlQ = 17, + vbextMenuShortcutCtrlR = 18, + vbextMenuShortcutCtrlS = 19, + vbextMenuShortcutCtrlT = 20, + vbextMenuShortcutCtrlU = 21, + vbextMenuShortcutCtrlV = 22, + vbextMenuShortcutCtrlW = 23, + vbextMenuShortcutCtrlX = 24, + vbextMenuShortcutCtrlY = 25, + vbextMenuShortcutCtrlZ = 26, + vbextMenuShortcutF1 = 27, + vbextMenuShortcutF2 = 28, + vbextMenuShortcutF3 = 29, + vbextMenuShortcutF4 = 30, + vbextMenuShortcutF5 = 31, + vbextMenuShortcutF6 = 32, + vbextMenuShortcutF7 = 33, + vbextMenuShortcutF8 = 34, + vbextMenuShortcutF9 = 35, + vbextMenuShortcutF11 = 37, + vbextMenuShortcutF12 = 38, + vbextMenuShortcutCtrlF1 = 39, + vbextMenuShortcutCtrlF2 = 40, + vbextMenuShortcutCtrlF3 = 41, + vbextMenuShortcutCtrlF4 = 42, + vbextMenuShortcutCtrlF5 = 43, + vbextMenuShortcutCtrlF6 = 44, + vbextMenuShortcutCtrlF7 = 45, + vbextMenuShortcutCtrlF8 = 46, + vbextMenuShortcutCtrlF9 = 47, + vbextMenuShortcutCtrlF11 = 49, + vbextMenuShortcutCtrlF12 = 50, + vbextMenuShortcutShiftF1 = 51, + vbextMenuShortcutShiftF2 = 52, + vbextMenuShortcutShiftF3 = 53, + vbextMenuShortcutShiftF4 = 54, + vbextMenuShortcutShiftF5 = 55, + vbextMenuShortcutShiftF6 = 56, + vbextMenuShortcutShiftF7 = 57, + vbextMenuShortcutShiftF8 = 58, + vbextMenuShortcutShiftF9 = 59, + vbextMenuShortcutShiftF11 = 61, + vbextMenuShortcutShiftF12 = 62, + vbextMenuShortcutCtrlShiftF1 = 63, + vbextMenuShortcutCtrlShiftF2 = 64, + vbextMenuShortcutCtrlShiftF3 = 65, + vbextMenuShortcutCtrlShiftF4 = 66, + vbextMenuShortcutCtrlShiftF5 = 67, + vbextMenuShortcutCtrlShiftF6 = 68, + vbextMenuShortcutCtrlShiftF7 = 69, + vbextMenuShortcutCtrlShiftF8 = 70, + vbextMenuShortcutCtrlShiftF9 = 71, + vbextMenuShortcutCtrlShiftF11 = 73, + vbextMenuShortcutCtrlShiftF12 = 74, + vbextMenuShortcutCtrlIns = 75, + vbextMenuShortcutShiftIns = 76, + vbextMenuShortcutDel = 77, + vbextMenuShortcutShiftDel = 78, + vbextMenuShortcutAltBksp = 79 +} vbextMenuShortcut; + +DEFINE_GUID(IID__AddIns,0x0002E109L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _AddIns */ +#undef INTERFACE +#define INTERFACE _AddIns + +DECLARE_INTERFACE_(_AddIns, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _AddIns methods */ + STDMETHOD(Item)(THIS_ VARIANT Index, AddIn FAR* FAR* lppaddin) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppVBA) PURE; + STDMETHOD(get_Parent)(THIS_ VBEOBJ FAR* FAR* lppVBA) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE; + STDMETHOD(Update)(THIS) PURE; +}; + +DEFINE_GUID(CLSID_Addins,0x0002E183L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class Addins; +#endif + +typedef enum vbext_ConnectMode { + vbext_cm_AfterStartup = 0, + vbext_cm_Startup = 1, + vbext_cm_External = 2 +} vbext_ConnectMode; + +typedef enum vbext_DisconnectMode { + vbext_dm_HostShutdown = 0, + vbext_dm_UserClosed = 1 +} vbext_DisconnectMode; + +DEFINE_GUID(IID_AddIn,0x0002E10BL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: AddIn */ +#undef INTERFACE +#define INTERFACE AddIn + +DECLARE_INTERFACE_(AddIn, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* AddIn methods */ + STDMETHOD(get_Description)(THIS_ BSTR FAR* lpbstr) PURE; + STDMETHOD(put_Description)(THIS_ BSTR bstr) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppVBE) PURE; + STDMETHOD(get_Collection)(THIS_ AddIns FAR* FAR* lppaddins) PURE; + STDMETHOD(get_ProgID)(THIS_ BSTR FAR* lpbstr) PURE; + STDMETHOD(get_Guid)(THIS_ BSTR FAR* lpbstr) PURE; + STDMETHOD(get_Connect)(THIS_ VARIANT_BOOL FAR* lpfConnect) PURE; + STDMETHOD(put_Connect)(THIS_ VARIANT_BOOL fConnect) PURE; + STDMETHOD(get_Object)(THIS_ IDispatch * FAR* lppdisp) PURE; + STDMETHOD(put_Object)(THIS_ IDispatch * _lpdispObject) PURE; +}; + +DEFINE_GUID(IID_IDTExtensibility,0x0002E151L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: IDTExtensibility */ +#undef INTERFACE +#define INTERFACE IDTExtensibility + +DECLARE_INTERFACE_(IDTExtensibility, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* IDTExtensibility methods */ + STDMETHOD(OnConnection)(THIS_ IDispatch * VBInst, enum vbext_ConnectMode ConnectMode, AddIn FAR* AddInInst, SAFEARRAY FAR* FAR* custom) PURE; + STDMETHOD(OnDisconnection)(THIS_ enum vbext_DisconnectMode RemoveMode, SAFEARRAY FAR* FAR* custom) PURE; + STDMETHOD(OnAddInsUpdate)(THIS_ SAFEARRAY FAR* FAR* custom) PURE; + STDMETHOD(OnStartupComplete)(THIS_ SAFEARRAY FAR* FAR* custom) PURE; +}; + +typedef enum { + vbext_pk_Proc = 0, + vbext_pk_Let = 1, + vbext_pk_Set = 2, + vbext_pk_Get = 3 +} vbext_ProcKind; + +DEFINE_GUID(IID__CodeModule,0x0002E16DL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _CodeModule */ +#undef INTERFACE +#define INTERFACE _CodeModule + +DECLARE_INTERFACE_(_CodeModule, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _CodeModule methods */ + STDMETHOD(get_Parent)(THIS_ VBComponent FAR* FAR* retval) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* retval) PURE; + STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrName) PURE; + STDMETHOD(put_Name)(THIS_ BSTR bstrName) PURE; + STDMETHOD(AddFromString)(THIS_ BSTR String) PURE; + STDMETHOD(AddFromFile)(THIS_ BSTR FileName) PURE; + STDMETHOD(get_Lines)(THIS_ long StartLine, long Count, BSTR FAR* String) PURE; + STDMETHOD(get_CountOfLines)(THIS_ long FAR* CountOfLines) PURE; + STDMETHOD(InsertLines)(THIS_ long Line, BSTR String) PURE; + STDMETHOD(DeleteLines)(THIS_ long StartLine, long Count) PURE; + STDMETHOD(ReplaceLine)(THIS_ long Line, BSTR String) PURE; + STDMETHOD(get_ProcStartLine)(THIS_ BSTR ProcName, vbext_ProcKind ProcKind, long FAR* ProcStartLine) PURE; + STDMETHOD(get_ProcCountLines)(THIS_ BSTR ProcName, vbext_ProcKind ProcKind, long FAR* ProcCountLines) PURE; + STDMETHOD(get_ProcBodyLine)(THIS_ BSTR ProcName, vbext_ProcKind ProcKind, long FAR* ProcBodyLine) PURE; + STDMETHOD(get_ProcOfLine)(THIS_ long line, vbext_ProcKind FAR* ProcKind, BSTR FAR* pbstrName) PURE; + STDMETHOD(get_CountOfDeclarationLines)(THIS_ long FAR* pDeclCountOfLines) PURE; + STDMETHOD(CreateEventProc)(THIS_ BSTR EventName, BSTR ObjectName, long FAR* line) PURE; + STDMETHOD(Find)(THIS_ BSTR Target, long FAR* StartLine, long FAR* StartColumn, long FAR* EndLine, long FAR* EndColumn, VARIANT_BOOL WholeWord, VARIANT_BOOL MatchCase, VARIANT_BOOL PatternSearch, VARIANT_BOOL FAR* pfFound) PURE; + STDMETHOD(get_CodePane)(THIS_ CodePane FAR* FAR* CodePane) PURE; + STDMETHOD(get_Members)(THIS_ Members FAR* FAR* Members) PURE; +}; + +DEFINE_GUID(CLSID_CodeModule,0x0002E16FL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class CodeModule; +#endif + +DEFINE_GUID(IID__CodePanes,0x0002E171L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _CodePanes */ +#undef INTERFACE +#define INTERFACE _CodePanes + +DECLARE_INTERFACE_(_CodePanes, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _CodePanes methods */ + STDMETHOD(get_Parent)(THIS_ VBEOBJ FAR* FAR* retval) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* retval) PURE; + STDMETHOD(Item)(THIS_ VARIANT index, CodePane FAR* FAR* CodePane) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* Count) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* ppenum) PURE; + STDMETHOD(get_Current)(THIS_ CodePane FAR* FAR* CodePane) PURE; + STDMETHOD(put_Current)(THIS_ CodePane FAR* CodePane) PURE; +}; + +DEFINE_GUID(CLSID_CodePanes,0x0002E173L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class CodePanes; +#endif + +typedef enum { + vbext_cv_ProcedureView = 0, + vbext_cv_FullModuleView = 1 +} vbext_CodePaneview; + +DEFINE_GUID(IID__CodePane,0x0002E175L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _CodePane */ +#undef INTERFACE +#define INTERFACE _CodePane + +DECLARE_INTERFACE_(_CodePane, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _CodePane methods */ + STDMETHOD(get_Collection)(THIS_ CodePanes FAR* FAR* retval) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* retval) PURE; + STDMETHOD(get_Window)(THIS_ Window FAR* FAR* retval) PURE; + STDMETHOD(GetSelection)(THIS_ long FAR* StartLine, long FAR* StartColumn, long FAR* EndLine, long FAR* EndColumn) PURE; + STDMETHOD(SetSelection)(THIS_ long StartLine, long StartColumn, long EndLine, long EndColumn) PURE; + STDMETHOD(get_TopLine)(THIS_ long FAR* TopLine) PURE; + STDMETHOD(put_TopLine)(THIS_ long TopLine) PURE; + STDMETHOD(get_CountOfVisibleLines)(THIS_ long FAR* CountOfVisibleLines) PURE; + STDMETHOD(get_CodeModule)(THIS_ CodeModule FAR* FAR* CodeModule) PURE; + STDMETHOD(Show)(THIS) PURE; + STDMETHOD(get_CodePaneView)(THIS_ vbext_CodePaneview FAR* pCodePaneview) PURE; +}; + +DEFINE_GUID(CLSID_CodePane,0x0002E177L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class CodePane; +#endif + +DEFINE_GUID(IID__References,0x0002E179L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _References */ +#undef INTERFACE +#define INTERFACE _References + +DECLARE_INTERFACE_(_References, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _References methods */ + STDMETHOD(get_Parent)(THIS_ VBProject FAR* FAR* retval) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* retval) PURE; + STDMETHOD(Item)(THIS_ VARIANT index, Reference FAR* FAR* Reference) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* Count) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* ppenum) PURE; + STDMETHOD(AddFromGuid)(THIS_ BSTR Guid, long Major, long Minor, Reference FAR* FAR* Reference) PURE; + STDMETHOD(AddFromFile)(THIS_ BSTR FileName, Reference FAR* FAR* Reference) PURE; + STDMETHOD(Remove)(THIS_ Reference FAR* Reference) PURE; +}; + +typedef enum { + vbext_rk_TypeLib = 0, + vbext_rk_Project = 1 +} vbext_RefKind; + +DEFINE_GUID(IID_Reference,0x0002E17DL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: Reference */ +#undef INTERFACE +#define INTERFACE Reference + +DECLARE_INTERFACE_(Reference, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* Reference methods */ + STDMETHOD(get_Collection)(THIS_ References FAR* FAR* retval) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrName) PURE; + STDMETHOD(get_Guid)(THIS_ BSTR FAR* pbstrGuid) PURE; + STDMETHOD(get_Major)(THIS_ long FAR* pMajor) PURE; + STDMETHOD(get_Minor)(THIS_ long FAR* pMinor) PURE; + STDMETHOD(get_FullPath)(THIS_ BSTR FAR* pbstrLocation) PURE; + STDMETHOD(get_BuiltIn)(THIS_ VARIANT_BOOL FAR* pfIsDefault) PURE; + STDMETHOD(get_IsBroken)(THIS_ VARIANT_BOOL FAR* pfIsBroken) PURE; + STDMETHOD(get_Type)(THIS_ vbext_RefKind FAR* pKind) PURE; + STDMETHOD(get_Description)(THIS_ BSTR FAR* pbstrName) PURE; +}; + +DEFINE_GUID(DIID__dispReferences_Events,0x0002E19AL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of dispatch interface: _dispReferences_Events */ +#undef INTERFACE +#define INTERFACE _dispReferences_Events + +DECLARE_INTERFACE_(_dispReferences_Events, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispReferences_Events methods: + void ItemAdded(Reference FAR* Reference); + void ItemRemoved(Reference FAR* Reference); + */ +}; + +DEFINE_GUID(CLSID_References,0x0002E17BL,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class References; +#endif + +DEFINE_GUID(IID__Members,0x0002E180L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: _Members */ +#undef INTERFACE +#define INTERFACE _Members + +DECLARE_INTERFACE_(_Members, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _Members methods */ + STDMETHOD(get_Parent)(THIS_ CodeModule FAR* FAR* CodeModule) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(Item)(THIS_ VARIANT var, Member FAR* FAR* ppMember) PURE; + STDMETHOD(get_Count)(THIS_ long FAR* Count) PURE; + STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* ppenum) PURE; +}; + +DEFINE_GUID(CLSID_Members,0x0002E181L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +#ifdef __cplusplus +class Members; +#endif + +typedef enum { + vbext_mt_Method = 1, + vbext_mt_Property = 2, + vbext_mt_Variable = 3, + vbext_mt_Event = 4, + vbext_mt_Const = 5 +} vbext_MemberType; + +typedef enum { + vbext_Private = 1, + vbext_Public = 2, + vbext_Friend = 3 +} vbext_Scope; + +DEFINE_GUID(IID_Member,0x0002E182L,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); + +/* Definition of interface: Member */ +#undef INTERFACE +#define INTERFACE Member + +DECLARE_INTERFACE_(Member, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* Member methods */ + STDMETHOD(get_Collection)(THIS_ Members FAR* FAR* ppMembers) PURE; + STDMETHOD(get_VBEOBJ)(THIS_ VBEOBJ FAR* FAR* lppaReturn) PURE; + STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrName) PURE; + STDMETHOD(get_Type)(THIS_ vbext_MemberType FAR* pKind) PURE; + STDMETHOD(get_Scope)(THIS_ vbext_Scope FAR* pScope) PURE; + STDMETHOD(get_Static)(THIS_ VARIANT_BOOL FAR* pfStatic) PURE; + STDMETHOD(get_CodeLocation)(THIS_ long FAR* pline) PURE; + STDMETHOD(get_Description)(THIS_ BSTR FAR* pbstrName) PURE; + STDMETHOD(put_Description)(THIS_ BSTR bstrName) PURE; + STDMETHOD(get_HelpContextId)(THIS_ long FAR* phelpId) PURE; + STDMETHOD(put_HelpContextId)(THIS_ long helpId) PURE; + STDMETHOD(get_Hidden)(THIS_ VARIANT_BOOL FAR* pfHidden) PURE; + STDMETHOD(put_Hidden)(THIS_ VARIANT_BOOL fHidden) PURE; + STDMETHOD(get_Browsable)(THIS_ VARIANT_BOOL FAR* pfBrowsable) PURE; + STDMETHOD(put_Browsable)(THIS_ VARIANT_BOOL fBrowsable) PURE; + STDMETHOD(get_UIDefault)(THIS_ VARIANT_BOOL FAR* pfBrowsable) PURE; + STDMETHOD(put_UIDefault)(THIS_ VARIANT_BOOL fBrowsable) PURE; + STDMETHOD(get_StandardMethod)(THIS_ long FAR* pStandardMethod) PURE; + STDMETHOD(put_StandardMethod)(THIS_ long StandardMethod) PURE; + STDMETHOD(get_Bindable)(THIS_ VARIANT_BOOL FAR* pfBrowsable) PURE; + STDMETHOD(put_Bindable)(THIS_ VARIANT_BOOL fBrowsable) PURE; + STDMETHOD(get_DefaultBind)(THIS_ VARIANT_BOOL FAR* pfBrowsable) PURE; + STDMETHOD(put_DefaultBind)(THIS_ VARIANT_BOOL fBrowsable) PURE; + STDMETHOD(get_DisplayBind)(THIS_ VARIANT_BOOL FAR* pfBrowsable) PURE; + STDMETHOD(put_DisplayBind)(THIS_ VARIANT_BOOL fBrowsable) PURE; + STDMETHOD(get_RequestEdit)(THIS_ VARIANT_BOOL FAR* pfBrowsable) PURE; + STDMETHOD(put_RequestEdit)(THIS_ VARIANT_BOOL fBrowsable) PURE; + STDMETHOD(get_Category)(THIS_ BSTR FAR* pbstrCategory) PURE; + STDMETHOD(put_Category)(THIS_ BSTR bstrCategory) PURE; + STDMETHOD(get_PropertyPage)(THIS_ BSTR FAR* pbstrPropertyPage) PURE; + STDMETHOD(put_PropertyPage)(THIS_ BSTR bstrPropertyPage) PURE; +}; + +DEFINE_GUID(IID__VBBuildEvents,0xCC62AD81L,0x99EE,0x11D1,0xB6,0xE0,0x00,0xA0,0xC9,0x0F,0x27,0x44); + +/* Definition of interface: _VBBuildEvents */ +#undef INTERFACE +#define INTERFACE _VBBuildEvents + +DECLARE_INTERFACE_(_VBBuildEvents, IUnknown) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; +#endif + + /* _VBBuildEvents methods */ +}; + +DEFINE_GUID(DIID__dispVBBuildEvents,0xCC62AD82L,0x99EE,0x11D1,0xB6,0xE0,0x00,0xA0,0xC9,0x0F,0x27,0x44); + +/* Definition of dispatch interface: _dispVBBuildEvents */ +#undef INTERFACE +#define INTERFACE _dispVBBuildEvents + +DECLARE_INTERFACE_(_dispVBBuildEvents, IDispatch) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; +#endif + + /* _dispVBBuildEvents methods: + void BeginCompile(VBProject FAR* VBProject); + void EnterRunMode(void); + void EnterDesignMode(void); + */ +}; + +DEFINE_GUID(CLSID_VBBuildEvents,0xCC62AD83L,0x99EE,0x11D1,0xB6,0xE0,0x00,0xA0,0xC9,0x0F,0x27,0x44); + +#ifdef __cplusplus +class VBBuildEvents; +#endif + +DEFINE_GUID(IID_Events2,0xCC62AD84L,0x99EE,0x11D1,0xB6,0xE0,0x00,0xA0,0xC9,0x0F,0x27,0x44); + +/* Definition of interface: Events2 */ +#undef INTERFACE +#define INTERFACE Events2 + +DECLARE_INTERFACE_(Events2, Events) +{ +BEGIN_INTERFACE +#ifndef NO_BASEINTERFACE_FUNCS + + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDispatch methods */ + STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE; + + STDMETHOD(GetTypeInfo)( + THIS_ + UINT itinfo, + LCID lcid, + ITypeInfo FAR* FAR* pptinfo) PURE; + + STDMETHOD(GetIDsOfNames)( + THIS_ + REFIID riid, + OLECHAR FAR* FAR* rgszNames, + UINT cNames, + LCID lcid, + DISPID FAR* rgdispid) PURE; + + STDMETHOD(Invoke)( + THIS_ + DISPID dispidMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS FAR* pdispparams, + VARIANT FAR* pvarResult, + EXCEPINFO FAR* pexcepinfo, + UINT FAR* puArgErr) PURE; + + /* Events methods */ + STDMETHOD(get_VBProjectsEvents)(THIS_ VBProjectsEvents FAR* FAR* ppceNew) PURE; + STDMETHOD(get_VBComponentsEvents)(THIS_ VBProject FAR* VBProject, VBComponentsEvents FAR* FAR* pcceNew) PURE; + STDMETHOD(get_ReferencesEvents)(THIS_ VBProject FAR* VBProject, ReferencesEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_VBControlsEvents)(THIS_ VBProject FAR* VBProject, VBForm FAR* VBForm, VBControlsEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_SelectedVBControlsEvents)(THIS_ VBProject FAR* VBProject, VBForm FAR* VBForm, SelectedVBControlsEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_CommandBarEvents)(THIS_ IDispatch * CommandBarControl, CommandBarEvents FAR* FAR* prceNew) PURE; + STDMETHOD(get_FileControlEvents)(THIS_ VBProject FAR* VBProject, FileControlEvents FAR* FAR* prceNew) PURE; +#endif + + /* Events2 methods */ + STDMETHOD(get_VBBuildEvents)(THIS_ VBBuildEvents FAR* FAR* ppceNew) PURE; +}; + +#endif diff --git a/cadVb/COMMON/TOOLS/VCM/RESOURCE/2052/VCMUI.DLL b/cadVb/COMMON/TOOLS/VCM/RESOURCE/2052/VCMUI.DLL new file mode 100644 index 0000000..c963b6b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/RESOURCE/2052/VCMUI.DLL differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCM.MDB b/cadVb/COMMON/TOOLS/VCM/VCM.MDB new file mode 100644 index 0000000..c3dcc2b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCM.MDB differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCM.VBD b/cadVb/COMMON/TOOLS/VCM/VCM.VBD new file mode 100644 index 0000000..691bc25 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCM.VBD differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMAGG.DLL b/cadVb/COMMON/TOOLS/VCM/VCMAGG.DLL new file mode 100644 index 0000000..04576cf Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMAGG.DLL differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMAXB.OCX b/cadVb/COMMON/TOOLS/VCM/VCMAXB.OCX new file mode 100644 index 0000000..4a05177 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMAXB.OCX differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMCAB.DLL b/cadVb/COMMON/TOOLS/VCM/VCMCAB.DLL new file mode 100644 index 0000000..76e536c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMCAB.DLL differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMEMD.DLL b/cadVb/COMMON/TOOLS/VCM/VCMEMD.DLL new file mode 100644 index 0000000..8c8492c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMEMD.DLL differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMMGR.DLL b/cadVb/COMMON/TOOLS/VCM/VCMMGR.DLL new file mode 100644 index 0000000..f452991 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMMGR.DLL differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMUTL.DLL b/cadVb/COMMON/TOOLS/VCM/VCMUTL.DLL new file mode 100644 index 0000000..240706a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMUTL.DLL differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMVMB.OCX b/cadVb/COMMON/TOOLS/VCM/VCMVMB.OCX new file mode 100644 index 0000000..9b0ec9b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMVMB.OCX differ diff --git a/cadVb/COMMON/TOOLS/VCM/VCMVMH.DLL b/cadVb/COMMON/TOOLS/VCM/VCMVMH.DLL new file mode 100644 index 0000000..d21a05e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VCM/VCMVMH.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/COMSTYPE.INI b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/COMSTYPE.INI new file mode 100644 index 0000000..0a345cb --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/COMSTYPE.INI @@ -0,0 +1,40 @@ +[General] +ConfigurationName=COM +IsLanguageConfiguration=Yes + +[Stereotyped Items] +Class:Interface +Class:Enum +Operation:Get +Operation:Set +Operation:Let +Operation:Event +Component:ActiveX + +[Class:Interface] +Item=Class +Stereotype=Interface + +[Class:Enum] +Item=Class +Stereotype=Enum + +[Operation:Get] +Item=Operation +Stereotype=Get + +[Operation:Set] +Item=Operation +Stereotype=Set + +[Operation:Let] +Item=Operation +Stereotype=Let + +[Operation:Event] +Item=Operation +Stereotype=Event + +[Component:ActiveX] +Item=Component +Stereotype=ActiveX diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/CONFIG.HTM b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/CONFIG.HTM new file mode 100644 index 0000000..e4caf3a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/CONFIG.HTM @@ -0,0 +1,236 @@ + + + +[PREVIOUS] +[NEXT] - +[Home] +[Installation +[Configurations] +[Problems and Limitations] +

    + +Configurations Supported by Visual Modeler 2.0 + + + +

    Configurations Supported by Visual Modeler 2.0 +

    + +
    +

    Visual Modeler 2.0 System Requirements +

    + +
    +

    To install and run Visual Modeler 2.0 successfully on +Windows, you need: +

    +
    +

    + + +
    +Item + + +Requirement + + +
    +

    Computer +

    +
    +

    Personal computer with an 80486- or Pentium-compatible processor, +or Digital Alpha/Windows NT personal workstation +

    +
    +
    +

    Memory +

    +
    +

    At least 32 MB of RAM is recommended +

    +
    +
    +

    Disk space +

    +
    +

    25 MB for Visual Modeler, plus 1-3 MB for each model; +Visual Modeler data files require about twice the space used by +the source code files +

    +
    +
    +

    Disk drive +

    +
    +

    CD-ROM drive for installation +

    +
    +
    +

    Display +

    +
    +

    VGA-compatible graphics card and monitor; 256 or more colors +recommended +

    +
    +
    +

    Mouse +

    +
    +

    Any pointing device with at least two buttons +

    +
    +
    +

    Printer +

    +
    +

    Any standard PostScript or PCL5 printer (optional) +

    +
    +

    Printing Visual Modeler files requires no additional printer setup. If +you have printer problems, try one of the following: +

    +
    +
    +

    Operating +system +

    +
    +

    Microsoft© Windows 95 or Windows NT 4.0 +

    +
    + +
    + + +
    +
    + +

    +
    +

    Swap Files +

    +
    +

    When working with large model files, Visual Modeler runs faster +with a permanent swap file. You can set this from the Windows +Control Panel. If Visual Modeler reports "low memory" during normal +operation, increase the size of permanent virtual memory. +

    +
    +

    Video Cards and Drivers +

    +
    +

    Visual Modeler was tested with a number of video cards and drivers. +The Diamond Viper Pro Video card +required the driver be updated to driver 3.5 v1.2 on Windows +NT. If you experience display problems with other video card +and driver combinations, check with the video card vendor to +see if an updated driver is available that may correct the +problem. +

    +
    +

    Visual Modeler uses the current font size, among other factors, to +determine the optimal size of a class icon when autosizing it. If +your video driver supports large and small fonts, you may +notice that a class that was autosized and saved with small +fonts does not appear autosized correctly when read in using +large fonts, and vice-versa. You can correct this by either: +

    +
    +

    Printers and Printer Drivers +

    +
    +

    If you experience printing problems with other printer and +driver combinations, check with the printer vendor to see if an +updated driver is available that may correct the problem. +

    +
    +

    Windows 95 Mouse Driver +

    +
    +

    The EM_EXEC.exe mouse driver file on some +Windows 95 PCs-especially laptops-that interferes with +Visual Modeler. (The typical symptom is a crash while you are +entering a class name directly on a class diagram, but Visual Modeler +may also crash at other times with varying frequency.) +

    +
    +

    This mouse driver file must be deleted or renamed for Visual Modeler to +function properly: +

    +
      + +
    1. Start your PC in command prompt mode. (Press F5 during +boot and select command prompt start.) + + +
    2. Go to the C:\mouse\system directory. + + +
    3. Delete or rename the file EM_EXEC.exe. This should not +impact any Windows 95 performance. + + +
    4. Do a normal reboot. + +
    +

    + +

    To install a newer version of the driver, which does not interfere +with Visual Modeler: +

    +
      + +
    1. Contact Logitech to get an update. The update can be found +at ftp://ftp.logitech.com/TechSupport/MOUSE. +The name of the file is mw7aol.exe, +May 3, 1996 101k. + + +
    2. When you execute that file, it will be expanded into several +other files, including a later version of EM_EXEC.exe +which should work together with Visual Modeler. + +
    +

    +Another mouse product that may interfere with Visual Modeler is +the Microsoft IntelliMouse, which comes with a mouse driver called +Point32.exe. +To solve this problem, bring up the task list in Windows and end +the task called "point32".

    +
    +[PREVIOUS] +[NEXT] - +[Home] +[Installation] +[Configurations] +[Problems and Limitations] +

    + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/DEFSTYPE.INI b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/DEFSTYPE.INI new file mode 100644 index 0000000..61f1988 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/DEFSTYPE.INI @@ -0,0 +1,31 @@ +[Stereotyped Items] +Class:Interface +Component:EXE +Component:DLL +Component:ActiveX +Component:Application +Component:Applet + +[Class:Interface] +Item=Class +Stereotype=Interface + +[Component:EXE] +Item=Component +Stereotype=EXE + +[Component:DLL] +Item=Component +Stereotype=DLL + +[Component:ActiveX] +Item=Component +Stereotype=ActiveX + +[Component:Application] +Item=Component +Stereotype=Application + +[Component:Applet] +Item=Component +Stereotype=Applet diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/INSTALL.HTM b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/INSTALL.HTM new file mode 100644 index 0000000..eb3a96c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/INSTALL.HTM @@ -0,0 +1,111 @@ + + + +[PREVIOUS] +[NEXT] - +[Home] +[Installation] +[Configurations] +[Problems and Limitations] +

    + +Visual Modeler 2.0 Installation Information + + + +

    Visual Modeler 2.0 Installation Information +

    +
    +

    The Visual Modeler 2.0 Setup wizard automatically installs +the Visual Modeler executable and related files on your computer. +

    +
    +

    Note: On Windows NT, the installation is always done as a +personal (as opposed to common) one, whether or not you +have administrator privileges. +

    +
    +

    Visual Modeler Folder +

    +
    +

    The Setup wizard decompresses files from the Visual Modeler release +media and copies them to a folder on your hard disk. This folder +is referred to as your Visual Modeler folder throughout this guide. The +Setup wizard will suggest a location for the folder, but you can specify a +different location. +

    +
    +

    Program-Item Icons +

    +
    +

    In Windows 95 or Windows NT 4.0, the Setup wizard creates a +folder in the Windows Start Menu\Programs folder and +populates it with program-item icons. You can then start Visual Modeler +by choosing it from the taskbar's Start > Programs menu. +

    +
    +

    The Setup wizard creates program-item icons for: +

    +
    +

    Initialization File +

    +
    +

    The Setup wizard creates a rose.ini file in your Windows folder. +

    +
    +

    Log File +

    +
    +

    The Setup wizard logs installation progress to a file named +install.log that it creates in your Visual Modeler folder. In case you +encounter a problem with the installation, this file may provide information to help diagnose the problem. + + +

    Removing the Visual Modeler 2.0 Release +

    + +

    In Windows 95 and Windows NT 4.0, you can remove +this release by going to the Windows Control Panel and +choosing Add/Remove Programs and choosing +Microsoft Visual Modeler from the displayed list of programs. +

    +
    +

    Note that in Windows NT 4.0, the uninstallation information for +Visual Modeler is stored in the registry as personal (as opposed to +common) information. Thus, it will be visible to only the user +who installed Visual Modeler. +

    +

    + +
    +
    [PREVIOUS] +[NEXT] - +[Home] +[Installation] +[Configurations] +[Problems and Limitations] +

    + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.EXE b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.EXE new file mode 100644 index 0000000..81846be Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.EXE differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.MNU b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.MNU new file mode 100644 index 0000000..94909ee --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.MNU @@ -0,0 +1,8 @@ +Menu Kludge +{ + Option "Do Nothing" + { + RoseScript mumble.ebx + } +} + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.SRG b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.SRG new file mode 100644 index 0000000..b5aa2a4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVM.SRG @@ -0,0 +1,1255 @@ +# Self Registration file for Microsoft Visual Modeler 2.0 and its AddIns + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler] +"HelpFileDir"="REG_SZ:" +"InstallDir"="REG_SZ:" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\StereotypeCfgFiles] +"File1"="REG_SZ:DefaultStereotypes.ini" +"File2"="REG_SZ:COMStereotypes.ini" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns] + +# Visual Studio AddIn +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\VisualStudio] +"Active"="REG_SZ:Yes" +"Company"="REG_SZ:Rational Software Corporation" +"HelpFileName"="REG_SZ:msvmvb" +"InstallDir"="REG_SZ:" +"LanguageAddIn"="REG_SZ:No" +"MenuFile"="REG_SZ:vs.mnu" +"OLEServer"="REG_SZ:vs.api" +"PropertyFile"="REG_SZ:" +"StereotypeCfgFile"="REG_SZ:" +"Version"="REG_SZ:" +# Obsolete? + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\VisualStudio\Events] +"OnActivate"="REG_SZ:Interface" +"OnDeactivate"="REG_SZ:Interface" +"OnGenerateCode"="REG_SZ:Interface" +"OnBrowseSource"="Interface" + +# Integration Manager +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\IntegrationManager] +"0"="REG_SZ:rvsApplicationStarter.Interface" +"1"="REG_SZ:rvsApplicationStarter.Interface" +"2"="REG_SZ:rvsApplicationStarter.Interface" + +# Visual Basic AddIn +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\Visual Basic] +"Active"="REG_SZ:Yes" +"Company"="REG_SZ:Rational Software Corporation" +"FundamentalTypes"="REG_SZ:Boolean; Byte; Currency; Date; Decimal; Double; Integer; Long; Object; Single; String; Variant" +"HelpFileName"="REG_SZ:msvmvb" +"InstallDir"="REG_SZ:" +"LanguageAddIn"="REG_SZ:Yes" +"MenuFile"="REG_SZ:vb.mnu" +"OLEServer"="REG_SZ:" +"PropertyFile"="REG_SZ:vb.pty" +"StereotypeCfgFile"="REG_SZ:VBStereotypes.ini" +"Version"="REG_SZ:" +# Obsolete? + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\Visual Basic\Events] +"OnBrowseBody"="REG_SZ:rvbbrowsecode.ebx" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\Visual Basic\Code Update] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\Visual Basic\Model Update] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\Visual Basic\Synchronize] + +# Visual C++ AddIn +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\VC++] +"Active"="REG_SZ:Yes" +"Company"="REG_SZ:Rational Software Corporation" +"FundamentalTypes" = "REG_SZ:bool; byte; short; int; long; char; float; double; void" +"HelpFileName"="REG_SZ:msvmcpp" +"InstallDir"="REG_SZ:" +"LanguageAddIn"="REG_SZ:Yes" +"MenuFile"="REG_SZ:vc.mnu" +"OLEServer"="REG_SZ:vc.api" +"PropertyFile"="REG_SZ:vc.pty" +"StereotypeCfgFile"="REG_SZ:VC++Stereotypes.ini" +"Version" = "REG_SZ:" +# Obsolete? + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\VC++\Events] +"OnBrowseBody"="Interface" +"OnBrowseHeader"="Interface" + +# Visual J++ AddIn +# NOTE: msvm 2.0 does NOT support code generation for VJ++. +# This section is here ONLY to contribute java-specific component stereotypes. +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\VJ++] +"Active"="REG_SZ:Yes" +"Company"="REG_SZ:Rational Software Corporation" +"FundamentalTypes" = "REG_SZ:boolean; byte; short; int; long; char; float; double" +"HelpFileName"="REG_SZ:" +"InstallDir"="REG_SZ:" +"LanguageAddIn"="REG_SZ:Yes" +"MenuFile"="REG_SZ:" +"OLEServer"="REG_SZ:" +"PropertyFile"="REG_SZ:" +"StereotypeCfgFile"="REG_SZ:" +"Version" = "REG_SZ:" +# Obsolete? + +# Microsoft Source Safe AddIn +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\SourceSafe] +"Active"="REG_SZ:Yes" +"Company"="REG_SZ:Rational Software Corporation" +"HelpFileName"="REG_SZ:msvmss" +"InstallDir"="REG_SZ:" +"LanguageAddIn"="REG_SZ:No" +"MenuFile"="REG_SZ:vss.mnu" +"OLEServer"="REG_SZ:" +"PropertyFile"="REG_SZ:" +"StereotypeCfgFile"="REG_SZ:" +"Version"="REG_SZ:" +# Obsolete? + +# Microsoft Repository AddIn +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\Repository] +"Active"="REG_SZ:Yes" +"Company"="REG_SZ:Rational Software Corporation" +"HelpFileName"="REG_SZ:msvmrep" +"InstallDir"="REG_SZ:" +"LanguageAddIn"="REG_SZ:No" +"MenuFile"="REG_SZ:repos.mnu" +"OLEServer"="REG_SZ:rvsrepos.api" +"PropertyFile"="REG_SZ:" +"StereotypeCfgFile"="REG_SZ:" +"Version"="REG_SZ:" +# Obsolete? + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Modeler\AddIns\TypeLibImporter] +"Active"="REG_SZ:Yes" +"Company"="REG_SZ:Rational Software Corporation" +"InstallDir"="REG_SZ:" +"MenuFile"="REG_SZ:" +"HelpFileName"="REG_SZ:" +"PropertyFile"="REG_SZ:" +"LanguageAddIn"="REG_SZ:No" +"Version"="REG_SZ:" +"OLEServer"="REG_SZ:rtitlibimp.api" + +# User specific registration for Microsoft Visual Modeler 2.0 and its AddIns + +[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Visual Modeler] +"IniFileDir"="REG_SZ:" + +[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Visual Modeler\Virtual Path Map] +"SCRIPT_PATH"="REG_SZ:" +"VSADDIN_SCRIPT_PATH"="REG_SZ:" +"VBADDIN_SCRIPT_PATH"="REG_SZ:" +"VBADDIN_TEMPLATE_PATH"="REG_SZ:\\template" +"REPOSADDIN_SCRIPT_PATH"="REG_SZ:" +"SOURCESAFEADDIN_SCRIPT_PATH"="REG_SZ:" + +[HKEY_CURRENT_USER\SOFTWARE\BasicScript Program Settings\MSVM\Locale] +"MsvmLocale"="REG_SZ:1033" + +[HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Visual Modeler] +"IniFileDir"="REG_SZ:" + +[HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Visual Modeler\Virtual Path Map] +"SCRIPT_PATH"="REG_SZ:" +"VSADDIN_SCRIPT_PATH"="REG_SZ:" +"VBADDIN_SCRIPT_PATH"="REG_SZ:" +"VBADDIN_TEMPLATE_PATH"="REG_SZ:\\template" +"REPOSADDIN_SCRIPT_PATH"="REG_SZ:" +"SOURCESAFEADDIN_SCRIPT_PATH"="REG_SZ:" + +# Registration of the interfaces from the type library for Microsoft Visual Modeler 2.0 + +[HKEY_CLASSES_ROOT\TypeLib\{860CC660-1C2B-11D0-B1B1-444553540000}] +[HKEY_CLASSES_ROOT\TypeLib\{860CC660-1C2B-11D0-B1B1-444553540000}\4.2] +""="REG_SZ:RationalRose" +[HKEY_CLASSES_ROOT\TypeLib\{860CC660-1C2B-11D0-B1B1-444553540000}\4.2\0] +[HKEY_CLASSES_ROOT\TypeLib\{860CC660-1C2B-11D0-B1B1-444553540000}\4.2\0\win32] +[HKEY_CLASSES_ROOT\TypeLib\{860CC660-1C2B-11D0-B1B1-444553540000}\4.2\FLAGS] +[HKEY_CLASSES_ROOT\TypeLib\{860CC660-1C2B-11D0-B1B1-444553540000}\4.2\HELPDIR] + +[HKEY_CLASSES_ROOT\Interface\{97B3835C-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseProcessorCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3835C-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835C-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835C-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3835B-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseCategoryCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3835B-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835B-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835B-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{B42B37DC-0274-11D0-BBC2-00A024C67C00}] +""="REG_SZ:IRoseUsesRelation" +[HKEY_CLASSES_ROOT\Interface\{B42B37DC-0274-11D0-BBC2-00A024C67C00}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{B42B37DC-0274-11D0-BBC2-00A024C67C00}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{B42B37DC-0274-11D0-BBC2-00A024C67C00}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{BC57D1C2-863E-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseItem" +[HKEY_CLASSES_ROOT\Interface\{BC57D1C2-863E-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BC57D1C2-863E-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BC57D1C2-863E-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38356-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseUseCaseCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38356-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38356-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38356-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{BA242E02-8961-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseRelation" +[HKEY_CLASSES_ROOT\Interface\{BA242E02-8961-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BA242E02-8961-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BA242E02-8961-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{D7BC1B40-8618-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseApplication" +[HKEY_CLASSES_ROOT\Interface\{D7BC1B40-8618-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D7BC1B40-8618-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D7BC1B40-8618-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38359-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseMessageCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38359-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38359-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38359-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38343-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseClassDiagramCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38343-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38343-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38343-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{F819833A-FC55-11CF-BBD3-00A024C67143}] +""="REG_SZ:IRoseScenarioDiagram" +[HKEY_CLASSES_ROOT\Interface\{F819833A-FC55-11CF-BBD3-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{F819833A-FC55-11CF-BBD3-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{F819833A-FC55-11CF-BBD3-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{BA242E04-8961-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseHasRelationship" +[HKEY_CLASSES_ROOT\Interface\{BA242E04-8961-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BA242E04-8961-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BA242E04-8961-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{5F735F36-F9EA-11CF-BBD3-00A024C67143}] +""="REG_SZ:IRoseClassView" +[HKEY_CLASSES_ROOT\Interface\{5F735F36-F9EA-11CF-BBD3-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{5F735F36-F9EA-11CF-BBD3-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{5F735F36-F9EA-11CF-BBD3-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3835F-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseActionCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3835F-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835F-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835F-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{62C43884-DB5A-11CF-B091-00A0241E3F73}] +""="REG_SZ:IRoseProcess" +[HKEY_CLASSES_ROOT\Interface\{62C43884-DB5A-11CF-B091-00A0241E3F73}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{62C43884-DB5A-11CF-B091-00A0241E3F73}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{62C43884-DB5A-11CF-B091-00A0241E3F73}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38360-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseControllableUnitCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38360-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38360-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38360-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3834B-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseModuleCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3834B-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834B-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834B-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{9DE9A9C1-F2D0-11D0-883A-3C8B00C10000}] +""="REG_SZ:IRoseLinkCollection" +[HKEY_CLASSES_ROOT\Interface\{9DE9A9C1-F2D0-11D0-883A-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{9DE9A9C1-F2D0-11D0-883A-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{9DE9A9C1-F2D0-11D0-883A-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{13881143-93C1-11D0-A214-00A024FFFE40}] +""="REG_SZ:IRoseAction" +[HKEY_CLASSES_ROOT\Interface\{13881143-93C1-11D0-A214-00A024FFFE40}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{13881143-93C1-11D0-A214-00A024FFFE40}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{13881143-93C1-11D0-A214-00A024FFFE40}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{AE0C0700-8970-11CF-B091-00A0241E3F73}] +""="REG_SZ:IRoseCollection" +[HKEY_CLASSES_ROOT\Interface\{AE0C0700-8970-11CF-B091-00A0241E3F73}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{AE0C0700-8970-11CF-B091-00A0241E3F73}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{AE0C0700-8970-11CF-B091-00A0241E3F73}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38355-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseUsesRelationCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38355-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38355-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38355-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38352-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseParameterCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38352-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38352-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38352-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3834C-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseAttributeCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3834C-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834C-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834C-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{62C43882-DB5A-11CF-B091-00A0241E3F73}] +""="REG_SZ:IRoseDevice" +[HKEY_CLASSES_ROOT\Interface\{62C43882-DB5A-11CF-B091-00A0241E3F73}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{62C43882-DB5A-11CF-B091-00A0241E3F73}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{62C43882-DB5A-11CF-B091-00A0241E3F73}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{BA242E00-8961-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseRole" +[HKEY_CLASSES_ROOT\Interface\{BA242E00-8961-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BA242E00-8961-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BA242E00-8961-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{BC57D1C0-863E-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseClass" +[HKEY_CLASSES_ROOT\Interface\{BC57D1C0-863E-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BC57D1C0-863E-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BC57D1C0-863E-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{D067F15F-6987-11D0-BBF0-00A024C67143}] +""="REG_SZ:IRoseElement" +[HKEY_CLASSES_ROOT\Interface\{D067F15F-6987-11D0-BBF0-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D067F15F-6987-11D0-BBF0-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D067F15F-6987-11D0-BBF0-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{32C862A7-8AA9-11D0-A70B-0000F803584A}] +""="REG_SZ:IRoseControllableUnit" +[HKEY_CLASSES_ROOT\Interface\{32C862A7-8AA9-11D0-A70B-0000F803584A}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{32C862A7-8AA9-11D0-A70B-0000F803584A}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{32C862A7-8AA9-11D0-A70B-0000F803584A}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{E38942A0-8621-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseModel" +[HKEY_CLASSES_ROOT\Interface\{E38942A0-8621-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{E38942A0-8621-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{E38942A0-8621-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{574130A1-93B8-11D0-A214-00A024FFFE40}] +""="REG_SZ:IRoseTransition" +[HKEY_CLASSES_ROOT\Interface\{574130A1-93B8-11D0-A214-00A024FFFE40}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{574130A1-93B8-11D0-A214-00A024FFFE40}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{574130A1-93B8-11D0-A214-00A024FFFE40}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3834A-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseSubsystemCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3834A-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834A-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834A-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{62C43886-DB5A-11CF-B091-00A0241E3F73}] +""="REG_SZ:IRoseProcessor" +[HKEY_CLASSES_ROOT\Interface\{62C43886-DB5A-11CF-B091-00A0241E3F73}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{62C43886-DB5A-11CF-B091-00A0241E3F73}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{62C43886-DB5A-11CF-B091-00A0241E3F73}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{93461A23-8811-11CF-B1B0-D227D5210B2C}] +""="REG_SZ:IRoseProperty" +[HKEY_CLASSES_ROOT\Interface\{93461A23-8811-11CF-B1B0-D227D5210B2C}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{93461A23-8811-11CF-B1B0-D227D5210B2C}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{93461A23-8811-11CF-B1B0-D227D5210B2C}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{A69CAB22-9179-11D0-A214-00A024FFFE40}] +""="REG_SZ:IRoseEvent" +[HKEY_CLASSES_ROOT\Interface\{A69CAB22-9179-11D0-A214-00A024FFFE40}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{A69CAB22-9179-11D0-A214-00A024FFFE40}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{A69CAB22-9179-11D0-A214-00A024FFFE40}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{7ADDA701-9B06-11D0-A214-00A024FFFE40}] +""="REG_SZ:IRoseStateDiagram" +[HKEY_CLASSES_ROOT\Interface\{7ADDA701-9B06-11D0-A214-00A024FFFE40}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7ADDA701-9B06-11D0-A214-00A024FFFE40}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7ADDA701-9B06-11D0-A214-00A024FFFE40}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{EB7AAB60-939C-11CF-B091-00A0241E3F73}] +""="REG_SZ:IRoseRichType" +[HKEY_CLASSES_ROOT\Interface\{EB7AAB60-939C-11CF-B091-00A0241E3F73}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{EB7AAB60-939C-11CF-B091-00A0241E3F73}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{EB7AAB60-939C-11CF-B091-00A0241E3F73}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3835E-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseScenarioDiagramCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3835E-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835E-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835E-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C78E7028-86E4-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseParameter" +[HKEY_CLASSES_ROOT\Interface\{C78E7028-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7028-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7028-86E4-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C78E7020-86E4-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseOperation" +[HKEY_CLASSES_ROOT\Interface\{C78E7020-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7020-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7020-86E4-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38368-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseStateDiagramCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38368-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38368-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38368-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38362-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseItemViewCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38362-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38362-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38362-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3835D-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRosePropertyCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3835D-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835D-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835D-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3834D-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseOperationCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3834D-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834D-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834D-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38342-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseDeviceCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38342-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38342-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38342-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{7D8474B2-2C33-11D0-BBDA-00A024C67143}] +""="REG_SZ:IRoseObject" +[HKEY_CLASSES_ROOT\Interface\{7D8474B2-2C33-11D0-BBDA-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7D8474B2-2C33-11D0-BBDA-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7D8474B2-2C33-11D0-BBDA-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{9EF8DDD6-E697-11CF-BBD1-00A024C67143}] +""="REG_SZ:IRoseModuleVisibilityRelationship" +[HKEY_CLASSES_ROOT\Interface\{9EF8DDD6-E697-11CF-BBD1-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{9EF8DDD6-E697-11CF-BBD1-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{9EF8DDD6-E697-11CF-BBD1-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C640C861-F2D3-11D0-883A-3C8B00C10000}] +""="REG_SZ:IRoseComponentViewCollection" +[HKEY_CLASSES_ROOT\Interface\{C640C861-F2D3-11D0-883A-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C640C861-F2D3-11D0-883A-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C640C861-F2D3-11D0-883A-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38351-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseHasRelationshipCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38351-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38351-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38351-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38341-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseClassViewCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38341-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38341-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38341-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C2C15EC4-E028-11CF-B091-00A0241E3F73}] +""="REG_SZ:IRoseDeploymentDiagram" +[HKEY_CLASSES_ROOT\Interface\{C2C15EC4-E028-11CF-B091-00A0241E3F73}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C2C15EC4-E028-11CF-B091-00A0241E3F73}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C2C15EC4-E028-11CF-B091-00A0241E3F73}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{348B1AD4-D5C4-11D0-89F8-0020AFD6C181}] +""="REG_SZ:IRoseInstanceView" +[HKEY_CLASSES_ROOT\Interface\{348B1AD4-D5C4-11D0-89F8-0020AFD6C181}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{348B1AD4-D5C4-11D0-89F8-0020AFD6C181}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{348B1AD4-D5C4-11D0-89F8-0020AFD6C181}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{195D7852-D5B6-11D0-89F8-0020AFD6C181}] +""="REG_SZ:IRoseLink" +[HKEY_CLASSES_ROOT\Interface\{195D7852-D5B6-11D0-89F8-0020AFD6C181}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{195D7852-D5B6-11D0-89F8-0020AFD6C181}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{195D7852-D5B6-11D0-89F8-0020AFD6C181}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{F8198337-FC55-11CF-BBD3-00A024C67143}] +""="REG_SZ:IRoseObjectInstance" +[HKEY_CLASSES_ROOT\Interface\{F8198337-FC55-11CF-BBD3-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{F8198337-FC55-11CF-BBD3-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{F8198337-FC55-11CF-BBD3-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{00C99560-9200-11CF-B1B0-D227D5210B2C}] +""="REG_SZ:IRoseInheritRelation" +[HKEY_CLASSES_ROOT\Interface\{00C99560-9200-11CF-B1B0-D227D5210B2C}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{00C99560-9200-11CF-B1B0-D227D5210B2C}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{00C99560-9200-11CF-B1B0-D227D5210B2C}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{A69CAB21-9179-11D0-A214-00A024FFFE40}] +""="REG_SZ:IRoseStateMachine" +[HKEY_CLASSES_ROOT\Interface\{A69CAB21-9179-11D0-A214-00A024FFFE40}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{A69CAB21-9179-11D0-A214-00A024FFFE40}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{A69CAB21-9179-11D0-A214-00A024FFFE40}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C78E702A-86E4-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseModule" +[HKEY_CLASSES_ROOT\Interface\{C78E702A-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E702A-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E702A-86E4-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{7E7F6EE0-16DE-11D0-8976-00A024774419}] +""="REG_SZ:IRoseUseCase" +[HKEY_CLASSES_ROOT\Interface\{7E7F6EE0-16DE-11D0-8976-00A024774419}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7E7F6EE0-16DE-11D0-8976-00A024774419}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7E7F6EE0-16DE-11D0-8976-00A024774419}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{0DD9ACF8-D06E-11D0-BC0B-00A024C67143}] +""="REG_SZ:IRoseItemCollection" +[HKEY_CLASSES_ROOT\Interface\{0DD9ACF8-D06E-11D0-BC0B-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{0DD9ACF8-D06E-11D0-BC0B-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{0DD9ACF8-D06E-11D0-BC0B-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38358-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseNoteViewCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38358-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38358-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38358-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38354-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseInheritRelationCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38354-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38354-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38354-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B383A1-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseDeploymentDiagramCollection" +[HKEY_CLASSES_ROOT\Interface\{97B383A1-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B383A1-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B383A1-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{6A7FC311-C893-11D0-BC0B-00A024C67143}] +""="REG_SZ:IRoseStringCollection" +[HKEY_CLASSES_ROOT\Interface\{6A7FC311-C893-11D0-BC0B-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{6A7FC311-C893-11D0-BC0B-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{6A7FC311-C893-11D0-BC0B-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3836A-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseStateViewCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3836A-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3836A-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3836A-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38366-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseProcessCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38366-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38366-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38366-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3834E-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseAssociationCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3834E-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834E-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3834E-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38348-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseModuleDiagramCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38348-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38348-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38348-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{3FD9D000-93B0-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseDiagram" +[HKEY_CLASSES_ROOT\Interface\{3FD9D000-93B0-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{3FD9D000-93B0-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{3FD9D000-93B0-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{BF8C1040-96DD-11CF-B091-00A0241E3F73}] +""="REG_SZ:IRoseRichTypeValuesCollection" +[HKEY_CLASSES_ROOT\Interface\{BF8C1040-96DD-11CF-B091-00A0241E3F73}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BF8C1040-96DD-11CF-B091-00A0241E3F73}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{BF8C1040-96DD-11CF-B091-00A0241E3F73}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{14028C92-C06C-11D0-89F5-0020AFD6C181}] +""="REG_SZ:IRoseSubsystemView" +[HKEY_CLASSES_ROOT\Interface\{14028C92-C06C-11D0-89F5-0020AFD6C181}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{14028C92-C06C-11D0-89F5-0020AFD6C181}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{14028C92-C06C-11D0-89F5-0020AFD6C181}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{14028C94-C06C-11D0-89F5-0020AFD6C181}] +""="REG_SZ:IRoseComponentView" +[HKEY_CLASSES_ROOT\Interface\{14028C94-C06C-11D0-89F5-0020AFD6C181}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{14028C94-C06C-11D0-89F5-0020AFD6C181}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{14028C94-C06C-11D0-89F5-0020AFD6C181}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C78E7024-86E4-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseAttribute" +[HKEY_CLASSES_ROOT\Interface\{C78E7024-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7024-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7024-86E4-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{3FD9D002-93B0-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseClassDiagram" +[HKEY_CLASSES_ROOT\Interface\{3FD9D002-93B0-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{3FD9D002-93B0-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{3FD9D002-93B0-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{015655CA-72DF-11D0-95EB-0000F803584A}] +""="REG_SZ:IRoseNoteView" +[HKEY_CLASSES_ROOT\Interface\{015655CA-72DF-11D0-95EB-0000F803584A}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{015655CA-72DF-11D0-95EB-0000F803584A}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{015655CA-72DF-11D0-95EB-0000F803584A}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{47D975C1-8A8D-11D0-A214-444553540000}] +""="REG_SZ:IRosePackage" +[HKEY_CLASSES_ROOT\Interface\{47D975C1-8A8D-11D0-A214-444553540000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{47D975C1-8A8D-11D0-A214-444553540000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{47D975C1-8A8D-11D0-A214-444553540000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{4C9E2241-84C5-11D0-A214-444553540000}] +""="REG_SZ:IRosePathMap" +[HKEY_CLASSES_ROOT\Interface\{4C9E2241-84C5-11D0-A214-444553540000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4C9E2241-84C5-11D0-A214-444553540000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4C9E2241-84C5-11D0-A214-444553540000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38363-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseModuleVisibilityRelationshipCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38363-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38363-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38363-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38349-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseClassCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38349-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38349-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38349-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{F819833C-FC55-11CF-BBD3-00A024C67143}] +""="REG_SZ:IRoseMessage" +[HKEY_CLASSES_ROOT\Interface\{F819833C-FC55-11CF-BBD3-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{F819833C-FC55-11CF-BBD3-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{F819833C-FC55-11CF-BBD3-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C78E7026-86E4-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseAssociation" +[HKEY_CLASSES_ROOT\Interface\{C78E7026-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7026-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E7026-86E4-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38361-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseEventCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38361-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38361-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38361-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38367-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseStateCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38367-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38367-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38367-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{7BD909E1-9AF9-11D0-A214-00A024FFFE40}] +""="REG_SZ:IRoseStateView" +[HKEY_CLASSES_ROOT\Interface\{7BD909E1-9AF9-11D0-A214-00A024FFFE40}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7BD909E1-9AF9-11D0-A214-00A024FFFE40}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7BD909E1-9AF9-11D0-A214-00A024FFFE40}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{CA3AD902-BFCE-11D0-89F5-0020AFD6C181}] +""="REG_SZ:IRoseSubsystemViewCollection" +[HKEY_CLASSES_ROOT\Interface\{CA3AD902-BFCE-11D0-89F5-0020AFD6C181}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CA3AD902-BFCE-11D0-89F5-0020AFD6C181}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CA3AD902-BFCE-11D0-89F5-0020AFD6C181}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{3FD9D004-93B0-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseModuleDiagram" +[HKEY_CLASSES_ROOT\Interface\{3FD9D004-93B0-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{3FD9D004-93B0-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{3FD9D004-93B0-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C78E702C-86E4-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseSubsystem" +[HKEY_CLASSES_ROOT\Interface\{C78E702C-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E702C-86E4-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C78E702C-86E4-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38357-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseExternalDocumentCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38357-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38357-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38357-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C640C864-F2D3-11D0-883A-3C8B00C10000}] +""="REG_SZ:IRoseInstanceViewCollection" +[HKEY_CLASSES_ROOT\Interface\{C640C864-F2D3-11D0-883A-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C640C864-F2D3-11D0-883A-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C640C864-F2D3-11D0-883A-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{7DFAFE40-A29D-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseItemView" +[HKEY_CLASSES_ROOT\Interface\{7DFAFE40-A29D-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7DFAFE40-A29D-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{7DFAFE40-A29D-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{A69CAB23-9179-11D0-A214-00A024FFFE40}] +""="REG_SZ:IRoseState" +[HKEY_CLASSES_ROOT\Interface\{A69CAB23-9179-11D0-A214-00A024FFFE40}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{A69CAB23-9179-11D0-A214-00A024FFFE40}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{A69CAB23-9179-11D0-A214-00A024FFFE40}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3836B-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseTransitionCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3836B-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3836B-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3836B-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B3835A-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseObjectInstanceCollection" +[HKEY_CLASSES_ROOT\Interface\{97B3835A-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835A-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B3835A-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38353-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRoseRoleCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38353-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38353-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38353-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{D7BC1B45-8618-11CF-B3D4-00A0241DB1D0}] +""="REG_SZ:IRoseCategory" +[HKEY_CLASSES_ROOT\Interface\{D7BC1B45-8618-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D7BC1B45-8618-11CF-B3D4-00A0241DB1D0}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D7BC1B45-8618-11CF-B3D4-00A0241DB1D0}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{00C99564-9200-11CF-B1B0-D227D5210B2C}] +""="REG_SZ:IRoseClassRelation" +[HKEY_CLASSES_ROOT\Interface\{00C99564-9200-11CF-B1B0-D227D5210B2C}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{00C99564-9200-11CF-B1B0-D227D5210B2C}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{00C99564-9200-11CF-B1B0-D227D5210B2C}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{97B38364-A4E3-11D0-BFF0-00AA003DEF5B}] +""="REG_SZ:IRosePackageCollection" +[HKEY_CLASSES_ROOT\Interface\{97B38364-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38364-A4E3-11D0-BFF0-00AA003DEF5B}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{97B38364-A4E3-11D0-BFF0-00AA003DEF5B}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{906FF583-276B-11D0-8980-00A024774419}] +""="REG_SZ:IRoseExternalDocument" +[HKEY_CLASSES_ROOT\Interface\{906FF583-276B-11D0-8980-00A024774419}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{906FF583-276B-11D0-8980-00A024774419}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{906FF583-276B-11D0-8980-00A024774419}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{D5352FC0-346C-11D1-883B-3C8B00C10000}] +""="REG_SZ:IRoseAddIn" +[HKEY_CLASSES_ROOT\Interface\{D5352FC0-346C-11D1-883B-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D5352FC0-346C-11D1-883B-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D5352FC0-346C-11D1-883B-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{6AC2BA81-454D-11D1-883B-3C8B00C10000}] +""="REG_SZ:IRoseRealizeRelation" +[HKEY_CLASSES_ROOT\Interface\{6AC2BA81-454D-11D1-883B-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{6AC2BA81-454D-11D1-883B-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{6AC2BA81-454D-11D1-883B-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{CE5BE563-0380-11D1-BC11-00A024C67143}] +""="REG_SZ:IRoseView_FillColor" +[HKEY_CLASSES_ROOT\Interface\{CE5BE563-0380-11D1-BC11-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CE5BE563-0380-11D1-BC11-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CE5BE563-0380-11D1-BC11-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{C87D2BC1-352A-11D1-883B-3C8B00C10000}] +""="REG_SZ:IRoseAddInCollection" +[HKEY_CLASSES_ROOT\Interface\{C87D2BC1-352A-11D1-883B-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C87D2BC1-352A-11D1-883B-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{C87D2BC1-352A-11D1-883B-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{CE5BE565-0380-11D1-BC11-00A024C67143}] +""="REG_SZ:IRoseView_LineColor" +[HKEY_CLASSES_ROOT\Interface\{CE5BE565-0380-11D1-BC11-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CE5BE565-0380-11D1-BC11-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CE5BE565-0380-11D1-BC11-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{D5352FC2-346C-11D1-883B-3C8B00C10000}] +""="REG_SZ:IRoseAddInManager" +[HKEY_CLASSES_ROOT\Interface\{D5352FC2-346C-11D1-883B-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D5352FC2-346C-11D1-883B-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{D5352FC2-346C-11D1-883B-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{CE5BE567-0380-11D1-BC11-00A024C67143}] +""="REG_SZ:IRoseView_Font" +[HKEY_CLASSES_ROOT\Interface\{CE5BE567-0380-11D1-BC11-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CE5BE567-0380-11D1-BC11-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{CE5BE567-0380-11D1-BC11-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{76ACC49D-FA18-11D0-BC11-00A024C67143}] +""="REG_SZ:IRoseDefaultModelProperties" +[HKEY_CLASSES_ROOT\Interface\{76ACC49D-FA18-11D0-BC11-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{76ACC49D-FA18-11D0-BC11-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{76ACC49D-FA18-11D0-BC11-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{67448181-4553-11D1-883B-3C8B00C10000}] +""="REG_SZ:IRoseRealizeRelationCollection" +[HKEY_CLASSES_ROOT\Interface\{67448181-4553-11D1-883B-3C8B00C10000}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{67448181-4553-11D1-883B-3C8B00C10000}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{67448181-4553-11D1-883B-3C8B00C10000}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{4ACE1899-6CD3-11D1-BC1E-00A024C67143}] +""="REG_SZ:IRoseClassDependency" +[HKEY_CLASSES_ROOT\Interface\{4ACE1899-6CD3-11D1-BC1E-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4ACE1899-6CD3-11D1-BC1E-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4ACE1899-6CD3-11D1-BC1E-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{4ACE189D-6CD3-11D1-BC1E-00A024C67143}] +""="REG_SZ:IRoseCategoryDependencyCollection" +[HKEY_CLASSES_ROOT\Interface\{4ACE189D-6CD3-11D1-BC1E-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4ACE189D-6CD3-11D1-BC1E-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4ACE189D-6CD3-11D1-BC1E-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{4ACE189B-6CD3-11D1-BC1E-00A024C67143}] +""="REG_SZ:IRoseCategoryDependency" +[HKEY_CLASSES_ROOT\Interface\{4ACE189B-6CD3-11D1-BC1E-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4ACE189B-6CD3-11D1-BC1E-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{4ACE189B-6CD3-11D1-BC1E-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + +[HKEY_CLASSES_ROOT\Interface\{ED042E4F-6CDE-11D1-BC1E-00A024C67143}] +""="REG_SZ:IRoseClassDependencyCollection" +[HKEY_CLASSES_ROOT\Interface\{ED042E4F-6CDE-11D1-BC1E-00A024C67143}\ProxyStubClsid] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{ED042E4F-6CDE-11D1-BC1E-00A024C67143}\ProxyStubClsid32] +""="REG_SZ:{00020420-0000-0000-C000-000000000046}" +[HKEY_CLASSES_ROOT\Interface\{ED042E4F-6CDE-11D1-BC1E-00A024C67143}\TypeLib] +""="REG_SZ:{860CC660-1C2B-11D0-B1B1-444553540000}" +"Version"="REG_SZ:4.2" + + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMCPP.CNT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMCPP.CNT new file mode 100644 index 0000000..d9ea59b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMCPP.CNT @@ -0,0 +1,56 @@ +:Base msvmcpp.HLP +:Title Generating Code for a Visual C++ Application +1 Generating Code for a Visual C++ Application +2 Concepts +3 Code Generation=CONCEPTS_Code_Generation +3 Visual C++ Model Properties=CONCEPTS_Model_Properties +2 How To... +3 Model a Visual C++ Application +4 Modeling Visual C++ Classes=CG_CPP_Modeling_Visual_C_Classes@Msvmcpp.HLP>(w95sec) +4 Modeling Abstract, Virtual, or Const Methods=CG_CPP_Modeling_Virtual_or_Const_Methods@Msvmcpp.HLP>(w95sec) +4 Modeling Pointers, Arrays, and References=CG_CPP_Modeling_Pointers_Arrrays_and_References@Msvmcpp.HLP>(w95sec) +3 Generate Visual C++ Code +4 Generating Code for a Component into a New Visual C++ Project=CG_CPP_Generating_a_New_VC_Project_from_a_Model@Msvmcpp.HLP>(w95sec) +4 Updating a Visual C++ Project from Changes in a Model=CG_CPP_Updating_a_VC_Project_from_Changes_in_a_Model@Msvmcpp.HLP>(w95sec) +4 Creating a VC++ Component=CG_CPP_Creating_a_VC_Component_and_Assigning_Classes@Msvmcpp.HLP>(w95sec) +4 Assigning Classes to Existing VC++ Components=CG_CPP_Assigning_Classes_to_Existing_Components@Msvmcpp.HLP>(w95sec) +4 Reviewing the Generated Visual C++ Code=cg_cpp_Reviewing_Generated_Files@msvmcpp.HLP>(w95sec) +4 Browsing the Code Generated for a Class=cg_cpp_Browsing_the_Generated_Code_for_a_Class@msvmcpp.HLP>(w95sec) +3 Add Existing Software Components to the Model +4 Adding External Components to a Model=CG_CPP_Adding_External_Components@Msvmcpp.HLP>(w95sec) +4 Importing MFC Classes=CG_CPP_Importing_VC_Classes +2 Reference +3 Model to Visual C++ Mapping +4 Overview=CG_MAP_CPP_Model_to_Code_Cor +4 Logical View +5 Classes=CG_MAP_CPP_Code_Generated_Classes +5 Interfaces=CG_MAP_CPP_Interfaces +5 Class Utilities=CG_MAP_CPP_Class_Util +5 Logical Packages=CG_MAP_CPP_Class_Cat +5 Methods=CG_MAP_CPP_User_Defined_Operations +5 Properties +6 Properties=CG_MAP_CPP_Code_Generated_for_Class_Properties +6 Pointers, Arrays, and References in VC++=CG_MAP_CPP_Pointers_Arrrays_and_References +5 Relationships +6 Association Relationship=CG_MAP_CPP_Association_Rel +6 Aggregation Relationship=CG_MAP_CPP_Aggregation_Rel +6 Generalization Relationship=CG_MAP_CPP_Generalization_Rel +6 Dependency Relationship=CG_MAP_CPP_Dependency_Rel +4 Component View +5 Components=CG_MAP_CPP_Components +5 Interfaces=CG_MAP_CPP_Interfaces +4 Visual C++ Stereotypes +5 Overview=Stereotypes_CPP_Overview +5 Classes=Stereotypes_CPP_Class +5 Methods=Stereotypes_CPP_Operation +5 Components=Stereotypes_CPP_Component +3 Visual C++ Model Properties +4 Overview=CG_PRP_CPP_Model_Prop_Overview +4 Class Properties +5 Overview=CG_PRP_CPP_Class_Props +5 Generate=CG_PRP_CPP_Generate_Class_Property +5 HeaderFile=CG_PRP_CPP_HeaderFilePath_Class_Property +4 Method Properties +5 Overview=CG_PRP_CPP_Op_Props +5 OperationIsConst=CG_PRP_CPP_OperationIsConst_Operation_Property +5 OperationKind=CG_PRP_CPP_OperationKind_Operation_Property diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMCPP.HLP b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMCPP.HLP new file mode 100644 index 0000000..c96743f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMCPP.HLP differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMREP.CNT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMREP.CNT new file mode 100644 index 0000000..0a116f7 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMREP.CNT @@ -0,0 +1,10 @@ +:Base msvmrep.HLP +:Title Microsoft Repository and VCM Integration +1 Microsoft Repository and VCM Integration +2 Overview=REPOSIT_Repository_Integration_Overview +2 How To... +3 Publish a Model to Visual Component Manager=REPOSIT_Publishing_to_Repository@msvmrep.HLP>(w95sec) +3 Export a Model to the Microsoft Repository=REPOSIT_Exporting_to_Repository@msvmrep.HLP>(w95sec) +3 Browse a Published Model in Visual Component Manager=REPOSIT_Browsing_a_published_model@msvmrep.HLP>(w95sec) +3 Import a Model from the Microsoft Repository=REPOSIT_Importing_from_Repository@msvmrep.HLP>(w95sec) +3 Import Model Elements from Visual Component Manager=REPOSIT_Importing_model_elements_from_Repository@msvmrep.HLP>(w95sec) diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMREP.HLP b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMREP.HLP new file mode 100644 index 0000000..338b919 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMREP.HLP differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMRES.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMRES.DLL new file mode 100644 index 0000000..da01d85 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMRES.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMSS.CNT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMSS.CNT new file mode 100644 index 0000000..74a119e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMSS.CNT @@ -0,0 +1,13 @@ +:Base msvmss.HLP +:Title Microsoft Visual SourceSafe Integration +1 Microsoft Visual SourceSafe Integration +2 Overview=VSS_Integration +2 Frequently Asked Questions=FAQ_SourceSafe_Integration +2 How To... +3 Install Microsoft Visual SourceSafe=VSS_Setting_up_Visual_SourceSafe@MSVMSS.HLP>(w95sec) +3 Controlling a Model in Visual SourceSafe=VSS_Controling_a_Model_in_VSS@msvmss.HLP>(w95sec) +3 Check Out a Model=VSS_Checking_Out_Model_Elements@MSVMSS.HLP>(w95sec) +3 Check In a Model=VSS_Checking_In_Model_Elements@MSVMSS.HLP>(w95sec) +3 Get the Latest Version of a Model=VSS_Getting_the_Latest_Version@MSVMSS.HLP>(w95sec) +3 Remove a Model from SourceSafe Control=VSS_Removing_Units_from_VSS@MSVMSS.HLP>(w95sec) +3 Clear SourceSafe Information from a Model=VSS_Clearing_VSS_Information_from_model@MSVMSS.HLP>(w95sec) diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMSS.HLP b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMSS.HLP new file mode 100644 index 0000000..404acb3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMSS.HLP differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMU.CNT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMU.CNT new file mode 100644 index 0000000..0cc6b86 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMU.CNT @@ -0,0 +1,83 @@ +:Base msvmu.hlp +:Title Visual Modeler +:Index Frequently Asked Questions-VM =Quest.hlp +:Index Quick Start with Visual Modeler =Qstart.hlp +:Index Round-Trip Engineering a Visual Basic Application =Msvmvb.hlp +:Index Generating Code for a Visual C++ Application =Msvmcpp.hlp +:Index Microsoft Visual SourceSafe Integration =Msvmss.hlp +:Index Microsoft Repository Integration =Msvmrep.hlp +:Link quest.hlp +:Link qstart.hlp +:Link Msvmvb.hlp +:Link Msvmcpp.hlp +:Link Msvmss.hlp +:Link Msvmrep.hlp +1 Visual Modeler +2 Frequently Asked Questions +3 What is Visual Modeler?=FAQ_What_Is_VM@quest.hlp +3 What is a model in Visual Modeler?=FAQ_What_Is_a_Model@quest.hlp +3 How is the Logical View documented?=FAQ_How_Is_the_Logical_View@quest.hlp +3 How can Visual Modeler help during design?=FAQ_How_can_VB_help_during_design@quest.hlp +3 How can Visual Modeler help during implementation?=FAQ_How_Can_VB_help_during_implementation@quest.hlp +3 How can Visual Modeler help during further development?=FAQ_How_can_VB_help_during_further_development@quest.hlp +3 How do I start using Visual Modeler?=FAQ_How_Do_I_Start_Using_VM@quest.hlp +3 How do I get help online?=FAQ_How_Do_I_Get_More_Help@quest.hlp +3 Editing Diagrams and Classes=FAQ_CORE_Editing_Diagrams_and_Classes@quest.hlp +2 Concepts +3 Analysis and Design=CONCEPTS_Analysis_and_Design +3 Three-Tiered Architectural Approach (Overview)=CONCEPTS_Three_Tier_Architecture_Overview +3 Three-Tiered Diagrams (Overview)=SCREEN_Three_Tiered_Diagrams +2 How To... +3 Manage Model Properties +4 Displaying or Modifying the Values of Model Properties=CG_CORE_Display_Model_Props@msvmu.hlp>(w95sec) +4 Removing an Overriding Item Level Model Property=CG_CORE_Remove_Prop@msvmu.hlp>(w95sec) +4 Making a Model Property Item Specific=CG_CORE_Make_Prop_Item_Spec@msvmu.hlp>(w95sec) +4 Reinstalling the State and Value of the Last Committed Change=CG_CORE_Reinstate_State_Value@msvmu.hlp>(w95sec) +4 Attaching a Model Property Set to a Single Element or a Collection of Elements=CG_CORE_Attaching_Model_Prop_Set@msvmu.hlp>(w95sec) +4 Displaying or Editing a Specific Model Property Set=CG_CORE_Display_Edit_Model_Props@msvmu.hlp>(w95sec) +4 Creating a New Model Property Set=CG_CORE_Create_New_Model_Prop_Set@msvmu.hlp>(w95sec) +4 Deleting a Model Property Set=CG_CORE_Delete_Model_Prop_Set@msvmu.hlp>(w95sec) +3 Create and Work in a Model +4 Using Drag and Drop in a Model=HT_MODEL_Drag_and_Drop_in_a_Model@msvmu.hlp>(w95sec) +4 Using Drag and Drop in a Specification=HT_MODEL_Drag_and_Drop_in_a_Specification@msvmu.hlp>(w95sec) +4 Navigating in the Tab Pages=HT_MODEL_Navigate_in_the_Tab_Pages@msvmu.hlp>(w95sec) +4 Using OLE=HT_MODEL_OLE@msvmu.hlp>(w95sec) +4 Navigating with the Keyboard=HT_MODEL_Keyboard_Ope@msvmu.hlp>(w95sec) +4 Using Command Accelerators=HT_MODEL_Command_Accelerato@msvmu.hlp>(w95sec) +4 Using the Mouse to Create and Edit Diagrams=HT_MODEL_Create_Edit_Diagrams@msvmu.hlp>(w95sec) +4 Using Scripts on Sequence Diagrams=HT_MODEL_Scripts@ROSEU.HLP>(w95sec) +4 Printing a Diagram into a Microsoft Word Document=HT_MODEL_Print_Diagram@msvmu.hlp>(w95sec) +4 Creating Components=HT_MODEL_Creating_Components@msvmu.hlp>(w95sec) +4 Assigning Classes and Interfaces to Components=HT_MODEL_Assigning_Classes_to_Components@msvmu.hlp>(w95sec) +4 Choosing Fundamental Types for a Class=HT_MODEL_Choosing_Fundamental_Types@msvmu.hlp>(w95sec) +3 Navigate Using the Browser +4 Creating and Editing Model Elements in the Browser=HT_BROW_Creat_Edit_Model_Comp@msvmu.hlp>(w95sec) +4 Using Drag and Drop in the Browser=HT_BROW_Browser_Drag_and_Drop@msvmu.hlp>(w95sec) +4 Navigating a Model Using the Browser=HT_BROW_Browser@msvmu.hlp>(w95sec) +4 Hiding and Viewing the Browser=HT_BROW_Hiding_Viewing_Browser@msvmu.hlp>(w95sec) +4 Positioning the Browser=HT_BROW_Positioning_Browser@msvmu.hlp>(w95sec) +4 Expanding and Compressing the Browser Tree=HT_BROW_Expand_Collaps_Browser_Tree@msvmu.hlp>(w95sec) +3 Use the Toolbox +4 Customizing the Diagram Toolbox=HT_TOOL_Customize_Diagram_Toolbox +4 Modifying the Position of the Diagram Toolbox=HT_TOOL_Position_and_Shape +4 Setting the Toolbox's Locking Mode=HT_TOOL_Locking_Mode +4 Setting the Toolbox's Visibility Mode=HT_TOOL_Visibility_Mode +4 Modifying the Shape of the Diagram Toolbox=HT_TOOL_Modifying_Shape_Diag_Tool +3 Set Diagram Properties +4 Showing the Signature of Existing Methods=HT_PROP_Show_operation_Signature_Exis_operation@msvmu.hlp>(w95sec) +4 Showing the Signature of New Methods=HT_PROP_Show_operation_Signature_New_operation@msvmu.hlp>(w95sec) +4 Showing Visibility=HT_PROP_Showing_Visibility +4 Setting the Font Size and Style for Existing Text=HT_PROP_Fnt_Sz_Style_Exis_Text@msvmu.hlp>(w95sec) +4 Setting the Font Size and Style for New Text=HT_PROP_Fnt_Sze_Style_New_Text@msvmu.hlp>(w95sec) +4 Resizing Icons Automatically=HT_PROP_Resizing_Icons_Automatically@msvmu.hlp>(w95sec) +4 Showing Properties and Methods for Existing Icons=HT_PROP_Showing_cap_attributes_cap_operation__Exis_Icons@msvmu.hlp>(w95sec) +4 Showing Properties and Methods for New Icons=HT_PROP_Show_cap_attributes_cap_operation_New_Icons@msvmu.hlp>(w95sec) +4 Suppressing Properties and Methods for Existing Icons=HT_PROP_Suppress_attributes_operation_Existing_Icons +4 Suppressing Properties and Methods for New Icons=HT_PROP_Suppress_attributes_operation_New_Icons +2 Reference +3 Notation=BOOCH_Notation +:Include Qstart.cnt +:Include Msvmvb.cnt +:Include Msvmcpp.cnt +:Include Msvmss.cnt +:Include Msvmrep.cnt diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMU.HLP b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMU.HLP new file mode 100644 index 0000000..7fc1ca3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMU.HLP differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMVB.CNT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMVB.CNT new file mode 100644 index 0000000..2c69795 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMVB.CNT @@ -0,0 +1,119 @@ +:Base msvmvb.HLP +:Title Round-Trip Engineering a Visual Basic Application +1 Round-Trip Engineering a Visual Basic Application +2 Frequently Asked Questions +3 Editing Diagrams and VB Classes=FAQ_Editing_Diagrams_and_Classes +3 Generating Visual Basic Code=FAQ_Generating_Code +3 Reverse Engineering Visual Basic Code=FAQ_RE +3 Visual Basic Integration=FAQ_VB_Integration +2 Concepts +3 Round-Trip Engineering=CONCEPTS_Round_Trip_Engineering +3 Code Generation=CONCEPTS_Code_Generation +3 Reverse Engineering=CONCEPTS_Reverse_Engineering +3 Visual Basic Model Properties=CONCEPTS_VB_Model_Properties +2 How To... +3 Round-Trip Engineer a Visual Basic Application +4 Starting from a Model=VB_RTE_Step_by_Step_from_Model@Msvmvb.HLP>(w95sec) +4 Starting with a Visual Basic Project=VB_RTE_Step_by_Step_from_Project@Msvmvb.HLP>(w95sec) +4 Creating a New Model=VB_RTE_Creating_the_Model@Msvmvb.HLP>(w95sec) +4 Contents of a New Model=VB_RTE_Contents_of_a_New_Model@Msvmvb.HLP>(w95sec) +4 Evolving the Generated Code=VB_RTE_Evolving_the_Gen_Code@Msvmvb.HLP>(w95sec) +3 Generate Visual Basic Code +4 Generating a New Visual Basic Project from a Model=CG_VB1_Generating_a_New_VB_Project_from_a_Model@Msvmvb.HLP>(w95sec) +4 Updating a Visual Basic Project from Changes in a Model=CG_VB1_Updating_a_VB_Project_from_Changes_in_a_Model@Msvmvb.HLP>(w95sec) +4 Previewing a Class=CG_VB1_Previewing_Classes@Msvmvb.HLP>(w95sec) +4 Selecting the Type of Project Item to Generate for a Class=cg_vb1_Selecting_Component_Type@Msvmvb.HLP>(w95sec) +4 Generating Debug Code=cg_vb1_Generating_Debug_Code_etc@Msvmvb.HLP>(w95sec) +4 Generating Error Handling Code=cg_vb1_Generating_Error_Handling_Code@Msvmvb.HLP>(w95sec) +4 Generating Add-Code Comments=cg_vb1_Generating_Add_Code_Comments@Msvmvb.HLP>(w95sec) +4 Naming Data Members=CG_VB1_Naming_Data_Members@Msvmvb.HLP>(w95sec) +4 Using Model Properties Other Than Those Available in the Code Generation Wizard=CG_VB1_Using_Other_Model_Properties@Msvmvb.HLP>(w95sec) +3 Reverse Engineer a Model from a Visual Basic Project +4 Creating a Model from a Visual Basic Project=VB_REV_Creating_a_New_Rose_Model@Msvmvb.HLP>(w95sec) +4 Updating an Existing Model=VB_REV_Updating_an_Existing_Rose_Model@Msvmvb.HLP>(w95sec) +3 Add Existing Software Components to a Model +4 Importing VB Classes=VB_REV_Importing_VB_Classes@Msvmvb.HLP>(w95sec) +4 Adding External Components to a Model=VB_REV_Adding_External_Components@Msvmvb.HLP>(w95sec) +4 Adding Components from a Visual Basic Project=VB_REV_Adding_Visual_Basic_Components@Msvmvb.HLP>(w95sec) +3 Model and Generate Collection Classes +4 Generating a New User-Defined Collection Class During Code Generation=cg_vb1_Generating_a_Class_Together_with@Msvmvb.HLP>(w95sec) +4 Assigning a New User-Defined Collection Class to a Class and Generate It Later=cg_vb1_Assigning_a_New_Collection_Class_and_Generate_It_Later@Msvmvb.HLP>(w95sec) +4 Assigning an Existing Collection Class to a Class=cg_vb1_Assigning_an_Existing_Collection_Class_to_a_Class@Msvmvb.HLP>(w95sec) +2 Reference +3 Model to Visual Basic Mapping +4 Overview=M_B_RTE6_Design_to_Code_Cor +4 Classes and Packages +5 Classes=CG_VB3_Classes +5 Interfaces=CG_VB3_Interfaces +5 Class Utilities=CG_VB3_Class_Util +5 Collection Classes=CG_VB3_Collection_Classes +5 Logical Packages=CG_VB3_Class_Cat +4 Properties +5 Properties=CG_VB3_Attrs_and_Ops +4 Relationships +5 Association Relationship=CG_VB3_Association_Rel +5 Aggregation Relationship=CG_VB3_Aggregate +5 Dependency Relationship=CG_VB3_Uses_Rel +5 Generalization Relationship=CG_VB3_Inheritance_Rel +5 Advanced Relationship Mappings +6 Navigability=CG_VB3_Nav +6 Containment Adornments=CG_VB3_Containment +6 Cardinality/Multiplicity=CG_VB3_Card_and_Mult +4 Methods +5 User-Defined Methods=CG_KC3_User_Defined_Operations +5 Method Parameter Passing=CG_VB3_Op_Param_Passing +5 Property Get/Set/Let Procedures=CG_VB3_Property_Operations +5 DLL Library Usage=CG_VB3_DLL_Library_Usage +5 Events=CG_VB3_Event +5 Entry and Exit Code=CG_VB3_Op_EntryCode_ExitCode +5 Initialization and Termination Methods=CG_VB3_Init_and_Term_Ops +4 Components +5 Components=CG_VB3_Components +5 Interfaces=CG_VB3_Interfaces +4 Stereotypes +5 Visual Basic Stereotypes Overview=VB_Stereotypes_Overview +5 Stereotypes of Classes=VB_Stereotypes_Class +5 Stereotypes of Methods=VB_Stereotypes_Method +5 Stereotypes of Components=VB_Stereotypes_Component +3 Visual Basic to Model Mapping +4 Overview=VB_REV_Code_to_Model_Corr +4 Visual Basic Projects=VB_REV_RE_of_VB_Projects +4 Class Modules, Forms, MDI Forms, Property Pages, User Documents, User Controls=VB_REV_RE_of_Class_Modules +4 Modules=VB_REV_RE_of_Modules +4 ActiveX Components=VB_REV_RE_of_ActiveX_Components +4 Code Comments=VB_REV_RE_of_Code_Comments +3 Visual Basic Model Properties +4 Overview=M_B_RTE5_Code_Generation_Pr +4 Component Properties +5 Overview of Component Properties=M_B_RTE2_Comp_Props +5 ProjectFile=CG_VBPRP_comp_Project_File +4 Class Properties +5 Overview of Class Properties=M_B_RTE2_Class_Props +5 CollectionClass=CG_VBPRP_class_Container_Class +5 Creatable=CG_VBPRP_class_Creatable +5 GenerateInitialization and GenerateTermination=CG_VBPRP_class_Generate_Init_and_Term +5 OptionBase=CG_VBPRP_class_Option_Base +5 OptionCompare=CG_VBPRP_class_Option_Compare +5 OptionExplicit=CG_VBPRP_class_Option_Explicit +4 Property and Role Properties +5 Overview of Property Properties=M_B_RTE2_Class_Attr_Props +5 Overview of Role Properties=M_B_RTE2_Roles +5 DataMemberName=CG_VBPRP_attr_Data_Member_Name +5 GenerateDataMember=CG_VBPRP_attr_Generate_Data_Member +5 GenerateGet/Set/LetOperation=CG_VBPRP_attr_Generate_Get_Set_Let_Op +5 IsConst=CG_VBPRP_attr_IsConst +5 NameIfUnlabeled=CG_VBPRP_attr_Name_If_Unlabeled +5 New=CG_VBPRP_attr_New +5 Subscript=CG_VBPRP_has_Subscript +5 WithEvents=CG_VBPRP_attr_WithEvents +4 Method Properties +5 Overview of Method Properties=M_B_RTE2_Op_Props +5 AliasName=CG_VBPRP_op_Alias_Name +5 EntryCode=CG_VBPRP_op_Entry_Code +5 ExitCode=CG_VBPRP_op_Exit_Code +5 IsStatic=CG_VBPRP_op_Is_Static +5 LibraryName=CG_VBPRP_op_Library_Name +5 OperationName=CG_VBPRP_op_Operation_Name +4 Generalization Relationship Properties +5 Overview of Generalization Properties=M_B_RTE2_Generalization_Props +5 ImplementsDelegation=CG_VBPRP_generalization_Implements_Delegation diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMVB.HLP b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMVB.HLP new file mode 100644 index 0000000..83ea95e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/MSVMVB.HLP differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QSTART.CNT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QSTART.CNT new file mode 100644 index 0000000..99a5518 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QSTART.CNT @@ -0,0 +1,27 @@ +:Base QSTART.HLP +:Title Quick Start with Visual Modeler +1 Quick Start with Visual Modeler +2 Introduction to the Quick Start=QS_Introduction_to_the_Quick_Start@QSTART.HLP>(w95sec) +2 Introduction to Model-Driven Software Development=QS_Introduction_to_Model_Driven_Software_Development@QSTART.HLP>(w95sec) +2 Introduction to the Order System Example +3 Overview of the Order System=QS_Overview_of_the_Order_System@QSTART.HLP>(w95sec) +3 Starting the Order System=QS_Starting_the_Order_System@QSTART.HLP>(w95sec) +3 Entering a New Order=QS_Entering_a_New_Order@QSTART.HLP>(w95sec) +2 Browsing the Order System Design Model +3 Introduction to Browsing=QS_Introduction_to_Browsing@QSTART.HLP>(w95sec) +3 Opening the Order System Design Model=QS_Opening_the_Order_System_Design_Model@QSTART.HLP>(w95sec) +3 Browsing the Model=QS_Browsing_the_Model@QSTART.HLP>(w95sec) +3 Browsing the Class Diagrams=QS_Browsing_the_Class_Diagrams@QSTART.HLP>(w95sec) +3 Browsing the Business Objects=QS_Browsing_the_Business_Objects@QSTART.HLP>(w95sec) +2 Examining Stereotypes and Model Properties +3 Introduction to Stereotypes and Model Properties=QS_Introduction_to_Code_Generation_Properties@QSTART.HLP>(w95sec) +3 Examining Class Stereotypes=QS_Examining_Generation_Control@QSTART.HLP>(w95sec) +3 Examining Naming Conventions=QS_Examining_Naming_Conventions@QSTART.HLP>(w95sec) +2 Round-Trip Engineering with Visual Modeler +3 Introduction to Round-Trip Engineering=QS_Introduction_to_Round_Trip_Engineering@QSTART.HLP>(w95sec) +3 Reverse Engineering a New Design Model=QS_Reverse_Engineering_a_New_Design_Model@QSTART.HLP>(w95sec) +3 Examining the Generated Model=QS_Examining_the_Generated_Model@QSTART.HLP>(w95sec) +3 Creating Classes and Associations in the Model=QS_Creating_Classes_and_Associations_in_the_Model@QSTART.HLP>(w95sec) +3 Updating the Code from Changes in the Model=QS_Updating_the_Code_from_Changes_in_the_Model@QSTART.HLP>(w95sec) +3 Updating the Model from Changes in the Code=QS_Updating_the_Model_from_Changes_in_the_Code@QSTART.HLP>(w95sec) +3 Browsing Code and Model=QS_Browsing_Code_and_Model@QSTART.HLP>(w95sec) diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QSTART.HLP b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QSTART.HLP new file mode 100644 index 0000000..d6458a4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QSTART.HLP differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QUEST.CNT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QUEST.CNT new file mode 100644 index 0000000..ab64e2e --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QUEST.CNT @@ -0,0 +1,12 @@ +:Base Quest.HLP +:Title Visual Modeler +1 Frequently Asked Questions +2 What is Visual Modeler?=FAQ_What_Is_VM +2 What is a Model in Visual Modeler?=FAQ_What_Is_a_Model +2 How is the Logical View Documented?=FAQ_How_Is_the_Logical_View +2 How Can Visual Modeler Help During Design?=FAQ_How_can_VB_help_during_design +2 How Can Visual Modeler Help During Implementation?=FAQ_How_Can_VB_help_during_implementation +2 How Can Visual Modeler Help During Further Development?=FAQ_How_can_VB_help_during_further_development +2 How Do I Start Using Visual Modeler?=FAQ_How_Do_I_Start_Using_VM +2 How Do I Get Help Online?=FAQ_How_Do_I_Get_More_Help +2 Editing Diagrams and Classes=FAQ_CORE_Editing_Diagrams_and_Classes diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QUEST.HLP b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QUEST.HLP new file mode 100644 index 0000000..4f9be65 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/QUEST.HLP differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RELNOTE.HTM b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RELNOTE.HTM new file mode 100644 index 0000000..35e12c4 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RELNOTE.HTM @@ -0,0 +1,64 @@ + + + +[PREVIOUS] +[NEXT] - +[Home] +[Installation] +[Configurations] +[Problems and Limitations] +

    + +Microsoft© Visual Modeler, +Version 2.0, +Release Note + + + +

    Microsoft© Visual Modeler
    +Version 2.0
    +Release Note +

    +

    +
    +

    This release note contains information about the installation +of Visual Modeler 2.0, about the system configurations supported +by Visual Modeler 2.0, and about known problems and limitations in +Visual Modeler 2.0. If you encounter any problem +while installing or using Visual Modeler 2.0, please check here to see +if it is a known problem. +

    +

    +
    +

    Contents +

    +
    +

    This release note contains the following major sections: +

    +
      +
    • Installation of Visual Modeler 2.0 + + +
    • Configurations Supported by Visual Modeler 2.0 + + +
    • Known Problems and Limitations in Visual Modeler 2.0 + +

      +
      +[PREVIOUS] +[NEXT] - +[Home] +[Installation] +[Configurations] +[Problems and Limitations] +

      + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/REPORTGN.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/REPORTGN.EBX new file mode 100644 index 0000000..13c4dc6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/REPORTGN.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/REPOS.MNU b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/REPOS.MNU new file mode 100644 index 0000000..440ac4f --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/REPOS.MNU @@ -0,0 +1,16 @@ +Menu Tools +{ + Separator + Option "&Publish to VCM..." + { + RoseScript $REPOSADDIN_SCRIPT_PATH\RVSReposPu.ebx + } + Option "Export to &Repository..." + { + RoseScript $REPOSADDIN_SCRIPT_PATH\RVSReposEx.ebx + } + Option "&Import from Repository..." + { + RoseScript $REPOSADDIN_SCRIPT_PATH\RVSReposIm.ebx + } +} diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/ROSE.INI b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/ROSE.INI new file mode 100644 index 0000000..e897516 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/ROSE.INI @@ -0,0 +1,369 @@ +[Rational Rose] +Font=Tahoma +FontPointSize=9 +FontBold=No +FontItalics=No +FontUnderline=No +FontStrike=No +RightMargin=0.25 +LeftMargin=0.25 +TopMargin=0.25 +BottomMargin=0.5 +PageOverlap=0.25 +DisplayPageBreaks=No +DoubleClick=Yes +X=283 +Y=80 +W=937 +H=695 +WW=0 +WH=0 +Maximized=Yes +WinMaximized=No +SaveSettings=Yes +AutoResizeIcons=Yes +GridSizeX=16 +GridSizeY=16 +SnapToGrid=Yes +AdornUnresolvedReferences=Yes +AdornPetalUnits=No +ShowMessageNum=3 +StripMessageNum=Yes +ConfirmUnitLoading=No +ShowClassOfObject=Yes +DefaultNotation=Unified +UseTemporaryFiles=No +UpdateByCopy=No +KeepTwoBackupFiles=No +CreateBackupFiles=No +DisplayAttributes=Yes +DisplayOperations=Yes +DisplayOperationSignature=No +AttributeCompartment=No +OperationCompartment=No +NotationAdornments=Yes +RectilinearLines=No +DefaultViewFocusOfControl=Yes +ClassLeftMargin=25 +ClassTopMargin=25 +ClassHorizontalSpacing=50 +ClassVerticalSpacing=100 +ClassOrientation=TopToBottom +ObjectLeftMargin=25 +ObjectTopMargin=25 +ObjectHorizontalSpacing=50 +ObjectVerticalSpacing=100 +ObjectOrientation=TopToBottom +ModuleLeftMargin=25 +ModuleTopMargin=25 +ModuleHorizontalSpacing=50 +ModuleVerticalSpacing=100 +ModuleOrientation=TopToBottom +StateLeftMargin=25 +StateTopMargin=25 +StateHorizontalSpacing=50 +StateVerticalSpacing=100 +StateOrientation=TopToBottom +ProcessLeftMargin=25 +ProcessTopMargin=25 +ProcessHorizontalSpacing=50 +ProcessVerticalSpacing=100 +ProcessOrientation=TopToBottom +ModuleAssociation=Overlap +LayoutUnits=Inches +LayoutKind=Class +LogSize=100 +Default_CG_Tool=Visual Basic +DescWndFont="Tahoma" 9 0 0 0 0 0 0 +DefaultViewFocusOfControl=Yes +CheckAssert=Yes +CheckIgnore=No +ShowClassesInPickLists=Yes +UseDesignSurface=Yes +AutoConstructMainDiagrams=Yes +ShowImplementationArtifacts=No +RectilinearLinesUML=No +PromptForItemNames=Yes +AllowLabeledToolbars=No +UseCOMTerminology=Yes +DisplayStereotype=Yes +FontCharSet=1 +BrowserStereotypeNames=Yes +StereotypeBitmapsOnly=Yes +ShowCompartmentStereotypes=Yes +StereotypeIconStyle=Icon +UsePartTypeStereotypes=No +NameCompletion=Yes +WordBreakProc=Yes +TimeStampLog=Yes + +[Visual Modeler Script Events] +OnClassWizard=.\RVBClassWiz.ebx +OnNewModel= +OnAppInit= +OnGenerateCode= +OnBrowseCode= +OnReverseEngineer= + +[RoseToolBar-Summary] +Bars=8 +ScreenCX=1280 +ScreenCY=1024 + +[Rose Description Window] +HW=859 +HH=98 +VW=174 +VH=280 +FW=167 +FH=98 + +[Rose Browse Window] +HW=171 +HH=450 +VW=174 +VH=652 +FW=171 +FH=450 + +[Rose Toolbar Panels] +P2= +T2=59392 +P051=32820 32915 33056 33055 32916 32917 32918 32919 32920 32921 32922 32923 32924 32925 32926 32927 32928 32929 33419 33418 0 +T051=56071 +P633= +T633=56071 +P161= +T161=56071 +P532= +T532=56071 +P733= +T733=56071 +P043= +T043=56071 +P632= +T632=56071 +P452=32820 32980 32982 33056 33055 32915 0 +T452=56071 +P542= +T542=56071 +P05606=32820 32916 46012 32920 32928 33421 33133 33135 33134 32929 33056 33055 32915 0 +T05606=56071 +P25606= +T25606=56071 +P55606= +T55606=56071 +P35606=32820 32993 32958 33056 32959 33055 32915 0 +T35606=56071 +P77606= +T77606=56071 +P00706= +T00706=56071 +P10706= +T10706=56071 +P= +T=56071 +P03731343= +T03731343=56071 + +[RoseToolBar-Bar8] +BarID=56071 +XPos=-2 +YPos=6 +MRUWidth=274 +Docking=1 +MRUDockID=59421 +MRUDockLeftPos=-2 +MRUDockTopPos=6 +MRUDockRightPos=32 +MRUDockBottomPos=258 +MRUFloatStyle=4096 +MRUFloatXPos=873 +MRUFloatYPos=534 +ExStyle=12 +PrevFloating=0 +MDIChild=0 +PctWidth=1000000 +MRUFloatCX=274 +MRUFloatCY=32 +MRUDockingState=0 +DockingStyle=61440 + +[Rose Standard Toolbar] +Left=2 +Top=42 +Right=508 +Bottom=74 +ButtonSize=0 +VisibilityMode=2 +Columns=2 +DockBar=59419 +Panel=2 +Dockable=1 +LabelButtons=1 +LockSelection=0 + +[Rose Toolbox Toolbar] +Left=506 +Top=42 +Right=804 +Bottom=74 +ButtonSize=0 +VisibilityMode=2 +Columns=2 +DockBar=59419 +Panel=172 +Dockable=1 +LabelButtons=1 +LockSelection=0 + +[RoseToolBar-Bar0] +BarID=59393 +ExStyle=0 +PrevFloating=0 +MDIChild=0 +PctWidth=1000000 +MRUFloatCX=0 +MRUFloatCY=0 +MRUDockingState=0 +DockingStyle=0 + +[RoseToolBar-Bar1] +BarID=6000 +XPos=0 +YPos=658 +MRUWidth=167 +Docking=1 +MRUDockID=59420 +MRUDockLeftPos=0 +MRUDockTopPos=658 +MRUDockRightPos=174 +MRUDockBottomPos=938 +MRUFloatStyle=8192 +MRUFloatXPos=169 +MRUFloatYPos=891 +ExStyle=1 +PrevFloating=0 +MDIChild=0 +PctWidth=300751 +MRUFloatCX=167 +MRUFloatCY=98 +MRUDockingState=0 +DockingStyle=61440 + +[RoseToolBar-Bar2] +BarID=6027 +XPos=0 +YPos=0 +Docking=1 +MRUDockID=59420 +MRUDockLeftPos=0 +MRUDockTopPos=0 +MRUDockRightPos=174 +MRUDockBottomPos=652 +MRUFloatStyle=4 +MRUFloatXPos=-2147483648 +MRUFloatYPos=0 +ExStyle=1 +PrevFloating=0 +MDIChild=0 +PctWidth=699248 +MRUFloatCX=171 +MRUFloatCY=450 +MRUDockingState=0 +DockingStyle=20480 + +[RoseToolBar-Bar3] +BarID=59419 +Bars=4 +Bar#0=0 +Bar#1=59392 +Bar#2=56071 +Bar#3=0 +ExStyle=0 +PrevFloating=0 +MDIChild=0 +PctWidth=0 +MRUFloatCX=0 +MRUFloatCY=0 +MRUDockingState=0 +DockingStyle=0 + +[RoseToolBar-Bar4] +BarID=59420 +Bars=6 +Bar#0=0 +Bar#1=121607 +Bar#2=0 +Bar#3=6027 +Bar#4=6000 +Bar#5=0 +ExStyle=0 +PrevFloating=0 +MDIChild=0 +PctWidth=0 +MRUFloatCX=0 +MRUFloatCY=0 +MRUDockingState=0 +DockingStyle=0 + +[RoseToolBar-Bar5] +BarID=59421 +Bars=3 +Bar#0=0 +Bar#1=121607 +Bar#2=0 +ExStyle=0 +PrevFloating=0 +MDIChild=0 +PctWidth=0 +MRUFloatCX=0 +MRUFloatCY=0 +MRUDockingState=0 +DockingStyle=0 + +[RoseToolBar-Bar6] +BarID=59392 +XPos=-2 +YPos=-2 +MRUWidth=506 +Docking=1 +MRUDockID=59419 +MRUDockLeftPos=-2 +MRUDockTopPos=-2 +MRUDockRightPos=504 +MRUDockBottomPos=30 +MRUFloatStyle=4 +MRUFloatXPos=-2147483648 +MRUFloatYPos=0 +ExStyle=12 +PrevFloating=0 +MDIChild=0 +PctWidth=750000 +MRUFloatCX=506 +MRUFloatCY=32 +MRUDockingState=0 +DockingStyle=61440 + +[RoseToolBar-Bar7] +BarID=56071 +XPos=557 +YPos=-2 +MRUWidth=202 +Docking=1 +MRUDockID=59419 +MRUDockLeftPos=557 +MRUDockTopPos=-2 +MRUDockRightPos=711 +MRUDockBottomPos=30 +MRUFloatStyle=8192 +MRUFloatXPos=684 +MRUFloatYPos=237 +ExStyle=12 +PrevFloating=0 +MDIChild=0 +PctWidth=249999 +MRUFloatCX=202 +MRUFloatCY=32 +MRUDockingState=0 +DockingStyle=61440 diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RPGNCOMP.DOT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RPGNCOMP.DOT new file mode 100644 index 0000000..e1ca633 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RPGNCOMP.DOT differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RPGNLOG.DOT b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RPGNLOG.DOT new file mode 100644 index 0000000..a9c1c64 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RPGNLOG.DOT differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNCM22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNCM22.DLL new file mode 100644 index 0000000..9f37ec8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNCM22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNCX22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNCX22.DLL new file mode 100644 index 0000000..519f171 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNCX22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDC22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDC22.DLL new file mode 100644 index 0000000..e14aea2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDC22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDD22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDD22.DLL new file mode 100644 index 0000000..dd18f0b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDD22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDG22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDG22.DLL new file mode 100644 index 0000000..74ea447 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNDG22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNOL22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNOL22.DLL new file mode 100644 index 0000000..ee762f1 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNOL22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNPB22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNPB22.DLL new file mode 100644 index 0000000..fc5b040 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNPB22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNRN22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNRN22.DLL new file mode 100644 index 0000000..4d0661e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNRN22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNTL22.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNTL22.DLL new file mode 100644 index 0000000..7fe9a9c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSCNTL22.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSSSRCSF.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSSSRCSF.DLL new file mode 100644 index 0000000..964ed7c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSSSRCSF.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSSSSRES.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSSSSRES.DLL new file mode 100644 index 0000000..1b8abbe Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RSSSSRES.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RTIRES.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RTIRES.DLL new file mode 100644 index 0000000..be5f454 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RTIRES.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RTLIBIMP.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RTLIBIMP.DLL new file mode 100644 index 0000000..526d948 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RTLIBIMP.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBABOUT.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBABOUT.EBX new file mode 100644 index 0000000..db35ec4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBABOUT.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBABTBX.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBABTBX.DLL new file mode 100644 index 0000000..bf72d48 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBABTBX.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBADDIN.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBADDIN.DLL new file mode 100644 index 0000000..e62b5d2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBADDIN.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBADMNU.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBADMNU.DLL new file mode 100644 index 0000000..e02f805 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBADMNU.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBAXREO.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBAXREO.DLL new file mode 100644 index 0000000..d0b2da2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBAXREO.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBBRWCD.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBBRWCD.EBX new file mode 100644 index 0000000..feacc5d Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBBRWCD.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBBRWHP.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBBRWHP.EBX new file mode 100644 index 0000000..6a71781 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBBRWHP.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCDLG.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCDLG.DLL new file mode 100644 index 0000000..6f5aa1a Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCDLG.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCGWIZ.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCGWIZ.DLL new file mode 100644 index 0000000..2d37e0c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCGWIZ.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCGWIZ.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCGWIZ.EBX new file mode 100644 index 0000000..ec045bf Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCGWIZ.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCLSWZ.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCLSWZ.DLL new file mode 100644 index 0000000..98a9823 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCLSWZ.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCLSWZ.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCLSWZ.EBX new file mode 100644 index 0000000..0314eb7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBCLSWZ.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBDILOG.EXE b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBDILOG.EXE new file mode 100644 index 0000000..7857a07 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBDILOG.EXE differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBPARSE.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBPARSE.DLL new file mode 100644 index 0000000..c7eaf09 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBPARSE.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBPRVWZ.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBPRVWZ.DLL new file mode 100644 index 0000000..e52e3c3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBPRVWZ.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBRESO.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBRESO.DLL new file mode 100644 index 0000000..b9288ca Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBRESO.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.DLL new file mode 100644 index 0000000..98fef34 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.EBX new file mode 100644 index 0000000..79f24a6 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.EXE b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.EXE new file mode 100644 index 0000000..0cfa5f9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBREWIZ.EXE differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBRSTOR.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBRSTOR.EBX new file mode 100644 index 0000000..00cf8af Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBRSTOR.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGBST.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGBST.EBX new file mode 100644 index 0000000..b739f20 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGBST.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGDEV.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGDEV.EBX new file mode 100644 index 0000000..feb1742 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGDEV.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFAQ.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFAQ.EBX new file mode 100644 index 0000000..839f629 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFAQ.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFDB.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFDB.EBX new file mode 100644 index 0000000..41dd276 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFDB.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFRE.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFRE.EBX new file mode 100644 index 0000000..6e7f3dc Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGFRE.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGMSF.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGMSF.EBX new file mode 100644 index 0000000..1e44bc3 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGMSF.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGNEW.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGNEW.EBX new file mode 100644 index 0000000..27af851 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGNEW.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGSRH.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGSRH.EBX new file mode 100644 index 0000000..fc739d8 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGSRH.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGSUP.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGSUP.EBX new file mode 100644 index 0000000..5df93e7 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGSUP.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGTUT.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGTUT.EBX new file mode 100644 index 0000000..c0d5943 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVBWGTUT.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVC98COM.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVC98COM.DLL new file mode 100644 index 0000000..47e7e8f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVC98COM.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCBRWCD.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCBRWCD.DLL new file mode 100644 index 0000000..e60d781 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCBRWCD.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCCDEGN.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCCDEGN.DLL new file mode 100644 index 0000000..b74c975 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCCDEGN.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCIFACE.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCIFACE.DLL new file mode 100644 index 0000000..35d2f81 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCIFACE.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCRESO.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCRESO.DLL new file mode 100644 index 0000000..ed7bc9f Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVCRESO.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSAPSTR.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSAPSTR.DLL new file mode 100644 index 0000000..93103d1 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSAPSTR.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSINTMG.EXE b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSINTMG.EXE new file mode 100644 index 0000000..211853b Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSINTMG.EXE differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSONASG.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSONASG.EBX new file mode 100644 index 0000000..3b956e4 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSONASG.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSONGEN.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSONGEN.EBX new file mode 100644 index 0000000..ed51d32 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSONGEN.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSPRGDG.EXE b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSPRGDG.EXE new file mode 100644 index 0000000..51e9cde Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSPRGDG.EXE differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSREPOS.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSREPOS.DLL new file mode 100644 index 0000000..54a4b4e Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSREPOS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRES.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRES.DLL new file mode 100644 index 0000000..eee176c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRES.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSEX.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSEX.EBX new file mode 100644 index 0000000..9cfac59 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSEX.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSIM.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSIM.EBX new file mode 100644 index 0000000..c7e194c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSIM.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSPU.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSPU.EBX new file mode 100644 index 0000000..bf2d68c Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSPU.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSRS.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSRS.DLL new file mode 100644 index 0000000..5ebdb76 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RVSRPSRS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RWEBUTIL.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RWEBUTIL.DLL new file mode 100644 index 0000000..b5a88e0 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/RWEBUTIL.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSADD.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSADD.EBX new file mode 100644 index 0000000..ff4b1e2 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSADD.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCHKIN.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCHKIN.EBX new file mode 100644 index 0000000..058ae11 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCHKIN.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCHKOUT.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCHKOUT.EBX new file mode 100644 index 0000000..0902bc9 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCHKOUT.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCLEAR.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCLEAR.EBX new file mode 100644 index 0000000..ca75ded Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSCLEAR.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSGETLAT.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSGETLAT.EBX new file mode 100644 index 0000000..3ed38ad Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSGETLAT.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSREMOVE.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSREMOVE.EBX new file mode 100644 index 0000000..b27fdac Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSREMOVE.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSSTART.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSSTART.EBX new file mode 100644 index 0000000..97eddab Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSSTART.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSUNDO.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSUNDO.EBX new file mode 100644 index 0000000..a27fe72 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/SSUNDO.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/TEMPLATE/MODCSIDG.BAS b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/TEMPLATE/MODCSIDG.BAS new file mode 100644 index 0000000..4a3c402 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/TEMPLATE/MODCSIDG.BAS @@ -0,0 +1,8 @@ +Attribute VB_Name = "modClassIDGenerator" +Function GetNextClassDebugID() As Long + 'class ID generator + Static lClassDebugID As Long + lClassDebugID = lClassDebugID + 1 + GetNextClassDebugID = lClassDebugID +End Function + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/TEMPLATE/MODERHNL.BAS b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/TEMPLATE/MODERHNL.BAS new file mode 100644 index 0000000..6b0156b --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/TEMPLATE/MODERHNL.BAS @@ -0,0 +1,41 @@ +Attribute VB_Name = "modErrorHandling" +' + +' Define your custom errors here. Be sure to use numbers +' greater than 512, to avoid conflicts with OLE error numbers. +Public Const MyObjectError1 = 1000 +Public Const MyObjectError2 = 1010 +Public Const MyObjectErrorN = 1234 +Public Const MyUnhandledError = 9999 + +' This function will retrieve an error description from a resource +' file (.RES). The ErrorNum is the index of the string +' in the resource file. Called by RaiseError +Private Function GetErrorTextFromResource(ErrorNum As Long) As String + On Error GoTo GetErrorTextFromResourceError + Dim strMsg As String + + ' get the string from a resource file + GetErrorTextFromResource = LoadResString(ErrorNum) + + Exit Function +GetErrorTextFromResourceError: + If Err.Number <> 0 Then + GetErrorTextFromResource = "An unknown error has occurred!" + End If +End Function + +'There are a number of methods for retrieving the error +'message. The following method uses a resource file to +'retrieve strings indexed by the error number you are +'raising. +Public Sub RaiseError(ErrorNumber As Long, Source As String) + Dim strErrorText As String + + strErrorText = GetErrorTextFromResource(ErrorNumber) + + 'raise an error back to the client + Err.Raise vbObjectError + ErrorNumber, Source, strErrorText +End Sub + + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/UPDATES.HTM b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/UPDATES.HTM new file mode 100644 index 0000000..3a0d824 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/UPDATES.HTM @@ -0,0 +1,373 @@ + + + +[PREVIOUS] +[NEXT] - +[Home] +[Installation] +[Configurations] +[Problems and Limitations] +

      + +Known Problems and Limitations +of Visual Modeler 2.0 + + + +

      Known Problems and Limitations
      +of Visual Modeler 2.0 +

      +
      +

      The following is a list of known problems and limitations in Visual Modeler 2.0. +The number preceding each item is a bug tracking identifier. Please refer to this +number if you have a support question about the problem. +

      +
      +

      110167 Problems nesting a logical package within itself +

      +
      +

      Create a logical package cat, then open cat's principal diagram and +place another view of cat there. Copying cat causes it to get the +"no model item" adornment. +

      +
      +

      110330, 115594
      +Carriage returns or spaces in icon names can cause +problems +

      +
      +

      If an icon name spans multiple lines (that is, contains a +carriage return) only the last line of the name is visible in the +icon's specification. +

      +
      +

      Workaround: Use the text box on the icon to view the entire +name. Better yet, avoid using carriage returns or spaces in icon +names. +

      +
      +

      111040, 115707
      +Problems with unnamed model items +

      +
      +

      For example, update cannot resolve unnamed model items. +

      +
      +

      Workaround: Be sure to name all items in the model. (Naming +relationships is not required.) +

      +
      +

      Assume that you have classes in your model that have +method arguments of class X. If you go into class X and +change its name to Y, the arguments are not updated; they +remain of class X, not class Y. +

      +
      +

      115002 Some menu items not gray when they should be in read- +only diagrams +

      +
      +

      For example, Change Into is not grayed out on the Edit menu even +when all the items on the Change Into submenu are grayed out. +

      +
      +

      Workaround: Can usually be fixed up by dragging the substate +out and then back in. +

      +
      +

      115773 Query > Expand Classes does not always filter relationships +correctly +

      +
      +

      115955 Compartment items lost toggling Show Operation +Signature +

      +
      +

      If Show Method Signature is set to ON for a given model, +but set to OFF in the current Visual Modeler session, the operation will +not be shown when the model is read in. +

      +
      +

      Workaround: The setting for Show Method Signature +should be chosen ONCE for all users who are sharing models +and NOT be changed. +

      +
      +

      120272 Double click on generalization arrow head does not raise +property sheet +

      +
      +

      To select or raise the property sheet for an generalization +relationship, place your cursor on the relationship line rather +than the arrow head. +

      +
      +

      You can redisplay the windows by pressing F2 or by minimizing +and maximizing Visual Modeler. +

      +
      +

      121024 Visual Modeler crashes when some background programs are running +

      +
      +

      Visual Modeler crashes sporadically when some utility programs are +running in the background. After Dark is such a utility; the +mouse-utility Point32 is another. +

      +
      +

      121627 Pressing the Cancel button while printing may not have +any effect +

      +
      +

      If the Cancel button in the Cancel Printing dialog box does not +work (after you do a Print Specifications or Print Diagrams), press the +escape key to force a cancel. The reason the Cancel button does +not work is usually because of insufficient disk space or not +enough free memory. +

      +
      +

      121877 OLE linking only pastes what is visible in the window +

      +
      +

      To see the entire diagram in another application, choose View > +Fit in Window in Visual Modeler before you copy and paste into the other +application. +

      +
      +

      121919 Copy and paste into PowerPoint with "visibility as icons" +does not work correctly +

      +
      +

      If you encounter this problem, restart PowerPoint and +copy/paste again with "visibility as icons" off. +

      +
      +

      121945 Loading Visual Modeler models by choosing them in Windows +Explorer can cause crash +

      +
      +

      Because the Setup wizard does not completely register Visual Modeler +with Windows, if you attempt to start Visual Modeler the first time by +double clicking a model in Windows Explorer, Visual Modeler may crash. +After Visual Modeler has been run once, the registration is complete and +double clicking model files will work correctly. +

      +
      +

      121976 Adding methods and properties to classes can cause them +to be erroneously resized +

      +
      +

      If a class icon is incorrectly resized after a method or +a property is added, you can select the class and use the mouse +to resize it. +

      +
      +

      121980 Context-sensitive help doesn't work for some menus +

      +
      +

      122048 Label buttons +

      +
      +

      Visual Modeler does not support label buttons, but there may still be +references to label buttons in pictures of screens in the +documentation. +

      +
      +

      122230, 122231, 122232
      +Problems with "What's This?" help +

      +
      +

      There are several problems with "What's This?" in the online +help: +

      +
      +

      In short, when you are in a Visual Modeler dialog box and "What's This?" +help (or the ? in the window banner) does not help you, try the +Help button instead. +

      +
    +

    122339 Separate name spaces not supported +

    +
    +

    UML packages are +intended to be unique name spaces. However, Visual Modeler does not +support separate name spaces; names must be unique +throughout the entire model. So, for example, in models: +

    +
    +

    123352 Visual Modeler Add-Ins require a single running Visual Basic 5 +

    + +

    The Visual Modeler Add-Ins can operate only if a single Visual Basic 5 +application is running. If multiple Visual Basic 5 applications are running, +the code generation and reverse engineering tools in Visual Modeler +cannot be used. + + +

    123522 Component view not used for code generation +

    + +

    No code is generated for model items in the Component view, that is, for +EXEs and DLLs. + + +

    123716 Documentation not saved when exporting to repository +

    + +

    When exporting a model to the repository, the documentation is not saved. + + +

    124217 Creatable Option for classes +

    + +

    The Creatable code generation option for classes does not use the correct +Visual Basic 5 naming. The Creatable option values in Visual Modeler correspond +to the following instancing properties in Visual Basic 5: OnNewProcess = 3-SingleUse, +GlobalOnNewProcess = 4-GlobalSingleUse, InSameProcess = 5-MultiUse, +GlobalInSameProcess = 6-GlobalMultiUse. + + +

    124251 Visual Modeler Add-Ins Menus makes Visual Basic 5 crash on exit +

    + +

    The Visual Modeler Add-In Menus may, under some +circumstances, cause Visual Basic 5 to crash when quitting the application. +This problem occurs if the Visual Modeler Add-In Menus is running in the add-in manager +together with either "VB Add-In Toolbar" or "Source Code Control". Please +refer to the Microsoft Knowledge Base, article ID Q167213, for explanation +and workarounds. + +Additional Information + + + +

    Additional Information +

    + + +

    Registration problems +

    + +

    In some configurations the installation program may have problems +registering the DLLs used by Visual Modeler. If, for example, the Tools> +Class Wizard command fails to execute, run the REGRVB.BAT program from the +folder in which Visual Modeler is installed. + + +

    DAO 3.5 Object Library Needed in OrderSys Example +

    + +

    The order system example, located in the \Samples\Ordersystem folder, needs +the Microsoft DAO 3.5 object library. Your Visual Basic 5 product may be +installed without this component. If the DAO library is missing, you can add +it in the following way: +

    +
      + +
    1. Run the Visual Basic installation program and select a Custom installation. + +
    2. Select the Data Access option in the displayed dialog box. + + +

      Full ActiveX Interface Names +

      + +

      Visual Modeler supports only one name space; a class name must be unique within a +model. In OLE, an ActiveX component constitutes its own name space. Thus, two ActiveX +components can export the same interface name. You can instruct the +Visual Modeler reverse engineering tool to create unique class names by +combining the ActiveX name and the class name, for example: DAO.Database. +The default behavior of Visual Modeler is to use short ActiveX names. To +use long ActiveX names, change LongActiveXNames to Yes in your rose.ini +file, which is found in the Windows folder. + + +

      Deletion of Component Members in Visual Basic 5 +

      + +

      Visual Modeler synchronizes your Visual Basic project and model +during code generation and reverse engineering by removing deleted members. +The default behavior in Visual Modeler is to remove members by commenting +the code. To turn this off and have the tool completely remove the members from +the code, set CommentMethods to No in your rose.ini file, which is found in +the Windows folder. + + +

      Deletion of Collection Classes in Visual Modeler +

      + +

      User-defined collection classes can be automatically created in Visual Modeler by changing the CollectionClass option for a class. To delete a +created collection class from the model: +

      +
        + +
      1. Select the collection class in the browser and choose Edit> Delete from Model. + +
      2. Reset the CollectionClass option on the item class to Collection. + + +

        Online Help Find Tab +

        + +

        If you choose to build a Find database of a subset of the available help +files using the "Customize search capabilities" alternative, you may get the +error message "Unable to display the Find tab", or the resulting database +may contain words from help files other than the selected files. + +

        + + +
        +[PREVIOUS] +[NEXT] - +[Home] +[Installation] +[Configurations] +[Problems and Limitations] +

        + + + + + + + + + + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB.MNU b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB.MNU new file mode 100644 index 0000000..f1b191d --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB.MNU @@ -0,0 +1,22 @@ +Menu Tools +{ + Menu "Visual &Basic" + { + Option "&Reverse Engineering Wizard..." + { + enable %model:writeable + RoseScript $VBADDIN_SCRIPT_PATH\RVBReWiz.ebx + } + + Option "Re&vert to Last Saved" + { + RoseScript $VBADDIN_SCRIPT_PATH\RVBRestore.ebx + } + Separator + Option "&Import VB6 Classes" + { + enable %model:writeable + RoseScript $VBADDIN_SCRIPT_PATH\vb6.ebx + } + } +} diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB.PTY b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB.PTY new file mode 100644 index 0000000..84af701 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB.PTY @@ -0,0 +1,219 @@ + +(object Petal + version 42 + _written "Rose/VB 4.0.355at" + charSet 0) + +(list Attribute_Set + (object Attribute + tool "Visual Basic" + name "propertyId" + value "783606378") + (object Attribute + tool "Visual Basic" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "CreatableSet" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "Private" + value 221) + (object Attribute + tool "Visual Basic" + name "PublicNotCreatable" + value 213) + (object Attribute + tool "Visual Basic" + name "SingleUse" + value 214) + (object Attribute + tool "Visual Basic" + name "GlobalSingleUse" + value 215) + (object Attribute + tool "Visual Basic" + name "MultiUse" + value 219) + (object Attribute + tool "Visual Basic" + name "GlobalMultiUse" + value 220))) + (object Attribute + tool "Visual Basic" + name "OptionBase" + value "0") + (object Attribute + tool "Visual Basic" + name "OptionExplicit" + value TRUE) + (object Attribute + tool "Visual Basic" + name "OptionCompare" + value ("CompareSet" 202)) + (object Attribute + tool "Visual Basic" + name "Creatable" + value ("CreatableSet" 221)) + (object Attribute + tool "Visual Basic" + name "GenerateInitialization" + value FALSE) + (object Attribute + tool "Visual Basic" + name "GenerateTermination" + value FALSE) + (object Attribute + tool "Visual Basic" + name "CollectionClass" + value "Collection") + (object Attribute + tool "Visual Basic" + name "CompareSet" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "None" + value 202) + (object Attribute + tool "Visual Basic" + name "Binary" + value 203) + (object Attribute + tool "Visual Basic" + name "Text" + value 204))))) + (object Attribute + tool "Visual Basic" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "OperationName" + value "$operation") + (object Attribute + tool "Visual Basic" + name "LibraryName" + value "") + (object Attribute + tool "Visual Basic" + name "AliasName" + value "") + (object Attribute + tool "Visual Basic" + name "IsStatic" + value FALSE) + (object Attribute + tool "Visual Basic" + name "EntryCode" + value (value Text +| + )) + (object Attribute + tool "Visual Basic" + name "ExitCode" + value (value Text +| + )))) + (object Attribute + tool "Visual Basic" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "IsConst" + value FALSE) + (object Attribute + tool "Visual Basic" + name "New" + value FALSE) + (object Attribute + tool "Visual Basic" + name "WithEvents" + value FALSE) + (object Attribute + tool "Visual Basic" + name "Subscript" + value "") + (object Attribute + tool "Visual Basic" + name "NameIfUnlabeled" + value "the$supplier") + (object Attribute + tool "Visual Basic" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "Visual Basic" + name "DataMemberName" + value "$relationship") + (object Attribute + tool "Visual Basic" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "Visual Basic" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "Visual Basic" + name "GenerateLetOperation" + value FALSE))) + (object Attribute + tool "Visual Basic" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "New" + value FALSE) + (object Attribute + tool "Visual Basic" + name "WithEvents" + value FALSE) + (object Attribute + tool "Visual Basic" + name "Subscript" + value "") + (object Attribute + tool "Visual Basic" + name "NameIfUnlabeled" + value "the$supplier") + (object Attribute + tool "Visual Basic" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "Visual Basic" + name "DataMemberName" + value "$relationship") + (object Attribute + tool "Visual Basic" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "Visual Basic" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "Visual Basic" + name "GenerateLetOperation" + value FALSE))) + (object Attribute + tool "Visual Basic" + name "default__Inherit" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "ImplementsDelegation" + value TRUE))) + (object Attribute + tool "Visual Basic" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "Visual Basic" + name "ProjectFile" + value "")))) diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB6.EBX b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB6.EBX new file mode 100644 index 0000000..6fd2c31 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VB6.EBX differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VBPID.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VBPID.DLL new file mode 100644 index 0000000..abe8682 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VBPID.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VBSTYPE.INI b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VBSTYPE.INI new file mode 100644 index 0000000..48921e2 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VBSTYPE.INI @@ -0,0 +1,100 @@ +[General] +ConfigurationName=Visual Basic +IsLanguageConfiguration=Yes + +[Stereotyped Items] +Class:Module +Class:Form +Class:ClassModule +Class:MDIForm +Class:ClassModule +Class:UserControl +Class:UserDocument +Class:DataClass +Class:Interface +Class:Enum +Class:DataType +Class:PropertyPage +Operation:Get +Operation:Set +Operation:Let +Operation:Event +Operation:Declare +Component:EXE +Component:DLL + +[Class:Module] +Item=Class +Stereotype=Module + +[Class:Form] +Item=Class +Stereotype=Form + +[Class:ClassModule] +Item=Class +Stereotype=Class Module + +[Class:MDIForm] +Item=Class +Stereotype=MDI Form + +[Class:PropertyPage] +Item=Class +Stereotype=Property Page + +[Class:UserControl] +Item=Class +Stereotype=User Control + +[Class:UserDocument] +Item=Class +Stereotype=User Document + +[Class:DataClass] +Item=Class +Stereotype=Data Class + +[Class:Interface] +Item=Class +Stereotype=Interface + +[Class:Enum] +Item=Class +Stereotype=Enum + +[Class:DataType] +Item=Class +Stereotype=Data Type + +[Class:Control] +Item=Class +Stereotype=Control + +[Operation:Get] +Item=Operation +Stereotype=Get + +[Operation:Set] +Item=Operation +Stereotype=Set + +[Operation:Let] +Item=Operation +Stereotype=Let + +[Operation:Event] +Item=Operation +Stereotype=Event + +[Operation:Declare] +Item=Operation +Stereotype=Declare + +[Component:EXE] +Item=Component +Stereotype=EXE + +[Component:DLL] +Item=Component +Stereotype=DLL diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.DLL new file mode 100644 index 0000000..c010464 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.MNU b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.MNU new file mode 100644 index 0000000..16e136a --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.MNU @@ -0,0 +1,11 @@ +Menu Tools +{ + Menu "Visual C&++" + { + Option "&Import MFC 4.21 Classes" + { + enable %model:writeable + InterfaceEvent VC++ OnQuickImport + } + } +} diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.PTY b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.PTY new file mode 100644 index 0000000..e37ecfd --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VC.PTY @@ -0,0 +1,57 @@ + +(object Petal + version 40) + +(list Attribute_Set + (object Attribute + tool "VC++" + name "roseId" + value "753117540") + (object Attribute + tool "VC++" + name "propertyId" + value "809135966") + (object Attribute + tool "VC++" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "VC++" + name "Generate" + value TRUE) + (object Attribute + tool "VC++" + name "HeaderFile" + value "AUTO GENERATE") + )) + (object Attribute + tool "VC++" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "VC++" + name "OperationIsConst" + value FALSE) + (object Attribute + tool "VC++" + name "OperationKindSet" + value (list Attribute_Set + (object Attribute + tool "VC++" + name "Non-virtual" + value 200) + (object Attribute + tool "VC++" + name "Abstract" + value 201) + (object Attribute + tool "VC++" + name "Virtual" + value 202))) + (object Attribute + tool "VC++" + name "OperationKind" + value ("OperationKindSet" 200)) + )) + ) + diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VCSTYPE.INI b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VCSTYPE.INI new file mode 100644 index 0000000..1de532c --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VCSTYPE.INI @@ -0,0 +1,44 @@ +[General] +ConfigurationName=VC++ +IsLanguageConfiguration=Yes + +[Stereotyped Items] +Class:Interface +Class:Enum +Class:Struct +Class:Union +Component:EXE +Component:DLL +Component:ActiveX + +[Class:Interface] +Item=Class +Stereotype=Interface + +[Class:Enum] +Item=Class +Stereotype=Enum + +[Class:DataType] +Item=Class +Stereotype=Data Type + +[Class:Struct] +Item=Class +Stereotype=Struct + +[Class:Union] +Item=Class +Stereotype=Union + +[Component:EXE] +Item=Component +Stereotype=EXE + +[Component:DLL] +Item=Component +Stereotype=DLL + +[Component:ActiveX] +Item=Component +Stereotype=ActiveX diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VS.DLL b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VS.DLL new file mode 100644 index 0000000..8257581 Binary files /dev/null and b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VS.DLL differ diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VS.MNU b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VS.MNU new file mode 100644 index 0000000..d911810 --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VS.MNU @@ -0,0 +1,86 @@ +Menu Browse +{ + Separator + Option "&Source Code" + { + enable %selected_items:empty:false + InterfaceEvent VisualStudio OnBrowseSource + } +} +Menu Tools +{ + Separator + Option "&Assign to New Component..." + { + enable %model:writeable + RoseScript $VSADDIN_SCRIPT_PATH\rvsonassign.ebx + } + Option "&Generate Code" + { + enable %model:writeable + InterfaceEvent VisualStudio OnGenerateCode + } + Option "Class &Wizard..." + { + enable %model:writeable + RoseScript $VSADDIN_SCRIPT_PATH\RVBClassWiz.ebx + } +} + +Menu Help +{ + Separator + Menu "Microsoft on the &Web" + { + Option "&Free Stuff" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoFree.ebx + } + + Option "&Product News" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoNews.ebx + } + + Option "Frequently Asked &Questions" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoFAQ.ebx + } + + Option "Online &Support" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoSupport.ebx + } + Separator + Option "For &Developers Only Home Page" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoDevOnly.ebx + } + Option "Send Feedbac&k" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoFeedback.ebx + } + Option "&Best of the Web" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoBest.ebx + } + Option "Search the &Web" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoSearch.ebx + } + Option "Web &Tutorial" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoTutorial.ebx + } + Separator + Option "Microsoft &Home Page" + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBWebGoMicrosoft.ebx + } + } + Separator + Option "&About Visual Modeler..." + { + RoseScript $VSADDIN_SCRIPT_PATH\RVBAbout.ebx + } +} diff --git a/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VSS.MNU b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VSS.MNU new file mode 100644 index 0000000..ed8ebfa --- /dev/null +++ b/cadVb/COMMON/TOOLS/VS-ENT98/VMODELER/VSS.MNU @@ -0,0 +1,42 @@ + +Menu Tools +{ + Separator + Menu &SourceSafe + { + Option "&Get Latest..." + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\ssgetlatest.ebx + } + Option "Check &Out..." + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\sscheckout.ebx + } + Option "Check &In..." + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\sscheckin.ebx + } + Option "&Undo Check Out..." + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\ssundo.ebx + } + Separator + Option "&Add To Source Control..." + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\ssadd.ebx + } + Option "&Remove From Source Control..." + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\ssremove.ebx + } + Option "Start &Explorer" + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\ssstart.ebx + } + Option "&Clear SourceSafe Information..." + { + RoseScript $SOURCESAFEADDIN_SCRIPT_PATH\ssclear.ebx + } + } +} + diff --git a/cadVb/COMMON/TOOLS/WINAPI/APILOAD.EXE b/cadVb/COMMON/TOOLS/WINAPI/APILOAD.EXE new file mode 100644 index 0000000..580a94c Binary files /dev/null and b/cadVb/COMMON/TOOLS/WINAPI/APILOAD.EXE differ diff --git a/cadVb/COMMON/TOOLS/WINAPI/APILOAD.TXT b/cadVb/COMMON/TOOLS/WINAPI/APILOAD.TXT new file mode 100644 index 0000000..ba765e3 --- /dev/null +++ b/cadVb/COMMON/TOOLS/WINAPI/APILOAD.TXT @@ -0,0 +1,20 @@ +API ı API ļ Jet ݿеij͡еĿԸƵ岢Ƶ Visual Basic С + +API Win32 WIN32API.TXT ıļṩת Jet ݿѡΪٶȣڴһݿ .TXT ļʱܸʾбֻ .TXT ļӡļ˵ѡȡת...ͿԽ .TXT ļת Jet ݿļ + +һ .TXT ļת Jet ݿ⣬ҪӦʱظݿ⡣ + +Ҫһ API ļӦӡļ˵ѡȡıļ򡰼ݿļҲͨʹпָļıļݿļ + +APILOD32.EXE [/T | /D] ļ + +嶥ѡͨ͡ѡȡһѡӡťһײġѡбС + +Ҫӡѡби壬ֻѡ񡰸ơÿеȫݶơȻѡȡģġ༭˵СճǰģСҪӡѡбɾһѡɾť + +˵ +------ +ļ/ıļ: ı API ļ +ļ/ݿ: ʹáתıΪݿ⡱ Jet ݿ⡣ +ļ/תıΪݿ: һ API Ϣ Jet ݿ⡣ݿȼؿɱȽϵıļ졣 +ļ/˳: ر API diff --git a/cadVb/COMMON/TOOLS/WINAPI/MAPI32.TXT b/cadVb/COMMON/TOOLS/WINAPI/MAPI32.TXT new file mode 100644 index 0000000..832ad8b --- /dev/null +++ b/cadVb/COMMON/TOOLS/WINAPI/MAPI32.TXT @@ -0,0 +1,166 @@ +' ------------------------------------------------------------------------ +' +' MAPI32.TXT -- MAPI32 API Declarations for Visual Basic +' +' Copyright (C) 1994-98 Microsoft Corporation +' +' +' ļֻй MAPI32 API ConstType Declare 䡣 +' +' ͬ Microsoft ûκα֤λĻȨ +' κηʽʹá޸ġƺͷļκε޸İ汾 +' +' ------------------------------------------------------------------------ + +'*************************************************** +' MAPI ϢйϢϢ +'*************************************************** + +Type MAPIMessage + Reserved As Long + Subject As String + NoteText As String + MessageType As String + DateReceived As String + ConversationID As String + Flags As Long + RecipCount As Long + FileCount As Long +End Type + + +'************************************************** +' MAPIRecip йijϢķŷ (originator) +' ܷ (recipient) Ϣ +'************************************************** + +Type MapiRecip + Reserved As Long + RecipClass As Long + Name As String + Address As String + EIDSize As Long + EntryID As String +End Type + + +'****************************************************** +' MapiFile йļϢ +'****************************************************** + +Type MapiFile + Reserved As Long + Flags As Long + Position As Long + PathName As String + FileName As String + FileType As String +End Type + + +'*************************** +' (FUNCTION) +'*************************** + +Declare Function MAPILogon Lib "MAPI32.DLL" (ByVal UIParam&, ByVal User$, ByVal Password$, ByVal Flags&, ByVal Reserved&, Session&) As Long +Declare Function MAPILogoff Lib "MAPI32.DLL" (ByVal Session&, ByVal UIParam&, ByVal Flags&, ByVal Reserved&) As Long +Declare Function BMAPIReadMail Lib "MAPI32.DLL" (lMsg&, nRecipients&, nFiles&, ByVal Session&, ByVal UIParam&, MessageID$, ByVal Flag&, ByVal Reserved&) As Long +Declare Function BMAPIGetReadMail Lib "MAPI32.DLL" (ByVal lMsg&, Message As MAPIMessage, Recip() As MapiRecip, File() As MapiFile, Originator As MapiRecip) As Long +Declare Function MAPIFindNext Lib "MAPI32.DLL" Alias "BMAPIFindNext" (ByVal Session&, ByVal UIParam&, MsgType$, SeedMsgID$, ByVal Flag&, ByVal Reserved&, MsgID$) As Long +Declare Function MAPISendDocuments Lib "MAPI32.DLL" (ByVal UIParam&, ByVal DelimStr$, ByVal FilePaths$, ByVal FileNames$, ByVal Reserved&) As Long +Declare Function MAPIDeleteMail Lib "MAPI32.DLL" (ByVal Session&, ByVal UIParam&, ByVal MsgID$, ByVal Flags&, ByVal Reserved&) As Long +Declare Function MAPISendMail Lib "MAPI32.DLL" Alias "BMAPISendMail" (ByVal Session&, ByVal UIParam&, Message As MAPIMessage, Recipient() As MapiRecip, File() As MapiFile, ByVal Flags&, ByVal Reserved&) As Long +Declare Function MAPISaveMail Lib "MAPI32.DLL" Alias "BMAPISaveMail" (ByVal Session&, ByVal UIParam&, Message As MAPIMessage, Recipient() As MapiRecip, File() As MapiFile, ByVal Flags&, ByVal Reserved&, MsgID$) As Long +Declare Function BMAPIAddress Lib "MAPI32.DLL" (lInfo&, ByVal Session&, ByVal UIParam&, Caption$, ByVal nEditFields&, Label$, nRecipients&, Recip() As MapiRecip, ByVal Flags&, ByVal Reserved&) As Long +Declare Function BMAPIGetAddress Lib "MAPI32.DLL" (ByVal lInfo&, ByVal nRecipients&, Recipients() As MapiRecip) As Long +Declare Function MAPIDetails Lib "MAPI32.DLL" Alias "BMAPIDetails" (ByVal Session&, ByVal UIParam&, Recipient As MapiRecip, ByVal Flags&, ByVal Reserved&) As Long +Declare Function MAPIResolveName Lib "MAPI32.DLL" Alias "BMAPIResolveName" (ByVal Session&, ByVal UIParam&, ByVal UserName$, ByVal Flags&, ByVal Reserved&, Recipient As MapiRecip) As Long + + + +'************************** +' (CONSTANT) +'************************** +' + +Const SUCCESS_SUCCESS = 0 +Const MAPI_USER_ABORT = 1 +Const MAPI_E_USER_ABORT = MAPI_USER_ABORT +Const MAPI_E_FAILURE = 2 +Const MAPI_E_LOGIN_FAILURE = 3 +Const MAPI_E_LOGON_FAILURE = MAPI_E_LOGIN_FAILURE +Const MAPI_E_DISK_FULL = 4 +Const MAPI_E_INSUFFICIENT_MEMORY = 5 +Const MAPI_E_BLK_TOO_SMALL = 6 +Const MAPI_E_TOO_MANY_SESSIONS = 8 +Const MAPI_E_TOO_MANY_FILES = 9 +Const MAPI_E_TOO_MANY_RECIPIENTS = 10 +Const MAPI_E_ATTACHMENT_NOT_FOUND = 11 +Const MAPI_E_ATTACHMENT_OPEN_FAILURE = 12 +Const MAPI_E_ATTACHMENT_WRITE_FAILURE = 13 +Const MAPI_E_UNKNOWN_RECIPIENT = 14 +Const MAPI_E_BAD_RECIPTYPE = 15 +Const MAPI_E_NO_MESSAGES = 16 +Const MAPI_E_INVALID_MESSAGE = 17 +Const MAPI_E_TEXT_TOO_LARGE = 18 +Const MAPI_E_INVALID_SESSION = 19 +Const MAPI_E_TYPE_NOT_SUPPORTED = 20 +Const MAPI_E_AMBIGUOUS_RECIPIENT = 21 +Const MAPI_E_AMBIG_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT +Const MAPI_E_MESSAGE_IN_USE = 22 +Const MAPI_E_NETWORK_FAILURE = 23 +Const MAPI_E_INVALID_EDITFIELDS = 24 +Const MAPI_E_INVALID_RECIPS = 25 +Const MAPI_E_NOT_SUPPORTED = 26 + +Const MAPI_ORIG = 0 +Const MAPI_TO = 1 +Const MAPI_CC = 2 +Const MAPI_BCC = 3 + + +'*********************** +' ־ (FLAG) +'*********************** + +'* MAPILogon() ־ * + +Const MAPI_LOGON_UI = &H1 +Const MAPI_NEW_SESSION = &H2 +Const MAPI_FORCE_DOWNLOAD = &H1000 + +'* MAPILogoff() ־ * + +Const MAPI_LOGOFF_SHARED = &H1 +Const MAPI_LOGOFF_UI = &H2 + +'* MAPISendMail() ־ * + +Const MAPI_DIALOG = &H8 + +'* MAPIFindNext() ־ * + +Const MAPI_UNREAD_ONLY = &H20 +Const MAPI_GUARANTEE_FIFO = &H100 + +'* MAPIReadMail() ־ * + +Const MAPI_ENVELOPE_ONLY = &H40 +Const MAPI_PEEK = &H80 +Const MAPI_BODY_AS_FILE = &H200 +Const MAPI_SUPPRESS_ATTACH = &H800 + +'* MAPIDetails() ־ * + +Const MAPI_AB_NOMODIFY = &H400 + +'* Attachment ־ * + +Const MAPI_OLE = &H1 +Const MAPI_OLE_STATIC = &H2 + +'* MapiMessage ־ * + +Const MAPI_UNREAD = &H1 +Const MAPI_RECEIPT_REQUESTED = &H2 +Const MAPI_SENT = &H4 diff --git a/cadVb/COMMON/TOOLS/WINAPI/WIN32API.TXT b/cadVb/COMMON/TOOLS/WINAPI/WIN32API.TXT new file mode 100644 index 0000000..526ce23 --- /dev/null +++ b/cadVb/COMMON/TOOLS/WINAPI/WIN32API.TXT @@ -0,0 +1,15813 @@ +' ------------------------------------------------------------------------ +' +' WIN32API.TXT -- Win32 API Declarations for Visual Basic +' +' Copyright (C) 1994-98 Microsoft Corporation +' +' This file is required for the Visual Basic 6.0 version of the APILoader. +' Older versions of this file will not work correctly with the version +' 6.0 APILoader. This file is backwards compatible with previous releases +' of the APILoader with the exception that Constants are no longer declared +' as Global or Public in this file. +' +' This file contains only the Const, Type, +' and Declare statements for Win32 APIs. +' +' You have a royalty-free right to use, modify, reproduce and distribute +' this file (and/or any modified version) in any way you find useful, +' provided that you agree that Microsoft has no warranty, obligation or +' liability for its contents. Refer to the Microsoft Windows Programmer's +' Reference for further information. +' +' ------------------------------------------------------------------------ + +' Type definitions for Windows' basic types. +Const ANYSIZE_ARRAY = 1 +Type RECT + Left As Long + Top As Long + Right As Long + Bottom As Long +End Type + +Type RECTL + Left As Long + Top As Long + Right As Long + Bottom As Long +End Type + +Type POINTAPI + x As Long + y As Long +End Type + +Type POINTL + x As Long + y As Long +End Type + +Type Size + cx As Long + cy As Long +End Type + +Type POINTS + x As Integer + y As Integer +End Type + +Type MSG + hwnd As Long + message As Long + wParam As Long + lParam As Long + time As Long + pt As POINTAPI +End Type + + +Const DELETE = &H10000 +Const READ_CONTROL = &H20000 +Const WRITE_DAC = &H40000 +Const WRITE_OWNER = &H80000 +Const SYNCHRONIZE = &H100000 + + +Const STANDARD_RIGHTS_READ = (READ_CONTROL) +Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) +Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) +Const STANDARD_RIGHTS_REQUIRED = &HF0000 +Const STANDARD_RIGHTS_ALL = &H1F0000 + +Const SPECIFIC_RIGHTS_ALL = &HFFFF + + +Type SID_IDENTIFIER_AUTHORITY + Value(6) As Byte +End Type + +Const SID_REVISION = (1) ' Current revision level +Const SID_MAX_SUB_AUTHORITIES = (15) +Const SID_RECOMMENDED_SUB_AUTHORITIES = (1) ' Will change to around 6 in a future release. + +Const SidTypeUser = 1 +Const SidTypeGroup = 2 +Const SidTypeDomain = 3 +Const SidTypeAlias = 4 +Const SidTypeWellKnownGroup = 5 +Const SidTypeDeletedAccount = 6 +Const SidTypeInvalid = 7 +Const SidTypeUnknown = 8 + +Type SID_AND_ATTRIBUTES + Sid As Long + Attributes As Long +End Type + +' /////////////////////////////////////////////////////////////////////////// +' // +' Universal well-known SIDs // +' // +' Null SID S-1-0-0 // +' World S-1-1-0 // +' Local S-1-2-0 // +' Creator Owner ID S-1-3-0 // +' Creator Group ID S-1-3-1 // +' // +' (Non-unique IDs) S-1-4 // +' // +' /////////////////////////////////////////////////////////////////////////// +Const SECURITY_NULL_RID = &H0 +Const SECURITY_WORLD_RID = &H0 +Const SECURITY_LOCAL_RID = &H0 + +Const SECURITY_CREATOR_OWNER_RID = &H0 +Const SECURITY_CREATOR_GROUP_RID = &H1 + + +' /////////////////////////////////////////////////////////////////////////// +' // +' NT well-known SIDs // +' // +' NT Authority S-1-5 // +' Dialup S-1-5-1 // +' // +' Network S-1-5-2 // +' Batch S-1-5-3 // +' Interactive S-1-5-4 // +' Service S-1-5-6 // +' AnonymousLogon S-1-5-7 (aka null logon session) // +' // +' (Logon IDs) S-1-5-5-X-Y // +' // +' (NT non-unique IDs) S-1-5-0x15-... // +' // +' (Built-in domain) s-1-5-0x20 // +' // +' /////////////////////////////////////////////////////////////////////////// + +Const SECURITY_DIALUP_RID = &H1 +Const SECURITY_NETWORK_RID = &H2 +Const SECURITY_BATCH_RID = &H3 +Const SECURITY_INTERACTIVE_RID = &H4 +Const SECURITY_SERVICE_RID = &H6 +Const SECURITY_ANONYMOUS_LOGON_RID = &H7 +Const SECURITY_LOGON_IDS_RID = &H5 +Const SECURITY_LOCAL_SYSTEM_RID = &H12 +Const SECURITY_NT_NON_UNIQUE = &H15 +Const SECURITY_BUILTIN_DOMAIN_RID = &H20 + + +' /////////////////////////////////////////////////////////////////////////// +' // +' well-known domain relative sub-authority values (RIDs)... // +' // +' /////////////////////////////////////////////////////////////////////////// + +Const DOMAIN_USER_RID_ADMIN = &H1F4 +Const DOMAIN_USER_RID_GUEST = &H1F5 + +Const DOMAIN_GROUP_RID_ADMINS = &H200 +Const DOMAIN_GROUP_RID_USERS = &H201 +Const DOMAIN_GROUP_RID_GUESTS = &H202 + + +Const DOMAIN_ALIAS_RID_ADMINS = &H220 +Const DOMAIN_ALIAS_RID_USERS = &H221 +Const DOMAIN_ALIAS_RID_GUESTS = &H222 +Const DOMAIN_ALIAS_RID_POWER_USERS = &H223 +Const DOMAIN_ALIAS_RID_ACCOUNT_OPS = &H224 +Const DOMAIN_ALIAS_RID_SYSTEM_OPS = &H225 +Const DOMAIN_ALIAS_RID_PRINT_OPS = &H226 +Const DOMAIN_ALIAS_RID_BACKUP_OPS = &H227 +Const DOMAIN_ALIAS_RID_REPLICATOR = &H228 + + +' Allocate the System Luid. The first 1000 LUIDs are reserved. +' Use #999 here0x3E7 = 999) + +' end_ntifs + +' ////////////////////////////////////////////////////////////////////// +' // +' User and Group related SID attributes // +' // +' ////////////////////////////////////////////////////////////////////// + +' Group attributes + +Const SE_GROUP_MANDATORY = &H1 +Const SE_GROUP_ENABLED_BY_DEFAULT = &H2 +Const SE_GROUP_ENABLED = &H4 +Const SE_GROUP_OWNER = &H8 +Const SE_GROUP_LOGON_ID = &HC0000000 + +' User attributes + +' (None yet defined.) + +' ---------------- +' Kernel Section +' ---------------- + +Const FILE_BEGIN = 0 +Const FILE_CURRENT = 1 +Const FILE_END = 2 + +Const FILE_FLAG_WRITE_THROUGH = &H80000000 +Const FILE_FLAG_OVERLAPPED = &H40000000 +Const FILE_FLAG_NO_BUFFERING = &H20000000 +Const FILE_FLAG_RANDOM_ACCESS = &H10000000 +Const FILE_FLAG_SEQUENTIAL_SCAN = &H8000000 +Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000 +Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000 +Const FILE_FLAG_POSIX_SEMANTICS = &H1000000 + +Const CREATE_NEW = 1 +Const CREATE_ALWAYS = 2 +Const OPEN_EXISTING = 3 +Const OPEN_ALWAYS = 4 +Const TRUNCATE_EXISTING = 5 + +' Define the dwOpenMode values for CreateNamedPipe +Const PIPE_ACCESS_INBOUND = &H1 +Const PIPE_ACCESS_OUTBOUND = &H2 +Const PIPE_ACCESS_DUPLEX = &H3 + +' Define the Named Pipe End flags for GetNamedPipeInfo +Const PIPE_CLIENT_END = &H0 +Const PIPE_SERVER_END = &H1 + +' Define the dwPipeMode values for CreateNamedPipe +Const PIPE_WAIT = &H0 +Const PIPE_NOWAIT = &H1 +Const PIPE_READMODE_BYTE = &H0 +Const PIPE_READMODE_MESSAGE = &H2 +Const PIPE_TYPE_BYTE = &H0 +Const PIPE_TYPE_MESSAGE = &H4 + +' Define the well known values for CreateNamedPipe nMaxInstances +Const PIPE_UNLIMITED_INSTANCES = 255 + +' Define the Security Quality of Service bits to be passed +' into CreateFile +Const SECURITY_CONTEXT_TRACKING = &H40000 +Const SECURITY_EFFECTIVE_ONLY = &H80000 + +Const SECURITY_SQOS_PRESENT = &H100000 +Const SECURITY_VALID_SQOS_FLAGS = &H1F0000 + +Type OVERLAPPED + Internal As Long + InternalHigh As Long + offset As Long + OffsetHigh As Long + hEvent As Long +End Type + +Type SECURITY_ATTRIBUTES + nLength As Long + lpSecurityDescriptor As Long + bInheritHandle As Long +End Type + +Type PROCESS_INFORMATION + hProcess As Long + hThread As Long + dwProcessId As Long + dwThreadId As Long +End Type + +Type FILETIME + dwLowDateTime As Long + dwHighDateTime As Long +End Type + +Type SYSTEMTIME + wYear As Integer + wMonth As Integer + wDayOfWeek As Integer + wDay As Integer + wHour As Integer + wMinute As Integer + wSecond As Integer + wMilliseconds As Integer +End Type + +' Serial provider type. +Const SP_SERIALCOMM = &H1& + +' Provider SubTypes +Const PST_UNSPECIFIED = &H0& +Const PST_RS232 = &H1& +Const PST_PARALLELPORT = &H2& +Const PST_RS422 = &H3& +Const PST_RS423 = &H4& +Const PST_RS449 = &H5& +Const PST_FAX = &H21& +Const PST_SCANNER = &H22& +Const PST_NETWORK_BRIDGE = &H100& +Const PST_LAT = &H101& +Const PST_TCPIP_TELNET = &H102& +Const PST_X25 = &H103& + +' Provider capabilities flags. +Const PCF_DTRDSR = &H1& +Const PCF_RTSCTS = &H2& +Const PCF_RLSD = &H4& +Const PCF_PARITY_CHECK = &H8& +Const PCF_XONXOFF = &H10& +Const PCF_SETXCHAR = &H20& +Const PCF_TOTALTIMEOUTS = &H40& +Const PCF_INTTIMEOUTS = &H80& +Const PCF_SPECIALCHARS = &H100& +Const PCF_16BITMODE = &H200& + +' Comm provider settable parameters. +Const SP_PARITY = &H1& +Const SP_BAUD = &H2& +Const SP_DATABITS = &H4& +Const SP_STOPBITS = &H8& +Const SP_HANDSHAKING = &H10& +Const SP_PARITY_CHECK = &H20& +Const SP_RLSD = &H40& + +' Settable baud rates in the provider. +Const BAUD_075 = &H1& +Const BAUD_110 = &H2& +Const BAUD_134_5 = &H4& +Const BAUD_150 = &H8& +Const BAUD_300 = &H10& +Const BAUD_600 = &H20& +Const BAUD_1200 = &H40& +Const BAUD_1800 = &H80& +Const BAUD_2400 = &H100& +Const BAUD_4800 = &H200& +Const BAUD_7200 = &H400& +Const BAUD_9600 = &H800& +Const BAUD_14400 = &H1000& +Const BAUD_19200 = &H2000& +Const BAUD_38400 = &H4000& +Const BAUD_56K = &H8000& +Const BAUD_128K = &H10000 +Const BAUD_115200 = &H20000 +Const BAUD_57600 = &H40000 +Const BAUD_USER = &H10000000 + +' Settable Data Bits +Const DATABITS_5 = &H1& +Const DATABITS_6 = &H2& +Const DATABITS_7 = &H4& +Const DATABITS_8 = &H8& +Const DATABITS_16 = &H10& +Const DATABITS_16X = &H20& + +' Settable Stop and Parity bits. +Const STOPBITS_10 = &H1& +Const STOPBITS_15 = &H2& +Const STOPBITS_20 = &H4& +Const PARITY_NONE = &H100& +Const PARITY_ODD = &H200& +Const PARITY_EVEN = &H400& +Const PARITY_MARK = &H800& +Const PARITY_SPACE = &H1000& + +Type COMMPROP + wPacketLength As Integer + wPacketVersion As Integer + dwServiceMask As Long + dwReserved1 As Long + dwMaxTxQueue As Long + dwMaxRxQueue As Long + dwMaxBaud As Long + dwProvSubType As Long + dwProvCapabilities As Long + dwSettableParams As Long + dwSettableBaud As Long + wSettableData As Integer + wSettableStopParity As Integer + dwCurrentTxQueue As Long + dwCurrentRxQueue As Long + dwProvSpec1 As Long + dwProvSpec2 As Long + wcProvChar(1) As Integer +End Type + +'Type COMSTAT +' fCtsHold As Long +' fDsrHold As Long +' fRlsdHold As Long +' fXoffHold As Long +' fXoffSent As Long +' fEof As Long +' fTxim As Long +' fReserved As Long +' cbInQue As Long +' cbOutQue As Long +'End Type + +Type COMSTAT + fBitFields As Long 'See Comment in Win32API.Txt + cbInQue As Long + cbOutQue As Long +End Type +' The eight actual COMSTAT bit-sized data fields within the four bytes of fBitFields can be manipulated by bitwise logical And/Or operations. +' FieldName Bit # Description +' --------- ----- --------------------------- +' fCtsHold 1 Tx waiting for CTS signal +' fDsrHold 2 Tx waiting for DSR signal +' fRlsdHold 3 Tx waiting for RLSD signal +' fXoffHold 4 Tx waiting, XOFF char rec'd +' fXoffSent 5 Tx waiting, XOFF char sent +' fEof 6 EOF character sent +' fTxim 7 character waiting for Tx +' fReserved 8 reserved (25 bits) + +' DTR Control Flow Values. +Const DTR_CONTROL_DISABLE = &H0 +Const DTR_CONTROL_ENABLE = &H1 +Const DTR_CONTROL_HANDSHAKE = &H2 + +' RTS Control Flow Values +Const RTS_CONTROL_DISABLE = &H0 +Const RTS_CONTROL_ENABLE = &H1 +Const RTS_CONTROL_HANDSHAKE = &H2 +Const RTS_CONTROL_TOGGLE = &H3 + +'Type DCB +' DCBlength As Long +' BaudRate As Long +' fBinary As Long +' fParity As Long +' fOutxCtsFlow As Long +' fOutxDsrFlow As Long +' fDtrControl As Long +' fDsrSensitivity As Long +' fTXContinueOnXoff As Long +' fOutX As Long +' fInX As Long +' fErrorChar As Long +' fNull As Long +' fRtsControl As Long +' fAbortOnError As Long +' fDummy2 As Long +' wReserved As Integer +' XonLim As Integer +' XoffLim As Integer +' ByteSize As Byte +' Parity As Byte +' StopBits As Byte +' XonChar As Byte +' XoffChar As Byte +' ErrorChar As Byte +' EofChar As Byte +' EvtChar As Byte +'End Type + +Type DCB + DCBlength As Long + BaudRate As Long + fBitFields As Long 'See Comments in Win32API.Txt + wReserved As Integer + XonLim As Integer + XoffLim As Integer + ByteSize As Byte + Parity As Byte + StopBits As Byte + XonChar As Byte + XoffChar As Byte + ErrorChar As Byte + EofChar As Byte + EvtChar As Byte + wReserved1 As Integer 'Reserved; Do Not Use +End Type +' The fourteen actual DCB bit-sized data fields within the four bytes of fBitFields can be manipulated by bitwise logical And/Or operations. +' FieldName Bit # Description +' ----------------- ----- ------------------------------ +' fBinary 1 binary mode, no EOF check +' fParity 2 enable parity checking +' fOutxCtsFlow 3 CTS output flow control +' fOutxDsrFlow 4 DSR output flow control +' fDtrControl 5 DTR flow control type (2 bits) +' fDsrSensitivity 7 DSR sensitivity +' fTXContinueOnXoff 8 XOFF continues Tx +' fOutX 9 XON/XOFF out flow control +' fInX 10 XON/XOFF in flow control +' fErrorChar 11 enable error replacement +' fNull 12 enable null stripping +' fRtsControl 13 RTS flow control (2 bits) +' fAbortOnError 15 abort reads/writes on error +' fDummy2 16 reserved + +Type COMMTIMEOUTS + ReadIntervalTimeout As Long + ReadTotalTimeoutMultiplier As Long + ReadTotalTimeoutConstant As Long + WriteTotalTimeoutMultiplier As Long + WriteTotalTimeoutConstant As Long +End Type + +Type SYSTEM_INFO + dwOemID As Long + dwPageSize As Long + lpMinimumApplicationAddress As Long + lpMaximumApplicationAddress As Long + dwActiveProcessorMask As Long + dwNumberOrfProcessors As Long + dwProcessorType As Long + dwAllocationGranularity As Long + dwReserved As Long +End Type + +' Global Memory Flags +Const GMEM_FIXED = &H0 +Const GMEM_MOVEABLE = &H2 +Const GMEM_NOCOMPACT = &H10 +Const GMEM_NODISCARD = &H20 +Const GMEM_ZEROINIT = &H40 +Const GMEM_MODIFY = &H80 +Const GMEM_DISCARDABLE = &H100 +Const GMEM_NOT_BANKED = &H1000 +Const GMEM_SHARE = &H2000 +Const GMEM_DDESHARE = &H2000 +Const GMEM_NOTIFY = &H4000 +Const GMEM_LOWER = GMEM_NOT_BANKED +Const GMEM_VALID_FLAGS = &H7F72 +Const GMEM_INVALID_HANDLE = &H8000 + +Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT) +Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT) + +' Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) +Const GMEM_DISCARDED = &H4000 +Const GMEM_LOCKCOUNT = &HFF + +Type MEMORYSTATUS + dwLength As Long + dwMemoryLoad As Long + dwTotalPhys As Long + dwAvailPhys As Long + dwTotalPageFile As Long + dwAvailPageFile As Long + dwTotalVirtual As Long + dwAvailVirtual As Long +End Type + +' Local Memory Flags +Const LMEM_FIXED = &H0 +Const LMEM_MOVEABLE = &H2 +Const LMEM_NOCOMPACT = &H10 +Const LMEM_NODISCARD = &H20 +Const LMEM_ZEROINIT = &H40 +Const LMEM_MODIFY = &H80 +Const LMEM_DISCARDABLE = &HF00 +Const LMEM_VALID_FLAGS = &HF72 +Const LMEM_INVALID_HANDLE = &H8000 + +Const LHND = (LMEM_MOVEABLE + LMEM_ZEROINIT) +Const LPTR = (LMEM_FIXED + LMEM_ZEROINIT) + +Const NONZEROLHND = (LMEM_MOVEABLE) +Const NONZEROLPTR = (LMEM_FIXED) + +' Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) +Const LMEM_DISCARDED = &H4000 +Const LMEM_LOCKCOUNT = &HFF + +' dwCreationFlag values + +Const DEBUG_PROCESS = &H1 +Const DEBUG_ONLY_THIS_PROCESS = &H2 + +Const CREATE_SUSPENDED = &H4 + +Const DETACHED_PROCESS = &H8 + +Const CREATE_NEW_CONSOLE = &H10 + +Const NORMAL_PRIORITY_CLASS = &H20 +Const IDLE_PRIORITY_CLASS = &H40 +Const HIGH_PRIORITY_CLASS = &H80 +Const REALTIME_PRIORITY_CLASS = &H100 + +Const CREATE_NEW_PROCESS_GROUP = &H200 + +Const CREATE_NO_WINDOW = &H8000000 + +Const PROFILE_USER = &H10000000 +Const PROFILE_KERNEL = &H20000000 +Const PROFILE_SERVER = &H40000000 + +Const MAXLONG = &H7FFFFFFF +Const THREAD_BASE_PRIORITY_MIN = -2 +Const THREAD_BASE_PRIORITY_MAX = 2 +Const THREAD_BASE_PRIORITY_LOWRT = 15 +Const THREAD_BASE_PRIORITY_IDLE = -15 +Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN +Const THREAD_PRIORITY_BELOW_NORMAL = (THREAD_PRIORITY_LOWEST + 1) +Const THREAD_PRIORITY_NORMAL = 0 +Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX +Const THREAD_PRIORITY_ABOVE_NORMAL = (THREAD_PRIORITY_HIGHEST - 1) +Const THREAD_PRIORITY_ERROR_RETURN = (MAXLONG) + +Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT +Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE + +' ++ BUILD Version: 0093 Increment this if a change has global effects + +' Copyright (c) 1990-1995 Microsoft Corporation + +' Module Name: + +' winnt.h + +' Abstract: + +' This module defines the 32-Bit Windows types and constants that are +' defined by NT, but exposed through the Win32 API. + +' Revision History: +Const APPLICATION_ERROR_MASK = &H20000000 +Const ERROR_SEVERITY_SUCCESS = &H0 +Const ERROR_SEVERITY_INFORMATIONAL = &H40000000 +Const ERROR_SEVERITY_WARNING = &H80000000 +Const ERROR_SEVERITY_ERROR = &HC0000000 + + +Const MINCHAR = &H80 +Const MAXCHAR = &H7F +Const MINSHORT = &H8000 +Const MAXSHORT = &H7FFF +Const MINLONG = &H80000000 +Const MAXByte = &HFF +Const MAXWORD = &HFFFF +Const MAXDWORD = &HFFFF +' +' Calculate the byte offset of a field in a structure of type type. +' * Language IDs. +' * +' * The following two combinations of primary language ID and +' * sublanguage ID have special semantics: +' * +' * Primary Language ID Sublanguage ID Result +' * ------------------- --------------- ------------------------ +' * LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral +' * LANG_NEUTRAL SUBLANG_DEFAULT User default language +' * LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language +' */ +' +' * Primary language IDs. +' */ +Const LANG_NEUTRAL = &H0 + +Const LANG_BULGARIAN = &H2 +Const LANG_CHINESE = &H4 +Const LANG_CROATIAN = &H1A +Const LANG_CZECH = &H5 +Const LANG_DANISH = &H6 +Const LANG_DUTCH = &H13 +Const LANG_ENGLISH = &H9 +Const LANG_FINNISH = &HB +Const LANG_FRENCH = &HC +Const LANG_GERMAN = &H7 +Const LANG_GREEK = &H8 +Const LANG_HUNGARIAN = &HE +Const LANG_ICELANDIC = &HF +Const LANG_ITALIAN = &H10 +Const LANG_JAPANESE = &H11 +Const LANG_KOREAN = &H12 +Const LANG_NORWEGIAN = &H14 +Const LANG_POLISH = &H15 +Const LANG_PORTUGUESE = &H16 +Const LANG_ROMANIAN = &H18 +Const LANG_RUSSIAN = &H19 +Const LANG_SLOVAK = &H1B +Const LANG_SLOVENIAN = &H24 +Const LANG_SPANISH = &HA +Const LANG_SWEDISH = &H1D +Const LANG_TURKISH = &H1F + +' +' * Sublanguage IDs. +' * +' * The name immediately following SUBLANG_ dictates which primary +' * language ID that sublanguage ID can be combined with to form a +' * valid language ID. +' */ +Const SUBLANG_NEUTRAL = &H0 ' language neutral +Const SUBLANG_DEFAULT = &H1 ' user default +Const SUBLANG_SYS_DEFAULT = &H2 ' system default + +Const SUBLANG_CHINESE_TRADITIONAL = &H1 ' Chinese (Taiwan) +Const SUBLANG_CHINESE_SIMPLIFIED = &H2 ' Chinese (PR China) +Const SUBLANG_CHINESE_HONGKONG = &H3 ' Chinese (Hong Kong) +Const SUBLANG_CHINESE_SINGAPORE = &H4 ' Chinese (Singapore) +Const SUBLANG_DUTCH = &H1 ' Dutch +Const SUBLANG_DUTCH_BELGIAN = &H2 ' Dutch (Belgian) +Const SUBLANG_ENGLISH_US = &H1 ' English (USA) +Const SUBLANG_ENGLISH_UK = &H2 ' English (UK) +Const SUBLANG_ENGLISH_AUS = &H3 ' English (Australian) +Const SUBLANG_ENGLISH_CAN = &H4 ' English (Canadian) +Const SUBLANG_ENGLISH_NZ = &H5 ' English (New Zealand) +Const SUBLANG_ENGLISH_EIRE = &H6 ' English (Irish) +Const SUBLANG_FRENCH = &H1 ' French +Const SUBLANG_FRENCH_BELGIAN = &H2 ' French (Belgian) +Const SUBLANG_FRENCH_CANADIAN = &H3 ' French (Canadian) +Const SUBLANG_FRENCH_SWISS = &H4 ' French (Swiss) +Const SUBLANG_GERMAN = &H1 ' German +Const SUBLANG_GERMAN_SWISS = &H2 ' German (Swiss) +Const SUBLANG_GERMAN_AUSTRIAN = &H3 ' German (Austrian) +Const SUBLANG_ITALIAN = &H1 ' Italian +Const SUBLANG_ITALIAN_SWISS = &H2 ' Italian (Swiss) +Const SUBLANG_NORWEGIAN_BOKMAL = &H1 ' Norwegian (Bokma +Const SUBLANG_NORWEGIAN_NYNORSK = &H2 ' Norwegian (Nynorsk) +Const SUBLANG_PORTUGUESE = &H2 ' Portuguese +Const SUBLANG_PORTUGUESE_BRAZILIAN = &H1 ' Portuguese (Brazilian) +Const SUBLANG_SPANISH = &H1 ' Spanish (Castilian) +Const SUBLANG_SPANISH_MEXICAN = &H2 ' Spanish (Mexican) +Const SUBLANG_SPANISH_MODERN = &H3 ' Spanish (Modern) + +' +' * Sorting IDs. +' * +' */ +Const SORT_DEFAULT = &H0 ' sorting default + +Const SORT_JAPANESE_XJIS = &H0 ' Japanese0xJIS order +Const SORT_JAPANESE_UNICODE = &H1 ' Japanese Unicode order + +Const SORT_CHINESE_BIG5 = &H0 ' Chinese BIG5 order +Const SORT_CHINESE_UNICODE = &H1 ' Chinese Unicode order + +Const SORT_KOREAN_KSC = &H0 ' Korean KSC order +Const SORT_KOREAN_UNICODE = &H1 ' Korean Unicode order + +' The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in +' devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these +' constants *MUST* always be in sync. +' The values are redefined in devioctl.h because they must be available to +' both DOS and NT. +' + +Const FILE_READ_DATA = (&H1) ' file pipe +Const FILE_LIST_DIRECTORY = (&H1) ' directory + +Const FILE_WRITE_DATA = (&H2) ' file pipe +Const FILE_ADD_FILE = (&H2) ' directory + +Const FILE_APPEND_DATA = (&H4) ' file +Const FILE_ADD_SUBDIRECTORY = (&H4) ' directory +Const FILE_CREATE_PIPE_INSTANCE = (&H4) ' named pipe + +Const FILE_READ_EA = (&H8) ' file directory +Const FILE_READ_PROPERTIES = FILE_READ_EA + +Const FILE_WRITE_EA = (&H10) ' file directory +Const FILE_WRITE_PROPERTIES = FILE_WRITE_EA + +Const FILE_EXECUTE = (&H20) ' file +Const FILE_TRAVERSE = (&H20) ' directory + +Const FILE_DELETE_CHILD = (&H40) ' directory + +Const FILE_READ_ATTRIBUTES = (&H80) ' all + +Const FILE_WRITE_ATTRIBUTES = (&H100) ' all + +Const FILE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H1FF) + +Const FILE_GENERIC_READ = (STANDARD_RIGHTS_READ Or FILE_READ_DATA Or FILE_READ_ATTRIBUTES Or FILE_READ_EA Or SYNCHRONIZE) + + +Const FILE_GENERIC_WRITE = (STANDARD_RIGHTS_WRITE Or FILE_WRITE_DATA Or FILE_WRITE_ATTRIBUTES Or FILE_WRITE_EA Or FILE_APPEND_DATA Or SYNCHRONIZE) + + +Const FILE_GENERIC_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or FILE_READ_ATTRIBUTES Or FILE_EXECUTE Or SYNCHRONIZE) + +Const FILE_SHARE_READ = &H1 +Const FILE_SHARE_WRITE = &H2 +Const FILE_ATTRIBUTE_READONLY = &H1 +Const FILE_ATTRIBUTE_HIDDEN = &H2 +Const FILE_ATTRIBUTE_SYSTEM = &H4 +Const FILE_ATTRIBUTE_DIRECTORY = &H10 +Const FILE_ATTRIBUTE_ARCHIVE = &H20 +Const FILE_ATTRIBUTE_NORMAL = &H80 +Const FILE_ATTRIBUTE_TEMPORARY = &H100 +Const FILE_ATTRIBUTE_COMPRESSED = &H800 +Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1 +Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2 +Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 +Const FILE_NOTIFY_CHANGE_SIZE = &H8 +Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10 +Const FILE_NOTIFY_CHANGE_SECURITY = &H100 +Const MAILSLOT_NO_MESSAGE = (-1) +Const MAILSLOT_WAIT_FOREVER = (-1) +Const FILE_CASE_SENSITIVE_SEARCH = &H1 +Const FILE_CASE_PRESERVED_NAMES = &H2 +Const FILE_UNICODE_ON_DISK = &H4 +Const FILE_PERSISTENT_ACLS = &H8 +Const FILE_FILE_COMPRESSION = &H10 +Const FILE_VOLUME_IS_COMPRESSED = &H8000 +Const IO_COMPLETION_MODIFY_STATE = &H2 +Const IO_COMPLETION_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H3) +Const DUPLICATE_CLOSE_SOURCE = &H1 +Const DUPLICATE_SAME_ACCESS = &H2 + +' ////////////////////////////////////////////////////////////////////// +' // +' ACCESS MASK // +' // +' ////////////////////////////////////////////////////////////////////// + +' +' Define the access mask as a longword sized structure divided up as +' follows: + +' typedef struct _ACCESS_MASK { +' WORD SpecificRights; +' Byte StandardRights; +' Byte AccessSystemAcl : 1; +' Byte Reserved : 3; +' Byte GenericAll : 1; +' Byte GenericExecute : 1; +' Byte GenericWrite : 1; +' Byte GenericRead : 1; +' } ACCESS_MASK; +' typedef ACCESS_MASK *PACCESS_MASK; +' +' but to make life simple for programmer's we'll allow them to specify +' a desired access mask by simply OR'ing together mulitple single rights +' and treat an access mask as a DWORD. For example +' +' DesiredAccess = DELETE Or READ_CONTROL +' +' So we'll declare ACCESS_MASK as DWORD +' + +' begin_ntddk begin_nthal begin_ntifs + +' ////////////////////////////////////////////////////////////////////// +' // +' ACCESS TYPES // +' // +' ////////////////////////////////////////////////////////////////////// + + +' begin_ntddk begin_nthal begin_ntifs +' +' The following are masks for the predefined standard access types + +' AccessSystemAcl access type + +Const ACCESS_SYSTEM_SECURITY = &H1000000 + +' MaximumAllowed access type + +Const MAXIMUM_ALLOWED = &H2000000 + +' These are the generic rights. + +Const GENERIC_READ = &H80000000 +Const GENERIC_WRITE = &H40000000 +Const GENERIC_EXECUTE = &H20000000 +Const GENERIC_ALL = &H10000000 + +' Define the generic mapping array. This is used to denote the +' mapping of each generic access right to a specific access mask. + +Type GENERIC_MAPPING + GenericRead As Long + GenericWrite As Long + GenericExecute As Long + GenericAll As Long +End Type + + +' ////////////////////////////////////////////////////////////////////// +' // +' LUID_AND_ATTRIBUTES // +' // +' ////////////////////////////////////////////////////////////////////// +' +Type LUID + LowPart As Long + HighPart As Long +End Type + + +Type LUID_AND_ATTRIBUTES + pLuid As LUID + Attributes As Long +End Type + +' ////////////////////////////////////////////////////////////////////// +' // +' ACL and ACE // +' // +' ////////////////////////////////////////////////////////////////////// + +' +' Define an ACL and the ACE format. The structure of an ACL header +' followed by one or more ACEs. Pictorally the structure of an ACL header +' is as follows: +' +' The current AclRevision is defined to be ACL_REVISION. +' +' AclSize is the size, in bytes, allocated for the ACL. This includes +' the ACL header, ACES, and remaining free space in the buffer. +' +' AceCount is the number of ACES in the ACL. +' + +' begin_ntddk begin_ntifs +' This is the *current* ACL revision + +Const ACL_REVISION = (2) + +' This is the history of ACL revisions. Add a new one whenever +' ACL_REVISION is updated + +Const ACL_REVISION1 = (1) +Const ACL_REVISION2 = (2) + +Type ACL + AclRevision As Byte + Sbz1 As Byte + AclSize As Integer + AceCount As Integer + Sbz2 As Integer +End Type + +' typedef ACL *PACL; + +' end_ntddk + +' The structure of an ACE is a common ace header followed by ace type +' specific data. Pictorally the structure of the common ace header is +' as follows: + +' AceType denotes the type of the ace, there are some predefined ace +' types +' +' AceSize is the size, in bytes, of ace. +' +' AceFlags are the Ace flags for audit and inheritance, defined Integerly. + +Type ACE_HEADER + AceType As Byte + AceFlags As Byte + AceSize As Long +End Type +' +' The following are the predefined ace types that go into the AceType +' field of an Ace header. + +Const ACCESS_ALLOWED_ACE_TYPE = &H0 +Const ACCESS_DENIED_ACE_TYPE = &H1 +Const SYSTEM_AUDIT_ACE_TYPE = &H2 +Const SYSTEM_ALARM_ACE_TYPE = &H3 + +' The following are the inherit flags that go into the AceFlags field +' of an Ace header. + +Const OBJECT_INHERIT_ACE = &H1 +Const CONTAINER_INHERIT_ACE = &H2 +Const NO_PROPAGATE_INHERIT_ACE = &H4 +Const INHERIT_ONLY_ACE = &H8 +Const VALID_INHERIT_FLAGS = &HF + + +' The following are the currently defined ACE flags that go into the +' AceFlags field of an ACE header. Each ACE type has its own set of +' AceFlags. +' +' SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE +' types to indicate that a message is generated for successful accesses. +' +' FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types +' to indicate that a message is generated for failed accesses. + +' SYSTEM_AUDIT and SYSTEM_ALARM AceFlags +' +' These control the signaling of audit and alarms for success or failure. + +Const SUCCESSFUL_ACCESS_ACE_FLAG = &H40 +Const FAILED_ACCESS_ACE_FLAG = &H80 + + +' +' We'll define the structure of the predefined ACE types. Pictorally +' the structure of the predefined ACE's is as follows: + +' Mask is the access mask associated with the ACE. This is either the +' access allowed, access denied, audit, or alarm mask. +' +' Sid is the Sid associated with the ACE. +' +' The following are the four predefined ACE types. +' Examine the AceType field in the Header to determine +' which structure is appropriate to use for casting. + + +Type ACCESS_ALLOWED_ACE + Header As ACE_HEADER + Mask As Long + SidStart As Long +End Type + +Type ACCESS_DENIED_ACE + Header As ACE_HEADER + Mask As Long + SidStart As Long +End Type + + +Type SYSTEM_AUDIT_ACE + Header As ACE_HEADER + Mask As Long + SidStart As Long +End Type + +Type SYSTEM_ALARM_ACE + Header As ACE_HEADER + Mask As Long + SidStart As Long +End Type + +' The following declarations are used for setting and querying information +' about and ACL. First are the various information classes available to +' the user. +' + +Const AclRevisionInformation = 1 +Const AclSizeInformation = 2 +' +' This record is returned/sent if the user is requesting/setting the +' AclRevisionInformation +' + +Type ACL_REVISION_INFORMATION + AclRevision As Long +End Type + +' +' This record is returned if the user is requesting AclSizeInformation +' + +Type ACL_SIZE_INFORMATION + AceCount As Long + AclBytesInUse As Long + AclBytesFree As Long +End Type + +' ////////////////////////////////////////////////////////////////////// +' // +' SECURITY_DESCRIPTOR // +' // +' ////////////////////////////////////////////////////////////////////// +' +' Define the Security Descriptor and related data types. +' This is an opaque data structure. +' + +' begin_ntddk begin_ntifs +' +' Current security descriptor revision value +' + +Const SECURITY_DESCRIPTOR_REVISION = (1) +Const SECURITY_DESCRIPTOR_REVISION1 = (1) + +' end_ntddk + +' +' Minimum length, in bytes, needed to build a security descriptor +' (NOTE: This must manually be kept consistent with the) +' (sizeof(SECURITY_DESCRIPTOR) ) +' + +Const SECURITY_DESCRIPTOR_MIN_LENGTH = (20) + + + +Const SE_OWNER_DEFAULTED = &H1 +Const SE_GROUP_DEFAULTED = &H2 +Const SE_DACL_PRESENT = &H4 +Const SE_DACL_DEFAULTED = &H8 +Const SE_SACL_PRESENT = &H10 +Const SE_SACL_DEFAULTED = &H20 +Const SE_SELF_RELATIVE = &H8000 + +' +' Where: +' +' SE_OWNER_DEFAULTED - This boolean flag, when set, indicates that the +' SID pointed to by the Owner field was provided by a +' defaulting mechanism rather than explicitly provided by the +' original provider of the security descriptor. This may +' affect the treatment of the SID with respect to inheritence +' of an owner. +' +' SE_GROUP_DEFAULTED - This boolean flag, when set, indicates that the +' SID in the Group field was provided by a defaulting mechanism +' rather than explicitly provided by the original provider of +' the security descriptor. This may affect the treatment of +' the SID with respect to inheritence of a primary group. +' +' SE_DACL_PRESENT - This boolean flag, when set, indicates that the +' security descriptor contains a discretionary ACL. If this +' flag is set and the Dacl field of the SECURITY_DESCRIPTOR is +' null, then a null ACL is explicitly being specified. +' +' SE_DACL_DEFAULTED - This boolean flag, when set, indicates that the +' ACL pointed to by the Dacl field was provided by a defaulting +' mechanism rather than explicitly provided by the original +' provider of the security descriptor. This may affect the +' treatment of the ACL with respect to inheritence of an ACL. +' This flag is ignored if the DaclPresent flag is not set. +' +' SE_SACL_PRESENT - This boolean flag, when set, indicates that the +' security descriptor contains a system ACL pointed to by the +' Sacl field. If this flag is set and the Sacl field of the +' SECURITY_DESCRIPTOR is null, then an empty (but present) +' ACL is being specified. +' +' SE_SACL_DEFAULTED - This boolean flag, when set, indicates that the +' ACL pointed to by the Sacl field was provided by a defaulting +' mechanism rather than explicitly provided by the original +' provider of the security descriptor. This may affect the +' treatment of the ACL with respect to inheritence of an ACL. +' This flag is ignored if the SaclPresent flag is not set. +' +' SE_SELF_RELATIVE - This boolean flag, when set, indicates that the +' security descriptor is in self-relative form. In this form, +' all fields of the security descriptor are contiguous in memory +' and all pointer fields are expressed as offsets from the +' beginning of the security descriptor. This form is useful +' for treating security descriptors as opaque data structures +' for transmission in communication protocol or for storage on +' secondary media. +' +' +' +' In general, this data structure should be treated opaquely to ensure future +' compatibility. +' +' + +Type SECURITY_DESCRIPTOR + Revision As Byte + Sbz1 As Byte + Control As Long + Owner As Long + Group As Long + Sacl As ACL + Dacl As ACL +End Type + + +' Where: +' +' Revision - Contains the revision level of the security +' descriptor. This allows this structure to be passed between +' systems or stored on disk even though it is expected to +' change in the future. +' +' Control - A set of flags which qualify the meaning of the +' security descriptor or individual fields of the security +' descriptor. +' +' Owner - is a pointer to an SID representing an object's owner. +' If this field is null, then no owner SID is present in the +' security descriptor. If the security descriptor is in +' self-relative form, then this field contains an offset to +' the SID, rather than a pointer. +' +' Group - is a pointer to an SID representing an object's primary +' group. If this field is null, then no primary group SID is +' present in the security descriptor. If the security descriptor +' is in self-relative form, then this field contains an offset to +' the SID, rather than a pointer. +' +' Sacl - is a pointer to a system ACL. This field value is only +' valid if the DaclPresent control flag is set. If the +' SaclPresent flag is set and this field is null, then a null +' ACL is specified. If the security descriptor is in +' self-relative form, then this field contains an offset to +' the ACL, rather than a pointer. +' +' Dacl - is a pointer to a discretionary ACL. This field value is +' only valid if the DaclPresent control flag is set. If the +' DaclPresent flag is set and this field is null, then a null +' ACL (unconditionally granting access) is specified. If the +' security descriptor is in self-relative form, then this field +' contains an offset to the ACL, rather than a pointer. +' + + + +' ////////////////////////////////////////////////////////////////////// +' // +' Privilege Related Data Structures // +' // +' ////////////////////////////////////////////////////////////////////// + + +' Privilege attributes +' + +Const SE_PRIVILEGE_ENABLED_BY_DEFAULT = &H1 +Const SE_PRIVILEGE_ENABLED = &H2 +Const SE_PRIVILEGE_USED_FOR_ACCESS = &H80000000 + +' +' Privilege Set Control flags +' + +Const PRIVILEGE_SET_ALL_NECESSARY = (1) + +' +' Privilege Set - This is defined for a privilege set of one. +' If more than one privilege is needed, then this structure +' will need to be allocated with more space. +' +' Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET +' structure (defined in se.h) +' + +Type PRIVILEGE_SET + PrivilegeCount As Long + Control As Long + Privilege(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES +End Type + + +'////////////////////////////////////////////////////////////////////// +' // +' NT Defined Privileges // +' // +' ////////////////////////////////////////////////////////////////////// + +Const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" +Const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" +Const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" +Const SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" +Const SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" +Const SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" +Const SE_TCB_NAME = "SeTcbPrivilege" +Const SE_SECURITY_NAME = "SeSecurityPrivilege" +Const SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" +Const SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" +Const SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" +Const SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" +Const SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" +Const SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" +Const SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" +Const SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" +Const SE_BACKUP_NAME = "SeBackupPrivilege" +Const SE_RESTORE_NAME = "SeRestorePrivilege" +Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege" +Const SE_DEBUG_NAME = "SeDebugPrivilege" +Const SE_AUDIT_NAME = "SeAuditPrivilege" +Const SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" +Const SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" +Const SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" + + +' ////////////////////////////////////////////////////////////////// +' // +' Security Quality Of Service // +' // +' // +' ////////////////////////////////////////////////////////////////// + +' begin_ntddk begin_nthal begin_ntifs +' +' Impersonation Level +' +' Impersonation level is represented by a pair of bits in Windows. +' If a new impersonation level is added or lowest value is changed from +' 0 to something else, fix the Windows CreateFile call. +' + +Const SecurityAnonymous = 1 +Const SecurityIdentification = 2 + +'////////////////////////////////////////////////////////////////////// +' // +' Registry API Constants // +' // +' ////////////////////////////////////////////////////////////////////// + +' Reg Data Types... +Const REG_NONE = 0 ' No value type +Const REG_SZ = 1 ' Unicode nul terminated string +Const REG_EXPAND_SZ = 2 ' Unicode nul terminated string +Const REG_BINARY = 3 ' Free form binary +Const REG_DWORD = 4 ' 32-bit number +Const REG_DWORD_LITTLE_ENDIAN = 4 ' 32-bit number (same as REG_DWORD) +Const REG_DWORD_BIG_ENDIAN = 5 ' 32-bit number +Const REG_LINK = 6 ' Symbolic Link (unicode) +Const REG_MULTI_SZ = 7 ' Multiple Unicode strings +Const REG_RESOURCE_LIST = 8 ' Resource list in the resource map +Const REG_FULL_RESOURCE_DESCRIPTOR = 9 ' Resource list in the hardware description +Const REG_RESOURCE_REQUIREMENTS_LIST = 10 +Const REG_CREATED_NEW_KEY = &H1 ' New Registry Key created +Const REG_OPENED_EXISTING_KEY = &H2 ' Existing Key opened +Const REG_WHOLE_HIVE_VOLATILE = &H1 ' Restore whole hive volatile +Const REG_REFRESH_HIVE = &H2 ' Unwind changes to last flush +Const REG_NOTIFY_CHANGE_NAME = &H1 ' Create or delete (child) +Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2 +Const REG_NOTIFY_CHANGE_LAST_SET = &H4 ' Time stamp +Const REG_NOTIFY_CHANGE_SECURITY = &H8 +Const REG_LEGAL_CHANGE_FILTER = (REG_NOTIFY_CHANGE_NAME Or REG_NOTIFY_CHANGE_ATTRIBUTES Or REG_NOTIFY_CHANGE_LAST_SET Or REG_NOTIFY_CHANGE_SECURITY) +Const REG_LEGAL_OPTION = (REG_OPTION_RESERVED Or REG_OPTION_NON_VOLATILE Or REG_OPTION_VOLATILE Or REG_OPTION_CREATE_LINK Or REG_OPTION_BACKUP_RESTORE) + +' Reg Create Type Values... +Const REG_OPTION_RESERVED = 0 ' Parameter is reserved +Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted +Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted +Const REG_OPTION_CREATE_LINK = 2 ' Created key is a symbolic link +Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore + +' Reg Key Security Options +' Const READ_CONTROL = &H20000 +Const KEY_QUERY_VALUE = &H1 +Const KEY_SET_VALUE = &H2 +Const KEY_CREATE_SUB_KEY = &H4 +Const KEY_ENUMERATE_SUB_KEYS = &H8 +Const KEY_NOTIFY = &H10 +Const KEY_CREATE_LINK = &H20 +Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) +Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) +Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) +'Const STANDARD_RIGHTS_READ = (READ_CONTROL) +'Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) +Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE)) + +' end winnt.txt + +' Debug APIs +Const EXCEPTION_DEBUG_EVENT = 1 +Const CREATE_THREAD_DEBUG_EVENT = 2 +Const CREATE_PROCESS_DEBUG_EVENT = 3 +Const EXIT_THREAD_DEBUG_EVENT = 4 +Const EXIT_PROCESS_DEBUG_EVENT = 5 +Const LOAD_DLL_DEBUG_EVENT = 6 +Const UNLOAD_DLL_DEBUG_EVENT = 7 +Const OUTPUT_DEBUG_STRING_EVENT = 8 +Const RIP_EVENT = 9 + +Const EXCEPTION_MAXIMUM_PARAMETERS = 15 + +Type EXCEPTION_RECORD + ExceptionCode As Long + ExceptionFlags As Long + pExceptionRecord As Long ' Pointer to an EXCEPTION_RECORD structure + ExceptionAddress As Long + NumberParameters As Long + ExceptionInformation(EXCEPTION_MAXIMUM_PARAMETERS) As Long +End Type + +Type EXCEPTION_DEBUG_INFO + pExceptionRecord As EXCEPTION_RECORD + dwFirstChance As Long +End Type + +Type CREATE_THREAD_DEBUG_INFO + hThread As Long + lpThreadLocalBase As Long + lpStartAddress As Long +End Type + +Type CREATE_PROCESS_DEBUG_INFO + hFile As Long + hProcess As Long + hThread As Long + lpBaseOfImage As Long + dwDebugInfoFileOffset As Long + nDebugInfoSize As Long + lpThreadLocalBase As Long + lpStartAddress As Long + lpImageName As Long + fUnicode As Integer +End Type + +Type EXIT_THREAD_DEBUG_INFO + dwExitCode As Long +End Type + +Type EXIT_PROCESS_DEBUG_INFO + dwExitCode As Long +End Type + +Type LOAD_DLL_DEBUG_INFO + hFile As Long + lpBaseOfDll As Long + dwDebugInfoFileOffset As Long + nDebugInfoSize As Long + lpImageName As Long + fUnicode As Integer +End Type + +Type UNLOAD_DLL_DEBUG_INFO + lpBaseOfDll As Long +End Type + +Type OUTPUT_DEBUG_STRING_INFO + lpDebugStringData As String + fUnicode As Integer + nDebugStringLength As Integer +End Type + +Type RIP_INFO + dwError As Long + dwType As Long +End Type + +' GetDriveType return values +Const DRIVE_REMOVABLE = 2 +Const DRIVE_FIXED = 3 +Const DRIVE_REMOTE = 4 +Const DRIVE_CDROM = 5 +Const DRIVE_RAMDISK = 6 + +Const FILE_TYPE_UNKNOWN = &H0 +Const FILE_TYPE_DISK = &H1 +Const FILE_TYPE_CHAR = &H2 +Const FILE_TYPE_PIPE = &H3 +Const FILE_TYPE_REMOTE = &H8000 + +Const STD_INPUT_HANDLE = -10& +Const STD_OUTPUT_HANDLE = -11& +Const STD_ERROR_HANDLE = -12& + +Const NOPARITY = 0 +Const ODDPARITY = 1 +Const EVENPARITY = 2 +Const MARKPARITY = 3 +Const SPACEPARITY = 4 + +Const ONESTOPBIT = 0 +Const ONE5STOPBITS = 1 +Const TWOSTOPBITS = 2 + +Const IGNORE = 0 ' Ignore signal +Const INFINITE = &HFFFF ' Infinite timeout + +' Comm Baud Rate indices +Const CBR_110 = 110 +Const CBR_300 = 300 +Const CBR_600 = 600 +Const CBR_1200 = 1200 +Const CBR_2400 = 2400 +Const CBR_4800 = 4800 +Const CBR_9600 = 9600 +Const CBR_14400 = 14400 +Const CBR_19200 = 19200 +Const CBR_38400 = 38400 +Const CBR_56000 = 56000 +Const CBR_57600 = 57600 +Const CBR_115200 = 115200 +Const CBR_128000 = 128000 +Const CBR_256000 = 256000 + +' Error Flags +Const CE_RXOVER = &H1 ' Receive Queue overflow +Const CE_OVERRUN = &H2 ' Receive Overrun Error +Const CE_RXPARITY = &H4 ' Receive Parity Error +Const CE_FRAME = &H8 ' Receive Framing error +Const CE_BREAK = &H10 ' Break Detected +Const CE_TXFULL = &H100 ' TX Queue is full +Const CE_PTO = &H200 ' LPTx Timeout +Const CE_IOE = &H400 ' LPTx I/O Error +Const CE_DNS = &H800 ' LPTx Device not selected +Const CE_OOP = &H1000 ' LPTx Out-Of-Paper +Const CE_MODE = &H8000 ' Requested mode unsupported + +Const IE_BADID = (-1) ' Invalid or unsupported id +Const IE_OPEN = (-2) ' Device Already Open +Const IE_NOPEN = (-3) ' Device Not Open +Const IE_MEMORY = (-4) ' Unable to allocate queues +Const IE_DEFAULT = (-5) ' Error in default parameters +Const IE_HARDWARE = (-10) ' Hardware Not Present +Const IE_BYTESIZE = (-11) ' Illegal Byte Size +Const IE_BAUDRATE = (-12) ' Unsupported BaudRate + +' Events +Const EV_RXCHAR = &H1 ' Any Character received +Const EV_RXFLAG = &H2 ' Received certain character +Const EV_TXEMPTY = &H4 ' Transmitt Queue Empty +Const EV_CTS = &H8 ' CTS changed state +Const EV_DSR = &H10 ' DSR changed state +Const EV_RLSD = &H20 ' RLSD changed state +Const EV_BREAK = &H40 ' BREAK received +Const EV_ERR = &H80 ' Line status error occurred +Const EV_RING = &H100 ' Ring signal detected +Const EV_PERR = &H200 ' Printer error occured +Const EV_RX80FULL = &H400 ' Receive buffer is 80 percent full +Const EV_EVENT1 = &H800 ' Provider specific event 1 +Const EV_EVENT2 = &H1000 ' Provider specific event 2 + +' Escape Functions +Const SETXOFF = 1 ' Simulate XOFF received +Const SETXON = 2 ' Simulate XON received +Const SETRTS = 3 ' Set RTS high +Const CLRRTS = 4 ' Set RTS low +Const SETDTR = 5 ' Set DTR high +Const CLRDTR = 6 ' Set DTR low +Const RESETDEV = 7 ' Reset device if possible +Const SETBREAK = 8 'Set the device break line +Const CLRBREAK = 9 ' Clear the device break line + +' PURGE function flags. +Const PURGE_TXABORT = &H1 ' Kill the pending/current writes to the comm port. +Const PURGE_RXABORT = &H2 ' Kill the pending/current reads to the comm port. +Const PURGE_TXCLEAR = &H4 ' Kill the transmit queue if there. +Const PURGE_RXCLEAR = &H8 ' Kill the typeahead buffer if there. + +Const LPTx = &H80 ' Set if ID is for LPT device + +' Modem Status Flags +Const MS_CTS_ON = &H10& +Const MS_DSR_ON = &H20& +Const MS_RING_ON = &H40& +Const MS_RLSD_ON = &H80& + +' WaitSoundState() Constants +Const S_QUEUEEMPTY = 0 +Const S_THRESHOLD = 1 +Const S_ALLTHRESHOLD = 2 + +' Accent Modes +Const S_NORMAL = 0 +Const S_LEGATO = 1 +Const S_STACCATO = 2 + +' SetSoundNoise() Sources +Const S_PERIOD512 = 0 ' Freq = N/512 high pitch, less coarse hiss +Const S_PERIOD1024 = 1 ' Freq = N/1024 +Const S_PERIOD2048 = 2 ' Freq = N/2048 low pitch, more coarse hiss +Const S_PERIODVOICE = 3 ' Source is frequency from voice channel (3) +Const S_WHITE512 = 4 ' Freq = N/512 high pitch, less coarse hiss +Const S_WHITE1024 = 5 ' Freq = N/1024 +Const S_WHITE2048 = 6 ' Freq = N/2048 low pitch, more coarse hiss +Const S_WHITEVOICE = 7 ' Source is frequency from voice channel (3) + +Const S_SERDVNA = (-1) ' Device not available +Const S_SEROFM = (-2) ' Out of memory +Const S_SERMACT = (-3) ' Music active +Const S_SERQFUL = (-4) ' Queue full +Const S_SERBDNT = (-5) ' Invalid note +Const S_SERDLN = (-6) ' Invalid note length +Const S_SERDCC = (-7) ' Invalid note count +Const S_SERDTP = (-8) ' Invalid tempo +Const S_SERDVL = (-9) ' Invalid volume +Const S_SERDMD = (-10) ' Invalid mode +Const S_SERDSH = (-11) ' Invalid shape +Const S_SERDPT = (-12) ' Invalid pitch +Const S_SERDFQ = (-13) ' Invalid frequency +Const S_SERDDR = (-14) ' Invalid duration +Const S_SERDSR = (-15) ' Invalid source +Const S_SERDST = (-16) ' Invalid state + +Const NMPWAIT_WAIT_FOREVER = &HFFFF +Const NMPWAIT_NOWAIT = &H1 +Const NMPWAIT_USE_DEFAULT_WAIT = &H0 +Const FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES +Const FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH +Const FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK +Const FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS + +Const SECTION_QUERY = &H1 +Const SECTION_MAP_WRITE = &H2 +Const SECTION_MAP_READ = &H4 +Const SECTION_MAP_EXECUTE = &H8 +Const SECTION_EXTEND_SIZE = &H10 +Const SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE + +Const FILE_MAP_COPY = SECTION_QUERY +Const FILE_MAP_WRITE = SECTION_MAP_WRITE +Const FILE_MAP_READ = SECTION_MAP_READ +Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS + +' OpenFile() Flags +Const OF_READ = &H0 +Const OF_WRITE = &H1 +Const OF_READWRITE = &H2 +Const OF_SHARE_COMPAT = &H0 +Const OF_SHARE_EXCLUSIVE = &H10 +Const OF_SHARE_DENY_WRITE = &H20 +Const OF_SHARE_DENY_READ = &H30 +Const OF_SHARE_DENY_NONE = &H40 +Const OF_PARSE = &H100 +Const OF_DELETE = &H200 +Const OF_VERIFY = &H400 +Const OF_CANCEL = &H800 +Const OF_CREATE = &H1000 +Const OF_PROMPT = &H2000 +Const OF_EXIST = &H4000 +Const OF_REOPEN = &H8000 + +Const OFS_MAXPATHNAME = 128 + +' OpenFile() Structure +Type OFSTRUCT + cBytes As Byte + fFixedDisk As Byte + nErrCode As Integer + Reserved1 As Integer + Reserved2 As Integer + szPathName(OFS_MAXPATHNAME) As Byte +End Type + +Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) + +Const PROCESSOR_INTEL_386 = 386 +Const PROCESSOR_INTEL_486 = 486 +Const PROCESSOR_INTEL_PENTIUM = 586 +Const PROCESSOR_MIPS_R4000 = 4000 +Const PROCESSOR_ALPHA_21064 = 21064 +Const PROCESSOR_ARCHITECTURE_INTEL = 0 +Const PROCESSOR_ARCHITECTURE_MIPS = 1 +Const PROCESSOR_ARCHITECTURE_ALPHA = 2 +Const PROCESSOR_ARCHITECTURE_PPC = 3 +Const PROCESSOR_ARCHITECTURE_UNKNOWN = &hFFFF + +Declare Function GetCurrentTime Lib "kernel32" Alias "GetTickCount" () As Long + +' Flags for DrawFrameControl +Const DFC_CAPTION = 1 +Const DFC_MENU = 2 +Const DFC_SCROLL = 3 +Const DFC_BUTTON = 4 +Const DFCS_CAPTIONCLOSE = &H0 +Const DFCS_CAPTIONMIN = &H1 +Const DFCS_CAPTIONMAX = &H2 +Const DFCS_CAPTIONRESTORE = &H3 +Const DFCS_CAPTIONHELP = &H4 +Const DFCS_MENUARROW = &H0 +Const DFCS_MENUCHECK = &H1 +Const DFCS_MENUBULLET = &H2 +Const DFCS_MENUARROWRIGHT = &H4 +Const DFCS_SCROLLUP = &H0 +Const DFCS_SCROLLDOWN = &H1 +Const DFCS_SCROLLLEFT = &H2 +Const DFCS_SCROLLRIGHT = &H3 +Const DFCS_SCROLLCOMBOBOX = &H5 +Const DFCS_SCROLLSIZEGRIP = &H8 +Const DFCS_SCROLLSIZEGRIPRIGHT = &H10 +Const DFCS_BUTTONCHECK = &H0 +Const DFCS_BUTTONRADIOIMAGE = &H1 +Const DFCS_BUTTONRADIOMASK = &H2 +Const DFCS_BUTTONRADIO = &H4 +Const DFCS_BUTTON3STATE = &H8 +Const DFCS_BUTTONPUSH = &H10 +Const DFCS_INACTIVE = &H100 +Const DFCS_PUSHED = &H200 +Const DFCS_CHECKED = &H400 +Const DFCS_ADJUSTRECT = &H2000 +Const DFCS_FLAT = &H4000 +Const DFCS_MONO = &H8000 + +Declare Function InterlockedIncrement Lib "kernel32" Alias "InterlockedIncrement" (lpAddend As Long) As Long +Declare Function InterlockedDecrement Lib "kernel32" Alias "InterlockedDecrement" (lpAddend As Long) As Long +Declare Function InterlockedExchange Lib "kernel32" Alias "InterlockedExchange" (Target As Long, ByVal Value As Long) As Long + +' Loader Routines +Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long +Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long + +Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long + +Declare Function SetProcessShutdownParameters Lib "kernel32" Alias "SetProcessShutdownParameters" (ByVal dwLevel As Long, ByVal dwFlags As Long) As Long +Declare Function GetProcessShutdownParameters Lib "kernel32" Alias "GetProcessShutdownParameters" (lpdwLevel As Long, lpdwFlags As Long) As Long + +Declare Sub FatalAppExit Lib "kernel32" Alias "FatalAppExitA" (ByVal uAction As Long, ByVal lpMessageText As String) +Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" (lpStartupInfo As STARTUPINFO) +Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String +Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long +Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As Long +Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long + +Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long +Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long + +Const DONT_RESOLVE_DLL_REFERENCES = &H1 + +Declare Function LoadModule Lib "kernel32" Alias "LoadModule" (ByVal lpModuleName As String, lpParameterBlock As Any) As Long +Declare Function FreeLibrary Lib "kernel32" Alias "FreeLibrary" (ByVal hLibModule As Long) As Long +Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long + +Declare Sub DebugBreak Lib "kernel32" Alias "DebugBreak" () +Declare Function ContinueDebugEvent Lib "kernel32" Alias "ContinueDebugEvent" (ByVal dwProcessId As Long, ByVal dwThreadId As Long, ByVal dwContinueStatus As Long) As Long +Declare Function DebugActiveProcess Lib "kernel32" Alias "DebugActiveProcess" (ByVal dwProcessId As Long) As Long + +Type CRITICAL_SECTION + dummy As Long +End Type + +Declare Sub InitializeCriticalSection Lib "kernel32" Alias "InitializeCriticalSection" (lpCriticalSection As CRITICAL_SECTION) + +Declare Sub EnterCriticalSection Lib "kernel32" Alias "EnterCriticalSection" (lpCriticalSection As CRITICAL_SECTION) +Declare Sub LeaveCriticalSection Lib "kernel32" Alias "LeaveCriticalSection" (lpCriticalSection As CRITICAL_SECTION) +Declare Sub DeleteCriticalSection Lib "kernel32" Alias "DeleteCriticalSection" (lpCriticalSection As CRITICAL_SECTION) +Declare Function SetEvent Lib "kernel32" Alias "SetEvent" (ByVal hEvent As Long) As Long +Declare Function ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long +Declare Function PulseEvent Lib "kernel32" Alias "PulseEvent" (ByVal hEvent As Long) As Long +Declare Function ReleaseSemaphore Lib "kernel32" Alias "ReleaseSemaphore" (ByVal hSemaphore As Long, ByVal lReleaseCount As Long, lpPreviousCount As Long) As Long +Declare Function ReleaseMutex Lib "kernel32" Alias "ReleaseMutex" (ByVal hMutex As Long) As Long +Declare Function WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long +Declare Function WaitForMultipleObjects Lib "kernel32" Alias "WaitForMultipleObjects" (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long) As Long +Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) +Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (ByVal lpOutputString As String) +Declare Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long + +Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long + +' GetTempFileName() Flags +' +Const TF_FORCEDRIVE = &H80 + +Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long +Declare Function SetHandleCount Lib "kernel32" Alias "SetHandleCount" (ByVal wNumber As Long) As Long +Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long +Declare Function LockFile Lib "kernel32" Alias "LockFile" (ByVal hFile As Long, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long) As Long +Declare Function UnlockFile Lib "kernel32" Alias "UnlockFile" (ByVal hFile As Long, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long) As Long +Declare Function LockFileEx Lib "kernel32" Alias "LockFileEx" (ByVal hFile As Long, ByVal dwFlags As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long, lpOverlapped As OVERLAPPED) As Long + +Const LOCKFILE_FAIL_IMMEDIATELY = &H1 +Const LOCKFILE_EXCLUSIVE_LOCK = &H2 + +Declare Function UnlockFileEx Lib "kernel32" Alias "UnlockFileEx" (ByVal hFile As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long, lpOverlapped As OVERLAPPED) As Long + +Type BY_HANDLE_FILE_INFORMATION + dwFileAttributes As Long + ftCreationTime As FILETIME + ftLastAccessTime As FILETIME + ftLastWriteTime As FILETIME + dwVolumeSerialNumber As Long + nFileSizeHigh As Long + nFileSizeLow As Long + nNumberOfLinks As Long + nFileIndexHigh As Long + nFileIndexLow As Long +End Type + +Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long +Declare Function GetFileType Lib "kernel32" Alias "GetFileType" (ByVal hFile As Long) As Long +Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long +Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long +Declare Function SetStdHandle Lib "kernel32" Alias "SetStdHandle" (ByVal nStdHandle As Long, ByVal nHandle As Long) As Long +Declare Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long +Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long +Declare Function FlushFileBuffers Lib "kernel32" Alias "FlushFileBuffers" (ByVal hFile As Long) As Long +Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As OVERLAPPED) As Long +Declare Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As Long) As Long +Declare Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long +Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long +Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long +Declare Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long +Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long +Declare Function DuplicateHandle Lib "kernel32" Alias "DuplicateHandle" (ByVal hSourceProcessHandle As Long, ByVal hSourceHandle As Long, ByVal hTargetProcessHandle As Long, lpTargetHandle As Long, ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwOptions As Long) As Long + +Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long + +Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long +Declare Function GlobalFree Lib "kernel32" Alias "GlobalFree" (ByVal hMem As Long) As Long +Declare Function GlobalHandle Lib "kernel32" Alias "GlobalHandle" (wMem As Any) As Long +Declare Function GlobalLock Lib "kernel32" Alias "GlobalLock" (ByVal hMem As Long) As Long +Declare Function GlobalReAlloc Lib "kernel32" Alias "GlobalReAlloc" (ByVal hMem As Long, ByVal dwBytes As Long, ByVal wFlags As Long) As Long + +Declare Function GlobalSize Lib "kernel32" Alias "GlobalSize" (ByVal hMem As Long) As Long +Declare Function GlobalUnlock Lib "kernel32" Alias "GlobalUnlock" (ByVal hMem As Long) As Long +Declare Function GlobalFlags Lib "kernel32" Alias "GlobalFlags" (ByVal hMem As Long) As Long +Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS) + +Const LNOTIFY_OUTOFMEM = 0 +Const LNOTIFY_MOVE = 1 +Const LNOTIFY_DISCARD = 2 + +Declare Function LocalAlloc Lib "kernel32" Alias "LocalAlloc" (ByVal wFlags As Long, ByVal wBytes As Long) As Long +Declare Function LocalFree Lib "kernel32" Alias "LocalFree" (ByVal hMem As Long) As Long +Declare Function LocalHandle Lib "kernel32" Alias "LocalHandle" (wMem As Any) As Long +Declare Function LocalLock Lib "kernel32" Alias "LocalLock" (ByVal hMem As Long) As Long +Declare Function LocalReAlloc Lib "kernel32" Alias "LocalReAlloc" (ByVal hMem As Long, ByVal wBytes As Long, ByVal wFlags As Long) As Long + +Declare Function LocalSize Lib "kernel32" Alias "LocalSize" (ByVal hMem As Long) As Long +Declare Function LocalUnlock Lib "kernel32" Alias "LocalUnlock" (ByVal hMem As Long) As Long +Declare Function LocalFlags Lib "kernel32" Alias "LocalFlags" (ByVal hMem As Long) As Long + +Type MEMORY_BASIC_INFORMATION + BaseAddress as Long + AllocationBase as Long + AllocationProtect As Long + RegionSize As Long + State As Long + Protect As Long + lType As Long +End Type + +Declare Function FlushInstructionCache Lib "kernel32" Alias "FlushInstructionCache" (ByVal hProcess As Long, lpBaseAddress As Any, ByVal dwSize As Long) As Long +Declare Function VirtualAlloc Lib "kernel32" Alias "VirtualAlloc" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long +Declare Function VirtualFree Lib "kernel32" Alias "VirtualFree" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long +Declare Function VirtualProtect Lib "kernel32" Alias "VirtualProtect" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long +Declare Function VirtualQuery Lib "kernel32" Alias "VirtualQuery" (lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long +Declare Function VirtualProtectEx Lib "kernel32" Alias "VirtualProtectEx" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long +Declare Function VirtualQueryEx Lib "kernel32" Alias "VirtualQueryEx" (ByVal hProcess As Long, lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long +Declare Function HeapCreate Lib "kernel32" Alias "HeapCreate" (ByVal flOptions As Long, ByVal dwInitialSize As Long, ByVal dwMaximumSize As Long) As Long +Declare Function HeapDestroy Lib "kernel32" Alias "HeapDestroy" (ByVal hHeap As Long) As Long +Declare Function HeapAlloc Lib "kernel32" Alias "HeapAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long +Declare Function HeapReAlloc Lib "kernel32" Alias "HeapReAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any, ByVal dwBytes As Long) As Long +Declare Function HeapFree Lib "kernel32" Alias "HeapFree" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long +Declare Function HeapSize Lib "kernel32" Alias "HeapSize" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long +Declare Function GetProcessHeap Lib "kernel32" Alias "GetProcessHeap" () As Long +Declare Function GetProcessTimes Lib "kernel32" Alias "GetProcessTimes" (ByVal hProcess As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long +Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long +Declare Function GetCurrentProcess Lib "kernel32" Alias "GetCurrentProcess" () As Long +Declare Function GetCurrentProcessId Lib "kernel32" Alias "GetCurrentProcessId" () As Long +Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As Long) +Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long +Declare Function GetExitCodeProcess Lib "kernel32" Alias "GetExitCodeProcess" (ByVal hProcess As Long, lpExitCode As Long) As Long + +Declare Function GetLastError Lib "kernel32" Alias "GetLastError" () As Long +Declare Sub SetLastError Lib "kernel32" Alias "SetLastError" (ByVal dwErrCode As Long) + +Const SLE_ERROR = &H1 +Const SLE_MINORERROR = &H2 +Const SLE_WARNING = &H3 + +Declare Sub SetLastErrorEx Lib "user32" Alias "SetLastErrorEx" (ByVal dwErrCode As Long, ByVal dwType As Long) +Declare Function GetOverlappedResult Lib "kernel32" Alias "GetOverlappedResult" (ByVal hFile As Long, lpOverlapped As OVERLAPPED, lpNumberOfBytesTransferred As Long, ByVal bWait As Long) As Long + +Const SEM_FAILCRITICALERRORS = &H1 +Const SEM_NOGPFAULTERRORBOX = &H2 +Const SEM_NOOPENFILEERRORBOX = &H8000 + +Declare Sub SetDebugErrorLevel Lib "user32" Alias "SetDebugErrorLevel" (ByVal dwLevel As Long) +Declare Function SetErrorMode Lib "kernel32" Alias "SetErrorMode" (ByVal wMode As Long) As Long + +Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long +Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long +Declare Function GetThreadContext Lib "kernel32" Alias "GetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long +Declare Function SetThreadContext Lib "kernel32" Alias "SetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long +Declare Function SuspendThread Lib "kernel32" Alias "SuspendThread" (ByVal hThread As Long) As Long +Declare Function ResumeThread Lib "kernel32" Alias "ResumeThread" (ByVal hThread As Long) As Long + +Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (ByVal hInstance As Long, ByVal lpName As String, ByVal lpType As String) As Long +Declare Function FindResourceEx Lib "kernel32" Alias "FindResourceExA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long) As Long +Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long +Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long +Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long +Declare Function LoadResource Lib "kernel32" Alias "LoadResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long +Declare Function LockResource Lib "kernel32" Alias "LockResource" (ByVal hResData As Long) As Long +Declare Function SizeofResource Lib "kernel32" Alias "SizeofResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long + +' Predefined Resource Types +Const RT_CURSOR = 1& +Const RT_BITMAP = 2& +Const RT_ICON = 3& +Const RT_MENU = 4& +Const RT_DIALOG = 5& +Const RT_STRING = 6& +Const RT_FONTDIR = 7& +Const RT_FONT = 8& +Const RT_ACCELERATOR = 9& +Const RT_RCDATA = 10& + +Declare Function InitAtomTable Lib "kernel32" Alias "InitAtomTable" (ByVal nSize As Long) As Long +Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Integer +Declare Function GlobalDeleteAtom Lib "kernel32" Alias "GlobalDeleteAtom" (ByVal nAtom As Integer) As Integer +Declare Function GlobalFindAtom Lib "kernel32" Alias "GlobalFindAtomA" (ByVal lpString As String) As Integer +Declare Function GlobalGetAtomName Lib "kernel32" Alias "GlobalGetAtomNameA" (ByVal nAtom As Integer, ByVal lpBuffer As String, ByVal nSize As Long) As Long + +' User Profile Routines +' NOTE: The lpKeyName argument for GetProfileString, WriteProfileString, +' GetPrivateProfileString, and WritePrivateProfileString can be either +' a string or NULL. This is why the argument is defined as "As Any". +' For example, to pass a string specify ByVal "wallpaper" +' To pass NULL specify ByVal 0& +' You can also pass NULL for the lpString argument for WriteProfileString +' and WritePrivateProfileString +Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long + +Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long + +Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long + +Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long +Declare Function WriteProfileSection Lib "kernel32" Alias "WriteProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String) As Long +Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long + +Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long + +Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long + +Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long +Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long + +Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long +Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long +Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long +Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long +Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectory" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long +Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long +Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long +Declare Function CreateDirectoryEx Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long +Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long +Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long + +Const DDD_RAW_TARGET_PATH = &H1 +Const DDD_REMOVE_DEFINITION = &H2 +Const DDD_EXACT_MATCH_ON_REMOVE = &H4 + +Const MAX_PATH = 260 + +Declare Function DefineDosDevice Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long +Declare Function QueryDosDevice Lib "kernel32" Alias "QueryDosDeviceA" (ByVal lpDeviceName As String, ByVal lpTargetPath As String, ByVal ucchMax As Long) As Long +Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long +Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long +Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long +Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long +Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long +Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long +Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" (ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long +Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long +Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long +Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long + +Const MOVEFILE_REPLACE_EXISTING = &H1 +Const MOVEFILE_COPY_ALLOWED = &H2 +Const MOVEFILE_DELAY_UNTIL_REBOOT = &H4 + +Type EVENTLOGRECORD + Length as Long ' Length of full record + Reserved as Long ' Used by the service + RecordNumber as Long ' Absolute record number + TimeGenerated as Long ' Seconds since 1-1-1970 + TimeWritten as Long 'Seconds since 1-1-1970 + EventID as Long + EventType as Integer + NumStrings as Integer + EventCategory as Integer + ReservedFlags as Integer ' For use with paired events (auditing) + ClosingRecordNumber as Long 'For use with paired events (auditing) + StringOffset as Long ' Offset from beginning of record + UserSidLength as Long + UserSidOffset as Long + DataLength as Long + DataOffset as Long ' Offset from beginning of record +End Type + +Declare Function CreateNamedPipe Lib "kernel32" Alias "CreateNamedPipeA" (ByVal lpName As String, ByVal dwOpenMode As Long, ByVal dwPipeMode As Long, ByVal nMaxInstances As Long, ByVal nOutBufferSize As Long, ByVal nInBufferSize As Long, ByVal nDefaultTimeOut As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long +Declare Function GetNamedPipeHandleState Lib "kernel32" Alias "GetNamedPipeHandleStateA" (ByVal hNamedPipe As Long, lpState As Long, lpCurInstances As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long, ByVal lpUserName As String, ByVal nMaxUserNameSize As Long) As Long +Declare Function CallNamedPipe Lib "kernel32" Alias "CallNamedPipeA" (ByVal lpNamedPipeName As String, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, ByVal nTimeOut As Long) As Long +Declare Function WaitNamedPipe Lib "kernel32" Alias "WaitNamedPipeA" (ByVal lpNamedPipeName As String, ByVal nTimeOut As Long) As Long +Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long +Declare Sub SetFileApisToOEM Lib "kernel32" Alias "SetFileApisToOEM" () +Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long +Declare Function ClearEventLog Lib "advapi32.dll" Alias "ClearEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long +Declare Function BackupEventLog Lib "advapi32.dll" Alias "BackupEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long +Declare Function CloseEventLog Lib "advapi32.dll" Alias "CloseEventLog" (ByVal hEventLog As Long) As Long +Declare Function DeregisterEventSource Lib "advapi32.dll" Alias "DeregisterEventSource" (ByVal hEventLog As Long) As Long +Declare Function GetNumberOfEventLogRecords Lib "advapi32.dll" Alias "GetNumberOfEventLogRecords" (ByVal hEventLog As Long, NumberOfRecords As Long) As Long +Declare Function GetOldestEventLogRecord Lib "advapi32.dll" Alias "GetOldestEventLogRecord" (ByVal hEventLog As Long, OldestRecord As Long) As Long +Declare Function OpenEventLog Lib "advapi32.dll" Alias "OpenEventLogA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long +Declare Function RegisterEventSource Lib "advapi32.dll" Alias "RegisterEventSourceA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long +Declare Function OpenBackupEventLog Lib "advapi32.dll" Alias "OpenBackupEventLogA" (ByVal lpUNCServerName As String, ByVal lpFileName As String) As Long +Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" (ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long +Declare Function ReportEvent Lib "advapi32.dll" Alias "ReportEventA" (ByVal hEventLog As Long, ByVal wType As Long, ByVal wCategory As Long, ByVal dwEventID As Long, lpUserSid As Any, ByVal wNumStrings As Long, ByVal dwDataSize As Long, ByVal lpStrings As Long, lpRawData As Any) As Long + +' Security APIs +Const TokenUser = 1 +Const TokenGroups = 2 +Const TokenPrivileges = 3 +Const TokenOwner = 4 +Const TokenPrimaryGroup = 5 +Const TokenDefaultDacl = 6 +Const TokenSource = 7 +Const TokenType = 8 +Const TokenImpersonationLevel = 9 +Const TokenStatistics = 10 + +Type TOKEN_GROUPS + GroupCount As Long + Groups(ANYSIZE_ARRAY) As SID_AND_ATTRIBUTES +End Type + +Declare Function DuplicateToken Lib "advapi32.dll" Alias "DuplicateToken" (ByVal ExistingTokenHandle As Long, ImpersonationLevel As Integer, DuplicateTokenHandle As Long) As Long +Declare Function GetKernelObjectSecurity Lib "advapi32.dll" Alias "GetKernelObjectSecurity" (ByVal Handle As Long, ByVal RequestedInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long +Declare Function ImpersonateNamedPipeClient Lib "advapi32.dll" Alias "ImpersonateNamedPipeClient" (ByVal hNamedPipe As Long) As Long +Declare Function ImpersonateSelf Lib "advapi32.dll" Alias "ImpersonateSelf" (ImpersonationLevel As Integer) As Long +Declare Function RevertToSelf Lib "advapi32.dll" Alias "RevertToSelf" () As Long +Declare Function AccessCheck Lib "advapi32.dll" Alias "AccessCheck" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal ClientToken As Long, ByVal DesiredAccess As Long, GenericMapping As GENERIC_MAPPING, PrivilegeSet As PRIVILEGE_SET, PrivilegeSetLength As Long, GrantedAccess As Long, ByVal Status As Long) As Long + +Type TOKEN_PRIVILEGES + PrivilegeCount As Long + Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES +End Type + +Declare Function OpenProcessToken Lib "advapi32.dll" Alias "OpenProcessToken" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long +Declare Function OpenThreadToken Lib "advapi32.dll" Alias "OpenThreadToken" (ByVal ThreadHandle As Long, ByVal DesiredAccess As Long, ByVal OpenAsSelf As Long, TokenHandle As Long) As Long + +Declare Function GetTokenInformation Lib "advapi32.dll" Alias "GetTokenInformation" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long, ReturnLength As Long) As Long +Declare Function SetTokenInformation Lib "advapi32.dll" Alias "SetTokenInformation" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long) As Long +Declare Function AdjustTokenPrivileges Lib "advapi32.dll" Alias "AdjustTokenPrivileges" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long +Declare Function AdjustTokenGroups Lib "advapi32.dll" Alias "AdjustTokenGroups" (ByVal TokenHandle As Long, ByVal ResetToDefault As Long, NewState As TOKEN_GROUPS, ByVal BufferLength As Long, PreviousState As TOKEN_GROUPS, ReturnLength As Long) As Long +Declare Function PrivilegeCheck Lib "advapi32.dll" Alias "PrivilegeCheck" (ByVal ClientToken As Long, RequiredPrivileges As PRIVILEGE_SET, ByVal pfResult As Long) As Long +Declare Function AccessCheckAndAuditAlarm Lib "advapi32.dll" Alias "AccessCheckAndAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ObjectTypeName As String, ByVal ObjectName As String, SecurityDescriptor As SECURITY_DESCRIPTOR, ByVal DesiredAccess As Long, GenericMapping As GENERIC_MAPPING, ByVal ObjectCreation As Long, GrantedAccess As Long, ByVal AccessStatus As Long, ByVal pfGenerateOnClose As Long) As Long +Declare Function ObjectOpenAuditAlarm Lib "kernel32" Alias "ObjectOpenAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ObjectTypeName As String, ByVal ObjectName As String, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal ClientToken As Long, ByVal DesiredAccess As Long, ByVal GrantedAccess As Long, Privileges As PRIVILEGE_SET, ByVal ObjectCreation As Long, ByVal AccessGranted As Long, ByVal GenerateOnClose As Long) As Long +Declare Function ObjectPrivilegeAuditAlarm Lib "advapi32.dll" Alias "ObjectPrivilegeAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ClientToken As Long, ByVal DesiredAccess As Long, Privileges As PRIVILEGE_SET, ByVal AccessGranted As Long) As Long +Declare Function ObjectCloseAuditAlarm Lib "advapi32.dll" Alias "ObjectCloseAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal GenerateOnClose As Long) As Long +Declare Function PrivilegedServiceAuditAlarm Lib "advapi32.dll" Alias "PrivilegedServiceAuditAlarmA" (ByVal SubsystemName As String, ByVal ServiceName As String, ByVal ClientToken As Long, Privileges As PRIVILEGE_SET, ByVal AccessGranted As Long) As Long +Declare Function IsValidSid Lib "advapi32.dll" Alias "IsValidSid" (pSid As Any) As Long +Declare Function EqualSid Lib "advapi32.dll" Alias "EqualSid" (pSid1 As Any, pSid2 As Any) As Long +Declare Function EqualPrefixSid Lib "advapi32.dll" Alias "EqualPrefixSid" (pSid1 As Any, pSid2 As Any) As Long +Declare Function GetSidLengthRequired Lib "advapi32.dll" Alias "GetSidLengthRequired" (ByVal nSubAuthorityCount As Byte) As Long +Declare Function AllocateAndInitializeSid Lib "advapi32.dll" Alias "AllocateAndInitializeSid" (pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte, ByVal nSubAuthority0 As Long, ByVal nSubAuthority1 As Long, ByVal nSubAuthority2 As Long, ByVal nSubAuthority3 As Long, ByVal nSubAuthority4 As Long, ByVal nSubAuthority5 As Long, ByVal nSubAuthority6 As Long, ByVal nSubAuthority7 As Long, lpPSid As Long) As Long +Declare Sub FreeSid Lib "advapi32.dll" Alias "FreeSid" (pSid As Any) +Declare Function InitializeSid Lib "advapi32.dll" Alias "InitializeSid" (Sid As Any, pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte) As Long +Declare Function GetSidIdentifierAuthority Lib "advapi32.dll" Alias "GetSidIdentifierAuthority" (pSid As Any) As SID_IDENTIFIER_AUTHORITY +Declare Function GetSidSubAuthority Lib "advapi32.dll" Alias "GetSidSubAuthority" (pSid As Any, ByVal nSubAuthority As Long) As Long +Declare Function GetSidSubAuthorityCount Lib "advapi32.dll" Alias "GetSidSubAuthorityCount" (pSid As Any) As Byte +Declare Function GetLengthSid Lib "advapi32.dll" Alias "GetLengthSid" (pSid As Any) As Long +Declare Function CopySid Lib "advapi32.dll" Alias "CopySid" (ByVal nDestinationSidLength As Long, pDestinationSid As Any, pSourceSid As Any) As Long +Declare Function AreAllAccessesGranted Lib "advapi32.dll" Alias "AreAllAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long +Declare Function AreAnyAccessesGranted Lib "advapi32.dll" Alias "AreAnyAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long +Declare Sub MapGenericMask Lib "advapi32.dll" Alias "MapGenericMask" (AccessMask As Long, GenericMapping As GENERIC_MAPPING) +Declare Function IsValidAcl Lib "advapi32.dll" Alias "IsValidAcl" (pAcl As ACL) As Long +Declare Function InitializeAcl Lib "advapi32.dll" Alias "InitializeAcl" (pAcl As ACL, ByVal nAclLength As Long, ByVal dwAclRevision As Long) As Long +Declare Function GetAclInformation Lib "advapi32.dll" Alias "GetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long +Declare Function SetAclInformation Lib "advapi32.dll" Alias "SetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long +Declare Function AddAce Lib "advapi32.dll" Alias "AddAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal dwStartingAceIndex As Long, pAceList As Any, ByVal nAceListLength As Long) As Long +Declare Function DeleteAce Lib "advapi32.dll" Alias "DeleteAce" (pAcl As ACL, ByVal dwAceIndex As Long) As Long +Declare Function GetAce Lib "advapi32.dll" Alias "GetAce" (pAcl As ACL, ByVal dwAceIndex As Long, pAce As Any) As Long +Declare Function AddAccessAllowedAce Lib "advapi32.dll" Alias "AddAccessAllowedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long +Declare Function AddAccessDeniedAce Lib "advapi32.dll" Alias "AddAccessDeniedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long +Declare Function AddAuditAccessAce Lib "advapi32.dll" Alias "AddAuditAccessAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal dwAccessMask As Long, pSid As Any, ByVal bAuditSuccess As Long, ByVal bAuditFailure As Long) As Long +Declare Function FindFirstFreeAce Lib "advapi32.dll" Alias "FindFirstFreeAce" (pAcl As ACL, pAce As Long) As Long +Declare Function InitializeSecurityDescriptor Lib "advapi32.dll" Alias "InitializeSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal dwRevision As Long) As Long +Declare Function IsValidSecurityDescriptor Lib "advapi32.dll" Alias "IsValidSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long +Declare Function GetSecurityDescriptorLength Lib "advapi32.dll" Alias "GetSecurityDescriptorLength" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long + +Declare Function GetSecurityDescriptorControl Lib "advapi32.dll" Alias "GetSecurityDescriptorControl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pControl As Integer, lpdwRevision As Long) As Long +Declare Function SetSecurityDescriptorDacl Lib "advapi32.dll" Alias "SetSecurityDescriptorDacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal bDaclPresent As Long, pDacl As ACL, ByVal bDaclDefaulted As Long) As Long +Declare Function GetSecurityDescriptorDacl Lib "advapi32.dll" Alias "GetSecurityDescriptorDacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, lpbDaclPresent As Long, pDacl As ACL, lpbDaclDefaulted As Long) As Long +Declare Function SetSecurityDescriptorSacl Lib "advapi32.dll" Alias "SetSecurityDescriptorSacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal bSaclPresent As Long, pSacl As ACL, ByVal bSaclDefaulted As Long) As Long +Declare Function GetSecurityDescriptorSacl Lib "advapi32.dll" Alias "GetSecurityDescriptorSacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal lpbSaclPresent As Long, pSacl As ACL, ByVal lpbSaclDefaulted As Long) As Long +Declare Function SetSecurityDescriptorOwner Lib "advapi32.dll" Alias "SetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal bOwnerDefaulted As Long) As Long +Declare Function GetSecurityDescriptorOwner Lib "advapi32.dll" Alias "GetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal lpbOwnerDefaulted As Long) As Long +Declare Function SetSecurityDescriptorGroup Lib "advapi32.dll" Alias "SetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal bGroupDefaulted As Long) As Long +Declare Function GetSecurityDescriptorGroup Lib "advapi32.dll" Alias "GetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal lpbGroupDefaulted As Long) As Long +Declare Function CreatePrivateObjectSecurity Lib "advapi32.dll" Alias "CreatePrivateObjectSecurity" (ParentDescriptor As SECURITY_DESCRIPTOR, CreatorDescriptor As SECURITY_DESCRIPTOR, NewDescriptor As SECURITY_DESCRIPTOR, ByVal IsDirectoryObject As Long, ByVal Token As Long, GenericMapping As GENERIC_MAPPING) As Long +Declare Function SetPrivateObjectSecurity Lib "advapi32.dll" Alias "SetPrivateObjectSecurity" (ByVal SecurityInformation As Long, ModificationDescriptor As SECURITY_DESCRIPTOR, ObjectsSecurityDescriptor As SECURITY_DESCRIPTOR, GenericMapping As GENERIC_MAPPING, ByVal Token As Long) As Long +Declare Function GetPrivateObjectSecurity Lib "advapi32.dll" Alias "GetPrivateObjectSecurity" (ObjectDescriptor As SECURITY_DESCRIPTOR, ByVal SecurityInformation As Long, ResultantDescriptor As SECURITY_DESCRIPTOR, ByVal DescriptorLength As Long, ReturnLength As Long) As Long +Declare Function DestroyPrivateObjectSecurity Lib "advapi32.dll" Alias "DestroyPrivateObjectSecurity" (ObjectDescriptor As SECURITY_DESCRIPTOR) As Long +Declare Function MakeSelfRelativeSD Lib "advapi32.dll" Alias "MakeSelfRelativeSD" (pAbsoluteSecurityDescriptor As SECURITY_DESCRIPTOR, pSelfRelativeSecurityDescriptor As SECURITY_DESCRIPTOR, lpdwBufferLength As Long) As Long +Declare Function MakeAbsoluteSD Lib "advapi32.dll" Alias "MakeAbsoluteSD" (pSelfRelativeSecurityDescriptor As SECURITY_DESCRIPTOR, pAbsoluteSecurityDescriptor As SECURITY_DESCRIPTOR, lpdwAbsoluteSecurityDescriptorSize As Long, pDacl As ACL, lpdwDaclSize As Long, pSacl As ACL, lpdwSaclSize As Long, pOwner As Any, lpdwOwnerSize As Long, pPrimaryGroup As Any, lpdwPrimaryGroupSize As Long) As Long +Declare Function SetFileSecurity Lib "advapi32.dll" Alias "SetFileSecurityA" (ByVal lpFileName As String, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long +Declare Function GetFileSecurity Lib "advapi32.dll" Alias "GetFileSecurityA" (ByVal lpFileName As String, ByVal RequestedInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long +Declare Function SetKernelObjectSecurity Lib "advapi32.dll" Alias "SetKernelObjectSecurity" (ByVal Handle As Long, ByVal SecurityInformation As Long, SecurityDescriptor As SECURITY_DESCRIPTOR) As Long +Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long) As Long +Declare Function FindNextChangeNotification Lib "kernel32" Alias "FindNextChangeNotification" (ByVal hChangeHandle As Long) As Long +Declare Function FindCloseChangeNotification Lib "kernel32" Alias "FindCloseChangeNotification" (ByVal hChangeHandle As Long) As Long +Declare Function VirtualLock Lib "kernel32" Alias "VirtualLock" (lpAddress As Any, ByVal dwSize As Long) As Long +Declare Function VirtualUnlock Lib "kernel32" Alias "VirtualUnlock" (lpAddress As Any, ByVal dwSize As Long) As Long +Declare Function MapViewOfFileEx Lib "kernel32" Alias "MapViewOfFileEx" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long, lpBaseAddress As Any) As Long +Declare Function SetPriorityClass Lib "kernel32" Alias "SetPriorityClass" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long +Declare Function GetPriorityClass Lib "kernel32" Alias "GetPriorityClass" (ByVal hProcess As Long) As Long + +Type CONTEXT + FltF0 As Double + FltF1 As Double + FltF2 As Double + FltF3 As Double + FltF4 As Double + FltF5 As Double + FltF6 As Double + FltF7 As Double + FltF8 As Double + FltF9 As Double + FltF10 As Double + FltF11 As Double + FltF12 As Double + FltF13 As Double + FltF14 As Double + FltF15 As Double + FltF16 As Double + FltF17 As Double + FltF18 As Double + FltF19 As Double + FltF20 As Double + FltF21 As Double + FltF22 As Double + FltF23 As Double + FltF24 As Double + FltF25 As Double + FltF26 As Double + FltF27 As Double + FltF28 As Double + FltF29 As Double + FltF30 As Double + FltF31 As Double + + IntV0 As Double + IntT0 As Double + IntT1 As Double + IntT2 As Double + IntT3 As Double + IntT4 As Double + IntT5 As Double + IntT6 As Double + IntT7 As Double + IntS0 As Double + IntS1 As Double + IntS2 As Double + IntS3 As Double + IntS4 As Double + IntS5 As Double + IntFp As Double + IntA0 As Double + IntA1 As Double + IntA2 As Double + IntA3 As Double + IntA4 As Double + IntA5 As Double + IntT8 As Double + IntT9 As Double + IntT10 As Double + IntT11 As Double + IntRa As Double + IntT12 As Double + IntAt As Double + IntGp As Double + IntSp As Double + IntZero As Double + + Fpcr As Double + SoftFpcr As Double + + Fir As Double + Psr As Long + + ContextFlags As Long + Fill(4) As Long +End Type + +Type EXCEPTION_POINTERS + pExceptionRecord As EXCEPTION_RECORD + ContextRecord As CONTEXT +End Type + +Type LDT_BYTES ' Defined for use in LDT_ENTRY Type + BaseMid As Byte + Flags1 As Byte + Flags2 As Byte + BaseHi As Byte +End Type + +Type LDT_ENTRY + LimitLow As Integer + BaseLow As Integer + HighWord As Long ' Can use LDT_BYTES Type +End Type + +Declare Sub FatalExit Lib "kernel32" Alias "FatalExit" (ByVal code As Long) +Declare Function GetEnvironmentStrings Lib "kernel32" Alias "GetEnvironmentStringsA" () As String +Declare Sub RaiseException Lib "kernel32" Alias "RaiseException" (ByVal dwExceptionCode As Long, ByVal dwExceptionFlags As Long, ByVal nNumberOfArguments As Long, lpArguments As Long) +Declare Function UnhandledExceptionFilter Lib "kernel32" Alias "UnhandledExceptionFilter" (ExceptionInfo As EXCEPTION_POINTERS) As Long + +Declare Function CreateThread Lib "kernel32" Alias "CreateThread" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long +Declare Function CreateRemoteThread Lib "kernel32" Alias "CreateRemoteThread" (ByVal hProcess As Long, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long +Declare Function GetCurrentThread Lib "kernel32" Alias "GetCurrentThread" () As Long +Declare Function GetCurrentThreadId Lib "kernel32" Alias "GetCurrentThreadId" () As Long +Declare Function SetThreadPriority Lib "kernel32" Alias "SetThreadPriority" (ByVal hThread As Long, ByVal nPriority As Long) As Long +Declare Function GetThreadPriority Lib "kernel32" Alias "GetThreadPriority" (ByVal hThread As Long) As Long +Declare Function GetThreadTimes Lib "kernel32" Alias "GetThreadTimes" (ByVal hThread As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long +Declare Sub ExitThread Lib "kernel32" Alias "ExitThread" (ByVal dwExitCode As Long) +Declare Function TerminateThread Lib "kernel32" Alias "TerminateThread" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long +Declare Function GetExitCodeThread Lib "kernel32" Alias "GetExitCodeThread" (ByVal hThread As Long, lpExitCode As Long) As Long +Declare Function GetThreadSelectorEntry Lib "kernel32" Alias "GetThreadSelectorEntry" (ByVal hThread As Long, ByVal dwSelector As Long, lpSelectorEntry As LDT_ENTRY) As Long + +' COMM declarations +Declare Function SetCommState Lib "kernel32" Alias "SetCommState" (ByVal hCommDev As Long, lpDCB As DCB) As Long +Declare Function SetCommTimeouts Lib "kernel32" Alias "SetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long +Declare Function GetCommState Lib "kernel32" Alias "GetCommState" (ByVal nCid As Long, lpDCB As DCB) As Long +Declare Function GetCommTimeouts Lib "kernel32" Alias "GetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long +Declare Function PurgeComm Lib "kernel32" Alias "PurgeComm" (ByVal hFile As Long, ByVal dwFlags As Long) As Long +Declare Function BuildCommDCB Lib "kernel32" Alias "BuildCommDCBA" (ByVal lpDef As String, lpDCB As DCB) As Long +Declare Function BuildCommDCBAndTimeouts Lib "kernel32" Alias "BuildCommDCBAndTimeoutsA" (ByVal lpDef As String, lpDCB As DCB, lpCommTimeouts As COMMTIMEOUTS) As Long +Declare Function TransmitCommChar Lib "kernel32" Alias "TransmitCommChar" (ByVal nCid As Long, ByVal cChar As Byte) As Long +Declare Function SetCommBreak Lib "kernel32" Alias "SetCommBreak" (ByVal nCid As Long) As Long +Declare Function SetCommMask Lib "kernel32" Alias "SetCommMask" (ByVal hFile As Long, ByVal dwEvtMask As Long) As Long +Declare Function ClearCommBreak Lib "kernel32" Alias "ClearCommBreak" (ByVal nCid As Long) As Long +Declare Function ClearCommError Lib "kernel32" Alias "ClearCommError" (ByVal hFile As Long, lpErrors As Long, lpStat As COMSTAT) As Long +Declare Function SetupComm Lib "kernel32" Alias "SetupComm" (ByVal hFile As Long, ByVal dwInQueue As Long, ByVal dwOutQueue As Long) As Long +Declare Function EscapeCommFunction Lib "kernel32" Alias "EscapeCommFunction" (ByVal nCid As Long, ByVal nFunc As Long) As Long +Declare Function GetCommMask Lib "kernel32" Alias "GetCommMask" (ByVal hFile As Long, lpEvtMask As Long) As Long +Declare Function GetCommProperties Lib "kernel32" Alias "GetCommProperties" (ByVal hFile As Long, lpCommProp As COMMPROP) As Long +Declare Function GetCommModemStatus Lib "kernel32" Alias "GetCommModemStatus" (ByVal hFile As Long, lpModemStat As Long) As Long +Declare Function WaitCommEvent Lib "kernel32" Alias "WaitCommEvent" (ByVal hFile As Long, lpEvtMask As Long, lpOverlapped As OVERLAPPED) As Long + +Declare Function SetTapePosition Lib "kernel32" Alias "SetTapePosition" (ByVal hDevice As Long, ByVal dwPositionMethod As Long, ByVal dwPartition As Long, ByVal dwOffsetLow As Long, ByVal dwOffsetHigh As Long, ByVal bimmediate As Long) As Long +Declare Function GetTapePosition Lib "kernel32" Alias "GetTapePosition" (ByVal hDevice As Long, ByVal dwPositionType As Long, lpdwPartition As Long, lpdwOffsetLow As Long, lpdwOffsetHigh As Long) As Long +Declare Function PrepareTape Lib "kernel32" Alias "PrepareTape" (ByVal hDevice As Long, ByVal dwOperation As Long, ByVal bimmediate As Long) As Long +Declare Function EraseTape Lib "kernel32" Alias "EraseTape" (ByVal hDevice As Long, ByVal dwEraseType As Long, ByVal bimmediate As Long) As Long +Declare Function CreateTapePartition Lib "kernel32" Alias "CreateTapePartition" (ByVal hDevice As Long, ByVal dwPartitionMethod As Long, ByVal dwCount As Long, ByVal dwSize As Long) As Long +Declare Function WriteTapemark Lib "kernel32" Alias "WriteTapemark" (ByVal hDevice As Long, ByVal dwTapemarkType As Long, ByVal dwTapemarkCount As Long, ByVal bimmediate As Long) As Long +Declare Function GetTapeStatus Lib "kernel32" Alias "GetTapeStatus" (ByVal hDevice As Long) As Long +Declare Function GetTapeParameters Lib "kernel32" Alias "GetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpdwSize As Long, lpTapeInformation As Any) As Long + +Const GET_TAPE_MEDIA_INFORMATION = 0 +Const GET_TAPE_DRIVE_INFORMATION = 1 + +Declare Function SetTapeParameters Lib "kernel32" Alias "SetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpTapeInformation As Any) As Long + +Const SET_TAPE_MEDIA_INFORMATION = 0 +Const SET_TAPE_DRIVE_INFORMATION = 1 + +Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long + +Declare Function MulDiv Lib "kernel32" Alias "MulDiv" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long + +Declare Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" (lpSystemTime As SYSTEMTIME) +Declare Function SetSystemTime Lib "kernel32" Alias "SetSystemTime" (lpSystemTime As SYSTEMTIME) As Long +Declare Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime As SYSTEMTIME) +Declare Function SetLocalTime Lib "kernel32" Alias "SetLocalTime" (lpSystemTime As SYSTEMTIME) As Long +Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO) + +Type TIME_ZONE_INFORMATION + Bias As Long + StandardName(32) As Integer + StandardDate As SYSTEMTIME + StandardBias As Long + DaylightName(32) As Integer + DaylightDate As SYSTEMTIME + DaylightBias As Long +End Type + +Declare Function GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long +Declare Function SetTimeZoneInformation Lib "kernel32" Alias "SetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long + +' Routines to convert back and forth +' between system time and file time + +Declare Function SystemTimeToFileTime Lib "kernel32" Alias "SystemTimeToFileTime" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long +Declare Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long +Declare Function LocalFileTimeToFileTime Lib "kernel32" Alias "LocalFileTimeToFileTime" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long +Declare Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long +Declare Function CompareFileTime Lib "kernel32" Alias "CompareFileTime" (lpFileTime1 As FILETIME, lpFileTime2 As FILETIME) As Long +Declare Function FileTimeToDosDateTime Lib "kernel32" Alias "FileTimeToDosDateTime" (lpFileTime As FILETIME, ByVal lpFatDate As Long, ByVal lpFatTime As Long) As Long +Declare Function DosDateTimeToFileTime Lib "kernel32" Alias "DosDateTimeToFileTime" (ByVal wFatDate As Long, ByVal wFatTime As Long, lpFileTime As FILETIME) As Long +Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long +Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long + +Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100 +Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200 +Const FORMAT_MESSAGE_FROM_STRING = &H400 +Const FORMAT_MESSAGE_FROM_HMODULE = &H800 +Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000 +Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H2000 +Const FORMAT_MESSAGE_MAX_WIDTH_MASK = &HFF + +Declare Function CreatePipe Lib "kernel32" Alias "CreatePipe" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long +Declare Function ConnectNamedPipe Lib "kernel32" Alias "ConnectNamedPipe" (ByVal hNamedPipe As Long, lpOverlapped As OVERLAPPED) As Long +Declare Function DisconnectNamedPipe Lib "kernel32" Alias "DisconnectNamedPipe" (ByVal hNamedPipe As Long) As Long +Declare Function SetNamedPipeHandleState Lib "kernel32" Alias "SetNamedPipeHandleState" (ByVal hNamedPipe As Long, lpMode As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long) As Long +Declare Function GetNamedPipeInfo Lib "kernel32" Alias "GetNamedPipeInfo" (ByVal hNamedPipe As Long, lpFlags As Long, lpOutBufferSize As Long, lpInBufferSize As Long, lpMaxInstances As Long) As Long +Declare Function PeekNamedPipe Lib "kernel32" Alias "PeekNamedPipe" (ByVal hNamedPipe As Long, lpBuffer As Any, ByVal nBufferSize As Long, lpBytesRead As Long, lpTotalBytesAvail As Long, lpBytesLeftThisMessage As Long) As Long +Declare Function TransactNamedPipe Lib "kernel32" Alias "TransactNamedPipe" (ByVal hNamedPipe As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, lpOverlapped As OVERLAPPED) As Long + +Declare Function CreateMailslot Lib "kernel32" Alias "CreateMailslotA" (ByVal lpName As String, ByVal nMaxMessageSize As Long, ByVal lReadTimeout As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long +Declare Function GetMailslotInfo Lib "kernel32" Alias "GetMailslotInfo" (ByVal hMailslot As Long, lpMaxMessageSize As Long, lpNextSize As Long, lpMessageCount As Long, lpReadTimeout As Long) As Long +Declare Function SetMailslotInfo Lib "kernel32" Alias "SetMailslotInfo" (ByVal hMailslot As Long, ByVal lReadTimeout As Long) As Long +Declare Function MapViewOfFile Lib "kernel32" Alias "MapViewOfFile" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long + +Declare Function FlushViewOfFile Lib "kernel32" Alias "FlushViewOfFile" (lpBaseAddress As Any, ByVal dwNumberOfBytesToFlush As Long) As Long +Declare Function UnmapViewOfFile Lib "kernel32" Alias "UnmapViewOfFile" (lpBaseAddress As Any) As Long + +Declare Function lstrcmp Lib "kernel32" Alias "lstrcmpA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long +Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long +Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long + +Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long +Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long +Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long +Declare Function llseek Lib "kernel32" Alias "_llseek" (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long +Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long +Declare Function lwrite Lib "kernel32" Alias "_lwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal wBytes As Long) As Long + +Declare Function hread Lib "kernel32" Alias "_hread" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long +Declare Function hwrite Lib "kernel32" Alias "_hwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal lBytes As Long) As Long + +Declare Function TlsAlloc Lib "kernel32" Alias "TlsAlloc" () As Long + +Const TLS_OUT_OF_INDEXES = &HFFFF + +Declare Function TlsGetValue Lib "kernel32" Alias "TlsGetValue" (ByVal dwTlsIndex As Long) As Long +Declare Function TlsSetValue Lib "kernel32" Alias "TlsSetValue" (ByVal dwTlsIndex As Long, lpTlsValue As Any) As Long +Declare Function TlsFree Lib "kernel32" Alias "TlsFree" (ByVal dwTlsIndex As Long) As Long +Declare Function SleepEx Lib "kernel32" Alias "SleepEx" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long +Declare Function WaitForSingleObjectEx Lib "kernel32" Alias "WaitForSingleObjectEx" (ByVal hHandle As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long +Declare Function WaitForMultipleObjectsEx Lib "kernel32" Alias "WaitForMultipleObjectsEx" (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long +Declare Function BackupRead Lib "kernel32" Alias "BackupRead" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As Any) As Long +Declare Function BackupSeek Lib "kernel32" Alias "BackupSeek" (ByVal hFile As Long, ByVal dwLowBytesToSeek As Long, ByVal dwHighBytesToSeek As Long, lpdwLowByteSeeked As Long, lpdwHighByteSeeked As Long, lpContext As Long) As Long +Declare Function BackupWrite Lib "kernel32" Alias "BackupWrite" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As Long) As Long + +' Stream ID type +Type WIN32_STREAM_ID + dwStreamID As Long + dwStreamAttributes As Long + dwStreamSizeLow As Long + dwStreamSizeHigh As Long + dwStreamNameSize As Long + cStreamName As Byte +End Type + +' Stream IDs +Const BACKUP_DATA = &H1 +Const BACKUP_EA_DATA = &H2 +Const BACKUP_SECURITY_DATA = &H3 +Const BACKUP_ALTERNATE_DATA = &H4 +Const BACKUP_LINK = &H5 + +' Stream Attributes +Const STREAM_MODIFIED_WHEN_READ = &H1 +Const STREAM_CONTAINS_SECURITY = &H2 + +' Dual Mode API below this line. Dual Mode Types also included. + +Const STARTF_USESHOWWINDOW = &H1 +Const STARTF_USESIZE = &H2 +Const STARTF_USEPOSITION = &H4 +Const STARTF_USECOUNTCHARS = &H8 +Const STARTF_USEFILLATTRIBUTE = &H10 +Const STARTF_RUNFULLSCREEN = &H20 ' ignored for non-x86 platforms +Const STARTF_FORCEONFEEDBACK = &H40 +Const STARTF_FORCEOFFFEEDBACK = &H80 +Const STARTF_USESTDHANDLES = &H100 + +Type STARTUPINFO + cb As Long + lpReserved As String + lpDesktop As String + lpTitle As String + dwX As Long + dwY As Long + dwXSize As Long + dwYSize As Long + dwXCountChars As Long + dwYCountChars As Long + dwFillAttribute As Long + dwFlags As Long + wShowWindow As Integer + cbReserved2 As Integer + lpReserved2 As Long + hStdInput As Long + hStdOutput As Long + hStdError As Long +End Type + +Const SHUTDOWN_NORETRY = &H1 + +Type WIN32_FIND_DATA + dwFileAttributes As Long + ftCreationTime As FILETIME + ftLastAccessTime As FILETIME + ftLastWriteTime As FILETIME + nFileSizeHigh As Long + nFileSizeLow As Long + dwReserved0 As Long + dwReserved1 As Long + cFileName As String * MAX_PATH + cAlternate As String * 14 +End Type + +Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long +Declare Function OpenMutex Lib "kernel32" Alias "OpenMutexA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long +Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long +Declare Function OpenEvent Lib "kernel32" Alias "OpenEventA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long +Declare Function CreateSemaphore Lib "kernel32" Alias "CreateSemaphoreA" (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As String) As Long +Declare Function OpenSemaphore Lib "kernel32" Alias "OpenSemaphoreA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long +Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long +Declare Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long +Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long + +Declare Function IsBadReadPtr Lib "kernel32" Alias "IsBadReadPtr" (lp As Any, ByVal ucb As Long) As Long +Declare Function IsBadWritePtr Lib "kernel32" Alias "IsBadWritePtr" (lp As Any, ByVal ucb As Long) As Long +Declare Function IsBadStringPtr Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As String, ByVal ucchMax As Long) As Long +Declare Function IsBadHugeReadPtr Lib "kernel32" Alias "IsBadHugeReadPtr" (lp As Any, ByVal ucb As Long) As Long +Declare Function IsBadHugeWritePtr Lib "kernel32" Alias "IsBadHugeWritePtr" (lp As Any, ByVal ucb As Long) As Long + +Declare Function LookupAccountSid Lib "advapi32.dll" Alias "LookupAccountSidA" (ByVal lpSystemName As String, Sid As Any, ByVal name As String, cbName As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Integer) As Long + +Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (ByVal lpSystemName As String, ByVal lpAccountName As String, Sid As Long, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Integer) As Long +Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long +Declare Function LookupPrivilegeName Lib "advapi32.dll" Alias "LookupPrivilegeNameA" (ByVal lpSystemName As String, lpLuid As LARGE_INTEGER, ByVal lpName As String, cbName As Long) As Long +Declare Function LookupPrivilegeDisplayName Lib "advapi32.dll" Alias "LookupPrivilegeDisplayNameA" (ByVal lpSystemName As String, ByVal lpName As String, ByVal lpDisplayName As String, cbDisplayName As Long, lpLanguageID As Long) As Long +Declare Function AllocateLocallyUniqueId Lib "advapi32.dll" Alias "AllocateLocallyUniqueId" (Luid As LARGE_INTEGER) As Long + +Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long +Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long +Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long + +' Performance counter API's +Declare Function QueryPerformanceCounter Lib "kernel32" Alias "QueryPerformanceCounter" (lpPerformanceCount As LARGE_INTEGER) As Long +Declare Function QueryPerformanceFrequency Lib "kernel32" Alias "QueryPerformanceFrequency" (lpFrequency As LARGE_INTEGER) As Long + +' Abnormal termination codes +Const TC_NORMAL = 0 +Const TC_HARDERR = 1 +Const TC_GP_TRAP = 2 +Const TC_SIGNAL = 3 + + +' Procedure declarations, constant definitions, and macros +' for the NLS component + +' String Length Maximums +Const MAX_LEADBYTES = 12 ' 5 ranges, 2 bytes ea., 0 term. + +' MBCS and Unicode Translation Flags. + +Const MB_PRECOMPOSED = &H1 ' use precomposed chars +Const MB_COMPOSITE = &H2 ' use composite chars +Const MB_USEGLYPHCHARS = &H4 ' use glyph chars, not ctrl chars + +Const WC_DEFAULTCHECK = &H100 ' check for default char +Const WC_COMPOSITECHECK = &H200 ' convert composite to precomposed +Const WC_DISCARDNS = &H10 ' discard non-spacing chars +Const WC_SEPCHARS = &H20 ' generate separate chars +Const WC_DEFAULTCHAR = &H40 ' replace w/ default char + +' Character Type Flags. +Const CT_CTYPE1 = &H1 ' ctype 1 information +Const CT_CTYPE2 = &H2 ' ctype 2 information +Const CT_CTYPE3 = &H4 ' ctype 3 information + +' CType 1 Flag Bits. +Const C1_UPPER = &H1 ' upper case +Const C1_LOWER = &H2 ' lower case +Const C1_DIGIT = &H4 ' decimal digits +Const C1_SPACE = &H8 ' spacing characters +Const C1_PUNCT = &H10 ' punctuation characters +Const C1_CNTRL = &H20 ' control characters +Const C1_BLANK = &H40 ' blank characters +Const C1_XDIGIT = &H80 ' other digits +Const C1_ALPHA = &H100 ' any letter + +' CType 2 Flag Bits. + +Const C2_LEFTTORIGHT = &H1 ' left to right +Const C2_RIGHTTOLEFT = &H2 ' right to left + +Const C2_EUROPENUMBER = &H3 ' European number, digit +Const C2_EUROPESEPARATOR = &H4 ' European numeric separator +Const C2_EUROPETERMINATOR = &H5 ' European numeric terminator +Const C2_ARABICNUMBER = &H6 ' Arabic number +Const C2_COMMONSEPARATOR = &H7 ' common numeric separator + +Const C2_BLOCKSEPARATOR = &H8 ' block separator +Const C2_SEGMENTSEPARATOR = &H9 ' segment separator +Const C2_WHITESPACE = &HA ' white space +Const C2_OTHERNEUTRAL = &HB ' other neutrals + +Const C2_NOTAPPLICABLE = &H0 ' no implicit directionality + +' CType 3 Flag Bits. +Const C3_NONSPACING = &H1 ' nonspacing character +Const C3_DIACRITIC = &H2 ' diacritic mark +Const C3_VOWELMARK = &H4 ' vowel mark +Const C3_SYMBOL = &H8 ' symbols + +Const C3_NOTAPPLICABLE = &H0 ' ctype 3 is not applicable + +' String Flags. +Const NORM_IGNORECASE = &H1 ' ignore case +Const NORM_IGNORENONSPACE = &H2 ' ignore nonspacing chars +Const NORM_IGNORESYMBOLS = &H4 ' ignore symbols + +' Locale Independent Mapping Flags. +Const MAP_FOLDCZONE = &H10 ' fold compatibility zone chars +Const MAP_PRECOMPOSED = &H20 ' convert to precomposed chars +Const MAP_COMPOSITE = &H40 ' convert to composite chars +Const MAP_FOLDDIGITS = &H80 ' all digits to ASCII 0-9 + +' Locale Dependent Mapping Flags. +Const LCMAP_LOWERCASE = &H100 ' lower case letters +Const LCMAP_UPPERCASE = &H200 ' upper case letters +Const LCMAP_SORTKEY = &H400 ' WC sort key (normalize) +Const LCMAP_BYTEREV = &H800 ' byte reversal + +' Sorting Flags. +Const SORT_STRINGSORT = &H1000 ' use string sort method + +' Code Page Default Values. +Const CP_ACP = 0 ' default to ANSI code page +Const CP_OEMCP = 1 ' default to OEM code page + +' Country/Region Codes. + +Const CTRY_DEFAULT = 0 + +Const CTRY_AUSTRALIA = 61 ' Australia +Const CTRY_AUSTRIA = 43 ' Austria +Const CTRY_BELGIUM = 32 ' Belgium +Const CTRY_BRAZIL = 55 ' Brazil +Const CTRY_CANADA = 2 ' Canada +Const CTRY_DENMARK = 45 ' Denmark +Const CTRY_FINLAND = 358 ' Finland +Const CTRY_FRANCE = 33 ' France +Const CTRY_GERMANY = 49 ' Germany +Const CTRY_ICELAND = 354 ' Iceland +Const CTRY_IRELAND = 353 ' Ireland +Const CTRY_ITALY = 39 ' Italy +Const CTRY_JAPAN = 81 ' Japan +Const CTRY_MEXICO = 52 ' Mexico +Const CTRY_NETHERLANDS = 31 ' Netherlands +Const CTRY_NEW_ZEALAND = 64 ' New Zealand +Const CTRY_NORWAY = 47 ' Norway +Const CTRY_PORTUGAL = 351 ' Portugal +Const CTRY_PRCHINA = 86 ' PR China +Const CTRY_SOUTH_KOREA = 82 ' South Korea +Const CTRY_SPAIN = 34 ' Spain +Const CTRY_SWEDEN = 46 ' Sweden +Const CTRY_SWITZERLAND = 41 ' Switzerland +Const CTRY_TAIWAN = 886 ' Taiwan +Const CTRY_UNITED_KINGDOM = 44 ' United Kingdom +Const CTRY_UNITED_STATES = 1 ' United States + +' Locale Types. +' These types are used for the GetLocaleInfoW NLS API routine. + +' LOCALE_NOUSEROVERRIDE is also used in GetTimeFormatW and GetDateFormatW. +Const LOCALE_NOUSEROVERRIDE = &H80000000 ' do not use user overrides + +Const LOCALE_ILANGUAGE = &H1 ' language id +Const LOCALE_SLANGUAGE = &H2 ' localized name of language +Const LOCALE_SENGLANGUAGE = &H1001 ' English name of language +Const LOCALE_SABBREVLANGNAME = &H3 ' abbreviated language name +Const LOCALE_SNATIVELANGNAME = &H4 ' native name of language +Const LOCALE_ICOUNTRY = &H5 ' country/region code +Const LOCALE_SCOUNTRY = &H6 ' localized name of country/region +Const LOCALE_SENGCOUNTRY = &H1002 ' English name of country/region +Const LOCALE_SABBREVCTRYNAME = &H7 ' abbreviated country/region name +Const LOCALE_SNATIVECTRYNAME = &H8 ' native name of country/region +Const LOCALE_IDEFAULTLANGUAGE = &H9 ' default language id +Const LOCALE_IDEFAULTCOUNTRY = &HA ' default country/region code +Const LOCALE_IDEFAULTCODEPAGE = &HB ' default code page + +Const LOCALE_SLIST = &HC ' list item separator +Const LOCALE_IMEASURE = &HD ' 0 = metric, 1 = US + +Const LOCALE_SDECIMAL = &HE ' decimal separator +Const LOCALE_STHOUSAND = &HF ' thousand separator +Const LOCALE_SGROUPING = &H10 ' digit grouping +Const LOCALE_IDIGITS = &H11 ' number of fractional digits +Const LOCALE_ILZERO = &H12 ' leading zeros for decimal +Const LOCALE_SNATIVEDIGITS = &H13 ' native ascii 0-9 + +Const LOCALE_SCURRENCY = &H14 ' local monetary symbol +Const LOCALE_SINTLSYMBOL = &H15 ' intl monetary symbol +Const LOCALE_SMONDECIMALSEP = &H16 ' monetary decimal separator +Const LOCALE_SMONTHOUSANDSEP = &H17 ' monetary thousand separator +Const LOCALE_SMONGROUPING = &H18 ' monetary grouping +Const LOCALE_ICURRDIGITS = &H19 ' # local monetary digits +Const LOCALE_IINTLCURRDIGITS = &H1A ' # intl monetary digits +Const LOCALE_ICURRENCY = &H1B ' positive currency mode +Const LOCALE_INEGCURR = &H1C ' negative currency mode + +Const LOCALE_SDATE = &H1D ' date separator +Const LOCALE_STIME = &H1E ' time separator +Const LOCALE_SSHORTDATE = &H1F ' short date format string +Const LOCALE_SLONGDATE = &H20 ' long date format string +Const LOCALE_STIMEFORMAT = &H1003 ' time format string +Const LOCALE_IDATE = &H21 ' short date format ordering +Const LOCALE_ILDATE = &H22 ' long date format ordering +Const LOCALE_ITIME = &H23 ' time format specifier +Const LOCALE_ICENTURY = &H24 ' century format specifier +Const LOCALE_ITLZERO = &H25 ' leading zeros in time field +Const LOCALE_IDAYLZERO = &H26 ' leading zeros in day field +Const LOCALE_IMONLZERO = &H27 ' leading zeros in month field +Const LOCALE_S1159 = &H28 ' AM designator +Const LOCALE_S2359 = &H29 ' PM designator + +Const LOCALE_SDAYNAME1 = &H2A ' long name for Monday +Const LOCALE_SDAYNAME2 = &H2B ' long name for Tuesday +Const LOCALE_SDAYNAME3 = &H2C ' long name for Wednesday +Const LOCALE_SDAYNAME4 = &H2D ' long name for Thursday +Const LOCALE_SDAYNAME5 = &H2E ' long name for Friday +Const LOCALE_SDAYNAME6 = &H2F ' long name for Saturday +Const LOCALE_SDAYNAME7 = &H30 ' long name for Sunday +Const LOCALE_SABBREVDAYNAME1 = &H31 ' abbreviated name for Monday +Const LOCALE_SABBREVDAYNAME2 = &H32 ' abbreviated name for Tuesday +Const LOCALE_SABBREVDAYNAME3 = &H33 ' abbreviated name for Wednesday +Const LOCALE_SABBREVDAYNAME4 = &H34 ' abbreviated name for Thursday +Const LOCALE_SABBREVDAYNAME5 = &H35 ' abbreviated name for Friday +Const LOCALE_SABBREVDAYNAME6 = &H36 ' abbreviated name for Saturday +Const LOCALE_SABBREVDAYNAME7 = &H37 ' abbreviated name for Sunday +Const LOCALE_SMONTHNAME1 = &H38 ' long name for January +Const LOCALE_SMONTHNAME2 = &H39 ' long name for February +Const LOCALE_SMONTHNAME3 = &H3A ' long name for March +Const LOCALE_SMONTHNAME4 = &H3B ' long name for April +Const LOCALE_SMONTHNAME5 = &H3C ' long name for May +Const LOCALE_SMONTHNAME6 = &H3D ' long name for June +Const LOCALE_SMONTHNAME7 = &H3E ' long name for July +Const LOCALE_SMONTHNAME8 = &H3F ' long name for August +Const LOCALE_SMONTHNAME9 = &H40 ' long name for September +Const LOCALE_SMONTHNAME10 = &H41 ' long name for October +Const LOCALE_SMONTHNAME11 = &H42 ' long name for November +Const LOCALE_SMONTHNAME12 = &H43 ' long name for December +Const LOCALE_SABBREVMONTHNAME1 = &H44 ' abbreviated name for January +Const LOCALE_SABBREVMONTHNAME2 = &H45 ' abbreviated name for February +Const LOCALE_SABBREVMONTHNAME3 = &H46 ' abbreviated name for March +Const LOCALE_SABBREVMONTHNAME4 = &H47 ' abbreviated name for April +Const LOCALE_SABBREVMONTHNAME5 = &H48 ' abbreviated name for May +Const LOCALE_SABBREVMONTHNAME6 = &H49 ' abbreviated name for June +Const LOCALE_SABBREVMONTHNAME7 = &H4A ' abbreviated name for July +Const LOCALE_SABBREVMONTHNAME8 = &H4B ' abbreviated name for August +Const LOCALE_SABBREVMONTHNAME9 = &H4C ' abbreviated name for September +Const LOCALE_SABBREVMONTHNAME10 = &H4D ' abbreviated name for October +Const LOCALE_SABBREVMONTHNAME11 = &H4E ' abbreviated name for November +Const LOCALE_SABBREVMONTHNAME12 = &H4F ' abbreviated name for December +Const LOCALE_SABBREVMONTHNAME13 = &H100F + +Const LOCALE_SPOSITIVESIGN = &H50 ' positive sign +Const LOCALE_SNEGATIVESIGN = &H51 ' negative sign +Const LOCALE_IPOSSIGNPOSN = &H52 ' positive sign position +Const LOCALE_INEGSIGNPOSN = &H53 ' negative sign position +Const LOCALE_IPOSSYMPRECEDES = &H54 ' mon sym precedes pos amt +Const LOCALE_IPOSSEPBYSPACE = &H55 ' mon sym sep by space from pos amt +Const LOCALE_INEGSYMPRECEDES = &H56 ' mon sym precedes neg amt +Const LOCALE_INEGSEPBYSPACE = &H57 ' mon sym sep by space from neg amt + +' Time Flags for GetTimeFormatW. +Const TIME_NOMINUTESORSECONDS = &H1 ' do not use minutes or seconds +Const TIME_NOSECONDS = &H2 ' do not use seconds +Const TIME_NOTIMEMARKER = &H4 ' do not use time marker +Const TIME_FORCE24HOURFORMAT = &H8 ' always use 24 hour format + +' Date Flags for GetDateFormatW. +Const DATE_SHORTDATE = &H1 ' use short date picture +Const DATE_LONGDATE = &H2 ' use long date picture + + +' Code Page Dependent APIs + +Declare Function IsValidCodePage Lib "kernel32" Alias "IsValidCodePage" (ByVal CodePage As Long) As Long +Declare Function GetACP Lib "kernel32" Alias "GetACP" () As Long +Declare Function GetOEMCP Lib "kernel32" Alias "GetOEMCP" () As Long +Declare Function GetCPInfo Lib "kernel32" Alias "GetCPInfo" (ByVal CodePage As Long, lpCPInfo As CPINFO) As Long +Declare Function IsDBCSLeadByte Lib "kernel32" Alias "IsDBCSLeadByte" (ByVal bTestChar As Byte) As Long +Declare Function MultiByteToWideChar Lib "kernel32" Alias "MultiByteToWideChar" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long) As Long +Declare Function WideCharToMultiByte Lib "kernel32" Alias "WideCharToMultiByte" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long + +' Locale Dependent APIs + +Declare Function CompareString Lib "kernel32" Alias "CompareStringA" (ByVal Locale As Long, ByVal dwCmpFlags As Long, ByVal lpString1 As String, ByVal cchCount1 As Long, ByVal lpString2 As String, ByVal cchCount2 As Long) As Long +Declare Function LCMapString Lib "kernel32" Alias "LCMapStringA" (ByVal Locale As Long, ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long +Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long +Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpTime As SYSTEMTIME, ByVal lpFormat As String, ByVal lpTimeStr As String, ByVal cchTime As Long) As Long +Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpDate As SYSTEMTIME, ByVal lpFormat As String, ByVal lpDateStr As String, ByVal cchDate As Long) As Long +Declare Function SetThreadLocale Lib "kernel32" Alias "SetThreadLocale" (ByVal Locale As Long) As Long +Declare Function GetSystemDefaultLangID Lib "kernel32" Alias "GetSystemDefaultLangID" () As Integer +Declare Function GetUserDefaultLangID Lib "kernel32" Alias "GetUserDefaultLangID" () As Integer +Declare Function GetSystemDefaultLCID Lib "kernel32" Alias "GetSystemDefaultLCID" () As Long +Declare Function GetUserDefaultLCID Lib "kernel32" Alias "GetUserDefaultLCID" () As Long + +' Locale Independent APIs + +Declare Function GetStringTypeA Lib "kernel32" Alias "GetStringTypeA" (ByVal lcid As Long, ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Long) As Long +Declare Function FoldString Lib "kernel32" Alias "FoldStringA" (ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long + +' ************************************************************************* +' * * +' * winnls.h -- NLS procedure declarations, constant definitions and macros * +' * * +' * Copyright (c) 1991-1995, Microsoft Corp. All rights reserved. * +' * * +' **************************************************************************/ + +' * Calendar Types. +' * +' * These types are used for the GetALTCalendarInfoW NLS API routine. +' */ +Const MAX_DEFAULTCHAR = 2 +Const CAL_ICALINTVALUE = &H1 ' calendar type +Const CAL_SCALNAME = &H2 ' native name of calendar +Const CAL_IYEAROFFSETRANGE = &H3 ' starting years of eras +Const CAL_SERASTRING = &H4 ' era name for IYearOffsetRanges +Const CAL_SSHORTDATE = &H5 ' Integer date format string +Const CAL_SLONGDATE = &H6 ' long date format string +Const CAL_SDAYNAME1 = &H7 ' native name for Monday +Const CAL_SDAYNAME2 = &H8 ' native name for Tuesday +Const CAL_SDAYNAME3 = &H9 ' native name for Wednesday +Const CAL_SDAYNAME4 = &HA ' native name for Thursday +Const CAL_SDAYNAME5 = &HB ' native name for Friday +Const CAL_SDAYNAME6 = &HC ' native name for Saturday +Const CAL_SDAYNAME7 = &HD ' native name for Sunday +Const CAL_SABBREVDAYNAME1 = &HE ' abbreviated name for Monday +Const CAL_SABBREVDAYNAME2 = &HF ' abbreviated name for Tuesday +Const CAL_SABBREVDAYNAME3 = &H10 ' abbreviated name for Wednesday +Const CAL_SABBREVDAYNAME4 = &H11 ' abbreviated name for Thursday +Const CAL_SABBREVDAYNAME5 = &H12 ' abbreviated name for Friday +Const CAL_SABBREVDAYNAME6 = &H13 ' abbreviated name for Saturday +Const CAL_SABBREVDAYNAME7 = &H14 ' abbreviated name for Sunday +Const CAL_SMONTHNAME1 = &H15 ' native name for January +Const CAL_SMONTHNAME2 = &H16 ' native name for February +Const CAL_SMONTHNAME3 = &H17 ' native name for March +Const CAL_SMONTHNAME4 = &H18 ' native name for April +Const CAL_SMONTHNAME5 = &H19 ' native name for May +Const CAL_SMONTHNAME6 = &H1A ' native name for June +Const CAL_SMONTHNAME7 = &H1B ' native name for July +Const CAL_SMONTHNAME8 = &H1C ' native name for August +Const CAL_SMONTHNAME9 = &H1D ' native name for September +Const CAL_SMONTHNAME10 = &H1E ' native name for October +Const CAL_SMONTHNAME11 = &H1F ' native name for November +Const CAL_SMONTHNAME12 = &H20 ' native name for December +Const CAL_SMONTHNAME13 = &H21 ' native name for 13th month (if any) +Const CAL_SABBREVMONTHNAME1 = &H22 ' abbreviated name for January +Const CAL_SABBREVMONTHNAME2 = &H23 ' abbreviated name for February +Const CAL_SABBREVMONTHNAME3 = &H24 ' abbreviated name for March +Const CAL_SABBREVMONTHNAME4 = &H25 ' abbreviated name for April +Const CAL_SABBREVMONTHNAME5 = &H26 ' abbreviated name for May +Const CAL_SABBREVMONTHNAME6 = &H27 ' abbreviated name for June +Const CAL_SABBREVMONTHNAME7 = &H28 ' abbreviated name for July +Const CAL_SABBREVMONTHNAME8 = &H29 ' abbreviated name for August +Const CAL_SABBREVMONTHNAME9 = &H2A ' abbreviated name for September +Const CAL_SABBREVMONTHNAME10 = &H2B ' abbreviated name for October +Const CAL_SABBREVMONTHNAME11 = &H2C ' abbreviated name for November +Const CAL_SABBREVMONTHNAME12 = &H2D ' abbreviated name for December +Const CAL_SABBREVMONTHNAME13 = &H2E ' abbreviated name for 13th month (if any) + +' +' * Calendar Enumeration Value. +' */ +Const ENUM_ALL_CALENDARS = &HFFFF ' enumerate all calendars +' +' * Calendar ID Values. +' */ +Const CAL_GREGORIAN = 1 ' Gregorian (localized) calendar +Const CAL_GREGORIAN_US = 2 ' Gregorian (U.S.) calendar +Const CAL_JAPAN = 3 ' Japanese Emperor Era calendar +Const CAL_TAIWAN = 4 ' Taiwan Region Era calendar +Const CAL_KOREA = 5 ' Korean Tangun Era calendar + +' *************************************************************************** Typedefs +' * +' * Define all types for the NLS component here. +' \***************************************************************************/ +' +' * CP Info. +' */ + +Type CPINFO + MaxCharSize As Long ' max length (Byte) of a char + DefaultChar(MAX_DEFAULTCHAR) As Byte ' default character + LeadByte(MAX_LEADBYTES) As Byte ' lead byte ranges +End Type + +Type NUMBERFMT + NumDigits As Long ' number of decimal digits + LeadingZero As Long ' if leading zero in decimal fields + Grouping As Long ' group size left of decimal + lpDecimalSep As String ' ptr to decimal separator string + lpThousandSep As String ' ptr to thousand separator string + NegativeOrder As Long ' negative number ordering +End Type +' +' * Currency format. +' */ + +Type CURRENCYFMT + NumDigits As Long ' number of decimal digits + LeadingZero As Long ' if leading zero in decimal fields + Grouping As Long ' group size left of decimal + lpDecimalSep As String ' ptr to decimal separator string + lpThousandSep As String ' ptr to thousand separator string + NegativeOrder As Long ' negative currency ordering + PositiveOrder As Long ' positive currency ordering + lpCurrencySymbol As String ' ptr to currency symbol string +End Type + +Declare Function EnumTimeFormats Lib "KERNEL32" Alias "EnumTimeFormats" (ByVal lpTimeFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long +Declare Function EnumDateFormats Lib "KERNEL32" Alias "EnumDateFormats" (ByVal lpDateFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long +Declare Function IsValidLocale Lib "KERNEL32" Alias "IsValidLocale" (ByVal Locale As Long, ByVal dwFlags As Long) As Long +Declare Function ConvertDefaultLocale Lib "KERNEL32" Alias "ConvertDefaultLocale" (ByVal Locale As Long) As Long +Declare Function GetThreadLocale Lib "KERNEL32" Alias "GetThreadLocale" () As Long +Declare Function EnumSystemLocales Lib "KERNEL32" Alias "EnumSystemLocales" (ByVal lpLocaleEnumProc As Long, ByVal dwFlags As Long) As Long +Declare Function EnumSystemCodePages Lib "KERNEL32" Alias "EnumSystemCodePages" (ByVal lpCodePageEnumProc As Long, ByVal dwFlags As Long) As Long + +' The following section contains the Public data structures, data types, +' and procedures exported by the NT console subsystem. + +Type COORD + x As Integer + y As Integer +End Type + +Type SMALL_RECT + Left As Integer + Top As Integer + Right As Integer + Bottom As Integer +End Type + +Type KEY_EVENT_RECORD + bKeyDown As Long + wRepeatCount As Integer + wVirtualKeyCode As Integer + wVirtualScanCode As Integer + uChar As Byte + dwControlKeyState As Long +End Type + +' ControlKeyState flags +Const RIGHT_ALT_PRESSED = &H1 ' the right alt key is pressed. +Const LEFT_ALT_PRESSED = &H2 ' the left alt key is pressed. +Const RIGHT_CTRL_PRESSED = &H4 ' the right ctrl key is pressed. +Const LEFT_CTRL_PRESSED = &H8 ' the left ctrl key is pressed. +Const SHIFT_PRESSED = &H10 ' the shift key is pressed. +Const NUMLOCK_ON = &H20 ' the numlock light is on. +Const SCROLLLOCK_ON = &H40 ' the scrolllock light is on. +Const CAPSLOCK_ON = &H80 ' the capslock light is on. +Const ENHANCED_KEY = &H100 ' the key is enhanced. + +Type MOUSE_EVENT_RECORD + dwMousePosition As COORD + dwButtonState As Long + dwControlKeyState As Long + dwEventFlags As Long +End Type + +' ButtonState flags +Const FROM_LEFT_1ST_BUTTON_PRESSED = &H1 +Const RIGHTMOST_BUTTON_PRESSED = &H2 +Const FROM_LEFT_2ND_BUTTON_PRESSED = &H4 +Const FROM_LEFT_3RD_BUTTON_PRESSED = &H8 +Const FROM_LEFT_4TH_BUTTON_PRESSED = &H10 + +' EventFlags +Const MOUSE_MOVED = &H1 +Const DOUBLE_CLICK = &H2 + +Type WINDOW_BUFFER_SIZE_RECORD + dwSize As COORD +End Type + +Type MENU_EVENT_RECORD + dwCommandId As Long +End Type + +Type FOCUS_EVENT_RECORD + bSetFocus As Long +End Type + +' EventType flags: +Const KEY_EVENT = &H1 ' Event contains key event record +Const mouse_eventC = &H2 ' Event contains mouse event record +Const WINDOW_BUFFER_SIZE_EVENT = &H4 ' Event contains window change event record +Const MENU_EVENT = &H8 ' Event contains menu event record +Const FOCUS_EVENT = &H10 ' event contains focus change + +Type CHAR_INFO + Char As Integer + Attributes As Integer +End Type + +' Attributes flags: +Const FOREGROUND_BLUE = &H1 ' text color contains blue. +Const FOREGROUND_GREEN = &H2 ' text color contains green. +Const FOREGROUND_RED = &H4 ' text color contains red. +Const FOREGROUND_INTENSITY = &H8 ' text color is intensified. +Const BACKGROUND_BLUE = &H10 ' background color contains blue. +Const BACKGROUND_GREEN = &H20 ' background color contains green. +Const BACKGROUND_RED = &H40 ' background color contains red. +Const BACKGROUND_INTENSITY = &H80 ' background color is intensified. + +Type CONSOLE_SCREEN_BUFFER_INFO + dwSize As COORD + dwCursorPosition As COORD + wAttributes As Integer + srWindow As SMALL_RECT + dwMaximumWindowSize As COORD +End Type + +Type CONSOLE_CURSOR_INFO + dwSize As Long + bVisible As Long +End Type + +Const CTRL_C_EVENT = 0 +Const CTRL_BREAK_EVENT = 1 +Const CTRL_CLOSE_EVENT = 2 +' 3 is reserved! +' 4 is reserved! +Const CTRL_LOGOFF_EVENT = 5 +Const CTRL_SHUTDOWN_EVENT = 6 + +' Input Mode flags: +Const ENABLE_PROCESSED_INPUT = &H1 +Const ENABLE_LINE_INPUT = &H2 +Const ENABLE_ECHO_INPUT = &H4 +Const ENABLE_WINDOW_INPUT = &H8 +Const ENABLE_MOUSE_INPUT = &H10 + +' Output Mode flags: +Const ENABLE_PROCESSED_OUTPUT = &H1 +Const ENABLE_WRAP_AT_EOL_OUTPUT = &H2 + +Declare Function ReadConsoleOutput Lib "kernel32" Alias "ReadConsoleOutputA" (ByVal hConsoleOutput As Long, lpBuffer As CHAR_INFO, dwBufferSize As COORD, dwBufferCoord As COORD, lpReadRegion As SMALL_RECT) As Long +Declare Function WriteConsoleOutput Lib "kernel32" Alias "WriteConsoleOutputA" (ByVal hConsoleOutput As Long, lpBuffer As CHAR_INFO, dwBufferSize As COORD, dwBufferCoord As COORD, lpWriteRegion As SMALL_RECT) As Long +Declare Function ReadConsoleOutputCharacter Lib "kernel32" Alias "ReadConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal lpCharacter As String, ByVal nLength As Long, dwReadCoord As COORD, lpNumberOfCharsRead As Long) As Long +Declare Function ReadConsoleOutputAttribute Lib "kernel32" Alias "ReadConsoleOutputAttribute" (ByVal hConsoleOutput As Long, lpAttribute As Long, ByVal nLength As Long, dwReadCoord As COORD, lpNumberOfAttrsRead As Long) As Long +Declare Function WriteConsoleOutputCharacter Lib "kernel32" Alias "WriteConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal lpCharacter As String, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfCharsWritten As Long) As Long + +Declare Function WriteConsoleOutputAttribute Lib "kernel32" Alias "WriteConsoleOutputAttribute" (ByVal hConsoleOutput As Long, lpAttribute As Integer, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfAttrsWritten As Long) As Long +Declare Function FillConsoleOutputCharacter Lib "kernel32" Alias "FillConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal cCharacter As Byte, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfCharsWritten As Long) As Long +Declare Function FillConsoleOutputAttribute Lib "kernel32" Alias "FillConsoleOutputAttribute" (ByVal hConsoleOutput As Long, ByVal wAttribute As Long, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfAttrsWritten As Long) As Long +Declare Function GetConsoleMode Lib "kernel32" Alias "GetConsoleMode" (ByVal hConsoleHandle As Long, lpMode As Long) As Long +Declare Function GetNumberOfConsoleInputEvents Lib "kernel32" Alias "GetNumberOfConsoleInputEvents" (ByVal hConsoleInput As Long, lpNumberOfEvents As Long) As Long +Declare Function GetConsoleScreenBufferInfo Lib "kernel32" Alias "GetConsoleScreenBufferInfo" (ByVal hConsoleOutput As Long, lpConsoleScreenBufferInfo As CONSOLE_SCREEN_BUFFER_INFO) As Long +Declare Function GetLargestConsoleWindowSize Lib "kernel32" Alias "GetLargestConsoleWindowSize" (ByVal hConsoleOutput As Long) As COORD +Declare Function GetConsoleCursorInfo Lib "kernel32" Alias "GetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long +Declare Function GetNumberOfConsoleMouseButtons Lib "kernel32" Alias "GetNumberOfConsoleMouseButtons" (lpNumberOfMouseButtons As Long) As Long +Declare Function SetConsoleMode Lib "kernel32" Alias "SetConsoleMode" (ByVal hConsoleHandle As Long, ByVal dwMode As Long) As Long +Declare Function SetConsoleActiveScreenBuffer Lib "kernel32" Alias "SetConsoleActiveScreenBuffer" (ByVal hConsoleOutput As Long) As Long +Declare Function FlushConsoleInputBuffer Lib "kernel32" Alias "FlushConsoleInputBuffer" (ByVal hConsoleInput As Long) As Long +Declare Function SetConsoleScreenBufferSize Lib "kernel32" Alias "SetConsoleScreenBufferSize" (ByVal hConsoleOutput As Long, dwSize As COORD) As Long +Declare Function SetConsoleCursorPosition Lib "kernel32" Alias "SetConsoleCursorPosition" (ByVal hConsoleOutput As Long, dwCursorPosition As COORD) As Long +Declare Function SetConsoleCursorInfo Lib "kernel32" Alias "SetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long +Declare Function ScrollConsoleScreenBuffer Lib "kernel32" Alias "ScrollConsoleScreenBufferA" (ByVal hConsoleOutput As Long, lpScrollRectangle As SMALL_RECT, lpClipRectangle As SMALL_RECT, dwDestinationOrigin As COORD, lpFill As CHAR_INFO) As Long +Declare Function SetConsoleWindowInfo Lib "kernel32" Alias "SetConsoleWindowInfo" (ByVal hConsoleOutput As Long, ByVal bAbsolute As Long, lpConsoleWindow As SMALL_RECT) As Long +Declare Function SetConsoleTextAttribute Lib "kernel32" Alias "SetConsoleTextAttribute" (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long +Declare Function SetConsoleCtrlHandler Lib "kernel32" Alias "SetConsoleCtrlHandler" (ByVal HandlerRoutine As Long, ByVal Add As Long) As Long +Declare Function GenerateConsoleCtrlEvent Lib "kernel32" Alias "GenerateConsoleCtrlEvent" (ByVal dwCtrlEvent As Long, ByVal dwProcessGroupId As Long) As Long +Declare Function AllocConsole Lib "kernel32" Alias "AllocConsole" () As Long +Declare Function FreeConsole Lib "kernel32" Alias "FreeConsole" () As Long +Declare Function GetConsoleTitle Lib "kernel32" Alias "GetConsoleTitleA" (ByVal lpConsoleTitle As String, ByVal nSize As Long) As Long +Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA" (ByVal lpConsoleTitle As String) As Long +Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" (ByVal hConsoleInput As Long, lpBuffer As Any, ByVal nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long +Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long + +Const CONSOLE_TEXTMODE_BUFFER = 1 + +Declare Function CreateConsoleScreenBuffer Lib "kernel32" Alias "CreateConsoleScreenBuffer" (ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwFlags As Long, lpScreenBufferData As Any) As Long +Declare Function GetConsoleCP Lib "kernel32" Alias "GetConsoleCP" () As Long +Declare Function SetConsoleCP Lib "kernel32" Alias "SetConsoleCP" (ByVal wCodePageID As Long) As Long +Declare Function GetConsoleOutputCP Lib "kernel32" Alias "GetConsoleOutputCP" () As Long +Declare Function SetConsoleOutputCP Lib "kernel32" Alias "SetConsoleOutputCP" (ByVal wCodePageID As Long) As Long + + +' ------------- +' GDI Section +' ------------- + +' Binary raster ops +Const R2_BLACK = 1 ' 0 +Const R2_NOTMERGEPEN = 2 ' DPon +Const R2_MASKNOTPEN = 3 ' DPna +Const R2_NOTCOPYPEN = 4 ' PN +Const R2_MASKPENNOT = 5 ' PDna +Const R2_NOT = 6 ' Dn +Const R2_XORPEN = 7 ' DPx +Const R2_NOTMASKPEN = 8 ' DPan +Const R2_MASKPEN = 9 ' DPa +Const R2_NOTXORPEN = 10 ' DPxn +Const R2_NOP = 11 ' D +Const R2_MERGENOTPEN = 12 ' DPno +Const R2_COPYPEN = 13 ' P +Const R2_MERGEPENNOT = 14 ' PDno +Const R2_MERGEPEN = 15 ' DPo +Const R2_WHITE = 16 ' 1 +Const R2_LAST = 16 + +' Ternary raster operations +Const SRCCOPY = &HCC0020 ' (DWORD) dest = source +Const SRCPAINT = &HEE0086 ' (DWORD) dest = source OR dest +Const SRCAND = &H8800C6 ' (DWORD) dest = source AND dest +Const SRCINVERT = &H660046 ' (DWORD) dest = source XOR dest +Const SRCERASE = &H440328 ' (DWORD) dest = source AND (NOT dest ) +Const NOTSRCCOPY = &H330008 ' (DWORD) dest = (NOT source) +Const NOTSRCERASE = &H1100A6 ' (DWORD) dest = (NOT src) AND (NOT dest) +Const MERGECOPY = &HC000CA ' (DWORD) dest = (source AND pattern) +Const MERGEPAINT = &HBB0226 ' (DWORD) dest = (NOT source) OR dest +Const PATCOPY = &HF00021 ' (DWORD) dest = pattern +Const PATPAINT = &HFB0A09 ' (DWORD) dest = DPSnoo +Const PATINVERT = &H5A0049 ' (DWORD) dest = pattern XOR dest +Const DSTINVERT = &H550009 ' (DWORD) dest = (NOT dest) +Const BLACKNESS = &H42 ' (DWORD) dest = BLACK +Const WHITENESS = &HFF0062 ' (DWORD) dest = WHITE + +Const GDI_ERROR = &HFFFF +Const HGDI_ERROR = &HFFFF + +' Region Flags +Const ERRORAPI = 0 +Const NULLREGION = 1 +Const SIMPLEREGION = 2 +Const COMPLEXREGION = 3 + +' CombineRgn() Styles +Const RGN_AND = 1 +Const RGN_OR = 2 +Const RGN_XOR = 3 +Const RGN_DIFF = 4 +Const RGN_COPY = 5 +Const RGN_MIN = RGN_AND +Const RGN_MAX = RGN_COPY + +' StretchBlt() Modes +Const BLACKONWHITE = 1 +Const WHITEONBLACK = 2 +Const COLORONCOLOR = 3 +Const HALFTONE = 4 +Const MAXSTRETCHBLTMODE = 4 + +' PolyFill() Modes +Const ALTERNATE = 1 +Const WINDING = 2 +Const POLYFILL_LAST = 2 + +' Text Alignment Options +Const TA_NOUPDATECP = 0 +Const TA_UPDATECP = 1 + +Const TA_LEFT = 0 +Const TA_RIGHT = 2 +Const TA_CENTER = 6 + +Const TA_TOP = 0 +Const TA_BOTTOM = 8 +Const TA_BASELINE = 24 +Const TA_MASK = (TA_BASELINE + TA_CENTER + TA_UPDATECP) + +Const VTA_BASELINE = TA_BASELINE +Const VTA_LEFT = TA_BOTTOM +Const VTA_RIGHT = TA_TOP +Const VTA_CENTER = TA_CENTER +Const VTA_BOTTOM = TA_RIGHT +Const VTA_TOP = TA_LEFT + +Const ETO_GRAYED = 1 +Const ETO_OPAQUE = 2 +Const ETO_CLIPPED = 4 + +Const ASPECT_FILTERING = &H1 + +Const DCB_RESET = &H1 +Const DCB_ACCUMULATE = &H2 +Const DCB_DIRTY = DCB_ACCUMULATE +Const DCB_SET = (DCB_RESET Or DCB_ACCUMULATE) +Const DCB_ENABLE = &H4 +Const DCB_DISABLE = &H8 + +' Metafile Functions +Const META_SETBKCOLOR = &H201 +Const META_SETBKMODE = &H102 +Const META_SETMAPMODE = &H103 +Const META_SETROP2 = &H104 +Const META_SETRELABS = &H105 +Const META_SETPOLYFILLMODE = &H106 +Const META_SETSTRETCHBLTMODE = &H107 +Const META_SETTEXTCHAREXTRA = &H108 +Const META_SETTEXTCOLOR = &H209 +Const META_SETTEXTJUSTIFICATION = &H20A +Const META_SETWINDOWORG = &H20B +Const META_SETWINDOWEXT = &H20C +Const META_SETVIEWPORTORG = &H20D +Const META_SETVIEWPORTEXT = &H20E +Const META_OFFSETWINDOWORG = &H20F +Const META_SCALEWINDOWEXT = &H410 +Const META_OFFSETVIEWPORTORG = &H211 +Const META_SCALEVIEWPORTEXT = &H412 +Const META_LINETO = &H213 +Const META_MOVETO = &H214 +Const META_EXCLUDECLIPRECT = &H415 +Const META_INTERSECTCLIPRECT = &H416 +Const META_ARC = &H817 +Const META_ELLIPSE = &H418 +Const META_FLOODFILL = &H419 +Const META_PIE = &H81A +Const META_RECTANGLE = &H41B +Const META_ROUNDRECT = &H61C +Const META_PATBLT = &H61D +Const META_SAVEDC = &H1E +Const META_SETPIXEL = &H41F +Const META_OFFSETCLIPRGN = &H220 +Const META_TEXTOUT = &H521 +Const META_BITBLT = &H922 +Const META_STRETCHBLT = &HB23 +Const META_POLYGON = &H324 +Const META_POLYLINE = &H325 +Const META_ESCAPE = &H626 +Const META_RESTOREDC = &H127 +Const META_FILLREGION = &H228 +Const META_FRAMEREGION = &H429 +Const META_INVERTREGION = &H12A +Const META_PAINTREGION = &H12B +Const META_SELECTCLIPREGION = &H12C +Const META_SELECTOBJECT = &H12D +Const META_SETTEXTALIGN = &H12E +Const META_CHORD = &H830 +Const META_SETMAPPERFLAGS = &H231 +Const META_EXTTEXTOUT = &HA32 +Const META_SETDIBTODEV = &HD33 +Const META_SELECTPALETTE = &H234 +Const META_REALIZEPALETTE = &H35 +Const META_ANIMATEPALETTE = &H436 +Const META_SETPALENTRIES = &H37 +Const META_POLYPOLYGON = &H538 +Const META_RESIZEPALETTE = &H139 +Const META_DIBBITBLT = &H940 +Const META_DIBSTRETCHBLT = &HB41 +Const META_DIBCREATEPATTERNBRUSH = &H142 +Const META_STRETCHDIB = &HF43 +Const META_EXTFLOODFILL = &H548 +Const META_DELETEOBJECT = &H1F0 +Const META_CREATEPALETTE = &HF7 +Const META_CREATEPATTERNBRUSH = &H1F9 +Const META_CREATEPENINDIRECT = &H2FA +Const META_CREATEFONTINDIRECT = &H2FB +Const META_CREATEBRUSHINDIRECT = &H2FC +Const META_CREATEREGION = &H6FF + + +' GDI Escapes +Const NEWFRAME = 1 +Const AbortDocC = 2 +Const NEXTBAND = 3 +Const SETCOLORTABLE = 4 +Const GETCOLORTABLE = 5 +Const FLUSHOUTPUT = 6 +Const DRAFTMODE = 7 +Const QUERYESCSUPPORT = 8 +Const SETABORTPROC = 9 +Const StartDocC = 10 +Const EndDocC = 11 +Const GETPHYSPAGESIZE = 12 +Const GETPRINTINGOFFSET = 13 +Const GETSCALINGFACTOR = 14 +Const MFCOMMENT = 15 +Const GETPENWIDTH = 16 +Const SETCOPYCOUNT = 17 +Const SELECTPAPERSOURCE = 18 +Const DEVICEDATA = 19 +Const PASSTHROUGH = 19 +Const GETTECHNOLGY = 20 +Const GETTECHNOLOGY = 20 +Const SETLINECAP = 21 +Const SETLINEJOIN = 22 +Const SetMiterLimitC = 23 +Const BANDINFO = 24 +Const DRAWPATTERNRECT = 25 +Const GETVECTORPENSIZE = 26 +Const GETVECTORBRUSHSIZE = 27 +Const ENABLEDUPLEX = 28 +Const GETSETPAPERBINS = 29 +Const GETSETPRINTORIENT = 30 +Const ENUMPAPERBINS = 31 +Const SETDIBSCALING = 32 +Const EPSPRINTING = 33 +Const ENUMPAPERMETRICS = 34 +Const GETSETPAPERMETRICS = 35 +Const POSTSCRIPT_DATA = 37 +Const POSTSCRIPT_IGNORE = 38 +Const MOUSETRAILS = 39 +Const GETDEVICEUNITS = 42 + +Const GETEXTENDEDTEXTMETRICS = 256 +Const GETEXTENTTABLE = 257 +Const GETPAIRKERNTABLE = 258 +Const GETTRACKKERNTABLE = 259 +Const ExtTextOutC = 512 +Const GETFACENAME = 513 +Const DOWNLOADFACE = 514 +Const ENABLERELATIVEWIDTHS = 768 +Const ENABLEPAIRKERNING = 769 +Const SETKERNTRACK = 770 +Const SETALLJUSTVALUES = 771 +Const SETCHARSET = 772 + +Const StretchBltC = 2048 +Const GETSETSCREENPARAMS = 3072 +Const BEGIN_PATH = 4096 +Const CLIP_TO_PATH = 4097 +Const END_PATH = 4098 +Const EXT_DEVICE_CAPS = 4099 +Const RESTORE_CTM = 4100 +Const SAVE_CTM = 4101 +Const SET_ARC_DIRECTION = 4102 +Const SET_BACKGROUND_COLOR = 4103 +Const SET_POLY_MODE = 4104 +Const SET_SCREEN_ANGLE = 4105 +Const SET_SPREAD = 4106 +Const TRANSFORM_CTM = 4107 +Const SET_CLIP_BOX = 4108 +Const SET_BOUNDS = 4109 +Const SET_MIRROR_MODE = 4110 +Const OPENCHANNEL = 4110 +Const DOWNLOADHEADER = 4111 +Const CLOSECHANNEL = 4112 +Const POSTSCRIPT_PASSTHROUGH = 4115 +Const ENCAPSULATED_POSTSCRIPT = 4116 + +' Spooler Error Codes +Const SP_NOTREPORTED = &H4000 +Const SP_ERROR = (-1) +Const SP_APPABORT = (-2) +Const SP_USERABORT = (-3) +Const SP_OUTOFDISK = (-4) +Const SP_OUTOFMEMORY = (-5) + +Const PR_JOBSTATUS = &H0 + +' Object Definitions for EnumObjects() +Const OBJ_PEN = 1 +Const OBJ_BRUSH = 2 +Const OBJ_DC = 3 +Const OBJ_METADC = 4 +Const OBJ_PAL = 5 +Const OBJ_FONT = 6 +Const OBJ_BITMAP = 7 +Const OBJ_REGION = 8 +Const OBJ_METAFILE = 9 +Const OBJ_MEMDC = 10 +Const OBJ_EXTPEN = 11 +Const OBJ_ENHMETADC = 12 +Const OBJ_ENHMETAFILE = 13 + +' xform stuff +Const MWT_IDENTITY = 1 +Const MWT_LEFTMULTIPLY = 2 +Const MWT_RIGHTMULTIPLY = 3 + +Const MWT_MIN = MWT_IDENTITY +Const MWT_MAX = MWT_RIGHTMULTIPLY + +Type XFORM + eM11 As Double + eM12 As Double + eM21 As Double + eM22 As Double + eDx As Double + eDy As Double +End Type + +' Bitmap Header Definition +Type BITMAP '14 bytes + bmType As Long + bmWidth As Long + bmHeight As Long + bmWidthBytes As Long + bmPlanes As Integer + bmBitsPixel As Integer + bmBits As Long +End Type + +Type RGBTRIPLE + rgbtBlue As Byte + rgbtGreen As Byte + rgbtRed As Byte +End Type + +Type RGBQUAD + rgbBlue As Byte + rgbGreen As Byte + rgbRed As Byte + rgbReserved As Byte +End Type + +' structures for defining DIBs +Type BITMAPCOREHEADER '12 bytes + bcSize As Long + bcWidth As Integer + bcHeight As Integer + bcPlanes As Integer + bcBitCount As Integer +End Type + +Type BITMAPINFOHEADER '40 bytes + biSize As Long + biWidth As Long + biHeight As Long + biPlanes As Integer + biBitCount As Integer + biCompression As Long + biSizeImage As Long + biXPelsPerMeter As Long + biYPelsPerMeter As Long + biClrUsed As Long + biClrImportant As Long +End Type + +' constants for the biCompression field +Const BI_RGB = 0& +Const BI_RLE8 = 1& +Const BI_RLE4 = 2& +Const BI_bitfields = 3& + +Type BITMAPINFO + bmiHeader As BITMAPINFOHEADER + bmiColors As RGBQUAD +End Type + +Type BITMAPCOREINFO + bmciHeader As BITMAPCOREHEADER + bmciColors As RGBTRIPLE +End Type + +Type BITMAPFILEHEADER + bfType As Integer + bfSize As Long + bfReserved1 As Integer + bfReserved2 As Integer + bfOffBits As Long +End Type + + +' Clipboard Metafile Picture Structure +Type HANDLETABLE + objectHandle(1) As Long +End Type + +Type METARECORD + rdSize As Long + rdFunction As Integer + rdParm(1) As Integer +End Type + + +Type METAFILEPICT + mm As Long + xExt As Long + yExt As Long + hMF As Long +End Type + +Type METAHEADER + mtType As Integer + mtHeaderSize As Integer + mtVersion As Integer + mtSize As Long + mtNoObjects As Integer + mtMaxRecord As Long + mtNoParameters As Integer +End Type + +Type ENHMETARECORD + iType As Long + nSize As Long + dParm(1) As Long +End Type + +Type SIZEL + cx As Long + cy As Long +End Type + +Type ENHMETAHEADER + iType As Long + nSize As Long + rclBounds As RECTL + rclFrame As RECTL + dSignature As Long + nVersion As Long + nBytes As Long + nRecords As Long + nHandles As Integer + sReserved As Integer + nDescription As Long + offDescription As Long + nPalEntries As Long + szlDevice As SIZEL + szlMillimeters As SIZEL +End Type + +Type TEXTMETRIC + tmHeight As Long + tmAscent As Long + tmDescent As Long + tmInternalLeading As Long + tmExternalLeading As Long + tmAveCharWidth As Long + tmMaxCharWidth As Long + tmWeight As Long + tmOverhang As Long + tmDigitizedAspectX As Long + tmDigitizedAspectY As Long + tmFirstChar As Byte + tmLastChar As Byte + tmDefaultChar As Byte + tmBreakChar As Byte + tmItalic As Byte + tmUnderlined As Byte + tmStruckOut As Byte + tmPitchAndFamily As Byte + tmCharSet As Byte +End Type + +' ntmFlags field flags +Const NTM_REGULAR = &H40& +Const NTM_BOLD = &H20& +Const NTM_ITALIC = &H1& + +' Structure passed to FONTENUMPROC +' NOTE: NEWTEXTMETRIC is the same as TEXTMETRIC plus 4 new fields +Type NEWTEXTMETRIC + tmHeight As Long + tmAscent As Long + tmDescent As Long + tmInternalLeading As Long + tmExternalLeading As Long + tmAveCharWidth As Long + tmMaxCharWidth As Long + tmWeight As Long + tmOverhang As Long + tmDigitizedAspectX As Long + tmDigitizedAspectY As Long + tmFirstChar As Byte + tmLastChar As Byte + tmDefaultChar As Byte + tmBreakChar As Byte + tmItalic As Byte + tmUnderlined As Byte + tmStruckOut As Byte + tmPitchAndFamily As Byte + tmCharSet As Byte + ntmFlags As Long + ntmSizeEM As Long + ntmCellHeight As Long + ntmAveWidth As Long +End Type + +' tmPitchAndFamily flags +Const TMPF_FIXED_PITCH = &H1 +Const TMPF_VECTOR = &H2 +Const TMPF_DEVICE = &H8 +Const TMPF_TRUETYPE = &H4 + + +' GDI Logical Objects: + +Type PELARRAY + paXCount As Long + paYCount As Long + paXExt As Long + paYExt As Long + paRGBs As Integer +End Type + +' Logical Brush (or Pattern) +Type LOGBRUSH + lbStyle As Long + lbColor As Long + lbHatch As Long +End Type + +' Logical Pen +Type LOGPEN + lopnStyle As Long + lopnWidth As POINTAPI + lopnColor As Long +End Type + +Type EXTLOGPEN + elpPenStyle As Long + elpWidth As Long + elpBrushStyle As Long + elpColor As Long + elpHatch As Long + elpNumEntries As Long + elpStyleEntry(1) As Long +End Type + +Type PALETTEENTRY + peRed As Byte + peGreen As Byte + peBlue As Byte + peFlags As Byte +End Type + +' Logical Palette +Type LOGPALETTE + palVersion As Integer + palNumEntries As Integer + palPalEntry(1) As PALETTEENTRY +End Type + +' Logical Font +Const LF_FACESIZE = 32 +Const LF_FULLFACESIZE = 64 + +Type LOGFONT + lfHeight As Long + lfWidth As Long + lfEscapement As Long + lfOrientation As Long + lfWeight As Long + lfItalic As Byte + lfUnderline As Byte + lfStrikeOut As Byte + lfCharSet As Byte + lfOutPrecision As Byte + lfClipPrecision As Byte + lfQuality As Byte + lfPitchAndFamily As Byte + lfFaceName(1 To LF_FACESIZE) As Byte +End Type + +Type NONCLIENTMETRICS + cbSize As Long + iBorderWidth As Long + iScrollWidth As Long + iScrollHeight As Long + iCaptionWidth As Long + iCaptionHeight As Long + lfCaptionFont As LOGFONT + iSMCaptionWidth As Long + iSMCaptionHeight As Long + lfSMCaptionFont As LOGFONT + iMenuWidth As Long + iMenuHeight As Long + lfMenuFont As LOGFONT + lfStatusFont As LOGFONT + lfMessageFont As LOGFONT +End Type + +Type ENUMLOGFONT + elfLogFont As LOGFONT + elfFullName(LF_FULLFACESIZE) As Byte + elfStyle(LF_FACESIZE) As Byte +End Type + +Const OUT_DEFAULT_PRECIS = 0 +Const OUT_STRING_PRECIS = 1 +Const OUT_CHARACTER_PRECIS = 2 +Const OUT_STROKE_PRECIS = 3 +Const OUT_TT_PRECIS = 4 +Const OUT_DEVICE_PRECIS = 5 +Const OUT_RASTER_PRECIS = 6 +Const OUT_TT_ONLY_PRECIS = 7 +Const OUT_OUTLINE_PRECIS = 8 + +Const CLIP_DEFAULT_PRECIS = 0 +Const CLIP_CHARACTER_PRECIS = 1 +Const CLIP_STROKE_PRECIS = 2 +Const CLIP_MASK = &HF +Const CLIP_LH_ANGLES = 16 +Const CLIP_TT_ALWAYS = 32 +Const CLIP_EMBEDDED = 128 + +Const DEFAULT_QUALITY = 0 +Const DRAFT_QUALITY = 1 +Const PROOF_QUALITY = 2 + +Const DEFAULT_PITCH = 0 +Const FIXED_PITCH = 1 +Const VARIABLE_PITCH = 2 + +Const ANSI_CHARSET = 0 +Const DEFAULT_CHARSET = 1 +Const SYMBOL_CHARSET = 2 +Const SHIFTJIS_CHARSET = 128 +Const HANGEUL_CHARSET = 129 +Const CHINESEBIG5_CHARSET = 136 +Const OEM_CHARSET = 255 + +' Font Families +' +Const FF_DONTCARE = 0 ' Don't care or don't know. +Const FF_ROMAN = 16 ' Variable stroke width, serifed. + +' Times Roman, Century Schoolbook, etc. +Const FF_SWISS = 32 ' Variable stroke width, sans-serifed. + +' Helvetica, Swiss, etc. +Const FF_MODERN = 48 ' Constant stroke width, serifed or sans-serifed. + +' Pica, Elite, Courier, etc. +Const FF_SCRIPT = 64 ' Cursive, etc. +Const FF_DECORATIVE = 80 ' Old English, etc. + +' Font Weights +Const FW_DONTCARE = 0 +Const FW_THIN = 100 +Const FW_EXTRALIGHT = 200 +Const FW_LIGHT = 300 +Const FW_NORMAL = 400 +Const FW_MEDIUM = 500 +Const FW_SEMIBOLD = 600 +Const FW_BOLD = 700 +Const FW_EXTRABOLD = 800 +Const FW_HEAVY = 900 + +Const FW_ULTRALIGHT = FW_EXTRALIGHT +Const FW_REGULAR = FW_NORMAL +Const FW_DEMIBOLD = FW_SEMIBOLD +Const FW_ULTRABOLD = FW_EXTRABOLD +Const FW_BLACK = FW_HEAVY + +Const PANOSE_COUNT = 10 +Const PAN_FAMILYTYPE_INDEX = 0 +Const PAN_SERIFSTYLE_INDEX = 1 +Const PAN_WEIGHT_INDEX = 2 +Const PAN_PROPORTION_INDEX = 3 +Const PAN_CONTRAST_INDEX = 4 +Const PAN_STROKEVARIATION_INDEX = 5 +Const PAN_ARMSTYLE_INDEX = 6 +Const PAN_LETTERFORM_INDEX = 7 +Const PAN_MIDLINE_INDEX = 8 +Const PAN_XHEIGHT_INDEX = 9 + +Const PAN_CULTURE_LATIN = 0 + +Type PANOSE + ulculture As Long + bFamilyType As Byte + bSerifStyle As Byte + bWeight As Byte + bProportion As Byte + bContrast As Byte + bStrokeVariation As Byte + bArmStyle As Byte + bLetterform As Byte + bMidline As Byte + bXHeight As Byte +End Type + +Const PAN_ANY = 0 ' Any +Const PAN_NO_FIT = 1 ' No Fit + +Const PAN_FAMILY_TEXT_DISPLAY = 2 ' Text and Display +Const PAN_FAMILY_SCRIPT = 3 ' Script +Const PAN_FAMILY_DECORATIVE = 4 ' Decorative +Const PAN_FAMILY_PICTORIAL = 5 ' Pictorial + +Const PAN_SERIF_COVE = 2 ' Cove +Const PAN_SERIF_OBTUSE_COVE = 3 ' Obtuse Cove +Const PAN_SERIF_SQUARE_COVE = 4 ' Square Cove +Const PAN_SERIF_OBTUSE_SQUARE_COVE = 5 ' Obtuse Square Cove +Const PAN_SERIF_SQUARE = 6 ' Square +Const PAN_SERIF_THIN = 7 ' Thin +Const PAN_SERIF_BONE = 8 ' Bone +Const PAN_SERIF_EXAGGERATED = 9 ' Exaggerated +Const PAN_SERIF_TRIANGLE = 10 ' Triangle +Const PAN_SERIF_NORMAL_SANS = 11 ' Normal Sans +Const PAN_SERIF_OBTUSE_SANS = 12 ' Obtuse Sans +Const PAN_SERIF_PERP_SANS = 13 ' Prep Sans +Const PAN_SERIF_FLARED = 14 ' Flared +Const PAN_SERIF_ROUNDED = 15 ' Rounded + +Const PAN_WEIGHT_VERY_LIGHT = 2 ' Very Light +Const PAN_WEIGHT_LIGHT = 3 ' Light +Const PAN_WEIGHT_THIN = 4 ' Thin +Const PAN_WEIGHT_BOOK = 5 ' Book +Const PAN_WEIGHT_MEDIUM = 6 ' Medium +Const PAN_WEIGHT_DEMI = 7 ' Demi +Const PAN_WEIGHT_BOLD = 8 ' Bold +Const PAN_WEIGHT_HEAVY = 9 ' Heavy +Const PAN_WEIGHT_BLACK = 10 ' Black +Const PAN_WEIGHT_NORD = 11 ' Nord + +Const PAN_PROP_OLD_STYLE = 2 ' Old Style +Const PAN_PROP_MODERN = 3 ' Modern +Const PAN_PROP_EVEN_WIDTH = 4 ' Even Width +Const PAN_PROP_EXPANDED = 5 ' Expanded +Const PAN_PROP_CONDENSED = 6 ' Condensed +Const PAN_PROP_VERY_EXPANDED = 7 ' Very Expanded +Const PAN_PROP_VERY_CONDENSED = 8 ' Very Condensed +Const PAN_PROP_MONOSPACED = 9 ' Monospaced + +Const PAN_CONTRAST_NONE = 2 ' None +Const PAN_CONTRAST_VERY_LOW = 3 ' Very Low +Const PAN_CONTRAST_LOW = 4 ' Low +Const PAN_CONTRAST_MEDIUM_LOW = 5 ' Medium Low +Const PAN_CONTRAST_MEDIUM = 6 ' Medium +Const PAN_CONTRAST_MEDIUM_HIGH = 7 ' Mediim High +Const PAN_CONTRAST_HIGH = 8 ' High +Const PAN_CONTRAST_VERY_HIGH = 9 ' Very High + +Const PAN_STROKE_GRADUAL_DIAG = 2 ' Gradual/Diagonal +Const PAN_STROKE_GRADUAL_TRAN = 3 ' Gradual/Transitional +Const PAN_STROKE_GRADUAL_VERT = 4 ' Gradual/Vertical +Const PAN_STROKE_GRADUAL_HORZ = 5 ' Gradual/Horizontal +Const PAN_STROKE_RAPID_VERT = 6 ' Rapid/Vertical +Const PAN_STROKE_RAPID_HORZ = 7 ' Rapid/Horizontal +Const PAN_STROKE_INSTANT_VERT = 8 ' Instant/Vertical + +Const PAN_STRAIGHT_ARMS_HORZ = 2 ' Straight Arms/Horizontal +Const PAN_STRAIGHT_ARMS_WEDGE = 3 ' Straight Arms/Wedge +Const PAN_STRAIGHT_ARMS_VERT = 4 ' Straight Arms/Vertical +Const PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 ' Straight Arms/Single-Serif +Const PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 ' Straight Arms/Double-Serif +Const PAN_BENT_ARMS_HORZ = 7 ' Non-Straight Arms/Horizontal +Const PAN_BENT_ARMS_WEDGE = 8 ' Non-Straight Arms/Wedge +Const PAN_BENT_ARMS_VERT = 9 ' Non-Straight Arms/Vertical +Const PAN_BENT_ARMS_SINGLE_SERIF = 10 ' Non-Straight Arms/Single-Serif +Const PAN_BENT_ARMS_DOUBLE_SERIF = 11 ' Non-Straight Arms/Double-Serif + +Const PAN_LETT_NORMAL_CONTACT = 2 ' Normal/Contact +Const PAN_LETT_NORMAL_WEIGHTED = 3 ' Normal/Weighted +Const PAN_LETT_NORMAL_BOXED = 4 ' Normal/Boxed +Const PAN_LETT_NORMAL_FLATTENED = 5 ' Normal/Flattened +Const PAN_LETT_NORMAL_ROUNDED = 6 ' Normal/Rounded +Const PAN_LETT_NORMAL_OFF_CENTER = 7 ' Normal/Off Center +Const PAN_LETT_NORMAL_SQUARE = 8 ' Normal/Square +Const PAN_LETT_OBLIQUE_CONTACT = 9 ' Oblique/Contact +Const PAN_LETT_OBLIQUE_WEIGHTED = 10 ' Oblique/Weighted +Const PAN_LETT_OBLIQUE_BOXED = 11 ' Oblique/Boxed +Const PAN_LETT_OBLIQUE_FLATTENED = 12 ' Oblique/Flattened +Const PAN_LETT_OBLIQUE_ROUNDED = 13 ' Oblique/Rounded +Const PAN_LETT_OBLIQUE_OFF_CENTER = 14 ' Oblique/Off Center +Const PAN_LETT_OBLIQUE_SQUARE = 15 ' Oblique/Square + +Const PAN_MIDLINE_STANDARD_TRIMMED = 2 ' Standard/Trimmed +Const PAN_MIDLINE_STANDARD_POINTED = 3 ' Standard/Pointed +Const PAN_MIDLINE_STANDARD_SERIFED = 4 ' Standard/Serifed +Const PAN_MIDLINE_HIGH_TRIMMED = 5 ' High/Trimmed +Const PAN_MIDLINE_HIGH_POINTED = 6 ' High/Pointed +Const PAN_MIDLINE_HIGH_SERIFED = 7 ' High/Serifed +Const PAN_MIDLINE_CONSTANT_TRIMMED = 8 ' Constant/Trimmed +Const PAN_MIDLINE_CONSTANT_POINTED = 9 ' Constant/Pointed +Const PAN_MIDLINE_CONSTANT_SERIFED = 10 ' Constant/Serifed +Const PAN_MIDLINE_LOW_TRIMMED = 11 ' Low/Trimmed +Const PAN_MIDLINE_LOW_POINTED = 12 ' Low/Pointed +Const PAN_MIDLINE_LOW_SERIFED = 13 ' Low/Serifed + +Const PAN_XHEIGHT_CONSTANT_SMALL = 2 ' Constant/Small +Const PAN_XHEIGHT_CONSTANT_STD = 3 ' Constant/Standard +Const PAN_XHEIGHT_CONSTANT_LARGE = 4 ' Constant/Large +Const PAN_XHEIGHT_DUCKING_SMALL = 5 ' Ducking/Small +Const PAN_XHEIGHT_DUCKING_STD = 6 ' Ducking/Standard +Const PAN_XHEIGHT_DUCKING_LARGE = 7 ' Ducking/Large + +Const ELF_VENDOR_SIZE = 4 + +Type EXTLOGFONT + elfLogFont As LOGFONT + elfFullName(LF_FULLFACESIZE) As Byte + elfStyle(LF_FACESIZE) As Byte + elfVersion As Long + elfStyleSize As Long + elfMatch As Long + elfReserved As Long + elfVendorId(ELF_VENDOR_SIZE) As Byte + elfCulture As Long + elfPanose As PANOSE +End Type + +Const ELF_VERSION = 0 +Const ELF_CULTURE_LATIN = 0 + +' EnumFonts Masks +Const RASTER_FONTTYPE = &H1 +Const DEVICE_FONTTYPE = &H2 +Const TRUETYPE_FONTTYPE = &H4 + +' palette entry flags +Const PC_RESERVED = &H1 ' palette index used for animation +Const PC_EXPLICIT = &H2 ' palette index is explicit to device +Const PC_NOCOLLAPSE = &H4 ' do not match color to system palette + +' Background Modes +Const TRANSPARENT = 1 +Const OPAQUE = 2 +Const BKMODE_LAST = 2 + +' Graphics Modes +Const GM_COMPATIBLE = 1 +Const GM_ADVANCED = 2 +Const GM_LAST = 2 + +' PolyDraw and GetPath point types +Const PT_CLOSEFIGURE = &H1 +Const PT_LINETO = &H2 +Const PT_BEZIERTO = &H4 +Const PT_MOVETO = &H6 + +' Mapping Modes +Const MM_TEXT = 1 +Const MM_LOMETRIC = 2 +Const MM_HIMETRIC = 3 +Const MM_LOENGLISH = 4 +Const MM_HIENGLISH = 5 +Const MM_TWIPS = 6 +Const MM_ISOTROPIC = 7 +Const MM_ANISOTROPIC = 8 + +' Min and Max Mapping Mode values +Const MM_MIN = MM_TEXT +Const MM_MAX = MM_ANISOTROPIC +Const MM_MAX_FIXEDSCALE = MM_TWIPS + +' Coordinate Modes +Const ABSOLUTE = 1 +Const RELATIVE = 2 + +' Stock Logical Objects +Const WHITE_BRUSH = 0 +Const LTGRAY_BRUSH = 1 +Const GRAY_BRUSH = 2 +Const DKGRAY_BRUSH = 3 +Const BLACK_BRUSH = 4 +Const NULL_BRUSH = 5 +Const HOLLOW_BRUSH = NULL_BRUSH +Const WHITE_PEN = 6 +Const BLACK_PEN = 7 +Const NULL_PEN = 8 +Const OEM_FIXED_FONT = 10 +Const ANSI_FIXED_FONT = 11 +Const ANSI_VAR_FONT = 12 +Const SYSTEM_FONT = 13 +Const DEVICE_DEFAULT_FONT = 14 +Const DEFAULT_PALETTE = 15 +Const SYSTEM_FIXED_FONT = 16 +Const STOCK_LAST = 16 + +Const CLR_INVALID = &HFFFF + +' Brush Styles +Const BS_SOLID = 0 +Const BS_NULL = 1 +Const BS_HOLLOW = BS_NULL +Const BS_HATCHED = 2 +Const BS_PATTERN = 3 +Const BS_INDEXED = 4 +Const BS_DIBPATTERN = 5 +Const BS_DIBPATTERNPT = 6 +Const BS_PATTERN8X8 = 7 +Const BS_DIBPATTERN8X8 = 8 + +' Hatch Styles +Const HS_HORIZONTAL = 0 ' ----- +Const HS_VERTICAL = 1 ' ||||| +Const HS_FDIAGONAL = 2 ' \\\\\ +Const HS_BDIAGONAL = 3 ' ///// +Const HS_CROSS = 4 ' +++++ +Const HS_DIAGCROSS = 5 ' xxxxx +Const HS_FDIAGONAL1 = 6 +Const HS_BDIAGONAL1 = 7 +Const HS_SOLID = 8 +Const HS_DENSE1 = 9 +Const HS_DENSE2 = 10 +Const HS_DENSE3 = 11 +Const HS_DENSE4 = 12 +Const HS_DENSE5 = 13 +Const HS_DENSE6 = 14 +Const HS_DENSE7 = 15 +Const HS_DENSE8 = 16 +Const HS_NOSHADE = 17 +Const HS_HALFTONE = 18 +Const HS_SOLIDCLR = 19 +Const HS_DITHEREDCLR = 20 +Const HS_SOLIDTEXTCLR = 21 +Const HS_DITHEREDTEXTCLR = 22 +Const HS_SOLIDBKCLR = 23 +Const HS_DITHEREDBKCLR = 24 +Const HS_API_MAX = 25 + +' Pen Styles +Const PS_SOLID = 0 +Const PS_DASH = 1 ' ------- +Const PS_DOT = 2 ' ....... +Const PS_DASHDOT = 3 ' _._._._ +Const PS_DASHDOTDOT = 4 ' _.._.._ +Const PS_NULL = 5 +Const PS_INSIDEFRAME = 6 +Const PS_USERSTYLE = 7 +Const PS_ALTERNATE = 8 +Const PS_STYLE_MASK = &HF + +Const PS_ENDCAP_ROUND = &H0 +Const PS_ENDCAP_SQUARE = &H100 +Const PS_ENDCAP_FLAT = &H200 +Const PS_ENDCAP_MASK = &HF00 + +Const PS_JOIN_ROUND = &H0 +Const PS_JOIN_BEVEL = &H1000 +Const PS_JOIN_MITER = &H2000 +Const PS_JOIN_MASK = &HF000 + +Const PS_COSMETIC = &H0 +Const PS_GEOMETRIC = &H10000 +Const PS_TYPE_MASK = &HF0000 + +Const AD_COUNTERCLOCKWISE = 1 +Const AD_CLOCKWISE = 2 + +' Device Parameters for GetDeviceCaps() +Const DRIVERVERSION = 0 ' Device driver version +Const TECHNOLOGY = 2 ' Device classification +Const HORZSIZE = 4 ' Horizontal size in millimeters +Const VERTSIZE = 6 ' Vertical size in millimeters +Const HORZRES = 8 ' Horizontal width in pixels +Const VERTRES = 10 ' Vertical width in pixels +Const BITSPIXEL = 12 ' Number of bits per pixel +Const PLANES = 14 ' Number of planes +Const NUMBRUSHES = 16 ' Number of brushes the device has +Const NUMPENS = 18 ' Number of pens the device has +Const NUMMARKERS = 20 ' Number of markers the device has +Const NUMFONTS = 22 ' Number of fonts the device has +Const NUMCOLORS = 24 ' Number of colors the device supports +Const PDEVICESIZE = 26 ' Size required for device descriptor +Const CURVECAPS = 28 ' Curve capabilities +Const LINECAPS = 30 ' Line capabilities +Const POLYGONALCAPS = 32 ' Polygonal capabilities +Const TEXTCAPS = 34 ' Text capabilities +Const CLIPCAPS = 36 ' Clipping capabilities +Const RASTERCAPS = 38 ' Bitblt capabilities +Const ASPECTX = 40 ' Length of the X leg +Const ASPECTY = 42 ' Length of the Y leg +Const ASPECTXY = 44 ' Length of the hypotenuse + +Const LOGPIXELSX = 88 ' Logical pixels/inch in X +Const LOGPIXELSY = 90 ' Logical pixels/inch in Y + +Const SIZEPALETTE = 104 ' Number of entries in physical palette +Const NUMRESERVED = 106 ' Number of reserved entries in palette +Const COLORRES = 108 ' Actual color resolution + +' Printing related DeviceCaps. These replace the appropriate Escapes +Const PHYSICALWIDTH = 110 ' Physical Width in device units +Const PHYSICALHEIGHT = 111 ' Physical Height in device units +Const PHYSICALOFFSETX = 112 ' Physical Printable Area x margin +Const PHYSICALOFFSETY = 113 ' Physical Printable Area y margin +Const SCALINGFACTORX = 114 ' Scaling factor x +Const SCALINGFACTORY = 115 ' Scaling factor y + +' Device Capability Masks: + +' Device Technologies +Const DT_PLOTTER = 0 ' Vector plotter +Const DT_RASDISPLAY = 1 ' Raster display +Const DT_RASPRINTER = 2 ' Raster printer +Const DT_RASCAMERA = 3 ' Raster camera +Const DT_CHARSTREAM = 4 ' Character-stream, PLP +Const DT_METAFILE = 5 ' Metafile, VDM +Const DT_DISPFILE = 6 ' Display-file + +' Curve Capabilities +Const CC_NONE = 0 ' Curves not supported +Const CC_CIRCLES = 1 ' Can do circles +Const CC_PIE = 2 ' Can do pie wedges +Const CC_CHORD = 4 ' Can do chord arcs +Const CC_ELLIPSES = 8 ' Can do ellipese +Const CC_WIDE = 16 ' Can do wide lines +Const CC_STYLED = 32 ' Can do styled lines +Const CC_WIDESTYLED = 64 ' Can do wide styled lines +Const CC_INTERIORS = 128 ' Can do interiors +Const CC_ROUNDRECT = 256 ' + +' Line Capabilities +Const LC_NONE = 0 ' Lines not supported +Const LC_POLYLINE = 2 ' Can do polylines +Const LC_MARKER = 4 ' Can do markers +Const LC_POLYMARKER = 8 ' Can do polymarkers +Const LC_WIDE = 16 ' Can do wide lines +Const LC_STYLED = 32 ' Can do styled lines +Const LC_WIDESTYLED = 64 ' Can do wide styled lines +Const LC_INTERIORS = 128 ' Can do interiors + +' Polygonal Capabilities +Const PC_NONE = 0 ' Polygonals not supported +Const PC_POLYGON = 1 ' Can do polygons +Const PC_RECTANGLE = 2 ' Can do rectangles +Const PC_WINDPOLYGON = 4 ' Can do winding polygons +Const PC_TRAPEZOID = 4 ' Can do trapezoids +Const PC_SCANLINE = 8 ' Can do scanlines +Const PC_WIDE = 16 ' Can do wide borders +Const PC_STYLED = 32 ' Can do styled borders +Const PC_WIDESTYLED = 64 ' Can do wide styled borders +Const PC_INTERIORS = 128 ' Can do interiors + +' Polygonal Capabilities +Const CP_NONE = 0 ' No clipping of output +Const CP_RECTANGLE = 1 ' Output clipped to rects +Const CP_REGION = 2 ' + +' Text Capabilities +Const TC_OP_CHARACTER = &H1 ' Can do OutputPrecision CHARACTER +Const TC_OP_STROKE = &H2 ' Can do OutputPrecision STROKE +Const TC_CP_STROKE = &H4 ' Can do ClipPrecision STROKE +Const TC_CR_90 = &H8 ' Can do CharRotAbility 90 +Const TC_CR_ANY = &H10 ' Can do CharRotAbility ANY +Const TC_SF_X_YINDEP = &H20 ' Can do ScaleFreedom X_YINDEPENDENT +Const TC_SA_DOUBLE = &H40 ' Can do ScaleAbility DOUBLE +Const TC_SA_INTEGER = &H80 ' Can do ScaleAbility INTEGER +Const TC_SA_CONTIN = &H100 ' Can do ScaleAbility CONTINUOUS +Const TC_EA_DOUBLE = &H200 ' Can do EmboldenAbility DOUBLE +Const TC_IA_ABLE = &H400 ' Can do ItalisizeAbility ABLE +Const TC_UA_ABLE = &H800 ' Can do UnderlineAbility ABLE +Const TC_SO_ABLE = &H1000 ' Can do StrikeOutAbility ABLE +Const TC_RA_ABLE = &H2000 ' Can do RasterFontAble ABLE +Const TC_VA_ABLE = &H4000 ' Can do VectorFontAble ABLE +Const TC_RESERVED = &H8000 +Const TC_SCROLLBLT = &H10000 ' do text scroll with blt + +' Raster Capabilities +Const RC_NONE = 0 +Const RC_BITBLT = 1 ' Can do standard BLT. +Const RC_BANDING = 2 ' Device requires banding support +Const RC_SCALING = 4 ' Device requires scaling support +Const RC_BITMAP64 = 8 ' Device can support >64K bitmap +Const RC_GDI20_OUTPUT = &H10 ' has 2.0 output calls +Const RC_GDI20_STATE = &H20 +Const RC_SAVEBITMAP = &H40 +Const RC_DI_BITMAP = &H80 ' supports DIB to memory +Const RC_PALETTE = &H100 ' supports a palette +Const RC_DIBTODEV = &H200 ' supports DIBitsToDevice +Const RC_BIGFONT = &H400 ' supports >64K fonts +Const RC_STRETCHBLT = &H800 ' supports StretchBlt +Const RC_FLOODFILL = &H1000 ' supports FloodFill +Const RC_STRETCHDIB = &H2000 ' supports StretchDIBits +Const RC_OP_DX_OUTPUT = &H4000 +Const RC_DEVBITS = &H8000 + +' DIB color table identifiers +Const DIB_RGB_COLORS = 0 ' color table in RGBs +Const DIB_PAL_COLORS = 1 ' color table in palette indices +Const DIB_PAL_INDICES = 2 ' No color table indices into surf palette +Const DIB_PAL_PHYSINDICES = 2 ' No color table indices into surf palette +Const DIB_PAL_LOGINDICES = 4 ' No color table indices into DC palette + +' constants for Get/SetSystemPaletteUse() +Const SYSPAL_ERROR = 0 +Const SYSPAL_STATIC = 1 +Const SYSPAL_NOSTATIC = 2 + +' constants for CreateDIBitmap +Const CBM_CREATEDIB = &H2 ' create DIB bitmap +Const CBM_INIT = &H4 ' initialize bitmap + +' ExtFloodFill style flags +Const FLOODFILLBORDER = 0 +Const FLOODFILLSURFACE = 1 + +' size of a device name string +Const CCHDEVICENAME = 32 + +' size of a form name string +Const CCHFORMNAME = 32 + +Type DEVMODE + dmDeviceName As String * CCHDEVICENAME + dmSpecVersion As Integer + dmDriverVersion As Integer + dmSize As Integer + dmDriverExtra As Integer + dmFields As Long + dmOrientation As Integer + dmPaperSize As Integer + dmPaperLength As Integer + dmPaperWidth As Integer + dmScale As Integer + dmCopies As Integer + dmDefaultSource As Integer + dmPrintQuality As Integer + dmColor As Integer + dmDuplex As Integer + dmYResolution As Integer + dmTTOption As Integer + dmCollate As Integer + dmFormName As String * CCHFORMNAME + dmUnusedPadding As Integer + dmBitsPerPel As Long + dmPelsWidth As Long + dmPelsHeight As Long + dmDisplayFlags As Long + dmDisplayFrequency As Long +End Type + +' current version of specification +Const DM_SPECVERSION = &H320 + +' field selection bits +Const DM_ORIENTATION = &H1& +Const DM_PAPERSIZE = &H2& +Const DM_PAPERLENGTH = &H4& +Const DM_PAPERWIDTH = &H8& +Const DM_SCALE = &H10& +Const DM_COPIES = &H100& +Const DM_DEFAULTSOURCE = &H200& +Const DM_PRINTQUALITY = &H400& +Const DM_COLOR = &H800& +Const DM_DUPLEX = &H1000& +Const DM_YRESOLUTION = &H2000& +Const DM_TTOPTION = &H4000& +Const DM_COLLATE As Long = &H8000 +Const DM_FORMNAME As Long = &H10000 + +' orientation selections +Const DMORIENT_PORTRAIT = 1 +Const DMORIENT_LANDSCAPE = 2 + +' paper selections +Const DMPAPER_LETTER = 1 +Const DMPAPER_FIRST = DMPAPER_LETTER + ' Letter 8 1/2 x 11 in +Const DMPAPER_LETTERSMALL = 2 ' Letter Small 8 1/2 x 11 in +Const DMPAPER_TABLOID = 3 ' Tabloid 11 x 17 in +Const DMPAPER_LEDGER = 4 ' Ledger 17 x 11 in +Const DMPAPER_LEGAL = 5 ' Legal 8 1/2 x 14 in +Const DMPAPER_STATEMENT = 6 ' Statement 5 1/2 x 8 1/2 in +Const DMPAPER_EXECUTIVE = 7 ' Executive 7 1/4 x 10 1/2 in +Const DMPAPER_A3 = 8 ' A3 297 x 420 mm +Const DMPAPER_A4 = 9 ' A4 210 x 297 mm +Const DMPAPER_A4SMALL = 10 ' A4 Small 210 x 297 mm +Const DMPAPER_A5 = 11 ' A5 148 x 210 mm +Const DMPAPER_B4 = 12 ' B4 250 x 354 +Const DMPAPER_B5 = 13 ' B5 182 x 257 mm +Const DMPAPER_FOLIO = 14 ' Folio 8 1/2 x 13 in +Const DMPAPER_QUARTO = 15 ' Quarto 215 x 275 mm +Const DMPAPER_10X14 = 16 ' 10x14 in +Const DMPAPER_11X17 = 17 ' 11x17 in +Const DMPAPER_NOTE = 18 ' Note 8 1/2 x 11 in +Const DMPAPER_ENV_9 = 19 ' Envelope #9 3 7/8 x 8 7/8 +Const DMPAPER_ENV_10 = 20 ' Envelope #10 4 1/8 x 9 1/2 +Const DMPAPER_ENV_11 = 21 ' Envelope #11 4 1/2 x 10 3/8 +Const DMPAPER_ENV_12 = 22 ' Envelope #12 4 \276 x 11 +Const DMPAPER_ENV_14 = 23 ' Envelope #14 5 x 11 1/2 +Const DMPAPER_CSHEET = 24 ' C size sheet +Const DMPAPER_DSHEET = 25 ' D size sheet +Const DMPAPER_ESHEET = 26 ' E size sheet +Const DMPAPER_ENV_DL = 27 ' Envelope DL 110 x 220mm +Const DMPAPER_ENV_C5 = 28 ' Envelope C5 162 x 229 mm +Const DMPAPER_ENV_C3 = 29 ' Envelope C3 324 x 458 mm +Const DMPAPER_ENV_C4 = 30 ' Envelope C4 229 x 324 mm +Const DMPAPER_ENV_C6 = 31 ' Envelope C6 114 x 162 mm +Const DMPAPER_ENV_C65 = 32 ' Envelope C65 114 x 229 mm +Const DMPAPER_ENV_B4 = 33 ' Envelope B4 250 x 353 mm +Const DMPAPER_ENV_B5 = 34 ' Envelope B5 176 x 250 mm +Const DMPAPER_ENV_B6 = 35 ' Envelope B6 176 x 125 mm +Const DMPAPER_ENV_ITALY = 36 ' Envelope 110 x 230 mm +Const DMPAPER_ENV_MONARCH = 37 ' Envelope Monarch 3.875 x 7.5 in +Const DMPAPER_ENV_PERSONAL = 38 ' 6 3/4 Envelope 3 5/8 x 6 1/2 in +Const DMPAPER_FANFOLD_US = 39 ' US Std Fanfold 14 7/8 x 11 in +Const DMPAPER_FANFOLD_STD_GERMAN = 40 ' German Std Fanfold 8 1/2 x 12 in +Const DMPAPER_FANFOLD_LGL_GERMAN = 41 ' German Legal Fanfold 8 1/2 x 13 in + +Const DMPAPER_LAST = DMPAPER_FANFOLD_LGL_GERMAN + +Const DMPAPER_USER = 256 + +' bin selections +Const DMBIN_UPPER = 1 +Const DMBIN_FIRST = DMBIN_UPPER + +Const DMBIN_ONLYONE = 1 +Const DMBIN_LOWER = 2 +Const DMBIN_MIDDLE = 3 +Const DMBIN_MANUAL = 4 +Const DMBIN_ENVELOPE = 5 +Const DMBIN_ENVMANUAL = 6 +Const DMBIN_AUTO = 7 +Const DMBIN_TRACTOR = 8 +Const DMBIN_SMALLFMT = 9 +Const DMBIN_LARGEFMT = 10 +Const DMBIN_LARGECAPACITY = 11 +Const DMBIN_CASSETTE = 14 +Const DMBIN_LAST = DMBIN_CASSETTE + +Const DMBIN_USER = 256 ' device specific bins start here + +' print qualities +Const DMRES_DRAFT = (-1) +Const DMRES_LOW = (-2) +Const DMRES_MEDIUM = (-3) +Const DMRES_HIGH = (-4) + +' color enable/disable for color printers +Const DMCOLOR_MONOCHROME = 1 +Const DMCOLOR_COLOR = 2 + +' duplex enable +Const DMDUP_SIMPLEX = 1 +Const DMDUP_VERTICAL = 2 +Const DMDUP_HORIZONTAL = 3 + +' TrueType options +Const DMTT_BITMAP = 1 ' print TT fonts as graphics +Const DMTT_DOWNLOAD = 2 ' download TT fonts as soft fonts +Const DMTT_SUBDEV = 3 ' substitute device fonts for TT fonts + +' Collation selections +Const DMCOLLATE_FALSE = 0 +Const DMCOLLATE_TRUE = 1 + +' DEVMODE dmDisplayFlags flags + +Const DM_GRAYSCALE = &H1 +Const DM_INTERLACED = &H2 + +' GetRegionData/ExtCreateRegion + +Const RDH_RECTANGLES = 1 + +Type RGNDATAHEADER + dwSize As Long + iType As Long + nCount As Long + nRgnSize As Long + rcBound As Rect +End Type + +Type RGNDATA + rdh As RGNDATAHEADER + Buffer As Byte +End Type + +Type ABC + abcA As Long + abcB As Long + abcC As Long +End Type + +Type ABCFLOAT + abcfA As Double + abcfB As Double + abcfC As Double +End Type + +Type OUTLINETEXTMETRIC + otmSize As Long + otmTextMetrics As TEXTMETRIC + otmFiller As Byte + otmPanoseNumber As PANOSE + otmfsSelection As Long + otmfsType As Long + otmsCharSlopeRise As Long + otmsCharSlopeRun As Long + otmItalicAngle As Long + otmEMSquare As Long + otmAscent As Long + otmDescent As Long + otmLineGap As Long + otmsCapEmHeight As Long + otmsXHeight As Long + otmrcFontBox As Rect + otmMacAscent As Long + otmMacDescent As Long + otmMacLineGap As Long + otmusMinimumPPEM As Long + otmptSubscriptSize As POINTAPI + otmptSubscriptOffset As POINTAPI + otmptSuperscriptSize As POINTAPI + otmptSuperscriptOffset As POINTAPI + otmsStrikeoutSize As Long + otmsStrikeoutPosition As Long + otmsUnderscorePosition As Long + otmsUnderscoreSize As Long + otmpFamilyName As String + otmpFaceName As String + otmpStyleName As String + otmpFullName As String +End Type + +Type POLYTEXT + x As Long + y As Long + n As Long + lpStr As String + uiFlags As Long + rcl As Rect + pdx As Long +End Type + +Type FIXED + fract As Integer + Value As Integer +End Type + +Type MAT2 + eM11 As FIXED + eM12 As FIXED + eM21 As FIXED + eM22 As FIXED +End Type + +Type GLYPHMETRICS + gmBlackBoxX As Long + gmBlackBoxY As Long + gmptGlyphOrigin As POINTAPI + gmCellIncX As Integer + gmCellIncY As Integer +End Type + + +' GetGlyphOutline constants +Const GGO_METRICS = 0 +Const GGO_BITMAP = 1 +Const GGO_NATIVE = 2 + +Const TT_POLYGON_TYPE = 24 + +Const TT_PRIM_LINE = 1 +Const TT_PRIM_QSPLINE = 2 + +Type POINTFX + x As FIXED + y As FIXED +End Type + +Type TTPOLYCURVE + wType As Integer + cpfx As Integer + apfx As POINTFX +End Type + +Type TTPOLYGONHEADER + cb As Long + dwType As Long + pfxStart As POINTFX +End Type + +Type RASTERIZER_STATUS + nSize As Integer + wFlags As Integer + nLanguageID As Integer +End Type + +' bits defined in wFlags of RASTERIZER_STATUS +Const TT_AVAILABLE = &H1 +Const TT_ENABLED = &H2 + +Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long + +Declare Function AnimatePalette Lib "gdi32" Alias "AnimatePaletteA" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteColors As PALETTEENTRY) As Long +Declare Function Arc Lib "gdi32" Alias "Arc" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long +Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long +Declare Function CancelDC Lib "gdi32" Alias "CancelDC" (ByVal hdc As Long) As Long +Declare Function Chord Lib "gdi32" Alias "Chord" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long +Declare Function CloseMetaFile Lib "gdi32" Alias "CloseMetaFile" (ByVal hMF As Long) As Long +Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long +Declare Function CopyMetaFile Lib "gdi32" Alias "CopyMetaFileA" (ByVal hMF As Long, ByVal lpFileName As String) As Long + +Declare Function CreateBitmap Lib "gdi32" Alias "CreateBitmap" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long +Declare Function CreateBitmapIndirect Lib "gdi32" Alias "CreateBitmapIndirect" (lpBitmap As BITMAP) As Long +Declare Function CreateBrushIndirect Lib "gdi32" Alias "CreateBrushIndirect" (lpLogBrush As LOGBRUSH) As Long +Declare Function CreateCompatibleBitmap Lib "gdi32" Alias "CreateCompatibleBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long +Declare Function CreateDiscardableBitmap Lib "gdi32" Alias "CreateDiscardableBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long + +Declare Function CreateCompatibleDC Lib "gdi32" Alias "CreateCompatibleDC" (ByVal hdc As Long) As Long +Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long + +Declare Function CreateDIBitmap Lib "gdi32" Alias "CreateDIBitmap" (ByVal hdc As Long, lpInfoHeader As BITMAPINFOHEADER, ByVal dwUsage As Long, lpInitBits As Any, lpInitInfo As BITMAPINFO, ByVal wUsage As Long) As Long +Declare Function CreateDIBPatternBrush Lib "gdi32" Alias "CreateDIBPatternBrush" (ByVal hPackedDIB As Long, ByVal wUsage As Long) As Long +Declare Function CreateDIBPatternBrushPt Lib "gdi32" Alias "CreateDIBPatternBrushPt" (lpPackedDIB As Any, ByVal iUsage As Long) As Long +Declare Function CreateEllipticRgnIndirect Lib "gdi32" Alias "CreateEllipticRgnIndirect" (lpRect As Rect) As Long +Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long + +Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long +Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long + +Declare Function CreateHatchBrush Lib "gdi32" Alias "CreateHatchBrush" (ByVal nIndex As Long, ByVal crColor As Long) As Long +Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long + +Declare Function CreateMetaFile Lib "gdi32" Alias "CreateMetaFileA" (ByVal lpString As String) As Long + +Declare Function CreatePalette Lib "gdi32" Alias "CreatePalette" (lpLogPalette As LOGPALETTE) As Long +Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long +Declare Function CreatePenIndirect Lib "gdi32" Alias "CreatePenIndirect" (lpLogPen As LOGPEN) As Long +Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long +Declare Function CreateRectRgnIndirect Lib "gdi32" Alias "CreateRectRgnIndirect" (lpRect As RECT) As Long +Declare Function CreatePolyPolygonRgn Lib "gdi32" Alias "CreatePolyPolygonRgn" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long +Declare Function CreatePatternBrush Lib "gdi32" Alias "CreatePatternBrush" (ByVal hBitmap As Long) As Long +Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long +Declare Function CreateScalableFontResource Lib "gdi32" Alias "CreateScalableFontResourceA" (ByVal fHidden As Long, ByVal lpszResourceFile As String, ByVal lpszFontFile As String, ByVal lpszCurrentPath As String) As Long +Declare Function CreateSolidBrush Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor As Long) As Long + +Declare Function DeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long +Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long +Declare Function DeleteMetaFile Lib "gdi32" Alias "DeleteMetaFile" (ByVal hMF As Long) As Long + +' mode selections for the device mode function +Const DM_UPDATE = 1 +Const DM_COPY = 2 +Const DM_PROMPT = 4 +Const DM_MODIFY = 8 + +Const DM_IN_BUFFER = DM_MODIFY +Const DM_IN_PROMPT = DM_PROMPT +Const DM_OUT_BUFFER = DM_COPY +Const DM_OUT_DEFAULT = DM_UPDATE + +' device capabilities indices +Const DC_FIELDS = 1 +Const DC_PAPERS = 2 +Const DC_PAPERSIZE = 3 +Const DC_MINEXTENT = 4 +Const DC_MAXEXTENT = 5 +Const DC_BINS = 6 +Const DC_DUPLEX = 7 +Const DC_SIZE = 8 +Const DC_EXTRA = 9 +Const DC_VERSION = 10 +Const DC_DRIVER = 11 +Const DC_BINNAMES = 12 +Const DC_ENUMRESOLUTIONS = 13 +Const DC_FILEDEPENDENCIES = 14 +Const DC_TRUETYPE = 15 +Const DC_PAPERNAMES = 16 +Const DC_ORIENTATION = 17 +Const DC_COPIES = 18 + +' bit fields of the return value (DWORD) for DC_TRUETYPE +Const DCTT_BITMAP = &H1& +Const DCTT_DOWNLOAD = &H2& +Const DCTT_SUBDEV = &H4& + +Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, ByVal lpOutput As String, lpDevMode As DEVMODE) As Long + +Declare Function Ellipse Lib "gdi32" Alias "Ellipse" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long + +Declare Function EqualRgn Lib "gdi32" Alias "EqualRgn" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long +Declare Function Escape Lib "gdi32" Alias "Escape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal nCount As Long, ByVal lpInData As String, lpOutData As Any) As Long +Declare Function ExtEscape Lib "gdi32" Alias "ExtEscape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal cbInput As Long, ByVal lpszInData As String, ByVal cbOutput As Long, ByVal lpszOutData As String) As Long +Declare Function DrawEscape Lib "gdi32" Alias "DrawEscape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal cbInput As Long, ByVal lpszInData As String) As Long +Declare Function ExcludeClipRect Lib "gdi32" Alias "ExcludeClipRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long +Declare Function ExtCreateRegion Lib "gdi32" Alias "ExtCreateRegion" (lpXform As xform, ByVal nCount As Long, lpRgnData As RGNDATA) As Long +Declare Function ExtFloodFill Lib "gdi32" Alias "ExtFloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long +Declare Function FillRgn Lib "gdi32" Alias "FillRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long +Declare Function FrameRgn Lib "gdi32" Alias "FrameRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long +Declare Function FloodFill Lib "gdi32" Alias "FloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long +Declare Function GetROP2 Lib "gdi32" Alias "GetROP2" (ByVal hdc As Long) As Long +Declare Function GetAspectRatioFilterEx Lib "gdi32" Alias "GetAspectRatioFilterEx" (ByVal hdc As Long, lpAspectRatio As SIZE) As Long +Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As Long) As Long +Declare Function GetBkMode Lib "gdi32" Alias "GetBkMode" (ByVal hdc As Long) As Long +Declare Function GetBitmapBits Lib "gdi32" Alias "GetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long +Declare Function GetBitmapDimensionEx Lib "gdi32" Alias "GetBitmapDimensionEx" (ByVal hBitmap As Long, lpDimension As SIZE) As Long +Declare Function GetBoundsRect Lib "gdi32" Alias "GetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long + +Declare Function GetCharWidth Lib "gdi32" Alias "GetCharWidthA" (ByVal hdc As Long, ByVal wFirstChar As Long, ByVal wLastChar As Long, lpBuffer As Long) As Long + +Declare Function GetCharWidth32 Lib "gdi32" Alias "GetCharWidth32A" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpBuffer As Long) As Long +Declare Function GetCharWidthFloat Lib "gdi32" Alias "GetCharWidthFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, pxBuffer As Double) As Long + +Declare Function GetCharABCWidths Lib "gdi32" Alias "GetCharABCWidthsA" (ByVal hdc As Long, ByVal uFirstChar As Long, ByVal uLastChar As Long, lpabc As ABC) As Long +Declare Function GetCharABCWidthsFloat Lib "gdi32" Alias "GetCharABCWidthsFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpABCF As ABCFLOAT) As Long + +Declare Function GetClipBox Lib "gdi32" Alias "GetClipBox" (ByVal hdc As Long, lpRect As RECT) As Long +Declare Function GetClipRgn Lib "gdi32" Alias "GetClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long +Declare Function GetMetaRgn Lib "gdi32" Alias "GetMetaRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long +Declare Function GetCurrentObject Lib "gdi32" Alias "GetCurrentObject" (ByVal hdc As Long, ByVal uObjectType As Long) As Long +Declare Function GetCurrentPositionEx Lib "gdi32" Alias "GetCurrentPositionEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long +Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long +Declare Function GetDIBits Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long +Declare Function GetFontData Lib "gdi32" Alias "GetFontDataA" (ByVal hdc As Long, ByVal dwTable As Long, ByVal dwOffset As Long, lpvBuffer As Any, ByVal cbData As Long) As Long +Declare Function GetGlyphOutline Lib "gdi32" Alias "GetGlyphOutlineA" (ByVal hdc As Long, ByVal uChar As Long, ByVal fuFormat As Long, lpgm As GLYPHMETRICS, ByVal cbBuffer As Long, lpBuffer As Any, lpmat2 As MAT2) As Long +Declare Function GetGraphicsMode Lib "gdi32" Alias "GetGraphicsMode" (ByVal hdc As Long) As Long +Declare Function GetMapMode Lib "gdi32" Alias "GetMapMode" (ByVal hdc As Long) As Long +Declare Function GetMetaFileBitsEx Lib "gdi32" Alias "GetMetaFileBitsEx" (ByVal hMF As Long, ByVal nSize As Long, lpvData As Any) As Long +Declare Function GetMetaFile Lib "gdi32" Alias "GetMetaFileA" (ByVal lpFileName As String) As Long +Declare Function GetNearestColor Lib "gdi32" Alias "GetNearestColor" (ByVal hdc As Long, ByVal crColor As Long) As Long +Declare Function GetNearestPaletteIndex Lib "gdi32" Alias "GetNearestPaletteIndex" (ByVal hPalette As Long, ByVal crColor As Long) As Long +Declare Function GetObjectType Lib "gdi32" Alias "GetObjectType" (ByVal hgdiobj As Long) As Long + +Declare Function GetOutlineTextMetrics Lib "gdi32" Alias "GetOutlineTextMetricsA" (ByVal hdc As Long, ByVal cbData As Long, lpotm As OUTLINETEXTMETRIC) As Long + +Declare Function GetPaletteEntries Lib "gdi32" Alias "GetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long +Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long +Declare Function GetPolyFillMode Lib "gdi32" Alias "GetPolyFillMode" (ByVal hdc As Long) As Long +Declare Function GetRasterizerCaps Lib "gdi32" Alias "GetRasterizerCaps" (lpraststat As RASTERIZER_STATUS, ByVal cb As Long) As Long +Declare Function GetRegionData Lib "gdi32" Alias "GetRegionDataA" (ByVal hRgn As Long, ByVal dwCount As Long, lpRgnData As RgnData) As Long +Declare Function GetRgnBox Lib "gdi32" Alias "GetRgnBox" (ByVal hRgn As Long, lpRect As RECT) As Long +Declare Function GetStockObject Lib "gdi32" Alias "GetStockObject" (ByVal nIndex As Long) As Long +Declare Function GetStretchBltMode Lib "gdi32" Alias "GetStretchBltMode" (ByVal hdc As Long) As Long +Declare Function GetSystemPaletteEntries Lib "gdi32" Alias "GetSystemPaletteEntries" (ByVal hdc As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long +Declare Function GetSystemPaletteUse Lib "gdi32" Alias "GetSystemPaletteUse" (ByVal hdc As Long) As Long +Declare Function GetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long) As Long +Declare Function GetTextAlign Lib "gdi32" Alias "GetTextAlign" (ByVal hdc As Long) As Long +Declare Function GetTextColor Lib "gdi32" Alias "GetTextColor" (ByVal hdc As Long) As Long + +Declare Function GetTextExtentPoint Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As SIZE) As Long +Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As SIZE) As Long +Declare Function GetTextExtentExPoint Lib "gdi32" Alias "GetTextExtentExPointA" (ByVal hdc As Long, ByVal lpszStr As String, ByVal cchString As Long, ByVal nMaxExtent As Long, lpnFit As Long, alpDx As Long, lpSize As SIZE) As Long + +Declare Function GetViewportExtEx Lib "gdi32" Alias "GetViewportExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long +Declare Function GetViewportOrgEx Lib "gdi32" Alias "GetViewportOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long +Declare Function GetWindowExtEx Lib "gdi32" Alias "GetWindowExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long +Declare Function GetWindowOrgEx Lib "gdi32" Alias "GetWindowOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long + +Declare Function IntersectClipRect Lib "gdi32" Alias "IntersectClipRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long +Declare Function InvertRgn Lib "gdi32" Alias "InvertRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long +Declare Function LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long +Declare Function MaskBlt Lib "gdi32" Alias "MaskBlt" (ByVal hdcDest As Long, ByVal nXDest As Long, ByVal nYDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long, ByVal dwRop As Long) As Long +Declare Function PlgBlt Lib "gdi32" Alias "PlgBlt" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long + +Declare Function OffsetClipRgn Lib "gdi32" Alias "OffsetClipRgn" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long +Declare Function OffsetRgn Lib "gdi32" Alias "OffsetRgn" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long +Declare Function PatBlt Lib "gdi32" Alias "PatBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal dwRop As Long) As Long +Declare Function Pie Lib "gdi32" Alias "Pie" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long +Declare Function PlayMetaFile Lib "gdi32" Alias "PlayMetaFile" (ByVal hdc As Long, ByVal hMF As Long) As Long +Declare Function PaintRgn Lib "gdi32" Alias "PaintRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long +Declare Function PolyPolygon Lib "gdi32" Alias "PolyPolygon" (ByVal hdc As Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As Long +Declare Function PtInRegion Lib "gdi32" Alias "PtInRegion" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long +Declare Function PtVisible Lib "gdi32" Alias "PtVisible" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long +Declare Function RectVisible Lib "gdi32" Alias "RectVisible" (ByVal hdc As Long, lpRect As RECT) As Long +Declare Function RectInRegion Lib "gdi32" Alias "RectInRegion" (ByVal hRgn As Long, lpRect As RECT) As Long +Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long +Declare Function RestoreDC Lib "gdi32" Alias "RestoreDC" (ByVal hdc As Long, ByVal nSavedDC As Long) As Long +Declare Function ResetDC Lib "gdi32" Alias "ResetDCA" (ByVal hdc As Long, lpInitData As DEVMODE) As Long +Declare Function RealizePalette Lib "gdi32" Alias "RealizePalette" (ByVal hdc As Long) As Long +Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long +Declare Function RoundRect Lib "gdi32" Alias "RoundRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long +Declare Function ResizePalette Lib "gdi32" Alias "ResizePalette" (ByVal hPalette As Long, ByVal nNumEntries As Long) As Long + +Declare Function SaveDC Lib "gdi32" Alias "SaveDC" (ByVal hdc As Long) As Long +Declare Function SelectClipRgn Lib "gdi32" Alias "SelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long +Declare Function ExtSelectClipRgn Lib "gdi32" Alias "ExtSelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal fnMode As Long) As Long +Declare Function SetMetaRgn Lib "gdi32" Alias "SetMetaRgn" (ByVal hdc As Long) As Long +Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As Long, ByVal hObject As Long) As Long +Declare Function SelectPalette Lib "gdi32" Alias "SelectPalette" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long +Declare Function SetBkColor Lib "gdi32" Alias "SetBkColor" (ByVal hdc As Long, ByVal crColor As Long) As Long +Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long +Declare Function SetBitmapBits Lib "gdi32" Alias "SetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long + +Declare Function SetBoundsRect Lib "gdi32" Alias "SetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long +Declare Function SetDIBits Lib "gdi32" Alias "SetDIBits" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long +Declare Function SetDIBitsToDevice Lib "gdi32" Alias "SetDIBitsToDevice" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As BITMAPINFO, ByVal wUsage As Long) As Long +Declare Function SetMapperFlags Lib "gdi32" Alias "SetMapperFlags" (ByVal hdc As Long, ByVal dwFlag As Long) As Long +Declare Function SetGraphicsMode Lib "gdi32" Alias "SetGraphicsMode" (ByVal hdc As Long, ByVal iMode As Long) As Long +Declare Function SetMapMode Lib "gdi32" Alias "SetMapMode" (ByVal hdc As Long, ByVal nMapMode As Long) As Long +Declare Function SetMetaFileBitsEx Lib "gdi32" Alias "SetMetaFileBitsEx" (ByVal nSize As Long, lpData As Byte) As Long +Declare Function SetPaletteEntries Lib "gdi32" Alias "SetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long +Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long +Declare Function SetPixelV Lib "gdi32" Alias "SetPixelV" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long +Declare Function SetPolyFillMode Lib "gdi32" Alias "SetPolyFillMode" (ByVal hdc As Long, ByVal nPolyFillMode As Long) As Long +Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long +Declare Function SetRectRgn Lib "gdi32" Alias "SetRectRgn" (ByVal hRgn As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long +Declare Function StretchDIBits Lib "gdi32" Alias "StretchDIBits" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long +Declare Function SetROP2 Lib "gdi32" Alias "SetROP2" (ByVal hdc As Long, ByVal nDrawMode As Long) As Long +Declare Function SetStretchBltMode Lib "gdi32" Alias "SetStretchBltMode" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long +Declare Function SetSystemPaletteUse Lib "gdi32" Alias "SetSystemPaletteUse" (ByVal hdc As Long, ByVal wUsage As Long) As Long +Declare Function SetTextCharacterExtra Lib "gdi32" Alias "SetTextCharacterExtraA" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long +Declare Function SetTextColor Lib "gdi32" Alias "SetTextColor" (ByVal hdc As Long, ByVal crColor As Long) As Long +Declare Function SetTextAlign Lib "gdi32" Alias "SetTextAlign" (ByVal hdc As Long, ByVal wFlags As Long) As Long +Declare Function SetTextJustification Lib "gdi32" Alias "SetTextJustification" (ByVal hdc As Long, ByVal nBreakExtra As Long, ByVal nBreakCount As Long) As Long +Declare Function UpdateColors Lib "gdi32" Alias "UpdateColors" (ByVal hdc As Long) As Long + +Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress" (ByVal hModule As Long, ByVal lpProcName As String) As Long + +Declare Function PlayMetaFileRecord Lib "gdi32" Alias "PlayMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE, lpMetaRecord As METARECORD, ByVal nHandles As Long) As Long + +Declare Function CloseEnhMetaFile Lib "gdi32" Alias "CloseEnhMetaFile" (ByVal hdc As Long) As Long +Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long +Declare Function CreateEnhMetaFile Lib "gdi32" Alias "CreateEnhMetaFileA" (ByVal hdcRef As Long, ByVal lpFileName As String, lpRect As RECT, ByVal lpDescription As String) As Long +Declare Function DeleteEnhMetaFile Lib "gdi32" Alias "DeleteEnhMetaFile" (ByVal hemf As Long) As Long +Declare Function EnumEnhMetaFile Lib "gdi32" Alias "EnumEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, ByVal lpEnhMetaFunc As Long, lpData As Any, lpRect As RECT) As Long +Declare Function GetEnhMetaFile Lib "gdi32" Alias "GetEnhMetaFileA" (ByVal lpszMetaFile As String) As Long +Declare Function GetEnhMetaFileBits Lib "gdi32" Alias "GetEnhMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, lpbBuffer As Byte) As Long +Declare Function GetEnhMetaFileDescription Lib "gdi32" Alias "GetEnhMetaFileDescriptionA" (ByVal hemf As Long, ByVal cchBuffer As Long, ByVal lpszDescription As String) As Long +Declare Function GetEnhMetaFileHeader Lib "gdi32" Alias "GetEnhMetaFileHeader" (ByVal hemf As Long, ByVal cbBuffer As Long, lpemh As ENHMETAHEADER) As Long +Declare Function GetEnhMetaFilePaletteEntries Lib "gdi32" Alias "GetEnhMetaFilePaletteEntries" (ByVal hemf As Long, ByVal cEntries As Long, lppe As PALETTEENTRY) As Long +Declare Function GetWinMetaFileBits Lib "gdi32" Alias "GetWinMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal fnMapMode As Long, ByVal hdcRef As Long) As Long +Declare Function PlayEnhMetaFile Lib "gdi32" Alias "PlayEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, lpRect As RECT) As Long +Declare Function PlayEnhMetaFileRecord Lib "gdi32" Alias "PlayEnhMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE, lpEnhMetaRecord As ENHMETARECORD, ByVal nHandles As Long) As Long +Declare Function SetEnhMetaFileBits Lib "gdi32" Alias "SetEnhMetaFileBits" (ByVal cbBuffer As Long, lpData As Byte) As Long +Declare Function SetWinMetaFileBits Lib "gdi32" Alias "SetWinMetaFileBits" (ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal hdcRef As Long, lpmfp As METAFILEPICT) As Long +Declare Function GdiComment Lib "gdi32" Alias "GdiComment" (ByVal hdc As Long, ByVal cbSize As Long, lpData As Byte) As Long + +Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long + +Declare Function AngleArc Lib "gdi32" Alias "AngleArc" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dwRadius As Long, ByVal eStartAngle As Double, ByVal eSweepAngle As Double) As Long +Declare Function PolyPolyline Lib "gdi32" Alias "PolyPolyline" (ByVal hdc As Long, lppt As POINTAPI, lpdwPolyPoints As Long, ByVal cCount As Long) As Long +Declare Function GetWorldTransform Lib "gdi32" Alias "GetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long +Declare Function SetWorldTransform Lib "gdi32" Alias "SetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long +Declare Function ModifyWorldTransform Lib "gdi32" Alias "ModifyWorldTransform" (ByVal hdc As Long, lpXform As xform, ByVal iMode As Long) As Long +Declare Function CombineTransform Lib "gdi32" Alias "CombineTransform" (lpxformResult As xform, lpxform1 As xform, lpxform2 As xform) As Long + +' Flags value for COLORADJUSTMENT +Const CA_NEGATIVE = &H1 +Const CA_LOG_FILTER = &H2 + +' IlluminantIndex values +Const ILLUMINANT_DEVICE_DEFAULT = 0 +Const ILLUMINANT_A = 1 +Const ILLUMINANT_B = 2 +Const ILLUMINANT_C = 3 +Const ILLUMINANT_D50 = 4 +Const ILLUMINANT_D55 = 5 +Const ILLUMINANT_D65 = 6 +Const ILLUMINANT_D75 = 7 +Const ILLUMINANT_F2 = 8 +Const ILLUMINANT_MAX_INDEX = ILLUMINANT_F2 + +Const ILLUMINANT_TUNGSTEN = ILLUMINANT_A +Const ILLUMINANT_DAYLIGHT = ILLUMINANT_C +Const ILLUMINANT_FLUORESCENT = ILLUMINANT_F2 +Const ILLUMINANT_NTSC = ILLUMINANT_C + +' Min and max for RedGamma, GreenGamma, BlueGamma +Const RGB_GAMMA_MIN = 2500 'words +Const RGB_GAMMA_MAX = 65000 + +' Min and max for ReferenceBlack and ReferenceWhite +Const REFERENCE_WHITE_MIN = 6000 'words +Const REFERENCE_WHITE_MAX = 10000 +Const REFERENCE_BLACK_MIN = 0 +Const REFERENCE_BLACK_MAX = 4000 + +' Min and max for Contrast, Brightness, Colorfulness, RedGreenTint +Const COLOR_ADJ_MIN = -100 'shorts +Const COLOR_ADJ_MAX = 100 + +Type COLORADJUSTMENT + caSize As Integer + caFlags As Integer + caIlluminantIndex As Integer + caRedGamma As Integer + caGreenGamma As Integer + caBlueGamma As Integer + caReferenceBlack As Integer + caReferenceWhite As Integer + caContrast As Integer + caBrightness As Integer + caColorfulness As Integer + caRedGreenTint As Integer +End Type + +Declare Function SetColorAdjustment Lib "gdi32" Alias "SetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long +Declare Function GetColorAdjustment Lib "gdi32" Alias "GetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long +Declare Function CreateHalftonePalette Lib "gdi32" Alias "CreateHalftonePalette" (ByVal hdc As Long) As Long + +Type DOCINFO + cbSize As Long + lpszDocName As String + lpszOutput As String +End Type + +Declare Function StartDoc Lib "gdi32" Alias "StartDocA" (ByVal hdc As Long, lpdi As DOCINFO) As Long +Declare Function StartPage Lib "gdi32" Alias "StartPage" (ByVal hdc As Long) As Long +Declare Function EndPage Lib "gdi32" Alias "EndPage" (ByVal hdc As Long) As Long +Declare Function EndDoc Lib "gdi32" Alias "EndDoc" (ByVal hdc As Long) As Long +Declare Function AbortDoc Lib "gdi32" Alias "AbortDoc" (ByVal hdc As Long) As Long + +Declare Function AbortPath Lib "gdi32" Alias "AbortPath" (ByVal hdc As Long) As Long +Declare Function ArcTo Lib "gdi32" Alias "ArcTo" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long +Declare Function BeginPath Lib "gdi32" Alias "BeginPath" (ByVal hdc As Long) As Long +Declare Function CloseFigure Lib "gdi32" Alias "CloseFigure" (ByVal hdc As Long) As Long +Declare Function EndPath Lib "gdi32" Alias "EndPath" (ByVal hdc As Long) As Long +Declare Function FillPath Lib "gdi32" Alias "FillPath" (ByVal hdc As Long) As Long +Declare Function FlattenPath Lib "gdi32" Alias "FlattenPath" (ByVal hdc As Long) As Long +Declare Function GetPath Lib "gdi32" Alias "GetPath" (ByVal hdc As Long, lpPoint As POINTAPI, lpTypes As Byte, ByVal nSize As Long) As Long +Declare Function PathToRegion Lib "gdi32" Alias "PathToRegion" (ByVal hdc As Long) As Long +Declare Function PolyDraw Lib "gdi32" Alias "PolyDraw" (ByVal hdc As Long, lppt As POINTAPI, lpbTypes As Byte, ByVal cCount As Long) As Long +Declare Function SelectClipPath Lib "gdi32" Alias "SelectClipPath" (ByVal hdc As Long, ByVal iMode As Long) As Long +Declare Function SetArcDirection Lib "gdi32" Alias "SetArcDirection" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long +Declare Function SetMiterLimit Lib "gdi32" Alias "SetMiterLimit" (ByVal hdc As Long, ByVal eNewLimit As Double, peOldLimit As Double) As Long +Declare Function StrokeAndFillPath Lib "gdi32" Alias "StrokeAndFillPath" (ByVal hdc As Long) As Long +Declare Function StrokePath Lib "gdi32" Alias "StrokePath" (ByVal hdc As Long) As Long +Declare Function WidenPath Lib "gdi32" Alias "WidenPath" (ByVal hdc As Long) As Long +Declare Function ExtCreatePen Lib "gdi32" Alias "ExtCreatePen" (ByVal dwPenStyle As Long, ByVal dwWidth As Long, lplb As LOGBRUSH, ByVal dwStyleCount As Long, lpStyle As Long) As Long +Declare Function GetMiterLimit Lib "gdi32" Alias "GetMiterLimit" (ByVal hdc As Long, peLimit As Double) As Long +Declare Function GetArcDirection Lib "gdi32" Alias "GetArcDirection" (ByVal hdc As Long) As Long + +Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long +Declare Function MoveToEx Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long +Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long +Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal wOptions As Long, lpRect As Rect, ByVal lpString As String, ByVal nCount As Long, lpDx As Long) As Long +Declare Function PolyTextOut Lib "gdi32" Alias "PolyTextOutA" (ByVal hdc As Long, pptxt As POLYTEXT, cStrings As Long) As Long + +Declare Function CreatePolygonRgn Lib "gdi32" Alias "CreatePolygonRgn" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long +Declare Function DPtoLP Lib "gdi32" Alias "DPtoLP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long +Declare Function LPtoDP Lib "gdi32" Alias "LPtoDP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long +Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long +Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long + +Declare Function PolyBezier Lib "gdi32" Alias "PolyBezier" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long +Declare Function PolyBezierTo Lib "gdi32" Alias "PolyBezierTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long +Declare Function PolylineTo Lib "gdi32" Alias "PolylineTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long + +Declare Function SetViewportExtEx Lib "gdi32" Alias "SetViewportExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long +Declare Function SetViewportOrgEx Lib "gdi32" Alias "SetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long +Declare Function SetWindowOrgEx Lib "gdi32" Alias "SetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long +Declare Function SetWindowExtEx Lib "gdi32" Alias "SetWindowExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long + +Declare Function OffsetViewportOrgEx Lib "gdi32" Alias "OffsetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long +Declare Function OffsetWindowOrgEx Lib "gdi32" Alias "OffsetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long +Declare Function ScaleWindowExtEx Lib "gdi32" Alias "ScaleWindowExtEx" (ByVal hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum As Long, ByVal nYdenom As Long, lpSize As SIZE) As Long +Declare Function ScaleViewportExtEx Lib "gdi32" Alias "ScaleViewportExtEx" (ByVal hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum As Long, ByVal nYdenom As Long, lpSize As SIZE) As Long +Declare Function SetBitmapDimensionEx Lib "gdi32" Alias "SetBitmapDimensionEx" (ByVal hbm As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long +Declare Function SetBrushOrgEx Lib "gdi32" Alias "SetBrushOrgEx" (ByVal hdc As Long, ByVal nXOrg As Long, ByVal nYOrg As Long, lppt As POINTAPI) As Long + +Declare Function GetTextFace Lib "gdi32" Alias "GetTextFaceA" (ByVal hdc As Long, ByVal nCount As Long, ByVal lpFacename As String) As Long + +Const FONTMAPPER_MAX = 10 + +Type KERNINGPAIR + wFirst As Integer + wSecond As Integer + iKernAmount As Long +End Type + +Declare Function GetKerningPairs Lib "gdi32" Alias "GetKerningPairsA" (ByVal hdc As Long, ByVal cPairs As Long, lpkrnpair As KERNINGPAIR) As Long + +Declare Function GetDCOrgEx Lib "gdi32" Alias "GetDCOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long +Declare Function UnrealizeObject Lib "gdi32" Alias "UnrealizeObject" (ByVal hObject As Long) As Long + +Declare Function GdiFlush Lib "gdi32" Alias "GdiFlush" () As Long +Declare Function GdiSetBatchLimit Lib "gdi32" Alias "GdiSetBatchLimit" (ByVal dwLimit As Long) As Long +Declare Function GdiGetBatchLimit Lib "gdi32" Alias "GdiGetBatchLimit" () As Long + +' Enhanced metafile constants + +Const ENHMETA_SIGNATURE = &H464D4520 + +' Stock object flag used in the object handle +' index in the enhanced metafile records. +' E.g. The object handle index (META_STOCK_OBJECT Or BLACK_BRUSH) +' represents the stock object BLACK_BRUSH. + +Const ENHMETA_STOCK_OBJECT = &H80000000 + +' Enhanced metafile record types. + +Const EMR_HEADER = 1 +Const EMR_POLYBEZIER = 2 +Const EMR_POLYGON = 3 +Const EMR_POLYLINE = 4 +Const EMR_POLYBEZIERTO = 5 +Const EMR_POLYLINETO = 6 +Const EMR_POLYPOLYLINE = 7 +Const EMR_POLYPOLYGON = 8 +Const EMR_SETWINDOWEXTEX = 9 +Const EMR_SETWINDOWORGEX = 10 +Const EMR_SETVIEWPORTEXTEX = 11 +Const EMR_SETVIEWPORTORGEX = 12 +Const EMR_SETBRUSHORGEX = 13 +Const EMR_EOF = 14 +Const EMR_SETPIXELV = 15 +Const EMR_SETMAPPERFLAGS = 16 +Const EMR_SETMAPMODE = 17 +Const EMR_SETBKMODE = 18 +Const EMR_SETPOLYFILLMODE = 19 +Const EMR_SETROP2 = 20 +Const EMR_SETSTRETCHBLTMODE = 21 +Const EMR_SETTEXTALIGN = 22 +Const EMR_SETCOLORADJUSTMENT = 23 +Const EMR_SETTEXTCOLOR = 24 +Const EMR_SETBKCOLOR = 25 +Const EMR_OFFSETCLIPRGN = 26 +Const EMR_MOVETOEX = 27 +Const EMR_SETMETARGN = 28 +Const EMR_EXCLUDECLIPRECT = 29 +Const EMR_INTERSECTCLIPRECT = 30 +Const EMR_SCALEVIEWPORTEXTEX = 31 +Const EMR_SCALEWINDOWEXTEX = 32 +Const EMR_SAVEDC = 33 +Const EMR_RESTOREDC = 34 +Const EMR_SETWORLDTRANSFORM = 35 +Const EMR_MODIFYWORLDTRANSFORM = 36 +Const EMR_SELECTOBJECT = 37 +Const EMR_CREATEPEN = 38 +Const EMR_CREATEBRUSHINDIRECT = 39 +Const EMR_DELETEOBJECT = 40 +Const EMR_ANGLEARC = 41 +Const EMR_ELLIPSE = 42 +Const EMR_RECTANGLE = 43 +Const EMR_ROUNDRECT = 44 +Const EMR_ARC = 45 +Const EMR_CHORD = 46 +Const EMR_PIE = 47 +Const EMR_SELECTPALETTE = 48 +Const EMR_CREATEPALETTE = 49 +Const EMR_SETPALETTEENTRIES = 50 +Const EMR_RESIZEPALETTE = 51 +Const EMR_REALIZEPALETTE = 52 +Const EMR_EXTFLOODFILL = 53 +Const EMR_LINETO = 54 +Const EMR_ARCTO = 55 +Const EMR_POLYDRAW = 56 +Const EMR_SETARCDIRECTION = 57 +Const EMR_SETMITERLIMIT = 58 +Const EMR_BEGINPATH = 59 +Const EMR_ENDPATH = 60 +Const EMR_CLOSEFIGURE = 61 +Const EMR_FILLPATH = 62 +Const EMR_STROKEANDFILLPATH = 63 +Const EMR_STROKEPATH = 64 +Const EMR_FLATTENPATH = 65 +Const EMR_WIDENPATH = 66 +Const EMR_SELECTCLIPPATH = 67 +Const EMR_ABORTPATH = 68 + +Const EMR_GDICOMMENT = 70 +Const EMR_FILLRGN = 71 +Const EMR_FRAMERGN = 72 +Const EMR_INVERTRGN = 73 +Const EMR_PAINTRGN = 74 +Const EMR_EXTSELECTCLIPRGN = 75 +Const EMR_BITBLT = 76 +Const EMR_STRETCHBLT = 77 +Const EMR_MASKBLT = 78 +Const EMR_PLGBLT = 79 +Const EMR_SETDIBITSTODEVICE = 80 +Const EMR_STRETCHDIBITS = 81 +Const EMR_EXTCREATEFONTINDIRECTW = 82 +Const EMR_EXTTEXTOUTA = 83 +Const EMR_EXTTEXTOUTW = 84 +Const EMR_POLYBEZIER16 = 85 +Const EMR_POLYGON16 = 86 +Const EMR_POLYLINE16 = 87 +Const EMR_POLYBEZIERTO16 = 88 +Const EMR_POLYLINETO16 = 89 +Const EMR_POLYPOLYLINE16 = 90 +Const EMR_POLYPOLYGON16 = 91 +Const EMR_POLYDRAW16 = 92 +Const EMR_CREATEMONOBRUSH = 93 +Const EMR_CREATEDIBPATTERNBRUSHPT = 94 +Const EMR_EXTCREATEPEN = 95 +Const EMR_POLYTEXTOUTA = 96 +Const EMR_POLYTEXTOUTW = 97 + +Const EMR_MIN = 1 +Const EMR_MAX = 97 + +Type emr + iType As Long + nSize As Long +End Type + +Type emrtext + ptlReference As POINTL + nchars As Long + offString As Long + fOptions As Long + rcl As RECTL + offDx As Long +End Type + +Type EMRABORTPATH + pEmr As emr +End Type + +Type EMRBEGINPATH + pEmr As emr +End Type + +Type EMRENDPATH + pEmr As emr +End Type + +Type EMRCLOSEFIGURE + pEmr As emr +End Type + +Type EMRFLATTENPATH + pEmr As emr +End Type + +Type EMRWIDENPATH + pEmr As emr +End Type + +Type EMRSETMETARGN + pEmr As emr +End Type + +Type EMREMRSAVEDC + pEmr As emr +End Type + +Type EMRREALIZEPALETTE + pEmr As emr +End Type + +Type EMRSELECTCLIPPATH + pEmr As emr + iMode As Long +End Type + +Type EMRSETBKMODE + pEmr As emr + iMode As Long +End Type + +Type EMRSETMAPMODE + pEmr As emr + iMode As Long +End Type + +Type EMRSETPOLYFILLMODE + pEmr As emr + iMode As Long +End Type + +Type EMRSETROP2 + pEmr As emr + iMode As Long +End Type + +Type EMRSETSTRETCHBLTMODE + pEmr As emr + iMode As Long +End Type + +Type EMRSETTEXTALIGN + pEmr As emr + iMode As Long +End Type + +Type EMRSETMITERLIMIT + pEmr As emr + eMiterLimit As Double +End Type + +Type EMRRESTOREDC + pEmr As emr + iRelative As Long +End Type + +Type EMRSETARCDIRECTION + pEmr As emr + iArcDirection As Long +End Type + +Type EMRSETMAPPERFLAGS + pEmr As emr + dwFlags As Long +End Type + +Type EMRSETTEXTCOLOR + pEmr As emr + crColor As Long +End Type + +Type EMRSETBKCOLOR + pEmr As emr + crColor As Long +End Type + +Type EMRSELECTOBJECT + pEmr As emr + ihObject As Long +End Type + +Type EMRDELETEOBJECT + pEmr As emr + ihObject As Long +End Type + +Type EMRSELECTPALETTE + pEmr As emr + ihPal As Long +End Type + +Type EMRRESIZEPALETTE + pEmr As emr + ihPal As Long + cEntries As Long +End Type + +Type EMRSETPALETTEENTRIES + pEmr As emr + ihPal As Long + iStart As Long + cEntries As Long + aPalEntries(1) As PALETTEENTRY +End Type + +Type EMRSETCOLORADJUSTMENT + pEmr As emr + ColorAdjustment As ColorAdjustment +End Type + +Type EMRGDICOMMENT + pEmr As emr + cbData As Long + Data(1) As Integer +End Type + +Type EMREOF + pEmr As emr + nPalEntries As Long + offPalEntries As Long + nSizeLast As Long +End Type + +Type EMRLINETO + pEmr As emr + ptl As POINTL +End Type + +Type EMRMOVETOEX + pEmr As emr + ptl As POINTL +End Type + +Type EMROFFSETCLIPRGN + pEmr As emr + ptlOffset As POINTL +End Type + +Type EMRFILLPATH + pEmr As emr + rclBounds As RECTL +End Type + +Type EMRSTROKEANDFILLPATH + pEmr As emr + rclBounds As RECTL +End Type + +Type EMRSTROKEPATH + pEmr As emr + rclBounds As RECTL +End Type + +Type EMREXCLUDECLIPRECT + pEmr As emr + rclClip As RECTL +End Type + +Type EMRINTERSECTCLIPRECT + pEmr As emr + rclClip As RECTL +End Type + +Type EMRSETVIEWPORTORGEX + pEmr As emr + ptlOrigin As POINTL +End Type + +Type EMRSETWINDOWORGEX + pEmr As emr + ptlOrigin As POINTL +End Type + +Type EMRSETBRUSHORGEX + pEmr As emr + ptlOrigin As POINTL +End Type + +Type EMRSETVIEWPORTEXTEX + pEmr As emr + szlExtent As SIZEL +End Type + +Type EMRSETWINDOWEXTEX + pEmr As emr + szlExtent As SIZEL +End Type + +Type EMRSCALEVIEWPORTEXTEX + pEmr As emr + xNum As Long + xDenom As Long + yNum As Long + yDemon As Long +End Type + +Type EMRSCALEWINDOWEXTEX + pEmr As emr + xNum As Long + xDenom As Long + yNum As Long + yDemon As Long +End Type + +Type EMRSETWORLDTRANSFORM + pEmr As emr + xform As XFORM +End Type + +Type EMRMODIFYWORLDTRANSFORM + pEmr As emr + xform As XFORM + iMode As Long +End Type + +Type EMRSETPIXELV + pEmr As emr + ptlPixel As POINTL + crColor As Long +End Type + +Type EMREXTFLOODFILL + pEmr As emr + ptlStart As POINTL + crColor As Long + iMode As Long +End Type + +Type EMRELLIPSE + pEmr As emr + rclBox As RECTL +End Type + +Type EMRRECTANGLE + pEmr As emr + rclBox As RECTL +End Type + +Type EMRROUNDRECT + pEmr As emr + rclBox As RECTL + szlCorner As SIZEL +End Type + +Type EMRARC + pEmr As emr + rclBox As RECTL + ptlStart As POINTL + ptlEnd As POINTL +End Type + +Type EMRARCTO + pEmr As emr + rclBox As RECTL + ptlStart As POINTL + ptlEnd As POINTL +End Type + +Type EMRCHORD + pEmr As emr + rclBox As RECTL + ptlStart As POINTL + ptlEnd As POINTL +End Type + +Type EMRPIE + pEmr As emr + rclBox As RECTL + ptlStart As POINTL + ptlEnd As POINTL +End Type + +Type EMRANGLEARC + pEmr As emr + ptlCenter As POINTL + nRadius As Long + eStartAngle As Double + eSweepAngle As Double +End Type + +Type EMRPOLYLINE + pEmr As emr + rclBounds As RECTL + cptl As Long + aptl(1) As POINTL +End Type + +Type EMRPOLYBEZIER + pEmr As emr + rclBounds As RECTL + cptl As Long + aptl(1) As POINTL +End Type + +Type EMRPOLYGON + pEmr As emr + rclBounds As RECTL + cptl As Long + aptl(1) As POINTL +End Type + +Type EMRPOLYBEZIERTO + pEmr As emr + rclBounds As RECTL + cptl As Long + aptl(1) As POINTL +End Type + +Type EMRPOLYLINE16 + pEmr As emr + rclBounds As RECTL + cpts As Long + apts(1) As POINTS +End Type + +Type EMRPOLYBEZIER16 + pEmr As emr + rclBounds As RECTL + cpts As Long + apts(1) As POINTS +End Type + +Type EMRPOLYGON16 + pEmr As emr + rclBounds As RECTL + cpts As Long + apts(1) As POINTS +End Type + +Type EMRPLOYBEZIERTO16 + pEmr As emr + rclBounds As RECTL + cpts As Long + apts(1) As POINTS +End Type + +Type EMRPOLYLINETO16 + pEmr As emr + rclBounds As RECTL + cpts As Long + apts(1) As POINTS +End Type + +Type EMRPOLYDRAW + pEmr As emr + rclBounds As RECTL + cptl As Long + aptl(1) As POINTL + abTypes(1) As Integer +End Type + +Type EMRPOLYDRAW16 + pEmr As emr + rclBounds As RECTL + cpts As Long + apts(1) As POINTS + abTypes(1) As Integer +End Type + +Type EMRPOLYPOLYLINE + pEmr As emr + rclBounds As RECTL + nPolys As Long + cptl As Long + aPolyCounts(1) As Long + aptl(1) As POINTL +End Type + +Type EMRPOLYPOLYGON + pEmr As emr + rclBounds As RECTL + nPolys As Long + cptl As Long + aPolyCounts(1) As Long + aptl(1) As POINTL +End Type + +Type EMRPOLYPOLYLINE16 + pEmr As emr + rclBounds As RECTL + nPolys As Long + cpts As Long + aPolyCounts(1) As Long + apts(1) As POINTS +End Type + +Type EMRPOLYPOLYGON16 + pEmr As emr + rclBounds As RECTL + nPolys As Long + cpts As Long + aPolyCounts(1) As Long + apts(1) As POINTS +End Type + +Type EMRINVERTRGN + pEmr As emr + rclBounds As RECTL + cbRgnData As Long + RgnData(1) As Integer +End Type + +Type EMRPAINTRGN + pEmr As emr + rclBounds As RECTL + cbRgnData As Long + RgnData(1) As Integer +End Type + +Type EMRFILLRGN + pEmr As emr + rclBounds As RECTL + cbRgnData As Long + ihBrush As Long + RgnData(1) As Integer +End Type + +Type EMRFRAMERGN + pEmr As emr + rclBounds As RECTL + cbRgnData As Long + ihBrush As Long + szlStroke As SIZEL + RgnData(1) As Integer +End Type + +Type EMREXTSELECTCLIPRGN + pEmr As emr + cbRgnData As Long + iMode As Long + RgnData(1) As Integer +End Type + +Type EMREXTTEXTOUT + pEmr As emr + rclBounds As RECTL + iGraphicsMode As Long + exScale As Double + eyScale As Double + emrtext As emrtext +End Type + +Type EMRBITBLT + pEmr As emr + rclBounds As RECTL + xDest As Long + yDest As Long + cxDest As Long + cyDest As Long + dwRop As Long + xSrc As Long + ySrc As Long + xformSrc As xform + crBkColorSrc As Long + iUsageSrc As Long + offBmiSrc As Long + cbBmiSrc As Long + offBitsSrc As Long + cbBitsSrc As Long +End Type + +Type EMRSTRETCHBLT + pEmr As emr + rclBounds As RECTL + xDest As Long + yDest As Long + cxDest As Long + cyDest As Long + dwRop As Long + xSrc As Long + ySrc As Long + xformSrc As xform + crBkColorSrc As Long + iUsageSrc As Long + offBmiSrc As Long + cbBmiSrc As Long + offBitsSrc As Long + cbBitsSrc As Long + cxSrc As Long + cySrc As Long +End Type + +Type EMRMASKBLT + pEmr As emr + rclBounds As RECTL + xDest As Long + yDest As Long + cxDest As Long + cyDest As Long + dwRop As Long + xSrc2 As Long + cyDest2 As Long + dwRop2 As Long + xSrc As Long + ySrc As Long + xformSrc As XFORM + crBkColorSrc As Long + iUsageSrc As Long + offBmiSrc As Long + cbBmiSrc As Long + offBitsSrc As Long + cbBitsSrc As Long + xMask As Long + yMask As Long + iUsageMask As Long + offBmiMask As Long + cbBmiMask As Long + offBitsMask As Long + cbBitsMask As Long +End Type + +Type EMRPLGBLT + pEmr As emr + rclBounds As RECTL + aptlDest(3) As POINTL + xSrc As Long + ySrc As Long + cxSrc As Long + cySrc As Long + xformSrc As XFORM + crBkColorSrc As Long + iUsageSrc As Long + offBmiSrc As Long + cbBmiSrc As Long + offBitsSrc As Long + cbBitsSrc As Long + xMask As Long + yMask As Long + iUsageMask As Long + offBmiMask As Long + cbBmiMask As Long + offBitsMask As Long + cbBitsMask As Long +End Type + +Type EMRSETDIBITSTODEVICE + pEmr As emr + rclBounds As RECTL + xDest As Long + yDest As Long + xSrc As Long + ySrc As Long + cxSrc As Long + cySrc As Long + offBmiSrc As Long + cbBmiSrc As Long + offBitsSrc As Long + cbBitsSrc As Long + iUsageSrc As Long + iStartScan As Long + cScans As Long +End Type + +Type EMRSTRETCHDIBITS + pEmr As emr + rclBounds As RECTL + xDest As Long + yDest As Long + xSrc As Long + ySrc As Long + cxSrc As Long + cySrc As Long + offBmiSrc As Long + cbBmiSrc As Long + offBitsSrc As Long + cbBitsSrc As Long + iUsageSrc As Long + dwRop As Long + cxDest As Long + cyDest As Long +End Type + +Type EMREXTCREATEFONTINDIRECT + pEmr As emr + ihFont As Long + elfw As EXTLOGFONT +End Type + +Type EMRCREATEPALETTE + pEmr As emr + ihPal As Long + lgpl As LOGPALETTE +End Type + +Type EMRCREATEPEN + pEmr As emr + ihPen As Long + lopn As LOGPEN +End Type + +Type EMREXTCREATEPEN + pEmr As emr + ihPen As Long + offBmi As Long + cbBmi As Long + offBits As Long + cbBits As Long + elp As EXTLOGPEN +End Type + +Type EMRCREATEBRUSHINDIRECT + pEmr As emr + ihBrush As Long + lb As LOGBRUSH +End Type + +Type EMRCREATEMONOBRUSH + pEmr As emr + ihBrush As Long + iUsage As Long + offBmi As Long + cbBmi As Long + offBits As Long + cbBits As Long +End Type + +Type EMRCREATEDIBPATTERNBRUSHPT + pEmr As emr + ihBursh As Long + iUsage As Long + offBmi As Long + cbBmi As Long + offBits As Long + cbBits As Long +End Type + +' new wingdi +' ************************************************************************* +' * * +' * wingdi.h -- GDI procedure declarations, constant definitions and macros * +' * * +' * Copyright (c) 1985-1995, Microsoft Corp. All rights reserved. * +' * * +' **************************************************************************/ + +' StretchBlt() Modes +Const STRETCH_ANDSCANS = 1 +Const STRETCH_ORSCANS = 2 +Const STRETCH_DELETESCANS = 3 +Const STRETCH_HALFTONE = 4 + +Type BITMAPV4HEADER + bV4Size As Long + bV4Width As Long + bV4Height As Long + bV4Planes As Integer + bV4BitCount As Integer + bV4V4Compression As Long + bV4SizeImage As Long + bV4XPelsPerMeter As Long + bV4YPelsPerMeter As Long + bV4ClrUsed As Long + bV4ClrImportant As Long + bV4RedMask As Long + bV4GreenMask As Long + bV4BlueMask As Long + bV4AlphaMask As Long + bV4CSType As Long + bV4Endpoints As Long + bV4GammaRed As Long + bV4GammaGreen As Long + bV4GammaBlue As Long +End Type + +Type FONTSIGNATURE + fsUsb(4) As Long + fsCsb(2) As Long +End Type + +Type CHARSETINFO + ciCharset As Long + ciACP As Long + fs As FONTSIGNATURE +End Type + +Const TCI_SRCCHARSET = 1 +Const TCI_SRCCODEPAGE = 2 +Const TCI_SRCFONTSIG = 3 + +Type LOCALESIGNATURE + lsUsb(4) As Long + lsCsbDefault(2) As Long + lsCsbSupported(2) As Long +End Type + +Type NEWTEXTMETRICEX + ntmTm As NEWTEXTMETRIC + ntmFontSig As FONTSIGNATURE +End Type + +Type ENUMLOGFONTEX + elfLogFont As LOGFONT + elfFullName(LF_FULLFACESIZE) As Byte + elfStyle(LF_FACESIZE) As Byte + elfScript(LF_FACESIZE) As Byte +End Type + +Const MONO_FONT = 8 +Const JOHAB_CHARSET = 130 +Const HEBREW_CHARSET = 177 +Const ARABIC_CHARSET = 178 +Const GREEK_CHARSET = 161 +Const TURKISH_CHARSET = 162 +Const THAI_CHARSET = 222 +Const EASTEUROPE_CHARSET = 238 +Const RUSSIAN_CHARSET = 204 + +Const MAC_CHARSET = 77 +Const BALTIC_CHARSET = 186 + +Const FS_LATIN1 = &H1& +Const FS_LATIN2 = &H2& +Const FS_CYRILLIC = &H4& +Const FS_GREEK = &H8& +Const FS_TURKISH = &H10& +Const FS_HEBREW = &H20& +Const FS_ARABIC = &H40& +Const FS_BALTIC = &H80& +Const FS_THAI = &H10000 +Const FS_JISJAPAN = &H20000 +Const FS_CHINESESIMP = &H40000 +Const FS_WANSUNG = &H80000 +Const FS_CHINESETRAD = &H100000 +Const FS_JOHAB = &H200000 +Const FS_SYMBOL = &H80000000 +Const DEFAULT_GUI_FONT = 17 +' current version of specification +Const DM_RESERVED1 = &H800000 +Const DM_RESERVED2 = &H1000000 +Const DM_ICMMETHOD = &H2000000 +Const DM_ICMINTENT = &H4000000 +Const DM_MEDIATYPE = &H8000000 +Const DM_DITHERTYPE = &H10000000 +Const DMPAPER_ISO_B4 = 42 ' B4 (ISO) 250 x 353 mm +Const DMPAPER_JAPANESE_POSTCARD = 43 ' Japanese Postcard 100 x 148 mm +Const DMPAPER_9X11 = 44 ' 9 x 11 in +Const DMPAPER_10X11 = 45 ' 10 x 11 in +Const DMPAPER_15X11 = 46 ' 15 x 11 in +Const DMPAPER_ENV_INVITE = 47 ' Envelope Invite 220 x 220 mm +Const DMPAPER_RESERVED_48 = 48 ' RESERVED--DO NOT USE +Const DMPAPER_RESERVED_49 = 49 ' RESERVED--DO NOT USE +Const DMPAPER_LETTER_EXTRA = 50 ' Letter Extra 9 \275 x 12 in +Const DMPAPER_LEGAL_EXTRA = 51 ' Legal Extra 9 \275 x 15 in +Const DMPAPER_TABLOID_EXTRA = 52 ' Tabloid Extra 11.69 x 18 in +Const DMPAPER_A4_EXTRA = 53 ' A4 Extra 9.27 x 12.69 in +Const DMPAPER_LETTER_TRANSVERSE = 54 ' Letter Transverse 8 \275 x 11 in +Const DMPAPER_A4_TRANSVERSE = 55 ' A4 Transverse 210 x 297 mm +Const DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 ' Letter Extra Transverse 9\275 x 12 in +Const DMPAPER_A_PLUS = 57 ' SuperA/SuperA/A4 227 x 356 mm +Const DMPAPER_B_PLUS = 58 ' SuperB/SuperB/A3 305 x 487 mm +Const DMPAPER_LETTER_PLUS = 59 ' Letter Plus 8.5 x 12.69 in +Const DMPAPER_A4_PLUS = 60 ' A4 Plus 210 x 330 mm +Const DMPAPER_A5_TRANSVERSE = 61 ' A5 Transverse 148 x 210 mm +Const DMPAPER_B5_TRANSVERSE = 62 ' B5 (JIS) Transverse 182 x 257 mm +Const DMPAPER_A3_EXTRA = 63 ' A3 Extra 322 x 445 mm +Const DMPAPER_A5_EXTRA = 64 ' A5 Extra 174 x 235 mm +Const DMPAPER_B5_EXTRA = 65 ' B5 (ISO) Extra 201 x 276 mm +Const DMPAPER_A2 = 66 ' A2 420 x 594 mm +Const DMPAPER_A3_TRANSVERSE = 67 ' A3 Transverse 297 x 420 mm +Const DMPAPER_A3_EXTRA_TRANSVERSE = 68 ' A3 Extra Transverse 322 x 445 mm +Const DMTT_DOWNLOAD_OUTLINE = 4 ' download TT fonts as outline soft fonts + +' ICM methods +Const DMICMMETHOD_NONE = 1 ' ICM disabled +Const DMICMMETHOD_SYSTEM = 2 ' ICM handled by system +Const DMICMMETHOD_DRIVER = 3 ' ICM handled by driver +Const DMICMMETHOD_DEVICE = 4 ' ICM handled by device +Const DMICMMETHOD_USER = 256 ' Device-specific methods start here + +' ICM Intents +Const DMICM_SATURATE = 1 ' Maximize color saturation +Const DMICM_CONTRAST = 2 ' Maximize color contrast +Const DMICM_COLORMETRIC = 3 ' Use specific color metric +Const DMICM_USER = 256 ' Device-specific intents start here + +' Media types +Const DMMEDIA_STANDARD = 1 ' Standard paper +Const DMMEDIA_GLOSSY = 2 ' Glossy paper +Const DMMEDIA_TRANSPARENCY = 3 ' Transparency + +Const DMMEDIA_USER = 256 ' Device-specific media start here + +' Dither types +Const DMDITHER_NONE = 1 ' No dithering +Const DMDITHER_COARSE = 2 ' Dither with a coarse brush +Const DMDITHER_FINE = 3 ' Dither with a fine brush +Const DMDITHER_LINEART = 4 ' LineArt dithering +Const DMDITHER_GRAYSCALE = 5 ' Device does grayscaling +Const DMDITHER_USER = 256 ' Device-specific dithers start here +Const GGO_GRAY2_BITMAP = 4 +Const GGO_GRAY4_BITMAP = 5 +Const GGO_GRAY8_BITMAP = 6 +Const GGO_GLYPH_INDEX = &H80 +Const GCP_DBCS = &H1 +Const GCP_REORDER = &H2 +Const GCP_USEKERNING = &H8 +Const GCP_GLYPHSHAPE = &H10 +Const GCP_LIGATE = &H20 +Const GCP_DIACRITIC = &H100 +Const GCP_KASHIDA = &H400 +Const GCP_ERROR = &H8000 +Const FLI_MASK = &H103B +Const GCP_JUSTIFY = &H10000 +Const GCP_NODIACRITICS = &H20000 +Const FLI_GLYPHS = &H40000 +Const GCP_CLASSIN = &H80000 +Const GCP_MAXEXTENT = &H100000 +Const GCP_JUSTIFYIN = &H200000 +Const GCP_DISPLAYZWG = &H400000 +Const GCP_SYMSWAPOFF = &H800000 +Const GCP_NUMERICOVERRIDE = &H1000000 +Const GCP_NEUTRALOVERRIDE = &H2000000 +Const GCP_NUMERICSLATIN = &H4000000 +Const GCP_NUMERICSLOCAL = &H8000000 +Const GCPCLASS_LATIN = 1 +Const GCPCLASS_HEBREW = 2 +Const GCPCLASS_ARABIC = 2 +Const GCPCLASS_NEUTRAL = 3 +Const GCPCLASS_LOCALNUMBER = 4 +Const GCPCLASS_LATINNUMBER = 5 +Const GCPCLASS_LATINNUMERICTERMINATOR = 6 +Const GCPCLASS_LATINNUMERICSEPARATOR = 7 +Const GCPCLASS_NUMERICSEPARATOR = 8 +Const GCPCLASS_PREBOUNDRTL = &H80 +Const GCPCLASS_PREBOUNDLTR = &H40 + + + +Type GCP_RESULTS + lStructSize As Long + lpOutString As String + lpOrder As Long + lpDX As Long + lpCaretPos As Long + lpClass As String + lpGlyphs As String + nGlyphs As Long + nMaxFit As Long +End Type + +Const DC_BINADJUST = 19 +Const DC_EMF_COMPLIANT = 20 +Const DC_DATATYPE_PRODUCED = 21 +Const DC_COLLATE = 22 + +Const DCTT_DOWNLOAD_OUTLINE = &H8& + +' return values for DC_BINADJUST +Const DCBA_FACEUPNONE = &H0 +Const DCBA_FACEUPCENTER = &H1 +Const DCBA_FACEUPLEFT = &H2 +Const DCBA_FACEUPRIGHT = &H3 +Const DCBA_FACEDOWNNONE = &H100 +Const DCBA_FACEDOWNCENTER = &H101 +Const DCBA_FACEDOWNLEFT = &H102 +Const DCBA_FACEDOWNRIGHT = &H103 + +Declare Function EnumFontFamilies Lib "gdi32" Alias "EnumFontFamiliesA" (ByVal hdc As Long, ByVal lpszFamily As String, ByVal lpEnumFontFamProc As Long, ByVal lParam As Long) As Long +Declare Function EnumFontFamiliesEx Lib "gdi32" Alias "EnumFontFamiliesExA" (ByVal hdc As Long, lpLogFont As LOGFONT, ByVal lpEnumFontProc As Long, ByVal lParam As Long, ByVal dw As Long) As Long +Declare Function GetTextCharset Lib "gdi32" Alias "GetTextCharset" (ByVal hdc As Long) As Long +Declare Function GetTextCharsetInfo Lib "gdi32" Alias "GetTextCharsetInfo" (ByVal hdc As Long, lpSig As FONTSIGNATURE, ByVal dwFlags As Long) As Long + +Declare Function TranslateCharsetInfo Lib "gdi32" Alias "TranslateCharsetInfo" (lpSrc As Long, lpcs As CHARSETINFO, ByVal dwFlags As Long) As Long +Declare Function GetFontLanguageInfo Lib "gdi32" Alias "GetFontLanguageInfo" (ByVal hdc As Long) As Long +Declare Function GetCharacterPlacement Lib "gdi32" Alias " GetCharacterPlacementA" (ByVal hdc As Long, ByVal lpsz As String, ByVal n1 As Long, ByVal n2 As Long, lpGcpResults As GCP_RESULTS, ByVal dw As Long) As Long + +Const ICM_OFF = 1 +Const ICM_ON = 2 +Const ICM_QUERY = 3 + +Type CIEXYZ + ciexyzX As Long + ciexyzY As Long + ciexyzZ As Long +End Type + +Type CIEXYZTRIPLE + ciexyzRed As CIEXYZ + ciexyzGreen As CIEXYZ + ciexyBlue As CIEXYZ +End Type + +Type LOGCOLORSPACE + lcsSignature As Long + lcsVersion As Long + lcsSize As Long + lcsCSType As Long + lcsIntent As Long + lcsEndPoints As CIEXYZTRIPLE + lcsGammaRed As Long + lcsGammaGreen As Long + lcsGammaBlue As Long + lcsFileName As String * MAX_PATH +End Type + +Declare Function SetICMMode Lib "gdi32" Alias "SetICMMode" (ByVal hdc As Long, ByVal n As Long) As Long +Declare Function CheckColorsInGamut Lib "gdi32" Alias "CheckColorsInGamut" (ByVal hdc As Long, lpv As Any, lpv2 As Any, ByVal dw As Long) As Long +Declare Function GetLogColorSpace Lib "gdi32" Alias "GetLogColorSpaceA" (ByVal hcolorspace As Long, ByVal lplogcolorspace As LOGCOLORSPACE, ByVal dw As Long) As Long +Declare Function GetColorSpace Lib "gdi32" Alias "GetColorSpace" (ByVal hdc As Long) As Long + +Declare Function CreateColorSpace Lib "gdi32" Alias "CreateColorSpaceA" (lplogcolorspace As LOGCOLORSPACE) As Long + +Declare Function SetColorSpace Lib "gdi32" Alias "SetColorSpace" (ByVal hdc As Long, ByVal hcolorspace As Long) As Long +Declare Function DeleteColorSpace Lib "gdi32" Alias "DeleteColorSpace" (ByVal hcolorspace As Long) As Long +Declare Function GetICMProfile Lib "gdi32" Alias "GetICMProfileA" (ByVal hdc As Long, ByVal dw As Long, ByVal lpStr As String) As Long +Declare Function SetICMProfile Lib "gdi32" Alias "SetICMProfileA" (ByVal hdc As Long, ByVal lpStr As String) As Long +Declare Function GetDeviceGammaRamp Lib "gdi32" Alias "GetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long +Declare Function SetDeviceGammaRamp Lib "gdi32" Alias "SetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long +Declare Function ColorMatchToTarget Lib "gdi32" Alias "ColorMatchToTarget" (ByVal hdc As Long, ByVal hdc2 As Long, ByVal dw As Long) As Long + +Declare Function EnumICMProfiles Lib "gdi32" Alias "EnumICMProfilesA" (ByVal hdc As Long, ByVal icmEnumProc As Long, ByVal lParam As Long) As Long + +Const EMR_SETICMMODE = 98 +Const EMR_CREATECOLORSPACE = 99 +Const EMR_SETCOLORSPACE = 100 +Const EMR_DELETECOLORSPACE = 101 + +Type EMRSELECTCOLORSPACE + pEmr As emr + ihCS As Long ' ColorSpace handle index +End Type + +Type EMRCREATECOLORSPACE + pEmr As emr + ihCS As Long ' ColorSpace handle index + lcs As LOGCOLORSPACE +End Type + + +' -------------- +' USER Section +' -------------- + +' Scroll Bar Constants +Const SB_HORZ = 0 +Const SB_VERT = 1 +Const SB_CTL = 2 +Const SB_BOTH = 3 + +' Scroll Bar Commands +Const SB_LINEUP = 0 +Const SB_LINELEFT = 0 +Const SB_LINEDOWN = 1 +Const SB_LINERIGHT = 1 +Const SB_PAGEUP = 2 +Const SB_PAGELEFT = 2 +Const SB_PAGEDOWN = 3 +Const SB_PAGERIGHT = 3 +Const SB_THUMBPOSITION = 4 +Const SB_THUMBTRACK = 5 +Const SB_TOP = 6 +Const SB_LEFT = 6 +Const SB_BOTTOM = 7 +Const SB_RIGHT = 7 +Const SB_ENDSCROLL = 8 + +' ShowWindow() Commands +Const SW_HIDE = 0 +Const SW_SHOWNORMAL = 1 +Const SW_NORMAL = 1 +Const SW_SHOWMINIMIZED = 2 +Const SW_SHOWMAXIMIZED = 3 +Const SW_MAXIMIZE = 3 +Const SW_SHOWNOACTIVATE = 4 +Const SW_SHOW = 5 +Const SW_MINIMIZE = 6 +Const SW_SHOWMINNOACTIVE = 7 +Const SW_SHOWNA = 8 +Const SW_RESTORE = 9 +Const SW_SHOWDEFAULT = 10 +Const SW_MAX = 10 + +' Old ShowWindow() Commands +Const HIDE_WINDOW = 0 +Const SHOW_OPENWINDOW = 1 +Const SHOW_ICONWINDOW = 2 +Const SHOW_FULLSCREEN = 3 +Const SHOW_OPENNOACTIVATE = 4 + +' Identifiers for the WM_SHOWWINDOW message +Const SW_PARENTCLOSING = 1 +Const SW_OTHERZOOM = 2 +Const SW_PARENTOPENING = 3 +Const SW_OTHERUNZOOM = 4 + +' WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags +Const KF_EXTENDED = &H100 +Const KF_DLGMODE = &H800 +Const KF_MENUMODE = &H1000 +Const KF_ALTDOWN = &H2000 +Const KF_REPEAT = &H4000 +Const KF_UP = &H8000 + +' Virtual Keys, Standard Set +Const VK_LBUTTON = &H1 +Const VK_RBUTTON = &H2 +Const VK_CANCEL = &H3 +Const VK_MBUTTON = &H4 ' NOT contiguous with L RBUTTON + +Const VK_BACK = &H8 +Const VK_TAB = &H9 + +Const VK_CLEAR = &HC +Const VK_RETURN = &HD + +Const VK_SHIFT = &H10 +Const VK_CONTROL = &H11 +Const VK_MENU = &H12 +Const VK_PAUSE = &H13 +Const VK_CAPITAL = &H14 + +Const VK_ESCAPE = &H1B + +Const VK_SPACE = &H20 +Const VK_PRIOR = &H21 +Const VK_NEXT = &H22 +Const VK_END = &H23 +Const VK_HOME = &H24 +Const VK_LEFT = &H25 +Const VK_UP = &H26 +Const VK_RIGHT = &H27 +Const VK_DOWN = &H28 +Const VK_SELECT = &H29 +Const VK_PRINT = &H2A +Const VK_EXECUTE = &H2B +Const VK_SNAPSHOT = &H2C +Const VK_INSERT = &H2D +Const VK_DELETE = &H2E +Const VK_HELP = &H2F + +' VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z' +' VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '9' + +Const VK_NUMPAD0 = &H60 +Const VK_NUMPAD1 = &H61 +Const VK_NUMPAD2 = &H62 +Const VK_NUMPAD3 = &H63 +Const VK_NUMPAD4 = &H64 +Const VK_NUMPAD5 = &H65 +Const VK_NUMPAD6 = &H66 +Const VK_NUMPAD7 = &H67 +Const VK_NUMPAD8 = &H68 +Const VK_NUMPAD9 = &H69 +Const VK_MULTIPLY = &H6A +Const VK_ADD = &H6B +Const VK_SEPARATOR = &H6C +Const VK_SUBTRACT = &H6D +Const VK_DECIMAL = &H6E +Const VK_DIVIDE = &H6F +Const VK_F1 = &H70 +Const VK_F2 = &H71 +Const VK_F3 = &H72 +Const VK_F4 = &H73 +Const VK_F5 = &H74 +Const VK_F6 = &H75 +Const VK_F7 = &H76 +Const VK_F8 = &H77 +Const VK_F9 = &H78 +Const VK_F10 = &H79 +Const VK_F11 = &H7A +Const VK_F12 = &H7B +Const VK_F13 = &H7C +Const VK_F14 = &H7D +Const VK_F15 = &H7E +Const VK_F16 = &H7F +Const VK_F17 = &H80 +Const VK_F18 = &H81 +Const VK_F19 = &H82 +Const VK_F20 = &H83 +Const VK_F21 = &H84 +Const VK_F22 = &H85 +Const VK_F23 = &H86 +Const VK_F24 = &H87 + +Const VK_NUMLOCK = &H90 +Const VK_SCROLL = &H91 + +' +' VK_L VK_R - left and right Alt, Ctrl and Shift virtual keys. +' Used only as parameters to GetAsyncKeyState() and GetKeyState(). +' No other API or message will distinguish left and right keys in this way. +' / +Const VK_LSHIFT = &HA0 +Const VK_RSHIFT = &HA1 +Const VK_LCONTROL = &HA2 +Const VK_RCONTROL = &HA3 +Const VK_LMENU = &HA4 +Const VK_RMENU = &HA5 + +Const VK_ATTN = &HF6 +Const VK_CRSEL = &HF7 +Const VK_EXSEL = &HF8 +Const VK_EREOF = &HF9 +Const VK_PLAY = &HFA +Const VK_ZOOM = &HFB +Const VK_NONAME = &HFC +Const VK_PA1 = &HFD +Const VK_OEM_CLEAR = &HFE + +' SetWindowsHook() codes +Const WH_MIN = (-1) +Const WH_MSGFILTER = (-1) +Const WH_JOURNALRECORD = 0 +Const WH_JOURNALPLAYBACK = 1 +Const WH_KEYBOARD = 2 +Const WH_GETMESSAGE = 3 +Const WH_CALLWNDPROC = 4 +Const WH_CBT = 5 +Const WH_SYSMSGFILTER = 6 +Const WH_MOUSE = 7 +Const WH_HARDWARE = 8 +Const WH_DEBUG = 9 +Const WH_SHELL = 10 +Const WH_FOREGROUNDIDLE = 11 +Const WH_MAX = 11 + +' Hook Codes +Const HC_ACTION = 0 +Const HC_GETNEXT = 1 +Const HC_SKIP = 2 +Const HC_NOREMOVE = 3 +Const HC_NOREM = HC_NOREMOVE +Const HC_SYSMODALON = 4 +Const HC_SYSMODALOFF = 5 + +' CBT Hook Codes +Const HCBT_MOVESIZE = 0 +Const HCBT_MINMAX = 1 +Const HCBT_QS = 2 +Const HCBT_CREATEWND = 3 +Const HCBT_DESTROYWND = 4 +Const HCBT_ACTIVATE = 5 +Const HCBT_CLICKSKIPPED = 6 +Const HCBT_KEYSKIPPED = 7 +Const HCBT_SYSCOMMAND = 8 +Const HCBT_SETFOCUS = 9 + +' HCBT_ACTIVATE structure pointed to by lParam +Type CBTACTIVATESTRUCT + fMouse As Long + hWndActive As Long +End Type + +' WH_MSGFILTER Filter Proc Codes +Const MSGF_DIALOGBOX = 0 +Const MSGF_MESSAGEBOX = 1 +Const MSGF_MENU = 2 +Const MSGF_MOVE = 3 +Const MSGF_SIZE = 4 +Const MSGF_SCROLLBAR = 5 +Const MSGF_NEXTWINDOW = 6 +Const MSGF_MAINLOOP = 8 +Const MSGF_MAX = 8 +Const MSGF_USER = 4096 + +Const HSHELL_WINDOWCREATED = 1 +Const HSHELL_WINDOWDESTROYED = 2 +Const HSHELL_ACTIVATESHELLWINDOW = 3 + +' Message Structure used in Journaling +Type EVENTMSG + message As Long + paramL As Long + paramH As Long + time As Long + hwnd As Long +End Type + +Type CWPSTRUCT + lParam As Long + wParam As Long + message As Long + hwnd As Long +End Type + +Type DEBUGHOOKINFO + hModuleHook As Long + Reserved As Long + lParam As Long + wParam As Long + code As Long +End Type + + +Type MOUSEHOOKSTRUCT + pt As POINTAPI + hwnd As Long + wHitTestCode As Long + dwExtraInfo As Long +End Type + +' Keyboard Layout API +Const HKL_PREV = 0 +Const HKL_NEXT = 1 + +Const KLF_ACTIVATE = &H1 +Const KLF_SUBSTITUTE_OK = &H2 +Const KLF_UNLOADPREVIOUS = &H4 +Const KLF_REORDER = &H8 + +' Size of KeyboardLayoutName (number of characters), including nul terminator +Const KL_NAMELENGTH = 9 + +Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long +Declare Function ActivateKeyboardLayout Lib "user32" Alias "ActivateKeyboardLayout" (ByVal HKL As Long, ByVal flags As Long) As Long +Declare Function UnloadKeyboardLayout Lib "user32" Alias "UnloadKeyboardLayout" (ByVal HKL As Long) As Long +Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long + +' Desktop-specific access flags +Const DESKTOP_READOBJECTS = &H1& +Const DESKTOP_CREATEWINDOW = &H2& +Const DESKTOP_CREATEMENU = &H4& +Const DESKTOP_HOOKCONTROL = &H8& +Const DESKTOP_JOURNALRECORD = &H10& +Const DESKTOP_JOURNALPLAYBACK = &H20& +Const DESKTOP_ENUMERATE = &H40& +Const DESKTOP_WRITEOBJECTS = &H80& + +Declare Function GetThreadDesktop Lib "user32" Alias "GetThreadDesktop" (ByVal dwThread As Long) As Long + +' Windowstation-specific access flags +Const WINSTA_ENUMDESKTOPS = &H1& +Const WINSTA_READATTRIBUTES = &H2& +Const WINSTA_ACCESSCLIPBOARD = &H4& +Const WINSTA_CREATEDESKTOP = &H8& +Const WINSTA_WRITEATTRIBUTES = &H10& +Const WINSTA_ACCESSPUBLICATOMS = &H20& +Const WINSTA_EXITWINDOWS = &H40& +Const WINSTA_ENUMERATE = &H100& +Const WINSTA_READSCREEN = &H200& + +Declare Function GetProcessWindowStation Lib "user32" Alias "GetProcessWindowStation" () As Long +Declare Function SetUserObjectSecurity Lib "user32" Alias "SetUserObjectSecurity" (ByVal hObj As Long, pSIRequested As Long, pSd As SECURITY_DESCRIPTOR) As Long +Declare Function GetUserObjectSecurity Lib "user32" Alias "GetUserObjectSecurity" (ByVal hObj As Long, pSIRequested As Long, pSd As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long + +' Message structure + +' Window field offsets for GetWindowLong() and GetWindowWord() +Const GWL_WNDPROC = (-4) +Const GWL_HINSTANCE = (-6) +Const GWL_HWNDPARENT = (-8) +Const GWL_STYLE = (-16) +Const GWL_EXSTYLE = (-20) +Const GWL_USERDATA = (-21) +Const GWL_ID = (-12) + +' Class field offsets for GetClassLong() and GetClassWord() +Const GCL_MENUNAME = (-8) +Const GCL_HBRBACKGROUND = (-10) +Const GCL_HCURSOR = (-12) +Const GCL_HICON = (-14) +Const GCL_HMODULE = (-16) +Const GCL_CBWNDEXTRA = (-18) +Const GCL_CBCLSEXTRA = (-20) +Const GCL_WNDPROC = (-24) +Const GCL_STYLE = (-26) +Const GCW_ATOM = (-32) + +' Window Messages +Const WM_NULL = &H0 +Const WM_CREATE = &H1 +Const WM_DESTROY = &H2 +Const WM_MOVE = &H3 +Const WM_SIZE = &H5 + +Const WM_ACTIVATE = &H6 +' +' WM_ACTIVATE state values + +Const WA_INACTIVE = 0 +Const WA_ACTIVE = 1 +Const WA_CLICKACTIVE = 2 + +Const WM_SETFOCUS = &H7 +Const WM_KILLFOCUS = &H8 +Const WM_ENABLE = &HA +Const WM_SETREDRAW = &HB +Const WM_SETTEXT = &HC +Const WM_GETTEXT = &HD +Const WM_GETTEXTLENGTH = &HE +Const WM_PAINT = &HF +Const WM_CLOSE = &H10 +Const WM_QUERYENDSESSION = &H11 +Const WM_QUIT = &H12 +Const WM_QUERYOPEN = &H13 +Const WM_ERASEBKGND = &H14 +Const WM_SYSCOLORCHANGE = &H15 +Const WM_ENDSESSION = &H16 +Const WM_SHOWWINDOW = &H18 +Const WM_WININICHANGE = &H1A +Const WM_DEVMODECHANGE = &H1B +Const WM_ACTIVATEAPP = &H1C +Const WM_FONTCHANGE = &H1D +Const WM_TIMECHANGE = &H1E +Const WM_CANCELMODE = &H1F +Const WM_SETCURSOR = &H20 +Const WM_MOUSEACTIVATE = &H21 +Const WM_CHILDACTIVATE = &H22 +Const WM_QUEUESYNC = &H23 + +Const WM_GETMINMAXINFO = &H24 + +Type MINMAXINFO + ptReserved As POINTAPI + ptMaxSize As POINTAPI + ptMaxPosition As POINTAPI + ptMinTrackSize As POINTAPI + ptMaxTrackSize As POINTAPI +End Type + +Const WM_PAINTICON = &H26 +Const WM_ICONERASEBKGND = &H27 +Const WM_NEXTDLGCTL = &H28 +Const WM_SPOOLERSTATUS = &H2A +Const WM_DRAWITEM = &H2B +Const WM_MEASUREITEM = &H2C +Const WM_DELETEITEM = &H2D +Const WM_VKEYTOITEM = &H2E +Const WM_CHARTOITEM = &H2F +Const WM_SETFONT = &H30 +Const WM_GETFONT = &H31 +Const WM_SETHOTKEY = &H32 +Const WM_GETHOTKEY = &H33 +Const WM_QUERYDRAGICON = &H37 +Const WM_COMPAREITEM = &H39 +Const WM_COMPACTING = &H41 +Const WM_OTHERWINDOWCREATED = &H42 ' no longer suported +Const WM_OTHERWINDOWDESTROYED = &H43 ' no longer suported +Const WM_COMMNOTIFY = &H44 ' no longer suported + +' notifications passed in low word of lParam on WM_COMMNOTIFY messages +Const CN_RECEIVE = &H1 +Const CN_TRANSMIT = &H2 +Const CN_EVENT = &H4 + +Const WM_WINDOWPOSCHANGING = &H46 +Const WM_WINDOWPOSCHANGED = &H47 + +Const WM_POWER = &H48 +' +' wParam for WM_POWER window message and DRV_POWER driver notification + +Const PWR_OK = 1 +Const PWR_FAIL = (-1) +Const PWR_SUSPENDREQUEST = 1 +Const PWR_SUSPENDRESUME = 2 +Const PWR_CRITICALRESUME = 3 + +Const WM_COPYDATA = &H4A +Const WM_CANCELJOURNAL = &H4B + +Type COPYDATASTRUCT + dwData As Long + cbData As Long + lpData As Long +End Type + +Const WM_NCCREATE = &H81 +Const WM_NCDESTROY = &H82 +Const WM_NCCALCSIZE = &H83 +Const WM_NCHITTEST = &H84 +Const WM_NCPAINT = &H85 +Const WM_NCACTIVATE = &H86 +Const WM_GETDLGCODE = &H87 +Const WM_NCMOUSEMOVE = &HA0 +Const WM_NCLBUTTONDOWN = &HA1 +Const WM_NCLBUTTONUP = &HA2 +Const WM_NCLBUTTONDBLCLK = &HA3 +Const WM_NCRBUTTONDOWN = &HA4 +Const WM_NCRBUTTONUP = &HA5 +Const WM_NCRBUTTONDBLCLK = &HA6 +Const WM_NCMBUTTONDOWN = &HA7 +Const WM_NCMBUTTONUP = &HA8 +Const WM_NCMBUTTONDBLCLK = &HA9 + +Const WM_KEYFIRST = &H100 +Const WM_KEYDOWN = &H100 +Const WM_KEYUP = &H101 +Const WM_CHAR = &H102 +Const WM_DEADCHAR = &H103 +Const WM_SYSKEYDOWN = &H104 +Const WM_SYSKEYUP = &H105 +Const WM_SYSCHAR = &H106 +Const WM_SYSDEADCHAR = &H107 +Const WM_KEYLAST = &H108 +Const WM_INITDIALOG = &H110 +Const WM_COMMAND = &H111 +Const WM_SYSCOMMAND = &H112 +Const WM_TIMER = &H113 +Const WM_HSCROLL = &H114 +Const WM_VSCROLL = &H115 +Const WM_INITMENU = &H116 +Const WM_INITMENUPOPUP = &H117 +Const WM_MENUSELECT = &H11F +Const WM_MENUCHAR = &H120 +Const WM_ENTERIDLE = &H121 + +Const WM_CTLCOLORMSGBOX = &H132 +Const WM_CTLCOLOREDIT = &H133 +Const WM_CTLCOLORLISTBOX = &H134 +Const WM_CTLCOLORBTN = &H135 +Const WM_CTLCOLORDLG = &H136 +Const WM_CTLCOLORSCROLLBAR = &H137 +Const WM_CTLCOLORSTATIC = &H138 + +Const WM_MOUSEFIRST = &H200 +Const WM_MOUSEMOVE = &H200 +Const WM_LBUTTONDOWN = &H201 +Const WM_LBUTTONUP = &H202 +Const WM_LBUTTONDBLCLK = &H203 +Const WM_RBUTTONDOWN = &H204 +Const WM_RBUTTONUP = &H205 +Const WM_RBUTTONDBLCLK = &H206 +Const WM_MBUTTONDOWN = &H207 +Const WM_MBUTTONUP = &H208 +Const WM_MBUTTONDBLCLK = &H209 +Const WM_MOUSELAST = &H209 + +Const WM_PARENTNOTIFY = &H210 +Const WM_ENTERMENULOOP = &H211 +Const WM_EXITMENULOOP = &H212 +Const WM_MDICREATE = &H220 +Const WM_MDIDESTROY = &H221 +Const WM_MDIACTIVATE = &H222 +Const WM_MDIRESTORE = &H223 +Const WM_MDINEXT = &H224 +Const WM_MDIMAXIMIZE = &H225 +Const WM_MDITILE = &H226 +Const WM_MDICASCADE = &H227 +Const WM_MDIICONARRANGE = &H228 +Const WM_MDIGETACTIVE = &H229 +Const WM_MDISETMENU = &H230 +Const WM_DROPFILES = &H233 +Const WM_MDIREFRESHMENU = &H234 + + +Const WM_CUT = &H300 +Const WM_COPY = &H301 +Const WM_PASTE = &H302 +Const WM_CLEAR = &H303 +Const WM_UNDO = &H304 +Const WM_RENDERFORMAT = &H305 +Const WM_RENDERALLFORMATS = &H306 +Const WM_DESTROYCLIPBOARD = &H307 +Const WM_DRAWCLIPBOARD = &H308 +Const WM_PAINTCLIPBOARD = &H309 +Const WM_VSCROLLCLIPBOARD = &H30A +Const WM_SIZECLIPBOARD = &H30B +Const WM_ASKCBFORMATNAME = &H30C +Const WM_CHANGECBCHAIN = &H30D +Const WM_HSCROLLCLIPBOARD = &H30E +Const WM_QUERYNEWPALETTE = &H30F +Const WM_PALETTEISCHANGING = &H310 +Const WM_PALETTECHANGED = &H311 +Const WM_HOTKEY = &H312 + +Const WM_PENWINFIRST = &H380 +Const WM_PENWINLAST = &H38F + +' NOTE: All Message Numbers below 0x0400 are RESERVED. + +' Private Window Messages Start Here: +Const WM_USER = &H400 + +' WM_SYNCTASK Commands +Const ST_BEGINSWP = 0 +Const ST_ENDSWP = 1 + +' WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes +Const HTERROR = (-2) +Const HTTRANSPARENT = (-1) +Const HTNOWHERE = 0 +Const HTCLIENT = 1 +Const HTCAPTION = 2 +Const HTSYSMENU = 3 +Const HTGROWBOX = 4 +Const HTSIZE = HTGROWBOX +Const HTMENU = 5 +Const HTHSCROLL = 6 +Const HTVSCROLL = 7 +Const HTMINBUTTON = 8 +Const HTMAXBUTTON = 9 +Const HTLEFT = 10 +Const HTRIGHT = 11 +Const HTTOP = 12 +Const HTTOPLEFT = 13 +Const HTTOPRIGHT = 14 +Const HTBOTTOM = 15 +Const HTBOTTOMLEFT = 16 +Const HTBOTTOMRIGHT = 17 +Const HTBORDER = 18 +Const HTREDUCE = HTMINBUTTON +Const HTZOOM = HTMAXBUTTON +Const HTSIZEFIRST = HTLEFT +Const HTSIZELAST = HTBOTTOMRIGHT + +' SendMessageTimeout values +Const SMTO_NORMAL = &H0 +Const SMTO_BLOCK = &H1 +Const SMTO_ABORTIFHUNG = &H2 + +' WM_MOUSEACTIVATE Return Codes +Const MA_ACTIVATE = 1 +Const MA_ACTIVATEANDEAT = 2 +Const MA_NOACTIVATE = 3 +Const MA_NOACTIVATEANDEAT = 4 + +Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long + +' WM_SIZE message wParam values +Const SIZE_RESTORED = 0 +Const SIZE_MINIMIZED = 1 +Const SIZE_MAXIMIZED = 2 +Const SIZE_MAXSHOW = 3 +Const SIZE_MAXHIDE = 4 + +' Obsolete constant names +Const SIZENORMAL = SIZE_RESTORED +Const SIZEICONIC = SIZE_MINIMIZED +Const SIZEFULLSCREEN = SIZE_MAXIMIZED +Const SIZEZOOMSHOW = SIZE_MAXSHOW +Const SIZEZOOMHIDE = SIZE_MAXHIDE + +' WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam +Type WINDOWPOS + hwnd As Long + hWndInsertAfter As Long + x As Long + y As Long + cx As Long + cy As Long + flags As Long +End Type + +' WM_NCCALCSIZE return flags +Const WVR_ALIGNTOP = &H10 +Const WVR_ALIGNLEFT = &H20 +Const WVR_ALIGNBOTTOM = &H40 +Const WVR_ALIGNRIGHT = &H80 +Const WVR_HREDRAW = &H100 +Const WVR_VREDRAW = &H200 +Const WVR_REDRAW = (WVR_HREDRAW Or WVR_VREDRAW) +Const WVR_VALIDRECTS = &H400 + +' Key State Masks for Mouse Messages +Const MK_LBUTTON = &H1 +Const MK_RBUTTON = &H2 +Const MK_SHIFT = &H4 +Const MK_CONTROL = &H8 +Const MK_MBUTTON = &H10 + +' Window Styles +Const WS_OVERLAPPED = &H0& +Const WS_POPUP = &H80000000 +Const WS_CHILD = &H40000000 +Const WS_MINIMIZE = &H20000000 +Const WS_VISIBLE = &H10000000 +Const WS_DISABLED = &H8000000 +Const WS_CLIPSIBLINGS = &H4000000 +Const WS_CLIPCHILDREN = &H2000000 +Const WS_MAXIMIZE = &H1000000 +Const WS_CAPTION = &HC00000 ' WS_BORDER Or WS_DLGFRAME +Const WS_BORDER = &H800000 +Const WS_DLGFRAME = &H400000 +Const WS_VSCROLL = &H200000 +Const WS_HSCROLL = &H100000 +Const WS_SYSMENU = &H80000 +Const WS_THICKFRAME = &H40000 +Const WS_GROUP = &H20000 +Const WS_TABSTOP = &H10000 + +Const WS_MINIMIZEBOX = &H20000 +Const WS_MAXIMIZEBOX = &H10000 + +Const WS_TILED = WS_OVERLAPPED +Const WS_ICONIC = WS_MINIMIZE +Const WS_SIZEBOX = WS_THICKFRAME +Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX) +Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW + +' +' Common Window Styles +' / + + +Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU) + +Const WS_CHILDWINDOW = (WS_CHILD) + +' Extended Window Styles +Const WS_EX_DLGMODALFRAME = &H1& +Const WS_EX_NOPARENTNOTIFY = &H4& +Const WS_EX_TOPMOST = &H8& +Const WS_EX_ACCEPTFILES = &H10& +Const WS_EX_TRANSPARENT = &H20& + +' Class styles +Const CS_VREDRAW = &H1 +Const CS_HREDRAW = &H2 +Const CS_KEYCVTWINDOW = &H4 +Const CS_DBLCLKS = &H8 +Const CS_OWNDC = &H20 +Const CS_CLASSDC = &H40 +Const CS_PARENTDC = &H80 +Const CS_NOKEYCVT = &H100 +Const CS_NOCLOSE = &H200 +Const CS_SAVEBITS = &H800 +Const CS_BYTEALIGNCLIENT = &H1000 +Const CS_BYTEALIGNWINDOW = &H2000 +Const CS_PUBLICCLASS = &H4000 + +' Predefined Clipboard Formats +Const CF_TEXT = 1 +Const CF_BITMAP = 2 +Const CF_METAFILEPICT = 3 +Const CF_SYLK = 4 +Const CF_DIF = 5 +Const CF_TIFF = 6 +Const CF_OEMTEXT = 7 +Const CF_DIB = 8 +Const CF_PALETTE = 9 +Const CF_PENDATA = 10 +Const CF_RIFF = 11 +Const CF_WAVE = 12 +Const CF_UNICODETEXT = 13 +Const CF_ENHMETAFILE = 14 + +Const CF_OWNERDISPLAY = &H80 +Const CF_DSPTEXT = &H81 +Const CF_DSPBITMAP = &H82 +Const CF_DSPMETAFILEPICT = &H83 +Const CF_DSPENHMETAFILE = &H8E + +' "Private" formats don't get GlobalFree()'d +Const CF_PRIVATEFIRST = &H200 +Const CF_PRIVATELAST = &H2FF + +' "GDIOBJ" formats do get DeleteObject()'d +Const CF_GDIOBJFIRST = &H300 +Const CF_GDIOBJLAST = &H3FF + +' Defines for the fVirt field of the Accelerator table structure. +Const FVIRTKEY = True ' Assumed to be == TRUE +Const FNOINVERT = &H2 +Const FSHIFT = &H4 +Const FCONTROL = &H8 +Const FALT = &H10 + +Type ACCEL + fVirt As Byte + key As Integer + cmd As Integer +End Type + +Type PAINTSTRUCT + hdc As Long + fErase As Long + rcPaint As Rect + fRestore As Long + fIncUpdate As Long + rgbReserved(32) As Byte +End Type + +Type CREATESTRUCT + lpCreateParams As Long + hInstance As Long + hMenu As Long + hWndParent As Long + cy As Long + cx As Long + y As Long + x As Long + style As Long + lpszName As String + lpszClass As String + ExStyle As Long +End Type + +' HCBT_CREATEWND parameters pointed to by lParam +Type CBT_CREATEWND + lpcs As CREATESTRUCT + hWndInsertAfter As Long +End Type + +Type WINDOWPLACEMENT + Length As Long + flags As Long + showCmd As Long + ptMinPosition As POINTAPI + ptMaxPosition As POINTAPI + rcNormalPosition As Rect +End Type + +Const WPF_SETMINPOSITION = &H1 +Const WPF_RESTORETOMAXIMIZED = &H2 + +' Owner draw control types +Const ODT_MENU = 1 +Const ODT_LISTBOX = 2 +Const ODT_COMBOBOX = 3 +Const ODT_BUTTON = 4 + +' Owner draw actions +Const ODA_DRAWENTIRE = &H1 +Const ODA_SELECT = &H2 +Const ODA_FOCUS = &H4 + +' Owner draw state +Const ODS_SELECTED = &H1 +Const ODS_GRAYED = &H2 +Const ODS_DISABLED = &H4 +Const ODS_CHECKED = &H8 +Const ODS_FOCUS = &H10 + +' MEASUREITEMSTRUCT for ownerdraw +Type MEASUREITEMSTRUCT + CtlType As Long + CtlID As Long + itemID As Long + itemWidth As Long + itemHeight As Long + itemData As Long +End Type + +' DRAWITEMSTRUCT for ownerdraw +Type DRAWITEMSTRUCT + CtlType As Long + CtlID As Long + itemID As Long + itemAction As Long + itemState As Long + hwndItem As Long + hdc As Long + rcItem As Rect + itemData As Long +End Type + +' DELETEITEMSTRUCT for ownerdraw +Type DELETEITEMSTRUCT + CtlType As Long + CtlID As Long + itemID As Long + hwndItem As Long + itemData As Long +End Type + +' COMPAREITEMSTRUCT for ownerdraw sorting +Type COMPAREITEMSTRUCT + CtlType As Long + CtlID As Long + hwndItem As Long + itemID1 As Long + itemData1 As Long + itemID2 As Long + itemData2 As Long +End Type + +' Message Function Templates +Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long +Declare Function TranslateMessage Lib "user32" Alias "TranslateMessage" (lpMsg As MSG) As Long +Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As MSG) As Long +Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long + +' PeekMessage() Options +Const PM_NOREMOVE = &H0 +Const PM_REMOVE = &H1 +Const PM_NOYIELD = &H2 + +Declare Function RegisterHotKey Lib "user32" Alias "RegisterHotKey" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long +Declare Function UnregisterHotKey Lib "user32" Alias "UnregisterHotKey" (ByVal hwnd As Long, ByVal id As Long) As Long + +Const MOD_ALT = &H1 +Const MOD_CONTROL = &H2 +Const MOD_SHIFT = &H4 + +Const IDHOT_SNAPWINDOW = (-1) ' SHIFT-PRINTSCRN +Const IDHOT_SNAPDESKTOP = (-2) ' PRINTSCRN + +Const EWX_LOGOFF = 0 +Const EWX_SHUTDOWN = 1 +Const EWX_REBOOT = 2 +Const EWX_FORCE = 4 + +Const READAPI = 0 ' Flags for _lopen +Const WRITEAPI = 1 +Const READ_WRITE = 2 + +Declare Function ExitWindows Lib "user32" Alias "ExitWindows" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long +Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long + +Declare Function SwapMouseButton Lib "user32" Alias "SwapMouseButton" (ByVal bSwap As Long) As Long +Declare Function GetMessagePos Lib "user32" Alias "GetMessagePos" () As Long +Declare Function GetMessageTime Lib "user32" Alias "GetMessageTime" () As Long +Declare Function GetMessageExtraInfo Lib "user32" Alias "GetMessageExtraInfo" () As Long +Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long +Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long +Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Function SendMessageCallback Lib "user32" Alias "SendMessageCallbackA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal lpResultCallBack As Long, ByVal dwData As Long) As Long +Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long + +' Special HWND value for use with PostMessage and SendMessage +Const HWND_BROADCAST = &HFFFF& + + +Type WNDCLASS + style As Long + lpfnwndproc As Long + cbClsextra As Long + cbWndExtra2 As Long + hInstance As Long + hIcon As Long + hCursor As Long + hbrBackground As Long + lpszMenuName As String + lpszClassName As String +End Type + +Declare Function AttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long +Declare Function ReplyMessage Lib "user32" Alias "ReplyMessage" (ByVal lReply As Long) As Long +Declare Function WaitMessage Lib "user32" Alias "WaitMessage" () As Long +Declare Function WaitForInputIdle Lib "user32" Alias "WaitForInputIdle" (ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long +Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Sub PostQuitMessage Lib "user32" Alias "PostQuitMessage" (ByVal nExitCode As Long) +Declare Function InSendMessage Lib "user32" Alias "InSendMessage" () As Long + +Private Declare Function InitCommonControls Lib "COMCTL32" () As Long +Private Declare Function ImageList_Create Lib "COMCTL32" (ByVal MinCx As Long, ByVal MinCy As Long, ByVal flags As Long, ByVal cInitial As Long, ByVal cGrow As Long) As Long +Private Declare Function ImageList_AddIcon Lib "COMCTL32" (ByVal himl As Long, ByVal hIcon As Long) As Long +Private Declare Function ImageList_GetIcon Lib "COMCTL32" (ByVal HIMAGELIST As Long, ByVal ImgIndex As Long, hbmMask As Long) As Long +Private Declare Function ImageList_Draw Lib "COMCTL32" (ByVal HIMAGELIST As Long, ByVal ImgIndex As Long, ByVal hDCDest As Long, ByVal xDest As Long, ByVal yDest As Long, ByVal lStyle As Long) As Long + + + + +Declare Function GetDoubleClickTime Lib "user32" Alias "GetDoubleClickTime" () As Long +Declare Function SetDoubleClickTime Lib "user32" Alias "SetDoubleClickTime" (ByVal wCount As Long) As Long +Declare Function RegisterClass Lib "user32" Alias "RegisterClassA" (Class As WNDCLASS) As Long +Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" (ByVal lpClassName As String, ByVal hInstance As Long) As Long +Declare Function GetClassInfo Lib "user32" Alias "GetClassInfoA" (ByVal hInstance As Long, ByVal lpClassName As String, lpWndClass As WNDCLASS) As Long + +Const CW_USEDEFAULT = &H80000000 +Const HWND_DESKTOP = 0 + +Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long +Declare Function IsWindow Lib "user32" Alias "IsWindow" (ByVal hwnd As Long) As Long +Declare Function IsMenu Lib "user32" Alias "IsMenu" (ByVal hMenu As Long) As Long +Declare Function IsChild Lib "user32" Alias "IsChild" (ByVal hWndParent As Long, ByVal hwnd As Long) As Long +Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long + +Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long +Declare Function FlashWindow Lib "user32" Alias "FlashWindow" (ByVal hwnd As Long, ByVal bInvert As Long) As Long +Declare Function ShowOwnedPopups Lib "user32" Alias "ShowOwnedPopups" (ByVal hwnd As Long, ByVal fShow As Long) As Long + +Declare Function OpenIcon Lib "user32" Alias "OpenIcon" (ByVal hwnd As Long) As Long +Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As Long +Declare Function MoveWindow Lib "user32" Alias "MoveWindow" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long +Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long +Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long +Declare Function SetWindowPlacement Lib "user32" Alias "SetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long + +Declare Function BeginDeferWindowPos Lib "user32" Alias "BeginDeferWindowPos" (ByVal nNumWindows As Long) As Long +Declare Function DeferWindowPos Lib "user32" Alias "DeferWindowPos" (ByVal hWinPosInfo As Long, ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long +Declare Function EndDeferWindowPos Lib "user32" Alias "EndDeferWindowPos" (ByVal hWinPosInfo As Long) As Long + +Declare Function IsWindowVisible Lib "user32" Alias "IsWindowVisible" (ByVal hwnd As Long) As Long +Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long) As Long +Declare Function AnyPopup Lib "user32" Alias "AnyPopup" () As Long +Declare Function BringWindowToTop Lib "user32" Alias "BringWindowToTop" (ByVal hwnd As Long) As Long +Declare Function IsZoomed Lib "user32" Alias "IsZoomed" (ByVal hwnd As Long) As Long + +' SetWindowPos Flags +Const SWP_NOSIZE = &H1 +Const SWP_NOMOVE = &H2 +Const SWP_NOZORDER = &H4 +Const SWP_NOREDRAW = &H8 +Const SWP_NOACTIVATE = &H10 +Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE +Const SWP_SHOWWINDOW = &H40 +Const SWP_HIDEWINDOW = &H80 +Const SWP_NOCOPYBITS = &H100 +Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering + +Const SWP_DRAWFRAME = SWP_FRAMECHANGED +Const SWP_NOREPOSITION = SWP_NOOWNERZORDER + +' SetWindowPos() hwndInsertAfter values +Const HWND_TOP = 0 +Const HWND_BOTTOM = 1 +Const HWND_TOPMOST = -1 +Const HWND_NOTOPMOST = -2 + +Type DLGTEMPLATE + style As Long + dwExtendedStyle As Long + cdit As Integer + x As Integer + y As Integer + cx As Integer + cy As Integer +End Type + +Type DLGITEMTEMPLATE + style As Long + dwExtendedStyle As Long + x As Integer + y As Integer + cx As Integer + cy As Integer + id As Integer +End Type + +Declare Function EndDialog Lib "user32" Alias "EndDialog" (ByVal hDlg As Long, ByVal nResult As Long) As Long +Declare Function GetDlgItem Lib "user32" Alias "GetDlgItem" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long +Declare Function SetDlgItemInt Lib "user32" Alias "SetDlgItemInt" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wValue As Long, ByVal bSigned As Long) As Long +Declare Function GetDlgItemInt Lib "user32" Alias "GetDlgItemInt" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpTranslated As Long, ByVal bSigned As Long) As Long +Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Long +Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long +Declare Function CheckDlgButton Lib "user32" Alias "CheckDLGButtonA" (ByVal hDlg As Long, ByVal nIDButton As Long, ByVal wCheck As Long) As Long +Declare Function CheckRadioButton Lib "user32" Alias "CheckRadioButtonA" (ByVal hDlg As Long, ByVal nIDFirstButton As Long, ByVal nIDLastButton As Long, ByVal nIDCheckButton As Long) As Long +Declare Function IsDlgButtonChecked Lib "user32" Alias "IsDlgButtonChecked" (ByVal hDlg As Long, ByVal nIDButton As Long) As Long +Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Function GetNextDlgGroupItem Lib "user32" Alias "GetNextDlgGroupItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long +Declare Function GetNextDlgTabItem Lib "user32" Alias "GetNextDlgTabItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long +Declare Function GetDlgCtrlID Lib "user32" Alias "GetDlgCtrlID" (ByVal hwnd As Long) As Long +Declare Function GetDialogBaseUnits Lib "user32" Alias "GetDialogBaseUnits" () As Long +Declare Function DefDlgProc Lib "user32" Alias "DefDlgProcA" (ByVal hDlg As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long + +Const DLGWINDOWEXTRA = 30 ' Window extra bytes needed for private dialog classes + +Declare Function CallMsgFilter Lib "user32" Alias "CallMsgFilterA" (lpMsg As MSG, ByVal ncode As Long) As Long + +' Clipboard Manager Functions +Declare Function OpenClipboard Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long +Declare Function CloseClipboard Lib "user32" Alias "CloseClipboard" () As Long +Declare Function GetClipboardOwner Lib "user32" Alias "GetClipboardOwner" () As Long +Declare Function SetClipboardViewer Lib "user32" Alias "SetClipboardViewer" (ByVal hwnd As Long) As Long +Declare Function GetClipboardViewer Lib "user32" Alias "GetClipboardViewer" () As Long +Declare Function ChangeClipboardChain Lib "user32" Alias "ChangeClipboardChain" (ByVal hwnd As Long, ByVal hWndNext As Long) As Long +Declare Function SetClipboardData Lib "user32" Alias "SetClipboardDataA" (ByVal wFormat As Long, ByVal hMem As Long) As Long +Declare Function GetClipboardData Lib "user32" Alias "GetClipboardDataA" (ByVal wFormat As Long) As Long +Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" (ByVal lpString As String) As Long +Declare Function CountClipboardFormats Lib "user32" Alias "CountClipboardFormats" () As Long +Declare Function EnumClipboardFormats Lib "user32" Alias "EnumClipboardFormats" (ByVal wFormat As Long) As Long +Declare Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" (ByVal wFormat As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long +Declare Function EmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long +Declare Function IsClipboardFormatAvailable Lib "user32" Alias "IsClipboardFormatAvailable" (ByVal wFormat As Long) As Long +Declare Function GetPriorityClipboardFormat Lib "user32" Alias "GetPriorityClipboardFormat" (lpPriorityList As Long, ByVal nCount As Long) As Long +Declare Function GetOpenClipboardWindow Lib "user32" Alias "GetOpenClipboardWindow" () As Long +Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long +Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long +Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long +Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long +Declare Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As String) As String +Declare Function CharUpperBuff Lib "user32" Alias "CharUpperBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long +Declare Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As String) As String +Declare Function CharLowerBuff Lib "user32" Alias "CharLowerBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long +Declare Function CharNext Lib "user32" Alias "CharNextA" (ByVal lpsz As String) As String +Declare Function CharPrev Lib "user32" Alias "CharPrevA" (ByVal lpszStart As String, ByVal lpszCurrent As String) As String + +' Language dependent Routines +Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" (ByVal cChar As Byte) As Long +Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte) As Long +Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal cChar As Byte) As Long +Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" (ByVal cChar As Byte) As Long + +Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long +Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long +Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long + +' Keyboard Information Routines +Declare Function GetKBCodePage Lib "user32" Alias "GetKBCodePage" () As Long +Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKey As Long) As Integer +Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer +Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long +Declare Function SetKeyboardState Lib "user32" Alias "SetKeyboardState" (lppbKeyState As Byte) As Long +Declare Function GetKeyboardType Lib "user32" Alias "GetKeyboardType" (ByVal nTypeFlag As Long) As Long +Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long + +Declare Function ToAscii Lib "user32" Alias "ToAscii" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpbKeyState As Byte, lpwTransKey As Long, ByVal fuState As Long) As Long +Declare Function ToUnicode Lib "user32" Alias "ToUnicode" (ByVal wVirtKey As Long, ByVal wScanCode As Long, lpKeyState As Byte, ByVal pwszBuff As String, ByVal cchBuff As Long, ByVal wFlags As Long) As Long + +Declare Function OemKeyScan Lib "user32" Alias "OemKeyScan" (ByVal wOemChar As Long) As Long +Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" (ByVal cChar As Byte) As Integer + +Const KEYEVENTF_EXTENDEDKEY = &H1 +Const KEYEVENTF_KEYUP = &H2 + +Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) + +Const MOUSEEVENTF_MOVE = &H1 ' mouse move +Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down +Const MOUSEEVENTF_LEFTUP = &H4 ' left button up +Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down +Const MOUSEEVENTF_RIGHTUP = &H10 ' right button up +Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down +Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up +Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move + +Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) +Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long + +Declare Function GetInputState Lib "user32" Alias "GetInputState" () As Long +Declare Function GetQueueStatus Lib "user32" Alias "GetQueueStatus" (ByVal fuFlags As Long) As Long +Declare Function GetCapture Lib "user32" Alias "GetCapture" () As Long +Declare Function SetCapture Lib "user32" Alias "SetCapture" (ByVal hwnd As Long) As Long +Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long + +Declare Function MsgWaitForMultipleObjects Lib "user32" Alias "MsgWaitForMultipleObjects" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long + +' GetQueueStatus flags +Const QS_KEY = &H1 +Const QS_MOUSEMOVE = &H2 +Const QS_MOUSEBUTTON = &H4 +Const QS_POSTMESSAGE = &H8 +Const QS_TIMER = &H10 +Const QS_PAINT = &H20 +Const QS_SENDMESSAGE = &H40 +Const QS_HOTKEY = &H80 + +Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON) + +Const QS_INPUT = (QS_MOUSE Or QS_KEY) + +Const QS_ALLEVENTS = (QS_INPUT Or QS_POSTMESSAGE Or QS_TIMER Or QS_PAINT Or QS_HOTKEY) + +Const QS_ALLINPUT = (QS_SENDMESSAGE Or QS_PAINT Or QS_TIMER Or QS_POSTMESSAGE Or QS_MOUSEBUTTON Or QS_MOUSEMOVE Or QS_HOTKEY Or QS_KEY) + +' Windows Functions +Declare Function KillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long + +Declare Function IsWindowUnicode Lib "user32" Alias "IsWindowUnicode" (ByVal hwnd As Long) As Long + +Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long +Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal hwnd As Long) As Long + +Declare Function LoadAccelerators Lib "user32" Alias "LoadAcceleratorsA" (ByVal hInstance As Long, ByVal lpTableName As String) As Long +Declare Function CreateAcceleratorTable Lib "user32" Alias "CreateAcceleratorTableA" (lpaccl As ACCEL, ByVal cEntries As Long) As Long +Declare Function DestroyAcceleratorTable Lib "user32" Alias "DestroyAcceleratorTable" (ByVal haccel As Long) As Long +Declare Function CopyAcceleratorTable Lib "user32" Alias "CopyAcceleratorTableA" (ByVal hAccelSrc As Long, lpAccelDst As ACCEL, ByVal cAccelEntries As Long) As Long +Declare Function TranslateAccelerator Lib "user32" Alias "TranslateAcceleratorA" (ByVal hwnd As Long, ByVal hAccTable As Long, lpMsg As MSG) As Long + +' GetSystemMetrics() codes +Const SM_CXSCREEN = 0 +Const SM_CYSCREEN = 1 +Const SM_CXVSCROLL = 2 +Const SM_CYHSCROLL = 3 +Const SM_CYCAPTION = 4 +Const SM_CXBORDER = 5 +Const SM_CYBORDER = 6 +Const SM_CXDLGFRAME = 7 +Const SM_CYDLGFRAME = 8 +Const SM_CYVTHUMB = 9 +Const SM_CXHTHUMB = 10 +Const SM_CXICON = 11 +Const SM_CYICON = 12 +Const SM_CXCURSOR = 13 +Const SM_CYCURSOR = 14 +Const SM_CYMENU = 15 +Const SM_CXFULLSCREEN = 16 +Const SM_CYFULLSCREEN = 17 +Const SM_CYKANJIWINDOW = 18 +Const SM_MOUSEPRESENT = 19 +Const SM_CYVSCROLL = 20 +Const SM_CXHSCROLL = 21 +Const SM_DEBUG = 22 +Const SM_SWAPBUTTON = 23 +Const SM_RESERVED1 = 24 +Const SM_RESERVED2 = 25 +Const SM_RESERVED3 = 26 +Const SM_RESERVED4 = 27 +Const SM_CXMIN = 28 +Const SM_CYMIN = 29 +Const SM_CXSIZE = 30 +Const SM_CYSIZE = 31 +Const SM_CXFRAME = 32 +Const SM_CYFRAME = 33 +Const SM_CXMINTRACK = 34 +Const SM_CYMINTRACK = 35 +Const SM_CXDOUBLECLK = 36 +Const SM_CYDOUBLECLK = 37 +Const SM_CXICONSPACING = 38 +Const SM_CYICONSPACING = 39 +Const SM_MENUDROPALIGNMENT = 40 +Const SM_PENWINDOWS = 41 +Const SM_DBCSENABLED = 42 +Const SM_CMOUSEBUTTONS = 43 +Const SM_CMETRICS = 44 +Const SM_CXSIZEFRAME = SM_CXFRAME +Const SM_CYSIZEFRAME = SM_CYFRAME +Const SM_CXFIXEDFRAME = SM_CXDLGFRAME +Const SM_CYFIXEDFRAME = SM_CYDLGFRAME + +Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long + +Declare Function LoadMenu Lib "user32" Alias "LoadMenuA" (ByVal hInstance As Long, ByVal lpString As String) As Long +Declare Function LoadMenuIndirect Lib "user32" Alias "LoadMenuIndirectA" (ByVal lpMenuTemplate As Long) As Long +Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Long) As Long +Declare Function SetMenu Lib "user32" Alias "SetMenu" (ByVal hwnd As Long, ByVal hMenu As Long) As Long +Declare Function HiliteMenuItem Lib "user32" Alias "HiliteMenuItem" (ByVal hwnd As Long, ByVal hMenu As Long, ByVal wIDHiliteItem As Long, ByVal wHilite As Long) As Long +Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long +Declare Function GetMenuState Lib "user32" Alias "GetMenuState" (ByVal hMenu As Long, ByVal wID As Long, ByVal wFlags As Long) As Long +Declare Function DrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hwnd As Long) As Long +Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long +Declare Function CreateMenu Lib "user32" Alias "CreateMenu" () As Long +Declare Function CreatePopupMenu Lib "user32" Alias "CreatePopupMenu" () As Long +Declare Function DestroyMenu Lib "user32" Alias "DestroyMenu" (ByVal hMenu As Long) As Long +Declare Function CheckMenuItem Lib "user32" Alias "CheckMenuItem" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long +Declare Function EnableMenuItem Lib "user32" Alias "EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long +Declare Function GetSubMenu Lib "user32" Alias "GetSubMenu" (ByVal hMenu As Long, ByVal nPos As Long) As Long +Declare Function GetMenuItemID Lib "user32" Alias "GetMenuItemID" (ByVal hMenu As Long, ByVal nPos As Long) As Long +Declare Function GetMenuItemCount Lib "user32" Alias "GetMenuItemCount" (ByVal hMenu As Long) As Long + +Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long +Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long +Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long +Declare Function RemoveMenu Lib "user32" Alias "RemoveMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long +Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long +Declare Function SetMenuItemBitmaps Lib "user32" Alias "SetMenuItemBitmaps" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long +Declare Function GetMenuCheckMarkDimensions Lib "user32" Alias "GetMenuCheckMarkDimensions" () As Long +Declare Function TrackPopupMenu Lib "user32" Alias "TrackPopupMenu" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Rect) As Long + +' Flags for TrackPopupMenu +Const TPM_LEFTBUTTON = &H0& +Const TPM_RIGHTBUTTON = &H2& +Const TPM_LEFTALIGN = &H0& +Const TPM_CENTERALIGN = &H4& +Const TPM_RIGHTALIGN = &H8& + +Declare Function DrawIcon Lib "user32" Alias "DrawIcon" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long + +' DrawText() Format Flags +Const DT_TOP = &H0 +Const DT_LEFT = &H0 +Const DT_CENTER = &H1 +Const DT_RIGHT = &H2 +Const DT_VCENTER = &H4 +Const DT_BOTTOM = &H8 +Const DT_WORDBREAK = &H10 +Const DT_SINGLELINE = &H20 +Const DT_EXPANDTABS = &H40 +Const DT_TABSTOP = &H80 +Const DT_NOCLIP = &H100 +Const DT_EXTERNALLEADING = &H200 +Const DT_CALCRECT = &H400 +Const DT_NOPREFIX = &H800 +Const DT_INTERNAL = &H1000 + +Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long +Declare Function TabbedTextOut Lib "user32" Alias "TabbedTextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long, ByVal nTabOrigin As Long) As Long +Declare Function GetTabbedTextExtent Lib "user32" Alias "GetTabbedTextExtentA" (ByVal hdc As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long) As Long + +Declare Function UpdateWindow Lib "user32" Alias "UpdateWindow" (ByVal hwnd As Long) As Long +Declare Function SetActiveWindow Lib "user32" Alias "SetActiveWindow" (ByVal hwnd As Long) As Long +Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long +Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long +Declare Function WindowFromDC Lib "user32" Alias "WindowFromDC" (ByVal hdc As Long) As Long + +Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long +Declare Function GetDCEx Lib "user32" Alias "GetDCEx" (ByVal hwnd As Long, ByVal hrgnclip As Long, ByVal fdwOptions As Long) As Long + +Const DCX_WINDOW = &H1& +Const DCX_CACHE = &H2& +Const DCX_NORESETATTRS = &H4& +Const DCX_CLIPCHILDREN = &H8& +Const DCX_CLIPSIBLINGS = &H10& +Const DCX_PARENTCLIP = &H20& + +Const DCX_EXCLUDERGN = &H40& +Const DCX_INTERSECTRGN = &H80& + +Const DCX_EXCLUDEUPDATE = &H100& +Const DCX_INTERSECTUPDATE = &H200& + +Const DCX_LOCKWINDOWUPDATE = &H400& + +Const DCX_NORECOMPUTE = &H100000 +Const DCX_VALIDATE = &H200000 + +Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long +Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long + +Declare Function BeginPaint Lib "user32" Alias "BeginPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long +Declare Function EndPaint Lib "user32" Alias "EndPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long +Declare Function GetUpdateRect Lib "user32" Alias "GetUpdateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long +Declare Function GetUpdateRgn Lib "user32" Alias "GetUpdateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal fErase As Long) As Long +Declare Function ExcludeUpdateRgn Lib "user32" Alias "ExcludeUpdateRgn" (ByVal hdc As Long, ByVal hwnd As Long) As Long +Declare Function InvalidateRect Lib "user32" Alias "InvalidateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long +Declare Function ValidateRect Lib "user32" Alias "ValidateRect" (ByVal hwnd As Long, lpRect As RECT) As Long +Declare Function InvalidateRgn Lib "user32" Alias "InvalidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bErase As Long) As Long +Declare Function ValidateRgn Lib "user32" Alias "ValidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long) As Long + +Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long + +Const RDW_INVALIDATE = &H1 +Const RDW_INTERNALPAINT = &H2 +Const RDW_ERASE = &H4 + +Const RDW_VALIDATE = &H8 +Const RDW_NOINTERNALPAINT = &H10 +Const RDW_NOERASE = &H20 + +Const RDW_NOCHILDREN = &H40 +Const RDW_ALLCHILDREN = &H80 + +Const RDW_UPDATENOW = &H100 +Const RDW_ERASENOW = &H200 + +Const RDW_FRAME = &H400 +Const RDW_NOFRAME = &H800 + +Declare Function LockWindowUpdate Lib "user32" Alias "LockWindowUpdate" (ByVal hwndLock As Long) As Long + +Declare Function ScrollWindow Lib "user32" Alias "ScrollWindow" (ByVal hWnd As Long, ByVal XAmount As Long, ByVal YAmount As Long, lpRect As RECT, lpClipRect As RECT) As Long +Declare Function ScrollDC Lib "user32" Alias "ScrollDC" (ByVal hdc As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT) As Long +Declare Function ScrollWindowEx Lib "user32" Alias "ScrollWindowEx" (ByVal hwnd As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT, ByVal fuScroll As Long) As Long + +Const SW_SCROLLCHILDREN = &H1 +Const SW_INVALIDATE = &H2 +Const SW_ERASE = &H4 + +Declare Function SetScrollPos Lib "user32" Alias "SetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nPos As Long, ByVal bRedraw As Long) As Long +Declare Function GetScrollPos Lib "user32" Alias "GetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long) As Long +Declare Function SetScrollRange Lib "user32" Alias "SetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal bRedraw As Long) As Long +Declare Function GetScrollRange Lib "user32" Alias "GetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long +Declare Function ShowScrollBar Lib "user32" Alias "ShowScrollBar" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long +Declare Function EnableScrollBar Lib "user32" Alias "EnableScrollBar" (ByVal hwnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long + +' EnableScrollBar() flags +Const ESB_ENABLE_BOTH = &H0 +Const ESB_DISABLE_BOTH = &H3 + +Const ESB_DISABLE_LEFT = &H1 +Const ESB_DISABLE_RIGHT = &H2 + +Const ESB_DISABLE_UP = &H1 +Const ESB_DISABLE_DOWN = &H2 + +Const ESB_DISABLE_LTUP = ESB_DISABLE_LEFT +Const ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT + +Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long +Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hwnd As Long, ByVal lpString As String) As Long +Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hwnd As Long, ByVal lpString As String) As Long + +Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long +Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long +Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long + +Declare Function GetClientRect Lib "user32" Alias "GetClientRect" (ByVal hwnd As Long, lpRect As RECT) As Long +Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long +Declare Function AdjustWindowRect Lib "user32" Alias "AdjustWindowRect" (lpRect As RECT, ByVal dwStyle As Long, ByVal bMenu As Long) As Long +Declare Function AdjustWindowRectEx Lib "user32" Alias "AdjustWindowRectEx" (lpRect As RECT, ByVal dsStyle As Long, ByVal bMenu As Long, ByVal dwEsStyle As Long) As Long + +' MessageBox() Flags +Const MB_OK = &H0& +Const MB_OKCANCEL = &H1& +Const MB_ABORTRETRYIGNORE = &H2& +Const MB_YESNOCANCEL = &H3& +Const MB_YESNO = &H4& +Const MB_RETRYCANCEL = &H5& + +Const MB_ICONHAND = &H10& +Const MB_ICONQUESTION = &H20& +Const MB_ICONEXCLAMATION = &H30& +Const MB_ICONASTERISK = &H40& + +Const MB_ICONINFORMATION = MB_ICONASTERISK +Const MB_ICONSTOP = MB_ICONHAND + +Const MB_DEFBUTTON1 = &H0& +Const MB_DEFBUTTON2 = &H100& +Const MB_DEFBUTTON3 = &H200& + +Const MB_APPLMODAL = &H0& +Const MB_SYSTEMMODAL = &H1000& +Const MB_TASKMODAL = &H2000& + +Const MB_NOFOCUS = &H8000& +Const MB_SETFOREGROUND = &H10000 +Const MB_DEFAULT_DESKTOP_ONLY = &H20000 + +Const MB_TYPEMASK = &HF& +Const MB_ICONMASK = &HF0& +Const MB_DEFMASK = &HF00& +Const MB_MODEMASK = &H3000& +Const MB_MISCMASK = &HC000& + +Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long +Declare Function MessageBoxEx Lib "user32" Alias "MessageBoxExA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long, ByVal wLanguageId As Long) As Long +Declare Function MessageBeep Lib "user32" Alias "MessageBeep" (ByVal wType As Long) As Long + +Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long +Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long +Declare Function SetCursor Lib "user32" Alias "SetCursor" (ByVal hCursor As Long) As Long +Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long +Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long +Declare Function GetCursor Lib "user32" Alias "GetCursor" () As Long +Declare Function GetClipCursor Lib "user32" Alias "GetClipCursor" (lprc As RECT) As Long + +Declare Function CreateCaret Lib "user32" Alias "CreateCaret" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long +Declare Function GetCaretBlinkTime Lib "user32" Alias "GetCaretBlinkTime" () As Long +Declare Function SetCaretBlinkTime Lib "user32" Alias "SetCaretBlinkTime" (ByVal wMSeconds As Long) As Long +Declare Function DestroyCaret Lib "user32" Alias "DestroyCaret" () As Long +Declare Function HideCaret Lib "user32" Alias "HideCaret" (ByVal hwnd As Long) As Long +Declare Function ShowCaret Lib "user32" Alias "ShowCaret" (ByVal hwnd As Long) As Long +Declare Function SetCaretPos Lib "user32" Alias "SetCaretPos" (ByVal x As Long, ByVal y As Long) As Long +Declare Function GetCaretPos Lib "user32" Alias "GetCaretPos" (lpPoint As POINTAPI) As Long + +Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long +Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long + +Declare Function MapWindowPoints Lib "user32" Alias "MapWindowPoints" (ByVal hwndFrom As Long, ByVal hwndTo As Long, lppt As Any, ByVal cPoints As Long) As Long +Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long +Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWnd As Long, ByVal xPoint As Long, ByVal yPoint As Long) As Long + +' Color Types +Const CTLCOLOR_MSGBOX = 0 +Const CTLCOLOR_EDIT = 1 +Const CTLCOLOR_LISTBOX = 2 +Const CTLCOLOR_BTN = 3 +Const CTLCOLOR_DLG = 4 +Const CTLCOLOR_SCROLLBAR = 5 +Const CTLCOLOR_STATIC = 6 +Const CTLCOLOR_MAX = 8 ' three bits max + +Const COLOR_SCROLLBAR = 0 +Const COLOR_BACKGROUND = 1 +Const COLOR_ACTIVECAPTION = 2 +Const COLOR_INACTIVECAPTION = 3 +Const COLOR_MENU = 4 +Const COLOR_WINDOW = 5 +Const COLOR_WINDOWFRAME = 6 +Const COLOR_MENUTEXT = 7 +Const COLOR_WINDOWTEXT = 8 +Const COLOR_CAPTIONTEXT = 9 +Const COLOR_ACTIVEBORDER = 10 +Const COLOR_INACTIVEBORDER = 11 +Const COLOR_APPWORKSPACE = 12 +Const COLOR_HIGHLIGHT = 13 +Const COLOR_HIGHLIGHTTEXT = 14 +Const COLOR_BTNFACE = 15 +Const COLOR_BTNSHADOW = 16 +Const COLOR_GRAYTEXT = 17 +Const COLOR_BTNTEXT = 18 +Const COLOR_INACTIVECAPTIONTEXT = 19 +Const COLOR_BTNHIGHLIGHT = 20 + +Declare Function GetSysColor Lib "user32" Alias "GetSysColor" (ByVal nIndex As Long) As Long +Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long + +Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long +Declare Function FillRect Lib "user32" Alias "FillRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long +Declare Function FrameRect Lib "user32" Alias "FrameRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long +Declare Function InvertRect Lib "user32" Alias "InvertRect" (ByVal hdc As Long, lpRect As RECT) As Long +Declare Function SetRect Lib "user32" Alias "SetRect" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long +Declare Function SetRectEmpty Lib "user32" Alias "SetRectEmpty" (lpRect As RECT) As Long +Declare Function CopyRect Lib "user32" Alias "CopyRect" (lpDestRect As RECT, lpSourceRect As RECT) As Long +Declare Function InflateRect Lib "user32" Alias "InflateRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long +Declare Function IntersectRect Lib "user32" Alias "IntersectRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long +Declare Function UnionRect Lib "user32" Alias "UnionRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long +Declare Function SubtractRect Lib "user32" Alias "SubtractRect" (lprcDst As RECT, lprcSrc1 As RECT, lprcSrc2 As RECT) As Long +Declare Function OffsetRect Lib "user32" Alias "OffsetRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long +Declare Function IsRectEmpty Lib "user32" Alias "IsRectEmpty" (lpRect As RECT) As Long +Declare Function EqualRect Lib "user32" Alias "EqualRect" (lpRect1 As RECT, lpRect2 As RECT) As Long +Declare Function PtInRect Lib "user32" Alias "PtInRect" (lpRect As RECT, pt As POINTAPI) As Long + +Declare Function GetWindowWord Lib "user32" Alias "GetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer +Declare Function SetWindowWord Lib "user32" Alias "SetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long +Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long +Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long +Declare Function GetClassWord Lib "user32" Alias "GetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Long +Declare Function SetClassWord Lib "user32" Alias "SetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long +Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long +Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long +Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long + +Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long +Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long +Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long + +Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long +Declare Function GetTopWindow Lib "user32" Alias "GetTopWindow" (ByVal hwnd As Long) As Long +Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long + +Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, lpdwProcessId As Long) As Long + +Declare Function GetLastActivePopup Lib "user32" Alias "GetLastActivePopup" (ByVal hwndOwnder As Long) As Long + +' GetWindow() Constants +Const GW_HWNDFIRST = 0 +Const GW_HWNDLAST = 1 +Const GW_HWNDNEXT = 2 +Const GW_HWNDPREV = 3 +Const GW_OWNER = 4 +Const GW_CHILD = 5 +Const GW_MAX = 5 + +Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long +Declare Function UnhookWindowsHookEx Lib "user32" Alias "UnhookWindowsHookEx" (ByVal hHook As Long) As Long +Declare Function CallNextHookEx Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long + +' Menu flags for Add/Check/EnableMenuItem() +Const MF_INSERT = &H0& +Const MF_CHANGE = &H80& +Const MF_APPEND = &H100& +Const MF_DELETE = &H200& +Const MF_REMOVE = &H1000& + +Const MF_BYCOMMAND = &H0& +Const MF_BYPOSITION = &H400& + +Const MF_SEPARATOR = &H800& + +Const MF_ENABLED = &H0& +Const MF_GRAYED = &H1& +Const MF_DISABLED = &H2& + +Const MF_UNCHECKED = &H0& +Const MF_CHECKED = &H8& +Const MF_USECHECKBITMAPS = &H200& + +Const MF_STRING = &H0& +Const MF_BITMAP = &H4& +Const MF_OWNERDRAW = &H100& + +Const MF_POPUP = &H10& +Const MF_MENUBARBREAK = &H20& +Const MF_MENUBREAK = &H40& + +Const MF_UNHILITE = &H0& +Const MF_HILITE = &H80& + +Const MF_SYSMENU = &H2000& +Const MF_HELP = &H4000& +Const MF_MOUSESELECT = &H8000& + +' Menu item resource format +Type MENUITEMTEMPLATEHEADER + versionNumber As Integer + offset As Integer +End Type + +Type MENUITEMTEMPLATE + mtOption As Integer + mtID As Integer + mtString As Byte +End Type + +Const MF_END = &H80 + +' System Menu Command Values + + +Const SC_SIZE = &HF000& +Const SC_MOVE = &HF010& +Const SC_MINIMIZE = &HF020& +Const SC_MAXIMIZE = &HF030& +Const SC_NEXTWINDOW = &HF040& +Const SC_PREVWINDOW = &HF050& +Const SC_CLOSE = &HF060& +Const SC_VSCROLL = &HF070& +Const SC_HSCROLL = &HF080& +Const SC_MOUSEMENU = &HF090& +Const SC_KEYMENU = &HF100& +Const SC_ARRANGE = &HF110& +Const SC_RESTORE = &HF120& +Const SC_TASKLIST = &HF130& +Const SC_SCREENSAVE = &HF140& +Const SC_HOTKEY = &HF150& + +' Obsolete names +Const SC_ICON = SC_MINIMIZE +Const SC_ZOOM = SC_MAXIMIZE + +' Resource Loading Routines +Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long +Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As String) As Long +Declare Function CreateCursor Lib "user32" Alias "CreateCursor" (ByVal hInstance As Long, ByVal nXhotspot As Long, ByVal nYhotspot As Long, ByVal nWidth As Long, ByVal nHeight As Long, lpANDbitPlane As Any, lpXORbitPlane As Any) As Long +Declare Function DestroyCursor Lib "user32" Alias "DestroyCursor" (ByVal hCursor As Long) As Long +Declare Function CopyCursor Lib "user32" Alias "CopyCursor" (ByVal hcur As Long) As Long + +' Standard Cursor IDs +Const IDC_ARROW = 32512& +Const IDC_IBEAM = 32513& +Const IDC_WAIT = 32514& +Const IDC_CROSS = 32515& +Const IDC_UPARROW = 32516& +Const IDC_SIZE = 32640& +Const IDC_ICON = 32641& +Const IDC_SIZENWSE = 32642& +Const IDC_SIZENESW = 32643& +Const IDC_SIZEWE = 32644& +Const IDC_SIZENS = 32645& +Const IDC_SIZEALL = 32646& +Const IDC_NO = 32648& +Const IDC_APPSTARTING = 32650& + +Type ICONINFO + fIcon As Long + xHotspot As Long + yHotspot As Long + hbmMask As Long + hbmColor As Long +End Type + +Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As String) As Long +Declare Function CreateIcon Lib "user32" Alias "CreateIcon" (ByVal hInstance As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Byte, ByVal nBitsPixel As Byte, lpANDbits As Byte, lpXORbits As Byte) As Long +Declare Function DestroyIcon Lib "user32" Alias "DestroyIcon" (ByVal hIcon As Long) As Long +Declare Function LookupIconIdFromDirectory Lib "user32" Alias "LookupIconIdFromDirectory" (presbits As Byte, ByVal fIcon As Long) As Long +Declare Function CreateIconIndirect Lib "user32" Alias "CreateIconIndirect" (piconinfo As ICONINFO) As Long +Declare Function CopyIcon Lib "user32" Alias "CopyIcon" (ByVal hIcon As Long) As Long +Declare Function GetIconInfo Lib "user32" Alias "GetIconInfo" (ByVal hIcon As Long, piconinfo As ICONINFO) As Long + +' OEM Resource Ordinal Numbers +Const OBM_CLOSE = 32754 +Const OBM_UPARROW = 32753 +Const OBM_DNARROW = 32752 +Const OBM_RGARROW = 32751 +Const OBM_LFARROW = 32750 +Const OBM_REDUCE = 32749 +Const OBM_ZOOM = 32748 +Const OBM_RESTORE = 32747 +Const OBM_REDUCED = 32746 +Const OBM_ZOOMD = 32745 +Const OBM_RESTORED = 32744 +Const OBM_UPARROWD = 32743 +Const OBM_DNARROWD = 32742 +Const OBM_RGARROWD = 32741 +Const OBM_LFARROWD = 32740 +Const OBM_MNARROW = 32739 +Const OBM_COMBO = 32738 +Const OBM_UPARROWI = 32737 +Const OBM_DNARROWI = 32736 +Const OBM_RGARROWI = 32735 +Const OBM_LFARROWI = 32734 + +Const OBM_OLD_CLOSE = 32767 +Const OBM_SIZE = 32766 +Const OBM_OLD_UPARROW = 32765 +Const OBM_OLD_DNARROW = 32764 +Const OBM_OLD_RGARROW = 32763 +Const OBM_OLD_LFARROW = 32762 +Const OBM_BTSIZE = 32761 +Const OBM_CHECK = 32760 +Const OBM_CHECKBOXES = 32759 +Const OBM_BTNCORNERS = 32758 +Const OBM_OLD_REDUCE = 32757 +Const OBM_OLD_ZOOM = 32756 +Const OBM_OLD_RESTORE = 32755 + +Const OCR_NORMAL = 32512 +Const OCR_IBEAM = 32513 +Const OCR_WAIT = 32514 +Const OCR_CROSS = 32515 +Const OCR_UP = 32516 +Const OCR_SIZE = 32640 +Const OCR_ICON = 32641 +Const OCR_SIZENWSE = 32642 +Const OCR_SIZENESW = 32643 +Const OCR_SIZEWE = 32644 +Const OCR_SIZENS = 32645 +Const OCR_SIZEALL = 32646 +Const OCR_ICOCUR = 32647 +Const OCR_NO = 32648 ' not in win3.1 + +Const OIC_SAMPLE = 32512 +Const OIC_HAND = 32513 +Const OIC_QUES = 32514 +Const OIC_BANG = 32515 +Const OIC_NOTE = 32516 + +Const ORD_LANGDRIVER = 1 ' The ordinal number for the entry point of + ' language drivers. + +' Standard Icon IDs +Const IDI_APPLICATION = 32512& +Const IDI_HAND = 32513& +Const IDI_QUESTION = 32514& +Const IDI_EXCLAMATION = 32515& +Const IDI_ASTERISK = 32516& + +Declare Function LoadString Lib "user32" Alias "LoadStringA" (ByVal hInstance As Long, ByVal wID As Long, ByVal lpBuffer As String, ByVal nBufferMax As Long) As Long + +' Dialog Box Command IDs +Const IDOK = 1 +Const IDCANCEL = 2 +Const IDABORT = 3 +Const IDRETRY = 4 +Const IDIGNORE = 5 +Const IDYES = 6 +Const IDNO = 7 + +' Control Manager Structures and Definitions + +' Edit Control Styles +Const ES_LEFT = &H0& +Const ES_CENTER = &H1& +Const ES_RIGHT = &H2& +Const ES_MULTILINE = &H4& +Const ES_UPPERCASE = &H8& +Const ES_LOWERCASE = &H10& +Const ES_PASSWORD = &H20& +Const ES_AUTOVSCROLL = &H40& +Const ES_AUTOHSCROLL = &H80& +Const ES_NOHIDESEL = &H100& +Const ES_OEMCONVERT = &H400& +Const ES_READONLY = &H800& +Const ES_WANTRETURN = &H1000& + +' Edit Control Notification Codes +Const EN_SETFOCUS = &H100 +Const EN_KILLFOCUS = &H200 +Const EN_CHANGE = &H300 +Const EN_UPDATE = &H400 +Const EN_ERRSPACE = &H500 +Const EN_MAXTEXT = &H501 +Const EN_HSCROLL = &H601 +Const EN_VSCROLL = &H602 + +' Edit Control Messages +Const EM_GETSEL = &HB0 +Const EM_SETSEL = &HB1 +Const EM_GETRECT = &HB2 +Const EM_SETRECT = &HB3 +Const EM_SETRECTNP = &HB4 +Const EM_SCROLL = &HB5 +Const EM_LINESCROLL = &HB6 +Const EM_SCROLLCARET = &HB7 +Const EM_GETMODIFY = &HB8 +Const EM_SETMODIFY = &HB9 +Const EM_GETLINECOUNT = &HBA +Const EM_LINEINDEX = &HBB +Const EM_SETHANDLE = &HBC +Const EM_GETHANDLE = &HBD +Const EM_GETTHUMB = &HBE +Const EM_LINELENGTH = &HC1 +Const EM_REPLACESEL = &HC2 +Const EM_GETLINE = &HC4 +Const EM_LIMITTEXT = &HC5 +Const EM_CANUNDO = &HC6 +Const EM_UNDO = &HC7 +Const EM_FMTLINES = &HC8 +Const EM_LINEFROMCHAR = &HC9 +Const EM_SETTABSTOPS = &HCB +Const EM_SETPASSWORDCHAR = &HCC +Const EM_EMPTYUNDOBUFFER = &HCD +Const EM_GETFIRSTVISIBLELINE = &HCE +Const EM_SETREADONLY = &HCF +Const EM_SETWORDBREAKPROC = &HD0 +Const EM_GETWORDBREAKPROC = &HD1 +Const EM_GETPASSWORDCHAR = &HD2 + +' EDITWORDBREAKPROC code values +Const WB_LEFT = 0 +Const WB_RIGHT = 1 +Const WB_ISDELIMITER = 2 + +' Button Control Styles +Const BS_PUSHBUTTON = &H0& +Const BS_DEFPUSHBUTTON = &H1& +Const BS_CHECKBOX = &H2& +Const BS_AUTOCHECKBOX = &H3& +Const BS_RADIOBUTTON = &H4& +Const BS_3STATE = &H5& +Const BS_AUTO3STATE = &H6& +Const BS_GROUPBOX = &H7& +Const BS_USERBUTTON = &H8& +Const BS_AUTORADIOBUTTON = &H9& +Const BS_OWNERDRAW = &HB& +Const BS_LEFTTEXT = &H20& + +' User Button Notification Codes +Const BN_CLICKED = 0 +Const BN_PAINT = 1 +Const BN_HILITE = 2 +Const BN_UNHILITE = 3 +Const BN_DISABLE = 4 +Const BN_DOUBLECLICKED = 5 + +' Button Control Messages +Const BM_GETCHECK = &HF0 +Const BM_SETCHECK = &HF1 +Const BM_GETSTATE = &HF2 +Const BM_SETSTATE = &HF3 +Const BM_SETSTYLE = &HF4 + +' Static Control Constants +Const SS_LEFT = &H0& +Const SS_CENTER = &H1& +Const SS_RIGHT = &H2& +Const SS_ICON = &H3& +Const SS_BLACKRECT = &H4& +Const SS_GRAYRECT = &H5& +Const SS_WHITERECT = &H6& +Const SS_BLACKFRAME = &H7& +Const SS_GRAYFRAME = &H8& +Const SS_WHITEFRAME = &H9& +Const SS_USERITEM = &HA& +Const SS_SIMPLE = &HB& +Const SS_LEFTNOWORDWRAP = &HC& +Const SS_NOPREFIX = &H80 ' Don't do "&" character translation + +' Static Control Mesages +Const STM_SETICON = &H170 +Const STM_GETICON = &H171 +Const STM_MSGMAX = &H172 + +Const WC_DIALOG = 8002& + +' Get/SetWindowWord/Long offsets for use with WC_DIALOG windows +Const DWL_MSGRESULT = 0 +Const DWL_DLGPROC = 4 +Const DWL_USER = 8 + +' Dialog Manager Routines +Declare Function IsDialogMessage Lib "user32" Alias "IsDialogMessageA" (ByVal hDlg As Long, lpMsg As MSG) As Long +Declare Function MapDialogRect Lib "user32" Alias "MapDialogRect" (ByVal hDlg As Long, lpRect As RECT) As Long +Declare Function DlgDirList Lib "user32" Alias "DlgDirListA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDListBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long + +' DlgDirList, DlgDirListComboBox flags values +Const DDL_READWRITE = &H0 +Const DDL_READONLY = &H1 +Const DDL_HIDDEN = &H2 +Const DDL_SYSTEM = &H4 +Const DDL_DIRECTORY = &H10 +Const DDL_ARCHIVE = &H20 + +Const DDL_POSTMSGS = &H2000 +Const DDL_DRIVES = &H4000 +Const DDL_EXCLUSIVE = &H8000 + +Declare Function DlgDirSelectEx Lib "user32" Alias "DlgDirSelectExA" (ByVal hWndDlg As Long, ByVal lpszPath As String, ByVal cbPath As Long, ByVal idListBox As Long) As Long +Declare Function DlgDirListComboBox Lib "user32" Alias "DlgDirListComboBoxA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDComboBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long +Declare Function DlgDirSelectComboBoxEx Lib "user32" Alias "DlgDirSelectComboBoxExA" (ByVal hWndDlg As Long, ByVal lpszPath As String, ByVal cbPath As Long, ByVal idComboBox As Long) As Long + +' Dialog Styles +Const DS_ABSALIGN = &H1& +Const DS_SYSMODAL = &H2& +Const DS_LOCALEDIT = &H20 ' Edit items get Local storage. +Const DS_SETFONT = &H40 ' User specified font for Dlg controls +Const DS_MODALFRAME = &H80 ' Can be combined with WS_CAPTION +Const DS_NOIDLEMSG = &H100 ' WM_ENTERIDLE message will not be sent +Const DS_SETFOREGROUND = &H200 ' not in win3.1 + +Const DM_GETDEFID = WM_USER + 0 +Const DM_SETDEFID = WM_USER + 1 +Const DC_HASDEFID = &H534 '0x534B + +' Dialog Codes +Const DLGC_WANTARROWS = &H1 ' Control wants arrow keys +Const DLGC_WANTTAB = &H2 ' Control wants tab keys +Const DLGC_WANTALLKEYS = &H4 ' Control wants all keys +Const DLGC_WANTMESSAGE = &H4 ' Pass message to control +Const DLGC_HASSETSEL = &H8 ' Understands EM_SETSEL message +Const DLGC_DEFPUSHBUTTON = &H10 ' Default pushbutton +Const DLGC_UNDEFPUSHBUTTON = &H20 ' Non-default pushbutton +Const DLGC_RADIOBUTTON = &H40 ' Radio button +Const DLGC_WANTCHARS = &H80 ' Want WM_CHAR messages +Const DLGC_STATIC = &H100 ' Static item: don't include +Const DLGC_BUTTON = &H2000 ' Button item: can be checked + +Const LB_CTLCODE = 0& + +' Listbox Return Values +Const LB_OKAY = 0 +Const LB_ERR = (-1) +Const LB_ERRSPACE = (-2) + +' The idStaticPath parameter to DlgDirList can have the following values +' ORed if the list box should show other details of the files along with +' the name of the files; +' all other details also will be returned + +' Listbox Notification Codes +Const LBN_ERRSPACE = (-2) +Const LBN_SELCHANGE = 1 +Const LBN_DBLCLK = 2 +Const LBN_SELCANCEL = 3 +Const LBN_SETFOCUS = 4 +Const LBN_KILLFOCUS = 5 + +' Listbox messages +Const LB_ADDSTRING = &H180 +Const LB_INSERTSTRING = &H181 +Const LB_DELETESTRING = &H182 +Const LB_SELITEMRANGEEX = &H183 +Const LB_RESETCONTENT = &H184 +Const LB_SETSEL = &H185 +Const LB_SETCURSEL = &H186 +Const LB_GETSEL = &H187 +Const LB_GETCURSEL = &H188 +Const LB_GETTEXT = &H189 +Const LB_GETTEXTLEN = &H18A +Const LB_GETCOUNT = &H18B +Const LB_SELECTSTRING = &H18C +Const LB_DIR = &H18D +Const LB_GETTOPINDEX = &H18E +Const LB_FINDSTRING = &H18F +Const LB_GETSELCOUNT = &H190 +Const LB_GETSELITEMS = &H191 +Const LB_SETTABSTOPS = &H192 +Const LB_GETHORIZONTALEXTENT = &H193 +Const LB_SETHORIZONTALEXTENT = &H194 +Const LB_SETCOLUMNWIDTH = &H195 +Const LB_ADDFILE = &H196 +Const LB_SETTOPINDEX = &H197 +Const LB_GETITEMRECT = &H198 +Const LB_GETITEMDATA = &H199 +Const LB_SETITEMDATA = &H19A +Const LB_SELITEMRANGE = &H19B +Const LB_SETANCHORINDEX = &H19C +Const LB_GETANCHORINDEX = &H19D +Const LB_SETCARETINDEX = &H19E +Const LB_GETCARETINDEX = &H19F +Const LB_SETITEMHEIGHT = &H1A0 +Const LB_GETITEMHEIGHT = &H1A1 +Const LB_FINDSTRINGEXACT = &H1A2 +Const LB_SETLOCALE = &H1A5 +Const LB_GETLOCALE = &H1A6 +Const LB_SETCOUNT = &H1A7 +Const LB_MSGMAX = &H1A8 + +' Listbox Styles +Const LBS_NOTIFY = &H1& +Const LBS_SORT = &H2& +Const LBS_NOREDRAW = &H4& +Const LBS_MULTIPLESEL = &H8& +Const LBS_OWNERDRAWFIXED = &H10& +Const LBS_OWNERDRAWVARIABLE = &H20& +Const LBS_HASSTRINGS = &H40& +Const LBS_USETABSTOPS = &H80& +Const LBS_NOINTEGRALHEIGHT = &H100& +Const LBS_MULTICOLUMN = &H200& +Const LBS_WANTKEYBOARDINPUT = &H400& +Const LBS_EXTENDEDSEL = &H800& +Const LBS_DISABLENOSCROLL = &H1000& +Const LBS_NODATA = &H2000& +Const LBS_STANDARD = (LBS_NOTIFY Or LBS_SORT Or WS_VSCROLL Or WS_BORDER) + +' Combo Box return Values +Const CB_OKAY = 0 +Const CB_ERR = (-1) +Const CB_ERRSPACE = (-2) + +' Combo Box Notification Codes +Const CBN_ERRSPACE = (-1) +Const CBN_SELCHANGE = 1 +Const CBN_DBLCLK = 2 +Const CBN_SETFOCUS = 3 +Const CBN_KILLFOCUS = 4 +Const CBN_EDITCHANGE = 5 +Const CBN_EDITUPDATE = 6 +Const CBN_DROPDOWN = 7 +Const CBN_CLOSEUP = 8 +Const CBN_SELENDOK = 9 +Const CBN_SELENDCANCEL = 10 + +' Combo Box styles +Const CBS_SIMPLE = &H1& +Const CBS_DROPDOWN = &H2& +Const CBS_DROPDOWNLIST = &H3& +Const CBS_OWNERDRAWFIXED = &H10& +Const CBS_OWNERDRAWVARIABLE = &H20& +Const CBS_AUTOHSCROLL = &H40& +Const CBS_OEMCONVERT = &H80& +Const CBS_SORT = &H100& +Const CBS_HASSTRINGS = &H200& +Const CBS_NOINTEGRALHEIGHT = &H400& +Const CBS_DISABLENOSCROLL = &H800& + +' Combo Box messages +Const CB_GETEDITSEL = &H140 +Const CB_LIMITTEXT = &H141 +Const CB_SETEDITSEL = &H142 +Const CB_ADDSTRING = &H143 +Const CB_DELETESTRING = &H144 +Const CB_DIR = &H145 +Const CB_GETCOUNT = &H146 +Const CB_GETCURSEL = &H147 +Const CB_GETLBTEXT = &H148 +Const CB_GETLBTEXTLEN = &H149 +Const CB_INSERTSTRING = &H14A +Const CB_RESETCONTENT = &H14B +Const CB_FINDSTRING = &H14C +Const CB_SELECTSTRING = &H14D +Const CB_SETCURSEL = &H14E +Const CB_SHOWDROPDOWN = &H14F +Const CB_GETITEMDATA = &H150 +Const CB_SETITEMDATA = &H151 +Const CB_GETDROPPEDCONTROLRECT = &H152 +Const CB_SETITEMHEIGHT = &H153 +Const CB_GETITEMHEIGHT = &H154 +Const CB_SETEXTENDEDUI = &H155 +Const CB_GETEXTENDEDUI = &H156 +Const CB_GETDROPPEDSTATE = &H157 +Const CB_FINDSTRINGEXACT = &H158 +Const CB_SETLOCALE = &H159 +Const CB_GETLOCALE = &H15A +Const CB_MSGMAX = &H15B + +' Scroll Bar Styles +Const SBS_HORZ = &H0& +Const SBS_VERT = &H1& +Const SBS_TOPALIGN = &H2& +Const SBS_LEFTALIGN = &H2& +Const SBS_BOTTOMALIGN = &H4& +Const SBS_RIGHTALIGN = &H4& +Const SBS_SIZEBOXTOPLEFTALIGN = &H2& +Const SBS_SIZEBOXBOTTOMRIGHTALIGN = &H4& +Const SBS_SIZEBOX = &H8& + +' Scroll bar messages +Const SBM_SETPOS = &HE0 ' not in win3.1 +Const SBM_GETPOS = &HE1 ' not in win3.1 +Const SBM_SETRANGE = &HE2 ' not in win3.1 +Const SBM_SETRANGEREDRAW = &HE6 ' not in win3.1 +Const SBM_GETRANGE = &HE3 ' not in win3.1 +Const SBM_ENABLE_ARROWS = &HE4 ' not in win3.1 + +Const MDIS_ALLCHILDSTYLES = &H1 + +' wParam values for WM_MDITILE and WM_MDICASCADE messages. +Const MDITILE_VERTICAL = &H0 +Const MDITILE_HORIZONTAL = &H1 +Const MDITILE_SKIPDISABLED = &H2 + +Type MDICREATESTRUCT + szClass As String + szTitle As String + hOwner As Long + x As Long + y As Long + cx As Long + cy As Long + style As Long + lParam As Long +End Type + +Type CLIENTCREATESTRUCT + hWindowMenu As Long + idFirstChild As Long +End Type + +Declare Function DefFrameProc Lib "user32" Alias "DefFrameProcA" (ByVal hwnd As Long, ByVal hWndMDIClient As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Function DefMDIChildProc Lib "user32" Alias "DefMDIChildProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long + +Declare Function TranslateMDISysAccel Lib "user32" Alias "TranslateMDISysAccel" (ByVal hWndClient As Long, lpMsg As MSG) As Long + +Declare Function ArrangeIconicWindows Lib "user32" Alias "ArrangeIconicWindows" (ByVal hwnd As Long) As Long + +Declare Function CreateMDIWindow Lib "user32" Alias "CreateMDIWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hInstance As Long, ByVal lParam As Long) As Long + +' Help engine section. + +Type MULTIKEYHELP + mkSize As Long + mkKeylist As Byte + szKeyphrase As String * 253 ' Array length is arbitrary; may be changed +End Type + +Type HELPWININFO + wStructSize As Long + x As Long + y As Long + dx As Long + dy As Long + wMax As Long + rgchMember As String * 2 +End Type + +' Commands to pass WinHelp() +Const HELP_CONTEXT = &H1 ' Display topic in ulTopic +Const HELP_QUIT = &H2 ' Terminate help +Const HELP_INDEX = &H3 ' Display index +Const HELP_CONTENTS = &H3& +Const HELP_HELPONHELP = &H4 ' Display help on using help +Const HELP_SETINDEX = &H5 ' Set current Index for multi index help +Const HELP_SETCONTENTS = &H5& +Const HELP_CONTEXTPOPUP = &H8& +Const HELP_FORCEFILE = &H9& +Const HELP_KEY = &H101 ' Display topic for keyword in offabData +Const HELP_COMMAND = &H102& +Const HELP_PARTIALKEY = &H105& +Const HELP_MULTIKEY = &H201& +Const HELP_SETWINPOS = &H203& + +Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long + +' Parameter for SystemParametersInfo() +Const SPI_GETBEEP = 1 +Const SPI_SETBEEP = 2 +Const SPI_GETMOUSE = 3 +Const SPI_SETMOUSE = 4 +Const SPI_GETBORDER = 5 +Const SPI_SETBORDER = 6 +Const SPI_GETKEYBOARDSPEED = 10 +Const SPI_SETKEYBOARDSPEED = 11 +Const SPI_LANGDRIVER = 12 +Const SPI_ICONHORIZONTALSPACING = 13 +Const SPI_GETSCREENSAVETIMEOUT = 14 +Const SPI_SETSCREENSAVETIMEOUT = 15 +Const SPI_GETSCREENSAVEACTIVE = 16 +Const SPI_SETSCREENSAVEACTIVE = 17 +Const SPI_GETGRIDGRANULARITY = 18 +Const SPI_SETGRIDGRANULARITY = 19 +Const SPI_SETDESKWALLPAPER = 20 +Const SPI_SETDESKPATTERN = 21 +Const SPI_GETKEYBOARDDELAY = 22 +Const SPI_SETKEYBOARDDELAY = 23 +Const SPI_ICONVERTICALSPACING = 24 +Const SPI_GETICONTITLEWRAP = 25 +Const SPI_SETICONTITLEWRAP = 26 +Const SPI_GETMENUDROPALIGNMENT = 27 +Const SPI_SETMENUDROPALIGNMENT = 28 +Const SPI_SETDOUBLECLKWIDTH = 29 +Const SPI_SETDOUBLECLKHEIGHT = 30 +Const SPI_GETICONTITLELOGFONT = 31 +Const SPI_SETDOUBLECLICKTIME = 32 +Const SPI_SETMOUSEBUTTONSWAP = 33 +Const SPI_SETICONTITLELOGFONT = 34 +Const SPI_GETFASTTASKSWITCH = 35 +Const SPI_SETFASTTASKSWITCH = 36 +Const SPI_SETDRAGFULLWINDOWS = 37 +Const SPI_GETDRAGFULLWINDOWS = 38 +Const SPI_GETNONCLIENTMETRICS = 41 +Const SPI_SETNONCLIENTMETRICS = 42 +Const SPI_GETMINIMIZEDMETRICS = 43 +Const SPI_SETMINIMIZEDMETRICS = 44 +Const SPI_GETICONMETRICS = 45 +Const SPI_SETICONMETRICS = 46 +Const SPI_SETWORKAREA = 47 +Const SPI_GETWORKAREA = 48 +Const SPI_SETPENWINDOWS = 49 +Const SPI_GETFILTERKEYS = 50 +Const SPI_SETFILTERKEYS = 51 +Const SPI_GETTOGGLEKEYS = 52 +Const SPI_SETTOGGLEKEYS = 53 +Const SPI_GETMOUSEKEYS = 54 +Const SPI_SETMOUSEKEYS = 55 +Const SPI_GETSHOWSOUNDS = 56 +Const SPI_SETSHOWSOUNDS = 57 +Const SPI_GETSTICKYKEYS = 58 +Const SPI_SETSTICKYKEYS = 59 +Const SPI_GETACCESSTIMEOUT = 60 +Const SPI_SETACCESSTIMEOUT = 61 +Const SPI_GETSERIALKEYS = 62 +Const SPI_SETSERIALKEYS = 63 +Const SPI_GETSOUNDSENTRY = 64 +Const SPI_SETSOUNDSENTRY = 65 +Const SPI_GETHIGHCONTRAST = 66 +Const SPI_SETHIGHCONTRAST = 67 +Const SPI_GETKEYBOARDPREF = 68 +Const SPI_SETKEYBOARDPREF = 69 +Const SPI_GETSCREENREADER = 70 +Const SPI_SETSCREENREADER = 71 +Const SPI_GETANIMATION = 72 +Const SPI_SETANIMATION = 73 +Const SPI_GETFONTSMOOTHING = 74 +Const SPI_SETFONTSMOOTHING = 75 +Const SPI_SETDRAGWIDTH = 76 +Const SPI_SETDRAGHEIGHT = 77 +Const SPI_SETHANDHELD = 78 +Const SPI_GETLOWPOWERTIMEOUT = 79 +Const SPI_GETPOWEROFFTIMEOUT = 80 +Const SPI_SETLOWPOWERTIMEOUT = 81 +Const SPI_SETPOWEROFFTIMEOUT = 82 +Const SPI_GETLOWPOWERACTIVE = 83 +Const SPI_GETPOWEROFFACTIVE = 84 +Const SPI_SETLOWPOWERACTIVE = 85 +Const SPI_SETPOWEROFFACTIVE = 86 +Const SPI_SETCURSORS = 87 +Const SPI_SETICONS = 88 +Const SPI_GETDEFAULTINPUTLANG = 89 +Const SPI_SETDEFAULTINPUTLANG = 90 +Const SPI_SETLANGTOGGLE = 91 +Const SPI_GETWINDOWSEXTENSION = 92 +Const SPI_SETMOUSETRAILS = 93 +Const SPI_GETMOUSETRAILS = 94 +Const SPI_SCREENSAVERRUNNING = 97 + +' SystemParametersInfo flags +Const SPIF_UPDATEINIFILE = &H1 +Const SPIF_SENDWININICHANGE = &H2 + +Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long + +' DDE window messages +Const WM_DDE_FIRST = &H3E0 +Const WM_DDE_INITIATE = (WM_DDE_FIRST) +Const WM_DDE_TERMINATE = (WM_DDE_FIRST + 1) +Const WM_DDE_ADVISE = (WM_DDE_FIRST + 2) +Const WM_DDE_UNADVISE = (WM_DDE_FIRST + 3) +Const WM_DDE_ACK = (WM_DDE_FIRST + 4) +Const WM_DDE_DATA = (WM_DDE_FIRST + 5) +Const WM_DDE_REQUEST = (WM_DDE_FIRST + 6) +Const WM_DDE_POKE = (WM_DDE_FIRST + 7) +Const WM_DDE_EXECUTE = (WM_DDE_FIRST + 8) +Const WM_DDE_LAST = (WM_DDE_FIRST + 8) + +' ***************************************************************************** * +' * dde.h - Dynamic Data Exchange structures and definitions * +' * * +' * Copyright (c) 1993-1995, Microsoft Corp. All rights reserved * +' * * +' \*****************************************************************************/ + + +' ---------------------------------------------------------------------------- +' DDEACK structure +' +' Structure of wStatus (LOWORD(lParam)) in WM_DDE_ACK message +' sent in response to a WM_DDE_DATA, WM_DDE_REQUEST, WM_DDE_POKE, +' WM_DDE_ADVISE, or WM_DDE_UNADVISE message. +' +' ----------------------------------------------------------------------------*/ + +Type DDEACK + bAppReturnCode As Integer + Reserved As Integer + fbusy As Integer + fack As Integer +End Type + +' ---------------------------------------------------------------------------- +' DDEADVISE structure +' +' WM_DDE_ADVISE parameter structure for hOptions (LOWORD(lParam)) +' +' ----------------------------------------------------------------------------*/ + +Type DDEADVISE + Reserved As Integer + fDeferUpd As Integer + fAckReq As Integer + cfFormat As Integer +End Type + + +' ---------------------------------------------------------------------------- +' DDEDATA structure +' +' WM_DDE_DATA parameter structure for hData (LOWORD(lParam)). +' The actual size of this structure depends on the size of +' the Value array. +' +' ----------------------------------------------------------------------------*/ + +Type DDEDATA + unused As Integer + fresponse As Integer + fRelease As Integer + Reserved As Integer + fAckReq As Integer + cfFormat As Integer + Value(1) As Byte +End Type + + +' ---------------------------------------------------------------------------- +' DDEPOKE structure +' +' WM_DDE_POKE parameter structure for hData (LOWORD(lParam)). +' The actual size of this structure depends on the size of +' the Value array. +' +' ----------------------------------------------------------------------------*/ + +Type DDEPOKE + unused As Integer + fRelease As Integer + fReserved As Integer + cfFormat As Integer + Value(1) As Byte +End Type + +' ---------------------------------------------------------------------------- +' The following typedef's were used in previous versions of the Windows SDK. +' They are still valid. The above typedef's define exactly the same structures +' as those below. The above typedef names are recommended, however, as they +' are more meaningful. + +' Note that the DDEPOKE structure typedef'ed in earlier versions of DDE.H did +' not correctly define the bit positions. +' ----------------------------------------------------------------------------*/ + +Type DDELN + unused As Integer + fRelease As Integer + fDeferUpd As Integer + fAckReq As Integer + cfFormat As Integer +End Type + +Type DDEUP + unused As Integer + fAck As Integer + fRelease As Integer + fReserved As Integer + fAckReq As Integer + cfFormat As Integer + rgb(1) As Byte +End Type + +Declare Function DdeSetQualityOfService Lib "user32" Alias "DdeSetQualityOfService" (ByVal hWndClient As Long, pqosNew As SECURITY_QUALITY_OF_SERVICE, pqosPrev As SECURITY_QUALITY_OF_SERVICE) As Long +Declare Function ImpersonateDdeClientWindow Lib "user32" Alias "ImpersonateDdeClientWindow" (ByVal hWndClient As Long, ByVal hWndServer As Long) As Long +Declare Function PackDDElParam Lib "user32" Alias "PackDDElParam" (ByVal msg As Long, ByVal uiLo As Long, ByVal uiHi As Long) As Long +Declare Function UnpackDDElParam Lib "user32" Alias "UnpackDDElParam" (ByVal msg As Long, ByVal lParam As Long, puiLo As Long, puiHi As Long) As Long +Declare Function FreeDDElParam Lib "user32" Alias "FreeDDElParam" (ByVal msg As Long, ByVal lParam As Long) As Long +Declare Function ReuseDDElParam Lib "user32" Alias "ReuseDDElParam" (ByVal lParam As Long, ByVal msgIn As Long, ByVal msgOut As Long, ByVal uiLo As Long, ByVal uiHi As Long) As Long + +Type HSZPAIR + hszSvc As Long + hszTopic As Long +End Type + +'// +'// Quality Of Service +'// + +Type SECURITY_QUALITY_OF_SERVICE + Length As Long + Impersonationlevel As Integer + ContextTrackingMode As Integer + EffectiveOnly As Long +End Type + +Type CONVCONTEXT + cb As Long + wFlags As Long + wCountryID As Long + iCodePage As Long + dwLangID As Long + dwSecurity As Long + qos As SECURITY_QUALITY_OF_SERVICE +End Type + +Type CONVINFO + cb As Long + hUser As Long + hConvPartner As Long + hszSvcPartner As Long + hszServiceReq As Long + hszTopic As Long + hszItem As Long + wFmt As Long + wType As Long + wStatus As Long + wConvst As Long + wLastError As Long + hConvList As Long + ConvCtxt As CONVCONTEXT + hwnd As Long + hwndPartner As Long +End Type + +' conversation states (usState) +Const XST_NULL = 0 ' quiescent states +Const XST_INCOMPLETE = 1 +Const XST_CONNECTED = 2 +Const XST_INIT1 = 3 ' mid-initiation states +Const XST_INIT2 = 4 +Const XST_REQSENT = 5 ' active conversation states +Const XST_DATARCVD = 6 +Const XST_POKESENT = 7 +Const XST_POKEACKRCVD = 8 +Const XST_EXECSENT = 9 +Const XST_EXECACKRCVD = 10 +Const XST_ADVSENT = 11 +Const XST_UNADVSENT = 12 +Const XST_ADVACKRCVD = 13 +Const XST_UNADVACKRCVD = 14 +Const XST_ADVDATASENT = 15 +Const XST_ADVDATAACKRCVD = 16 + +' used in LOWORD(dwData1) of XTYP_ADVREQ callbacks... +Const CADV_LATEACK = &HFFFF + +' conversation status bits (fsStatus) +Const ST_CONNECTED = &H1 +Const ST_ADVISE = &H2 +Const ST_ISLOCAL = &H4 +Const ST_BLOCKED = &H8 +Const ST_CLIENT = &H10 +Const ST_TERMINATED = &H20 +Const ST_INLIST = &H40 +Const ST_BLOCKNEXT = &H80 +Const ST_ISSELF = &H100 + +' DDE constants for wStatus field +Const DDE_FACK = &H8000 +Const DDE_FBUSY = &H4000 +Const DDE_FDEFERUPD = &H4000 +Const DDE_FACKREQ = &H8000 +Const DDE_FRELEASE = &H2000 +Const DDE_FREQUESTED = &H1000 +Const DDE_FAPPSTATUS = &HFF +Const DDE_FNOTPROCESSED = &H0 + +Const DDE_FACKRESERVED = (Not (DDE_FACK Or DDE_FBUSY Or DDE_FAPPSTATUS)) +Const DDE_FADVRESERVED = (Not (DDE_FACKREQ Or DDE_FDEFERUPD)) +Const DDE_FDATRESERVED = (Not (DDE_FACKREQ Or DDE_FRELEASE Or DDE_FREQUESTED)) +Const DDE_FPOKRESERVED = (Not (DDE_FRELEASE)) + +' message filter hook types +Const MSGF_DDEMGR = &H8001 + +' codepage constants +Const CP_WINANSI = 1004 ' default codepage for windows old DDE convs. +Const CP_WINUNICODE = 1200 + +' transaction types +Const XTYPF_NOBLOCK = &H2 ' CBR_BLOCK will not work +Const XTYPF_NODATA = &H4 ' DDE_FDEFERUPD +Const XTYPF_ACKREQ = &H8 ' DDE_FACKREQ + +Const XCLASS_MASK = &HFC00 +Const XCLASS_BOOL = &H1000 +Const XCLASS_DATA = &H2000 +Const XCLASS_FLAGS = &H4000 +Const XCLASS_NOTIFICATION = &H8000 + +Const XTYP_ERROR = (&H0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) +Const XTYP_ADVDATA = (&H10 Or XCLASS_FLAGS) +Const XTYP_ADVREQ = (&H20 Or XCLASS_DATA Or XTYPF_NOBLOCK) +Const XTYP_ADVSTART = (&H30 Or XCLASS_BOOL) +Const XTYP_ADVSTOP = (&H40 Or XCLASS_NOTIFICATION) +Const XTYP_EXECUTE = (&H50 Or XCLASS_FLAGS) +Const XTYP_CONNECT = (&H60 Or XCLASS_BOOL Or XTYPF_NOBLOCK) +Const XTYP_CONNECT_CONFIRM = (&H70 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) +Const XTYP_XACT_COMPLETE = (&H80 Or XCLASS_NOTIFICATION) +Const XTYP_POKE = (&H90 Or XCLASS_FLAGS) +Const XTYP_REGISTER = (&HA0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) +Const XTYP_REQUEST = (&HB0 Or XCLASS_DATA) +Const XTYP_DISCONNECT = (&HC0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) +Const XTYP_UNREGISTER = (&HD0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) +Const XTYP_WILDCONNECT = (&HE0 Or XCLASS_DATA Or XTYPF_NOBLOCK) + +Const XTYP_MASK = &HF0 +Const XTYP_SHIFT = 4 ' shift to turn XTYP_ into an index + +' Timeout constants +Const TIMEOUT_ASYNC = &HFFFF + +' Transaction ID constants +Const QID_SYNC = &HFFFF + +' Public strings used in DDE +Const SZDDESYS_TOPIC = "System" +Const SZDDESYS_ITEM_TOPICS = "Topics" +Const SZDDESYS_ITEM_SYSITEMS = "SysItems" +Const SZDDESYS_ITEM_RTNMSG = "ReturnMessage" +Const SZDDESYS_ITEM_STATUS = "Status" +Const SZDDESYS_ITEM_FORMATS = "Formats" +Const SZDDESYS_ITEM_HELP = "Help" +Const SZDDE_ITEM_ITEMLIST = "TopicItemList" + +Const CBR_BLOCK = &HFFFF + +' Callback filter flags for use with standard apps. +Const CBF_FAIL_SELFCONNECTIONS = &H1000 +Const CBF_FAIL_CONNECTIONS = &H2000 +Const CBF_FAIL_ADVISES = &H4000 +Const CBF_FAIL_EXECUTES = &H8000 +Const CBF_FAIL_POKES = &H10000 +Const CBF_FAIL_REQUESTS = &H20000 +Const CBF_FAIL_ALLSVRXACTIONS = &H3F000 + +Const CBF_SKIP_CONNECT_CONFIRMS = &H40000 +Const CBF_SKIP_REGISTRATIONS = &H80000 +Const CBF_SKIP_UNREGISTRATIONS = &H100000 +Const CBF_SKIP_DISCONNECTS = &H200000 +Const CBF_SKIP_ALLNOTIFICATIONS = &H3C0000 + +' Application command flags +Const APPCMD_CLIENTONLY = &H10& +Const APPCMD_FILTERINITS = &H20& +Const APPCMD_MASK = &HFF0& + +' Application classification flags +Const APPCLASS_STANDARD = &H0& +Const APPCLASS_MASK = &HF& + +Declare Function DdeUninitialize Lib "user32" Alias "DdeUninitialize" (ByVal idInst As Long) As Long + +' conversation enumeration functions +Declare Function DdeConnectList Lib "user32" Alias "DdeConnectList" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, ByVal hConvList As Long, pCC As CONVCONTEXT) As Long +Declare Function DdeQueryNextServer Lib "user32" Alias "DdeQueryNextServer" (ByVal hConvList As Long, ByVal hConvPrev As Long) As Long +Declare Function DdeDisconnectList Lib "user32" Alias "DdeDisconnectList" (ByVal hConvList As Long) As Long + +' conversation control functions +Declare Function DdeConnect Lib "user32" Alias "DdeConnect" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, pCC As CONVCONTEXT) As Long +Declare Function DdeDisconnect Lib "user32" Alias "DdeDisconnect" (ByVal hConv As Long) As Long +Declare Function DdeReconnect Lib "user32" Alias "DdeReconnect" (ByVal hConv As Long) As Long +Declare Function DdeQueryConvInfo Lib "user32" Alias "DdeQueryConvInfo" (ByVal hConv As Long, ByVal idTransaction As Long, pConvInfo As CONVINFO) As Long +Declare Function DdeSetUserHandle Lib "user32" Alias "DdeSetUserHandle" (ByVal hConv As Long, ByVal id As Long, ByVal hUser As Long) As Long +Declare Function DdeAbandonTransaction Lib "user32" Alias "DdeAbandonTransaction" (ByVal idInst As Long, ByVal hConv As Long, ByVal idTransaction As Long) As Long + +' app server interface functions +Declare Function DdePostAdvise Lib "user32" Alias "DdePostAdvise" (ByVal idInst As Long, ByVal hszTopic As Long, ByVal hszItem As Long) As Long +Declare Function DdeEnableCallback Lib "user32" Alias "DdeEnableCallback" (ByVal idInst As Long, ByVal hConv As Long, ByVal wCmd As Long) As Long +Declare Function DdeImpersonateClient Lib "user32" Alias "DdeImpersonateClient" (ByVal hConv As Long) As Long + +Const EC_ENABLEALL = 0 +Const EC_ENABLEONE = ST_BLOCKNEXT +Const EC_DISABLE = ST_BLOCKED +Const EC_QUERYWAITING = 2 + +Declare Function DdeNameService Lib "user32" Alias "DdeNameService" (ByVal idInst As Long, ByVal hsz1 As Long, ByVal hsz2 As Long, ByVal afCmd As Long) As Long + +Const DNS_REGISTER = &H1 +Const DNS_UNREGISTER = &H2 +Const DNS_FILTERON = &H4 +Const DNS_FILTEROFF = &H8 + +' app client interface functions +Declare Function DdeClientTransaction Lib "user32" Alias "DdeClientTransaction" (pData As Byte, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, pdwResult As Long) As Long + +' data transfer functions +Declare Function DdeCreateDataHandle Lib "user32" Alias "DdeCreateDataHandle" (ByVal idInst As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal afCmd As Long) As Long +Declare Function DdeAddData Lib "user32" Alias "DdeAddDataA" (ByVal hData As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long) As Long +Declare Function DdeGetData Lib "user32" Alias "DdeGetDataA" (ByVal hData As Long, pDst As Byte, ByVal cbMax As Long, ByVal cbOff As Long) As Long +Declare Function DdeAccessData Lib "user32" Alias "DdeAccessDataA" (ByVal hData As Long, pcbDataSize As Long) As Long +Declare Function DdeUnaccessData Lib "user32" Alias "DdeUnaccessDataA" (ByVal hData As Long) As Long +Declare Function DdeFreeDataHandle Lib "user32" Alias "DdeFreeDataHandle" (ByVal hData As Long) As Long + +Const HDATA_APPOWNED = &H1 + +Declare Function DdeGetLastError Lib "user32" Alias "DdeGetLastError" (ByVal idInst As Long) As Long + +Const DMLERR_NO_ERROR = 0 ' must be 0 + +Const DMLERR_FIRST = &H4000 + +Const DMLERR_ADVACKTIMEOUT = &H4000 +Const DMLERR_BUSY = &H4001 +Const DMLERR_DATAACKTIMEOUT = &H4002 +Const DMLERR_DLL_NOT_INITIALIZED = &H4003 +Const DMLERR_DLL_USAGE = &H4004 +Const DMLERR_EXECACKTIMEOUT = &H4005 +Const DMLERR_INVALIDPARAMETER = &H4006 +Const DMLERR_LOW_MEMORY = &H4007 +Const DMLERR_MEMORY_ERROR = &H4008 +Const DMLERR_NOTPROCESSED = &H4009 +Const DMLERR_NO_CONV_ESTABLISHED = &H400A +Const DMLERR_POKEACKTIMEOUT = &H400B +Const DMLERR_POSTMSG_FAILED = &H400C +Const DMLERR_REENTRANCY = &H400D +Const DMLERR_SERVER_DIED = &H400E +Const DMLERR_SYS_ERROR = &H400F +Const DMLERR_UNADVACKTIMEOUT = &H4010 +Const DMLERR_UNFOUND_QUEUE_ID = &H4011 + +Const DMLERR_LAST = &H4011 + +Declare Function DdeCreateStringHandle Lib "user32" Alias "DdeCreateStringHandleA" (ByVal idInst As Long, ByVal psz As String, ByVal iCodePage As Long) As Long + +Declare Function DdeQueryString Lib "user32" Alias "DdeQueryStringA" (ByVal idInst As Long, ByVal hsz As Long, ByVal psz As String, ByVal cchMax As Long, ByVal iCodePage As Long) As Long + +Declare Function DdeFreeStringHandle Lib "user32" Alias "DdeFreeStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long +Declare Function DdeKeepStringHandle Lib "user32" Alias "DdeKeepStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long +Declare Function DdeCmpStringHandles Lib "user32" Alias "DdeCmpStringHandles" (ByVal hsz1 As Long, ByVal hsz2 As Long) As Long + +Type DDEML_MSG_HOOK_DATA ' new for NT + uiLo As Long ' unpacked lo and hi parts of lParam + uiHi As Long + cbData As Long ' amount of data in message, if any. May be > than 32 bytes. + Data(8) As Long ' data peeking by DDESPY is limited to 32 bytes. +End Type + +Type MONMSGSTRUCT + cb As Long + hwndTo As Long + dwTime As Long + htask As Long + wMsg As Long + wParam As Long + lParam As Long + dmhd As DDEML_MSG_HOOK_DATA ' new for NT +End Type + +Type MONCBSTRUCT + cb As Long + dwTime As Long + htask As Long + dwRet As Long + wType As Long + wFmt As Long + hConv As Long + hsz1 As Long + hsz2 As Long + hData As Long + dwData1 As Long + dwData2 As Long + cc As CONVCONTEXT ' new for NT for XTYP_CONNECT callbacks + cbData As Long ' new for NT for data peeking + Data(8) As Long ' new for NT for data peeking +End Type + +Type MONHSZSTRUCT + cb As Long + fsAction As Long ' MH_ value + dwTime As Long + hsz As Long + htask As Long + str As Byte +End Type + +Const MH_CREATE = 1 +Const MH_KEEP = 2 +Const MH_DELETE = 3 +Const MH_CLEANUP = 4 + +Type MONERRSTRUCT + cb As Long + wLastError As Long + dwTime As Long + htask As Long +End Type + +Type MONLINKSTRUCT + cb As Long + dwTime As Long + htask As Long + fEstablished As Long + fNoData As Long + hszSvc As Long + hszTopic As Long + hszItem As Long + wFmt As Long + fServer As Long + hConvServer As Long + hConvClient As Long +End Type + +Type MONCONVSTRUCT + cb As Long + fConnect As Long + dwTime As Long + htask As Long + hszSvc As Long + hszTopic As Long + hConvClient As Long ' Globally unique value != apps local hConv + hConvServer As Long ' Globally unique value != apps local hConv +End Type + +Const MAX_MONITORS = 4 +Const APPCLASS_MONITOR = &H1& +Const XTYP_MONITOR = (&HF0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK) + +' Callback filter flags for use with MONITOR apps - 0 implies no monitor callbacks +Const MF_HSZ_INFO = &H1000000 +Const MF_SENDMSGS = &H2000000 +Const MF_POSTMSGS = &H4000000 +Const MF_CALLBACKS = &H8000000 +Const MF_ERRORS = &H10000000 +Const MF_LINKS = &H20000000 +Const MF_CONV = &H40000000 + +Const MF_MASK = &HFF000000 + +' ----------------------------------------- +' Win32 API error code definitions +' ----------------------------------------- +' This section contains the error code definitions for the Win32 API functions. + +' NO_ERROR +Const NO_ERROR = 0 ' dderror + +' The configuration registry database operation completed successfully. +Const ERROR_SUCCESS = 0& + +' Incorrect function. +Const ERROR_INVALID_FUNCTION = 1 ' dderror + +' The system cannot find the file specified. +Const ERROR_FILE_NOT_FOUND = 2& + +' The system cannot find the path specified. +Const ERROR_PATH_NOT_FOUND = 3& + +' The system cannot open the file. +Const ERROR_TOO_MANY_OPEN_FILES = 4& + +' Access is denied. +Const ERROR_ACCESS_DENIED = 5& + +' The handle is invalid. +Const ERROR_INVALID_HANDLE = 6& + +' The storage control blocks were destroyed. +Const ERROR_ARENA_TRASHED = 7& + +' Not enough storage is available to process this command. +Const ERROR_NOT_ENOUGH_MEMORY = 8 ' dderror + +' The storage control block address is invalid. +Const ERROR_INVALID_BLOCK = 9& + +' The environment is incorrect. +Const ERROR_BAD_ENVIRONMENT = 10& + +' An attempt was made to load a program with an +' incorrect format. +Const ERROR_BAD_FORMAT = 11& + +' The access code is invalid. +Const ERROR_INVALID_ACCESS = 12& + +' The data is invalid. +Const ERROR_INVALID_DATA = 13& + +' Not enough storage is available to complete this operation. +Const ERROR_OUTOFMEMORY = 14& + +' The system cannot find the drive specified. +Const ERROR_INVALID_DRIVE = 15& + +' The directory cannot be removed. +Const ERROR_CURRENT_DIRECTORY = 16& + +' The system cannot move the file +' to a different disk drive. +Const ERROR_NOT_SAME_DEVICE = 17& + +' There are no more files. +Const ERROR_NO_MORE_FILES = 18& + +' The media is write protected. +Const ERROR_WRITE_PROTECT = 19& + +' The system cannot find the device specified. +Const ERROR_BAD_UNIT = 20& + +' The device is not ready. +Const ERROR_NOT_READY = 21& + +' The device does not recognize the command. +Const ERROR_BAD_COMMAND = 22& + +' Data error (cyclic redundancy check) +Const ERROR_CRC = 23& + +' The program issued a command but the +' command length is incorrect. +Const ERROR_BAD_LENGTH = 24& + +' The drive cannot locate a specific +' area or track on the disk. +Const ERROR_SEEK = 25& + +' The specified disk or diskette cannot be accessed. +Const ERROR_NOT_DOS_DISK = 26& + +' The drive cannot find the sector requested. +Const ERROR_SECTOR_NOT_FOUND = 27& + +' The printer is out of paper. +Const ERROR_OUT_OF_PAPER = 28& + +' The system cannot write to the specified device. +Const ERROR_WRITE_FAULT = 29& + +' The system cannot read from the specified device. +Const ERROR_READ_FAULT = 30& + +' A device attached to the system is not functioning. +Const ERROR_GEN_FAILURE = 31& + +' The process cannot access the file because +' it is being used by another process. +Const ERROR_SHARING_VIOLATION = 32& + +' The process cannot access the file because +' another process has locked a portion of the file. +Const ERROR_LOCK_VIOLATION = 33& + +' The wrong diskette is in the drive. +' Insert %2 (Volume Serial Number: %3) +' into drive %1. +Const ERROR_WRONG_DISK = 34& + +' Too many files opened for sharing. +Const ERROR_SHARING_BUFFER_EXCEEDED = 36& + +' Reached end of file. +Const ERROR_HANDLE_EOF = 38& + +' The disk is full. +Const ERROR_HANDLE_DISK_FULL = 39& + +' The network request is not supported. +Const ERROR_NOT_SUPPORTED = 50& + +' The remote computer is not available. +Const ERROR_REM_NOT_LIST = 51& + +' A duplicate name exists on the network. +Const ERROR_DUP_NAME = 52& + +' The network path was not found. +Const ERROR_BAD_NETPATH = 53& + +' The network is busy. +Const ERROR_NETWORK_BUSY = 54& + +' The specified network resource or device is no longer +' available. +Const ERROR_DEV_NOT_EXIST = 55 ' dderror + +' The network BIOS command limit has been reached. +Const ERROR_TOO_MANY_CMDS = 56& + +' A network adapter hardware error occurred. +Const ERROR_ADAP_HDW_ERR = 57& + +' The specified server cannot perform the requested +' operation. +Const ERROR_BAD_NET_RESP = 58& + +' An unexpected network error occurred. +Const ERROR_UNEXP_NET_ERR = 59& + +' The remote adapter is not compatible. +Const ERROR_BAD_REM_ADAP = 60& + +' The printer queue is full. +Const ERROR_PRINTQ_FULL = 61& + +' Space to store the file waiting to be printed is +' not available on the server. +Const ERROR_NO_SPOOL_SPACE = 62& + +' Your file waiting to be printed was deleted. +Const ERROR_PRINT_CANCELLED = 63& + +' The specified network name is no longer available. +Const ERROR_NETNAME_DELETED = 64& + +' Network access is denied. +Const ERROR_NETWORK_ACCESS_DENIED = 65& + +' The network resource type is not correct. +Const ERROR_BAD_DEV_TYPE = 66& + +' The network name cannot be found. +Const ERROR_BAD_NET_NAME = 67& + +' The name limit for the local computer network +' adapter card was exceeded. +Const ERROR_TOO_MANY_NAMES = 68& + +' The network BIOS session limit was exceeded. +Const ERROR_TOO_MANY_SESS = 69& + +' The remote server has been paused or is in the +' process of being started. +Const ERROR_SHARING_PAUSED = 70& + +' The network request was not accepted. +Const ERROR_REQ_NOT_ACCEP = 71& + +' The specified printer or disk device has been paused. +Const ERROR_REDIR_PAUSED = 72& + +' The file exists. +Const ERROR_FILE_EXISTS = 80& + +' The directory or file cannot be created. +Const ERROR_CANNOT_MAKE = 82& + +' Fail on INT 24 +Const ERROR_FAIL_I24 = 83& + +' Storage to process this request is not available. +Const ERROR_OUT_OF_STRUCTURES = 84& + +' The local device name is already in use. +Const ERROR_ALREADY_ASSIGNED = 85& + +' The specified network password is not correct. +Const ERROR_INVALID_PASSWORD = 86& + +' The parameter is incorrect. +Const ERROR_INVALID_PARAMETER = 87 ' dderror + +' A write fault occurred on the network. +Const ERROR_NET_WRITE_FAULT = 88& + +' The system cannot start another process at +' this time. +Const ERROR_NO_PROC_SLOTS = 89& + +' Cannot create another system semaphore. +Const ERROR_TOO_MANY_SEMAPHORES = 100& + +' The exclusive semaphore is owned by another process. +Const ERROR_EXCL_SEM_ALREADY_OWNED = 101& + +' The semaphore is set and cannot be closed. +Const ERROR_SEM_IS_SET = 102& + +' The semaphore cannot be set again. +Const ERROR_TOO_MANY_SEM_REQUESTS = 103& + +' Cannot request exclusive semaphores at interrupt time. +Const ERROR_INVALID_AT_INTERRUPT_TIME = 104& + +' The previous ownership of this semaphore has ended. +Const ERROR_SEM_OWNER_DIED = 105& + +' Insert the diskette for drive %1. +Const ERROR_SEM_USER_LIMIT = 106& + +' Program stopped because alternate diskette was not inserted. +Const ERROR_DISK_CHANGE = 107& + +' The disk is in use or locked by +' another process. +Const ERROR_DRIVE_LOCKED = 108& + +' The pipe has been ended. +Const ERROR_BROKEN_PIPE = 109& + +' The system cannot open the +' device or file specified. +Const ERROR_OPEN_FAILED = 110& + +' The file name is too long. +Const ERROR_BUFFER_OVERFLOW = 111& + +' There is not enough space on the disk. +Const ERROR_DISK_FULL = 112& + +' No more internal file identifiers available. +Const ERROR_NO_MORE_SEARCH_HANDLES = 113& + +' The target internal file identifier is incorrect. +Const ERROR_INVALID_TARGET_HANDLE = 114& + +' The IOCTL call made by the application program is +' not correct. +Const ERROR_INVALID_CATEGORY = 117& + +' The verify-on-write switch parameter value is not +' correct. +Const ERROR_INVALID_VERIFY_SWITCH = 118& + +' The system does not support the command requested. +Const ERROR_BAD_DRIVER_LEVEL = 119& + +' This function is only valid in Windows NT mode. +Const ERROR_CALL_NOT_IMPLEMENTED = 120& + +' The semaphore timeout period has expired. +Const ERROR_SEM_TIMEOUT = 121& + +' The data area passed to a system call is too +' small. +Const ERROR_INSUFFICIENT_BUFFER = 122 ' dderror + +' The filename, directory name, or volume label syntax is incorrect. +Const ERROR_INVALID_NAME = 123& + +' The system call level is not correct. +Const ERROR_INVALID_LEVEL = 124& + +' The disk has no volume label. +Const ERROR_NO_VOLUME_LABEL = 125& + +' The specified module could not be found. +Const ERROR_MOD_NOT_FOUND = 126& + +' The specified procedure could not be found. +Const ERROR_PROC_NOT_FOUND = 127& + +' There are no child processes to wait for. +Const ERROR_WAIT_NO_CHILDREN = 128& + +' The %1 application cannot be run in Windows NT mode. +Const ERROR_CHILD_NOT_COMPLETE = 129& + +' Attempt to use a file handle to an open disk partition for an +' operation other than raw disk I/O. +Const ERROR_DIRECT_ACCESS_HANDLE = 130& + +' An attempt was made to move the file pointer before the beginning of the file. +Const ERROR_NEGATIVE_SEEK = 131& + +' The file pointer cannot be set on the specified device or file. +Const ERROR_SEEK_ON_DEVICE = 132& + +' A JOIN or SUBST command +' cannot be used for a drive that +' contains previously joined drives. +Const ERROR_IS_JOIN_TARGET = 133& + +' An attempt was made to use a +' JOIN or SUBST command on a drive that has +' already been joined. +Const ERROR_IS_JOINED = 134& + +' An attempt was made to use a +' JOIN or SUBST command on a drive that has +' already been substituted. +Const ERROR_IS_SUBSTED = 135& + +' The system tried to delete +' the JOIN of a drive that is not joined. +Const ERROR_NOT_JOINED = 136& + +' The system tried to delete the +' substitution of a drive that is not substituted. +Const ERROR_NOT_SUBSTED = 137& + +' The system tried to join a drive +' to a directory on a joined drive. +Const ERROR_JOIN_TO_JOIN = 138& + +' The system tried to substitute a +' drive to a directory on a substituted drive. +Const ERROR_SUBST_TO_SUBST = 139& + +' The system tried to join a drive to +' a directory on a substituted drive. +Const ERROR_JOIN_TO_SUBST = 140& + +' The system tried to SUBST a drive +' to a directory on a joined drive. +Const ERROR_SUBST_TO_JOIN = 141& + +' The system cannot perform a JOIN or SUBST at this time. +Const ERROR_BUSY_DRIVE = 142& + +' The system cannot join or substitute a +' drive to or for a directory on the same drive. +Const ERROR_SAME_DRIVE = 143& + +' The directory is not a subdirectory of the root directory. +Const ERROR_DIR_NOT_ROOT = 144& + +' The directory is not empty. +Const ERROR_DIR_NOT_EMPTY = 145& + +' The path specified is being used in +' a substitute. +Const ERROR_IS_SUBST_PATH = 146& + +' Not enough resources are available to +' process this command. +Const ERROR_IS_JOIN_PATH = 147& + +' The path specified cannot be used at this time. +Const ERROR_PATH_BUSY = 148& + +' An attempt was made to join +' or substitute a drive for which a directory +' on the drive is the target of a previous +' substitute. +Const ERROR_IS_SUBST_TARGET = 149& + +' System trace information was not specified in your +' CONFIG.SYS file, or tracing is disallowed. +Const ERROR_SYSTEM_TRACE = 150& + +' The number of specified semaphore events for +' DosMuxSemWait is not correct. +Const ERROR_INVALID_EVENT_COUNT = 151& + +' DosMuxSemWait did not execute; too many semaphores +' are already set. +Const ERROR_TOO_MANY_MUXWAITERS = 152& + +' The DosMuxSemWait list is not correct. +Const ERROR_INVALID_LIST_FORMAT = 153& + +' The volume label you entered exceeds the +' 11 character limit. The first 11 characters were written +' to disk. Any characters that exceeded the 11 character limit +' were automatically deleted. +Const ERROR_LABEL_TOO_LONG = 154& + +' Cannot create another thread. +Const ERROR_TOO_MANY_TCBS = 155& + +' The recipient process has refused the signal. +Const ERROR_SIGNAL_REFUSED = 156& + +' The segment is already discarded and cannot be locked. +Const ERROR_DISCARDED = 157& + +' The segment is already unlocked. +Const ERROR_NOT_LOCKED = 158& + +' The address for the thread ID is not correct. +Const ERROR_BAD_THREADID_ADDR = 159& + +' The argument string passed to DosExecPgm is not correct. +Const ERROR_BAD_ARGUMENTS = 160& + +' The specified path is invalid. +Const ERROR_BAD_PATHNAME = 161& + +' A signal is already pending. +Const ERROR_SIGNAL_PENDING = 162& + +' No more threads can be created in the system. +Const ERROR_MAX_THRDS_REACHED = 164& + +' Unable to lock a region of a file. +Const ERROR_LOCK_FAILED = 167& + +' The requested resource is in use. +Const ERROR_BUSY = 170& + +' A lock request was not outstanding for the supplied cancel region. +Const ERROR_CANCEL_VIOLATION = 173& + +' The file system does not support atomic changes to the lock type. +Const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174& + +' The system detected a segment number that was not correct. +Const ERROR_INVALID_SEGMENT_NUMBER = 180& + +' The operating system cannot run %1. +Const ERROR_INVALID_ORDINAL = 182& + +' Cannot create a file when that file already exists. +Const ERROR_ALREADY_EXISTS = 183& + +' The flag passed is not correct. +Const ERROR_INVALID_FLAG_NUMBER = 186& + +' The specified system semaphore name was not found. +Const ERROR_SEM_NOT_FOUND = 187& + +' The operating system cannot run %1. +Const ERROR_INVALID_STARTING_CODESEG = 188& + +' The operating system cannot run %1. +Const ERROR_INVALID_STACKSEG = 189& + +' The operating system cannot run %1. +Const ERROR_INVALID_MODULETYPE = 190& + +' Cannot run %1 in Windows NT mode. +Const ERROR_INVALID_EXE_SIGNATURE = 191& + +' The operating system cannot run %1. +Const ERROR_EXE_MARKED_INVALID = 192& + +' %1 is not a valid Windows NT application. +Const ERROR_BAD_EXE_FORMAT = 193& + +' The operating system cannot run %1. +Const ERROR_ITERATED_DATA_EXCEEDS_64k = 194& + +' The operating system cannot run %1. +Const ERROR_INVALID_MINALLOCSIZE = 195& + +' The operating system cannot run this +' application program. +Const ERROR_DYNLINK_FROM_INVALID_RING = 196& + +' The operating system is not presently +' configured to run this application. +Const ERROR_IOPL_NOT_ENABLED = 197& + +' The operating system cannot run %1. +Const ERROR_INVALID_SEGDPL = 198& + +' The operating system cannot run this +' application program. +Const ERROR_AUTODATASEG_EXCEEDS_64k = 199& + +' The code segment cannot be greater than or equal to 64KB. +Const ERROR_RING2SEG_MUST_BE_MOVABLE = 200& + +' The operating system cannot run %1. +Const ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201& + +' The operating system cannot run %1. +Const ERROR_INFLOOP_IN_RELOC_CHAIN = 202& + +' The system could not find the environment +' option that was entered. +Const ERROR_ENVVAR_NOT_FOUND = 203& + +' No process in the command subtree has a +' signal handler. +Const ERROR_NO_SIGNAL_SENT = 205& + +' The filename or extension is too long. +Const ERROR_FILENAME_EXCED_RANGE = 206& + +' The ring 2 stack is in use. +Const ERROR_RING2_STACK_IN_USE = 207& + +' The Global filename characters, or ?, are entered +' incorrectly or too many Global filename characters are specified. +Const ERROR_META_EXPANSION_TOO_LONG = 208& + +' The signal being posted is not correct. +Const ERROR_INVALID_SIGNAL_NUMBER = 209& + +' The signal handler cannot be set. +Const ERROR_THREAD_1_INACTIVE = 210& + +' The segment is locked and cannot be reallocated. +Const ERROR_LOCKED = 212& + +' Too many dynamic link modules are attached to this +' program or dynamic link module. +Const ERROR_TOO_MANY_MODULES = 214& + +' Can't nest calls to LoadModule. +Const ERROR_NESTING_NOT_ALLOWED = 215& + +' The pipe state is invalid. +Const ERROR_BAD_PIPE = 230& + +' All pipe instances are busy. +Const ERROR_PIPE_BUSY = 231& + +' The pipe is being closed. +Const ERROR_NO_DATA = 232& + +' No process is on the other end of the pipe. +Const ERROR_PIPE_NOT_CONNECTED = 233& + +' More data is available. +Const ERROR_MORE_DATA = 234 ' dderror + +' The session was cancelled. +Const ERROR_VC_DISCONNECTED = 240& + +' The specified extended attribute name was invalid. +Const ERROR_INVALID_EA_NAME = 254& + +' The extended attributes are inconsistent. +Const ERROR_EA_LIST_INCONSISTENT = 255& + +' No more data is available. +Const ERROR_NO_MORE_ITEMS = 259& + +' The Copy API cannot be used. +Const ERROR_CANNOT_COPY = 266& + +' The directory name is invalid. +Const ERROR_DIRECTORY = 267& + +' The extended attributes did not fit in the buffer. +Const ERROR_EAS_DIDNT_FIT = 275& + +' The extended attribute file on the mounted file system is corrupt. +Const ERROR_EA_FILE_CORRUPT = 276& + +' The extended attribute table file is full. +Const ERROR_EA_TABLE_FULL = 277& + +' The specified extended attribute handle is invalid. +Const ERROR_INVALID_EA_HANDLE = 278& + +' The mounted file system does not support extended attributes. +Const ERROR_EAS_NOT_SUPPORTED = 282& + +' Attempt to release mutex not owned by caller. +Const ERROR_NOT_OWNER = 288& + +' Too many posts were made to a semaphore. +Const ERROR_TOO_MANY_POSTS = 298& + +' The system cannot find message for message number 0x%1 +' in message file for %2. +Const ERROR_MR_MID_NOT_FOUND = 317& + +' Attempt to access invalid address. +Const ERROR_INVALID_ADDRESS = 487& + +' Arithmetic result exceeded 32 bits. +Const ERROR_ARITHMETIC_OVERFLOW = 534& + +' There is a process on other end of the pipe. +Const ERROR_PIPE_CONNECTED = 535& + +' Waiting for a process to open the other end of the pipe. +Const ERROR_PIPE_LISTENING = 536& + +' Access to the extended attribute was denied. +Const ERROR_EA_ACCESS_DENIED = 994& + +' The I/O operation has been aborted because of either a thread exit +' or an application request. +Const ERROR_OPERATION_ABORTED = 995& + +' Overlapped I/O event is not in a signalled state. +Const ERROR_IO_INCOMPLETE = 996& + +' Overlapped I/O operation is in progress. +Const ERROR_IO_PENDING = 997 ' dderror + +' Invalid access to memory location. +Const ERROR_NOACCESS = 998& + +' Error performing inpage operation. +Const ERROR_SWAPERROR = 999& + +' Recursion too deep, stack overflowed. +Const ERROR_STACK_OVERFLOW = 1001& + +' The window cannot act on the sent message. +Const ERROR_INVALID_MESSAGE = 1002& + +' Cannot complete this function. +Const ERROR_CAN_NOT_COMPLETE = 1003& + +' Invalid flags. +Const ERROR_INVALID_FLAGS = 1004& + +' The volume does not contain a recognized file system. +' Please make sure that all required file system drivers are loaded and that the +' volume is not corrupt. +Const ERROR_UNRECOGNIZED_VOLUME = 1005& + +' The volume for a file has been externally altered such that the +' opened file is no longer valid. +Const ERROR_FILE_INVALID = 1006& + +' The requested operation cannot be performed in full-screen mode. +Const ERROR_FULLSCREEN_MODE = 1007& + +' An attempt was made to reference a token that does not exist. +Const ERROR_NO_TOKEN = 1008& + +' The configuration registry database is corrupt. +Const ERROR_BADDB = 1009& + +' The configuration registry key is invalid. +Const ERROR_BADKEY = 1010& + +' The configuration registry key could not be opened. +Const ERROR_CANTOPEN = 1011& + +' The configuration registry key could not be read. +Const ERROR_CANTREAD = 1012& + +' The configuration registry key could not be written. +Const ERROR_CANTWRITE = 1013& + +' One of the files in the Registry database had to be recovered +' by use of a log or alternate copy. The recovery was successful. +Const ERROR_REGISTRY_RECOVERED = 1014& + +' The Registry is corrupt. The structure of one of the files that contains +' Registry data is corrupt, or the system's image of the file in memory +' is corrupt, or the file could not be recovered because the alternate +' copy or log was absent or corrupt. +Const ERROR_REGISTRY_CORRUPT = 1015& + +' An I/O operation initiated by the Registry failed unrecoverably. +' The Registry could not read in, or write out, or flush, one of the files +' that contain the system's image of the Registry. +Const ERROR_REGISTRY_IO_FAILED = 1016& + +' The system has attempted to load or restore a file into the Registry, but the +' specified file is not in a Registry file format. +Const ERROR_NOT_REGISTRY_FILE = 1017& + +' Illegal operation attempted on a Registry key which has been marked for deletion. +Const ERROR_KEY_DELETED = 1018& + +' System could not allocate the required space in a Registry log. +Const ERROR_NO_LOG_SPACE = 1019& + +' Cannot create a symbolic link in a Registry key that already +' has subkeys or values. +Const ERROR_KEY_HAS_CHILDREN = 1020& + +' Cannot create a stable subkey under a volatile parent key. +Const ERROR_CHILD_MUST_BE_VOLATILE = 1021& + +' A notify change request is being completed and the information +' is not being returned in the caller's buffer. The caller now +' needs to enumerate the files to find the changes. +Const ERROR_NOTIFY_ENUM_DIR = 1022& + +' A stop control has been sent to a service which other running services +' are dependent on. +Const ERROR_DEPENDENT_SERVICES_RUNNING = 1051& + +' The requested control is not valid for this service +Const ERROR_INVALID_SERVICE_CONTROL = 1052& + +' The service did not respond to the start or control request in a timely +' fashion. +Const ERROR_SERVICE_REQUEST_TIMEOUT = 1053& + +' A thread could not be created for the service. +Const ERROR_SERVICE_NO_THREAD = 1054& + +' The service database is locked. +Const ERROR_SERVICE_DATABASE_LOCKED = 1055& + +' An instance of the service is already running. +Const ERROR_SERVICE_ALREADY_RUNNING = 1056& + +' The account name is invalid or does not exist. +Const ERROR_INVALID_SERVICE_ACCOUNT = 1057& + +' The specified service is disabled and cannot be started. +Const ERROR_SERVICE_DISABLED = 1058& + +' Circular service dependency was specified. +Const ERROR_CIRCULAR_DEPENDENCY = 1059& + +' The specified service does not exist as an installed service. +Const ERROR_SERVICE_DOES_NOT_EXIST = 1060& + +' The service cannot accept control messages at this time. +Const ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061& + +' The service has not been started. +Const ERROR_SERVICE_NOT_ACTIVE = 1062& + +' The service process could not connect to the service controller. +Const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063& + +' An exception occurred in the service when handling the control request. +Const ERROR_EXCEPTION_IN_SERVICE = 1064& + +' The database specified does not exist. +Const ERROR_DATABASE_DOES_NOT_EXIST = 1065& + +' The service has returned a service-specific error code. +Const ERROR_SERVICE_SPECIFIC_ERROR = 1066& + +' The process terminated unexpectedly. +Const ERROR_PROCESS_ABORTED = 1067& + +' The dependency service or group failed to start. +Const ERROR_SERVICE_DEPENDENCY_FAIL = 1068& + +' The service did not start due to a logon failure. +Const ERROR_SERVICE_LOGON_FAILED = 1069& + +' After starting, the service hung in a start-pending state. +Const ERROR_SERVICE_START_HANG = 1070& + +' The specified service database lock is invalid. +Const ERROR_INVALID_SERVICE_LOCK = 1071& + +' The specified service has been marked for deletion. +Const ERROR_SERVICE_MARKED_FOR_DELETE = 1072& + +' The specified service already exists. +Const ERROR_SERVICE_EXISTS = 1073& + +' The system is currently running with the last-known-good configuration. +Const ERROR_ALREADY_RUNNING_LKG = 1074& + +' The dependency service does not exist or has been marked for +' deletion. +Const ERROR_SERVICE_DEPENDENCY_DELETED = 1075& + +' The current boot has already been accepted for use as the +' last-known-good control set. +Const ERROR_BOOT_ALREADY_ACCEPTED = 1076& + +' No attempts to start the service have been made since the last boot. +Const ERROR_SERVICE_NEVER_STARTED = 1077& + +' The name is already in use as either a service name or a service display +' name. +Const ERROR_DUPLICATE_SERVICE_NAME = 1078& + +' The physical end of the tape has been reached. +Const ERROR_END_OF_MEDIA = 1100& + +' A tape access reached a filemark. +Const ERROR_FILEMARK_DETECTED = 1101& + +' Beginning of tape or partition was encountered. +Const ERROR_BEGINNING_OF_MEDIA = 1102& + +' A tape access reached the end of a set of files. +Const ERROR_SETMARK_DETECTED = 1103& + +' No more data is on the tape. +Const ERROR_NO_DATA_DETECTED = 1104& + +' Tape could not be partitioned. +Const ERROR_PARTITION_FAILURE = 1105& + +' When accessing a new tape of a multivolume partition, the current +' blocksize is incorrect. +Const ERROR_INVALID_BLOCK_LENGTH = 1106& + +' Tape partition information could not be found when loading a tape. +Const ERROR_DEVICE_NOT_PARTITIONED = 1107& + +' Unable to lock the media eject mechanism. +Const ERROR_UNABLE_TO_LOCK_MEDIA = 1108& + +' Unable to unload the media. +Const ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109& + +' Media in drive may have changed. +Const ERROR_MEDIA_CHANGED = 1110& + +' The I/O bus was reset. +Const ERROR_BUS_RESET = 1111& + +' No media in drive. +Const ERROR_NO_MEDIA_IN_DRIVE = 1112& + +' No mapping for the Unicode character exists in the target multi-byte code page. +Const ERROR_NO_UNICODE_TRANSLATION = 1113& + +' A dynamic link library (DLL) initialization routine failed. +Const ERROR_DLL_INIT_FAILED = 1114& + +' A system shutdown is in progress. +Const ERROR_SHUTDOWN_IN_PROGRESS = 1115& + +' Unable to abort the system shutdown because no shutdown was in progress. +Const ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116& + +' The request could not be performed because of an I/O device error. +Const ERROR_IO_DEVICE = 1117& + +' No serial device was successfully initialized. The serial driver will unload. +Const ERROR_SERIAL_NO_DEVICE = 1118& + +' Unable to open a device that was sharing an interrupt request (IRQ) +' with other devices. At least one other device that uses that IRQ +' was already opened. +Const ERROR_IRQ_BUSY = 1119& + +' A serial I/O operation was completed by another write to the serial port. +' (The IOCTL_SERIAL_XOFF_COUNTER reached zero.) +Const ERROR_MORE_WRITES = 1120& + +' A serial I/O operation completed because the time-out period expired. +' (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.) +Const ERROR_COUNTER_TIMEOUT = 1121& + +' No ID address mark was found on the floppy disk. +Const ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122& + +' Mismatch between the floppy disk sector ID field and the floppy disk +' controller track address. +Const ERROR_FLOPPY_WRONG_CYLINDER = 1123& + +' The floppy disk controller reported an error that is not recognized +' by the floppy disk driver. +Const ERROR_FLOPPY_UNKNOWN_ERROR = 1124& + +' The floppy disk controller returned inconsistent results in its registers. +Const ERROR_FLOPPY_BAD_REGISTERS = 1125& + +' While accessing the hard disk, a recalibrate operation failed, even after retries. +Const ERROR_DISK_RECALIBRATE_FAILED = 1126& + +' While accessing the hard disk, a disk operation failed even after retries. +Const ERROR_DISK_OPERATION_FAILED = 1127& + +' While accessing the hard disk, a disk controller reset was needed, but +' even that failed. +Const ERROR_DISK_RESET_FAILED = 1128& + +' Physical end of tape encountered. +Const ERROR_EOM_OVERFLOW = 1129& + +' Not enough server storage is available to process this command. +Const ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130& + +' A potential deadlock condition has been detected. +Const ERROR_POSSIBLE_DEADLOCK = 1131& + +' The base address or the file offset specified does not have the proper +' alignment. +Const ERROR_MAPPED_ALIGNMENT = 1132& + +' NEW for Win32 +Const ERROR_INVALID_PIXEL_FORMAT = 2000 +Const ERROR_BAD_DRIVER = 2001 +Const ERROR_INVALID_WINDOW_STYLE = 2002 +Const ERROR_METAFILE_NOT_SUPPORTED = 2003 +Const ERROR_TRANSFORM_NOT_SUPPORTED = 2004 +Const ERROR_CLIPPING_NOT_SUPPORTED = 2005 +Const ERROR_UNKNOWN_PRINT_MONITOR = 3000 +Const ERROR_PRINTER_DRIVER_IN_USE = 3001 +Const ERROR_SPOOL_FILE_NOT_FOUND = 3002 +Const ERROR_SPL_NO_STARTDOC = 3003 +Const ERROR_SPL_NO_ADDJOB = 3004 +Const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005 +Const ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006 +Const ERROR_WINS_INTERNAL = 4000 +Const ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001 +Const ERROR_STATIC_INIT = 4002 +Const ERROR_INC_BACKUP = 4003 +Const ERROR_FULL_BACKUP = 4004 +Const ERROR_REC_NON_EXISTENT = 4005 +Const ERROR_RPL_NOT_ALLOWED = 4006 +Const SEVERITY_SUCCESS = 0 +Const SEVERITY_ERROR = 1 +Const FACILITY_NT_BIT = &H10000000 +Const NOERROR = 0 +Const E_UNEXPECTED = &H8000FFFF +Const E_NOTIMPL = &H80004001 +Const E_OUTOFMEMORY = &H8007000E +Const E_INVALIDARG = &H80070057 +Const E_NOINTERFACE = &H80004002 +Const E_POINTER = &H80004003 +Const E_HANDLE = &H80070006 +Const E_ABORT = &H80004004 +Const E_FAIL = &H80004005 +Const E_ACCESSDENIED = &H80070005 +Const CO_E_INIT_TLS = &H80004006 +Const CO_E_INIT_SHARED_ALLOCATOR = &H80004007 +Const CO_E_INIT_MEMORY_ALLOCATOR = &H80004008 +Const CO_E_INIT_CLASS_CACHE = &H80004009 +Const CO_E_INIT_RPC_CHANNEL = &H8000400A +Const CO_E_INIT_TLS_SET_CHANNEL_CONTROL = &H8000400B +Const CO_E_INIT_TLS_CHANNEL_CONTROL = &H8000400C +Const CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = &H8000400D +Const CO_E_INIT_SCM_MUTEX_EXISTS = &H8000400E +Const CO_E_INIT_SCM_FILE_MAPPING_EXISTS = &H8000400F +Const CO_E_INIT_SCM_MAP_VIEW_OF_FILE = &H80004010 +Const CO_E_INIT_SCM_EXEC_FAILURE = &H80004011 +Const CO_E_INIT_ONLY_SINGLE_THREADED = &H80004012 +Const S_OK = &H0 +Const S_FALSE = &H1 +Const OLE_E_FIRST = &H80040000 +Const OLE_E_LAST = &H800400FF +Const OLE_S_FIRST = &H40000 +Const OLE_S_LAST = &H400FF +Const OLE_E_OLEVERB = &H80040000 +Const OLE_E_ADVF = &H80040001 +Const OLE_E_ENUM_NOMORE = &H80040002 +Const OLE_E_ADVISENOTSUPPORTED = &H80040003 +Const OLE_E_NOCONNECTION = &H80040004 +Const OLE_E_NOTRUNNING = &H80040005 +Const OLE_E_NOCACHE = &H80040006 +Const OLE_E_BLANK = &H80040007 +Const OLE_E_CLASSDIFF = &H80040008 +Const OLE_E_CANT_GETMONIKER = &H80040009 +Const OLE_E_CANT_BINDTOSOURCE = &H8004000A +Const OLE_E_STATIC = &H8004000B +Const OLE_E_PROMPTSAVECANCELLED = &H8004000C +Const OLE_E_INVALIDRECT = &H8004000D +Const OLE_E_WRONGCOMPOBJ = &H8004000E +Const OLE_E_INVALIDHWND = &H8004000F +Const OLE_E_NOT_INPLACEACTIVE = &H80040010 +Const OLE_E_CANTCONVERT = &H80040011 +Const OLE_E_NOSTORAGE = &H80040012 +Const DV_E_FORMATETC = &H80040064 +Const DV_E_DVTARGETDEVICE = &H80040065 +Const DV_E_STGMEDIUM = &H80040066 +Const DV_E_STATDATA = &H80040067 +Const DV_E_LINDEX = &H80040068 +Const DV_E_TYMED = &H80040069 +Const DV_E_CLIPFORMAT = &H8004006A +Const DV_E_DVASPECT = &H8004006B +Const DV_E_DVTARGETDEVICE_SIZE = &H8004006C +Const DV_E_NOIVIEWOBJECT = &H8004006D +Const DRAGDROP_E_FIRST = &H80040100 +Const DRAGDROP_E_LAST = &H8004010F +Const DRAGDROP_S_FIRST = &H40100 +Const DRAGDROP_S_LAST = &H4010F +Const DRAGDROP_E_NOTREGISTERED = &H80040100 +Const DRAGDROP_E_ALREADYREGISTERED = &H80040101 +Const DRAGDROP_E_INVALIDHWND = &H80040102 +Const CLASSFACTORY_E_FIRST = &H80040110 +Const CLASSFACTORY_E_LAST = &H8004011F +Const CLASSFACTORY_S_FIRST = &H40110 +Const CLASSFACTORY_S_LAST = &H4011F +Const CLASS_E_NOAGGREGATION = &H80040110 +Const CLASS_E_CLASSNOTAVAILABLE = &H80040111 +Const MARSHAL_E_FIRST = &H80040120 +Const MARSHAL_E_LAST = &H8004012F +Const MARSHAL_S_FIRST = &H40120 +Const MARSHAL_S_LAST = &H4012F +Const DATA_E_FIRST = &H80040130 +Const DATA_E_LAST = &H8004013F +Const DATA_S_FIRST = &H40130 +Const DATA_S_LAST = &H4013F +Const VIEW_E_FIRST = &H80040140 +Const VIEW_E_LAST = &H8004014F +Const VIEW_S_FIRST = &H40140 +Const VIEW_S_LAST = &H4014F +Const VIEW_E_DRAW = &H80040140 +Const REGDB_E_FIRST = &H80040150 +Const REGDB_E_LAST = &H8004015F +Const REGDB_S_FIRST = &H40150 +Const REGDB_S_LAST = &H4015F +Const REGDB_E_READREGDB = &H80040150 +Const REGDB_E_WRITEREGDB = &H80040151 +Const REGDB_E_KEYMISSING = &H80040152 +Const REGDB_E_INVALIDVALUE = &H80040153 +Const REGDB_E_CLASSNOTREG = &H80040154 +Const REGDB_E_IIDNOTREG = &H80040155 +Const CACHE_E_FIRST = &H80040170 +Const CACHE_E_LAST = &H8004017F +Const CACHE_S_FIRST = &H40170 +Const CACHE_S_LAST = &H4017F +Const CACHE_E_NOCACHE_UPDATED = &H80040170 +Const OLEOBJ_E_FIRST = &H80040180 +Const OLEOBJ_E_LAST = &H8004018F +Const OLEOBJ_S_FIRST = &H40180 +Const OLEOBJ_S_LAST = &H4018F +Const OLEOBJ_E_NOVERBS = &H80040180 +Const OLEOBJ_E_INVALIDVERB = &H80040181 +Const CLIENTSITE_E_FIRST = &H80040190 +Const CLIENTSITE_E_LAST = &H8004019F +Const CLIENTSITE_S_FIRST = &H40190 +Const CLIENTSITE_S_LAST = &H4019F +Const INPLACE_E_NOTUNDOABLE = &H800401A0 +Const INPLACE_E_NOTOOLSPACE = &H800401A1 +Const INPLACE_E_FIRST = &H800401A0 +Const INPLACE_E_LAST = &H800401AF +Const INPLACE_S_FIRST = &H401A0 +Const INPLACE_S_LAST = &H401AF +Const ENUM_E_FIRST = &H800401B0 +Const ENUM_E_LAST = &H800401BF +Const ENUM_S_FIRST = &H401B0 +Const ENUM_S_LAST = &H401BF +Const CONVERT10_E_FIRST = &H800401C0 +Const CONVERT10_E_LAST = &H800401CF +Const CONVERT10_S_FIRST = &H401C0 +Const CONVERT10_S_LAST = &H401CF +Const CONVERT10_E_OLESTREAM_GET = &H800401C0 +Const CONVERT10_E_OLESTREAM_PUT = &H800401C1 +Const CONVERT10_E_OLESTREAM_FMT = &H800401C2 +Const CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = &H800401C3 +Const CONVERT10_E_STG_FMT = &H800401C4 +Const CONVERT10_E_STG_NO_STD_STREAM = &H800401C5 +Const CONVERT10_E_STG_DIB_TO_BITMAP = &H800401C6 +Const CLIPBRD_E_FIRST = &H800401D0 +Const CLIPBRD_E_LAST = &H800401DF +Const CLIPBRD_S_FIRST = &H401D0 +Const CLIPBRD_S_LAST = &H401DF +Const CLIPBRD_E_CANT_OPEN = &H800401D0 +Const CLIPBRD_E_CANT_EMPTY = &H800401D1 +Const CLIPBRD_E_CANT_SET = &H800401D2 +Const CLIPBRD_E_BAD_DATA = &H800401D3 +Const CLIPBRD_E_CANT_CLOSE = &H800401D4 +Const MK_E_FIRST = &H800401E0 +Const MK_E_LAST = &H800401EF +Const MK_S_FIRST = &H401E0 +Const MK_S_LAST = &H401EF +Const MK_E_CONNECTMANUALLY = &H800401E0 +Const MK_E_EXCEEDEDDEADLINE = &H800401E1 +Const MK_E_NEEDGENERIC = &H800401E2 +Const MK_E_UNAVAILABLE = &H800401E3 +Const MK_E_SYNTAX = &H800401E4 +Const MK_E_NOOBJECT = &H800401E5 +Const MK_E_INVALIDEXTENSION = &H800401E6 +Const MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = &H800401E7 +Const MK_E_NOTBINDABLE = &H800401E8 +Const MK_E_NOTBOUND = &H800401E9 +Const MK_E_CANTOPENFILE = &H800401EA +Const MK_E_MUSTBOTHERUSER = &H800401EB +Const MK_E_NOINVERSE = &H800401EC +Const MK_E_NOSTORAGE = &H800401ED +Const MK_E_NOPREFIX = &H800401EE +Const MK_E_ENUMERATION_FAILED = &H800401EF +Const CO_E_FIRST = &H800401F0 +Const CO_E_LAST = &H800401FF +Const CO_S_FIRST = &H401F0 +Const CO_S_LAST = &H401FF +Const CO_E_NOTINITIALIZED = &H800401F0 +Const CO_E_ALREADYINITIALIZED = &H800401F1 +Const CO_E_CANTDETERMINECLASS = &H800401F2 +Const CO_E_CLASSSTRING = &H800401F3 +Const CO_E_IIDSTRING = &H800401F4 +Const CO_E_APPNOTFOUND = &H800401F5 +Const CO_E_APPSINGLEUSE = &H800401F6 +Const CO_E_ERRORINAPP = &H800401F7 +Const CO_E_DLLNOTFOUND = &H800401F8 +Const CO_E_ERRORINDLL = &H800401F9 +Const CO_E_WRONGOSFORAPP = &H800401FA +Const CO_E_OBJNOTREG = &H800401FB +Const CO_E_OBJISREG = &H800401FC +Const CO_E_OBJNOTCONNECTED = &H800401FD +Const CO_E_APPDIDNTREG = &H800401FE +Const CO_E_RELEASED = &H800401FF +Const OLE_S_USEREG = &H40000 +Const OLE_S_STATIC = &H40001 +Const OLE_S_MAC_CLIPFORMAT = &H40002 +Const DRAGDROP_S_DROP = &H40100 +Const DRAGDROP_S_CANCEL = &H40101 +Const DRAGDROP_S_USEDEFAULTCURSORS = &H40102 +Const DATA_S_SAMEFORMATETC = &H40130 +Const VIEW_S_ALREADY_FROZEN = &H40140 +Const CACHE_S_FORMATETC_NOTSUPPORTED = &H40170 +Const CACHE_S_SAMECACHE = &H40171 +Const CACHE_S_SOMECACHES_NOTUPDATED = &H40172 +Const OLEOBJ_S_INVALIDVERB = &H40180 +Const OLEOBJ_S_CANNOT_DOVERB_NOW = &H40181 +Const OLEOBJ_S_INVALIDHWND = &H40182 +Const INPLACE_S_TRUNCATED = &H401A0 +Const CONVERT10_S_NO_PRESENTATION = &H401C0 +Const MK_S_REDUCED_TO_SELF = &H401E2 +Const MK_S_ME = &H401E4 +Const MK_S_HIM = &H401E5 +Const MK_S_US = &H401E6 +Const MK_S_MONIKERALREADYREGISTERED = &H401E7 +Const CO_E_CLASS_CREATE_FAILED = &H80080001 +Const CO_E_SCM_ERROR = &H80080002 +Const CO_E_SCM_RPC_FAILURE = &H80080003 +Const CO_E_BAD_PATH = &H80080004 +Const CO_E_SERVER_EXEC_FAILURE = &H80080005 +Const CO_E_OBJSRV_RPC_FAILURE = &H80080006 +Const MK_E_NO_NORMALIZED = &H80080007 +Const CO_E_SERVER_STOPPING = &H80080008 +Const MEM_E_INVALID_ROOT = &H80080009 +Const MEM_E_INVALID_LINK = &H80080010 +Const MEM_E_INVALID_SIZE = &H80080011 +Const DISP_E_UNKNOWNINTERFACE = &H80020001 +Const DISP_E_MEMBERNOTFOUND = &H80020003 +Const DISP_E_PARAMNOTFOUND = &H80020004 +Const DISP_E_TYPEMISMATCH = &H80020005 +Const DISP_E_UNKNOWNNAME = &H80020006 +Const DISP_E_NONAMEDARGS = &H80020007 +Const DISP_E_BADVARTYPE = &H80020008 +Const DISP_E_EXCEPTION = &H80020009 +Const DISP_E_OVERFLOW = &H8002000A +Const DISP_E_BADINDEX = &H8002000B +Const DISP_E_UNKNOWNLCID = &H8002000C +Const DISP_E_ARRAYISLOCKED = &H8002000D +Const DISP_E_BADPARAMCOUNT = &H8002000E +Const DISP_E_PARAMNOTOPTIONAL = &H8002000F +Const DISP_E_BADCALLEE = &H80020010 +Const DISP_E_NOTACOLLECTION = &H80020011 +Const TYPE_E_BUFFERTOOSMALL = &H80028016 +Const TYPE_E_INVDATAREAD = &H80028018 +Const TYPE_E_UNSUPFORMAT = &H80028019 +Const TYPE_E_REGISTRYACCESS = &H8002801C +Const TYPE_E_LIBNOTREGISTERED = &H8002801D +Const TYPE_E_UNDEFINEDTYPE = &H80028027 +Const TYPE_E_QUALIFIEDNAMEDISALLOWED = &H80028028 +Const TYPE_E_INVALIDSTATE = &H80028029 +Const TYPE_E_WRONGTYPEKIND = &H8002802A +Const TYPE_E_ELEMENTNOTFOUND = &H8002802B +Const TYPE_E_AMBIGUOUSNAME = &H8002802C +Const TYPE_E_NAMECONFLICT = &H8002802D +Const TYPE_E_UNKNOWNLCID = &H8002802E +Const TYPE_E_DLLFUNCTIONNOTFOUND = &H8002802F +Const TYPE_E_BADMODULEKIND = &H800288BD +Const TYPE_E_SIZETOOBIG = &H800288C5 +Const TYPE_E_DUPLICATEID = &H800288C6 +Const TYPE_E_INVALIDID = &H800288CF +Const TYPE_E_TYPEMISMATCH = &H80028CA0 +Const TYPE_E_OUTOFBOUNDS = &H80028CA1 +Const TYPE_E_IOERROR = &H80028CA2 +Const TYPE_E_CANTCREATETMPFILE = &H80028CA3 +Const TYPE_E_CANTLOADLIBRARY = &H80029C4A +Const TYPE_E_INCONSISTENTPROPFUNCS = &H80029C83 +Const TYPE_E_CIRCULARTYPE = &H80029C84 +Const STG_E_INVALIDFUNCTION = &H80030001 +Const STG_E_FILENOTFOUND = &H80030002 +Const STG_E_PATHNOTFOUND = &H80030003 +Const STG_E_TOOMANYOPENFILES = &H80030004 +Const STG_E_ACCESSDENIED = &H80030005 +Const STG_E_INVALIDHANDLE = &H80030006 +Const STG_E_INSUFFICIENTMEMORY = &H80030008 +Const STG_E_INVALIDPOINTER = &H80030009 +Const STG_E_NOMOREFILES = &H80030012 +Const STG_E_DISKISWRITEPROTECTED = &H80030013 +Const STG_E_SEEKERROR = &H80030019 +Const STG_E_WRITEFAULT = &H8003001D +Const STG_E_READFAULT = &H8003001E +Const STG_E_SHAREVIOLATION = &H80030020 +Const STG_E_LOCKVIOLATION = &H80030021 +Const STG_E_FILEALREADYEXISTS = &H80030050 +Const STG_E_INVALIDPARAMETER = &H80030057 +Const STG_E_MEDIUMFULL = &H80030070 +Const STG_E_ABNORMALAPIEXIT = &H800300FA +Const STG_E_INVALIDHEADER = &H800300FB +Const STG_E_INVALIDNAME = &H800300FC +Const STG_E_UNKNOWN = &H800300FD +Const STG_E_UNIMPLEMENTEDFUNCTION = &H800300FE +Const STG_E_INVALIDFLAG = &H800300FF +Const STG_E_INUSE = &H80030100 +Const STG_E_NOTCURRENT = &H80030101 +Const STG_E_REVERTED = &H80030102 +Const STG_E_CANTSAVE = &H80030103 +Const STG_E_OLDFORMAT = &H80030104 +Const STG_E_OLDDLL = &H80030105 +Const STG_E_SHAREREQUIRED = &H80030106 +Const STG_E_NOTFILEBASEDSTORAGE = &H80030107 +Const STG_E_EXTANTMARSHALLINGS = &H80030108 +Const STG_S_CONVERTED = &H30200 +Const RPC_E_CALL_REJECTED = &H80010001 +Const RPC_E_CALL_CANCELED = &H80010002 +Const RPC_E_CANTPOST_INSENDCALL = &H80010003 +Const RPC_E_CANTCALLOUT_INASYNCCALL = &H80010004 +Const RPC_E_CANTCALLOUT_INEXTERNALCALL = &H80010005 +Const RPC_E_CONNECTION_TERMINATED = &H80010006 +Const RPC_E_SERVER_DIED = &H80010007 +Const RPC_E_CLIENT_DIED = &H80010008 +Const RPC_E_INVALID_DATAPACKET = &H80010009 +Const RPC_E_CANTTRANSMIT_CALL = &H8001000A +Const RPC_E_CLIENT_CANTMARSHAL_DATA = &H8001000B +Const RPC_E_CLIENT_CANTUNMARSHAL_DATA = &H8001000C +Const RPC_E_SERVER_CANTMARSHAL_DATA = &H8001000D +Const RPC_E_SERVER_CANTUNMARSHAL_DATA = &H8001000E +Const RPC_E_INVALID_DATA = &H8001000F +Const RPC_E_INVALID_PARAMETER = &H80010010 +Const RPC_E_CANTCALLOUT_AGAIN = &H80010011 +Const RPC_E_SERVER_DIED_DNE = &H80010012 +Const RPC_E_SYS_CALL_FAILED = &H80010100 +Const RPC_E_OUT_OF_RESOURCES = &H80010101 +Const RPC_E_ATTEMPTED_MULTITHREAD = &H80010102 +Const RPC_E_NOT_REGISTERED = &H80010103 +Const RPC_E_FAULT = &H80010104 +Const RPC_E_SERVERFAULT = &H80010105 +Const RPC_E_CHANGED_MODE = &H80010106 +Const RPC_E_INVALIDMETHOD = &H80010107 +Const RPC_E_DISCONNECTED = &H80010108 +Const RPC_E_RETRY = &H80010109 +Const RPC_E_SERVERCALL_RETRYLATER = &H8001010A +Const RPC_E_SERVERCALL_REJECTED = &H8001010B +Const RPC_E_INVALID_CALLDATA = &H8001010C +Const RPC_E_CANTCALLOUT_ININPUTSYNCCALL = &H8001010D +Const RPC_E_WRONG_THREAD = &H8001010E +Const RPC_E_THREAD_NOT_INIT = &H8001010F +Const RPC_E_UNEXPECTED = &H8001FFFF + + +' ///////////////////////// +' // +' Winnet32 Status Codes // +' // +' ///////////////////////// + +' The specified username is invalid. +Const ERROR_BAD_USERNAME = 2202& + +' This network connection does not exist. +Const ERROR_NOT_CONNECTED = 2250& + +' This network connection has files open or requests pending. +Const ERROR_OPEN_FILES = 2401& + +' The device is in use by an active process and cannot be disconnected. +Const ERROR_DEVICE_IN_USE = 2404& + +' The specified device name is invalid. +Const ERROR_BAD_DEVICE = 1200& + +' The device is not currently connected but it is a remembered connection. +Const ERROR_CONNECTION_UNAVAIL = 1201& + +' An attempt was made to remember a device that had previously been remembered. +Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202& + +' No network provider accepted the given network path. +Const ERROR_NO_NET_OR_BAD_PATH = 1203& + +' The specified network provider name is invalid. +Const ERROR_BAD_PROVIDER = 1204& + +' Unable to open the network connection profile. +Const ERROR_CANNOT_OPEN_PROFILE = 1205& + +' The network connection profile is corrupt. +Const ERROR_BAD_PROFILE = 1206& + +' Cannot enumerate a non-container. +Const ERROR_NOT_CONTAINER = 1207& + +' An extended error has occurred. +Const ERROR_EXTENDED_ERROR = 1208& + +' The format of the specified group name is invalid. +Const ERROR_INVALID_GROUPNAME = 1209& + +' The format of the specified computer name is invalid. +Const ERROR_INVALID_COMPUTERNAME = 1210& + +' The format of the specified event name is invalid. +Const ERROR_INVALID_EVENTNAME = 1211& + +' The format of the specified domain name is invalid. +Const ERROR_INVALID_DOMAINNAME = 1212& + +' The format of the specified service name is invalid. +Const ERROR_INVALID_SERVICENAME = 1213& + +' The format of the specified network name is invalid. +Const ERROR_INVALID_NETNAME = 1214& + +' The format of the specified share name is invalid. +Const ERROR_INVALID_SHARENAME = 1215& + +' The format of the specified password is invalid. +Const ERROR_INVALID_PASSWORDNAME = 1216& + +' The format of the specified message name is invalid. +Const ERROR_INVALID_MESSAGENAME = 1217& + +' The format of the specified message destination is invalid. +Const ERROR_INVALID_MESSAGEDEST = 1218& + +' The credentials supplied conflict with an existing set of credentials. +Const ERROR_SESSION_CREDENTIAL_CONFLICT = 1219& + +' An attempt was made to establish a session to a Lan Manager server, but there +' are already too many sessions established to that server. +Const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220& + +' The workgroup or domain name is already in use by another computer on the +' network. +Const ERROR_DUP_DOMAINNAME = 1221& + +' The network is not present or not started. +Const ERROR_NO_NETWORK = 1222& + + +' ///////////////////////// +' // +' Security Status Codes // +' // +' ///////////////////////// + +' Not all privileges referenced are assigned to the caller. +Const ERROR_NOT_ALL_ASSIGNED = 1300& + +' Some mapping between account names and security IDs was not done. +Const ERROR_SOME_NOT_MAPPED = 1301& + +' No system quota limits are specifically set for this account. +Const ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302& + +' No encryption key is available. A well-known encryption key was returned. +Const ERROR_LOCAL_USER_SESSION_KEY = 1303& + +' The NT password is too complex to be converted to a LAN Manager +' password. The LAN Manager password returned is a NULL string. +Const ERROR_NULL_LM_PASSWORD = 1304& + +' The revision level is unknown. +Const ERROR_UNKNOWN_REVISION = 1305& + +' Indicates two revision levels are incompatible. +Const ERROR_REVISION_MISMATCH = 1306& + +' This security ID may not be assigned as the owner of this object. +Const ERROR_INVALID_OWNER = 1307& + +' This security ID may not be assigned as the primary group of an object. +Const ERROR_INVALID_PRIMARY_GROUP = 1308& + +' An attempt has been made to operate on an impersonation token +' by a thread that is not currently impersonating a client. +Const ERROR_NO_IMPERSONATION_TOKEN = 1309& + +' The group may not be disabled. +Const ERROR_CANT_DISABLE_MANDATORY = 1310& + +' There are currently no logon servers available to service the logon +' request. +Const ERROR_NO_LOGON_SERVERS = 1311& + +' A specified logon session does not exist. It may already have +' been terminated. +Const ERROR_NO_SUCH_LOGON_SESSION = 1312& + +' A specified privilege does not exist. +Const ERROR_NO_SUCH_PRIVILEGE = 1313& + +' A required privilege is not held by the client. +Const ERROR_PRIVILEGE_NOT_HELD = 1314& + +' The name provided is not a properly formed account name. +Const ERROR_INVALID_ACCOUNT_NAME = 1315& + +' The specified user already exists. +Const ERROR_USER_EXISTS = 1316& + +' The specified user does not exist. +Const ERROR_NO_SUCH_USER = 1317& + +' The specified group already exists. +Const ERROR_GROUP_EXISTS = 1318& + +' The specified group does not exist. +Const ERROR_NO_SUCH_GROUP = 1319& + +' Either the specified user account is already a member of the specified +' group, or the specified group cannot be deleted because it contains +' a member. +Const ERROR_MEMBER_IN_GROUP = 1320& + +' The specified user account is not a member of the specified group account. +Const ERROR_MEMBER_NOT_IN_GROUP = 1321& + +' The last remaining administration account cannot be disabled +' or deleted. +Const ERROR_LAST_ADMIN = 1322& + +' Unable to update the password. The value provided as the current +' password is incorrect. +Const ERROR_WRONG_PASSWORD = 1323& + +' Unable to update the password. The value provided for the new password +' contains values that are not allowed in passwords. +Const ERROR_ILL_FORMED_PASSWORD = 1324& + +' Unable to update the password because a password update rule has been +' violated. +Const ERROR_PASSWORD_RESTRICTION = 1325& + +' Logon failure: unknown user name or bad password. +Const ERROR_LOGON_FAILURE = 1326& + +' Logon failure: user account restriction. +Const ERROR_ACCOUNT_RESTRICTION = 1327& + +' Logon failure: account logon time restriction violation. +Const ERROR_INVALID_LOGON_HOURS = 1328& + +' Logon failure: user not allowed to log on to this computer. +Const ERROR_INVALID_WORKSTATION = 1329& + +' Logon failure: the specified account password has expired. +Const ERROR_PASSWORD_EXPIRED = 1330& + +' Logon failure: account currently disabled. +Const ERROR_ACCOUNT_DISABLED = 1331& + +' No mapping between account names and security IDs was done. +Const ERROR_NONE_MAPPED = 1332& + +' Too many local user identifiers (LUIDs) were requested at one time. +Const ERROR_TOO_MANY_LUIDS_REQUESTED = 1333& + +' No more local user identifiers (LUIDs) are available. +Const ERROR_LUIDS_EXHAUSTED = 1334& + +' The subauthority part of a security ID is invalid for this particular use. +Const ERROR_INVALID_SUB_AUTHORITY = 1335& + +' The access control list (ACL) structure is invalid. +Const ERROR_INVALID_ACL = 1336& + +' The security ID structure is invalid. +Const ERROR_INVALID_SID = 1337& + +' The security descriptor structure is invalid. +Const ERROR_INVALID_SECURITY_DESCR = 1338& + +' The inherited access control list (ACL) or access control entry (ACE) +' could not be built. +Const ERROR_BAD_INHERITANCE_ACL = 1340& + +' The server is currently disabled. +Const ERROR_SERVER_DISABLED = 1341& + +' The server is currently enabled. +Const ERROR_SERVER_NOT_DISABLED = 1342& + +' The value provided was an invalid value for an identifier authority. +Const ERROR_INVALID_ID_AUTHORITY = 1343& + +' No more memory is available for security information updates. +Const ERROR_ALLOTTED_SPACE_EXCEEDED = 1344& + +' The specified attributes are invalid, or incompatible with the +' attributes for the group as a whole. +Const ERROR_INVALID_GROUP_ATTRIBUTES = 1345& + +' Either a required impersonation level was not provided, or the +' provided impersonation level is invalid. +Const ERROR_BAD_IMPERSONATION_LEVEL = 1346& + +' Cannot open an anonymous level security token. +Const ERROR_CANT_OPEN_ANONYMOUS = 1347& + +' The validation information class requested was invalid. +Const ERROR_BAD_VALIDATION_CLASS = 1348& + +' The type of the token is inappropriate for its attempted use. +Const ERROR_BAD_TOKEN_TYPE = 1349& + +' Unable to perform a security operation on an object +' which has no associated security. +Const ERROR_NO_SECURITY_ON_OBJECT = 1350& + +' Indicates a Windows NT Advanced Server could not be contacted or that +' objects within the domain are protected such that necessary +' information could not be retrieved. +Const ERROR_CANT_ACCESS_DOMAIN_INFO = 1351& + +' The security account manager (SAM) or local security +' authority (LSA) server was in the wrong state to perform +' the security operation. +Const ERROR_INVALID_SERVER_STATE = 1352& + +' The domain was in the wrong state to perform the security operation. +Const ERROR_INVALID_DOMAIN_STATE = 1353& + +' This operation is only allowed for the Primary Domain Controller of the domain. +Const ERROR_INVALID_DOMAIN_ROLE = 1354& + +' The specified domain did not exist. +Const ERROR_NO_SUCH_DOMAIN = 1355& + +' The specified domain already exists. +Const ERROR_DOMAIN_EXISTS = 1356& + +' An attempt was made to exceed the limit on the number of domains per server. +Const ERROR_DOMAIN_LIMIT_EXCEEDED = 1357& + +' Unable to complete the requested operation because of either a +' catastrophic media failure or a data structure corruption on the disk. +Const ERROR_INTERNAL_DB_CORRUPTION = 1358& + +' The security account database contains an internal inconsistency. +Const ERROR_INTERNAL_ERROR = 1359& + +' Generic access types were contained in an access mask which should +' already be mapped to non-generic types. +Const ERROR_GENERIC_NOT_MAPPED = 1360& + +' A security descriptor is not in the right format (absolute or self-relative). +Const ERROR_BAD_DESCRIPTOR_FORMAT = 1361& + +' The requested action is restricted for use by logon processes +' only. The calling process has not registered as a logon process. +Const ERROR_NOT_LOGON_PROCESS = 1362& + +' Cannot start a new logon session with an ID that is already in use. +Const ERROR_LOGON_SESSION_EXISTS = 1363& + +' A specified authentication package is unknown. +Const ERROR_NO_SUCH_PACKAGE = 1364& + +' The logon session is not in a state that is consistent with the +' requested operation. +Const ERROR_BAD_LOGON_SESSION_STATE = 1365& + +' The logon session ID is already in use. +Const ERROR_LOGON_SESSION_COLLISION = 1366& + +' A logon request contained an invalid logon type value. +Const ERROR_INVALID_LOGON_TYPE = 1367& + +' Unable to impersonate via a named pipe until data has been read +' from that pipe. +Const ERROR_CANNOT_IMPERSONATE = 1368& + +' The transaction state of a Registry subtree is incompatible with the +' requested operation. +Const ERROR_RXACT_INVALID_STATE = 1369& + +' An internal security database corruption has been encountered. +Const ERROR_RXACT_COMMIT_FAILURE = 1370& + +' Cannot perform this operation on built-in accounts. +Const ERROR_SPECIAL_ACCOUNT = 1371& + +' Cannot perform this operation on this built-in special group. +Const ERROR_SPECIAL_GROUP = 1372& + +' Cannot perform this operation on this built-in special user. +Const ERROR_SPECIAL_USER = 1373& + +' The user cannot be removed from a group because the group +' is currently the user's primary group. +Const ERROR_MEMBERS_PRIMARY_GROUP = 1374& + +' The token is already in use as a primary token. +Const ERROR_TOKEN_ALREADY_IN_USE = 1375& + +' The specified local group does not exist. +Const ERROR_NO_SUCH_ALIAS = 1376& + +' The specified account name is not a member of the local group. +Const ERROR_MEMBER_NOT_IN_ALIAS = 1377& + +' The specified account name is already a member of the local group. +Const ERROR_MEMBER_IN_ALIAS = 1378& + +' The specified local group already exists. +Const ERROR_ALIAS_EXISTS = 1379& + +' Logon failure: the user has not been granted the requested +' logon type at this computer. +Const ERROR_LOGON_NOT_GRANTED = 1380& + +' The maximum number of secrets that may be stored in a single system has been +' exceeded. +Const ERROR_TOO_MANY_SECRETS = 1381& + +' The length of a secret exceeds the maximum length allowed. +Const ERROR_SECRET_TOO_LONG = 1382& + +' The local security authority database contains an internal inconsistency. +Const ERROR_INTERNAL_DB_ERROR = 1383& + +' During a logon attempt, the user's security context accumulated too many +' security IDs. +Const ERROR_TOO_MANY_CONTEXT_IDS = 1384& + +' Logon failure: the user has not been granted the requested logon type +' at this computer. +Const ERROR_LOGON_TYPE_NOT_GRANTED = 1385& + +' A cross-encrypted password is necessary to change a user password. +Const ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386& + +' A new member could not be added to a local group because the member does +' not exist. +Const ERROR_NO_SUCH_MEMBER = 1387& + +' A new member could not be added to a local group because the member has the +' wrong account type. +Const ERROR_INVALID_MEMBER = 1388& + +' Too many security IDs have been specified. +Const ERROR_TOO_MANY_SIDS = 1389& + +' A cross-encrypted password is necessary to change this user password. +Const ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390& + +' Indicates an ACL contains no inheritable components +Const ERROR_NO_INHERITANCE = 1391& + +' The file or directory is corrupt and non-readable. +Const ERROR_FILE_CORRUPT = 1392& + +' The disk structure is corrupt and non-readable. +Const ERROR_DISK_CORRUPT = 1393& + +' There is no user session key for the specified logon session. +Const ERROR_NO_USER_SESSION_KEY = 1394& + +' End of security error codes + + +' ///////////////////////// +' // +' WinUser Error Codes // +' // +' ///////////////////////// + +' Invalid window handle. +Const ERROR_INVALID_WINDOW_HANDLE = 1400& + +' Invalid menu handle. +Const ERROR_INVALID_MENU_HANDLE = 1401& + +' Invalid cursor handle. +Const ERROR_INVALID_CURSOR_HANDLE = 1402& + +' Invalid accelerator table handle. +Const ERROR_INVALID_ACCEL_HANDLE = 1403& + +' Invalid hook handle. +Const ERROR_INVALID_HOOK_HANDLE = 1404& + +' Invalid handle to a multiple-window position structure. +Const ERROR_INVALID_DWP_HANDLE = 1405& + +' Cannot create a top-level child window. +Const ERROR_TLW_WITH_WSCHILD = 1406& + +' Cannot find window class. +Const ERROR_CANNOT_FIND_WND_CLASS = 1407& + +' Invalid window, belongs to other thread. +Const ERROR_WINDOW_OF_OTHER_THREAD = 1408& + +' Hot key is already registered. +Const ERROR_HOTKEY_ALREADY_REGISTERED = 1409& + +' Class already exists. +Const ERROR_CLASS_ALREADY_EXISTS = 1410& + +' Class does not exist. +Const ERROR_CLASS_DOES_NOT_EXIST = 1411& + +' Class still has open windows. +Const ERROR_CLASS_HAS_WINDOWS = 1412& + +' Invalid index. +Const ERROR_INVALID_INDEX = 1413& + +' Invalid icon handle. +Const ERROR_INVALID_ICON_HANDLE = 1414& + +' Using private DIALOG window words. +Const ERROR_PRIVATE_DIALOG_INDEX = 1415& + +' The listbox identifier was not found. +Const ERROR_LISTBOX_ID_NOT_FOUND = 1416& + +' No wildcards were found. +Const ERROR_NO_WILDCARD_CHARACTERS = 1417& + +' Thread does not have a clipboard open. +Const ERROR_CLIPBOARD_NOT_OPEN = 1418& + +' Hot key is not registered. +Const ERROR_HOTKEY_NOT_REGISTERED = 1419& + +' The window is not a valid dialog window. +Const ERROR_WINDOW_NOT_DIALOG = 1420& + +' Control ID not found. +Const ERROR_CONTROL_ID_NOT_FOUND = 1421& + +' Invalid message for a combo box because it does not have an edit control. +Const ERROR_INVALID_COMBOBOX_MESSAGE = 1422& + +' The window is not a combo box. +Const ERROR_WINDOW_NOT_COMBOBOX = 1423& + +' Height must be less than 256. +Const ERROR_INVALID_EDIT_HEIGHT = 1424& + +' Invalid device context (DC) handle. +Const ERROR_DC_NOT_FOUND = 1425& + +' Invalid hook procedure type. +Const ERROR_INVALID_HOOK_FILTER = 1426& + +' Invalid hook procedure. +Const ERROR_INVALID_FILTER_PROC = 1427& + +' Cannot set non-local hook without a module handle. +Const ERROR_HOOK_NEEDS_HMOD = 1428& + +' This hook procedure can only be set Globally. +' +Const ERROR_PUBLIC_ONLY_HOOK = 1429& + +' The journal hook procedure is already installed. +Const ERROR_JOURNAL_HOOK_SET = 1430& + +' The hook procedure is not installed. +Const ERROR_HOOK_NOT_INSTALLED = 1431& + +' Invalid message for single-selection listbox. +Const ERROR_INVALID_LB_MESSAGE = 1432& + +' LB_SETCOUNT sent to non-lazy listbox. +Const ERROR_SETCOUNT_ON_BAD_LB = 1433& + +' This list box does not support tab stops. +Const ERROR_LB_WITHOUT_TABSTOPS = 1434& + +' Cannot destroy object created by another thread. +Const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435& + +' Child windows cannot have menus. +Const ERROR_CHILD_WINDOW_MENU = 1436& + +' The window does not have a system menu. +Const ERROR_NO_SYSTEM_MENU = 1437& + +' Invalid message box style. +Const ERROR_INVALID_MSGBOX_STYLE = 1438& + +' Invalid system-wide (SPI_) parameter. +Const ERROR_INVALID_SPI_VALUE = 1439& + +' Screen already locked. +Const ERROR_SCREEN_ALREADY_LOCKED = 1440& + +' All handles to windows in a multiple-window position structure must +' have the same parent. +Const ERROR_HWNDS_HAVE_DIFF_PARENT = 1441& + +' The window is not a child window. +Const ERROR_NOT_CHILD_WINDOW = 1442& + +' Invalid GW_ command. +Const ERROR_INVALID_GW_COMMAND = 1443& + +' Invalid thread identifier. +Const ERROR_INVALID_THREAD_ID = 1444& + +' Cannot process a message from a window that is not a multiple document +' interface (MDI) window. +Const ERROR_NON_MDICHILD_WINDOW = 1445& + +' Popup menu already active. +Const ERROR_POPUP_ALREADY_ACTIVE = 1446& + +' The window does not have scroll bars. +Const ERROR_NO_SCROLLBARS = 1447& + +' Scroll bar range cannot be greater than 0x7FFF. +Const ERROR_INVALID_SCROLLBAR_RANGE = 1448& + +' Cannot show or remove the window in the way specified. +Const ERROR_INVALID_SHOWWIN_COMMAND = 1449& + +' End of WinUser error codes + + +' ///////////////////////// +' // +' Eventlog Status Codes // +' // +' ///////////////////////// + +' The event log file is corrupt. +Const ERROR_EVENTLOG_FILE_CORRUPT = 1500& + +' No event log file could be opened, so the event logging service did not start. +Const ERROR_EVENTLOG_CANT_START = 1501& + +' The event log file is full. +Const ERROR_LOG_FILE_FULL = 1502& + +' The event log file has changed between reads. +Const ERROR_EVENTLOG_FILE_CHANGED = 1503& + +' End of eventlog error codes + + +' ///////////////////////// +' // +' RPC Status Codes // +' // +' ///////////////////////// + +' The string binding is invalid. +Const RPC_S_INVALID_STRING_BINDING = 1700& + +' The binding handle is not the correct type. +Const RPC_S_WRONG_KIND_OF_BINDING = 1701& + +' The binding handle is invalid. +Const RPC_S_INVALID_BINDING = 1702& + +' The RPC protocol sequence is not supported. +Const RPC_S_PROTSEQ_NOT_SUPPORTED = 1703& + +' The RPC protocol sequence is invalid. +Const RPC_S_INVALID_RPC_PROTSEQ = 1704& + +' The string universal unique identifier (UUID) is invalid. +Const RPC_S_INVALID_STRING_UUID = 1705& + +' The endpoint format is invalid. +Const RPC_S_INVALID_ENDPOINT_FORMAT = 1706& + +' The network address is invalid. +Const RPC_S_INVALID_NET_ADDR = 1707& + +' No endpoint was found. +Const RPC_S_NO_ENDPOINT_FOUND = 1708& + +' The timeout value is invalid. +Const RPC_S_INVALID_TIMEOUT = 1709& + +' The object universal unique identifier (UUID) was not found. +Const RPC_S_OBJECT_NOT_FOUND = 1710& + +' The object universal unique identifier (UUID) has already been registered. +Const RPC_S_ALREADY_REGISTERED = 1711& + +' The type universal unique identifier (UUID) has already been registered. +Const RPC_S_TYPE_ALREADY_REGISTERED = 1712& + +' The RPC server is already listening. +Const RPC_S_ALREADY_LISTENING = 1713& + +' No protocol sequences have been registered. +Const RPC_S_NO_PROTSEQS_REGISTERED = 1714& + +' The RPC server is not listening. +Const RPC_S_NOT_LISTENING = 1715& + +' The manager type is unknown. +Const RPC_S_UNKNOWN_MGR_TYPE = 1716& + +' The interface is unknown. +Const RPC_S_UNKNOWN_IF = 1717& + +' There are no bindings. +Const RPC_S_NO_BINDINGS = 1718& + +' There are no protocol sequences. +Const RPC_S_NO_PROTSEQS = 1719& + +' The endpoint cannot be created. +Const RPC_S_CANT_CREATE_ENDPOINT = 1720& + +' Not enough resources are available to complete this operation. +Const RPC_S_OUT_OF_RESOURCES = 1721& + +' The RPC server is unavailable. +Const RPC_S_SERVER_UNAVAILABLE = 1722& + +' The RPC server is too busy to complete this operation. +Const RPC_S_SERVER_TOO_BUSY = 1723& + +' The network options are invalid. +Const RPC_S_INVALID_NETWORK_OPTIONS = 1724& + +' There is not a remote procedure call active in this thread. +Const RPC_S_NO_CALL_ACTIVE = 1725& + +' The remote procedure call failed. +Const RPC_S_CALL_FAILED = 1726& + +' The remote procedure call failed and did not execute. +Const RPC_S_CALL_FAILED_DNE = 1727& + +' A remote procedure call (RPC) protocol error occurred. +Const RPC_S_PROTOCOL_ERROR = 1728& + +' The transfer syntax is not supported by the RPC server. +Const RPC_S_UNSUPPORTED_TRANS_SYN = 1730& + +' The universal unique identifier (UUID) type is not supported. +Const RPC_S_UNSUPPORTED_TYPE = 1732& + +' The tag is invalid. +Const RPC_S_INVALID_TAG = 1733& + +' The array bounds are invalid. +Const RPC_S_INVALID_BOUND = 1734& + +' The binding does not contain an entry name. +Const RPC_S_NO_ENTRY_NAME = 1735& + +' The name syntax is invalid. +Const RPC_S_INVALID_NAME_SYNTAX = 1736& + +' The name syntax is not supported. +Const RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737& + +' No network address is available to use to construct a universal +' unique identifier (UUID). +Const RPC_S_UUID_NO_ADDRESS = 1739& + +' The endpoint is a duplicate. +Const RPC_S_DUPLICATE_ENDPOINT = 1740& + +' The authentication type is unknown. +Const RPC_S_UNKNOWN_AUTHN_TYPE = 1741& + +' The maximum number of calls is too small. +Const RPC_S_MAX_CALLS_TOO_SMALL = 1742& + +' The string is too long. +Const RPC_S_STRING_TOO_LONG = 1743& + +' The RPC protocol sequence was not found. +Const RPC_S_PROTSEQ_NOT_FOUND = 1744& + +' The procedure number is out of range. +Const RPC_S_PROCNUM_OUT_OF_RANGE = 1745& + +' The binding does not contain any authentication information. +Const RPC_S_BINDING_HAS_NO_AUTH = 1746& + +' The authentication service is unknown. +Const RPC_S_UNKNOWN_AUTHN_SERVICE = 1747& + +' The authentication level is unknown. +Const RPC_S_UNKNOWN_AUTHN_LEVEL = 1748& + +' The security context is invalid. +Const RPC_S_INVALID_AUTH_IDENTITY = 1749& + +' The authorization service is unknown. +Const RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750& + +' The entry is invalid. +Const EPT_S_INVALID_ENTRY = 1751& + +' The server endpoint cannot perform the operation. +Const EPT_S_CANT_PERFORM_OP = 1752& + +' There are no more endpoints available from the endpoint mapper. +Const EPT_S_NOT_REGISTERED = 1753& + +' No interfaces have been exported. +Const RPC_S_NOTHING_TO_EXPORT = 1754& + +' The entry name is incomplete. +Const RPC_S_INCOMPLETE_NAME = 1755& + +' The version option is invalid. +Const RPC_S_INVALID_VERS_OPTION = 1756& + +' There are no more members. +Const RPC_S_NO_MORE_MEMBERS = 1757& + +' There is nothing to unexport. +Const RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758& + +' The interface was not found. +Const RPC_S_INTERFACE_NOT_FOUND = 1759& + +' The entry already exists. +Const RPC_S_ENTRY_ALREADY_EXISTS = 1760& + +' The entry is not found. +Const RPC_S_ENTRY_NOT_FOUND = 1761& + +' The name service is unavailable. +Const RPC_S_NAME_SERVICE_UNAVAILABLE = 1762& + +' The network address family is invalid. +Const RPC_S_INVALID_NAF_ID = 1763& + +' The requested operation is not supported. +Const RPC_S_CANNOT_SUPPORT = 1764& + +' No security context is available to allow impersonation. +Const RPC_S_NO_CONTEXT_AVAILABLE = 1765& + +' An internal error occurred in a remote procedure call (RPC). +Const RPC_S_INTERNAL_ERROR = 1766& + +' The RPC server attempted an integer division by zero.' +Const RPC_S_ZERO_DIVIDE = 1767& + +' An addressing error occurred in the RPC server. +Const RPC_S_ADDRESS_ERROR = 1768& + +' A floating-point operation at the RPC server caused a division by zero. +Const RPC_S_FP_DIV_ZERO = 1769& + +' A floating-point underflow occurred at the RPC server. +Const RPC_S_FP_UNDERFLOW = 1770& + +' A floating-point overflow occurred at the RPC server. +Const RPC_S_FP_OVERFLOW = 1771& + +' The list of RPC servers available for the binding of auto handles +' has been exhausted. +Const RPC_X_NO_MORE_ENTRIES = 1772& + +' Unable to open the character translation table file. +Const RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773& + +' The file containing the character translation table has fewer than +' 512 bytes. +Const RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774& + +' A null context handle was passed from the client to the host during +' a remote procedure call. +Const RPC_X_SS_IN_NULL_CONTEXT = 1775& + +' The context handle changed during a remote procedure call. +Const RPC_X_SS_CONTEXT_DAMAGED = 1777& + +' The binding handles passed to a remote procedure call do not match. +Const RPC_X_SS_HANDLES_MISMATCH = 1778& + +' The stub is unable to get the remote procedure call handle. +Const RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779& + +' A null reference pointer was passed to the stub. +Const RPC_X_NULL_REF_POINTER = 1780& + +' The enumeration value is out of range. +Const RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781& + +' The byte count is too small. +Const RPC_X_BYTE_COUNT_TOO_SMALL = 1782& + +' The stub received bad data. +Const RPC_X_BAD_STUB_DATA = 1783& + +' The supplied user buffer is not valid for the requested operation. +Const ERROR_INVALID_USER_BUFFER = 1784& + +' The disk media is not recognized. It may not be formatted. +Const ERROR_UNRECOGNIZED_MEDIA = 1785& + +' The workstation does not have a trust secret. +Const ERROR_NO_TRUST_LSA_SECRET = 1786& + +' The SAM database on the Windows NT Advanced Server does not have a computer +' account for this workstation trust relationship. +Const ERROR_NO_TRUST_SAM_ACCOUNT = 1787& + +' The trust relationship between the primary domain and the trusted +' domain failed. +Const ERROR_TRUSTED_DOMAIN_FAILURE = 1788& + +' The trust relationship between this workstation and the primary +' domain failed. +Const ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789& + +' The network logon failed. +Const ERROR_TRUST_FAILURE = 1790& + +' A remote procedure call is already in progress for this thread. +Const RPC_S_CALL_IN_PROGRESS = 1791& + +' An attempt was made to logon, but the network logon service was not started. +Const ERROR_NETLOGON_NOT_STARTED = 1792& + +' The user's account has expired. +Const ERROR_ACCOUNT_EXPIRED = 1793& + +' The redirector is in use and cannot be unloaded. +Const ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794& + +' The specified printer driver is already installed. +Const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795& + +' The specified port is unknown. +Const ERROR_UNKNOWN_PORT = 1796& + +' The printer driver is unknown. +Const ERROR_UNKNOWN_PRINTER_DRIVER = 1797& + +' The print processor is unknown. +' +Const ERROR_UNKNOWN_PRINTPROCESSOR = 1798& + +' The specified separator file is invalid. +Const ERROR_INVALID_SEPARATOR_FILE = 1799& + +' The specified priority is invalid. +Const ERROR_INVALID_PRIORITY = 1800& + +' The printer name is invalid. +Const ERROR_INVALID_PRINTER_NAME = 1801& + +' The printer already exists. +Const ERROR_PRINTER_ALREADY_EXISTS = 1802& + +' The printer command is invalid. +Const ERROR_INVALID_PRINTER_COMMAND = 1803& + +' The specified datatype is invalid. +Const ERROR_INVALID_DATATYPE = 1804& + +' The Environment specified is invalid. +Const ERROR_INVALID_ENVIRONMENT = 1805& + +' There are no more bindings. +Const RPC_S_NO_MORE_BINDINGS = 1806& + +' The account used is an interdomain trust account. Use your Global user account or local user account to access this server. +Const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807& + +' The account used is a Computer Account. Use your Global user account or local user account to access this server. +Const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808& + +' The account used is an server trust account. Use your Global user account or local user account to access this server. +Const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809& + +' The name or security ID (SID) of the domain specified is inconsistent +' with the trust information for that domain. +Const ERROR_DOMAIN_TRUST_INCONSISTENT = 1810& + +' The server is in use and cannot be unloaded. +Const ERROR_SERVER_HAS_OPEN_HANDLES = 1811& + +' The specified image file did not contain a resource section. +Const ERROR_RESOURCE_DATA_NOT_FOUND = 1812& + +' The specified resource type can not be found in the image file. +Const ERROR_RESOURCE_TYPE_NOT_FOUND = 1813& + +' The specified resource name can not be found in the image file. +Const ERROR_RESOURCE_NAME_NOT_FOUND = 1814& + +' The specified resource language ID cannot be found in the image file. +Const ERROR_RESOURCE_LANG_NOT_FOUND = 1815& + +' Not enough quota is available to process this command. +Const ERROR_NOT_ENOUGH_QUOTA = 1816& + +' The group member was not found. +Const RPC_S_GROUP_MEMBER_NOT_FOUND = 1898& + +' The endpoint mapper database could not be created. +Const EPT_S_CANT_CREATE = 1899& + +' The object universal unique identifier (UUID) is the nil UUID. +Const RPC_S_INVALID_OBJECT = 1900& + +' The specified time is invalid. +Const ERROR_INVALID_TIME = 1901& + +' The specified Form name is invalid. +Const ERROR_INVALID_FORM_NAME = 1902& + +' The specified Form size is invalid +Const ERROR_INVALID_FORM_SIZE = 1903& + +' The specified Printer handle is already being waited on +Const ERROR_ALREADY_WAITING = 1904& + +' The specified Printer has been deleted +Const ERROR_PRINTER_DELETED = 1905& + +' The state of the Printer is invalid +Const ERROR_INVALID_PRINTER_STATE = 1906& + +' The list of servers for this workgroup is not currently available +Const ERROR_NO_BROWSER_SERVERS_FOUND = 6118& + + +' ------------------------- +' MMSystem Section +' ------------------------- + +' This section defines all the support for Multimedia applications + +' general constants +Const MAXPNAMELEN = 32 ' max product name length (including NULL) +Const MAXERRORLENGTH = 128 ' max error text length (including final NULL) + +Type smpte + hour As Byte + min As Byte + sec As Byte + frame As Byte + fps As Byte + dummy As Byte + pad(2) As Byte +End Type + +Type midi + songptrpos As Long +End Type + +Type MMTIME + wType As Long + u As Long +End Type + +' values for wType field in MMTIME struct +Const TIME_MS = &H1 ' time in Milliseconds +Const TIME_SAMPLES = &H2 ' number of wave samples +Const TIME_BYTES = &H4 ' current byte offset +Const TIME_SMPTE = &H8 ' SMPTE time +Const TIME_MIDI = &H10 ' MIDI time + +' Multimedia Window Messages +Const MM_JOY1MOVE = &H3A0 ' joystick +Const MM_JOY2MOVE = &H3A1 +Const MM_JOY1ZMOVE = &H3A2 +Const MM_JOY2ZMOVE = &H3A3 +Const MM_JOY1BUTTONDOWN = &H3B5 +Const MM_JOY2BUTTONDOWN = &H3B6 +Const MM_JOY1BUTTONUP = &H3B7 +Const MM_JOY2BUTTONUP = &H3B8 + +Const MM_MCINOTIFY = &H3B9 ' MCI +Const MM_MCISYSTEM_STRING = &H3CA + +Const MM_WOM_OPEN = &H3BB ' waveform output +Const MM_WOM_CLOSE = &H3BC +Const MM_WOM_DONE = &H3BD + +Const MM_WIM_OPEN = &H3BE ' waveform input +Const MM_WIM_CLOSE = &H3BF +Const MM_WIM_DATA = &H3C0 + +Const MM_MIM_OPEN = &H3C1 ' MIDI input +Const MM_MIM_CLOSE = &H3C2 +Const MM_MIM_DATA = &H3C3 +Const MM_MIM_LONGDATA = &H3C4 +Const MM_MIM_ERROR = &H3C5 +Const MM_MIM_LONGERROR = &H3C6 + +Const MM_MOM_OPEN = &H3C7 ' MIDI output +Const MM_MOM_CLOSE = &H3C8 +Const MM_MOM_DONE = &H3C9 + +' String resource number bases (internal use) + +Const MMSYSERR_BASE = 0 +Const WAVERR_BASE = 32 +Const MIDIERR_BASE = 64 +Const TIMERR_BASE = 96 ' was 128, changed to match Win 31 Sonic +Const JOYERR_BASE = 160 +Const MCIERR_BASE = 256 + +Const MCI_STRING_OFFSET = 512 ' if this number is changed you MUST + ' alter the MCI_DEVTYPE_... list below +Const MCI_VD_OFFSET = 1024 +Const MCI_CD_OFFSET = 1088 +Const MCI_WAVE_OFFSET = 1152 +Const MCI_SEQ_OFFSET = 1216 + +' General error return values +Const MMSYSERR_NOERROR = 0 ' no error +Const MMSYSERR_ERROR = (MMSYSERR_BASE + 1) ' unspecified error +Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2) ' device ID out of range +Const MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3) ' driver failed enable +Const MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4) ' device already allocated +Const MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5) ' device handle is invalid +Const MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6) ' no device driver present +Const MMSYSERR_NOMEM = (MMSYSERR_BASE + 7) ' memory allocation error +Const MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE + 8) ' function isn't supported +Const MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9) ' error value out of range +Const MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10) ' invalid flag passed +Const MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11) ' invalid parameter passed +Const MMSYSERR_HANDLEBUSY = (MMSYSERR_BASE + 12) ' handle being used + ' simultaneously on another + ' thread (eg callback) +Const MMSYSERR_INVALIDALIAS = (MMSYSERR_BASE + 13) ' "Specified alias not found in WIN.INI +Const MMSYSERR_LASTERROR = (MMSYSERR_BASE + 13) ' last error in range +Const MM_MOM_POSITIONCB = &H3CA ' Callback for MEVT_POSITIONCB +Const MM_MCISIGNAL = &H3CB +Const MM_MIM_MOREDATA = &H3CC ' MIM_DONE w/ pending events +Const MIDICAPS_STREAM = &H8 ' driver supports midiStreamOut directly + + +Type MIDIEVENT + dwDeltaTime As Long ' Ticks since last event + dwStreamID As Long ' Reserved; must be zero + dwEvent As Long ' Event type and parameters + dwParms(1) As Long ' Parameters if this is a long event +End Type + +Type MIDISTRMBUFFVER + dwVersion As Long ' Stream buffer format version + dwMid As Long ' Manufacturer ID as defined in MMREG.H + dwOEMVersion As Long ' Manufacturer version for custom ext +End Type + +' Type codes which go in the high byte of the event DWORD of a stream buffer + +' Type codes 00-7F contain parameters within the low 24 bits +' Type codes 80-FF contain a length of their parameter in the low 24 +' bits, followed by their parameter data in the buffer. The event +' DWORD contains the exact byte length; the parm data itself must be +' padded to be an even multiple of 4 Byte long. +' + +Const MEVT_F_SHORT = &H0& +Const MEVT_F_LONG = &H80000000 +Const MEVT_F_CALLBACK = &H40000000 +Const MIDISTRM_ERROR = -2 + +' +' Structures and defines for midiStreamProperty +' +Const MIDIPROP_SET = &H80000000 +Const MIDIPROP_GET = &H40000000 + +' These are intentionally both non-zero so the app cannot accidentally +' leave the operation off and happen to appear to work due to default +' action. + +Const MIDIPROP_TIMEDIV = &H1& +Const MIDIPROP_TEMPO = &H2& + +Type MIDIPROPTIMEDIV + cbStruct As Long + dwTimeDiv As Long +End Type + +Type MIDIPROPTEMPO + cbStruct As Long + dwTempo As Long +End Type + + +' MIDI function prototypes * + +' *************************************************************************** + +' Mixer Support + +' ************************************************************************** + +Const MIXER_SHORT_NAME_CHARS = 16 +Const MIXER_LONG_NAME_CHARS = 64 + +' +' MMRESULT error return values specific to the mixer API +' +' +Const MIXERR_BASE = 1024 +Const MIXERR_INVALLINE = (MIXERR_BASE + 0) +Const MIXERR_INVALCONTROL = (MIXERR_BASE + 1) +Const MIXERR_INVALVALUE = (MIXERR_BASE + 2) +Const MIXERR_LASTERROR = (MIXERR_BASE + 2) + + +Const MIXER_OBJECTF_HANDLE = &H80000000 +Const MIXER_OBJECTF_MIXER = &H0& +Const MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIXER) +Const MIXER_OBJECTF_WAVEOUT = &H10000000 +Const MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEOUT) +Const MIXER_OBJECTF_WAVEIN = &H20000000 +Const MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEIN) +Const MIXER_OBJECTF_MIDIOUT = &H30000000 +Const MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIOUT) +Const MIXER_OBJECTF_MIDIIN = &H40000000 +Const MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIIN) +Const MIXER_OBJECTF_AUX = &H50000000 + +Declare Function mixerGetNumDevs Lib "winmm.dll" Alias "mixerGetNumDevs" () As Long + +Type MIXERCAPS + wMid As Integer ' manufacturer id + wPid As Integer ' product id + vDriverVersion As Long ' version of the driver + szPname As String * MAXPNAMELEN ' product name + fdwSupport As Long ' misc. support bits + cDestinations As Long ' count of destinations +End Type + +Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, ByVal pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long +Declare Function mixerOpen Lib "winmm.dll" Alias "mixerOpen" (phmx As Long, ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long +Declare Function mixerClose Lib "winmm.dll" Alias "mixerClose" (ByVal hmx As Long) As Long +Declare Function mixerMessage Lib "winmm.dll" Alias "mixerMessage" (ByVal hmx As Long, ByVal uMsg As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long + +Type Target ' for use in MIXERLINE and others (embedded structure) + + dwType As Long ' MIXERLINE_TARGETTYPE_xxxx + dwDeviceID As Long ' target device ID of device type + wMid As Integer ' of target device + wPid As Integer ' " + vDriverVersion As Long ' " + szPname As String * MAXPNAMELEN +End Type + +Type MIXERLINE + cbStruct As Long ' size of MIXERLINE structure + dwDestination As Long ' zero based destination index + dwSource As Long ' zero based source index (if source) + dwLineID As Long ' unique line id for mixer device + fdwLine As Long ' state/information about line + dwUser As Long ' driver specific information + dwComponentType As Long ' component type line connects to + cChannels As Long ' number of channels line supports + cConnections As Long ' number of connections (possible) + cControls As Long ' number of controls at this line + szShortName As String * MIXER_SHORT_NAME_CHARS + szName As String * MIXER_LONG_NAME_CHARS + tTarget As Target +End Type + +' MIXERLINE.fdwLine + +Const MIXERLINE_LINEF_ACTIVE = &H1& +Const MIXERLINE_LINEF_DISCONNECTED = &H8000& +Const MIXERLINE_LINEF_SOURCE = &H80000000 + +' MIXERLINE.dwComponentType + +' component types for destinations and sources + +Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0& +Const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0) +Const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1) +Const MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2) +Const MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3) +Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4) +Const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5) +Const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6) +Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7) +Const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) +Const MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) + +Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000& +Const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0) +Const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1) +Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2) +Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3) +Const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4) +Const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5) +Const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6) +Const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7) +Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8) +Const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9) +Const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) +Const MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) + + +' +' MIXERLINE.Target.dwType +' +' +Const MIXERLINE_TARGETTYPE_UNDEFINED = 0 +Const MIXERLINE_TARGETTYPE_WAVEOUT = 1 +Const MIXERLINE_TARGETTYPE_WAVEIN = 2 +Const MIXERLINE_TARGETTYPE_MIDIOUT = 3 +Const MIXERLINE_TARGETTYPE_MIDIIN = 4 +Const MIXERLINE_TARGETTYPE_AUX = 5 + +Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long +Const MIXER_GETLINEINFOF_DESTINATION = &H0& +Const MIXER_GETLINEINFOF_SOURCE = &H1& +Const MIXER_GETLINEINFOF_LINEID = &H2& +Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3& +Const MIXER_GETLINEINFOF_TARGETTYPE = &H4& +Const MIXER_GETLINEINFOF_QUERYMASK = &HF& + +Declare Function mixerGetID Lib "winmm.dll" Alias "mixerGetID" (ByVal hmxobj As Long, pumxID As Long, ByVal fdwId As Long) As Long + +' MIXERCONTROL + + +Type MIXERCONTROL + cbStruct As Long ' size in Byte of MIXERCONTROL + dwControlID As Long ' unique control id for mixer device + dwControlType As Long ' MIXERCONTROL_CONTROLTYPE_xxx + fdwControl As Long ' MIXERCONTROL_CONTROLF_xxx + cMultipleItems As Long ' if MIXERCONTROL_CONTROLF_MULTIPLE set + szShortName As String * MIXER_SHORT_NAME_CHARS + szName As String * MIXER_LONG_NAME_CHARS + Bounds(1 To 6) As Long ' Longest member of the Bounds union + Metrics(1 To 6) As Long ' Longest member of the Metrics union +End Type + +' +' MIXERCONTROL.fdwControl + +Const MIXERCONTROL_CONTROLF_UNIFORM = &H1& +Const MIXERCONTROL_CONTROLF_MULTIPLE = &H2& +Const MIXERCONTROL_CONTROLF_DISABLED = &H80000000 + +' MIXERCONTROL_CONTROLTYPE_xxx building block defines + +Const MIXERCONTROL_CT_CLASS_MASK = &HF0000000 +Const MIXERCONTROL_CT_CLASS_CUSTOM = &H0& +Const MIXERCONTROL_CT_CLASS_METER = &H10000000 +Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000 +Const MIXERCONTROL_CT_CLASS_NUMBER = &H30000000 +Const MIXERCONTROL_CT_CLASS_SLIDER = &H40000000 +Const MIXERCONTROL_CT_CLASS_FADER = &H50000000 +Const MIXERCONTROL_CT_CLASS_TIME = &H60000000 +Const MIXERCONTROL_CT_CLASS_LIST = &H70000000 +Const MIXERCONTROL_CT_SUBCLASS_MASK = &HF000000 +Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0& +Const MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H1000000 +Const MIXERCONTROL_CT_SC_METER_POLLED = &H0& +Const MIXERCONTROL_CT_SC_TIME_MICROSECS = &H0& +Const MIXERCONTROL_CT_SC_TIME_MILLISECS = &H1000000 +Const MIXERCONTROL_CT_SC_LIST_SINGLE = &H0& +Const MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H1000000 +Const MIXERCONTROL_CT_UNITS_MASK = &HFF0000 +Const MIXERCONTROL_CT_UNITS_CUSTOM = &H0& +Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000 +Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000 +Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000 +Const MIXERCONTROL_CT_UNITS_DECIBELS = &H40000 ' in 10ths +Const MIXERCONTROL_CT_UNITS_PERCENT = &H50000 ' in 10ths +' +' Commonly used control types for specifying MIXERCONTROL.dwControlType +' +Const MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM Or MIXERCONTROL_CT_UNITS_CUSTOM) +Const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_BOOLEAN) +Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED) +Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1) +Const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_UNSIGNED) +Const MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or MIXERCONTROL_CT_UNITS_BOOLEAN) +Const MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1) +Const MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2) +Const MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3) +Const MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4) +Const MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5) +Const MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BUTTON Or MIXERCONTROL_CT_UNITS_BOOLEAN) +Const MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_DECIBELS) +Const MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_SIGNED) +Const MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_UNSIGNED) +Const MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_PERCENT) +Const MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER Or MIXERCONTROL_CT_UNITS_SIGNED) +Const MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1) +Const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2) +Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED) +Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1) +Const MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2) +Const MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3) +Const MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4) +Const MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_SINGLE Or MIXERCONTROL_CT_UNITS_BOOLEAN) +Const MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1) +Const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_MULTIPLE Or MIXERCONTROL_CT_UNITS_BOOLEAN) +Const MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1) +Const MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MICROSECS Or MIXERCONTROL_CT_UNITS_UNSIGNED) +Const MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MILLISECS Or MIXERCONTROL_CT_UNITS_UNSIGNED) +' +' MIXERLINECONTROLS +' +Type MIXERLINECONTROLS + cbStruct As Long ' size in Byte of MIXERLINECONTROLS + dwLineID As Long ' line id (from MIXERLINE.dwLineID) + ' MIXER_GETLINECONTROLSF_ONEBYID or + dwControl As Long ' MIXER_GETLINECONTROLSF_ONEBYTYPE + cControls As Long ' count of controls pmxctrl points to + cbmxctrl As Long ' size in Byte of _one_ MIXERCONTROL + pamxctrl As MIXERCONTROL ' pointer to first MIXERCONTROL array +End Type + +Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long + +Const MIXER_GETLINECONTROLSF_ALL = &H0& +Const MIXER_GETLINECONTROLSF_ONEBYID = &H1& +Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2& +Const MIXER_GETLINECONTROLSF_QUERYMASK = &HF& + +Type MIXERCONTROLDETAILS + cbStruct As Long ' size in Byte of MIXERCONTROLDETAILS + dwControlID As Long ' control id to get/set details on + cChannels As Long ' number of channels in paDetails array + item As Long ' hwndOwner or cMultipleItems + cbDetails As Long ' size of _one_ details_XX struct + paDetails As Long ' pointer to array of details_XX structs +End Type + +' MIXER_GETCONTROLDETAILSF_LISTTEXT + +Type MIXERCONTROLDETAILS_LISTTEXT + dwParam1 As Long + dwParam2 As Long + szName As String * MIXER_LONG_NAME_CHARS +End Type + +' MIXER_GETCONTROLDETAILSF_VALUE + +Type MIXERCONTROLDETAILS_BOOLEAN + fValue As Long +End Type + +Type MIXERCONTROLDETAILS_SIGNED + lValue As Long +End Type + +Type MIXERCONTROLDETAILS_UNSIGNED + dwValue As Long +End Type + +Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long + +Const MIXER_GETCONTROLDETAILSF_VALUE = &H0& +Const MIXER_GETCONTROLDETAILSF_LISTTEXT = &H1& +Const MIXER_GETCONTROLDETAILSF_QUERYMASK = &HF& + +Declare Function mixerSetControlDetails Lib "winmm.dll" Alias "mixerSetControlDetails" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long + +Const MIXER_SETCONTROLDETAILSF_VALUE = &H0& +Const MIXER_SETCONTROLDETAILSF_CUSTOM = &H1& +Const MIXER_SETCONTROLDETAILSF_QUERYMASK = &HF& + +' constants used with JOYINFOEX +Const JOY_BUTTON5 = &H10& +Const JOY_BUTTON6 = &H20& +Const JOY_BUTTON7 = &H40& +Const JOY_BUTTON8 = &H80& +Const JOY_BUTTON9 = &H100& +Const JOY_BUTTON10 = &H200& +Const JOY_BUTTON11 = &H400& +Const JOY_BUTTON12 = &H800& +Const JOY_BUTTON13 = &H1000& +Const JOY_BUTTON14 = &H2000& +Const JOY_BUTTON15 = &H4000& +Const JOY_BUTTON16 = &H8000& +Const JOY_BUTTON17 = &H10000 +Const JOY_BUTTON18 = &H20000 +Const JOY_BUTTON19 = &H40000 +Const JOY_BUTTON20 = &H80000 +Const JOY_BUTTON21 = &H100000 +Const JOY_BUTTON22 = &H200000 +Const JOY_BUTTON23 = &H400000 +Const JOY_BUTTON24 = &H800000 +Const JOY_BUTTON25 = &H1000000 +Const JOY_BUTTON26 = &H2000000 +Const JOY_BUTTON27 = &H4000000 +Const JOY_BUTTON28 = &H8000000 +Const JOY_BUTTON29 = &H10000000 +Const JOY_BUTTON30 = &H20000000 +Const JOY_BUTTON31 = &H40000000 +Const JOY_BUTTON32 = &H80000000 + +' constants used with JOYINFOEX structure +Const JOY_POVCENTERED = -1 +Const JOY_POVFORWARD = 0 +Const JOY_POVRIGHT = 9000 +Const JOY_POVBACKWARD = 18000 +Const JOY_POVLEFT = 27000 +Const JOY_RETURNX = &H1& +Const JOY_RETURNY = &H2& +Const JOY_RETURNZ = &H4& +Const JOY_RETURNR = &H8& +Const JOY_RETURNU = &H10 ' axis 5 +Const JOY_RETURNV = &H20 ' axis 6 +Const JOY_RETURNPOV = &H40& +Const JOY_RETURNBUTTONS = &H80& +Const JOY_RETURNRAWDATA = &H100& +Const JOY_RETURNPOVCTS = &H200& +Const JOY_RETURNCENTERED = &H400& +Const JOY_USEDEADZONE = &H800& +Const JOY_RETURNALL = (JOY_RETURNX Or JOY_RETURNY Or JOY_RETURNZ Or JOY_RETURNR Or JOY_RETURNU Or JOY_RETURNV Or JOY_RETURNPOV Or JOY_RETURNBUTTONS) +Const JOY_CAL_READALWAYS = &H10000 +Const JOY_CAL_READXYONLY = &H20000 +Const JOY_CAL_READ3 = &H40000 +Const JOY_CAL_READ4 = &H80000 +Const JOY_CAL_READXONLY = &H100000 +Const JOY_CAL_READYONLY = &H200000 +Const JOY_CAL_READ5 = &H400000 +Const JOY_CAL_READ6 = &H800000 +Const JOY_CAL_READZONLY = &H1000000 +Const JOY_CAL_READRONLY = &H2000000 +Const JOY_CAL_READUONLY = &H4000000 +Const JOY_CAL_READVONLY = &H8000000 + +Declare Function joyGetPos Lib "winmm.dll" Alias "joyGetPos" (ByVal uJoyID As Long, pji As JOYINFO) As Long +Declare Function joyGetPosEx Lib "winmm.dll" Alias "joyGetPosEx" (ByVal uJoyID As Long, pji As JOYINFOEX) As Long +Const WAVE_FORMAT_QUERY = &H1 +Const SND_PURGE = &H40 ' purge non-static events for task +Const SND_APPLICATION = &H80 ' look for application specific association +Const WAVE_MAPPED = &H4 +Const WAVE_FORMAT_DIRECT = &H8 +Const WAVE_FORMAT_DIRECT_QUERY = (WAVE_FORMAT_QUERY Or WAVE_FORMAT_DIRECT) +Const MIM_MOREDATA = MM_MIM_MOREDATA +Const MOM_POSITIONCB = MM_MOM_POSITIONCB + +' flags for dwFlags parm of midiInOpen() +Const MIDI_IO_STATUS = &H20& + +Declare Function midiStreamOpen Lib "winmm.dll" Alias "midiStreamOpen" (phms As Long, puDeviceID As Long, ByVal cMidi As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long +Declare Function midiStreamClose Lib "winmm.dll" Alias "midiStreamClose" (ByVal hms As Long) As Long + +Declare Function midiStreamProperty Lib "winmm.dll" Alias "midiStreamProperty" (ByVal hms As Long, lppropdata As Byte, ByVal dwProperty As Long) As Long +Declare Function midiStreamPosition Lib "winmm.dll" Alias "midiStreamPosition" (ByVal hms As Long, lpmmt As MMTIME, ByVal cbmmt As Long) As Long +Declare Function midiStreamOut Lib "winmm.dll" Alias "midiStreamOut" (ByVal hms As Long, pmh As MIDIHDR, ByVal cbmh As Long) As Long +Declare Function midiStreamPause Lib "winmm.dll" Alias "midiStreamPause" (ByVal hms As Long) As Long +Declare Function midiStreamRestart Lib "winmm.dll" Alias "midiStreamRestart" (ByVal hms As Long) As Long +Declare Function midiStreamStop Lib "winmm.dll" Alias "midiStreamStop" (ByVal hms As Long) As Long +Declare Function midiConnect Lib "winmm.dll" Alias "midiConnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long +Declare Function midiDisconnect Lib "winmm.dll" Alias "midiDisconnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long + +Type JOYINFOEX + dwSize As Long ' size of structure + dwFlags As Long ' flags to indicate what to return + dwXpos As Long ' x position + dwYpos As Long ' y position + dwZpos As Long ' z position + dwRpos As Long ' rudder/4th axis position + dwUpos As Long ' 5th axis position + dwVpos As Long ' 6th axis position + dwButtons As Long ' button states + dwButtonNumber As Long ' current button number pressed + dwPOV As Long ' point of view state + dwReserved1 As Long ' reserved for communication between winmm driver + dwReserved2 As Long ' reserved for future expansion +End Type +' Installable driver support + +' Driver messages +Const DRV_LOAD = &H1 +Const DRV_ENABLE = &H2 +Const DRV_OPEN = &H3 +Const DRV_CLOSE = &H4 +Const DRV_DISABLE = &H5 +Const DRV_FREE = &H6 +Const DRV_CONFIGURE = &H7 +Const DRV_QUERYCONFIGURE = &H8 +Const DRV_INSTALL = &H9 +Const DRV_REMOVE = &HA +Const DRV_EXITSESSION = &HB +Const DRV_POWER = &HF +Const DRV_RESERVED = &H800 +Const DRV_USER = &H4000 + +Type DRVCONFIGINFO + dwDCISize As Long + lpszDCISectionName As String + lpszDCIAliasName As String + dnDevNode As Long +End Type + +' Supported return values for DRV_CONFIGURE message +Const DRVCNF_CANCEL = &H0 +Const DRVCNF_OK = &H1 +Const DRVCNF_RESTART = &H2 + +' return values from DriverProc() function +Const DRV_CANCEL = DRVCNF_CANCEL +Const DRV_OK = DRVCNF_OK +Const DRV_RESTART = DRVCNF_RESTART + +Declare Function CloseDriver Lib "winmm.dll" Alias "CloseDriver" (ByVal hDriver As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long +Declare Function OpenDriver Lib "winmm.dll" Alias "OpenDriver" (ByVal szDriverName As String, ByVal szSectionName As String, ByVal lParam2 As Long) As Long +Declare Function SendDriverMessage Lib "winmm.dll" Alias "SendDriverMessage" (ByVal hDriver As Long, ByVal message As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long +Declare Function DrvGetModuleHandle Lib "winmm.dll" Alias "DrvGetModuleHandle" (ByVal hDriver As Long) As Long +Declare Function GetDriverModuleHandle Lib "winmm.dll" Alias "GetDriverModuleHandle" (ByVal hDriver As Long) As Long +Declare Function DefDriverProc Lib "winmm.dll" Alias "DefDriverProc" (ByVal dwDriverIdentifier As Long, ByVal hdrvr As Long, ByVal uMsg As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long + +Const DRV_MCI_FIRST = DRV_RESERVED +Const DRV_MCI_LAST = DRV_RESERVED + &HFFF + +' Driver callback support + +' flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and +' midiOutOpen() to specify the type of the dwCallback parameter. +Const CALLBACK_TYPEMASK = &H70000 ' callback type mask +Const CALLBACK_NULL = &H0 ' no callback +Const CALLBACK_WINDOW = &H10000 ' dwCallback is a HWND +Const CALLBACK_TASK = &H20000 ' dwCallback is a HTASK +Const CALLBACK_FUNCTION = &H30000 ' dwCallback is a FARPROC + +' manufacturer IDs +Const MM_MICROSOFT = 1 ' Microsoft Corp. + +' product IDs +Const MM_MIDI_MAPPER = 1 ' MIDI Mapper +Const MM_WAVE_MAPPER = 2 ' Wave Mapper + +Const MM_SNDBLST_MIDIOUT = 3 ' Sound Blaster MIDI output port +Const MM_SNDBLST_MIDIIN = 4 ' Sound Blaster MIDI input port +Const MM_SNDBLST_SYNTH = 5 ' Sound Blaster internal synthesizer +Const MM_SNDBLST_WAVEOUT = 6 ' Sound Blaster waveform output +Const MM_SNDBLST_WAVEIN = 7 ' Sound Blaster waveform input + +Const MM_ADLIB = 9 ' Ad Lib-compatible synthesizer + +Const MM_MPU401_MIDIOUT = 10 ' MPU401-compatible MIDI output port +Const MM_MPU401_MIDIIN = 11 ' MPU401-compatible MIDI input port + +Const MM_PC_JOYSTICK = 12 ' Joystick adapter + +Declare Function mmsystemGetVersion Lib "winmm.dll" Alias "mmsystemGetVersion" () As Long +Declare Sub OutputDebugStr Lib "winmm.dll" Alias "OutputDebugStr" (ByVal lpszOutputString As String) + +Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long + +' flag values for uFlags parameter +Const SND_SYNC = &H0 ' play synchronously (default) +Const SND_ASYNC = &H1 ' play asynchronously + +Const SND_NODEFAULT = &H2 ' silence not default, if sound not found + +Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file +Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry +Const SND_FILENAME = &H20000 ' name is a file name +Const SND_RESOURCE = &H40004 ' name is a resource name or atom +Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry identifier + +Const SND_ALIAS_START = 0 ' must be > 4096 to keep strings in same section of resource file + +Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound +Const SND_NOSTOP = &H10 ' don't stop any currently playing sound +Const SND_VALID = &H1F ' valid flags / ;Internal / + +Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy + +Const SND_VALIDFLAGS = &H17201F ' Set of valid flag bits. Anything outside + ' this range will raise an error +Const SND_RESERVED = &HFF000000 ' In particular these flags are reserved + +Const SND_TYPE_MASK = &H170007 + +Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long + +' waveform audio error return values +Const WAVERR_BADFORMAT = (WAVERR_BASE + 0) ' unsupported wave format +Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1) ' still something playing +Const WAVERR_UNPREPARED = (WAVERR_BASE + 2) ' header not prepared +Const WAVERR_SYNC = (WAVERR_BASE + 3) ' device is synchronous +Const WAVERR_LASTERROR = (WAVERR_BASE + 3) ' last error in range + +' wave callback messages +Const WOM_OPEN = MM_WOM_OPEN +Const WOM_CLOSE = MM_WOM_CLOSE +Const WOM_DONE = MM_WOM_DONE +Const WIM_OPEN = MM_WIM_OPEN +Const WIM_CLOSE = MM_WIM_CLOSE +Const WIM_DATA = MM_WIM_DATA + +' device ID for wave device mapper +Const WAVE_MAPPER = -1& + +' flags for dwFlags parameter in waveOutOpen() and waveInOpen() + +Const WAVE_ALLOWSYNC = &H2 +Const WAVE_VALID = &H3 ' ;Internal + +Type WAVEHDR + lpData As String + dwBufferLength As Long + dwBytesRecorded As Long + dwUser As Long + dwFlags As Long + dwLoops As Long + lpNext As Long + Reserved As Long +End Type + +' flags for dwFlags field of WAVEHDR +Const WHDR_DONE = &H1 ' done bit +Const WHDR_PREPARED = &H2 ' set if this header has been prepared +Const WHDR_BEGINLOOP = &H4 ' loop start block +Const WHDR_ENDLOOP = &H8 ' loop end block +Const WHDR_INQUEUE = &H10 ' reserved for driver +Const WHDR_VALID = &H1F ' valid flags / ;Internal / + +Type WAVEOUTCAPS + wMid As Integer + wPid As Integer + vDriverVersion As Long + szPname As String * MAXPNAMELEN + dwFormats As Long + wChannels As Integer + dwSupport As Long +End Type + +' flags for dwSupport field of WAVEOUTCAPS +Const WAVECAPS_PITCH = &H1 ' supports pitch control +Const WAVECAPS_PLAYBACKRATE = &H2 ' supports playback rate control +Const WAVECAPS_VOLUME = &H4 ' supports volume control +Const WAVECAPS_LRVOLUME = &H8 ' separate left-right volume control +Const WAVECAPS_SYNC = &H10 + +Type WAVEINCAPS + wMid As Integer + wPid As Integer + vDriverVersion As Long + szPname As String * MAXPNAMELEN + dwFormats As Long + wChannels As Integer +End Type + +' defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS +Const WAVE_INVALIDFORMAT = &H0 ' invalid format +Const WAVE_FORMAT_1M08 = &H1 ' 11.025 kHz, Mono, 8-bit +Const WAVE_FORMAT_1S08 = &H2 ' 11.025 kHz, Stereo, 8-bit +Const WAVE_FORMAT_1M16 = &H4 ' 11.025 kHz, Mono, 16-bit +Const WAVE_FORMAT_1S16 = &H8 ' 11.025 kHz, Stereo, 16-bit +Const WAVE_FORMAT_2M08 = &H10 ' 22.05 kHz, Mono, 8-bit +Const WAVE_FORMAT_2S08 = &H20 ' 22.05 kHz, Stereo, 8-bit +Const WAVE_FORMAT_2M16 = &H40 ' 22.05 kHz, Mono, 16-bit +Const WAVE_FORMAT_2S16 = &H80 ' 22.05 kHz, Stereo, 16-bit +Const WAVE_FORMAT_4M08 = &H100 ' 44.1 kHz, Mono, 8-bit +Const WAVE_FORMAT_4S08 = &H200 ' 44.1 kHz, Stereo, 8-bit +Const WAVE_FORMAT_4M16 = &H400 ' 44.1 kHz, Mono, 16-bit +Const WAVE_FORMAT_4S16 = &H800 ' 44.1 kHz, Stereo, 16-bit + +' flags for wFormatTag field of WAVEFORMAT +Const WAVE_FORMAT_PCM = 1 ' Needed in resource files so outside #ifndef RC_INVOKED + +Type WAVEFORMAT + wFormatTag As Integer + nChannels As Integer + nSamplesPerSec As Long + nAvgBytesPerSec As Long + nBlockAlign As Integer +End Type + +Type PCMWAVEFORMAT + wf As WAVEFORMAT + wBitsPerSample As Integer +End Type + +Declare Function waveOutGetNumDevs Lib "winmm.dll" Alias "waveOutGetNumDevs" () As Long +Declare Function waveOutGetDevCaps Lib "winmm.dll" Alias "waveOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As Long + +Declare Function waveOutGetVolume Lib "winmm.dll" Alias "waveOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long +Declare Function waveOutSetVolume Lib "winmm.dll" Alias "waveOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long + +Declare Function waveOutGetErrorText Lib "winmm.dll" Alias "waveOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long + +Declare Function waveOutOpen Lib "winmm.dll" Alias "waveOutOpen" (lphWaveOut As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long +Declare Function waveOutClose Lib "winmm.dll" Alias "waveOutClose" (ByVal hWaveOut As Long) As Long +Declare Function waveOutPrepareHeader Lib "winmm.dll" Alias "waveOutPrepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveOutUnprepareHeader Lib "winmm.dll" Alias "waveOutUnprepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveOutWrite Lib "winmm.dll" Alias "waveOutWrite" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveOutPause Lib "winmm.dll" Alias "waveOutPause" (ByVal hWaveOut As Long) As Long +Declare Function waveOutRestart Lib "winmm.dll" Alias "waveOutRestart" (ByVal hWaveOut As Long) As Long +Declare Function waveOutReset Lib "winmm.dll" Alias "waveOutReset" (ByVal hWaveOut As Long) As Long +Declare Function waveOutBreakLoop Lib "winmm.dll" Alias "waveOutBreakLoop" (ByVal hWaveOut As Long) As Long +Declare Function waveOutGetPosition Lib "winmm.dll" Alias "waveOutGetPosition" (ByVal hWaveOut As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long +Declare Function waveOutGetPitch Lib "winmm.dll" Alias "waveOutGetPitch" (ByVal hWaveOut As Long, lpdwPitch As Long) As Long +Declare Function waveOutSetPitch Lib "winmm.dll" Alias "waveOutSetPitch" (ByVal hWaveOut As Long, ByVal dwPitch As Long) As Long +Declare Function waveOutGetPlaybackRate Lib "winmm.dll" Alias "waveOutGetPlaybackRate" (ByVal hWaveOut As Long, lpdwRate As Long) As Long +Declare Function waveOutSetPlaybackRate Lib "winmm.dll" Alias "waveOutSetPlaybackRate" (ByVal hWaveOut As Long, ByVal dwRate As Long) As Long +Declare Function waveOutGetID Lib "winmm.dll" Alias "waveOutGetID" (ByVal hWaveOut As Long, lpuDeviceID As Long) As Long +Declare Function waveOutMessage Lib "winmm.dll" Alias "waveOutMessage" (ByVal hWaveOut As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long +Declare Function waveInGetNumDevs Lib "winmm.dll" Alias "waveInGetNumDevs" () As Long + +Declare Function waveInGetDevCaps Lib "winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEINCAPS, ByVal uSize As Long) As Long + +Declare Function waveInGetErrorText Lib "winmm.dll" Alias "waveInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long + +Declare Function waveInOpen Lib "winmm.dll" Alias "waveInOpen" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long +Declare Function waveInClose Lib "winmm.dll" Alias "waveInClose" (ByVal hWaveIn As Long) As Long +Declare Function waveInPrepareHeader Lib "winmm.dll" Alias "waveInPrepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveInUnprepareHeader Lib "winmm.dll" Alias "waveInUnprepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveInAddBuffer Lib "winmm.dll" Alias "waveInAddBuffer" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long +Declare Function waveInStart Lib "winmm.dll" Alias "waveInStart" (ByVal hWaveIn As Long) As Long +Declare Function waveInStop Lib "winmm.dll" Alias "waveInStop" (ByVal hWaveIn As Long) As Long +Declare Function waveInReset Lib "winmm.dll" Alias "waveInReset" (ByVal hWaveIn As Long) As Long +Declare Function waveInGetPosition Lib "winmm.dll" Alias "waveInGetPosition" (ByVal hWaveIn As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long +Declare Function waveInGetID Lib "winmm.dll" Alias "waveInGetID" (ByVal hWaveIn As Long, lpuDeviceID As Long) As Long +Declare Function waveInMessage Lib "winmm.dll" Alias "waveInMessage" (ByVal hWaveIn As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long + +' MIDI error return values +Const MIDIERR_UNPREPARED = (MIDIERR_BASE + 0) ' header not prepared +Const MIDIERR_STILLPLAYING = (MIDIERR_BASE + 1) ' still something playing +Const MIDIERR_NOMAP = (MIDIERR_BASE + 2) ' no current map +Const MIDIERR_NOTREADY = (MIDIERR_BASE + 3) ' hardware is still busy +Const MIDIERR_NODEVICE = (MIDIERR_BASE + 4) ' port no longer connected +Const MIDIERR_INVALIDSETUP = (MIDIERR_BASE + 5) ' invalid setup +Const MIDIERR_LASTERROR = (MIDIERR_BASE + 5) ' last error in range + +' MIDI callback messages +Const MIM_OPEN = MM_MIM_OPEN +Const MIM_CLOSE = MM_MIM_CLOSE +Const MIM_DATA = MM_MIM_DATA +Const MIM_LONGDATA = MM_MIM_LONGDATA +Const MIM_ERROR = MM_MIM_ERROR +Const MIM_LONGERROR = MM_MIM_LONGERROR +Const MOM_OPEN = MM_MOM_OPEN +Const MOM_CLOSE = MM_MOM_CLOSE +Const MOM_DONE = MM_MOM_DONE + +' device ID for MIDI mapper +Const MIDIMAPPER = (-1) ' Cannot be cast to DWORD as RC complains +Const MIDI_MAPPER = -1& + +' flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches() +Const MIDI_CACHE_ALL = 1 +Const MIDI_CACHE_BESTFIT = 2 +Const MIDI_CACHE_QUERY = 3 +Const MIDI_UNCACHE = 4 +Const MIDI_CACHE_VALID = (MIDI_CACHE_ALL Or MIDI_CACHE_BESTFIT Or MIDI_CACHE_QUERY Or MIDI_UNCACHE) ' ;Internal + +Type MIDIOUTCAPS + wMid As Integer + wPid As Integer + vDriverVersion As Long + szPname As String * MAXPNAMELEN + wTechnology As Integer + wVoices As Integer + wNotes As Integer + wChannelMask As Integer + dwSupport As Long +End Type + +' flags for wTechnology field of MIDIOUTCAPS structure +Const MOD_MIDIPORT = 1 ' output port +Const MOD_SYNTH = 2 ' generic internal synth +Const MOD_SQSYNTH = 3 ' square wave internal synth +Const MOD_FMSYNTH = 4 ' FM internal synth +Const MOD_MAPPER = 5 ' MIDI mapper + +' flags for dwSupport field of MIDIOUTCAPS +Const MIDICAPS_VOLUME = &H1 ' supports volume control +Const MIDICAPS_LRVOLUME = &H2 ' separate left-right volume control +Const MIDICAPS_CACHE = &H4 + +Type MIDIINCAPS + wMid As Integer + wPid As Integer + vDriverVersion As Long + szPname As String * MAXPNAMELEN +End Type + +Type MIDIHDR + lpData As String + dwBufferLength As Long + dwBytesRecorded As Long + dwUser As Long + dwFlags As Long + lpNext As Long + Reserved As Long +End Type + +' flags for dwFlags field of MIDIHDR structure +Const MHDR_DONE = &H1 ' done bit +Const MHDR_PREPARED = &H2 ' set if header prepared +Const MHDR_INQUEUE = &H4 ' reserved for driver +Const MHDR_VALID = &H7 ' valid flags / ;Internal / + +Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long + +Declare Function midiOutGetVolume Lib "winmm.dll" Alias "midiOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long +Declare Function midiOutSetVolume Lib "winmm.dll" Alias "midiOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long + +Declare Function midiOutGetErrorText Lib "winmm.dll" Alias "midiOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long + +Declare Function midiOutOpen Lib "winmm.dll" Alias "midiOutOpen" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long +Declare Function midiOutClose Lib "winmm.dll" Alias "midiOutClose" (ByVal hMidiOut As Long) As Long +Declare Function midiOutPrepareHeader Lib "winmm.dll" Alias "midiOutPrepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long +Declare Function midiOutUnprepareHeader Lib "winmm.dll" Alias "midiOutUnprepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long +Declare Function midiOutShortMsg Lib "winmm.dll" Alias "midiOutShortMsg" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long +Declare Function midiOutLongMsg Lib "winmm.dll" Alias "midiOutLongMsg" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long +Declare Function midiOutReset Lib "winmm.dll" Alias "midiOutReset" (ByVal hMidiOut As Long) As Long +Declare Function midiOutCachePatches Lib "winmm.dll" Alias "midiOutCachePatches" (ByVal hMidiOut As Long, ByVal uBank As Long, lpPatchArray As Long, ByVal uFlags As Long) As Long +Declare Function midiOutCacheDrumPatches Lib "winmm.dll" Alias "midiOutCacheDrumPatches" (ByVal hMidiOut As Long, ByVal uPatch As Long, lpKeyArray As Long, ByVal uFlags As Long) As Long +Declare Function midiOutGetID Lib "winmm.dll" Alias "midiOutGetID" (ByVal hMidiOut As Long, lpuDeviceID As Long) As Long +Declare Function midiOutMessage Lib "winmm.dll" Alias "midiOutMessage" (ByVal hMidiOut As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long +Declare Function midiInGetNumDevs Lib "winmm.dll" Alias "midiInGetNumDevs" () As Long + +Declare Function midiInGetDevCaps Lib "winmm.dll" Alias "midiInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIINCAPS, ByVal uSize As Long) As Long + +Declare Function midiInGetErrorText Lib "winmm.dll" Alias "midiInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long + +Declare Function midiInOpen Lib "winmm.dll" Alias "midiInOpen" (lphMidiIn As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long +Declare Function midiInClose Lib "winmm.dll" Alias "midiInClose" (ByVal hMidiIn As Long) As Long +Declare Function midiInPrepareHeader Lib "winmm.dll" Alias "midiInPrepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long +Declare Function midiInUnprepareHeader Lib "winmm.dll" Alias "midiInUnprepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long +Declare Function midiInAddBuffer Lib "winmm.dll" Alias "midiInAddBuffer" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long +Declare Function midiInStart Lib "winmm.dll" Alias "midiInStart" (ByVal hMidiIn As Long) As Long +Declare Function midiInStop Lib "winmm.dll" Alias "midiInStop" (ByVal hMidiIn As Long) As Long +Declare Function midiInReset Lib "winmm.dll" Alias "midiInReset" (ByVal hMidiIn As Long) As Long +Declare Function midiInGetID Lib "winmm.dll" Alias "midiInGetID" (ByVal hMidiIn As Long, lpuDeviceID As Long) As Long +Declare Function midiInMessage Lib "winmm.dll" Alias "midiInMessage" (ByVal hMidiIn As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long + +' device ID for aux device mapper +Const AUX_MAPPER = -1& + +Type AUXCAPS + wMid As Integer + wPid As Integer + vDriverVersion As Long + szPname As String * MAXPNAMELEN + wTechnology As Integer + dwSupport As Long +End Type + +' flags for wTechnology field in AUXCAPS structure +Const AUXCAPS_CDAUDIO = 1 ' audio from internal CD-ROM drive +Const AUXCAPS_AUXIN = 2 ' audio from auxiliary input jacks + +' flags for dwSupport field in AUXCAPS structure +Const AUXCAPS_VOLUME = &H1 ' supports volume control +Const AUXCAPS_LRVOLUME = &H2 ' separate left-right volume control + +Declare Function auxGetNumDevs Lib "winmm.dll" Alias "auxGetNumDevs" () As Long +Declare Function auxGetDevCaps Lib "winmm.dll" Alias "auxGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As AUXCAPS, ByVal uSize As Long) As Long + +Declare Function auxSetVolume Lib "winmm.dll" Alias "auxSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long +Declare Function auxGetVolume Lib "winmm.dll" Alias "auxGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long +Declare Function auxOutMessage Lib "winmm.dll" Alias "auxOutMessage" (ByVal uDeviceID As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long + +' timer error return values +Const TIMERR_NOERROR = (0) ' no error +Const TIMERR_NOCANDO = (TIMERR_BASE + 1) ' request not completed +Const TIMERR_STRUCT = (TIMERR_BASE + 33) ' time struct size + +' flags for wFlags parameter of timeSetEvent() function +Const TIME_ONESHOT = 0 ' program timer for single event +Const TIME_PERIODIC = 1 ' program for continuous periodic event + +Type TIMECAPS + wPeriodMin As Long + wPeriodMax As Long +End Type + +Declare Function timeGetSystemTime Lib "winmm.dll" Alias "timeGetSystemTime" (lpTime As MMTIME, ByVal uSize As Long) As Long +Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long +Declare Function timeSetEvent Lib "winmm.dll" Alias "timeSetEvent" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long +Declare Function timeKillEvent Lib "winmm.dll" Alias "timeKillEvent" (ByVal uID As Long) As Long +Declare Function timeGetDevCaps Lib "winmm.dll" Alias "timeGetDevCaps" (lpTimeCaps As TIMECAPS, ByVal uSize As Long) As Long +Declare Function timeBeginPeriod Lib "winmm.dll" Alias "timeBeginPeriod" (ByVal uPeriod As Long) As Long +Declare Function timeEndPeriod Lib "winmm.dll" Alias "timeEndPeriod" (ByVal uPeriod As Long) As Long + +' joystick error return values +Const JOYERR_NOERROR = (0) ' no error +Const JOYERR_PARMS = (JOYERR_BASE + 5) ' bad parameters +Const JOYERR_NOCANDO = (JOYERR_BASE + 6) ' request not completed +Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7) ' joystick is unplugged + +' constants used with JOYINFO structure and MM_JOY messages +Const JOY_BUTTON1 = &H1 +Const JOY_BUTTON2 = &H2 +Const JOY_BUTTON3 = &H4 +Const JOY_BUTTON4 = &H8 +Const JOY_BUTTON1CHG = &H100 +Const JOY_BUTTON2CHG = &H200 +Const JOY_BUTTON3CHG = &H400 +Const JOY_BUTTON4CHG = &H800 + +' joystick ID constants +Const JOYSTICKID1 = 0 +Const JOYSTICKID2 = 1 + +Type JOYCAPS + wMid As Integer + wPid As Integer + szPname As String * MAXPNAMELEN + wXmin As Integer + wXmax As Integer + wYmin As Integer + wYmax As Integer + wZmin As Integer + wZmax As Integer + wNumButtons As Integer + wPeriodMin As Integer + wPeriodMax As Integer +End Type + +Type JOYINFO + wXpos As Long + wYpos As Long + wZpos As Long + wButtons As Long +End Type + +Declare Function joyGetDevCaps Lib "winmm.dll" Alias "joyGetDevCapsA" (ByVal id As Long, lpCaps As JOYCAPS, ByVal uSize As Long) As Long + +Declare Function joyGetNumDevs Lib "winmm.dll" Alias "joyGetNumDev" () As Long +Declare Function joyGetThreshold Lib "winmm.dll" Alias "joyGetThreshold" (ByVal id As Long, lpuThreshold As Long) As Long +Declare Function joyReleaseCapture Lib "winmm.dll" Alias "joyReleaseCapture" (ByVal id As Long) As Long +Declare Function joySetCapture Lib "winmm.dll" Alias "joySetCapture" (ByVal hwnd As Long, ByVal uID As Long, ByVal uPeriod As Long, ByVal bChanged As Long) As Long +Declare Function joySetThreshold Lib "winmm.dll" Alias "joySetThreshold" (ByVal id As Long, ByVal uThreshold As Long) As Long + +' MMIO error return values +Const MMIOERR_BASE = 256 +Const MMIOERR_FILENOTFOUND = (MMIOERR_BASE + 1) ' file not found +Const MMIOERR_OUTOFMEMORY = (MMIOERR_BASE + 2) ' out of memory +Const MMIOERR_CANNOTOPEN = (MMIOERR_BASE + 3) ' cannot open +Const MMIOERR_CANNOTCLOSE = (MMIOERR_BASE + 4) ' cannot close +Const MMIOERR_CANNOTREAD = (MMIOERR_BASE + 5) ' cannot read +Const MMIOERR_CANNOTWRITE = (MMIOERR_BASE + 6) ' cannot write +Const MMIOERR_CANNOTSEEK = (MMIOERR_BASE + 7) ' cannot seek +Const MMIOERR_CANNOTEXPAND = (MMIOERR_BASE + 8) ' cannot expand file +Const MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9) ' chunk not found +Const MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10) ' file is unbuffered + +' MMIO constants +Const CFSEPCHAR = "+" ' compound file name separator char. + +Type MMIOINFO + dwFlags As Long + fccIOProc As Long + pIOProc As Long + wErrorRet As Long + htask As Long + cchBuffer As Long + pchBuffer As String + pchNext As String + pchEndRead As String + pchEndWrite As String + lBufOffset As Long + lDiskOffset As Long + adwInfo(4) As Long + dwReserved1 As Long + dwReserved2 As Long + hmmio As Long +End Type + +Const MMIO_RWMODE = &H3 ' mask to get bits used for opening + ' file for reading/writing/both +Const MMIO_SHAREMODE = &H70 ' file sharing mode number + +' constants for dwFlags field of MMIOINFO +Const MMIO_CREATE = &H1000 ' create new file (or truncate file) +Const MMIO_PARSE = &H100 ' parse new file returning path +Const MMIO_DELETE = &H200 ' create new file (or truncate file) +Const MMIO_EXIST = &H4000 ' checks for existence of file +Const MMIO_ALLOCBUF = &H10000 ' mmioOpen() should allocate a buffer +Const MMIO_GETTEMP = &H20000 ' mmioOpen() should retrieve temp name + +Const MMIO_DIRTY = &H10000000 ' I/O buffer is dirty +' MMIO_DIRTY is also used in the field of MMCKINFO structure + +Const MMIO_OPEN_VALID = &H3FFFF ' valid flags for mmioOpen / ;Internal / + +' read/write mode numbers (bit field MMIO_RWMODE) +Const MMIO_READ = &H0 ' open file for reading only +Const MMIO_WRITE = &H1 ' open file for writing only +Const MMIO_READWRITE = &H2 ' open file for reading and writing + +' share mode numbers (bit field MMIO_SHAREMODE) +Const MMIO_COMPAT = &H0 ' compatibility mode +Const MMIO_EXCLUSIVE = &H10 ' exclusive-access mode +Const MMIO_DENYWRITE = &H20 ' deny writing to other processes +Const MMIO_DENYREAD = &H30 ' deny reading to other processes +Const MMIO_DENYNONE = &H40 ' deny nothing to other processes + +' flags for other functions +Const MMIO_FHOPEN = &H10 ' mmioClose(): keep file handle open +Const MMIO_EMPTYBUF = &H10 ' mmioFlush(): empty the I/O buffer +Const MMIO_TOUPPER = &H10 ' mmioStringToFOURCC(): cvt. to u-case +Const MMIO_INSTALLPROC = &H10000 ' mmioInstallIOProc(): install MMIOProc +Const MMIO_PUBLICPROC = &H10000000 ' mmioInstallIOProc: install Globally +Const MMIO_UNICODEPROC = &H1000000 ' mmioInstallIOProc(): Unicode MMIOProc +Const MMIO_REMOVEPROC = &H20000 ' mmioInstallIOProc(): remove MMIOProc +Const MMIO_FINDPROC = &H40000 ' mmioInstallIOProc(): find an MMIOProc +Const MMIO_FINDCHUNK = &H10 ' mmioDescend(): find a chunk by ID +Const MMIO_FINDRIFF = &H20 ' mmioDescend(): find a LIST chunk +Const MMIO_FINDLIST = &H40 ' mmioDescend(): find a RIFF chunk +Const MMIO_CREATERIFF = &H20 ' mmioCreateChunk(): make a LIST chunk +Const MMIO_CREATELIST = &H40 ' mmioCreateChunk(): make a RIFF chunk + +Const MMIO_VALIDPROC = &H11070000 ' valid for mmioInstallIOProc / ;Internal / + +' message numbers for MMIOPROC I/O procedure functions +Const MMIOM_READ = MMIO_READ ' read (must equal MMIO_READ!) +Const MMIOM_WRITE = MMIO_WRITE ' write (must equal MMIO_WRITE!) +Const MMIOM_SEEK = 2 ' seek to a new position in file +Const MMIOM_OPEN = 3 ' open file +Const MMIOM_CLOSE = 4 ' close file +Const MMIOM_WRITEFLUSH = 5 ' write and flush +Const MMIOM_RENAME = 6 ' rename specified file +Const MMIOM_USER = &H8000 ' beginning of user-defined messages + +' flags for mmioSeek() +Const SEEK_SET = 0 ' seek to an absolute position +Const SEEK_CUR = 1 ' seek relative to current position +Const SEEK_END = 2 ' seek relative to end of file + +' other constants +Const MMIO_DEFAULTBUFFER = 8192 ' default buffer size + +Type MMCKINFO + ckid As Long + ckSize As Long + fccType As Long + dwDataOffset As Long + dwFlags As Long +End Type + +Declare Function mmioStringToFOURCC Lib "winmm.dll" Alias "mmioStringToFOURCCA" (ByVal sz As String, ByVal uFlags As Long) As Long + +Declare Function mmioOpen Lib "winmm.dll" Alias "mmioOpenA" (ByVal szFileName As String, lpmmioinfo As MMIOINFO, ByVal dwOpenFlags As Long) As Long + +Declare Function mmioRename Lib "winmm.dll" Alias "mmioRenameA" (ByVal szFileName As String, ByVal SzNewFileName As String, lpmmioinfo As MMIOINFO, ByVal dwRenameFlags As Long) As Long + +Declare Function mmioClose Lib "winmm.dll" Alias "mmioClose" (ByVal hmmio As Long, ByVal uFlags As Long) As Long +Declare Function mmioRead Lib "winmm.dll" Alias "mmioRead" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long +Declare Function mmioWrite Lib "winmm.dll" Alias "mmioWrite" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long +Declare Function mmioSeek Lib "winmm.dll" Alias "mmioSeek" (ByVal hmmio As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long +Declare Function mmioGetInfo Lib "winmm.dll" Alias "mmioGetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long +Declare Function mmioSetInfo Lib "winmm.dll" Alias "mmioSetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long +Declare Function mmioSetBuffer Lib "winmm.dll" Alias "mmioSetBuffer" (ByVal hmmio As Long, ByVal pchBuffer As String, ByVal cchBuffer As Long, ByVal uFlags As Long) As Long +Declare Function mmioFlush Lib "winmm.dll" Alias "mmioFlush" (ByVal hmmio As Long, ByVal uFlags As Long) As Long +Declare Function mmioAdvance Lib "winmm.dll" Alias "mmioAdvance" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long +Declare Function mmioSendMessage Lib "winmm.dll" Alias "mmioSendMessage" (ByVal hmmio As Long, ByVal uMsg As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long + +Declare Function mmioDescend Lib "winmm.dll" Alias "mmioDescend" (ByVal hmmio As Long, lpck As MMCKINFO, lpckParent As MMCKINFO, ByVal uFlags As Long) As Long +Declare Function mmioAscend Lib "winmm.dll" Alias "mmioAscend" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long +Declare Function mmioCreateChunk Lib "winmm.dll" Alias "mmioCreateChunk" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long + +' MCI functions + +Declare Function mciSendCommand Lib "winmm.dll" Alias "mciSendCommandA" (ByVal wDeviceID As Long, ByVal uMessage As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Any) As Long + +Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long + +Declare Function mciGetCreatorTask Lib "winmm.dll" Alias "mciGetCreatorTask" (ByVal wDeviceID As Long) As Long + +Declare Function mciGetDeviceID Lib "winmm.dll" Alias "mciGetDeviceIDA" (ByVal lpstrName As String) As Long + +Declare Function mciGetDeviceIDFromElementID Lib "winmm.dll" Alias "mciGetDeviceIDFromElementIDA" (ByVal dwElementID As Long, ByVal lpstrType As String) As Long + +Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long + +Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long + +' MCI error return values +Const MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1) +Const MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3) +Const MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5) +Const MCIERR_HARDWARE = (MCIERR_BASE + 6) +Const MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7) +Const MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8) +Const MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9) +Const MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10) +Const MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11) +Const MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12) +Const MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE + 13) +Const MCIERR_BAD_INTEGER = (MCIERR_BASE + 14) +Const MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15) +Const MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16) +Const MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17) +Const MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18) +Const MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19) +Const MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20) +Const MCIERR_INTERNAL = (MCIERR_BASE + 21) +Const MCIERR_DRIVER = (MCIERR_BASE + 22) +Const MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23) +Const MCIERR_MULTIPLE = (MCIERR_BASE + 24) +Const MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25) +Const MCIERR_OUTOFRANGE = (MCIERR_BASE + 26) +Const MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28) +Const MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30) +Const MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31) +Const MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32) +Const MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33) +Const MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34) +Const MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35) +Const MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36) +Const MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37) +Const MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38) +Const MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39) +Const MCIERR_INVALID_FILE = (MCIERR_BASE + 40) +Const MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41) +Const MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42) +Const MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43) +Const MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44) +Const MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45) +Const MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46) +Const MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47) +Const MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48) +Const MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49) +Const MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE + 50) +Const MCIERR_GET_CD = (MCIERR_BASE + 51) +Const MCIERR_SET_CD = (MCIERR_BASE + 52) +Const MCIERR_SET_DRIVE = (MCIERR_BASE + 53) +Const MCIERR_DEVICE_LENGTH = (MCIERR_BASE + 54) +Const MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE + 55) +Const MCIERR_NO_INTEGER = (MCIERR_BASE + 56) + +Const MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64) +Const MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65) +Const MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66) +Const MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67) +Const MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68) +Const MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69) +Const MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70) +Const MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71) +Const MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72) +Const MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73) + +Const MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80) +Const MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81) +Const MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82) +Const MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83) +Const MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84) +Const MCIERR_SEQ_TIMER = (MCIERR_BASE + 85) +Const MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86) +Const MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE + 87) + +Const MCIERR_NO_WINDOW = (MCIERR_BASE + 90) +Const MCIERR_CREATEWINDOW = (MCIERR_BASE + 91) +Const MCIERR_FILE_READ = (MCIERR_BASE + 92) +Const MCIERR_FILE_WRITE = (MCIERR_BASE + 93) + +' All custom device driver errors must be >= this value +Const MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256) + +' Message numbers must be in the range between MCI_FIRST and MCI_LAST + +Const MCI_FIRST = &H800 +' Messages 0x801 and 0x802 are reserved +Const MCI_OPEN = &H803 +Const MCI_CLOSE = &H804 +Const MCI_ESCAPE = &H805 +Const MCI_PLAY = &H806 +Const MCI_SEEK = &H807 +Const MCI_STOP = &H808 +Const MCI_PAUSE = &H809 +Const MCI_INFO = &H80A +Const MCI_GETDEVCAPS = &H80B +Const MCI_SPIN = &H80C +Const MCI_SET = &H80D +Const MCI_STEP = &H80E +Const MCI_RECORD = &H80F +Const MCI_SYSINFO = &H810 +Const MCI_BREAK = &H811 +Const MCI_SOUND = &H812 +Const MCI_SAVE = &H813 +Const MCI_STATUS = &H814 + +Const MCI_CUE = &H830 + +Const MCI_REALIZE = &H840 +Const MCI_WINDOW = &H841 +Const MCI_PUT = &H842 +Const MCI_WHERE = &H843 +Const MCI_FREEZE = &H844 +Const MCI_UNFREEZE = &H845 + +Const MCI_LOAD = &H850 +Const MCI_CUT = &H851 +Const MCI_COPY = &H852 +Const MCI_PASTE = &H853 +Const MCI_UPDATE = &H854 +Const MCI_RESUME = &H855 +Const MCI_DELETE = &H856 + +Const MCI_LAST = &HFFF + +' the next 0x400 message ID's are reserved for custom drivers +' all custom MCI command messages must be >= than this value +Const MCI_USER_MESSAGES = (&H400 + MCI_FIRST) +Const MCI_ALL_DEVICE_ID = - 1 ' Matches all MCI devices + +' constants for predefined MCI device types +Const MCI_DEVTYPE_VCR = 513 +Const MCI_DEVTYPE_VIDEODISC = 514 +Const MCI_DEVTYPE_OVERLAY = 515 +Const MCI_DEVTYPE_CD_AUDIO = 516 +Const MCI_DEVTYPE_DAT = 517 +Const MCI_DEVTYPE_SCANNER = 518 +Const MCI_DEVTYPE_ANIMATION = 519 +Const MCI_DEVTYPE_DIGITAL_VIDEO = 520 +Const MCI_DEVTYPE_OTHER = 521 +Const MCI_DEVTYPE_WAVEFORM_AUDIO = 522 +Const MCI_DEVTYPE_SEQUENCER = 523 + +Const MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR +Const MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER + +Const MCI_DEVTYPE_FIRST_USER = &H1000 + +' return values for 'status mode' command +Const MCI_MODE_NOT_READY = (MCI_STRING_OFFSET + 12) +Const MCI_MODE_STOP = (MCI_STRING_OFFSET + 13) +Const MCI_MODE_PLAY = (MCI_STRING_OFFSET + 14) +Const MCI_MODE_RECORD = (MCI_STRING_OFFSET + 15) +Const MCI_MODE_SEEK = (MCI_STRING_OFFSET + 16) +Const MCI_MODE_PAUSE = (MCI_STRING_OFFSET + 17) +Const MCI_MODE_OPEN = (MCI_STRING_OFFSET + 18) + +' constants used in 'set time format' and 'status time format' commands +Const MCI_FORMAT_MILLISECONDS = 0 +Const MCI_FORMAT_HMS = 1 +Const MCI_FORMAT_MSF = 2 +Const MCI_FORMAT_FRAMES = 3 +Const MCI_FORMAT_SMPTE_24 = 4 +Const MCI_FORMAT_SMPTE_25 = 5 +Const MCI_FORMAT_SMPTE_30 = 6 +Const MCI_FORMAT_SMPTE_30DROP = 7 +Const MCI_FORMAT_BYTES = 8 +Const MCI_FORMAT_SAMPLES = 9 +Const MCI_FORMAT_TMSF = 10 + +' Flags for wParam of the MM_MCINOTIFY message +Const MCI_NOTIFY_SUCCESSFUL = &H1 +Const MCI_NOTIFY_SUPERSEDED = &H2 +Const MCI_NOTIFY_ABORTED = &H4 +Const MCI_NOTIFY_FAILURE = &H8 + +' common flags for dwFlags parameter of MCI command messages +Const MCI_NOTIFY = &H1& +Const MCI_WAIT = &H2& +Const MCI_FROM = &H4& +Const MCI_TO = &H8& +Const MCI_TRACK = &H10& + +' flags for dwFlags parameter of MCI_OPEN command message +Const MCI_OPEN_SHAREABLE = &H100& +Const MCI_OPEN_ELEMENT = &H200& +Const MCI_OPEN_ALIAS = &H400& +Const MCI_OPEN_ELEMENT_ID = &H800& +Const MCI_OPEN_TYPE_ID = &H1000& +Const MCI_OPEN_TYPE = &H2000& + +' flags for dwFlags parameter of MCI_SEEK command message +Const MCI_SEEK_TO_START = &H100& +Const MCI_SEEK_TO_END = &H200& + +' flags for dwFlags parameter of MCI_STATUS command message +Const MCI_STATUS_ITEM = &H100& +Const MCI_STATUS_START = &H200& + +' flags for dwItem field of the MCI_STATUS_PARMS parameter block +Const MCI_STATUS_LENGTH = &H1& +Const MCI_STATUS_POSITION = &H2& +Const MCI_STATUS_NUMBER_OF_TRACKS = &H3& +Const MCI_STATUS_MODE = &H4& +Const MCI_STATUS_MEDIA_PRESENT = &H5& +Const MCI_STATUS_TIME_FORMAT = &H6& +Const MCI_STATUS_READY = &H7& +Const MCI_STATUS_CURRENT_TRACK = &H8& + +' flags for dwFlags parameter of MCI_INFO command message +Const MCI_INFO_PRODUCT = &H100& +Const MCI_INFO_FILE = &H200& + +' flags for dwFlags parameter of MCI_GETDEVCAPS command message +Const MCI_GETDEVCAPS_ITEM = &H100& + +' flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block +Const MCI_GETDEVCAPS_CAN_RECORD = &H1& +Const MCI_GETDEVCAPS_HAS_AUDIO = &H2& +Const MCI_GETDEVCAPS_HAS_VIDEO = &H3& +Const MCI_GETDEVCAPS_DEVICE_TYPE = &H4& +Const MCI_GETDEVCAPS_USES_FILES = &H5& +Const MCI_GETDEVCAPS_COMPOUND_DEVICE = &H6& +Const MCI_GETDEVCAPS_CAN_EJECT = &H7& +Const MCI_GETDEVCAPS_CAN_PLAY = &H8& +Const MCI_GETDEVCAPS_CAN_SAVE = &H9& + +' flags for dwFlags parameter of MCI_SYSINFO command message +Const MCI_SYSINFO_QUANTITY = &H100& +Const MCI_SYSINFO_OPEN = &H200& +Const MCI_SYSINFO_NAME = &H400& +Const MCI_SYSINFO_INSTALLNAME = &H800& + +' flags for dwFlags parameter of MCI_SET command message +Const MCI_SET_DOOR_OPEN = &H100& +Const MCI_SET_DOOR_CLOSED = &H200& +Const MCI_SET_TIME_FORMAT = &H400& +Const MCI_SET_AUDIO = &H800& +Const MCI_SET_VIDEO = &H1000& +Const MCI_SET_ON = &H2000& +Const MCI_SET_OFF = &H4000& + +' flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS +Const MCI_SET_AUDIO_ALL = &H4001& +Const MCI_SET_AUDIO_LEFT = &H4002& +Const MCI_SET_AUDIO_RIGHT = &H4003& + +' flags for dwFlags parameter of MCI_BREAK command message +Const MCI_BREAK_KEY = &H100& +Const MCI_BREAK_HWND = &H200& +Const MCI_BREAK_OFF = &H400& + +' flags for dwFlags parameter of MCI_RECORD command message +Const MCI_RECORD_INSERT = &H100& +Const MCI_RECORD_OVERWRITE = &H200& + +' flags for dwFlags parameter of MCI_SOUND command message +Const MCI_SOUND_NAME = &H100& + +' flags for dwFlags parameter of MCI_SAVE command message +Const MCI_SAVE_FILE = &H100& + +' flags for dwFlags parameter of MCI_LOAD command message +Const MCI_LOAD_FILE = &H100& + +Type MCI_GENERIC_PARMS + dwCallback As Long +End Type + +Type MCI_OPEN_PARMS + dwCallback As Long + wDeviceID As Long + lpstrDeviceType As String + lpstrElementName As String + lpstrAlias As String +End Type + +Type MCI_PLAY_PARMS + dwCallback As Long + dwFrom As Long + dwTo As Long +End Type + +Type MCI_SEEK_PARMS + dwCallback As Long + dwTo As Long +End Type + +Type MCI_STATUS_PARMS + dwCallback As Long + dwReturn As Long + dwItem As Long + dwTrack As Integer +End Type + +Type MCI_INFO_PARMS + dwCallback As Long + lpstrReturn As String + dwRetSize As Long +End Type + +Type MCI_GETDEVCAPS_PARMS + dwCallback As Long + dwReturn As Long + dwIten As Long +End Type + +Type MCI_SYSINFO_PARMS + dwCallback As Long + lpstrReturn As String + dwRetSize As Long + dwNumber As Long + wDeviceType As Long +End Type + +Type MCI_SET_PARMS + dwCallback As Long + dwTimeFormat As Long + dwAudio As Long +End Type + +Type MCI_BREAK_PARMS + dwCallback As Long + nVirtKey As Long + hwndBreak As Long +End Type + +Type MCI_SOUND_PARMS + dwCallback As Long + lpstrSoundName As String +End Type + +Type MCI_SAVE_PARMS + dwCallback As Long + lpFileName As String +End Type + +Type MCI_LOAD_PARMS + dwCallback As Long + lpFileName As String +End Type + +Type MCI_RECORD_PARMS + dwCallback As Long + dwFrom As Long + dwTo As Long +End Type + +Const MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1) + +' return ID's for videodisc MCI_GETDEVCAPS command + +' flag for dwReturn field of MCI_STATUS_PARMS +' MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE) +Const MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2) +Const MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3) +Const MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4) + +Const MCI_VD_FORMAT_TRACK = &H4001 + +' flags for dwFlags parameter of MCI_PLAY command message +Const MCI_VD_PLAY_REVERSE = &H10000 +Const MCI_VD_PLAY_FAST = &H20000 +Const MCI_VD_PLAY_SPEED = &H40000 +Const MCI_VD_PLAY_SCAN = &H80000 +Const MCI_VD_PLAY_SLOW = &H100000 + +' flag for dwFlags parameter of MCI_SEEK command message +Const MCI_VD_SEEK_REVERSE = &H10000 + +' flags for dwItem field of MCI_STATUS_PARMS parameter block +Const MCI_VD_STATUS_SPEED = &H4002& +Const MCI_VD_STATUS_FORWARD = &H4003& +Const MCI_VD_STATUS_MEDIA_TYPE = &H4004& +Const MCI_VD_STATUS_SIDE = &H4005& +Const MCI_VD_STATUS_DISC_SIZE = &H4006& + +' flags for dwFlags parameter of MCI_GETDEVCAPS command message +Const MCI_VD_GETDEVCAPS_CLV = &H10000 +Const MCI_VD_GETDEVCAPS_CAV = &H20000 + +Const MCI_VD_SPIN_UP = &H10000 +Const MCI_VD_SPIN_DOWN = &H20000 + +' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block +Const MCI_VD_GETDEVCAPS_CAN_REVERSE = &H4002& +Const MCI_VD_GETDEVCAPS_FAST_RATE = &H4003& +Const MCI_VD_GETDEVCAPS_SLOW_RATE = &H4004& +Const MCI_VD_GETDEVCAPS_NORMAL_RATE = &H4005& + +' flags for the dwFlags parameter of MCI_STEP command message +Const MCI_VD_STEP_FRAMES = &H10000 +Const MCI_VD_STEP_REVERSE = &H20000 + +' flag for the MCI_ESCAPE command message +Const MCI_VD_ESCAPE_STRING = &H100& + +Type MCI_VD_PLAY_PARMS + dwCallback As Long + dwFrom As Long + dwTo As Long + dwSpeed As Long +End Type + +Type MCI_VD_STEP_PARMS + dwCallback As Long + dwFrames As Long +End Type + +Type MCI_VD_ESCAPE_PARMS + dwCallback As Long + lpstrCommand As String +End Type + +Const MCI_WAVE_PCM = (MCI_WAVE_OFFSET + 0) +Const MCI_WAVE_MAPPER = (MCI_WAVE_OFFSET + 1) + +' flags for the dwFlags parameter of MCI_OPEN command message +Const MCI_WAVE_OPEN_BUFFER = &H10000 + +' flags for the dwFlags parameter of MCI_SET command message +Const MCI_WAVE_SET_FORMATTAG = &H10000 +Const MCI_WAVE_SET_CHANNELS = &H20000 +Const MCI_WAVE_SET_SAMPLESPERSEC = &H40000 +Const MCI_WAVE_SET_AVGBYTESPERSEC = &H80000 +Const MCI_WAVE_SET_BLOCKALIGN = &H100000 +Const MCI_WAVE_SET_BITSPERSAMPLE = &H200000 + +' flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages +Const MCI_WAVE_INPUT = &H400000 +Const MCI_WAVE_OUTPUT = &H800000 + +' flags for the dwItem field of MCI_STATUS_PARMS parameter block +Const MCI_WAVE_STATUS_FORMATTAG = &H4001& +Const MCI_WAVE_STATUS_CHANNELS = &H4002& +Const MCI_WAVE_STATUS_SAMPLESPERSEC = &H4003& +Const MCI_WAVE_STATUS_AVGBYTESPERSEC = &H4004& +Const MCI_WAVE_STATUS_BLOCKALIGN = &H4005& +Const MCI_WAVE_STATUS_BITSPERSAMPLE = &H4006& +Const MCI_WAVE_STATUS_LEVEL = &H4007& + +' flags for the dwFlags parameter of MCI_SET command message +Const MCI_WAVE_SET_ANYINPUT = &H4000000 +Const MCI_WAVE_SET_ANYOUTPUT = &H8000000 + +' flags for the dwFlags parameter of MCI_GETDEVCAPS command message +Const MCI_WAVE_GETDEVCAPS_INPUTS = &H4001& +Const MCI_WAVE_GETDEVCAPS_OUTPUTS = &H4002& + +Type MCI_WAVE_OPEN_PARMS + dwCallback As Long + wDeviceID As Long + lpstrDeviceType As String + lpstrElementName As String + lpstrAlias As String + dwBufferSeconds As Long +End Type + +Type MCI_WAVE_DELETE_PARMS + dwCallback As Long + dwFrom As Long + dwTo As Long +End Type + +Type MCI_WAVE_SET_PARMS + dwCallback As Long + dwTimeFormat As Long + dwAudio As Long + wInput As Long + wOutput As Long + wFormatTag As Integer + wReserved2 As Integer + nChannels As Integer + wReserved3 As Integer + nSamplesPerSec As Long + nAvgBytesPerSec As Long + nBlockAlign As Integer + wReserved4 As Integer + wBitsPerSample As Integer + wReserved5 As Integer +End Type + +' flags for the dwReturn field of MCI_STATUS_PARMS parameter block +' MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE) +Const MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET) +Const MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET) +Const MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET) +Const MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET) +Const MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET) + +' flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block +' MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER) +Const MCI_SEQ_FORMAT_SONGPTR = &H4001 +Const MCI_SEQ_FILE = &H4002 +Const MCI_SEQ_MIDI = &H4003 +Const MCI_SEQ_SMPTE = &H4004 +Const MCI_SEQ_NONE = 65533 + +Const MCI_SEQ_MAPPER = 65535 + +' flags for the dwItem field of MCI_STATUS_PARMS parameter block +Const MCI_SEQ_STATUS_TEMPO = &H4002& +Const MCI_SEQ_STATUS_PORT = &H4003& +Const MCI_SEQ_STATUS_SLAVE = &H4007& +Const MCI_SEQ_STATUS_MASTER = &H4008& +Const MCI_SEQ_STATUS_OFFSET = &H4009& +Const MCI_SEQ_STATUS_DIVTYPE = &H400A& + +' flags for the dwFlags parameter of MCI_SET command message +Const MCI_SEQ_SET_TEMPO = &H10000 +Const MCI_SEQ_SET_PORT = &H20000 +Const MCI_SEQ_SET_SLAVE = &H40000 +Const MCI_SEQ_SET_MASTER = &H80000 +Const MCI_SEQ_SET_OFFSET = &H1000000 + +Type MCI_SEQ_SET_PARMS + dwCallback As Long + dwTimeFormat As Long + dwAudio As Long + dwTempo As Long + dwPort As Long + dwSlave As Long + dwMaster As Long + dwOffset As Long +End Type + +' flags for dwFlags parameter of MCI_OPEN command message +Const MCI_ANIM_OPEN_WS = &H10000 +Const MCI_ANIM_OPEN_PARENT = &H20000 +Const MCI_ANIM_OPEN_NOSTATIC = &H40000 + +' flags for dwFlags parameter of MCI_PLAY command message +Const MCI_ANIM_PLAY_SPEED = &H10000 +Const MCI_ANIM_PLAY_REVERSE = &H20000 +Const MCI_ANIM_PLAY_FAST = &H40000 +Const MCI_ANIM_PLAY_SLOW = &H80000 +Const MCI_ANIM_PLAY_SCAN = &H100000 + +' flags for dwFlags parameter of MCI_STEP command message +Const MCI_ANIM_STEP_REVERSE = &H10000 +Const MCI_ANIM_STEP_FRAMES = &H20000 + +' flags for dwItem field of MCI_STATUS_PARMS parameter block +Const MCI_ANIM_STATUS_SPEED = &H4001& +Const MCI_ANIM_STATUS_FORWARD = &H4002& +Const MCI_ANIM_STATUS_HWND = &H4003& +Const MCI_ANIM_STATUS_HPAL = &H4004& +Const MCI_ANIM_STATUS_STRETCH = &H4005& + +' flags for the dwFlags parameter of MCI_INFO command message +Const MCI_ANIM_INFO_TEXT = &H10000 + +' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block +Const MCI_ANIM_GETDEVCAPS_CAN_REVERSE = &H4001& +Const MCI_ANIM_GETDEVCAPS_FAST_RATE = &H4002& +Const MCI_ANIM_GETDEVCAPS_SLOW_RATE = &H4003& +Const MCI_ANIM_GETDEVCAPS_NORMAL_RATE = &H4004& +Const MCI_ANIM_GETDEVCAPS_PALETTES = &H4006& +Const MCI_ANIM_GETDEVCAPS_CAN_STRETCH = &H4007& +Const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = &H4008& + +' flags for the MCI_REALIZE command message +Const MCI_ANIM_REALIZE_NORM = &H10000 +Const MCI_ANIM_REALIZE_BKGD = &H20000 + +' flags for dwFlags parameter of MCI_WINDOW command message +Const MCI_ANIM_WINDOW_HWND = &H10000 +Const MCI_ANIM_WINDOW_STATE = &H40000 +Const MCI_ANIM_WINDOW_TEXT = &H80000 +Const MCI_ANIM_WINDOW_ENABLE_STRETCH = &H100000 +Const MCI_ANIM_WINDOW_DISABLE_STRETCH = &H200000 + +' flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block +' MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND) +Const MCI_ANIM_WINDOW_DEFAULT = &H0& + +' flags for dwFlags parameter of MCI_PUT command message +Const MCI_ANIM_RECT = &H10000 +Const MCI_ANIM_PUT_SOURCE = &H20000 ' also MCI_WHERE +Const MCI_ANIM_PUT_DESTINATION = &H40000 ' also MCI_WHERE + +' flags for dwFlags parameter of MCI_WHERE command message +Const MCI_ANIM_WHERE_SOURCE = &H20000 +Const MCI_ANIM_WHERE_DESTINATION = &H40000 + +' flags for dwFlags parameter of MCI_UPDATE command message +Const MCI_ANIM_UPDATE_HDC = &H20000 + +Type MCI_ANIM_OPEN_PARMS + dwCallback As Long + wDeviceID As Long + lpstrDeviceType As String + lpstrElementName As String + lpstrAlias As String + dwStyle As Long + hWndParent As Long +End Type + +Type MCI_ANIM_PLAY_PARMS + dwCallback As Long + dwFrom As Long + dwTo As Long + dwSpeed As Long +End Type + +Type MCI_ANIM_STEP_PARMS + dwCallback As Long + dwFrames As Long +End Type + +Type MCI_ANIM_WINDOW_PARMS + dwCallback As Long + hwnd As Long + nCmdShow As Long + lpstrText As String +End Type + +Type MCI_ANIM_RECT_PARMS + dwCallback As Long + rc As Rect +End Type + +Type MCI_ANIM_UPDATE_PARMS + dwCallback As Long + rc As Rect + hdc As Long +End Type + +' flags for dwFlags parameter of MCI_OPEN command message +Const MCI_OVLY_OPEN_WS = &H10000 +Const MCI_OVLY_OPEN_PARENT = &H20000 + +' flags for dwFlags parameter of MCI_STATUS command message +Const MCI_OVLY_STATUS_HWND = &H4001& +Const MCI_OVLY_STATUS_STRETCH = &H4002& + +' flags for dwFlags parameter of MCI_INFO command message +Const MCI_OVLY_INFO_TEXT = &H10000 + +' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block +Const MCI_OVLY_GETDEVCAPS_CAN_STRETCH = &H4001& +Const MCI_OVLY_GETDEVCAPS_CAN_FREEZE = &H4002& +Const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = &H4003& + +' flags for dwFlags parameter of MCI_WINDOW command message +Const MCI_OVLY_WINDOW_HWND = &H10000 +Const MCI_OVLY_WINDOW_STATE = &H40000 +Const MCI_OVLY_WINDOW_TEXT = &H80000 +Const MCI_OVLY_WINDOW_ENABLE_STRETCH = &H100000 +Const MCI_OVLY_WINDOW_DISABLE_STRETCH = &H200000 + +' flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block +Const MCI_OVLY_WINDOW_DEFAULT = &H0& + +' flags for dwFlags parameter of MCI_PUT command message +Const MCI_OVLY_RECT = &H10000 +Const MCI_OVLY_PUT_SOURCE = &H20000 +Const MCI_OVLY_PUT_DESTINATION = &H40000 +Const MCI_OVLY_PUT_FRAME = &H80000 +Const MCI_OVLY_PUT_VIDEO = &H100000 + +' flags for dwFlags parameter of MCI_WHERE command message +Const MCI_OVLY_WHERE_SOURCE = &H20000 +Const MCI_OVLY_WHERE_DESTINATION = &H40000 +Const MCI_OVLY_WHERE_FRAME = &H80000 +Const MCI_OVLY_WHERE_VIDEO = &H100000 + +Type MCI_OVLY_OPEN_PARMS + dwCallback As Long + wDeviceID As Long + lpstrDeviceType As String + lpstrElementName As String + lpstrAlias As String + dwStyle As Long + hWndParent As Long +End Type + +Type MCI_OVLY_WINDOW_PARMS + dwCallback As Long + hwnd As Long + nCmdShow As Long + lpstrText As String +End Type + +Type MCI_OVLY_RECT_PARMS + dwCallback As Long + rc As Rect +End Type + +Type MCI_OVLY_SAVE_PARMS + dwCallback As Long + lpFileName As String + rc As Rect +End Type + +Type MCI_OVLY_LOAD_PARMS + dwCallback As Long + lpFileName As String + rc As Rect +End Type + +Const CAPS1 = 94 ' other caps +Const C1_TRANSPARENT = &H1 ' new raster cap +Const NEWTRANSPARENT = 3 ' use with SetBkMode() + +Const QUERYROPSUPPORT = 40 ' use to determine ROP support + +Const SELECTDIB = 41 ' DIB.DRV select dib escape + +' ---------------- +' shell association database management functions +' ----------------- + +' error values for ShellExecute() beyond the regular WinExec() codes +Const SE_ERR_SHARE = 26 +Const SE_ERR_ASSOCINCOMPLETE = 27 +Const SE_ERR_DDETIMEOUT = 28 +Const SE_ERR_DDEFAIL = 29 +Const SE_ERR_DDEBUSY = 30 +Const SE_ERR_NOASSOC = 31 + +' ------------- +' Print APIs +' ------------- + +Type PRINTER_INFO_1 + flags As Long + pDescription As String + pName As String + pComment As String +End Type + +Type PRINTER_INFO_2 + pServerName As String + pPrinterName As String + pShareName As String + pPortName As String + pDriverName As String + pComment As String + pLocation As String + pDevMode As DEVMODE + pSepFile As String + pPrintProcessor As String + pDatatype As String + pParameters As String + pSecurityDescriptor As SECURITY_DESCRIPTOR + Attributes As Long + Priority As Long + DefaultPriority As Long + StartTime As Long + UntilTime As Long + Status As Long + cJobs As Long + AveragePPM As Long +End Type + +Type PRINTER_INFO_3 + pSecurityDescriptor As SECURITY_DESCRIPTOR +End Type + +Const PRINTER_CONTROL_PAUSE = 1 +Const PRINTER_CONTROL_RESUME = 2 +Const PRINTER_CONTROL_PURGE = 3 + +Const PRINTER_STATUS_PAUSED = &H1 +Const PRINTER_STATUS_ERROR = &H2 +Const PRINTER_STATUS_PENDING_DELETION = &H4 +Const PRINTER_STATUS_PAPER_JAM = &H8 +Const PRINTER_STATUS_PAPER_OUT = &H10 +Const PRINTER_STATUS_MANUAL_FEED = &H20 +Const PRINTER_STATUS_PAPER_PROBLEM = &H40 +Const PRINTER_STATUS_OFFLINE = &H80 +Const PRINTER_STATUS_IO_ACTIVE = &H100 +Const PRINTER_STATUS_BUSY = &H200 +Const PRINTER_STATUS_PRINTING = &H400 +Const PRINTER_STATUS_OUTPUT_BIN_FULL = &H800 +Const PRINTER_STATUS_NOT_AVAILABLE = &H1000 +Const PRINTER_STATUS_WAITING = &H2000 +Const PRINTER_STATUS_PROCESSING = &H4000 +Const PRINTER_STATUS_INITIALIZING = &H8000 +Const PRINTER_STATUS_WARMING_UP = &H10000 +Const PRINTER_STATUS_TONER_LOW = &H20000 +Const PRINTER_STATUS_NO_TONER = &H40000 +Const PRINTER_STATUS_PAGE_PUNT = &H80000 +Const PRINTER_STATUS_USER_INTERVENTION = &H100000 +Const PRINTER_STATUS_OUT_OF_MEMORY = &H200000 +Const PRINTER_STATUS_DOOR_OPEN = &H400000 + +Const PRINTER_ATTRIBUTE_QUEUED = &H1 +Const PRINTER_ATTRIBUTE_DIRECT = &H2 +Const PRINTER_ATTRIBUTE_DEFAULT = &H4 +Const PRINTER_ATTRIBUTE_SHARED = &H8 +Const PRINTER_ATTRIBUTE_NETWORK = &H10 +Const PRINTER_ATTRIBUTE_HIDDEN = &H20 +Const PRINTER_ATTRIBUTE_LOCAL = &H40 + +Const NO_PRIORITY = 0 +Const MAX_PRIORITY = 99 +Const MIN_PRIORITY = 1 +Const DEF_PRIORITY = 1 + +Type JOB_INFO_1 + JobId As Long + pPrinterName As String + pMachineName As String + pUserName As String + pDocument As String + pDatatype As String + pStatus As String + Status As Long + Priority As Long + Position As Long + TotalPages As Long + PagesPrinted As Long + Submitted As SYSTEMTIME +End Type + +Type JOB_INFO_2 + JobId As Long + pPrinterName As String + pMachineName As String + pUserName As String + pDocument As String + pNotifyName As String + pDatatype As String + pPrintProcessor As String + pParameters As String + pDriverName As String + pDevMode As DEVMODE + pStatus As String + pSecurityDescriptor As SECURITY_DESCRIPTOR + Status As Long + Priority As Long + Position As Long + StartTime As Long + UntilTime As Long + TotalPages As Long + Size As Long + Submitted As SYSTEMTIME + time As Long + PagesPrinted As Long +End Type + +Const JOB_CONTROL_PAUSE = 1 +Const JOB_CONTROL_RESUME = 2 +Const JOB_CONTROL_CANCEL = 3 +Const JOB_CONTROL_RESTART = 4 + +Const JOB_STATUS_PAUSED = &H1 +Const JOB_STATUS_ERROR = &H2 +Const JOB_STATUS_DELETING = &H4 +Const JOB_STATUS_SPOOLING = &H8 +Const JOB_STATUS_PRINTING = &H10 +Const JOB_STATUS_OFFLINE = &H20 +Const JOB_STATUS_PAPEROUT = &H40 +Const JOB_STATUS_PRINTED = &H80 + +Const JOB_POSITION_UNSPECIFIED = 0 + +Type ADDJOB_INFO_1 + Path As String + JobId As Long +End Type + +Type DRIVER_INFO_1 + pName As String +End Type + +Type DRIVER_INFO_2 + cVersion As Long + pName As String + pEnvironment As String + pDriverPath As String + pDataFile As String + pConfigFile As String +End Type + +Type DOC_INFO_1 + pDocName As String + pOutputFile As String + pDatatype As String +End Type + +Type FORM_INFO_1 + pName As String + Size As SIZEL + ImageableArea As RECTL +End Type + +Const FORM_BUILTIN = &H1 + +Type PRINTPROCESSOR_INFO_1 + pName As String +End Type + +Type PORT_INFO_1 + pName As String +End Type + +Type MONITOR_INFO_1 + pName As String +End Type + +Type MONITOR_INFO_2 + pName As String + pEnvironment As String + pDLLName As String +End Type + +Type DATATYPES_INFO_1 + pName As String +End Type + +Type PRINTER_DEFAULTS + pDatatype As String + pDevMode As DEVMODE + DesiredAccess As Long +End Type + +Type PRINTER_INFO_4 + pPrinterName As String + pServerName As String + Attributes As Long +End Type + +Type PRINTER_INFO_5 + pPrinterName As String + pPortName As String + Attributes As Long + DeviceNotSelectedTimeout As Long + TransmissionRetryTimeout As Long +End Type + +Const PRINTER_CONTROL_SET_STATUS = 4 +Const PRINTER_ATTRIBUTE_WORK_OFFLINE = &H400 +Const PRINTER_ATTRIBUTE_ENABLE_BIDI = &H800 +Const JOB_CONTROL_DELETE = 5 +Const JOB_STATUS_USER_INTERVENTION = &H10000 + +Type DRIVER_INFO_3 + cVersion As Long + pName As String ' QMS 810 + pEnvironment As String ' Win32 x86 + pDriverPath As String ' c:\drivers\pscript.dll + pDataFile As String ' c:\drivers\QMS810.PPD + pConfigFile As String ' c:\drivers\PSCRPTUI.DLL + pHelpFile As String ' c:\drivers\PSCRPTUI.HLP + pDependentFiles As String ' + pMonitorName As String ' "PJL monitor" + pDefaultDataType As String ' "EMF" +End Type + +Type DOC_INFO_2 + pDocName As String + pOutputFile As String + pDatatype As String + dwMode As Long + JobId As Long +End Type + +Const DI_CHANNEL = 1 ' start direct read/write channel, +Const DI_READ_SPOOL_JOB = 3 + +Type PORT_INFO_2 + pPortName As String + pMonitorName As String + pDescription As String + fPortType As Long + Reserved As Long +End Type + +Const PORT_TYPE_WRITE = &H1 +Const PORT_TYPE_READ = &H2 +Const PORT_TYPE_REDIRECTED = &H4 +Const PORT_TYPE_NET_ATTACHED = &H8 + +Declare Function EnumPrinters Lib "winspool.drv" Alias "EnumPrintersA" (ByVal flags As Long, ByVal name As String, ByVal Level As Long, pPrinterEnum As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long + +Declare Function EnumPrinterPropertySheets Lib "winspool.drv" Alias "EnumPrinterPropertySheets" (hPrinter As Long, hwnd As Long, lpfnAdd As Long, ByVal lParam As Long) As Long + +Const PRINTER_ENUM_DEFAULT = &H1 +Const PRINTER_ENUM_LOCAL = &H2 +Const PRINTER_ENUM_CONNECTIONS = &H4 +Const PRINTER_ENUM_FAVORITE = &H4 +Const PRINTER_ENUM_NAME = &H8 +Const PRINTER_ENUM_REMOTE = &H10 +Const PRINTER_ENUM_SHARED = &H20 +Const PRINTER_ENUM_NETWORK = &H40 + +Const PRINTER_ENUM_EXPAND = &H4000 +Const PRINTER_ENUM_CONTAINER = &H8000 + +Const PRINTER_ENUM_ICONMASK = &HFF0000 +Const PRINTER_ENUM_ICON1 = &H10000 +Const PRINTER_ENUM_ICON2 = &H20000 +Const PRINTER_ENUM_ICON3 = &H40000 +Const PRINTER_ENUM_ICON4 = &H80000 +Const PRINTER_ENUM_ICON5 = &H100000 +Const PRINTER_ENUM_ICON6 = &H200000 +Const PRINTER_ENUM_ICON7 = &H400000 +Const PRINTER_ENUM_ICON8 = &H800000 + +Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long +Declare Function ResetPrinter Lib "winspool.drv" Alias "ResetPrinterA" (ByVal hPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long +Declare Function SetJob Lib "winspool.drv" Alias "SetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal Command As Long) As Long +Declare Function GetJob Lib "winspool.drv" Alias "GetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long +Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long +Declare Function AddPrinter Lib "winspool.drv" Alias "AddPrinterA" (ByVal pName As String, ByVal Level As Long, pPrinter As Any) As Long + +Declare Function AddPrinterDriver Lib "winspool.drv" Alias "AddPrinterDriverA" (ByVal pName As String, ByVal Level As Long, pDriverInfo As Any) As Long + +Declare Function EnumPrinterDrivers Lib "winspool.drv" Alias "EnumPrinterDriversA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcRetruned As Long) As Long +Declare Function GetPrinterDriver Lib "winspool.drv" Alias "GetPrinterDriverA" (ByVal hPrinter As Long, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long +Declare Function GetPrinterDriverDirectory Lib "winspool.drv" Alias "GetPrinterDriverDirectoryA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverDirectory As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long +Declare Function DeletePrinterDriver Lib "winspool.drv" Alias "DeletePrinterDriverA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pDriverName As String) As Long + +Declare Function AddPrintProcessor Lib "winspool.drv" Alias "AddPrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPathName As String, ByVal pPrintProcessorName As String) As Long +Declare Function EnumPrintProcessors Lib "winspool.drv" Alias "EnumPrintProcessorsA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pPrintProcessorInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long +Declare Function GetPrintProcessorDirectory Lib "winspool.drv" Alias "GetPrintProcessorDirectoryA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, ByVal pPrintProcessorInfo As String, ByVal cdBuf As Long, pcbNeeded As Long) As Long +Declare Function EnumPrintProcessorDatatypes Lib "winspool.drv" Alias "EnumPrintProcessorDatatypesA" (ByVal pName As String, ByVal pPrintProcessorName As String, ByVal Level As Long, pDatatypes As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcRetruned As Long) As Long +Declare Function DeletePrintProcessor Lib "winspool.drv" Alias "DeletePrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProcessorName As String) As Long + +Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As Byte) As Long +Declare Function StartPagePrinter Lib "winspool.drv" Alias "StartPagePrinter" (ByVal hPrinter As Long) As Long +Declare Function WritePrinter Lib "winspool.drv" Alias "WritePrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long +Declare Function EndPagePrinter Lib "winspool.drv" Alias "EndPagePrinter" (ByVal hPrinter As Long) As Long +Declare Function AbortPrinter Lib "winspool.drv" Alias "AbortPrinter" (ByVal hPrinter As Long) As Long +Declare Function ReadPrinter Lib "winspool.drv" Alias "ReadPrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pNoBytesRead As Long) As Long +Declare Function EndDocPrinter Lib "winspool.drv" Alias "EndDocPrinter" (ByVal hPrinter As Long) As Long + +Declare Function AddJob Lib "winspool.drv" Alias "AddJobA" (ByVal hPrinter As Long, ByVal Level As Long, pData As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long +Declare Function ScheduleJob Lib "winspool.drv" Alias "ScheduleJob" (ByVal hPrinter As Long, ByVal JobId As Long) As Long +Declare Function PrinterProperties Lib "winspool.drv" Alias "PrinterProperties" (ByVal hwnd As Long, ByVal hPrinter As Long) As Long +Declare Function DocumentProperties Lib "winspool.drv" Alias "DocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, pDevModeOutput As DEVMODE, pDevModeInput As DEVMODE, ByVal fMode As Long) As Long +Declare Function AdvancedDocumentProperties Lib "winspool.drv" Alias "AdvancedDocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, pDevModeOutput As DEVMODE, pDevModeInput As DEVMODE) As Long + +Declare Function GetPrinterData Lib "winspool.drv" Alias "GetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, pType As Long, pData As Byte, ByVal nSize As Long, pcbNeeded As Long) As Long +Declare Function SetPrinterData Lib "winspool.drv" Alias "SetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, ByVal dwType As Long, pData As Byte, ByVal cbData As Long) As Long +Declare Function WaitForPrinterChange Lib "winspool.drv" Alias "WaitForPrinterChange" (ByVal hPrinter As Long, ByVal flags As Long) As Long + +Const PRINTER_CHANGE_ADD_PRINTER = &H1 +Const PRINTER_CHANGE_SET_PRINTER = &H2 +Const PRINTER_CHANGE_DELETE_PRINTER = &H4 +Const PRINTER_CHANGE_PRINTER = &HFF +Const PRINTER_CHANGE_ADD_JOB = &H100 +Const PRINTER_CHANGE_SET_JOB = &H200 +Const PRINTER_CHANGE_DELETE_JOB = &H400 +Const PRINTER_CHANGE_WRITE_JOB = &H800 +Const PRINTER_CHANGE_JOB = &HFF00 +Const PRINTER_CHANGE_ADD_FORM = &H10000 +Const PRINTER_CHANGE_SET_FORM = &H20000 +Const PRINTER_CHANGE_DELETE_FORM = &H40000 +Const PRINTER_CHANGE_FORM = &H70000 +Const PRINTER_CHANGE_ADD_PORT = &H100000 +Const PRINTER_CHANGE_CONFIGURE_PORT = &H200000 +Const PRINTER_CHANGE_DELETE_PORT = &H400000 +Const PRINTER_CHANGE_PORT = &H700000 +Const PRINTER_CHANGE_ADD_PRINT_PROCESSOR = &H1000000 +Const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = &H4000000 +Const PRINTER_CHANGE_PRINT_PROCESSOR = &H7000000 +Const PRINTER_CHANGE_ADD_PRINTER_DRIVER = &H10000000 +Const PRINTER_CHANGE_DELETE_PRINTER_DRIVER = &H40000000 +Const PRINTER_CHANGE_PRINTER_DRIVER = &H70000000 +Const PRINTER_CHANGE_TIMEOUT = &H80000000 +Const PRINTER_CHANGE_ALL = &H7777FFFF + +Declare Function PrinterMessageBox Lib "winspool.drv" Alias "PrinterMessageBoxA" (ByVal hPrinter As Long, ByVal error As Long, ByVal hwnd As Long, ByVal pText As String, ByVal pCaption As String, ByVal dwType As Long) As Long + +Const PRINTER_ERROR_INFORMATION = &H80000000 +Const PRINTER_ERROR_WARNING = &H40000000 +Const PRINTER_ERROR_SEVERE = &H20000000 + +Const PRINTER_ERROR_OUTOFPAPER = &H1 +Const PRINTER_ERROR_JAM = &H2 +Const PRINTER_ERROR_OUTOFTONER = &H4 + +Declare Function ClosePrinter Lib "winspool.drv" Alias "ClosePrinter" (ByVal hPrinter As Long) As Long +Declare Function AddForm Lib "winspool.drv" Alias "AddFormA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte) As Long +Declare Function DeleteForm Lib "winspool.drv" Alias "DeleteFormA" (ByVal hPrinter As Long, ByVal pFormName As String) As Long +Declare Function GetForm Lib "winspool.drv" Alias "GetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long) As Long +Declare Function SetForm Lib "winspool.drv" Alias "SetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte) As Long +Declare Function EnumForms Lib "winspool.drv" Alias "EnumFormsA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long + +Declare Function EnumMonitors Lib "winspool.drv" Alias "EnumMonitorsA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long +Declare Function AddMonitor Lib "winspool.drv" Alias "AddMonitorA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte) As Long +Declare Function DeleteMonitor Lib "winspool.drv" Alias "DeleteMonitorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pMonitorName As String) As Long + +Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" (ByVal pName As String, ByVal Level As Long, ByVal lpbPorts As Long, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long +Declare Function AddPort Lib "winspool.drv" Alias "AddPortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pMonitorName As String) As Long +Declare Function ConfigurePort Lib "winspool.drv" Alias "ConfigurePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long +Declare Function DeletePort Lib "winspool.drv" Alias "DeletePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long + +Declare Function AddPrinterConnection Lib "winspool.drv" Alias "AddPrinterConnectionA" (ByVal pName As String) As Long + +Declare Function DeletePrinterConnection Lib "winspool.drv" Alias "DeletePrinterConnectionA" (ByVal pName As String) As Long +Declare Function ConnectToPrinterDlg Lib "winspool.drv" Alias "ConnectToPrinterDlg" (ByVal hwnd As Long, ByVal flags As Long) As Long + +Type PROVIDOR_INFO_1 + pName As String + pEnvironment As String + pDLLName As String +End Type + +Declare Function AddPrintProvidor Lib "winspool.drv" Alias "AddPrintProvidorA" (ByVal pName As String, ByVal Level As Long, pProvidorInfo As Byte) As Long +Declare Function DeletePrintProvidor Lib "winspool.drv" Alias "DeletePrintProvidorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProvidorName As String) As Long + +Const SERVER_ACCESS_ADMINISTER = &H1 +Const SERVER_ACCESS_ENUMERATE = &H2 + +Const PRINTER_ACCESS_ADMINISTER = &H4 +Const PRINTER_ACCESS_USE = &H8 + +Const JOB_ACCESS_ADMINISTER = &H10 + +' Access rights for print servers + +Const SERVER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE) +Const SERVER_READ = (STANDARD_RIGHTS_READ Or SERVER_ACCESS_ENUMERATE) +Const SERVER_WRITE = (STANDARD_RIGHTS_WRITE Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE) +Const SERVER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or SERVER_ACCESS_ENUMERATE) + +' Access rights for printers +Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE) +Const PRINTER_READ = (STANDARD_RIGHTS_READ Or PRINTER_ACCESS_USE) +Const PRINTER_WRITE = (STANDARD_RIGHTS_WRITE Or PRINTER_ACCESS_USE) +Const PRINTER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or PRINTER_ACCESS_USE) + +' Access rights for jobs +Const JOB_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or JOB_ACCESS_ADMINISTER) +Const JOB_READ = (STANDARD_RIGHTS_READ Or JOB_ACCESS_ADMINISTER) +Const JOB_WRITE = (STANDARD_RIGHTS_WRITE Or JOB_ACCESS_ADMINISTER) +Const JOB_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or JOB_ACCESS_ADMINISTER) + +' Windows Network support + +' RESOURCE ENUMERATION + +Const RESOURCE_CONNECTED = &H1 +Const RESOURCE_PUBLICNET = &H2 +Const RESOURCE_REMEMBERED = &H3 + +Const RESOURCETYPE_ANY = &H0 +Const RESOURCETYPE_DISK = &H1 +Const RESOURCETYPE_PRINT = &H2 +Const RESOURCETYPE_UNKNOWN = &HFFFF + +Const RESOURCEUSAGE_CONNECTABLE = &H1 +Const RESOURCEUSAGE_CONTAINER = &H2 +Const RESOURCEUSAGE_RESERVED = &H80000000 + +Const RESOURCEDISPLAYTYPE_GENERIC = &H0 +Const RESOURCEDISPLAYTYPE_DOMAIN = &H1 +Const RESOURCEDISPLAYTYPE_SERVER = &H2 +Const RESOURCEDISPLAYTYPE_SHARE = &H3 +Const RESOURCEDISPLAYTYPE_FILE = &H4 +Const RESOURCEDISPLAYTYPE_GROUP = &H5 + +Type NETRESOURCE + dwScope As Long + dwType As Long + dwDisplayType As Long + dwUsage As Long + lpLocalName As String + lpRemoteName As String + lpComment As String + lpProvider As String +End Type + +Const CONNECT_UPDATE_PROFILE = &H1 + +Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long +Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long +Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long +Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long +Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long +Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As NETRESOURCE, lphEnum As Long) As Long +Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As Any, lpBufferSize As Long) As Long +Declare Function WNetCloseEnum Lib "mpr.dll" Alias "WNetCloseEnum" (ByVal hEnum As Long) As Long + +Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long +Declare Function WNetConnectionDialog Lib "mpr.dll" Alias "WNetConnectionDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long +Declare Function WNetDisconnectDialog Lib "mpr.dll" Alias "WNetDisconnectDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long + +Declare Function WNetGetLastError Lib "mpr.dll" Alias "WNetGetLastErrorA" (lpError As Long, ByVal lpErrorBuf As String, ByVal nErrorBufSize As Long, ByVal lpNameBuf As String, ByVal nNameBufSize As Long) As Long + +' Status Codes + +' This section is provided for backward compatibility. Use of the ERROR_ +' codes is preferred. The WN_ error codes may not be available in future +' releases. + +' General + +Const WN_SUCCESS = NO_ERROR +Const WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED +Const WN_NET_ERROR = ERROR_UNEXP_NET_ERR +Const WN_MORE_DATA = ERROR_MORE_DATA +Const WN_BAD_POINTER = ERROR_INVALID_ADDRESS +Const WN_BAD_VALUE = ERROR_INVALID_PARAMETER +Const WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD +Const WN_ACCESS_DENIED = ERROR_ACCESS_DENIED +Const WN_FUNCTION_BUSY = ERROR_BUSY +Const WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR +Const WN_BAD_USER = ERROR_BAD_USERNAME +Const WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY +Const WN_NO_NETWORK = ERROR_NO_NETWORK +Const WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR + +' Connection + +Const WN_NOT_CONNECTED = ERROR_NOT_CONNECTED +Const WN_OPEN_FILES = ERROR_OPEN_FILES +Const WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE +Const WN_BAD_NETNAME = ERROR_BAD_NET_NAME +Const WN_BAD_LOCALNAME = ERROR_BAD_DEVICE +Const WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED +Const WN_DEVICE_ERROR = ERROR_GEN_FAILURE +Const WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL +Const WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH +Const WN_BAD_PROVIDER = ERROR_BAD_PROVIDER +Const WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE +Const WN_BAD_PROFILE = ERROR_BAD_PROFILE + +' Enumeration + +Const WN_BAD_HANDLE = ERROR_INVALID_HANDLE +Const WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS +Const WN_NOT_CONTAINER = ERROR_NOT_CONTAINER + +Const WN_NO_ERROR = NO_ERROR + +' This section contains the definitions +' for portable NetBIOS 3.0 support. + +Const NCBNAMSZ = 16 ' absolute length of a net name +Const MAX_LANA = 254 ' lana's in range 0 to MAX_LANA + +Type NCB + ncb_command As Integer + ncb_retcode As Integer + ncb_lsn As Integer + ncb_num As Integer + ncb_buffer As String + ncb_length As Integer + ncb_callname As String * NCBNAMSZ + ncb_name As String * NCBNAMSZ + ncb_rto As Integer + ncb_sto As Integer + ncb_post As Long + ncb_lana_num As Integer + ncb_cmd_cplt As Integer + ncb_reserve(10) As Byte ' Reserved, must be 0 + ncb_event As Long +End Type + +Type ADAPTER_STATUS + adapter_address As String * 6 + rev_major As Integer + reserved0 As Integer + adapter_type As Integer + rev_minor As Integer + duration As Integer + frmr_recv As Integer + frmr_xmit As Integer + iframe_recv_err As Integer + xmit_aborts As Integer + xmit_success As Long + recv_success As Long + iframe_xmit_err As Integer + recv_buff_unavail As Integer + t1_timeouts As Integer + ti_timeouts As Integer + Reserved1 As Long + free_ncbs As Integer + max_cfg_ncbs As Integer + max_ncbs As Integer + xmit_buf_unavail As Integer + max_dgram_size As Integer + pending_sess As Integer + max_cfg_sess As Integer + max_sess As Integer + max_sess_pkt_size As Integer + name_count As Integer +End Type + +Type NAME_BUFFER + name As String * NCBNAMSZ + name_num As Integer + name_flags As Integer +End Type + +' values for name_flags bits. + +Const NAME_FLAGS_MASK = &H87 + +Const GROUP_NAME = &H80 +Const UNIQUE_NAME = &H0 + +Const REGISTERING = &H0 +Const REGISTERED = &H4 +Const DEREGISTERED = &H5 +Const DUPLICATE = &H6 +Const DUPLICATE_DEREG = &H7 + +Type SESSION_HEADER + sess_name As Integer + num_sess As Integer + rcv_dg_outstanding As Integer + rcv_any_outstanding As Integer +End Type + +Type SESSION_BUFFER + lsn As Integer + State As Integer + local_name As String * NCBNAMSZ + remote_name As String * NCBNAMSZ + rcvs_outstanding As Integer + sends_outstanding As Integer +End Type + +' Values for state +Const LISTEN_OUTSTANDING = &H1 +Const CALL_PENDING = &H2 +Const SESSION_ESTABLISHED = &H3 +Const HANGUP_PENDING = &H4 +Const HANGUP_COMPLETE = &H5 +Const SESSION_ABORTED = &H6 + +Type LANA_ENUM + Length As Integer + lana(MAX_LANA) As Integer +End Type + +Type FIND_NAME_HEADER + node_count As Integer + Reserved As Integer + unique_group As Integer +End Type + +Type FIND_NAME_BUFFER + Length As Integer + access_control As Integer + frame_control As Integer + destination_addr(6) As Integer + source_addr(6) As Integer + routing_info(18) As Integer +End Type + +Type ACTION_HEADER + transport_id As Long + action_code As Integer + Reserved As Integer +End Type + +' Values for transport_id +Const ALL_TRANSPORTS = "M\0\0\0" +Const MS_NBF = "MNBF" + +' NCB Command codes +Const NCBCALL = &H10 ' NCB CALL +Const NCBLISTEN = &H11 ' NCB LISTEN +Const NCBHANGUP = &H12 ' NCB HANG UP +Const NCBSEND = &H14 ' NCB SEND +Const NCBRECV = &H15 ' NCB RECEIVE +Const NCBRECVANY = &H16 ' NCB RECEIVE ANY +Const NCBCHAINSEND = &H17 ' NCB CHAIN SEND +Const NCBDGSEND = &H20 ' NCB SEND DATAGRAM +Const NCBDGRECV = &H21 ' NCB RECEIVE DATAGRAM +Const NCBDGSENDBC = &H22 ' NCB SEND BROADCAST DATAGRAM +Const NCBDGRECVBC = &H23 ' NCB RECEIVE BROADCAST DATAGRAM +Const NCBADDNAME = &H30 ' NCB ADD NAME +Const NCBDELNAME = &H31 ' NCB DELETE NAME +Const NCBRESET = &H32 ' NCB RESET +Const NCBASTAT = &H33 ' NCB ADAPTER STATUS +Const NCBSSTAT = &H34 ' NCB SESSION STATUS +Const NCBCANCEL = &H35 ' NCB CANCEL +Const NCBADDGRNAME = &H36 ' NCB ADD GROUP NAME +Const NCBENUM = &H37 ' NCB ENUMERATE LANA NUMBERS +Const NCBUNLINK = &H70 ' NCB UNLINK +Const NCBSENDNA = &H71 ' NCB SEND NO ACK +Const NCBCHAINSENDNA = &H72 ' NCB CHAIN SEND NO ACK +Const NCBLANSTALERT = &H73 ' NCB LAN STATUS ALERT +Const NCBACTION = &H77 ' NCB ACTION +Const NCBFINDNAME = &H78 ' NCB FIND NAME +Const NCBTRACE = &H79 ' NCB TRACE + +Const ASYNCH = &H80 ' high bit set == asynchronous + +' NCB Return codes +Const NRC_GOODRET = &H0 ' good return + ' also returned when ASYNCH request accepted +Const NRC_BUFLEN = &H1 ' illegal buffer length +Const NRC_ILLCMD = &H3 ' illegal command +Const NRC_CMDTMO = &H5 ' command timed out +Const NRC_INCOMP = &H6 ' message incomplete, issue another command +Const NRC_BADDR = &H7 ' illegal buffer address +Const NRC_SNUMOUT = &H8 ' session number out of range +Const NRC_NORES = &H9 ' no resource available +Const NRC_SCLOSED = &HA ' session closed +Const NRC_CMDCAN = &HB ' command cancelled +Const NRC_DUPNAME = &HD ' duplicate name +Const NRC_NAMTFUL = &HE ' name table full +Const NRC_ACTSES = &HF ' no deletions, name has active sessions +Const NRC_LOCTFUL = &H11 ' local session table full +Const NRC_REMTFUL = &H12 ' remote session table full +Const NRC_ILLNN = &H13 ' illegal name number +Const NRC_NOCALL = &H14 ' no callname +Const NRC_NOWILD = &H15 ' cannot put in NCB_NAME +Const NRC_INUSE = &H16 ' name in use on remote adapter +Const NRC_NAMERR = &H17 ' name deleted +Const NRC_SABORT = &H18 ' session ended abnormally +Const NRC_NAMCONF = &H19 ' name conflict detected +Const NRC_IFBUSY = &H21 ' interface busy, IRET before retrying +Const NRC_TOOMANY = &H22 ' too many commands outstanding, retry later +Const NRC_BRIDGE = &H23 ' ncb_lana_num field invalid +Const NRC_CANOCCR = &H24 ' command completed while cancel occurring +Const NRC_CANCEL = &H26 ' command not valid to cancel +Const NRC_DUPENV = &H30 ' name defined by anther local process +Const NRC_ENVNOTDEF = &H34 ' environment undefined. RESET required +Const NRC_OSRESNOTAV = &H35 ' required OS resources exhausted +Const NRC_MAXAPPS = &H36 ' max number of applications exceeded +Const NRC_NOSAPS = &H37 ' no saps available for netbios +Const NRC_NORESOURCES = &H38 ' requested resources are not available +Const NRC_INVADDRESS = &H39 ' invalid ncb address or length > segment +Const NRC_INVDDID = &H3B ' invalid NCB DDID +Const NRC_LOCKFAIL = &H3C ' lock of user area failed +Const NRC_OPENERR = &H3F ' NETBIOS not loaded +Const NRC_SYSTEM = &H40 ' system error + +Const NRC_PENDING = &HFF ' asynchronous command is not yet finished + +' +' Win32 NetAPIs. +' +Declare Function NetUserChangePassword Lib "Netapi32.dll" (Domain As Any, User As Any, OldPass As Byte, NewPass As Byte) As Long +Declare Function NetUserGetInfo Lib "Netapi32.dll" (lpServer As Any, UserName As Byte, ByVal Level As Long, lpBuffer As Long) As Long +Declare Function NetUserGetGroups Lib "Netapi32.dll" (lpServer As Any, UserName As Byte, ByVal Level As Long, lpBuffer As Long, ByVal PrefMaxLen As Long, lpEntriesRead As Long, lpTotalEntries As Long) As Long +Declare Function NetUserGetLocalGroups Lib "Netapi32.dll" (lpServer As Any, UserName As Byte, ByVal Level As Long, ByVal Flags As Long, lpBuffer As Long, ByVal MaxLen As Long, lpEntriesRead As Long, lpTotalEntries As Long) As Long +Declare Function NetUserAdd Lib "netapi32" (lpServer As Any, ByVal Level As Long, lpUser As USER_INFO_3_API, lpError As Long) As Long +Declare Function NetWkstaGetInfo Lib "Netapi32.dll" (lpServer As Any, ByVal Level As Long, lpBuffer As Any) As Long +Declare Function NetWkstaUserGetInfo Lib "Netapi32.dll" (ByVal reserved As Any, ByVal Level As Long, lpBuffer As Any) As Long +Declare Function NetApiBufferFree Lib "Netapi32.dll" (ByVal lpBuffer As Long) As Long +Declare Function NetRemoteTOD Lib "Netapi32.dll" (yServer As Any, pBuffer As Long) As Long +Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long +Declare Function GetUserNameW Lib "advapi32.dll" (lpBuffer As Byte, nSize As Long) As Long +Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long +Declare Function GetComputerNameW Lib "kernel32" (lpBuffer As Any, nSize As Long) As Long +Declare Function GetCurrentProcess Lib "kernel32" () As Long +Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long +Declare Function GetTokenInformation Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal TokenInformationClass As Long, TokenInformation As Any, ByVal TokenInformationLength As Long, ReturnLength As Long) As Long +Declare Function LookupAccountSid Lib "advapi32.dll" Alias "LookupAccountSidW" (ByVal lpSystemName As Any, Sid As Any, Name As Any, cbName As Long, ReferencedDomainName As Any, cbReferencedDomainName As Long, peUse As Integer) As Long +Declare Function NetLocalGroupDelMembers Lib "netapi32.dll" (ByVal psServer As Long, ByVal psLocalGroup As Long, ByVal lLevel As Long, uMember As LOCALGROUP_MEMBERS_INFO_0, ByVal lMemberCount As Long) As Long +Declare Function NetLocalGroupGetMembers Lib "netapi32.dll" (ByVal psServer As Long, ByVal psLocalGroup As Long, ByVal lLevel As Long, pBuffer As Long, ByVal lMaxLength As Long, plEntriesRead As Long, plTotalEntries As Long, phResume As Long) As Long +Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long +Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As Any, lphEnum As Long) As Long +Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As NETRESOURCE, lpBufferSize As Long) As Long +Declare Function WNetCloseEnum Lib "mpr.dll" (ByVal hEnum As Long) As Long +Declare Function Netbios Lib "netapi32.dll" Alias "Netbios" (pncb As NCB) As Byte +Type USER_INFO_3 + ' Level 0 starts here + Name As Long + ' Level 1 starts here + Password As Long + PasswordAge As Long + Privilege As Long + HomeDir As Long + Comment As Long + Flags As Long + ScriptPath As Long + ' Level 2 starts here + AuthFlags As Long + FullName As Long + UserComment As Long + Parms As Long + Workstations As Long + LastLogon As Long + LastLogoff As Long + AcctExpires As Long + MaxStorage As Long + UnitsPerWeek As Long + LogonHours As Long + BadPwCount As Long + NumLogons As Long + LogonServer As Long + CountryCode As Long + CodePage As Long + ' Level 3 starts here + UserID As Long + PrimaryGroupID As Long + Profile As Long + HomeDirDrive As Long + PasswordExpired As Long +End Type + +Type GROUP_INFO_2 + Name As Long + Comment As Long + GroupID As Long + Attributes As Long +End Type + +Type LOCALGROUP_MEMBERS_INFO_0 + pSID As Long +End Type + +Type LOCALGROUP_MEMBERS_INFO_1 + 'Level 0 Starts Here + pSID As Long + 'Level 1 Starts Here + eUsage As g_netSID_NAME_USE + psName As Long +End Type + +Type WKSTA_INFO_102 + wki102_platform_id As Long + wki102_computername As Long + wki102_langroup As Long + wki102_ver_major As Long + wki102_ver_minor As Long + wki102_lanroot As Long + wki102_logged_on_users As Long +End Type + +Type WKSTA_USER_INFO_1 + wkui1_username As Long + wkui1_logon_domain As Long + wkui1_oth_domains As Long + wkui1_logon_server As Long +End Type + +Type NETRESOURCE + dwScope As Long + dwType As Long + dwDisplayType As Long + dwUsage As Long + pLocalName As Long + pRemoteName As Long + pComment As Long + pProvider As Long +End Type + +Enum g_netSID_NAME_USE + SidTypeUser = 1& + SidTypeGroup = 2& + SidTypeDomain = 3& + SidTypeAlias = 4& + SidTypeWellKnownGroup = 5& + SidTypeDeletedAccount = 6& + SidTypeInvalid = 7& + SidTypeUnknown = 8& +End Enum + +Const FILTER_TEMP_DUPLICATE_ACCOUNT As Long = &H1& +Const FILTER_NORMAL_ACCOUNT As Long = &H2& +Const FILTER_PROXY_ACCOUNT As Long = &H4& +Const FILTER_INTERDOMAIN_TRUST_ACCOUNT As Long = &H8& +Const FILTER_WORKSTATION_TRUST_ACCOUNT As Long = &H10& +Const FILTER_SERVER_TRUST_ACCOUNT As Long = &H20& + +Const TIMEQ_FOREVER = -1& '((unsigned long) -1L) +Const USER_MAXSTORAGE_UNLIMITED = -1& '((unsigned long) -1L) +Const USER_NO_LOGOFF = -1& '((unsigned long) -1L) +Const UNITS_PER_DAY = 24 +Const UNITS_PER_WEEK = UNITS_PER_DAY * 7 + +Const USER_PRIV_MASK = 3 +Const USER_PRIV_GUEST = 0 +Const USER_PRIV_USER = 1 +Const USER_PRIV_ADMIN = 2 + +Const UNLEN = 256 ' Maximum username length +Const GNLEN = UNLEN ' Maximum groupname length +Const CNLEN = 15 ' Maximum computer name length +Const PWLEN = 256 ' Maximum password length +Const LM20_PWLEN = 14 ' LM 2.0 Maximum password length +Const MAXCOMMENTSZ = 256 ' Multipurpose comment length +Const LG_INCLUDE_INDIRECT As Long = &H1& + +Const UF_SCRIPT = &H1 +Const UF_ACCOUNTDISABLE = &H2 +Const UF_HOMEDIR_REQUIRED = &H8 +Const UF_LOCKOUT = &H10 +Const UF_PASSWD_NOTREQD = &H20 +Const UF_PASSWD_CANT_CHANGE = &H40 + +Const LG_INCLUDE_INDIRECT As Long = &H1& + +Const NERR_Success As Long = 0& +Const NERR_BASE = 2100 +Const NERR_InvalidComputer = (NERR_BASE + 251) +Const NERR_NotPrimary = (NERR_BASE + 126) +Const NERR_GroupExists = (NERR_BASE + 123) +Const NERR_UserExists = (NERR_BASE + 124) +Const NERR_PasswordTooShort = (NERR_BASE + 145) + +Const RESOURCE_CONNECTED As Long = &H1& +Const RESOURCE_GLOBALNET As Long = &H2& +Const RESOURCE_REMEMBERED As Long = &H3& +Const RESOURCE_ENUM_ALL As Long = &HFFFF +Const RESOURCEDISPLAYTYPE_DOMAIN As Long = &H1& +Const RESOURCEDISPLAYTYPE_FILE As Long = &H4& +Const RESOURCEDISPLAYTYPE_GENERIC As Long = &H0& +Const RESOURCEDISPLAYTYPE_GROUP As Long = &H5& +Const RESOURCEDISPLAYTYPE_SERVER As Long = &H2& +Const RESOURCEDISPLAYTYPE_SHARE As Long = &H3& +Const RESOURCETYPE_ANY As Long = &H0& +Const RESOURCETYPE_DISK As Long = &H1& +Const RESOURCETYPE_PRINT As Long = &H2& +Const RESOURCETYPE_UNKNOWN As Long = &HFFFF& +Const RESOURCEUSAGE_ALL As Long = &H0& +Const RESOURCEUSAGE_CONNECTABLE As Long = &H1& +Const RESOURCEUSAGE_CONTAINER As Long = &H2& +Const RESOURCEUSAGE_RESERVED As Long = &H80000000 + +' Legal values for expression in except(). +Const EXCEPTION_EXECUTE_HANDLER = 1 +Const EXCEPTION_CONTINUE_SEARCH = 0 +Const EXCEPTION_CONTINUE_EXECUTION = -1 + +' UI dialog constants and types + +' ----Constants-------------------------------------------------------------- +Const ctlFirst = &H400 +Const ctlLast = &H4FF + ' Push buttons +Const psh1 = &H400 +Const psh2 = &H401 +Const psh3 = &H402 +Const psh4 = &H403 +Const psh5 = &H404 +Const psh6 = &H405 +Const psh7 = &H406 +Const psh8 = &H407 +Const psh9 = &H408 +Const psh10 = &H409 +Const psh11 = &H40A +Const psh12 = &H40B +Const psh13 = &H40C +Const psh14 = &H40D +Const psh15 = &H40E +Const pshHelp = psh15 +Const psh16 = &H40F + ' Checkboxes +Const chx1 = &H410 +Const chx2 = &H411 +Const chx3 = &H412 +Const chx4 = &H413 +Const chx5 = &H414 +Const chx6 = &H415 +Const chx7 = &H416 +Const chx8 = &H417 +Const chx9 = &H418 +Const chx10 = &H419 +Const chx11 = &H41A +Const chx12 = &H41B +Const chx13 = &H41C +Const chx14 = &H41D +Const chx15 = &H41E +Const chx16 = &H41D + ' Radio buttons +Const rad1 = &H420 +Const rad2 = &H421 +Const rad3 = &H422 +Const rad4 = &H423 +Const rad5 = &H424 +Const rad6 = &H425 +Const rad7 = &H426 +Const rad8 = &H427 +Const rad9 = &H428 +Const rad10 = &H429 +Const rad11 = &H42A +Const rad12 = &H42B +Const rad13 = &H42C +Const rad14 = &H42D +Const rad15 = &H42E +Const rad16 = &H42F + ' Groups, frames, rectangles, and icons +Const grp1 = &H430 +Const grp2 = &H431 +Const grp3 = &H432 +Const grp4 = &H433 +Const frm1 = &H434 +Const frm2 = &H435 +Const frm3 = &H436 +Const frm4 = &H437 +Const rct1 = &H438 +Const rct2 = &H439 +Const rct3 = &H43A +Const rct4 = &H43B +Const ico1 = &H43C +Const ico2 = &H43D +Const ico3 = &H43E +Const ico4 = &H43F + ' Static text +Const stc1 = &H440 +Const stc2 = &H441 +Const stc3 = &H442 +Const stc4 = &H443 +Const stc5 = &H444 +Const stc6 = &H445 +Const stc7 = &H446 +Const stc8 = &H447 +Const stc9 = &H448 +Const stc10 = &H449 +Const stc11 = &H44A +Const stc12 = &H44B +Const stc13 = &H44C +Const stc14 = &H44D +Const stc15 = &H44E +Const stc16 = &H44F +Const stc17 = &H450 +Const stc18 = &H451 +Const stc19 = &H452 +Const stc20 = &H453 +Const stc21 = &H454 +Const stc22 = &H455 +Const stc23 = &H456 +Const stc24 = &H457 +Const stc25 = &H458 +Const stc26 = &H459 +Const stc27 = &H45A +Const stc28 = &H45B +Const stc29 = &H45C +Const stc30 = &H45D +Const stc31 = &H45E +Const stc32 = &H45F + ' Listboxes +Const lst1 = &H460 +Const lst2 = &H461 +Const lst3 = &H462 +Const lst4 = &H463 +Const lst5 = &H464 +Const lst6 = &H465 +Const lst7 = &H466 +Const lst8 = &H467 +Const lst9 = &H468 +Const lst10 = &H469 +Const lst11 = &H46A +Const lst12 = &H46B +Const lst13 = &H46C +Const lst14 = &H46D +Const lst15 = &H46E +Const lst16 = &H46F + ' Combo boxes +Const cmb1 = &H470 +Const cmb2 = &H471 +Const cmb3 = &H472 +Const cmb4 = &H473 +Const cmb5 = &H474 +Const cmb6 = &H475 +Const cmb7 = &H476 +Const cmb8 = &H477 +Const cmb9 = &H478 +Const cmb10 = &H479 +Const cmb11 = &H47A +Const cmb12 = &H47B +Const cmb13 = &H47C +Const cmb14 = &H47D +Const cmb15 = &H47E +Const cmb16 = &H47F + ' Edit controls +Const edt1 = &H480 +Const edt2 = &H481 +Const edt3 = &H482 +Const edt4 = &H483 +Const edt5 = &H484 +Const edt6 = &H485 +Const edt7 = &H486 +Const edt8 = &H487 +Const edt9 = &H488 +Const edt10 = &H489 +Const edt11 = &H48A +Const edt12 = &H48B +Const edt13 = &H48C +Const edt14 = &H48D +Const edt15 = &H48E +Const edt16 = &H48F + ' Scroll bars +Const scr1 = &H490 +Const scr2 = &H491 +Const scr3 = &H492 +Const scr4 = &H493 +Const scr5 = &H494 +Const scr6 = &H495 +Const scr7 = &H496 +Const scr8 = &H497 + +Const FILEOPENORD = 1536 +Const MULTIFILEOPENORD = 1537 +Const PRINTDLGORD = 1538 +Const PRNSETUPDLGORD = 1539 +Const FINDDLGORD = 1540 +Const REPLACEDLGORD = 1541 +Const FONTDLGORD = 1542 +Const FORMATDLGORD31 = 1543 +Const FORMATDLGORD30 = 1544 + +Type CRGB + bRed As Byte + bGreen As Byte + bBlue As Byte + bExtra As Byte +End Type + +' ----------------- +' ADVAPI32 +' ----------------- + +' function prototypes, constants, and type definitions +' for Windows 32-bit Registry API + +Const HKEY_CLASSES_ROOT = &H80000000 +Const HKEY_CURRENT_USER = &H80000001 +Const HKEY_LOCAL_MACHINE = &H80000002 +Const HKEY_USERS = &H80000003 +Const HKEY_PERFORMANCE_DATA = &H80000004 +Const HKEY_CURRENT_CONFIG = &H80000005 +Const HKEY_DYN_DATA = &H80000006 + +' Registry API prototypes + +Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long +Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long +Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long +Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long +Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long +Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long +Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long +Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long +Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long +Declare Function RegFlushKey Lib "advapi32.dll" Alias "RegFlushKey" (ByVal hKey As Long) As Long +Declare Function RegGetKeySecurity Lib "advapi32.dll" Alias "RegGetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, lpcbSecurityDescriptor As Long) As Long +Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long +Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" Alias "RegNotifyChangeKeyValue" (ByVal hKey As Long, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronus As Long) As Long +Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long +Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long +Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, ByVal lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long +Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long +Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value. +Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long +Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long +Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long +Declare Function RegSetKeySecurity Lib "advapi32.dll" Alias "RegSetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long +Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long +Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value. +Declare Function RegUnLoadKey Lib "advapi32.dll" Alias "RegUnLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long +Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long +Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long + +' Service database names +Const SERVICES_ACTIVE_DATABASE = "ServicesActive" +Const SERVICES_FAILED_DATABASE = "ServicesFailed" + +' Value to indicate no change to an optional parameter +Const SERVICE_NO_CHANGE = &HFFFF + +' Service State -- for Enum Requests (Bit Mask) +Const SERVICE_ACTIVE = &H1 +Const SERVICE_INACTIVE = &H2 +Const SERVICE_STATE_ALL = (SERVICE_ACTIVE Or SERVICE_INACTIVE) + +' Controls +Const SERVICE_CONTROL_STOP = &H1 +Const SERVICE_CONTROL_PAUSE = &H2 +Const SERVICE_CONTROL_CONTINUE = &H3 +Const SERVICE_CONTROL_INTERROGATE = &H4 +Const SERVICE_CONTROL_SHUTDOWN = &H5 + +' Service State -- for CurrentState +Const SERVICE_STOPPED = &H1 +Const SERVICE_START_PENDING = &H2 +Const SERVICE_STOP_PENDING = &H3 +Const SERVICE_RUNNING = &H4 +Const SERVICE_CONTINUE_PENDING = &H5 +Const SERVICE_PAUSE_PENDING = &H6 +Const SERVICE_PAUSED = &H7 + +' Controls Accepted (Bit Mask) +Const SERVICE_ACCEPT_STOP = &H1 +Const SERVICE_ACCEPT_PAUSE_CONTINUE = &H2 +Const SERVICE_ACCEPT_SHUTDOWN = &H4 + +' Service Control Manager object specific access types +Const SC_MANAGER_CONNECT = &H1 +Const SC_MANAGER_CREATE_SERVICE = &H2 +Const SC_MANAGER_ENUMERATE_SERVICE = &H4 +Const SC_MANAGER_LOCK = &H8 +Const SC_MANAGER_QUERY_LOCK_STATUS = &H10 +Const SC_MANAGER_MODIFY_BOOT_CONFIG = &H20 + +Const SC_MANAGER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SC_MANAGER_CONNECT Or SC_MANAGER_CREATE_SERVICE Or SC_MANAGER_ENUMERATE_SERVICE Or SC_MANAGER_LOCK Or SC_MANAGER_QUERY_LOCK_STATUS Or SC_MANAGER_MODIFY_BOOT_CONFIG) + +' Service object specific access type +Const SERVICE_QUERY_CONFIG = &H1 +Const SERVICE_CHANGE_CONFIG = &H2 +Const SERVICE_QUERY_STATUS = &H4 +Const SERVICE_ENUMERATE_DEPENDENTS = &H8 +Const SERVICE_START = &H10 +Const SERVICE_STOP = &H20 +Const SERVICE_PAUSE_CONTINUE = &H40 +Const SERVICE_INTERROGATE = &H80 +Const SERVICE_USER_DEFINED_CONTROL = &H100 + +Const SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVICE_QUERY_CONFIG Or SERVICE_CHANGE_CONFIG Or SERVICE_QUERY_STATUS Or SERVICE_ENUMERATE_DEPENDENTS Or SERVICE_START Or SERVICE_STOP Or SERVICE_PAUSE_CONTINUE Or SERVICE_INTERROGATE Or SERVICE_USER_DEFINED_CONTROL) + + +Type SERVICE_STATUS + dwServiceType As Long + dwCurrentState As Long + dwControlsAccepted As Long + dwWin32ExitCode As Long + dwServiceSpecificExitCode As Long + dwCheckPoint As Long + dwWaitHint As Long +End Type + +Type ENUM_SERVICE_STATUS + lpServiceName As String + lpDisplayName As String + ServiceStatus As SERVICE_STATUS +End Type + +Type QUERY_SERVICE_LOCK_STATUS + fIsLocked As Long + lpLockOwner As String + dwLockDuration As Long +End Type + +Type QUERY_SERVICE_CONFIG + dwServiceType As Long + dwStartType As Long + dwErrorControl As Long + lpBinaryPathName As String + lpLoadOrderGroup As String + dwTagId As Long + lpDependencies As String + lpServiceStartName As String + lpDisplayName As String +End Type + +Type SERVICE_TABLE_ENTRY + lpServiceName As String + lpServiceProc As Long +End Type + + +' ++ BUILD Version: 0010 ' Increment this if a change has global effects +' Copyright (c) 1995 Microsoft Corporation +' Module Name: +' winsvc.h +' Abstract: +' Header file for the Service Control Manager +' Environment: +' User Mode - Win32 +' --*/ +' +' Constants + +' Character to designate that a name is a group +' +Const SC_GROUP_IDENTIFIER = "+" + +' Prototype for the Service Control Handler Function + +' ///////////////////////////////////////////////////////////////////////// +' API Function Prototypes +' ///////////////////////////////////////////////////////////////////////// + +Declare Function ChangeServiceConfig Lib "advapi32.dll" Alias "ChangeServiceConfigA" (ByVal hService As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lpServiceStartName As String, ByVal lpPassword As String, ByVal lpDisplayName As String) As Long +Declare Function CloseServiceHandle Lib "advapi32.dll" Alias "CloseServiceHandle" (ByVal hSCObject As Long) As Long +Declare Function ControlService Lib "advapi32.dll" Alias "ControlService" (ByVal hService As Long, ByVal dwControl As Long, lpServiceStatus As SERVICE_STATUS) As Long +Declare Function CreateService Lib "advapi32.dll" Alias "CreateServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, ByVal dwDesiredAccess As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lp As String, ByVal lpPassword As String) As Long +Declare Function DeleteService Lib "advapi32.dll" Alias "DeleteService" (ByVal hService As Long) As Long +Declare Function EnumDependentServices Lib "advapi32.dll" Alias "EnumDependentServicesA" (ByVal hService As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long) As Long +Declare Function EnumServicesStatus Lib "advapi32.dll" Alias "EnumServicesStatusA" (ByVal hSCManager As Long, ByVal dwServiceType As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long, lpResumeHandle As Long) As Long +Declare Function GetServiceKeyName Lib "advapi32.dll" Alias "GetServiceKeyNameA" (ByVal hSCManager As Long, ByVal lpDisplayName As String, ByVal lpServiceName As String, lpcchBuffer As Long) As Long +Declare Function GetServiceDisplayName Lib "advapi32.dll" Alias "GetServiceDisplayNameA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, lpcchBuffer As Long) As Long +Declare Function LockServiceDatabase Lib "advapi32.dll" Alias "LockServiceDatabase" (ByVal hSCManager As Long) As Long +Declare Function NotifyBootConfigStatus Lib "advapi32.dll" Alias "NotifyBootConfigStatus" (ByVal BootAcceptable As Long) As Long +Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" (ByVal lpMachineName As String, ByVal lpDatabaseName As String, ByVal dwDesiredAccess As Long) As Long +Declare Function OpenService Lib "advapi32.dll" Alias "OpenServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal dwDesiredAccess As Long) As Long +Declare Function QueryServiceConfig Lib "advapi32.dll" Alias "QueryServiceConfigA" (ByVal hService As Long, lpServiceConfig As QUERY_SERVICE_CONFIG, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long +Declare Function QueryServiceLockStatus Lib "advapi32.dll" Alias "QueryServiceLockStatusA" (ByVal hSCManager As Long, lpLockStatus As QUERY_SERVICE_LOCK_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long +Declare Function QueryServiceObjectSecurity Lib "advapi32.dll" Alias "QueryServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long +Declare Function QueryServiceStatus Lib "advapi32.dll" Alias "QueryServiceStatus" (ByVal hService As Long, lpServiceStatus As SERVICE_STATUS) As Long +Declare Function RegisterServiceCtrlHandler Lib "advapi32.dll" Alias "RegisterServiceCtrlHandlerA" (ByVal lpServiceName As String, ByVal lpHandlerProc As Long) As Long +Declare Function SetServiceObjectSecurity Lib "advapi32.dll" Alias "SetServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any) As Long +Declare Function SetServiceStatus Lib "advapi32.dll" Alias "SetServiceStatus" (ByVal hServiceStatus As Long, lpServiceStatus As SERVICE_STATUS) As Long +Declare Function StartServiceCtrlDispatcher Lib "advapi32.dll" Alias "StartServiceCtrlDispatcherA" (lpServiceStartTable As SERVICE_TABLE_ENTRY) As Long +Declare Function StartService Lib "advapi32.dll" Alias "StartServiceA" (ByVal hService As Long, ByVal dwNumServiceArgs As Long, ByVal lpServiceArgVectors As Long) As Long +Declare Function UnlockServiceDatabase Lib "advapi32.dll" Alias "UnlockServiceDatabase" (ScLock As Any) As Long + +Type LARGE_INTEGER + lowpart As Long + highpart As Long +End Type + + +' Section for Performance Monitor data + +Const PERF_DATA_VERSION = 1 +Const PERF_DATA_REVISION = 1 + +Type PERF_DATA_BLOCK + Signature As String * 4 + LittleEndian As Long + Version As Long + Revision As Long + TotalByteLength As Long + HeaderLength As Long + NumObjectTypes As Long + DefaultObject As Long + SystemTime As SYSTEMTIME + PerfTime As LARGE_INTEGER + PerfFreq As LARGE_INTEGER + PerTime100nSec As LARGE_INTEGER + SystemNameLength As Long + SystemNameOffset As Long +End Type + +Type PERF_OBJECT_TYPE + TotalByteLength As Long + DefinitionLength As Long + HeaderLength As Long + ObjectNameTitleIndex As Long + ObjectNameTitle As String + ObjectHelpTitleIndex As Long + ObjectHelpTitle As String + DetailLevel As Long + NumCounters As Long + DefaultCounter As Long + NumInstances As Long + CodePage As Long + PerfTime As LARGE_INTEGER + PerfFreq As LARGE_INTEGER +End Type + +Const PERF_NO_INSTANCES = -1 ' no instances + +' The counter type is the "or" of the following values as described below +' +' select one of the following to indicate the counter's data size +Const PERF_SIZE_DWORD = &H0 +Const PERF_SIZE_LARGE = &H100 +Const PERF_SIZE_ZERO = &H200 ' for Zero Length fields +Const PERF_SIZE_VARIABLE_LEN = &H300 ' length is in CounterLength field of Counter Definition struct + +' select one of the following values to indicate the counter field usage +Const PERF_TYPE_NUMBER = &H0 ' a number (not a counter) +Const PERF_TYPE_COUNTER = &H400 ' an increasing numeric value +Const PERF_TYPE_TEXT = &H800 ' a text field +Const PERF_TYPE_ZERO = &HC00 ' displays a zero + +' If the PERF_TYPE_NUMBER field was selected, then select one of the +' following to describe the Number +Const PERF_NUMBER_HEX = &H0 ' display as HEX value +Const PERF_NUMBER_DECIMAL = &H10000 ' display as a decimal integer +Const PERF_NUMBER_DEC_1000 = &H20000 ' display as a decimal/1000 +' +' If the PERF_TYPE_COUNTER value was selected then select one of the +' following to indicate the type of counter +Const PERF_COUNTER_VALUE = &H0 ' display counter value +Const PERF_COUNTER_RATE = &H10000 ' divide ctr / delta time +Const PERF_COUNTER_FRACTION = &H20000 ' divide ctr / base +Const PERF_COUNTER_BASE = &H30000 ' base value used in fractions +Const PERF_COUNTER_ELAPSED = &H40000 ' subtract counter from current time +Const PERF_COUNTER_QUEUELEN = &H50000 ' Use Queuelen processing func. +Const PERF_COUNTER_HISTOGRAM = &H60000 ' Counter begins or ends a histogram + +' If the PERF_TYPE_TEXT value was selected, then select one of the +' following to indicate the type of TEXT data. +Const PERF_TEXT_UNICODE = &H0 ' type of text in text field +Const PERF_TEXT_ASCII = &H10000 ' ASCII using the CodePage field + +' Timer SubTypes +Const PERF_TIMER_TICK = &H0 ' use system perf. freq for base +Const PERF_TIMER_100NS = &H100000 ' use 100 NS timer time base units +Const PERF_OBJECT_TIMER = &H200000 ' use the object timer freq + +' Any types that have calculations performed can use one or more of +' the following calculation modification flags listed here +Const PERF_DELTA_COUNTER = &H400000 ' compute difference first +Const PERF_DELTA_BASE = &H800000 ' compute base diff as well +Const PERF_INVERSE_COUNTER = &H1000000 ' show as 1.00-value (assumes: +Const PERF_MULTI_COUNTER = &H2000000 ' sum of multiple instances + +' Select one of the following values to indicate the display suffix (if any) +Const PERF_DISPLAY_NO_SUFFIX = &H0 ' no suffix +Const PERF_DISPLAY_PER_SEC = &H10000000 ' "/sec" +Const PERF_DISPLAY_PERCENT = &H20000000 ' "%" +Const PERF_DISPLAY_SECONDS = &H30000000 ' "secs" +Const PERF_DISPLAY_NOSHOW = &H40000000 ' value is not displayed + +' Predefined counter types + +' 32-bit Counter. Divide delta by delta time. Display suffix: "/sec" +Const PERF_COUNTER_COUNTER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PER_SEC) + +' 64-bit Timer. Divide delta by delta time. Display suffix: "%" +Const PERF_COUNTER_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PERCENT) + +' Queue Length Space-Time Product. Divide delta by delta time. No Display Suffix. +Const PERF_COUNTER_QUEUELEN_TYPE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_QUEUELEN Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_NO_SUFFIX) + +' 64-bit Counter. Divide delta by delta time. Display Suffix: "/sec" +Const PERF_COUNTER_BULK_COUNT = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PER_SEC) + +' Indicates the counter is not a counter but rather Unicode text Display as text. +Const PERF_COUNTER_TEXT = (PERF_SIZE_VARIABLE_LEN Or PERF_TYPE_TEXT Or PERF_TEXT_UNICODE Or PERF_DISPLAY_NO_SUFFIX) + +' Indicates the data is a counter which should not be +' time averaged on display (such as an error counter on a serial line) +' Display as is. No Display Suffix. +Const PERF_COUNTER_RAWCOUNT = (PERF_SIZE_DWORD Or PERF_TYPE_NUMBER Or PERF_NUMBER_DECIMAL Or PERF_DISPLAY_NO_SUFFIX) + +' A count which is either 1 or 0 on each sampling interrupt (% busy) +' Divide delta by delta base. Display Suffix: "%" +Const PERF_SAMPLE_FRACTION = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DELTA_COUNTER Or PERF_DELTA_BASE Or PERF_DISPLAY_PERCENT) + +' A count which is sampled on each sampling interrupt (queue length) +' Divide delta by delta time. No Display Suffix. +Const PERF_SAMPLE_COUNTER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_DISPLAY_NO_SUFFIX) + +' A label: no data is associated with this counter (it has 0 length) +' Do not display. +Const PERF_COUNTER_NODATA = (PERF_SIZE_ZERO Or PERF_DISPLAY_NOSHOW) + +' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer) +' Display 100 - delta divided by delta time. Display suffix: "%" +Const PERF_COUNTER_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_TICK Or PERF_DELTA_COUNTER Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) + +' The divisor for a sample, used with the previous counter to form a +' sampled %. You must check for >0 before dividing by this! This +' counter will directly follow the numerator counter. It should not +' be displayed to the user. +Const PERF_SAMPLE_BASE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_DISPLAY_NOSHOW Or &H1) ' for compatibility with pre-beta versions + +' A timer which, when divided by an average base, produces a time +' in seconds which is the average time of some operation. This +' timer times total operations, and the base is the number of opera- +' tions. Display Suffix: "sec" +Const PERF_AVERAGE_TIMER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_SECONDS) + +' Used as the denominator in the computation of time or count +' averages. Must directly follow the numerator counter. Not dis- +' played to the user. +Const PERF_AVERAGE_BASE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_DISPLAY_NOSHOW Or &H2) ' for compatibility with pre-beta versions + +' A bulk count which, when divided (typically) by the number of +' operations, gives (typically) the number of bytes per operation. +' No Display Suffix. +Const PERF_AVERAGE_BULK = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_NOSHOW) + +' 64-bit Timer in 100 nsec units. Display delta divided by +' delta time. Display suffix: "%" +Const PERF_100NSEC_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_DELTA_COUNTER Or PERF_DISPLAY_PERCENT) + +' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer) +' Display 100 - delta divided by delta time. Display suffix: "%" +Const PERF_100NSEC_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_DELTA_COUNTER Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) + +' 64-bit Timer. Divide delta by delta time. Display suffix: "%" +' Timer for multiple instances, so result can exceed 100%. +Const PERF_COUNTER_MULTI_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_DELTA_COUNTER Or PERF_TIMER_TICK Or PERF_MULTI_COUNTER Or PERF_DISPLAY_PERCENT) + +' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer) +' Display 100 _MULTI_BASE - delta divided by delta time. +' Display suffix: "%" Timer for multiple instances, so result +' can exceed 100%. Followed by a counter of type _MULTI_BASE. +Const PERF_COUNTER_MULTI_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_RATE Or PERF_DELTA_COUNTER Or PERF_MULTI_COUNTER Or PERF_TIMER_TICK Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) + +' Number of instances to which the preceding _MULTI_..._INV counter +' applies. Used as a factor to get the percentage. +Const PERF_COUNTER_MULTI_BASE = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_MULTI_COUNTER Or PERF_DISPLAY_NOSHOW) + +' 64-bit Timer in 100 nsec units. Display delta divided by delta time. +' Display suffix: "%" Timer for multiple instances, so result can exceed 100%. +Const PERF_100NSEC_MULTI_TIMER = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_DELTA_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_MULTI_COUNTER Or PERF_DISPLAY_PERCENT) + +' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer) +' Display 100 _MULTI_BASE - delta divided by delta time. +' Display suffix: "%" Timer for multiple instances, so result +' can exceed 100%. Followed by a counter of type _MULTI_BASE. +Const PERF_100NSEC_MULTI_TIMER_INV = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_DELTA_COUNTER Or PERF_COUNTER_RATE Or PERF_TIMER_100NS Or PERF_MULTI_COUNTER Or PERF_INVERSE_COUNTER Or PERF_DISPLAY_PERCENT) + +' Indicates the data is a fraction of the following counter which +' should not be time averaged on display (such as free space over +' total space.) Display as is. Display the quotient as "%". +Const PERF_RAW_FRACTION = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_PERCENT) + +' Indicates the data is a base for the preceding counter which should +' not be time averaged on display (such as free space over total space.) +Const PERF_RAW_BASE = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_DISPLAY_NOSHOW Or &H3) ' for compatibility with pre-beta versions + +' The data collected in this counter is actually the start time of the +' item being measured. For display, this data is subtracted from the +' sample time to yield the elapsed time as the difference between the two. +' In the definition below, the PerfTime field of the Object contains +' the sample time as indicated by the PERF_OBJECT_TIMER bit and the +' difference is scaled by the PerfFreq of the Object to convert the time +' units into seconds. +Const PERF_ELAPSED_TIME = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_ELAPSED Or PERF_OBJECT_TIMER Or PERF_DISPLAY_SECONDS) + +' The following counter type can be used with the preceding types to +' define a range of values to be displayed in a histogram. +Const PERF_COUNTER_HISTOGRAM_TYPE = &H80000000 ' Counter begins or ends a histogram + +' The following are used to determine the level of detail associated +' with the counter. The user will be setting the level of detail +' that should be displayed at any given time. +Const PERF_DETAIL_NOVICE = 100 ' The uninformed can understand it +Const PERF_DETAIL_ADVANCED = 200 ' For the advanced user +Const PERF_DETAIL_EXPERT = 300 ' For the expert user +Const PERF_DETAIL_WIZARD = 400 ' For the system designer + +Type PERF_COUNTER_DEFINITION + ByteLength As Long + CounterNameTitleIndex As Long + CounterNameTitle As String + CounterHelpTitleIndex As Long + CounterHelpTitle As String + DefaultScale As Long + DetailLevel As Long + CounterType As Long + CounterSize As Long + CounterOffset As Long +End Type + +Const PERF_NO_UNIQUE_ID = -1 + +Type PERF_INSTANCE_DEFINITION + ByteLength As Long + ParentObjectTitleIndex As Long + ParentObjectInstance As Long + UniqueID As Long + NameOffset As Long + NameLength As Long +End Type + +Type PERF_COUNTER_BLOCK + ByteLength As Long +End Type + +Const CDERR_DIALOGFAILURE = &HFFFF + +Const CDERR_GENERALCODES = &H0 +Const CDERR_STRUCTSIZE = &H1 +Const CDERR_INITIALIZATION = &H2 +Const CDERR_NOTEMPLATE = &H3 +Const CDERR_NOHINSTANCE = &H4 +Const CDERR_LOADSTRFAILURE = &H5 +Const CDERR_FINDRESFAILURE = &H6 +Const CDERR_LOADRESFAILURE = &H7 +Const CDERR_LOCKRESFAILURE = &H8 +Const CDERR_MEMALLOCFAILURE = &H9 +Const CDERR_MEMLOCKFAILURE = &HA +Const CDERR_NOHOOK = &HB +Const CDERR_REGISTERMSGFAIL = &HC + +Const PDERR_PRINTERCODES = &H1000 +Const PDERR_SETUPFAILURE = &H1001 +Const PDERR_PARSEFAILURE = &H1002 +Const PDERR_RETDEFFAILURE = &H1003 +Const PDERR_LOADDRVFAILURE = &H1004 +Const PDERR_GETDEVMODEFAIL = &H1005 +Const PDERR_INITFAILURE = &H1006 +Const PDERR_NODEVICES = &H1007 +Const PDERR_NODEFAULTPRN = &H1008 +Const PDERR_DNDMMISMATCH = &H1009 +Const PDERR_CREATEICFAILURE = &H100A +Const PDERR_PRINTERNOTFOUND = &H100B +Const PDERR_DEFAULTDIFFERENT = &H100C + +Const CFERR_CHOOSEFONTCODES = &H2000 +Const CFERR_NOFONTS = &H2001 +Const CFERR_MAXLESSTHANMIN = &H2002 + +Const FNERR_FILENAMECODES = &H3000 +Const FNERR_SUBCLASSFAILURE = &H3001 +Const FNERR_INVALIDFILENAME = &H3002 +Const FNERR_BUFFERTOOSMALL = &H3003 + +Const FRERR_FINDREPLACECODES = &H4000 +Const FRERR_BUFFERLENGTHZERO = &H4001 + +Const CCERR_CHOOSECOLORCODES = &H5000 + + +' Public interface to LZEXP?.LIB + +' LZEXPAND error return codes +Const LZERROR_BADINHANDLE = (-1) ' invalid input handle +Const LZERROR_BADOUTHANDLE = (-2) ' invalid output handle +Const LZERROR_READ = (-3) ' corrupt compressed file format +Const LZERROR_WRITE = (-4) ' out of space for output file +Const LZERROR_PUBLICLOC = (-5) ' insufficient memory for LZFile struct +Const LZERROR_GLOBLOCK = (-6) ' bad Global handle +Const LZERROR_BADVALUE = (-7) ' input parameter out of range +Const LZERROR_UNKNOWNALG = (-8) ' compression algorithm not recognized + +Declare Function LZCopy Lib "lz32.dll" Alias "LZCopy" (ByVal hfSource As Long, ByVal hfDest As Long) As Long +Declare Function LZInit Lib "lz32.dll" Alias "LZInit" (ByVal hfSrc As Long) As Long +Declare Function GetExpandedName Lib "lz32.dll" Alias "GetExpandedNameA" (ByVal lpszSource As String, ByVal lpszBuffer As String) As Long +Declare Function LZOpenFile Lib "lz32.dll" Alias "LZOpenFileA" (ByVal lpszFile As String, lpOf As OFSTRUCT, ByVal style As Long) As Long +Declare Function LZSeek Lib "lz32.dll" Alias "LZSeek" (ByVal hfFile As Long, ByVal lOffset As Long, ByVal nOrigin As Long) As Long +Declare Function LZRead Lib "lz32.dll" Alias "LZRead" (ByVal hfFile As Long, ByVal lpvBuf As String, ByVal cbread As Long) As Long +Declare Sub LZClose Lib "lz32.dll" Alias "LZClose" (ByVal hfFile As Long) + +' ******************************************************************** +' IMM.H - Input Method Manager definitions +' +' Copyright (c) 1993-1995 Microsoft Corporation +' ******************************************************************** + +Const VK_PROCESSKEY = &HE5 + +Type COMPOSITIONFORM + dwStyle As Long + ptCurrentPos As POINTAPI + rcArea As Rect +End Type + +Type CANDIDATEFORM + dwIndex As Long + dwStyle As Long + ptCurrentPos As POINTAPI + rcArea As Rect +End Type + +Type CANDIDATELIST + dwSize As Long + dwStyle As Long + dwCount As Long + dwSelection As Long + dwPageStart As Long + dwPageSize As Long + dwOffset(1) As Long +End Type + +Const STYLE_DESCRIPTION_SIZE = 32 + +Type STYLEBUF + dwStyle As Long + szDescription As String * STYLE_DESCRIPTION_SIZE +End Type +' prototype of IMM API + +Declare Function ImmInstallIME Lib "imm32.dll" Alias "ImmInstallIMEA" (ByVal lpszIMEFileName As String, ByVal lpszLayoutText As String) As Long +Declare Function ImmGetDefaultIMEWnd Lib "imm32.dll" Alias "ImmGetDefaultIMEWnd" (ByVal hwnd As Long) As Long +Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" (ByVal hkl As Long, ByVal lpsz As String, ByVal uBufLen As Long) As Long +Declare Function ImmGetIMEFileName Lib "imm32.dll" Alias "ImmGetIMEFileNameA" (ByVal hkl As Long, ByVal lpStr As String, ByVal uBufLen As Long) As Long +Declare Function ImmGetProperty Lib "imm32.dll" Alias "ImmGetProperty" (ByVal hkl As Long, ByVal dw As Long) As Long +Declare Function ImmIsIME Lib "imm32.dll" Alias "ImmIsIME" (ByVal hkl As Long) As Long +Declare Function ImmSimulateHotKey Lib "imm32.dll" Alias "ImmSimulateHotKey" (ByVal hwnd As Long, ByVal dw As Long) As Long +Declare Function ImmCreateContext Lib "imm32.dll" Alias "ImmCreateContext" () As Long +Declare Function ImmDestroyContext Lib "imm32.dll" Alias "ImmDestroyContext" (ByVal himc As Long) As Long +Declare Function ImmGetContext Lib "imm32.dll" Alias "ImmGetContext" (ByVal hwnd As Long) As Long +Declare Function ImmReleaseContext Lib "imm32.dll" Alias "ImmReleaseContext" (ByVal hwnd As Long, ByVal himc As Long) As Long +Declare Function ImmAssociateContext Lib "imm32.dll" Alias "ImmAssociateContext" (ByVal hwnd As Long, ByVal himc As Long) As Long +Declare Function ImmGetCompositionString Lib "imm32.dll" Alias "ImmGetCompositionStringA" (ByVal himc As Long, ByVal dw As Long, lpv As Any, ByVal dw2 As Long) As Long +Declare Function ImmSetCompositionString Lib "imm32.dll" Alias "ImmSetCompositionStringA" (ByVal himc As Long, ByVal dwIndex As Long, lpComp As Any, ByVal dw As Long, lpRead As Any, ByVal dw2 As Long) As Long +Declare Function ImmGetCandidateListCount Lib "imm32.dll" Alias "ImmGetCandidateListCountA" (ByVal himc As Long, lpdwListCount As Long) As Long +Declare Function ImmGetCandidateList Lib "imm32.dll" Alias "ImmGetCandidateListA" (ByVal himc As Long, ByVal deIndex As Long, lpCandidateList As CANDIDATELIST, ByVal dwBufLen As Long) As Long +Declare Function ImmGetGuideLine Lib "imm32.dll" Alias " ImmGetGuideLineA" (ByVal himc As Long, ByVal dwIndex As Long, ByVal lpStr As String, ByVal dwBufLen As Long) As Long +Declare Function ImmGetConversionStatus Lib "imm32.dll" Alias "ImmGetConversionStatus" (ByVal himc As Long, lpdw As Long, lpdw2 As Long) As Long +Declare Function ImmSetConversionStatus Lib "imm32.dll" Alias "ImmSetConversionStatus" (ByVal himc As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long +Declare Function ImmGetOpenStatus Lib "imm32.dll" Alias "ImmGetOpenStatus" (ByVal himc As Long) As Long +Declare Function ImmSetOpenStatus Lib "imm32.dll" Alias "ImmSetOpenStatus" (ByVal himc As Long, ByVal b As Long) As Long +Declare Function ImmGetCompositionFont Lib "imm32.dll" Alias "ImmGetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long +Declare Function ImmSetCompositionFont Lib "imm32.dll" Alias "ImmSetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long +Declare Function ImmConfigureIME Lib "imm32.dll" Alias "ImmConfigureIME" (ByVal hkl As Long, ByVal hwnd As Long, ByVal dw As Long) As Long +Declare Function ImmEscape Lib "imm32.dll" Alias "ImmEscapeA" (ByVal hkl As Long, ByVal himc As Long, ByVal un As Long, lpv As Any) As Long +Declare Function ImmGetConversionList Lib "imm32.dll" Alias "ImmGetConversionListA" (ByVal hkl As Long, ByVal himc As Long, ByVal lpsz As String, lpCandidateList As CANDIDATELIST, ByVal dwBufLen As Long, ByVal uFlag As Long) As Long +Declare Function ImmNotifyIME Lib "imm32.dll" Alias "ImmNotifyIME" (ByVal himc As Long, ByVal dwAction As Long, ByVal dwIndex As Long, ByVal dwValue As Long) As Long +Declare Function ImmGetStatusWindowPos Lib "imm32.dll" Alias "ImmGetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long +Declare Function ImmSetStatusWindowPos Lib "imm32.dll" Alias "ImmSetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long +Declare Function ImmGetCompositionWindow Lib "imm32.dll" Alias "ImmGetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long +Declare Function ImmSetCompositionWindow Lib "imm32.dll" Alias "ImmSetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long +Declare Function ImmGetCandidateWindow Lib "imm32.dll" Alias "ImmGetCandidateWindow" (ByVal himc As Long, ByVal dw As Long, lpCandidateForm As CANDIDATEFORM) As Long +Declare Function ImmSetCandidateWindow Lib "imm32.dll" Alias "ImmSetCandidateWindow" (ByVal himc As Long, lpCandidateForm As CANDIDATEFORM) As Long +Declare Function ImmIsUIMessage Lib "imm32.dll" Alias "ImmIsUIMessageA" (ByVal hwnd As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Function ImmGetVirtualKey Lib "imm32.dll" Alias "ImmGetVirtualKey" (ByVal hwnd As Long) As Long +Declare Function ImmRegisterWord Lib "imm32.dll" Alias "ImmRegisterWordA" (ByVal hkl As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszRegister As String) As Long +Declare Function ImmUnregisterWord Lib "imm32.dll" Alias "ImmUnregisterWordA" (ByVal hkl As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszUnregister As String) As Long +Declare Function ImmGetRegisterWordStyle Lib "imm32.dll" Alias " ImmGetRegisterWordStyleA" (ByVal hkl As Long, ByVal nItem As Long, lpStyleBuf As STYLEBUF) As Long +Declare Function ImmEnumRegisterWord Lib "imm32.dll" Alias "ImmEnumRegisterWordA" (ByVal hkl As Long, ByVal RegisterWordEnumProc As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszRegister As String, lpv As Any) As Long +' the IME related messages +Const WM_CONVERTREQUESTEX = &H108 +Const WM_IME_STARTCOMPOSITION = &H10D +Const WM_IME_ENDCOMPOSITION = &H10E +Const WM_IME_COMPOSITION = &H10F +Const WM_IME_KEYLAST = &H10F + +Const WM_IME_SETCONTEXT = &H281 +Const WM_IME_NOTIFY = &H282 +Const WM_IME_CONTROL = &H283 +Const WM_IME_COMPOSITIONFULL = &H284 +Const WM_IME_SELECT = &H285 +Const WM_IME_CHAR = &H286 + +Const WM_IME_KEYDOWN = &H290 +Const WM_IME_KEYUP = &H291 + +' wParam for WM_IME_CONTROL +Const IMC_GETCANDIDATEPOS = &H7 +Const IMC_SETCANDIDATEPOS = &H8 +Const IMC_GETCOMPOSITIONFONT = &H9 +Const IMC_SETCOMPOSITIONFONT = &HA +Const IMC_GETCOMPOSITIONWINDOW = &HB +Const IMC_SETCOMPOSITIONWINDOW = &HC +Const IMC_GETSTATUSWINDOWPOS = &HF +Const IMC_SETSTATUSWINDOWPOS = &H10 +Const IMC_CLOSESTATUSWINDOW = &H21 +Const IMC_OPENSTATUSWINDOW = &H22 + + +' wParam for WM_IME_CONTROL to the soft keyboard +' dwAction for ImmNotifyIME +Const NI_OPENCANDIDATE = &H10 +Const NI_CLOSECANDIDATE = &H11 +Const NI_SELECTCANDIDATESTR = &H12 +Const NI_CHANGECANDIDATELIST = &H13 +Const NI_FINALIZECONVERSIONRESULT = &H14 +Const NI_COMPOSITIONSTR = &H15 +Const NI_SETCANDIDATE_PAGESTART = &H16 +Const NI_SETCANDIDATE_PAGESIZE = &H17 + +' lParam for WM_IME_SETCONTEXT +Const ISC_SHOWUICANDIDATEWINDOW = &H1 +Const ISC_SHOWUICOMPOSITIONWINDOW = &H80000000 +Const ISC_SHOWUIGUIDELINE = &H40000000 +Const ISC_SHOWUIALLCANDIDATEWINDOW = &HF +Const ISC_SHOWUIALL = &HC000000F + +' dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR +Const CPS_COMPLETE = &H1 +Const CPS_CONVERT = &H2 +Const CPS_REVERT = &H3 +Const CPS_CANCEL = &H4 + +' Windows for Simplified Chinese Edition hot key ID from 0x10 - 0x2F +Const IME_CHOTKEY_IME_NONIME_TOGGLE = &H10 +Const IME_CHOTKEY_SHAPE_TOGGLE = &H11 +Const IME_CHOTKEY_SYMBOL_TOGGLE = &H12 + +' Windows for Japanese Edition hot key ID from 0x30 - 0x4F +Const IME_JHOTKEY_CLOSE_OPEN = &H30 + +' Windows for Korean Edition hot key ID from 0x50 - 0x6F +Const IME_KHOTKEY_SHAPE_TOGGLE = &H50 +Const IME_KHOTKEY_HANJACONVERT = &H51 +Const IME_KHOTKEY_ENGLISH = &H52 + +' Windows for Tranditional Chinese Edition hot key ID from 0x70 - 0x8F +Const IME_THOTKEY_IME_NONIME_TOGGLE = &H70 +Const IME_THOTKEY_SHAPE_TOGGLE = &H71 +Const IME_THOTKEY_SYMBOL_TOGGLE = &H72 + +' direct switch hot key ID from 0x100 - 0x11F +Const IME_HOTKEY_DSWITCH_FIRST = &H100 +Const IME_HOTKEY_DSWITCH_LAST = &H11F + +' IME private hot key from 0x200 - 0x21F +Const IME_ITHOTKEY_RESEND_RESULTSTR = &H200 +Const IME_ITHOTKEY_PREVIOUS_COMPOSITION = &H201 +Const IME_ITHOTKEY_UISTYLE_TOGGLE = &H202 + +' parameter of ImmGetCompositionString +Const GCS_COMPREADSTR = &H1 +Const GCS_COMPREADATTR = &H2 +Const GCS_COMPREADCLAUSE = &H4 +Const GCS_COMPSTR = &H8 +Const GCS_COMPATTR = &H10 +Const GCS_COMPCLAUSE = &H20 +Const GCS_CURSORPOS = &H80 +Const GCS_DELTASTART = &H100 +Const GCS_RESULTREADSTR = &H200 +Const GCS_RESULTREADCLAUSE = &H400 +Const GCS_RESULTSTR = &H800 +Const GCS_RESULTCLAUSE = &H1000 + +' style bit flags for WM_IME_COMPOSITION +Const CS_INSERTCHAR = &H2000 +Const CS_NOMOVECARET = &H4000 + +' bits of fdwInit of INPUTCONTEXT +' IME property bits +Const IME_PROP_AT_CARET = &H10000 +Const IME_PROP_SPECIAL_UI = &H20000 +Const IME_PROP_CANDLIST_START_FROM_1 = &H40000 +Const IME_PROP_UNICODE = &H80000 + +' IME UICapability bits +Const UI_CAP_2700 = &H1 +Const UI_CAP_ROT90 = &H2 +Const UI_CAP_ROTANY = &H4 + +' ImmSetCompositionString Capability bits +Const SCS_CAP_COMPSTR = &H1 +Const SCS_CAP_MAKEREAD = &H2 + +' IME WM_IME_SELECT inheritance Capability bits +Const SELECT_CAP_CONVERSION = &H1 +Const SELECT_CAP_SENTENCE = &H2 + +' ID for deIndex of ImmGetGuideLine +Const GGL_LEVEL = &H1 +Const GGL_INDEX = &H2 +Const GGL_STRING = &H3 +Const GGL_PRIVATE = &H4 + +' ID for dwLevel of GUIDELINE Structure +Const GL_LEVEL_NOGUIDELINE = &H0 +Const GL_LEVEL_FATAL = &H1 +Const GL_LEVEL_ERROR = &H2 +Const GL_LEVEL_WARNING = &H3 +Const GL_LEVEL_INFORMATION = &H4 + +' ID for dwIndex of GUIDELINE Structure +Const GL_ID_UNKNOWN = &H0 +Const GL_ID_NOMODULE = &H1 +Const GL_ID_NODICTIONARY = &H10 +Const GL_ID_CANNOTSAVE = &H11 +Const GL_ID_NOCONVERT = &H20 +Const GL_ID_TYPINGERROR = &H21 +Const GL_ID_TOOMANYSTROKE = &H22 +Const GL_ID_READINGCONFLICT = &H23 +Const GL_ID_INPUTREADING = &H24 +Const GL_ID_INPUTRADICAL = &H25 +Const GL_ID_INPUTCODE = &H26 +Const GL_ID_INPUTSYMBOL = &H27 +Const GL_ID_CHOOSECANDIDATE = &H28 +Const GL_ID_REVERSECONVERSION = &H29 +Const GL_ID_PRIVATE_FIRST = &H8000 +Const GL_ID_PRIVATE_LAST = &HFFFF + +' ID for dwIndex of ImmGetProperty +Const IGP_PROPERTY = &H4 +Const IGP_CONVERSION = &H8 +Const IGP_SENTENCE = &HC +Const IGP_UI = &H10 +Const IGP_SETCOMPSTR = &H14 +Const IGP_SELECT = &H18 + +' dwIndex for ImmSetCompositionString API +Const SCS_SETSTR = (GCS_COMPREADSTR Or GCS_COMPSTR) +Const SCS_CHANGEATTR = (GCS_COMPREADATTR Or GCS_COMPATTR) +Const SCS_CHANGECLAUSE = (GCS_COMPREADCLAUSE Or GCS_COMPCLAUSE) + +' attribute for COMPOSITIONSTRING Structure +Const ATTR_INPUT = &H0 +Const ATTR_TARGET_CONVERTED = &H1 +Const ATTR_CONVERTED = &H2 +Const ATTR_TARGET_NOTCONVERTED = &H3 +Const ATTR_INPUT_ERROR = &H4 + +' bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW +Const CFS_DEFAULT = &H0 +Const CFS_RECT = &H1 +Const CFS_POINT = &H2 +Const CFS_SCREEN = &H4 +Const CFS_FORCE_POSITION = &H20 +Const CFS_CANDIDATEPOS = &H40 +Const CFS_EXCLUDE = &H80 + +' conversion direction for ImmGetConversionList +Const GCL_CONVERSION = &H1 +Const GCL_REVERSECONVERSION = &H2 +Const GCL_REVERSE_LENGTH = &H3 + +' bit field for conversion mode +Const IME_CMODE_ALPHANUMERIC = &H0 +Const IME_CMODE_NATIVE = &H1 +Const IME_CMODE_CHINESE = IME_CMODE_NATIVE +Const IME_CMODE_HANGEUL = IME_CMODE_NATIVE +Const IME_CMODE_JAPANESE = IME_CMODE_NATIVE +Const IME_CMODE_KATAKANA = &H2 ' only effect under IME_CMODE_NATIVE +Const IME_CMODE_LANGUAGE = &H3 +Const IME_CMODE_FULLSHAPE = &H8 +Const IME_CMODE_ROMAN = &H10 +Const IME_CMODE_CHARCODE = &H20 +Const IME_CMODE_HANJACONVERT = &H40 +Const IME_CMODE_SOFTKBD = &H80 +Const IME_CMODE_NOCONVERSION = &H100 +Const IME_CMODE_EUDC = &H200 +Const IME_CMODE_SYMBOL = &H400 + +Const IME_SMODE_NONE = &H0 +Const IME_SMODE_PLAURALCLAUSE = &H1 +Const IME_SMODE_SINGLECONVERT = &H2 +Const IME_SMODE_AUTOMATIC = &H4 +Const IME_SMODE_PHRASEPREDICT = &H8 + +' style of candidate +Const IME_CAND_UNKNOWN = &H0 +Const IME_CAND_READ = &H1 +Const IME_CAND_CODE = &H2 +Const IME_CAND_MEANING = &H3 +Const IME_CAND_RADICAL = &H4 +Const IME_CAND_STROKE = &H5 + +' wParam of report message WM_IME_NOTIFY +Const IMN_CLOSESTATUSWINDOW = &H1 +Const IMN_OPENSTATUSWINDOW = &H2 +Const IMN_CHANGECANDIDATE = &H3 +Const IMN_CLOSECANDIDATE = &H4 +Const IMN_OPENCANDIDATE = &H5 +Const IMN_SETCONVERSIONMODE = &H6 +Const IMN_SETSENTENCEMODE = &H7 +Const IMN_SETOPENSTATUS = &H8 +Const IMN_SETCANDIDATEPOS = &H9 +Const IMN_SETCOMPOSITIONFONT = &HA +Const IMN_SETCOMPOSITIONWINDOW = &HB +Const IMN_SETSTATUSWINDOWPOS = &HC +Const IMN_GUIDELINE = &HD +Const IMN_PRIVATE = &HE + +' error code of ImmGetCompositionString +Const IMM_ERROR_NODATA = (-1) +Const IMM_ERROR_GENERAL = (-2) + +' dialog mode of ImmConfigureIME +Const IME_CONFIG_GENERAL = 1 +Const IME_CONFIG_REGISTERWORD = 2 +Const IME_CONFIG_SELECTDICTIONARY = 3 + +' dialog mode of ImmEscape +Const IME_ESC_QUERY_SUPPORT = &H3 +Const IME_ESC_RESERVED_FIRST = &H4 +Const IME_ESC_RESERVED_LAST = &H7FF +Const IME_ESC_PRIVATE_FIRST = &H800 +Const IME_ESC_PRIVATE_LAST = &HFFF +Const IME_ESC_SEQUENCE_TO_INTERNAL = &H1001 +Const IME_ESC_GET_EUDC_DICTIONARY = &H1003 +Const IME_ESC_SET_EUDC_DICTIONARY = &H1004 +Const IME_ESC_MAX_KEY = &H1005 +Const IME_ESC_IME_NAME = &H1006 +Const IME_ESC_SYNC_HOTKEY = &H1007 +Const IME_ESC_HANJA_MODE = &H1008 + +' style of word registration +Const IME_REGWORD_STYLE_EUDC = &H1 +Const IME_REGWORD_STYLE_USER_FIRST = &H80000000 +Const IME_REGWORD_STYLE_USER_LAST = &HFFFF + +' type of soft keyboard +' for Windows Tranditional Chinese Edition +Const SOFTKEYBOARD_TYPE_T1 = &H1 +' for Windows Simplified Chinese Edition +Const SOFTKEYBOARD_TYPE_C1 = &H2 + + + +' *********************************************************************** +' * * +' * mcx.h -- This module defines the 32-Bit Windows MCX APIs * +' * * +' * Copyright (c) 1990-1995, Microsoft Corp. All rights reserved. * +' * * +' ************************************************************************/ + + +Type MODEMDEVCAPS + dwActualSize As Long + dwRequiredSize As Long + dwDevSpecificOffset As Long + dwDevSpecificSize As Long + + ' product and version identification + dwModemProviderVersion As Long + dwModemManufacturerOffset As Long + dwModemManufacturerSize As Long + dwModemModelOffset As Long + dwModemModelSize As Long + dwModemVersionOffset As Long + dwModemVersionSize As Long + + ' local option capabilities + dwDialOptions As Long ' bitmap of supported values + dwCallSetupFailTimer As Long ' maximum in seconds + dwInactivityTimeout As Long ' maximum in seconds + dwSpeakerVolume As Long ' bitmap of supported values + dwSpeakerMode As Long ' bitmap of supported values + dwModemOptions As Long ' bitmap of supported values + dwMaxDTERate As Long ' maximum value in bit/s + dwMaxDCERate As Long ' maximum value in bit/s + + ' Variable portion for proprietary expansion + abVariablePortion(1) As Byte +End Type + +Type MODEMSETTINGS + dwActualSize As Long + dwRequiredSize As Long + dwDevSpecificOffset As Long + dwDevSpecificSize As Long + + ' static local options (read/write) + dwCallSetupFailTimer As Long ' seconds + dwInactivityTimeout As Long ' seconds + dwSpeakerVolume As Long ' level + dwSpeakerMode As Long ' mode + dwPreferredModemOptions As Long ' bitmap + + ' negotiated options (read only) for current or last call + dwNegotiatedModemOptions As Long ' bitmap + dwNegotiatedDCERate As Long ' bit/s + + ' Variable portion for proprietary expansion + abVariablePortion(1) As Byte +End Type + +' Dial Options +Const DIALOPTION_BILLING = &H40 ' Supports wait for bong "$" +Const DIALOPTION_QUIET = &H80 ' Supports wait for quiet "@" +Const DIALOPTION_DIALTONE = &H100 ' Supports wait for dial tone "W" + +' SpeakerVolume for MODEMDEVCAPS +Const MDMVOLFLAG_LOW = &H1 +Const MDMVOLFLAG_MEDIUM = &H2 +Const MDMVOLFLAG_HIGH = &H4 + +' SpeakerVolume for MODEMSETTINGS +Const MDMVOL_LOW = &H0 +Const MDMVOL_MEDIUM = &H1 +Const MDMVOL_HIGH = &H2 + +' SpeakerMode for MODEMDEVCAPS +Const MDMSPKRFLAG_OFF = &H1 +Const MDMSPKRFLAG_DIAL = &H2 +Const MDMSPKRFLAG_ON = &H4 +Const MDMSPKRFLAG_CALLSETUP = &H8 + +' SpeakerMode for MODEMSETTINGS +Const MDMSPKR_OFF = &H0 +Const MDMSPKR_DIAL = &H1 +Const MDMSPKR_ON = &H2 +Const MDMSPKR_CALLSETUP = &H3 + +' Modem Options +Const MDM_COMPRESSION = &H1 +Const MDM_ERROR_CONTROL = &H2 +Const MDM_FORCED_EC = &H4 +Const MDM_CELLULAR = &H8 +Const MDM_FLOWCONTROL_HARD = &H10 +Const MDM_FLOWCONTROL_SOFT = &H20 +Const MDM_CCITT_OVERRIDE = &H40 +Const MDM_SPEED_ADJUST = &H80 +Const MDM_TONE_DIAL = &H100 +Const MDM_BLIND_DIAL = &H200 +Const MDM_V23_OVERRIDE = &H400 + + + +' ***************************************************************************** * +' * shellapi.h - SHELL.DLL functions, types, and definitions * +' * * +' * Copyright (c) 1992-1995, Microsoft Corp. All rights reserved * +' * * +' \*****************************************************************************/ + +Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal HDROP As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long +Declare Function DragQueryPoint Lib "shell32.dll" Alias "DragQueryPoint" (ByVal HDROP As Long, lpPoint As POINTAPI) As Long +Declare Sub DragFinish Lib "shell32.dll" Alias "DragFinish" (ByVal hDrop As Long) +Declare Sub DragAcceptFiles Lib "shell32.dll" Alias "DragAcceptFiles" (ByVal hwnd As Long, ByVal fAccept As Long) +Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long +Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long + +Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long +Declare Function DuplicateIcon Lib "shell32.dll" Alias "DuplicateIcon" (ByVal hInst As Long, ByVal hIcon As Long) As Long +Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociateIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long +Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long + +Type DRAGINFO + uSize As Long ' init with sizeof(DRAGINFO) + pt As POINTAPI + fNC As Long + lpFileList As String + grfKeyState As Long +End Type + +' // AppBar stuff + +Const ABM_NEW = &H0 +Const ABM_REMOVE = &H1 +Const ABM_QUERYPOS = &H2 +Const ABM_SETPOS = &H3 +Const ABM_GETSTATE = &H4 +Const ABM_GETTASKBARPOS = &H5 +Const ABM_ACTIVATE = &H6 ' lParam == TRUE/FALSE means activate/deactivate +Const ABM_GETAUTOHIDEBAR = &H7 +Const ABM_SETAUTOHIDEBAR = &H8 ' this can fail at any time. MUST check the result + ' lParam = TRUE/FALSE Set/Unset + ' uEdge = what edge +Const ABM_WINDOWPOSCHANGED = &H9 + + +' these are put in the wparam of callback messages +Const ABN_STATECHANGE = &H0 +Const ABN_POSCHANGED = &H1 +Const ABN_FULLSCREENAPP = &H2 +Const ABN_WINDOWARRANGE = &H3 ' lParam == TRUE means hide + +' flags for get state + +Const ABS_AUTOHIDE = &H1 +Const ABS_ALWAYSONTOP = &H2 +Const ABE_LEFT = 0 +Const ABE_TOP = 1 +Const ABE_RIGHT = 2 +Const ABE_BOTTOM = 3 + +Type APPBARDATA + cbSize As Long + hwnd As Long + uCallbackMessage As Long + uEdge As Long + rc As Rect + lParam As Long ' message specific +End Type + +Declare Function SHAppBarMessage Lib "shell32.dll" Alias "SHAppBarMessage" (ByVal dwMessage As Long, pData As APPBARDATA) As Long + +' // EndAppBar + +Declare Function DoEnvironmentSubst Lib "shell32.dll" Alias "DoEnvironmentSubstA" (ByVal szString As String, ByVal cbString As Long) As Long +Declare Function FindEnvironmentString Lib "shell32.dll" Alias "FindEnvironmentStringA" (ByVal szEnvVar As String) As String + +Const EIRESID = -1 + +Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long + +' // Shell File Operations + +Const FO_MOVE = &H1 +Const FO_COPY = &H2 +Const FO_DELETE = &H3 +Const FO_RENAME = &H4 +Const FOF_MULTIDESTFILES = &H1 +Const FOF_CONFIRMMOUSE = &H2 +Const FOF_SILENT = &H4 ' don't create progress/report +Const FOF_RENAMEONCOLLISION = &H8 +Const FOF_NOCONFIRMATION = &H10 ' Don't prompt the user. +Const FOF_WANTMAPPINGHANDLE = &H20 ' Fill in SHFILEOPSTRUCT.hNameMappings + ' Must be freed using SHFreeNameMappings +Const FOF_ALLOWUNDO = &H40 +Const FOF_FILESONLY = &H80 ' on *.*, do only files +Const FOF_SIMPLEPROGRESS = &H100 ' means don't show names of files +Const FOF_NOCONFIRMMKDIR = &H200 ' don't confirm making any needed dirs + +Const PO_DELETE = &H13 ' printer is being deleted +Const PO_RENAME = &H14 ' printer is being renamed +Const PO_PORTCHANGE = &H20 ' port this printer connected to is being changed + ' if this id is set, the strings received by + ' the copyhook are a doubly-null terminated + ' list of strings. The first is the printer + ' name and the second is the printer port. +Const PO_REN_PORT = &H34 ' PO_RENAME and PO_PORTCHANGE at same time. + +' no POF_ flags currently defined + +' implicit parameters are: +' if pFrom or pTo are unqualified names the current directories are +' taken from the global current drive/directory settings managed +' by Get/SetCurrentDrive/Directory +' +' the global confirmation settings + +Type SHFILEOPSTRUCT + hwnd As Long + wFunc As Long + pFrom As String + pTo As String + fFlags As Integer + fAnyOperationsAborted As Long + hNameMappings As Long + lpszProgressTitle As String ' only used if FOF_SIMPLEPROGRESS +End Type + +Declare Function SHFileOperation Lib "shell32.dll" Alias " SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long + +Declare Sub SHFreeNameMappings Lib "shell32.dll" Alias "SHFreeNameMappings" (ByVal hNameMappings As Long) + +Type SHNAMEMAPPING + pszOldPath As String + pszNewPath As String + cchOldPath As Long + cchNewPath As Long +End Type + +' // End Shell File Operations + +' // Begin ShellExecuteEx and family + +' ShellExecute() and ShellExecuteEx() error codes + +' regular WinExec() codes +Const SE_ERR_FNF = 2 ' file not found +Const SE_ERR_PNF = 3 ' path not found +Const SE_ERR_ACCESSDENIED = 5 ' access denied +Const SE_ERR_OOM = 8 ' out of memory +Const SE_ERR_DLLNOTFOUND = 32 + + +' Note CLASSKEY overrides CLASSNAME +Const SEE_MASK_CLASSNAME = &H1 +Const SEE_MASK_CLASSKEY = &H3 +' Note INVOKEIDLIST overrides IDLIST +Const SEE_MASK_IDLIST = &H4 +Const SEE_MASK_INVOKEIDLIST = &HC +Const SEE_MASK_ICON = &H10 +Const SEE_MASK_HOTKEY = &H20 +Const SEE_MASK_NOCLOSEPROCESS = &H40 +Const SEE_MASK_CONNECTNETDRV = &H80 +Const SEE_MASK_FLAG_DDEWAIT = &H100 +Const SEE_MASK_DOENVSUBST = &H200 +Const SEE_MASK_FLAG_NO_UI = &H400 + +Type SHELLEXECUTEINFO + cbSize As Long + fMask As Long + hwnd As Long + lpVerb As String + lpFile As String + lpParameters As String + lpDirectory As String + nShow As Long + hInstApp As Long + ' Optional fields + lpIDList As Long + lpClass As String + hkeyClass As Long + dwHotKey As Long + hIcon As Long + hProcess As Long +End Type + +Declare Sub WinExecError Lib "shell32.dll" Alias "WinExecErrorA" (ByVal hwnd As Long, ByVal error As Long, ByVal lpstrFileName As String, ByVal lpstrTitle As String) + +' // End ShellExecuteEx and family + +' // Tray notification definitions + +Type NOTIFYICONDATA + cbSize As Long + hwnd As Long + uID As Long + uFlags As Long + uCallbackMessage As Long + hIcon As Long + szTip As String * 64 +End Type + +Const NIM_ADD = &H0 +Const NIM_MODIFY = &H1 +Const NIM_DELETE = &H2 + +Const NIF_MESSAGE = &H1 +Const NIF_ICON = &H2 +Const NIF_TIP = &H4 + +Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long + +' // End Tray Notification Icons + +' // Begin SHGetFileInfo + +' * The SHGetFileInfo API provides an easy way to get attributes +' * for a file given a pathname. +' * +' * PARAMETERS +' * +' * pszPath file name to get info about +' * dwFileAttributes file attribs, only used with SHGFI_USEFILEATTRIBUTES +' * psfi place to return file info +' * cbFileInfo size of structure +' * uFlags flags +' * +' * RETURN +' * TRUE if things worked +' */ + +Type SHFILEINFO + hIcon As Long ' out: icon + iIcon As Long ' out: icon index + dwAttributes As Long ' out: SFGAO_ flags + szDisplayName As String * MAX_PATH ' out: display name (or path) + szTypeName As String * 80 ' out: type name +End Type + +Const SHGFI_ICON = &H100 ' get icon +Const SHGFI_DISPLAYNAME = &H200 ' get display name +Const SHGFI_TYPENAME = &H400 ' get type name +Const SHGFI_ATTRIBUTES = &H800 ' get attributes +Const SHGFI_ICONLOCATION = &H1000 ' get icon location +Const SHGFI_EXETYPE = &H2000 ' return exe type +Const SHGFI_SYSICONINDEX = &H4000 ' get system icon index +Const SHGFI_LINKOVERLAY = &H8000 ' put a link overlay on icon +Const SHGFI_SELECTED = &H10000 ' show icon in selected state +Const SHGFI_LARGEICON = &H0 ' get large icon +Const SHGFI_SMALLICON = &H1 ' get small icon +Const SHGFI_OPENICON = &H2 ' get open icon +Const SHGFI_SHELLICONSIZE = &H4 ' get shell size icon +Const SHGFI_PIDL = &H8 ' pszPath is a pidl +Const SHGFI_USEFILEATTRIBUTES = &H10 ' use passed dwFileAttribute + +Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long + +Declare Function SHGetNewLinkInfo Lib "shell32.dll" Alias "SHGetNewLinkInfoA" (ByVal pszLinkto As String, ByVal pszDir As String, ByVal pszName As String, pfMustCopy As Long, ByVal uFlags As Long) As Long + +Const SHGNLI_PIDL = &H1 ' pszLinkTo is a pidl +Const SHGNLI_PREFIXNAME = &H2 ' Make name "Shortcut to xxx" + +' // End SHGetFileInfo + + +' Copyright (C) 1993 - 1995 Microsoft Corporation + +' Module Name: + +' winperf.h + +' Abstract: + +' Header file for the Performance Monitor data. + +' This file contains the definitions of the data structures returned +' by the Configuration Registry in response to a request for +' performance data. This file is used by both the Configuration +' Registry and the Performance Monitor to define their interface. +' The complete interface is described here, except for the name +' of the node to query in the registry. It is + +' HKEY_PERFORMANCE_DATA. + +' By querying that node with a subkey of "Global" the caller will +' retrieve the structures described here. + +' There is no need to RegOpenKey() the reserved handle HKEY_PERFORMANCE_DATA, +' but the caller should RegCloseKey() the handle so that network transports +' and drivers can be removed or installed (which cannot happen while +' they are open for monitoring.) Remote requests must first +' RegConnectRegistry(). + +' --*/ + +' Data structure definitions. + +' In order for data to be returned through the Configuration Registry +' in a system-independent fashion, it must be self-describing. + +' In the following, all offsets are in bytes. + +' +' Data is returned through the Configuration Registry in a +' a data block which begins with a _PERF_DATA_BLOCK structure. +' + +' The _PERF_DATA_BLOCK structure is followed by NumObjectTypes of +' data sections, one for each type of object measured. Each object +' type section begins with a _PERF_OBJECT_TYPE structure. + + +' ***************************************************************************** * +' * winver.h - Version management functions, types, and definitions * +' * * +' * Include file for VER.DLL. This library is * +' * designed to allow version stamping of Windows executable files* +' * and of special .VER files for DOS executable files. * +' * * +' * Copyright (c) 1993, Microsoft Corp. All rights reserved * +' * * +' \*****************************************************************************/ + +' ----- Symbols ----- +Const VS_VERSION_INFO = 1 +Const VS_USER_DEFINED = 100 + +' ----- VS_VERSION.dwFileFlags ----- +Const VS_FFI_SIGNATURE = &HFEEF04BD +Const VS_FFI_STRUCVERSION = &H10000 +Const VS_FFI_FILEFLAGSMASK = &H3F& + +' ----- VS_VERSION.dwFileFlags ----- +Const VS_FF_DEBUG = &H1& +Const VS_FF_PRERELEASE = &H2& +Const VS_FF_PATCHED = &H4& +Const VS_FF_PRIVATEBUILD = &H8& +Const VS_FF_INFOINFERRED = &H10& +Const VS_FF_SPECIALBUILD = &H20& + +' ----- VS_VERSION.dwFileOS ----- +Const VOS_UNKNOWN = &H0& +Const VOS_DOS = &H10000 +Const VOS_OS216 = &H20000 +Const VOS_OS232 = &H30000 +Const VOS_NT = &H40000 + +Const VOS__BASE = &H0& +Const VOS__WINDOWS16 = &H1& +Const VOS__PM16 = &H2& +Const VOS__PM32 = &H3& +Const VOS__WINDOWS32 = &H4& + +Const VOS_DOS_WINDOWS16 = &H10001 +Const VOS_DOS_WINDOWS32 = &H10004 +Const VOS_OS216_PM16 = &H20002 +Const VOS_OS232_PM32 = &H30003 +Const VOS_NT_WINDOWS32 = &H40004 + +' ----- VS_VERSION.dwFileType ----- +Const VFT_UNKNOWN = &H0& +Const VFT_APP = &H1& +Const VFT_DLL = &H2& +Const VFT_DRV = &H3& +Const VFT_FONT = &H4& +Const VFT_VXD = &H5& +Const VFT_STATIC_LIB = &H7& + +' ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV ----- +Const VFT2_UNKNOWN = &H0& +Const VFT2_DRV_PRINTER = &H1& +Const VFT2_DRV_KEYBOARD = &H2& +Const VFT2_DRV_LANGUAGE = &H3& +Const VFT2_DRV_DISPLAY = &H4& +Const VFT2_DRV_MOUSE = &H5& +Const VFT2_DRV_NETWORK = &H6& +Const VFT2_DRV_SYSTEM = &H7& +Const VFT2_DRV_INSTALLABLE = &H8& +Const VFT2_DRV_SOUND = &H9& +Const VFT2_DRV_COMM = &HA& +Const VFT2_DRV_INPUTMETHOD = &HB& + +' ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- +Const VFT2_FONT_RASTER = &H1& +Const VFT2_FONT_VECTOR = &H2& +Const VFT2_FONT_TRUETYPE = &H3& + +' ----- VerFindFile() flags ----- +Const VFFF_ISSHAREDFILE = &H1 + +Const VFF_CURNEDEST = &H1 +Const VFF_FILEINUSE = &H2 +Const VFF_BUFFTOOSMALL = &H4 + +' ----- VerInstallFile() flags ----- +Const VIFF_FORCEINSTALL = &H1 +Const VIFF_DONTDELETEOLD = &H2 + +Const VIF_TEMPFILE = &H1& +Const VIF_MISMATCH = &H2& +Const VIF_SRCOLD = &H4& + +Const VIF_DIFFLANG = &H8& +Const VIF_DIFFCODEPG = &H10& +Const VIF_DIFFTYPE = &H20& + +Const VIF_WRITEPROT = &H40& +Const VIF_FILEINUSE = &H80& +Const VIF_OUTOFSPACE = &H100& +Const VIF_ACCESSVIOLATION = &H200& +Const VIF_SHARINGVIOLATION = &H400& +Const VIF_CANNOTCREATE = &H800& +Const VIF_CANNOTDELETE = &H1000& +Const VIF_CANNOTRENAME = &H2000& +Const VIF_CANNOTDELETECUR = &H4000& +Const VIF_OUTOFMEMORY = &H8000& + +Const VIF_CANNOTREADSRC = &H10000 +Const VIF_CANNOTREADDST = &H20000 +Const VIF_BUFFTOOSMALL = &H40000 + +' ----- Types and structures ----- + +Type VS_FIXEDFILEINFO + dwSignature As Long + dwStrucVersion As Long ' e.g. 0x00000042 = "0.42" + dwFileVersionMS As Long ' e.g. 0x00030075 = "3.75" + dwFileVersionLS As Long ' e.g. 0x00000031 = "0.31" + dwProductVersionMS As Long ' e.g. 0x00030010 = "3.10" + dwProductVersionLS As Long ' e.g. 0x00000031 = "0.31" + dwFileFlagsMask As Long ' = 0x3F for version "0.42" + dwFileFlags As Long ' e.g. VFF_DEBUG Or VFF_PRERELEASE + dwFileOS As Long ' e.g. VOS_DOS_WINDOWS16 + dwFileType As Long ' e.g. VFT_DRIVER + dwFileSubtype As Long ' e.g. VFT2_DRV_KEYBOARD + dwFileDateMS As Long ' e.g. 0 + dwFileDateLS As Long ' e.g. 0 +End Type + +' ----- Function prototypes ----- + +Declare Function VerFindFile Lib "version.dll" Alias "VerFindFileA" (ByVal uFlags As Long, ByVal szFileName As String, ByVal szWinDir As String, ByVal szAppDir As String, ByVal szCurDir As String, lpuCurDirLen As Long, ByVal szDestDir As String, lpuDestDirLen As Long) As Long +Declare Function VerInstallFile Lib "version.dll" Alias " VerInstallFileA" (ByVal uFlags As Long, ByVal szSrcFileName As String, ByVal szDestFileName As String, ByVal szSrcDir As String, ByVal szDestDir As String, ByVal szCurDir As String, ByVal szTmpFile As String, lpuTmpFileLen As Long) As Long + +' Returns size of version info in Bytes +Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long + +' Read version info into buffer +' /* Length of buffer for info * +' /* Information from GetFileVersionSize * +' /* Filename of version stamped file * +Declare Function GetFileVersionInfo Lib "version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwHandle As Long, ByVal dwLen As Long, lpData As Any) As Long +Declare Function VerLanguageName Lib "kernel32" Alias "VerLanguageNameA" (ByVal wLang As Long, ByVal szLang As String, ByVal nSize As Long) As Long +Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValue" (pBlock As Any, ByVal lpSubBlock As String, ByVal lplpBuffer As Long, puLen As Long) As Long + +' *********************************************************************** +' * * +' * winbase.h -- This module defines the 32-Bit Windows Base APIs * +' * * +' * Copyright (c) 1990-1995, Microsoft Corp. All rights reserved. * +' * * +' ************************************************************************/ +Type ICONMETRICS + cbSize As Long + iHorzSpacing As Long + iVertSpacing As Long + iTitleWrap As Long + lfFont As LOGFONT +End Type + +Type HELPINFO + cbSize As Long + iContextType As Long + iCtrlId As Long + hItemHandle As Long + dwContextId As Long + MousePos As POINTAPI +End Type + +Type ANIMATIONINFO + cbSize As Long + iMinAnimate As Long +End Type + +Type MINIMIZEDMETRICS + cbSize As Long + iWidth As Long + iHorzGap As Long + iVertGap As Long + iArrange As Long + lfFont As LOGFONT +End Type + +' Define API decoration for direct importing of DLL references. +Declare Function HeapValidate Lib "kernel32" Alias "HeapValidate" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long +Declare Function HeapCompact Lib "kernel32" Alias "HeapCompact" (ByVal hHeap As Long, ByVal dwFlags As Long) As Long + +Const PROCESS_HEAP_REGION = &H1 +Const PROCESS_HEAP_UNCOMMITTED_RANGE = &H2 +Const PROCESS_HEAP_ENTRY_BUSY = &H4 +Const PROCESS_HEAP_ENTRY_MOVEABLE = &H10 +Const PROCESS_HEAP_ENTRY_DDESHARE = &H20 + +Declare Function HeapLock Lib "kernel32" Alias "HeapLock" (ByVal hHeap As Long) As Long +Declare Function HeapUnlock Lib "kernel32" Alias "HeapUnlock" (ByVal hHeap As Long) As Long + +' GetBinaryType return values. + +Const SCS_32BIT_BINARY = 0 +Const SCS_DOS_BINARY = 1 +Const SCS_WOW_BINARY = 2 +Const SCS_PIF_BINARY = 3 +Const SCS_POSIX_BINARY = 4 +Const SCS_OS216_BINARY = 5 + +Declare Function GetBinaryType Lib "kernel32" Alias "GetBinaryTypeA" (ByVal lpApplicationName As String, lpBinaryType As Long) As Long + +Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long +Declare Function GetProcessAffinityMask Lib "kernel32" Alias "GetProcessAffinityMask" (ByVal hProcess As Long, lpProcessAffinityMask As Long, SystemAffinityMask As Long) As Long + +' Logon Support APIs + +Const LOGON32_LOGON_INTERACTIVE = 2 +Const LOGON32_LOGON_BATCH = 4 +Const LOGON32_LOGON_SERVICE = 5 + +Const LOGON32_PROVIDER_DEFAULT = 0 +Const LOGON32_PROVIDER_WINNT35 = 1 + +Declare Function LogonUser Lib "kernel32" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, phToken As Long) As Long + +Declare Function ImpersonateLoggedOnUser Lib "kernel32" Alias "ImpersonateLoggedOnUser" (ByVal hToken As Long) As Long +Declare Function CreateProcessAsUser Lib "advapi32.dll" Alias "CreateProcessAsUserA" (ByVal hToken As Long, ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As SECURITY_ATTRIBUTES, ByVal lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As String, ByVal lpCurrentDirectory As String, ByVal lpStartupInfo As STARTUPINFO, ByVal lpProcessInformation As PROCESS_INFORMATION) As Long + +' Performance counter API's + +Type OSVERSIONINFO + dwOSVersionInfoSize As Long + dwMajorVersion As Long + dwMinorVersion As Long + dwBuildNumber As Long + dwPlatformId As Long + szCSDVersion As String * 128 ' Maintenance string for PSS usage +End Type + +' dwPlatformId defines: +' +Const VER_PLATFORM_WIN32s = 0 +Const VER_PLATFORM_WIN32_WINDOWS = 1 +Const VER_PLATFORM_WIN32_NT = 2 + +Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long + +' Power Management APIs + +Const AC_LINE_OFFLINE = &H0 +Const AC_LINE_ONLINE = &H1 +Const AC_LINE_BACKUP_POWER = &H2 +Const AC_LINE_UNKNOWN = &HFF +Const BATTERY_FLAG_HIGH = &H1 +Const BATTERY_FLAG_LOW = &H2 +Const BATTERY_FLAG_CRITICAL = &H4 +Const BATTERY_FLAG_CHARGING = &H8 +Const BATTERY_FLAG_NO_BATTERY = &H80 +Const BATTERY_FLAG_UNKNOWN = &HFF +Const BATTERY_PERCENTAGE_UNKNOWN = &HFF +Const BATTERY_LIFE_UNKNOWN = &HFFFF + +Type SYSTEM_POWER_STATUS + ACLineStatus As Byte + BatteryFlag As Byte + BatteryLifePercent As Byte + Reserved1 As Byte + BatteryLifeTime As Long + BatteryFullLifeTime As Long +End Type + +Declare Function GetSystemPowerStatus Lib "kernel32" Alias "GetSystemPowerStatus" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long +Declare Function SetSystemPowerState Lib "kernel32" Alias "SetSystemPowerState" (ByVal fSuspend As Long, ByVal fForce As Long) As Long + +' * commdlg.h -- This module defines the 32-Bit Common Dialog APIs * + +Type OPENFILENAME + lStructSize As Long + hwndOwner As Long + hInstance As Long + lpstrFilter As String + lpstrCustomFilter As String + nMaxCustFilter As Long + nFilterIndex As Long + lpstrFile As String + nMaxFile As Long + lpstrFileTitle As String + nMaxFileTitle As Long + lpstrInitialDir As String + lpstrTitle As String + flags As Long + nFileOffset As Integer + nFileExtension As Integer + lpstrDefExt As String + lCustData As Long + lpfnHook As Long + lpTemplateName As String +End Type + +Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long + +Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long + +Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer + +Const OFN_READONLY = &H1 +Const OFN_OVERWRITEPROMPT = &H2 +Const OFN_HIDEREADONLY = &H4 +Const OFN_NOCHANGEDIR = &H8 +Const OFN_SHOWHELP = &H10 +Const OFN_ENABLEHOOK = &H20 +Const OFN_ENABLETEMPLATE = &H40 +Const OFN_ENABLETEMPLATEHANDLE = &H80 +Const OFN_NOVALIDATE = &H100 +Const OFN_ALLOWMULTISELECT = &H200 +Const OFN_EXTENSIONDIFFERENT = &H400 +Const OFN_PATHMUSTEXIST = &H800 +Const OFN_FILEMUSTEXIST = &H1000 +Const OFN_CREATEPROMPT = &H2000 +Const OFN_SHAREAWARE = &H4000 +Const OFN_NOREADONLYRETURN = &H8000 +Const OFN_NOTESTFILECREATE = &H10000 +Const OFN_NONETWORKBUTTON = &H20000 +Const OFN_NOLONGNAMES = &H40000 ' force no long names for 4.x modules +Const OFN_EXPLORER = &H80000 ' new look commdlg +Const OFN_NODEREFERENCELINKS = &H100000 +Const OFN_LONGNAMES = &H200000 ' force long names for 3.x modules + +Const OFN_SHAREFALLTHROUGH = 2 +Const OFN_SHARENOWARN = 1 +Const OFN_SHAREWARN = 0 + +Type NMHDR + hwndFrom As Long + idfrom As Long + code As Long +End Type + +Type OFNOTIFY + hdr As NMHDR + lpOFN As OPENFILENAME + pszFile As String ' May be NULL +End Type + +Const CDM_FIRST = (WM_USER + 100) +Const CDM_LAST = (WM_USER + 200) +Const CDM_GETSPEC = (CDM_FIRST + &H0) +Const CDM_GETFILEPATH = (CDM_FIRST + &H1) +Const CDM_GETFOLDERPATH = (CDM_FIRST + &H2) +Const CDM_GETFOLDERIDLIST = (CDM_FIRST + &H3) +Const CDM_SETCONTROLTEXT = (CDM_FIRST + &H4) +Const CDM_HIDECONTROL = (CDM_FIRST + &H5) +Const CDM_SETDEFEXT = (CDM_FIRST + &H6) + +Type CHOOSECOLOR + lStructSize As Long + hwndOwner As Long + hInstance As Long + rgbResult As Long + lpCustColors As Long + flags As Long + lCustData As Long + lpfnHook As Long + lpTemplateName As String +End Type + +Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long + +Const CC_RGBINIT = &H1 +Const CC_FULLOPEN = &H2 +Const CC_PREVENTFULLOPEN = &H4 +Const CC_SHOWHELP = &H8 +Const CC_ENABLEHOOK = &H10 +Const CC_ENABLETEMPLATE = &H20 +Const CC_ENABLETEMPLATEHANDLE = &H40 +Const CC_SOLIDCOLOR = &H80 +Const CC_ANYCOLOR = &H100 + +Type FINDREPLACE + lStructSize As Long ' size of this struct 0x20 + hwndOwner As Long ' handle to owner's window + hInstance As Long ' instance handle of.EXE that + ' contains cust. dlg. template + flags As Long ' one or more of the FR_?? + lpstrFindWhat As String ' ptr. to search string + lpstrReplaceWith As String ' ptr. to replace string + wFindWhatLen As Integer ' size of find buffer + wReplaceWithLen As Integer ' size of replace buffer + lCustData As Long ' data passed to hook fn. + lpfnHook As Long ' ptr. to hook fn. or NULL + lpTemplateName As String ' custom template name +End Type + +Const FR_DOWN = &H1 +Const FR_WHOLEWORD = &H2 +Const FR_MATCHCASE = &H4 +Const FR_FINDNEXT = &H8 +Const FR_REPLACE = &H10 +Const FR_REPLACEALL = &H20 +Const FR_DIALOGTERM = &H40 +Const FR_SHOWHELP = &H80 +Const FR_ENABLEHOOK = &H100 +Const FR_ENABLETEMPLATE = &H200 +Const FR_NOUPDOWN = &H400 +Const FR_NOMATCHCASE = &H800 +Const FR_NOWHOLEWORD = &H1000 +Const FR_ENABLETEMPLATEHANDLE = &H2000 +Const FR_HIDEUPDOWN = &H4000 +Const FR_HIDEMATCHCASE = &H8000 +Const FR_HIDEWHOLEWORD = &H10000 + +Declare Function FindText Lib "comdlg32.dll" Alias "FindTextA " (pFindreplace As FINDREPLACE) As Long + +Declare Function ReplaceText Lib "comdlg32.dll" Alias "ReplaceTextA" (pFindreplace As FINDREPLACE) As Long + +Type CHOOSEFONT + lStructSize As Long + hwndOwner As Long ' caller's window handle + hdc As Long ' printer DC/IC or NULL + lpLogFont As Long + iPointSize As Long ' 10 * size in points of selected font + flags As Long ' enum. type flags + rgbColors As Long ' returned text color + lCustData As Long ' data passed to hook fn. + lpfnHook As Long ' ptr. to hook function + lpTemplateName As String ' custom template name + hInstance As Long ' instance handle of.EXE that + ' contains cust. dlg. template + lpszStyle As String ' return the style field here + ' must be LF_FACESIZE or bigger + nFontType As Integer ' same value reported to the EnumFonts + ' call back with the extra FONTTYPE_ + ' bits added + MISSING_ALIGNMENT As Integer + nSizeMin As Long ' minimum pt size allowed & + nSizeMax As Long ' max pt size allowed if + ' CF_LIMITSIZE is used +End Type + +Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As CHOOSEFONT) As Long + +Const CF_SCREENFONTS = &H1 +Const CF_PRINTERFONTS = &H2 +Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS) +Const CF_SHOWHELP = &H4& +Const CF_ENABLEHOOK = &H8& +Const CF_ENABLETEMPLATE = &H10& +Const CF_ENABLETEMPLATEHANDLE = &H20& +Const CF_INITTOLOGFONTSTRUCT = &H40& +Const CF_USESTYLE = &H80& +Const CF_EFFECTS = &H100& +Const CF_APPLY = &H200& +Const CF_ANSIONLY = &H400& +Const CF_SCRIPTSONLY = CF_ANSIONLY +Const CF_NOVECTORFONTS = &H800& +Const CF_NOOEMFONTS = CF_NOVECTORFONTS +Const CF_NOSIMULATIONS = &H1000& +Const CF_LIMITSIZE = &H2000& +Const CF_FIXEDPITCHONLY = &H4000& +Const CF_WYSIWYG = &H8000 ' must also have CF_SCREENFONTS CF_PRINTERFONTS +Const CF_FORCEFONTEXIST = &H10000 +Const CF_SCALABLEONLY = &H20000 +Const CF_TTONLY = &H40000 +Const CF_NOFACESEL = &H80000 +Const CF_NOSTYLESEL = &H100000 +Const CF_NOSIZESEL = &H200000 +Const CF_SELECTSCRIPT = &H400000 +Const CF_NOSCRIPTSEL = &H800000 +Const CF_NOVERTFONTS = &H1000000 + +Const SIMULATED_FONTTYPE = &H8000 +Const PRINTER_FONTTYPE = &H4000 +Const SCREEN_FONTTYPE = &H2000 +Const BOLD_FONTTYPE = &H100 +Const ITALIC_FONTTYPE = &H200 +Const REGULAR_FONTTYPE = &H400 + +Const WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1) +Const WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101) +Const WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102) + +Const LBSELCHSTRING = "commdlg_LBSelChangedNotify" +Const SHAREVISTRING = "commdlg_ShareViolation" +Const FILEOKSTRING = "commdlg_FileNameOK" +Const COLOROKSTRING = "commdlg_ColorOK" +Const SETRGBSTRING = "commdlg_SetRGBColor" +Const HELPMSGSTRING = "commdlg_help" +Const FINDMSGSTRING = "commdlg_FindReplace" + +Const CD_LBSELNOITEMS = -1 +Const CD_LBSELCHANGE = 0 +Const CD_LBSELSUB = 1 +Const CD_LBSELADD = 2 + +Type PRINTDLG + lStructSize As Long + hwndOwner As Long + hDevMode As Long + hDevNames As Long + hdc As Long + flags As Long + nFromPage As Integer + nToPage As Integer + nMinPage As Integer + nMaxPage As Integer + nCopies As Integer + hInstance As Long + lCustData As Long + lpfnPrintHook As Long + lpfnSetupHook As Long + lpPrintTemplateName As String + lpSetupTemplateName As String + hPrintTemplate As Long + hSetupTemplate As Long +End Type + +Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PRINTDLG) As Long + +Const PD_ALLPAGES = &H0 +Const PD_SELECTION = &H1 +Const PD_PAGENUMS = &H2 +Const PD_NOSELECTION = &H4 +Const PD_NOPAGENUMS = &H8 +Const PD_COLLATE = &H10 +Const PD_PRINTTOFILE = &H20 +Const PD_PRINTSETUP = &H40 +Const PD_NOWARNING = &H80 +Const PD_RETURNDC = &H100 +Const PD_RETURNIC = &H200 +Const PD_RETURNDEFAULT = &H400 +Const PD_SHOWHELP = &H800 +Const PD_ENABLEPRINTHOOK = &H1000 +Const PD_ENABLESETUPHOOK = &H2000 +Const PD_ENABLEPRINTTEMPLATE = &H4000 +Const PD_ENABLESETUPTEMPLATE = &H8000 +Const PD_ENABLEPRINTTEMPLATEHANDLE = &H10000 +Const PD_ENABLESETUPTEMPLATEHANDLE = &H20000 +Const PD_USEDEVMODECOPIES = &H40000 +Const PD_USEDEVMODECOPIESANDCOLLATE = &H40000 +Const PD_DISABLEPRINTTOFILE = &H80000 +Const PD_HIDEPRINTTOFILE = &H100000 +Const PD_NONETWORKBUTTON = &H200000 + +Type DEVNAMES + wDriverOffset As Integer + wDeviceOffset As Integer + wOutputOffset As Integer + wDefault As Integer +End Type + +Const DN_DEFAULTPRN = &H1 + +Declare Function CommDlgExtendedError Lib "comdlg32.dll" Alias "CommDlgExtendedError" () As Long + +Const WM_PSD_PAGESETUPDLG = (WM_USER) +Const WM_PSD_FULLPAGERECT = (WM_USER + 1) +Const WM_PSD_MINMARGINRECT = (WM_USER + 2) +Const WM_PSD_MARGINRECT = (WM_USER + 3) +Const WM_PSD_GREEKTEXTRECT = (WM_USER + 4) +Const WM_PSD_ENVSTAMPRECT = (WM_USER + 5) +Const WM_PSD_YAFULLPAGERECT = (WM_USER + 6) + +Type PAGESETUPDLG + lStructSize As Long + hwndOwner As Long + hDevMode As Long + hDevNames As Long + flags As Long + ptPaperSize As POINTAPI + rtMinMargin As Rect + rtMargin As Rect + hInstance As Long + lCustData As Long + lpfnPageSetupHook As Long + lpfnPagePaintHook As Long + lpPageSetupTemplateName As String + hPageSetupTemplate As Long +End Type + +Declare Function PageSetupDlg Lib "comdlg32.dll" Alias "PageSetupDlgA" (pPagesetupdlg As PAGESETUPDLG) As Long + +Const PSD_DEFAULTMINMARGINS = &H0 ' default (printer's) +Const PSD_INWININIINTLMEASURE = &H0 ' 1st of 4 possible + +Const PSD_MINMARGINS = &H1 ' use caller's +Const PSD_MARGINS = &H2 ' use caller's +Const PSD_INTHOUSANDTHSOFINCHES = &H4 ' 2nd of 4 possible +Const PSD_INHUNDREDTHSOFMILLIMETERS = &H8 ' 3rd of 4 possible +Const PSD_DISABLEMARGINS = &H10 +Const PSD_DISABLEPRINTER = &H20 +Const PSD_NOWARNING = &H80 ' must be same as PD_* +Const PSD_DISABLEORIENTATION = &H100 +Const PSD_RETURNDEFAULT = &H400 ' must be same as PD_* +Const PSD_DISABLEPAPER = &H200 +Const PSD_SHOWHELP = &H800 ' must be same as PD_* +Const PSD_ENABLEPAGESETUPHOOK = &H2000 ' must be same as PD_* +Const PSD_ENABLEPAGESETUPTEMPLATE = &H8000 ' must be same as PD_* +Const PSD_ENABLEPAGESETUPTEMPLATEHANDLE = &H20000 ' must be same as PD_* +Const PSD_ENABLEPAGEPAINTHOOK = &H40000 +Const PSD_DISABLEPAGEPAINTING = &H80000 + +Declare Function DdeInitialize Lib "user32" Alias "DdeInitializeA" (pidInst As Long, ByVal pfnCallback As Long, ByVal afCmd As Long, ByVal ulRes As Long) As Integer +Declare Function SetServiceBits Lib "advapi32" Alias "SetServiceBits" (ByVal hServiceStatus As Long, ByVal dwServiceBits As Long, ByVal bSetBitsOn As Boolean, ByVal bUpdateImmediately As Boolean) As Long +Declare Function CopyLZFile Lib "lz32" Alias "CopyLZFile" (ByVal n1 As Long, ByVal n2 As Long) As Long +Declare Function LZStart Lib "lz32" Alias "LZStart" () As Long +Declare Sub LZDone Lib "lz32" Alias "LZDone" () +Declare Function mciGetYieldProc Lib "winmm" Alias "mciGetYieldProc" (ByVal mciId As Long, pdwYieldData As Long) As Long +Declare Function mciSetYieldProc Lib "winmm" Alias "mciSetYieldProc" (ByVal mciId As Long, ByVal fpYieldProc As Long, ByVal dwYieldData As Long) As Long +Declare Function midiOutGetNumDevs Lib "winmm" Alias "midiOutGetNumDevs" () As Integer +Declare Function mmioInstallIOProcA Lib "winmm" Alias "mmioInstallIOProcA" (ByVal fccIOProc As String * 4, ByVal pIOProc As Long, ByVal dwFlags As Long) As Long +Declare Function CommandLineToArgv Lib "shell32" Alias "CommandLineToArgvW" (ByVal lpCmdLine As String, pNumArgs As Integer) As Long +Declare Function IsTextUnicode Lib "advapi32" Alias "IsTextUnicode" (lpBuffer As Any, ByVal cb As Long, lpi As Long) As Long +Declare Function NotifyChangeEventLog Lib "advapi32" Alias "NotifyChangeEventLog" (ByVal hEventLog As Long, ByVal hEvent As Long) As Long +Declare Function SetThreadToken Lib "advapi32" Alias "SetThreadToken" (Thread As Long, ByVal Token As Long) As Long + +Type COMMCONFIG + dwSize As Long + wVersion As Integer + wReserved As Integer + dcbx As DCB + dwProviderSubType As Long + dwProviderOffset As Long + dwProviderSize As Long + wcProviderData As Byte +End Type + +Declare Function CommConfigDialog Lib "kernel32" Alias "CommConfigDialogA" (ByVal lpszName As String, ByVal hWnd As Long, lpCC As COMMCONFIG) As Long +Declare Function CreateIoCompletionPort Lib "kernel32" Alias "CreateIoCompletionPort" (ByVal FileHandle As Long, ByVal ExistingCompletionPort As Long, ByVal CompletionKey As Long, ByVal NumberOfConcurrentThreads As Long) As Long +Declare Function DisableThreadLibraryCalls Lib "kernel32" Alias "DisableThreadLibraryCalls" (ByVal hLibModule As Long) As Long +Declare Function EnumResourceLanguages Lib "kernel32" Alias "EnumResourceLanguagesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function EnumResourceNames Lib "kernel32" Alias "EnumResourceNamesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function EnumResourceTypes Lib "kernel32" Alias "EnumResourceTypesA" (ByVal hModule As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function FreeEnvironmentStrings Lib "kernel32" Alias "FreeEnvironmentStringsA" (ByVal lpsz As String) As Long + +Declare Sub FreeLibraryAndExitThread Lib "kernel32" Alias "FreeLibraryAndExitThread" (ByVal hLibModule As Long, ByVal dwExitCode As Long) +Declare Function FreeResource Lib "kernel32" Alias "FreeResource" (ByVal hResData As Long) As Long +Declare Function GetCommConfig Lib "kernel32" Alias "GetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, lpdwSize As Long) As Long +Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, lpFileSizeHigh As Long) As Long +Declare Function GetDefaultCommConfig Lib "kernel32" Alias "GetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, lpdwSize As Long) As Long +Declare Function GetHandleInformation Lib "kernel32" Alias "GetHandleInformation" (ByVal hObject As Long, lpdwFlags As Long) As Long +Declare Function GetProcessHeaps Lib "kernel32" Alias "GetProcessHeaps" (ByVal NumberOfHeaps As Long, ProcessHeaps As Long) As Long +Declare Function GetProcessWorkingSetSize Lib "kernel32" Alias "GetProcessWorkingSetSize" (ByVal hProcess As Long, lpMinimumWorkingSetSize As Long, lpMaximumWorkingSetSize As Long) As Long +Declare Function GetQueuedCompletionStatus Lib "kernel32" Alias "GetQueuedCompletionStatus" (ByVal CompletionPort As Long, lpNumberOfBytesTransferred As Long, lpCompletionKey As Long, lpOverlapped As Long, ByVal dwMilliseconds As Long) As Long +Declare Function GetSystemTimeAdjustment Lib "kernel32" Alias "GetSystemTimeAdjustment" (lpTimeAdjustment As Long, lpTimeIncrement As Long, lpTimeAdjustmentDisabled As Long) As Long + +Declare Function GlobalCompact Lib "kernel32" Alias "GlobalCompact" (ByVal dwMinFree As Long) As Long +Declare Sub GlobalFix Lib "kernel32" Alias "GlobalFix" (ByVal hMem As Long) +Declare Sub GlobalUnfix Lib "kernel32" Alias "GlobalUnfix" (ByVal hMem As Long) +Declare Function GlobalWire Lib "kernel32" Alias "GlobalWire" (ByVal hMem As Long) As Long +Declare Function GlobalUnWire Lib "kernel32" Alias "GlobalUnWire" (ByVal hMem As Long) As Long + +Declare Function IsBadCodePtr Lib "kernel32" Alias "IsBadCodePtr" (ByVal lpfn As Long) As Long +Declare Function LocalCompact Lib "kernel32" Alias "LocalCompact" (ByVal uMinFree As Long) As Long +Declare Function LocalShrink Lib "kernel32" Alias "LocalShrink" (ByVal hMem As Long, ByVal cbNewSize As Long) As Long +Declare Sub ZeroMemory Lib "KERNEL32" Alias "RtlMoveMemory" (dest As Any, ByVal numBytes As Long) +Declare Function ReadFileEx Lib "kernel32" Alias "ReadFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long + +Declare Function SetCommConfig Lib "kernel32" Alias "SetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long +Declare Function SetDefaultCommConfig Lib "kernel32" Alias "SetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long +Declare Sub SetFileApisToANSI Lib "kernel32" Alias "SetFileApisToANSI" () +Declare Function SetHandleInformation Lib "kernel32" Alias "SetHandleInformation" (ByVal hObject As Long, ByVal dwMask As Long, ByVal dwFlags As Long) As Long +Declare Function SetProcessWorkingSetSize Lib "kernel32" Alias "SetProcessWorkingSetSize" (ByVal hProcess As Long, ByVal dwMinimumWorkingSetSize As Long, ByVal dwMaximumWorkingSetSize As Long) As Long + +Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long +Declare Function lstrcpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As String, ByVal lpString2 As String, ByVal iMaxLength As Long) As Long +Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long +Declare Function SetSystemTimeAdjustment Lib "kernel32" Alias "SetSystemTimeAdjustment" (ByVal dwTimeAdjustment As Long, ByVal bTimeAdjustmentDisabled As Boolean) As Long +Declare Function SetThreadAffinityMask Lib "kernel32" Alias "SetThreadAffinityMask" (ByVal hThread As Long, ByVal dwThreadAffinityMask As Long) As Long +Declare Function SetUnhandledExceptionFilter Lib "kernel32" Alias "SetUnhandledExceptionFilter" (ByVal lpTopLevelExceptionFilter As Long) As Long +Declare Function SystemTimeToTzSpecificLocalTime Lib "kernel32" Alias "SystemTimeToTzSpecificLocalTime" (lpTimeZoneInformation As TIME_ZONE_INFORMATION, lpUniversalTime As SYSTEMTIME, lpLocalTime As SYSTEMTIME) As Long +Declare Function WriteFileEx Lib "kernel32" Alias "WriteFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long + +Type PIXELFORMATDESCRIPTOR + nSize As Integer + nVersion As Integer + dwFlags As Long + iPixelType As Byte + cColorBits As Byte + cRedBits As Byte + cRedShift As Byte + cGreenBits As Byte + cGreenShift As Byte + cBlueBits As Byte + cBlueShift As Byte + cAlphaBits As Byte + cAlphaShift As Byte + cAccumBits As Byte + cAccumRedBits As Byte + cAccumGreenBits As Byte + cAccumBlueBits As Byte + cAccumAlphaBits As Byte + cDepthBits As Byte + cStencilBits As Byte + cAuxBuffers As Byte + iLayerType As Byte + bReserved As Byte + dwLayerMask As Long + dwVisibleMask As Long + dwDamageMask As Long +End Type + +Declare Function ChoosePixelFormat Lib "gdi32" Alias "ChoosePixelFormat" (ByVal hDC As Long, pPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long +Declare Function CreateDIBSection Lib "gdi32" Alias "CreateDIBSection" (ByVal hDC As Long, pBitmapInfo As BITMAPINFO, ByVal un As Long, ByVal lplpVoid As Long, ByVal handle As Long, ByVal dw As Long) As Long +Declare Function DescribePixelFormat Lib "gdi32" Alias "DescribePixelFormat" (ByVal hDC As Long, ByVal n As Long, ByVal un As Long, lpPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long +Declare Function EndDoc Lib "gdi32" Alias "EndDoc" (ByVal hDC As Long) As Long +Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long +Declare Function EnumMetaFile Lib "gdi32" Alias "EnumMetaFile" (ByVal hDC As Long, ByVal hMetafile As Long, ByVal lpMFEnumProc As Long, ByVal lParam As Long) As Long +Declare Function EnumObjects Lib "gdi32" Alias "EnumObjects" (ByVal hDC As Long, ByVal n As Long, ByVal lpGOBJEnumProc As Long, lpVoid As Any) As Long + +Declare Function FixBrushOrgEx Lib "gdi32" Alias "FixBrushOrgEx" (ByVal hDC As Long, ByVal n1 As Long, ByVal n2 As Long, lpPoint As POINTAPI) As Long +Declare Function GetBrushOrgEx Lib "gdi32" Alias "GetBrushOrgEx" (ByVal hDC As Long, lpPoint As POINTAPI) As Long +Declare Function GetDIBColorTable Lib "gdi32" Alias "GetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pRGBQuad As RGBQUAD) As Long +Declare Function GetPixelFormat Lib "gdi32" Alias "GetPixelFormat" (ByVal hDC As Long) As Long +Declare Function LineDDA Lib "gdi32" Alias "LineDDA" (ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal lpLineDDAProc As Long, ByVal lParam As Long) As Long + +Declare Function SetAbortProc Lib "gdi32" Alias "SetAbortProc" (ByVal hDC As Long, ByVal lpAbortProc As Long) As Long +Declare Function SetDIBColorTable Lib "gdi32" Alias "SetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD) As Long +Declare Function SetPixelFormat Lib "gdi32" Alias "SetPixelFormat" (ByVal hDC As Long, ByVal n As Long, pcPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long +Declare Function SwapBuffers Lib "gdi32" Alias "SwapBuffers" (ByVal hDC As Long) As Long +Declare Function EnumCalendarInfo Lib "kernel32" Alias "EnumCalendarInfoA" (ByVal lpCalInfoEnumProc As Long, ByVal Locale As Long, ByVal Calendar As Long, ByVal CalType As Long) As Long +Declare Function GetCurrencyFormat Lib "kernel32" Alias "GetCurrencyFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpFormat As CURRENCYFMT, ByVal lpCurrencyStr As String, ByVal cchCurrency As Long) As Long +Declare Function GetNumberFormat Lib "kernel32" Alias "GetNumberFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpFormat As NUMBERFMT, ByVal lpNumberStr As String, ByVal cchNumber As Long) As Long +Declare Function GetStringTypeEx Lib "kernel32" Alias "GetStringTypeExA" (ByVal Locale As Long, ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Integer) As Long +Declare Function GetStringTypeW Lib "kernel32" Alias "GetStringTypeW" (ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Integer) As Long +Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long + +Declare Function DeletePrinter Lib "winspool.drv" Alias "DeletePrinter" (ByVal hPrinter As Long) As Long + +Declare Function FindClosePrinterChangeNotification Lib "winspool.drv" Alias "FindClosePrinterChangeNotification" (ByVal hChange As Long) As Long +Declare Function FindFirstPrinterChangeNotification Lib "winspool.drv" Alias "FindFirstPrinterChangeNotification" (ByVal hPrinter As Long, ByVal fdwFlags As Long, ByVal fdwOptions As Long, ByVal pPrinterNotifyOptions As String) As Long +Declare Function FindNextPrinterChangeNotification Lib "winspool.drv" Alias "FindNextPrinterChangeNotification" (ByVal hChange As Long, pdwChange As Long, ByVal pvReserved As String, ByVal ppPrinterNotifyInfo As Long) As Long +Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As Long +Declare Function SetPrinter Lib "winspool.drv" Alias "SetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Byte, ByVal Command As Long) As Long + +Declare Function BroadcastSystemMessage Lib "user32" Alias "BroadcastSystemMessage" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long +Declare Function CascadeWindows Lib "user32" Alias "CascadeWindows" (ByVal hwndParent As Long, ByVal wHow As Long, ByVal lpRect As RECT, ByVal cKids As Long, lpkids As Long) As Integer +Declare Function ChangeMenu Lib "user32" Alias "ChangeMenuA" (ByVal hMenu As Long, ByVal cmd As Long, ByVal lpszNewItem As String, ByVal cmdInsert As Long, ByVal flags As Long) As Long +Declare Function CheckMenuRadioItem Lib "user32" Alias "CheckMenuRadioItem" (ByVal hMenu As Long, ByVal un1 As Long, ByVal un2 As Long, ByVal un3 As Long, ByVal un4 As Long) As Long +Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWndParent As Long, ByVal pt As POINTAPI) As Long +Declare Function ChildWindowFromPointEx Lib "user32" Alias "ChildWindowFromPointEx" (ByVal hWnd As Long, ByVal pt As POINTAPI, ByVal un As Long) As Long +Declare Function CloseDesktop Lib "user32" Alias "CloseDesktop" (ByVal hDesktop As Long) As Long +Declare Function CloseWindowStation Lib "user32" Alias "CloseWindowStation" (ByVal hWinSta As Long) As Long + +Declare Function CopyImage Lib "user32" Alias "CopyImage" (ByVal handle As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long +Declare Function CreateDesktop Lib "user32" Alias "CreateDesktopA" (ByVal lpszDesktop As String, ByVal lpszDevice As String, pDevmode As DEVMODE, ByVal dwFlags As Long, ByVal dwDesiredAccess As Long, lpsa As SECURITY_ATTRIBUTES) As Long +Declare Function CreateDialogIndirectParam Lib "user32" Alias "CreateDialogIndirectParamA" (ByVal hInstance As Long, lpTemplate As DLGTEMPLATE, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Long +Declare Function CreateDialogParam Lib "user32" Alias "CreateDialogParamA" (ByVal hInstance As Long, ByVal lpName As String, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal lParamInit As Long) As Long +Declare Function CreateIconFromResource Lib "user32" Alias "CreateIconFromResource" (presbits As Byte, ByVal dwResSize As Long, ByVal fIcon As Long, ByVal dwVer As Long) As Long + +Declare Function DialogBoxIndirectParam Lib "user32" Alias "DialogBoxIndirectParamA" (ByVal hInstance As Long, hDialogTemplate As DLGTEMPLATE, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Long + +Declare Function DragDetect Lib "user32" Alias "DragDetect" (ByVal hWnd As Long, ByVal pt As POINTAPI) As Long +Declare Function DragObject Lib "user32" Alias "DragObject" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal un As Long, ByVal dw As Long, ByVal hCursor As Long) As Long +Declare Function DrawAnimatedRects Lib "user32" Alias "DrawAnimatedRects" (ByVal hwnd As Long, ByVal idAni As Long, lprcFrom As Rect, lprcTo As Rect) As Long +Declare Function DrawCaption Lib "user32" Alias "DrawCaption" (ByVal hWnd As Long, ByVal hDC As Long, pcRect As Rect, ByVal un As Long) As Long +Declare Function DrawEdge Lib "user32" Alias "DrawEdge" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long +Declare Function DrawFrameControl Lib "user32" Alias "DrawFrameControl" (ByVal hDC As Long, lpRect As RECT, ByVal un1 As Long, ByVal un2 As Long) As Long +Declare Function DrawIconEx Lib "user32" Alias "DrawIconEx" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long +Declare Function DrawState Lib "user32" Alias "DrawStateA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpDrawStateProc As Long, ByVal lParam As Long, ByVal wParam As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal un As Long) As Long + +Type DRAWTEXTPARAMS + cbSize As Long + iTabLength As Long + iLeftMargin As Long + iRightMargin As Long + uiLengthDrawn As Long +End Type + +Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" (ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long, lpRect As RECT, ByVal un As Long, lpDrawTextParams As DRAWTEXTPARAMS) As Long +Declare Function EnumChildWindows Lib "user32" Alias "EnumChildWindows" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function EnumDesktops Lib "user32" Alias "EnumDesktopsA" (ByVal hwinsta As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function EnumDesktopWindows Lib "user32" Alias "EnumDesktopWindows" (ByVal hDesktop As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long +Declare Function EnumPropsEx Lib "user32" Alias "EnumPropsExA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function EnumProps Lib "user32" Alias "EnumPropsA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long) As Long +Declare Function EnumThreadWindows Lib "user32" Alias "EnumThreadWindows" (ByVal dwThreadId As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long +Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function EnumWindowStations Lib "user32" Alias "EnumWindowStationsA" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long +Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long + +Declare Function GetKeyboardLayoutList Lib "user32" Alias "GetKeyboardLayoutList" (ByVal nBuff As Long, lpList As Long) As Long +Declare Function GetKeyboardLayout Lib "user32" Alias "GetKeyboardLayout" (ByVal dwLayout As Long) As Long +Declare Function GetMenuContextHelpId Lib "user32" Alias "GetMenuContextHelpId" (ByVal hMenu As Long) As Long +Declare Function GetMenuDefaultItem Lib "user32" Alias "GetMenuDefaultItem" (ByVal hMenu As Long, ByVal fByPos As Long, ByVal gmdiFlags As Long) As Long + +Type MENUITEMINFO + cbSize As Long + fMask As Long + fType As Long + fState As Long + wID As Long + hSubMenu As Long + hbmpChecked As Long + hbmpUnchecked As Long + dwItemData As Long + dwTypeData As String + cch As Long +End Type + +Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, lpMenuItemInfo As MENUITEMINFO) As Long +Declare Function GetMenuItemRect Lib "user32" Alias "GetMenuItemRect" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal uItem As Long, lprcItem As RECT) As Long + +Type SCROLLINFO + cbSize As Long + fMask As Long + nMin As Long + nMax As Long + nPage As Long + nPos As Long + nTrackPos As Long +End Type + +Declare Function GetScrollInfo Lib "user32" Alias "GetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long +Declare Function GetSysColorBrush Lib "user32" Alias "GetSysColorBrush" (ByVal nIndex As Long) As Long +Declare Function GetUserObjectInformation Lib "user32" Alias "GetUserObjectInformationA" (ByVal hObj As Long, ByVal nIndex As Long, pvInfo As Any, ByVal nLength As Long, lpnLengthNeeded As Long) As Long +Declare Function GetWindowContextHelpId Lib "user32" Alias "GetWindowContextHelpId" (ByVal hWnd As Long) As Long +Declare Function GetWindowRgn Lib "user32" Alias "GetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long) As Long +Declare Function GrayString Lib "user32" Alias "GrayStringA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpOutputFunc As Long, ByVal lpData As Long, ByVal nCount As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long +Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long +Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long +Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long +Declare Function LookupIconIdFromDirectoryEx Lib "user32" Alias "LookupIconIdFromDirectoryEx" (presbits As Byte, ByVal fIcon As Boolean, ByVal cxDesired As Long, ByVal cyDesired As Long, ByVal Flags As Long) As Long +Declare Function MapVirtualKeyEx Lib "user32" Alias "MapVirtualKeyExA" (ByVal uCode As Long, ByVal uMapType As Long, ByVal dwhkl As Long) As Long +Declare Function MenuItemFromPoint Lib "user32" Alias "MenuItemFromPoint" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal ptScreen As POINTAPI) As Long + +Type MSGBOXPARAMS + cbSize As Long + hwndOwner As Long + hInstance As Long + lpszText As String + lpszCaption As String + dwStyle As Long + lpszIcon As String + dwContextHelpId As Long + lpfnMsgBoxCallback As Long + dwLanguageId As Long +End Type + +Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long +Declare Function OpenDesktop Lib "user32" Alias "OpenDesktopA" (ByVal lpszDesktop As String, ByVal dwFlags As Long, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long +Declare Function OpenInputDesktop Lib "user32" Alias "OpenInputDesktop" (ByVal dwFlags As Long, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long +Declare Function OpenWindowStation Lib "user32" Alias "OpenWindowStationA" (ByVal lpszWinSta As String, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long +Declare Function PaintDesktop Lib "user32" Alias "PaintDesktop" (ByVal hdc As Long) As Long + +Type WNDCLASSEX + cbSize As Long + style As Long + lpfnWndProc As Long + cbClsExtra As Long + cbWndExtra As Long + hInstance As Long + hIcon As Long + hCursor As Long + hbrBackground As Long + lpszMenuName As String + lpszClassName As String + hIconSm As Long +End Type + +Declare Function RegisterClassEx Lib "user32" Alias "RegisterClassExA" (pcWndClassEx As WNDCLASSEX) As Integer +Declare Function SetMenuContextHelpId Lib "user32" Alias "SetMenuContextHelpId" (ByVal hMenu As Long, ByVal dw As Long) As Long +Declare Function SetMenuDefaultItem Lib "user32" Alias "SetMenuDefaultItem" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long +Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long +Declare Function SetMessageExtraInfo Lib "user32" Alias "SetMessageExtraInfo" (ByVal lParam As Long) As Long +Declare Function SetMessageQueue Lib "user32" Alias "SetMessageQueue" (ByVal cMessagesMax As Long) As Long +Declare Function SetProcessWindowStation Lib "user32" Alias "SetProcessWindowStation" (ByVal hWinSta As Long) As Long +Declare Function SetScrollInfo Lib "user32" Alias "SetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpcScrollInfo As SCROLLINFO, ByVal bool As Boolean) As Long +Declare Function SetSystemCursor Lib "user32" Alias "SetSystemCursor" (ByVal hcur As Long, ByVal id As Long) As Long +Declare Function SetThreadDesktop Lib "user32" Alias "SetThreadDesktop" (ByVal hDesktop As Long) As Long +Declare Function SetTimer Lib "user32" Alias "SetTimer" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long +Declare Function SetUserObjectInformation Lib "user32" Alias "SetUserObjectInformationA" (ByVal hObj As Long, ByVal nIndex As Long, pvInfo As Any, ByVal nLength As Long) As Long +Declare Function SetWindowContextHelpId Lib "user32" Alias "SetWindowContextHelpId" (ByVal hWnd As Long, ByVal dw As Long) As Long +Declare Function SetWindowRgn Lib "user32" Alias "SetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long +Declare Function SetWindowsHook Lib "user32" Alias "SetWindowsHookA" (ByVal nFilterType As Long, ByVal pfnFilterProc As Long) As Long +Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long +Declare Function ShowWindowAsync Lib "user32" Alias "ShowWindowAsync" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long +Declare Function SwitchDesktop Lib "user32" Alias "SwitchDesktop" (ByVal hDesktop As Long) As Long +Declare Function TileWindows Lib "user32" Alias "TileWindows" (ByVal hwndParent As Long, ByVal wHow As Long, lpRect As Rect, ByVal cKids As Long, lpKids As Long) As Integer +Declare Function ToAsciiEx Lib "user32" Alias "ToAsciiEx" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpKeyState As Byte, lpChar As Integer, ByVal uFlags As Long, ByVal dwhkl As Long) As Long + +Type TPMPARAMS + cbSize As Long + rcExclude As Rect +End Type + +Declare Function TrackPopupMenuEx Lib "user32" Alias "TrackPopupMenuEx" (ByVal hMenu As Long, ByVal un As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal hWnd As Long, lpTPMParams As TPMPARAMS) As Long +Declare Function UnhookWindowsHook Lib "user32" Alias "UnhookWindowsHook" (ByVal nCode As Long, ByVal pfnFilterProc As Long) As Long +Declare Function VkKeyScanEx Lib "user32" Alias "VkKeyScanExA" (ByVal ch As Byte, ByVal dwhkl As Long) As Integer +Declare Function WNetGetUniversalName Lib "mpr" Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As Long, lpBuffer As Any, lpBufferSize As Long) As Long + +Const INVALID_HANDLE_VALUE = -1 + +'DrawEdge Constants +Const BDR_RAISEDOUTER = &H1 +Const BDR_SUNKENOUTER = &H2 +Const BDR_RAISEDINNER = &H4 +Const BDR_SUNKENINNER = &H8 + +Const BDR_OUTER = &H3 +Const BDR_INNER = &HC +Const BDR_RAISED = &H5 +Const BDR_SUNKEN = &HA + +Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER) +Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER) +Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER) +Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER) + +Const BF_LEFT = &H1 +Const BF_TOP = &H2 +Const BF_RIGHT = &H4 +Const BF_BOTTOM = &H8 + +Const BF_TOPLEFT = (BF_TOP Or BF_LEFT) +Const BF_TOPRIGHT = (BF_TOP Or BF_RIGHT) +Const BF_BOTTOMLEFT = (BF_BOTTOM Or BF_LEFT) +Const BF_BOTTOMRIGHT = (BF_BOTTOM Or BF_RIGHT) +Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM) + +Const BF_DIAGONAL = &H10 + +' For diagonal lines, the BF_RECT flags specify the end point of +' the vector bounded by the rectangle parameter. +Const BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL Or BF_TOP Or BF_RIGHT) +Const BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL Or BF_TOP Or BF_LEFT) +Const BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL Or BF_BOTTOM Or BF_LEFT) +Const BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL Or BF_BOTTOM Or BF_RIGHT) + +Const BF_MIDDLE = &H800 ' Fill in the middle. +Const BF_SOFT = &H1000 ' Use for softer buttons. +Const BF_ADJUST = &H2000 ' Calculate the space left over. +Const BF_FLAT = &H4000 ' For flat rather than 3-D borders. +Const BF_MONO = &H8000 ' For monochrome borders. + diff --git a/cadVb/COMMON/WIZARD98/HOSTWIZ.DLL b/cadVb/COMMON/WIZARD98/HOSTWIZ.DLL new file mode 100644 index 0000000..1baaa4c Binary files /dev/null and b/cadVb/COMMON/WIZARD98/HOSTWIZ.DLL differ diff --git a/cadVb/COMMON/WIZARD98/HSTWZCHS.DLL b/cadVb/COMMON/WIZARD98/HSTWZCHS.DLL new file mode 100644 index 0000000..2702ef3 Binary files /dev/null and b/cadVb/COMMON/WIZARD98/HSTWZCHS.DLL differ diff --git a/cadVb/COMMON/WIZARD98/SUBWIZ.TLB b/cadVb/COMMON/WIZARD98/SUBWIZ.TLB new file mode 100644 index 0000000..302c88c Binary files /dev/null and b/cadVb/COMMON/WIZARD98/SUBWIZ.TLB differ diff --git a/cadVb/DCOM98/DCM98CFG.EXE b/cadVb/DCOM98/DCM98CFG.EXE new file mode 100644 index 0000000..a82ffa4 Binary files /dev/null and b/cadVb/DCOM98/DCM98CFG.EXE differ diff --git a/cadVb/DCOM98/DCOM98.EXE b/cadVb/DCOM98/DCOM98.EXE new file mode 100644 index 0000000..e0dd52d Binary files /dev/null and b/cadVb/DCOM98/DCOM98.EXE differ diff --git a/cadVb/EULA.TXT b/cadVb/EULA.TXT new file mode 100644 index 0000000..5445704 --- /dev/null +++ b/cadVb/EULA.TXT @@ -0,0 +1,112 @@ +MICROSOFTûЭ顷 + +Ҫ֪ĶMicrosoftûЭ顷³ơЭ顷˻һ壩 Microsoft Corporation ֮й渽Э顷MicrosoftƷķЭ顣Ʒһܰĵýӡˢϣ³ơƷһװƻʽʹñƷκΡ¼£ʾܱͬЭ顷еԼͬⱾЭ顷еðװƻʽʹñƷԽƷ˻ԭ򴦲ȫ˿⣬һװƻʽʹΪƷһֱֶõıƷκθ¼ʾͬ渽Щ¼κθԼͬ渽Щ ¼ĸðװƻʽʹøá¼ + + +Ʒ֤ + +ƷȨʰȨԼ֪ʶȨԼıƷֻDZʹãdzۡ˵渽ƷӡˢЭ顷ȡκΰڱƷеκʾڼϵġЭ顷 +1 Ʒʹõ +11 һɵ衣MicrosoftΪһݸ˵ġǶԵ֤ΪơΪκMicrosoft ϵͳƷһеƷƵļϰװƷĸDZƷΨһʹߡΪһʵ壬Microsoftָ֯һλԱ涨ķʽʹáƷȨ +12 ĵЭ顷Ϊһݸ˵ġǶԵ֤ƼʹƵκĵĸȨ,ЩĵֻڸʹòҲûڴ֮ٳ(ӡˢӰʽ)⣺ʹáƷеMSDNⲿָĵΪMicrosoft WordMicrosoft ExcelMicrosoft Access/Microsoft PowerPointļʽĵļʽ񣬽ڿWindowsWindows NTϵͳһжƵģͨõִƱݿƷһݼɹƷװһִͨƱݿƷ˵޵ִƱݿṩҪҪֵIJƷ޵ĵƱܵĻƲƷ򲻱ΪͨԡƷ +13 /ʹáԽƷһݸ洢װһ洢豸ϣ һ̨һλȨûݵ11ڼϰװСƷһݵһġƷ֤ûͬʱʹá +14 Visual Studio - Э顷ЧáƷΪMicrosoft Visual Studioһߺװÿһ߻Ϊһô1.4ΪƷһֶõܰһݵûЭ飨ÿΪһЭ顷߽涨⣬Э顷κΡЭ顷в죬Э顷еΪ׼ +15 Microsoft Internet ExplorerΪӵЧɵMicrosoftϵͳƷļϸƺʹMicrosoft Internet Explorerĸ + +2 MICROSOFT BACKOFFICE SERVER DEVELOPER EDITIONƷܰijЩMicrosoft BackOffice ServerͳΪBackOffice +21 װ֤衣BackOfficeһ̨Ϊļṩ򣨡СļΪһһ̨վʻʹáṩķ򣨡ͻɸݵһƵļʹúͰװ͡ͻפýܰݷ汾ÿݾ벻ͬ΢ʹϵṹx86ϵṹֲͬRISCϵṹݡκʱֻɰװһϵṹһʹ÷ý֧Ʒķ磺ΪԴĴ洢ֻͬһ̨ʹáֻʮͬʱӷʷķ񡣣˵Microsoft SQL ServerйƵ涨ĵ2.2.3ڣ +2 2 Ȩơ +221 Microsoft SNA ServerÿɵSNA ServerֻһλûʹSNA Serverһṩ32705250ն˷渽ӳODBC/DRDA +222 Microsoft Exchange Server Microsoft Exchange Server Microsoft Schedule+Schedule+ Forms Designer Forms DesignerSample ApplicationsSample ApplicationsSchedule+Forms DesignerSample ApplicationsֻMicrosoftͻһװʹáMicrosoft Exchange ServerSource ExtractorڴʼǨݣMicrosoft Mail ConnectorSource ExtractorMicrosoft Mail Connectorܿ԰װϵMicrosoftȨġSource ExtractorԴ汾ֻMicrosoft Exchange ServerǨ֮á +223 Microsoft SQL Server۵11˵иȨBackOfficeеMicrosoft SQL Server֣a)λûʺʹáΪơƷ֮ãҸΪMicrosoft SQL ServerһжƵģ(b)ƵͬʱӿԷMicrosoft SQL Serverṩķ + +3 ٷд - Ȩ1Ȩ֮⣬ƷijЩ֣籾3ԸȨṩص4.1е +31 롣Microsoftʹú͸ڡƷеġREDIST.TXTָΪĸЩƷԴ汾롱ΪơƷ֮ãһƺٷС롱κθģֻĿʽ +32 ٷд - ׼ʹáMICROSOFTǶԵġ˰ȨĿʽƺٷСƷREDISTTXTеκβ֣ٷд롱˵ijЩٷд롱עΪʹٷд롱ܻܵ3.3ڵơ +33 ٷд - ʹáص4.1.3еǰ£MICROSOFTǶԵġ˰ȨĿʽƺٷСƷREDISTTXTΪʹٷд롱IJ֣ʹٷд롱 +34 ٷд - Microsoft Exchange - ӦóOutlook WebAccessʹõ˵ +341 Ӧóص411ڵǰ£MICROSOFTǶԵġ˰Ȩʹú͸ġӦó򡱵Դ汾ԼͬʹMicrosoft Exchange ServerķӦó򣬸ƺͷиøĺĿ汾 +342 Outlook WebAccessOWAMICROSOFTǶԵġ˰ȨʹáơƺͷСOWAǣa)ص4.1.1е(b롰OWAһûЭ飬ڸЭ޵ġOWAʹȨұMicrosoft乩Ӧ̶ڡOWA֪ʶȨ +35 ٷд - Microsoft SQL Server - ʱʹõ˵ص4.1.1еǰ£ MICROSOFTǶԵġ˰ȨƺͷʹMicrosoft SQL ServerӦóƷSQL Ӧó򡱣֮еʱִмӦóD-B LibraryNet LibraryODBCĵSQL ʱĵͬΪSQLӦóһ֡SQLӦóODBCʱĵ(a)SQLӦóMicrosoft SQL Serverһͬ (b)ͬ⽫ļеODBCSQL ӦóһͬС +36 ٷд - Site Server Software Development Kits (Site Server SDK)MICROSOFTǶԵġ˰Ȩһ̨̨ϰװʹSite Server SDKĸΪơMicrosoft Site Servr һͬӦó֮áɸġSite Server롱ơӦóڱ36УSite Server롱ָSite Server SDK͡Ŀ¼еԴHTMLActive Server Pages(ASP)롣Site ServerеijЩָΪٷд롱 ƷSite ServerΪREDISTTXTLICENSETXTĵÿSite ServerٷдĵйصķȨ +37 ٷд - SNA Server Development MICROSOFTǶԵġ˰Ȩһ̨̨ϰװʹVSAMAS/400OLE DB Data Provider (OLE DB Data Provider)/CICSIMSCOM Transaction IntegratorCOM Transaction IntegratorΪơMicrosoft SNA ServerһͬӦó֮áƷSNA ServerֵijЩҲָΪٷд롱ƷSNA ServerΪREDISTTXTĵаЩĵ嵥ԼSNA ServerٷдйصķȨ +38 ٷд - Visual C++Visual Studio: Microsoft Foundation Classes (MFC) Template Libraries(ATL) Cruntimes(CRTs)Э顷渽Visual C++Visual Studioô˵1Ȩ֮⣬MICROSOFTʹú͸ġƷָΪMFCATLCRTsܳΪVCٷвƷԴ汾ֵȨΪơƷ֮áص41ڲκİɲƷ£еĵMICROSOFTǶԵġ˰ȨƺͷСVCٷвƷĿ汾κĸģڱУġһָӡVCٷвƷĹܡ + +4 й涨֤ơ +41 һ涨ƷܰĿٷд룬Ϊٷб¹涨 +411 ٷд - ׼ȨѡԵ3ٷС롱ٷд롢ʹٷд롢Ӧó/SQLʱĵܳΪٷвƷͬ⣨aĿʽӦóһΪӦóһַСٷвƷӦóʹ渽Э顷IJƷIJΪƷҪĺҪĹܣɲƷbʹMicrosoftơʶ̱ɲƷcڡɲƷаһЧİȨ˵(dʹûСɲƷϣʦѣ⳥Microsoftʹκ𺦺Ϊṩ绤(e)ijʹõеġMicrosoftSystems JournalMSJаȨ<>Microsoft Systems Journal(f)رЭ顷е (g)ͬMicrosoftڴδȷȨͬⲻûһСٷвƷ⣺1ľֻٷвƷ롰ɲƷһΪɲƷһַУľرЭ顷ľûͻٷСٷвƷͣ2ݵ412ʽ +412 ٷд - չʹáVisual BasicVisual C++Visual J++Visual StudioЭ顷渽ֽڱеκMicrosoftƷûƺͷбƷijЩֵĿ汾REDISTTXTΪչʹٷд롱һɲƷ/ҳһΪɲƷ/ҳһ֣ǡɲƷҳΪչٷд롱ҪĺҪĹܡ˵ָ֤ΪDbgrid.ocxGraph32.ocxĵȨ +(a) ص411е +(b) ûͬ⣺ iĿʽǿһӦóһΪһֶСչʹٷд롱ҸӦóΪչʹٷд롱ҪĺҪĹܣ(ii) ʹMicrosoftơʶ̱ûӦó򡱣(iii)ڡûӦóڰһЧİȨ˵(iv) ʹûСûӦó򡱶ϣʦѣ⳥Microsoftʹκ𺦺Ϊṩ绤(v)ûӦó򡱵ûһСչʹٷд롱 +413 ٷб - ʹáȨѡٷСʹÿٷд롱411е⣬REDISTTXTָΪʹÿٷд롱ӦġƷ֣ +4131 JetĵٷСJetĵڡƷָģͬиӹ涨 (a)ġɲƷôظMicrosoft AccessĹܣMicrosoftڣоԣ(b)ġɲƷҪĹ˿ͱȨʹMicrosoft AccessɲøƻʹκΡJetĵִͨƱݿƷΪһݸִͨƱݿƷļɹƷװһҵԷУרMicrosoft Accessֵ֧ĸʽǨ⡣ע⣺һ޵ִƱݿṩҪҪֵIJƷ޵ƱܵĻƲƷΪͨáƷ +4132 Microsoft Data AccessٷΪMDAC_TYPEXEMicrosoft Data AccessĵͬĿʽʹMicrosoft߲ƷġɲƷһΪһֶٷиĵҸáɲƷΪMDAC_TYPEXEҪĺҪĹܡ + +5 MICROSOFT WINDOWS NT OPTION PACK +۱Э顷й涨ָΪMICROSOFT WINDOWS NT OPTION PACKġƷֶԣЧע⵱ʹMICROSOFT WINDOWS NT OPTION PACKʱ(a)ѻһЧijЩMICROSOFTϵͳƷ֤(b)ڱ5жĴָڱضᵽWINDOWS NT OPTION PACKûЭĴЩォע +51 ΪMicrosoft Windows NT Server 4.0Microsoft Windows NT Server Enterprise Edition 4.0Microsoft BackOffice2.5һʹã + +˵ûЧMicrosoft Windows NT Server 4.0Microsoft Windows NT Server Enterprise Edition 4.0Microsoft BackOffice 2.5֤谲װƻʽʹWindows NTڱ51УWindows NTָMicrosoft Message Queue Server, Microsoft Transaction Server, Microsoft Internet Information ServerMicrosoft Remote Access ServiceInternetӷ񡣳DZей涨⣬ʹʹáWindows NTȨҲûȨװƻʽʹWINDOWS NT OPTION PACK +511 һ涨Windows NTͿͻЩֱΪصMicrosoft Windows NT Server 4.0ΪƷΪMicrosoft BackOfficeMicrosoft Windows NT Server Enterprise Edition4.0е[][ͻ]һ֡ڴй涨֮⣬һЧMicrosoft Windows NT Server 4.0Microsoft Windows NT Server Enterprise Edition 4.0Microsoft BackOffice2.5ÿֱΪ[Ʒ] ֤ȨйزƷءЭ顷еʹáWindows NT +512 Microsoft Windows NT ServerͻʡĿǰйءЭ顷е[ͻ]涨֮⣬ҪһݵWindows NT Server[ͻ֤]ɷʻʽʹWindows NT Server/Ӧó[]Microsoft Message Queue ServerMicrosoft Message Queue ServerӡʼMicrosoft Transaction ServerMicrosoft Transaction ServerĻӦó򣩺Remote Access ServiceͨһͨѶԶ̷ʷ˵Remote Access ServiceʹInternetӷ񣬰Internet Authentication Services֤תԶ̷󣩻Connection Point ServicesΪµ绰ݶԶMicrosoft Connection Manager Clientܺͻ׼顣δMicrosoftýMicrosoft Message Queue ServerMicrosoft Transaction ServerMicrosoft Internet Information Server[][ͻ]Ļ׼Ľ͸¶κεװڵһһ̨[]ϡڴй涨⣬й[Ʒ][]ֻһװһ̨[]ʹã÷ֿMicrosoft Site Server Express˵Ϊ֯ڵκμɸƺͷMicrosoft Site Server ExpressԹʹá +513 Microsoft Internet Information Server-ʹáйءЭ顷й涨Ҫһݵ[ͻ֤]ɷʻʽʹMicrosoft Internet Information Serverķ񣬳Microsoft Internet Information ServerʻʽʹҪ[ͻ֤]ʹõ[][] +514 ȨơȨƶWindows NTֻҪЩĿӵеЧɵÿ[Ʒ]Ŀͬʹüɡ + +ûЧMicrosoft Windows NT Server 4.0Microsoft Windows NT Server Enterprise Edition 4.0Microsoft BackOffice2.5ֽ֤κȨ +52 ΪMicrosoft Windows NT Workstation 4.0һʹã + +˵ûЧMicrosoft Windows NT Workstation 4.0֤ȨװƻʽʹWindows NTWorkstationڱ52УWindows NT WorkstationָMicrosoft Transaction ServerMicrosoft Personal Web ServerDZей涨ʹȨʹáWindows NT WorkstationҲȨװƻʹκ +521 һ涨ڴй涨Windows NT WorkstationΪMicrosoft Windows NT Workstation 4.0([ Ʒ])һ֡Ӧ䡶Э顷еԼʹơκʱֻ2̨[ʮ10̨]ʹMicrosoft Transaction Serverķ޶ȵ2̨κͨϻ򼯺ʹõӲļʹáܻ׼顣δMicrosoftýκΡWindows NT WorkstationĻ׼Ľ͸¶κε +522 ȨơȨƶݵġWindows NT WorkstationֻҪЩĿӵеЧɵMicrosoft Windows NT Workstation 4.0Ŀͬʹüɡ +ûЧMicrosoft Windows NT Workstation 4.0ֽ֤κȨ +53 ΪMicrosoft BackOffice Small Business Server 4.0һʹã + +˵ûЧMicrosoft BackOffice Small Business Server 4.0֤ȨװƻʽʹWindows NTǰĵ51ģDZей涨ʹȨʹáWindows NTҲȨװƻʽʹκ + +531 һ涨Windows NTͿͻЩֱΪصMicrosoft BackOffice Small Business Server 4.0е[][ͻ]һ֣䡶Э顷еԼڴ˵Microsoft Site Server Express˵Ϊ֯ڵκμɸƺͷMicrosoft Site Server ExpressԹʹá +532 ȨơȨƶݵġWindows NTֻҪЩĿӵеЧɵMicrosoft BackOffice Small Business Server 4.0Ŀͬʹüɡ +ûЧMicrosoft BackOffice Small Business Server4.0ֽ֤κȨ +54 Ϊ MICROSOFT WINDOWS 95һʹã + +˵ûЧ MICROSOFT WINDOWS 95֤ȨװƻʽʹWINDOWS 95ڱ54УWINDOWS 95ָMicrosoft Personal Web Server Windows 95Microsoft Transaction ServerDZй涨ʹȨʹWindows 95ҲȨװƻʹκ +541 һ涨ڴй涨Windows 95ΪMicrosoft Windows 95[Ʒ]һ֣䡶Э顷еԼ +542 ʹơκʱֻʮ10̨ʹMicrosoft Personal Web Serverķ޶ȵʮ10̨κͨϻ򼯺ʹõӲļʹáWindows 95Microsoft Transaction ServerΪʹãκμվɷʻʹøκ +ܻ׼顣δMicrosoftýκWindows 95Ļ׼Ľ͸¶κε +543 ȨơȨƶݵWindows 95ֻҪЩĿӵеЧɵMicrosoft Windows 95Ŀͬʹüɡ + +ûЧMicrosoft Windows 95ֽ֤κȨ + +6 ȨƵ˵ +61 ƷΪƷNFRۻԱƷгתá +62 Է򹤳̡롢ơɶԱƷз򹤳̡򷴻ࣻƣ÷ʾڴޡ +63 衣ɳ⡢޻衰Ʒ +64 ̱ꡣЭ顷йκMicrosofṯ̱Ȩ +65 ַ֧Microsoft Ϊṩ뱾Ʒйصַ֧񣨡ַ֧񡱣ַ֧ʹûֲᡢĵ/MicrosoftṩIJMicrosoftߺͼƻԼκṩΪַ֧һֵĸڱƷһ֣ܱЭ顷ĸԼṩMicrosoftΪַ֧һֵļϢMicrosoftɽϢҵ;Ʒֺ֧Ϳ֮áMicrosoftʹЩϢʱԸʽἰ +66 תáƷλûɽЭ顷͡ƷһԵֱתһλûתñȫƷýӡˢϡκ汾Э顷Ʒ֤飨õĻתòίֱʽתáһתõ˱ͬⱾЭ顷ĸתñЭ顷͡Ʒ +67 ָƷΪһһƷȨɲֲ÷ֿһλϵûʹá +68 ʹáƷBackOfficeֻڿĿģС +69 汾ơBackOfficeķְһ汾ţ硰3.5汾Э顷һ̨ļϰװһݰ汾з汾ͬ͵ģķ磺еİ汾Ϊ3.5ɰװ汾Ϊ3.52.0ķðװ汾Ϊ3.6ķ +610 ܻ׼ԡδMicrosoft ͬ⣬ɽMicrosoft SQL ServerMicrosoft Exchange Server Microsoft Transaction ServerMicrosoft Message Queue ServerMicrosoft Site ServerMicrosoft Proxy ServerMicrosoft Internet Information Serverķͻκλ׼Խ͸¶κε +611 ֹδرЭ顷ĸڲȨ£Microsoft ɽЭ顷ֹ緢СƷĸȫ + +7 Ԥд롣ƷijЩֿܱΪԤд루Ԥд롱áԤд롱ûͨеIJƷͬȵܺˮƽԤд롱ܲȷУ״ҵǰ޸ġMicrosoftûκθ°汾ġԤд롱ҵСʹáԤд롱֤MicrosoftʼҵСԤд롱ʱֹ˵áԤд롱һݵûЭ飬ԡԤд롱ʹӦܸûЭеԼ + +8 汾ƷעΪ汾ΪʹñƷʹMicrosoft ʸʹ汾IJƷʵ֤Ϊ汾ġƷ滻/򲹳ʹʸʹ汾ĻIJƷֻɸݱЭ顷еʹġƷ籾ƷΪһƷʹõһڵɲֵ汾򱾡ƷֻΪõһƷһʹúתãҲɽֿһ̨ϵļʹá + +9 Ȩ ƷƷκͼƬ¼¼ּ֡ӳ򡱣渽ӡˢϼ Ʒ κθȨ֪ʶȨMicrosoft 乩ӦӵСͨʹáƷԷʵݵһȨ֪ʶȨڸӵУȨ֪ʶȨɺԼıЭ顷ʹЩݵȨδڴʾȨMicrosoft + +10 ơͬⲻƷκβֻΪƷֱӽκγͳơڻתڸκܵƵĹҡˡʵûرͬⲻκ ڻתڸ(i)Ʒ˻ƵκιңЩĿǰڣŰ͡ʡˡǡʡյǣλںδͼػ˻κҵĹ񣻣ii֪֪Ὣơӡѧκûiiiκֹڽ׵κû֤BXAκûܾͣijȨ + +11 JAVA֧˵ƷܰJAVAƵij֧֡JAVAݴҲΪڻתйԶܵΣջʹõ豸ơ׼ģʩɻͨϵͳнͨơֱϵͳϵͳСЩУJAVAĹϿֱӵԱ򻷾𺦡 + +涨 +Э顷л񹲺͹ɹϽ +ԱЭ顷κʣκԭҪMicrosoftӴ MicrosoftϵдŸMicrosoft Sales Information Center/One Microsoft Way/Redmond, WA 98052-6399U.S.A. + +ޱ֤ +ޱ֤ٷ֮⣬ԡˡʽκα֤ṩMicrosoft ֤£ +ᣩƷջ֮վʮʵʷ渽Уͣ⣩ Microsoftṩκַ֧ʵʷMicrosoftṩйMicrosoftֹ֧ʦҵϺķΧھκ⡣÷ķΧڣ͡ƷĬʾ֤еĻӦΪ90ڡijЩ/ϽƱ֤ޣƿܲ +˿еIJMicrosoft乩Ӧ̵ȫԼеΨһΪ֮һԺΪ׼MicrosoftȫȨ(a) ˻ѸļۿеĻ(b) Microsoft ޱ֤ġƷ뽫ƷͬеķƱһͬ˻Microsoft硰Ʒʧ¹ʡʹûģޱ֤ЧκΡƷıΪԭ޵ʣ޻ʮ죨ԽϳΪ׼ṩȨʹӦ̵ĹվݣMicrosoftṩκβƷַ֧ +֤÷ΧڣMicrosoft乩Ӧ̷ʾĬ֤аڣԡƷԡԡȨȨĬʾ֤Լṩδṩַ֧ı֤ޱ֤ضķȨݸ/ϽIJܻͬȨ +⳥ơ +÷ΧڣMicrosoft乩Ӧκ¾ʹûʹƷδṩַ֧κ⡢⡢ֱӻӵ𺦣ӪҵʧӪҵжϡҵϢʧǮϵʧ⳥ΣʹMicrosoftȱ֪𺦷ĿԡκMicrosoftЭ顷κȫ͡ƷʵѸļۿԪ$500֮ȡϸǣѾMicrosoftǩַ֧Э飬Microsoftַ֧ȫ⳥ӦܸЭԼΪijЩ/Ͻų⳥Σƿܲ diff --git a/cadVb/HTMLHELP/HTMLHELP.EXE b/cadVb/HTMLHELP/HTMLHELP.EXE new file mode 100644 index 0000000..bf0893f Binary files /dev/null and b/cadVb/HTMLHELP/HTMLHELP.EXE differ diff --git a/cadVb/IE4CHECK.INI b/cadVb/IE4CHECK.INI new file mode 100644 index 0000000..063e023 --- /dev/null +++ b/cadVb/IE4CHECK.INI @@ -0,0 +1,4 @@ +[IE4Check] +Files=shdocvw.dll +shdocvw.dll=4.72.3110.3 +version=4.72.3110.8 diff --git a/cadVb/INSTALL.HTM b/cadVb/INSTALL.HTM new file mode 100644 index 0000000..7b04ab3 --- /dev/null +++ b/cadVb/INSTALL.HTM @@ -0,0 +1,657 @@ + + + +Installation Notes + + + + + + + + + + + +

        Installation Notes

        +

        © 1998 Microsoft Corporation. All rights reserved.

        + +

        Installation Notes contains vital information about installing Microsoft® Visual Studio™ 6.0 -- Development System for Windows and the Internet, and its family of development products. Information in this file may apply to all or a number of the products shipped in the Visual Studio suite. This Readme updates information provided in the MSDN Library Visual Studio 6.0 documentation.

        +

        Installation Notes is one of a "family" of Readmes shipped with the suite. All product Readme files reside at the root of Visual Studio compact disc 1. These Readme files (install.htm, plus several others called readmeXX.htm, where XX signifies a product) utilize current Web technology so users can find and view their information quickly. They may be viewed with a Web browser, such as Microsoft Internet Explorer 4, or in Notepad.

        + +
        How do I print all Readme files available to me at one time from Microsoft Internet Explorer?
        + + + + + +

        +

        Contents

        +
        Note   Be sure all headings in the table of contents are expanded when you search this Readme for a topic. In this way, you will know when the search finds the topic among the TOC headings. +
        +

        + + + +
        Installation Instructions for Visual Studio Programs
        + + +

        + + + +

        Installing Server-Side Components
        + + +

        + + + +

        Configuring for Debugging
        + + +

        + + + +

        Issues Specific to Windows 95 Computers
        + + +

        + + + +

        Notes Impacting Other Installed Programs
        + + +

        + + + +

        Issues Related to Computers with Non-U.S. Versions of Microsoft Programs
        + + + + + +
        Data Access SDK 2.0
        + + + + + +

        +

        For other last-minute issues, click any of the following links.

        +

        +Microsoft® Visual Studio™

        +

        +Microsoft® Visual Studio™, Enterprise Edition

        +

        +


        + + + +

        Installation Instructions for Visual Studio Programs

        + +

        This section lists installation-related information on programs and files shipped with Visual Studio 6.0.

        + + + + +

        Warning When Installing on Dual-Boot Computers

        +

        +If you have a dual-boot computer and want to install and run Visual Studio programs with both operating systems, you must install these products into separate directories.

        +

        Installing a Visual Studio product, such as Visual C++ or Visual Basic, multiple times on the same directory can result in undefined behavior. Installing a product to the same location from each operating system is sometimes done to save disk space, but it will lead to problems and is not supported.

        +

        For example, if you install onto the same directory, you will not be able to fully uninstall the product from both systems. Uninstalling on one system may result in undefined behavior, including the removal of system files from the other system.

        + + + + +

        Installing Multiple Versions of Visual Studio 6.0 "Side-by-Side" on the Same Computer

        +

        +Visual Studio products with the same version and in the same language—Visual C++ and Visual Basic version 6.0 in English, for example—can be installed separately on the same workstation. Such installations are supported by Microsoft. The Visual Studio 6.0 Installation Wizard detects if other versions of the 6.0 product line have been installed on a developer's workstation.

        +

        Mixing different language versions, point releases, or product tiers on the same workstation is generally not supported. This means that the installation may fail, one or more of Visual Studio 6.0 products may not work even if the installation succeeds, or in the worst case you may not be able to uninstall any of the products completely.

        +

        If the Wizard generates a warning during installation, the safest course of action is to uninstall the Visual Studio 6.0 product before proceeding. The detection scheme checks for the following scenarios:

        +
        • Users installing different language versions of the same product. For example, Japanese Visual C++ and English Visual C++. Installation of certain combinations is supported.
        • +

          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          ProductSupported Installation
          Visual BasicInstall to two different locations
          Visual C++[still checking]
          Visual FoxPro[still checking]
          Visual InterDevInstall to the same location. You must reinstall after uninstalling one version.
          Visual J++Install to the same location. You must reinstall after uninstalling one version.
          Visual SourceSafe[still checking]
          +

          +

        • Users installing different tiers of Visual Studio 6.0 products. For example, Visual J++ Standard Edition and Visual InterDev Professional Edition. Installing different tiers of the same product on the same workstation is not supported.
        • +

          +

        • Users installing point releases. Upgrading a later point release of Visual Studio over an earlier point release is supported. However, installing earlier versions over later versions is not supported.
        • +

          +

        • Users installing stand-alone versions of Visual Studio 6.0 products over the versions installed from Visual Studio 6.0 Professional or Enterprise. For example, Visual FoxPro 6.0 over Visual Studio Professional 6.0. Installing a stand-alone version of the same language versions (English) of Visual Studio 6.0 products is supported. It is safe to install Visual FoxPro 6.0 (English) from the stand-alone version on a workstation that already has Visual Basic 6.0 installed from Visual Studio Professional Edition.
        • +
        + + + + +

        Installing Client Tools After Visual Studio 6.0 Is Installed

        +

        +To install any of the following components, you must install them at the same time you install Visual Studio 6.0. +

        +
          +
        • Application Performance Explorer
        • +
        • Data Access Components 2.0
        • +
        • FrontPage 98
        • +
        • FrontPage 98 Server Extensions
        • +
        • InstallShield
        • +
        • NT Option Pack for Windows 95
        • +
        • Visual FoxPro Server Examples
        • +
        • Visual InterDev Server Components
        • +
        • Visual SourceSafe Server
        • +
        • Visual Studio Analyzer
        • +
        +

        Use the following procedure to install any of the listed components after you have installed Visual Studio 6.0

        +
        1. Uninstall Visual Studio.
        2. +
        3. Reinstall Visual Studio.
        4. +
        5. When the setup options appear, select the components you want to install with Visual Studio.
        6. +
        +

        + + + +

        When the Installation Wizard Looks for A Web Publishing Wizard Disc

        +

        +When installing Visual Studio 6.0 or the Visual J++ Technology Preview 2, and you get a dialog box asking you to insert the Web Publishing Wizard disc, close the dialog box and proceed with the installation.

        +

        Neither Visual Studio nor Visual J++ ships a Web Publishing Wizard on a separate disc. Users may get this message when they are installing Visual Studio or Visual J++ to computers that have Temp directories set to removable drives, such as an IOMega's Jazz Drive. +

        +

        After your Visual Studio or Visual J++ installation is complete, if you want to install the Web Publishing Wizard, do the following: +

        +
        1. Set your Temp environment variable to a directory on fixed media, such as your hard drive.
        2. +
        3. Run wpie15.exe from [CD Drive:] \setup of the compact disc. +
        4. +
        5. After Web Publishing Wizard setup is complete, reset your Temp environment variable directory to its previous directory, if necessary.
        6. + +
        + + + + +

        Running Standard or Server Setup When the Beta 2 Version of Microsoft Data Access Components 2.0 Is Already Installed

        +

        +If you have already installed Microsoft Data Access Components 2.0 beta 2, which comes with Visual Studio, and you run the standard or server setup again, you may get the following error message: +

        +
        File is installed and supports English. Currently, version number of filename is installed and supports English (United States). The software you are installing contains the same component, but it supports English (United States). Do you want the existing copy to be replaced? +
        +

        This message is a known issue, and will not affect your setup. You may ignore the message and click either Yes or No to continue. +

        + + + +

        How to Contact Technical Support

        +

        The online documentation includes complete information on how to get support and support options, including free support and online support. Click the MSDN Library Visual Studio 6.0 icon and open the Visual Studio Documentation. Support information is in Technical Support, under Getting Started with Visual Studio 6.0.

        +
        Note   You must install MSDN to get the online documentation.
        +

        You also can look up support information on the web at http://www.microsoft.com/support. You can also call (425) 635-7012. +

        + + + + +

        Finding More Information on Non-Visual Studio Programs and Tools Shipped with the Visual Studio Suite

        +

        For more and specific information on SDKs and non-Visual Studio programs and tools, consult their readmes. Use the following table to locate the Readmes.

        +

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Program/ToolReadme File NameLocation
        This tableis underconstruction!
        ?????????
        ?????????
        ?????????
        ?????????
        +

        +
        + + + +

        Installing Server-Side Components

        + +

        This section lists installation issues identified for server-side components shipped with Visual Studio.

        + + + +

        Minimum Requirements for Installation and Operation of Server-Side Components

        +

        Consult the following table for information on operating system, browser, and other dependency requirements for installation and use of server-side components.

        +

        Table of Minimum Requirements for Installation of Server-Side Components

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ComponentNT Server?NT Workstation?Windows 95/98?Requires Microsoft Internet Explorer?Other Dependencies?
        Windows NT Option Pack 4.0NT Svr.NT Workstation 4.0 SP3Limited on Win95None
        SQL Server 6.5 (DEV Edition)NT Svr.NT Workstation 3.51 +Installs some tools on Windows 95NoNone
        SQL Server Debugging ServiceNT Svr. 3.51 Sp5 or better------NoNeeds SQL server 6.5 (SP3)
        Visual SourceSafe Server ComponentsNT4 Svr.NT Workstation 4Windows 95Yes. Version 4 for viewing HTML HelpNone
        Posting Acceptor (2.0)NT4 Svr.NT Workstation 4.0 SP3Windows 95---Install NTOP before PA 2.0
        Remote Machine Debugging (Script Debugging)NT4 Svr.NT WorkstationWindows 95Yes. Version 4 or later None
        Visual InterDev Server ComponentsNT4 Svr.NT Workstation 4.0 SP3Windows 95Yes. Version 4 or laterInstall NTOP, MDAC, FP Extensions before VIDSS
        FrontPage Server ExtensionsNT4 Svr.NT Workstation 4.0 SP3Windows 95Yes. Version 4 or laterInstall NTOP, MDAC before FP Extension
        Fox ISAPI Samples and Extensions---NO OS dependencies (samples)---Any generic browserNone
        Visual Studio Analyzer (VISTA)YesNT Workstation 4.0 SP3Windows 95 (with DCOM update)Yes. Only on W95 to get DCOMNone
        Application Performance Explorer (APE)NT4 Svr.NT Workstation 4.0 SP3Windows 95 (with DCOM update)Yes. Only on W95 to get DCOMNone
        MDAC 2.0 UpdateNT4 Svr.NT Workstation 4.0Windows 95NoInstall after NTOP and Before SNA
        SNA serverNT4 Svr.NT Workstation 4.0---NoInstall after MDAC and MTS
        + + + + +

        Installing Server Components on Windows 95

        +

        We recommend installing all server applications on computers running Windows NT.

        +

        Enterprise and Professional Editions of Visual Studio 6.0 products are packaged with a variety of Micosoft server applications specifically tailored for the Visual Studio developer. Most applications can be installed on either Windows 95 or Windows NT operating systems. We recommend installing all server applications on Windows NT, either Workstation or Server.

        +

        If you choose to set up servers on a Windows 95 the order of installation is important. On Windows 95 some applications must be installed before others for the installation to complete successfully and the product to work. Install the components in the following order: +

        1. NT Option Pack
        2. +
        3. FrontPage 98 Server Extensions
        4. +
        5. Data Access Components 2.0
        6. +
        7. Visual InterDev Server Components
        8. +
        9. Application Performance Explorer
        10. +
        11. Visual Studio Analyzer
        12. +
        +
        • (Any Order) Visual Source Safe Server
        • +
        • (Any Order) Visual FoxPro Server Samples
        • +
        +The Installation Wizard presents these options in the same order. Again, ordering is significant on Windows 95 only. +

        + + + + +

        Known Compatibility Issues with SQL Server 6.5 and Windows NT Option Pack 4.0

        +

        +If you install SQL Server 6.5 on a computer with Windows NT Option Pack 4.0 installed, some of your Design Time Controls (DTCs) may be overwritten.

        +

        +If this happens, you will get an error message when you launch Microsoft Transaction Server (MTS). The message will instruct you to reinstall MTS.

        +

        To prevent this situation, install NT Option Pack after you install SQL Server. +

        +


        + + + +

        Configuring for Debugging

        + +

        Information in this section addresses issues on debugging and configuring computers for debugging services.

        + + + +

        Using SQL Debugging Services on a Computer with SQL Server 6.5 and Visual C++ 5.0 or Higher Installed

        +

        +To use SQL Debugging services on a computer that has SQL Server 6.5 and Visual C++ 5.0 or higher installed, make sure that the Remote Automation (RA) configuration properties of the computer are set correctly.

        +

        To check RA configuration properties +

          +
        1. Run dcomcnfg.exe. +
        2. Select Remote Automation CLSID_StubMarhsaler. +
        3. Click Properties. +
        4. In the Identity tab, select Interactive User. +
        +

        Also, your SQL Debugging scenarios may not work if you run SQL Server as a service under the Local System account. You must select This Account and enter a valid account and password. +

        +
        + + + +

        Issues Specific to Windows 95 Computers

        + +

        This section lists issues identified when Visual Studio 6.0 is installed on Windows 95 computers.

        + + + + +

        Installation Wizard May Not Restart After PWS Is Installed on Windows 95 Computers

        +

        If you choose to install Personal Web Server (PWS) on a Windows 95 computer, the Installation Wizard may not resume correctly after the computer restarts. To proceed, start Setup.exe again from the first disc of your Visual Studio 6.0 CD set. The Installation Wizard automatically resumes setup at the correct point.

        + + + + +

        The ODBC Custom Action Handler Malfunctions During Installation of Visual Studio 6.0 on a Clean Windows 95 Computer

        +

        The ODBC Custom Action Handler (CAH) works when Visual Studio 6.0 is installed on a computer running Windows NT 4.0, or a computer with Windows 95 and Microsoft Internet Explorer 4.0. The ODBC CAH fails if Visual Studio is installed on a Windows 95 computer that does not have Microsoft Internet Explorer 4.0.

        + + + + +

        Windows 95 Registry Size: 64 KB Limitation May Cause A Warning During Visual Studio Installation

        +

        [Under Construction!]

        +

        + + + + +

        Installing Microsoft FrontPage 98 Extensions on Some Windows 95 Computers

        +

        When the Installation Wizard launches other client or server setups, the Wizard becomes invisible and waits until the component installation is complete. The Wizard then reappears, enabling the user to install another component.

        +

        When you install Microsoft FrontPage 98 extensions on some Windows 95 computers, the Installation Wizard may remain hidden for several minutes after the FrontPage setup is complete. +

        +

        During the time that the Wizard is hidden, you cannot launch the setup program again. A second Installation Wizard will not start when the program detects that one is already running.

        + +
        + + + +

        Notes Impacting Other Installed Programs

        + +

        This section lists installation issues that may affect programs already installed on your computer.

        + + + + +

        IISAM Exchange Driver Will Fail if Microsoft Exchange or Microsoft Outlook Is Not Already Installed

        +

        +The IISAM Exchange driver requires that Microsoft Exchange or Microsoft Outlook be fully installed on your computer prior to installation of Visual Studio. If neither is installed, the IISAM Exchange driver will not register correctly.

        +

        +To manually correct the problem after you've installed Visual Studio 6.0, you can install Microsoft Exchange or Microsoft Outlook and then self-register the IISAM Exchange driver using this command line:

        +Regsrv32 msech35.dll +

        +

        +
        + + + +

        Issues Related to Computers with Non-U.S. Versions of Microsoft Programs

        + +

        This section lists known setup issues related to computers with non-U.S. versions of Microsoft programs.

        + + + + +

        NEC PC 98 Installation Issue

        +

        On NEC PC98's where the C drive is a floppy disk, if you get the error Cannot read drive \Device\Floppy0:, place a formatted floppy disk in the drive. Make sure that the drive door is closed and that the disk is properly formatted. Then, proceed with installation.

        + + + + +

        Special Installation Instructions for Computers with Non-U.S. Versions of Microsoft Windows NT 4.0 and Microsoft Internet Explorer

        +

        +If you are installing this version of Visual Studio 6.0 on a non-U.S. version of Windows NT 4.0, you must first install the appropriate language version of Windows NT 4.0 Service Pack 3.

        +

        +To install this version of Visual Studio 6.0 on a computer that uses an international version of Microsoft Internet Explorer, you must install the appropriate language version of Microsoft Internet Explorer.

        +

        The international versions of Windows NT 4.0 Service Pack 3 are available from these locations:

        +
      3. +ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes
      4. +
      5. +http://www.microsoft.com/support/winnt/intlsp.asp
      6. +

        The international versions of Microsoft Internet Explorer 4.x are available from:

        +
      7. +http://www.microsoft.com/ie/download/
      8. +

        +


        + + + +

        Data Access SDK 2.0

        + +

        This section discusses all issues identified in Data Access SDK 2.0.

        + + + +

        Install Requirements

        +

        The Data Access SDK delivered with Visual Studio requires that the Microsoft Data Access components be installed prior to installing this SDK. Otherwise, when the SDK setup is run, you will get the message:

        +
        ODBC is not installed on this machine. If you continue, you will receive errors. Do you wish to continue anyway?
        +

        To resolve this, make sure that you have run the Visual Studio setup before installing the Data Access SDK.

        + + + + +

        Before Using SQL Server 6.5 or Older with MDAC 2.0

        +

        You must update the catalog procedures if you plan to use SQL Server 6.5 or older with MDAC 2.0. See the SQL Server Driver Help file, drvssrv.hlp, for more information.

        +

        Typically, you will find drvssrv.hlp

        +
        • On NT systems: \winnt\system32
        • +
        • On Windows 95: \windows\system
        + +
        + + diff --git a/cadVb/KEY.DAT b/cadVb/KEY.DAT new file mode 100644 index 0000000..5034fa7 --- /dev/null +++ b/cadVb/KEY.DAT @@ -0,0 +1,5 @@ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\SetupWizard] +"aspo"=dword:00000000 + diff --git a/cadVb/MSDESIGN/MDT2DB.DLL b/cadVb/MSDESIGN/MDT2DB.DLL new file mode 100644 index 0000000..1934266 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2DB.DLL differ diff --git a/cadVb/MSDESIGN/MDT2DBNS.DLL b/cadVb/MSDESIGN/MDT2DBNS.DLL new file mode 100644 index 0000000..c7a8b12 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2DBNS.DLL differ diff --git a/cadVb/MSDESIGN/MDT2DD.DLL b/cadVb/MSDESIGN/MDT2DD.DLL new file mode 100644 index 0000000..be29b57 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2DD.DLL differ diff --git a/cadVb/MSDESIGN/MDT2DF.DLL b/cadVb/MSDESIGN/MDT2DF.DLL new file mode 100644 index 0000000..f9f3295 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2DF.DLL differ diff --git a/cadVb/MSDESIGN/MDT2DFX.DLL b/cadVb/MSDESIGN/MDT2DFX.DLL new file mode 100644 index 0000000..4da5770 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2DFX.DLL differ diff --git a/cadVb/MSDESIGN/MDT2FREF.DLL b/cadVb/MSDESIGN/MDT2FREF.DLL new file mode 100644 index 0000000..5d5b238 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2FREF.DLL differ diff --git a/cadVb/MSDESIGN/MDT2FW.DLL b/cadVb/MSDESIGN/MDT2FW.DLL new file mode 100644 index 0000000..97351f0 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2FW.DLL differ diff --git a/cadVb/MSDESIGN/MDT2FW95.DLL b/cadVb/MSDESIGN/MDT2FW95.DLL new file mode 100644 index 0000000..70b738b Binary files /dev/null and b/cadVb/MSDESIGN/MDT2FW95.DLL differ diff --git a/cadVb/MSDESIGN/MDT2G.DLL b/cadVb/MSDESIGN/MDT2G.DLL new file mode 100644 index 0000000..d127515 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2G.DLL differ diff --git a/cadVb/MSDESIGN/MDT2GDDO.DLL b/cadVb/MSDESIGN/MDT2GDDO.DLL new file mode 100644 index 0000000..d8de9fc Binary files /dev/null and b/cadVb/MSDESIGN/MDT2GDDO.DLL differ diff --git a/cadVb/MSDESIGN/MDT2GDDR.DLL b/cadVb/MSDESIGN/MDT2GDDR.DLL new file mode 100644 index 0000000..47794a9 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2GDDR.DLL differ diff --git a/cadVb/MSDESIGN/MDT2GKOR.DLL b/cadVb/MSDESIGN/MDT2GKOR.DLL new file mode 100644 index 0000000..580fe08 Binary files /dev/null and b/cadVb/MSDESIGN/MDT2GKOR.DLL differ diff --git a/cadVb/MSDESIGN/MDT2QD.DLL b/cadVb/MSDESIGN/MDT2QD.DLL new file mode 100644 index 0000000..d37510b Binary files /dev/null and b/cadVb/MSDESIGN/MDT2QD.DLL differ diff --git a/cadVb/MSDESIGN/RESOURCE/2052/MDT2DBUI.DLL b/cadVb/MSDESIGN/RESOURCE/2052/MDT2DBUI.DLL new file mode 100644 index 0000000..66fc63b Binary files /dev/null and b/cadVb/MSDESIGN/RESOURCE/2052/MDT2DBUI.DLL differ diff --git a/cadVb/MSDESIGN/RESOURCE/2052/MDT2DDUI.DLL b/cadVb/MSDESIGN/RESOURCE/2052/MDT2DDUI.DLL new file mode 100644 index 0000000..919bdb3 Binary files /dev/null and b/cadVb/MSDESIGN/RESOURCE/2052/MDT2DDUI.DLL differ diff --git a/cadVb/MSDESIGN/RESOURCE/2052/MDT2FWUI.DLL b/cadVb/MSDESIGN/RESOURCE/2052/MDT2FWUI.DLL new file mode 100644 index 0000000..6f96c0a Binary files /dev/null and b/cadVb/MSDESIGN/RESOURCE/2052/MDT2FWUI.DLL differ diff --git a/cadVb/MSDESIGN/RESOURCE/2052/MDT2QDUI.DLL b/cadVb/MSDESIGN/RESOURCE/2052/MDT2QDUI.DLL new file mode 100644 index 0000000..6ab0a8d Binary files /dev/null and b/cadVb/MSDESIGN/RESOURCE/2052/MDT2QDUI.DLL differ diff --git a/cadVb/OS/FONTS/TAHOMA.TTF b/cadVb/OS/FONTS/TAHOMA.TTF new file mode 100644 index 0000000..4bc6857 Binary files /dev/null and b/cadVb/OS/FONTS/TAHOMA.TTF differ diff --git a/cadVb/OS/GAPI32.DLL b/cadVb/OS/GAPI32.DLL new file mode 100644 index 0000000..12d83ae Binary files /dev/null and b/cadVb/OS/GAPI32.DLL differ diff --git a/cadVb/OS/HLP95EN.DLL b/cadVb/OS/HLP95EN.DLL new file mode 100644 index 0000000..9500e0b Binary files /dev/null and b/cadVb/OS/HLP95EN.DLL differ diff --git a/cadVb/OS/MSAPPS/MSINFO/IMGWALK.DLL b/cadVb/OS/MSAPPS/MSINFO/IMGWALK.DLL new file mode 100644 index 0000000..129c3dd Binary files /dev/null and b/cadVb/OS/MSAPPS/MSINFO/IMGWALK.DLL differ diff --git a/cadVb/OS/MSAPPS/MSINFO/MSINF16H.EXE b/cadVb/OS/MSAPPS/MSINFO/MSINF16H.EXE new file mode 100644 index 0000000..2328851 Binary files /dev/null and b/cadVb/OS/MSAPPS/MSINFO/MSINF16H.EXE differ diff --git a/cadVb/OS/MSAPPS/MSINFO/MSINFO32.CNT b/cadVb/OS/MSAPPS/MSINFO/MSINFO32.CNT new file mode 100644 index 0000000..cf02574 --- /dev/null +++ b/cadVb/OS/MSAPPS/MSINFO/MSINFO32.CNT @@ -0,0 +1,83 @@ +:Base msinfo32.hlp>proc4 +:Title Microsoft ϵͳϢ +:Index msinfo32=msinfo32.hlp>proc4 +1 +2 Microsoft ϵͳϢ=msinfo32_index +2 ļ˵ +3 Сļ˵=HID_FILE_RUN +3 桱ļ˵=HID_FILE_SAVE +3 ӡļ˵=HID_FILE_PRINT +3 ˳ļ˵=HID_APP_EXIT +2 ༭˵ +3 ơ༭˵=HID_EDIT_COPY +3 ȫѡ༭˵=HID_SELECT_ALL +2 ͼ˵ +3 鿴˵=HID_VIEW_TOOLBAR +3 ״̬鿴˵=HID_VIEW_STATUS_BAR +3 ˢ¡鿴˵=HID_VIEW_REFRESH +3 ȡ¡鿴˵=HID_STOP_UPDATE +3 ǰʾ鿴˵=HID_ALWAYS_ONTOP +2 ԡ˵ +3 ýԡ˵=HID_TEST_ENACT +3 ȡýԡԡ˵=HID_TEST_CANCEL +3 λýʾԡ˵=HID_TEST_LOCATE +3 öý塱ԡ˵=HID_TEST_CONFIGURE +2 ˵ +3 ⡱˵=HID_HELP_INDEX +3 ڡ˵=HID_APP_ABOUT +1 ... +3 ݽ=howto_sort +3 ʾϵЧռ=howto_show_network_drives +3 Ƶ=howto_test_audio_driver +3 λʾ=howto_locate_alternative_sample +3 Ƶ=howto_configure_audio_driver +3 ƾij=howto_copy_category_data +3 Сļ˵=HID_FILE_RUN +3 桱ļ˵=HID_FILE_SAVE +3 ӡļ˵=HID_FILE_PRINT +3 ȫѡ༭˵=HID_SELECT_ALL +3 鿴˵=HID_VIEW_TOOLBAR +3 ˢ¡鿴˵=HID_VIEW_REFRESH +1 ʲô... +3 ʵʾ=popup_appropriateness +3 (PCM).=popup_pcm +3 ڴ=popup_virtual_memory +3 λ=popup_bitness +3 Чڴ=popup_av_phys_mem +1 Ϣ +2 ϵͳ +3 ϵͳ=HID_ITEMS_SYSTEM +2 ӡ +2 ڴӡ=HID_ITEMS_PRINTING +2 ϵͳ DLL +2 ϵͳ DLL =HID_ITEMS_SYSTEM_DLLS +2 +3 滻=HID_CATEGORY_FONT_SUBSTITUTIONS +3 =HID_CATEGORY_FONT_MANAGERS +2 У +3 ע=HID_CATEGORY_PROOFING_REGISTRY_SETTINGS +3 INI =HID_CATEGORY_PROOFING_INI_SETTINGS +3 ļϢ=HID_CATEGORY_PROOFING_FILE_INFO +2 ͼι +3 ע=HID_CATEGORY_GRAPHIC_FILTERS_REGISTRY_SETTINGS +3 INI =HID_CATEGORY_GRAPHIC_FILTERS_INI_SETTINGS +3 ļϢ=HID_CATEGORY_GRAPHIC_FILTERS_FILE_INFO +2 ıת +3 ע=HID_CATEGORY_TEXT_CONVERTERS_REGISTRY_SETTINGS +3 INI =HID_CATEGORY_TEXT_CONVERTERS_INI_SETTINGS +3 ļϢ=HID_CATEGORY_TEXT_CONVERTERS_FILE_INFO +2 ʾ +3 ʾ=HID_ITEMS_DISPLAY +2 Ƶ +3 Ƶ=HID_ITEMS_AUDIO +2 Ƶ +3 ƵĿ¼=HID_ITEMS_VIDEO +2 CD ROM +3 CD ROM =HID_ITEMS_CDROM +2 еӦó +3 еӦó=HID_ITEMS_APPLICATIONS_RUNNING +2 OLE ע +3 ע=HID_CATEGORY_OLE_REGISTRATION_REGISTRY_SETTINGS +3 INI =HID_CATEGORY_OLE_REGISTRATION_INI_SETTINGS +2 ģ +3 ģ=HID_ITEMS_ACTIVE_MODULES diff --git a/cadVb/OS/MSAPPS/MSINFO/MSINFO32.EXE b/cadVb/OS/MSAPPS/MSINFO/MSINFO32.EXE new file mode 100644 index 0000000..06cfddd Binary files /dev/null and b/cadVb/OS/MSAPPS/MSINFO/MSINFO32.EXE differ diff --git a/cadVb/OS/MSAPPS/MSINFO/MSINFO32.HLP b/cadVb/OS/MSAPPS/MSINFO/MSINFO32.HLP new file mode 100644 index 0000000..de550a9 Binary files /dev/null and b/cadVb/OS/MSAPPS/MSINFO/MSINFO32.HLP differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPCDE.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPCDE.DLL new file mode 100644 index 0000000..8f513a5 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPCDE.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPCOM.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPCOM.DLL new file mode 100644 index 0000000..0a93fc1 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPCOM.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPDTM.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPDTM.DLL new file mode 100644 index 0000000..2ff2251 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPDTM.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPGEN.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPGEN.DLL new file mode 100644 index 0000000..69617b1 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPGEN.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPUMX.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPUMX.DLL new file mode 100644 index 0000000..12112d6 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPUMX.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPVCM.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPVCM.DLL new file mode 100644 index 0000000..ddbc61f Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/REPVCM.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/UML.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/UML.DLL new file mode 100644 index 0000000..57607a8 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INFOMDL/UML.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/INSREPIM.DLL b/cadVb/OS/MSAPPS/REPOSTRY/INSREPIM.DLL new file mode 100644 index 0000000..08f2749 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/INSREPIM.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/MIGREPV2.EXE b/cadVb/OS/MSAPPS/REPOSTRY/MIGREPV2.EXE new file mode 100644 index 0000000..99b05cc Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/MIGREPV2.EXE differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/MIGV2.DLL b/cadVb/OS/MSAPPS/REPOSTRY/MIGV2.DLL new file mode 100644 index 0000000..1ea02ae Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/MIGV2.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/MIGV2RC.DLL b/cadVb/OS/MSAPPS/REPOSTRY/MIGV2RC.DLL new file mode 100644 index 0000000..8f68ba9 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/MIGV2RC.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPBROWS.EXE b/cadVb/OS/MSAPPS/REPOSTRY/REPBROWS.EXE new file mode 100644 index 0000000..b6208b4 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPBROWS.EXE differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPBRRC.DLL b/cadVb/OS/MSAPPS/REPOSTRY/REPBRRC.DLL new file mode 100644 index 0000000..47b36d8 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPBRRC.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPCDLG.DLL b/cadVb/OS/MSAPPS/REPOSTRY/REPCDLG.DLL new file mode 100644 index 0000000..a9da104 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPCDLG.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPCDLG.OCX b/cadVb/OS/MSAPPS/REPOSTRY/REPCDLG.OCX new file mode 100644 index 0000000..ca81c03 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPCDLG.OCX differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPCDRC.DLL b/cadVb/OS/MSAPPS/REPOSTRY/REPCDRC.DLL new file mode 100644 index 0000000..5931b7f Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPCDRC.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPODBC.DLL b/cadVb/OS/MSAPPS/REPOSTRY/REPODBC.DLL new file mode 100644 index 0000000..cd9a53d Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPODBC.DLL differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPOSTRY.MDB b/cadVb/OS/MSAPPS/REPOSTRY/REPOSTRY.MDB new file mode 100644 index 0000000..fbde867 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPOSTRY.MDB differ diff --git a/cadVb/OS/MSAPPS/REPOSTRY/REPRC.DLL b/cadVb/OS/MSAPPS/REPOSTRY/REPRC.DLL new file mode 100644 index 0000000..f9fad63 Binary files /dev/null and b/cadVb/OS/MSAPPS/REPOSTRY/REPRC.DLL differ diff --git a/cadVb/OS/MSAPPS/VBA/MSQRY32.CNT b/cadVb/OS/MSAPPS/VBA/MSQRY32.CNT new file mode 100644 index 0000000..d6e2961 --- /dev/null +++ b/cadVb/OS/MSAPPS/VBA/MSQRY32.CNT @@ -0,0 +1,80 @@ +:Base MSQRY32.HLP>REF +:Title Microsoft Query +:Index Microsoft Query=msqry32.hlp +:Link QY9701.HLP +:Link QY9702.HLP +:Link QY9703.HLP +:Link QY9704.HLP +:Link QY9705.HLP +:Link OF9701.HLP +:Link OF9702.HLP +:Link OF9703.HLP +:Link OF9704.HLP +:Link OF9705.HLP +1 Microsoft Query +1 Microsoft Query ѽ=qutbsTroubleshootUsingMicrosoftQuery +1 ȡ +2 ȡй Microsoft Query Ϣ=ofhowGetInformationAboutMyComputer>HowTo +2 ͨOffice ֡ȡ +3 ػʾ Office =IDH_ofdefShowOfficeAssistant>HowTo +3 ƶ Office ּ=ofhowMoveOfficeAssistant>HowTo +3 ѡ Office =ofhowChangeOfficeAssistant>HowTo +3 ޸ Office ֵĴС=ofdccChangeSizeOfOfficeAssistant>HowTo +3 򿪻ر Office ֵ=ofdccTurnOfficeAssistantSoundOnOrOff>HowTo +3 Office ѽ=ofhowTroubleshootOfficeAssistant +2 ȡʽ +3 Office ֶð=oftbcGetHelpWithoutShowingOfficeAssistant>HowTo +3 Office ֶʾϢ=rerefDisplayMessagesWithoutOfficeAssistant>HowTo +1 װ +2 װɾ Microsoft Office Ķ=wohowInstallorremoveindividualcomponentsofword +1 趨Դ +2 ָݵԴ=quhowSpecifySourceToRetrieveDataFrom>HowTo +2 װ ODBC ԱⲿԴ=quconInstallODBCDriverSoThatYouCanAccessExternalDataSource>HowTo +2 ޷µԴ=qutbcICantSeemToCreateNewDataSource +1 򿪼ѯ +2 ²ѯ=qutbcCreateNewQuery +2 ѯ׼=quconGuidelinesForConstructingQuery +2 еIJѯ=quhowOpenQuery>HowTo +2 ѯ=quhowSaveQueryFileForReuse>HowTo +2 С鿴༭ SQL SQL ̻ SQL =quhowViewOrEditSQLSELECTStatementForQuery>HowTo +1 вѯ +2 ԶвѯԺвѯ=quhowRunQueryAutomaticallyOrWaitToRunAtLaterTime>HowTo +2 Microsoft Excel ؽ=quhowReturnResultSetToMicrosoftExcel>HowTo +2 ִ SQL =quhowExecuteSQLStatement>HowTo +1 ޸IJѯ +2 ɾֶ +3 ѯӱ=quhowAddOrRemoveTablesInQuery>HowTo +3 ɾѯеı=quconDeleteTableFromQuery>HowTo +3 ӻɾֶ=quhowAddFieldToQuery>HowTo +3 С鿴༭ SQL ̻=quhowViewOrEditSQLSELECTStatmentForQuery>HowTo +2 ޸ļɾ +3 Ӳѯеı=qudecJoinTablesInQuery +3 ӰѯĽ=quconWaysToJoinTablesInQuery +3 е=qurefHowOperatorsAffectJoin +3 ɾ=quhowRemoveJoin>HowTo +1 趨ݼ +2 ÷=qurefAboutUsingCriteria +2 ļ¼=qudecUseCriteriaToRetrieveSpecificRecords +2 ʽʾ=qurefExpressionsYouCanUseToCreateCustomQueries +2 ɾԻָĽ=quhowRestoreFullResultSetByRemovingCriteria>HowTo +1 ֶ +2 ֶ=qudecCalculateFieldsUsingExpressionsOrFunctions +2 ʹıʽʾ=IDH_qudefExamplesOfExpressionsThatUseArithmeticOperators +2 ڼֶʹõĺ=qurefSummaryFunctionsForTotalsInQueries +1 ޸Ľ +2 ޸ĽIJ=qudecFormatDataInQuery +2 Microsoft Query еݸʽ=quhowChangeHowYouViewDataInMicrosoftQuery +2 ɾԻָĽ=quhowRestoreFullResultSetByRemovingCriteria>HowTo +1 ݲҡ鿴 +2 ڽתijһضļ¼=quhowGoToSpecificRecordInResultSet>HowTo +2 ڲѯжԼ¼=quhowSortRecordsInQuery>HowTo +2 ڲѯв鿴ͬļ¼=quhowViewDifferentRecordsInQuery>HowTo +1 ޸IJѯݿ +2 ԱѯݿиĶ=qudecMakeChangesToDataInQueriedDatabase +1 οϢ +2 ʹ Microsoft Query еĿݼ=qukbdUseKeyboardShortcutKeys +2 Office ֵİ=ofrefKeysForWorkingWithOfficeAssistant +1 ̬ݽ(DDE) +2 ö̬ݽDDE Microsoft Query ͨ=DDEUsingDynamicDataExchangewithMicrosoftQuery +2 DDE =qurefDDECommands +:Include EULA8.CNT diff --git a/cadVb/OS/MSAPPS/VBA/MSQRY32.EXE b/cadVb/OS/MSAPPS/VBA/MSQRY32.EXE new file mode 100644 index 0000000..1d281ac Binary files /dev/null and b/cadVb/OS/MSAPPS/VBA/MSQRY32.EXE differ diff --git a/cadVb/OS/MSAPPS/VBA/MSQRY32.HLP b/cadVb/OS/MSAPPS/VBA/MSQRY32.HLP new file mode 100644 index 0000000..b87a3a3 Binary files /dev/null and b/cadVb/OS/MSAPPS/VBA/MSQRY32.HLP differ diff --git a/cadVb/OS/MSAPPS/VBA/QRYINT32.DLL b/cadVb/OS/MSAPPS/VBA/QRYINT32.DLL new file mode 100644 index 0000000..fa10df5 Binary files /dev/null and b/cadVb/OS/MSAPPS/VBA/QRYINT32.DLL differ diff --git a/cadVb/OS/SYSTEM/12520437.CPX b/cadVb/OS/SYSTEM/12520437.CPX new file mode 100644 index 0000000..238c9a7 --- /dev/null +++ b/cadVb/OS/SYSTEM/12520437.CPX @@ -0,0 +1,250 @@ +[Windows Latin 1/437 (English)] +130:44 +131:159 +132:44 +133:95 +134:253 +135:252 +137:37 +138:83 +139:60 +140:79 +145:96 +146:39 +147:34 +148:34 +149:249 +150:45 +151:95 +154:115 +155:62 +156:111 +159:89 +160:32 +161:173 +162:155 +163:156 +164:15 +165:157 +166:221 +167:21 +168:34 +169:99 +170:166 +171:174 +172:170 +173:45 +174:114 +175:95 +176:248 +177:241 +178:253 +179:51 +180:39 +181:230 +182:20 +183:250 +184:44 +185:49 +186:167 +187:175 +188:172 +189:171 +190:95 +191:168 +192:65 +193:65 +194:65 +195:65 +196:142 +197:143 +198:146 +199:128 +200:69 +201:144 +202:69 +203:69 +204:73 +205:73 +206:73 +207:73 +208:68 +209:165 +210:79 +211:79 +212:79 +213:79 +214:153 +215:120 +216:79 +217:85 +218:85 +219:85 +220:154 +221:89 +222:95 +223:225 +224:133 +225:160 +226:131 +227:97 +228:132 +229:134 +230:145 +231:135 +232:138 +233:130 +234:136 +235:137 +236:141 +237:161 +238:140 +239:139 +240:100 +241:164 +242:149 +243:162 +244:147 +245:111 +246:148 +247:246 +248:111 +249:151 +250:163 +251:150 +252:129 +253:121 +254:95 +255:152 +/ +15:164 +20:182 +21:167 +128:199 +129:252 +130:233 +131:226 +132:228 +133:224 +134:229 +135:231 +136:234 +137:235 +138:232 +139:239 +140:238 +141:236 +142:196 +143:197 +144:201 +145:230 +146:198 +147:244 +148:246 +149:242 +150:251 +151:249 +152:255 +153:214 +154:220 +155:162 +156:163 +157:165 +158:80 +159:131 +160:225 +161:237 +162:243 +163:250 +164:241 +165:209 +166:170 +167:186 +168:191 +169:95 +170:172 +171:189 +172:188 +173:161 +174:171 +175:187 +176:95 +177:95 +178:95 +179:166 +180:166 +181:166 +182:166 +183:43 +184:43 +185:166 +186:166 +187:43 +188:43 +189:43 +190:43 +191:43 +192:43 +193:45 +194:45 +195:43 +196:45 +197:43 +198:166 +199:166 +200:43 +201:43 +202:45 +203:45 +204:166 +205:45 +206:43 +207:45 +208:45 +209:45 +210:45 +211:43 +212:43 +213:43 +214:43 +215:43 +216:43 +217:43 +218:43 +219:95 +220:95 +221:166 +222:95 +223:95 +224:95 +225:223 +226:95 +227:182 +228:95 +229:95 +230:181 +231:95 +232:95 +233:95 +234:95 +235:95 +236:95 +237:95 +238:95 +239:95 +240:95 +241:177 +242:95 +243:95 +244:95 +245:95 +246:247 +247:95 +248:176 +249:149 +250:183 +251:95 +252:110 +253:178 +254:95 +255:95 diff --git a/cadVb/OS/SYSTEM/12520850.CPX b/cadVb/OS/SYSTEM/12520850.CPX new file mode 100644 index 0000000..72d8908 --- /dev/null +++ b/cadVb/OS/SYSTEM/12520850.CPX @@ -0,0 +1,249 @@ +[Windows Latin 1(1252)/850 (Multilingual-Latin 1)] +130:44 +131:159 +132:44 +133:95 +134:253 +135:252 +137:37 +138:83 +139:60 +140:79 +145:96 +146:39 +147:34 +148:34 +150:45 +151:95 +154:115 +155:62 +156:111 +159:89 +160:32 +161:173 +162:189 +163:156 +164:207 +165:190 +166:221 +167:245 +168:249 +169:184 +170:166 +171:174 +172:170 +173:240 +174:169 +175:238 +176:248 +177:241 +178:253 +179:252 +180:239 +181:230 +182:244 +183:250 +184:247 +185:251 +186:167 +187:175 +188:172 +189:171 +190:243 +191:168 +192:183 +193:181 +194:182 +195:199 +196:142 +197:143 +198:146 +199:128 +200:212 +201:144 +202:210 +203:211 +204:222 +205:214 +206:215 +207:216 +208:209 +209:165 +210:227 +211:224 +212:226 +213:229 +214:153 +215:158 +216:157 +217:235 +218:233 +219:234 +220:154 +221:237 +222:232 +223:225 +224:133 +225:160 +226:131 +227:198 +228:132 +229:134 +230:145 +231:135 +232:138 +233:130 +234:136 +235:137 +236:141 +237:161 +238:140 +239:139 +240:208 +241:164 +242:149 +243:162 +244:147 +245:228 +246:148 +247:246 +248:155 +249:151 +250:163 +251:150 +252:129 +253:236 +254:231 +255:152 +/ +15:164 +20:182 +21:167 +128:199 +129:252 +130:233 +131:226 +132:228 +133:224 +134:229 +135:231 +136:234 +137:235 +138:232 +139:239 +140:238 +141:236 +142:196 +143:197 +144:201 +145:230 +146:198 +147:244 +148:246 +149:242 +150:251 +151:249 +152:255 +153:214 +154:220 +155:248 +156:163 +157:216 +158:215 +159:131 +160:225 +161:237 +162:243 +163:250 +164:241 +165:209 +166:170 +167:186 +168:191 +169:174 +170:172 +171:189 +172:188 +173:161 +174:171 +175:187 +176:95 +177:95 +178:95 +179:166 +180:166 +181:193 +182:194 +183:192 +184:169 +185:166 +186:166 +187:43 +188:43 +189:162 +190:165 +191:43 +192:43 +193:45 +194:45 +195:43 +196:45 +197:43 +198:227 +199:195 +200:43 +201:43 +202:45 +203:45 +204:166 +205:45 +206:43 +207:164 +208:240 +209:208 +210:202 +211:203 +212:200 +213:105 +214:205 +215:206 +216:207 +217:43 +218:43 +219:95 +220:95 +221:166 +222:204 +223:95 +224:211 +225:223 +226:212 +227:210 +228:245 +229:213 +230:181 +231:254 +232:222 +233:218 +234:219 +235:217 +236:253 +237:221 +238:175 +239:180 +240:173 +241:177 +242:95 +243:190 +244:182 +245:167 +246:247 +247:184 +248:176 +249:168 +250:183 +251:185 +252:179 +253:178 +254:95 +255:32 diff --git a/cadVb/OS/SYSTEM/ADODC.SRG b/cadVb/OS/SYSTEM/ADODC.SRG new file mode 100644 index 0000000..785183e --- /dev/null +++ b/cadVb/OS/SYSTEM/ADODC.SRG @@ -0,0 +1,3 @@ +[HKEY_CLASSES_ROOT\Licenses\C4145310-469C-11d1-B182-00A0C922E820] +@ = "konhqhioohihphkouimonhqhvnwiqhhhnjti" + diff --git a/cadVb/OS/SYSTEM/ADODCCHS.DLL b/cadVb/OS/SYSTEM/ADODCCHS.DLL new file mode 100644 index 0000000..4115983 Binary files /dev/null and b/cadVb/OS/SYSTEM/ADODCCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/ANSI/ATL.DLL b/cadVb/OS/SYSTEM/ANSI/ATL.DLL new file mode 100644 index 0000000..87131a2 Binary files /dev/null and b/cadVb/OS/SYSTEM/ANSI/ATL.DLL differ diff --git a/cadVb/OS/SYSTEM/ASYCFILT.DLL b/cadVb/OS/SYSTEM/ASYCFILT.DLL new file mode 100644 index 0000000..ee97aaa Binary files /dev/null and b/cadVb/OS/SYSTEM/ASYCFILT.DLL differ diff --git a/cadVb/OS/SYSTEM/ATL.DLL b/cadVb/OS/SYSTEM/ATL.DLL new file mode 100644 index 0000000..c74d272 Binary files /dev/null and b/cadVb/OS/SYSTEM/ATL.DLL differ diff --git a/cadVb/OS/SYSTEM/AUTMGR32.EXE b/cadVb/OS/SYSTEM/AUTMGR32.EXE new file mode 100644 index 0000000..1a891d8 Binary files /dev/null and b/cadVb/OS/SYSTEM/AUTMGR32.EXE differ diff --git a/cadVb/OS/SYSTEM/AUTPRX32.DLL b/cadVb/OS/SYSTEM/AUTPRX32.DLL new file mode 100644 index 0000000..65e5231 Binary files /dev/null and b/cadVb/OS/SYSTEM/AUTPRX32.DLL differ diff --git a/cadVb/OS/SYSTEM/CABINET.DLL b/cadVb/OS/SYSTEM/CABINET.DLL new file mode 100644 index 0000000..800033f Binary files /dev/null and b/cadVb/OS/SYSTEM/CABINET.DLL differ diff --git a/cadVb/OS/SYSTEM/CMCT2CHS.DLL b/cadVb/OS/SYSTEM/CMCT2CHS.DLL new file mode 100644 index 0000000..d2bbf7c Binary files /dev/null and b/cadVb/OS/SYSTEM/CMCT2CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/CMCT3CHS.DLL b/cadVb/OS/SYSTEM/CMCT3CHS.DLL new file mode 100644 index 0000000..c8027fc Binary files /dev/null and b/cadVb/OS/SYSTEM/CMCT3CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/CMCTLCHS.DLL b/cadVb/OS/SYSTEM/CMCTLCHS.DLL new file mode 100644 index 0000000..11fc9e1 Binary files /dev/null and b/cadVb/OS/SYSTEM/CMCTLCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/CMDIALOG.SRG b/cadVb/OS/SYSTEM/CMDIALOG.SRG new file mode 100644 index 0000000..562eaa3 --- /dev/null +++ b/cadVb/OS/SYSTEM/CMDIALOG.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905] +@ = "gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj" diff --git a/cadVb/OS/SYSTEM/CMDLGCHS.DLL b/cadVb/OS/SYSTEM/CMDLGCHS.DLL new file mode 100644 index 0000000..c963c2c Binary files /dev/null and b/cadVb/OS/SYSTEM/CMDLGCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/COMCT232.DEP b/cadVb/OS/SYSTEM/COMCT232.DEP new file mode 100644 index 0000000..3de534d --- /dev/null +++ b/cadVb/OS/SYSTEM/COMCT232.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.80.22 + +; Dependencies for ComCt232.ocx + +; Default Dependencies ---------------------------------------------- + +[ComCt232.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.80.22 +Uses1=ComCat.dll +Uses2= +CABFileName=ComCt232.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ComCt232.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[ComCt232.ocx <0007>] +Uses1=CmCt2DE.dll +Uses2= + +[CmCt2DE.dll <0007>] +Uses1= +CABFileName=CmCt2DE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2DE.inf + +; ** French (FR) *** +; (000C = French) +; +[ComCt232.ocx <000C>] +Uses1=CmCt2FR.dll +Uses2= + +[CmCt2FR.dll <000C>] +Uses1= +CABFileName=CmCt2FR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2FR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[ComCt232.ocx <0010>] +Uses1=CmCt2IT.dll +Uses2= + +[CmCt2IT.dll <0010>] +Uses1= +CABFileName=CmCt2IT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2IT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[ComCt232.ocx <000A>] +Uses1=CmCt2ES.dll +Uses2= + +[CmCt2ES.dll <000A>] +Uses1= +CABFileName=CmCt2ES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2ES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[ComCt232.ocx <0011>] +Uses1=CmCt2JP.dll +Uses2= + +[CmCt2JP.dll <0011>] +Uses1= +CABFileName=CmCt2JP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2JP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[ComCt232.ocx <0012>] +Uses1=CmCt2KO.dll +Uses2= + +[CmCt2KO.dll <0012>] +Uses1= +CABFileName=CmCt2KO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2KO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[ComCt232.ocx <0404>] +Uses1=CmCt2CHT.dll +Uses2= + +[CmCt2CHT.dll <0404>] +Uses1= +CABFileName=CmCt2CHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2CHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[ComCt232.ocx <0804>] +Uses1=CmCt2CHS.dll +Uses2= + +[CmCt2CHS.dll <0804>] +Uses1= +CABFileName=CmCt2CHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCt2CHS.inf + diff --git a/cadVb/OS/SYSTEM/COMCT232.OCX b/cadVb/OS/SYSTEM/COMCT232.OCX new file mode 100644 index 0000000..0742d14 Binary files /dev/null and b/cadVb/OS/SYSTEM/COMCT232.OCX differ diff --git a/cadVb/OS/SYSTEM/COMCT332.DEP b/cadVb/OS/SYSTEM/COMCT332.DEP new file mode 100644 index 0000000..2fcaa21 --- /dev/null +++ b/cadVb/OS/SYSTEM/COMCT332.DEP @@ -0,0 +1,162 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.76 + +; Dependencies for Comct332.ocx + +; Default Dependencies ---------------------------------------------- + +[Comct332.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.76 +Uses1=MSVBVM60.dll +Uses2=StdOle2.tlb +Uses3=OleAut32.dll +Uses4=OlePro32.dll +Uses5=AsycFilt.dll +Uses6=ComCat.dll +Uses7= +CABFileName=Comct332.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Comct332.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +[MSVBVM60.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) + +[STDOLE2.TLB] +Register=$(TLBRegister) +Dest=$(WinSysPathSysFile) +Uses1=OleAut32.dll +Uses2=OlePro32.dll +Uses3=AsycFilt.dll + +[OLEAUT32.DLL] +Register=$(DLLSelfRegister) +Dest=$(WinSysPathSysFile) +Uses1= + +[OLEPRO32.DLL] +Register=$(DLLSelfRegister) +Dest=$(WinSysPathSysFile) +Uses1= + +[ASYCFILT.DLL] +Register= +Dest=$(WinSysPathSysFile) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[Comct332.ocx <0007>] +Uses1=Cmct3DE.dll +Uses2= + +[Cmct3DE.dll <0007>] +Uses1= +CABFileName=Cmct3DE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3DE.inf + +; ** French (FR) *** +; (000C = French) +; +[Comct332.ocx <000C>] +Uses1=Cmct3FR.dll +Uses2= + +[Cmct3FR.dll <000C>] +Uses1= +CABFileName=Cmct3FR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3FR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[Comct332.ocx <0010>] +Uses1=Cmct3IT.dll +Uses2= + +[Cmct3IT.dll <0010>] +Uses1= +CABFileName=Cmct3IT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3IT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[Comct332.ocx <000A>] +Uses1=Cmct3ES.dll +Uses2= + +[Cmct3ES.dll <000A>] +Uses1= +CABFileName=Cmct3ES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3ES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[Comct332.ocx <0011>] +Uses1=Cmct3JP.dll +Uses2= + +[Cmct3JP.dll <0011>] +Uses1= +CABFileName=Cmct3JP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3JP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[Comct332.ocx <0012>] +Uses1=Cmct3KO.dll +Uses2= + +[Cmct3KO.dll <0012>] +Uses1= +CABFileName=Cmct3KO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3KO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[Comct332.ocx <0404>] +Uses1=Cmct3CHT.dll +Uses2= + +[Cmct3CHT.dll <0404>] +Uses1= +CABFileName=Cmct3CHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3CHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[Comct332.ocx <0804>] +Uses1=Cmct3CHS.dll +Uses2= + +[Cmct3CHS.dll <0804>] +Uses1= +CABFileName=Cmct3CHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Cmct3CHS.inf + diff --git a/cadVb/OS/SYSTEM/COMCT332.OCX b/cadVb/OS/SYSTEM/COMCT332.OCX new file mode 100644 index 0000000..6a14281 Binary files /dev/null and b/cadVb/OS/SYSTEM/COMCT332.OCX differ diff --git a/cadVb/OS/SYSTEM/COMCT332.SRG b/cadVb/OS/SYSTEM/COMCT332.SRG new file mode 100644 index 0000000..9c756aa --- /dev/null +++ b/cadVb/OS/SYSTEM/COMCT332.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\38911DA0-E448-11D0-84A3-00DD01104159] +@ = "mcpckchcdchjcjcclidcgcgchdqdcjhcojpd" diff --git a/cadVb/OS/SYSTEM/COMCTL.SRG b/cadVb/OS/SYSTEM/COMCTL.SRG new file mode 100644 index 0000000..59e2a15 --- /dev/null +++ b/cadVb/OS/SYSTEM/COMCTL.SRG @@ -0,0 +1,5 @@ +[HKEY_CLASSES_ROOT\Licenses\57CBF9E0-6AA7-11cf-8ADB-00AA00C00905] +@ = "aahakhchghkhfhaamghhbhbhkbpgfhahlfle" + +[HKEY_CLASSES_ROOT\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1] +@ = "knlggnmntgggrninthpgmnngrhqhnnjnslsh" diff --git a/cadVb/OS/SYSTEM/COMCTL2.SRG b/cadVb/OS/SYSTEM/COMCTL2.SRG new file mode 100644 index 0000000..09e600e --- /dev/null +++ b/cadVb/OS/SYSTEM/COMCTL2.SRG @@ -0,0 +1,5 @@ +[HKEY_CLASSES_ROOT\Licenses\9E799BF1-8817-11cf-958F-0020AFC28C3B] +@ = "uqpqnqkjujkjjjjqwktjrjkjtkupsjnjtoun" + +[HKEY_CLASSES_ROOT\Licenses\4F86BADF-9F77-11d1-B1B7-0000F8753F5D] +@ = "iplpwpnippopupiivjrioppisjsjlpiiokuj" diff --git a/cadVb/OS/SYSTEM/COMCTL32.DEP b/cadVb/OS/SYSTEM/COMCTL32.DEP new file mode 100644 index 0000000..417c32e --- /dev/null +++ b/cadVb/OS/SYSTEM/COMCTL32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.80.22 + +; Dependencies for ComCtl32.ocx + +; Default Dependencies ---------------------------------------------- + +[ComCtl32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.80.22 +Uses1=ComCat.dll +Uses2= +CABFileName=ComCtl32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ComCtl32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[ComCtl32.ocx <0007>] +Uses1=CmCtlDE.dll +Uses2= + +[CmCtlDE.dll <0007>] +Uses1= +CABFileName=CmCtlDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlDE.inf + +; ** French (FR) *** +; (000C = French) +; +[ComCtl32.ocx <000C>] +Uses1=CmCtlFR.dll +Uses2= + +[CmCtlFR.dll <000C>] +Uses1= +CABFileName=CmCtlFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[ComCtl32.ocx <0010>] +Uses1=CmCtlIT.dll +Uses2= + +[CmCtlIT.dll <0010>] +Uses1= +CABFileName=CmCtlIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[ComCtl32.ocx <000A>] +Uses1=CmCtlES.dll +Uses2= + +[CmCtlES.dll <000A>] +Uses1= +CABFileName=CmCtlES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[ComCtl32.ocx <0011>] +Uses1=CmCtlJP.dll +Uses2= + +[CmCtlJP.dll <0011>] +Uses1= +CABFileName=CmCtlJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[ComCtl32.ocx <0012>] +Uses1=CmCtlKO.dll +Uses2= + +[CmCtlKO.dll <0012>] +Uses1= +CABFileName=CmCtlKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[ComCtl32.ocx <0404>] +Uses1=CmCtlCHT.dll +Uses2= + +[CmCtlCHT.dll <0404>] +Uses1= +CABFileName=CmCtlCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[ComCtl32.ocx <0804>] +Uses1=CmCtlCHS.dll +Uses2= + +[CmCtlCHS.dll <0804>] +Uses1= +CABFileName=CmCtlCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmCtlCHS.inf + diff --git a/cadVb/OS/SYSTEM/COMCTL32.OCX b/cadVb/OS/SYSTEM/COMCTL32.OCX new file mode 100644 index 0000000..3493eb7 Binary files /dev/null and b/cadVb/OS/SYSTEM/COMCTL32.OCX differ diff --git a/cadVb/OS/SYSTEM/COMDLG32.DEP b/cadVb/OS/SYSTEM/COMDLG32.DEP new file mode 100644 index 0000000..c92f6fa --- /dev/null +++ b/cadVb/OS/SYSTEM/COMDLG32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for ComDlg32.ocx + +; Default Dependencies ---------------------------------------------- + +[ComDlg32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=ComDlg32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ComDlg32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[ComDlg32.ocx <0007>] +Uses1=CmDlgDE.dll +Uses2= + +[CmDlgDE.dll <0007>] +Uses1= +CABFileName=CmDlgDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgDE.inf + +; ** French (FR) *** +; (000C = French) +; +[ComDlg32.ocx <000C>] +Uses1=CmDlgFR.dll +Uses2= + +[CmDlgFR.dll <000C>] +Uses1= +CABFileName=CmDlgFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[ComDlg32.ocx <0010>] +Uses1=CmDlgIT.dll +Uses2= + +[CmDlgIT.dll <0010>] +Uses1= +CABFileName=CmDlgIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[ComDlg32.ocx <000A>] +Uses1=CmDlgES.dll +Uses2= + +[CmDlgES.dll <000A>] +Uses1= +CABFileName=CmDlgES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[ComDlg32.ocx <0011>] +Uses1=CmDlgJP.dll +Uses2= + +[CmDlgJP.dll <0011>] +Uses1= +CABFileName=CmDlgJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[ComDlg32.ocx <0012>] +Uses1=CmDlgKO.dll +Uses2= + +[CmDlgKO.dll <0012>] +Uses1= +CABFileName=CmDlgKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[ComDlg32.ocx <0404>] +Uses1=CmDlgCHT.dll +Uses2= + +[CmDlgCHT.dll <0404>] +Uses1= +CABFileName=CmDlgCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[ComDlg32.ocx <0804>] +Uses1=CmDlgCHS.dll +Uses2= + +[CmDlgCHS.dll <0804>] +Uses1= +CABFileName=CmDlgCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=CmDlgCHS.inf + diff --git a/cadVb/OS/SYSTEM/COMDLG32.OCX b/cadVb/OS/SYSTEM/COMDLG32.OCX new file mode 100644 index 0000000..29a65f5 Binary files /dev/null and b/cadVb/OS/SYSTEM/COMDLG32.OCX differ diff --git a/cadVb/OS/SYSTEM/COMMTB32.DLL b/cadVb/OS/SYSTEM/COMMTB32.DLL new file mode 100644 index 0000000..fcd07bb Binary files /dev/null and b/cadVb/OS/SYSTEM/COMMTB32.DLL differ diff --git a/cadVb/OS/SYSTEM/CONNDCHS.DLL b/cadVb/OS/SYSTEM/CONNDCHS.DLL new file mode 100644 index 0000000..d6c2ebc Binary files /dev/null and b/cadVb/OS/SYSTEM/CONNDCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/CONNRCHS.DLL b/cadVb/OS/SYSTEM/CONNRCHS.DLL new file mode 100644 index 0000000..bf21a65 Binary files /dev/null and b/cadVb/OS/SYSTEM/CONNRCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/DAO2535.TLB b/cadVb/OS/SYSTEM/DAO2535.TLB new file mode 100644 index 0000000..f7f6b46 Binary files /dev/null and b/cadVb/OS/SYSTEM/DAO2535.TLB differ diff --git a/cadVb/OS/SYSTEM/DAO350.DLL b/cadVb/OS/SYSTEM/DAO350.DLL new file mode 100644 index 0000000..481cd7c Binary files /dev/null and b/cadVb/OS/SYSTEM/DAO350.DLL differ diff --git a/cadVb/OS/SYSTEM/DATALIST.SRG b/cadVb/OS/SYSTEM/DATALIST.SRG new file mode 100644 index 0000000..4241c1d --- /dev/null +++ b/cadVb/OS/SYSTEM/DATALIST.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\A133F000-CCB0-11d0-A316-00AA00688B10] +@ = "cibbcimbpihbbbbbnhdbeidiocmcbbdbgdoc" diff --git a/cadVb/OS/SYSTEM/DATGDCHS.DLL b/cadVb/OS/SYSTEM/DATGDCHS.DLL new file mode 100644 index 0000000..d8310c6 Binary files /dev/null and b/cadVb/OS/SYSTEM/DATGDCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/DATLSCHS.DLL b/cadVb/OS/SYSTEM/DATLSCHS.DLL new file mode 100644 index 0000000..d2cbe22 Binary files /dev/null and b/cadVb/OS/SYSTEM/DATLSCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/DATRPCHS.DLL b/cadVb/OS/SYSTEM/DATRPCHS.DLL new file mode 100644 index 0000000..12a5336 Binary files /dev/null and b/cadVb/OS/SYSTEM/DATRPCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/DBADAPT.DLL b/cadVb/OS/SYSTEM/DBADAPT.DLL new file mode 100644 index 0000000..121c172 Binary files /dev/null and b/cadVb/OS/SYSTEM/DBADAPT.DLL differ diff --git a/cadVb/OS/SYSTEM/DBCS3032.DLL b/cadVb/OS/SYSTEM/DBCS3032.DLL new file mode 100644 index 0000000..a38264f Binary files /dev/null and b/cadVb/OS/SYSTEM/DBCS3032.DLL differ diff --git a/cadVb/OS/SYSTEM/DBLIST.SRG b/cadVb/OS/SYSTEM/DBLIST.SRG new file mode 100644 index 0000000..3ab8d15 --- /dev/null +++ b/cadVb/OS/SYSTEM/DBLIST.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\096EFC40-6ABF-11cf-850C-08002B30345D] +@ = "knsgigmnmngnmnigthmgpninrmumhgkgrlrk" diff --git a/cadVb/OS/SYSTEM/DBLIST32.DEP b/cadVb/OS/SYSTEM/DBLIST32.DEP new file mode 100644 index 0000000..0e9b31e --- /dev/null +++ b/cadVb/OS/SYSTEM/DBLIST32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for DBList32.ocx + +; Default Dependencies ---------------------------------------------- + +[DBList32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=DBList32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBList32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[DBList32.ocx <0007>] +Uses1=DBLstDE.dll +Uses2= + +[DBLstDE.dll <0007>] +Uses1= +CABFileName=DBLstDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstDE.inf + +; ** French (FR) *** +; (000C = French) +; +[DBList32.ocx <000C>] +Uses1=DBLstFR.dll +Uses2= + +[DBLstFR.dll <000C>] +Uses1= +CABFileName=DBLstFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[DBList32.ocx <0010>] +Uses1=DBLstIT.dll +Uses2= + +[DBLstIT.dll <0010>] +Uses1= +CABFileName=DBLstIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[DBList32.ocx <000A>] +Uses1=DBLstES.dll +Uses2= + +[DBLstES.dll <000A>] +Uses1= +CABFileName=DBLstES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[DBList32.ocx <0011>] +Uses1=DBLstJP.dll +Uses2= + +[DBLstJP.dll <0011>] +Uses1= +CABFileName=DBLstJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[DBList32.ocx <0012>] +Uses1=DBLstKO.dll +Uses2= + +[DBLstKO.dll <0012>] +Uses1= +CABFileName=DBLstKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[DBList32.ocx <0404>] +Uses1=DBLstCHT.dll +Uses2= + +[DBLstCHT.dll <0404>] +Uses1= +CABFileName=DBLstCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[DBList32.ocx <0804>] +Uses1=DBLstCHS.dll +Uses2= + +[DBLstCHS.dll <0804>] +Uses1= +CABFileName=DBLstCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBLstCHS.inf + diff --git a/cadVb/OS/SYSTEM/DBLIST32.OCX b/cadVb/OS/SYSTEM/DBLIST32.OCX new file mode 100644 index 0000000..c858c31 Binary files /dev/null and b/cadVb/OS/SYSTEM/DBLIST32.OCX differ diff --git a/cadVb/OS/SYSTEM/DBLSTCHS.DLL b/cadVb/OS/SYSTEM/DBLSTCHS.DLL new file mode 100644 index 0000000..b2dde13 Binary files /dev/null and b/cadVb/OS/SYSTEM/DBLSTCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/DBMSSOCN.DLL b/cadVb/OS/SYSTEM/DBMSSOCN.DLL new file mode 100644 index 0000000..6dc2d84 Binary files /dev/null and b/cadVb/OS/SYSTEM/DBMSSOCN.DLL differ diff --git a/cadVb/OS/SYSTEM/DBNMPNTW.DLL b/cadVb/OS/SYSTEM/DBNMPNTW.DLL new file mode 100644 index 0000000..0c380ff Binary files /dev/null and b/cadVb/OS/SYSTEM/DBNMPNTW.DLL differ diff --git a/cadVb/OS/SYSTEM/DBRPRCHS.DLL b/cadVb/OS/SYSTEM/DBRPRCHS.DLL new file mode 100644 index 0000000..284e0b2 Binary files /dev/null and b/cadVb/OS/SYSTEM/DBRPRCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/DBRPTCHS.DLL b/cadVb/OS/SYSTEM/DBRPTCHS.DLL new file mode 100644 index 0000000..351670e Binary files /dev/null and b/cadVb/OS/SYSTEM/DBRPTCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/DRVVFP.CNT b/cadVb/OS/SYSTEM/DRVVFP.CNT new file mode 100644 index 0000000..d96fe28 --- /dev/null +++ b/cadVb/OS/SYSTEM/DRVVFP.CNT @@ -0,0 +1,111 @@ +:Base drvvfp.hlp>Ref +:Title Visual FoxPro ODBC Driver +1 Installing and Configuring +2 System Requirements=SystemRequirements@drvvfp.hlp>Ref +2 Supported Versions of FoxPro=SupportedVersionsofFoxPro@drvvfp.hlp>Ref +2 Setting Up the Visual FoxPro ODBC Driver=SettingUptheVisualFoxProODBCDriver>Proc +2 ODBC Visual FoxPro Setup Dialog Box=ODBCVisualFoxProSetupDialogBox +1 Using the Visual FoxPro Driver +2 Overview=VisualFoxProODBCDriverOverview +2 Adding a Visual FoxPro Data Source=AddingaVisualFoxProDataSource>Proc +2 Modifying a Visual FoxPro Data Source=ModifyingaVisualFoxProDataSource>Proc +2 Deleting a Visual FoxPro Data Source=DeletingaVisualFoxProDataSource>Proc +2 Connecting to a Visual FoxPro Data Source=ConnectingtoaVisualFoxProDataSource>Proc +2 Using Connection Strings=UsingConnectionStrings@drvvfp.hlp>proc +2 Using the Driver with your Visual Basic Application=UsingtheVisualFoxProODBCDriverwithyourVisualBasicApplication +2 Using the Driver with your C or C++ Application=UsingtheVisualFoxProODBCDriverwithyourCorVisualC++Application +2 Accessing Visual FoxPro Data from Microsoft Office +3 Overview=AccessingVisualFoxProDatafromaMicrosoftOfficeApplication +3 Adding a Visual FoxPro Data Source from Microsoft Excel=AccessingaVisualFoxProDataSourcefromExcel>proc +3 Importing Data into Excel from a Visual FoxPro Database=ImportingDataintoExcelfromaVisualFoxProDatabase>proc +3 Creating Mailing Labels in Microsoft Word Using Visual FoxPro Data=CreatingMailingLabelsinMicrosoftWordUsingVisualFoxProData>proc +3 Importing Visual FoxPro Data into Access=ImportingVisualFoxProDataintoAccess +3 Querying and Updating Visual FoxPro Data from Access=QueryingandUpdatingVisualFoxProDatafromAccess +1 Technical Reference +2 Bookmark Support=BookmarkSupport>Ref +2 Concurrency Model=SupportedConcurrencyModel@drvvfp.hlp>Ref +2 Cursor Model=SupportedCursorModel@drvvfp.hlp>Ref +2 Data Types=DataTypes +2 International Support=InternationalSupport +2 Language Support in Rules, Triggers, Default Values, and Stored Procedures=FoxProLanguageSupportinStoredProcedures +2 ODBC API=SupportedODBCAPI +2 ODBC SQL Grammar=SupportedODBCSQLGrammar +2 Registry Entries=RegistryEntries +2 Scalar Functions=SupportedScalarFunctions +2 SET Commands=SupportedSETCommands +2 Thread Support=ThreadSupport +2 Unsupported FoxPro Commands and Functions=UnsupportedFoxProCommandsandFunctions +1 ODBC API +2 Supported ODBC API=SupportedODBCAPI +2 SQLAllocConnect=SQLAllocConnect@drvvfp.hlp>Ref +2 SQLAllocEnv=SQLAllocEnv@drvvfp.hlp>Ref +2 SQLAllocStmt=SQLAllocStmt@drvvfp.hlp>Ref +2 SQLBindCol=SQLBindCol@drvvfp.hlp>Ref +2 SQLBindParameter=SQLBindParameter@drvvfp.hlp>Ref +2 SQLCancel=SQLCancel@drvvfp.hlp>Ref +2 SQLColAttributes=SQLColAttributes@drvvfp.hlp>Ref +2 SQLColumns=SQLColumns@drvvfp.hlp>Ref +2 SQLConnect=SQLConnect@drvvfp.hlp>Ref +2 SQLDataSources=SQLDataSources@drvvfp.hlp>Ref +2 SQLDescribeCol=SQLDescribeCol@drvvfp.hlp>Ref +2 SQLDisconnect=SQLDisconnect@drvvfp.hlp>Ref +2 SQLDriverConnect=SQLDriverConnect@drvvfp.hlp>Ref +2 SQLDrivers=SQLDrivers@drvvfp.hlp>Ref +2 SQLError=SQLError@drvvfp.hlp>Ref +2 SQLExecDirect=SQLExecDirect@drvvfp.hlp>Ref +2 SQLExecute=SQLExecute@drvvfp.hlp>Ref +2 SQLExtendedFetch=SQLExtendedFetch@drvvfp.hlp>Ref +2 SQLFetch=SQLFetch@drvvfp.hlp>Ref +2 SQLFreeConnect=SQLFreeConnect@drvvfp.hlp>Ref +2 SQLFreeEnv=SQLFreeEnv@drvvfp.hlp>Ref +2 SQLFreeStmt=SQLFreeStmt@drvvfp.hlp>Ref +2 SQLGetConnectOption=SQLGetConnectOption@drvvfp.hlp>Ref +2 SQLGetCursorName=SQLGetCursorName@drvvfp.hlp>Ref +2 SQLGetData=SQLGetData@drvvfp.hlp>Ref +2 SQLGetFunctions=SQLGetFunctions@drvvfp.hlp>Ref +2 SQLGetInfo=SQLGetInfo@drvvfp.hlp>Ref +2 SQLGetStmtOption=SQLGetStmtOption@drvvfp.hlp>Ref +2 SQLGetTypeInfo=SQLGetTypeInfo@drvvfp.hlp>Ref +2 SQLMoreResults=SQLMoreResults@drvvfp.hlp>Ref +2 SQLNumParams=SQLNumParams@drvvfp.hlp>Ref +2 SQLNumResultCols=SQLNumResultCols@drvvfp.hlp>Ref +2 SQLParamData=SQLParamData@drvvfp.hlp>Ref +2 SQLParamOptions=SQLParamOptions@drvvfp.hlp>Ref +2 SQLPrepare=SQLPrepare@drvvfp.hlp>Ref +2 SQLPrimaryKeys=SQLPrimaryKeys@drvvfp.hlp>Ref +2 SQLPutData=SQLPutData@drvvfp.hlp>Ref +2 SQLRowCount=SQLRowCount +2 SQLSetConnectOption=SQLSetConnectOption@drvvfp.hlp>Ref +2 SQLSetCursorName=SQLSetCursorName@drvvfp.hlp>Ref +2 SQLSetPos=SQLSetPos@drvvfp.hlp>Ref +2 SQLSetScrollOptions=SQLSetScrollOptions@drvvfp.hlp>Ref +2 SQLSetStmtOption=SQLSetStmtOption@drvvfp.hlp>Ref +2 SQLSpecialColumns=SQLSpecialColumns@drvvfp.hlp>Ref +2 SQLStatistics=SQLStatistics@drvvfp.hlp>Ref +2 SQLTables=SQLTables@drvvfp.hlp>Ref +2 SQLTransact=SQLTransact@drvvfp.hlp>Ref +1 Visual FoxPro Language Reference +2 ALTER TABLE - SQL=lngALTER_TABLE___SQL +2 CREATE TABLE - SQL=lngCREATE_TABLE___SQL +2 DELETE - SQL=lngDELETE___SQL +2 DELETE TAG=lngDELETE_TAG +2 DROP TABLE=lngDROP_TABLE +2 INDEX=lngINDEX +2 INSERT - SQL=lngINSERT___SQL +2 SELECT - SQL=lngSELECT___SQL +2 SET ANSI=lngSET_ANSI>Ref +2 SET BLOCKSIZE=lngSET_BLOCKSIZE>Ref +2 SET COLLATE=lngSET_COLLATE +2 SET DELETED=lngSET_DELETED +2 SET EXACT=lngSET_EXACT +2 SET EXCLUSIVE=lngSET_EXCLUSIVE +2 SET NULL=lngSET_NULL +2 SET PATH=lngSET_PATH +2 SET REPROCESS=lngSET_REPROCESS +2 SET UNIQUE=lngSET_UNIQUE +2 UPDATE - SQL=lngUPDATE___SQL +1 Error Messages +2 Error Messages Overview=ErrorMessagesOverview +2 Visual FoxPro ODBC Driver Native Error Messages=VisualFoxProODBCDriverNativeErrorMessages +2 ODBC Error Codes=ODBCErrorCodes +1 Troubleshooting=Troubleshooting@drvvfp.hlp>Error diff --git a/cadVb/OS/SYSTEM/DRVVFP.HLP b/cadVb/OS/SYSTEM/DRVVFP.HLP new file mode 100644 index 0000000..2347018 Binary files /dev/null and b/cadVb/OS/SYSTEM/DRVVFP.HLP differ diff --git a/cadVb/OS/SYSTEM/DS16GT.DLL b/cadVb/OS/SYSTEM/DS16GT.DLL new file mode 100644 index 0000000..7f43d82 Binary files /dev/null and b/cadVb/OS/SYSTEM/DS16GT.DLL differ diff --git a/cadVb/OS/SYSTEM/DS32GT.DLL b/cadVb/OS/SYSTEM/DS32GT.DLL new file mode 100644 index 0000000..37810ba Binary files /dev/null and b/cadVb/OS/SYSTEM/DS32GT.DLL differ diff --git a/cadVb/OS/SYSTEM/EXPSRV.DLL b/cadVb/OS/SYSTEM/EXPSRV.DLL new file mode 100644 index 0000000..3436858 Binary files /dev/null and b/cadVb/OS/SYSTEM/EXPSRV.DLL differ diff --git a/cadVb/OS/SYSTEM/FLXGDCHS.DLL b/cadVb/OS/SYSTEM/FLXGDCHS.DLL new file mode 100644 index 0000000..a677742 Binary files /dev/null and b/cadVb/OS/SYSTEM/FLXGDCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/GAPI32.DLL b/cadVb/OS/SYSTEM/GAPI32.DLL new file mode 100644 index 0000000..12d83ae Binary files /dev/null and b/cadVb/OS/SYSTEM/GAPI32.DLL differ diff --git a/cadVb/OS/SYSTEM/HH.EXE b/cadVb/OS/SYSTEM/HH.EXE new file mode 100644 index 0000000..423a86f Binary files /dev/null and b/cadVb/OS/SYSTEM/HH.EXE differ diff --git a/cadVb/OS/SYSTEM/HLP95EN.DLL b/cadVb/OS/SYSTEM/HLP95EN.DLL new file mode 100644 index 0000000..9500e0b Binary files /dev/null and b/cadVb/OS/SYSTEM/HLP95EN.DLL differ diff --git a/cadVb/OS/SYSTEM/HTMPDCHS.DLL b/cadVb/OS/SYSTEM/HTMPDCHS.DLL new file mode 100644 index 0000000..fef056f Binary files /dev/null and b/cadVb/OS/SYSTEM/HTMPDCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/HTMPRCHS.DLL b/cadVb/OS/SYSTEM/HTMPRCHS.DLL new file mode 100644 index 0000000..0b0d93d Binary files /dev/null and b/cadVb/OS/SYSTEM/HTMPRCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/HTMUTIL.DLL b/cadVb/OS/SYSTEM/HTMUTIL.DLL new file mode 100644 index 0000000..a67de0c Binary files /dev/null and b/cadVb/OS/SYSTEM/HTMUTIL.DLL differ diff --git a/cadVb/OS/SYSTEM/INETCHS.DLL b/cadVb/OS/SYSTEM/INETCHS.DLL new file mode 100644 index 0000000..edd4b3a Binary files /dev/null and b/cadVb/OS/SYSTEM/INETCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/INETCTLS.SRG b/cadVb/OS/SYSTEM/INETCTLS.SRG new file mode 100644 index 0000000..98fbcb5 --- /dev/null +++ b/cadVb/OS/SYSTEM/INETCTLS.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\78E1BDD1-9941-11cf-9756-00AA00C00908] +@ = "yjrjvqkjlqqjnqkjvprqsjnjvkuknjpjtoun" diff --git a/cadVb/OS/SYSTEM/INSTCAT.SQL b/cadVb/OS/SYSTEM/INSTCAT.SQL new file mode 100644 index 0000000..c627159 --- /dev/null +++ b/cadVb/OS/SYSTEM/INSTCAT.SQL @@ -0,0 +1,18051 @@ + +/* +** INSTCAT.SQL +** Installs catalog stored procedures on the Microsoft SQL Server. +** Copyright 1992-1998, Microsoft Corp. All rights reserved. +*/ + +/* +NOTE: you MUST change the last row inserted into spt_server_info +to be version number of this file. the convention is j.nn.bbb, where +j is the major version number ('7' now), nn is the minor version number +('00' now), and bbb is the build number. +insert into spt_server_info + values (500, 'SYS_SPROC_VERSION', '7.00.bbb') +*/ + +/****************************************************************************/ +/* This portion sets up the ability to perform all the functions in this */ +/* script */ +/****************************************************************************/ +go +use master +go +dump tran master with no_log +go + +set quoted_identifier on +go + +if (exists (select * from sysobjects + where name = 'sp_configure' and type = 'P ')) +begin + execute sp_configure 'update',1 +end +reconfigure with override +go + +exec sp_MS_upd_sysobj_category 1 /*Capture datetime for use below.*/ + +go + +/* +** If old versions of tables exist, drop them. +*/ +if (exists (select * from sysobjects + where name = 'MSdatatype_info' and type = 'U ')) + drop table MSdatatype_info +go +if (exists (select * from sysobjects + where name = 'MSdatatype_info_ext' and type = 'U ')) + drop table MSdatatype_info_ext +go +if (exists (select * from sysobjects + where name = 'MStable_types' and type = 'U ')) + drop table MStable_types +go +if (exists (select * from sysobjects + where name = 'MSserver_info' and type = 'U ')) + drop table MSserver_info +go +if (exists (select * from sysobjects + where name = 'spt_table_types' and type = 'U ')) + drop table spt_table_types +go +/* +** If tables or procs already exist, drop them. +*/ + +if (exists (select * from sysobjects + where name = 'spt_datatype_info' and type = 'U ')) + drop table spt_datatype_info +go +if (exists (select * from sysobjects + where name = 'spt_datatype_info_ext' and type = 'U ')) + drop table spt_datatype_info_ext +go +if (exists (select * from sysobjects + where name = 'sp_add_server_sortinfo' and type = 'P ')) + drop proc sp_add_server_sortinfo +go +if (exists (select * from sysobjects + where name = 'spt_server_info' and type = 'U ')) + drop table spt_server_info +go +if (exists (select * from sysobjects + where name = 'sp_tables' and type = 'P ')) + drop proc sp_tables +go +if (exists (select * from sysobjects + where name = 'sp_statistics' and type = 'P ')) + drop proc sp_statistics +go +if (exists (select * from sysobjects + where name = 'sp_columns' and type = 'P ')) + drop proc sp_columns +go +if (exists (select * from sysobjects + where name = 'sp_fkeys' and type = 'P ')) + drop proc sp_fkeys +go +if (exists (select * from sysobjects + where name = 'sp_pkeys' and type = 'P ')) + drop proc sp_pkeys +dump tran master with no_log +go + +go +if (exists (select * from sysobjects + where name = 'sp_stored_procedures' and type = 'P ')) + drop proc sp_stored_procedures +go +if (exists (select * from sysobjects + where name = 'sp_sproc_columns' and type = 'P ')) + drop proc sp_sproc_columns +go +if (exists (select * from sysobjects + where name = 'sp_table_privileges' and type = 'P ')) + drop proc sp_table_privileges +go +if (exists (select * from sysobjects + where name = 'sp_column_privileges' and type = 'P ')) + drop proc sp_column_privileges +go +dump tran master with no_log +go +if (exists (select * from sysobjects + where name = 'sp_server_info' and type = 'P ')) + drop proc sp_server_info +go +if (exists (select * from sysobjects + where name = 'sp_datatype_info' and type = 'P ')) + drop proc sp_datatype_info +go +if (exists (select * from sysobjects + where name = 'sp_special_columns' and type = 'P ')) + drop proc sp_special_columns +go +if (exists (select * from sysobjects + where name = 'sp_databases' and type = 'P ')) + drop proc sp_databases +go +dump tran master with no_log +go +if (exists (select * from sysobjects + where name = 'sp_ddopen' and type = 'P ')) + drop proc sp_ddopen +go + +dump tran master with no_log +go + + +if (exists (select * from sysobjects + where name = 'spt_provider_types' and type = 'U ')) + begin + drop table spt_provider_types + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_catalogs_rowset' and type = 'P ')) + begin + drop procedure sp_catalogs_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_column_privileges_rowset' and type = 'P ')) + begin + drop procedure sp_column_privileges_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_columns_rowset' and type = 'P ')) + begin + drop procedure sp_columns_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_foreign_keys_rowset' and type = 'P ')) + begin + drop procedure sp_foreign_keys_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_indexes_rowset' and type = 'P ')) + begin + drop procedure sp_indexes_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_primary_keys_rowset' and type = 'P ')) + begin + drop procedure sp_primary_keys_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_procedure_params_rowset' and type = 'P ')) + begin + drop procedure sp_procedure_params_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_procedures_rowset' and type = 'P ')) + begin + drop procedure sp_procedures_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_provider_types_rowset' and type = 'P ')) + begin + drop procedure sp_provider_types_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_schemata_rowset' and type = 'P ')) + begin + drop procedure sp_schemata_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_statistics_rowset' and type = 'P ')) + begin + drop procedure sp_statistics_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_tables_rowset' and type = 'P ')) + begin + drop procedure sp_tables_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_tables_info_rowset' and type = 'P ')) + begin + drop procedure sp_tables_info_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_table_privileges_rowset' and type = 'P ')) + begin + drop proc sp_table_privileges_rowset + dump tran master with no_log + end +go +if (exists (select * from sysobjects + where name = 'sp_linkedservers_rowset' and type = 'P ')) + begin + drop proc sp_linkedservers_rowset + dump tran master with no_log + end +go + + +print 'creating table spt_datatype_info_ext' +go + +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin /* Pre 6.0 server */ + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following error.' + create table spt_datatype_info_ext ( + user_type smallint not null, + CREATE_PARAMS varchar(32) null, + AUTO_INCREMENT smallint null, + typename varchar(32)) +end +go +if (charindex('6.00', @@version) > 0 or + charindex('6.50', @@version) > 0 or + charindex('7.00', @@version) > 0) +begin /* 6.0 or later server */ + create table spt_datatype_info_ext ( + user_type smallint not null, + CREATE_PARAMS varchar(32) null, + AUTO_INCREMENT smallint null, + typename sysname) /* from systypes, to avoid xusertype hard-code */ +end +go + +grant select on spt_datatype_info_ext to public +go + + +insert into spt_datatype_info_ext + /* CHAR user_type, create_params, auto_increment */ + values (1, 'length' ,0, 'char') + +insert into spt_datatype_info_ext + /* VARCHAR user_type, create_params, auto_increment */ + values (2, 'max length' ,0, 'varchar') + +insert into spt_datatype_info_ext + /* BINARY user_type, create_params, auto_increment */ + values (3, 'length' ,0, 'binary') + +insert into spt_datatype_info_ext + /* VARBINARY user_type, create_params, auto_increment */ + values (4, 'max length' ,0, 'varbinary') + +if (charindex('6.00', @@version) > 0 or + charindex('6.50', @@version) > 0 or + charindex('7.00', @@version) > 0) +begin /* Add 6.0 data types */ + insert into spt_datatype_info_ext + /* DECIMAL user_type, create_params, auto_increment */ + values (26, 'precision,scale' ,0, 'decimal') + + insert into spt_datatype_info_ext + /* NUMERIC user_type, create_params, auto_increment */ + values (25, 'precision,scale' ,0, 'numeric') + + insert into spt_datatype_info_ext + /* DECIMAL IDENTITY user_type, create_params, auto_increment */ + values (26, 'precision' ,1, 'decimal') + + insert into spt_datatype_info_ext + /* NUMERIC IDENTITY user_type, create_params, auto_increment */ + values (25, 'precision' ,1, 'numeric') + +end +else /* Pre 6.0 server, add SYSNAME create param */ + begin + insert into spt_datatype_info_ext + /* SYSNAME user_type, create_param, auto_increments */ + values (18, 'max length' ,0, 'sysname') + + end +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go +if (charindex('7.00', @@version) > 0) +begin /* Update usertypes for 7.00 server */ + begin tran + insert into spt_datatype_info_ext + /* NCHAR user_type, create_params, auto_increment */ + values (0, 'length' ,0, 'nchar') + + insert into spt_datatype_info_ext + /* NVARCHAR user_type, create_params, auto_increment */ + values (0, 'max length' ,0, 'nvarchar') + + /* SET user_type TO SPHINX VALUES */ + update spt_datatype_info_ext set user_type = xusertype + from spt_datatype_info_ext e, systypes t where t.name = e.typename + + commit tran +end +go + +create unique clustered index datatypeinfoextclust on spt_datatype_info_ext(user_type,AUTO_INCREMENT) +go + +print 'creating table spt_datatype_info' +go +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin /* Pre 6.0 server */ + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following error.' + create table spt_datatype_info ( + ss_dtype tinyint not null, + fixlen int null, /* datatype len for variable, else null */ + ODBCVer tinyint null, /* version if needed, else null */ + TYPE_NAME varchar(32) not null, + DATA_TYPE smallint not null, + data_precision int null, + numeric_scale smallint null, /* min scale if 6.0 */ + RADIX smallint null, + length int null, + LITERAL_PREFIX varchar(32) null, + LITERAL_SUFFIX varchar(32) null, + CREATE_PARAMS varchar(32) null, + NULLABLE smallint not null, + CASE_SENSITIVE smallint not null, + SEARCHABLE smallint not null, + UNSIGNED_ATTRIBUTE smallint null, + MONEY smallint not null, + AUTO_INCREMENT smallint null, + LOCAL_TYPE_NAME varchar(32) null, + charbin tinyint null, /* 0 for char/binary types, NULL for all others */ + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null) +end +go +if (charindex('6.00', @@version) > 0 or + charindex('6.50', @@version) > 0 or + charindex('7.00', @@version) > 0) +begin /* 6.0 or later server */ + create table spt_datatype_info ( + ss_dtype tinyint not null, + fixlen int null, /* datatype len for variable, else null */ + ODBCVer tinyint null, /* version if needed, else null */ + TYPE_NAME sysname not null, + DATA_TYPE smallint not null, + data_precision int null, + numeric_scale smallint null, /* min scale if 6.0 */ + RADIX smallint null, + length int null, + LITERAL_PREFIX varchar(32) null, + LITERAL_SUFFIX varchar(32) null, + CREATE_PARAMS varchar(32) null, + NULLABLE smallint not null, + CASE_SENSITIVE smallint not null, + SEARCHABLE smallint not null, + UNSIGNED_ATTRIBUTE smallint null, + MONEY smallint not null, + AUTO_INCREMENT smallint null, + LOCAL_TYPE_NAME sysname null, + charbin tinyint null, /* 0 for char/binary types, NULL for all others */ + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null) +end +go + +grant select on spt_datatype_info to public +go + +/* Get case sensitivity */ +/*(leih 10/8/96) SID: Part I. break into two batches to avoid OOM error */ +if 'A' = 'A' /* create dummy begin block */ +begin + declare @case smallint + + begin tran + select @case = 0 + select @case = 1 where 'a' <> 'A' + + /* Local Binary */ + insert into spt_datatype_info values + (45,null,null,'binary',-2,null,null,null,null,'0x',null,'length',1,0,2,null,0,null,'binary',0,-2,null) + + /* Local Bit */ + insert into spt_datatype_info values + (50,null,null,'bit',-7,1,0,2,null,null,null,null,0,0,2,null,0,null,'bit',null,-7,null) + + /* Local Char */ + insert into spt_datatype_info values + (47,null,null,'char',1,null,null,null,null,'''','''','length',1,@case,3,null,0,null,'char',0,1,null) + + /* Local Datetime */ + insert into spt_datatype_info values + (61,8,2,'datetime',11,23,3,10,16,'''','''',null,1,0,3,null,0,null,'datetime',null,9,3) + insert into spt_datatype_info values + (61,8,3,'datetime',93,23,3,10,16,'''','''',null,1,0,3,null,0,null,'datetime',null,9,3) + + /* Local Smalldatetime */ + insert into spt_datatype_info values + (58,4,2,'smalldatetime',11,16,0,10,16,'''','''',null,1,0,3,null,0,null,'smalldatetime',null,9,3) + insert into spt_datatype_info values + (58,4,3,'smalldatetime',93,16,0,10,16,'''','''',null,1,0,3,null,0,null,'smalldatetime',null,9,3) + + /* Local Float */ + insert into spt_datatype_info values + (62,8,2,'float',6,15,null,10,8,null,null,null,1,0,2,0,0,0,'float',null,6,null) + insert into spt_datatype_info values + (62,8,3,'float',6,53,null, 2,8,null,null,null,1,0,2,0,0,0,'float',null,6,null) + + /* Local Real */ + insert into spt_datatype_info values + (59,4,2,'real',7, 7,null,10,4,null,null,null,1,0,2,0,0,0,'real',null,7,null) + insert into spt_datatype_info values + (59,4,3,'real',7,24,null, 2,4,null,null,null,1,0,2,0,0,0,'real',null,7,null) + + /* Local Smallmoney */ + insert into spt_datatype_info values + (122,4,null,'smallmoney',3,10,4,10,12,'$',null,null,1,0,2,0,1,0,'smallmoney',null,3,null) + + /* Local Money */ + insert into spt_datatype_info values + (60,8,null,'money',3,19,4,10,21,'$',null,null,1,0,2,0,1,0,'money',null,3,null) + + /* Local Int */ + insert into spt_datatype_info values + (56,4,null,'int',4,10,0,10,4,null,null,null,1,0,2,0,0,0,'int',null,4,null) + + commit tran +end +go + +/*(leih 10/8/96) SID: Part II. break into two batches to avoid OOM error */ +if 'A' = 'A' /* create dummy begin block */ +begin + declare @case smallint + + begin tran + select @case = 0 + select @case = 1 where 'a' <> 'A' + + + /* Local Smallint */ + insert into spt_datatype_info values + (52,2,null,'smallint',5,5,0,10,2,null,null,null,1,0,2,0,0,0,'smallint',null,5,null) + insert into spt_datatype_info values + (52,2,1,'smallint',5,5,0,10,2,null,null,null,1,0,2,0,0,0,'smallint',null,5,null) + + /* Local Tinyint */ + insert into spt_datatype_info values + (48,1,null,'tinyint',-6,3,0,10,1,null,null,null,1,0,2,1,0,0,'tinyint',null,-6,null) + + /* Local Text */ + insert into spt_datatype_info values + (35,null,null,'text',-1,2147483647,null,null,2147483647,'''','''',null,1,@case,1,null,0,null,'text',0,-1,null) + + /* Local Varbinary */ + insert into spt_datatype_info values + (37,null,null,'varbinary',-3,null,null,null,null,'0x',null,'max length',1,0,2,null,0,null,'varbinary',0,-3,null) + + /* Local Varchar */ + insert into spt_datatype_info values + (39,null,null,'varchar',12,null,null,null,null,'''','''','max length',1,@case,3,null,0,null,'varchar',0,12,null) + + /* Local Image */ + insert into spt_datatype_info values + (34,null,null,'image',-4,2147483647,null,null,2147483647,'0x',null,null,1,0,0,null,0,null,'image',0,-4,null) + + if (charindex('6.00', @@version) > 0 or + charindex('6.50', @@version) > 0 or + charindex('7.00', @@version) > 0) + begin /* Add 6.0 data types */ + /* Local Decimal */ + insert into spt_datatype_info values /* sql server type is 'decimaln' */ + (55,null,null,'decimal',3,38,0,10,null,null,null,'precision,scale',1,0,2,0,0,0,'decimal',null,3,null) + + /* Local Numeric */ + insert into spt_datatype_info values /* sql server type is 'numericn' */ + (63,null,null,'numeric',2 ,38,0,10,null,null,null,'precision,scale',1,0,2,0,0,0,'numeric',null,2,null) + + /* Identity attribute data types */ + + /* Identity Int */ + insert into spt_datatype_info values + (56,null,null,'int identity',4,10,0,10,null,null,null,null,0,0,2,0,0,1,'int identity',null,4,null) + + /* Identity Smallint */ + insert into spt_datatype_info values + (52,null,null,'smallint identity',5,5,0,10,null,null,null,null,0,0,2,0,0,1,'smallint identity',null,5,null) + + /* Identity Tinyint */ + insert into spt_datatype_info values + (48,null,null,'tinyint identity',-6,3,0,10,null,null,null,null,0,0,2,1,0,1,'tinyint identity',null,-6,null) + + /* Identity Numeric */ + insert into spt_datatype_info values /* sql server type is 'decmaln' */ + (55,null,null,'decimal() identity',3,38,0,10,null,null,null,'precision,scale',0,0,2,0,0,1,'decimal() identity',null,3,null) + + /* Identity Numeric */ + insert into spt_datatype_info values /* sql server type is 'decmaln' */ + (63,null,null,'numeric() identity',2,38,0,10,null,null,null,'precision,scale',0,0,2,0,0,1,'numeric() identity',null,2,null) + + end + + if (charindex('7.00', @@version) = 0) + begin /* Add nullable type for non-Sphinx server */ + /* Local Datetimn */ + insert into spt_datatype_info values + (111,4,2,'smalldatetime',11,16,0,10,16,'''','''',null,1,0,3,null,0,null,'smalldatetime',null,9,3) + insert into spt_datatype_info values + (111,4,3,'smalldatetime',93,16,0,10,16,'''','''',null,1,0,3,null,0,null,'smalldatetime',null,9,3) + insert into spt_datatype_info values /* sql server type is 'datetimn' */ + (111,8,2,'datetime',11,23,3,10,16,'''','''',null,1,0,3,null,0,null,'datetime',null,9,3) + insert into spt_datatype_info values + (111,8,3,'datetime',93,23,3,10,16,'''','''',null,1,0,3,null,0,null,'datetime',null,9,3) + + /* Local Floatn */ + insert into spt_datatype_info values /* sql server type is 'floatn' */ + (109,4,2,'real',7, 7,null,10,4,null,null,null,1,0,2,0,0,0,'real',null,7,null) + insert into spt_datatype_info values + (109,4,3,'real',7,24,null, 2,4,null,null,null,1,0,2,0,0,0,'real',null,7,null) + insert into spt_datatype_info values /* sql server type is 'floatn' */ + (109,8,2,'float',6,15,null,10,8,null,null,null,1,0,2,0,0,0,'float',null,6,null) + insert into spt_datatype_info values + (109,8,3,'float',6,53,null, 2,8,null,null,null,1,0,2,0,0,0,'float',null,6,null) + + /* Local Moneyn */ + insert into spt_datatype_info values /* sql server type is 'moneyn' */ + (110,4,null,'smallmoney',3,10,4,10,12,'$',null,null,1,0,2,0,1,0,'smallmoney',null,3,null) + insert into spt_datatype_info values /* sql server type is 'moneyn' */ + (110,8,null,'money',3,19,4,10,21,'$',null,null,1,0,2,0,1,0,'money',null,3,null) + + /* Local Intn */ + insert into spt_datatype_info values /* sql server type is 'intn' */ + (38,4,null,'int',4,10,0,10,4,null,null,null,1,0,2,0,0,0,'int',null,4,null) + insert into spt_datatype_info values /* sql server type is 'intn' */ + (38,2,null,'smallint',5,5,0,10,2,null,null,null,1,0,2,0,0,0,'smallint',null,5,null) + insert into spt_datatype_info values + (38,1,null,'tinyint',-6,3,0,10,1,null,null,null,1,0,2,1,0,0,'tinyint',null,-6,null) + + if (charindex('6.00', @@version) > 0 or + charindex('6.50', @@version) > 0 or + charindex('7.00', @@version) > 0) + begin /* Add 6.0 data types */ + /* Local Decimaln */ + insert into spt_datatype_info values /* sql server type is 'decimaln' */ + (106,null,null,'decimal',3,38,0,10,null,null,null,'precision,scale',1,0,2,0,0,0,'decimal',null,3,null) + insert into spt_datatype_info values /* sql server type is 'decmaln' */ + (106,null,null,'decimal() identity',3,38,0,10,null,null,null,'precision,scale',0,0,2,0,0,1,'decimal() identity',null,3,null) + + /* Local Numericn */ + insert into spt_datatype_info values /* sql server type is 'numericn' */ + (108,null,null,'numeric',2,38,0,10,null,null,null,'precision,scale',1,0,2,0,0,0,'numeric',null,2,null) + insert into spt_datatype_info values /* sql server type is 'decmaln' */ + (108,null,null,'numeric() identity',2,38,0,10,null,null,null,'precision,scale',0,0,2,0,0,1,'numeric() identity',null,2,null) + end + end + + commit tran +end +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go +if (charindex('7.00', @@version) > 0) + begin + declare @case smallint + + select @case = 0 + select @case = 1 where 'a' <> 'A' + + /* Local Timestamp */ + insert into spt_datatype_info values + (0,null,null,'timestamp',-2,8,null,null,null,'0x',null,null,1,0,2,null,0,null,'timestamp',0,-2,null) + + /* Local GUID */ + insert into spt_datatype_info values + (0,null,null,'uniqueidentifier',-11,36,null,null,null,'''','''',null,1,0,2,null,0,null,'uniqueidentifier',NULL,-11,null) + + /* Local NChar */ + insert into spt_datatype_info values + (0,null,null,'nchar',-8,null,null,null,null,'N''','''','length',1,@case,3,null,0,null,'nchar',0,-8,null) + + /* Local NVarchar */ + insert into spt_datatype_info values + (0,null,null,'nvarchar',-9,null,null,null,null,'N''','''','max length',1,@case,3,null,0,null,'nvarchar',0,-9,null) + + /* Local NText */ + insert into spt_datatype_info values + (0,null,null,'ntext',-10,2147483646,null,null,2147483646,'N''','''',null,1,@case,1,null,0,null,'ntext',0,-10,null) + + update spt_datatype_info set nullable = 1 + where TYPE_NAME = 'bit' + + update spt_datatype_info set ss_dtype = (select xtype from systypes + where TYPE_NAME like name+'%') + end +go + +create unique clustered index datatypeinfoclust on spt_datatype_info(ss_dtype,fixlen,ODBCVer,AUTO_INCREMENT) +go + +dump tran master with no_log +go + +print 'creating table spt_server_info' +go +create table spt_server_info ( + attribute_id int NOT NULL, + attribute_name varchar(60) NOT NULL, + attribute_value varchar(255) NOT NULL) +go + +create unique clustered index serverinfoclust on spt_server_info(attribute_id) +go + +/* +** (leih 2/11/98) +** The following SP is shared by instcat.sql and the server to add information +** related to server language collations. The server calls it at the end of +** collation change to update the catalog with the new language collations +** Everything in this SP should NOT use tempdb. +*/ +create procedure sp_add_server_sortinfo +as +-- spt_server_info has unigue clustered index on attribute_id +delete spt_server_info where attribute_id = 16 +delete spt_server_info where attribute_id = 18 + +--insert into spt_server_info +-- select 18,'COLLATION_SEQ', +-- 'charset='+t2.name+' sort_order='+t1.name +-- +' charset_num='+rtrim(convert(char(4),t1.csid))+ +-- ' sort_order_num='+rtrim(convert(char(4),t1.id)) +-- from master.dbo.syscharsets t1, master.dbo.syscharsets t2, master.dbo.sysconfigures t3 +-- where t1.csid=t2.id and t1.id=t3.value and t3.config in (123,1123) +declare @sortid int, @csid int, @sortname varchar(255), @attribute_value varchar(255) +select @sortid = value from sysconfigures where config = 1123 +select @csid = csid, @sortname = name from master.dbo.syscharsets where id = @sortid +select @attribute_value = 'charset='+ name +' sort_order=' + @sortname + + ' charset_num=' + rtrim(convert(char(4),@csid))+ + ' sort_order_num=' + rtrim(convert(char(4),@sortid)) + from syscharsets where id = @csid + +insert into spt_server_info + values (18,'COLLATION_SEQ', isnull(@attribute_value, ' ')) + +if 'A' = 'a' /* If not case sensitive server */ +begin + insert into spt_server_info + values (16,'IDENTIFIER_CASE','MIXED') +end +else +begin + insert into spt_server_info + values (16,'IDENTIFIER_CASE','SENSITIVE') +end + +go + +exec sp_add_server_sortinfo +go + +if (charindex('7.00', @@version) = 0) + begin + drop procedure sp_add_server_sortinfo /* not used by older servers */ + dump tran master with no_log + end +go + + +/*(leih 10/8/96) SID: Part I break into two batches to avoid OOM error */ +insert into spt_server_info + values (1,'DBMS_NAME','Microsoft SQL Server') +insert into spt_server_info + values (2,'DBMS_VER',@@version) +insert into spt_server_info + values (10,'OWNER_TERM','owner') +insert into spt_server_info + values (11,'TABLE_TERM','table') +insert into spt_server_info + values (12,'MAX_OWNER_NAME_LENGTH','30') +insert into spt_server_info + values (13,'TABLE_LENGTH','30') +insert into spt_server_info + values (14,'MAX_QUAL_LENGTH','30') +insert into spt_server_info + values (15,'COLUMN_LENGTH','30') +insert into spt_server_info + values (17,'TX_ISOLATION','2') +insert into spt_server_info + values (19,'SAVEPOINT_SUPPORT','Y') +insert into spt_server_info + values (20,'MULTI_RESULT_SETS','Y') +insert into spt_server_info + values (22,'ACCESSIBLE_TABLES','Y') +go + +/*(leih 10/8/96) SID: Part II. break into two batches to avoid OOM error */ +insert into spt_server_info + values (100,'USERID_LENGTH','30') +insert into spt_server_info + values (101,'QUALIFIER_TERM','database') +insert into spt_server_info + values (102,'NAMED_TRANSACTIONS','Y') +insert into spt_server_info + values (103,'SPROC_AS_LANGUAGE','Y') +insert into spt_server_info + values (104,'ACCESSIBLE_SPROC','Y') +insert into spt_server_info + values (105,'MAX_INDEX_COLS','16') +insert into spt_server_info + values (106,'RENAME_TABLE','Y') +insert into spt_server_info + values (107,'RENAME_COLUMN','Y') +insert into spt_server_info + values (108,'DROP_COLUMN','N') +insert into spt_server_info + values (109,'INCREASE_COLUMN_LENGTH','N') +if (charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + insert into spt_server_info + values (110,'DDL_IN_TRANSACTION','N') +end +else +begin + insert into spt_server_info + values (110,'DDL_IN_TRANSACTION','Y') +end +insert into spt_server_info + values (111,'DESCENDING_INDEXES','N') +insert into spt_server_info + values (112,'SP_RENAME','Y') +insert into spt_server_info + values (113,'REMOTE_SPROC','Y') +insert into spt_server_info + values (500,'SYS_SPROC_VERSION','7.00.481') +go + +if (charindex('7.00', @@version) > 0) +begin /* Update values for 7.00 server */ + update spt_server_info set attribute_value = '128' + where attribute_id in (12,13,14,15,100) +end +go + +grant select on spt_server_info to public +go + +print 'creating sp_column_privileges' +go + +/* Procedure for pre 6.50 server */ +CREATE PROCEDURE sp_column_privileges ( + @table_name varchar(32), + @table_owner varchar(32) = null, + @table_qualifier varchar(32) = null, + @column_name varchar(96) = null) /* 3*32 */ +as + + set nocount on + declare @table_id int + DECLARE @full_table_name varchar(65) /* 2*32 + 1 */ + declare @low smallint /* range of userids to check */ + declare @high smallint + declare @owner_uid smallint + + select @low = 0, @high = 32767 + + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_5~~' + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + SELECT @full_table_name = @table_owner + '.' + @table_name + end + /* Get Object ID */ + select @table_id = object_id(@full_table_name) + + if (@@trancount <> 0) + begin /* If inside a transaction */ + raiserror 20003 '~~Rush_6~~' + return + end + + /* + ** We need to create a table which will contain a row for every row to + ** be returned to the client. + */ + + create table #column_priv1( + COLUMN_NAME varchar(32) NOT NULL, + grantor smallint NOT NULL, + grantee smallint NOT NULL, + select_privilege bit, + select_grantable bit, + insert_privilege bit, + insert_grantable bit, + update_privilege bit, + update_grantable bit, + references_privilege bit, + references_grantable bit, + uid smallint NOT NULL, + gid smallint NOT NULL) + +/* +** insert a row for the table owner (who has all permissions) +*/ + select @owner_uid = ( + select uid + from sysobjects + where id = @table_id) + + if (charindex('6.00', @@version) > 0) + begin + insert into #column_priv1 + select + c.name, + u.uid, + @owner_uid, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + @owner_uid, + 0 + from syscolumns c, sysusers u + where id = @table_id + and c.number = 0 + and u.suid = 1 /* grantor is dbo of database */ + end + else + begin + insert into #column_priv1 + select + c.name, + u.uid, + @owner_uid, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + @owner_uid, + 0 + from syscolumns c, sysusers u + where id = @table_id + and c.number = 0 + and u.suid = 1 /* grantor is dbo of database */ + end +/* +** now stick in a row for every column for every user in the database +** we will need to weed out those who have no permissions later +** (and yes this is a cartesion product: the uid field in sysprotects +** can also have a group id, in which case we need to extend those +** privileges to all group members). +*/ + + insert into #column_priv1 + select distinct + c.name, + o.uid, + u.uid, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + u.uid, + u.gid + from sysusers u, syscolumns c, sysobjects o + where o.id = @table_id + and c.id = o.id + and c.number = 0 + and u.gid <> u.uid + and u.uid <> @owner_uid + + /* + ** we need to create another temporary table to contain all the various + ** protection information for the table in question + */ + create table #protects ( + uid smallint NOT NULL, + grantor smallint NOT NULL, + action tinyint NOT NULL, + protecttype tinyint NOT NULL, + name varchar(32) NOT NULL) + + insert into #protects + select + p.uid, + p.uid, + p.action, + p.protecttype, + isnull(col_name(id, c.number), '~All') + from + sysprotects p, + master.dbo.spt_values c, + master.dbo.spt_values a, + master.dbo.spt_values b + where + convert(tinyint, substring(isnull(p.columns, 0x1), c.low, 1)) + & c.high <> 0 + and c.number <= ( + select count(*) + from syscolumns + where id = @table_id) + and c.type = 'P' + and a.type = 'T' + and a.number = p.action + and p.action in (193,195,197,26) + and b.type = 'T' + and b.number = p.protecttype + and p.id = @table_id + and p.uid between @low and @high + + + update #column_priv1 + set select_privilege = 1 + from #protects p + where + p.protecttype = 205 + and p.action = 193 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where + protecttype = 206 + and action = 193 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and ( uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + update #column_priv1 + set insert_privilege = 1 + from #protects p + where + p.protecttype = 205 + and p.action = 195 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where + protecttype = 206 + and action = 195 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and (uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + update #column_priv1 + set update_privilege = 1 + from #protects p + where + p.protecttype = 205 + and p.action = 197 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where protecttype = 206 + and action = 197 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and (uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + update #column_priv1 + set references_privilege = 1 + from #protects p + where + p.protecttype = 205 + and p.action = 26 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where protecttype = 206 + and action = 26 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and (uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + update #column_priv1 + set select_grantable = 1 + from #protects p + where + p.protecttype = 204 + and p.action = 193 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where + protecttype = 206 + and action = 193 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and ( uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + update #column_priv1 + set insert_grantable = 1 + from #protects p + where + p.protecttype = 204 + and p.action = 195 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where + protecttype = 206 + and action = 195 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and ( uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + update #column_priv1 + set update_grantable = 1 + from #protects p + where + p.protecttype = 204 + and p.action = 197 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where + protecttype = 206 + and action = 197 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and ( uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + update #column_priv1 + set references_grantable = 1 + from #protects p + where + p.protecttype = 204 + and p.action = 26 + and (p.name = #column_priv1.COLUMN_NAME + or name = '~All') + and (p.uid = 0 + or p.uid = #column_priv1.gid + or p.uid = #column_priv1.uid) + and not exists ( + select * from #protects + where + protecttype = 206 + and action = 26 + and (name = #column_priv1.COLUMN_NAME + or name = '~All') + and ( uid = 0 + or uid = #column_priv1.gid + or uid = #column_priv1.uid)) + + create table #column_priv2( + COLUMN_NAME varchar(32) NOT NULL, + grantor smallint NULL, + grantee smallint NOT NULL, + PRIVILEGE varchar(32) NOT NULL, + IS_GRANTABLE varchar(3) NULL) + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'SELECT', + 'NO' + from #column_priv1 + where select_privilege = 1 and select_grantable = 0 + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'INSERT', + 'NO' + from #column_priv1 + where insert_privilege = 1 and insert_grantable = 0 + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'UPDATE', + 'NO' + from #column_priv1 + where update_privilege = 1 and update_grantable = 0 + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'REFERENCES', + 'NO' + from #column_priv1 + where references_privilege = 1 and references_grantable = 0 + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'SELECT', + 'YES' + from #column_priv1 + where select_grantable = 1 + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'INSERT', + 'YES' + from #column_priv1 + where insert_grantable = 1 + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'UPDATE', + 'YES' + from #column_priv1 + where update_grantable = 1 + + insert into #column_priv2 + select + COLUMN_NAME, + grantor, + grantee, + 'REFERENCES', + 'YES' + from #column_priv1 + where references_grantable = 1 + + select + convert(varchar(32),db_name()) TABLE_QUALIFIER, + convert(varchar(32),user_name(@owner_uid)) TABLE_OWNER, + @table_name TABLE_NAME, + COLUMN_NAME, + convert(varchar(32),user_name(grantor)) GRANTOR, + convert(varchar(32),user_name(grantee)) GRANTEE, + PRIVILEGE, + IS_GRANTABLE + from #column_priv2 + where COLUMN_NAME like @column_name + order by 4, 7 +go + +if (charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.50 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_column_privileges +go + +/* Procedure for 6.50 server */ +CREATE PROCEDURE sp_column_privileges ( + @table_name varchar(32), + @table_owner varchar(32) = null, + @table_qualifier varchar(32) = null, + @column_name varchar(96) = null) /* 3*32 */ +as + + declare @table_id int + + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + select @table_id = object_id(@table_name) + end + else + begin /* Qualified table name */ + select @table_id = object_id(@table_owner + '.' + @table_name) + end + + select + convert(varchar(32),db_name()) TABLE_QUALIFIER, + convert(varchar(32),user_name(o.uid)) TABLE_OWNER, + @table_name TABLE_NAME, + convert(varchar(32),c.name) COLUMN_NAME, + convert(varchar(32),user_name(p.grantor)) GRANTOR, + convert(varchar(32),user_name(u.uid)) GRANTEE, + convert (varchar(32),case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert (varchar(3),case when p.protecttype = 205 then 'NO' + else 'YES' + end) IS_GRANTABLE + from sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c + where + c.id = @table_id + and c.name like @column_name + and c.id = p.id + and c.id = o.id + and case substring(p.columns, 1, 1) & 1 + when NULL then 255 /* all columns have permission */ + when 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, isnull(substring(p.columns, v.low, 1),0))) + end + & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns + where id = @table_id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or + (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case substring(p1.columns, 1, 1) & 1 + when NULL then 255 /* all columns have permission */ + when 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,isnull(substring(p.columns, v.low, 1),0))) + end + & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + convert(varchar(32),db_name()) TABLE_QUALIFIER, + convert(varchar(32),user_name(o.uid)) TABLE_OWNER, + @table_name TABLE_NAME, + convert(varchar(32),col_name(@table_id, c.colid)) COLUMN_NAME, + convert(varchar(32),user_name(u.uid)) grantor, + convert(varchar(32),user_name(o.uid)) grantee, + convert (varchar(32),case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert(varchar(3),'YES') IS_GRANTABLE + from sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + c.id = @table_id + and c.name like @column_name + and c.id = o.id + and u.suid = 1 /* grantor is dbo of database */ + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 7 +go + + + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_column_privileges +go + +/* Procedure for 7.00 server */ +CREATE PROCEDURE sp_column_privileges ( + @table_name sysname, + @table_owner sysname = null, + @table_qualifier sysname = null, + @column_name nvarchar(384) = null) /* 3*128 */ +as + + declare @table_id int + + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + select @table_id = object_id(quotename(@table_name)) + end + else + begin /* Qualified table name */ + if @table_owner = N'' + begin /* If empty owner name */ + select @table_id = 0 + end + else + begin + select @table_id = object_id(quotename(@table_owner) + + '.' + quotename(@table_name)) + end + end + + select + convert(sysname,db_name()) TABLE_QUALIFIER, + convert(sysname,user_name(o.uid)) TABLE_OWNER, + @table_name TABLE_NAME, + convert(sysname,c.name) COLUMN_NAME, + convert(sysname,user_name(p.grantor)) GRANTOR, + convert(sysname,user_name(u.uid)) GRANTEE, + convert (varchar(32),case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert (varchar(3),case when p.protecttype = 205 then 'NO' + else 'YES' + end) IS_GRANTABLE + from sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c, sysmembers m + where + c.id = @table_id + and c.name like @column_name + and c.id = p.id + and c.id = o.id + and case substring(p.columns, 1, 1) & 1 + when NULL then 255 /* all columns have permission */ + when 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, isnull(substring(p.columns, v.low, 1),0))) + end + & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns + where id = @table_id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + /* expand groups - AKUNDONE: only 1 level of group unrolling here. Need more?? */ + and (u.uid > 0 and u.uid < 16384) + and ((p.uid = u.uid) or + (p.uid = m.groupuid and u.uid = m.memberuid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case substring(p1.columns, 1, 1) & 1 + when NULL then 255 /* all columns have permission */ + when 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,isnull(substring(p.columns, v.low, 1),0))) + end + & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + convert(sysname,db_name()) TABLE_QUALIFIER, + convert(sysname,user_name(o.uid)) TABLE_OWNER, + @table_name TABLE_NAME, + convert(sysname,col_name(@table_id, c.colid)) COLUMN_NAME, + convert(sysname,user_name(u.uid)) grantor, + convert(sysname,user_name(o.uid)) grantee, + convert (varchar(32),case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert(varchar(3),'YES') IS_GRANTABLE + from sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + c.id = @table_id + and c.name like @column_name + and c.id = o.id + and u.uid = 1 /* grantor is 'dbo' of database */ + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 7 +go + + +grant execute on sp_column_privileges to public +go + +dump tran master with no_log +go + +print 'creating sp_columns' +go + +/* Procedure for pre-6.0 server */ +CREATE PROCEDURE sp_columns ( + @table_name varchar(96), + @table_owner varchar(96) = null, + @table_qualifier varchar(32) = null, + @column_name varchar(96) = null, + @ODBCVer int = 2) +AS + DECLARE @full_table_name varchar(193) + DECLARE @table_id int + + if @ODBCVer <> 3 + select @ODBCVer = 2 + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_5~~' + return + end + end + if @table_name is null + begin /* If table name not supplied, match all */ + select @table_name = '%' + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + SELECT @full_table_name = @table_owner + '.' + @table_name + end + + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + if ((charindex('%',@full_table_name) = 0) and + (charindex('_',@full_table_name) = 0) and + @table_id <> 0) + begin + /* this block is for the case where there is no pattern + matching required for the table name */ + SELECT + TABLE_QUALIFIER = convert(varchar(32),DB_NAME()), + TABLE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + TABLE_NAME = convert(varchar(32),o.name), + COLUMN_NAME = convert(varchar(32),c.name), + d.DATA_TYPE, + TYPE_NAME = t.name, + "PRECISION" = isnull(d.data_precision, convert(int,c.length)), + LENGTH = isnull(d.length, convert(int,c.length)), + SCALE = d.numeric_scale, + d.RADIX, + NULLABLE = /* set nullability from status flag */ + convert(smallint, convert(bit, c.status&8)), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = text, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.data_precision, convert(int,c.length))+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',(c.status&8)+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + syscomments m, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.id = @table_id + AND c.id = o.id + AND t.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND o.type <> 'P' + AND c.usertype = t.usertype + AND c.name like @column_name + AND c.cdefault *= m.id + AND m.colid = 1 + ORDER BY 17 + end + else + begin + /* this block is for the case where there IS pattern + matching done on the table name */ + if @table_owner is null /* If owner not supplied, match all */ + select @table_owner = '%' + SELECT + TABLE_QUALIFIER = convert(varchar(32),DB_NAME()), + TABLE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + TABLE_NAME = convert(varchar(32),o.name), + COLUMN_NAME = convert(varchar(32),c.name), + d.DATA_TYPE, + TYPE_NAME = t.name, + "PRECISION" = isnull(d.data_precision, convert(int,c.length)), + LENGTH = isnull(d.length, convert(int,c.length)), + SCALE = d.numeric_scale, + d.RADIX, + NULLABLE = /* set nullability from status flag */ + convert(smallint, convert(bit, c.status&8)), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = text, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.data_precision, convert(int,c.length))+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',(c.status&8)+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + syscomments m, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.name like @table_name + AND user_name(o.uid) like @table_owner + AND o.id = c.id + AND t.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND o.type <> 'P' + AND c.usertype = t.usertype + AND c.name like @column_name + AND c.cdefault *= m.id + AND m.colid = 1 + ORDER BY 2, 3, 17 + end +go + +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following error.' +end +else + drop proc sp_columns +go + +/* Procedure for 6.0 and 6.50 server */ +CREATE PROCEDURE sp_columns ( + @table_name varchar(96), + @table_owner varchar(96) = null, + @table_qualifier varchar(32) = null, + @column_name varchar(96) = null, + @ODBCVer int = 2) +AS + DECLARE @full_table_name varchar(193) + DECLARE @table_id int + + if @ODBCVer <> 3 + select @ODBCVer = 2 + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_name is null + begin /* If table name not supplied, match all */ + select @table_name = '%' + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + SELECT @full_table_name = @table_owner + '.' + @table_name + end + + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + if ((charindex('%',@full_table_name) = 0) and + (charindex('[',@full_table_name) = 0) and + (charindex('_',@full_table_name) = 0) and + @table_id <> 0) + begin + /* this block is for the case where there is no pattern + matching required for the table name */ + SELECT + TABLE_QUALIFIER = convert(varchar(32),DB_NAME()), + TABLE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + TABLE_NAME = convert(varchar(32),o.name), + COLUMN_NAME = convert(varchar(32),c.name), + d.DATA_TYPE, + convert(varchar(32),case + when t.usertype > 100 or t.usertype in (18,80) then t.name + else d.TYPE_NAME + end) TYPE_NAME, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else isnull(convert(int,c.prec), 2147483647) + end) "PRECISION", + convert(int,case + when d.ss_dtype IN (106, 108, 55, 63) then /* decimal/numeric types */ + c.prec+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, c.scale), + d.RADIX, + NULLABLE = /* set nullability from status flag */ + convert(smallint, convert(bit, c.status&8)), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = text, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(convert(int,c.prec), 2147483647)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',(c.status&8)+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + syscomments m, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.id = @table_id + AND c.id = o.id + AND t.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND o.type <> 'P' + AND isnull(d.AUTO_INCREMENT,0) = (c.status&128)/128 + AND c.usertype = t.usertype + AND c.name like @column_name + AND c.cdefault *= m.id + AND m.colid = 1 + ORDER BY 17 + end + else + begin + /* this block is for the case where there IS pattern + matching done on the table name */ + if @table_owner is null /* If owner not supplied, match all */ + select @table_owner = '%' + SELECT + TABLE_QUALIFIER = convert(varchar(32),DB_NAME()), + TABLE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + TABLE_NAME = convert(varchar(32),o.name), + COLUMN_NAME = convert(varchar(32),c.name), + d.DATA_TYPE, + convert(varchar(32),case + when t.usertype > 100 or t.usertype in (18,80) then t.name + else d.TYPE_NAME + end) TYPE_NAME, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else isnull(convert(int,c.prec), 2147483647) + end) "PRECISION", + convert(int,case + when d.ss_dtype IN (106, 108, 55, 63) then /* decimal/numeric types */ + c.prec+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, c.scale), + d.RADIX, + NULLABLE = /* set nullability from status flag */ + convert(smallint, convert(bit, c.status&8)), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = text, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(convert(int,c.prec), 2147483647)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',(c.status&8)+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + syscomments m, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.name like @table_name + AND user_name(o.uid) like @table_owner + AND o.id = c.id + AND t.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND o.type <> 'P' + AND isnull(d.AUTO_INCREMENT,0) = (c.status&128)/128 + AND c.usertype = t.usertype + AND c.name like @column_name + AND c.cdefault *= m.id + AND m.colid = 1 + ORDER BY 2, 3, 17 + end +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_columns +go + +/* Procedure for 7.0 server */ +CREATE PROCEDURE sp_columns ( + @table_name nvarchar(384), + @table_owner nvarchar(384) = null, + @table_qualifier sysname = null, + @column_name nvarchar(384) = null, + @ODBCVer int = 2) +AS + DECLARE @full_table_name nvarchar(769) + DECLARE @table_id int + + if @ODBCVer <> 3 + select @ODBCVer = 2 + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_name is null + begin /* If table name not supplied, match all */ + select @table_name = '%' + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = quotename(@table_name) + end + else + begin /* Qualified table name */ + if @table_owner = '' + begin /* If empty owner name */ + SELECT @full_table_name = quotename(@table_owner) + end + else + begin + SELECT @full_table_name = quotename(@table_owner) + + '.' + quotename(@table_name) + end + end + + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + if ((isnull(charindex('%', @full_table_name),0) = 0) and + (isnull(charindex('[', @table_name),0) = 0) and + (isnull(charindex('[', @table_owner),0) = 0) and + (isnull(charindex('_', @full_table_name),0) = 0) and + @table_id <> 0) + begin + /* this block is for the case where there is no pattern + matching required for the table name */ + SELECT + TABLE_QUALIFIER = convert(sysname,DB_NAME()), + TABLE_OWNER = convert(sysname,USER_NAME(o.uid)), + TABLE_NAME = convert(sysname,o.name), + COLUMN_NAME = convert(sysname,c.name), + d.DATA_TYPE, + convert (sysname,case + when t.xusertype > 255 then t.name + else d.TYPE_NAME + end) TYPE_NAME, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else OdbcPrec(c.xtype,c.length,c.xprec) + end) "PRECISION", + convert(int,case + when type_name(d.ss_dtype) IN ('numeric','decimal') then /* decimal/numeric types */ + OdbcPrec(c.xtype,c.length,c.xprec)+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, OdbcScale(c.xtype,c.xscale)), + d.RADIX, + NULLABLE = convert(smallint, ColumnProperty (c.id, c.name, 'AllowsNull')), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = text, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.length, c.length)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254), + substring('NO YES',(ColumnProperty (c.id, c.name, 'AllowsNull')*3)+1,3)), + SS_DATA_TYPE = c.type + FROM + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t, + syscolumns c + LEFT OUTER JOIN syscomments m on c.cdefault = m.id + AND m.colid = 1 + WHERE + o.id = @table_id + AND c.id = o.id + AND t.xtype = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND o.type <> 'P' + AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name, 'IsIdentity'),0) + AND c.xusertype = t.xusertype + AND c.name like @column_name + ORDER BY 17 + end + else + begin + /* this block is for the case where there IS pattern + matching done on the table name */ + if @table_owner is null /* If owner not supplied, match all */ + select @table_owner = '%' + SELECT + TABLE_QUALIFIER = convert(sysname,DB_NAME()), + TABLE_OWNER = convert(sysname,USER_NAME(o.uid)), + TABLE_NAME = convert(sysname,o.name), + COLUMN_NAME = convert(sysname,c.name), + d.DATA_TYPE, + convert (sysname,case + when t.xusertype > 255 then t.name + else d.TYPE_NAME + end) TYPE_NAME, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else OdbcPrec(c.xtype,c.length,c.xprec) + end) "PRECISION", + convert(int,case + when type_name(d.ss_dtype) IN ('numeric','decimal') then /* decimal/numeric types */ + OdbcPrec(c.xtype,c.length,c.xprec)+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, OdbcScale(c.xtype,c.xscale)), + d.RADIX, + NULLABLE = convert(smallint, ColumnProperty (c.id, c.name, 'AllowsNull')), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = text, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.length, c.length)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254), + rtrim(substring('NO YES',(ColumnProperty (c.id, c.name, 'AllowsNull')*3)+1,3))), + SS_DATA_TYPE = c.type + FROM + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t, + syscolumns c + LEFT OUTER JOIN syscomments m on c.cdefault = m.id + AND m.colid = 1 + WHERE + o.name like @table_name + AND user_name(o.uid) like @table_owner + AND o.id = c.id + AND t.xtype = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND o.type <> 'P' + AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name, 'IsIdentity'),0) + AND c.xusertype = t.xusertype + AND c.name like @column_name + ORDER BY 2, 3, 17 + end +go + +grant execute on sp_columns to public +go + +dump tran master with no_log +go + +print 'creating sp_databases' +go + +/* Procedure for pre-7.0 server */ +create proc sp_databases +as + set nocount on + /* Use temporary table to sum up database size w/o using group by */ + create table #databases ( + DATABASE_NAME varchar(32) NOT NULL, + size int NOT NULL) + + /* Insert row for each database */ + insert into #databases + select + name, + (select sum(size) from master.dbo.sysusages + where dbid = d.dbid) + from master.dbo.sysdatabases d + + select + DATABASE_NAME, + DATABASE_SIZE = size*2, /* Convert from 2048 byte pages to K */ + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from #databases + order by 1 +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_databases +go + +/* Procedure for 7.0 server */ +create proc sp_databases +as + set nocount on + declare @name sysname + declare @SQL nvarchar(600) + + /* Use temporary table to sum up database size w/o using group by */ + create table #databases ( + DATABASE_NAME sysname NOT NULL, + size int NOT NULL) + + declare c1 cursor for + select name from master.dbo.sysdatabases + + open c1 + fetch c1 into @name + + while @@fetch_status >= 0 + begin + select @SQL = 'insert into #databases + select N'''+ @name + ''', sum(size) from ' + + QuoteName(@name) + '.dbo.sysfiles' + /* Insert row for each database */ + execute (@SQL) + fetch c1 into @name + end + deallocate c1 + + select + DATABASE_NAME, + DATABASE_SIZE = size*8,/* Convert from 8192 byte pages to K */ + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from #databases + order by 1 +go + +grant execute on sp_databases to public +go + +dump tran master with no_log +go + +print 'creating sp_datatype_info' +go + +/* Procedure for pre-6.0 server */ +create proc sp_datatype_info + (@data_type int = 0, @ODBCVer tinyint = 2) +as + if @ODBCVer <> 3 + select @ODBCVer = 2 + if @data_type = 0 + select + TYPE_NAME = t.name, + d.DATA_TYPE, + "PRECISION" = isnull(d.data_precision, convert(int,t.length)), + d.LITERAL_PREFIX, + d.LITERAL_SUFFIX, + e.CREATE_PARAMS, + d.NULLABLE, + d.CASE_SENSITIVE, + d.SEARCHABLE, + d.UNSIGNED_ATTRIBUTE, + d.MONEY, + d.AUTO_INCREMENT, + LOCAL_TYPE_NAME = t.name, + MINIMUM_SCALE = d.numeric_scale, + MAXIMUM_SCALE = d.numeric_scale, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + NUM_PREC_RADIX = convert(int,d.RADIX), + INTERVAL_PRECISION = convert(smallint,NULL), + USERTYPE = t.usertype + from master.dbo.spt_datatype_info d, master.dbo.spt_datatype_info_ext e, systypes t + where + d.ss_dtype = t.type + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + and t.usertype *= e.user_type + and t.type not in (111,109,38,110) /* get rid of nullable types */ + order by 2, 12, 11, t.usertype + + else + select + TYPE_NAME = t.name, + d.DATA_TYPE, + "PRECISION" = isnull(d.data_precision, convert(int,t.length)), + d.LITERAL_PREFIX, + d.LITERAL_SUFFIX, + e.CREATE_PARAMS, + d.NULLABLE, + d.CASE_SENSITIVE, + d.SEARCHABLE, + d.UNSIGNED_ATTRIBUTE, + d.MONEY, + d.AUTO_INCREMENT, + LOCAL_TYPE_NAME = t.name, + MINIMUM_SCALE = d.numeric_scale, + MAXIMUM_SCALE = d.numeric_scale, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + NUM_PREC_RADIX = convert(int,d.RADIX), + INTERVAL_PRECISION = convert(smallint,NULL), + USERTYPE = t.usertype + from master.dbo.spt_datatype_info d, master.dbo.spt_datatype_info_ext e, systypes t + where + DATA_TYPE = @data_type + and d.ss_dtype = t.type + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + and t.usertype *= e.user_type + and t.type not in (111,109,38,110) /* get rid of nullable types */ + order by 12, 11, t.usertype + +go + +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_datatype_info +go + +/* Procedure for 6.0 and 6.50 servers */ +create proc sp_datatype_info + (@data_type int = 0, @ODBCVer tinyint = 2) +as + if @ODBCVer <> 3 + select @ODBCVer = 2 + if @data_type = 0 + select + convert(varchar(32),case + when t.usertype > 100 or t.usertype in (18,80) then t.name + else d.TYPE_NAME + end) TYPE_NAME, + d.DATA_TYPE, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + when d.ss_dtype in (35,34) then 2147483647 /* TEXT/IMAGE */ + when d.ss_dtype in (55,63,106,108) then @@max_precision /* DECIMAL/NUMERIC */ + else t.prec + end) "PRECISION", + d.LITERAL_PREFIX, + d.LITERAL_SUFFIX, + e.CREATE_PARAMS, + convert(smallint,case + when d.AUTO_INCREMENT = 1 then 0 /* IDENTITY*/ + else t.allownulls + end) NULLABLE, + d.CASE_SENSITIVE, + d.SEARCHABLE, + d.UNSIGNED_ATTRIBUTE, + d.MONEY, + d.AUTO_INCREMENT, + convert(varchar(32),case + when t.usertype > 100 or t.usertype in (18,80) then t.name + else d.TYPE_NAME + end) LOCAL_TYPE_NAME, + MINIMUM_SCALE = d.numeric_scale, + convert(smallint,case + when d.ss_dtype in (106,108) and d.AUTO_INCREMENT = 0 then @@max_precision /* DECIMAL/NUMERIC */ + when d.ss_dtype in (106,108) and d.AUTO_INCREMENT = 1 then 0 /* DECIMAL/NUMERIC IDENTITY*/ + else t.scale + end) MAXIMUM_SCALE, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + NUM_PREC_RADIX = convert(int,d.RADIX), + INTERVAL_PRECISION = convert(smallint,NULL), + USERTYPE = t.usertype + from master.dbo.spt_datatype_info d, master.dbo.spt_datatype_info_ext e, systypes t + where + d.ss_dtype = t.type + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + and t.usertype *= e.user_type + and isnull(d.AUTO_INCREMENT,0) *= e.AUTO_INCREMENT + and t.type not in (111,109,38,110,55,63) /* get rid of nullable types */ + order by 2, 12, 11, t.usertype + + else + select + convert(varchar(32),case + when t.usertype > 100 or t.usertype in (18,80) then t.name + else d.TYPE_NAME + end) TYPE_NAME, + d.DATA_TYPE, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + when d.ss_dtype in (35,34) then 2147483647 /* TEXT/IMAGE */ + when d.ss_dtype in (55,63,106,108) then @@max_precision /* DECIMAL/NUMERIC */ + else t.prec + end) "PRECISION", + d.LITERAL_PREFIX, + d.LITERAL_SUFFIX, + e.CREATE_PARAMS, + convert(smallint,case + when d.AUTO_INCREMENT = 1 then 0 /* IDENTITY*/ + else t.allownulls + end) NULLABLE, + d.CASE_SENSITIVE, + d.SEARCHABLE, + d.UNSIGNED_ATTRIBUTE, + d.MONEY, + d.AUTO_INCREMENT, + convert(varchar(32),case + when t.usertype > 100 or t.usertype in (18,80) then t.name + else d.TYPE_NAME + end) LOCAL_TYPE_NAME, + MINIMUM_SCALE = d.numeric_scale, + convert(smallint,case + when d.ss_dtype in (106,108) and d.AUTO_INCREMENT = 0 then @@max_precision /* DECIMAL/NUMERIC */ + when d.ss_dtype in (106,108) and d.AUTO_INCREMENT = 1 then 0 /* DECIMAL/NUMERIC IDENTITY*/ + else t.scale + end) MAXIMUM_SCALE, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + NUM_PREC_RADIX = convert(int,d.RADIX), + INTERVAL_PRECISION = convert(smallint,NULL), + USERTYPE = t.usertype + from master.dbo.spt_datatype_info d, master.dbo.spt_datatype_info_ext e, systypes t + where + d.DATA_TYPE = @data_type + and d.ss_dtype = t.type + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + and t.usertype *= e.user_type + and isnull(d.AUTO_INCREMENT,0) *= e.AUTO_INCREMENT + and t.type not in (111,109,38,110,55,63) /* get rid of nullable types */ + order by 12, 11, t.usertype +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_datatype_info +go + +/* Procedure for 7.0 server */ +create proc sp_datatype_info + (@data_type int = 0, @ODBCVer tinyint = 2) +as + declare @mintype int + declare @maxtype int + + if @ODBCVer <> 3 + select @ODBCVer = 2 + if @data_type = 0 + begin + select @mintype = -32768 + select @maxtype = 32767 + end + else + begin + select @mintype = @data_type + select @maxtype = @data_type + end + + select + convert(sysname,case + when t.xusertype > 255 then t.name + else d.TYPE_NAME + end) TYPE_NAME, + d.DATA_TYPE, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + when type_name(d.ss_dtype) IN ('numeric','decimal') then @@max_precision /* DECIMAL/NUMERIC */ + else OdbcPrec(t.xtype, t.length, t.xprec) + end) "PRECISION", + d.LITERAL_PREFIX, + d.LITERAL_SUFFIX, + e.CREATE_PARAMS, + convert(smallint,case + when d.AUTO_INCREMENT = 1 then 0 /* IDENTITY*/ + else TypeProperty (t.name, 'AllowsNull') + end) NULLABLE, + d.CASE_SENSITIVE, + d.SEARCHABLE, + d.UNSIGNED_ATTRIBUTE, + d.MONEY, + d.AUTO_INCREMENT, + convert(sysname,case + when t.xusertype > 255 then t.name + else d.LOCAL_TYPE_NAME + end) LOCAL_TYPE_NAME, + MINIMUM_SCALE = d.numeric_scale, + convert(smallint,case + when type_name(d.ss_dtype) IN ('numeric','decimal') and d.AUTO_INCREMENT = 0 then @@max_precision /* DECIMAL/NUMERIC */ + when type_name(d.ss_dtype) IN ('numeric','decimal') and d.AUTO_INCREMENT = 1 then 0 /* DECIMAL/NUMERIC IDENTITY*/ + else TypeProperty (t.name, 'Scale') + end) MAXIMUM_SCALE, + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + NUM_PREC_RADIX = convert(int,d.RADIX), + INTERVAL_PRECISION = convert(smallint,NULL), + USERTYPE = t.usertype + from master.dbo.spt_datatype_info d + INNER JOIN systypes t on d.ss_dtype = t.xtype + LEFT OUTER JOIN master.dbo.spt_datatype_info_ext e on + t.xusertype = e.user_type + and isnull(d.AUTO_INCREMENT,0) = e.AUTO_INCREMENT + where + d.DATA_TYPE between @mintype and @maxtype + and (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + order by 2, 12, 11, + case + when t.usertype=18 then 255 + else t.usertype + end + +go + +grant execute on sp_datatype_info to public +go + +dump tran master with no_log +go + +print 'creating sp_fkeys' +go + +/* Procedure for pre-6.0 server */ +CREATE PROCEDURE sp_fkeys( + @pktable_name varchar(32) = null, + @pktable_owner varchar(32) = null, + @pktable_qualifier varchar(32) = null, + @fktable_name varchar(32) = null, + @fktable_owner varchar(32) = null, + @fktable_qualifier varchar(32) = null ) +as + set nocount on + declare @order_by_pk int + + select @order_by_pk = 0 + + if (@pktable_name is null) and (@fktable_name is null) + begin /* If neither primary key nor foreign key table names given */ + raiserror 20004 '~~Rush_25~~' + return + end + if @fktable_qualifier is not null + begin + if db_name() <> @fktable_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_26~~' + return + end + end + if @pktable_qualifier is not null + begin + if db_name() <> @pktable_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_27~~' + return + end + end + + if @pktable_name is null + begin /* If table name not supplied, match all */ + select @pktable_name = '%' + select @order_by_pk = 1 + end + if @pktable_owner is null /* If PK owner not supplied, match all */ + select @pktable_owner = '%' + if @fktable_name is null /* If table name not supplied, match all */ + select @fktable_name = '%' + if @fktable_owner is null /* If FK owner not supplied, match all */ + select @fktable_owner = '%' + + if @@trancount <> 0 + begin /* If inside a transaction */ + raiserror 20003 '~~Rush_28~~' + return + end + create table #fkeys( + PKTABLE_QUALIFIER varchar(32) NULL, + PKTABLE_OWNER varchar(32) NULL, + PKTABLE_NAME varchar(32) NOT NULL, + PKCOLUMN_NAME varchar(32) NOT NULL, + FKTABLE_QUALIFIER varchar(32) NULL, + FKTABLE_OWNER varchar(32) NULL, + FKTABLE_NAME varchar(32) NOT NULL, + FKCOLUMN_NAME varchar(32) NOT NULL, + KEY_SEQ smallint NOT NULL) + + /* SQL Server supports upto 8 PK/FK relationships between 2 tables */ + /* Process syskeys for each relationship */ + /* The inserts below adds a row to the temp table for each of the + 8 possible relationships */ + insert into #fkeys + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 1 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key1 + and c2.id = k.depid + and c2.colid = k.depkey1 + and o1.id = k.depid + and o2.id = k.id + union all + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 2 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key2 + and c2.id = k.depid + and c2.colid = k.depkey2 + and o1.id = k.depid + and o2.id = k.id + union all + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 3 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key3 + and c2.id = k.depid + and c2.colid = k.depkey3 + and o1.id = k.depid + and o2.id = k.id + union all + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 4 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key4 + and c2.id = k.depid + and c2.colid = k.depkey4 + and o1.id = k.depid + and o2.id = k.id + union all + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 5 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key5 + and c2.id = k.depid + and c2.colid = k.depkey5 + and o1.id = k.depid + and o2.id = k.id + union all + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 6 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key6 + and c2.id = k.depid + and c2.colid = k.depkey6 + and o1.id = k.depid + and o2.id = k.id + union all + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 7 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key7 + and c2.id = k.depid + and c2.colid = k.depkey7 + and o1.id = k.depid + and o2.id = k.id + union all + select + db_name(), + user_name(o1.uid), + object_name(k.depid), + c2.name, + db_name(), + user_name(o2.uid), + object_name(k.id), + c1.name, + 8 + from + syskeys k, syscolumns c1, syscolumns c2,sysobjects o1, sysobjects o2 + where + c1.id = k.id + and k.type = 2 /* Foreign type key */ + and c1.colid = k.key8 + and c2.id = k.depid + and c2.colid = k.depkey8 + and o1.id = k.depid + and o2.id = k.id + + if @order_by_pk = 1 /* If order by PK fields */ + select + PKTABLE_QUALIFIER, + PKTABLE_OWNER, + PKTABLE_NAME, + PKCOLUMN_NAME, + FKTABLE_QUALIFIER, + FKTABLE_OWNER, + FKTABLE_NAME, + FKCOLUMN_NAME, + KEY_SEQ, + UPDATE_RULE = convert(smallint, null), + DELETE_RULE = convert(smallint,null), + FK_NAME = convert(varchar(32),null), + PK_NAME = convert(varchar(32),null), + DEFERRABILITY = convert(smallint,7) + from #fkeys + where FKTABLE_NAME like @fktable_name + and FKTABLE_OWNER like @fktable_owner + and PKTABLE_NAME like @pktable_name + and PKTABLE_OWNER like @pktable_owner + order by 1, 2, 3, 9 + else /* Order by FK fields */ + select + PKTABLE_QUALIFIER, + PKTABLE_OWNER, + PKTABLE_NAME, + PKCOLUMN_NAME, + FKTABLE_QUALIFIER, + FKTABLE_OWNER, + FKTABLE_NAME, + FKCOLUMN_NAME, + KEY_SEQ, + UPDATE_RULE = convert(smallint,null), + DELETE_RULE = convert(smallint,null), + FK_NAME = convert(varchar(32),null), + PK_NAME = convert(varchar(32),null), + DEFERRABILITY = convert(smallint,7) + from #fkeys + where FKTABLE_NAME like @fktable_name + and FKTABLE_OWNER like @fktable_owner + and PKTABLE_NAME like @pktable_name + and PKTABLE_OWNER like @pktable_owner + order by 5, 6, 7, 9 +go + +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_fkeys +go + +/* Procedure for 6.0 and 6.50 servers */ +CREATE PROCEDURE sp_fkeys( + @pktable_name varchar(32) = null, + @pktable_owner varchar(32) = null, + @pktable_qualifier varchar(32) = null, + @fktable_name varchar(32) = null, + @fktable_owner varchar(32) = null, + @fktable_qualifier varchar(32) = null ) +as + set nocount on + DECLARE @pktable_id int + DECLARE @pkfull_table_name varchar(65) /* 2*32 +1 */ + DECLARE @fktable_id int + DECLARE @fkfull_table_name varchar(65) /* 2*32 +1 */ + declare @order_by_pk int + + select @order_by_pk = 0 + + if (@pktable_name is null) and (@fktable_name is null) + begin /* If neither primary key nor foreign key table names given */ + raiserror (15252,-1,-1) + return + end + if @fktable_qualifier is not null + begin + if db_name() <> @fktable_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @pktable_qualifier is not null + begin + if db_name() <> @pktable_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + + if @pktable_owner is null + begin /* If unqualified primary key table name */ + SELECT @pkfull_table_name = @pktable_name + end + else + begin /* Qualified primary key table name */ + SELECT @pkfull_table_name = @pktable_owner + '.' + @pktable_name + end + /* Get Object ID */ + SELECT @pktable_id = object_id(@pkfull_table_name) + + if @fktable_owner is null + begin /* If unqualified foreign key table name */ + SELECT @fkfull_table_name = @fktable_name + end + else + begin /* Qualified foreign key table name */ + SELECT @fkfull_table_name = @fktable_owner + '.' + @fktable_name + end + /* Get Object ID */ + SELECT @fktable_id = object_id(@fkfull_table_name) + + if @fktable_name is not null + begin + if @fktable_id is null + SELECT @fktable_id = 0 /* fk table not found, empty result */ + end + + if @pktable_name is null + begin /* If table name not supplied, match all */ + select @order_by_pk = 1 + end + else + begin + if @pktable_id is null + begin + SELECT @pktable_id = 0 /* pk table not found, empty result */ + end + end + + if (@@trancount <> 0 and + charindex('6.50', @@version) = 0) + begin /* If inside a transaction */ + raiserror (15002,-1,-1,'sp_fkeys') + return + end + + create table #fkeys( + pkdb_id int NOT NULL, + pktable_id int NOT NULL, + pkcolid int NOT NULL, + fkdb_id int NOT NULL, + fktable_id int NOT NULL, + fkcolid int NOT NULL, + KEY_SEQ smallint NOT NULL, + fk_id int NOT NULL, + pk_id int NOT NULL) + + /* SQL Server supports upto 16 PK/FK relationships between 2 tables */ + /* Process syskeys for each relationship */ + /* The inserts below adds a row to the temp table for each of the + 16 possible relationships */ + insert into #fkeys + select + r.rkeydbid, + r.rkeyid, + r.rkey1, + r.fkeydbid, + r.fkeyid, + r.fkey1, + 1, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey2, + r.fkeydbid, + r.fkeyid, + r.fkey2, + 2, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey3, + r.fkeydbid, + r.fkeyid, + r.fkey3, + 3, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey4, + r.fkeydbid, + r.fkeyid, + r.fkey4, + 4, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey5, + r.fkeydbid, + r.fkeyid, + r.fkey5, + 5, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey6, + r.fkeydbid, + r.fkeyid, + r.fkey6, + 6, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey7, + r.fkeydbid, + r.fkeyid, + r.fkey7, + 7, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey8, + r.fkeydbid, + r.fkeyid, + r.fkey8, + 8, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey9, + r.fkeydbid, + r.fkeyid, + r.fkey9, + 9, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey10, + r.fkeydbid, + r.fkeyid, + r.fkey10, + 10, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey11, + r.fkeydbid, + r.fkeyid, + r.fkey11, + 11, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey12, + r.fkeydbid, + r.fkeyid, + r.fkey12, + 12, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey13, + r.fkeydbid, + r.fkeyid, + r.fkey13, + 13, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey14, + r.fkeydbid, + r.fkeyid, + r.fkey14, + 14, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey15, + r.fkeydbid, + r.fkeyid, + r.fkey15, + 15, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + union all + select + r.rkeydbid, + r.rkeyid, + r.rkey16, + r.fkeydbid, + r.fkeyid, + r.fkey16, + 16, + r.constid, + s.constid + from + sysreferences r, sysconstraints s + where r.rkeyid = s.id + AND (s.status & 0xf) = 1 + AND r.rkeyid between isnull(@pktable_id, 0) and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) and isnull(@fktable_id, 0x7fffffff) + + if @order_by_pk = 1 /* If order by PK fields */ + select + PKTABLE_QUALIFIER = convert(varchar(32),DB_NAME(f.pkdb_id)), + PKTABLE_OWNER = convert(varchar(32),USER_NAME(o1.uid)), + PKTABLE_NAME = convert(varchar(32),o1.name), + PKCOLUMN_NAME = convert(varchar(32),c1.name), + FKTABLE_QUALIFIER = convert(varchar(32),DB_NAME(f.fkdb_id)), + FKTABLE_OWNER = convert(varchar(32),USER_NAME(o2.uid)), + FKTABLE_NAME = convert(varchar(32),o2.name), + FKCOLUMN_NAME = convert(varchar(32),c2.name), + KEY_SEQ, + UPDATE_RULE = convert(smallint,1), + DELETE_RULE = convert(smallint,1), + FK_NAME = convert(varchar(32),OBJECT_NAME(fk_id)), + PK_NAME = convert(varchar(32),OBJECT_NAME(pk_id)), + DEFERRABILITY = convert(smallint,7) + from #fkeys f, + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2 + where o1.id = f.pktable_id + AND o2.id = f.fktable_id + AND c1.id = f.pktable_id + AND c2.id = f.fktable_id + AND c1.colid = f.pkcolid + AND c2.colid = f.fkcolid + order by 1,2,3,9 + else /* Order by FK fields */ + select + PKTABLE_QUALIFIER = convert(varchar(32),DB_NAME(f.pkdb_id)), + PKTABLE_OWNER = convert(varchar(32),USER_NAME(o1.uid)), + PKTABLE_NAME = convert(varchar(32),o1.name), + PKCOLUMN_NAME = convert(varchar(32),c1.name), + FKTABLE_QUALIFIER = convert(varchar(32),DB_NAME(f.fkdb_id)), + FKTABLE_OWNER = convert(varchar(32),USER_NAME(o2.uid)), + FKTABLE_NAME = convert(varchar(32),o2.name), + FKCOLUMN_NAME = convert(varchar(32),c2.name), + KEY_SEQ, + UPDATE_RULE = convert(smallint,1), + DELETE_RULE = convert(smallint,1), + FK_NAME = convert(varchar(32),OBJECT_NAME(fk_id)), + PK_NAME = convert(varchar(32),OBJECT_NAME(pk_id)), + DEFERRABILITY = convert(smallint,7) + from #fkeys f, + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2 + where o1.id = f.pktable_id + AND o2.id = f.fktable_id + AND c1.id = f.pktable_id + AND c2.id = f.fktable_id + AND c1.colid = f.pkcolid + AND c2.colid = f.fkcolid + order by 5,6,7,9 +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_fkeys +go + +/* Procedure for 7.0 and later servers */ +CREATE PROCEDURE sp_fkeys( + @pktable_name sysname = null, + @pktable_owner sysname = null, + @pktable_qualifier sysname = null, + @fktable_name sysname = null, + @fktable_owner sysname = null, + @fktable_qualifier sysname = null ) +as + set nocount on + DECLARE @pktable_id int + DECLARE @pkfull_table_name nvarchar(257) /* 2*128 + 1 */ + DECLARE @fktable_id int + DECLARE @fkfull_table_name nvarchar(257) /* 2*128 + 1 */ + declare @order_by_pk int + + /* select 'XXX starting table creation' */ + + create table #fkeysall( + rkeyid int NOT NULL, + rkey1 int NOT NULL, + rkey2 int NOT NULL, + rkey3 int NOT NULL, + rkey4 int NOT NULL, + rkey5 int NOT NULL, + rkey6 int NOT NULL, + rkey7 int NOT NULL, + rkey8 int NOT NULL, + rkey9 int NOT NULL, + rkey10 int NOT NULL, + rkey11 int NOT NULL, + rkey12 int NOT NULL, + rkey13 int NOT NULL, + rkey14 int NOT NULL, + rkey15 int NOT NULL, + rkey16 int NOT NULL, + fkeyid int NOT NULL, + fkey1 int NOT NULL, + fkey2 int NOT NULL, + fkey3 int NOT NULL, + fkey4 int NOT NULL, + fkey5 int NOT NULL, + fkey6 int NOT NULL, + fkey7 int NOT NULL, + fkey8 int NOT NULL, + fkey9 int NOT NULL, + fkey10 int NOT NULL, + fkey11 int NOT NULL, + fkey12 int NOT NULL, + fkey13 int NOT NULL, + fkey14 int NOT NULL, + fkey15 int NOT NULL, + fkey16 int NOT NULL, + constid int NOT NULL, + name sysname NOT NULL) + + create table #fkeys( + pktable_id int NOT NULL, + pkcolid int NOT NULL, + fktable_id int NOT NULL, + fkcolid int NOT NULL, + KEY_SEQ smallint NOT NULL, + fk_id int NOT NULL, + PK_NAME sysname NOT NULL) + + create table #fkeysout( + PKTABLE_QUALIFIER sysname NULL, + PKTABLE_OWNER sysname NULL, + PKTABLE_NAME sysname NOT NULL, + PKCOLUMN_NAME sysname NOT NULL, + FKTABLE_QUALIFIER sysname NULL, + FKTABLE_OWNER sysname NULL, + FKTABLE_NAME sysname NOT NULL, + FKCOLUMN_NAME sysname NOT NULL, + KEY_SEQ smallint NOT NULL, + UPDATE_RULE smallint NULL, + DELETE_RULE smallint NULL, + FK_NAME sysname NULL, + PK_NAME sysname NULL, + DEFERRABILITY smallint null) + + /* select 'XXX starting parameter analysis' */ + + select @order_by_pk = 0 + + if (@pktable_name is null) and (@fktable_name is null) + begin /* If neither primary key nor foreign key table names given */ + raiserror (15252,-1,-1) + return + end + if @fktable_qualifier is not null + begin + if db_name() <> @fktable_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @pktable_qualifier is not null + begin + if db_name() <> @pktable_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + + if @pktable_owner is null + begin /* If unqualified primary key table name */ + SELECT @pkfull_table_name = quotename(@pktable_name) + end + else + begin /* Qualified primary key table name */ + if @pktable_owner = '' + begin /* If empty owner name */ + SELECT @pkfull_table_name = quotename(@pktable_owner) + end + else + begin + SELECT @pkfull_table_name = quotename(@pktable_owner) + + '.' + quotename(@pktable_name) + end + end + /* Get Object ID */ + SELECT @pktable_id = object_id(@pkfull_table_name) + + if @fktable_owner is null + begin /* If unqualified foreign key table name */ + SELECT @fkfull_table_name = quotename(@fktable_name) + end + else + begin /* Qualified foreign key table name */ + if @fktable_owner = '' + begin /* If empty owner name */ + SELECT @fkfull_table_name = quotename(@fktable_owner) + end + else + begin + SELECT @fkfull_table_name = quotename(@fktable_owner) + + '.' + quotename(@fktable_name) + end + end + /* Get Object ID */ + SELECT @fktable_id = object_id(@fkfull_table_name) + + if @fktable_name is not null + begin + if @fktable_id is null + SELECT @fktable_id = 0 /* fk table not found, empty result */ + end + + if @pktable_name is null + begin /* If table name not supplied, match all */ + select @order_by_pk = 1 + end + else + begin + if @pktable_id is null + begin + SELECT @pktable_id = 0 /* pk table not found, empty result */ + end + end + + /* SQL Server supports upto 16 PK/FK relationships between 2 tables */ + /* Process syskeys for each relationship */ + /* First, attempt to get all 16 keys for each rel'ship, then sort + them out with a 16-way "insert select ... union select ..." */ + + /* select 'XXX starting data analysis' */ + + insert into #fkeysall + select + r.rkeyid, + r.rkey1, r.rkey2, r.rkey3, r.rkey4, + r.rkey5, r.rkey6, r.rkey7, r.rkey8, + r.rkey9, r.rkey10, r.rkey11, r.rkey12, + r.rkey13, r.rkey14, r.rkey15, r.rkey16, + r.fkeyid, + r.fkey1, r.fkey2, r.fkey3, r.fkey4, + r.fkey5, r.fkey6, r.fkey7, r.fkey8, + r.fkey9, r.fkey10, r.fkey11, r.fkey12, + r.fkey13, r.fkey14, r.fkey15, r.fkey16, + r.constid, + i.name + from + sysreferences r, sysobjects o, sysindexes i + where r.constid = o.id + AND o.xtype = 'F' + AND r.rkeyindid = i.indid + AND r.rkeyid = i.id + AND r.rkeyid between isnull(@pktable_id, 0) + and isnull(@pktable_id, 0x7fffffff) + AND r.fkeyid between isnull(@fktable_id, 0) + and isnull(@fktable_id, 0x7fffffff) + + /* select count (*) as 'XXX countall' from #fkeysall */ + + insert into #fkeys + select rkeyid, rkey1, fkeyid, fkey1, 1, constid, name + from #fkeysall + union all + select rkeyid, rkey2, fkeyid, fkey2, 2, constid, name + from #fkeysall + union all + select rkeyid, rkey3, fkeyid, fkey3, 3, constid, name + from #fkeysall + union all + select rkeyid, rkey4, fkeyid, fkey4, 4, constid, name + from #fkeysall + union all + select rkeyid, rkey5, fkeyid, fkey5, 5, constid, name + from #fkeysall + union all + select rkeyid, rkey6, fkeyid, fkey6, 6, constid, name + from #fkeysall + union all + select rkeyid, rkey7, fkeyid, fkey7, 7, constid, name + from #fkeysall + union all + select rkeyid, rkey8, fkeyid, fkey8, 8, constid, name + from #fkeysall + union all + select rkeyid, rkey9, fkeyid, fkey9, 9, constid, name + from #fkeysall + union all + select rkeyid, rkey10, fkeyid, fkey10, 10, constid, name + from #fkeysall + union all + select rkeyid, rkey11, fkeyid, fkey11, 11, constid, name + from #fkeysall + union all + select rkeyid, rkey12, fkeyid, fkey12, 12, constid, name + from #fkeysall + union all + select rkeyid, rkey13, fkeyid, fkey13, 13, constid, name + from #fkeysall + union all + select rkeyid, rkey14, fkeyid, fkey14, 14, constid, name + from #fkeysall + union all + select rkeyid, rkey15, fkeyid, fkey15, 15, constid, name + from #fkeysall + union all + select rkeyid, rkey16, fkeyid, fkey16, 16, constid, name + from #fkeysall + + /* select count (*) as 'XXX count' from #fkeys */ + + insert into #fkeysout + select + PKTABLE_QUALIFIER = convert(sysname,db_name()), + PKTABLE_OWNER = convert(sysname,USER_NAME(o1.uid)), + PKTABLE_NAME = convert(sysname,o1.name), + PKCOLUMN_NAME = convert(sysname,c1.name), + FKTABLE_QUALIFIER = convert(sysname,db_name()), + FKTABLE_OWNER = convert(sysname,USER_NAME(o2.uid)), + FKTABLE_NAME = convert(sysname,o2.name), + FKCOLUMN_NAME = convert(sysname,c2.name), + KEY_SEQ, + UPDATE_RULE = convert(smallint,1), + DELETE_RULE = convert(smallint,1), + FK_NAME = convert(sysname,OBJECT_NAME(fk_id)), + PK_NAME, + DEFERRABILITY = 7 /* SQL_NOT_DEFERRABLE */ + from #fkeys f, + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2 + where o1.id = f.pktable_id + AND o2.id = f.fktable_id + AND c1.id = f.pktable_id + AND c2.id = f.fktable_id + AND c1.colid = f.pkcolid + AND c2.colid = f.fkcolid + + /* select count (*) as 'XXX countout' from #fkeysout */ + + if @order_by_pk = 1 /* If order by PK fields */ + select + PKTABLE_QUALIFIER, PKTABLE_OWNER, PKTABLE_NAME, PKCOLUMN_NAME, + FKTABLE_QUALIFIER, FKTABLE_OWNER, FKTABLE_NAME, FKCOLUMN_NAME, + KEY_SEQ, UPDATE_RULE, DELETE_RULE, FK_NAME, PK_NAME, DEFERRABILITY + from #fkeysout + order by 1,2,3,9 + else /* Order by FK fields */ + select + PKTABLE_QUALIFIER, PKTABLE_OWNER, PKTABLE_NAME, PKCOLUMN_NAME, + FKTABLE_QUALIFIER, FKTABLE_OWNER, FKTABLE_NAME, FKCOLUMN_NAME, + KEY_SEQ, UPDATE_RULE, DELETE_RULE, FK_NAME, PK_NAME, DEFERRABILITY + from #fkeysout + order by 5,6,7,9 +go + +grant execute on sp_fkeys to public +go + +dump tran master with no_log +go + +print 'creating sp_pkeys' +go + +/* Procedure for pre-6.0 server */ +CREATE PROCEDURE sp_pkeys( + @table_name varchar(32), + @table_owner varchar(32) = null, + @table_qualifier varchar(32) = null ) +as + set nocount on + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_5~~' + return + end + end + if @table_owner is null /* If owner not supplied, match all */ + select @table_owner = '%' + if @@trancount <> 0 + begin /* If inside a transaction */ + raiserror 20003 '~~Rush_35~~' + return + end + + create table #pkeys( + TABLE_QUALIFIER varchar(32) NULL, + TABLE_OWNER varchar(32) NULL, + TABLE_NAME varchar(32) NOT NULL, + COLUMN_NAME varchar(32) NOT NULL, + KEY_SEQ smallint NOT NULL) + + /* SQL Server supports upto 8 PK/FK relationships between 2 tables */ + /* Process syskeys for each relationship */ + /* The inserts below adds a row to the temp table for each of the + 8 possible relationships */ + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 1 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = k.key1 + if (@@rowcount = 0) + goto done + + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 2 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = key2 + if (@@rowcount = 0) + goto done + + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 3 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = key3 + if (@@rowcount = 0) + goto done + + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 4 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = key4 + if (@@rowcount = 0) + goto done + + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 5 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = key5 + if (@@rowcount = 0) + goto done + + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 6 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = key6 + if (@@rowcount = 0) + goto done + + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 7 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = key7 + if (@@rowcount = 0) + goto done + + insert into #pkeys + select + db_name(), + (select user_name(uid) from sysobjects o where o.id = k.id), + object_name(k.id), + c.name, + 8 + from + syskeys k, syscolumns c + where + c.id = k.id + and k.type = 1 /* Primary type key */ + and c.colid = key8 + + done: + select + TABLE_QUALIFIER, + TABLE_OWNER, + TABLE_NAME, + COLUMN_NAME, + KEY_SEQ, + PK_NAME = convert(varchar(32),null) + from #pkeys + where TABLE_NAME = @table_name + and TABLE_OWNER like @table_owner + order by 1, 2, 3, 5 +go + +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following error.' +end +else + drop proc sp_pkeys +go + +/* Procedure for 6.0 and 6.50 servers */ +CREATE PROCEDURE sp_pkeys( + @table_name sysname, + @table_owner sysname = null, + @table_qualifier sysname = null ) +as + DECLARE @table_id int + DECLARE @full_table_name varchar(255) /* 2*128 + 1 */ + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + if @table_owner = '' + begin /* If empty owner name */ + SELECT @full_table_name = @table_owner + end + else + begin + SELECT @full_table_name = @table_owner + '.' + @table_name + end + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + select + TABLE_QUALIFIER = convert(sysname,db_name()), + TABLE_OWNER = convert(sysname,user_name(o.uid)), + TABLE_NAME = convert(sysname,o.name), + COLUMN_NAME = convert(sysname,c.name), + KEY_SEQ = convert(smallint,c1.colid), + PK_NAME = convert(sysname,i.name) + from + sysindexes i, syscolumns c, sysobjects o, syscolumns c1 + where + o.id = @table_id + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col (@full_table_name, i.indid, c1.colid) + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and c1.id = @table_id + order by 1, 2, 3, 5 +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_pkeys +go + +/* Procedure for 7.0 and later servers */ +CREATE PROCEDURE sp_pkeys( + @table_name sysname, + @table_owner sysname = null, + @table_qualifier sysname = null ) +as + DECLARE @table_id int + DECLARE @full_table_name varchar(255) /* 2*128 + 1 */ + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = quotename(@table_name) + end + else + begin /* Qualified table name */ + if @table_owner = '' + begin /* If empty owner name */ + SELECT @full_table_name = quotename(@table_owner) + end + else + begin + SELECT @full_table_name = quotename(@table_owner) + + '.' + quotename(@table_name) + end + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + select + TABLE_QUALIFIER = convert(sysname,db_name()), + TABLE_OWNER = convert(sysname,user_name(o.uid)), + TABLE_NAME = convert(sysname,o.name), + COLUMN_NAME = convert(sysname,c.name), + KEY_SEQ = convert(smallint,c1.colid), + PK_NAME = convert(sysname,i.name) + from + sysindexes i, syscolumns c, sysobjects o, syscolumns c1 + where + o.id = @table_id + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col (@full_table_name, i.indid, c1.colid) + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and c1.id = @table_id + order by 1, 2, 3, 5 +go + +grant execute on sp_pkeys to public +go + +dump tran master with no_log +go + +print 'creating sp_server_info' +go + +create proc sp_server_info ( + @attribute_id int = null) +as + if @attribute_id is not null + select * + from master.dbo.spt_server_info + where attribute_id = @attribute_id + else + select * + from master.dbo.spt_server_info + order by attribute_id +go + +grant execute on sp_server_info to public +go + +dump tran master with no_log +go + +print 'creating sp_special_columns' +go + +/* Procedure for pre-6.0 server */ +CREATE PROCEDURE sp_special_columns ( + @table_name varchar(32), + @table_owner varchar(32) = null, + @table_qualifier varchar(32) = null, + @col_type char(1) = 'R', + @scope char(1) = 'T', + @nullable char(1) = 'U', + @ODBCVer int = 2) +AS + DECLARE @indid int + DECLARE @table_id int + DECLARE @full_table_name varchar(65) /* 2*32+1 */ + DECLARE @scopeout smallint + + if @col_type not in ('R','V') + begin + raiserror 20002 '~~Rush_42~~' + return + end + + if @scope = 'C' + select @scopeout = 0 + else if @scope = 'T' + select @scopeout = 1 + else + begin + raiserror 20002 '~~Rush_43~~' + return + end + + if @nullable not in ('U','O') + begin + raiserror 20002 '~~Rush_44~~' + return + end + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_5~~' + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + SELECT @full_table_name = @table_owner + '.' + @table_name + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + if @col_type = 'V' + BEGIN /* if ROWVER, just run that query */ + SELECT + SCOPE = convert(smallint,NULL), + COLUMN_NAME = convert(varchar(32),c.name), + DATA_TYPE = convert(smallint, -3), + TYPE_NAME = t.name, + "PRECISION" = convert(int,8), + LENGTH = convert(int,8), + SCALE = convert(smallint, NULL), + PSEUDO_COLUMN = convert(smallint,1) + FROM + systypes t, syscolumns c + WHERE + c.id = @table_id + AND c.usertype = 80 /* TIMESTAMP */ + AND t.usertype = 80 /* TIMESTAMP */ + RETURN + END + + /* ROWID, now find the id of the 'best' index for this table */ + + IF @nullable = 'O' /* Don't include any indexes that contain + nullable columns. */ + + SELECT @indid = MIN(indid) + FROM sysindexes i,syscolumns c,syscolumns c2 + WHERE + i.status&2 = 2 /* If Unique Index */ + AND c.id = i.id + AND c2.id = c.id + AND c2.colid < i.keycnt + (i.status&16)/16 + AND i.id = @table_id + AND indid > 0 /* Eliminate Table Row */ + AND c.name = index_col(@table_name,i.indid,c2.colid) + GROUP BY indid HAVING SUM(c.status&8) = 0 + + ELSE /* Include indexes that are partially nullable. */ + + SELECT @indid = MIN(indid) + FROM sysindexes i + WHERE + status&2 = 2 /* If Unique Index */ + AND id = @table_id + AND indid > 0 /* Eliminate Table Row */ + + SELECT + SCOPE = @scopeout, + COLUMN_NAME = convert(varchar(32),INDEX_COL(@full_table_name,indid,c2.colid)), + d.DATA_TYPE, + TYPE_NAME = t.name, + "PRECISION" = isnull(d.data_precision, convert(int,c.length)), + LENGTH = isnull(d.length, convert(int,c.length)), + SCALE = d.numeric_scale, + PSEUDO_COLUMN = convert(smallint,1) + FROM + sysindexes x, + syscolumns c, + master.dbo.spt_datatype_info d, + systypes t, + syscolumns c2 /* Self-join to generate list of index columns and */ + /* to extract datatype names */ + WHERE + x.id = @table_id + AND c.name = INDEX_COL(@full_table_name,@indid,c2.colid) + AND c.id = x.id + AND c2.id = x.id + AND c2.colid < keycnt+(x.status&16)/16 + AND x.indid = @indid + AND t.type = d.ss_dtype + AND c.length = d.fixlen + AND c.usertype = t.usertype + +go + +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_special_columns +go + +/* Procedure for 6.0 and 6.50 servers */ +CREATE PROCEDURE sp_special_columns ( + @table_name varchar(32), + @table_owner varchar(32) = null, + @table_qualifier varchar(32) = null, + @col_type char(1) = 'R', + @scope char(1) = 'T', + @nullable char(1) = 'U', + @ODBCVer int = 2) +AS + DECLARE @indid int + DECLARE @table_id int + DECLARE @full_table_name varchar(65) /* 2*32+1 */ + DECLARE @scopeout smallint + + if @col_type not in ('R','V') + begin + raiserror (15251,-1,-1,'col_type','''R'' or ''V''') + return + end + + if @scope = 'C' + select @scopeout = 0 + else if @scope = 'T' + select @scopeout = 1 + else + begin + raiserror (15251,-1,-1,'scope','''C'' or ''T''') + return + end + + if @nullable not in ('U','O') + begin + raiserror (15251,-1,-1,'nullable','''U'' or ''O''') + return + end + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + SELECT @full_table_name = @table_owner + '.' + @table_name + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + if @col_type = 'V' + BEGIN /* if ROWVER, just run that query */ + SELECT + SCOPE = convert(smallint,NULL), + COLUMN_NAME = convert(varchar(32),c.name), + DATA_TYPE = convert(smallint, -2), + TYPE_NAME = t.name, + "PRECISION" = convert(int,8), + LENGTH = convert(int,8), + SCALE = convert(smallint, NULL), + PSEUDO_COLUMN = convert(smallint,1) + FROM + systypes t, syscolumns c + WHERE + c.id = @table_id + AND c.usertype = 80 /* TIMESTAMP */ + AND t.usertype = 80 /* TIMESTAMP */ + RETURN + END + + /* ROWID, now find the id of the 'best' index for this table */ + + IF @nullable = 'O' /* Don't include any indexes that contain + nullable columns. */ + + SELECT @indid = MIN(indid) + FROM sysindexes i,syscolumns c,syscolumns c2 + WHERE + i.status&2 = 2 /* If Unique Index */ + AND c.id = i.id + AND c2.id = c.id + AND c2.colid < i.keycnt + (i.status&16)/16 + AND i.id = @table_id + AND indid > 0 /* Eliminate Table Row */ + AND c.name = index_col(@table_name,i.indid,c2.colid) + GROUP BY indid HAVING SUM(c.status&8) = 0 + + ELSE /* Include indexes that are partially nullable. */ + + SELECT @indid = MIN(indid) + FROM sysindexes i + WHERE + status&2 = 2 /* If Unique Index */ + AND id = @table_id + AND indid > 0 /* Eliminate Table Row */ + + SELECT + SCOPE = @scopeout, + COLUMN_NAME = convert(varchar(32),INDEX_COL(@full_table_name,indid,c2.colid)), + d.DATA_TYPE, + convert(varchar(32),case + when (t.usertype > 100 or t.usertype in (18,80)) + then t.name + else d.TYPE_NAME + end) TYPE_NAME, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else isnull(convert(int,c.prec), 2147483647) + end) "PRECISION", + convert(int,case + when d.ss_dtype IN (106, 108, 55, 63) then /* decimal/numeric types */ + convert(int,c.prec+2) + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, c.scale), + PSEUDO_COLUMN = convert(smallint,1) + FROM + sysindexes x, + syscolumns c, + master.dbo.spt_datatype_info d, + systypes t, + syscolumns c2 /* Self-join to generate list of index columns and */ + /* to extract datatype names */ + WHERE + x.id = @table_id + AND c.name = INDEX_COL(@full_table_name,@indid,c2.colid) + AND c.id = x.id + AND c2.id = x.id + AND c2.colid < x.keycnt+(x.status&16)/16 + AND x.indid = @indid + AND t.type = d.ss_dtype + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND isnull(d.AUTO_INCREMENT,0) = (c.status&128)/128 + AND c.usertype = t.usertype +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_special_columns +go + +/* Procedure for 7.0 and later servers */ +CREATE PROCEDURE sp_special_columns ( + @table_name sysname, + @table_owner sysname = null, + @table_qualifier sysname = null, + @col_type char(1) = 'R', + @scope char(1) = 'T', + @nullable char(1) = 'U', + @ODBCVer int = 2) +AS + DECLARE @indid int + DECLARE @table_id int + DECLARE @full_table_name nvarchar(257) + DECLARE @scopeout smallint + + if @col_type not in ('R','V') + begin + raiserror (15251,-1,-1,'col_type','''R'' or ''V''') + return + end + + if @scope = 'C' + select @scopeout = 0 + else if @scope = 'T' + select @scopeout = 1 + else + begin + raiserror (15251,-1,-1,'scope','''C'' or ''T''') + return + end + + if @nullable not in ('U','O') + begin + raiserror (15251,-1,-1,'nullable','''U'' or ''O''') + return + end + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = quotename(@table_name) + end + else + begin /* Qualified table name */ + if @table_owner = '' + begin /* If empty owner name */ + SELECT @full_table_name = quotename(@table_owner) + end + else + begin + SELECT @full_table_name = quotename(@table_owner) + + '.' + quotename(@table_name) + end + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + if @col_type = 'V' + BEGIN /* if ROWVER, just run that query */ + SELECT + SCOPE = convert(smallint,NULL), + COLUMN_NAME = convert(sysname,c.name), + DATA_TYPE = convert(smallint, -2), + TYPE_NAME = t.name, + "PRECISION" = convert(int,8), + LENGTH = convert(int,8), + SCALE = convert(smallint, NULL), + PSEUDO_COLUMN = convert(smallint,1) + FROM + systypes t, syscolumns c + WHERE + not (@table_id is null) + AND c.id = @table_id + AND t.name = 'timestamp' /* TIMESTAMP */ + AND t.xtype = c.xtype + AND t.xusertype = c.xusertype + RETURN + END + + /* ROWID, now find the id of the 'best' index for this table */ + + IF @nullable = 'O' /* Don't include any indexes that contain + nullable columns. */ + + SELECT @indid = MIN(indid) + FROM sysindexes x, syscolumns c, syscolumns c2 + WHERE + not (@table_id is null) + AND x.status&2 = 2 /* If Unique Index */ + AND c.id = x.id + AND c2.id = c.id + AND c2.colid < x.keycnt + (x.status&16)/16 + AND x.id = @table_id + AND indid > 0 /* Eliminate Table Row */ + AND c.name = index_col(@table_name,x.indid,c2.colid) + GROUP BY indid HAVING SUM(c.status&8) = 0 + + ELSE /* Include indexes that are partially nullable. */ + + SELECT @indid = MIN(indid) + FROM sysindexes x + WHERE + not (@table_id is null) + AND status&2 = 2 /* If Unique Index */ + AND id = @table_id + AND indid > 0 /* Eliminate Table Row */ + + SELECT + SCOPE = @scopeout, + COLUMN_NAME = convert(sysname,INDEX_COL(@full_table_name,indid,c2.colid)), + d.DATA_TYPE, + convert(sysname,case + when t.xusertype > 255 then t.name + else d.TYPE_NAME + end) TYPE_NAME, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else OdbcPrec(c.xtype,c.length,c.xprec) + end) "PRECISION", + convert(int,case + when type_name(d.ss_dtype) IN ('numeric','decimal') then /* decimal/numeric types */ + OdbcPrec(c.xtype,c.length,c.xprec)+2 + else isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, OdbcScale(c.xtype,c.xscale)), + PSEUDO_COLUMN = convert(smallint,1) + FROM + sysindexes x, + syscolumns c, + master.dbo.spt_datatype_info d, + systypes t, + syscolumns c2 /* Self-join to generate list of index columns and */ + /* to extract datatype names */ + WHERE + not (@table_id is null) + AND x.id = @table_id + AND c.name = INDEX_COL(@full_table_name,@indid,c2.colid) + AND c.id = x.id + AND c2.id = x.id + AND c2.colid < x.keycnt + (x.status&16)/16 + AND x.indid = @indid + AND t.xtype = d.ss_dtype + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name, 'IsIdentity'),0) + AND c.xusertype = t.xusertype +go + +grant execute on sp_special_columns to public +go + +dump tran master with no_log +go + +print 'creating sp_sproc_columns' +go + +/* Procedure for pre-6.0 server */ +CREATE PROCEDURE sp_sproc_columns ( + @procedure_name varchar(102) = '%', /* 3*32+5+1 */ + @procedure_owner varchar(96) = null, + @procedure_qualifier varchar(32) = null, + @column_name varchar(96) = null, + @ODBCVer int = 2) +AS + DECLARE @group_num_lower smallint + DECLARE @group_num_upper smallint + DECLARE @semi_position int + DECLARE @full_procedure_name varchar(205)/* 2*102+1 */ + DECLARE @procedure_id int + + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + if @procedure_qualifier is not null + begin + if db_name() <> @procedure_qualifier + begin + if @procedure_qualifier = '' + begin + /* in this case, we need to return an empty result set */ + /* because the user has requested a database with an empty name */ + select @procedure_name = '' + select @procedure_owner = '' + end + else + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_51~~' + return + end + end + end + + if @procedure_name is null + begin /* If procedure name not supplied, match all */ + select @procedure_name = '%' + end + + /* first we need to extract the procedure group number, if one exists */ + select @semi_position = charindex(';',@procedure_name) + if (@semi_position > 0) + begin /* If group number separator (;) found */ + select @group_num_lower = convert(int,substring(@procedure_name, @semi_position + 1, 2)) + select @group_num_upper = @group_num_lower + select @procedure_name = substring(@procedure_name, 1, @semi_position -1) + end + else + begin /* No group separator, so default to group number of 1 */ + select @group_num_lower = 1 + select @group_num_upper = 32767 + end + + if @procedure_owner is null + begin /* If unqualified procedure name */ + SELECT @full_procedure_name = @procedure_name + end + else + begin /* Qualified procedure name */ + SELECT @full_procedure_name = @procedure_owner + '.' + @procedure_name + end + + /* Get Object ID */ + SELECT @procedure_id = object_id(@full_procedure_name) + if ((charindex('%',@full_procedure_name) = 0) and + (charindex('_',@full_procedure_name) = 0) and + @procedure_id <> 0) + begin + /* this block is for the case where there is no pattern + matching required for the procedure name */ + SELECT + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ ltrim(str(c.number,5))), + COLUMN_NAME = convert(varchar(32),c.name), + COLUMN_TYPE = convert(smallint, 0), + d.DATA_TYPE, + TYPE_NAME = t.name, + "PRECISION" = isnull(d.data_precision, convert(int,c.length)), + LENGTH = isnull(d.length, convert(int,c.length)), + SCALE = d.numeric_scale, + d.RADIX, + d.NULLABLE, + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),null), + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.data_precision, convert(int,c.length))+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',d.NULLABLE*3+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.id = @procedure_id + AND c.id = o.id + AND t.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND c.usertype = t.usertype + AND c.name like @column_name + AND c.number between @group_num_lower and @group_num_upper + UNION ALL + SELECT /* return value row*/ + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ isnull(ltrim(str(c.number,5)),'1')), + COLUMN_NAME = convert(varchar(32),'RETURN_VALUE'), + COLUMN_TYPE = convert(smallint, 5), + DATA_TYPE = convert(smallint, 4), + TYPE_NAME = convert(varchar(32),'int'), + "PRECISION" = convert(int,10), + LENGTH = convert(int,4), + SCALE = convert(smallint,0), + RADIX = convert(smallint,10), + NULLABLE = convert(smallint,0), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),NULL), + SQL_DATA_TYPE = convert(smallint, 4), + SQL_DATETIME_SUB = convert(smallint,null), + CHAR_OCTET_LENGTH = convert(int,null), + ORDINAL_POSITION = convert(int,0), + IS_NULLABLE = convert(varchar(254),'NO'), + SS_DATA_TYPE = convert(tinyint,56) + FROM + syscomments c, sysobjects o + WHERE + o.id = @procedure_id + AND c.id = o.id + AND c.colid = 1 + AND o.type = 'P' /* Just Procedures */ + AND 'RETURN_VALUE' like @column_name + AND c.number between @group_num_lower and @group_num_upper + ORDER BY 1, 2, 3, 18 + end + else + begin + /* this block is for the case where there IS pattern + matching done on the procedure name */ + if @procedure_owner is null + select @procedure_owner = '%' + SELECT + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ ltrim(str(c.number,5))), + COLUMN_NAME = convert(varchar(32),c.name), + COLUMN_TYPE = convert(smallint, 0), + d.DATA_TYPE, + TYPE_NAME = t.name, + "PRECISION" = isnull(d.data_precision, convert(int,c.length)), + LENGTH = isnull(d.length, convert(int,c.length)), + SCALE = d.numeric_scale, + d.RADIX, + d.NULLABLE, + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),null), + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.data_precision, convert(int,c.length))+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',d.NULLABLE*3+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.name like @procedure_name + AND user_name(o.uid) like @procedure_owner + AND o.id = c.id + AND t.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND c.usertype = t.usertype + AND o.type = 'P' /* Just Procedures */ + AND c.name like @column_name + AND c.number between @group_num_lower and @group_num_upper + UNION ALL + SELECT /* return value row*/ + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ isnull(ltrim(str(c.number,5)),'1')), + COLUMN_NAME = convert(varchar(32),'RETURN_VALUE'), + COLUMN_TYPE = convert(smallint, 5), + DATA_TYPE = convert(smallint, 4), + TYPE_NAME = convert(varchar(32),'int'), + "PRECISION" = convert(int,10), + LENGTH = convert(int,4), + SCALE = convert(smallint,0), + RADIX = convert(smallint,10), + NULLABLE = convert(smallint,0), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),NULL), + SQL_DATA_TYPE = convert(smallint, 4), + SQL_DATETIME_SUB = convert(smallint,null), + CHAR_OCTET_LENGTH = convert(int,null), + ORDINAL_POSITION = convert(int,0), + IS_NULLABLE = convert(varchar(254),'NO'), + SS_DATA_TYPE = convert(tinyint,56) + FROM + syscomments c, sysobjects o + WHERE + o.name like @procedure_name + AND user_name(o.uid) like @procedure_owner + AND c.id = o.id + AND c.colid = 1 + AND o.type = 'P' /* Just Procedures */ + AND 'RETURN_VALUE' like @column_name + AND c.number between @group_num_lower and @group_num_upper + ORDER BY 1, 2, 3, 18 + end +go + +if (charindex('6.00', @@version) = 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.0 SQL Server.' + print 'Ignore the following error.' +end +else + drop proc sp_sproc_columns +go + +/* Procedure for 6.0 and 6.50 servers */ +CREATE PROCEDURE sp_sproc_columns ( + @procedure_name varchar(102) = '%', /* 3*36+5+1 */ + @procedure_owner varchar(96) = null, + @procedure_qualifier varchar(32) = null, + @column_name varchar(96) = null, + @ODBCVer int = 2) +AS + DECLARE @group_num_lower smallint + DECLARE @group_num_upper smallint + DECLARE @semi_position int + DECLARE @full_procedure_name varchar(205) + DECLARE @procedure_id int + + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + if @procedure_qualifier is not null + begin + if db_name() <> @procedure_qualifier + begin + if @procedure_qualifier = '' + begin + /* in this case, we need to return an empty result set */ + /* because the user has requested a database with an empty name */ + select @procedure_name = '' + select @procedure_owner = '' + end + else + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + end + + if @procedure_name is null + begin /* If procedure name not supplied, match all */ + select @procedure_name = '%' + end + + /* first we need to extract the procedure group number, if one exists */ + select @semi_position = charindex(';',@procedure_name) + if (@semi_position > 0) + begin /* If group number separator (;) found */ + select @group_num_lower = convert(int,substring(@procedure_name, @semi_position + 1, 2)) + select @group_num_upper = @group_num_lower + select @procedure_name = substring(@procedure_name, 1, @semi_position -1) + end + else + begin /* No group separator, so default to group number of 1 */ + select @group_num_lower = 1 + select @group_num_upper = 32767 + end + + if @procedure_owner is null + begin /* If unqualified procedure name */ + SELECT @full_procedure_name = @procedure_name + end + else + begin /* Qualified procedure name */ + SELECT @full_procedure_name = @procedure_owner + '.' + @procedure_name + end + + /* Get Object ID */ + SELECT @procedure_id = object_id(@full_procedure_name) + if ((charindex('%',@full_procedure_name) = 0) and + (charindex('[',@full_procedure_name) = 0) and + (charindex('_',@full_procedure_name) = 0) and + @procedure_id <> 0) + begin + /* this block is for the case where there is no pattern + matching required for the procedure name */ + SELECT + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ ltrim(str(c.number,5))), + COLUMN_NAME = convert(varchar(32),c.name), + COLUMN_TYPE = convert(smallint, 1+((c.status/64)&1)), + d.DATA_TYPE, + TYPE_NAME = t.name, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else isnull(convert(int,c.prec), 2147483647) + end) "PRECISION", + convert(int,case + when d.ss_dtype IN (106, 108, 55, 63) then /* decimal/numeric types */ + c.prec+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, c.scale), + d.RADIX, + d.NULLABLE, + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),NULL), + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(convert(int,c.prec), 2147483647)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',d.NULLABLE*3+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.id = @procedure_id + AND c.id = o.id + AND c.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND isnull(d.AUTO_INCREMENT,0) = 0 + AND c.usertype = t.usertype + AND c.name like @column_name + AND c.number between @group_num_lower and @group_num_upper + UNION ALL + SELECT /* return value row*/ + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ isnull(ltrim(str(c.number,5)),'1')), + COLUMN_NAME = convert(varchar(32),'RETURN_VALUE'), + COLUMN_TYPE = convert(smallint, 5), + DATA_TYPE = convert(smallint, 4), + TYPE_NAME = convert(varchar(32),'int'), + "PRECISION" = convert(int,10), + LENGTH = convert(int,4), + SCALE = convert(smallint,0), + RADIX = convert(smallint,10), + NULLABLE = convert(smallint,0), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),NULL), + SQL_DATA_TYPE = convert(smallint, 4), + SQL_DATETIME_SUB = convert(smallint,null), + CHAR_OCTET_LENGTH = convert(int,null), + ORDINAL_POSITION = convert(int,0), + IS_NULLABLE = convert(varchar(254),'NO'), + SS_DATA_TYPE = convert(tinyint,56) + FROM + syscomments c, sysobjects o + WHERE + o.id = @procedure_id + AND c.id = o.id + AND c.colid = 1 + AND o.type = 'P' /* Just Procedures */ + AND 'RETURN_VALUE' like @column_name + AND c.number between @group_num_lower and @group_num_upper + ORDER BY 1, 2, 3, 18 + end + else + begin + /* this block is for the case where there IS pattern + matching done on the procedure name */ + if @procedure_owner is null + select @procedure_owner = '%' + SELECT + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ ltrim(str(c.number,5))), + COLUMN_NAME = convert(varchar(32),c.name), + COLUMN_TYPE = convert(smallint, 1+((c.status/64)&1)), + d.DATA_TYPE, + TYPE_NAME = t.name, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else isnull(convert(int,c.prec), 2147483647) + end) "PRECISION", + convert(int,case + when d.ss_dtype IN (106, 108, 55, 63) then /* decimal/numeric types */ + c.prec+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, c.scale), + d.RADIX, + d.NULLABLE, + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),NULL), + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(convert(int,c.prec), 2147483647)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',d.NULLABLE*3+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.name like @procedure_name + AND user_name(o.uid) like @procedure_owner + AND o.id = c.id + AND c.type = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND isnull(d.AUTO_INCREMENT,0) = 0 + AND c.usertype = t.usertype + AND o.type = 'P' /* Just Procedures */ + AND c.name like @column_name + AND c.number between @group_num_lower and @group_num_upper + UNION ALL + SELECT /* return value row*/ + PROCEDURE_QUALIFIER = convert(varchar(32),DB_NAME()), + PROCEDURE_OWNER = convert(varchar(32),USER_NAME(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ isnull(ltrim(str(c.number,5)),'1')), + COLUMN_NAME = convert(varchar(32),'RETURN_VALUE'), + COLUMN_TYPE = convert(smallint, 5), + DATA_TYPE = convert(smallint, 4), + TYPE_NAME = convert(varchar(32),'int'), + "PRECISION" = convert(int,10), + LENGTH = convert(int,4), + SCALE = convert(smallint,0), + RADIX = convert(smallint,10), + NULLABLE = convert(smallint,0), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(varchar(255),NULL), + SQL_DATA_TYPE = convert(smallint, 4), + SQL_DATETIME_SUB = convert(smallint,null), + CHAR_OCTET_LENGTH = convert(int,null), + ORDINAL_POSITION = convert(int,0), + IS_NULLABLE = convert(varchar(254),'NO'), + SS_DATA_TYPE = convert(tinyint,56) + FROM + syscomments c, sysobjects o + WHERE + o.name like @procedure_name + AND user_name(o.uid) like @procedure_owner + AND c.id = o.id + AND c.colid = 1 + AND o.type = 'P' /* Just Procedures */ + AND 'RETURN_VALUE' like @column_name + AND c.number between @group_num_lower and @group_num_upper + ORDER BY 1, 2, 3, 18 + end +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_sproc_columns +go + +/* Procedure for 7.0 server */ +CREATE PROCEDURE sp_sproc_columns ( + @procedure_name nvarchar(390) = '%', + @procedure_owner nvarchar(384) = null, + @procedure_qualifier sysname = null, + @column_name nvarchar(384) = null, + @ODBCVer int = 2) +AS + DECLARE @group_num_lower smallint + DECLARE @group_num_upper smallint + DECLARE @semi_position int + DECLARE @full_procedure_name nvarchar(774) + DECLARE @procedure_id int + + if @column_name is null /* If column name not supplied, match all */ + select @column_name = '%' + if @procedure_qualifier is not null + begin + if db_name() <> @procedure_qualifier + begin + if @procedure_qualifier = '' + begin + /* in this case, we need to return an empty result set */ + /* because the user has requested a database with an empty name */ + select @procedure_name = '' + select @procedure_owner = '' + end + else + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + end + + if @procedure_name is null + begin /* If procedure name not supplied, match all */ + select @procedure_name = '%' + end + + /* first we need to extract the procedure group number, if one exists */ + select @semi_position = charindex(';',@procedure_name) + if (@semi_position > 0) + begin /* If group number separator (;) found */ + select @group_num_lower = convert(int,substring(@procedure_name, @semi_position + 1, 2)) + select @group_num_upper = @group_num_lower + select @procedure_name = substring(@procedure_name, 1, @semi_position -1) + end + else + begin /* No group separator, so default to all groups */ + select @group_num_lower = 1 + select @group_num_upper = 32767 + end + + if @procedure_owner is null + begin /* If unqualified procedure name */ + SELECT @full_procedure_name = quotename(@procedure_name) + end + else + begin /* Qualified procedure name */ + if @procedure_owner = '' + begin /* If empty owner name */ + SELECT @full_procedure_name = quotename(@procedure_owner) + end + else + begin + SELECT @full_procedure_name = quotename(@procedure_owner) + + '.' + quotename(@procedure_name) + end + end + + /* Get Object ID */ + SELECT @procedure_id = object_id(@full_procedure_name) + if ((isnull(charindex('%', @full_procedure_name),0) = 0) and + (isnull(charindex('[', @procedure_name),0) = 0) and + (isnull(charindex('[', @procedure_owner),0) = 0) and + (isnull(charindex('_', @full_procedure_name),0) = 0) and + not (@procedure_id is null)) + begin + /* this block is for the case where there is no pattern + matching required for the procedure name */ + SELECT + PROCEDURE_QUALIFIER = convert(sysname,DB_NAME()), + PROCEDURE_OWNER = convert(sysname,USER_NAME(o.uid)), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + COLUMN_NAME = convert(sysname,c.name), + COLUMN_TYPE = convert(smallint, 1+c.isoutparam), + d.DATA_TYPE, + TYPE_NAME = t.name, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else OdbcPrec(c.xtype,c.length,c.xprec) + end) "PRECISION", + convert(int,case + when type_name(d.ss_dtype) IN ('numeric','decimal') then /* decimal/numeric types */ + OdbcPrec(c.xtype,c.length,c.xprec)+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, OdbcScale(c.xtype,c.xscale)), + d.RADIX, + d.NULLABLE, + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(nvarchar(4000),NULL), + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.length, c.length)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',d.NULLABLE*3+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.id = @procedure_id + AND c.id = o.id + AND c.xtype = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND isnull(d.AUTO_INCREMENT,0) = 0 + AND c.xusertype = t.xusertype + AND c.name like @column_name + AND c.number between @group_num_lower and @group_num_upper + UNION ALL + SELECT /* return value row*/ + PROCEDURE_QUALIFIER = convert(sysname,DB_NAME()), + PROCEDURE_OWNER = convert(sysname,USER_NAME(o.uid)), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + COLUMN_NAME = convert(sysname,'RETURN_VALUE'), + COLUMN_TYPE = convert(smallint, 5), + DATA_TYPE = convert(smallint, 4), + TYPE_NAME = convert(sysname,'int'), + "PRECISION" = convert(int,10), + LENGTH = convert(int,4), + SCALE = convert(smallint,0), + RADIX = convert(smallint,10), + NULLABLE = convert(smallint,0), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(nvarchar(4000),NULL), + SQL_DATA_TYPE = convert(smallint, 4), + SQL_DATETIME_SUB = convert(smallint,null), + CHAR_OCTET_LENGTH = convert(int,null), + ORDINAL_POSITION = convert(int,0), + IS_NULLABLE = convert(varchar(254),'NO'), + SS_DATA_TYPE = convert(tinyint,56) + FROM + syscomments c, sysobjects o + WHERE + o.id = @procedure_id + AND c.id = o.id + AND c.colid = 1 + AND o.type = 'P' /* Just Procedures */ + AND 'RETURN_VALUE' like @column_name + AND c.number between @group_num_lower and @group_num_upper + ORDER BY 1, 2, 3, 18 + end + else + begin + /* this block is for the case where there IS pattern + matching done on the procedure name */ + if @procedure_owner is null + select @procedure_owner = '%' + SELECT + PROCEDURE_QUALIFIER = convert(sysname,DB_NAME()), + PROCEDURE_OWNER = convert(sysname,USER_NAME(o.uid)), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + COLUMN_NAME = convert(sysname,c.name), + COLUMN_TYPE = convert(smallint, 1+c.isoutparam), + d.DATA_TYPE, + TYPE_NAME = t.name, + convert(int,case + when d.DATA_TYPE in (6,7) then d.data_precision /* FLOAT/REAL */ + else OdbcPrec(c.xtype,c.length,c.xprec) + end) "PRECISION", + convert(int,case + when type_name(d.ss_dtype) IN ('numeric','decimal') then /* decimal/numeric types */ + OdbcPrec(c.xtype,c.length,c.xprec)+2 + else + isnull(d.length, c.length) + end) LENGTH, + SCALE = convert(smallint, OdbcScale(c.xtype,c.xscale)), + d.RADIX, + d.NULLABLE, + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(nvarchar(4000),NULL), + d.SQL_DATA_TYPE, + d.SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH = isnull(d.length, c.length)+d.charbin, + ORDINAL_POSITION = convert(int,c.colid), + IS_NULLABLE = convert(varchar(254),rtrim(substring('NO YES',d.NULLABLE*3+1,3))), + SS_DATA_TYPE = c.type + FROM + syscolumns c, + sysobjects o, + master.dbo.spt_datatype_info d, + systypes t + WHERE + o.name like @procedure_name + AND user_name(o.uid) like @procedure_owner + AND o.id = c.id + AND c.xtype = d.ss_dtype + AND c.length = isnull(d.fixlen, c.length) + AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer) + AND isnull(d.AUTO_INCREMENT,0) = 0 + AND c.xusertype = t.xusertype + AND o.type = 'P' /* Just Procedures */ + AND c.name like @column_name + AND c.number between @group_num_lower and @group_num_upper + UNION ALL + SELECT /* return value row*/ + PROCEDURE_QUALIFIER = convert(sysname,DB_NAME()), + PROCEDURE_OWNER = convert(sysname,USER_NAME(o.uid)), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ isnull(ltrim(str(c.number,5)),'1')), + COLUMN_NAME = convert(sysname,'RETURN_VALUE'), + COLUMN_TYPE = convert(smallint, 5), + DATA_TYPE = convert(smallint, 4), + TYPE_NAME = convert(sysname,'int'), + "PRECISION" = convert(int,10), + LENGTH = convert(int,4), + SCALE = convert(smallint,0), + RADIX = convert(smallint,10), + NULLABLE = convert(smallint,0), + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + COLUMN_DEF = convert(nvarchar(4000),NULL), + SQL_DATA_TYPE = convert(smallint, 4), + SQL_DATETIME_SUB = convert(smallint,null), + CHAR_OCTET_LENGTH = convert(int,null), + ORDINAL_POSITION = convert(int,0), + IS_NULLABLE = convert(varchar(254),'NO'), + SS_DATA_TYPE = convert(tinyint,56) + FROM + syscomments c, sysobjects o + WHERE + o.name like @procedure_name + AND c.id = o.id + AND user_name(o.uid) like @procedure_owner + AND c.colid = 1 + AND o.type = 'P' /* Just Procedures */ + AND 'RETURN_VALUE' like @column_name + AND c.number between @group_num_lower and @group_num_upper + ORDER BY 1, 2, 3, 18 + end +go + +grant execute on sp_sproc_columns to public +go + +dump tran master with no_log +go + +print 'creating sp_statistics' +go + +/* Procedure for pre-7.0 server */ +CREATE PROCEDURE sp_statistics ( + @table_name varchar(32), + @table_owner varchar(32) = null, + @table_qualifier varchar(32) = null, + @index_name varchar(32) = '%', + @is_unique char(1) = 'N', + @accuracy char(1) = 'Q') +AS + set nocount on + DECLARE @indid int + DECLARE @lastindid int + DECLARE @table_id int + DECLARE @full_table_name varchar(65) /* 2*32+1 */ + + create table #TmpIndex( + TABLE_QUALIFIER varchar(32) NULL, + TABLE_OWNER varchar(32) NULL, + TABLE_NAME varchar(32) NOT NULL, + INDEX_QUALIFIER varchar(32) null, + INDEX_NAME varchar(32) null, + NON_UNIQUE smallint null, + TYPE smallint NOT NULL, + SEQ_IN_INDEX smallint null, + COLUMN_NAME varchar(32) null, + COLLATION char(1) null, + index_id int null, + CARDINALITY int null, + PAGES int null, + status smallint NOT NULL) + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_5~~' + return + end + end + + if @accuracy not in ('Q','E') + begin + raiserror 20002 '~~Rush_58~~' + return + end + + if (@@trancount <> 0 and + charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) + begin /* If inside a transaction */ + raiserror 20003 '~~Rush_59~~' + return + end + + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + if @table_owner = '' + begin /* If empty owner name */ + SELECT @full_table_name = @table_owner + end + else + begin + SELECT @full_table_name = @table_owner + '.' + @table_name + end + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + /* Start at lowest index id */ + SELECT @indid = min(indid) + FROM sysindexes + WHERE id = @table_id + AND indid > 0 + AND indid < 255 + + WHILE @indid is not NULL + BEGIN + INSERT #TmpIndex /* Add all columns that are in index */ + SELECT + DB_NAME(), /* TABLE_QUALIFIER */ + USER_NAME(o.uid), /* TABLE_OWNER */ + o.name, /* TABLE_NAME */ + o.name, /* INDEX_QUALIFIER */ + x.name, /* INDEX_NAME */ + 0, /* NON_UNIQUE */ + 1, /* SQL_INDEX_CLUSTERED */ + colid, /* SEQ_IN_INDEX */ + INDEX_COL(@full_table_name,indid,colid),/* COLUMN_NAME */ + 'A', /* COLLATION */ + @indid, /* index_id */ + x.rows, /* CARDINALITY */ + x.dpages, /* PAGES */ + x.status /* status */ + FROM sysindexes x, syscolumns c, sysobjects o + WHERE + x.id = @table_id + AND x.id = o.id + AND x.id = c.id + AND c.colid < keycnt+(x.status&18)/18 /* all but Unique Clust indices have an extra key */ + AND x.indid = @indid + /* + ** Now move @indid to the next index. + */ + SELECT @lastindid = @indid + SELECT @indid = NULL + + SELECT @indid = min(indid) + FROM sysindexes + WHERE id = @table_id + AND indid > @lastindid + AND indid < 255 + END + + UPDATE #TmpIndex + SET NON_UNIQUE = 1 + WHERE status&2 <> 2 /* If non-unique index */ + UPDATE #TmpIndex + SET + TYPE = 3, /* SQL_INDEX_OTHER */ + CARDINALITY = NULL, + PAGES = NULL + WHERE index_id > 1 /* If non-clustered index */ + + /* now add row for table statistics */ + INSERT #TmpIndex + SELECT + DB_NAME(), /* TABLE_QUALIFIER */ + USER_NAME(o.uid), /* TABLE_OWNER */ + o.name, /* TABLE_NAME */ + null, /* INDEX_QUALIFIER */ + null, /* INDEX_NAME */ + null, /* NON_UNIQUE */ + 0, /* SQL_TABLE_STAT */ + null, /* SEQ_IN_INDEX */ + null, /* COLUMN_NAME */ + null, /* COLLATION */ + 0, /* index_id */ + x.rows, /* CARDINALITY */ + x.dpages, /* PAGES */ + 0 /* status */ + FROM sysindexes x, sysobjects o + WHERE o.id = @table_id + AND x.id = o.id + AND (x.indid = 0 or x.indid = 1) /* If there are no indexes */ + /* then table stats are in */ + /* a row with indid =0 */ + + if @is_unique <> 'Y' /* If all indexes desired */ + SELECT + TABLE_QUALIFIER, + TABLE_OWNER, + TABLE_NAME, + NON_UNIQUE, + INDEX_QUALIFIER, + INDEX_NAME, + TYPE, + SEQ_IN_INDEX, + COLUMN_NAME, + COLLATION, + CARDINALITY, + PAGES, + FILTER_CONDITION = convert(varchar(128),null) + FROM #TmpIndex + WHERE + INDEX_NAME like @index_name /* If matching name */ + or INDEX_NAME is null /* If SQL_TABLE_STAT row */ + ORDER BY 4, 7, 6, 8 + else /* If only unique indexes desired */ + SELECT + TABLE_QUALIFIER, + TABLE_OWNER, + TABLE_NAME, + NON_UNIQUE, + INDEX_QUALIFIER, + INDEX_NAME, + TYPE, + SEQ_IN_INDEX, + COLUMN_NAME, + COLLATION, + CARDINALITY, + PAGES, + FILTER_CONDITION = convert(varchar(128),null) + FROM #TmpIndex + WHERE + (NON_UNIQUE = 0 /* If unique */ + or NON_UNIQUE is NULL) /* If SQL_TABLE_STAT row */ + and (INDEX_NAME like @index_name /* If matching name */ + or INDEX_NAME is null) /* If SQL_TABLE_STAT row */ + ORDER BY 4, 7, 6, 8 + + DROP TABLE #TmpIndex +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_statistics +go + +/* Procedure for 7.0 server */ +CREATE PROCEDURE sp_statistics ( + @table_name sysname, + @table_owner sysname = null, + @table_qualifier sysname = null, + @index_name sysname = '%', + @is_unique char(1) = 'N', + @accuracy char(1) = 'Q') +AS + set nocount on + DECLARE @indid int + DECLARE @lastindid int + DECLARE @table_id int + DECLARE @full_table_name nvarchar(257) + + create table #TmpIndex( + TABLE_QUALIFIER sysname NULL, + TABLE_OWNER sysname NULL, + TABLE_NAME sysname NOT NULL, + INDEX_QUALIFIER sysname null, + INDEX_NAME sysname null, + NON_UNIQUE smallint null, + TYPE smallint NOT NULL, + SEQ_IN_INDEX smallint null, + COLUMN_NAME sysname null, + COLLATION char(1) null, + index_id int null, + CARDINALITY int null, + PAGES int null, + status int NOT NULL) + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + + if @accuracy not in ('Q','E') + begin + raiserror (15251,-1,-1,'accuracy','''Q'' or ''E''') + return + end + + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = quotename(@table_name) + end + else + begin /* Qualified table name */ + if @table_owner = '' + begin /* If empty owner name */ + SELECT @full_table_name = quotename(@table_owner) + end + else + begin + SELECT @full_table_name = quotename(@table_owner) + + '.' + quotename(@table_name) + end + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + /* Start at lowest index id */ + SELECT @indid = min(indid) + FROM sysindexes + WHERE not (@table_id is null) + AND id = @table_id + AND indid > 0 + AND indid < 255 + + WHILE @indid is not NULL + BEGIN + INSERT #TmpIndex /* Add all columns that are in index */ + SELECT + DB_NAME(), /* TABLE_QUALIFIER */ + USER_NAME(o.uid), /* TABLE_OWNER */ + o.name, /* TABLE_NAME */ + o.name, /* INDEX_QUALIFIER */ + x.name, /* INDEX_NAME */ + case /* NON_UNIQUE */ + WHEN x.status&2 <> 2 then 1 /* Nonunique index */ + else 0 /* Unique index */ + end, + case /* TYPE */ + when @indid > 1 then 3 /* Non-Clustered */ + else 1 /* Clustered index */ + end, + colid, /* SEQ_IN_INDEX */ + INDEX_COL(@full_table_name,indid,colid),/* COLUMN_NAME */ + 'A', /* COLLATION */ + @indid, /* index_id */ + case /* CARDINALITY */ + when @indid > 1 then NULL /* Non-Clustered */ + else x.rows /* Clustered index */ + end, + case /* PAGES */ + when @indid > 1 then NULL /* Non-Clustered */ + else x.dpages /* Clustered index */ + end, + x.status /* status */ + FROM sysindexes x, syscolumns c, sysobjects o + WHERE + not (@table_id is null) + AND x.id = @table_id + AND x.id = o.id + AND x.id = c.id + AND colid < keycnt+(x.status&18)/18 /* all but Unique Clust indices have an extra key */ + AND INDEX_COL(@full_table_name,indid,colid) IS NOT NULL + AND indid = @indid + AND (x.status&2 = 2 + OR @is_unique <> 'Y') + /* + ** Now move @indid to the next index. + */ + SELECT @lastindid = @indid + SELECT @indid = NULL + + SELECT @indid = min(indid) + FROM sysindexes + WHERE not (@table_id is null) + AND id = @table_id + AND indid > @lastindid + AND indid < 255 + END + + /* now add row for table statistics */ + INSERT #TmpIndex + SELECT + DB_NAME(), /* TABLE_QUALIFIER */ + USER_NAME(o.uid), /* TABLE_OWNER */ + o.name, /* TABLE_NAME */ + null, /* INDEX_QUALIFIER */ + null, /* INDEX_NAME */ + null, /* NON_UNIQUE */ + 0, /* SQL_TABLE_STAT */ + null, /* SEQ_IN_INDEX */ + null, /* COLUMN_NAME */ + null, /* COLLATION */ + 0, /* index_id */ + x.rows, /* CARDINALITY */ + x.dpages, /* PAGES */ + 0 /* status */ + FROM sysindexes x, sysobjects o + WHERE not (@table_id is null) + AND o.id = @table_id + AND x.id = o.id + AND (x.indid = 0 or x.indid = 1) /* If there are no indexes */ + /* then table stats are in */ + /* a row with indid =0 */ + + SELECT + TABLE_QUALIFIER, + TABLE_OWNER, + TABLE_NAME, + NON_UNIQUE, + INDEX_QUALIFIER, + INDEX_NAME, + TYPE, + SEQ_IN_INDEX, + COLUMN_NAME, + COLLATION, + CARDINALITY, + PAGES, + FILTER_CONDITION = convert(varchar(128),null) + FROM #TmpIndex + WHERE + INDEX_NAME like @index_name /* If matching name */ + or INDEX_NAME is null /* If SQL_TABLE_STAT row */ + ORDER BY 4, 7, 6, 8 + + DROP TABLE #TmpIndex +go + +grant execute on sp_statistics to public +go + +dump tran master with no_log +go + +print 'creating sp_stored_procedures' +go + + +/* pre 7.00 version */ +create procedure sp_stored_procedures( + @sp_name varchar(102) = null, + @sp_owner varchar(96) = null, + @sp_qualifier varchar(32) = null) +as + declare @proc_type smallint + + if @sp_qualifier is not null + begin + if db_name() <> @sp_qualifier + begin + if @sp_qualifier = '' + begin + /* in this case, we need to return an empty result set */ + /* because the user has requested a database with an empty name */ + select @sp_name = '' + select @sp_owner = '' + end else + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_51~~' + return + end + end + end + + if @sp_name is null + begin /* If procedure name not supplied, match all */ + select @sp_name = '%' + end + else begin + if (@sp_owner is null) and (charindex('%', @sp_name) = 0) + begin + if exists (select * from sysobjects + where uid = user_id() + and name = @sp_name + and type = 'P') /* Object type of Procedure */ + begin + select @sp_owner = user_name() + end + end + end + if @sp_owner is null /* If procedure owner not supplied, match all */ + select @sp_owner = '%' + + select @proc_type=2 /* Return 2 for 4.2 and later servers. */ + + select + PROCEDURE_QUALIFIER = convert(varchar(32),db_name()), + PROCEDURE_OWNER = convert(varchar(32),user_name(o.uid)), + PROCEDURE_NAME = convert(varchar(36),o.name +';'+ ltrim(str(c.number,5))), + NUM_INPUT_PARAMS = -1, /* Constant since value unknown */ + NUM_OUTPUT_PARAMS = -1, /* Constant since value unknown */ + NUM_RESULT_SETS = -1, /* Constant since value unknown */ + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + PROCEDURE_TYPE = @proc_type + from + sysobjects o,syscomments c,sysusers u + where + o.name like @sp_name + and c.colid = 1 + and user_name(o.uid) like @sp_owner + and o.type = 'P' /* Object type of Procedure */ + and c.id = o.id + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and (suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ((select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + /* outer join to correlate with all rows in sysobjects */ + where p.id =* o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid =* u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 1, 2, 3 +go + +grant execute on sp_stored_procedures to public +go + + +if (charindex('7.00', @@version) > 0) + drop procedure sp_stored_procedures +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + + +/* 7.00 version */ +create procedure sp_stored_procedures( + @sp_name nvarchar(390) = null, + @sp_owner nvarchar(384) = null, + @sp_qualifier sysname = null) +as + declare @proc_type smallint + + if @sp_qualifier is not null + begin + if db_name() <> @sp_qualifier + begin + if @sp_qualifier = '' + begin + /* in this case, we need to return an empty result set */ + /* because the user has requested a database with an empty name */ + select @sp_name = '' + select @sp_owner = '' + end else + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + end + + if @sp_name is null + begin /* If procedure name not supplied, match all */ + select @sp_name = '%' + end + else begin + if (@sp_owner is null) and (charindex('%', @sp_name) = 0) + begin + if exists (select * from sysobjects + where uid = user_id() + and name = @sp_name + and type = 'P') /* Object type of Procedure */ + begin + select @sp_owner = user_name() + end + end + end + if @sp_owner is null /* If procedure owner not supplied, match all */ + select @sp_owner = '%' + + select @proc_type=2 /* Return 2 for 4.2 and later servers. */ + + select + PROCEDURE_QUALIFIER = convert(sysname,db_name()), + PROCEDURE_OWNER = convert(sysname,user_name(o.uid)), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + NUM_INPUT_PARAMS = -1, /* Constant since value unknown */ + NUM_OUTPUT_PARAMS = -1, /* Constant since value unknown */ + NUM_RESULT_SETS = -1, /* Constant since value unknown */ + REMARKS = convert(varchar(254),null), /* Remarks are NULL */ + PROCEDURE_TYPE = @proc_type + from + sysobjects o,syscomments c + where + o.name like @sp_name + and c.colid = 1 + and user_name(o.uid) like @sp_owner + and o.type = 'P' /* Object type of Procedure */ + and c.id = o.id + and permissions (o.id)&32 <> 0 + order by 1, 2, 3 +go + +grant execute on sp_stored_procedures to public +go + +dump tran master with no_log +go + + +print 'creating sp_table_privileges' +go + +/* Procedure for pre 6.50 server */ +CREATE PROCEDURE sp_table_privileges ( + @table_name varchar(90), + @table_owner varchar(90) = null, + @table_qualifier varchar(32) = null) +as + set nocount on + + declare @table_id int, + @owner_id int, + @full_table_name char(181) + declare @refconst int + + select @refconst = 1 + if (charindex('6.00', @@version) = 0) + select @refconst = NULL + + if @table_qualifier is not null + begin + if db_name() != @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror 20001 'Table qualifier must be name of current database' + return + end + end + if @table_owner is null + begin /* If unqualified table name */ + SELECT @full_table_name = @table_name + end + else + begin /* Qualified table name */ + SELECT @full_table_name = @table_owner + '.' + @table_name + end + /* Get Object ID */ + SELECT @table_id = object_id(@full_table_name) + + if @@trancount != 0 + begin /* If inside a transaction */ + raiserror 20003 'The procedure ''sp_table_privileges'' cannot be executed from within a transaction.' + return + end + create table #table_priv1( + table_qualifier varchar(32) NOT NULL, + table_owner varchar(32) NOT NULL, + table_name varchar(32) NOT NULL, + grantor varchar(32) NOT NULL, + grantee varchar(32) NOT NULL, + select_privilege int NOT NULL, + insert_privilege int NOT NULL, + update_privilege int NOT NULL, + delete_privilege int NOT NULL, + references_privilege int NULL, + is_grantable varchar(3) NOT NULL, + uid int NOT NULL, + gid int NOT NULL) + + insert into #table_priv1 + select distinct + db_name(), + user_name(o.uid), + o.name, + user_name(o.uid), + u.name, + 0, + 0, + 0, + 0, + @refconst, + 'no', + u.uid, + u.gid + from sysusers u, sysobjects o + where o.id = @table_id and u.uid != u.gid + and sysstat & 0xf in (1,2,3) /* only valid for system tables, + ** user tables, and views. */ + + /* + ** now add row for table owner + */ + if exists ( + select * + from #table_priv1 + where grantor = grantee) + begin + update #table_priv1 + set + select_privilege = 1, + update_privilege = 1, + insert_privilege = 1, + delete_privilege = 1, + references_privilege = 1, + is_grantable = 'yes' + where grantor = grantee + end + else + begin + insert into #table_priv1 + select db_name(), + user_name(o.uid), + o.name, + user_name(o.uid), + user_name(o.uid), + 1, + 1, + 1, + 1, + @refconst, + 'yes', + o.uid, + u.gid + from sysobjects o, sysusers u + where o.id = @table_id and u.uid = o.uid + and sysstat & 0xf in (1,2,3) /* only valid for system tables, + ** user tables, and views. */ + + end + + update #table_priv1 + set select_privilege = 1 + where + exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 205 + and action = 193) + and not exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 206 + and action = 193) + + update #table_priv1 + set insert_privilege = 1 + where + exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 205 + and action = 195) + and not exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 206 + and action = 195) + + update #table_priv1 + set delete_privilege = 1 + where + exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 205 + and action = 196) + and not exists (select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 206 + and action = 196) + + update #table_priv1 + set update_privilege = 1 + where + exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 205 + and action = 197) + and not exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 206 + and action = 197) + + update #table_priv1 + set references_privilege = 1 + where + exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 205 + and action = 26) + and not exists ( + select * from sysprotects + where + id = @table_id + and (#table_priv1.uid = uid + or #table_priv1.gid = uid + or uid = 0) + and protecttype = 206 + and action = 26) + + create table #table_priv2( + table_qualifier varchar(32) NULL, + table_owner varchar(32) NULL, + table_name varchar(32) NOT NULL, + grantor varchar(32) NULL, + grantee varchar(32) NOT NULL, + privilege varchar(32) NOT NULL, + is_grantable varchar(3) NULL) + + insert into #table_priv2 + select + table_qualifier, + table_owner, + table_name, + grantor, + grantee, + 'SELECT', + is_grantable + from #table_priv1 + where select_privilege = 1 + + + insert into #table_priv2 + select + table_qualifier, + table_owner, + table_name, + grantor, + grantee, + 'INSERT', + is_grantable + from #table_priv1 + where insert_privilege = 1 + + + insert into #table_priv2 + select + table_qualifier, + table_owner, + table_name, + grantor, + grantee, + 'DELETE', + is_grantable + from #table_priv1 + where delete_privilege = 1 + + + insert into #table_priv2 + select + table_qualifier, + table_owner, + table_name, + grantor, + grantee, + 'UPDATE', + is_grantable + from #table_priv1 + where update_privilege = 1 + + insert into #table_priv2 + select + table_qualifier, + table_owner, + table_name, + grantor, + grantee, + 'REFERENCES', + is_grantable + from #table_priv1 + where references_privilege = 1 + + + select * from #table_priv2 + order by table_owner,table_name,privilege,grantee +/* order by 2,3,6,5 Can't use since fails on 4.21a server */ +go + +if (charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.50 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_table_privileges +go + + +/* Procedure for 6.50 server */ +CREATE PROCEDURE sp_table_privileges ( + @table_name varchar(96), + @table_owner varchar(96) = null, + @table_qualifier varchar(32) = null) +as + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_name is null + select @table_name = '%' + if @table_owner is null /* If no owner supplied, force wildcard */ + select @table_owner = '%' + + select + convert(varchar(32),db_name()) TABLE_QUALIFIER, + convert(varchar(32),user_name(o.uid)) TABLE_OWNER, + convert(varchar(32),object_name(o.id)) TABLE_NAME, + convert(varchar(32),user_name(p.grantor)) GRANTOR, + convert(varchar(32),user_name(u.uid)) GRANTEE, + convert(varchar(32),case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert(varchar(3),case when p.protecttype = 205 then 'NO' + else 'YES' + end) IS_GRANTABLE + from sysprotects p, sysobjects o, sysusers u + where + p.id = o.id + and o.type in ('U','V','S') + and object_name(o.id) like @table_name + and user_name(o.uid) like @table_owner + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or + (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + convert(varchar(32),db_name()) TABLE_QUALIFIER, + convert(varchar(32),user_name(o.uid)) TABLE_OWNER, + convert(varchar(32),object_name(o.id)) TABLE_NAME, + convert(varchar(32),user_name(u.uid)) GRANTOR, + convert(varchar(32),user_name(o.uid)) GRANTEE, + convert(varchar(32),case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert(varchar(3),'YES') IS_GRANTABLE + from sysobjects o, master.dbo.spt_values v, sysusers u + where + object_name(o.id) like @table_name + and o.type in ('U','V','S') + and user_name(o.uid) like @table_owner + and u.suid = 1 /* grantor is dbo of database */ + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 2,3,6,5 +go + + +if (charindex('7.00', @@version) > 0) + drop proc sp_table_privileges +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* Procedure for 7.00 server */ +CREATE PROCEDURE sp_table_privileges ( + @table_name nvarchar(384), + @table_owner nvarchar(384) = null, + @table_qualifier sysname = null) +as + + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + if @table_name is null + select @table_name = '%' + if @table_owner is null /* If no owner supplied, force wildcard */ + select @table_owner = '%' + + select + convert(sysname,db_name()) TABLE_QUALIFIER, + convert(sysname,user_name(o.uid)) TABLE_OWNER, + convert(sysname,object_name(o.id)) TABLE_NAME, + convert(sysname,user_name(p.grantor)) GRANTOR, + convert(sysname,user_name(u.uid)) GRANTEE, + convert(varchar(32),case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert(varchar(3),case when p.protecttype = 205 then 'NO' + else 'YES' + end) IS_GRANTABLE + from sysprotects p, sysobjects o, sysusers u, sysmembers m + where + p.id = o.id + and o.type in ('U','V','S') + and object_name(o.id) like @table_name + and user_name(o.uid) like @table_owner + /* expand groups - AKUNDONE: only 1 level of grp unrolling. */ + and (u.uid > 0 and u.uid < 16384) + and ((p.uid = u.uid) or + (p.uid = m.groupuid and u.uid = m.memberuid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + convert(sysname,db_name()) TABLE_QUALIFIER, + convert(sysname,user_name(o.uid)) TABLE_OWNER, + convert(sysname,object_name(o.id)) TABLE_NAME, + convert(sysname,user_name(u.uid)) GRANTOR, + convert(sysname,user_name(o.uid)) GRANTEE, + convert(varchar(32),case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end) PRIVILEGE, + convert(varchar(3),'YES') IS_GRANTABLE + from sysobjects o, master.dbo.spt_values v, sysusers u + where + object_name(o.id) like @table_name + and o.type in ('U','V','S') + and user_name(o.uid) like @table_owner + and u.uid = 1 /* grantor is 'dbo' of database */ + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 2,3,6,5 +go + +grant execute on sp_table_privileges to public +go + +dump tran master with no_log +go + +print 'creating sp_tables' +go + +/* Procedure for 6.50 and earlier servers */ +create procedure sp_tables( + @table_name varchar(96) = null, + @table_owner varchar(96) = null, + @table_qualifier varchar(32) = null, + @table_type varchar(100) = null) +as + declare @type1 varchar(3) + declare @tableindex int + + + /* Special feature #1: enumerate databases when owner and name + are blank but qualifier is explicitly '%'. */ + if @table_qualifier = '%' and + @table_owner = '' and + @table_name = '' + begin /* If enumerating databases */ + select + TABLE_QUALIFIER = convert(varchar(32),d.name), + TABLE_OWNER = convert(varchar(32),null), + TABLE_NAME = convert(varchar(32),null), + TABLE_TYPE = convert(varchar(32),null), + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from master.dbo.sysdatabases d + where d.name <> 'model' /* eliminate MODEL database */ + order by 1 + end + + /* Special feature #2: enumerate owners when qualifier and name + are blank but owner is explicitly '%'. */ + else if @table_qualifier = '' and + @table_owner = '%' and + @table_name = '' + begin /* If enumerating owners */ + select distinct + TABLE_QUALIFIER = convert(varchar(32),null), + TABLE_OWNER = convert(varchar(32),user_name(uid)), + TABLE_NAME = convert(varchar(32),null), + TABLE_TYPE = convert(varchar(32),null), + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from sysobjects + order by 2 + end + + /* Special feature #3: enumerate table types when qualifier, owner and + name are blank but table type is explicitly '%'. */ + else if @table_qualifier = '' and + @table_owner = '' and + @table_name = '' and + @table_type = '%' + begin /* If enumerating table types */ + select + TABLE_QUALIFIER = convert(varchar(32),null), + TABLE_OWNER = convert(varchar(32),null), + TABLE_NAME = convert(varchar(32),null), + TABLE_TYPE = convert(varchar(32),rtrim(substring('SYSTEM TABLETABLE VIEW',(colid-1)*12+1,12))), + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from sysobjects o, syscolumns c + where o.id=c.id and o.name='sysusers' and colid<=3 + end + + else + begin /* end of special features - do normal processing */ + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin + if @table_qualifier = '' + begin /* If empty qualifier supplied */ + /* Force an empty result set */ + select @table_name = '' + select @table_owner = '' + end + else + begin /* If qualifier doesn't match current database */ + raiserror 20001 '~~Rush_5~~' + return + end + end + end + if @table_type is null + begin /* Select all ODBC supported table types */ + select @type1 = 'SUV' + end + else + begin + /* TableType is case sensitive if CS server */ + select @type1 = null + if (charindex('''SYSTEM TABLE''',@table_type) <> 0) + select @type1 = @type1 + 'S' /* Add System Tables */ + if (charindex('''TABLE''',@table_type) <> 0) + select @type1 = @type1 + 'U' /* Add User Tables */ + if (charindex('''VIEW''',@table_type) <> 0) + select @type1 = @type1 + 'V' /* Add Views */ + end + if @table_name is null + begin /* If table name not supplied, match all */ + select @table_name = '%' + end + else + begin + if (@table_owner is null) and (charindex('%', @table_name) = 0) + begin /* If owner not specified and table is specified */ + if exists (select * from sysobjects + where uid = user_id() + and name = @table_name + and (type = 'U' or type = 'V' or type = 'S')) + begin /* Override supplied owner w/owner of table */ + select @table_owner = user_name() + end + end + end + if @table_owner is null /* If no owner supplied, force wildcard */ + select @table_owner = '%' + select + TABLE_QUALIFIER = convert(varchar(32),db_name()), + TABLE_OWNER = convert(varchar(32),user_name(o.uid)), + TABLE_NAME = convert(varchar(32),o.name), /* make nullable */ + TABLE_TYPE = convert(varchar(32),rtrim( + substring('SYSTEM TABLE TABLE VIEW ', + (ascii(o.type)-83)*12+1,12))), /* 'S'=0,'U'=2,'V'=3 */ + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from sysusers u, sysobjects o + where + o.name like @table_name + and user_name(o.uid) like @table_owner + and charindex(substring(o.type,1,1),@type1) <> 0 /* Only desired types */ + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ((select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + /* outer join to correlate with all rows in sysobjects */ + where p.id =* o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid =* u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 4, 1, 2, 3 + end +go + +if (charindex('7.00', @@version) > 0) + drop procedure sp_tables +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* Procedure for 7.00 server */ +create procedure sp_tables( + @table_name nvarchar(384) = null, + @table_owner nvarchar(384) = null, + @table_qualifier sysname = null, + @table_type varchar(100) = null) +as + declare @type1 varchar(3) + declare @tableindex int + + + /* Special feature #1: enumerate databases when owner and name + are blank but qualifier is explicitly '%'. */ + if @table_qualifier = '%' and + @table_owner = '' and + @table_name = '' + begin /* If enumerating databases */ + select + TABLE_QUALIFIER = convert(sysname,d.name), + TABLE_OWNER = convert(sysname,null), + TABLE_NAME = convert(sysname,null), + TABLE_TYPE = convert(varchar(32),null), + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from master.dbo.sysdatabases d + where d.name <> 'model' /* eliminate MODEL database */ + order by 1 + end + + /* Special feature #2: enumerate owners when qualifier and name + are blank but owner is explicitly '%'. */ + else if @table_qualifier = '' and + @table_owner = '%' and + @table_name = '' + begin /* If enumerating owners */ + select distinct + TABLE_QUALIFIER = convert(sysname,null), + TABLE_OWNER = convert(sysname,user_name(uid)), + TABLE_NAME = convert(sysname,null), + TABLE_TYPE = convert(varchar(32),null), + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from sysobjects + order by 2 + end + + /* Special feature #3: enumerate table types when qualifier, owner and + name are blank but table type is explicitly '%'. */ + else if @table_qualifier = '' and + @table_owner = '' and + @table_name = '' and + @table_type = '%' + begin /* If enumerating table types */ + select + TABLE_QUALIFIER = convert(sysname,null), + TABLE_OWNER = convert(sysname,null), + TABLE_NAME = convert(sysname,null), + TABLE_TYPE = convert(varchar(32),rtrim(substring('SYSTEM TABLETABLE VIEW',(colid-1)*12+1,12))), + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from sysobjects o, syscolumns c + where o.id=c.id and o.name='sysusers' and colid<=3 + end + + else + begin /* end of special features - do normal processing */ + if @table_qualifier is not null + begin + if db_name() <> @table_qualifier + begin + if @table_qualifier = '' + begin /* If empty qualifier supplied */ + /* Force an empty result set */ + select @table_name = '' + select @table_owner = '' + end + else + begin /* If qualifier doesn't match current database */ + raiserror (15250, -1,-1) + return + end + end + end + if @table_type is null + begin /* Select all ODBC supported table types */ + select @type1 = 'SUV' + end + else + begin + /* TableType is case sensitive if CS server */ + select @type1 = '' + if (charindex('''SYSTEM TABLE''',@table_type) <> 0) + select @type1 = @type1 + 'S' /* Add System Tables */ + if (charindex('''TABLE''',@table_type) <> 0) + select @type1 = @type1 + 'U' /* Add User Tables */ + if (charindex('''VIEW''',@table_type) <> 0) + select @type1 = @type1 + 'V' /* Add Views */ + end + if @table_name is null + begin /* If table name not supplied, match all */ + select @table_name = '%' + end + else + begin + if (@table_owner is null) and (charindex('%', @table_name) = 0) + begin /* If owner not specified and table is specified */ + if exists (select * from sysobjects + where uid = user_id() + and name = @table_name + and (type = 'U' or type = 'V' or type = 'S')) + begin /* Override supplied owner w/owner of table */ + select @table_owner = user_name() + end + end + end + if @table_owner is null /* If no owner supplied, force wildcard */ + select @table_owner = '%' + select + TABLE_QUALIFIER = convert(sysname,db_name()), + TABLE_OWNER = convert(sysname,user_name(o.uid)), + TABLE_NAME = convert(sysname,o.name), /* make nullable */ + TABLE_TYPE = convert(varchar(32),rtrim( + substring('SYSTEM TABLE TABLE VIEW ', + (ascii(o.type)-83)*12+1,12))), /* 'S'=0,'U'=2,'V'=3 */ + REMARKS = convert(varchar(254),null) /* Remarks are NULL */ + from sysobjects o + where + o.name like @table_name + and user_name(o.uid) like @table_owner + and (o.type in ('U','S') or + (o.type = 'V' and ObjectProperty (o.id, 'IsMSShipped') = 0)) + and charindex(substring(o.type,1,1),@type1) <> 0 /* Only desired types */ + and permissions (o.id)&4096 <> 0 + order by 4, 1, 2, 3 + end +go + + +grant execute on sp_tables to public +go + +dump tran master with no_log +go + +if (charindex('6.50', @@version) = 0 and + charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 6.50 SQL Server.' + print 'Ignore the following errors.' +end + +print 'creating sp_ddopen' +go + +/* Procedure for pre-7.00 server */ +create procedure sp_ddopen( + @handle int output, + @procname sysname, + @scrollopt int output, + @ccopt int output, + @rows int output, + @p1 varchar(255) = null, + @p2 varchar(255) = null, + @p3 varchar(255) = null, + @p4 varchar(255) = null, + @p5 varchar(255) = null, + @p6 varchar(255) = null, + @p7 int = null, + @ODBCVer int = 2) +as + set nocount on + declare @ret int + + if @procname = 'sp_column_privileges' + begin + create table #spcolpriv ( + TABLE_QUALIFIER varchar(32) null, + TABLE_OWNER varchar(32) null, + TABLE_NAME varchar(32) not null, + COLUMN_NAME varchar(32) not null, + GRANTOR varchar(32) null, + GRANTEE varchar(32) not null, + PRIVILEGE varchar(32) not null, + IS_GRANTABLE varchar(3) null + ) + insert into #spcolpriv exec sp_column_privileges @p1,@p2,@p3,@p4 + exec @ret = sp_cursoropen @handle output, + 'select * from #spcolpriv', + @scrollopt output, @ccopt output, @rows output + drop table #spcolpriv + end + else if @procname = 'sp_columns' + begin + create table #spcolumns ( + TABLE_QUALIFIER varchar(32) null, + TABLE_OWNER varchar(32) null, + TABLE_NAME varchar(32) not null, + COLUMN_NAME varchar(32) not null, + DATA_TYPE smallint not null, + TYPE_NAME varchar(32) not null, + "PRECISION" int null, + LENGTH int null, + SCALE smallint null, + RADIX smallint null, + NULLABLE smallint not null, + REMARKS varchar(254) null, + COLUMN_DEF varchar(255) null, + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null, + CHAR_OCTET_LENGTH int null, + ORDINAL_POSITION int not null, + IS_NULLABLE varchar(254) null, + SS_DATA_TYPE tinyint null + ) + insert into #spcolumns exec sp_columns @p1,@p2,@p3,@p4,@ODBCVer + exec @ret = sp_cursoropen @handle output, + 'select * from #spcolumns', + @scrollopt output, @ccopt output, @rows output + drop table #spcolumns + end + else if @procname = 'sp_datatype_info' + begin + create table #spdatatypeinfo ( + TYPE_NAME varchar(32) not null, + DATA_TYPE smallint not null, + "PRECISION" int null, + LITERAL_PREFIX varchar(32) null, + LITERAL_SUFFIX varchar(32) null, + CREATE_PARAMS varchar(32) null, + NULLABLE smallint not null, + CASE_SENSITIVE smallint not null, + SEARCHABLE smallint not null, + UNSIGNED_ATTRIBUTE smallint null, + MONEY smallint not null, + AUTO_INCREMENT smallint null, + LOCAL_TYPE_NAME varchar(32) null, + MINIMUM_SCALE smallint null, + MAXIMUM_SCALE smallint null, + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null, + NUM_PREC_RADIX int null, + INTERVAL_PRECISION smallint NULL, + USERTYPE smallint not null) + insert into #spdatatypeinfo exec sp_datatype_info @p7,@ODBCVer + exec @ret = sp_cursoropen @handle output, + 'select * from #spdatatypeinfo', + @scrollopt output, @ccopt output, @rows output + drop table #spdatatypeinfo + end + else if @procname = 'sp_fkeys' + begin + create table #spfkeys ( + PKTABLE_QUALIFIER varchar(32) null, + PKTABLE_OWNER varchar(32) null, + PKTABLE_NAME varchar(32) not null, + PKCOLUMN_NAME varchar(32) not null, + FKTABLE_QUALIFIER varchar(32) null, + FKTABLE_OWNER varchar(32) null, + FKTABLE_NAME varchar(32) not null, + FKCOLUMN_NAME varchar(32) not null, + KEY_SEQ smallint not null, + UPDATE_RULE smallint null, + DELETE_RULE smallint null, + FK_NAME varchar(32) null, + PK_NAME varchar(32) null, + DEFERRABILITY smallint null + ) + insert into #spfkeys exec sp_fkeys @p1,@p2,@p3,@p4,@p5,@p6 + exec @ret = sp_cursoropen @handle output, + 'select * from #spfkeys', + @scrollopt output, @ccopt output, @rows output + drop table #spfkeys + end + else if @procname = 'sp_pkeys' + begin + create table #sppkeys ( + TABLE_QUALIFIER varchar(32) null, + TABLE_OWNER varchar(32) null, + TABLE_NAME varchar(32) not null, + COLUMN_NAME varchar(32) not null, + KEY_SEQ smallint not null, + PK_NAME varchar(32) null + ) + insert into #sppkeys exec sp_pkeys @p1,@p2,@p3 + exec @ret = sp_cursoropen @handle output, + 'select * from #sppkeys', + @scrollopt output, @ccopt output, @rows output + drop table #sppkeys + end + else if @procname = 'sp_special_columns' + begin + create table #spspeccol ( + SCOPE smallint null, + COLUMN_NAME varchar(32) not null, + DATA_TYPE smallint not null, + TYPE_NAME varchar(32) not null, + "PRECISION" int null, + LENGTH int null, + SCALE smallint null, + PSEUDO_COLUMN smallint null + ) + insert into #spspeccol exec sp_special_columns @p1,@p2,@p3,@p4,@p5,@p6,@ODBCVer + exec @ret = sp_cursoropen @handle output, + 'select * from #spspeccol', + @scrollopt output, @ccopt output, @rows output + drop table #spspeccol + end + else if @procname = 'sp_sproc_columns' + begin + create table #spproccol ( + PROCEDURE_QUALIFIER varchar(32) null, + PROCEDURE_OWNER varchar(32) null, + PROCEDURE_NAME varchar(32) not null, + COLUMN_NAME varchar(32) not null, + COLUMN_TYPE smallint not null, + DATA_TYPE smallint not null, + TYPE_NAME varchar(32) not null, + "PRECISION" int null, + LENGTH int null, + SCALE smallint null, + RADIX smallint null, + NULLABLE smallint not null, + REMARKS varchar(254) null, + COLUMN_DEF varchar(255) null, + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null, + CHAR_OCTET_LENGTH int null, + ORDINAL_POSITION int not null, + IS_NULLABLE varchar(254) null, + SS_DATA_TYPE tinyint null + ) + insert into #spproccol exec sp_sproc_columns @p1,@p2,@p3,@p4,@ODBCVer + exec @ret = sp_cursoropen @handle output, + 'select * from #spproccol', + @scrollopt output, @ccopt output, @rows output + drop table #spproccol + end + else if @procname = 'sp_statistics' + begin + create table #spstatistics ( + TABLE_QUALIFIER varchar(32) null, + TABLE_OWNER varchar(32) null, + TABLE_NAME varchar(32) not null, + NON_UNIQUE smallint null, + INDEX_QUALIFIER varchar(32) null, + INDEX_NAME varchar(32) null, + TYPE smallint not null, + SEQ_IN_INDEX smallint null, + COLUMN_NAME varchar(32) null, + COLLATION char(1) null, + CARDINALITY int null, + PAGES int null, + FILTER_CONDITION varchar(128) null + ) + insert into #spstatistics exec sp_statistics @p1,@p2,@p3,@p4,@p5,@p6 + exec @ret = sp_cursoropen @handle output, + 'select * from #spstatistics', + @scrollopt output, @ccopt output, @rows output + drop table #spstatistics + end + else if @procname = 'sp_stored_procedures' + begin + create table #spprocedures ( + PROCEDURE_QUALIFIER varchar(32) null, + PROCEDURE_OWNER varchar(32) null, + PROCEDURE_NAME varchar(32) not null, + NUM_INPUT_PARAMS int null, + NUM_OUTPUT_PARAMS int null, + NUM_RESULT_SETS int null, + REMARKS varchar(254) null, + PROCEDURE_TYPE smallint null + ) + insert into #spprocedures exec sp_stored_procedures @p1,@p2,@p3 + exec @ret = sp_cursoropen @handle output, + 'select * from #spprocedures', + @scrollopt output, @ccopt output, @rows output + drop table #spprocedures + end + else if @procname = 'sp_table_privileges' + begin + create table #sptabpriv ( + TABLE_QUALIFIER varchar(32) null, + TABLE_OWNER varchar(32) null, + TABLE_NAME varchar(32) not null, + GRANTOR varchar(32) null, + GRANTEE varchar(32) not null, + PRIVILEGE varchar(32) not null, + IS_GRANTABLE varchar(3) null + ) + insert into #sptabpriv exec sp_table_privileges @p1,@p2,@p3 + exec @ret = sp_cursoropen @handle output, + 'select * from #sptabpriv', + @scrollopt output, @ccopt output, @rows output + drop table #sptabpriv + end + else if @procname = 'sp_tables' + begin + create table #sptables ( + TABLE_QUALIFIER varchar(32) null, + TABLE_OWNER varchar(32) null, + TABLE_NAME varchar(32) null, + TABLE_TYPE varchar(32) null, + REMARKS varchar(254) null) + insert into #sptables exec sp_tables @p1,@p2,@p3,@p4 + exec @ret = sp_cursoropen @handle output, + 'select * from #sptables', + @scrollopt output, @ccopt output, @rows output + drop table #sptables + end + select @ret = isnull(@ret,0) + return isnull(@ret,0) +go + +if (charindex('7.00', @@version) > 0) + drop procedure sp_ddopen +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* Procedure for 7.00 server */ +create procedure sp_ddopen( + @handle int output, + @procname sysname, + @scrollopt int output, + @ccopt int output, + @rows int output, + @p1 nvarchar(774) = null, + @p2 nvarchar(774) = null, + @p3 nvarchar(774) = null, + @p4 nvarchar(774) = null, + @p5 nvarchar(774) = null, + @p6 nvarchar(774) = null, + @p7 int = null, + @ODBCVer int = 2) +as + set nocount on + declare @ret int + + if @procname = 'sp_column_privileges' + begin + create table #spcolpriv ( + TABLE_QUALIFIER sysname null, + TABLE_OWNER sysname null, + TABLE_NAME sysname not null, + COLUMN_NAME sysname not null, + GRANTOR sysname null, + GRANTEE sysname not null, + PRIVILEGE varchar(32) not null, + IS_GRANTABLE varchar(3) null + ) + insert into #spcolpriv exec sp_column_privileges @p1,@p2,@p3,@p4 + exec @ret = sp_cursoropen @handle output, + 'select * from #spcolpriv', + @scrollopt output, @ccopt output, @rows output + drop table #spcolpriv + end + else if @procname = 'sp_columns' or @procname = 'sp_columns_ex' + begin + create table #spcolumns ( + TABLE_QUALIFIER sysname null, + TABLE_OWNER sysname null, + TABLE_NAME sysname not null, + COLUMN_NAME sysname not null, + DATA_TYPE smallint not null, + TYPE_NAME sysname not null, + "PRECISION" int null, + LENGTH int null, + SCALE smallint null, + RADIX smallint null, + NULLABLE smallint not null, + REMARKS varchar(254) null, + COLUMN_DEF nvarchar(3000) null, + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null, + CHAR_OCTET_LENGTH int null, + ORDINAL_POSITION int not null, + IS_NULLABLE varchar(254) null, + SS_DATA_TYPE tinyint null + ) + if @procname = 'sp_columns' + begin + insert into #spcolumns exec sp_columns @p1,@p2,@p3,@p4,@ODBCVer + end + else + begin + insert into #spcolumns exec sp_columns_ex @p1,@p2,@p3,@p4,@p5,@ODBCVer + end + exec @ret = sp_cursoropen @handle output, + 'select * from #spcolumns', + @scrollopt output, @ccopt output, @rows output + drop table #spcolumns + end + else if @procname = 'sp_datatype_info' + begin + create table #spdatatypeinfo ( + TYPE_NAME sysname not null, + DATA_TYPE smallint not null, + "PRECISION" int null, + LITERAL_PREFIX varchar(32) null, + LITERAL_SUFFIX varchar(32) null, + CREATE_PARAMS varchar(32) null, + NULLABLE smallint not null, + CASE_SENSITIVE smallint not null, + SEARCHABLE smallint not null, + UNSIGNED_ATTRIBUTE smallint null, + MONEY smallint not null, + AUTO_INCREMENT smallint null, + LOCAL_TYPE_NAME sysname null, + MINIMUM_SCALE smallint null, + MAXIMUM_SCALE smallint null, + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null, + NUM_PREC_RADIX int null, + INTERVAL_PRECISION smallint NULL, + USERTYPE smallint not null) + insert into #spdatatypeinfo exec sp_datatype_info @p7,@ODBCVer + exec @ret = sp_cursoropen @handle output, + 'select * from #spdatatypeinfo', + @scrollopt output, @ccopt output, @rows output + drop table #spdatatypeinfo + end + else if @procname = 'sp_fkeys' + begin + create table #spfkeys ( + PKTABLE_QUALIFIER sysname null, + PKTABLE_OWNER sysname null, + PKTABLE_NAME sysname not null, + PKCOLUMN_NAME sysname not null, + FKTABLE_QUALIFIER sysname null, + FKTABLE_OWNER sysname null, + FKTABLE_NAME sysname not null, + FKCOLUMN_NAME sysname not null, + KEY_SEQ smallint not null, + UPDATE_RULE smallint null, + DELETE_RULE smallint null, + FK_NAME sysname null, + PK_NAME sysname null, + DEFERRABILITY smallint null + ) + insert into #spfkeys exec sp_fkeys @p1,@p2,@p3,@p4,@p5,@p6 + exec @ret = sp_cursoropen @handle output, + 'select * from #spfkeys', + @scrollopt output, @ccopt output, @rows output + drop table #spfkeys + end + else if @procname = 'sp_pkeys' + begin + create table #sppkeys ( + TABLE_QUALIFIER sysname null, + TABLE_OWNER sysname null, + TABLE_NAME sysname not null, + COLUMN_NAME sysname not null, + KEY_SEQ smallint not null, + PK_NAME sysname null + ) + insert into #sppkeys exec sp_pkeys @p1,@p2,@p3 + exec @ret = sp_cursoropen @handle output, + 'select * from #sppkeys', + @scrollopt output, @ccopt output, @rows output + drop table #sppkeys + end + else if @procname = 'sp_special_columns' + begin + create table #spspeccol ( + SCOPE smallint null, + COLUMN_NAME sysname not null, + DATA_TYPE smallint not null, + TYPE_NAME sysname not null, + "PRECISION" int null, + LENGTH int null, + SCALE smallint null, + PSEUDO_COLUMN smallint null + ) + insert into #spspeccol exec sp_special_columns @p1,@p2,@p3,@p4,@p5,@p6,@ODBCVer + exec @ret = sp_cursoropen @handle output, + 'select * from #spspeccol', + @scrollopt output, @ccopt output, @rows output + drop table #spspeccol + end + else if @procname = 'sp_sproc_columns' + begin + create table #spproccol ( + PROCEDURE_QUALIFIER sysname null, + PROCEDURE_OWNER sysname null, + PROCEDURE_NAME sysname not null, + COLUMN_NAME sysname not null, + COLUMN_TYPE smallint not null, + DATA_TYPE smallint not null, + TYPE_NAME sysname not null, + "PRECISION" int null, + LENGTH int null, + SCALE smallint null, + RADIX smallint null, + NULLABLE smallint not null, + REMARKS varchar(254) null, + COLUMN_DEF nvarchar(3000) null, + SQL_DATA_TYPE smallint not null, + SQL_DATETIME_SUB smallint null, + CHAR_OCTET_LENGTH int null, + ORDINAL_POSITION int not null, + IS_NULLABLE varchar(254) null, + SS_DATA_TYPE tinyint null + ) + insert into #spproccol exec sp_sproc_columns @p1,@p2,@p3,@p4,@ODBCVer + exec @ret = sp_cursoropen @handle output, + 'select * from #spproccol', + @scrollopt output, @ccopt output, @rows output + drop table #spproccol + end + else if @procname = 'sp_statistics' + begin + create table #spstatistics ( + TABLE_QUALIFIER sysname null, + TABLE_OWNER sysname null, + TABLE_NAME sysname not null, + NON_UNIQUE smallint null, + INDEX_QUALIFIER sysname null, + INDEX_NAME sysname null, + TYPE smallint not null, + SEQ_IN_INDEX smallint null, + COLUMN_NAME sysname null, + COLLATION char(1) null, + CARDINALITY int null, + PAGES int null, + FILTER_CONDITION varchar(128) null + ) + insert into #spstatistics exec sp_statistics @p1,@p2,@p3,@p4,@p5,@p6 + exec @ret = sp_cursoropen @handle output, + 'select * from #spstatistics', + @scrollopt output, @ccopt output, @rows output + drop table #spstatistics + end + else if @procname = 'sp_stored_procedures' + begin + create table #spprocedures ( + PROCEDURE_QUALIFIER sysname null, + PROCEDURE_OWNER sysname null, + PROCEDURE_NAME sysname not null, + NUM_INPUT_PARAMS int null, + NUM_OUTPUT_PARAMS int null, + NUM_RESULT_SETS int null, + REMARKS varchar(254) null, + PROCEDURE_TYPE smallint null + ) + insert into #spprocedures exec sp_stored_procedures @p1,@p2,@p3 + exec @ret = sp_cursoropen @handle output, + 'select * from #spprocedures', + @scrollopt output, @ccopt output, @rows output + drop table #spprocedures + end + else if @procname = 'sp_table_privileges' + begin + create table #sptabpriv ( + TABLE_QUALIFIER sysname null, + TABLE_OWNER sysname null, + TABLE_NAME sysname not null, + GRANTOR sysname null, + GRANTEE sysname not null, + PRIVILEGE varchar(32) not null, + IS_GRANTABLE varchar(3) null + ) + insert into #sptabpriv exec sp_table_privileges @p1,@p2,@p3 + exec @ret = sp_cursoropen @handle output, + 'select * from #sptabpriv', + @scrollopt output, @ccopt output, @rows output + drop table #sptabpriv + end + else if @procname = 'sp_tables' or @procname = 'sp_tables_ex' + begin + create table #sptables ( + TABLE_QUALIFIER sysname null, + TABLE_OWNER sysname null, + TABLE_NAME sysname null, + TABLE_TYPE varchar(32) null, + REMARKS varchar(254) null) + if @procname = 'sp_tables' + begin + insert into #sptables exec sp_tables @p1,@p2,@p3,@p4 + end + else + begin + insert into #sptables exec sp_tables_ex @p1,@p2,@p3,@p4,@p5 + end + exec @ret = sp_cursoropen @handle output, + 'select * from #sptables', + @scrollopt output, @ccopt output, @rows output + drop table #sptables + end + else + print 'Unknown dd_open procedure' + select @ret = isnull(@ret,0) + return isnull(@ret,0) +go + +grant execute on sp_ddopen to public +go + +dump tran master with no_log +go + +/*-------------------------------------------------------------------------*/ +/*-------------- CATALOG STORED PROCEDURES FOR SQLOLEDB ------------------*/ +/*-------------------------------------------------------------------------*/ + +print '' +print 'creating spt_provider_types' +go +if (charindex('7.00', @@version) = 0) +begin /* Pre 7.00 Server */ +create table spt_provider_types + ( + ss_dtype tinyint not null, + fixlen int null, /* datatype len for variable, else null */ + type_name sysname not null, + oledb_data_type smallint not null, + best_match bit not null, + is_nullable tinyint null, + case_sensitive bit not null, + fixed_prec_scale bit not null, + is_long bit not null, + auto_unique_value tinyint not null, + data_precision int null, + numeric_scale smallint null, /* min scale if 6.0 */ + column_size int null, + literal_prefix varchar(32) null, + literal_suffix varchar(32) null, + searchable int not null, + unsigned_attribute tinyint null, + local_type_name sysname null + ) +print '' +print '' +print 'Warning:' +print 'you are installing the stored procedures ' +print 'on a pre 7.0 SQL Server.' +print 'Ignore the following errors.' +end +go +if (charindex('7.00', @@version) > 0) +begin /* 7.00 server*/ +create table spt_provider_types + ( + ss_dtype tinyint not null, + fixlen int null, /* datatype len for variable, else null */ + type_name sysname not null, + oledb_data_type smallint not null, + best_match bit not null, + is_nullable bit null, + case_sensitive bit not null, + fixed_prec_scale bit not null, + is_long bit not null, + auto_unique_value tinyint not null, + data_precision int null, + numeric_scale smallint null, /* min scale if 6.0 */ + column_size int null, + literal_prefix nvarchar(32) null, + literal_suffix nvarchar(32) null, + searchable int not null, + unsigned_attribute tinyint null, + local_type_name sysname null + ) +end +go + +grant select on spt_provider_types to public +go +dump tran master with no_log +go + +/* +** Insert the spt_provider_types rows for DBTYTPE_STR data types +*/ +begin tran + +/* Get case sensitivity */ +declare @case_sensitive bit +select @case_sensitive = case when 'a' <> 'A' then 1 else 0 end +/* Local Char */ +insert into spt_provider_types values + ( + 47 /*SQLCHARACTER*/, /* ss_dtype */ + 0, /* fixlen */ + 'char', /* type_name */ + 129 /*DBTYPE_STR*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + @case_sensitive, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'char' /* local_type_name */ + ) + +/* Local Varchar */ +insert into spt_provider_types values + ( + 39 /*SQLVARCHAR*/, /* ss_dtype */ + null, /* fixlen */ + 'varchar', /* type_name */ + 129 /*DBTYPE_STR*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + @case_sensitive, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'varchar' /* local_type_name */ + ) + +/* Local Text */ +insert into spt_provider_types values + ( + 35 /*SQLTEXT*/, /* ss_dtype */ + null, /* fixlen */ + 'text', /* type_name */ + 129 /*DBTYPE_STR*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + @case_sensitive, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 1, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + 2147483647, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 2 /*DB_LIKE_ONLY*/, /* searchable */ + null, /* unsigned_attribute */ + 'text' /* local_type_name */ + ) +commit tran +go +dump tran master with no_log +go + +/* +** Insert the spt_provider_types rows for DBTYTPE_BYTES data types +*/ +begin tran +/* Local Binary */ +insert into spt_provider_types values + ( + 45 /*SQLBINARY*/, /* ss_dtype */ + 0, /* fixlen */ + 'binary', /* type_name */ + 128 /*DBTYPE_BYTES*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '0x', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'binary' /* local_type_name */ + ) + +/* Local Varbinary */ +insert into spt_provider_types values + ( + 37 /*SQLVARBINARY*/, /* ss_dtype */ + null, /* fixlen */ + 'varbinary', /* type_name */ + 128 /*DBTYPE_BYTES*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '0x', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'varbinary' /* local_type_name */ + ) + +/* Local Image */ +insert into spt_provider_types values + ( + 34 /*SQLIMAGE*/, /* ss_dtype */ + null, /* fixlen */ + 'image', /* type_name */ + 128 /*DBTYPE_BYTES*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 1, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + 2147483647, /* column_size */ + '0x', /* literal_prefix */ + null, /* literal_suffix */ + 1 /*DB_UNSEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'image' /* local_type_name */ + ) + +commit tran +go +dump tran master with no_log +go + +/* +** Insert the spt_provider_types rows for DBTYPE_DBTIMESTAMP data types +*/ +begin tran + +/* Local Datetime */ +insert into spt_provider_types values + ( + 61 /*SQLDATETIME*/, /* ss_dtype */ + 8, /* fixlen */ + 'datetime', /* type_name */ + 135 /*DBTYPE_DBTIMESTAMP*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 23, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'datetime' /* local_type_name */ + ) + +/* Local Smalldatetime */ +insert into spt_provider_types values + ( + 58 /*SQLDATETIM4*/, /* ss_dtype */ + 4, /* fixlen */ + 'smalldatetime', /* type_name */ + 135 /*DBTYPE_DBTIMESTAMP*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 16, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'smalldatetime' /* local_type_name */ + ) + +if (charindex('7.00', @@version) = 0) + begin /* Add nullable type for non-Sphinx server */ + + /* Local Datetimn */ + insert into spt_provider_types values + ( + 111 /*SQLDATETIMN*/, /* ss_dtype */ + 4, /* fixlen */ + 'smalldatetime', /* type_name */ + 135 /*DBTYPE_DBTIMESTAMP*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 16, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'smalldatetime' /* local_type_name */ + ) + insert into spt_provider_types values + ( + 111 /*SQLDATETIMN*/, /* ss_dtype */ + 8, /* fixlen */ + 'datetime', /* type_name */ + 135 /*DBTYPE_DBTIMESTAMP*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 23, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'datetime' /* local_type_name */ + ) + end + +commit tran +go +dump tran master with no_log +go + +/* +** Insert the spt_provider_types rows for DBTYPE_CY data types +*/ +begin tran + +/* Local Smallmoney */ +insert into spt_provider_types values + ( + 122 /*SQLMONEY4*/, /* ss_dtype */ + 4, /* fixlen */ + 'smallmoney', /* type_name */ + 6 /*DBTYPE_CY*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 10, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '$', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'smallmoney' /* local_type_name */ + ) + +/* Local Money */ +insert into spt_provider_types values + ( + 60 /*SQLMONEY*/, /* ss_dtype */ + 8, /* fixlen */ + 'money', /* type_name */ + 6 /*DBTYPE_CY*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 19, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '$', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'money' /* local_type_name */ + ) + +if (charindex('7.00', @@version) = 0) + begin /* Add nullable type for non-Sphinx server */ + + /* Local Moneyn */ + insert into spt_provider_types values + ( + 110 /*SQLMONEYN*/, /* ss_dtype */ + 4, /* fixlen */ + 'smallmoney', /* type_name */ + 6 /*DBTYPE_CY*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 10, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '$', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'smallmoney' /* local_type_name */ + ) + insert into spt_provider_types values + ( + 110 /*SQLMONEYN*/, /* ss_dtype */ + 8, /* fixlen */ + 'money', /* type_name */ + 6 /*DBTYPE_CY*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 19, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '$', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'money' /* local_type_name */ + ) + end + +commit tran +go +dump tran master with no_log +go + +/* +** Insert the spt_provider_types rows for the numeric data types +*/ +begin tran + +/* Local Float */ +insert into spt_provider_types values + ( + 62 /*SQLFLT8*/, /* ss_dtype */ + 8, /* fixlen */ + 'float', /* type_name */ + 5 /*DBTYPE_R8*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 15, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'float' /* local_type_name */ + ) + +/* Local Real */ +insert into spt_provider_types values + ( + 59 /*SQLFLT4*/, /* ss_dtype */ + 4, /* fixlen */ + 'real', /* type_name */ + 4 /*DBTYPE_R4*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 7, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'real' /* local_type_name */ + ) + +/* Local Int */ +insert into spt_provider_types values + ( + 56 /*SQLINT4*/, /* ss_dtype */ + 4, /* fixlen */ + 'int', /* type_name */ + 3 /*DBTYPE_I4*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 10, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'int' /* local_type_name */ + ) + +/* Local Smallint */ +insert into spt_provider_types values + ( + 52 /*SQLINT2*/, /* ss_dtype */ + 2, /* fixlen */ + 'smallint', /* type_name */ + 2 /*DBTYPE_I2*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 5, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'smallint' /* local_type_name */ + ) + +/* Local Tinyint */ +insert into spt_provider_types values + ( + 48 /*SQLINT1*/, /* ss_dtype */ + 1, /* fixlen */ + 'tinyint', /* type_name */ + 17 /*DBTYPE_UI1*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 3, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 1, /* unsigned_attribute */ + 'tinyint' /* local_type_name */ + ) +commit tran +go +dump tran master with no_log +go +begin tran +if (charindex('6.00', @@version) > 0 or + charindex('6.50', @@version) > 0 or + charindex('7.00', @@version) > 0) + begin /* Add 6.0 data types */ + + /* Local Decimal */ + insert into spt_provider_types values + ( + 55 /*SQLDECIMAL*/, /* ss_dtype */ + 0, /* fixlen */ + 'decimal', /* type_name */ + 131 /*DBTYPE_NUMERIC*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 28, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'decimal' /* local_type_name */ + ) + + /* Local Numeric */ + insert into spt_provider_types values + ( + 63 /*SQLNUMERIC*/, /* ss_dtype */ + 0, /* fixlen */ + 'numeric', /* type_name */ + 131 /*DBTYPE_NUMERIC*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 28, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'numeric' /* local_type_name */ + ) + end +commit tran +go +dump tran master with no_log +go +begin tran +if (charindex('7.00', @@version) = 0) + begin /* Add nullable type for non-Sphinx server */ + + /* Local Floatn */ + insert into spt_provider_types values + ( + 109 /*SQLFLTN*/, /* ss_dtype */ + 8, /* fixlen */ + 'float', /* type_name */ + 5 /*DBTYPE_R8*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 15, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'float' /* local_type_name */ + ) + insert into spt_provider_types values + ( + 109 /*SQLFLT4*/, /* ss_dtype */ + 4, /* fixlen */ + 'real', /* type_name */ + 4 /*DBTYPE_R4*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 7, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'real' /* local_type_name */ + ) + + /* Local Intn */ + insert into spt_provider_types values + ( + 38 /*SQLINTN*/, /* ss_dtype */ + 4, /* fixlen */ + 'int', /* type_name */ + 3 /*DBTYPE_I4*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 10, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'int' /* local_type_name */ + ) + insert into spt_provider_types values + ( + 38 /*SQLINTN*/, /* ss_dtype */ + 2, /* fixlen */ + 'smallint', /* type_name */ + 2 /*DBTYPE_I2*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 5, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'smallint' /* local_type_name */ + ) + insert into spt_provider_types values + ( + 38 /*SQLINTN*/, /* ss_dtype */ + 1, /* fixlen */ + 'tinyint', /* type_name */ + 17 /*DBTYPE_UI1*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 3, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 1, /* unsigned_attribute */ + 'tinyint' /* local_type_name */ + ) + + if (charindex('6.00', @@version) > 0 or charindex('6.50', @@version) > 0) + begin /* Add 6.0 data types */ + + /* Local Decimaln */ + insert into spt_provider_types values + ( + 106 /*SQLDECIMALN*/, /* ss_dtype */ + 0, /* fixlen */ + 'decimal', /* type_name */ + 131 /*DBTYPE_NUMERIC*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 28, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'decimal' /* local_type_name */ + ) + + /* Local Numericn */ + insert into spt_provider_types values + ( + 108 /*SQLNUMERICN*/, /* ss_dtype */ + 0, /* fixlen */ + 'numeric', /* type_name */ + 131 /*DBTYPE_NUMERIC*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 1, /* fixed_prec_scale */ + 0, /* is_long */ + 1, /* auto_unique_value */ + 28, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + 0, /* unsigned_attribute */ + 'numeric' /* local_type_name */ + ) + end + end +commit tran +go +dump tran master with no_log +go + +/* +** Remaining data types +*/ +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go +begin tran + +if (charindex('7.00', @@version) > 0) + begin + /* Local Bit */ + insert into spt_provider_types values + ( + 50 /*SQLBIT*/, /* ss_dtype */ + 0, /* fixlen */ + 'bit', /* type_name */ + 11 /*DBTYPE_BOOL*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 1, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'bit' /* local_type_name */ + ) + + /* Local Timestamp */ + insert into spt_provider_types values + ( + 0, /* ss_dtype */ + 8, /* fixlen */ + 'timestamp', /* type_name */ + 128 /*DBTYPE_BYTES*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '0x', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'timestamp' /* local_type_name */ + ) + /* Local GUID */ + insert into spt_provider_types values + ( + 0, /* ss_dtype */ + 16, /* fixlen */ + 'uniqueidentifier', /* type_name */ + 72 /*DBTYPE_GUID*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '''', /* literal_prefix */ + '''', /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'uniqueidentifier' /* local_type_name */ + ) + + /* Get case sensitivity */ + declare @case_sensitive bit + select @case_sensitive = case when 'a' <> 'A' then 1 else 0 end + + /* Local NChar */ + insert into spt_provider_types values + ( + 0, /* ss_dtype */ + 0, /* fixlen */ + 'nchar', /* type_name */ + 130 /*DBTYPE_WSTR*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + @case_sensitive, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + 'N''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'nchar' /* local_type_name */ + ) + + /* Local NVarChar */ + insert into spt_provider_types values + ( + 0, /* ss_dtype */ + null, /* fixlen */ + 'nvarchar', /* type_name */ + 130 /*DBTYPE_WSTR*/, /* oledb_data_type */ + 1, /* best_match */ + null, /* is_nullable */ + @case_sensitive, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + 'N''', /* literal_prefix */ + '''', /* literal_suffix */ + 4 /*DB_SEARCHABLE*/, /* searchable */ + null, /* unsigned_attribute */ + 'nvarchar' /* local_type_name */ + ) + + /* Local NText */ + insert into spt_provider_types values + ( + 0, /* ss_dtype */ + null, /* fixlen */ + 'ntext', /* type_name */ + 130 /*DBTYPE_WSTR*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + @case_sensitive, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 1, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + 1073741823, /* column_size */ + 'N''', /* literal_prefix */ + '''', /* literal_suffix */ + 2 /*DB_LIKE_ONLY*/, /* searchable */ + null, /* unsigned_attribute */ + 'ntext' /* local_type_name */ + ) + + /* data types changed in Sphinx: DO AFTER ALL TYPES INSERTED! */ + update spt_provider_types set ss_dtype = (select xtype from systypes where type_name like name+'%') + + end +commit tran +go +dump tran master with no_log +go +begin tran +if (charindex('7.00', @@version) = 0) + begin + /* Local Bit */ + insert into spt_provider_types values + ( + 50 /*SQLBIT*/, /* ss_dtype */ + 0, /* fixlen */ + 'bit', /* type_name */ + 11 /*DBTYPE_BOOL*/, /* oledb_data_type */ + 1, /* best_match */ + 0, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + 1, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + null, /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'bit' /* local_type_name */ + ) + + /* Local Timestamp */ + insert into spt_provider_types values + ( + 45 /*SQLBINARY*/, /* ss_dtype */ + 8, /* fixlen */ + 'timestamp', /* type_name */ + 128 /*DBTYPE_BYTES*/, /* oledb_data_type */ + 0, /* best_match */ + null, /* is_nullable */ + 0, /* case_sensitive */ + 0, /* fixed_prec_scale */ + 0, /* is_long */ + 0, /* auto_unique_value */ + null, /* data_precision */ + null, /* numeric_scale */ + null, /* column_size */ + '0x', /* literal_prefix */ + null, /* literal_suffix */ + 3 /*DB_ALL_EXCEPT_LIKE*/, /* searchable */ + null, /* unsigned_attribute */ + 'timestamp' /* local_type_name */ + ) +end + +commit tran +go +dump tran master with no_log +go + +create unique clustered index datatypeinfoclust on spt_provider_types(ss_dtype,fixlen) +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'spt_provider_types' and type = 'U ')) + begin + drop table spt_provider_types + dump tran master with no_log + end + end +go + +print '' +print 'creating sp_catalogs_rowset' +go + +create procedure sp_catalogs_rowset + ( + @catalog_name varchar(255) + ) +as + select + CATALOG_NAME = name, + DESCRIPTION = convert(varchar(1),null) + from master.dbo.sysdatabases + where name = @catalog_name +go +dump tran master with no_log +go +create procedure sp_catalogs_rowset;2 + ( + @dummy int /* remove when Hydra bug 17032 is fixed */ + ) +as + select + CATALOG_NAME = name, + DESCRIPTION = convert(varchar(1),null) + from master.dbo.sysdatabases + order by 1 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_catalogs_rowset +go + +/* Procedure for 7.0 server */ +create procedure sp_catalogs_rowset + ( + @catalog_name sysname + ) +as + select + CATALOG_NAME = name, + DESCRIPTION = convert(nvarchar(1),null) + from master.dbo.sysdatabases + where name = @catalog_name +go +dump tran master with no_log +go +create procedure sp_catalogs_rowset;2 + ( + @dummy int /* remove when Hydra bug 17032 is fixed */ + ) +as + select + CATALOG_NAME = name, + DESCRIPTION = convert(nvarchar(1),null) + from master.dbo.sysdatabases + order by 1 +go +dump tran master with no_log +go +create procedure sp_catalogs_rowset;5 + ( + @server_name sysname, + @catalog_name sysname = NULL + ) +as + select CATALOG_NAME, + DESCRIPTION + from master.dbo.SYSREMOTE_CATALOGS < @server_name, @catalog_name > + order by 1 +go + +grant execute on sp_catalogs_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_catalogs_rowset' and type = 'P ')) + begin + drop procedure sp_catalogs_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_column_privileges_rowset' +go + +/* Procedure for 6.0 and 6.5 server */ +CREATE PROCEDURE sp_column_privileges_rowset + ( + @table_name varchar(255) = null, + @table_schema varchar(255) = null, + @column_name varchar(255) = null, + @grantor varchar(255) = null, + @grantee varchar(255) = null + ) +as +IF @table_name is not null + BEGIN + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c + where + o.name = @table_name + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and c.id = p.id + and (@grantor is null or @grantor = user_name(p.grantor)) + and case + when substring(p.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns where id = o.id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + and (@grantee is null or @grantee = user_name(u.uid)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case + when substring(p1.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p1.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + o.name = @table_name + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 5, 6, 9, 1, 2 + END +ELSE + BEGIN + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and c.id = p.id + and (@grantor is null or @grantor = user_name(p.grantor)) + and case + when substring(p.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns where id = o.id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + and (@grantee is null or @grantee = user_name(u.uid)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case + when substring(p1.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p1.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 5, 6, 9, 1, 2 + END +go +dump tran master with no_log +go +CREATE PROCEDURE sp_column_privileges_rowset;2 + ( + @handle int output, + @scrollopt int output, + @ccopt int output, + @rows int output, + @table_name varchar(255) = null, + @table_schema varchar(255) = null, + @column_name varchar(255) = null, + @grantor varchar(255) = null, + @grantee varchar(255) = null + ) +as + +declare @ret int + +SET NOCOUNT ON + +create table #spcprivsrowset1 + ( + GRANTOR sysname not null, + GRANTEE sysname not null, + TABLE_CATALOG sysname not null, + TABLE_SCHEMA sysname not null, + TABLE_NAME sysname not null, + COLUMN_NAME sysname not null, + COLUMN_GUID binary(16) null, + COLUMN_PROPID int null, + PRIVILEGE_TYPE sysname not null, + IS_GRANTABLE bit not null + ) + +IF @table_name is not null + BEGIN + insert into #spcprivsrowset1 + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c + where + o.name = @table_name + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and c.id = p.id + and (@grantor is null or @grantor = user_name(p.grantor)) + and case + when substring(p.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns where id = o.id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + and (@grantee is null or @grantee = user_name(u.uid)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case + when substring(p1.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p1.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + o.name = @table_name + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 5, 6, 9, 1, 2 + END +ELSE + BEGIN + insert into #spcprivsrowset1 + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and c.id = p.id + and (@grantor is null or @grantor = user_name(p.grantor)) + and case + when substring(p.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns where id = o.id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + and (@grantee is null or @grantee = user_name(u.uid)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case + when substring(p1.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p1.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 5, 6, 9, 1, 2 + END + +exec @ret = sp_cursoropen @handle output, 'select * from #spcprivsrowset1', + @scrollopt output, @ccopt output, @rows output + +drop table #spcprivsrowset1 + +return isnull(@ret,0) +go +dump tran master with no_log +go +CREATE PROCEDURE sp_column_privileges_rowset;3 +as + select + GRANTOR = convert(sysname,' '), + GRANTEE = convert(sysname,' '), + TABLE_CATALOG = convert(sysname,' '), + TABLE_SCHEMA = convert(sysname,' '), + TABLE_NAME = convert(sysname,' '), + COLUMN_NAME = convert(sysname,' '), + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(varchar(30),' '), + IS_GRANTABLE = convert(bit,1) + where 1=0 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_column_privileges_rowset +go + + +/* Procedure for 7.0 server */ +CREATE PROCEDURE sp_column_privileges_rowset + ( + @table_name sysname, + @table_schema sysname = null, + @column_name sysname = null, + @grantor sysname = null, + @grantee sysname = null + ) +as + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(nvarchar(30), + case p.action + when 193 then N'SELECT' + when 195 then N'INSERT' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c, sysmembers m + where + o.name = @table_name + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and c.id = p.id + and (@grantor is null or @grantor = user_name(p.grantor)) + and case + when substring(p.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns where id = o.id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + and (@grantee is null or @grantee = user_name(u.uid)) + /* expand groups - AKUNDONE: only 1 level of group unrolling here. Need more?? */ + and (u.uid > 0 and u.uid < 16384) + and ((p.uid = u.uid) or (p.uid = m.groupuid and u.uid = m.memberuid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case + when substring(p1.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p1.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(nvarchar(30), + case v.number + when 193 then N'SELECT' + when 195 then N'INSERT' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + o.name = @table_name + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 5, 6, 9, 1, 2 +go +dump tran master with no_log +go +CREATE PROCEDURE sp_column_privileges_rowset;2 + ( + @table_schema sysname = null, + @column_name sysname = null, + @grantor sysname = null, + @grantee sysname = null + ) +as + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(nvarchar(30), + case p.action + when 193 then N'SELECT' + when 195 then N'INSERT' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, master.dbo.spt_values v, syscolumns c, sysmembers m + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and c.id = p.id + and (@grantor is null or @grantor = user_name(p.grantor)) + and case + when substring(p.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p.columns, v.low, 1)) + else (~convert(tinyint, coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0 /* permission applies to this column */ + and v.number <= (select count(*) from syscolumns where id = o.id) /* ranges from 1 to # of columns in table */ + and v.type = 'P' + and v.number = c.colid + and (@grantee is null or @grantee = user_name(u.uid)) + /* expand groups - AKUNDONE: only 1 level of group unrolling here. Need more?? */ + and (u.uid > 0 and u.uid < 16384) + and ((p.uid = u.uid) or (p.uid = m.groupuid and u.uid = m.memberuid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where + p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid + and case + when substring(p1.columns, 1, 1) & 1 is null then 255 /* all columns have permission */ + when substring(p1.columns, 1, 1) & 1 = 0 then convert(tinyint, substring(p1.columns, v.low, 1)) + else (~convert(tinyint,coalesce(substring(p.columns, v.low, 1),0))) + end & v.high <> 0) /* permission applies to this column */ + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + PRIVILEGE_TYPE = convert(nvarchar(30), + case v.number + when 193 then N'SELECT' + when 195 then N'INSERT' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u, syscolumns c + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(o.uid)) + and c.id = o.id + and (@column_name is null or @column_name = c.name) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4, 5, 6, 9, 1, 2 +go +dump tran master with no_log +go +create procedure sp_column_privileges_rowset;5 + ( + @table_server sysname, + @table_catalog sysname = null, + @table_name sysname = null, + @table_schema sysname = null, + @column_name sysname = null, + @grantor sysname = null, + @grantee sysname = null + ) +as + select + GRANTOR, + GRANTEE, + TABLE_CATALOG, + TABLE_SCHEMA, + TABLE_NAME, + COLUMN_NAME, + COLUMN_GUID, + COLUMN_PROPID, + PRIVILEGE_TYPE, + IS_GRANTABLE + from master.dbo.SYSREMOTE_COLUMN_PRIVILEGES < + @table_server, + @table_catalog, + @table_schema, + @table_name, + @column_name, + @grantor, + @grantee> + order by 3, 4, 5, 6, 9, 1, 2 +go + +grant execute on sp_column_privileges_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_column_privileges_rowset' and type = 'P ')) + begin + drop procedure sp_column_privileges_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_columns_rowset' +go + +/* Procedure for 6.0 and 6.50 server */ +create procedure sp_columns_rowset + ( + @table_name varchar(255), + @table_schema varchar(255) = null, + @column_name varchar(255) = null + ) +as + select + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_HASDEFAULT = convert(bit, case when m.text is null then 0 else 1 end), + COLUMN_DEFAULT = substring(m.text,2,datalength(m.text)-2), + COLUMN_FLAGS = convert(int, + case when d.is_long = 1 + then 0x82 /*DBCOLUMNFLAGS_ISLONG|DBCOLUMNFLAGS_MAYDEFER*/ + else 0 + end + | case when d.fixlen is not null + then 0x10 /*DBCOLUMNFLAGS_ISFIXEDLENGTH*/ + else 0 + end + | case when c.status&8 = 8 + then 0x20 /*DBCOLUMNFLAGS_ISNULLABLE*/ + else 0 + end + | case + when d.type_name = 'timestamp' + then 0x200 /*DBCOLUMNFLAGS_ISROWVER*/ + when (c.status&128) != 128 + then 0x8 /*DBCOLUMNFLAGS_WRITEUNKNOWN*/ + else 0 + end), + IS_NULLABLE = convert(bit,c.status&8), + DATA_TYPE = d.oledb_data_type, + TYPE_GUID = convert(binary(16),null), + CHARACTER_MAXIMUM_LENGTH= convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DATETIME_PRECISION = convert(int, + case when d.oledb_data_type = 135 /*DBTYPE_DBTIMESTAMP*/ then 3 else null end), + CHARACTER_SET_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'master' + else null + end), + CHARACTER_SET_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'dbo' + else null + end), + CHARACTER_SET_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then a_cha.name + else null + end), + COLLATION_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'master' + else null + end), + COLLATION_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'dbo' + else null + end), + COLLATION_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then b_cha.name + else null + end), + DOMAIN_CATALOG = case when t.usertype < 256 then null else db_name() end, + DOMAIN_SCHEMA = case when t.usertype < 256 then null else user_name(o.uid) end, + DOMAIN_NAME = case when t.usertype < 256 then null else t.name end, + DESCRIPTION = convert(varchar(1),null) + + from + syscolumns c, + syscomments m, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t, + sysusers u, + master.dbo.sysconfigures cfg, + master.dbo.syscharsets a_cha, /* charset/1001, not sortorder. */ + master.dbo.syscharsets b_cha /* sortorder/2001, not charset. */ + where + o.name = @table_name + and o.type in ('U','V','S') + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@column_name is null or @column_name = c.name) + and o.id = c.id + and t.type = d.ss_dtype + and (t.usertype != 80 or d.type_name='timestamp') + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.usertype = t.usertype + and c.cdefault *= m.id + and m.colid = 1 + and cfg.comment = 'default sortorder id' + and a_cha.type = 1001 /* type is charset */ + and b_cha.type = 2001 /* type is sortorder */ + and a_cha.id = b_cha.csid + and b_cha.id = cfg.value + order by 2, 3, 7 +go +dump tran master with no_log +go +create procedure sp_columns_rowset;2 + ( + @table_schema varchar(255) = null, + @column_name varchar(255) = null + ) +as + select + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_HASDEFAULT = convert(bit, case when m.text is null then 0 else 1 end), + COLUMN_DEFAULT = substring(m.text,2,datalength(m.text)-2), + COLUMN_FLAGS = convert(int, + case when d.is_long = 1 + then 0x82 /*DBCOLUMNFLAGS_ISLONG|DBCOLUMNFLAGS_MAYDEFER*/ + else 0 + end + | case when d.fixlen is not null + then 0x10 /*DBCOLUMNFLAGS_ISFIXEDLENGTH*/ + else 0 + end + | case when c.status&8 = 8 + then 0x20 /*DBCOLUMNFLAGS_ISNULLABLE*/ + else 0 + end + | case + when d.type_name = 'timestamp' + then 0x200 /*DBCOLUMNFLAGS_ISROWVER*/ + when (c.status&128) != 128 + then 0x8 /*DBCOLUMNFLAGS_WRITEUNKNOWN*/ + else 0 + end), + IS_NULLABLE = convert(bit,c.status&8), + DATA_TYPE = d.oledb_data_type, + TYPE_GUID = convert(binary(16),null), + CHARACTER_MAXIMUM_LENGTH= convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DATETIME_PRECISION = convert(int, + case when d.oledb_data_type = 135 /*DBTYPE_DBTIMESTAMP*/ then 3 else null end), + CHARACTER_SET_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'master' + else null + end), + CHARACTER_SET_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'dbo' + else null + end), + CHARACTER_SET_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then a_cha.name + else null + end), + COLLATION_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'master' + else null + end), + COLLATION_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then 'dbo' + else null + end), + COLLATION_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then b_cha.name + else null + end), + DOMAIN_CATALOG = case when t.usertype < 256 then null else db_name() end, + DOMAIN_SCHEMA = case when t.usertype < 256 then null else user_name(o.uid) end, + DOMAIN_NAME = case when t.usertype < 256 then null else t.name end, + DESCRIPTION = convert(varchar(1),null) + + from + syscolumns c, + syscomments m, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t, + sysusers u, + master.dbo.sysconfigures cfg, + master.dbo.syscharsets a_cha, /* charset/1001, not sortorder. */ + master.dbo.syscharsets b_cha /* sortorder/2001, not charset. */ + where + o.type in ('U','V','S') + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@column_name is null or @column_name = c.name) + and o.id = c.id + and t.type = d.ss_dtype + and (t.usertype != 80 or d.type_name='timestamp') + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.usertype = t.usertype + and c.cdefault *= m.id + and m.colid = 1 + and cfg.comment = 'default sortorder id' + and a_cha.type = 1001 /* type is charset */ + and b_cha.type = 2001 /* type is sortorder */ + and a_cha.id = b_cha.csid + and b_cha.id = cfg.value + order by 2, 3, 7 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_columns_rowset +go + +/* Procedure for 7.0 server */ +create procedure sp_columns_rowset + ( + @table_name sysname, + @table_schema sysname = NULL, + @column_name sysname = NULL + ) +as + select + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_HASDEFAULT = convert(bit, case when m.text is null then 0 else 1 end), + COLUMN_DEFAULT = convert(nvarchar(2000), + substring(m.text,2,datalength(m.text)/2-2)), + COLUMN_FLAGS = convert(int, + case when d.is_long = 1 + then 0x82 /*DBCOLUMNFLAGS_ISLONG|DBCOLUMNFLAGS_MAYDEFER*/ + else 0 + end + | case when d.fixlen is not null + then 0x10 /*DBCOLUMNFLAGS_ISFIXEDLENGTH*/ + else 0 + end + | case when ColumnProperty(c.id,c.name,'AllowsNull') = 1 + then 0x20 /*DBCOLUMNFLAGS_ISNULLABLE*/ + else 0 + end + | case + when d.type_name = 'timestamp' + then 0x200 /*DBCOLUMNFLAGS_ISROWVER*/ + when (c.status&128) != 128 and permissions(o.id,c.name)&2 = 2 + then 0x4 /*DBCOLUMNFLAGS_WRITE*/ + else 0 + end), + IS_NULLABLE = convert(bit,ColumnProperty(c.id,c.name,'AllowsNull')), + DATA_TYPE = d.oledb_data_type, + TYPE_GUID = convert(uniqueidentifier,null), + CHARACTER_MAXIMUM_LENGTH= convert(int, + case + when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + when d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length/2) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + or d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.xprec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DATETIME_PRECISION = convert(int, + case when d.oledb_data_type = 135 /*DBTYPE_DBTIMESTAMP*/ then 3 else null end), + CHARACTER_SET_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'master' + else null + end), + CHARACTER_SET_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'dbo' + else null + end), + CHARACTER_SET_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then a_cha.name + else null + end), + COLLATION_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'master' + else null + end), + COLLATION_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'dbo' + else null + end), + COLLATION_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then b_cha.name + else null + end), + DOMAIN_CATALOG = case when t.usertype < 256 then null else db_name() end, + DOMAIN_SCHEMA = case when t.usertype < 256 then null else user_name(o.uid) end, + DOMAIN_NAME = case when t.usertype < 256 then null else t.name end, + DESCRIPTION = convert(nvarchar(1),null) + + from + syscolumns c left join syscomments m on c.cdefault = m.id and m.colid = 1, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t, + master.dbo.sysconfigures cfg, + master.dbo.syscharsets a_cha, /* charset/1001, not sortorder. */ + master.dbo.syscharsets b_cha /* sortorder/2001, not charset. */ + where + permissions(o.id, c.name) <> 0 + and o.name = @table_name + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@column_name is null or @column_name = c.name) + and o.id = c.id + and t.xtype = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.xusertype = t.xusertype + and cfg.comment = 'default sortorder id' + and a_cha.type = 1001 /* type is charset */ + and b_cha.type = 2001 /* type is sortorder */ + and a_cha.id = b_cha.csid + and b_cha.id = cfg.value + order by 2, 3, 7 +go +dump tran master with no_log +go +create procedure sp_columns_rowset;2 + ( + @table_schema sysname = NULL, + @column_name sysname = NULL + ) +as + select + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_HASDEFAULT = convert(bit, case when m.text is null then 0 else 1 end), + COLUMN_DEFAULT = convert(nvarchar(2000), + substring(m.text,2,datalength(m.text)/2-2)), + COLUMN_FLAGS = convert(int, + case when d.is_long = 1 + then 0x82 /*DBCOLUMNFLAGS_ISLONG|DBCOLUMNFLAGS_MAYDEFER*/ + else 0 + end + | case when d.fixlen is not null + then 0x10 /*DBCOLUMNFLAGS_ISFIXEDLENGTH*/ + else 0 + end + | case when ColumnProperty(c.id,c.name,'AllowsNull') = 1 + then 0x20 /*DBCOLUMNFLAGS_ISNULLABLE*/ + else 0 + end + | case + when d.type_name = 'timestamp' + then 0x200 /*DBCOLUMNFLAGS_ISROWVER*/ + when (c.status&128) != 128 and permissions(o.id,c.name)&2 = 2 + then 0x4 /*DBCOLUMNFLAGS_WRITE*/ + else 0 + end), + IS_NULLABLE = convert(bit,ColumnProperty(c.id,c.name,'AllowsNull')), + DATA_TYPE = d.oledb_data_type, + TYPE_GUID = convert(uniqueidentifier,null), + CHARACTER_MAXIMUM_LENGTH= convert(int, + case + when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + when d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length/2) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + or d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.xprec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DATETIME_PRECISION = convert(int, + case when d.oledb_data_type = 135 /*DBTYPE_DBTIMESTAMP*/ then 3 else null end), + CHARACTER_SET_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'master' + else null + end), + CHARACTER_SET_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'dbo' + else null + end), + CHARACTER_SET_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then a_cha.name + else null + end), + COLLATION_CATALOG = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'master' + else null + end), + COLLATION_SCHEMA = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then N'dbo' + else null + end), + COLLATION_NAME = convert(sysname, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + then b_cha.name + else null + end), + DOMAIN_CATALOG = case when t.usertype < 256 then null else db_name() end, + DOMAIN_SCHEMA = case when t.usertype < 256 then null else user_name(o.uid) end, + DOMAIN_NAME = case when t.usertype < 256 then null else t.name end, + DESCRIPTION = convert(nvarchar(1),null) + + from + syscolumns c left join syscomments m on c.cdefault = m.id and m.colid = 1, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t, + master.dbo.sysconfigures cfg, + master.dbo.syscharsets a_cha, /* charset/1001, not sortorder.*/ + master.dbo.syscharsets b_cha /* sortorder/2001, not charset.*/ + where + permissions(o.id, c.name) <> 0 + and o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@column_name is null or @column_name = c.name) + and o.id = c.id + and t.xtype = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.xusertype = t.xusertype + and cfg.comment = 'default sortorder id' + and a_cha.type = 1001 /* type is charset */ + and b_cha.type = 2001 /* type is sortorder */ + and a_cha.id = b_cha.csid + and b_cha.id = cfg.value + order by 2, 3, 7 +go +dump tran master with no_log +go +create procedure sp_columns_rowset;5 + ( + @table_server sysname, + @table_catalog sysname = null, + @table_name sysname = null, + @table_schema sysname = null, + @column_name sysname = null + ) +as + select + TABLE_CATALOG, + TABLE_SCHEMA, + TABLE_NAME, + COLUMN_NAME, + COLUMN_GUID, + COLUMN_PROPID, + ORDINAL_POSITION, + COLUMN_HASDEFAULT, + COLUMN_DEFAULT, + COLUMN_FLAGS, + IS_NULLABLE, + DATA_TYPE, + TYPE_GUID, + CHARACTER_MAXIMUM_LENGTH, + CHARACTER_OCTET_LENGTH, + NUMERIC_PRECISION, + NUMERIC_SCALE, + DATETIME_PRECISION, + CHARACTER_SET_CATALOG, + CHARACTER_SET_SCHEMA, + CHARACTER_SET_NAME, + COLLATION_CATALOG, + COLLATION_SCHEMA, + COLLATION_NAME, + DOMAIN_CATALOG, + DOMAIN_SCHEMA, + DOMAIN_NAME, + DESCRIPTION + from master.dbo.SYSREMOTE_COLUMNS < + @table_server, + @table_catalog, + @table_schema, + @table_name, + @column_name > + order by 1, 2, 3, 7 +go + +grant execute on sp_columns_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_columns_rowset' and type = 'P ')) + begin + drop procedure sp_columns_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_foreign_keys_rowset' +go + +/* Procedure for 6.0 and 6.5 server */ +CREATE PROCEDURE sp_foreign_keys_rowset + ( + @pk_table_name varchar(255) = null, + @pk_table_schema varchar(255) = null, + @pk_table_catalog varchar(255) = null, + @fk_table_name varchar(255) = null, + @fk_table_schema varchar(255) = null, + @fk_table_catalog varchar(255) = null + ) +as +IF @pk_table_name is not null + BEGIN + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey1 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey2 + and r.keycnt >= 2 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey3 + and r.keycnt >= 3 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 4 + and o1.id = c1.id + and c1.colid = r.rkey4 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 5 + and o1.id = c1.id + and c1.colid = r.rkey5 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 6 + and o1.id = c1.id + and c1.colid = r.rkey6 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 7 + and o1.id = c1.id + and c1.colid = r.rkey7 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 8 + and o1.id = c1.id + and c1.colid = r.rkey8 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 9 + and o1.id = c1.id + and c1.colid = r.rkey9 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 10 + and o1.id = c1.id + and c1.colid = r.rkey10 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 11 + and o1.id = c1.id + and c1.colid = r.rkey11 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 12 + and o1.id = c1.id + and c1.colid = r.rkey12 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 13 + and o1.id = c1.id + and c1.colid = r.rkey13 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 14 + and o1.id = c1.id + and c1.colid = r.rkey14 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 15 + and o1.id = c1.id + and c1.colid = r.rkey15 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 16 + and o1.id = c1.id + and c1.colid = r.rkey16 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey16 + order by 8,9,2,3,13 + END +ELSE IF @fk_table_name is not null + BEGIN + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and o2.id = c2.id + and c2.colid = r.fkey1 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 2 + and o2.id = c2.id + and c2.colid = r.fkey2 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 3 + and o2.id = c2.id + and c2.colid = r.fkey3 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 4 + and o2.id = c2.id + and c2.colid = r.fkey4 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 5 + and o2.id = c2.id + and c2.colid = r.fkey5 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 6 + and o2.id = c2.id + and c2.colid = r.fkey6 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 7 + and o2.id = c2.id + and c2.colid = r.fkey7 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 8 + and o2.id = c2.id + and c2.colid = r.fkey8 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 9 + and o2.id = c2.id + and c2.colid = r.fkey9 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 10 + and o2.id = c2.id + and c2.colid = r.fkey10 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 11 + and o2.id = c2.id + and c2.colid = r.fkey11 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 12 + and o2.id = c2.id + and c2.colid = r.fkey12 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 13 + and o2.id = c2.id + and c2.colid = r.fkey13 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 14 + and o2.id = c2.id + and c2.colid = r.fkey14 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 15 + and o2.id = c2.id + and c2.colid = r.fkey15 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 16 + and o2.id = c2.id + and c2.colid = r.fkey16 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey16 + order by 8,9,2,3,13 + END +ELSE + BEGIN + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey1 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 2 + and o1.id = c1.id + and c1.colid = r.rkey2 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 3 + and o1.id = c1.id + and c1.colid = r.rkey3 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 4 + and o1.id = c1.id + and c1.colid = r.rkey4 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 5 + and o1.id = c1.id + and c1.colid = r.rkey5 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 6 + and o1.id = c1.id + and c1.colid = r.rkey6 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 7 + and o1.id = c1.id + and c1.colid = r.rkey7 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 8 + and o1.id = c1.id + and c1.colid = r.rkey8 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 9 + and o1.id = c1.id + and c1.colid = r.rkey9 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 10 + and o1.id = c1.id + and c1.colid = r.rkey10 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 11 + and o1.id = c1.id + and c1.colid = r.rkey11 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 12 + and o1.id = c1.id + and c1.colid = r.rkey12 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 13 + and o1.id = c1.id + and c1.colid = r.rkey13 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 14 + and o1.id = c1.id + and c1.colid = r.rkey14 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 15 + and o1.id = c1.id + and c1.colid = r.rkey15 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and r.keycnt >= 16 + and c1.colid = r.rkey16 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey16 + order by 8,9,2,3,13 + END +go +dump tran master with no_log +go +CREATE PROCEDURE sp_foreign_keys_rowset;2 + ( + @handle int output, + @scrollopt int output, + @ccopt int output, + @rows int output, + @pk_table_name varchar(255) = null, + @pk_table_schema varchar(255) = null, + @pk_table_catalog varchar(255) = null, + @fk_table_name varchar(255) = null, + @fk_table_schema varchar(255) = null, + @fk_table_catalog varchar(255) = null + ) +as + declare @ret int + + SET NOCOUNT ON + + create table #spfkeysrowset1 + ( + PK_TABLE_CATALOG sysname not null, + PK_TABLE_SCHEMA sysname not null, + PK_TABLE_NAME sysname not null, + PK_COLUMN_NAME sysname not null, + PK_COLUMN_GUID binary(16) null, + PK_COLUMN_PROPID int null, + FK_TABLE_CATALOG sysname not null, + FK_TABLE_SCHEMA sysname not null, + FK_TABLE_NAME sysname not null, + FK_COLUMN_NAME sysname not null, + FK_COLUMN_GUID binary(16) null, + FK_COLUMN_PROPID int null, + ORDINAL int not null, + UPDATE_RULE sysname not null, + DELETE_RULE sysname not null + ) + +IF @pk_table_name is not null + BEGIN + insert into #spfkeysrowset1 + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey1 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey2 + and r.keycnt >= 2 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey3 + and r.keycnt >= 3 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 4 + and o1.id = c1.id + and c1.colid = r.rkey4 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 5 + and o1.id = c1.id + and c1.colid = r.rkey5 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 6 + and o1.id = c1.id + and c1.colid = r.rkey6 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 7 + and o1.id = c1.id + and c1.colid = r.rkey7 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 8 + and o1.id = c1.id + and c1.colid = r.rkey8 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 9 + and o1.id = c1.id + and c1.colid = r.rkey9 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 10 + and o1.id = c1.id + and c1.colid = r.rkey10 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 11 + and o1.id = c1.id + and c1.colid = r.rkey11 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 12 + and o1.id = c1.id + and c1.colid = r.rkey12 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 13 + and o1.id = c1.id + and c1.colid = r.rkey13 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 14 + and o1.id = c1.id + and c1.colid = r.rkey14 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 15 + and o1.id = c1.id + and c1.colid = r.rkey15 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 16 + and o1.id = c1.id + and c1.colid = r.rkey16 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey16 + order by 8,9,2,3,13 + END +ELSE IF @fk_table_name is not null + BEGIN + insert into #spfkeysrowset1 + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and o2.id = c2.id + and c2.colid = r.fkey1 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 2 + and o2.id = c2.id + and c2.colid = r.fkey2 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 3 + and o2.id = c2.id + and c2.colid = r.fkey3 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 4 + and o2.id = c2.id + and c2.colid = r.fkey4 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 5 + and o2.id = c2.id + and c2.colid = r.fkey5 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 6 + and o2.id = c2.id + and c2.colid = r.fkey6 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 7 + and o2.id = c2.id + and c2.colid = r.fkey7 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 8 + and o2.id = c2.id + and c2.colid = r.fkey8 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 9 + and o2.id = c2.id + and c2.colid = r.fkey9 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 10 + and o2.id = c2.id + and c2.colid = r.fkey10 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 11 + and o2.id = c2.id + and c2.colid = r.fkey11 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 12 + and o2.id = c2.id + and c2.colid = r.fkey12 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 13 + and o2.id = c2.id + and c2.colid = r.fkey13 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 14 + and o2.id = c2.id + and c2.colid = r.fkey14 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 15 + and o2.id = c2.id + and c2.colid = r.fkey15 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 16 + and o2.id = c2.id + and c2.colid = r.fkey16 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey16 + order by 8,9,2,3,13 + END +ELSE + BEGIN + insert into #spfkeysrowset1 + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey1 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 2 + and o1.id = c1.id + and c1.colid = r.rkey2 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 3 + and o1.id = c1.id + and c1.colid = r.rkey3 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 4 + and o1.id = c1.id + and c1.colid = r.rkey4 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 5 + and o1.id = c1.id + and c1.colid = r.rkey5 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 6 + and o1.id = c1.id + and c1.colid = r.rkey6 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 7 + and o1.id = c1.id + and c1.colid = r.rkey7 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 8 + and o1.id = c1.id + and c1.colid = r.rkey8 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 9 + and o1.id = c1.id + and c1.colid = r.rkey9 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 10 + and o1.id = c1.id + and c1.colid = r.rkey10 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 11 + and o1.id = c1.id + and c1.colid = r.rkey11 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 12 + and o1.id = c1.id + and c1.colid = r.rkey12 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 13 + and o1.id = c1.id + and c1.colid = r.rkey13 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 14 + and o1.id = c1.id + and c1.colid = r.rkey14 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 15 + and o1.id = c1.id + and c1.colid = r.rkey15 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and r.keycnt >= 16 + and c1.colid = r.rkey16 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey16 + order by 8,9,2,3,13 + END + + exec @ret = sp_cursoropen @handle output, 'select * from #spfkeysrowset1', + @scrollopt output, @ccopt output, @rows output + + drop table #spfkeysrowset1 + return isnull(@ret,0) +go +dump tran master with no_log +go +CREATE PROCEDURE sp_foreign_keys_rowset;3 +as + select + PK_TABLE_CATALOG = convert(sysname,' '), + PK_TABLE_SCHEMA = convert(sysname,' '), + PK_TABLE_NAME = convert(sysname,' '), + PK_COLUMN_NAME = convert(sysname,' '), + PK_COLUMN_GUID = convert(binary(16),null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = convert(sysname,' '), + FK_TABLE_SCHEMA = convert(sysname,' '), + FK_TABLE_NAME = convert(sysname,' '), + FK_COLUMN_NAME = convert(sysname,' '), + FK_COLUMN_GUID = convert(binary(16),null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = 'NO ACTION', + DELETE_RULE = 'NO ACTION' + where 1=0 +go +dump tran master with no_log +go + + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_foreign_keys_rowset +go + + +/* Procedure for 7.0 server */ +CREATE PROCEDURE sp_foreign_keys_rowset + ( + @pk_table_name sysname, + @pk_table_schema sysname = null, + @fk_table_name sysname = null, + @fk_table_schema sysname = null, + @fk_table_catalog sysname = null + ) +as + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey1 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey2 + and r.keycnt >= 2 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey3 + and r.keycnt >= 3 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 4 + and o1.id = c1.id + and c1.colid = r.rkey4 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 5 + and o1.id = c1.id + and c1.colid = r.rkey5 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 6 + and o1.id = c1.id + and c1.colid = r.rkey6 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 7 + and o1.id = c1.id + and c1.colid = r.rkey7 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 8 + and o1.id = c1.id + and c1.colid = r.rkey8 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 9 + and o1.id = c1.id + and c1.colid = r.rkey9 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 10 + and o1.id = c1.id + and c1.colid = r.rkey10 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 11 + and o1.id = c1.id + and c1.colid = r.rkey11 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 12 + and o1.id = c1.id + and c1.colid = r.rkey12 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 13 + and o1.id = c1.id + and c1.colid = r.rkey13 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 14 + and o1.id = c1.id + and c1.colid = r.rkey14 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 15 + and o1.id = c1.id + and c1.colid = r.rkey15 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and o1.name = @pk_table_name + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 16 + and o1.id = c1.id + and c1.colid = r.rkey16 + and r.fkeyid = o2.id + and (@fk_table_name is null or @fk_table_name = o2.name) + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey16 + order by 8,9,2,3,13 +go +dump tran master with no_log +go +CREATE PROCEDURE sp_foreign_keys_rowset;2 + ( + @fk_table_name sysname, + @fk_table_schema sysname = null, + @pk_table_name sysname = null, + @pk_table_schema sysname = null, + @pk_table_catalog sysname = null + ) +as + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and o2.id = c2.id + and c2.colid = r.fkey1 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 2 + and o2.id = c2.id + and c2.colid = r.fkey2 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 3 + and o2.id = c2.id + and c2.colid = r.fkey3 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 4 + and o2.id = c2.id + and c2.colid = r.fkey4 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 5 + and o2.id = c2.id + and c2.colid = r.fkey5 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 6 + and o2.id = c2.id + and c2.colid = r.fkey6 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 7 + and o2.id = c2.id + and c2.colid = r.fkey7 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 8 + and o2.id = c2.id + and c2.colid = r.fkey8 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 9 + and o2.id = c2.id + and c2.colid = r.fkey9 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 10 + and o2.id = c2.id + and c2.colid = r.fkey10 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 11 + and o2.id = c2.id + and c2.colid = r.fkey11 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 12 + and o2.id = c2.id + and c2.colid = r.fkey12 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 13 + and o2.id = c2.id + and c2.colid = r.fkey13 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 14 + and o2.id = c2.id + and c2.colid = r.fkey14 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 15 + and o2.id = c2.id + and c2.colid = r.fkey15 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and o2.name = @fk_table_name + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = r.fkeyid + and r.keycnt >= 16 + and o2.id = c2.id + and c2.colid = r.fkey16 + and r.rkeyid = o1.id + and (@pk_table_name is null or @pk_table_name = o1.name) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = c1.id + and c1.colid = r.rkey16 + order by 8,9,2,3,13 +go +dump tran master with no_log +go +CREATE PROCEDURE sp_foreign_keys_rowset;3 + ( + @pk_table_schema sysname = null, + @pk_table_catalog sysname = null, + @fk_table_schema sysname = null, + @fk_table_catalog sysname = null + ) +as + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,1), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and c1.colid = r.rkey1 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey1 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,2), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 2 + and o1.id = c1.id + and c1.colid = r.rkey2 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey2 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,3), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 3 + and o1.id = c1.id + and c1.colid = r.rkey3 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey3 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,4), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 4 + and o1.id = c1.id + and c1.colid = r.rkey4 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey4 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,5), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 5 + and o1.id = c1.id + and c1.colid = r.rkey5 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey5 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,6), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 6 + and o1.id = c1.id + and c1.colid = r.rkey6 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey6 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,7), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 7 + and o1.id = c1.id + and c1.colid = r.rkey7 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey7 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,8), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 8 + and o1.id = c1.id + and c1.colid = r.rkey8 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey8 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,9), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 9 + and o1.id = c1.id + and c1.colid = r.rkey9 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey9 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,10), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 10 + and o1.id = c1.id + and c1.colid = r.rkey10 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey10 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,11), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 11 + and o1.id = c1.id + and c1.colid = r.rkey11 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey11 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,12), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 12 + and o1.id = c1.id + and c1.colid = r.rkey12 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey12 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,13), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 13 + and o1.id = c1.id + and c1.colid = r.rkey13 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey13 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,14), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 14 + and o1.id = c1.id + and c1.colid = r.rkey14 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey14 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,15), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and r.keycnt >= 15 + and o1.id = c1.id + and c1.colid = r.rkey15 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey15 + union all + select + PK_TABLE_CATALOG = db_name(r.rkeydbid), + PK_TABLE_SCHEMA = user_name(o1.uid), + PK_TABLE_NAME = o1.name, + PK_COLUMN_NAME = c1.name, + PK_COLUMN_GUID = convert(uniqueidentifier,null), + PK_COLUMN_PROPID = convert(int,null), + FK_TABLE_CATALOG = db_name(r.fkeydbid), + FK_TABLE_SCHEMA = user_name(o2.uid), + FK_TABLE_NAME = o2.name, + FK_COLUMN_NAME = c2.name, + FK_COLUMN_GUID = convert(uniqueidentifier,null), + FK_COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,16), + UPDATE_RULE = N'NO ACTION', + DELETE_RULE = N'NO ACTION' + from + sysobjects o1, sysobjects o2, + syscolumns c1, syscolumns c2, + sysreferences r + where + (@pk_table_catalog is null or @pk_table_catalog = db_name()) + and (@fk_table_catalog is null or @fk_table_catalog = db_name()) + and (@pk_table_schema is null or @pk_table_schema = user_name(o1.uid)) + and o1.id = r.rkeyid + and o1.id = c1.id + and r.keycnt >= 16 + and c1.colid = r.rkey16 + and r.fkeyid = o2.id + and (@fk_table_schema is null or @fk_table_schema = user_name(o2.uid)) + and o2.id = c2.id + and c2.colid = r.fkey16 + order by 8,9,2,3,13 +go +dump tran master with no_log +go +create procedure sp_foreign_keys_rowset;5 + ( + @server_name sysname, + @pk_catalog_name sysname = null, + @fk_catalog_name sysname = null, + @pk_table_name sysname = null, + @pk_table_schema sysname = null, + @fk_table_name sysname = null, + @fk_table_schema sysname = null + ) +as + select + PK_TABLE_CATALOG, + PK_TABLE_SCHEMA, + PK_TABLE_NAME, + PK_COLUMN_NAME, + PK_COLUMN_GUID, + PK_COLUMN_PROPID, + FK_TABLE_CATALOG, + FK_TABLE_SCHEMA, + FK_TABLE_NAME, + FK_COLUMN_NAME, + FK_COLUMN_GUID, + FK_COLUMN_PROPID, + ORDINAL, + UPDATE_RULE, + DELETE_RULE + from master.dbo.SYSREMOTE_FOREIGN_KEYS < + @server_name, + @pk_catalog_name, + @pk_table_schema, + @pk_table_name, + @fk_catalog_name, + @fk_table_schema, + @fk_table_name > + order by 7,8,9,1,2,3,13 +go + +grant execute on sp_foreign_keys_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_foreign_keys_rowset' and type = 'P ')) + begin + drop procedure sp_foreign_keys_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_indexes_rowset' +go + +/* 6.0 and 6.5 version */ +create procedure sp_indexes_rowset + ( + @table_name varchar(255), + @index_name varchar(255) = null, + @table_schema varchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + INDEX_CATALOG = db_name(), + INDEX_SCHEMA = user_name(o.uid), + INDEX_NAME = x.name, + PRIMARY_KEY = convert(bit,(x.status & 0x800)/0x800), + "UNIQUE" = convert(bit,(x.status & 2)/2), + "CLUSTERED" = convert(bit,(x.status & 16)/16), + "TYPE" = convert(smallint, 1 /*DBPROPVAL_IT_BTREE*/), + FILL_FACTOR = convert(int, x.OrigFillFactor), + INITIAL_SIZE = convert(int,null), + NULLS = convert(int,null), + SORT_BOOKMARKS = convert(bit,0), + AUTO_UPDATE = convert(bit,1), + NULL_COLLATION = convert(int,4 /*DBPROPVAL_NC_LOW*/), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_NAME = index_col(user_name(o.uid)+'.'+o.name, x.indid, c.colid), + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + COLLATION = convert(smallint, 1 /*DB_COLLATION_ASC*/), + CARDINALITY = case when (x.status & 2) = 2 then x.rows else null end, + PAGES = convert(int, x.dpages), + FILTER_CONDITION = convert(varchar(1),null), + INTEGRATED = convert(bit,(x.status & 16)/16) + + from sysobjects o, sysindexes x, syscolumns c, sysusers u + where o.type in ('U') + and o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@index_name is null or @index_name = x.name) + and x.id = o.id + and x.id = c.id + and c.colid < x.keycnt+(x.status&16)/16 + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 8 desc, 4, 5, 6, 17 +go +dump tran master with no_log +go +create procedure sp_indexes_rowset;2 + ( + @index_name varchar(255) = null, + @table_schema varchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + INDEX_CATALOG = db_name(), + INDEX_SCHEMA = user_name(o.uid), + INDEX_NAME = x.name, + PRIMARY_KEY = convert(bit,(x.status & 0x800)/0x800), + "UNIQUE" = convert(bit,(x.status & 2)/2), + "CLUSTERED" = convert(bit,(x.status & 16)/16), + "TYPE" = convert(smallint, 1 /*DBPROPVAL_IT_BTREE*/), + FILL_FACTOR = convert(int, x.OrigFillFactor), + INITIAL_SIZE = convert(int,null), + NULLS = convert(int,null), + SORT_BOOKMARKS = convert(bit,0), + AUTO_UPDATE = convert(bit,1), + NULL_COLLATION = convert(int,4 /*DBPROPVAL_NC_LOW*/), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_NAME = index_col(user_name(o.uid)+'.'+o.name, x.indid, c.colid), + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + COLLATION = convert(smallint, 1 /*DB_COLLATION_ASC*/), + CARDINALITY = case when (x.status & 2) = 2 then x.rows else null end, + PAGES = convert(int, x.dpages), + FILTER_CONDITION = convert(varchar(1),null), + INTEGRATED = convert(bit,(x.status & 16)/16) + + from sysobjects o, sysindexes x, syscolumns c, sysusers u + where o.type in ('U') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@index_name is null or @index_name = x.name) + and x.id = o.id + and x.id = c.id + and c.colid < x.keycnt+(x.status&16)/16 + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 8 desc, 4, 5, 6, 17 +go +dump tran master with no_log +go + + +if (charindex('7.00', @@version) > 0) + drop procedure sp_indexes_rowset +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* 7.0 version */ +create procedure sp_indexes_rowset + ( + @table_name sysname, + @index_name sysname = null, + @table_schema sysname = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + INDEX_CATALOG = db_name(), + INDEX_SCHEMA = user_name(o.uid), + INDEX_NAME = x.name, + PRIMARY_KEY = convert(bit,(x.status & 0x800)/0x800), + "UNIQUE" = convert(bit,(x.status & 2)/2), + "CLUSTERED" = convert(bit,(x.status & 16)/16), + "TYPE" = convert(smallint, 1 /*DBPROPVAL_IT_BTREE*/), + FILL_FACTOR = convert(int, x.OrigFillFactor), + INITIAL_SIZE = convert(int,null), + NULLS = convert(int,null), + SORT_BOOKMARKS = convert(bit,0), + AUTO_UPDATE = convert(bit,1), + NULL_COLLATION = convert(int,4 /*DBPROPVAL_NC_LOW*/), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_NAME = index_col(user_name(o.uid)+'.'+o.name, x.indid, c.colid), + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + COLLATION = convert(smallint, 1 /*DB_COLLATION_ASC*/), + CARDINALITY = case when (x.status & 2) = 2 then x.rows else null end, + PAGES = convert(int, x.dpages), + FILTER_CONDITION = convert(nvarchar(1),null), + INTEGRATED = convert(bit,(x.status & 16)/16) + + from sysobjects o, sysindexes x, syscolumns c + where o.type in ('U') + and o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@index_name is null or @index_name = x.name) + and x.id = o.id + and x.id = c.id + and c.colid < x.keycnt+(x.status&16)/16 + and index_col(user_name(o.uid)+'.'+o.name, x.indid, c.colid) is not null + and permissions(o.id) <> 0 + order by 8 desc, 4, 5, 6, 17 +go +dump tran master with no_log +go +create procedure sp_indexes_rowset;2 + ( + @index_name sysname = null, + @table_schema sysname = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + INDEX_CATALOG = db_name(), + INDEX_SCHEMA = user_name(o.uid), + INDEX_NAME = x.name, + PRIMARY_KEY = convert(bit,(x.status & 0x800)/0x800), + "UNIQUE" = convert(bit,(x.status & 2)/2), + "CLUSTERED" = convert(bit,(x.status & 16)/16), + "TYPE" = convert(smallint, 1 /*DBPROPVAL_IT_BTREE*/), + FILL_FACTOR = convert(int, x.OrigFillFactor), + INITIAL_SIZE = convert(int,null), + NULLS = convert(int,null), + SORT_BOOKMARKS = convert(bit,0), + AUTO_UPDATE = convert(bit,1), + NULL_COLLATION = convert(int,4 /*DBPROPVAL_NC_LOW*/), + ORDINAL_POSITION = convert(int,c.colid), + COLUMN_NAME = index_col(user_name(o.uid)+'.'+o.name, x.indid, c.colid), + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + COLLATION = convert(smallint, 1 /*DB_COLLATION_ASC*/), + CARDINALITY = case when (x.status & 2) = 2 then x.rows else null end, + PAGES = convert(int, x.dpages), + FILTER_CONDITION = convert(nvarchar(1),null), + INTEGRATED = convert(bit,(x.status & 16)/16) + + from sysobjects o, sysindexes x, syscolumns c + where o.type in ('U') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@index_name is null or @index_name = x.name) + and x.id = o.id + and x.id = c.id + and c.colid < x.keycnt+(x.status&16)/16 + and index_col(user_name(o.uid)+'.'+o.name, x.indid, c.colid) is not null + and permissions(o.id) <> 0 + order by 8 desc, 4, 5, 6, 17 +go +dump tran master with no_log +go +create procedure sp_indexes_rowset;5 + ( + @table_server sysname, + @table_catalog sysname = null, + @table_name sysname = null, + @index_name sysname = null, + @table_schema sysname = null + ) +as + select + TABLE_CATALOG, + TABLE_SCHEMA, + TABLE_NAME, + INDEX_CATALOG, + INDEX_SCHEMA, + INDEX_NAME, + PRIMARY_KEY, + "UNIQUE", + "CLUSTERED", + "TYPE", + FILL_FACTOR, + INITIAL_SIZE, + NULLS, + SORT_BOOKMARKS, + AUTO_UPDATE, + NULL_COLLATION, + ORDINAL_POSITION, + COLUMN_NAME, + COLUMN_GUID, + COLUMN_PROPID, + COLLATION, + CARDINALITY, + PAGES, + FILTER_CONDITION + -- INTEGRATED + from master.dbo.SYSREMOTE_INDEXES < + @table_server, + @table_catalog, + @table_schema, + @index_name, + NULL, /* TYPE (index type) */ + @table_name > + order by 8 desc, 4, 5, 6, 17 +go + +grant execute on sp_indexes_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_indexes_rowset' and type = 'P ')) + begin + drop procedure sp_indexes_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_primary_keys_rowset' +go + +/* Procedure for 6.0 and 6.5 servers */ +create procedure sp_primary_keys_rowset + ( + @table_name varchar(255), + @table_schema varchar(244) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,c1.colid) + from sysindexes i, syscolumns c, sysobjects o, syscolumns c1, sysusers u + where o.type in ('U') + and o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col(user_name(o.uid)+'.'+o.name, i.indid, c1.colid) + and c1.id = c.id + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 2, 3 +go +dump tran master with no_log +go +create procedure sp_primary_keys_rowset;2 + ( + @table_schema varchar(244) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(binary(16),null), + COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,c1.colid) + from sysindexes i, syscolumns c, sysobjects o, syscolumns c1, sysusers u + where o.type in ('U') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col(user_name(o.uid)+'.'+o.name, i.indid, c1.colid) + and c1.id = c.id + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 2, 3 +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_primary_keys_rowset +go + +/* Procedure for 7.0 servers */ +create procedure sp_primary_keys_rowset + ( + @table_name sysname, + @table_schema sysname = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,c1.colid) + from sysindexes i, syscolumns c, sysobjects o, syscolumns c1 + where o.type in ('U') + and o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col (user_name(o.uid)+'.'+o.name, i.indid, c1.colid) + and c1.id = c.id + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and permissions(o.id) <> 0 + order by 2, 3 +go +dump tran master with no_log +go +create procedure sp_primary_keys_rowset;2 + ( + @table_schema sysname = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,c1.colid) + from sysindexes i, syscolumns c, sysobjects o, syscolumns c1 + where o.type in ('U') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col (user_name(o.uid)+'.'+o.name, i.indid, c1.colid) + and c1.id = c.id + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and permissions(o.id) <> 0 + order by 2, 3 +go +dump tran master with no_log +go +create procedure sp_primary_keys_rowset;3 + ( + @table_name sysname = null, + @table_schema sysname = null + ) +as +IF @table_name is not NULL + BEGIN + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,c1.colid) + from sysindexes i, syscolumns c, sysobjects o, syscolumns c1 + where o.type in ('U') + and o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col (user_name(o.uid)+'.'+o.name, i.indid, c1.colid) + and c1.id = c.id + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and permissions(o.id) <> 0 + END +ELSE + BEGIN + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + COLUMN_NAME = c.name, + COLUMN_GUID = convert(uniqueidentifier,null), + COLUMN_PROPID = convert(int,null), + ORDINAL = convert(int,c1.colid) + from sysindexes i, syscolumns c, sysobjects o, syscolumns c1 + where o.type in ('U') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and o.id = c.id + and o.id = i.id + and (i.status & 0x800) = 0x800 + and c.name = index_col (user_name(o.uid)+'.'+o.name, i.indid, c1.colid) + and c1.id = c.id + and c1.colid <= i.keycnt /* create rows from 1 to keycnt */ + and permissions(o.id) <> 0 + END +go +dump tran master with no_log +go +create procedure sp_primary_keys_rowset;5 + ( + @table_server sysname, + @table_catalog sysname = null, + @table_name sysname = null, + @table_schema sysname = null + ) +as + select + TABLE_CATALOG, + TABLE_SCHEMA, + TABLE_NAME, + COLUMN_NAME, + COLUMN_GUID, + COLUMN_PROPID, + ORDINAL + from master.dbo.SYSREMOTE_PRIMARY_KEYS < + @table_server, + @table_catalog, + @table_schema, + @table_name > + order by 1,2,3 +go + +grant execute on sp_primary_keys_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_primary_keys_rowset' and type = 'P ')) + begin + drop procedure sp_primary_keys_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_provider_types_rowset' +go + +/* Procedure for 6.0 and 6.50 servers */ +create proc sp_provider_types_rowset + ( + @data_type smallint = null, + @best_match tinyint = null + ) +as + select + TYPE_NAME = case when t.usertype = 80 then t.name + else d.type_name + end, + DATA_TYPE = d.oledb_data_type, + COLUMN_SIZE = coalesce(d.column_size,d.data_precision,t.prec), + LITERAL_PREFIX = d.literal_prefix, + LITERAL_SUFFIX = d.literal_suffix, + CREATE_PARAMS = convert(varchar(32),e.CREATE_PARAMS), + IS_NULLABLE = t.allownulls, + CASE_SENSITIVE = d.case_sensitive, + SEARCHABLE = d.searchable, + UNSIGNED_ATTRIBUTE = d.unsigned_attribute, + FIXED_PREC_SCALE = d.fixed_prec_scale, + AUTO_UNIQUE_VALUE = d.auto_unique_value, + LOCAL_TYPE_NAME = case when t.usertype = 80 then t.name + else d.local_type_name + end, + MINIMUM_SCALE = convert(smallint, + case + when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then 0 + else null + end), + MAXIMUM_SCALE = convert(smallint, + case + when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ + then d.data_precision + else null + end), + GUID = convert(binary(16),null), + TYPELIB = convert(varchar(1),null), + VERSION = convert(varchar(1),null), + IS_LONG = d.is_long, + BEST_MATCH = case when t.usertype = 80 + then convert(bit,0) + else d.best_match + end, + IS_FIXEDLENGTH = convert(bit, + case when d.fixlen is null then 0 else 1 end) + from master.dbo.spt_provider_types d, master.dbo.spt_datatype_info_ext e, systypes t + where d.ss_dtype = t.type + and t.usertype <= 100 + and t.usertype <> 18 /* sysname */ + and (case when t.usertype = 80 /* TIMESTAMP */ then 1 else 0 end + = case when d.type_name = 'timestamp' then 1 else 0 end) + and t.usertype *= e.user_type + and e.AUTO_INCREMENT = 0 + and t.type not in (111,109,38,110,55,63) /* get rid of nullable types */ + and (@data_type is null or d.oledb_data_type = @data_type) + and (@best_match is null or d.best_match = @best_match) + order by 2 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_provider_types_rowset +go + +/* Procedure for 7.0 server */ +create proc sp_provider_types_rowset + ( + @data_type smallint = null, + @best_match tinyint = null + ) +as + select + TYPE_NAME = case when t.usertype = 80 then t.name + else d.type_name + end, + DATA_TYPE = d.oledb_data_type, + COLUMN_SIZE = coalesce(d.column_size,d.data_precision,t.prec), + LITERAL_PREFIX = d.literal_prefix, + LITERAL_SUFFIX = d.literal_suffix, + CREATE_PARAMS = convert(nvarchar(32),e.CREATE_PARAMS), + IS_NULLABLE = t.allownulls, + CASE_SENSITIVE = d.case_sensitive, + SEARCHABLE = d.searchable, + UNSIGNED_ATTRIBUTE = d.unsigned_attribute, + FIXED_PREC_SCALE = d.fixed_prec_scale, + AUTO_UNIQUE_VALUE = d.auto_unique_value, + LOCAL_TYPE_NAME = case when t.usertype = 80 then t.name + else d.local_type_name + end, + MINIMUM_SCALE = convert(smallint, + case + when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then 0 + else null + end), + MAXIMUM_SCALE = convert(smallint, + case + when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ + then d.data_precision + else null + end), + GUID = convert(uniqueidentifier,null), + TYPELIB = convert(nvarchar(1),null), + VERSION = convert(nvarchar(1),null), + IS_LONG = d.is_long, + BEST_MATCH = case when t.usertype = 80 + then convert(bit,0) + else d.best_match + end, + IS_FIXEDLENGTH = convert(bit, + case when d.fixlen is null then 0 else 1 end) + + from master.dbo.spt_provider_types d + INNER JOIN model.dbo.systypes t on d.ss_dtype = t.xtype + LEFT OUTER JOIN master.dbo.spt_datatype_info_ext e on + t.xusertype = e.user_type + and e.AUTO_INCREMENT = 0 + where (@data_type is null or d.oledb_data_type = @data_type) + and (@best_match is null or d.best_match = @best_match) + and t.usertype <= 255 + and t.usertype <> 18 /* sysname */ + order by 2 +go + +grant execute on sp_provider_types_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_provider_types_rowset' and type = 'P ')) + begin + drop procedure sp_provider_types_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_procedure_params_rowset' +go + +/* Procedure for 6.0 and 6.50 servers */ +create procedure sp_procedure_params_rowset + ( + @procedure_name varchar(255) = null, + @group_number int = null, + @procedure_schema varchar(255) = null, + @parameter_name varchar(255) = null + ) +as +IF @procedure_name is not null + BEGIN + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = c.name, + ORDINAL_POSITION = convert(smallint,c.colid), + PARAMETER_TYPE = convert(smallint, 1+((c.status/64)&1)), + PARAMETER_HASDEFAULT = convert(tinyint, null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit, + case when d.oledb_data_type = 11 /*DBTYPE_BOOL*/ + then 0 else 1 + end), + DATA_TYPE = d.oledb_data_type, + CHARACTER_MAXIMUM_LENGTH= convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = d.type_name, + LOCAL_TYPE_NAME = d.local_type_name + + from + syscolumns c, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t + where + o.name = @procedure_name + and o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.id = c.id + and c.number = @group_number + and c.type = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.usertype = t.usertype + and (@parameter_name is null or @parameter_name = c.name) + UNION ALL + SELECT /* return value row*/ + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = convert(sysname,'RETURN_VALUE'), + ORDINAL_POSITION = convert(smallint,0), + PARAMETER_TYPE = convert(smallint, 4 /*DBPARAMTYPE_RETURNVALUE*/), + PARAMETER_HASDEFAULT = convert(tinyint,null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit,0), + DATA_TYPE = convert(smallint, 3 /*DBTYPE_I4*/), + CHARACTER_MAXIMUM_LENGTH= convert(int,null), + CHARACTER_OCTET_LENGTH = convert(int,null), + NUMERIC_PRECISION = convert(smallint,null), + NUMERIC_SCALE = convert(smallint,null), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = convert(sysname,'int'), + LOCAL_TYPE_NAME = convert(sysname,'int') + from + syscomments c, + sysobjects o + where + o.name = @procedure_name + and o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and (@parameter_name is null or @parameter_name = 'RETURN_VALUE') + and c.id = o.id + and c.colid = 1 + order by 2, 3, 5 + END +ELSE + BEGIN + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = c.name, + ORDINAL_POSITION = convert(smallint,c.colid), + PARAMETER_TYPE = convert(smallint, 1+((c.status/64)&1)), + PARAMETER_HASDEFAULT = convert(tinyint,null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit, + case when d.oledb_data_type = 11 /*DBTYPE_BOOL*/ + then 0 else 1 + end), + DATA_TYPE = d.oledb_data_type, + CHARACTER_MAXIMUM_LENGTH= convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = d.type_name, + LOCAL_TYPE_NAME = d.local_type_name + + from + syscolumns c, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t + where + o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.id = c.id + and c.type = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.usertype = t.usertype + and (@parameter_name is null or @parameter_name = c.name) + UNION ALL + SELECT /* return value row*/ + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = convert(sysname,'RETURN_VALUE'), + ORDINAL_POSITION = convert(smallint,0), + PARAMETER_TYPE = convert(smallint, 4 /*DBPARAMTYPE_RETURNVALUE*/), + PARAMETER_HASDEFAULT = convert(tinyint,null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit,0), + DATA_TYPE = convert(smallint, 3 /*DBTYPE_I4*/), + CHARACTER_MAXIMUM_LENGTH= convert(int,null), + CHARACTER_OCTET_LENGTH = convert(int,null), + NUMERIC_PRECISION = convert(smallint,null), + NUMERIC_SCALE = convert(smallint,null), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = convert(sysname,'int'), + LOCAL_TYPE_NAME = convert(sysname,'int') + from + syscomments c, + sysobjects o + where + o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and (@parameter_name is null or @parameter_name = 'RETURN_VALUE') + and c.id = o.id + and c.colid = 1 + order by 2, 3, 5 + END +go +dump tran master with no_log +go +create procedure sp_procedure_params_rowset;2 + ( + @handle int output, + @scrollopt int output, + @ccopt int output, + @rows int output, + @procedure_name varchar(255) = null, + @group_number int = null, + @procedure_schema varchar(255) = null, + @parameter_name varchar(255) = null + ) +as + declare @ret int + + +SET NOCOUNT ON + + create table #spprocparamrowset1 + ( + PROCEDURE_CATALOG sysname not null, + PROCEDURE_SCHEMA sysname not null, + PROCEDURE_NAME varchar(35) not null, + PARAMETER_NAME sysname not null, + ORDINAL_POSITION smallint not null, + PARAMETER_TYPE smallint null, + PARAMETER_HASDEFAULT tinyint null, + PARAMETER_DEFAULT varchar(255) null, + IS_NULLABLE bit not null, + DATA_TYPE smallint null, + CHARACTER_MAXIMUM_LENGTH int null, + CHARACTER_OCTET_LENGTH int null, + NUMERIC_PRECISION smallint null, + NUMERIC_SCALE smallint null, + DESCRIPTION varchar(1) null, + TYPE_NAME sysname null, + LOCAL_TYPE_NAME sysname null, + ) + +IF @procedure_name is not null + BEGIN + insert into #spprocparamrowset1 + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = c.name, + ORDINAL_POSITION = convert(smallint,c.colid), + PARAMETER_TYPE = convert(smallint, 1+((c.status/64)&1)), + PARAMETER_HASDEFAULT = convert(tinyint, null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit, + case when d.oledb_data_type = 11 /*DBTYPE_BOOL*/ + then 0 else 1 + end), + DATA_TYPE = d.oledb_data_type, + CHARACTER_MAXIMUM_LENGTH= convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = d.type_name, + LOCAL_TYPE_NAME = d.local_type_name + + from + syscolumns c, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t + where + o.name = @procedure_name + and o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.id = c.id + and c.number = @group_number + and c.type = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.usertype = t.usertype + and (@parameter_name is null or @parameter_name = c.name) + UNION ALL + SELECT /* return value row*/ + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = convert(sysname,'RETURN_VALUE'), + ORDINAL_POSITION = convert(smallint,0), + PARAMETER_TYPE = convert(smallint, 4 /*DBPARAMTYPE_RETURNVALUE*/), + PARAMETER_HASDEFAULT = convert(tinyint,null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit,0), + DATA_TYPE = convert(smallint, 3 /*DBTYPE_I4*/), + CHARACTER_MAXIMUM_LENGTH= convert(int,null), + CHARACTER_OCTET_LENGTH = convert(int,null), + NUMERIC_PRECISION = convert(smallint,null), + NUMERIC_SCALE = convert(smallint,null), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = convert(sysname,'int'), + LOCAL_TYPE_NAME = convert(sysname,'int') + from + syscomments c, + sysobjects o + where + o.name = @procedure_name + and o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and (@parameter_name is null or @parameter_name = 'RETURN_VALUE') + and c.id = o.id + and c.colid = 1 + order by 2, 3, 5 + END +ELSE + BEGIN + insert into #spprocparamrowset1 + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = c.name, + ORDINAL_POSITION = convert(smallint,c.colid), + PARAMETER_TYPE = convert(smallint, 1+((c.status/64)&1)), + PARAMETER_HASDEFAULT = convert(tinyint,null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit, + case when d.oledb_data_type = 11 /*DBTYPE_BOOL*/ + then 0 else 1 + end), + DATA_TYPE = d.oledb_data_type, + CHARACTER_MAXIMUM_LENGTH= convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = d.type_name, + LOCAL_TYPE_NAME = d.local_type_name + + from + syscolumns c, + sysobjects o, + master.dbo.spt_provider_types d, + systypes t + where + o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.id = c.id + and c.type = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.usertype = t.usertype + and (@parameter_name is null or @parameter_name = c.name) + UNION ALL + SELECT /* return value row*/ + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = convert(sysname,'RETURN_VALUE'), + ORDINAL_POSITION = convert(smallint,0), + PARAMETER_TYPE = convert(smallint, 4 /*DBPARAMTYPE_RETURNVALUE*/), + PARAMETER_HASDEFAULT = convert(tinyint,null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit,0), + DATA_TYPE = convert(smallint, 3 /*DBTYPE_I4*/), + CHARACTER_MAXIMUM_LENGTH= convert(int,null), + CHARACTER_OCTET_LENGTH = convert(int,null), + NUMERIC_PRECISION = convert(smallint,null), + NUMERIC_SCALE = convert(smallint,null), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = convert(sysname,'int'), + LOCAL_TYPE_NAME = convert(sysname,'int') + from + syscomments c, + sysobjects o + where + o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and (@parameter_name is null or @parameter_name = 'RETURN_VALUE') + and c.id = o.id + and c.colid = 1 + order by 2, 3, 5 + END + + exec @ret = sp_cursoropen @handle output, 'select * from #spprocparamrowset1', + @scrollopt output, @ccopt output, @rows output + + drop table #spprocparamrowset1 + return isnull(@ret,0) +go +dump tran master with no_log +go +create procedure sp_procedure_params_rowset;3 +as + select + PROCEDURE_CATALOG = convert(sysname, ' '), + PROCEDURE_SCHEMA = convert(sysname, ' '), + PROCEDURE_NAME = convert(varchar(35), ' '), + PARAMETER_NAME = convert(sysname, ' '), + ORDINAL_POSITION = convert(smallint, 0), + PARAMETER_TYPE = convert(smallint, 0), + PARAMETER_HASDEFAULT = convert(tinyint, null), + PARAMETER_DEFAULT = convert(varchar(255),null), + IS_NULLABLE = convert(bit, 0), + DATA_TYPE = convert(smallint, 0), + CHARACTER_MAXIMUM_LENGTH= convert(int, 0), + CHARACTER_OCTET_LENGTH = convert(int, 0), + NUMERIC_PRECISION = convert(smallint, 0), + NUMERIC_SCALE = convert(smallint, 0), + DESCRIPTION = convert(varchar(1),null), + TYPE_NAME = convert(sysname,null), + LOCAL_TYPE_NAME = convert(sysname,null) + where 1=0 +go +dump tran master with no_log +go + + +if (charindex('7.00', @@version) > 0) + drop procedure sp_procedure_params_rowset +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* Procedure for 7.0 servers */ +create procedure sp_procedure_params_rowset + ( + @procedure_name sysname, + @group_number int = 1, + @procedure_schema sysname = null, + @parameter_name sysname = null + ) +as + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = c.name, + ORDINAL_POSITION = convert(smallint,c.colid), + PARAMETER_TYPE = convert(smallint, 1+c.isoutparam), + PARAMETER_HASDEFAULT = convert(tinyint, null), + PARAMETER_DEFAULT = convert(nvarchar(255),null), + IS_NULLABLE = convert(bit,ColumnProperty(c.id,c.name,'AllowsNull')), + DATA_TYPE = d.oledb_data_type, + CHARACTER_MAXIMUM_LENGTH= convert(int, + case + when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + when d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length/2) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + or d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DESCRIPTION = convert(nvarchar(1),null), + TYPE_NAME = d.type_name, + LOCAL_TYPE_NAME = d.local_type_name + + from + sysobjects o, + syscolumns c, + master.dbo.spt_provider_types d, + systypes t + where + o.name = @procedure_name + and o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.id = c.id + and c.number = @group_number + and c.xtype = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.xusertype = t.xusertype + and (@parameter_name is null or @parameter_name = c.name) + UNION ALL + SELECT /* return value row*/ + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = convert(sysname,'RETURN_VALUE'), + ORDINAL_POSITION = convert(smallint,0), + PARAMETER_TYPE = convert(smallint, 4 /*DBPARAMTYPE_RETURNVALUE*/), + PARAMETER_HASDEFAULT = convert(tinyint, null), + PARAMETER_DEFAULT = convert(nvarchar(255),null), + IS_NULLABLE = convert(bit,0), + DATA_TYPE = convert(smallint, 3 /*DBTYPE_I4*/), + CHARACTER_MAXIMUM_LENGTH= convert(int,null), + CHARACTER_OCTET_LENGTH = convert(int,null), + NUMERIC_PRECISION = convert(smallint,null), + NUMERIC_SCALE = convert(smallint,null), + DESCRIPTION = convert(nvarchar(1),null), + TYPE_NAME = convert(sysname,N'int'), + LOCAL_TYPE_NAME = convert(sysname,N'int') + from + sysobjects o, + syscomments c + where + o.name = @procedure_name + and o.id = c.id + and c.colid = 1 + and o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and (@parameter_name is null or @parameter_name = 'RETURN_VALUE') + order by 2, 3, 5 +go +dump tran master with no_log +go +create procedure sp_procedure_params_rowset;2 + ( + @procedure_schema sysname = null, + @parameter_name sysname = null + ) +as + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = c.name, + ORDINAL_POSITION = convert(smallint,c.colid), + PARAMETER_TYPE = convert(smallint, 1+c.isoutparam), + PARAMETER_HASDEFAULT = convert(tinyint, null), + PARAMETER_DEFAULT = convert(nvarchar(255),null), + IS_NULLABLE = convert(bit,ColumnProperty(c.id,c.name,'AllowsNull')), + DATA_TYPE = d.oledb_data_type, + CHARACTER_MAXIMUM_LENGTH= convert(int, + case + when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + then coalesce(d.column_size,c.length) + when d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length/2) + else null + end), + CHARACTER_OCTET_LENGTH = convert(int, + case when d.oledb_data_type = 129 /*DBTYPE_STR*/ + or d.oledb_data_type = 128 /*DBTYPE_BYTES*/ + or d.oledb_data_type = 130 /*DBTYPE_WSTR*/ + then coalesce(d.column_size,c.length) + else null + end), + NUMERIC_PRECISION = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.prec else null end), + NUMERIC_SCALE = convert(smallint, + case when d.oledb_data_type = 131 /*DBTYPE_NUMERIC*/ then c.scale else null end), + DESCRIPTION = convert(nvarchar(1),null), + TYPE_NAME = d.type_name, + LOCAL_TYPE_NAME = d.local_type_name + + from + sysobjects o, + syscolumns c, + master.dbo.spt_provider_types d, + systypes t + where + o.type = 'P' /* Just Procedures */ + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.id = c.id + and c.xtype = d.ss_dtype + and c.length = case when d.fixlen > 0 then d.fixlen else c.length end + and c.xusertype = t.xusertype + and (@parameter_name is null or @parameter_name = c.name) + UNION ALL + SELECT /* return value row*/ + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(c.number,5))), + PARAMETER_NAME = convert(sysname,'RETURN_VALUE'), + ORDINAL_POSITION = convert(smallint,0), + PARAMETER_TYPE = convert(smallint, 4 /*DBPARAMTYPE_RETURNVALUE*/), + PARAMETER_HASDEFAULT = convert(tinyint, null), + PARAMETER_DEFAULT = convert(nvarchar(255),null), + IS_NULLABLE = convert(bit,0), + DATA_TYPE = convert(smallint, 3 /*DBTYPE_I4*/), + CHARACTER_MAXIMUM_LENGTH= convert(int,null), + CHARACTER_OCTET_LENGTH = convert(int,null), + NUMERIC_PRECISION = convert(smallint,null), + NUMERIC_SCALE = convert(smallint,null), + DESCRIPTION = convert(nvarchar(1),null), + TYPE_NAME = convert(sysname,N'int'), + LOCAL_TYPE_NAME = convert(sysname,N'int') + from + sysobjects o, + syscomments c + where + o.type = 'P' /* Just Procedures */ + and o.id = c.id + and c.colid = 1 + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and (@parameter_name is null or @parameter_name = 'RETURN_VALUE') + order by 2, 3, 5 +go + + +grant execute on sp_procedure_params_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_procedure_params_rowset' and type = 'P ')) + begin + drop procedure sp_procedure_params_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_procedures_rowset' +go + + +/* pre 7.00 version */ +create procedure sp_procedures_rowset + ( + @procedure_name varchar(255), + @group_number int = 1, + @procedure_schema varchar(255) = null + ) +as + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(o.uid), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(p.number,5))), + PROCEDURE_TYPE = convert(smallint, 3 /*DB_PT_FUNCTION*/), + PROCEDURE_DEFINITION = convert(varchar(1),null), + DESCRIPTION = convert(varchar(1),null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from + sysobjects o, + syscomments p, + sysusers u + where + o.name = @procedure_name + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.type = 'P' /* Object type of Procedure */ + and p.colid = 1 + and p.id = o.id + and p.number = @group_number + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ((select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 2, 3 +go +dump tran master with no_log +go +create procedure sp_procedures_rowset;2 + ( + @procedure_schema varchar(255) = null + ) +as + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(o.uid), + PROCEDURE_NAME = convert(varchar(35),o.name +';'+ ltrim(str(p.number,5))), + PROCEDURE_TYPE = convert(smallint, 3 /*DB_PT_FUNCTION*/), + PROCEDURE_DEFINITION = convert(varchar(1),null), + DESCRIPTION = convert(varchar(1),null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from + sysobjects o, + syscomments p, + sysusers u + where + (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.type = 'P' /* Object type of Procedure */ + and p.colid = 1 + and p.id = o.id + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ((select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 2, 3 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) > 0) + drop procedure sp_procedures_rowset +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* 7.00 version */ +create procedure sp_procedures_rowset + ( + @procedure_name sysname, + @group_number int = 1, + @procedure_schema sysname = null + ) +as + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(o.uid), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(p.number,5))), + PROCEDURE_TYPE = convert(smallint, 3 /*DB_PT_FUNCTION*/), + PROCEDURE_DEFINITION = convert(nvarchar(1),null), + DESCRIPTION = convert(nvarchar(1),null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from + sysobjects o, + syscomments p + where + permissions(o.id) <> 0 + and o.name = @procedure_name + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.type = 'P' /* Object type of Procedure */ + and p.colid = 1 + and p.id = o.id + and p.number = @group_number + order by 2, 3 +go +dump tran master with no_log +go +create procedure sp_procedures_rowset;2 + ( + @procedure_schema sysname = null + ) +as + select + PROCEDURE_CATALOG = db_name(), + PROCEDURE_SCHEMA = user_name(o.uid), + PROCEDURE_NAME = convert(nvarchar(134),o.name +';'+ ltrim(str(p.number,5))), + PROCEDURE_TYPE = convert(smallint, 3 /*DB_PT_FUNCTION*/), + PROCEDURE_DEFINITION = convert(nvarchar(1),null), + DESCRIPTION = convert(nvarchar(1),null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from sysobjects o, syscomments p + where + permissions(o.id) <> 0 + and (@procedure_schema is null or @procedure_schema = user_name(o.uid)) + and o.type = 'P' /* Object type of Procedure */ + and p.colid = 1 + and p.id = o.id + order by 2, 3 +go + +grant execute on sp_procedures_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_procedures_rowset' and type = 'P ')) + begin + drop procedure sp_procedures_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_schemata_rowset' +go + +/* 6.0 and 6.5 version */ +create procedure sp_schemata_rowset + ( + @schema_name varchar(90) = null, + @schema_owner varchar(90) = null + ) +as + select distinct + CATALOG_NAME = db_name(), + SCHEMA_NAME = user_name(o.uid), + SCHEMA_OWNER = user_name(o.uid), + DEFAULT_CHARACTER_SET_CATALOG = convert(sysname,'master'), + DEFAULT_CHARACTER_SET_SCHEMA = convert(sysname,'dbo'), + DEFAULT_CHARACTER_SET_NAME = convert(sysname,a_cha.name) + from + sysobjects o, + master.dbo.sysconfigures cfg, + master.dbo.syscharsets a_cha, /* charset/1001, not sortorder */ + master.dbo.syscharsets b_cha /* sortorder/2001, not charset */ + where + (@schema_name is null or @schema_name = user_name(o.uid)) + and (@schema_owner is null or @schema_owner = user_name(o.uid)) + and a_cha.type = 1001 /* type is charset */ + and b_cha.type = 2001 /* type is sortorder */ + and a_cha.id = b_cha.csid + and b_cha.id = cfg.value + order by 2 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) > 0) + drop procedure sp_schemata_rowset +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* 7.00 version */ +create procedure sp_schemata_rowset + ( + @schema_name sysname = null, + @schema_owner sysname = null + ) +as + select distinct + CATALOG_NAME = db_name(), + SCHEMA_NAME = user_name(o.uid), + SCHEMA_OWNER = user_name(o.uid), + DEFAULT_CHARACTER_SET_CATALOG = convert(sysname,N'master'), + DEFAULT_CHARACTER_SET_SCHEMA = convert(sysname,N'dbo'), + DEFAULT_CHARACTER_SET_NAME = convert(sysname,a_cha.name) + from + sysobjects o, + master.dbo.sysconfigures cfg, + master.dbo.syscharsets a_cha, /* charset/1001, not sortorder */ + master.dbo.syscharsets b_cha /* sortorder/2001, not charset */ + where + (@schema_name is null or @schema_name = user_name(o.uid)) + and (@schema_owner is null or @schema_owner = user_name(o.uid)) + and a_cha.type = 1001 /* type is charset */ + and b_cha.type = 2001 /* type is sortorder */ + and a_cha.id = b_cha.csid + and b_cha.id = cfg.value + order by 2 +go +dump tran master with no_log +go +go +/* The following stored procedure is used for Sphinx and Hydra */ +create procedure sp_schemata_rowset;3 +as + select + CATALOG_NAME = convert(sysname,' '), + SCHEMA_NAME = convert(sysname,' '), + SCHEMA_OWNER = convert(sysname,' '), + DEFAULT_CHARACTER_SET_CATALOG = convert(sysname,' '), + DEFAULT_CHARACTER_SET_SCHEMA = convert(sysname,' '), + DEFAULT_CHARACTER_SET_NAME = convert(sysname,' ') + where 1=0 +go +grant execute on sp_schemata_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_schemata_rowset' and type = 'P ')) + begin + drop procedure sp_schemata_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_statistics_rowset' +go + + +/* 6.0 and 6.5 version */ +create procedure sp_statistics_rowset + ( + @table_name varchar(255), + @table_schema varchar(255) = null + ) +as + select db_name() as TABLE_CATALOG, + user_name(o.uid) as TABLE_SCHEMA, + o.name as TABLE_NAME, + x.rows as CARDINALITY + from sysobjects o, sysindexes x, sysusers u + where o.type in ('U') + and o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and x.id = o.id + and x.indid in (0,1) /*If there are no indexes then table stats are in a row with indid =0 */ + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 2, 3 +go +dump tran master with no_log +go +create procedure sp_statistics_rowset;2 + ( + @table_schema varchar(255) = null + ) +as + select db_name() as TABLE_CATALOG, + user_name(o.uid) as TABLE_SCHEMA, + o.name as TABLE_NAME, + x.rows as CARDINALITY + from sysobjects o, sysindexes x, sysusers u + where o.type in ('U') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and x.id = o.id + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 2, 3 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) > 0) + drop procedure sp_statistics_rowset +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* 7.0 version */ +create procedure sp_statistics_rowset + ( + @table_name sysname, + @table_schema sysname = null + ) +as + select db_name() as TABLE_CATALOG, + user_name(o.uid) as TABLE_SCHEMA, + o.name as TABLE_NAME, + x.rows as CARDINALITY + from sysobjects o, sysindexes x + where o.type in ('U') + and o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and x.id = o.id + and x.indid in (0,1) /*If there are no indexes then table stats are in a row with indid =0 */ + and permissions(o.id) <> 0 + order by 2, 3 +go +dump tran master with no_log +go +create procedure sp_statistics_rowset;2 + ( + @table_schema sysname = null + ) +as + select db_name() as TABLE_CATALOG, + user_name(o.uid) as TABLE_SCHEMA, + o.name as TABLE_NAME, + x.rows as CARDINALITY + from sysobjects o, sysindexes x + where o.type in ('U') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and x.id = o.id + and x.indid in (0,1) /*If there are no indexes then table stats are in a row with indid =0 */ + and permissions(o.id) <> 0 + order by 2, 3 +go + +grant execute on sp_statistics_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_statistics_rowset' and type = 'P ')) + begin + drop procedure sp_statistics_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_tables_rowset' +go + + +/* Procedure for 6.50 and earlier servers */ +create procedure sp_tables_rowset + ( + @table_name varchar(255), + @table_schema varchar(255) = null, + @table_type varchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(varchar(30), + case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end), + TABLE_GUID = convert(binary(16), null), + DESCRIPTION = convert(varchar(1), null), + TABLE_PROPID = convert(int,null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from sysusers u, sysobjects o + where o.type in ('U','V','S') + and o.name = @table_name + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end + ) + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + /* join to correlate with all rows in sysobjects */ + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 4, 2, 3 +go +dump tran master with no_log +go +create procedure sp_tables_rowset;2 + ( + @table_schema varchar(255) = null, + @table_type varchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(varchar(30), + case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end), + TABLE_GUID = convert(binary(16), null), + DESCRIPTION = convert(varchar(1), null), + TABLE_PROPID = convert(int,null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from sysusers u, sysobjects o + where o.type in ('U','V','S') + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end + ) + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + /* join to correlate with all rows in sysobjects */ + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 4, 2, 3 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) > 0) + drop procedure sp_tables_rowset +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* Procedure for 7.00 server */ +create procedure sp_tables_rowset + ( + @table_name sysname, + @table_schema sysname = null, + @table_type nvarchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(nvarchar(30), + case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end), + TABLE_GUID = convert(uniqueidentifier, null), + DESCRIPTION = convert(nvarchar(1), null), + TABLE_PROPID = convert(int,null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from sysobjects o + where o.name = @table_name + and o.type in ('U','V','S') + and permissions(o.id) <> 0 + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end + ) + order by 4, 2, 3 +go +dump tran master with no_log +go +create procedure sp_tables_rowset;2 + ( + @table_schema sysname = null, + @table_type nvarchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(nvarchar(30), + case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end), + TABLE_GUID = convert(uniqueidentifier, null), + DESCRIPTION = convert(nvarchar(1), null), + TABLE_PROPID = convert(int,null), + DATE_CREATED = o.crdate, + DATE_MODIFIED = convert(datetime,null) + from sysobjects o + where o.type in ('U','V','S') + and permissions(o.id) <> 0 + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end + ) + order by 4, 2, 3 +go +dump tran master with no_log +go +create procedure sp_tables_rowset;5 + ( + @table_server sysname, + @table_catalog sysname = null, + @table_name sysname = null, + @table_schema sysname = null, + @table_type sysname = null + ) +as + select + TABLE_CATALOG, + TABLE_SCHEMA, + TABLE_NAME, + TABLE_TYPE, + TABLE_GUID, + DESCRIPTION + -- TABLE_PROPID, + -- DATE_CREATED, + -- DATE_MODIFIED + from master.dbo.SYSREMOTE_TABLES < + @table_server, + @table_catalog, + @table_schema, + @table_name, + @table_type > + order by 4,1,2,3 +go + +grant execute on sp_tables_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_tables_rowset' and type = 'P ')) + begin + drop procedure sp_tables_rowset + dump tran master with no_log + end + end +go + + + +print '' +print 'creating sp_tables_info_rowset' +go + + +/* Procedure for 6.50 and earlier servers */ +create procedure sp_tables_info_rowset + ( + @table_name varchar(255), + @table_schema varchar(255) = null, + @table_type varchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(varchar(30), + case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end), + TABLE_GUID = convert(binary(16), null), + BOOKMARKS = convert(bit, 1), + BOOKMARK_TYPE = convert(int, 1 /*DBPROPVAL_BMK_NUMERIC*/), + BOOKMARK_DATATYPE = convert(smallint, 19 /*DBTYPE_UI4 */), + BOOKMARK_MAXIMUM_LENGTH = convert(int, 4), + BOOKMARK_INFORMATION = convert(int, 0), + TABLE_VERSION = convert(int, o.schema_ver), + CARDINALITY = x.rows, + DESCRIPTION = convert(varchar(1), null), + TABLE_PROPID = convert(int, null) + + from sysusers u, + sysobjects o, + sysindexes x + + where o.type in ('U','V','S') + and o.name = @table_name + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end + ) + and o.id *= x.id + and x.indid in (0,1) + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + /* join to correlate with all rows in sysobjects */ + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 4, 2, 3 +go +dump tran master with no_log +go +create procedure sp_tables_info_rowset;2 + ( + @table_schema varchar(255) = null, + @table_type varchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(varchar(30), + case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end), + TABLE_GUID = convert(binary(16), null), + BOOKMARKS = convert(bit, 1), + BOOKMARK_TYPE = convert(int, 1 /*DBPROPVAL_BMK_NUMERIC*/), + BOOKMARK_DATATYPE = convert(smallint, 19 /*DBTYPE_UI4 */), + BOOKMARK_MAXIMUM_LENGTH = convert(int, 4), + BOOKMARK_INFORMATION = convert(int, 0), + TABLE_VERSION = convert(int, o.schema_ver), + CARDINALITY = x.rows, + DESCRIPTION = convert(varchar(1), null), + TABLE_PROPID = convert(int, null) + + from sysusers u, + sysobjects o, + sysindexes x + + where o.type in ('U','V','S') + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then 'TABLE' + when 'V' then 'VIEW' + when 'S' then 'SYSTEM TABLE' + end + ) + and o.id *= x.id + and x.indid in (0,1) + and u.uid = user_id() /* constrain sysusers uid for use in subquery */ + and ( + suser_id() = 1 /* User is the System Administrator */ + or o.uid = user_id() /* User created the object */ + /* here's the magic... select the highest precedence of permissions in the order (user,group,public) */ + or ( (select max(((sign(uid)*abs(uid-16383))*2)+(protecttype&1)) + from sysprotects p + /* join to correlate with all rows in sysobjects */ + where p.id = o.id + /* get rows for public,current user,user's group */ + and (p.uid = 0 or p.uid = user_id() or p.uid = u.gid) + /* check for SELECT,EXECUTE privilege */ + and (action in (193,224)))&1 /* more magic...normalize GRANT */ + ) = 1 /* final magic...compare Grants */ + ) + order by 4, 2, 3 +go +dump tran master with no_log +go + +if (charindex('7.00', @@version) > 0) + drop procedure sp_tables_info_rowset +else +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go + +/* Procedure for 7.00 server */ +create procedure sp_tables_info_rowset + ( + @table_name sysname, + @table_schema sysname = null, + @table_type nvarchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(nvarchar(30), + case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end), + TABLE_GUID = convert(uniqueidentifier, null), + BOOKMARKS = convert(bit, 1), + BOOKMARK_TYPE = convert(int, 1 /*DBPROPVAL_BMK_NUMERIC*/), + BOOKMARK_DATATYPE = convert(smallint, 19 /*DBTYPE_UI4 */), + BOOKMARK_MAXIMUM_LENGTH = convert(int, 4), + BOOKMARK_INFORMATION = convert(int, 0), + TABLE_VERSION = convert(int, o.schema_ver), + CARDINALITY = x.rows, + DESCRIPTION = convert(nvarchar(1), null), + TABLE_PROPID = convert(int, null) + + from sysobjects o left join sysindexes x on o.id = x.id and x.indid in (0,1) + + where o.name = @table_name + and o.type in ('U','V','S') + and permissions(o.id) <> 0 + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end + ) + order by 4, 2, 3 +go +dump tran master with no_log +go +create procedure sp_tables_info_rowset;2 + ( + @table_schema sysname = null, + @table_type nvarchar(255) = null + ) +as + select TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + TABLE_TYPE = convert(nvarchar(30), + case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end), + TABLE_GUID = convert(uniqueidentifier, null), + BOOKMARKS = convert(bit, 1), + BOOKMARK_TYPE = convert(int, 1 /*DBPROPVAL_BMK_NUMERIC*/), + BOOKMARK_DATATYPE = convert(smallint, 19 /*DBTYPE_UI4 */), + BOOKMARK_MAXIMUM_LENGTH = convert(int, 4), + BOOKMARK_INFORMATION = convert(int, 0), + TABLE_VERSION = convert(int, o.schema_ver), + CARDINALITY = x.rows, + DESCRIPTION = convert(nvarchar(1), null), + TABLE_PROPID = convert(int, null) + + from sysobjects o left join sysindexes x on o.id = x.id and x.indid in (0,1) + + where o.type in ('U','V','S') + and permissions(o.id) <> 0 + and ( @table_schema is null + or @table_schema = user_name(o.uid) + ) + and ( + @table_type is null + or @table_type = case o.type + when 'U' then N'TABLE' + when 'V' then N'VIEW' + when 'S' then N'SYSTEM TABLE' + end + ) + order by 4, 2, 3 +go + +grant execute on sp_tables_info_rowset to public +go + +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_tables_info_rowset' and type = 'P ')) + begin + drop procedure sp_tables_info_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_table_privileges_rowset' +go + +/* Procedure for 6.0 and 6.5 server */ +CREATE PROCEDURE sp_table_privileges_rowset + ( + @table_name varchar(255) = null, + @table_schema varchar(255) = null, + @grantor varchar(255) = null, + @grantee varchar(255) = null + ) +as +IF @table_name is not null + BEGIN + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u + where + o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and o.type in ('U','V','S') + and p.id = o.id + and (@grantor is null or @grantor = user_name(p.grantor)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u + where + o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and o.type in ('U','V','S') + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4,5,6,1,2 + END +ELSE + BEGIN + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and p.id = o.id + and (@grantor is null or @grantor = user_name(p.grantor)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4,5,6,1,2 + END +go +dump tran master with no_log +go +CREATE PROCEDURE sp_table_privileges_rowset;2 + ( + @handle int output, + @scrollopt int output, + @ccopt int output, + @rows int output, + @table_name varchar(255) = null, + @table_schema varchar(255) = null, + @grantor varchar(255) = null, + @grantee varchar(255) = null + ) +as +declare @ret int +SET NOCOUNT ON +create table #sptprivsrowset1 + ( + GRANTOR sysname not null, + GRANTEE sysname not null, + TABLE_CATALOG sysname not null, + TABLE_SCHEMA sysname not null, + TABLE_NAME sysname not null, + PRIVILEGE_TYPE sysname not null, + IS_GRANTABLE bit not null + ) + +IF @table_name is not null + BEGIN + insert into #sptprivsrowset1 + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u + where + o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and o.type in ('U','V','S') + and p.id = o.id + and (@grantor is null or @grantor = user_name(p.grantor)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u + where + o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and o.type in ('U','V','S') + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4,5,6,1,2 + END +ELSE + BEGIN + insert into #sptprivsrowset1 + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case p.action + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and p.id = o.id + and (@grantor is null or @grantor = user_name(p.grantor)) + /* expand groups */ + and ((p.uid = u.uid and u.uid <> u.gid) or (p.uid = u.gid and u.uid <> u.gid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(varchar(30), + case v.number + when 193 then 'SELECT' + when 195 then 'INSERT' + when 196 then 'DELETE' + when 197 then 'UPDATE' + else 'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4,5,6,1,2 + END + +exec @ret = sp_cursoropen @handle output, 'select * from #sptprivsrowset1', + @scrollopt output, @ccopt output, @rows output + +drop table #sptprivsrowset1 +return isnull(@ret,0) +go +dump tran master with no_log +go +CREATE PROCEDURE sp_table_privileges_rowset;3 +as + select + GRANTOR = convert(sysname, ' '), + GRANTEE = convert(sysname, ' '), + TABLE_CATALOG = convert(sysname, ' '), + TABLE_SCHEMA = convert(sysname, ' '), + TABLE_NAME = convert(sysname, ' '), + PRIVILEGE_TYPE = convert(varchar(30), ' '), + IS_GRANTABLE = convert(bit, 0) + where 1=0 +go + +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +else + drop proc sp_table_privileges_rowset +go + + +/* Procedure for 7.0 server */ +CREATE PROCEDURE sp_table_privileges_rowset + ( + @table_name sysname, + @table_schema sysname = null, + @grantor sysname = null, + @grantee sysname = null + ) +as + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(nvarchar(30), + case p.action + when 193 then N'SELECT' + when 195 then N'INSERT' + when 196 then N'DELETE' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, sysmembers m + where + o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and o.type in ('U','V','S') + and p.id = o.id + and (@grantor is null or @grantor = user_name(p.grantor)) + /* expand groups - AKUNDONE: only 1 level of grp unrolling. */ + and (u.uid > 0 and u.uid < 16384) + and ((p.uid = u.uid) or (p.uid = m.groupuid and u.uid = m.memberuid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(nvarchar(30), + case v.number + when 193 then N'SELECT' + when 195 then N'INSERT' + when 196 then N'DELETE' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u + where + o.name = @table_name + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and o.type in ('U','V','S') + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4,5,6,1,2 +go +dump tran master with no_log +go +CREATE PROCEDURE sp_table_privileges_rowset;2 + ( + @table_schema sysname = null, + @grantor sysname = null, + @grantee sysname = null + ) +as + select + GRANTOR = user_name(p.grantor), + GRANTEE = user_name(u.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(nvarchar(30), + case p.action + when 193 then N'SELECT' + when 195 then N'INSERT' + when 196 then N'DELETE' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,case when p.protecttype = 205 then 0 else 1 end) + from + sysprotects p, sysobjects o, sysusers u, sysmembers m + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and p.id = o.id + and (@grantor is null or @grantor = user_name(p.grantor)) + /* expand groups - AKUNDONE: only 1 level of grp unrolling. */ + and (u.uid > 0 and u.uid < 16384) + and ((p.uid = u.uid) or (p.uid = m.groupuid and u.uid = m.memberuid)) + and p.protecttype <> 206 /* only grant rows */ + and p.action in (26,193,195,196,197) + and o.uid <> u.uid /* no rows for owner */ + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = p.action + and p1.id = p.id + and p1.uid = u.uid) + union all + select /* Add rows for table owner */ + GRANTOR = user_name(u.uid), + GRANTEE = user_name(o.uid), + TABLE_CATALOG = db_name(), + TABLE_SCHEMA = user_name(o.uid), + TABLE_NAME = o.name, + PRIVILEGE_TYPE = convert(nvarchar(30), + case v.number + when 193 then N'SELECT' + when 195 then N'INSERT' + when 196 then N'DELETE' + when 197 then N'UPDATE' + else N'REFERENCES' + end), + IS_GRANTABLE = convert(bit,1) + from + sysobjects o, master.dbo.spt_values v, sysusers u + where + o.type in ('U','V','S') + and (@table_schema is null or @table_schema = user_name(o.uid)) + and (@grantee is null or @grantee = user_name(u.uid)) + and u.suid = 1 /* grantor is dbo of database */ + and (@grantor is null or @grantor = user_name(u.uid)) + and v.type = 'P' /* cross product to get all exposed privileges */ + and v.number in (26,193,195,196,197) + and not exists ( /* exclude revoke'd privileges */ + select * + from sysprotects p1 + where p1.protecttype = 206 + and p1.action = v.number + and p1.id = o.id + and p1.uid = o.uid) + order by 4,5,6,1,2 +go +dump tran master with no_log +go +create procedure sp_table_privileges_rowset;5 + ( + @table_server sysname, + @table_catalog sysname = null, + @table_name sysname = null, + @table_schema sysname = null, + @grantor sysname = null, + @grantee sysname = null + ) +as + select + GRANTOR, + GRANTEE, + TABLE_CATALOG, + TABLE_SCHEMA, + TABLE_NAME, + PRIVILEGE_TYPE, + IS_GRANTABLE + from master.dbo.SYSREMOTE_TABLE_PRIVILEGES < + @table_server, + @table_catalog, + @table_schema, + @table_name, + @grantor, + @grantee > + order by 3,4,5,6,1,2 +go + +grant execute on sp_table_privileges_rowset to public +go +dump tran master with no_log +go +if (charindex('6.00', @@version) > 0) + begin + if (exists (select * from sysobjects + where name = 'sp_table_privileges_rowset' and type = 'P ')) + begin + drop proc sp_table_privileges_rowset + dump tran master with no_log + end + end +go + + +print '' +print 'creating sp_linkedservers_rowset' +go +if (charindex('7.00', @@version) = 0) +begin + print '' + print '' + print 'Warning:' + print 'you are installing the stored procedures ' + print 'on a pre 7.0 SQL Server.' + print 'Ignore the following errors.' +end +go +/* Procedure for 7.0 server */ +create proc sp_linkedservers_rowset + ( + @srvname sysname + ) +as + select + SVR_NAME = srvname, + SVR_PRODUCT = srvproduct, + SVR_PROVIDERNAME = providername, + SVR_DATASOURCE = datasource, + SVR_PROVIDERSTRING = providerstring, + SVR_LOCATION = location, + SVR_CATALOG = catalog + from master.dbo.sysservers + where srvname = @srvname and (srvstatus & 128) = 128 + order by 1 +go +dump tran master with no_log +go +create proc sp_linkedservers_rowset;2 +as + select + SVR_NAME = srvname, + SVR_PRODUCT = srvproduct, + SVR_PROVIDERNAME = providername, + SVR_DATASOURCE = datasource, + SVR_PROVIDERSTRING = providerstring, + SVR_LOCATION = location, + SVR_CATALOG = catalog + from master.dbo.sysservers + where (srvstatus & 128) = 128 + order by 1 +go + +grant execute on sp_linkedservers_rowset to public +go + +dump tran master with no_log +print '' +go + +/*-----------------------------------------------------------------------------*/ +/*-------------- CATALOG STORED PROCEDURES FOR OLEDB SOURCES ------------------*/ +/*-----------------------------------------------------------------------------*/ + +if object_id('sp_linkedservers', 'P') is not null + drop proc sp_linkedservers +go +raiserror(15339,-1,-1,'sp_linkedservers') +go +create proc sp_linkedservers as + select + SRV_NAME = srvname, + SRV_PROVIDERNAME = providername, + SRV_PRODUCT = srvproduct, + SRV_DATASOURCE = datasource, + SRV_PROVIDERSTRING = providerstring, + SRV_LOCATION = location, + SRV_CAT = catalog + from master.dbo.sysservers + order by 1 +go +grant execute on sp_linkedservers to public +go + + +if object_id('sp_catalogs', 'P') is not null + drop proc sp_catalogs +go +raiserror(15339,-1,-1,'sp_catalogs') +go +create procedure sp_catalogs( + @server_name sysname) +as + select + CATALOG_NAME, + convert (nvarchar(255),DESCRIPTION) + from master.dbo.SYSREMOTE_CATALOGS < @server_name > + order by CATALOG_NAME +go +grant execute on sp_catalogs to public +go + + +if object_id('sp_tables_ex', 'P') is not null + drop proc sp_tables_ex +go +raiserror(15339,-1,-1,'sp_tables_ex') +go +create procedure sp_tables_ex( + @table_server sysname, + @table_name sysname = null, + @table_schema sysname = null, + @table_catalog sysname = null, + @table_type sysname = null) +as + if ((isnull(charindex('%', @table_name),0) = 0) and + (isnull(charindex('[', @table_name),0) = 0) and + (isnull(charindex('_', @table_name),0) = 0)) + begin /* If no wild carding */ + select + TABLE_CAT = TABLE_CATALOG, + TABLE_SCHEM = TABLE_SCHEMA, + TABLE_NAME = TABLE_NAME, + TABLE_TYPE = TABLE_TYPE, + REMARKS = convert(nvarchar(255),DESCRIPTION) + from master.dbo.SYSREMOTE_TABLES < + @table_server, + @table_catalog, + @table_schema, + @table_name, + @table_type > + order by TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME + end + else + begin /* If wild carding */ + select + TABLE_CAT = TABLE_CATALOG, + TABLE_SCHEM = TABLE_SCHEMA, + TABLE_NAME = TABLE_NAME, + TABLE_TYPE = TABLE_TYPE, + REMARKS = convert(nvarchar(255),DESCRIPTION) + from master.dbo.SYSREMOTE_TABLES < + @table_server, + @table_catalog, + @table_schema, + NULL, + @table_type > + where TABLE_NAME like @table_name + order by TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME + end +go +grant execute on sp_tables_ex to public +go + + +if object_id('sp_columns_ex', 'P') is not null + drop proc sp_columns_ex +go +raiserror(15339,-1,-1,'sp_columns_ex') +go +create procedure sp_columns_ex( + @table_server sysname, + @table_name sysname = null, + @table_schema sysname = null, + @table_catalog sysname = null, + @column_name sysname = null, + @ODBCVer int = 2) +as + + set nocount on + declare + @DBCOLUMNFLAGS_ISFIXEDLENGTH binary(1), @DBCOLUMNFLAGS_ISLONG binary(1), + @DBCOLUMNFLAGS_ISROWVER binary(2) + + select + @DBCOLUMNFLAGS_ISFIXEDLENGTH = 0x10, @DBCOLUMNFLAGS_ISLONG = 0x80, + @DBCOLUMNFLAGS_ISROWVER = 0x0200 + + declare + @DBTYPE_I2 smallint, @DBTYPE_I4 smallint, + @DBTYPE_R4 smallint, @DBTYPE_R8 smallint, + @DBTYPE_CY smallint, @DBTYPE_DATE smallint, + @DBTYPE_BSTR smallint, @DBTYPE_BOOL smallint, + @DBTYPE_VARIANT smallint, @DBTYPE_DECIMAL smallint, + @DBTYPE_UI1 smallint, @DBTYPE_BYREF smallint, + @DBTYPE_I1 smallint, @DBTYPE_UI2 smallint, + @DBTYPE_UI4 smallint, @DBTYPE_I8 smallint, + @DBTYPE_UI8 smallint, @DBTYPE_GUID smallint, + @DBTYPE_BYTES smallint, @DBTYPE_STR smallint, + @DBTYPE_WSTR smallint, @DBTYPE_NUMERIC smallint, + @DBTYPE_DBDATE smallint, @DBTYPE_DBTIME smallint, + @DBTYPE_DBTIMESTAMP smallint + + select + @DBTYPE_I2 = 2, @DBTYPE_I4 = 3, + @DBTYPE_R4 = 4, @DBTYPE_R8 = 5, + @DBTYPE_CY = 6, @DBTYPE_DATE = 7, + @DBTYPE_BSTR = 8, @DBTYPE_BOOL = 11, + @DBTYPE_VARIANT = 12, @DBTYPE_DECIMAL = 14, + @DBTYPE_UI1 = 17, @DBTYPE_BYREF = 16384, + @DBTYPE_I1 = 16, @DBTYPE_UI2 = 18, + @DBTYPE_UI4 = 19, @DBTYPE_I8 = 20, + @DBTYPE_UI8 = 21, @DBTYPE_GUID = 72, + @DBTYPE_BYTES = 128, @DBTYPE_STR = 129, + @DBTYPE_WSTR = 130, @DBTYPE_NUMERIC = 131, + @DBTYPE_DBDATE = 133, @DBTYPE_DBTIME = 134, + @DBTYPE_DBTIMESTAMP = 135 + + declare + @ODS_SMALLINT_NOT_NULL tinyint, @ODS_INT_NULL tinyint, + @ODS_INT_NOT_NULL tinyint, @ODS_TINYINT_NOT_NULL tinyint, + @ODS_REAL_NOT_NULL tinyint, @ODS_FLOAT_NULL tinyint, + @ODS_FLOAT_NOT_NULL tinyint, @ODS_MONEY_NULL tinyint, + @ODS_MONEY_NOT_NULL tinyint, @ODS_DATETIME_NULL tinyint, + @ODS_DATETIME_NOT_NULL tinyint, @ODS_TEXT tinyint, + @ODS_BIT tinyint, @ODS_DECIMAL tinyint, + @ODS_NUMERIC tinyint, @ODS_GUID tinyint, + @ODS_IMAGE tinyint, @ODS_TIMESTAMP tinyint, + @ODS_BINARY_NULL tinyint, @ODS_BINARY_NOT_NULL tinyint, + @ODS_VARBINARY tinyint, @ODS_CHAR_NULL tinyint, + @ODS_CHAR_NOT_NULL tinyint, @ODS_VARCHAR tinyint + + select + @ODS_IMAGE = 34, @ODS_TEXT = 35, + @ODS_GUID = 36, @ODS_BINARY_NULL = 37, + @ODS_VARBINARY = 37, @ODS_INT_NULL = 38, + @ODS_CHAR_NULL = 39, @ODS_VARCHAR = 39, + @ODS_TIMESTAMP = 45, @ODS_BINARY_NOT_NULL = 45, + @ODS_CHAR_NOT_NULL = 47, @ODS_TINYINT_NOT_NULL = 48, + @ODS_BIT = 50, @ODS_SMALLINT_NOT_NULL = 52, + @ODS_INT_NOT_NULL = 56, @ODS_REAL_NOT_NULL = 59, + @ODS_MONEY_NOT_NULL = 60, @ODS_DATETIME_NOT_NULL = 61, + @ODS_FLOAT_NOT_NULL = 62, @ODS_DECIMAL = 106, + @ODS_NUMERIC = 108, @ODS_FLOAT_NULL = 109, + @ODS_MONEY_NULL = 110, @ODS_DATETIME_NULL = 111 + + declare + @ODBC_GUID smallint, @ODBC_NTEXT smallint, + @ODBC_NVARCHAR smallint, @ODBC_NCHAR smallint, + @ODBC_BIT smallint, @ODBC_TINYINT smallint, + @ODBC_IMAGE smallint, @ODBC_VARBINARY smallint, + @ODBC_TIMESTAMP smallint, @ODBC_BINARY smallint, + @ODBC_TEXT smallint, @ODBC_CHAR smallint, + @ODBC_NUMERIC smallint, @ODBC_DECIMAL smallint, + @ODBC_MONEY smallint, @ODBC_INT smallint, + @ODBC_SMALLINT smallint, @ODBC_FLOAT smallint, + @ODBC_REAL smallint, @ODBC_VARCHAR smallint, + @ODBC_DATETIME smallint + + select + @ODBC_GUID = -11, @ODBC_NTEXT = -10, + @ODBC_NVARCHAR = -9, @ODBC_NCHAR = -8, + @ODBC_BIT = -7, @ODBC_TINYINT = -6, + @ODBC_IMAGE = -4, @ODBC_VARBINARY = -3, + @ODBC_TIMESTAMP = -2, @ODBC_BINARY = -2, + @ODBC_TEXT = -1, @ODBC_CHAR = 1, + @ODBC_NUMERIC = 2, @ODBC_DECIMAL = 3, + @ODBC_MONEY = 3, @ODBC_INT = 4, + @ODBC_SMALLINT = 5, @ODBC_FLOAT = 6, + @ODBC_REAL = 7, @ODBC_VARCHAR = 12, + @ODBC_DATETIME = + case @ODBCVer + when 2 then 11 + else 93 + end + + create table #tmp_columns + ( TABLE_CAT nvarchar(127), + TABLE_SCHEM nvarchar(127), + TABLE_NAME nvarchar(127), + COLUMN_NAME nvarchar(127), + DATA_TYPE smallint, + TYPE_NAME nvarchar(127) NULL, + COLUMN_SIZE int NULL, + BUFFER_LENGTH int NULL, + DECIMAL_DIGITS smallint NULL, + NUM_PREC_RADIX smallint NULL, + NULLABLE smallint, + REMARKS nvarchar(255) NULL, + COLUMN_DEF nvarchar(127) NULL, + SQL_DATA_TYPE smallint null, + SQL_DATETIME_SUB smallint NULL, + CHAR_OCTET_LENGTH int NULL, + ORDINAL_POSITION smallint, + IS_NULLABLE char(4), + SS_DATA_TYPE tinyint null, + COLUMN_FLAGS int) + + insert into #tmp_columns + select + TABLE_CAT = c.TABLE_CATALOG, + TABLE_SCHEM = c.TABLE_SCHEMA, + TABLE_NAME = c.TABLE_NAME, + COLUMN_NAME = c.COLUMN_NAME, + DATA_TYPE = + case c.DATA_TYPE & ~@DBTYPE_BYREF + when @DBTYPE_I2 then @ODBC_SMALLINT + when @DBTYPE_I4 then @ODBC_INT + when @DBTYPE_R4 then @ODBC_REAL + when @DBTYPE_R8 then @ODBC_FLOAT + when @DBTYPE_CY then @ODBC_MONEY + when @DBTYPE_DATE then @ODBC_DATETIME + when @DBTYPE_DBDATE then @ODBC_DATETIME + when @DBTYPE_DBTIME then @ODBC_DATETIME + when @DBTYPE_DBTIMESTAMP then @ODBC_DATETIME + when @DBTYPE_BOOL then @ODBC_BIT + when @DBTYPE_VARIANT then @ODBC_NVARCHAR + when @DBTYPE_DECIMAL then @ODBC_DECIMAL + when @DBTYPE_UI1 then @ODBC_TINYINT + when @DBTYPE_I1 then @ODBC_NUMERIC + when @DBTYPE_UI2 then @ODBC_NUMERIC + when @DBTYPE_UI4 then @ODBC_NUMERIC + when @DBTYPE_I8 then @ODBC_NUMERIC + when @DBTYPE_UI8 then @ODBC_NUMERIC + when @DBTYPE_NUMERIC then @ODBC_NUMERIC + when @DBTYPE_GUID then @ODBC_GUID + when @DBTYPE_BYTES then + case + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISLONG = @DBCOLUMNFLAGS_ISLONG ) or (p.COLUMN_SIZE > 8000) then @ODBC_IMAGE + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISROWVER) = @DBCOLUMNFLAGS_ISROWVER AND + (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH) = @DBCOLUMNFLAGS_ISFIXEDLENGTH and + p.COLUMN_SIZE = 8 + then @ODBC_TIMESTAMP + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH = @DBCOLUMNFLAGS_ISFIXEDLENGTH) + then @ODBC_BINARY + else @ODBC_VARBINARY + end + when @DBTYPE_STR then + case + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISLONG = @DBCOLUMNFLAGS_ISLONG ) or (p.COLUMN_SIZE > 8000) then @ODBC_TEXT + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH = @DBCOLUMNFLAGS_ISFIXEDLENGTH) then @ODBC_CHAR + else @ODBC_VARCHAR + end + when @DBTYPE_WSTR then + case + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISLONG = @DBCOLUMNFLAGS_ISLONG) or (p.COLUMN_SIZE > 4000) then @ODBC_NTEXT + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH = @DBCOLUMNFLAGS_ISFIXEDLENGTH) then @ODBC_NCHAR + else @ODBC_NVARCHAR + end + when @DBTYPE_BSTR then + case + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISLONG = @DBCOLUMNFLAGS_ISLONG) or (p.COLUMN_SIZE > 4000) then @ODBC_NTEXT + when (c.COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH = @DBCOLUMNFLAGS_ISFIXEDLENGTH) then @ODBC_NCHAR + else @ODBC_NVARCHAR + end + end, + TYPE_NAME = NULL, + COLUMN_SIZE = + COALESCE(c.CHARACTER_MAXIMUM_LENGTH, c.NUMERIC_PRECISION, p.COLUMN_SIZE), + BUFFER_LENGTH = isnull(c.CHARACTER_OCTET_LENGTH,0), + DECIMAL_DIGITS = c.NUMERIC_SCALE, + NUM_PREC_RADIX = NULL, + NULLABLE = convert(smallint, c.IS_NULLABLE), + REMARKS = convert(nvarchar(255),c.DESCRIPTION), + COLUMN_DEF = c.COLUMN_DEFAULT, + SQL_DATA_TYPE = NULL, + SQL_DATETIME_SUB = convert(smallint, c.DATETIME_PRECISION), + CHAR_OCTET_LENGTH = c.CHARACTER_OCTET_LENGTH, + ORDINAL_POSITION = c.ORDINAL_POSITION, + IS_NULLABLE = + case c.IS_NULLABLE + when 1 then 'YES' + else 'NO' + end, + SS_DATA_TYPE = NULL, + COLUMN_FLAGS = c.COLUMN_FLAGS + from master.dbo.SYSREMOTE_COLUMNS < + @table_server, + @table_catalog, + @table_schema, + @table_name, + @column_name > c + LEFT OUTER JOIN + master.dbo.SYSREMOTE_PROVIDER_TYPES < + @table_server > p + /* LUXOR/KAGERA dont support restricting DATA_TYPE or BEST_MATCH */ + ON c.DATA_TYPE = p.DATA_TYPE AND p.BEST_MATCH = 1 + + + update #tmp_columns + set SQL_DATA_TYPE = spt_dt.SQL_DATA_TYPE, + TYPE_NAME = + case + when #tmp_columns.DATA_TYPE = @ODBC_BINARY and (COLUMN_FLAGS & @DBCOLUMNFLAGS_ISROWVER) = @DBCOLUMNFLAGS_ISROWVER AND + (COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH) = @DBCOLUMNFLAGS_ISFIXEDLENGTH and + BUFFER_LENGTH = 8 + then 'timestamp' + when #tmp_columns.DATA_TYPE = @ODBC_BINARY and (COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH = @DBCOLUMNFLAGS_ISFIXEDLENGTH) + then 'binary' + else spt_dt.TYPE_NAME + end, + DECIMAL_DIGITS = COALESCE(DECIMAL_DIGITS,spt_dt.numeric_scale ), + NUM_PREC_RADIX = spt_dt.RADIX, + SS_DATA_TYPE = + case + when #tmp_columns.DATA_TYPE in ( @ODBC_TINYINT, @ODBC_SMALLINT, @ODBC_INT ) + and #tmp_columns.NULLABLE = 1 + then @ODS_INT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_TINYINT and #tmp_columns.NULLABLE = 0 + then @ODS_TINYINT_NOT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_SMALLINT and #tmp_columns.NULLABLE = 0 + then @ODS_SMALLINT_NOT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_INT and #tmp_columns.NULLABLE = 0 + then @ODS_INT_NOT_NULL + when #tmp_columns.DATA_TYPE in (@ODBC_REAL, @ODBC_FLOAT) and #tmp_columns.NULLABLE = 1 + then @ODS_FLOAT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_REAL and #tmp_columns.NULLABLE = 0 + then @ODS_REAL_NOT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_FLOAT and #tmp_columns.NULLABLE = 0 + then @ODS_FLOAT_NOT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_MONEY and #tmp_columns.NULLABLE = 1 + then @ODS_MONEY_NULL + when #tmp_columns.DATA_TYPE = @ODBC_MONEY and #tmp_columns.NULLABLE = 0 + then @ODS_MONEY_NOT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_DATETIME and #tmp_columns.NULLABLE = 1 + then @ODS_DATETIME_NULL + when #tmp_columns.DATA_TYPE = @ODBC_DATETIME and #tmp_columns.NULLABLE = 0 + then @ODS_DATETIME_NOT_NULL + when #tmp_columns.DATA_TYPE in (@ODBC_NTEXT, @ODBC_TEXT) then @ODS_TEXT + when #tmp_columns.DATA_TYPE = @ODBC_BIT then @ODS_BIT + when #tmp_columns.DATA_TYPE = @ODBC_DECIMAL then @ODS_DECIMAL + when #tmp_columns.DATA_TYPE = @ODBC_NUMERIC then @ODS_NUMERIC + when #tmp_columns.DATA_TYPE = @ODBC_GUID then @ODS_GUID + when #tmp_columns.DATA_TYPE = @ODBC_IMAGE then @ODS_IMAGE + when #tmp_columns.DATA_TYPE = @ODBC_TIMESTAMP + and (COLUMN_FLAGS & @DBCOLUMNFLAGS_ISROWVER) = @DBCOLUMNFLAGS_ISROWVER AND + (COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH) = @DBCOLUMNFLAGS_ISFIXEDLENGTH and + BUFFER_LENGTH = 8 + then @ODS_TIMESTAMP + when #tmp_columns.DATA_TYPE = @ODBC_BINARY and #tmp_columns.NULLABLE = 1 + and (COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH = @DBCOLUMNFLAGS_ISFIXEDLENGTH) + then @ODS_BINARY_NULL + when #tmp_columns.DATA_TYPE = @ODBC_BINARY and #tmp_columns.NULLABLE = 0 + and (COLUMN_FLAGS & @DBCOLUMNFLAGS_ISFIXEDLENGTH = @DBCOLUMNFLAGS_ISFIXEDLENGTH) + then @ODS_BINARY_NOT_NULL + when #tmp_columns.DATA_TYPE = @ODBC_VARBINARY + then @ODS_VARBINARY + when #tmp_columns.DATA_TYPE in (@ODBC_CHAR, @ODBC_NCHAR) and #tmp_columns.NULLABLE = 1 + then @ODS_CHAR_NULL + when #tmp_columns.DATA_TYPE in (@ODBC_CHAR, @ODBC_NCHAR) and #tmp_columns.NULLABLE = 0 + then @ODS_CHAR_NOT_NULL + when #tmp_columns.DATA_TYPE in (@ODBC_VARCHAR, @ODBC_NVARCHAR) then @ODS_VARCHAR + else null + end + from master.dbo.spt_datatype_info spt_dt + where spt_dt.DATA_TYPE = #tmp_columns.DATA_TYPE + and spt_dt.ODBCVer in (null,@ODBCVer) + and spt_dt.AUTO_INCREMENT in ( 0, null) + and not spt_dt.TYPE_NAME = 'smalldatetime' + + select + TABLE_CAT, TABLE_SCHEM, TABLE_NAME, + COLUMN_NAME, DATA_TYPE, TYPE_NAME, + COLUMN_SIZE, BUFFER_LENGTH, DECIMAL_DIGITS, + NUM_PREC_RADIX, NULLABLE, REMARKS, + COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, + CHAR_OCTET_LENGTH, ORDINAL_POSITION, IS_NULLABLE, + SS_DATA_TYPE + from #tmp_columns + order by TABLE_CAT, TABLE_SCHEM, TABLE_NAME, ORDINAL_POSITION + + drop table #tmp_columns + +go +grant execute on sp_columns_ex to public +go + + +if object_id('sp_table_privileges_ex', 'P') is not null + drop proc sp_table_privileges_ex +go +raiserror(15339,-1,-1,'sp_table_privileges_ex') +go +create procedure sp_table_privileges_ex( + @table_server sysname, + @table_name sysname = null, + @table_schema sysname = null, + @table_catalog sysname = null) +as + select + TABLE_CAT = TABLE_CATALOG, + TABLE_SCHEM = TABLE_SCHEMA, + TABLE_NAME = TABLE_NAME, + GRANTOR = GRANTOR, + GRANTEE = GRANTEE, + PRIVILEGE = PRIVILEGE_TYPE, + IS_GRANTABLE = + case IS_GRANTABLE + when 1 then 'YES' + when 0 then 'NO' + else null + end + from master.dbo.SYSREMOTE_TABLE_PRIVILEGES < + @table_server, + @table_catalog, + @table_schema, + @table_name > + order by TABLE_CAT, TABLE_SCHEM, TABLE_NAME, PRIVILEGE +go +grant execute on sp_table_privileges_ex to public +go + + +if object_id('sp_column_privileges_ex', 'P') is not null + drop proc sp_column_privileges_ex +go +raiserror(15339,-1,-1,'sp_column_privileges_ex') +go +create procedure sp_column_privileges_ex( + @table_server sysname, + @table_name sysname = null, + @table_schema sysname = null, + @table_catalog sysname = null, + @column_name sysname = null) +as + select + TABLE_CAT = TABLE_CATALOG, + TABLE_SCHEM = TABLE_SCHEMA, + TABLE_NAME = TABLE_NAME, + COLUMN_NAME = COLUMN_NAME, + GRANTOR = GRANTOR, + GRANTEE = GRANTEE, + PRIVILEGE = PRIVILEGE_TYPE, + IS_GRANTABLE = + case IS_GRANTABLE + when 1 then 'YES' + when 0 then 'NO' + else null + end + from master.dbo.SYSREMOTE_COLUMN_PRIVILEGES < + @table_server, + @table_catalog, + @table_schema, + @table_name, + @column_name > + order by TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, PRIVILEGE +go +grant execute on sp_column_privileges_ex to public +go + + +if object_id('sp_indexes', 'P') is not null + drop proc sp_indexes +go +raiserror(15339,-1,-1,'sp_indexes') +go +create procedure sp_indexes( + @table_server sysname, + @table_name sysname = null, + @table_schema sysname = null, + @table_catalog sysname = null, + @index_name sysname = null, + @is_unique bit = null) +as + select + TABLE_CAT = TABLE_CATALOG, + TABLE_SCHEM = TABLE_SCHEMA, + TABLE_NAME = TABLE_NAME, + NON_UNIQUE = convert(smallint, 1 - [UNIQUE]), + INDEX_QUALIFIER = TABLE_NAME, + INDEX_NAME = INDEX_NAME, + TYPE = + case [CLUSTERED] + when 1 then 1 + else 3 + end, + ORDINAL_POSITION = ORDINAL_POSITION, + COLUMN_NAME = COLUMN_NAME, + ASC_OR_DESC = + case [COLLATION] + when 1 then 'A' + when 2 then 'D' + else null + end, + CARDINALITY = CARDINALITY, + PAGES = + case [CLUSTERED] + when 1 then PAGES + else NULL + end, + FILTER_CONDITION = FILTER_CONDITION + from master.dbo.SYSREMOTE_INDEXES < + @table_server, + @table_catalog, + @table_schema, + @index_name, + NULL, /* TYPE (index type) */ + @table_name > + where @is_unique is null or @is_unique = [UNIQUE] + order by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME, ORDINAL_POSITION +go +grant execute on sp_indexes to public +go + + +if object_id('sp_foreignkeys', 'P') is not null + drop proc sp_foreignkeys +go +raiserror(15339,-1,-1,'sp_foreignkeys') +go +create procedure sp_foreignkeys( + @table_server sysname, + @pktab_name sysname = null, + @pktab_schema sysname = null, + @pktab_catalog sysname = null, + @fktab_name sysname = null, + @fktab_schema sysname = null, + @fktab_catalog sysname = null) +as + select + PKTABLE_CAT = PK_TABLE_CATALOG, + PKTABLE_SCHEM = PK_TABLE_SCHEMA, + PKTABLE_NAME = PK_TABLE_NAME, + PKCOLUMN_NAME = PK_COLUMN_NAME, + FKTABLE_CAT = FK_TABLE_CATALOG, + FKTABLE_SCHEM = FK_TABLE_SCHEMA, + FKTABLE_NAME = FK_TABLE_NAME, + FKCOLUMN_NAME = FK_COLUMN_NAME, + KEY_SEQ = ORDINAL, + UPDATE_RULE = + case UPDATE_RULE + when 'CASCADE' then 0 + when 'NO ACTION' then 1 + when 'SET NULL' then 2 + else null + end, + DELETE_RULE = + case DELETE_RULE + when 'CASCADE' then 0 + when 'NO ACTION' then 1 + when 'SET NULL' then 2 + else null + end, + FK_NAME = convert(sysname, NULL), + PK_NAME = convert(sysname, NULL), + DEFERRABILITY = convert(smallint, null) + + from master.dbo.SYSREMOTE_FOREIGN_KEYS < + @table_server, + @pktab_catalog, + @pktab_schema, + @pktab_name, + @fktab_catalog, + @fktab_schema, + @fktab_name > + order by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, KEY_SEQ +go +grant execute on sp_foreignkeys to public +go + + +if object_id('sp_primarykeys', 'P') is not null + drop proc sp_primarykeys +go +raiserror(15339,-1,-1,'sp_primarykeys') +go +create procedure sp_primarykeys( + @table_server sysname, + @table_name sysname = null, + @table_schema sysname = null, + @table_catalog sysname = null) +as + select + TABLE_CAT = TABLE_CATALOG, + TABLE_SCHEM = TABLE_SCHEMA, + TABLE_NAME = TABLE_NAME, + COLUMN_NAME = COLUMN_NAME, + KEY_SEQ = ORDINAL, + PK_NAME = convert(sysname, NULL) + from master.dbo.SYSREMOTE_PRIMARY_KEYS < + @table_server, + @table_catalog, + @table_schema, + @table_name > + order by TABLE_CAT, TABLE_SCHEM, TABLE_NAME, KEY_SEQ +go +grant execute on sp_primarykeys to public +go + +/*---------------------------- END OLEDB CATALOG PROCS ------------------------*/ + + +dump tran master with no_log +go + + + + +if (exists (select * from sysobjects + where name = 'sp_configure' and type = 'P ')) + begin + exec sp_configure 'allow updates',0 + reconfigure with override + end +go + +exec sp_MS_upd_sysobj_category 2 /* set category | 2 based on crdate. */ + +go + +if exists (select * from sysobjects where name = 'sp_check_objects' + and type = 'P ') + begin + /* Only supported on 6.0 servers */ + print '' + print 'Checking objects created by instcat.sql.' + + exec sp_check_objects 'catalog' + end +go + +print '' +print 'instcat.sql completed successfully.' +go + +set quoted_identifier off +go + +dump tran master with no_log +go +checkpoint +go +/**/ diff --git a/cadVb/OS/SYSTEM/ITIRCL.DLL b/cadVb/OS/SYSTEM/ITIRCL.DLL new file mode 100644 index 0000000..90caca9 Binary files /dev/null and b/cadVb/OS/SYSTEM/ITIRCL.DLL differ diff --git a/cadVb/OS/SYSTEM/ITSS.DLL b/cadVb/OS/SYSTEM/ITSS.DLL new file mode 100644 index 0000000..3ce353f Binary files /dev/null and b/cadVb/OS/SYSTEM/ITSS.DLL differ diff --git a/cadVb/OS/SYSTEM/MCI.SRG b/cadVb/OS/SYSTEM/MCI.SRG new file mode 100644 index 0000000..2b2be46 --- /dev/null +++ b/cadVb/OS/SYSTEM/MCI.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\B1EFCCF0-6AC1-11cf-8ADB-00AA00C00905] +@ = "qqkjvqpqmqjjpqjjvpqqkqmqvkypoqjquoun" diff --git a/cadVb/OS/SYSTEM/MCI32.DEP b/cadVb/OS/SYSTEM/MCI32.DEP new file mode 100644 index 0000000..512dcde --- /dev/null +++ b/cadVb/OS/SYSTEM/MCI32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MCI32.ocx + +; Default Dependencies ---------------------------------------------- + +[MCI32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MCI32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCI32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MCI32.ocx <0007>] +Uses1=MCIDE.dll +Uses2= + +[MCIDE.dll <0007>] +Uses1= +CABFileName=MCIDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCIDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MCI32.ocx <000C>] +Uses1=MCIFR.dll +Uses2= + +[MCIFR.dll <000C>] +Uses1= +CABFileName=MCIFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCIFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MCI32.ocx <0010>] +Uses1=MCIIT.dll +Uses2= + +[MCIIT.dll <0010>] +Uses1= +CABFileName=MCIIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCIIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MCI32.ocx <000A>] +Uses1=MCIES.dll +Uses2= + +[MCIES.dll <000A>] +Uses1= +CABFileName=MCIES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCIES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MCI32.ocx <0011>] +Uses1=MCIJP.dll +Uses2= + +[MCIJP.dll <0011>] +Uses1= +CABFileName=MCIJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCIJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MCI32.ocx <0012>] +Uses1=MCIKO.dll +Uses2= + +[MCIKO.dll <0012>] +Uses1= +CABFileName=MCIKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCIKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MCI32.ocx <0404>] +Uses1=MCICHT.dll +Uses2= + +[MCICHT.dll <0404>] +Uses1= +CABFileName=MCICHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCICHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MCI32.ocx <0804>] +Uses1=MCICHS.dll +Uses2= + +[MCICHS.dll <0804>] +Uses1= +CABFileName=MCICHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MCICHS.inf + diff --git a/cadVb/OS/SYSTEM/MCI32.OCX b/cadVb/OS/SYSTEM/MCI32.OCX new file mode 100644 index 0000000..745f2a9 Binary files /dev/null and b/cadVb/OS/SYSTEM/MCI32.OCX differ diff --git a/cadVb/OS/SYSTEM/MCICHS.DLL b/cadVb/OS/SYSTEM/MCICHS.DLL new file mode 100644 index 0000000..efbbd9b Binary files /dev/null and b/cadVb/OS/SYSTEM/MCICHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42.DLL b/cadVb/OS/SYSTEM/MFC42.DLL new file mode 100644 index 0000000..ec9ae59 Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42CHS.DLL b/cadVb/OS/SYSTEM/MFC42CHS.DLL new file mode 100644 index 0000000..422a237 Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42CHT.DLL b/cadVb/OS/SYSTEM/MFC42CHT.DLL new file mode 100644 index 0000000..85f75c7 Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42CHT.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42DEU.DLL b/cadVb/OS/SYSTEM/MFC42DEU.DLL new file mode 100644 index 0000000..6691219 Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42DEU.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42ENU.DLL b/cadVb/OS/SYSTEM/MFC42ENU.DLL new file mode 100644 index 0000000..8dbee8d Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42ENU.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42ESP.DLL b/cadVb/OS/SYSTEM/MFC42ESP.DLL new file mode 100644 index 0000000..510cdff Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42ESP.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42FRA.DLL b/cadVb/OS/SYSTEM/MFC42FRA.DLL new file mode 100644 index 0000000..c2a5007 Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42FRA.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42ITA.DLL b/cadVb/OS/SYSTEM/MFC42ITA.DLL new file mode 100644 index 0000000..eca9eaf Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42ITA.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42JPN.DLL b/cadVb/OS/SYSTEM/MFC42JPN.DLL new file mode 100644 index 0000000..938b784 Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42JPN.DLL differ diff --git a/cadVb/OS/SYSTEM/MFC42KOR.DLL b/cadVb/OS/SYSTEM/MFC42KOR.DLL new file mode 100644 index 0000000..ba6ea7d Binary files /dev/null and b/cadVb/OS/SYSTEM/MFC42KOR.DLL differ diff --git a/cadVb/OS/SYSTEM/MRT7CHS.DLL b/cadVb/OS/SYSTEM/MRT7CHS.DLL new file mode 100644 index 0000000..ed78bf8 Binary files /dev/null and b/cadVb/OS/SYSTEM/MRT7CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSADDNDR.DEP b/cadVb/OS/SYSTEM/MSADDNDR.DEP new file mode 100644 index 0000000..7003918 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSADDNDR.DEP @@ -0,0 +1,130 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSAddnDr.dll + +; Default Dependencies ---------------------------------------------- + +[MSAddnDr.Dll] +Dest=$(CommonFiles)\Designer +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1= +CABFileName=MSAddnDr.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAddnDr.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSAddnDr.DLL <0007>] +Uses1=MSAdnDE.dll +Uses2= + +[MSAdnDE.dll <0007>] +Uses1= +CABFileName=MSAdnDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSAddnDr.DLL <000C>] +Uses1=MSAdnFR.dll +Uses2= + +[MSAdnFR.dll <000C>] +Uses1= +CABFileName=MSAdnFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSAddnDr.DLL <0010>] +Uses1=MSAdnIT.dll +Uses2= + +[MSAdnIT.dll <0010>] +Uses1= +CABFileName=MSAdnIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSAddnDr.DLL <000A>] +Uses1=MSAdnES.dll +Uses2= + +[MSAdnES.dll <000A>] +Uses1= +CABFileName=MSAdnES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSAddnDr.DLL <0011>] +Uses1=MSAdnJP.dll +Uses2= + +[MSAdnJP.dll <0011>] +Uses1= +CABFileName=MSAdnJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSAddnDr.DLL <0012>] +Uses1=MSAdnKO.dll +Uses2= + +[MSAdnKO.dll <0012>] +Uses1= +CABFileName=MSAdnKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSAddnDr.DLL <0404>] +Uses1=MSAdnCHT.dll +Uses2= + +[MSAdnCHT.dll <0404>] +Uses1= +CABFileName=MSAdnCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSAddnDr.DLL <0804>] +Uses1=MSAdnCHS.dll +Uses2= + +[MSAdnCHS.dll <0804>] +Uses1= +CABFileName=MSAdnCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSAdnCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSADDNDR.DLL b/cadVb/OS/SYSTEM/MSADDNDR.DLL new file mode 100644 index 0000000..4b6574e Binary files /dev/null and b/cadVb/OS/SYSTEM/MSADDNDR.DLL differ diff --git a/cadVb/OS/SYSTEM/MSADDNDR.TLB b/cadVb/OS/SYSTEM/MSADDNDR.TLB new file mode 100644 index 0000000..0b509e4 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSADDNDR.TLB differ diff --git a/cadVb/OS/SYSTEM/MSADNCHS.DLL b/cadVb/OS/SYSTEM/MSADNCHS.DLL new file mode 100644 index 0000000..3e43296 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSADNCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSADODC.DEP b/cadVb/OS/SYSTEM/MSADODC.DEP new file mode 100644 index 0000000..34c72cb --- /dev/null +++ b/cadVb/OS/SYSTEM/MSADODC.DEP @@ -0,0 +1,132 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.71 + +; Dependencies for msadodc.ocx + +; Default Dependencies ---------------------------------------------- + +[msadodc.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.71 +Uses1=MSStdFmt.dll +Uses2=ComCat.dll +Uses3= +CABFileName=MSADODC.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSADODC.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[msadodc.ocx <0007>] +Uses1=adodcDE.dll +Uses2= + +[adodcDE.dll <0007>] +Uses1= +CABFileName=adodcDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcDE.inf + +; ** French (FR) *** +; (000C = French) +; +[msadodc.ocx <000C>] +Uses1=adodcFR.dll +Uses2= + +[adodcFR.dll <000C>] +Uses1= +CABFileName=adodcFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[msadodc.ocx <0010>] +Uses1=adodcIT.dll +Uses2= + +[adodcIT.dll <0010>] +Uses1= +CABFileName=adodcIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[msadodc.ocx <000A>] +Uses1=adodcES.dll +Uses2= + +[adodcES.dll <000A>] +Uses1= +CABFileName=adodcES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[msadodc.ocx <0011>] +Uses1=adodcJP.dll +Uses2= + +[adodcJP.dll <0011>] +Uses1= +CABFileName=adodcJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[msadodc.ocx <0012>] +Uses1=adodcKO.dll +Uses2= + +[adodcKO.dll <0012>] +Uses1= +CABFileName=adodcKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[msadodc.ocx <0404>] +Uses1=adodcCHT.dll +Uses2= + +[adodcCHT.dll <0404>] +Uses1= +CABFileName=adodcCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[msadodc.ocx <0804>] +Uses1=adodcCHS.dll +Uses2= + +[adodcCHS.dll <0804>] +Uses1= +CABFileName=adodcCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=adodcCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSADODC.OCX b/cadVb/OS/SYSTEM/MSADODC.OCX new file mode 100644 index 0000000..115a176 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSADODC.OCX differ diff --git a/cadVb/OS/SYSTEM/MSBIND.DEP b/cadVb/OS/SYSTEM/MSBIND.DEP new file mode 100644 index 0000000..d144521 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSBIND.DEP @@ -0,0 +1,26 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSBind.Dll + +; Default Dependencies ---------------------------------------------- + +[MSBind.Dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2=MSStdFmt.Dll +Uses3= +CABFileName=MSBind.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSBind.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + diff --git a/cadVb/OS/SYSTEM/MSBIND.DLL b/cadVb/OS/SYSTEM/MSBIND.DLL new file mode 100644 index 0000000..889e4d1 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSBIND.DLL differ diff --git a/cadVb/OS/SYSTEM/MSCC2CHS.DLL b/cadVb/OS/SYSTEM/MSCC2CHS.DLL new file mode 100644 index 0000000..a30d0c6 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCC2CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSCDRUN.DEP b/cadVb/OS/SYSTEM/MSCDRUN.DEP new file mode 100644 index 0000000..9b53b2c --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCDRUN.DEP @@ -0,0 +1,132 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Run-time Dependencies for MSCDRun.dll (MSConDes.dll) + +; Default Dependencies ------------------------------------------------------ + +[MSCDRun.dll] +Dest=$(CommonFiles)\Designer +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=MSRdo20.dll +Uses2=ComCat.dll +Uses3= +CABFileName=MSCDRun.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCDRun.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSCDRun.dll <0007>] +Uses1=ConnDDE.dll +Uses2= + +[ConnDDE.dll <0007>] +Uses1= +CABFileName=ConnDDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSCDRun.dll <000C>] +Uses1=ConnDFR.dll +Uses2= + +[ConnDFR.dll <000C>] +Uses1= +CABFileName=ConnDFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSCDRun.dll <0010>] +Uses1=ConnDIT.dll +Uses2= + +[ConnDIT.dll <0010>] +Uses1= +CABFileName=ConnDIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSCDRun.dll <000A>] +Uses1=ConnDES.dll +Uses2= + +[ConnDES.dll <000A>] +Uses1= +CABFileName=ConnDES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSCDRun.dll <0011>] +Uses1=ConnDJP.dll +Uses2= + +[ConnDJP.dll <0011>] +Uses1= +CABFileName=ConnDJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSCDRun.dll <0012>] +Uses1=ConnDKO.dll +Uses2= + +[ConnDKO.dll <0012>] +Uses1= +CABFileName=ConnDKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSCDRun.dll <0404>] +Uses1=ConnDCHT.dll +Uses2= + +[ConnDCHT.dll <0404>] +Uses1= +CABFileName=ConnDCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSCDRun.dll <0804>] +Uses1=ConnDCHS.dll +Uses2= + +[ConnDCHS.dll <0804>] +Uses1= +CABFileName=ConnDCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ConnDCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSCDRUN.DLL b/cadVb/OS/SYSTEM/MSCDRUN.DLL new file mode 100644 index 0000000..cfcb214 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCDRUN.DLL differ diff --git a/cadVb/OS/SYSTEM/MSCH2CHS.DLL b/cadVb/OS/SYSTEM/MSCH2CHS.DLL new file mode 100644 index 0000000..aea29b3 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCH2CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSCHRT20.DEP b/cadVb/OS/SYSTEM/MSCHRT20.DEP new file mode 100644 index 0000000..560c8bb --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCHRT20.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.77 + +; Dependencies for MSChrt20.ocx + +; Default Dependencies ---------------------------------------------- + +[MSChrt20.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.77 +Uses1=ComCat.dll +Uses2= +CABFileName=MSChrt20.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSChrt20.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSChrt20.ocx <0007>] +Uses1=MSCh2DE.dll +Uses2= + +[MSCh2DE.dll <0007>] +Uses1= +CABFileName=MSCh2DE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2DE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSChrt20.ocx <000C>] +Uses1=MSCh2FR.dll +Uses2= + +[MSCh2FR.dll <000C>] +Uses1= +CABFileName=MSCh2FR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2FR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSChrt20.ocx <0010>] +Uses1=MSCh2IT.dll +Uses2= + +[MSCh2IT.dll <0010>] +Uses1= +CABFileName=MSCh2IT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2IT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSChrt20.ocx <000A>] +Uses1=MSCh2ES.dll +Uses2= + +[MSCh2ES.dll <000A>] +Uses1= +CABFileName=MSCh2ES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2ES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSChrt20.ocx <0011>] +Uses1=MSCh2JP.dll +Uses2= + +[MSCh2JP.dll <0011>] +Uses1= +CABFileName=MSCh2JP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2JP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSChrt20.ocx <0012>] +Uses1=MSCh2KO.dll +Uses2= + +[MSCh2KO.dll <0012>] +Uses1= +CABFileName=MSCh2KO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2KO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSChrt20.ocx <0404>] +Uses1=MSCh2CHT.dll +Uses2= + +[MSCh2CHT.dll <0404>] +Uses1= +CABFileName=MSCh2CHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2CHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSChrt20.ocx <0804>] +Uses1=MSCh2CHS.dll +Uses2= + +[MSCh2CHS.dll <0804>] +Uses1= +CABFileName=MSCh2CHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCh2CHS.inf + diff --git a/cadVb/OS/SYSTEM/MSCHRT20.OCX b/cadVb/OS/SYSTEM/MSCHRT20.OCX new file mode 100644 index 0000000..08a2801 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCHRT20.OCX differ diff --git a/cadVb/OS/SYSTEM/MSCHRT20.SRG b/cadVb/OS/SYSTEM/MSCHRT20.SRG new file mode 100644 index 0000000..e039e78 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCHRT20.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\12B142A4-BD51-11d1-8C08-0000F8754DA1] +@ = "aadhgafabafajhchnbchehfambfbbachmfmb" diff --git a/cadVb/OS/SYSTEM/MSCMCCHS.DLL b/cadVb/OS/SYSTEM/MSCMCCHS.DLL new file mode 100644 index 0000000..f36cbfb Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCMCCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSCOMCHS.DLL b/cadVb/OS/SYSTEM/MSCOMCHS.DLL new file mode 100644 index 0000000..72b5033 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCOMCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSCOMCT2.DEP b/cadVb/OS/SYSTEM/MSCOMCT2.DEP new file mode 100644 index 0000000..99541a1 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCOMCT2.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.77 + +; Dependencies for MSComCt2.ocx + +; Default Dependencies ---------------------------------------------- + +[MSComCt2.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.77 +Uses1=ComCat.dll +Uses2= +CABFileName=MSComCt2.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComCt2.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSComCt2.ocx <0007>] +Uses1=MSCc2DE.dll +Uses2= + +[MSCc2DE.dll <0007>] +Uses1= +CABFileName=MSCc2DE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2DE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSComCt2.ocx <000C>] +Uses1=MSCc2FR.dll +Uses2= + +[MSCc2FR.dll <000C>] +Uses1= +CABFileName=MSCc2FR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2FR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSComCt2.ocx <0010>] +Uses1=MSCc2IT.dll +Uses2= + +[MSCc2IT.dll <0010>] +Uses1= +CABFileName=MSCc2IT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2IT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSComCt2.ocx <000A>] +Uses1=MSCc2ES.dll +Uses2= + +[MSCc2ES.dll <000A>] +Uses1= +CABFileName=MSCc2ES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2ES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSComCt2.ocx <0011>] +Uses1=MSCc2JP.dll +Uses2= + +[MSCc2JP.dll <0011>] +Uses1= +CABFileName=MSCc2JP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2JP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSComCt2.ocx <0012>] +Uses1=MSCc2KO.dll +Uses2= + +[MSCc2KO.dll <0012>] +Uses1= +CABFileName=MSCc2KO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2KO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSComCt2.ocx <0404>] +Uses1=MSCc2CHT.dll +Uses2= + +[MSCc2CHT.dll <0404>] +Uses1= +CABFileName=MSCc2CHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2CHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSComCt2.ocx <0804>] +Uses1=MSCc2CHS.dll +Uses2= + +[MSCc2CHS.dll <0804>] +Uses1= +CABFileName=MSCc2CHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCc2CHS.inf + diff --git a/cadVb/OS/SYSTEM/MSCOMCT2.OCX b/cadVb/OS/SYSTEM/MSCOMCT2.OCX new file mode 100644 index 0000000..c34b591 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCOMCT2.OCX differ diff --git a/cadVb/OS/SYSTEM/MSCOMCT2.SRG b/cadVb/OS/SYSTEM/MSCOMCT2.SRG new file mode 100644 index 0000000..835b389 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCOMCT2.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\4F86BADF-9F77-11d1-B1B7-0000F8753F5D] +@ = "iplpwpnippopupiivjrioppisjsjlpiiokuj" diff --git a/cadVb/OS/SYSTEM/MSCOMCTL.DEP b/cadVb/OS/SYSTEM/MSCOMCTL.DEP new file mode 100644 index 0000000..9c91801 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCOMCTL.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.77 + +; Dependencies for MSComCtl.ocx + +; Default Dependencies ---------------------------------------------- + +[MSComCtl.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.77 +Uses1=ComCat.dll +Uses2= +CABFileName=MSComCtl.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComCtl.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSComCtl.ocx <0007>] +Uses1=MSCmCDE.dll +Uses2= + +[MSCmCDE.dll <0007>] +Uses1= +CABFileName=MSCmCDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSComCtl.ocx <000C>] +Uses1=MSCmCFR.dll +Uses2= + +[MSCmCFR.dll <000C>] +Uses1= +CABFileName=MSCmCFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSComCtl.ocx <0010>] +Uses1=MSCmCIT.dll +Uses2= + +[MSCmCIT.dll <0010>] +Uses1= +CABFileName=MSCmCIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSComCtl.ocx <000A>] +Uses1=MSCmCES.dll +Uses2= + +[MSCmCES.dll <000A>] +Uses1= +CABFileName=MSCmCES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSComCtl.ocx <0011>] +Uses1=MSCmCJP.dll +Uses2= + +[MSCmCJP.dll <0011>] +Uses1= +CABFileName=MSCmCJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSComCtl.ocx <0012>] +Uses1=MSCmCKO.dll +Uses2= + +[MSCmCKO.dll <0012>] +Uses1= +CABFileName=MSCmCKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSComCtl.ocx <0404>] +Uses1=MSCmCCHT.dll +Uses2= + +[MSCmCCHT.dll <0404>] +Uses1= +CABFileName=MSCmCCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSComCtl.ocx <0804>] +Uses1=MSCmCCHS.dll +Uses2= + +[MSCmCCHS.dll <0804>] +Uses1= +CABFileName=MSCmCCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSCmCCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSCOMCTL.OCX b/cadVb/OS/SYSTEM/MSCOMCTL.OCX new file mode 100644 index 0000000..5d96930 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCOMCTL.OCX differ diff --git a/cadVb/OS/SYSTEM/MSCOMCTL.SRG b/cadVb/OS/SYSTEM/MSCOMCTL.SRG new file mode 100644 index 0000000..252962e --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCOMCTL.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1] +@ = "knlggnmntgggrninthpgmnngrhqhnnjnslsh" diff --git a/cadVb/OS/SYSTEM/MSCOMM.SRG b/cadVb/OS/SYSTEM/MSCOMM.SRG new file mode 100644 index 0000000..51ff210 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCOMM.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905] +@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" diff --git a/cadVb/OS/SYSTEM/MSCOMM32.DEP b/cadVb/OS/SYSTEM/MSCOMM32.DEP new file mode 100644 index 0000000..f9bb074 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSCOMM32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSComm32.ocx + +; Default Dependencies ---------------------------------------------- + +[MSComm32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSComm32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComm32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSComm32.ocx <0007>] +Uses1=MSComDE.dll +Uses2= + +[MSComDE.dll <0007>] +Uses1= +CABFileName=MSComDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSComm32.ocx <000C>] +Uses1=MSComFR.dll +Uses2= + +[MSComFR.dll <000C>] +Uses1= +CABFileName=MSComFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSComm32.ocx <0010>] +Uses1=MSComIT.dll +Uses2= + +[MSComIT.dll <0010>] +Uses1= +CABFileName=MSComIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSComm32.ocx <000A>] +Uses1=MSComES.dll +Uses2= + +[MSComES.dll <000A>] +Uses1= +CABFileName=MSComES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSComm32.ocx <0011>] +Uses1=MSComJP.dll +Uses2= + +[MSComJP.dll <0011>] +Uses1= +CABFileName=MSComJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSComm32.ocx <0012>] +Uses1=MSComKO.dll +Uses2= + +[MSComKO.dll <0012>] +Uses1= +CABFileName=MSComKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSComm32.ocx <0404>] +Uses1=MSComCHT.dll +Uses2= + +[MSComCHT.dll <0404>] +Uses1= +CABFileName=MSComCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSComm32.ocx <0804>] +Uses1=MSComCHS.dll +Uses2= + +[MSComCHS.dll <0804>] +Uses1= +CABFileName=MSComCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSComCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSCOMM32.OCX b/cadVb/OS/SYSTEM/MSCOMM32.OCX new file mode 100644 index 0000000..1fc5fb4 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCOMM32.OCX differ diff --git a/cadVb/OS/SYSTEM/MSCONDES.DLL b/cadVb/OS/SYSTEM/MSCONDES.DLL new file mode 100644 index 0000000..8d14c73 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCONDES.DLL differ diff --git a/cadVb/OS/SYSTEM/MSCPXL32.DLL b/cadVb/OS/SYSTEM/MSCPXL32.DLL new file mode 100644 index 0000000..31e5303 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSCPXL32.DLL differ diff --git a/cadVb/OS/SYSTEM/MSDATGRD.DEP b/cadVb/OS/SYSTEM/MSDATGRD.DEP new file mode 100644 index 0000000..5e63073 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSDATGRD.DEP @@ -0,0 +1,132 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSDatGrd.ocx + +; Default Dependencies ---------------------------------------------- + +[MSDatGrd.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2=MSStdFmt.dll +Uses3= +CABFileName=MSDatGrd.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSDatGrd.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSDatGrd.ocx <0007>] +Uses1=DatGdDE.dll +Uses2= + +[DatGdDE.dll <0007>] +Uses1= +CABFileName=DatGdDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSDatGrd.ocx <000C>] +Uses1=DatGdFR.dll +Uses2= + +[DatGdFR.dll <000C>] +Uses1= +CABFileName=DatGdFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSDatGrd.ocx <0010>] +Uses1=DatGdIT.dll +Uses2= + +[DatGdIT.dll <0010>] +Uses1= +CABFileName=DatGdIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSDatGrd.ocx <000A>] +Uses1=DatGdES.dll +Uses2= + +[DatGdES.dll <000A>] +Uses1= +CABFileName=DatGdES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSDatGrd.ocx <0011>] +Uses1=DatGdJP.dll +Uses2= + +[DatGdJP.dll <0011>] +Uses1= +CABFileName=DatGdJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSDatGrd.ocx <0012>] +Uses1=DatGdKO.dll +Uses2= + +[DatGdKO.dll <0012>] +Uses1= +CABFileName=DatGdKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSDatGrd.ocx <0404>] +Uses1=DatGdCHT.dll +Uses2= + +[DatGdCHT.dll <0404>] +Uses1= +CABFileName=DatGdCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSDatGrd.ocx <0804>] +Uses1=DatGdCHS.dll +Uses2= + +[DatGdCHS.dll <0804>] +Uses1= +CABFileName=DatGdCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatGdCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSDATGRD.OCX b/cadVb/OS/SYSTEM/MSDATGRD.OCX new file mode 100644 index 0000000..f4bf759 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSDATGRD.OCX differ diff --git a/cadVb/OS/SYSTEM/MSDATGRD.SRG b/cadVb/OS/SYSTEM/MSDATGRD.SRG new file mode 100644 index 0000000..c962341 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSDATGRD.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\CDE57A55-8B86-11D0-b3C6-00A0C90AEA82] +@ = "ekpkhddkjkekpdjkqemkfkldoeoefkfdjfqe" diff --git a/cadVb/OS/SYSTEM/MSDATLST.DEP b/cadVb/OS/SYSTEM/MSDATLST.DEP new file mode 100644 index 0000000..ce629d2 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSDATLST.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSDatLst.ocx + +; Default Dependencies ---------------------------------------------- + +[MSDatLst.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSDatLst.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSDatLst.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSDatLst.ocx <0007>] +Uses1=DatLsDE.dll +Uses2= + +[DatLsDE.dll <0007>] +Uses1= +CABFileName=DatLsDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSDatLst.ocx <000C>] +Uses1=DatLsFR.dll +Uses2= + +[DatLsFR.dll <000C>] +Uses1= +CABFileName=DatLsFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSDatLst.ocx <0010>] +Uses1=DatLsIT.dll +Uses2= + +[DatLsIT.dll <0010>] +Uses1= +CABFileName=DatLsIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSDatLst.ocx <000A>] +Uses1=DatLsES.dll +Uses2= + +[DatLsES.dll <000A>] +Uses1= +CABFileName=DatLsES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSDatLst.ocx <0011>] +Uses1=DatLsJP.dll +Uses2= + +[DatLsJP.dll <0011>] +Uses1= +CABFileName=DatLsJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSDatLst.ocx <0012>] +Uses1=DatLsKO.dll +Uses2= + +[DatLsKO.dll <0012>] +Uses1= +CABFileName=DatLsKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSDatLst.ocx <0404>] +Uses1=DatLsCHT.dll +Uses2= + +[DatLsCHT.dll <0404>] +Uses1= +CABFileName=DatLsCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSDatLst.ocx <0804>] +Uses1=DatLsCHS.dll +Uses2= + +[DatLsCHS.dll <0804>] +Uses1= +CABFileName=DatLsCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatLsCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSDATLST.OCX b/cadVb/OS/SYSTEM/MSDATLST.OCX new file mode 100644 index 0000000..94ff89e Binary files /dev/null and b/cadVb/OS/SYSTEM/MSDATLST.OCX differ diff --git a/cadVb/OS/SYSTEM/MSDATREP.DEP b/cadVb/OS/SYSTEM/MSDATREP.DEP new file mode 100644 index 0000000..999448e --- /dev/null +++ b/cadVb/OS/SYSTEM/MSDATREP.DEP @@ -0,0 +1,132 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies + +; Default Dependencies ---------------------------------------------- + +[MSDatRep.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2=MSStdFmt.dll +Uses3=MSBind.dll +CABFileName=MSDatRep.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSDatRep.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSDatRep.ocx <0007>] +Uses1=DatRpDE.dll +Uses2= + +[DatRpDE.dll <0007>] +Uses1= +CABFileName=DatRpDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSDatRep.ocx <000C>] +Uses1=DatRpFR.dll +Uses2= + +[DatRpFR.dll <000C>] +Uses1= +CABFileName=DatRpFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSDatRep.ocx <0010>] +Uses1=DatRpIT.dll +Uses2= + +[DatRpIT.dll <0010>] +Uses1= +CABFileName=DatRpIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSDatRep.ocx <000A>] +Uses1=DatRpES.dll +Uses2= + +[DatRpES.dll <000A>] +Uses1= +CABFileName=DatRpES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSDatRep.ocx <0011>] +Uses1=DatRpJP.dll +Uses2= + +[DatRpJP.dll <0011>] +Uses1= +CABFileName=DatRpJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSDatRep.ocx <0012>] +Uses1=DatRpKO.dll +Uses2= + +[DatRpKO.dll <0012>] +Uses1= +CABFileName=DatRpKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSDatRep.ocx <0404>] +Uses1=DatRpCHT.dll +Uses2= + +[DatRpCHT.dll <0404>] +Uses1= +CABFileName=DatRpCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSDatRep.ocx <0804>] +Uses1=DatRpCHS.dll +Uses2= + +[DatRpCHS.dll <0804>] +Uses1= +CABFileName=DatRpCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DatRpCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSDATREP.OCX b/cadVb/OS/SYSTEM/MSDATREP.OCX new file mode 100644 index 0000000..b9884cd Binary files /dev/null and b/cadVb/OS/SYSTEM/MSDATREP.OCX differ diff --git a/cadVb/OS/SYSTEM/MSDATREP.SRG b/cadVb/OS/SYSTEM/MSDATREP.SRG new file mode 100644 index 0000000..1c9126f --- /dev/null +++ b/cadVb/OS/SYSTEM/MSDATREP.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\D015B071-D2ED-11d0-A31A-00AA00688B10] +@ = "gjdcfjpcmjicjcdcoihcechjlioiccechepd" diff --git a/cadVb/OS/SYSTEM/MSDBRPT.DLL b/cadVb/OS/SYSTEM/MSDBRPT.DLL new file mode 100644 index 0000000..7bf868a Binary files /dev/null and b/cadVb/OS/SYSTEM/MSDBRPT.DLL differ diff --git a/cadVb/OS/SYSTEM/MSDBRPT.SRG b/cadVb/OS/SYSTEM/MSDBRPT.SRG new file mode 100644 index 0000000..8c833ba --- /dev/null +++ b/cadVb/OS/SYSTEM/MSDBRPT.SRG @@ -0,0 +1,3 @@ +[HKEY_CLASSES_ROOT\Licenses\9DF1A470-BA8E-11D0-849C-00A0C90DC8A9] +@ = "cchcqjejhcgcqcfjpdfcdjkckiqikchcojpd" + diff --git a/cadVb/OS/SYSTEM/MSDBRPTR.DEP b/cadVb/OS/SYSTEM/MSDBRPTR.DEP new file mode 100644 index 0000000..b0f47de --- /dev/null +++ b/cadVb/OS/SYSTEM/MSDBRPTR.DEP @@ -0,0 +1,132 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Run-time Dependencies for MSDBRptR.dll (MSDBRpt.dll) + +; Default Dependencies ------------------------------------------------------ + +[MSDBRptR.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=MSStdFmt.dll +Uses2=ComCat.dll +Uses3= +CABFileName=MSDBRptR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSDBRptR.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSDBRptR.dll <0007>] +Uses1=DBRpRDE.dll +Uses2= + +[DBRpRDE.dll <0007>] +Uses1= +CABFileName=DBRpRDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSDBRptR.dll <000C>] +Uses1=DBRpRFR.dll +Uses2= + +[DBRpRFR.dll <000C>] +Uses1= +CABFileName=DBRpRFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSDBRptR.dll <0010>] +Uses1=DBRpRIT.dll +Uses2= + +[DBRpRIT.dll <0010>] +Uses1= +CABFileName=DBRpRIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSDBRptR.dll <000A>] +Uses1=DBRpRES.dll +Uses2= + +[DBRpRES.dll <000A>] +Uses1= +CABFileName=DBRpRES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSDBRptR.dll <0011>] +Uses1=DBRpRJP.dll +Uses2= + +[DBRpRJP.dll <0011>] +Uses1= +CABFileName=DBRpRJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSDBRptR.dll <0012>] +Uses1=DBRpRKO.dll +Uses2= + +[DBRpRKO.dll <0012>] +Uses1= +CABFileName=DBRpRKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSDBRptR.dll <0404>] +Uses1=DBRpRCHT.dll +Uses2= + +[DBRpRCHT.dll <0404>] +Uses1= +CABFileName=DBRpRCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSDBRptR.dll <0804>] +Uses1=DBRpRCHS.dll +Uses2= + +[DBRpRCHS.dll <0804>] +Uses1= +CABFileName=DBRpRCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=DBRpRCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSDBRPTR.DLL b/cadVb/OS/SYSTEM/MSDBRPTR.DLL new file mode 100644 index 0000000..1185701 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSDBRPTR.DLL differ diff --git a/cadVb/OS/SYSTEM/MSEXCH35.DLL b/cadVb/OS/SYSTEM/MSEXCH35.DLL new file mode 100644 index 0000000..a95ee2d Binary files /dev/null and b/cadVb/OS/SYSTEM/MSEXCH35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSEXCL35.DLL b/cadVb/OS/SYSTEM/MSEXCL35.DLL new file mode 100644 index 0000000..0f4eac9 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSEXCL35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSFLXGRD.DEP b/cadVb/OS/SYSTEM/MSFLXGRD.DEP new file mode 100644 index 0000000..fbc2c98 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSFLXGRD.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MsFlxGrd.ocx + +; Default Dependencies ---------------------------------------------- + +[MsFlxGrd.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MsFlxGrd.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsFlxGrd.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MsFlxGrd.ocx <0007>] +Uses1=FlxGdDE.dll +Uses2= + +[FlxGdDE.dll <0007>] +Uses1= +CABFileName=FlxGdDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MsFlxGrd.ocx <000C>] +Uses1=FlxGdFR.dll +Uses2= + +[FlxGdFR.dll <000C>] +Uses1= +CABFileName=FlxGdFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MsFlxGrd.ocx <0010>] +Uses1=FlxGdIT.dll +Uses2= + +[FlxGdIT.dll <0010>] +Uses1= +CABFileName=FlxGdIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MsFlxGrd.ocx <000A>] +Uses1=FlxGdES.dll +Uses2= + +[FlxGdES.dll <000A>] +Uses1= +CABFileName=FlxGdES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MsFlxGrd.ocx <0011>] +Uses1=FlxGdJP.dll +Uses2= + +[FlxGdJP.dll <0011>] +Uses1= +CABFileName=FlxGdJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MsFlxGrd.ocx <0012>] +Uses1=FlxGdKO.dll +Uses2= + +[FlxGdKO.dll <0012>] +Uses1= +CABFileName=FlxGdKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MsFlxGrd.ocx <0404>] +Uses1=FlxGdCHT.dll +Uses2= + +[FlxGdCHT.dll <0404>] +Uses1= +CABFileName=FlxGdCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MsFlxGrd.ocx <0804>] +Uses1=FlxGdCHS.dll +Uses2= + +[FlxGdCHS.dll <0804>] +Uses1= +CABFileName=FlxGdCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=FlxGdCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSFLXGRD.OCX b/cadVb/OS/SYSTEM/MSFLXGRD.OCX new file mode 100644 index 0000000..3467707 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSFLXGRD.OCX differ diff --git a/cadVb/OS/SYSTEM/MSHFGCHS.DLL b/cadVb/OS/SYSTEM/MSHFGCHS.DLL new file mode 100644 index 0000000..1d4585b Binary files /dev/null and b/cadVb/OS/SYSTEM/MSHFGCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSHFLXGD.DEP b/cadVb/OS/SYSTEM/MSHFLXGD.DEP new file mode 100644 index 0000000..3526989 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSHFLXGD.DEP @@ -0,0 +1,132 @@ + +; Dependency file for setup wizards. + +[Version] +Version=06.00.30.05 + +; Dependencies for MSHFlxGd.ocx + +; Default Dependencies ---------------------------------------------- + +[MSHFlxGd.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=06.00.30.05 +Uses1=ComCat.dll +Uses2=MSStdFmt.dll +Uses3= +CABFileName=MSHFlxGd.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFlxGd.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSHFlxGd.ocx <0007>] +Uses1=MSHFGDE.dll +Uses2= + +[MSHFGDE.dll <0007>] +Uses1= +CABFileName=MSHFGDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSHFlxGd.ocx <000C>] +Uses1=MSHFGFR.dll +Uses2= + +[MSHFGFR.dll <000C>] +Uses1= +CABFileName=MSHFGFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSHFlxGd.ocx <0010>] +Uses1=MSHFGIT.dll +Uses2= + +[MSHFGIT.dll <0010>] +Uses1= +CABFileName=MSHFGIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSHFlxGd.ocx <000A>] +Uses1=MSHFGES.dll +Uses2= + +[MSHFGES.dll <000A>] +Uses1= +CABFileName=MSHFGES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGES.inf + +; ** Japanese (JPN) *** +; (0011 = Japanese) +; +[MSHFlxGd.ocx <0011>] +Uses1=MSHFGJPN.dll +Uses2= + +[MSHFGJPN.dll <0011>] +Uses1= +CABFileName=MSHFGJPN.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGJPN.inf + +; ** Korean (KOR) *** +; (0012 = Korean) +; +[MSHFlxGd.ocx <0012>] +Uses1=MSHFGKOR.dll +Uses2= + +[MSHFGKOR.dll <0012>] +Uses1= +CABFileName=MSHFGKOR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGKOR.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSHFlxGd.ocx <0404>] +Uses1=MSHFGCHT.dll +Uses2= + +[MSHFGCHT.dll <0404>] +Uses1= +CABFileName=MSHFGCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSHFlxGd.ocx <0804>] +Uses1=MSHFGCHS.dll +Uses2= + +[MSHFGCHS.dll <0804>] +Uses1= +CABFileName=MSHFGCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHFGCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSHFLXGD.OCX b/cadVb/OS/SYSTEM/MSHFLXGD.OCX new file mode 100644 index 0000000..866a35b Binary files /dev/null and b/cadVb/OS/SYSTEM/MSHFLXGD.OCX differ diff --git a/cadVb/OS/SYSTEM/MSHFLXGD.SRG b/cadVb/OS/SYSTEM/MSHFLXGD.SRG new file mode 100644 index 0000000..eb55a33 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSHFLXGD.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\1F3D5522-3F42-11d1-B2FA-00A0C908FB55] +@ = "gcfjdjecpchcncdjpdejijgcrdoijjfcieod" diff --git a/cadVb/OS/SYSTEM/MSHTMPGD.DLL b/cadVb/OS/SYSTEM/MSHTMPGD.DLL new file mode 100644 index 0000000..3d3ae09 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSHTMPGD.DLL differ diff --git a/cadVb/OS/SYSTEM/MSHTMPGR.DEP b/cadVb/OS/SYSTEM/MSHTMPGR.DEP new file mode 100644 index 0000000..e75a50f --- /dev/null +++ b/cadVb/OS/SYSTEM/MSHTMPGR.DEP @@ -0,0 +1,130 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSHTMPGR.dll + +; Default Dependencies ---------------------------------------------- + +[MSHtmPgR.Dll] +Dest=$(CommonFiles)\Designer +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1= +CABFileName=MSHtmPgR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSHtmPgR.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSHtmPgR.DLL <0007>] +Uses1=HtmPrDE.dll +Uses2= + +[HtmPrDE.dll <0007>] +Uses1= +CABFileName=HtmPrDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSHtmPgR.DLL <000C>] +Uses1=HtmPrFR.dll +Uses2= + +[HtmPrFR.dll <000C>] +Uses1= +CABFileName=HtmPrFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSHtmPgR.DLL <0010>] +Uses1=HtmPrIT.dll +Uses2= + +[HtmPrIT.dll <0010>] +Uses1= +CABFileName=HtmPrIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSHtmPgR.DLL <000A>] +Uses1=HtmPrES.dll +Uses2= + +[HtmPrES.dll <000A>] +Uses1= +CABFileName=HtmPrES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSHtmPgR.DLL <0011>] +Uses1=HtmPrJP.dll +Uses2= + +[HtmPrJP.dll <0011>] +Uses1= +CABFileName=HtmPrJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSHtmPgR.DLL <0012>] +Uses1=HtmPrKO.dll +Uses2= + +[HtmPrKO.dll <0012>] +Uses1= +CABFileName=HtmPrKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSHtmPgR.DLL <0404>] +Uses1=HtmPrCHT.dll +Uses2= + +[HtmPrCHT.dll <0404>] +Uses1= +CABFileName=HtmPrCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSHtmPgR.DLL <0804>] +Uses1=HtmPrCHS.dll +Uses2= + +[HtmPrCHS.dll <0804>] +Uses1= +CABFileName=HtmPrCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=HtmPrCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSHTMPGR.DLL b/cadVb/OS/SYSTEM/MSHTMPGR.DLL new file mode 100644 index 0000000..316bf31 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSHTMPGR.DLL differ diff --git a/cadVb/OS/SYSTEM/MSINET.DEP b/cadVb/OS/SYSTEM/MSINET.DEP new file mode 100644 index 0000000..2953dcf --- /dev/null +++ b/cadVb/OS/SYSTEM/MSINET.DEP @@ -0,0 +1,129 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Default Dependencies ---------------------------------------------- + +[MSInet.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSInet.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSInet.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSInet.ocx <0007>] +Uses1=InetDE.dll +Uses2= + +[InetDE.dll <0007>] +Uses1= +CABFileName=InetDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSInet.ocx <000C>] +Uses1=InetFR.dll +Uses2= + +[InetFR.dll <000C>] +Uses1= +CABFileName=InetFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSInet.ocx <0010>] +Uses1=InetIT.dll +Uses2= + +[InetIT.dll <0010>] +Uses1= +CABFileName=InetIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSInet.ocx <000A>] +Uses1=InetES.dll +Uses2= + +[InetES.dll <000A>] +Uses1= +CABFileName=InetES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSInet.ocx <0011>] +Uses1=InetJP.dll +Uses2= + +[InetJP.dll <0011>] +Uses1= +CABFileName=InetJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSInet.ocx <0012>] +Uses1=InetKO.dll +Uses2= + +[InetKO.dll <0012>] +Uses1= +CABFileName=InetKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSInet.ocx <0404>] +Uses1=InetCHT.dll +Uses2= + +[InetCHT.dll <0404>] +Uses1= +CABFileName=InetCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSInet.ocx <0804>] +Uses1=InetCHS.dll +Uses2= + +[InetCHS.dll <0804>] +Uses1= +CABFileName=InetCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=InetCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSINET.OCX b/cadVb/OS/SYSTEM/MSINET.OCX new file mode 100644 index 0000000..cfbbc6f Binary files /dev/null and b/cadVb/OS/SYSTEM/MSINET.OCX differ diff --git a/cadVb/OS/SYSTEM/MSJET35.DLL b/cadVb/OS/SYSTEM/MSJET35.DLL new file mode 100644 index 0000000..2107c10 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSJET35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSJINT35.DLL b/cadVb/OS/SYSTEM/MSJINT35.DLL new file mode 100644 index 0000000..9a92545 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSJINT35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSJT4JLT.DLL b/cadVb/OS/SYSTEM/MSJT4JLT.DLL new file mode 100644 index 0000000..bf8fe74 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSJT4JLT.DLL differ diff --git a/cadVb/OS/SYSTEM/MSJTER35.DLL b/cadVb/OS/SYSTEM/MSJTER35.DLL new file mode 100644 index 0000000..5993f74 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSJTER35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSLTUS35.DLL b/cadVb/OS/SYSTEM/MSLTUS35.DLL new file mode 100644 index 0000000..4d48f80 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSLTUS35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSMAPI.SRG b/cadVb/OS/SYSTEM/MSMAPI.SRG new file mode 100644 index 0000000..6ab0c4e --- /dev/null +++ b/cadVb/OS/SYSTEM/MSMAPI.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\899B3E80-6AC6-11cf-8ADB-00AA00C00905] +@ = "wjsjjjlqmjpjrjjjvpqqkqmqukypoqjquoun" diff --git a/cadVb/OS/SYSTEM/MSMAPI32.DEP b/cadVb/OS/SYSTEM/MSMAPI32.DEP new file mode 100644 index 0000000..d8fd6c0 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSMAPI32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSMapi32.ocx + +; Default Dependencies ---------------------------------------------- + +[MSMapi32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSMapi32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMapi32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSMapi32.ocx <0007>] +Uses1=MSMpiDE.dll +Uses2= + +[MSMpiDE.dll <0007>] +Uses1= +CABFileName=MSMpiDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSMapi32.ocx <000C>] +Uses1=MSMpiFR.dll +Uses2= + +[MSMpiFR.dll <000C>] +Uses1= +CABFileName=MSMpiFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSMapi32.ocx <0010>] +Uses1=MSMpiIT.dll +Uses2= + +[MSMpiIT.dll <0010>] +Uses1= +CABFileName=MSMpiIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSMapi32.ocx <000A>] +Uses1=MSMpiES.dll +Uses2= + +[MSMpiES.dll <000A>] +Uses1= +CABFileName=MSMpiES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSMapi32.ocx <0011>] +Uses1=MSMpiJP.dll +Uses2= + +[MSMpiJP.dll <0011>] +Uses1= +CABFileName=MSMpiJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSMapi32.ocx <0012>] +Uses1=MSMpiKO.dll +Uses2= + +[MSMpiKO.dll <0012>] +Uses1= +CABFileName=MSMpiKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSMapi32.ocx <0404>] +Uses1=MSMpiCHT.dll +Uses2= + +[MSMpiCHT.dll <0404>] +Uses1= +CABFileName=MSMpiCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSMapi32.ocx <0804>] +Uses1=MSMpiCHS.dll +Uses2= + +[MSMpiCHS.dll <0804>] +Uses1= +CABFileName=MSMpiCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMpiCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSMAPI32.OCX b/cadVb/OS/SYSTEM/MSMAPI32.OCX new file mode 100644 index 0000000..ec031bd Binary files /dev/null and b/cadVb/OS/SYSTEM/MSMAPI32.OCX differ diff --git a/cadVb/OS/SYSTEM/MSMASK.SRG b/cadVb/OS/SYSTEM/MSMASK.SRG new file mode 100644 index 0000000..0bb6617 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSMASK.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\BC96F860-9928-11cf-8AFA-00AA00C00905] +@ = "mmimfflflmqmlfffrlnmofhfkgrlmmfmqkqj" diff --git a/cadVb/OS/SYSTEM/MSMASK32.DEP b/cadVb/OS/SYSTEM/MSMASK32.DEP new file mode 100644 index 0000000..f41c388 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSMASK32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSMask32.ocx + +; Default Dependencies ---------------------------------------------- + +[MSMask32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSMask32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMask32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSMask32.ocx <0007>] +Uses1=MSMskDE.dll +Uses2= + +[MSMskDE.dll <0007>] +Uses1= +CABFileName=MSMskDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSMask32.ocx <000C>] +Uses1=MSMskFR.dll +Uses2= + +[MSMskFR.dll <000C>] +Uses1= +CABFileName=MSMskFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSMask32.ocx <0010>] +Uses1=MSMskIT.dll +Uses2= + +[MSMskIT.dll <0010>] +Uses1= +CABFileName=MSMskIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSMask32.ocx <000A>] +Uses1=MSMskES.dll +Uses2= + +[MSMskES.dll <000A>] +Uses1= +CABFileName=MSMskES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSMask32.ocx <0011>] +Uses1=MSMskJP.dll +Uses2= + +[MSMskJP.dll <0011>] +Uses1= +CABFileName=MSMskJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSMask32.ocx <0012>] +Uses1=MSMskKO.dll +Uses2= + +[MSMskKO.dll <0012>] +Uses1= +CABFileName=MSMskKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSMask32.ocx <0404>] +Uses1=MSMskCHT.dll +Uses2= + +[MSMskCHT.dll <0404>] +Uses1= +CABFileName=MSMskCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSMask32.ocx <0804>] +Uses1=MSMskCHS.dll +Uses2= + +[MSMskCHS.dll <0804>] +Uses1= +CABFileName=MSMskCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSMskCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSMASK32.OCX b/cadVb/OS/SYSTEM/MSMASK32.OCX new file mode 100644 index 0000000..eb72d7e Binary files /dev/null and b/cadVb/OS/SYSTEM/MSMASK32.OCX differ diff --git a/cadVb/OS/SYSTEM/MSMPICHS.DLL b/cadVb/OS/SYSTEM/MSMPICHS.DLL new file mode 100644 index 0000000..8ae8e07 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSMPICHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSMSKCHS.DLL b/cadVb/OS/SYSTEM/MSMSKCHS.DLL new file mode 100644 index 0000000..29f7161 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSMSKCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSO97RT.DLL b/cadVb/OS/SYSTEM/MSO97RT.DLL new file mode 100644 index 0000000..7a39636 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSO97RT.DLL differ diff --git a/cadVb/OS/SYSTEM/MSORCL32.CNT b/cadVb/OS/SYSTEM/MSORCL32.CNT new file mode 100644 index 0000000..e5f193a --- /dev/null +++ b/cadVb/OS/SYSTEM/MSORCL32.CNT @@ -0,0 +1,30 @@ +:Base MSORCL32.hlp +:Title Oracle Microsoft ODBC +1 =Whats_New +1 =IDH_Overview>main +1 װ Microsoft ODBC Driver for Oracle +2 ϵͳ=System_Requirements>main +1 ʹ Microsoft ODBC Driver for Oracle +2 Ӻ޸Դ=Adding_and_Modifying_Data_Sources_Using_Setup>main +2 Oracle ODBC Driver=Configuring_the_Oracle_ODBC_Driver>main +2 Դ=Connecting_to_a_Data_Source>main +2 ַ=Connection_String_Attributes>main +1 ο +2 ODBC ϼ=ODBC_Conformance_Levels>main +2 SQL ϼ=SQL_Conformance_Levels +2 ӳ=Mapping_Data_Types>main +2 ߼ +3 ʹ Microsoft Transaction Server=Using_Microsoft_Transaction_Server +3 ʹ Microsoft Internet Information Server=Using_Microsoft_Internet_Information_Server>main +3 ʹòϵͳȷ=Using_Operating_System_Authentication>main +3 ʹüĹ=Limitations_of_Using_Keyset-Driven_Cursors>main +3 Ӵ洢򷵻=Returning_Array_Parameters_from_Stored_Procedures>main +3 ѡ=Connect_Options_Table>main +3 ѡ=Statement_Options_Table>main +3 ͺͲϱ=Cursor_Type_and_Concurrency_Combinations_Table>main +3 API +4 ߳-ȫע=Thread-Safety_Notes_on_API_Functions>main +4 ļ=Core_Level_Functions +4 һ=Level_1_Functions +4 =Level_2_Functions +1 Ϣ=Error_Messages>main diff --git a/cadVb/OS/SYSTEM/MSORCL32.DLL b/cadVb/OS/SYSTEM/MSORCL32.DLL new file mode 100644 index 0000000..c8c288c Binary files /dev/null and b/cadVb/OS/SYSTEM/MSORCL32.DLL differ diff --git a/cadVb/OS/SYSTEM/MSORCL32.HLP b/cadVb/OS/SYSTEM/MSORCL32.HLP new file mode 100644 index 0000000..034c24e Binary files /dev/null and b/cadVb/OS/SYSTEM/MSORCL32.HLP differ diff --git a/cadVb/OS/SYSTEM/MSORCL32.TXT b/cadVb/OS/SYSTEM/MSORCL32.TXT new file mode 100644 index 0000000..46b902a --- /dev/null +++ b/cadVb/OS/SYSTEM/MSORCL32.TXT @@ -0,0 +1,64 @@ +----------------------------------- +汾˵ + +Microsoft(R) ODBC Driver for Oracle +----------------------------------- + +(c) 1998 Microsoft Corporation + +------------ +ĵʹָ +------------ + +Ҫ鿴ļȽ±󻯣Ȼڡ༭˵еԶСҪӡļ +Ƚļڡ±ִд򿪣Ȼڡļ˵ѡ񡰴ӡ + +Ҫ˽°ЩʲôĽıĵġԡһڡ + +---- + +---- + +Microsoft ODBC Driver for Oracle ϡODBC Programmer's Reference (Version 2.0) for your platform +Open Database Connectivity (ODBC) Ĺ涨Oracle ODBC 涨Ӧóӵ Oracle +ݿ⡣ + + +-------- +ϵͳҪ +-------- + +Ҫʹ Microsoft ODBC Driver for Oracle Windows ϵͳбװ version 7.3 ߰汾 Oracle +Client SoftwareMicrosoft Oracle ODBC Driver ֻ֧ SQL*Net 2.3 ߰汾й Oracle Ʒϸ +Ϣ Oracle ĵ + +------ + +------ + +Microsoft ODBC Driver for Oracle °汾ܻȶԷ涼һЩĽʹ +ܸǿٶȸ졣 + + ͨ ODBC ԴԱĽÿƣתܺԶѡ + + չġļ + +°汾ͬʱҲ˾ɰ汾磺 + + Ľ˵չȡ֧зʽ󶨡 + ġļС + ϸϢġMicrosoft ODBC 3.0 Programmer's References and SDK Guide + Microsoft Transaction Server ɷֲ + ġļСʹ Microsoft Transaction Server + ֧Ŀ¼е Oracle ﷨ + ġļСӴ洢з + SQLDescribeParam ִΪ SQL ṩ˸ȷIJ˵ + ġļС + Ӵ洢з + ġļСӴ洢з + ֧ǩ + ġļС ͡״̬ѡ + չġļ + +֤ͨMicrosoft ODBC Driver for Oracle °汾ŸߵȶԣΪѾԣӦ +IJ磺Microsoft Transaction Server Internet Information Server diff --git a/cadVb/OS/SYSTEM/MSPDOX35.DLL b/cadVb/OS/SYSTEM/MSPDOX35.DLL new file mode 100644 index 0000000..74c2e25 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSPDOX35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSPRPCHS.DLL b/cadVb/OS/SYSTEM/MSPRPCHS.DLL new file mode 100644 index 0000000..ff9c2d0 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSPRPCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSRD2X35.DLL b/cadVb/OS/SYSTEM/MSRD2X35.DLL new file mode 100644 index 0000000..1de0683 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSRD2X35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSRDC20.DEP b/cadVb/OS/SYSTEM/MSRDC20.DEP new file mode 100644 index 0000000..74e591d --- /dev/null +++ b/cadVb/OS/SYSTEM/MSRDC20.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSRdc20.ocx + +; Default Dependencies ---------------------------------------------- + +[MSRdc20.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=MSRdo20.dll +Uses2=ComCat.dll +CABFileName=MSRdc20.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSRdc20.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSRdc20.ocx <0007>] +Uses1=Rdc20DE.dll +Uses2= + +[Rdc20DE.dll <0007>] +Uses1= +CABFileName=Rdc20DE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20DE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSRdc20.ocx <000C>] +Uses1=Rdc20FR.dll +Uses2= + +[Rdc20FR.dll <000C>] +Uses1= +CABFileName=Rdc20FR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20FR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSRdc20.ocx <0010>] +Uses1=Rdc20IT.dll +Uses2= + +[Rdc20IT.dll <0010>] +Uses1= +CABFileName=Rdc20IT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20IT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSRdc20.ocx <000A>] +Uses1=Rdc20ES.dll +Uses2= + +[Rdc20ES.dll <000A>] +Uses1= +CABFileName=Rdc20ES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20ES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSRdc20.ocx <0011>] +Uses1=Rdc20JP.dll +Uses2= + +[Rdc20JP.dll <0011>] +Uses1= +CABFileName=Rdc20JP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20JP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSRdc20.ocx <0012>] +Uses1=Rdc20KO.dll +Uses2= + +[Rdc20KO.dll <0012>] +Uses1= +CABFileName=Rdc20KO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20KO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSRdc20.ocx <0404>] +Uses1=Rdc20CHT.dll +Uses2= + +[Rdc20CHT.dll <0404>] +Uses1= +CABFileName=Rdc20CHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20CHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSRdc20.ocx <0804>] +Uses1=Rdc20CHS.dll +Uses2= + +[Rdc20CHS.dll <0804>] +Uses1= +CABFileName=Rdc20CHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdc20CHS.inf + diff --git a/cadVb/OS/SYSTEM/MSRDC20.OCX b/cadVb/OS/SYSTEM/MSRDC20.OCX new file mode 100644 index 0000000..aa42b4a Binary files /dev/null and b/cadVb/OS/SYSTEM/MSRDC20.OCX differ diff --git a/cadVb/OS/SYSTEM/MSRDC20.SRG b/cadVb/OS/SYSTEM/MSRDC20.SRG new file mode 100644 index 0000000..5b33843 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSRDC20.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\43478d75-78e0-11cf-8e78-00a0d100038e] +@ = "imshohohphlmnhimuinmphmmuiminhlmsmsl" diff --git a/cadVb/OS/SYSTEM/MSRDO20.DEP b/cadVb/OS/SYSTEM/MSRDO20.DEP new file mode 100644 index 0000000..ec5da32 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSRDO20.DEP @@ -0,0 +1,140 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSRdo20.dll + +; Default Dependencies ---------------------------------------------- + +[MSRdo20.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=rdocurs.dll +Uses2=ComCat.dll +Uses3=odbc32.dll +Uses4= +CABFileName=MSRdo20.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSRdo20.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +[rdocurs.dll] +Dest=$(WinSysPath) +CABFileName=MSRdo20.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSRdo20.inf +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSRdo20.dll <0007>] +Uses1=Rdo20DE.dll +Uses2= + +[Rdo20DE.dll <0007>] +Uses1= +CABFileName=Rdo20DE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20DE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSRdo20.dll <000C>] +Uses1=Rdo20FR.dll +Uses2= + +[Rdo20FR.dll <000C>] +Uses1= +CABFileName=Rdo20FR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20FR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSRdo20.dll <0010>] +Uses1=Rdo20IT.dll +Uses2= + +[Rdo20IT.dll <0010>] +Uses1= +CABFileName=Rdo20IT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20IT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSRdo20.dll <000A>] +Uses1=Rdo20ES.dll +Uses2= + +[Rdo20ES.dll <000A>] +Uses1= +CABFileName=Rdo20ES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20ES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSRdo20.dll <0011>] +Uses1=Rdo20JP.dll +Uses2= + +[Rdo20JP.dll <0011>] +Uses1= +CABFileName=Rdo20JP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20JP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSRdo20.dll <0012>] +Uses1=Rdo20KO.dll +Uses2= + +[Rdo20KO.dll <0012>] +Uses1= +CABFileName=Rdo20KO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20KO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSRdo20.dll <0404>] +Uses1=Rdo20CHT.dll +Uses2= + +[Rdo20CHT.dll <0404>] +Uses1= +CABFileName=Rdo20CHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20CHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSRdo20.dll <0804>] +Uses1=Rdo20CHS.dll +Uses2= + +[Rdo20CHS.dll <0804>] +Uses1= +CABFileName=Rdo20CHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=Rdo20CHS.inf + diff --git a/cadVb/OS/SYSTEM/MSRDO20.DLL b/cadVb/OS/SYSTEM/MSRDO20.DLL new file mode 100644 index 0000000..53dbf0a Binary files /dev/null and b/cadVb/OS/SYSTEM/MSRDO20.DLL differ diff --git a/cadVb/OS/SYSTEM/MSRDO20.SRG b/cadVb/OS/SYSTEM/MSRDO20.SRG new file mode 100644 index 0000000..dcb226b --- /dev/null +++ b/cadVb/OS/SYSTEM/MSRDO20.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\B1692F60-23B0-11D0-8E95-00A0C90F26F8] +@ = "mjjjccncgjijrcfjpdfjfcejpdkdkcgjojpd" \ No newline at end of file diff --git a/cadVb/OS/SYSTEM/MSREPL35.DLL b/cadVb/OS/SYSTEM/MSREPL35.DLL new file mode 100644 index 0000000..4040d51 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSREPL35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSSTDFMT.DEP b/cadVb/OS/SYSTEM/MSSTDFMT.DEP new file mode 100644 index 0000000..9c0adcc --- /dev/null +++ b/cadVb/OS/SYSTEM/MSSTDFMT.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSStdFmt.Dll + +; Default Dependencies ---------------------------------------------- + +[MSStdFmt.Dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSStdFmt.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSStdFmt.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MsStdFmt.Dll <0007>] +Uses1=StdFtDE.dll +Uses2= + +[StdFtDE.dll <0007>] +Uses1= +CABFileName=StdFtDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MsStdFmt.Dll <000C>] +Uses1=StdFtFR.dll +Uses2= + +[StdFtFR.dll <000C>] +Uses1= +CABFileName=StdFtFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MsStdFmt.Dll <0010>] +Uses1=StdFtIT.dll +Uses2= + +[StdFtIT.dll <0010>] +Uses1= +CABFileName=StdFtIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MsStdFmt.Dll <000A>] +Uses1=StdFtES.dll +Uses2= + +[StdFtES.dll <000A>] +Uses1= +CABFileName=StdFtES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MsStdFmt.Dll <0011>] +Uses1=StdFtJP.dll +Uses2= + +[StdFtJP.dll <0011>] +Uses1= +CABFileName=StdFtJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MsStdFmt.Dll <0012>] +Uses1=StdFtKO.dll +Uses2= + +[StdFtKO.dll <0012>] +Uses1= +CABFileName=StdFtKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MsStdFmt.Dll <0404>] +Uses1=StdFtCHT.dll +Uses2= + +[StdFtCHT.dll <0404>] +Uses1= +CABFileName=StdFtCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MsStdFmt.Dll <0804>] +Uses1=StdFtCHS.dll +Uses2= + +[StdFtCHS.dll <0804>] +Uses1= +CABFileName=StdFtCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=StdFtCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSSTDFMT.DLL b/cadVb/OS/SYSTEM/MSSTDFMT.DLL new file mode 100644 index 0000000..889d727 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSSTDFMT.DLL differ diff --git a/cadVb/OS/SYSTEM/MSSTKPRP.DLL b/cadVb/OS/SYSTEM/MSSTKPRP.DLL new file mode 100644 index 0000000..ba569c1 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSSTKPRP.DLL differ diff --git a/cadVb/OS/SYSTEM/MSTEXT35.DLL b/cadVb/OS/SYSTEM/MSTEXT35.DLL new file mode 100644 index 0000000..664a504 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSTEXT35.DLL differ diff --git a/cadVb/OS/SYSTEM/MSVBVM60.DLL b/cadVb/OS/SYSTEM/MSVBVM60.DLL new file mode 100644 index 0000000..5ff2c3f Binary files /dev/null and b/cadVb/OS/SYSTEM/MSVBVM60.DLL differ diff --git a/cadVb/OS/SYSTEM/MSVCIRT.DLL b/cadVb/OS/SYSTEM/MSVCIRT.DLL new file mode 100644 index 0000000..99ddba9 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSVCIRT.DLL differ diff --git a/cadVb/OS/SYSTEM/MSVCRT.DLL b/cadVb/OS/SYSTEM/MSVCRT.DLL new file mode 100644 index 0000000..a03646c Binary files /dev/null and b/cadVb/OS/SYSTEM/MSVCRT.DLL differ diff --git a/cadVb/OS/SYSTEM/MSVCRT40.DLL b/cadVb/OS/SYSTEM/MSVCRT40.DLL new file mode 100644 index 0000000..2eb729a Binary files /dev/null and b/cadVb/OS/SYSTEM/MSVCRT40.DLL differ diff --git a/cadVb/OS/SYSTEM/MSWCRCHS.DLL b/cadVb/OS/SYSTEM/MSWCRCHS.DLL new file mode 100644 index 0000000..c1ac7e9 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSWCRCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/MSWCRUN.DEP b/cadVb/OS/SYSTEM/MSWCRUN.DEP new file mode 100644 index 0000000..3e42990 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSWCRUN.DEP @@ -0,0 +1,130 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for MSWCRUN.dll + +; Default Dependencies ---------------------------------------------- + +[MSWCRun.Dll] +Dest=$(CommonFiles)\designer +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1= +CABFileName=MSWCRun.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCRun.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSWCRun.DLL <0007>] +Uses1=MSWCrDE.dll +Uses2= + +[MSWCrDE.dll <0007>] +Uses1= +CABFileName=MSWCrDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSWCRun.DLL <000C>] +Uses1=MSWCrFR.dll +Uses2= + +[MSWCrFR.dll <000C>] +Uses1= +CABFileName=MSWCrFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSWCRun.DLL <0010>] +Uses1=MSWCrIT.dll +Uses2= + +[MSWCrIT.dll <0010>] +Uses1= +CABFileName=MSWCrIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSWCRun.DLL <000A>] +Uses1=MSWCrES.dll +Uses2= + +[MSWCrES.dll <000A>] +Uses1= +CABFileName=MSWCrES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSWCRun.DLL <0011>] +Uses1=MSWCrJP.dll +Uses2= + +[MSWCrJP.dll <0011>] +Uses1= +CABFileName=MSWCrJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSWCRun.DLL <0012>] +Uses1=MSWCrKO.dll +Uses2= + +[MSWCrKO.dll <0012>] +Uses1= +CABFileName=MSWCrKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSWCRun.DLL <0404>] +Uses1=MSWCrCHT.dll +Uses2= + +[MSWCrCHT.dll <0404>] +Uses1= +CABFileName=MSWCrCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSWCRun.DLL <0804>] +Uses1=MSWCrCHS.dll +Uses2= + +[MSWCrCHS.dll <0804>] +Uses1= +CABFileName=MSWCrCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWCrCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSWCRUN.DLL b/cadVb/OS/SYSTEM/MSWCRUN.DLL new file mode 100644 index 0000000..cc0e01e Binary files /dev/null and b/cadVb/OS/SYSTEM/MSWCRUN.DLL differ diff --git a/cadVb/OS/SYSTEM/MSWINSCK.DEP b/cadVb/OS/SYSTEM/MSWINSCK.DEP new file mode 100644 index 0000000..9a1bb60 --- /dev/null +++ b/cadVb/OS/SYSTEM/MSWINSCK.DEP @@ -0,0 +1,129 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Default Dependencies ---------------------------------------------- + +[MSWinSck.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=MSWinSck.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSWinSck.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[MSWinSck.ocx <0007>] +Uses1=WinSkDE.dll +Uses2= + +[WinSkDE.dll <0007>] +Uses1= +CABFileName=WinSkDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkDE.inf + +; ** French (FR) *** +; (000C = French) +; +[MSWinSck.ocx <000C>] +Uses1=WinSkFR.dll +Uses2= + +[WinSkFR.dll <000C>] +Uses1= +CABFileName=WinSkFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[MSWinSck.ocx <0010>] +Uses1=WinSkIT.dll +Uses2= + +[WinSkIT.dll <0010>] +Uses1= +CABFileName=WinSkIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[MSWinSck.ocx <000A>] +Uses1=WinSkES.dll +Uses2= + +[WinSkES.dll <000A>] +Uses1= +CABFileName=WinSkES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[MSWinSck.ocx <0011>] +Uses1=WinSkJP.dll +Uses2= + +[WinSkJP.dll <0011>] +Uses1= +CABFileName=WinSkJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[MSWinSck.ocx <0012>] +Uses1=WinSkKO.dll +Uses2= + +[WinSkKO.dll <0012>] +Uses1= +CABFileName=WinSkKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[MSWinSck.ocx <0404>] +Uses1=WinSkCHT.dll +Uses2= + +[WinSkCHT.dll <0404>] +Uses1= +CABFileName=WinSkCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[MSWinSck.ocx <0804>] +Uses1=WinSkCHS.dll +Uses2= + +[WinSkCHS.dll <0804>] +Uses1= +CABFileName=WinSkCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=WinSkCHS.inf + diff --git a/cadVb/OS/SYSTEM/MSWINSCK.OCX b/cadVb/OS/SYSTEM/MSWINSCK.OCX new file mode 100644 index 0000000..8bb10d0 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSWINSCK.OCX differ diff --git a/cadVb/OS/SYSTEM/MSXBSE35.DLL b/cadVb/OS/SYSTEM/MSXBSE35.DLL new file mode 100644 index 0000000..f98e885 Binary files /dev/null and b/cadVb/OS/SYSTEM/MSXBSE35.DLL differ diff --git a/cadVb/OS/SYSTEM/MTXDM.DLL b/cadVb/OS/SYSTEM/MTXDM.DLL new file mode 100644 index 0000000..e6b0b48 Binary files /dev/null and b/cadVb/OS/SYSTEM/MTXDM.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBC16GT.DLL b/cadVb/OS/SYSTEM/ODBC16GT.DLL new file mode 100644 index 0000000..5cdea85 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBC16GT.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBC32.DLL b/cadVb/OS/SYSTEM/ODBC32.DLL new file mode 100644 index 0000000..274e089 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBC32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBC32GT.DLL b/cadVb/OS/SYSTEM/ODBC32GT.DLL new file mode 100644 index 0000000..14a81b0 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBC32GT.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCAD32.EXE b/cadVb/OS/SYSTEM/ODBCAD32.EXE new file mode 100644 index 0000000..bbbec70 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCAD32.EXE differ diff --git a/cadVb/OS/SYSTEM/ODBCBCP.DLL b/cadVb/OS/SYSTEM/ODBCBCP.DLL new file mode 100644 index 0000000..4ea6260 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCBCP.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCCP32.CPL b/cadVb/OS/SYSTEM/ODBCCP32.CPL new file mode 100644 index 0000000..ad54b05 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCCP32.CPL differ diff --git a/cadVb/OS/SYSTEM/ODBCCP32.DLL b/cadVb/OS/SYSTEM/ODBCCP32.DLL new file mode 100644 index 0000000..6b6aabf Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCCP32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCCR32.DLL b/cadVb/OS/SYSTEM/ODBCCR32.DLL new file mode 100644 index 0000000..3a82901 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCCR32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCCU32.DLL b/cadVb/OS/SYSTEM/ODBCCU32.DLL new file mode 100644 index 0000000..7f45e8d Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCCU32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCINST.CNT b/cadVb/OS/SYSTEM/ODBCINST.CNT new file mode 100644 index 0000000..6bf4274 --- /dev/null +++ b/cadVb/OS/SYSTEM/ODBCINST.CNT @@ -0,0 +1,10 @@ +:Base odbcinst.hlp +:Title ODBC +:Index ODBC Help=odbcinst.hlp +1 "û DSN" ѡ=User_DSN_Tab>ref +1 "ϵͳ DSN" ѡ=System_DSN_Tab>ref +1 "ļ DSN" ѡ=File_DSN_Tab>ref +1 "ODBC " ѡ=ODBC_Drivers_Tab>ref +1 "" ѡ=Tracing_Tab>ref +1 "ӳ" ѡ=Connection_Pooling_Tab>ref +1 "" ѡ=About_Tab>ref diff --git a/cadVb/OS/SYSTEM/ODBCINST.HLP b/cadVb/OS/SYSTEM/ODBCINST.HLP new file mode 100644 index 0000000..2b648fe Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCINST.HLP differ diff --git a/cadVb/OS/SYSTEM/ODBCINT.DLL b/cadVb/OS/SYSTEM/ODBCINT.DLL new file mode 100644 index 0000000..c8c18b2 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCINT.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCJET.CNT b/cadVb/OS/SYSTEM/ODBCJET.CNT new file mode 100644 index 0000000..6a453d4 --- /dev/null +++ b/cadVb/OS/SYSTEM/ODBCJET.CNT @@ -0,0 +1,155 @@ +:Base odbcjet.hlp +:Title ODBC Microsoft ݿ + +:Index ODBC Desktop Database Drivers Help=odbcjet.hlp +1 (û) +2 =Overview>ref +2 Ӳ=Requirements>ref +2 ODBC ļ=ODBCComponentFiles>ref +2 Ʒ֧=ProductSupport>ref +2 װ=SettingUpDrivers>ref +1 Դ(û) +2 Դ=AddingADataSource>howto +2 Դת=DataSourceConversion>ref +2 ޸Դ=ModifyingADataSource>howto +2 ɾԴ=DeletingADataSource>howto +2 ODBC װԻ + +3 =ApproximateRowCount>ref +3 С=BufferSize>ref +3 =CollatingSequence>ref +3 Դ=DataSourceName>ref +3 ݿ=Database>ref +3 ʽ=DefineFormat>ref +3 =Description>ref +3 Ŀ¼=Directory>ref +3 ռ=Exclusive>ref +3 ļչб=ExtensionsList>ref +3 ҳʱ=PageTimeout>ref +3 ֻ=ReadOnly>ref +3 ɨ=RowsToScan>ref +3 ѡȡĿ¼=SelectDirectory>ref +3 ѡȡ=SelectIndexes>ref +3 ѡȡ=SelectWorkbook>ref +3 ʾɾ=ShowDeletedRows>ref +3 =SortOrder>ref +3 ϵͳݿ=SystemDatabase>ref +3 ʹõǰĿ¼=UseCurrentDirectory>ref +3 û=UserName>ref +3 汾=Version>ref +2 ıʽ +3 ıʽ=TextFormat>ref +3 SCHEMA.ini ļ=SchemaIni>ref +2 + +3 =PasswordEntry>ref +3 ݿ޸߼=DatabaseRepair>ref +3 ݿѹ߼=DatabaseCompaction>ref +3 /ӱ=HeterogeneousJoinsAttachedTables>ref +3 Microsoft Excel =OpeningMicrosoftExcelTables>ref +3 뱣ļ=PasswordProtectedFiles>ref +3 ο=ReferentialIntegrity>ref +3 ֮ʧ=FailingAfterRepeatedConnections>ref +3 Lotus 1-2-3 /EMS =Lotus123DataEMSData>ref +3 Visual Basic ֧=VisualBasicSupport>ref +1 ̬ʹԴ (߼û) +2 SQLDriverConnect=SQLDriverConnect>ref +2 Ӵ߼=ConnectString>ref +2 ̬ӡ޸ĻɾԴ=AddingModifyingOrDeletingADataSourceDynamically>howto +2 SQLConfigDataSource=SQLConfigDataSource +1 SQL (߼û) +2 SQL-92 Σ߼=SQL92Compliance>ref +2 ֵ֧ ODBC SQL ﷨߼=Add_Grammar>ref +2 ض SQL ﷨ +3 BETWEEN ν=BETWEENPredicate>ref +3 CREATE INDEX =CREATEINDEXStatement>ref +3 =DateArithmetic>ref +3 ڡʱ估ʱ=DateTimeAndTimestampLiterals>ref +3 DROP INDEX =DROPINDEXStatement>ref +3 ıļ=FixedWidthTextFile>ref +3 GROUT BY expression-list=GROUPBYExpressionList>ref +3 ORDER BY expression-list=ORDERBYExpressionList>ref +3 ʹ GROUP BY ORDER BY=ORDERBYWithGROUPBY>ref +3 ⲿ=OuterJoins>ref +3 =ScalarFunctions>ref +3 =TableNames>ref +2 SQL ﷨ +3 ϼƺ=AggregateFunctionsLimitations>ref +3 ALTER TABLE =ALTERTABLEStatementLimitations>ref +3 AND ν=ANDPredicatesLimitations>ref +3 CALL =CALLStatementLimitations>ref +3 =ColumnNameLimitations>ref +3 CONVERT =CONVERTFunctionLimitations>ref +3 CREATE INDEX =CREATEINDEXStatementLimitations>ref +3 CREATE TABLE =CREATETABLEStatementLimitations>ref +3 =DateArithmeticLimitations>ref +3 DELETE =DELETEStatementLimitations>ref +3 DISTINCT ؼ=DISTINCTKeywordLimitations>ref +3 DROP INDEX =DROPINDEXStatementLimitations +3 DROP TABLE =DROPTABLEStatementLimitations>ref +3 FROM Ӿ=FROMClauseLimitations>ref +3 HAVING Ӿ=HAVINGClauseLimitations>ref +3 ʶ=IdentifiersLimitations>ref +3 =IndexNameLimitations>ref +3 INSERT =INSERTStatementLimitations>ref +3 LIKE ν=LIKEPredicateLimitations>ref +3 NOT NULL =NOTNULLLimitations>ref +3 ORDER BY Ӿ=ORDERBYClauseLimitations>ref +3 ѯ=ParameterizedQueryLimitations>ref +3 =ReservedWordLimitations>ref +3 Scalar =ScalarFunctionLimitations>ref +3 SELECT DISTINCT =SELECTDISTINCTLimitations>ref +3 SELECT =SELECTStatementLimitations>ref +3 Ϻ=SetFunctionsLimitations>ref +3 =SortingLimitations>ref +3 ַ=StringLimitations>ref +3 =TableNameLimitations>ref +3 =TableReferencesLimitations>ref +3 UPDATE =UPDATEStatementLimitations>ref +3 View =ViewsLimitations>ref +3 WHERE Ӿ=WHEREClauseLimitations>ref +3 WHERE CURRENT OF Ӿ=WHERECURRENTOFClauseLimitations>ref +1 (߼û) +2 Microsoft Access ͣ߼=AccessDataTypes>ref +2 dBASE ͣ߼=dBASEDataTypes>ref +2 Microsoft Excel ͣ߼=ExcelDataTypes>ref +2 Microsoft FoxPro ͣ߼=FoxProDataTypes>ref +2 Paradox ͣ߼=ParadoxDataTypes>ref +2 ıͣ߼=TextDataTypes>ref +2 ƣ߼=DataTypeLimit>ref +1 Ϣ (߼û) +2 Ϣ߼=Errors>ref +1 SQLGetInfo ֵ (Ա) +2 SQLGetInfo ֵƣ=SQLGetInfoReturnValues>ref +1 ODBC API (Ա) +2 ֧ ODBC API )=SupportedODBCAPIFunctions>ref +2 SQLBindParameter=SQLBindParameter>ref +2 SQLColAttributes=SQLColAttributes>ref +2 SQLColumns=SQLColumns>ref +2 SQLConfigDataSource=SQLConfigDataSource>ref +2 SQLGetCursorName=SQLGetCursorName>ref +2 SQLGetData=SQLGetData>ref +2 SQLGetInfo=SQLGetInfo>ref +2 SQLGetStmtOption=SQLGetStmtOption>ref +2 SQLGetTypeInfo=SQLGetTypeInfo>ref +2 SQLMoreResults=SQLMoreResults>ref +2 SQLPrepare=SQLPrepare>ref +2 SQLProcedureColumns=SQLProcedureColumns>ref +2 SQLProcedures=SQLProcedures>ref +2 SQLSetConnectOption=SQLSetConnectOption>ref +2 SQLSetCursorName=SQLSetCursorName>ref +2 SQLSetPos=SQLSetPos>ref +2 SQLSetScrollOptions=SQLSetScrollOptions>ref +2 SQLSetStmtOption=SQLSetStmtOption>ref +2 SQLSpecialColumns=SQLSpecialColumns>ref +2 SQLStatistics=SQLStatistics>ref +2 SQLTables=SQLTables>ref +2 SQLTransact=SQLTransact>ref +1 ִ (Ա) +2 =ArithmeticErrors>ref +2 Ļַ=BaseAddressOfDrivers>ref +2 ʹ򿪱=CreatingAndOpeningTables>ref +2 hstmts=MultipleHstmts>ref +2 ֻ״̬=ReadOnlyStatus>ref +2 װ DLL=SetupDLL>ref +2 ת DLL=TranslationDLLs>ref diff --git a/cadVb/OS/SYSTEM/ODBCJET.HLP b/cadVb/OS/SYSTEM/ODBCJET.HLP new file mode 100644 index 0000000..62fc9d4 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCJET.HLP differ diff --git a/cadVb/OS/SYSTEM/ODBCJI32.DLL b/cadVb/OS/SYSTEM/ODBCJI32.DLL new file mode 100644 index 0000000..af0b983 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCJI32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCJT32.DLL b/cadVb/OS/SYSTEM/ODBCJT32.DLL new file mode 100644 index 0000000..0274b0d Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCJT32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCTL32.DLL b/cadVb/OS/SYSTEM/ODBCTL32.DLL new file mode 100644 index 0000000..5b0867a Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCTL32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODBCTRAC.DLL b/cadVb/OS/SYSTEM/ODBCTRAC.DLL new file mode 100644 index 0000000..8349e67 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODBCTRAC.DLL differ diff --git a/cadVb/OS/SYSTEM/ODDBSE32.DLL b/cadVb/OS/SYSTEM/ODDBSE32.DLL new file mode 100644 index 0000000..a0b8d16 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODDBSE32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODEXL32.DLL b/cadVb/OS/SYSTEM/ODEXL32.DLL new file mode 100644 index 0000000..7fa757f Binary files /dev/null and b/cadVb/OS/SYSTEM/ODEXL32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODFOX32.DLL b/cadVb/OS/SYSTEM/ODFOX32.DLL new file mode 100644 index 0000000..6d394d5 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODFOX32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODKOB32.DLL b/cadVb/OS/SYSTEM/ODKOB32.DLL new file mode 100644 index 0000000..b86c7dc Binary files /dev/null and b/cadVb/OS/SYSTEM/ODKOB32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODPDX32.DLL b/cadVb/OS/SYSTEM/ODPDX32.DLL new file mode 100644 index 0000000..4bd46d8 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODPDX32.DLL differ diff --git a/cadVb/OS/SYSTEM/ODTEXT32.DLL b/cadVb/OS/SYSTEM/ODTEXT32.DLL new file mode 100644 index 0000000..3a4a173 Binary files /dev/null and b/cadVb/OS/SYSTEM/ODTEXT32.DLL differ diff --git a/cadVb/OS/SYSTEM/OLEAUT32.DLL b/cadVb/OS/SYSTEM/OLEAUT32.DLL new file mode 100644 index 0000000..3d16d75 Binary files /dev/null and b/cadVb/OS/SYSTEM/OLEAUT32.DLL differ diff --git a/cadVb/OS/SYSTEM/OLEPRO32.DLL b/cadVb/OS/SYSTEM/OLEPRO32.DLL new file mode 100644 index 0000000..e999aa9 Binary files /dev/null and b/cadVb/OS/SYSTEM/OLEPRO32.DLL differ diff --git a/cadVb/OS/SYSTEM/PCCLPCHS.DLL b/cadVb/OS/SYSTEM/PCCLPCHS.DLL new file mode 100644 index 0000000..efce579 Binary files /dev/null and b/cadVb/OS/SYSTEM/PCCLPCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/PICCLIP.SRG b/cadVb/OS/SYSTEM/PICCLIP.SRG new file mode 100644 index 0000000..69e1a30 --- /dev/null +++ b/cadVb/OS/SYSTEM/PICCLIP.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\6FB38640-6AC7-11cf-8ADB-00AA00C00905] +@ = "gdjkokgdldikhdddpjkkekgknesjikdkoioh" diff --git a/cadVb/OS/SYSTEM/PICCLP32.DEP b/cadVb/OS/SYSTEM/PICCLP32.DEP new file mode 100644 index 0000000..20e812c --- /dev/null +++ b/cadVb/OS/SYSTEM/PICCLP32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for PicClp32.ocx + +; Default Dependencies ---------------------------------------------- + +[PicClp32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=PicClp32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PicClp32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[PicClp32.ocx <0007>] +Uses1=PcClpDE.dll +Uses2= + +[PcClpDE.dll <0007>] +Uses1= +CABFileName=PcClpDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpDE.inf + +; ** French (FR) *** +; (000C = French) +; +[PicClp32.ocx <000C>] +Uses1=PcClpFR.dll +Uses2= + +[PcClpFR.dll <000C>] +Uses1= +CABFileName=PcClpFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[PicClp32.ocx <0010>] +Uses1=PcClpIT.dll +Uses2= + +[PcClpIT.dll <0010>] +Uses1= +CABFileName=PcClpIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[PicClp32.ocx <000A>] +Uses1=PcClpES.dll +Uses2= + +[PcClpES.dll <000A>] +Uses1= +CABFileName=PcClpES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[PicClp32.ocx <0011>] +Uses1=PcClpJP.dll +Uses2= + +[PcClpJP.dll <0011>] +Uses1= +CABFileName=PcClpJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[PicClp32.ocx <0012>] +Uses1=PcClpKO.dll +Uses2= + +[PcClpKO.dll <0012>] +Uses1= +CABFileName=PcClpKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[PicClp32.ocx <0404>] +Uses1=PcClpCHT.dll +Uses2= + +[PcClpCHT.dll <0404>] +Uses1= +CABFileName=PcClpCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[PicClp32.ocx <0804>] +Uses1=PcClpCHS.dll +Uses2= + +[PcClpCHS.dll <0804>] +Uses1= +CABFileName=PcClpCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=PcClpCHS.inf + diff --git a/cadVb/OS/SYSTEM/PICCLP32.OCX b/cadVb/OS/SYSTEM/PICCLP32.OCX new file mode 100644 index 0000000..4a581b4 Binary files /dev/null and b/cadVb/OS/SYSTEM/PICCLP32.OCX differ diff --git a/cadVb/OS/SYSTEM/RACMGR32.EXE b/cadVb/OS/SYSTEM/RACMGR32.EXE new file mode 100644 index 0000000..21cdfd1 Binary files /dev/null and b/cadVb/OS/SYSTEM/RACMGR32.EXE differ diff --git a/cadVb/OS/SYSTEM/RACREG32.DLL b/cadVb/OS/SYSTEM/RACREG32.DLL new file mode 100644 index 0000000..70baaf4 Binary files /dev/null and b/cadVb/OS/SYSTEM/RACREG32.DLL differ diff --git a/cadVb/OS/SYSTEM/RCHTXCHS.DLL b/cadVb/OS/SYSTEM/RCHTXCHS.DLL new file mode 100644 index 0000000..22bb1de Binary files /dev/null and b/cadVb/OS/SYSTEM/RCHTXCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/RDC20CHS.DLL b/cadVb/OS/SYSTEM/RDC20CHS.DLL new file mode 100644 index 0000000..bfc4ae6 Binary files /dev/null and b/cadVb/OS/SYSTEM/RDC20CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/RDO20CHS.DLL b/cadVb/OS/SYSTEM/RDO20CHS.DLL new file mode 100644 index 0000000..65c0759 Binary files /dev/null and b/cadVb/OS/SYSTEM/RDO20CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/RDOCURS.DLL b/cadVb/OS/SYSTEM/RDOCURS.DLL new file mode 100644 index 0000000..4189dc1 Binary files /dev/null and b/cadVb/OS/SYSTEM/RDOCURS.DLL differ diff --git a/cadVb/OS/SYSTEM/REGSVR32.EXE b/cadVb/OS/SYSTEM/REGSVR32.EXE new file mode 100644 index 0000000..5384f99 Binary files /dev/null and b/cadVb/OS/SYSTEM/REGSVR32.EXE differ diff --git a/cadVb/OS/SYSTEM/REPUTIL.DLL b/cadVb/OS/SYSTEM/REPUTIL.DLL new file mode 100644 index 0000000..1888b3a Binary files /dev/null and b/cadVb/OS/SYSTEM/REPUTIL.DLL differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1025/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1025/HHCTRL.OCX new file mode 100644 index 0000000..6620b47 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1025/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1027/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1027/HHCTRL.OCX new file mode 100644 index 0000000..3cf349b Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1027/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1028/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1028/HHCTRL.OCX new file mode 100644 index 0000000..ab2f266 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1028/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1029/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1029/HHCTRL.OCX new file mode 100644 index 0000000..3a3c659 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1029/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1030/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1030/HHCTRL.OCX new file mode 100644 index 0000000..57180e2 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1030/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1031/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1031/HHCTRL.OCX new file mode 100644 index 0000000..0d669d8 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1031/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1032/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1032/HHCTRL.OCX new file mode 100644 index 0000000..e61204c Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1032/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1033/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1033/HHCTRL.OCX new file mode 100644 index 0000000..d3f3f7a Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1033/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1035/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1035/HHCTRL.OCX new file mode 100644 index 0000000..395cc99 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1035/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1036/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1036/HHCTRL.OCX new file mode 100644 index 0000000..f34133f Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1036/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1037/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1037/HHCTRL.OCX new file mode 100644 index 0000000..aef7806 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1037/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1038/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1038/HHCTRL.OCX new file mode 100644 index 0000000..25b3dca Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1038/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1040/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1040/HHCTRL.OCX new file mode 100644 index 0000000..2a9c680 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1040/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1041/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1041/HHCTRL.OCX new file mode 100644 index 0000000..7b69f4d Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1041/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1042/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1042/HHCTRL.OCX new file mode 100644 index 0000000..50665af Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1042/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1043/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1043/HHCTRL.OCX new file mode 100644 index 0000000..fc910a8 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1043/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1044/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1044/HHCTRL.OCX new file mode 100644 index 0000000..4e4589f Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1044/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1045/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1045/HHCTRL.OCX new file mode 100644 index 0000000..d096f9e Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1045/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1046/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1046/HHCTRL.OCX new file mode 100644 index 0000000..cbc0570 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1046/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1049/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1049/HHCTRL.OCX new file mode 100644 index 0000000..4cbb7c8 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1049/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1051/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1051/HHCTRL.OCX new file mode 100644 index 0000000..0d533f1 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1051/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1053/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1053/HHCTRL.OCX new file mode 100644 index 0000000..8a895ba Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1053/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1055/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1055/HHCTRL.OCX new file mode 100644 index 0000000..ff3fc6a Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1055/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1060/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1060/HHCTRL.OCX new file mode 100644 index 0000000..296f2a5 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1060/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/1069/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/1069/HHCTRL.OCX new file mode 100644 index 0000000..1f458b2 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/1069/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/2052/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/2052/HHCTRL.OCX new file mode 100644 index 0000000..bfa1c85 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/2052/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/2052/VSHELPUI.DLL b/cadVb/OS/SYSTEM/RESOURCE/2052/VSHELPUI.DLL new file mode 100644 index 0000000..8e06da3 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/2052/VSHELPUI.DLL differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/2070/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/2070/HHCTRL.OCX new file mode 100644 index 0000000..7b45091 Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/2070/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RESOURCE/3082/HHCTRL.OCX b/cadVb/OS/SYSTEM/RESOURCE/3082/HHCTRL.OCX new file mode 100644 index 0000000..8179bbe Binary files /dev/null and b/cadVb/OS/SYSTEM/RESOURCE/3082/HHCTRL.OCX differ diff --git a/cadVb/OS/SYSTEM/RICHED20.DLL b/cadVb/OS/SYSTEM/RICHED20.DLL new file mode 100644 index 0000000..0ffac08 Binary files /dev/null and b/cadVb/OS/SYSTEM/RICHED20.DLL differ diff --git a/cadVb/OS/SYSTEM/RICHED32.DLL b/cadVb/OS/SYSTEM/RICHED32.DLL new file mode 100644 index 0000000..66367f0 Binary files /dev/null and b/cadVb/OS/SYSTEM/RICHED32.DLL differ diff --git a/cadVb/OS/SYSTEM/RICHTEXT.SRG b/cadVb/OS/SYSTEM/RICHTEXT.SRG new file mode 100644 index 0000000..206b867 --- /dev/null +++ b/cadVb/OS/SYSTEM/RICHTEXT.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\DC4D7920-6AC8-11cf-8ADB-00AA00C00905] +@ = "iokouhloohrojhhhtnooiokomiwnmohosmsl" diff --git a/cadVb/OS/SYSTEM/RICHTX32.DEP b/cadVb/OS/SYSTEM/RICHTX32.DEP new file mode 100644 index 0000000..b07e3c9 --- /dev/null +++ b/cadVb/OS/SYSTEM/RICHTX32.DEP @@ -0,0 +1,161 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for RichTx32.ocx + +; Default Dependencies ---------------------------------------------- + +[RichTx32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=RichEd32.dll +Uses2=ComCat.dll +Uses3= +CABFileName=RichTx32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RichTx32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +[RichEd32.dll] +Dest=$(WinSysPathSysFile) + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[RichTx32.ocx <0007>] +Uses1=RchTxDE.dll +Uses2= + +[RchTxDE.dll <0007>] +Uses1= +CABFileName=RchTxDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxDE.inf + +; ** French (FR) *** +; (000C = French) +; +[RichTx32.ocx <000C>] +Uses1=RchTxFR.dll +Uses2= + +[RchTxFR.dll <000C>] +Uses1= +CABFileName=RchTxFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[RichTx32.ocx <0010>] +Uses1=RchTxIT.dll +Uses2= + +[RchTxIT.dll <0010>] +Uses1= +CABFileName=RchTxIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[RichTx32.ocx <000A>] +Uses1=RchTxES.dll +Uses2= + +[RchTxES.dll <000A>] +Uses1= +CABFileName=RchTxES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[RichTx32.ocx <0011>] +Uses1=RchTxJP.dll +Uses2= + +[RchTxJP.dll <0011>] +Uses1= +CABFileName=RchTxJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[RichTx32.ocx <0012>] +Uses1=RchTxKO.dll +Uses2= + +[RchTxKO.dll <0012>] +Uses1= +CABFileName=RchTxKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[RichTx32.ocx <0404>] +Uses1=RchTxCHT.dll +Uses2= + +[RchTxCHT.dll <0404>] +Uses1= +CABFileName=RchTxCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[RichTx32.ocx <0804>] +Uses1=RchTxCHS.dll +Uses2= + +[RchTxCHS.dll <0804>] +Uses1= +CABFileName=RchTxCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=RchTxCHS.inf + +; Additional DBCS Support DLL for RichEd32.dll -------------------------- + +[RichEd32.dll <0011>] +Uses1=GAPI32.dll + +[GAPI32.dll <0011>] +Dest=$(WinSysPathSysFile) + +[RichEd32.dll <0012>] +Uses1=GAPI32.dll + +[GAPI32.dll <0012>] +Dest=$(WinSysPathSysFile) + +[RichEd32.dll <0404>] +Uses1=GAPI32.dll + +[GAPI32.dll <0404>] +Dest=$(WinSysPathSysFile) + +[RichEd32.dll <0804>] +Uses1=GAPI32.dll + +[GAPI32.dll <0804>] +Dest=$(WinSysPathSysFile) + diff --git a/cadVb/OS/SYSTEM/RICHTX32.OCX b/cadVb/OS/SYSTEM/RICHTX32.OCX new file mode 100644 index 0000000..fb760ef Binary files /dev/null and b/cadVb/OS/SYSTEM/RICHTX32.OCX differ diff --git a/cadVb/OS/SYSTEM/SCP32.DLL b/cadVb/OS/SYSTEM/SCP32.DLL new file mode 100644 index 0000000..5e180d9 Binary files /dev/null and b/cadVb/OS/SYSTEM/SCP32.DLL differ diff --git a/cadVb/OS/SYSTEM/SCRRNCHS.DLL b/cadVb/OS/SYSTEM/SCRRNCHS.DLL new file mode 100644 index 0000000..a751b8f Binary files /dev/null and b/cadVb/OS/SYSTEM/SCRRNCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/SCRRUN.DEP b/cadVb/OS/SYSTEM/SCRRUN.DEP new file mode 100644 index 0000000..1ef0396 --- /dev/null +++ b/cadVb/OS/SYSTEM/SCRRUN.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=4.0.0.2926 + +; Dependencies for ScrRun.DLL + +; Default Dependencies ---------------------------------------------- + +[scrrun.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=4.0.0.2926 +Uses1=MSVCRT.dll +CABFileName=ScrRun.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrRun.inf + +[MSVCRT.dll] +Dest=$(WinSysPathSysFile) +Uses1= + +STD_ScrRun_SECTION + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[ScrRun.dll <0007>] +Uses1=ScrrnDE.dll +Uses2= + +[ScrrnDE.dll <0007>] +Uses1= +CABFileName=ScrrnDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnDE.inf + +; ** French (FR) *** +; (000C = French) +; +[ScrRun.dll <000C>] +Uses1=ScrrnFR.dll +Uses2= + +[ScrrnFR.dll <000C>] +Uses1= +CABFileName=ScrrnFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[ScrRun.dll <0010>] +Uses1=ScrrnIT.dll +Uses2= + +[ScrrnIT.dll <0010>] +Uses1= +CABFileName=ScrrnIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[ScrRun.dll <000A>] +Uses1=ScrrnES.dll +Uses2= + +[ScrrnES.dll <000A>] +Uses1= +CABFileName=ScrrnES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[ScrRun.dll <0011>] +Uses1=ScrrnJP.dll +Uses2= + +[ScrrnJP.dll <0011>] +Uses1= +CABFileName=ScrrnJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[ScrRun.dll <0012>] +Uses1=ScrrnKO.dll +Uses2= + +[ScrrnKO.dll <0012>] +Uses1= +CABFileName=ScrrnKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[ScrRun.dll <0404>] +Uses1=ScrrnCHT.dll +Uses2= + +[ScrrnCHT.dll <0404>] +Uses1= +CABFileName=ScrrnCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[ScrRun.dll <0804>] +Uses1=ScrrnCHS.dll +Uses2= + +[ScrrnCHS.dll <0804>] +Uses1= +CABFileName=ScrrnCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=ScrrnCHS.inf + diff --git a/cadVb/OS/SYSTEM/SCRRUN.DLL b/cadVb/OS/SYSTEM/SCRRUN.DLL new file mode 100644 index 0000000..1ddebf6 Binary files /dev/null and b/cadVb/OS/SYSTEM/SCRRUN.DLL differ diff --git a/cadVb/OS/SYSTEM/SQLPACHS.DLL b/cadVb/OS/SYSTEM/SQLPACHS.DLL new file mode 100644 index 0000000..2daa0fc Binary files /dev/null and b/cadVb/OS/SYSTEM/SQLPACHS.DLL differ diff --git a/cadVb/OS/SYSTEM/SQLPARSE.DLL b/cadVb/OS/SYSTEM/SQLPARSE.DLL new file mode 100644 index 0000000..0a59130 Binary files /dev/null and b/cadVb/OS/SYSTEM/SQLPARSE.DLL differ diff --git a/cadVb/OS/SYSTEM/SQLSODBC.HLP b/cadVb/OS/SYSTEM/SQLSODBC.HLP new file mode 100644 index 0000000..3cbee7f Binary files /dev/null and b/cadVb/OS/SYSTEM/SQLSODBC.HLP differ diff --git a/cadVb/OS/SYSTEM/SQLSRDME.TXT b/cadVb/OS/SYSTEM/SQLSRDME.TXT new file mode 100644 index 0000000..98f8859 --- /dev/null +++ b/cadVb/OS/SYSTEM/SQLSRDME.TXT @@ -0,0 +1,217 @@ +**************************************************************** + MICROSOFT(R) SQL SERVER + MICROSOFT SQL SERVER ODBC DRIVER + װļ VERSION 3.6 +**************************************************************** + +(c) 1998 Microsoft CorporationȨ + +ļ˵ν version 3.6 Microsoft SQL Server ODBC +version 6.5 ɰ汾 Microsoft SQL Servers һʹá + +Ҫ£ + +1. +2. ڷϰװ Instcat.sql +3. λ SQL Server Client +4. й SQL Server ʹ ODBC ĵԴ +5. ڿʹ +6. + +**************************************************************** +1. + +Version 3.6 Microsoft SQL Server ODBC Win32(R) ODBC +version 3.6 ODBC 2.X API дӦóҲ + ODBC 3.X API дӦó򡣱 Microsoft SQL +Server version 4.21a ߰汾ݡ Windows 95 + Windows NT4.0 ߰汾С + +° Win32 SQL Server Client Configuration ʵóҲ +version 3.6 SQL Server ODBC һװ SQL Server +Client Configuration ʵó Microsoft SQL Server version +4.21a ߰汾Ӧ汾 SQL Server е Client +Net-Libraries ݡ + +**************************************************************** +2. ڷϰװ Instcat.sql + +SQL Server ODBC ʹһΪĿ¼洢ϵͳ洢 + SQL Server ϵͳĿ¼лϢÿһ汾 Microsoft SQL +Server ODBC 򱻿Ŀ¼洢ָ汾Version +3.6 SQL Server ODBC 򸽴 Instcat.sql ļڽ +ʹõİ汾Ŀ¼洢ľֲ¡Ϊ֤ +ȷУSQL Server ϵͳԱʹ Instcat.sql +Ŀ¼洢Ŀ¼洢Ӱɰ SQL Server ͻ + 4.21a 6.5 а汾 Microsoft SQL Server + + +ҪĿ¼洢ϵͳԱһ isql ʵóдij +Σ˵£ڶݿκθı֮ǰϵͳԱӦ +бݡҪ isqlļΪ Microsoft SQL +Server Ŀͻ˰װ + +ʾ£ʹ isql ʵó Instcat.sql Ρ磺 + +C:> ISQL /Usa /Psa_password /Sserver_name /ilocation\Instcat.Sql + +where +sa_password + Is the system administrator's password. +server_name + Is the name of the server on which SQL Server resides. +location + Is the full path of the location of Instcat.Sql. + +Instcat.sql ϢϢʾܳ +Transact-SQL ӰϢԱԣӦ鿴 +ȷصõִдϢ Instcat.sql version 6.0 +SQL Server ʱԺԡ sp_MS_upd_sysobj_category +ڡϢһϢӦʾInstcat.sql ִгɹ +ݿռ䲻ܴ洢Ŀ¼洢򽫱仯¼ִijʱ +Instcat.sql ʧܡ + +**************************************************************** +3. λ SQL Server Client + +Microsoft SQL Server ODBC Microsoft SQL Server Client +Net-Libraries ʷVersion 3.6 SQL Server ODBC +Ҳ SQL Server Client Configuration ʵó ODBC +Դ Net-Library + +Version 3.6 SQL Server ODBC ֻװһ Net-LibraryWin32 +ܵ Net-Library Dbnmpntw.dll + +Version 3.6 SQL Server ODBC ɰ Win32 Net-Libraries +ݡ SQL Server Ҫ Net-Library ܵ +ʹа汾 Microsoft SQL Server Net-Libraryͨ +װа汾 Microsoft SQL Server Win32 SQL Server Client +ʵó򣬿Եõ SQL Server Net-Libraries + + version 3.6 SQL Server ODBC װ° SQL Server +Client Configuration ʵó SQL Server 4.21a ߰汾е +Client Net-Libraries ݡ + +**************************************************************** +4. йʹ ODBC SQL Server ĵԴ + +Version 3.6 Microsoft SQL Server ODBC ִ +ָϢ SQL Server 6.5 ĵ롣йָԣ + SQL Server ֲĵ + +Version 3.6 Microsoft SQL Server ODBC Ҳü˵ +Using ODBC with Microsoft SQL ServerеĸָϢ +룬Դ Microsoft Web վ +http://www.microsoft.com/sql/reskit.htm ء + +Version 3.6 SQL Server ODBC Sqlsodbc.hlp ļֻ +SQL Server ODBC Data Source 򵼵IJʾɰ Microsoft +SQL Server ODBC Drvssrvr.hlp ļоɰ +Ϣɰ Drvssrvr.hlp аϢѸƵ SQL +Server 6.5 ֲᡶProgramming ODBC for Microsoft SQL ServerС + +**************************************************************** +5. ڿʹ + +Microsoft SQL Server ODBC ΪһЩ ODBC ʹ +ָOdbcss.h ļкָ #defines +ָ C C++ ṹ + +Version 3.6 SQL Server ODBC Դṩ Odbss.h +ļһ + +SQL Server Service Pack 2 (SP2) ߰汾 + Դ Microsoft Web վ + http://www.microsoft.com/sql/ServicePak.htm ء + +ODBC 3.0 SDK. + ODBC 3.0 SDK Microsoft Developer + Network Professional 汾һ֡SDK Դ Microsoft + Web վ http://www.microsoft.com/odbc ءSDK Ҳɴ + Microsoft ODBC 3.0 Software Development Kit and + Programmer's ReferenceеġMicrosoft Press(R)лá + +**************************************************************** +6. + +Version 3.6 SQL Server ODBC ʾһµ + ODBC Administrator ʵóӻԴʱ +Ӧó SQLConfigDataSource ҪûʾϢʱ +еġťɷĵ + + SQL Server 6.5 ĸ version 2.65 SQL Server ODBC У +SQL_COPT_SS_PERF_QUERY_INTERVAL Ϊλĵ +ԺΪλKnowledge Base article Q157753 version +3.6 SQL Server ODBC У SQL_COPT_SS_PERF_QUERY_INTERVAL +ѸıΪԺΪλĵ + +ıֻӰ ODBC 3.X API дӦó򣬶Ӱ ODBC +2.X API дӦóЩıӦӰ ODBC Ӧó +Ľ + +ǰ SQL Server ODBC 汾У洢е + PRINT RAISERROR ͬһзϢ version +3.6 SQL Server ODBC УÿһϢͬĽء +ÿһϢһ SQL Ϣ֮䣬 SQLMoreResults + SQL Ϣ DBCC 䣬ȫԵأҪ +ÿһϢ֮ SQLMoreResults + +ǰ SQL Server ODBC 汾Уʱ RAISERROR +with a severity of 11 or higher on the first statement in a batch +or stored procedure ͨ SQLExecuteSQLExecDirect +SQLParamData SQL_ERROR version 3.6 SQL Server ODBC +УSQLExecuteSQLExecDirect SQLParamData ֻڵһ +ûִʱŷ SQL_ERRORڵһִ +κ䣬ʹֻһ򵥵ûзֵ RETURN 䣬 +SQLExecute SQLExecDirect SQL_SUCCESS_WITH_INFOʹ +SQLGetDiagRec SQL_SUCCESS_WITH_INFO Ϣ󣬵λһ +ϵ SQLMoreResults + +ǰ汾洢ĵһʱ + SQLExecute SQLExecDirect SQL_ERROR +һ SQL һʹá 3.6 򷵻 SQL_SUCCESS_WITH_INFO +ʱ SQLMoreResults SQL_NO_DATA ڸ RAISERROR +ر֮ǰûͷŴӶִ SQL 䡣ڴ +Ϣûиܵ SQLCloseCursor +SQLFreeStmt(SQL_CLOSE) SQLMoreResults ͷִ + SQL 䣺 + +CREATE PROCEDURE TestPrc @Parm1 as +IF (@Parm1 IS NULL) +BEGIN + RAISERROR ('Parm1 cannot be NULL', 11, 1) + RETURN +END +SELECT * FROM sysusers WHERE suid = @Parm1 +GO + +ִָ + +SQLExecDirect(hstmt, "{ call TestPrc (NULL) }", SQL_NTS); + +ʹþɰ SQL Server ODBC Ӧóʹ ODBC 2.X +API ʱSQLExecDirect SQL_ERROR SQLGetDiagRec +SQL_NO_DATA SQLError SQL_NO_DATA_FOUND ǿ +еĿִ SQL 䡣 + +ʹ version 3.6 SQL Server ODBC Ӧóд ODBC +3.X API ʱSQLExecDirect SQL_SUCCESS_WITH_INFO +SQLGetDiagRec SQL_NO_DATA ֱ SQLMoreResults +SQL_NO_DATA SQLFreeStmt(SQL_CLOSE) ֮ǰ +ִ SQL 䡣 + +ǰ SQL Server ODBC 汾УӦóִвӰ + UPDATE DELETE ʱSQLExecuteSQLExecDirect +SQLParamData SQL_SUCCESS version 3.6 ڴ£ + SQL_SUCCESS ص ODBC 2.X API дӦó򣬵Ӧ + ODBC 3.X API д򷵻 SQL_NO_DATAǽ +SQL_SUCCESS ODBC 2.X Ӧóǽ SQL_NO_DATA Ȼ +SQLRowCount ODBC 3.X ӦóSQLRowCount Ŀ + +ODBC 3.X ODBC 2.X ض˽صķɰ SQL +Server ODBC 򷵻ֵ ODBC 2.X SQLFetch + SQLExtendedFetch ɴ洢򷵻صսǹϷ +SQL_NO_DATA ʱش롣Version 3.6 ڱ ODBC 2.X Ӧ +ʱôΪȻ SQLMoreResults +SQL_NO_DATA ֮ǰ until SQLMoreResults +**************************************************************** \ No newline at end of file diff --git a/cadVb/OS/SYSTEM/SQLSRV32.DLL b/cadVb/OS/SYSTEM/SQLSRV32.DLL new file mode 100644 index 0000000..2545412 Binary files /dev/null and b/cadVb/OS/SYSTEM/SQLSRV32.DLL differ diff --git a/cadVb/OS/SYSTEM/SSTAB.SRG b/cadVb/OS/SYSTEM/SSTAB.SRG new file mode 100644 index 0000000..06cb386 --- /dev/null +++ b/cadVb/OS/SYSTEM/SSTAB.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\190B7910-992A-11cf-8AFA-00AA00C00905] +@ = "gclclcejjcmjdcccoikjlcecoioijjcjnhng" diff --git a/cadVb/OS/SYSTEM/STDFTCHS.DLL b/cadVb/OS/SYSTEM/STDFTCHS.DLL new file mode 100644 index 0000000..6fabe10 Binary files /dev/null and b/cadVb/OS/SYSTEM/STDFTCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/STDOLE2.TLB b/cadVb/OS/SYSTEM/STDOLE2.TLB new file mode 100644 index 0000000..ecbaf4a Binary files /dev/null and b/cadVb/OS/SYSTEM/STDOLE2.TLB differ diff --git a/cadVb/OS/SYSTEM/SYSINCHS.DLL b/cadVb/OS/SYSTEM/SYSINCHS.DLL new file mode 100644 index 0000000..6dcad56 Binary files /dev/null and b/cadVb/OS/SYSTEM/SYSINCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/SYSINFO.DEP b/cadVb/OS/SYSTEM/SYSINFO.DEP new file mode 100644 index 0000000..89ddeec --- /dev/null +++ b/cadVb/OS/SYSTEM/SYSINFO.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for SysInfo.ocx + +; Default Dependencies ---------------------------------------------- + +[SysInfo.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=SysInfo.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInfo.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[SysInfo.ocx <0007>] +Uses1=SysInDE.dll +Uses2= + +[SysInDE.dll <0007>] +Uses1= +CABFileName=SysInDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInDE.inf + +; ** French (FR) *** +; (000C = French) +; +[SysInfo.ocx <000C>] +Uses1=SysInFR.dll +Uses2= + +[SysInFR.dll <000C>] +Uses1= +CABFileName=SysInFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[SysInfo.ocx <0010>] +Uses1=SysInIT.dll +Uses2= + +[SysInIT.dll <0010>] +Uses1= +CABFileName=SysInIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[SysInfo.ocx <000A>] +Uses1=SysInES.dll +Uses2= + +[SysInES.dll <000A>] +Uses1= +CABFileName=SysInES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[SysInfo.ocx <0011>] +Uses1=SysInJP.dll +Uses2= + +[SysInJP.dll <0011>] +Uses1= +CABFileName=SysInJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[SysInfo.ocx <0012>] +Uses1=SysInKO.dll +Uses2= + +[SysInKO.dll <0012>] +Uses1= +CABFileName=SysInKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[SysInfo.ocx <0404>] +Uses1=SysInCHT.dll +Uses2= + +[SysInCHT.dll <0404>] +Uses1= +CABFileName=SysInCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[SysInfo.ocx <0804>] +Uses1=SysInCHS.dll +Uses2= + +[SysInCHS.dll <0804>] +Uses1= +CABFileName=SysInCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=SysInCHS.inf + diff --git a/cadVb/OS/SYSTEM/SYSINFO.OCX b/cadVb/OS/SYSTEM/SYSINFO.OCX new file mode 100644 index 0000000..929fd28 Binary files /dev/null and b/cadVb/OS/SYSTEM/SYSINFO.OCX differ diff --git a/cadVb/OS/SYSTEM/SYSINFO.SRG b/cadVb/OS/SYSTEM/SYSINFO.SRG new file mode 100644 index 0000000..2e14e12 --- /dev/null +++ b/cadVb/OS/SYSTEM/SYSINFO.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\E32E2733-1BC5-11d0-B8C3-00A0C90DCA10] +@ = "kmhfimlflmmfpffmsgfmhmimngtghmoflhsg" \ No newline at end of file diff --git a/cadVb/OS/SYSTEM/TABCTCHS.DLL b/cadVb/OS/SYSTEM/TABCTCHS.DLL new file mode 100644 index 0000000..1ed9e40 Binary files /dev/null and b/cadVb/OS/SYSTEM/TABCTCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/TABCTL32.DEP b/cadVb/OS/SYSTEM/TABCTL32.DEP new file mode 100644 index 0000000..6aa6008 --- /dev/null +++ b/cadVb/OS/SYSTEM/TABCTL32.DEP @@ -0,0 +1,131 @@ + +; Dependency file for setup wizards. + +[Version] +Version=6.0.81.69 + +; Dependencies for TabCtl32.ocx + +; Default Dependencies ---------------------------------------------- + +[TabCtl32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Version=6.0.81.69 +Uses1=ComCat.dll +Uses2= +CABFileName=TabCtl32.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtl32.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + +; ** German (DE) *** +; (0007 = German) +; +[TabCtl32.ocx <0007>] +Uses1=TabCtDE.dll +Uses2= + +[TabCtDE.dll <0007>] +Uses1= +CABFileName=TabCtDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtDE.inf + +; ** French (FR) *** +; (000C = French) +; +[TabCtl32.ocx <000C>] +Uses1=TabCtFR.dll +Uses2= + +[TabCtFR.dll <000C>] +Uses1= +CABFileName=TabCtFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtFR.inf + +; ** Italian (IT) *** +; (0010 = Italian) +; +[TabCtl32.ocx <0010>] +Uses1=TabCtIT.dll +Uses2= + +[TabCtIT.dll <0010>] +Uses1= +CABFileName=TabCtIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtIT.inf + +; ** Spanish (ES) *** +; (000A = Spanish) +; +[TabCtl32.ocx <000A>] +Uses1=TabCtES.dll +Uses2= + +[TabCtES.dll <000A>] +Uses1= +CABFileName=TabCtES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtES.inf + +; ** Japanese (JP) *** +; (0011 = Japanese) +; +[TabCtl32.ocx <0011>] +Uses1=TabCtJP.dll +Uses2= + +[TabCtJP.dll <0011>] +Uses1= +CABFileName=TabCtJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtJP.inf + +; ** Korean (KO) *** +; (0012 = Korean) +; +[TabCtl32.ocx <0012>] +Uses1=TabCtKO.dll +Uses2= + +[TabCtKO.dll <0012>] +Uses1= +CABFileName=TabCtKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtKO.inf + +; ** Chinese Traditional (CHT) *** +; (0404 = Chinese Traditional) +; +[TabCtl32.ocx <0404>] +Uses1=TabCtCHT.dll +Uses2= + +[TabCtCHT.dll <0404>] +Uses1= +CABFileName=TabCtCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtCHT.inf + +; ** Chinese Simplified (CHS) *** +; (0804 = Chinese Simplified) +; +[TabCtl32.ocx <0804>] +Uses1=TabCtCHS.dll +Uses2= + +[TabCtCHS.dll <0804>] +Uses1= +CABFileName=TabCtCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=TabCtCHS.inf + diff --git a/cadVb/OS/SYSTEM/TABCTL32.OCX b/cadVb/OS/SYSTEM/TABCTL32.OCX new file mode 100644 index 0000000..3b0e257 Binary files /dev/null and b/cadVb/OS/SYSTEM/TABCTL32.OCX differ diff --git a/cadVb/OS/SYSTEM/TLBINF32.DLL b/cadVb/OS/SYSTEM/TLBINF32.DLL new file mode 100644 index 0000000..c89c4eb Binary files /dev/null and b/cadVb/OS/SYSTEM/TLBINF32.DLL differ diff --git a/cadVb/OS/SYSTEM/VB5DB.DLL b/cadVb/OS/SYSTEM/VB5DB.DLL new file mode 100644 index 0000000..469a704 Binary files /dev/null and b/cadVb/OS/SYSTEM/VB5DB.DLL differ diff --git a/cadVb/OS/SYSTEM/VB6CHS.DLL b/cadVb/OS/SYSTEM/VB6CHS.DLL new file mode 100644 index 0000000..fa7e2cc Binary files /dev/null and b/cadVb/OS/SYSTEM/VB6CHS.DLL differ diff --git a/cadVb/OS/SYSTEM/VBAJET32.DLL b/cadVb/OS/SYSTEM/VBAJET32.DLL new file mode 100644 index 0000000..a544c4c Binary files /dev/null and b/cadVb/OS/SYSTEM/VBAJET32.DLL differ diff --git a/cadVb/OS/SYSTEM/VBAME.DLL b/cadVb/OS/SYSTEM/VBAME.DLL new file mode 100644 index 0000000..58e0dfa Binary files /dev/null and b/cadVb/OS/SYSTEM/VBAME.DLL differ diff --git a/cadVb/OS/SYSTEM/VBAR332.DLL b/cadVb/OS/SYSTEM/VBAR332.DLL new file mode 100644 index 0000000..f245934 Binary files /dev/null and b/cadVb/OS/SYSTEM/VBAR332.DLL differ diff --git a/cadVb/OS/SYSTEM/VFPODBC.DLL b/cadVb/OS/SYSTEM/VFPODBC.DLL new file mode 100644 index 0000000..5c02721 Binary files /dev/null and b/cadVb/OS/SYSTEM/VFPODBC.DLL differ diff --git a/cadVb/OS/SYSTEM/VFPODBC.TXT b/cadVb/OS/SYSTEM/VFPODBC.TXT new file mode 100644 index 0000000..ed9b096 --- /dev/null +++ b/cadVb/OS/SYSTEM/VFPODBC.TXT @@ -0,0 +1,231 @@ + ----------------------------------------------------------- + Microsoft Visual FoxPro ODBC Driver Version 6.0 + ----------------------------------------------------------- + + (c) Copyright Microsoft Corporation, 1998 + +Release Notes +January 19, 1998 + +Welcome to the release of the Visual FoxPro ODBC Driver! Please read this important information. +System Requirements + +------------------------ +How to Use This Document +------------------------ + +To view the ReadMe file in Windows Notepad, maximize the Notepad window and click Word Wrap on the Edit menu. To print the ReadMe file, open it in Notepad or another word processor, and then use the Print command on the File menu. + +-------- +CONTENTS +-------- + +1. INSTALLATION NOTES + 1.1 System Requirements + 1.2 What's New in this Release + 1.3 Installing the Driver + 1.4 Adding a Data Source + 1.5 Help Files + 1.6 Naming Conventions + +2. Supported Areas + 2.1 Language Support + 2.2 ODBC 2.5 Compliance + 2.3 Referential Integrity + 2.4 Thread Support + 2.5 dBase Support + 2.6 International Support + +3. UnSupported Areas + +4. Known Issues + +5. Troubleshooting + +6. Books + + +1.1 System Requirements +======================== +To install the Microsoft(r) Visual FoxPro(tm) ODBC driver, you need: + * Windows NT 3.51 (or later. Service Pack 5, recommended) + or Windows 95 (or later). + * 2 MB disk space. + +Important: Visual FoxPro ODBC Driver 1.0 is a 32-bit driver only. Windows 3.1 and Windows for Workgroups platforms are not supported. + +1.2 What's New in this Release +========================= +* Query performance is 20% faster. +* VFPODBC.DLL is smaller (from 1.20MB to ~835KB). +* The SET commands (see Help file for a list of supported SET commands) are now supported +* VERSION( ) is supported through stored procedures. +* Local views are read-only. +* If you insert or update a table with a logical field (a column with a SQL_BIT data type), you can now use 1 (true) and 0 (false) to store a value in a field. When comparing values or in an expression, you must use .T. (true) and .F. (false). +* The 16-bit version of Microsoft Query (version 1.0) now works with the Visual FoxPro ODBC Driver. +* SQLGetInfo( ) and SQL_FILE_USAGE now returns SQL_FILE_QUALIFIER for both database and free table data sources. + + +1.3 Installing the Driver +========================= +To install the Visual FoxPro ODBC Driver, run SETUP.EXE. + +Note: The Visual FoxPro ODBC Driver installation updates the ODBC components to ODBC 2.5 compliance if necessary. See the README25.TXT file in your Windows system directory for additional information on enhancements or features of the ODBC 2.5 components. + + +1.4 Adding a Data Source +========================= +After installing, define a data source: +1. In Control Panel, double-click the 32-bit ODBC icon. +2. Click Add. +3. Select Microsoft Visual FoxPro Driver. +4. In the ODBC Visual FoxPro Setup dialog box, enter a data source name. +5. Select either Visual FoxPro database (.DBC) or Free Table directory. +6. Enter the name of the database or the path to the free table, or click Browse. +7. Click OK and then click Close. + + +1.5 Help Files +========================== +The Visual FoxPro ODBC driver comes with two help files, located in the SYSTEM directory on Windows 95 or the SYSTEM32 directory on Windows NT: + +* ODBCINST.HLP - General ODBC information which contains information on: +* The ODBC driver dialog box +* The options that can be set in the drivers dialog box in the Control Panel +* DRVVFP.HLP Visual FoxPro ODBC Driver Help file which provides information on: +* Installing and Configuring +* Using the Visual FoxPro Driver +* Technical Reference +* ODBC API +* Visual FoxPro Language Reference +* Error Messages + + +1.6 Naming Conventions +========================== +The Visual FoxPro ODBC Driver names columns based on expressions. For example, if you execute the following statement: + + SELECT MIN (customer_id) FROM customers + +the Visual FoxPro ODBC Driver returns min_customerid as the name of the column in the result set. +If you would like to control the resulting field name, use the AS clause, as in this example: + +SELECT MIN(customer_id) AS minimum_custid FROM customers + + +========================== +2. Supported Areas +========================== +The following section describes areas of particular support by the Visual FoxPro ODBC driver. + +2.1 Language Support +========================== +Supported Versions of FoxBase+ and FoxPro Tables +The Visual FoxPro ODBC Driver gives you access to Microsoft(r) FoxBase+(r), FoxPro 1.x, FoxPro 2.x and Visual FoxPro tables. Also, the Visual FoxPro ODBC Driver allows you to access tables that are in a Visual FoxPro database container (.DBC file). + +Note The Visual FoxPro ODBC Driver only allows transactions on tables within a Visual FoxPro database (.DBC file), not free tables. + + +2.2 ODBC 2.5 Compliance +========================== +The Visual FoxPro ODBC driver is ODBC Level 1 API compliant and also implements several Level 2 APIs. All supported APIs have been implemented at this time. Please report any problems you find regarding the APIs. The Help file, DRVVFP.HLP, documents supported functions and acceptable input parameters. In addition, Visual FoxPro SQL extends the SQL functionality available through the driver. See the Visual FoxPro Language Reference for the extended grammar. + + +2.3 Referential Integrity Support +========================== +The Visual FoxPro ODBC driver supports Visual FoxPro rules, triggers, and default values, provided they contain functions that are supported by the driver. See the Help file, DRVVFP.HLP, for details on which Visual FoxPro +language elements are supported. + + +2.4 Thread Support +========================== +The driver is thread-safe. The Visual FoxPro ODBC driver can process queries in the background. For more information, see the "ODBC Visual FoxPro Setup Dialog Box" Help topic. +Remote Views and Parameterized Views +Any time SQLTables( ) is called, remote and parameterized views are excluded from the list. Local views based on parameterized views are not excluded, but will generate errors if you use them. If you call SQLTables( ) with a unique table name, however, you will find views (if they are present) so you can check for name conflicts. + + +2.5 dBase Support +========================== +Supported Versions of dBASE(r) IV Tables +The Visual FoxPro ODBC Driver gives you access to dBASE(r) 4 and earlier tables. +The dBASE(r) files are supported in the following manner: +* dBASE(r) v2.x and 3.x: The files are read without conversion. +* dBASE(r) v4.x and 5.x: If the files do not have memo fields and the table has fewer than 255 columns, the files are read. + +Caution If a dBASE(r) v4.x or 5.x file has associated index files (.MDX, .NDX), the Visual FoxPro ODBC Driver will not update the file properly and the indexes will be corrupted. These files should be accessed read-only. + +* dBASE(r) v4.x and 5.x tables with memo fields: These files require conversion in the full Visual FoxPro for Windows product before using them with the Visual FoxPro ODBC Driver. The driver will not read or convert files. + + +2.6 International Support +========================== +* The driver is DBCS enabled. +* You can now set the collating sequence for index ordering. The list of supported collating sequences can be found in the description of SET COLLATE in the Visual FoxPro Language Reference Help topic. + +The default collating sequence is "MACHINE". The collating sequence can be changed by executing either a SET COLLATE TO Language with the ODBC C API SQLExecDirect( ), by calling SQLPrepare( ) and SQLExec( ) (see the ODBC SDK Reference manual p. 42-44), or by selecting a different collating sequence from the driver options in the Data Source Setup dialog. + +Note The FOXPRO.INT file is installed in the system directory. If it is removed, the collating sequences on Eastern European code page machines will not work. + + +========================== +3. Unsupported Areas +========================== +* Refresh is not supported in rules and triggers. +* The Help file describes the supported commands and functions, and lists the unsupported commands and functions. Any command or function not listed in the Help file is not supported. +* Parameterized views work in a trigger only if the parameter has been assigned a value before the view is opened. Interactive input of a parameter value is not allowed in ODBC. +* Remote views to other ODBC data sources are not supported by the Visual FoxPro ODBC driver; however, local views (non-parameterized) are fully supported. + + +========================== +4. Known Issues +========================== +* If you insert, delete, or update a Visual FoxPro table via the Visual FoxPro ODBC driver, you might get a "Trigger Failed" message. Check for unsupported commands in the trigger. +* INDEX ON is not supported in this release. +* If a table is opened exclusively and the same table is accessed by another user with SET EXCLUSIVE OFF, then the error "Option Value Changed" is returned by Visual FoxPro ODBC Driver instead of "File is in use by another." +* MSQuery returns a "Cannot Open File" error when creating a table with a field name that starts with a number. For example, the field name "1995 Sales" is not allowed. Visual FoxPro does not allow the creation of field names that begin with a number, but MSQuery does. + + +========================== +5. Troubleshooting +========================== +If you have trouble installing the driver, try the following and then try to reinstall again: + +1. Clean-boot the machine. For example, under Windows 95, start in Safe Mode. +2. Close all other applications, including virus software, third-party shells, or toolbars such as Microsoft Office Manager. +3. If the computer has video or system ROM shadowing, disable these options before reinstalling. +4. Check that the .EXE file is not corrupted. + +If you are still having problems: +* Make sure that you are running on a clean configuration when testing issues. + +* Use the Microsoft ODBC Data Source Administrator control panel Tracing tab to help determining the cause of problems. + +* Check to see if the latest build of the driver is installed. To view the version: + +1. In the ODBC Data Source Administrator control Panel, double click the 32bit ODBC icon. +2. Click on the ODBC Drivers tab. + +* You can generate an ODBC Trace Log by using the ODBC Data Source Administrator control Panel: + +1. In the Control Panel, double click the 32bit ODBC icon. +2. Select the Tracing tab. +3. Specify a When to trace option. +4. Specify a log file name. +5. Click Start Tracing Now. + +Now, when you execute your code, all the C ODBC API calls, their input parameters, and their output are written to the log file. The ODBC log file is ASCII text that you can view in any standard ASCII text editor such as Word, Notepad, or WordPad. Occasionally, it might be necessary to include the trace log in a bug report. Since the ODBC trace log can be lengthy, copy only the last 4 or 5 function calls and paste them into a separate document before sending the bug report. + + +========================== +6. Books +========================== +Microsoft ODBC 2.0 Programmer's Reference and SDK Guide (ISBN#: 1-55615-658-8 from Microsoft Press) provides basic reference information. + +Inside ODBC (ISBN#: 1-55615-815-7 from Microsoft Press) provides a good background on the development of the ODBC specifications and a CD with ODBC code examples. + +Database Developer's Guide with Visual C++ (ISBN#: 0-672-30613-1 from Sams Publishing) has several good C++ examples that use the ODBC API. + + + +========================== + diff --git a/cadVb/OS/SYSTEM/VSDBFLEX.SRG b/cadVb/OS/SYSTEM/VSDBFLEX.SRG new file mode 100644 index 0000000..4739768 --- /dev/null +++ b/cadVb/OS/SYSTEM/VSDBFLEX.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\72E67120-5959-11cf-91F6-C2863C385E30] +@ = "ibcbbbebqbdbciebmcobmbhifcmciibblgmf" diff --git a/cadVb/OS/SYSTEM/VSEXT.SRG b/cadVb/OS/SYSTEM/VSEXT.SRG new file mode 100644 index 0000000..a7ddb4e --- /dev/null +++ b/cadVb/OS/SYSTEM/VSEXT.SRG @@ -0,0 +1,30 @@ +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Microsoft Development Environment] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Microsoft Development Environment\Microsoft Development Environment 6.0 (Administrative)] +@="HKEY_LOCAL_MACHINE\\Software\\Microsoft\\VisualStudio\\6.0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Microsoft Development Environment\Microsoft Development Environment 6.0 (Administrative)\LoadBehaviors] +"None"="dword:00000000" +"Startup"="dword:00000001" +"Command Line"="dword:00000004" +"Command Line / Startup"="dword:00000005" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Microsoft Development Environment\Microsoft Development Environment 6.0 (Administrative)\Options] +"CommandLine"="dword:00000001" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Microsoft Development Environment\Microsoft Development Environment 6.0 (User)] +@="HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\6.0" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Microsoft Development Environment\Microsoft Development Environment 6.0 (User)\Options] +"CommandLine"="dword:00000001" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Microsoft Development Environment\Microsoft Development Environment 6.0 (User)\LoadBehaviors] +"None"="dword:00000000" +"Startup"="dword:00000001" +"Command Line"="dword:00000004" +"Command Line / Startup"="dword:00000005" + + + + + diff --git a/cadVb/OS/SYSTEM/VSHELP.DLL b/cadVb/OS/SYSTEM/VSHELP.DLL new file mode 100644 index 0000000..22c9a15 Binary files /dev/null and b/cadVb/OS/SYSTEM/VSHELP.DLL differ diff --git a/cadVb/OS/SYSTEM/WBCLSDSR.OCX b/cadVb/OS/SYSTEM/WBCLSDSR.OCX new file mode 100644 index 0000000..808f6c6 Binary files /dev/null and b/cadVb/OS/SYSTEM/WBCLSDSR.OCX differ diff --git a/cadVb/OS/SYSTEM/WBCSDCHS.DLL b/cadVb/OS/SYSTEM/WBCSDCHS.DLL new file mode 100644 index 0000000..8c840f6 Binary files /dev/null and b/cadVb/OS/SYSTEM/WBCSDCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/WINDBVER.EXE b/cadVb/OS/SYSTEM/WINDBVER.EXE new file mode 100644 index 0000000..40f9805 Binary files /dev/null and b/cadVb/OS/SYSTEM/WINDBVER.EXE differ diff --git a/cadVb/OS/SYSTEM/WINSKCHS.DLL b/cadVb/OS/SYSTEM/WINSKCHS.DLL new file mode 100644 index 0000000..3481cf6 Binary files /dev/null and b/cadVb/OS/SYSTEM/WINSKCHS.DLL differ diff --git a/cadVb/OS/SYSTEM/WINSOCK.SRG b/cadVb/OS/SYSTEM/WINSOCK.SRG new file mode 100644 index 0000000..11f57bb --- /dev/null +++ b/cadVb/OS/SYSTEM/WINSOCK.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\2c49f800-c2dd-11cf-9ad6-0080c7e7b78d] +@ = "mlrljgrlhltlngjlthrligklpkrhllglqlrk" diff --git a/cadVb/PVB60密钥874-0166152.rar b/cadVb/PVB60密钥874-0166152.rar new file mode 100644 index 0000000..77f9889 Binary files /dev/null and b/cadVb/PVB60密钥874-0166152.rar differ diff --git a/cadVb/READMEDT.HTM b/cadVb/READMEDT.HTM new file mode 100644 index 0000000..0ae49a8 --- /dev/null +++ b/cadVb/READMEDT.HTM @@ -0,0 +1,121 @@ + + + +Microsoft Visual ݿ⹤ļ + + + + + + + + + + + + + + + +

        Microsoft Visual ݿ⹤ļ

        + +

        (C) 1998 Microsoft Corporation. Ȩ

        + +

        ĵеƷ͹˾Ӧߵ̱ꡣ

        + +

        Microsoft Visual ݿ⹤ļв Microsoft Visual Studio -- Windows Internet ϵͳһṩĵصϢĵеϢȰϵͳаϢ¡ĵĺܶ⽫ںİ汾нõ

        +

        й Visual Studio 6.0 װƷһ㰲װ⣬ͬһ̨ͬʱװ Visual Studio ƷϢװעļ (install.htm) йذϵͳ⣬ MSDN- Microsoft ļ

        + + + + + + + + +

        - 뵥µһĿ

        +

        ע    Ҫڱļвij⣬ȷĿ¼ебⶼѱչһͿ֪ʱ TOC ҵʵ⡣

        + + +

        Microsoft Visual ݿ⹤е

        + +

        ѷֵ

        + + + +

         

        + + + + + +

        Microsoft Visual ݿ⹤е

        +

        +Ҫ˽һ汾 Microsoft Visual ݿ⹤е MSDN Visual Studio 6.0 ĵĿ¼вҡVisual ݿ⹤ߵⲿλ Visual Studio ĵڵIJο֡

        + + +

        Ѿֵ

        +

        +汾 Visual ݿ⹤ѾЩ⡣ضƷص⣬ӦƷļ

        + +

        ֻ֧µ MS ODBC OLE DB

        +

        ʹɰ汾͵Ժ Visual ݿ⹤һʹã Visual ݿ⹤ֻ֤ܹ֧ Microsoft ODBC OLE DB κ֤ʹõȷġ +

        + +

        ӵһ趨ݿʱʾȷ

        +

        ӵһ趨ݿʱʾȷЧַȷݿеƥ䡣

        + +

        Ҫ SQL Server Service Pack 3

        +

        Ҫ SQL Server 6.5 ʹ Visual ݿ⹤Ҫ SQL Server Service Pack 3ʹ Visual ݿ⹤֮ǰȷѾװ Service Pack 3 ߸߰汾

        + +

        Microsoft(R) Visual Basic(R) й

        + +

        Oracle ݿɱѯ

        +

        ʹ Microsoft OLE DB provider for Oracleһ Oracle ݿɱѯͲȷС Microsoft ODBC ݿӡ +

        + +

        Ĭ²ʾеIJѯ

        +

        ʹͼһʱʵһSELECT * FROM table򿪲ѯҪ Visual Basic д򿪡ͼ񡱺 SQL ͼ˵еʾͿѡ򿪻߹رЩ

        + + +

         

        +

         

        +

         

        +

         

        +

         

        +

         

        +

         

        + + +
        + + diff --git a/cadVb/READMERP.HTM b/cadVb/READMERP.HTM new file mode 100644 index 0000000..207eb45 --- /dev/null +++ b/cadVb/READMERP.HTM @@ -0,0 +1,1247 @@ + + + + + +Microsoft Repository ļ + + + + + + + + + + + + + + + + + + + + + +

        Microsoft Repository 2.0 ļ

        + +

        (C) 1998 Microsoft Corporation. Ȩ

        + +

        Repository ļв Microsoft(R) Visual Studio -- Windows Internet ϵͳһṩĺĵصϢĵеϢȰϵͳаϢ¡ĵںİ汾нõ

        + +

        й Visual Studio 6.0 װƷһ㰲װвƷװοװעļ +(install.htm)

        + +

        й Visual Studio װƷϵͳ⣬ת MSDN(TM), Microsoft ļ

        + + + + + + + +

        + + + + +

        Repository +

        + + + + + +

        װ

        +
        + +

        Ҫ㣺   ְйذװ Repository 2.0 ҪϢڿʼװ֮ǰϸĶĿ

        + + +

        Repository װע

        + +

        Ӳϵ Repository ļ

        +
        + + + + +

        Repository 2.0 йص

        + + + + + +

        ϸϢ

        + + + + + + + + + + + + +


        +

        + +

        Repository

        + +


        +

        + +

        ʲô Microsoft Repository

        + +

        Microsoft Repository һֿʵֶͲϢģ͵ļ̺йߵϢνָκҪϢ־иӽṹ - ĵͼWeb ҳȡMicrosoft Repository һϵݿб repositoryݡ֧ݿϵͳMicrosoft(R) SQL Server 6.5 ߸߰Լ Microsoft Jet ݿ 3.0 ߸߰档

        + +

        + +

        + +

        Microsoft Repository 2.0

        + +

        Microsoft Repository 2.0 ڱ Microsoft Repository 1.0 Եͬʱ԰汾Ŷӿڽ˼ǿ

        + +

        Ҫ¹ܰ + +

          +
        • İ汾 repository û repository Ķ汾
        • +
        • ϵİ汾 repository û֮ϵĶ汾
        • +
        • վṩһ repositoryڴ repository УûԶԶ͹ϵ˽а汾вǩ/ǩģûûĹվЩϢǿɼԼûԼЩı䡣ڴûĵ˵УµĹϸ
        • +
        + +


        +

        + +

        2.0 ûҪעҪϢ

        + +

        ûӦע + +

          +
        • Microsoft Repository 2.0 ڹܺͽӿ 1.0 ݵġʹ repository ݿӦóֻʹ 1.0 棬ôͲᷢݵͬģʹ repository ݿӦó򶼳ֿǵ˰汾͹վôЩӦóӦdzɹġƼͬһ repository ݿϻʹÿǰ汾ӦóͲǰ汾վӦó
        • +
        • Ϊ˰汾Microsoft Repository 2.0 SQL Microsoft Repository 1.0 һչ Щͨ repository ӿڶֱӷ SQL ӦóҪ޸IJѯṩͼԱ֤ļԡ
        • +
        • ֲ (MigRepV2.exe) Microsoft Repository ĻݿϢ 1.0 תΪ 2.0 (SQL SQL Jet Jet)ֲ֮ǰѾ Microsoft Repository 2.0 (V2 ) עᡣע⣬ֲֻܵش 1.0 浽 2.0 С
        • +
        • Microsoft Repository 2.0 ִֽ֧е WRITETHROUGH ģʽ
        • +
        • Microsoft Repository 2.0 ֧ Intel x86 Alpha ƽ̨
        • +
        + +

         

        + +


        +

        + +

        װ

        + + + + +

        Repository װע

        + +

        Microsoft Repository İװ Visual Basic װɵġ

        + +

        Microsoft Repository ҪݷѾװĬϵ£ݷİװҲ Visual Basic İװɵġȻѡ񲻰װݷװһʹ Microsoft Repository ĵߣô Visual Basic 98 ʱͻд

        + +

        " Microsoft Repository ݿʱһϵͳ 126 (Microsoft Access (*.MDB))ָܱװءMicrosoft Repository Add-in for Visual Basic ڹرա"

        + +

        Ҫ밲װݷ

        + +


        +

        + +

        Ӳϵ Repository ļ

        + +

        Щļӵ Windows SYSTEM ( SYSTEM32) Ŀ¼У + +

          +
        • REPUTIL.DLL - Repository ʵó
        • +
        + +

        Щļӵ "Program Files\Common Files\Microsoft +Shared\Repostry" Ŀ¼У + +

          +
        • REPODBC.DLL - Repository
        • +
        • REPRC.DLL - Repository Դ
        • +
        • REPBROWS.EXE - Repository
        • +
        • REPBRRC.DLL - Repository Դ
        • +
        • MIGREPV2.EXE - ֲû
        • +
        • MIGV2RC.DLL - ֲ򵼵Դ
        • +
        • MIGV2.DLL - ֲ򵼵㷨
        • +
        • REPCDLG.DLL - Repository һԻ
        • +
        • REPCDLG.OCX - Repository һԻ ActiveX ؼ
        • +
        • REPCDRC.DLL - Repository һԻԴ
        • +
        + +

        Щļӵ "Program Files\Common Files\Microsoft +Shared\Repostry\infoMdl" Ŀ¼У + +

          +
        • REPCDE.DLL - Ϣģ
        • +
        • REPCOM.DLL - COM Ϣģ
        • +
        • REPDTM.DLL - Ϣģ
        • +
        • REPGEN.DLL - һϢģ
        • +
        • UML.DLL - ͳһģͻ (UML) Ϣģ
        • +
        • REPUMX.DLL - UML չϢģ
        • +
        • REPVCM.DLL - Visual ģ
        • +
        + +

        Щļӵ Visual Basic Ŀ¼У + +

          +
        • REPVB.DLL - Visual Basic Repository Add-in
        • +
        • REPVBRC.DLL - Repository Add-in Դļ
        • +
        • REPVBTIM.DLL - MDO ģ͵Ͷ
        • +
        + +

        + +


        +

        + +

        Repository 2.0 йص

        +
        + + + + +

        Repository 1.0 Repository 2.0 ֮IJ

        + + +

        Repository 1.0 ÷

        + +

        repository ݿ Repository 1.0 IJѾֻͨͼϢģͣô +Repository 2.0 ͬһӦóͻһЩ졣ЩڶԹϵĴϣУ

        + +
          +
        • Repository 1.0 УһӦóĹϵѾڣôϾͻƶԳͻ Repository 2.0 УֻеѾڵĹϵλڻ(磬Ϊͬһ׵һֻѾ)ʱŻƶԳͻƶԳͻύʱ̲
        • +
        + +
          +
        • Repository 1.0 еöӣЩԹϵϵģ + о̬ݣڼһµö֮ǰӵĿ֡ Repository 2.0 УöǶ̬ģӵĿϾͻöг֡
        • +
        + +
          +
        • Repository 1.0 У IRelationshipCol::Insert() + еIJλôڼϵĵǰϼþͱ IRelationshipCol::Add() + Repository 2.0 УָIJλôڵǰĺϼôþͽΪ IRelationshipCol::Add()ڸߵIJλãýһΪûŷһ(κⶼDzõı)
        • +
        + +
          +
        • Repository 2.0 УһδĿļʵ IRelationshipCol::Insert() һ󡣶 Repository 1.0 УŹģýڳʼλִ IRelationshipCol::Add()
        • +
        + + +

        ģʽ Repository 1.0 Repository 2.0 ÷

        + +

        һ Repository 1.0 Ӧó Repository 2.0 ǿʵֵģУͬһ repository İ汾ӦóɵġȻ뿼ǵ汾ѧԼһЩԷǰ汾Ӧó˵ɼ塣 + Repository 2.0 Ӧóһ repository ݿна汾͹վô Repository 1.0 ӦóݿʱֻܿЩӰ졣һݿееӦóѭ Repository 1.0 ѧôͲЩӰ졣ᵽӰ죬ܳЩ

        + +
          +
        • Repository 1.0 Ӧóܹʹ get_Object() (ѱϰ汾)ɾö(汾ɾ)Ȼһʹ get_Object() (εýһ汾)
        • +
        + +
          +
        • Ϊ Repository 1.0 еĶûбᣬ Repository 1.0 и´ʧܡǣ Repository 2.0 УжԶ汾ǩ汾еĸ²(Ժͳʼϸ)ʧܡ
        • +
        + +
          +
        • Repository 2.0 Уһǩ汾кİ汾еɾʧܡ Repository 1.0 򲻻
        • +
        + +
          +
        • Repository 1.0 У IRelationship::Delete() ȫɾ˹ϵʼĿĶ϶ٴڡ Repository 2.0 УĿĶ˿ʼʼ汾κĿİ汾Ĺϵɾ֮󽫼ڡʼ˿ʼôӸð汾Ŀİ汾Ĺϵɾ IRelationshipCol::Remove() ITargetObjectCol::Remove() ˵Ҳơ
        • +
        + +
          +
        • Repository 1.0 Уһͬ͹ϵĿģɾĴڴ˶ֹ Repository 2.0 ֣Ҫɾڲɸıİ汾 (ǩĹվ)ֹӵдӶʼ汾(Ҳ˵ûд)Ĺϵ(κ)İ汾ֹ
        • +
        + + +

        SQL + +

          +
        • Ϊ˽а汾Repository 2.0 SQL ˹㷺޸ġ + һ repository ݿжֻһ汾ôڴݿִе Repository 1.0 SQL ѯӦSQL ͼԼУûʲôı䡣

          +
        • +
        • һڶĶ汾 repository ִеepository 1.0 SQL ѯִɣǣӦøݰ汾м顣ijЩ£ѯܻ᷵ͬһĶ汾һ Repository 1.0 Ӧóʵֵġ

          +
        • +
        • Repository 2.0 У RTblSites û NextLocalID һС

          +
        • +
        • RTblClassDefs ӵһΪ VerPropDescs + Уඨ Repository 2.0 еıλá PropDescs н null ֵٱʹádzڼԵĿǣԾɱһС

          +
        • +
        + + +

        + +

        ±ʾ Repository 1.0 Repository 2.0 ֮졣

        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        V1 V2
        IRepositoryItem::get_Item()Χ + EREP_BADPARAMSΧ + DISP_E_BADINDEX
        IRelationshipCol::Insert()

        ITargetObjectCol::Insert()

        ûģInsert ڼϽβ롣δļ(EREP_COL_NOT-SEQUENCED)Ŀļ(EREP_RELSHIP_ORGONLY)Insert ʧܡ
        IRelationshipCol::Move()

        ITargetObjectCol::Move()

        δ򼯺ϺĿļϣʧܲ EREP_RELSHIP_ORGONLYδļϣʧܲ EREP_COL_NOT-SEQUENCEDĿļϣʧܲ EREP_RELSHIP_ ORGONLY
        IRepositoryObjectVersion::put_Name() + EREP_OBJ_NO-NAMING-RELSHIP ûбӵС REP_OBJ_NONAMING-RELSHIP + ӵС
        ΨһϣΪ "B" Ŀ B ӵһΨһ + EREP_RELSHIP_DUPENAME + EREP_RELSHIP_EXISTS
        IRepositoryItem::get_Name()һδĹϵɹ + ( "0")ʧܡ
        IRelationshipCol::get_Item()

        ITargetObjectCol:: get_Item()

        INTIDOBJID + Index Name OBJIDIndex + Name
        SQL Server ϵ ExecuteQuery()ڽм INTID Сʽתܽеκʱ򣬲 INTID
        ˢ¶ʵˢԣȻˢ¶ˢ¶Ȼˢԡ
        + + +

         

        + + + + +

        + +

        Ӧ IRepositoryODBC::ExecuteQuery() Ķ󼯺װع̿첽еġô˷߳ӦüװǷɡ +߳ͼװؽйжȡݡˢ¼ϡ߽һöӣôֱ߳̽ˢΪֹ

        + + +

        ־

        + +
          + +
        • / "async" ѡ
        • +
        + +
        + +
        +
        RODBC_RESET_OPTIONS = 1  // ѡ
        +
        RODBC_ASYNCH = 2 +         // 첽ѯִ
        +
        + +
        +
        + +
          + +
        • װ״̬
        • +
        + +
        +
        +
        READY = 1 +                // + װ
        +
        INPROGRESS = 2 +           // װڽ
        +
        CANCELLED = 3 +            // װѾȡ()
        +
        FAILED = 4 +               // + װʧ (ԭδ֪)
        +
        +
        + + +

        µĽӿ

        + +
          + +
        • IObjectCol2 -- ̳ IObjectCol.
        • +
        + +
        +

        ӵķ

        +
        + +
        +
          +
        • LoadStatusüϵװ״̬
        • +
        +
        + +
        +
        +
        +
        +
        +
        +
        HRESULT LoadStatus(long *piStatus) +               +     // Automation
        +
        HRESULT get_LoadStatus(long *piStatus  +          // COM
        +
        +
        +
        +
        + +
          +
          +
          piStatus
          +
          [out, retval]
          +
          READY/INPROGRESS/CANCELLED/FAILED ֮һ
          +
          +
        + +
        +
        +
        ֵ
        +
        +
        + +
          +
          +
          ɹͷ S_OKûṩ򷵻 EREP_BADPARAMS
          +
          +
        + +
        +
          +
        • Cancelȡڽеװز
        • +
        +
        + +
        +
        +
        ǩ
        +
        +
        +

        HRESULT Cancel()

        +
        +
        + +
        +
        +
        ֵ
        +
        +
        + +
        +
        +
        S_OK
        +
        +
        + +
          +
        • IRepositoryODBC2 -- ̳ IRepositoryODBC
        • +
        + +
        +

        ӵķ

          +
        • GetOption װѡֵ
        • +
        +
        + +
        +
        +
        ǩ
        +

        HRESULT GetOption(long iOption, VARIANT + *psValue)

        +
        +
        +
        +
        +
        iOption 
        +
        [in]
        +
        RODBC_ASYNCH.
        +
         
        +
        psValue
        +
        [out, retval]
        +
        VARIANT_TRUE VARIANT_FALSEȡǷѾ RODBC_ASYNCH ѡ
        +
         
        +
        ֵ
        +
        +
        ɹͷ S_OKָκ򷵻 EREP_BADPARAMS
        +
        +
        + +
        + +
      9. SetOption: Ϊϵװѡҽݿϵͳ֧ async ʱܹ async ־
      10. +
        +
        + +
        +
        +
        +
        ǩ
        +
        HRESULT SetOption(long iOption, VARIANT + sValue)
        +
        +
        +
        +
        iOption RODBC_ASYNCH sValue TRUE װص async ģʽ
        +
        iOption RODBC_ASYNCH sValue FALSE async ģʽ
        +
        iOption RODBC_RESET_OPTIONS װص async ģʽ
        +
        +
        +
        + +
        +
        +
        ֵ
        +

        ɹͷ S_OK iOption RODBC_ASYNCH sValue ָ˲ TRUE FALSE ֵ򷵻 EREP_TYPE_COLMISMATCH

        +
        +
        + + +

        ı + +

          + +
        • ObjectCol ֧ IObjectCol[default] + IObjectCol2
        • +
        + +
          +
        • async ģʽãIObjectCol2::Refresh() 첽ˢ¶󼯺 + (װض󼯺ϲˢĿĶ) +ô˷߳ӦüˢǷɡ߳ͼˢ½йжȡݡ + ˢ¼ϡ߽һöӣôֱ߳̽ˢΪֹ
        • +
        + + + + +

         

        + +

        Զʹõ SQL API

        + + + + +

        ʾ Repository ʶ API ͣ + SQL ͡Щֵ PropertyDef APIType SQLType Сй SQL API ֮תϢο ODBC Աοֲᡣ

        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ʶ API
        API

        ֵ

        SQL_C_UTINYINT

        -28

        SQL_C_STINYINT

        -26

        SQL_C_ULONG

        -18

        SQL_C_USHORT

        -17

        SQL_C_SLONG

        -16

        SQL_C_SSHORT

        -15

        SQL_C_BINARY

        -2

        SQL_C_TINYINT

        -6

        SQL_C_BIT

        -7

        SQL_C_CHAR

        1

        SQL_C_LONG

        4

        SQL_C_SHORT

        5

        SQL_C_FLOAT

        7

        SQL_C_DOUBLE

        8

        SQL_C_DATE

        9

        SQL_C_TIME

        10

        SQL_C_TIMESTAMP

        11

        + + +

         

        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        SQL

        ֵ

        SQL_LONGVARCHAR

        -1

        SQL_BINARY

        -2

        SQL_VARBINARY

        -3

        SQL_LONGVARBINARY

        -4

        SQL_BIGINT

        -5

        SQL_TINYINT

        -6

        SQL_BIT

        -7

        SQL_CHAR

        1

        SQL_NUMERIC

        2

        SQL_DECIMAL

        3

        SQL_INTEGER

        4

        SQL_SMALLINT

        5

        SQL_FLOAT

        6

        SQL_REAL

        7

        SQL_DOUBLE

        8

        SQL_DATETIME

        9

        SQL_TIME

        10

        SQL_TIMESTAMP

        11

        SQL_VARCHAR

        12

        + + +

         

        + +

        + +

        + +

        IRepository2 ӿµԣԱָʾݿļİ汾 + +

          +
        • MajorDBVersion
        • +
        + +
        +
        ǩ
        +
        +
        HRESULT MajorDBVersion(long *piMajorDBVersion) +             // Automation
        +
        HRESULT get_MajorDBVersion( long *piMajorDBVersion) +      // COM
        +
        +
        +
        +
        piMajorDBVersion
        +
        [out, retval]
        +
        ݸʽĵһ Repository 汾汾š
        +
        +
        + +
          +
        • MinorDBVersion
        • +
        + +
        +
        ǩ
        +
        +
        HRESULT MinorDBVersion(long *piMinorDBVersion) +             // Automation
        +
        HRESULT get_MinorDBVersion( long *piMinorDBVersion) +      // COM
        +
        +
        +
        +
        piMinorDBVersion
        +
        [out, retval]
        +
        ݸʽĵһ Repository 汾Ĵΰ汾š
        +
        +
        + + + + +

        + +

        IRepository2 ӿһ· CreateObjectEx() Ϊָ͵ Repository 󴴽һ汾 +´İ汾һ-汾ʶʶΪһݵ˷Уһ IRepository::CreateObject() ͬ IRepository::CreateObject() Repository ´汾һ ID﷨£

        + +
        +
        ǩ
        +
        +
        HRESULT IRepository2::CreateObjectEx(
        +
        VARIANT TypeID,
        +
        VARIANT ObjectID,
        +
        VARIANT ExtVersionID,
        +
        IRepositoryObjectVersion **ppRepObjVer);
        +
        +
        +
        +
        TypeID
        +
        [in]
        +
        IRepository::CreateObject ͬ
        +
         
        +
        ObjectID
        +
        [in]
        +
        IRepository::CreateObject  ͬ
        +
         
        +
        ExtVersionID
        +
        [in]
        +
        ǽĵһ汾Ķ-汾־ (20 ֽ)
        +
         
        +
        ppRepObjVer
        +
        [out]
        +
        ָ´汾 IRepositoryObjectVersion ָ
        +
        +
        + +

         

        + +

        Microsoft Repository 2.0 ֪

        + + +

        1. ӿڼطйص

        + +

        IRepositoryObjectVersion + +

          +
        • MergeVersion()ϵ뵽źļϵĩβ
        • +
        + + +

        IRelationshipCol ITargetObjectCol + +

          +
        • Remove(): һź˳ļɾԪز¼ϵ˳
        • +
        + + +

        IVersionAdminInfo + +

          +
        • VersionModifyTime() ʼϵĿĶ󼯺ϱ޸ʱı䡣
        • +
        • ModifyByUser() ʼϵĿĶ󼯺ϱ޸ʱı䡣
        • +
        + + +

        IRepository2 + +

          +
        • CreateObject(): ֻܴӹ repository еöܴһվеá + İ취ͨ repository 󲢽˶ڹվС
        • +
        + + +

        IClassDef IInterfaceDef + +

          +
        • ObjectInstances()ڹվΧ
        • +
        + +

         

        + +

        2. Repository

        + +

        Repository ĵᵽһϵһƸĿĶʱƵ󳤶ɳ RELSHIPNAMESIZE 260ʵֵ 249

        + +

         

        + +

        3. ƵĹ

        + +

        ϵͶƱѭЩ

        + +
        +
        +
        1. ƵijȲó 249 ַ
        +
        2. пʹκַ
        +
        3. ƵĿʼͽβ԰ոҲһյַ
        +
        4. ȫɿոɣͱһַ
        +
        +
        + +

        Щʹõƻ߱ڱеƶá磬 + "IFolder" ӿڱЩԼ

        + +
        +

        oFolder("IFolder").FolderName

        +
        +
        + +

                --

        + +
        +

        oFolder(sIFolder).FolderName

        +
        +
        + +

               У sIFolder = "IFolder"

        + +

        ǣⲿ(ƻ߹ϵ)˵Щָԭ򲢲׼ȷ磬Ĺϵ "RcFolderContains"

        + +
        +

        oFolder("IFolder").RcFolderContains.Count

        +
        +
        + +

        ַΪ 127 Visual Basic 255 ֮⣬ Microsoft Visual Basic

        + +

         

        + +

        4. 洢

        + +

        Ĵ洢ͨڱǰַ "R_i"ɵġΪǶһ޶ģĴ洢̵ҲǶһ޶ġǣƵijȴ MaxIdentifierLength -3 +ôƵ㷨ͻʧܡһ㣬û +ṩһƳȴ MaxIdentifierLength-3 ıṩƻᵼ´ EREP_BADNAME

        + +

        ûΪһӿṩƣ潫Զ +ӽӿƲơӿƵĴͷĸ"I"ȥʣµijС MaxIdentifierLength -4ôͽʹýӿڵΪơҪӿڵƽضΪ MaxIdentifierLength-7ǰ׺ R_i ֮ǰ 4 ַ(Ϊ "uniqifier")ӵԱʹΪһ޶ơ

        + +

        ʹIJô洢̡һIJĿʼַ + "@" ҳȲó MaxIdentifierLength +ˣƣͬʱҲƣijȲó MaxIdentifierLength-1

        + +

        MaxIdentifierLength ֵ + +

          +
        • SQL Server 6.5 Ϊ 30 ַ
        • +
        • SQL Server 7.0 Ϊ 128 ַ
        • +
        + + + + +

         

        + +

        5. Ķ

        + +

        Щ +ûб Repository ļУ

        + +
        +
          +
        • RTblSumInfo
        • +
        • RTblNamedObj
        • +
        • RTblVersionAdminInfo
        • +
        +
        + +

        ˵Щƺ͡

        + +

         

        + +

        RTblSumInfo

        + +

        RTblSumInfo һ +ضӿصıжӦڱ ISummaryInformation ӿڽʾԡĬϵ£ Repository Ϣģ͵඼ûִ ISummaryInformation +ˣĬ Repository ݿв RTblSumInfo +෴ Repository Ϊ˽ʡռʡǣһ Repository вκִ ISummaryInformation ࣬ +Repository ʹñ

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        IntIDRTIntIDڲʶ
        Z_BranchID_ZRTBrIDָʾ汾ͼеһ֧а˱ֵõķΧ
        Z_VS_ZRTVerIDһ֧ڰ汾ʶָʾ˱ֵõķΧ½硣
        Z_VE_ZRTVerIDһ֧ڰ汾ʶָʾ˱ֵõķΧϽ硣
        עRTLongStringעֶΡ
        ShortDescRTLongStringԶ
        + +

         

        + +

        RTblNamedObj

        + +

        RTblNamedObj һ +ضӿصıжӦڱ INamedObject ӿڽʾԡĬϵ£Repository Ϣģ͵඼ûʹ INamedObject +ˣĬ Repository ݿв RTblNamedObj +෴ Repository Ϊ˽ʡռʡǣһ + Repository κʹ INamedObject ࣬ +Repository ʹñ

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        IntIDRTIntIDڲʶ + class.
        Z_BranchID_ZRTBrIDָʾ汾ͼеһ֧а˱ֵõķΧ
        Z_VS_ZRTVerIDһ֧ڰ汾ʶָʾ˱ֵõķΧ½硣
        Z_VE_ZRTVerIDһ֧ڰ汾ʶָʾ˱ֵõķΧϽ硣
        NameRTLongStringơ
        + +

         

        + + +

        RTblVersionAdminInfo

        + +

        RTblVersionAdminInfo һ +ضӿصıжӦڱ IVersionAdminInfo ӿڽʾԡĬϵ£ Repository Ϣģ͵඼ûʹ IVersionAdminInfo +ˣĬ Repository ݿв RTblVersionAdminInfo +෴ Repository Ϊ˽ʡռʡǣһ + Repository κʹ IVersionAdminInfo ࣬ +Repository ʹñ

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        IntIDRTIntIDڲʶ
        Z_BranchID_ZRTBrIDָʾ汾ͼеһ֧а˱ֵõķΧ
        Z_VS_ZRTVerIDһ֧ڰ汾ʶָʾ˱ֵõķΧ½硣
        Z_VE_ZRTVerIDһ֧ڰ汾ʶָʾ˱ֵõķΧϽ硣
        VersionCreateTimeDate/Timeð汾ʱ䡣
        VersionModifyTimeDate/Time汾޸ĵʱ䡣
        CreateByUserRTLongStringð汾û
        ModifyByUserRTLongString޸ĸð汾û
        + +

         

        + +

        6.

        + +
          +
        • ֲ (MigRepV2.exe)Repository (Repbrows.exe)Լ Visual (VCM) ֧ļ DSN (Դ)Щֻ֧ Access SQL Server ͵ DSN
        • +
        + +
          +
        • ֲУ SQL Server ͵ DSN ʹֲ򵼣ϵͳҪ +һûƺӦ룬Ѿʹ Windows NT ֤ѡ( ODBC Դ) +Ը DSN á
        • +
        + +
          +
        • "ϲ汾ʾ" Уڶһ׼ȷĵط + ںϲ֮󣬰汾 V8 Ӧô(Large, Red, null) Ϊ (Medium, Red, null)
        • +
        + +
          +
        • CollectionDefFlags öٵĵûᵽµı־ +

          COLLECTION_NEWORGVERSIONSDONOTPARTICIPATE = 64

          +

          ־ͬһöеһ־صģ

          +

          COLLECTION_NEWORGVERSIONSPARTICIPATE = 32

          +
        • +
        + +
        +

        ־ĺ෴ˣͲͬһʱ־ + ǣΪ־Ĭöͬһʱ־ + ־ Repository Ͱ COLLECTION_NEWORGVERSIONSPARTICIPATE ־õķʽ + Ҳ˵ڴ repository һ°汾ʱ Microsoft Repository ȷʵµijʼ + һԭȴ汾һ汾С

        +
        + +
          +
        • SQLSize Ϊ 65535 ֵͻὫֵ 65536 SQLSize Ϊõ᷵ش
        • +
        + +
          +
        • "ֲ㷨" + RTblRelColPairs RTblTimestamp Repository 2.0 ݿУ + һڣڶѾ RTblVersionAdminInfo ȡ
        • +
        + +

         

        + +

        ϸϢ

        + +

        ԴЩ;й Microsoft Repository ϸϢ + +

          +
        • Microsoft Repository Web վϲϢ (http://www.microsoft.com/repository) +ҲԴվ Repository ĵ
        • +
        • Microsoft Visual Studio 6.0 ĵУ Repository + ԱָRepository οֲᡢRepository Լת Repository 1.0 ݿ⡣ҪλЩĵҪλЩĵӶʼ·ң
          +
          +

          MSDN Visual Studio 6.0
          +     Visual Studio ĵ
          +         ƺͷ
          +              Microsoft + Repository 2.0 ĵ

          +
          +
          +
        • +
        • Microsoft Visual Basic 6.0 ĵУ Repository Ա Visual Basic ָϺ Microsoft Repository Visual Basic + Add-in οֲᡣҪλЩĵӶʼ·ң
          +
          +

          MSDN Visual Studio 6.0
          +     Visual Basic ĵ
          +         Visual Basic һʹ Repository

          +
          +
          +
          +
        • +
        + + + +
        + + diff --git a/cadVb/READMESS.HTM b/cadVb/READMESS.HTM new file mode 100644 index 0000000..c73a77b --- /dev/null +++ b/cadVb/READMESS.HTM @@ -0,0 +1,593 @@ + + + + +Visual SourceSafe 6.0 Readme + + + + + + + +

        Visual SourceSafe 6.0

        + +

        © 1998 Microsoft Corporation. All rights reserved.

        + +

        Other product and company names herein may be the trademarks of their respective owners.

        + +

        Visual SourceSafe® Readme includes updated information for the documentation provided with Microsoft® Visual Studio™ — Development System for Windows® and the Internet. The information in this document is more up-to-date than the information in the Help system.

        + + + + +

        Contents - Click any of the items below

        + +
          + +

          Note   Be sure all headings in the table of contents are expanded when you search this Readme for a topic. In this way, you will know when the search finds the topic among the TOC headings.

          + +
        + + + +
        Known Problems
        + + + + + +
        Getting Started
        + + + + + +
        Installation
        + + + + + +
        General Notes and Tips
        + + + + + +

        Visual SourceSafe Known Problems

        + +

        Installing to a Novell NetWare Server

        + +

        Novell NetWare servers can be configured to handle 8.3 file names or greater than 8.3 file names. If the Novell NetWare server can only handle 8.3 file names, the regular Visual Studio installation process will not be able to install to the Novell NetWare server. To install to a Novell NetWare server that can only handle 8.3 file names use the following steps.

        + +

        To install from the Visual Studio CDs

        + +
          + +
        1. Insert Disk 2.
        2. +
        3. Change to the VSS_SS\ folder.
        4. +
        5. Run the following command: setup.exe /F
        6. +
        7. Choose the 'Server Applications' option.
        8. +
        9. When prompted for the installation location, be sure to change it to the Novell NetWare Server.
        10. + +
        + +

        To install from the Visual SourceSafe standalone CDs

        + +
          + +
        1. Insert the Visual SourceSafe CD.
        2. +
        3. Run the following command: setup.exe /F
        4. +
        + +

        Corrected Documentation Text

        + +

        Difference for File Dialog Box topic — In the Dialogs section of the Visual SourceSafe documentation, the first paragraph in the Remarks section is incorrect.

        + +
          + +

          Current text: This dialog box is used only when you have not selected the visual difference comparison. (For visual differences, make sure you select the Visual option from the Difference Options dialog box.) By default, VSS uses the Visual Difference dialog box.

          + +

          Correct text: This dialog box is used only when you have not selected the visual difference comparison. (For visual differences, make sure you select the Visual option from the Difference Options dialog box.) By default, the Visual option is selected, and VSS uses the Differences for <filename> dialog box with options specific to visual differences.

          + +
        + +

        In the File History Options Dialog Box topic of the Visual SourceSafe Documentation, the first sentence of the Labels section is incorrect.

        + +
          + +

          Current text: Includes only labels in project history if you have selected the Include file checkins option.

          + +

          Correct text: Includes only labels in project history if you have selected the Include file histories option.

          + +
        + +

        In the Advanced Check Out Options Dialog Box topic of the Visual SourceSafe Documentation, the Replace option is incorrect.

        + +
          + +

          Current text: Replace — Replaces the file with a read-only version.

          + +

          Correct text: Replace — Replaces the file with a writable version.

          + +
        + +

        In the Advanced Check Out Options Dialog Box topic of the Visual SourceSafe Documentation, the End of Line option has been removed.

        + +

        In the Advanced Get Options Dialog Box topic of the Visual SourceSafe Documentation, the End of Line option has been removed.

        + +

        MBCS/DBCS Users

        + +

        VSS 6.0 handles MBCS (Multi-byte character systems) and DBCS (Double-byte character systems) differently than in earlier versions of VSS. If you are upgrading an existing installation of VSS that has a file called SSUD.dll, please rename it so that VSS 6.0 will not recognize it. For example, rename the file to SSUD.bak. If you do not rename it, you may have trouble in the IME with font association (FA) turned off or it may generate GPFs when dialogs new to VSS 6.0 are displayed.

        + + + +

        Getting Started

        + +

        Before You Run Setup

        +

        +

          +
        • Review the Hardware and Software Requirements.
        • +
        • Check that you have the necessary Contents in the VS Package.
        +

        + + + +

        Installation

        + +

        Installation Options

        + +
        General Notes
        + +

        The source code control database maintained by VSS must be on a drive that is accessible to all users working on projects controlled by VSS. The most versatile method of working with VSS is to perform a server installation to a network drive, and a netsetup installation on each workstation.

        + +

        Upgrading an Older Version of SourceSafe to Version 6.0

        + +

        You will be prompted to replace an existing installation if found. This is recommended, but you can choose an alternate path and then maintain two different databases, one in the old format and one in the new format, on the same computer.

        + +

        Note   Make sure you backup the database first, before you upgrade.

        + +

        You will be prompted to convert your database to the new format for faster performance. You should only do this if:

        + +
          + +
        • You are the Admin for your database.
        • +
        • No people are logged into the database.
        • +
        • All users of the database can be upgraded to client software compatible with the version 6.0 format.
        • + +
        + +

        VSS Database Administrators Note About Netsetup

        + +

        Be aware that a full VSS license is required for each user of SourceSafe. If you have 100 people using your VSS database, you need to purchase 100 Visual SourceSafe licenses to avoid violating copyright law.

        + +

        The version 6.0 Netsetup program requires a CD-Key before it will install the Visual SourceSafe client software to a client machine. To make sure your clients can run Netsetup successfully, give a CD-Key from one of your licensed boxes to each user you recommend Netsetup to. It is acceptable to reuse the same CDKey for everyone running Netsetup, but you are still required to have an individual license on hand for every user.

        + +

        Installing Visual SourceSafe Standalone Version

        + +

        To install Visual SourceSafe standalone version as the Administrator (Admin)

        + +
          + +
        1. Install Visual SourceSafe on the shared server first.
        2. +
        3. Use the Admin tool to create user accounts in the shared database.
        4. +
        5. Set up security as appropriate for the users of the database.
        6. +
        7. Tell your users where to find Netsetup (if those users are licensed).
        8. + +
        + +

        To install Visual SourceSafe standalone version as a Client

        + +
          + +
        • Run Netsetup from the server location for client-only installation.
        • + +

          Note   A full Visual SourceSafe license is required to use Netsetup by each client.

          + +

          - or -

          + +
        • Install the standalone Visual SourceSafe from the CD (by choosing Standalone). This creates a local database. To use a shared database, click the File menu, Open command from the Visual SourceSafe Explorer.
        • + +
        + +

        Installing Visual SourceSafe from Visual Studio

        + +

        This includes Visual Studio, Visual C++ Enterprise version, and Visual Basic Enterprise version.

        + +

        Admins   If you are setting up a shared server, go to the Server Applications page of the Visual Studio installation and run VSS Server setup from there. This will create a database for sharing and install a setup program for licensed users to install the Visual SourceSafe client program (using Netsetup).

        + +

        Clients   The Visual Studio client setup will install a standalone version of Visual SourceSafe and integrate it with the development environment and other environments.

        + +
          + +

          Note   A local database is created with this setup. To access a shared database, click the File menu, Open command from the Visual SourceSafe Explorer, and set it to be the Default database.

          + +
        + +

        Important: Back up your existing VSS database before upgrading!

        + +

        Installing Multiple Versions of Visual Studio 6.0 Products "Side-by-Side" on the Same Computer

        + +

        Visual Studio products with the same version and in the same language—Visual C++ and Visual Basic version 6.0 in English, for example—can be installed separately on the same workstation. Such installations are supported by Microsoft. The Visual Studio 6.0 Installation Wizard detects if other versions of the 6.0 product line have been installed on a developer's workstation.

        + +

        Mixing different language versions, point releases, or product tiers on the same workstation is generally not supported. This means that the installation may fail, one or more of Visual Studio 6.0 products may not work even if the installation succeeds, or in the worst case you may not be able to uninstall any of the products completely.

        + +

        If the Wizard generates a warning during installation, the safest course of action is to uninstall the Visual Studio 6.0 product before proceeding. The detection scheme checks for the following scenarios:

        + +
        • Users installing different language versions of the same product. For example, Japanese Visual Basic and English Visual Basic. Installation of certain combinations is supported.
        • + +

          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          ProductSupported Installation
          Visual BasicInstall to two different locations
          Visual C++No side-by-side installation is supported.
          Visual FoxProInstall to two different locations
          Visual InterDevInstall to the same location. You must reinstall after uninstalling one version.
          Visual J++Install to the same location. You must reinstall after uninstalling one version.
          Visual SourceSafeInstall to the same location. You must reinstall after uninstalling one version.

          Note   The UI language chosen when you run SourceSafe will be based on the system's language settings. If that language is not installed for SourceSafe, it will use English instead.

          MSDNInstall to default directory.
          + +

          +

        • Users installing different tiers of Visual Studio 6.0 products. For example, Visual J++ Standard Edition and Visual InterDev Professional Edition. Installing different tiers of the same product on the same workstation is not supported.
        • + +

          +

        • Users installing point releases. Upgrading a later point release of Visual Studio over an earlier point release is supported. However, installing earlier versions over later versions is not supported.
        • + +

          +

        • Users installing stand-alone versions of Visual Studio 6.0 products over the versions installed from Visual Studio 6.0 Professional or Enterprise. For example, Visual FoxPro 6.0 over Visual Studio Professional 6.0. Installing a stand-alone version of the same language versions (English) of Visual Studio 6.0 products is supported. It is safe to install Visual FoxPro 6.0 (English) from the stand-alone version on a workstation that already has Visual Basic 6.0 installed from Visual Studio Professional Edition.
        • +
        + +

        (Individual Users) Using Netsetup to Create a Personal Installation

        + +

        After an administrator has created a VSS installation on the server, users can run Netsetup to copy the VSS executables to their hard disk.

        + +

        To install using Netsetup

        + +
          + +
        1. In Windows Explorer, navigate to the main folder containing the VSS Server installation.
        2. + +
        3. Double-click on NETSETUP.EXE.
        4. + +
        5. Follow the instructions in the Installation Wizard, using [Change Folder] to change the default installation path if you wish
        6. . + +
        + +
        +

        Warning to Administrators   All users must posess an individual VSS license to install and/or use the product, including anyone running Netsetup. Netsetup is provided as a convenience, but the Administrator should make sure s/he obtains an individual license for each person that installs and uses the product.

        +
        + +

        Upgrading a Database After Installing

        + +

        If you were prompted to upgrade your database to the new 6.0 format and you said Yes, you now have a 6.0 database and can take advantage of label promotion and enjoy performance enhancements. If you weren't prompted or you said No to the prompt and you now want to upgrade your database, run the DDUPD.exe command line utility, which exists in the \win32 directory of your VSS 6.0 Server installation. (So you can either go to that directory and run it or add that directory to your path and run it.) We recommend you only run DDUPD when everyone has exited VSS. The syntax is:

        + +
        +

        DDUPD <path to data folder> [-undo] [-redo]

        +
        + +

        To upgrade a 5.0 database, for example, you would run:

        + +
        +

        DDUPD \\server\share\vss\data

        +
        + +

        To undo an upgrade, going back to the 5.0 format and stop taking advantage of the performance enhancements and label promotions:

        + +
        +

        DDUPD \\server\share\vss\data -UNDO

        +
        + +

        To redo the upgrade process on a database that is already in the new format, you would run:

        + +
        +

        DDUPD \\server\share\vss\data -REDO

        +
        + +

        Deleting VSS

        + +

        If you delete a VSS installation (including the database) and then attempt to run SETUP, setup may try to install VSS in the Recycle bin (if the old database is found here). This only takes places if the Recycle bin hasn't recently been emptied. To remedy the problem:

        + +
          + +
        1. Empty the Recycle bin.
        2. + +
        3. Run SETUP again and verify that the default directory for VSS is no longer the Recycle bin.
        4. + +
        + + + +

        General Notes and Tips

        + +

        New Features in VSS 6.0

        + +

        Microsoft VSS 6.0 adds many new features. Some of the highlights include:

        + +
          +
        • Create database — Available in the Visual SourceSafe Admin application. With it, you can create a new VSS database in any location. To use this command, click Tools, then click Create Database.
        • + +
        • Archive and Restore — Now available in the Visual SourceSafe Admin application in addition to the Command Line.
        • + +
        • Label promotion — Allows you to promote, or add, a file to an existing label.
        • + +
        • Move files — When you move a file, VSS automatically shares the file to a new project and then deletes it from the original project. In the new project, the file appears as shared.
        • + +
        • Compare differences in multiple projects — This feature allows you to compare differences in a project against another project, compare in two different local folders, or compare a project against any directory, not just its working directory.
        • + +
        • Deploy individual files from the VSS Explorer — In VSS 6.0, using the VSS Explorer, you can now deploy a file as well as an individual folder.
        • + +
        • Filter history information — You can now view history of files and projects without including labels.
        • + +
        • Clean temp directory option — A quick, easy way to delete all files from the temp directory used by VSS, provided the files are not open.
        • + +
        • Check External Hyperlinks — In VSS 6.0 "Check Hyperlinks" now works on external hyperlinks, or jumps outside the project, as well as internal hyperlinks, or jumps within the project.
        • + +
        • Create desktop shortcuts to VSS databases (from VSS Explorer) — Allows you to create a shortcut on your desktop that opens a specified VSS database in the specified project.
        • + +
        • HTML Help — This version uses HTMLHelp rather than WinHelp.
        + +

        Maintaining Your VSS Database

        + +

        It is still advisable to back up the drive where your VSS database resides on a regular basis. Note it is important to use full backups, not incremental or differential backups, to avoid problems.

        + +

        In addition, you should run the ANALYZE program periodically to maintain database integrity. If a corruption is found, the ANALYZE program can usually repair the problem. Updates to the ANALYZE tool are posted periodically to the VSS web site, http://www.microsoft.com/ssafe. You may wish to check that site to see if there is a version of ANALYZE more recent than the one shipped with this product. To run ANALYZE, click the Start menu, point to Programs, Microsoft Visual Studio, and then Visual SourceSafe.

        + +
        +

        Note   It is always advisable to run ANALYZE and back up older databases before upgrading them to the 6.0 format.

        +
        + +

        Loss of Network Connection Produces Numerical Error Message

        + +

        If you are using VSS on a remote database and you lose your connection to the server, the following error will occur:

        + +
        +

        "unknown error - 20038," (or similar)

        +
        + +

        If you see this error, you have lost your network connection.

        + +

        To correct the situation:

        + +
          + +
        1. Restore your network connection.
        2. + +
        3. Restart VSS to continue your work.
        4. + +
        + +

        System Date/Time

        + +

        VSS uses the date/time, which your local computer stores. If your computer is out of sync with another computer, unpredictable results may occur. For instance, you may check in a file after someone else, but VSS may think your checkin happened first, because your system clock was off!

        + +

        The best solution for this problem is to synchronize your local date/time with the network on a regular basis. This will ensure that all users are in sync. With Windows NT this can be done with a Domain Time Source Server. Please check the http://www.novell.com/ site for information on time synching with Novell NetWare servers.

        + +

        Using the Command Line after Running a Client Setup

        + +

        When working at the Command Line, if you get a message stating "No VSS database (SRCSAFE.INI) found. Use the SSDIR environment variable or run netsetup.", set the SSDIR variable. This will tell VSS where to find the SRCSAFE.INI file for the VSS server installation to which you want to connect. You can do this by typing the following at the MS-DOS prompt:

        + +
        +

        set ssdir=\\server\share\vss

        +
        + +

        Where \\server\share\vss is the folder where the srcsafe.ini file is located.

        + +

        Note   Do not put a space between the equal sign and the location of the VSS server installation. For example, the following will not work:

        + +
        +

        set ssdir= \\server\share\vss.

        +
        + +

        Details on Defining a Shadow Directory in Visual SourceSafe

        + +

        A shadow directory is a live mirror (on the file-system) of the project(s) in the Visual SourceSafe (VSS) database.

        + +

        For a shared database, you must set up the shadow directory with a UNC path, such as \\Server\Share\Shadow, to avoid failure when changes are made from a computer other than the one used to setup the shadow. Make sure the UNC contains no long names, just 8 character short names for the \\Server\Share\ROOT portion.

        + +

        For example, instead of defining the shadow directory as D:\VSSShadow, you can define the shadow directory as: \\server\D\Shadow.

        + +

        Confirm that all the Visual SourceSafe users have read/write access to the UNC directory.

        + +

        Running Netsetup from a Windows NT Server Using Windows 95

        + +

        Due to a problem Windows 95 has accessing some programs on Windows NT Servers via a UNC that contains long names, it is advised to create a Network share on the Windows NT Server that points directly to the VSS location on the servers disk drive, and to avoid long names in the Server and Share names as well.

        + +

        For instance, if VSS is installed to:

        + +
        +

        D:\Program Files\Microsoft Visual Studio\Common\VSS

        +
        + +

        You could provide users access to it by setting:

        + +
        +

        D:\ + +

        shared as + +

        \\Long Server Name\Long Share Name

        +
        + +

        And they would then access it with:

        + +
        +

        \\Long Server Name\Long Share Name\Program Files\Microsoft Visual Studio\Common\Vss\Netsetup.exe

        +
        + +

        The long names will cause Windows 95 machines to fail when the server is a Windows NT machine.

        + +

        Instead, set it up with:

        + +
        +

        D:\Program Files\Microsoft Visual Studio\Common\VSS + +

        shared as + +

        \\Server\VSSShare

        +
        + +

        In this way, users may access Netsetup.exe with the following short UNC:

        + +
        +

        \\Server\VSSShare\Netsetup.exe +

        + +

        VSS Home Page

        + +

        Microsoft VSS has a home page on the Internet. This home page features a variety of information including articles on VSS, a self-running demo that you can download and run, a collection of helpful VSS utilities, and much more. The URL for the home page is: http://www.microsoft.com/ssafe.

        + +

        Microsoft Knowledge Base

        + +

        If you encounter problems or have questions not addressed here or in the online documentation, you may want to search the Microsoft Knowledge Base at http://support.microsoft.com/support. The Knowledge Base is also available on MSDN Library Visual Studio 6.0, included on CD-ROM with Visual SourceSafe. + +

        VSS Newsgroup

        + +

        You can exchange information with other VSS users by visiting the microsoft.public.visualsourcesafe newsgroup on the internet. This newsgroup is on the msnews.microsoft.com server. Please note that Microsoft does not provide support for messages posted to the newsgroup.

        + +

        + +

         

        + + + diff --git a/cadVb/READMEVB.HTM b/cadVb/READMEVB.HTM new file mode 100644 index 0000000..c3fae02 --- /dev/null +++ b/cadVb/READMEVB.HTM @@ -0,0 +1,3001 @@ + + + + + + + + + +Visual Basic ļ + + + + + + + + + + + + + + + + + + + + + + + + + + +

        Visual Basic 6.0 ļ

        + +

        (C) 1998 Microsoft Corporation. Ȩ

        + +

        ĵеƷ͹˾ߵ̱ꡣ

        + +

        Visual Basic(R)ļв Microsoft(R) Visual Studio(TM) -- Windows(R) Internet ϵͳһṩĵصϢĵеϢȰϵͳаϢ¡

        + + + + + + + + + + + + +

        - 뵥µһĿ

        + +

        ע⣺Ҫڱļвij⣬ȷĿ¼ебѾչ TOC ҵ⡣

        + + + + +

        Ҫ -- Ķ

        + + + + + + +

        ݷصݰ󶨵ļ

        + + + + + + +

        ؼйص

        + + + + + + +

        йص

        + + + + + + + +

        ʾйص

        + + + + + + +

        й򵼵

        + + + + + + +

        йسϢ

        + + + + + + +

        й WebClass

        + + + + + + + +

        й DHTML ҳ

        + + + + + + +

        йؿԵ

        + + + + + + +

        ⼯ѡ

        + + + + + + +

        й Microsoft Transaction Server (MTS)

        + + + + + + +

        Dictionary

        + +
        + +
        + Dictionary
        + +
        + + + + +

        Visual

        + +
        +
        + + + + + + + + + + +

        Ӧó

        + +
        + + +
        +
        + + + + +

        Microsoft(R) Visual SourceSafe(tm) йصİװ⣬ο Visual SourceSafe ˵

        + +

        й Visual Studio 6.0 װƷһ㰲װŲƷװοװ˵ļ (install.htm)

        + +

        й Visual Studio װƷİϵͳ⣬ת

        +

        MSDN(TM), Microsoft Developer Network ļ

        + + + + + + +
        + + + + + + + + + +

        Ҫ

        +
        + + + +

        ûʹݸ

        +

        Visual Basic 6.0 УԽû (UDT) Ϊݸһ̻ߺһԼҪһⲿн UDT ݸһ̻Ҫһ̲߳п߳̽ UDT ݸһ̣ôҪ DCOM for Windows 95 Windows 98 һ°汾 Windows NT 4.0Service Pack 4ڿӦóļҪ¹ļκνиӦóļ϶Ҫи¡ûаװļ򽫵һʱ

        +

        Լһ߳Ӧóд UDT £ø¾ͿԽûʹݸ̡

        +

        չ򵼲ȷЩDZ - ҪɿԱȷûļϾ߱ļԱͨʱ 458 - Visual Basic ֱ֧ʹõ Automation ͡ԲǷڡôͱ DCOM Service Pack и£ݲϵͳIJͬµĹҲͬ

        +

        Windows 95 / Windows 98

        +

        DCOM98.EXE һԽѹĿִгװ Windows 95 Windows 98 DCOM ²ļλ Visual Basic 6.0 CD е DCOM98 Ŀ¼¡ļѵӦóһ

        +

        Windows NT 4.0

        +

        º DCOM Զ Service Pack 4 (SP4) һװԴ Microsoft web վش Service Pack

        + + + + + + +

        +

        ֪ıʱ +

          +
        1. + MSDN ڵĶλУѡȻճҪҵı⡣Žַ
        2. +
        3. +
        4. +
        5. +г(صⲻֹһͨλбб)
        6. +
        7. +ѡҪı⣬Ȼ󵥻ʾ
        8. +
        + +

        +ҪijĿ¼λ

        +
          +
        • λťĿ¼鿴ͬ仯
        • +
        +

        +ע    Visual Basic ĵIJοڵеⲻʹλ ť

        + + + + + +

        õ Internet Client SDK ʵָ Internet/Intranet/Extranet

        +

        ڲָеĽ Internet ӦóһУöָ MSDN һΪ "Internet Client SDK" IJ֣õȷӦ"Internet/Intranet/Extranet " MSDN Ѱһ Internet Client SDK οʱڴ˲вҡ

        + + + + +

        صİ

        +

        CD û MSDN CD Ҫʹðť F1 ȡǾ MSDN ùѡưװѡѡ VB ĵ VB Ʒʾ͡VS ĵĸѡҪʹ Visual SourceSafe ͬʱѡVSS ĵ + + + + +

        ʱʾ벻ȷؽмкճ

        +

        ڽʾ MSDN Visual Studio ĵ༭еʱ򣬲ȷؿк͸ʽϢҪ⣬밴з֮һв

        +
        • ڿֹ֮༭Ϣ
        • +
        • 鿴ʾԴʾ<pre> </pre> ǩճ༭УȻճɾҪIJ֡
        • +
        + + + + + +

        οĶλťֹ

        +

        MSDN ͨѡһԲοʱʹöλťҸ MSDN Ŀ¼λá +

        + +
        + + +
        + + + + +

        йݷʵݰ󶨵ļ

        +
        + + + +

        ݻʾеĴ

        +

        Уݻͨʶ + +ִһж Command еӴʹ Open +

        
        +	MyDE.Commands("InsertCustomer").Parameters("ID").value = "34"
        +	MyDE.Commands("InsertCustomer").Parameters("Name").value = "Fred"
        +	MyDE.Commands("InsertCustomer").Open
        +
        + +Commands û Open Ϊʹ Execute +

        +
        + + + + +

        ݰ󶨿ؼݵ

        +

        Visual Basic 6.0 һЩı䣬ʹòеݰ󶨿ؼܹеԴݡֲ ADO DAO/RDO ڲ󶨻ƴڲͬɵġΪ DAO/RDO һʹöרŴĿؼͲܰ󶨵һ ADO ݿؼΪ ADO һͬʹöĿؼܱ󶨵׼ݿؼԶݿؼ

        +

        ֲݵҪڸӰ󶨵Ŀؼgrids lists ЩҪ󶨵һԴĶֶεĿؼ򵥰󶨵Ŀؼı߱ǩİ󶨵ֶεĿؼܹÿԴݡһЩʾ

        + +
          +
        • Microsoft ݰ Grid ؼ (Dbgrid32.ocx) Ա󶨵 DAO RDO ݿؼDzܱ󶨵 ADO ݿؼ
        • +
        • Microsoft DataGrid ؼ (Msdatgrd.ocx) Ա󶨵 ADO ݿؼܱ󶨵 DAO RDO ݿؼ
        • +
        • Microsoft Masked ༭ؼ (Msmask32.ocx) Ա󶨵κһݿؼ
        • +
        • ڲؼ (ıͼƬ򡢱ǩȵ) Ա󶨵κһݿؼ
        • +
        • ؼ Visual Basic дûؼӦÿвԡ
        + +

        ƽ׶Σͼһؼ󶨵һԴʱ򣬿߿ܻһûмݵԴijϢ £ҪһԴݵĿؼ滻ÿؼ

        + + + + +

        󶨵ԿܻԤϵĽ

        +

        пܽκζ󶨵καĶ󣬵ĽԤڵЩֻɰ󶨵ģӦİԴ

        +

        磬һ Frame ؼ Caption ԰󶨵һ ADO ¼Ϊ Foo ֶΣڼ¼нйʱ Caption ֮ıԱ㷴ӳ Foo ֵȻͨı Caption (Frame1.Caption = "Bar") Foo ֵͲи¡Ϊ Frame Caption ֻɰ󶨵ģ֪ᷢͨ˵Ѿı䡣

        +

        Visual Basic дĶ˵Ⲣһ⣬ΪԱĴе PropertyChanged Ķ˵ͨ DataBindings ȷһǷǸ¿ɰ󶨵ġһԱо DataBindings УǸ¿ɰ󶨵ģԴյݵĸ£֮ûбгԾֻɰ󶨵ġ

        + + + + +

        Ӱ󶨵һ ADO ¼Ҫ CursorType

        +

        һ ADO ¼󶨵һӰ󶨵Ŀؼ(һ Grid ؼ)ʱҪʽؽ CursorType Ϊ adOpenStatic adOpenKeysetôԣʾκεݡĴʾ CursorType Եʹ÷

        +
        Private Sub DataClass_Initialize() + Set cn = New ADODB.Connection + Set rs = New ADODB.Recordset + rs.CursorType = adOpenStatic + cn.Open "northwind" + rs.Open "customers", cn +End Sub +

        󶨵һ򵥰󶨵Ŀؼ (һı)Ҫһض CursorType

        + + + + +

        Visual Basic ԴSQL Server Access ݿ뽫ֶͶΪ adVarChar adBSTR

        +

        Ҫһ ADO ¼ֶԱһ SQL Server Access ݿһʹã뽫ֶεͶΪ adVarChar adBSTR (һЩʾʾ) SQL Server Access ݿжݵʱADO ʹ adVarChar ͡

        + + + + +

        йش OLE DB ṩIJοϢĴ

        +

        VB ĵָԽһģ DataSourceBehavior Ϊ 2 - vbOLEDBProvider Ա㴴һ OLE DB ṩ DataSourceBehavior Եȷֵ 0 - vbNone 1 - vbDataSource

        + +

        VB ĵᵽһ OnDataConnection ¼ʵģи¼

        + + +

        ڡ MyDataSource ࡱУʵֵʾָӦý DataSourceBehavior Ϊ 2 - vbOLEDBProviderǡǡ෴Ӧý DataSourceBehavior Ϊ 1 - vbDataSource

        + +

        Ҫ Visual Basic һ OLE DB ṩʹ OLE DB SDK ṩд߰Provider Writer ToolkitйصϸϢο MSDN Platform SDK ĵе OLE DB 򵥵ṩ򹤾߰Simple Provider Toolkit

        + + + + +

        й ADO İ

        +

        ʹ ADO ʱ (磬¼ӡADORRDSԼ RDS )Աܻԡ¼򷽷صİҲ˵ԱһʹĹܣѡӦĴ벢 F1 ʱʾһ⡣෴ʾһһؼδҵ⡣

        + +

        ͨʹļͿҵöκԡ¼򷽷İϢ

        +
          +
        1. ûд MSDN ĵ鿴˵ϵ
        2. +
        3. ѡ
        4. +
        5. ԡ¼߷ƣʵĻаϡԡ¼ߡ֡
        6. +
        7. ӿѡбУѡаADO⡣
        8. +
        +
        Note   ͨ MSDN IJ鿴Ŀ¼ ADO лҵϢ ADO ģͣ SDK ƽ̨ԼݿϢMicrosoft ݷ SDK.
        + + + + +

        SQL Server OLE DB ṩҪµ instcat.sql

        +

        ʹ SQL Server OLE DB ṩ֮ǰ Microsoft Visual Basic 6.0 on SQL Server (6.5 Լ°汾)һ𷢲°汾 instcat.sqlInstcat.sql Visual Basic 6.0 һ𷢲ɰװ \winnt\system32 Ŀ¼ҵļ

        +

        Instcat.sql û SQL Server УṩͲܴ SQL Server ԪݣmetadataҲͲӵ÷

        + + + +

        Windows 95/98 ϰװݷӦóܻʧ

        +

        ·ݷ VB 6.0 Ӧóʱ Windows 95 Windows 98 DCOM ûгڿͻ Windows 9x ϰװʧܡ

        +

        ̰ ADO, OLEDB, ODBC (򵼵 Included ļҳнкʵ)ͨ &չ򵼽ļ Mdac_typ.exe ӵװСһļ MDAC 2.0 ļװͻϡ MDAC 2.0 Ҫ Windows 95 Windows 98 DCOM Ȼڰװʱһ㡣 Windows 95 Windows 98 DCOM ûгڿͻ Windows 9x ϰװʧܡһЩɵݷʧǰǣͻϾɵݷӦóʧܡ

        +

        · Windows 9x ݷӦóʱҪȷ Windows 95 Windows 98 DCOM װͻϡDCOM98.EXE ͷſִļļ° Windows 95 or Windows 98 DCOM װͻϡ Visual Basic 6.0 CD DCOM98 Ŀ¼ҵļļ Visual Basic Ӧóһͬ

        + + + + +

        ڰװʱġעᡱ

        +

        ڰװVB6ĹУװ򵼻ʾͨWebעᣬעҳڹУĿǰעṦܻ޷ʹãдڲƷеIJƷעῨ΢й޹˾

        + + + + +

        ڡMicrosoft Visual Basic 6.0 ı׼桱

        +

        Microsoft Visual Basic 汾ҵ棬רҵͱ׼档Microsoft Visual Basic 5.0 ѧϰʵϾDZ׼档MSDN Library Visual Studio 6.0 ָѧϰ Microsoft Visual Basic 6.0 ı׼档 +

        +
        + +
        + + + +

        йؿؼ

        + + + +

        ؼޱ߽

        +

        ͨ Windowless Ϊ True һûؼʱÿؼ BorderStyle ԾͱóЧݶ壬ؼûб߽ġ

        +

        Ƚ BorderStyle Ϊ 0 - None κֵֽ Windowless ԸıΪ TrueͻյһϢWindowless ûؼֻ֧ BorderStyle = None

        + + + + + +

        ʱ 711 .Exe вδõĿؼйصϢӶ Controls.Add ʧ

        +

        +
          +
        1. һµı׼ Exe ļ
        2. +
        3. Ŀһûؼ
        4. +
        5. д룺
        6. + +
          +Dim WithEvents x as VBControlExtender + +Private Sub Form_Load () + Set x = Controls.Add ("Project1.Usercontrol1", "XX") + x.Visible = True +End Sub +
          +
        7. ļ˵ϣ Project1.exe (ҪиĿ)
        8. +
        9. и exe ļ
        10. +
        +

        һ(711)ָ Project1.Usercontrol1 һЧ ProgID Ϊ exe ҲκصϢ

        + +

        ڱĿ֮ǰĿ˵£ Project1 ѡϣȡԡɾδʹõ ActiveX ؼصϢѡѡ

        + +

        ˵

        +

        Ĭ£ƽ׶ ActiveX ؼöûбõκһִϣô ActiveX ؼʱִļе Controls.Add ˵Dzõġ

        + + + + +

        ֲ FlexGrid ؼ ColWordWrapOptionColWordWrapOptionBandColWordWrapOptionFixedColWordWrapOptionHeader

        +

        ЩǷֲ FlexGrid ؼһϵеһ֣Щûб鵵ÿؼİϢУ ColWordWrapOptionColWordWrapOptionBandColWordWrapOptionFixedColWordWrapOptionHeader²ָЩԵ﷨ԿõֵһģЩֵλڱĵײ

        + +

        ColWordWrapOption

        +

        ػһֵֵָָıνлС

        +

        +

        object.ColWordWrapOption (Index) = integer

        +

        ColWordWrapOption Ե﷨Щ֣

        + + + + + + + + + + + + + +
        +

        +

        ˵

        +

        object

        +

        һʽ,ֵΪֲ FlexGrid ؼ

        +

        Index

        +

        . ҪûԶϢкšֵ -1 Cols - 1 ֮䡣ֵΪ *1ǾͽѡеС

        +

        integer

        +

        һֵʽԶеķʽòʾ

        + +

        ColWordWrapOptionBand

        +

        ػһֵֵָضĴıԶеķʽ

        +

        +

        object.ColWordWrapOptionBand (BandNumber, BandColIndex) = integer

        +

        ColWordWrapOption Ե﷨Щ֣

        + + + + + + + + + + + + + + + + +
        +

        +

        ˵

        +

        object

        +

        һʽ,ֵΪֲ FlexGrid ؼ

        +

        BandNumber

        +

        ҪûԶϢĴšֵ 0 Bands - 1 ķΧ֮ڡ

        +

        BandColIndex

        +

        ҪûԶϢкšѡĬֵ *1ָôеСЧֵΪ *1 Cols *1

        +

        integer

        +

        һֵʽԶеķʽòʾ

        + +

        ColWordWrapOptionFixed

        +

        ػһֵֵָضĹ̶ıԶеķʽ

        +

        +

        object.ColWordWrapOptionFixed(index) = integer

        +

        ColWordWrapOptionFixed Ե﷨Щ֣

        + + + + + + + + + + + + + +
        +

        +

        ˵

        +

        object

        +

        һʽ,ֵΪֲ FlexGrid ؼ

        +

        index

        +

        Ҫ/ԶϢкšѡĬֵ *1ЧֵΪ *1 Cols *1

        +

        integer

        +

        һֵʽԶеķʽòʾ

        + +

        ColWordWrapOptionHeader

        +

        ػһֵֵָбͷıνлС

        +

        +

        object.ColWordWrapOptionHeader(BandNumber, BandColIndex) = integer

        +

        ColWordWrapOptionHeader Ե﷨Щ֣

        + + + + + + + + + + + + + + + + +
        +

        +

        ˵

        +

        object

        +

        һʽ,ֵΪֲ FlexGrid ؼ

        +

        BandNumber

        +

        Ҫ/ԶϢĴšֵ 0 Bands - 1 ķΧ֮ڡ

        +

        BandColIndex

        +

        Ҫ/ԶϢкšѡĬֵ *1ָôеСЧֵΪ *1 Cols *1

        +

        integer

        +

        һֵʽԶеķʽòʾ

        + +

        ֵ

        +

        integer ֵǣ

        + + + + + + + + + + + + + + + + + + + + + +
        +

        +

        ֵ

        +

        ˵

        +

        flexSingleLine

        +

        0

        +

        (Ĭ) ֻڵʾı

        +

        flexWordBreak

        +

        1

        +

        ڵ֮ԶϿһ

        +

        flexWordEllipsis

        +

        2

        +

        ضϳıʡԺš

        +

        flexWordBreakEllipsis

        +

        3

        +

        ֮ϿʲıʡԺš

        + + + + +

        ֲ FlexGrid ؼ ColIsVisible RowIsVisible ֻ

        +

        ColIsVisible RowIsVisible ֻԣҲͨáʹЩһлһǷɼʵĻҲظлУʾ

        + +
        +With MSHFlexGrid1 + If .ColIsVisible(1) Then .ColWidth(1) = 0 + If .RowIsVisible(1) Then .RowHeight(1) = 0 +End With +
        + +

        ֲ FlexGrid ؼ GridLinesGridLinesBandGridLinesFixedGridLinesHeaderGridLinesIndent GridLinesUnpopulated Ե

        +
        +

        ӵãGridLinesGridLinesBandGridLinesFixedGridLinesHeaderGridLinesIndentGridLinesUnpopulated ԡЩԵĿ±

        + + + + + + + + + + + + + +
        +

        +

        ֵ

        +

        ˵

        +

        flexGridDashes

        +

        4

        +

        ߡԪ֮ߵΪߡ

        +

        flexGridDots

        +

        5

        +

        㻭ߡ Ԫ֮ߵΪ㻭ߡ

        + +

        ˵

        +

        flexGridNoneflexGridFlatflexGridInset flexGridRaised ֮⣬ʹЩֵ

        + + + + +

        DataRepeater ؼԹԽֻӰ쵱ǰĿؼ

        +

        һ DataRepeater ؼеûؼʱע⣬ÿؼĹԽڵǰĿؼ (뽹ڵġؼ)磬ʱһûؼ Font ԣø (ʾ)Ӱ DataRepeater ؼеĵǰؼӰЩظؼ塣

        + +
        +Private Sub Command1_Click() + 'ֻеǰؼܵӰ졣 + DataRepeater1.RepeatedControl.FontName = "Courier" +End Sub +
        +

        ûؼеӦĴµĴ룺

        + +
        +Public Property Get FontName() As String + FontName = txtProductName.Font.Name +End Property + +Public Property Let FontName(ByVal newFontName As String) + txtProductName.Font.Name = newFontName +End Property +
        +
        + +

        TabStrip ؼֻ Style = TabFlatButtons ʱָŻʾ

        +
        +

        Style ԱΪ TabFlatButtons ʱָֻ TabStrip ؼϡһӣ

        + +
        +Private Sub Form_Load() + With TabStrip1 + .Style = tabFlatButtons + .Separators = True + End With +End Sub +
        +
        + + + + +

        ݱ¼еĴ

        +

        ڱΪݱ¼ʾδ첽ĴдһйصϸϢѡ MSDN Visual Studio 6.0 ĵв "ݱ¼"

        + +

        ĴλڱΪError ¼ Asynchronous ¼С

        + +

        öδ©һSelect Case ErrObj.ErrorNumber䡣ȷĴӦǣ

        + +
        +Private Sub DataReport_Error(ByVal JobType As _ MSDataReportLib.AsyncTypeConstants, ByVal Cookie As Long, _ + ByVal ErrObj As MSDataReportLib.RptError, ShowError As Boolean) + Select Case ErrObj.ErrorNumber + Case rptErrPrinterInfo ' 8555 + MsgBox "һӡ " & _ + "ûаװӡ" + ShowError = False + Exit Sub + Case Else ' + ShowError = True + End Select +End Sub +
        +
        + + + + +

        RichTextBox ؼ SelPrint ӵµIJ

        +

        SelPrint ӵеڶѡIJ﷨ɲֵʾ£

        + +

        +

        object.SelPrint(lHDC As Long, [vStartDoc])

        +

        SelPrint ﷨Щ֣

        + + + + + + + + + + + + + +
        +

        +

        ˵

        +

        object

        +

        һֵΪ RichTextbox ؼĶʽ

        +

        lHDC

        +

        ƻӡÿؼ豸豸

        +

        vStartDoc

        +

        Boolean .ָ˿ؼ startdoc enddoc ӡؼΪòʾ

        + +

        +

        vStartDoc ÿǣ

        + + + + + + + + + + + + + +
        +

        +

        ֵ

        +

        ˵

        +

        True

        +

        -1

        +

        (Ĭ) ؼʼʽ startdoc enddoc ӡ

        +

        False

        +

        0

        +

        ؼ startdoc enddoc ǽ startpage endpage ӡ

        + +

        ˵

        +

        ĿǸƵӡԷĬϷʽдӡ SelPrint Visual Basic RichTextBox ؼӡ startdoc enddoc һǶ׵ startdoc/enddoc еĴӡӦһһ RichTextbox ؼͳڶʱ򣬴ӡɽֹ״̬£ vStartDoc Ϊ False ֹڶķ͡

        + + + + +

        Tools Ŀ¼» Visual Basic 5 MSChart ؼ

        +

        ԭȰ汾 Visual Basic ûԣ

        + +

        Visual Basic 5.0x MSChart ؼڰ Visual Basic СԱҪһ Visual Basic 5 Chart ؼѾװԭȷİ汾 MSChart ؼ Visual Basic CD Tools Ŀ¼İ汾ǵԭȷİ汾

        + + + + +

        Toolbar ؼ Style Եñı

        +

        Toolbar ؼ Style ԵѾı䡣Եİн tbrTransparent tbrRight ΪеãǣЩĿǰİ汾Dzõġʵʿеüʾ£

        + + + + + + + + + + + + + +
        +

        +

        ֵ

        +

        ˵

        +

        tbrStandard

        +

        0

        +

        (Ĭ) ׼Ĺ

        +

        tbrFlat

        +

        1

        +

        ƽ档ڰťƶʱ̬ʾťı߽硣

        + + + + +

        Visual Basic ʱ 720ͼκηǿؼĶӵؼнʱ

        +

        ͼһǿؼĶӵؼнʱ 720ֻ򼯺 Visual Basic ڲؼ ActiveX ؼ

        +

        Ҫִ˴

        +
          +
        1. һµı׼ Exe
        2. +
        3. д룺
        4. +
          +Private Sub Form_Load () + Controls.Add "Excel.Application", "MyExcelApp") +End Sub +
          +
        5. и exe
        6. +
        +

        һ(720)Чַ

        + + + + +

        ֲ FlexGrid ؼڰ󶨼¼ HflexGrid ʱĴ

        +

        Ž Hierarchical FlexGrid 󶨵һ ADO ¼ʱ "DataSource ÿܲȷ"볢ԸıһЩ ADO ¼صĶԡ磬 CursorLocation ԸıΪ adUseNone adUseClient

        + + + + +

        ֲ FlexGrid ؼθıе

        +

        Ϊ grid ʹõͬһ font Ҫıе壬ͱ봴һµ font 󣬶ֱӸı塣

        + +

        磬ַܴﵽı䵥Ŀģ

        +

        MSHFlexGrid1.FontBand(1).Name = "Arial"

        +

        Ϊֱ޸ font ַде嶼ıΪ Arial

        + +

        Ҫı䵥е壬Ҫһµ Font Ȼ󽫸 Font 󸳸 FontBand ԣ

        +
        +Dim ft As New StdFont +ft.Name = "Arial" +Set MSHFlexGrid1.FontBand(1) = ft +
        + +

        ַѸôеıΪ Arial

        + + + + +

        ֲ FlexGrid ؼظʾ

        +

        Ĭϵãֲ FlexGrid ؼʹ÷ֲ FlexGrid еĵһ FixedRow Ϊһ (ζŵһ FixedRow ʾ˰󶨵ÿһеֶ)ΪĬϵ£HFlexGrid ؼʾһ FixedRow Band 0 ʾ⣬Ч൱ڰѱ⸴ΡΪ˱뽫 FixedRow Ϊ 0ʹô뽫һ FixedRow еı

        + + + + +

        ADO ݿؼ FetchProgress FetchComplete ¼ʵ

        +

        ADO ݿؼοָ FetchProgress FetchComplete ¼ӣʵϸÿؼ¼ʵ֡

        +
        + + + + +

        DataGridSizeMode Size Եֵ 2 (dbgNumberOfColumns)

        +

        й Split SizeMode Size ԵIJοᵽһڵֵ 2 (dbgNumberOfColumns

        + + + + +

        ؼҳϵ ImageList ؼ

        +

        һ DHTML ҳʹ ImageList ؼʱƽ׶βͼҪһδ .dll Ŀʹд룬ʱ -2147418113 (8000ffff) Iimages 'Add' ʧܡ

        +
        +Private Sub DHTMLPage_Load() + ImageList1.ListImages.Add , , LoadPicture("C:\Winnt\winnt.bmp") +End Sub +
        +

        Ȼ뾭뽫ȷС

        + + + + +

        MSComm ؼ EOFEnable Բֹͣ

        +

        EOFEnable Ծ⵽һ EOF ַʱǷ OnComm ¼Ȼ VB ĵжԸԵ෴벻ֹͣ

        + + + + +

        Treeview ؼ Node Visible ֻ

        +

        Treeview ؼ Node Visible һֻԡڵDzɼģԱʹ EnsureVisible Ϊɼģʾ

        + +
        +Private Sub Command1_Click() + If Not TreeView1.Nodes(10).Visible Then + TreeView1.Nodes(10).EnsureVisible + End If +End Sub +
        + + + + +

        SysInfo ؼֵ֧ij

        +

        ¼IJο⣺

        +
          +
        • DeviceArrival ¼
        • +
        • DeviceOtherEvent ¼
        • +
        • DeviceQueryRemove ¼
        • +
        • DeviceQueryRemoveFailed ¼
        • +
        • DeviceRemoveComplete ¼
        • +
        • DeviceRemovePending ¼
        • +
        +

        бʶ豸豸ݳбȻ VB ĵ෴ǣЩ¼ SysInfo ؼ֧ЩʵϣоٵijصֵЧģdzȴǡ

        + + + + +

        User ؼPropertyBag ݵĶƳ־ҳʧ

        +

        PropertyBag ԶƵʽݡǣһ֪ĶƳ־Ժ DHTML ҳ⣬Щݽҳ Visual Basic ʧܡйصϸϢο ҳƳ־

        + +
        + +
        + + + + +

        йԵ

        + + + +

        InStr йصıȽ

        +

        ҪڱȽʹйصĹһЧ LCID (ID)

        + + + + +

        SendKeys Ч̵áĴ

        +

        Windows NT 4.0 Service Pack 3 Զ̴ʽһ Insert {INS}һЧ̵áҪ⣬ʹ Insert ij룬 {Insert}

        + + + + +

        Type ij

        +

        Type 䡱еһָ Option Base þ½硣 仰ǴģӦñԵOption Base öû͵ûκӰ졣

        + + + + +

        ʮԴʽ洢

        +

        ʮָ͡ Decimal ޷ʽ洢ģǴġ Decimal Դʽ洢

        + + + + +

        DateSerial Windows 98/Windows NT 5

        +

        year λûԶļΪת(ĬϵķΧ 1930-2029)Χ Microsoft Windows ежġ

        + + + + +

        봰СһĿݼ

        +
        봰ڵĿݼвȷָһĿݼ SHIFT+F4һȷݼ F3
        + + + + +

        Add (ļ) ﷨

        +ڡAdd (ļ)Уʾ﷨Ǵġȷ﷨ǣ +
        object.Add foldername
        +
        +
        + +
        + + + + +

        ʾйص

        + + + +

        ʾļλ

        +

        MSDN ùѡ Visual Basic ʾʾļͱװһĿ¼У

        +
        C:\Program Files\Microsoft Visual Studio\MSDN98\98VS\1033\Samples\VB98.
        +

        MSDN ùûѡ Visual Basic ʾҲ MSDN CD ϵĿ¼ҵ Visual Basic ʾ

        +
        D:\Samples\Vb98
        +

        ע⣺ ᵽſܻϵͳIJͬ仯

        + + + + +

        Visual Basic ʾBiblio Mouse ʾʡ

        +

        Visual Basic Ʒнٰ Visual Basic ĵĿ¼ Biblio ʾ򡣴⣬ҲٰӦͼ¼ᵽ Mouse ʾ

        + + + + +

        Visual Basic ʾChrtSamp

        +

        ChrtSamp Visual Basic аһµʾʾ MSChart ؼҪѾװ Visual Basic ʾǾͿӲϵλҵʾ

        +

        \\Program Files\Microsoft Visual Studio\Msdn98\98vs\1033\Samples\Vb98\ChrtSamp

        +

        ûн Visual Basic ʾװӲϣͿ MSDN CD ϵλҵʾ

        +

        Samples\Vb98\ChrtSamp

        + +

        ʾʹһ Excel ӱΪͼṩݡʾͨͬİťʾϵеͼʾͨ ChartType Ϊijʵֵʾ MSChart ؼ 3D

        + + + + + + + + + + + + + + + + + + + +
        +

        ļ

        +

        ˵

        +

        Chrtsamp.vbp

        +

        ʾĿļ

        +

        Frmchart.frm

        +

        ʾ塣

        +

        Frmchart.frx

        +

        ôĶݡ

        +

        Gas.xls

        +

        ݵ Excel ӱ

        +

        Modchart.bas

        +

        ʾĺ͹̵Ĵģ顣

        + +

        Ҫ

        +

        F5 дʾװ֮󣬵ͼ͡Ըıͼ͡Ҫ鿴ʾά뵥ͼϿѡһ 3-D ͼͣ 3dAreaڰ CTRL ͬʱҼͼıԸͼۡ

        + + + + +

        Visual Basic ʾCtlsAdd ʾӲ Controls.mdb ǿɶ/д

        +

        ͼ MSDN CD CtlsAdd ʾͼʹ CD ϵ controls.mdb ݿ⽫һΪ CtlCfg.vbp ʾʹһ Access ݿ (controls.mdb) ؼɹؼϢݿ뱻װһӲϡ뽫 controls.mdb ļӲϣΪдġ

        + + + + +

        DHSHOWME.VBP ʾҪôʾģʽܹȷпҪ SourceFile

        +

        ģʽ´ҳʾʱЩʾʾΪհף SourceFile Ա㷴ӳڼĿ HTML ļװλáĿÿԡȻʾӦܹȷˡ

        +

        Ҫһ SourceFile ԣԴе SourceFile ֱӼһ·ҲԴӹѡĿͼ꣬ΪһⲿļȻ󵥻ȷ .htm ļ

        + + + + +

        PROPBAG.VBP ʾװشʾģʱֵܳĴ

        +

        Propbag.vbp һģ (Module1.bas)ģλ MSDN ʾĬϰװĿ¼ҪʾƶһĿ¼Ŀʱģ·DzȷģӶһҪ⣬벻ģװĿȻӰװʾĿ¼нģӵĿС

        + + + + +

        IObjSafe ʾӦó

        +

        һЩ·ı仯IObjSafe ʾӦó (IObjSafe.vbp) ȷУȽ޸ģ

        +
          + +
        1. IObjSafe.vbp Ŀļװ뿪С
        2. +
        3. Ŀ˵ѡ ucObjSafety ѡϴʼıɾ·ļ
        4. +
        5. URL ıм IObjSafe.htm ʵ·ļݰװ̵IJͬʵ·仯
        6. +
        7. ˵ѡѡѡϣѡδĴʱжѡť
        + +

        ڣӦóӦܹȷˡ

        +

        ° IObjSafe ʾӦóõ +Microsoft Visual Basic ʾҳ.

        + + + +

        ʾӦóĸ°汾

        +

        Visual Basic ʾӦóĸ°汾Լûа CD еʾ߻ãվΪ +Microsoft Visual Basic ʾҳ.

        + + +
        + +
        + + + + +

        й򵼵

        + + + +

        չ򵼣Զ Redist Ŀ¼мѡļ

        +

        չ򵼵һµĹǣܹ Redist ļмѡļIJ裬ͿԽһ˽ʹܣ

        + +
          + +
        1. ѾһӦó򣬲׼ýаװ
        2. +
        3. ӦóijضϵͳļMySysFile.dllļԭһֱһļһϵͳ£ѾʹļҪļȷС
        4. +
        5. ǣͬʱҲṩϵͳļһİ汾
        6. +
        7. Ϊ˼ã뽫öİ汾ļõ Redist ļС
        8. +
        9. װʱ붨λϵͳļԱָʾӦðϵͳļ
        10. +
        11. չ򵼽ѡλ Redist Ŀ¼еĶ汾ļѡϵͳļ(ļϵͳļ)
        + + +

        Ĭϵ£Ὣļõ redist ļС

        + + + + + +

        չ [Do Not Redist]

        +

        װͲ VB6Dep.ini ļһµIJ֣[Do Not Redist]

        + +

        µIJгļ

        +
          + +
        1. ʱҪļ磬ActiveX ͨҪļãһƽ׶Σһн׶ΡΪʱDzҪģͱⲿжûбװС
        2. +
        3. ܱչ·ļЩļ Visual Basic װģDZɱIJװ磬ļ Internet Explorer 4.x װģ Shdocvw.dll Mshtml.dll
        + + + + + +

        չ򵼣 Silent ģʽ£ڵZ˳֪ͨڿܲǵһ

        +

        Visual BasicԴʾ silent ģʽдչ򵼡 silent ģʽдչ򵼣趨·¼򵼵Ϣ (/l )趨·򵼽һ־ļ¼¼ʹ򵼽ΪʾһԻ֪ͨѾɡȻڲǿɼģΪɿܱĴڸǡΪܹڣҪرջСڡ

        + +

        йصϸϢ MSDN Visual Studio 6.0 ĵ Visual Basic в "Զʽ"

        + + + + +

        չ򵼣ģʽһԱִָг·

        +

        չ򵼵ģʽһ±ʾ

        + + + + + + + +
        +

        +

        ˵

        +

        /e path

        +

        ĿĿִļ·Ŀ·ͬʹ·

        + + +

        ˵

        +

        ڶԱĻУһ̨רĿ£ʹģʽ

        + +

        йصϸϢѡչ MSDN Visual Studio 6.0 ĵвԶʽС

        + + + + +

        չ򵼣ֹûؼ֤ļ

        +

        ΪһҪ֤ûؼʱ֤ļ (.vbl) ܱԶ෴ֹӸļ

        +

        Ϊչ * ļԻ뵥ťȷ .vbl ļ

        +
        + + + + + +

        չ򵼣 Web еIJ

        +

        ʹôչ򵼽 Internet Web ʱʹһֳΪ WebPost ļʵشЩ WebPost .cab ļọ̈̄

        +
          + +
        1. WebPost .cab ļչһʱĿ¼С
        2. +
        3. WebPost λ .cab ļ .inf ļ
        4. +
        5. .inf ļݣWebPost ̰װӦóļ ( .inf ļе RInstallApplicationFiles )װϵͳļ( RIinstallSystemFiles )װļ( RInstallSharedFiles )УWebPost עκαҪļ
        + +
        ע .inf ļ DefaultInstall ֲִУΪⲿаָҪûϢWebPost ҲΪӦó򴴽һĿ¼ҪĻúĿ¼
        + + + + +

        չ򵼣 HTTP FTPЭ Web

        +
          +
        • ͼ Web .cab ļϵǻûб⿪ȷڡĿĻϰ .cab ļ Web վĻʹ HTTP Post ΪЭ顣⣬ӦѾ Web վĻѡˡ⿪װ CabѡûУѡѡ²
        + +
        ע IIS 4.0 ϵ Posting Acceptor 2.0 ֽ֧⿪ Cab Ĺܡ
        + +
          +
        • ѡ Web ֧ѡķṩ򣬿ԽIJԽ⣺
        + +
          +
            + +
          1. ʹ HTTP Post Э飬ȷ Web ϰװ Posting Acceptor IIS 4.0װ Posting Acceptor 2.0 IIS 3.0װ Posting Acceptor 1.0Posting Acceptor 1.0 ֽ֧⿪ Cab Ĺܡ
          2. +
          3. ȷ URL ȷġʹ HTTP Postȷ URL http:// ͷġʹ FTPȷ URL ftp:// ͷġ
          4. +
          5. װ Posting Acceptor 1.0 ķأʹ򵼲ʱ򣬲ѡ⿪װcabinet ļѡ C0042115˵ѯַ INSTALL ЧģԱȷ䰲װ posting acceptor ĸ汾汾Ϊ 1.xȷȡ⿪װ Cabѡѡ񣬲² cab +
          6. Ҫʹ FTP Э鷢͵ http:// ͷ URLͨķ󣺽е¼ӵ Web postinfo.asp ļĽβļͨλ Web ϵ scripts Ŀ¼У
            +
            +<!--¼ FTP Э -->
            +[{02B5E1D1-8B7C-11D0-AD45-00AA00A219AA}]
            +ServerName="<%= Request.ServerVariables("SERVER_NAME") %>"
          +
        + +
          +
        • һָ INF еһЩļæҪ뽫ע HKEY_LOCAL_MACHINE\Software\Microsoft\Publishing\RemoteInstaller е ComponentPermitReboot ĿӷΪļæ¼⿪ cab ͰװΪ˳ɹɰװбҪֹ
        • +
        • ʹ HTTP Post Эһû Web дȨޣڷϴ Internet Ĭ Web վ (Console Root \ Internet Information Server \ machinename \ Default Web Site) Ľӵ㣬ѡԣѡĿ¼ѡȻѡдѡ
        • +
        • ͼʱļֻͻ C0042116 ָѾֹͣıļԼС +
        • ע⣬һļһĿ¼жĿ¼ѾһͬļôϵļǵҲʾκξϢ +
        • ʹ FTP Эһָʱֹڷϴ Internet Ĭ FTP վ (Console Root \ Internet Information Server \ machinename \ Default FTP Site) Ľӵ㣬ѡԣѡĿ¼ѡȻѡдѡ
        • +
        • ʹ FTP Эͬȷ Web Ѿȷ FTP Ҫ Microsoft ̨ (MMC)Ȼв
        + +
          +
            + +
          1. ҼĬϵ FTP վ ѡµĿ¼
          2. +
          3. һʸĿ¼ıȻ󵥻һ
          4. +
          5. 뽫ӳ䵽Ŀ¼Ŀ¼· -- 磬 c:\inetpub\ftproot -- Ȼ󵥻һ
          6. +
          7. ѡʵķɣȷдʣڲоͲȻ󵥻
          8. +
          9. ҼĬϵ FTP վѡֹͣ
          10. +
          11. ҼĬϵ FTP վѡʼ
            +
            +ʹôչ FTP ʱʹվ FTP://servername/alias alias ڵڶָıʹ "anonymous" Ϊû "me@somewhere" Ϊ룬¼
          +
        + + + + +

        չ򵼣ʼ˵֧֡Сѡ

        +

        ڴһװʱҲԴһʼ˵ȻڹڶԻİᵽһ㣬Dz֧֡Сѡ

        + + + + +

        Ϊ WebPost Posting Acceptor ϵͳ

        +

        Web ʱչʹһֳΪ WebPost ļļƶҪλáWebPost Ҫɣ

        + +
          +
        • չ򵼣ݷ͵ϸվ㡣
        • +
        • Posting Acceptorλ Web ϣݷ IIS
        + +

        Ŀǰж汾 Posting Acceptor ʹáȷݼ Web ϰװȷİ汾±гʵã

        + + + + + + + + + + + + + + +
        +

        ʹ

        +

        +

        ע

        +

        Posting Acceptor 2.0

        +

        Windows NT 4.0 SP3
        +IIS 4.0

        +

        Posting Acceptor 2.0 ֽ֧ݷ֧ڷϽ⿪ cabinet (.cab) ļ

        +

        Posting Acceptor 1.0

        +

        Windows NT 4.0 SP3
        +IIS 3.0

        +

        ʹ汾 posting acceptor ⿪ .cab ļֻ汾ݡԽļƶϣȻֹӦ .cab עκαҪļעᡣ

        + +
        ע⣺ Posting Acceptor κʹ Personal Web Server Peer Web Server ƽ̨Сʹ IIS
        +
        +

        Posting Acceptor 2.0 Դӵڶ Visual Studio װ CD Deploy ļнаװ +Posting Acceptor 1.0 Դ +Microsoft Posting Acceptor Ϣվ аװҪѾ Windows NT Option Pack ļϰװ Posting Acceptor 2.0ǾӦȼüǷѾװ 1.0 Posting Acceptor +Ѿװ 1.0 棬ڰװ 2.0 ֮ǰɾҪȷǷװ 1.0 棬ѡ NT Option Pack ȻгIJѰ Posting Acceptor 1.0 Microsoft Site Server ҵѾװˣɾȻ PASetup.exeͿ԰װ 2.0 档

        + + + + + +

        չ򵼣ļؽ cabs༭ Setup.lst ļ

        +

        ʹôչ򵼴һ׼İװ֮󣬿ͨ Support ļеļֹ´װļ (Setup.exeSetup.lstԼе .cab ļ)ֹ߲ٴ򵼶´һļ setup.exe setup.lst Support ļп Package ļв Package ļ cab ļȻһļɣsetup.lst ֪˶ٸ .cab ļ⣬װʧܡ

        + +

        Ϊ˽⣬в

        +
          +
        1. ļ֮ǰɾ Package ļе .cab ļ
        2. +
        3. ļ֮󣬼 cabs
        4. +
        5. ı༭ Package ļе Setup.lst ļע⣺ Setup.lst ļһλ Support ļУڶλ Support ļ֮⣬ .cab ļͬ Package ļСȷ򿪵 Package ļе Setup.lst ļ
        6. +
        7. ı༭У (λļĶ)
        8. +
          
          +

          [Bootstrap] +SetupTitle=Install +SetupText=Copying Files, please stand by. +CabFile=Projec1.CAB +Spawn=Setup1.exe +Uninstal=st6unst.exe +TmpDir=msftqws.pdw +

          +
        9. һ (TmpDir=msftqws.pdw) һУ
        +

        Cabs=N

        +

        N ɵ cabs

        +
      +

      ڣSetup.lst µģװӦܹɹ

      +
      + + + +

      չ򵼣 80042114

      +

      Ϊ Internet 𴴽һĹ

      +
      δ֪Ĵ 80042114ѡ Web ֧ѡķṩ provider

      ԭѾָͨʹ HTTP URL һ FTP վϡܹȷӵж web ķȨޣԵǡв

      +

      Ҫ⽫ٴη󣬵ͬһϴһʱָվ㼰Э顣ʱ򣬽Ի

      +
      ָ URL ͷΪһ Web վ㱻עͿȷ URL ͷЧģҿڽվʱʡʱ䡣ҪϢΪһ Web վ
      +

      ѡǡͻᱣվϢҲ 80042114 ˡ

      + + + + +

      չ򵼣ʹ Mdac_typ.Cab Mdac20.Cab ݷ

      +

      Internet аĸļеκһ򵼽ĬϵؽЩļΪ +http://activex.microsoft.com/controls/vb6/mdac_typ.cab.

      +
      
      +MSDAOSP.dll 
      +MSADO15.dll 
      +MSADCF.dll 
      +ODBC32.dll 
      +
      +

      ƣĬϵؽļΪ +http://activex.microsoft.com/controls/vb6/mdac20.cab:

      +
      MSADOR15.dll 
      +MSADCO.dll
      +
      +

      £ЩĬָľļԴĻϵ" Microsoft Web վ"ѡЩ cab ļ (mdac_typ.cab mdac20.cab) һЩӦֹͨɵ⴦ΪȷȷĴ Internet cab ӦðЩ cab ļӦǡˣӦΪЩļеκһѡ"ڴ cab "ѡ⣬ѡ" Web վ"ѡӦϸָcab ļЩ cab ļĿȷȷĴ

      + +

      벻ҪıЩļĬá

      + + + + +

      Ͳ򵼣ʹñ׼İװʱΪ IIS Ӧóֹͨ .ASP .HTM ļ

      +

      ʹôչ򵼵ı׼װһ IIS Ӧó򣬾ͱֹеһ .asp .htm ļʹðļԻļ

      + + + + +

      Ͳ: ںʱʽ

      +

      ijЩΣͲ򵼲ȷذʱϢд Setup.lst ļʱýʧЧΪд setup.exe ܶĸʽڵһʹ Visual Basic US 汾ʱ

      +
        +
      • ʹõİ汾 Windows (ע: Visual Basic 汾)
      • +
      • ڷָȲDzǰб ("/") Ҳۺ ("-") ļ.
      +

      Ϊʽ:

      +
        +
      1. ӡʼ˵ .
      2. +
      3. ͼꡣ
      4. +
      5. ڡڡѡϰѡڡָΪ "/"
      6. +
      7. ڡʱ䡱ѡϰѡʱ䡱ָΪ ":".
      8. +
      9. дͲ򵼡
      10. +
      11. ںʱá
      12. +
      + + + + +

      Ͳ:ڵһ Windows 95 汾 Setup.exe

      +

      򵼽ijε Windows 95İװУ Windows 95 Oleaut32.dll 汾ȱٶ API ֧֡ Windows 95 OS а 2 Windows NT 4.0 °ϣ Microsoft Office 97 Internet Explorer 3.0 4.0 װҲ⡣ Visual Basic 5.0 ӦóκΰװҲܶԴȡҲͨ°汾 Oleaut32.dll ȸϰ汾˷˹ϡȷͼֹ Oleaut32.dll ǰرӦó

      + + + + +

      Ͳ: ActiveX ĵ

      +

      Visual Basic 6.0 ͲΪ ActiveX ĵֱӰǶ CODEBASE= VERSION= Ϣ嵽 .vbd ļСڷ ActiveX ĵǰ׼ .htm ļǶϢ Internet Explorer Ϊ ActiveX ĵͰ汾Ϣ .vbd .cab ļִаװ.ֱѰ .VBD ļбҪġûĵء

      +

      ʹ SetCodeBase ߵ Visual Basic 5.0 ͬĹܣSetCodeBase ߿ Visual Basic Owners Area ҵ

      +

      Visual Basic 6.0 ͲΪûĵöһЩ⡣

      +
        +
      • Internet Explorer 3.x. 4.0, 4.01 ܶ VBD ļеǶϢҲһ (VB5) ʽ .htm ļ .htm ļڷ ActiveX ĵȻ,ڴ뱻ע͵޸ .htm ļɾעͺͶһ <A> (<a href=xxxx.VBD>xxxxx.VBD</a>) ļһġûĵ CLSID һЩ Window_OnLoad ¼ű OBJECT
      +
        +
      • Service Pack 1 °汾 Internet Explorer 4.01 .vbd ļȷضȡϢ
      + +
      + +
      + + + + +

      йسϢ

      +
      + + + +

      гϢûӦİ

      +

      ĿǰгϢûӦİ⣺

      +
    3. "ģҪʵ '<classname>' ӿڵ'<name>'"
    4. +

      ӿָδʵֵĹԭ͵һϡһָһӿڶûΪӿейӴ룬ôͻ

      +

      Ϊӿָй̱д롣һյĹֻҪһעҲ㹻ˡ

      +

      йصϢѡʵĿ F1

      + +
    5. "ڱ׼ģ˽ж˽ Enum ͺ Enum ͲжģIJ߹й̵ķͣ߹ݳԱ߹еû͵ֶΡ"
    6. +

      ͼһ Enum (˽ Enum )

      +
        +
      • жģIJ
      • +
      • й̵ķ
      • +
      • ݳԱ
      • +
      • еû͵ֶ
      • +
      +

      ͻ

      +

      Щ£ʹ Enum ˽ Enum ͡

      + +
    7. "(Variant)ԪΪ With 飬ͲܶԸñ ReDimErase߸ֵȲ"
    8. +

      ͼԪΪ with ı ReDim, Erase ߸ֵΪ壬ͻᷢ磬дͻĴ +

      
      +   Type Test
      +      Name as Integer
      +   End Type
      +
      +   Sub Main()
      +      Dim c(0) As Test
      +      Dim e
      +      e = c
      +      With e(0)
      +         ReDim e(1)
      +      End With
      +   End Sub
      +
      +

      +
      + +
      + + + + +

      й WebClass

      + + + +

      Webclasses֧ "Me."

      +

      webclass ʹ "Me" webclass 磬VB ĵָԱдĴ룺 "Me.URLData = value"ʵϣDzֵ֧ġ "Webclass" 䡣磬ʹ Me.URLDataҪʹ Webclass.URLData

      + + + +

      WebclassesЧ HTML ﷨ᵼ²ԤϵĴ

      +

      ӵ webclass еģаʽ HTMLôʱͻйװģijϢϢָһδ֪Ĵ磬ϰ汾ҳп BODY ǣһָ GIF һָɫ⣬ڿʼͽDzƥ䡢ЧǶס﷨ĴйװģϢϸ HTML ͨ HTML ﷨иļȻװģ塣

      + + + +

      Webclasses Webclass ʹȫֺ;̬

      +

      ڶ̻߳Уÿ̶߳ȫֱйصϸϢѡ MSDN Visual Studio 6.0 ĵв "չԺͶ߳"

      + + + +

      WebclassesЩⲿ HTML ı䲻ܱԶ⵽

      +

      webclass ж HTML ģвʱ Visual Basic ֮(磬һⲿ HTML ༭) HTML ļκθı䣬ڷصкܹͨ Visual Basic ⵽Щ£ϵͳʾװ뱻ıļ

      +

      ijЩ£ⲿĸıȴܱ⵽ǣлⲿ༭֮ǰ뽹õ webclass Visual Basic Сڷص Visual Basic ֮󣬲ˢµʾпܵڱĿʱⲿĸı串ǵˢļ

      +
      ע Ŀеͬʱģб༭Ҳ
      +

      ı HTML ûбʾˢ££ԴģĿݲ˵ѡˢ HTML ģ壬ֶˢ¡

      +

      ע⣺ лⲿ HTML ༭ʱʹñ༭ HTML ť߿ݲ˵ʹ ALT+TAB ݼת༭뱣֤뿪 Visual Basic ֮ǰĿ򣬾ͺܿܶʧĸı䡣

      + + + + +

      Webclassesģ岻 IIS ̨ļ

      +

      IIS ̨(IIS Administration Console)Աָ IIS ϿļԡЩ԰ HTTP ͷļȫԣԶ(custom errors)ļ webclass ʱ͵ͻϵģЩԾͲ webclass ģļϽá

      + + + +

      Webclassesûִ

      +

      Ŀа webclassôͱѡĿԶԻеûִѡµĺô

      + +
        +
      • webclass ΪһģͶС webclass ڽյ HTTP ߳Ϊṩ񣬶ڵ߳ϴе
      + +
      ע 뽫ĿԶԻе߳ģΪ Apartment Threaded ԱΪһ ģͶС
      + +
        +
      • Կʹ Visual Basic ʱ DLL ¼־ļм¼еʱ󣬶ʾϢʽʾʾʾϢ IIS ̡߳
      • +

        +
      • Կʹж Visual Basic MsgBox ĵöϢ¼¼־ļУʾʾϢʾʾϢ IIS ̡߳
      • +
      + + + + +

      Webclassesפڴ

      +

      ڱ׼ Visual Basic ĿУһĿٱʹãǾʹ̻߳ͷų webclass ĿУģͿܻܷ⣬Ϊ봴һ󡢼ķٶ󡣿һΪפڴĿԣӶŻ webclassפڴԻֹĿͷֱиĿ̻߳̽Ϊֹ

      + + + +

      WebclassesйصԺͱ汾֮˵

      +

      Visual Basic ܹ Windows NT еܵ;һ IIS Ӧóͨ Visual Basic ɿVisual Basic ܹﵽĿġеʱ IIS һ Visual Basic ṩ proxy 󣬶󷴹һ Visual Basic IDE еʵIIS Ȼͨ DCOM öͨš

      +

      ΪĿԱ DLL еķʽΪͬĿıİ汾ʱijЩΪڵģʽµıִͬ㣬 webclass ʱμĿıΪ

      +

      ĹؼеӦóԱӦ webclass ΪһӦóʱΪ

      + +
        +
      • ʹϵͳ DSNΪ DSN ֻڵģʽС
      • +
      • ĿУ벻ҪԶ̼ʹ Access ݿ⡣ڵģʽǿеģڱӦóоͲʹݿ⡣
      • +
      • 벻Ҫ webclass Visual Basic ӵ Active Server Page Application СбӦóʱ
      • +
      • ӦóİȫġйذȫµϢο"Webclassesص"
      • +
      • μǣ webclass Ӷ̷߳ʣǴͬһ̡߳ڵģʽ෴ȫֺ;̬ڽ֮䱣ֲ䡣йصϸϢѡ MSDN Visual Studio 6.0 ĵв "ԺͶ߳"
      • +
      • Ȼڵģʽ¿ԿʾϢDZ webclass еĴд NT ¼־ߴ Windows Ŀ¼µһļСڱģʽ²ʾκγϢ
      • +
      • ȻΪ webclass ûִУڵģʽôԵĸáйصϸϢοûִв֡
      + + + + +

      Webclassesܵļ

      +

      ʹĸּ IIS Ӧóܣ

      + +
        +
      • ȷӦóĿԶԻеûִкפڴѡѡϡ
      • +
      • Ӧóвκεı滻 TagPrefix Ϊһյַ webclass вҪɨ衣
      • +
      • Ҫ Visual Basic (καķģ COM ) 浽 Active Server Pages Session Ӱ쵽ԡǿ Session бַûиáйصϸϢο IIS ĵ
      • +
      • Ӧóʹñ塣
      • +
      • webclass StateManagement ԱΪ wcRetainInstanceͻӵʱܽ½
      • +
      • Ӧóڶһûаκ滻ʹ URLData Ե webclass ģִпͻ˽ףǾӦֱͨ URL ģ塣
      • +
      • ʹ URLFor ʱʹַƶҪʹöָ webitem
      • +
      • ͼʱʹָ͡
      + + + + +

      Webclasses⼯ѡ

      +
        +
      • IIS ӦóĵԳκ¼еĶϵʱ F5 ִУὫ뽹㷵ص Internet ExplorerСڼ֮󣬱ֹл Internet Explorer
      • +
      • Webclass ƺͱǩDzִСдġͨıеĴСдһ webclass磬һ Orderentry webclass Ϊ OrderEntryԭƽֲ䡣
      • +
      • ڵԹУжʵ򿪵 Internet Explorer ʵֹһ Visual Basic Ͳ webclass Ŀʵи١һָĿһָҳ棬ôڽԵʱܵӰ졣 +
      • ͼб IIS ӦóĿܻһַ Visual Basic д򿪸ĿнһЩ޹ؽҪĸĶȻ±Ŀ¿ʼ룬ڱӦÿؽˡ
      • + +
      • Ҫ webclass HTML ģϵİťб̣ͱעȰť SUBMIT ͵ġֻҪڰťԪص HTML һָ type=SUBMITͿԽΪ SUBMIT ͡ΣֱӶ԰ťб룻ԪءԽÿťڶıϣҲʹ Request form Աȷ¼İť
      • +
      + + + + +

      Webclassesص

      +

      Webclasses ܽ˼ֲͬļ Visual BasicActive Server PagesInternet Information Server Windows NTҪ˽ webclass ļԴ Microsoft Web վϻһЩõ¡һЩرõг£

      + + + + + + +

      WebclassesHTM ԴļеĸʽϢ

      +

      webclass ģļ֮ HTML ԴеһЩʽϢܻᱻʧ磬 webclass ܴӳʼļɾһЩ޹ؽҪĿհȫӰ쵽 HTML ҳĹܡ

      + + + + +

      Webclasses֧ HTML LINK Ԫ

      +

      LINK HTML ҳбʽ(style sheet)һ webclass Ŀе HTML ҳп԰ǣDzʹ LINK ԪأҲܶд Visual Basic 롣Ҫڴв LINK ǣ ĵֹͨ¼(notation)Ҫ鿴ţ MSDN Visual Studio 6.0 ĵѡ "ֹͨ .HTM ļ¼Notation "

      +

      + + + +

      Webclasses Webclass Ŀһʹ Visual SourceSafe ʱ򣬱ֹͨĿ .HTM ļ

      +

      IIS ӦóĿѡ Visual Source Safe ʱĿص HTML ҳ沢ܺĿļһԶѡ Source Safe СֹͨЩļΪļӵС

      + + + +

      WebclassesTagPrefix Ӧ WC:

      +

      Ȼ webclassģ TagPrefix ԵĬֵ WC@ۺʱֻҪģļָʾı滻ʹ WC: ͸ΪһЩ 

      + + + +

      Webclasses URLFor еı

      +

      URLFor WebItem ܹ WebItem Ϊַ WebItem ơܷԭһ˶ webitem ǾӦʹַʽ

      + + + +

      Webclassesʹ &WCU

      +

      MSDN ָϵĽӦóе" Webclass д"һУĵȷָʹø URL һ ?Data ڷͿͻ֮ƶݡʵ &WCU ?Dataȷ﷨ǣ

      +
      WCI=webitem1?WCE=event1&WCU=01
      +
      + + + +

      Webclasses"StateManagement Գ"а˴ԲοϢ

      +

      "StateManagement Գ"дָ RetainInstance ʹ webclass ״ֱ̬ webclass SetComplete Ϊֹȷ˵Ӧݱ webclass ReleaseInstance ΪֹҪ鿴˲ȷİ⣬ѡ MSDN Visual Studio 6.0 ĵн "StateManagement Գ"

      + + + + +

      Webclasses״̬ Session

      +

      WebClass StateManagementType wcRetainInstanceôÿûỰУ ASP Sessionб WebClass һʵЩ£ Session ʵ webclass ʵʱܻԵ״̬ûеõ֡Ŀ¼ָͬһλãͿܳʼԻỰʱһĿ¼ڴһĿ¼ʵϽʱʼ webclass ĵڶʵ

      +

      йִ Active Server Pages Session ϸϢο MSDN е Active Server Pages ĵ

      + + + + +

      Webclasses"ʱ Webclass ¼"еĴ

      +

      "ʱ Webclass ¼"Уʾʾһ䣺

      +
      +rs = New ADO.Recordset
      +

      еȷ﷨Ӧǣ

      +
      +Set rs = New ADODB.Recordset +
      + + + + +

      Webclasses׼в HTM ASP ļ

      +

      ʹôչ򵼽 IIS Ӧóװһ׼ʱ򵼲Զ .cab ļаĿ .htm .asp ļԣڰװӦóʱֹͨЩļ

      + + + + +

      Webclasses: δָĴ

      +

      һе webclass һ¹УȻڱ湤֮ǰģͼ꣬ôͻطһδָĴ󡱡ڴյһʾ˵һδָĴ󡱣뱣Ĺ̡

      + +
      + +
      + + + + +

      й DHTML ҳ

      +
      + + + +

      ҳijϢ

      +

      Ϣûа⣺

      +
    9. "ڲ HTML 浽ļ"
    10. +

      ҳָһµе HTML ļ

      +

      ҳһʵӵ HTML 룬־ʹһе HTML ļôͱҳ沢ָļơȻҳ˽еǰڲ HTMLѡǣ Visual Basic ָһļ HTML 浽ļС

      +
    11. "DHTML ҳ˽е"
    12. +

      ͼҪһ DHTML ҳ Public Ϊ False󡣾 ActiveX ǹеҲ˽еģһ DHMTL ӦóУֻйеſԱʡ˽еijЩõģ˵ݻУҪݷ߼װݻжֲ뽫ΪС

      +
    13. "װѸı HTML ļ"
    14. +

      ҳõ HTML ļڴϱ޸ˣͻϢϢȷǷҪѾ޸ HTML װصС

      + + + + + +

      ҳ֧"Me."

      +

      ҳĴУʹ"Me" DHTMLPage 磬ĵоᵽԱдƵĴ"Me.Document.item"ʵDzеġԱ "DHTMLPage" 䡣磬ʹ Me.DocumentҪ DHTMLPage.Document˽еģʹ "Me" DHTML ҳв˽С

      + + + + +

      ҳܴӴⲿ HTML Ԫ

      +

      ڴ塢ԻĶУܱдҳϵ HTML ԪءҳԪֻҳ汾ķΧڷʡ

      + + + + +

      ҳͼԴļ·ȷؽ

      +

      ҳнйʱ򣬾Ҫλڵǰ HTML ҳĿ¼еһͼ£һͼʱ image Ԫص SRC вûа·Ϣû·Ϣָʾҳ浱ǰĿ¼лȡͼ磬͵ͼ󣬿 SRC "myimage.gif"ָΪ "c:\mydhtml\myimage.gif" ⱻΪ·Ϊûָͼļ·

      +

      ƽ׶ΣҳȷʾЩ·ͼ SRC ֵʾõҳ棬

      + +
        +
      • ƽ׶ΣͼԪؽʾΪա
      • +
      • ҳ SRC ϸ "About:"磬SRC ԿܻʾΪ "About:myimage.gif."
      + +

      ܴЩ⣬ĿʱͼܹȷʾȫԺԵ SRC е "About:" ؼԼͼûбʾʵڱ HTML ļʱ image ǽȷʽд롣

      + + + + +

      ҳƳ־

      +

      ЩؼͼijЩȫԶƵĸʽ棬ǶƸʽ HTML ֱӱʾΪ⣬Ŀ֮󣬿ؼһЩԿûеõ档Ϊ˾⣬ʱЩԡбʾһЩѾ֪ԣ

      + + + + + + + + + + + + + + + + + + + + + + +
      +

      ؼ

      +

      Ŀ

      +

      Tabbed Իؼ

      +

      TabsPerRow Բ־

      +

      Windowless ؼб

      +

      б־

      +

      һؼ

      +

      Tabstrip ò־

      +

      һؼ

      +

      Toolbar ò־

      +

      һؼ

      +

      StatusBar ò־

      +

      ADODC ؼ

      +

      ConnectionString Բ־

      + +

      ⣬ںܶؼ˵ԲDZֲġǶƳ־ıʽ

      + + + + +

      ҳͿʹЩⲻʾ

      +

      ʼһҳĿʱڶп DHTML Ϳ -- DHTMLPAGELIB DHTMLProject ⡣ĵṩ DHTMLPAGELIB İûṩ DHTMLProject İDHTMLProject ĴԪؿҵ

      +

      £ͿijЩʾȷִСⷢ£

      +
        +
      • ͼԴз ActiveX ؼйصİʱ
      • +
      • ͼӴ༭з Document йصʱ
      • +
      + +

      ڴ£Ӧܹͨ MSDN 鿴λҪҵ⡣

      + + + + +

      ҳģʽģʽʾϢ

      +

      DHTML ҳһϢôģʽ±ʱϢ򽫳 Internet Explorer 󡣴ΪϢģʽģҲͨƶ Internet Explorer 鿴ϢཱུĻһϢʱѡ Visual Basic Ӧó򣬲鿴Ϣ

      + + + + +

      ҳҪ HTMLDocument ͵Ķ

      +

      IDE չ HTMLDocument Ͷļӿܻᷢ⡣Ӵ

      + + + + +

      ҳҳƿ

      +

      DHTML ҳд web ҳʱҳڲ framesets ݡȻ Visual Basic ⴴ frameset ʾΪ DHTML Ӧó򴴽ҳ档Ҫƺ͵Կܣ밴й̽в

      +
        + +
      1. Visual Basic Уö DHTML ҳÿܵݡ
      2. +
      3. ⲿı༭У frameset ĵΪһ .htm ļ䱣ʱĿ¼Сÿܵ SRC Ϊָҳ棬ʹڿܵ BuildFile ơ
      4. +
      5. Visual Basic УĿԶԻĵѡѡ" URL "Ȼ frameset ļ·
      6. +
      7. ģʽVisual Basic װ Internet Explorer װⲿƺõ frameset ҳ档 frameset ĵӦʵĿװҳƵҳ档
      8. +
      9. ճӦó
      + + + + +

      ҳ SetInterval ʹ Visual Basic

      +

      DHTML Ӧóн Internet Explorer BaseWindow SetInterval ʹһʱϣͱ뽫÷ĵһΪָҳеһ Javascript VBScript ʱ̡ҳе Visual Basic ̡

      + + + + +

      ҳйؿؼ

      +

      г DHTML Ӧóʹ ActiveX ؼʱӦע

      + +
        +
      • Ҫ DHTML ҳһ ActiveX ؼͱʹøÿؼıİ汾 + + +
      • 汾У ActiveX ؼĿʹ DHTML ҳ档Ҳ--Ҳ˵ؼ̲ڹĹһ֡һûؼȫɿķDZûؼ̣ȻرṆ̀ѿؼӵҳУʱ̼佻صԺDzܵġ
      • + +
      • DHTML ӦóijҳǶ ActiveX ؼʱкʵͿϢ֮ܵµͼڶзԵõÿؼϢʱִ󣬲ҿֹдʱֵɴпؼչԺͷ
      • + +
      • һЩ ActiveX ؼܺҳһͬ DHTML ҳʹпؼMS Chart, Script Debugger, Hierarchical FlexGrid, SrcEdit OC, LayoutDTC, Tabular Data control, PageNavbarDTC, or IE Popup Window⣬ DHTML Ӧóҳʹ˽лδûؼ⣬ܻһЩӵõĿؼܺҳһͬ
        󲿷ֺ Internet Explorer 4 ͬĿؼӦܺҳһͬӵĿؼܺҳһͬô Internet вͿؼϵνҳԼ Internet ͬ ActiveX ؼйϢ MSDN MSDN ߲ Microsoft's Web վϵ¡ Internet Explorer 4.0 ActiveX ؼ
      • + +
      • ӵһ ActiveX ؼѾ䱳Ϊ͸ƽ׶νӵ DHTML ӦóʱؼʾΪ͸
      • + +
      • DHTML ҳаһ Listview ؼҪ ColHeader.Width ԣԱһϢָö֧ԡȻȷʵ Auto List Members ʽбУDzҪڴʹԡ
      • + +
      • Щ Visual Basic ؼ common Ի sysinfo ؼʱDzɼġֶӵ HTML ҳУ֮󣬾Ͳѡвҳ淶ΧڽƶǣͼѡÿؼȻͿɾ߷ԡ
      • + +
      • DHTML һ File Upload ؼ (FlUpl) ʱʾ׼ļѡԻ򡣿ȡöԻ򣬼С
      • + +
      • horizontal rule Ԫص Auto List Members ʽбһûйܵ InnerText ԡҪκֵΪκЧ
      • + +
      • һЩӵõĿؼܲҳС Internet Explorer 4 һʹõĿؼҳһʹáĵؼҳȷУ Internet Explorer вԣȻؼϵйνҳ Internet Explorer Эͬʹõ ActiveX ؼϢο"Ϊ Internet Explorer 4.0 ActiveX ؼ" MSDN Microsoft Web վϵ MSDN Online ҵƪ¡
      • + +
      • ҳ ActiveX ؼʱеؼĴСʱؼ Height Width ԲԶ¡Ҫˢ height width ԵֵڵؼĴС֮󵥻ͼеĿհ
      • + +
      • ڹеһؼȻ󽫹ƶƴУ״ I αΪָָʾԵؼܹȻ I ΣǿԵ϶ؼҪ״
      • + +
      • ͬһĿ DHTML Ŀ֮俽ؼԻò¡ҪֹͨöԸÿؼıҪá
      • + +
      • ʹ ImageList ؼڵģʽĿͼƬᱻװ롣ǣб DLL ʱͼõȷʾ
      • + +
      + + + + +

      ҳй HTML ⼯ѡ

      +

       г DHTML ҳдʹ HTML ʱӦע

      + +
        +
      • ҳаһ CHARSET ԪmetatagڽҳʱǽԴҳ˵⡣
      • +
      • пıпй۲쵽пͬҪ⣬ԽпΪٷֱȶأȷߵвһȶλ
      • +
      • 벻Ҫ ID Ը 117 ֵַӦóʱͻһ
      • +
      • ҳϵĵһԪвıһ HTML Ԫأôɾȥһ <P> ǽ²ԤϵĽ£ҳϵԪҲܱɾ
      • +
      • ͼʹͼɾ DIV ʱܻһµĽɾ DIV ʱѣʹ༭ֹܲͨɾ <DIV> </DIV> ǡ
      • +
      • ĿʱֻЩııԪŻʾ߽硣ÿûбʹõıԪзһ <BR> ǣͿǿʾյԪı߽硣
      • +
      • Ŀ֮ HTML ҳϵ TITLE Ԫصֵûеõ֡Ȼм HTML Դ룬ͻᷢ title Ȼ HTML С
      • +
      • ҳϵԪǹ̶Ͻǡˣͨϱ߽߽ԪصĴСͷŹʱ򣬽һָСԪأȻճʼϽȷλá⽫δ֪ĽΪ˱ҪؼλϽǵʵλãȻȷصС
      • +
      • ɾЩԪصʽϢʱ򣬿ܻѡ磬ҳһ H1 ⣬ ENTER·һЩӣЩӽһĸʽ -- Ҳ˵ԵúܴǺ塣ʹøʽϵĺͼʽǣͨʹ༭ֹܲʽִĸʽнѡеı͸ıΪ Normal
      • +
      • ʾԴе Document ЩЧġЩԴĸ"on"ʼΪЩֵĿ߼ HTML Դʱ趨ֵκԤڵЧ
      • +
      • һѡ HTML ԪأʹһΪ "Indeterminate" ѡΪ grayed-out ״̬ǣΪ True Ȼ󵥻øѡΪհ״̬ Indeterminate ԲΪ FalseֹͨߵεԵֵ
      • +
      • Դʾ Height Width Եָ˾λõĿؼֱӸıЩֵؼĴСҪͨ϶һıС
      • +
      • HTML вһͼԪصҳϣȻʹ Shape Խӱ״ΪһΣͻһ

      • +
      • ͼӳĿܲԪƴʾ׼ȷ˳ͼҳԪ HTML гֵ˳ʾǵĽṹϵһԪ HTML еλòʾҳϵλһһӦģΪͨԺڲʽıһԪصλáҳ Internet Explorer ʾƴеʾһµġ
      + + + + +

      ҳйصԵ⼯ѡ

      +

      г˵ԺͲ DHTML ӦóʱӦע

      + +
        +
      • ڱشУDHTML ӦóʹõĺгΡһִΪΪ Boolean ֵͬ
      • +
      • ͼ༭شгijЩԵֵͿܻЩ԰
      + +
      DHTMLPage.BaseWindow.document.activeElement.all.length
      +
      DHTMLPage.BaseWindow.document.activeElement.offsetParent.all.length
      +
      DHTMLPage.BaseWindow.document.activeElement.children.length
      + +
        +
      • DHTML Ŀжģʽʱˢ Internet Explorerôͻ᷵ص Visual Basic ģʽϵstop ָҲòִС£ֹģʽȻ F5 ¿ʼԹ̡
      + + + + +

      ҳͨ̽﷨

      +

      ڽ Internet ӦóһĿ DHTML Ӧó򲿷ֵ" DHTML Ӧó򵼺"УVB ĵָڴʹ﷨ʵͨҳ֮ƶ

      +
      +Private Function Button1_onclick() As Boolean + BaseWindow.navigate "Project1.DHTMLPage2.html" +End Function +
      +

      ﷨DzȷģΪĿƺҳ֮Ӧһ»߷ָӦþָȷʹõ﷨ʾ +

      +Private Function Button1_onclick() As Boolean + BaseWindow.navigate "Project1_DHTMLPage2.html" +End Function +
      + + + + + +

      ҳOBJECT ǵIJ

      +

      VB ĵ" DHTML Ŀ"ָڵԹҳϲһ OBJECT ǣûָDZͬʱ METADATA ǰΧЩ˵Ϣаģ

      + +
        +
      • ʹôչ׼ĿԱ㷢ʱڰװ OBJECT ǵ CODEBASE Եݡ
      • +
      • ڵԹУ OBJECT ʵϱ뵽 HTML ļһʱĿСյıǽڰװá
      + + + + +

      ҳ뽹λҳʱʹ CTRL+TAB ݼڴ֮л

      +

      뽹λҳеʱ򣬲Ŀһʹ CTRL+TAB ݼ Visual Basic IDE д򿪵Ĵ֮ƶ

      + + + + +

      ҳɾһеı

      +

      ҳһжɾȻͼɾññȻʾͼСҪͼɾñͱɾtableԪϷĶparagraphԪء

      + + + + +

      ҳҳĿһʹ Visual SourceSafe ʱֹͨѡĿ .HTM ļ

      +

      һ DHTML Ŀѡ Visual Source SafeʱĿص HTML ҳûкĿļһԶѡ Source Safe СֹͨЩļΪļӵС

      +
      עֻѾ HTML ҳ汣浽ⲿļУŻѾҳ汣ĿڲͲΪʱĿѡκ .htm ļ
      + + + + +

      ҳδָ BuildFile Խϵ DLL

      +

      ༭ BuildFile ʹָļĿ¼ϵͳֱϽļԵֵʱʼЧ·

      + + + + +

      ҳ Asynchronous һʹ Load ¼

      +

      MSDN Visual Basic ĵIJο"Load ¼"Уĵָ

      +
      "Ա첽еʱʹ¼ ( AsyncLoad ԱΪ True) ΪһԪضѾװصҳϵ֪ͨ"
      +

      ʵϣӦ˵Աͬеʱʹ Load ¼ ( AsyncLoad Ϊ False) ΪһԪضѾװص֪ͨ

      + + + + +

      ҳҳص

      +

       ǵ DHTML ҳжҳϵIJͬ HTML ԪؽвʱӦע

      + +
        +
      • ЩԪصҳжѡDz DHTML Ŀҳϡںܶ£ʹЩѡDzɼģҲͨ TAB Щѡ
      • +
      • ѾӵӦóе ActiveX ؼ޸䶨ҳ棬Щ޸IJܹӳ DHTML ĿСҪر DHTML Ŀ± ActiveX ؼĿȻĸıͻ DHTML ĿСÿθıؼҳʱظ˹̡
      • +
      • һЩҳϽ "Test" ʡⲢӦóκ⡣
      + + + + +

      ҳ .CAB ʱĿļλ

      +

      " DHTML Ŀ"УVB ĵָڲĿ DLL ļ Visual Basic ʵʱпԼĿ .dsr .dsx ļõͬһ .cab ļСDzȷġʵϣĿ .dsr .dsx ļᱻõ .cab ļС

      + + + + +

      ҳѡѸı

      +

      ҳĵָ뱣浽һⲿ HTML ļѡ񱣴ѡĹ̽ʾѡҳԶԻн" HTML "ѡѡ׼ȷ" HTML Ϊ VB Ŀһ֡"

      +
      + + + + +

      ҳӱģʽлģʽĹڴı

      +

      ż⣺б DLL֮޸Ĵ룬Ȼģʽȴ DHTML Ӧóе޸ġ£Գи취 +

        +
      • ޸֮󣬿ʼԹ֮ǰĿԶԻĵѡϣȡʹѡѡ +
      • б DLL ֮󣬴 IDE ޸Ĵ֮ǰ˳ +
      +
      + + + +

      ҳƽ̨ SDK пԻôԪصİ

      +

      ҳĴԪض̳ Internet Explorer ĵģͨ͡ F1 ЩԪصİҪЩİ MSDN Ŀ¼д"ƽ̨ SDK"ڵ㣬Ȼ"Internet/Intranet/Extranet "ڵ㲢ѰҶ̬ HTML ֡ҲʹԪء

      +
      + +
      + + + + + +

      йؿԵ

      + + + + +

      "аȫ" Add-In ʽ

      +

      ʹ Add-In еװ뷽ʽںʱԺַʽһ add-in װ Visual Basic

      +
        +
      • װ/ж -- ˿ѡװѡ add-in֮жء
      • +
      • ʱװ -- ָ Visual Basic IDE ʱǷҪװѡ add-in
      • +
      • -- ָͨ DOS ʾ߽ű Visual Basic ʱǷҪװһ add-in
      • +
      +

      Ϊһ add-in ѡװ뷽ʽܻµľϢ

      +
      +
      "ѡ add-in ûбȷΪ'аȫ'Ҫû (ܵ UI)Ҫ"
      +
      +

      һ add-in ڴʱûб俪Ϊ"аȫ"(һ Add-In ͨһѡָʾ)ôѡ add-in װʱͻᷢ

      +

      "аȫ"ζ add-in ע᷽ʽָʾ add-in ûаκͨ Visual Basic ʱҪûûӿڡûӿڻûĹ(罨ű)ִС

      +

      ûָʾ add-in аȫ (ȷʵ аȫ)ûѡ˸ add-in Ȼװ뷽ʽѡУûϢⲢһص⣬ֻһϢûѡ add-in ܿܰ UI ԪأЩԪؿܻϵͻȻֲͣȴûӶֹͣԶִеĽű

      + + + + +

      ֹͨ趨 Add-In עֵ

      +

      Ҳֹͨ Windows ע add-in İȫ־λ (Լֵ)

      +

      ע⣺ҪͼֱӲκε Windows עעIJdzϤЧעܻʹ Windows ⣬ص£ܵ² Windows

      +

      Visual Basic 6.0 У add-in Ϣעλ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Basic\6.0\Addins\<add-in.name> Visual Basic 6.0 ˵ LoadBehavior DWord ֵǣ

      + +
        +
      • None = 0
      • +
      • Startup = 1
      • +
      • Command Line = 4
      • +
      • Command Line / Startup = 5
      + +

      ֮⣬һ DWord ֵָʾ add-in Ƿаȫģ CommandLineSafeֵΪ 1˵ add-in аȫģֵΪ 0 (Ĭ)˵аȫġAdd-In ûѡаȫѡǾζֵ 0Ӧ add-in ҲͲаȫģΪĬϵá

      +

      ԣΪʾʹЩֵָһٶ add-in (My.Addin) аȫIJڴ Visual Basic ʱװ add-inҪͨʹ RegEdit Ĺעֵ

      +
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Visual Basic\6.0\Addins\My.Addin
      +   "FriendlyName"="A friendly name for your add-in"
      +   "Description"="This value describes the add-in"
      +   "LoadBehavior"=dword:4
      +   "CommandLineSafe"=dword:1
      +
      + + + + +

      ʹ Add-In

      +

      Visual Basic 6.0 аһµĹߣ Add-In Э add-inҪ Add-In +

        +
      • һµ add-in Ŀ
      • +
      • Ŀе£һ Connect ˫Ϳ Add-In
      • +
      +

      źǣǰ Add-In ûصİӦİ⻹еġ MSDN ͨ Add-In Һʵİ⡣Բ鿴ص⣺ +

        +
      • "ʹ Add-In "
      • +
      • "ѡ (Add-In )"
      • +
      • "߼ѡ (Add-In )"
      • +

      +

      йصϸϢ MSDN Visual Studio 6.0 ĵСѡ "ע Add-In"

      + + + + +

      Add-In йָ Satellite DLL ϸϢ

      +

      ʹ Add-In add-in ʱڸ߼ѡָһ DLLȷ DLL ļƣҪ·磺

      +

      +
      MyAddinName.DLL
      +

      ǣ

      +
      Addins\MyAddinName\MyAddinName.DLL +
      +
      +

      𻯵 Satellite DLL

      +
      +

      һ𻯵 satellite DLLӦʵĿ¼ͬʱΪ satellite DLL һԴĿ¼һ ID Ŀ¼ DLL װʵĿ¼¡һʾĿ¼

      +
      <AddIn Directory>\Resources\<Locale ID>\<MySatellite.DLL>
      +

      磬¹ satellite DLL (Locale ID = 1031) ӦðװĿ¼У

      +
      C:\Program Files\MyAddin\Resources\1031\MyAddinName.DLL
      + +
      + +
      + + + + +

      ⼯ѡ

      + + + + +

      DLL شֵ

      +

      Ҫһ̬ӿ (DLL) зһֵ谴 C ԭͱд룬صֵһ HRESULTйνд˹Ϣο Microsoft OLE 2 Աοڶ

      + + + + +

      ݷָϣ DataFormats ̵̳ļչǴ

      +

      "Format Objects Tutorial"дһչΪ .mdl ļʵʵļչ .udlйصϸϢѡ MSDN Visual Studio 6.0 ĵн "Format Objects Tutorial"

      + +

      ˴ᵽļΪ "Northwind.mdl"Ӧ "Northwind.udl"

      + + + + +

      ѡԻ"ⲿ༭"ֶ

      +

      ѡ Ի ߼ ѡһΪ ⲿ HTML ༭ ıѡͿѡ񵱴 DHTML ҳ༭ Webclass ѡ ʱֵ HTML ༭򡣱ıҪʹõijڵ·Լִļѡ HTML ༭ִ򣬻ʹõı༭

      + + + + +

      Internet е CodeBase Fixup ʵó

      +

      Internet Ӧó" ActiveX "һᵽ˱Ϊ CodeBase Fixup ʵó򣬿ʹʵóֹͨ ActiveX ĵ codebase ϢϢDzȷġ +ʵóûVisual Basic \Tools Ŀ¼ṩҶ Internet Explorer 4.0Ҳֹͨд˹̣Ϊչ򵼻ԶΪЩõĿʵ codebase Ϣ +

      + + + + +

      ġĺͺİ Windows Ŀ/򿪶Իеıصһ

      +

      ġĺͺİ Windows Visual Basicע⵽ĿԻߴ򿪶Իеıصһ֡ر WindowsȻ Visual BasicͿԽˡ

      + + + + +

      ActiveX һʹRepository Add-In

      +

      Ӧñ ActiveX Ŀһʹ Repository add-in

      +

      Ҫÿб Visual Basic Ŀ˵ϣȻ󵥻Իϵѡ

      + +
      + +
      + + + + +

      й Microsoft Transaction Server (MTS)

      + + + +

      Visual Basic 6.0 н͵ MTS

      +

      Visual Basic 6.0 ֶ֧ Microsoft Transaction Server (MTS) ĵԣҲмעӦμǡڵе MTS

      +

      Windows NT 4.0 SP4

      +

      MTS ֧Ҫ Windows NT 4.0 Service Pack 4 (SP4) ߸ߵİ汾Windows 95 Windows 98 ֧ MTS ԡ

      +

      MTSTransactionMode

      +

      Visual Basic 6.0 Ϊһµ MTSTransactionMode ԣԱΪҪ Microsoft Transaction Server (MTS) ֧֡Եֵ MTS ԴеԡǣVisual Basic IDE ЩԵ MTS ԴʹõƲȫһ¡Щ֮ĶӦϵ£

      + + + + + + + + + + + + + + + + + + + +
      +

      VB ֵ

      +

      MTS Դеѡ

      +

      0 - NotAnMTSObject

      +

      N/A

      +

      1 - NoTransactions

      +

      ֽ֧

      +

      2 - RequiresTransaction

      +

      Ҫһ

      +

      3 - UsesTransaction

      +

      ֽ֧

      +

      4 - RequiresNewTransaction

      +

      ҪһµĽ

      + +

      ֻʹ Add File ʵóӵУ Transaction ԲŻᱻ뵽 MTS Сͨעбģô MTS Explorer MTS Ծ͵òӳ

      +

      MTS

      +

      Ҫ Visual Basic 6.0 MTS еԣ뽫 MTSTransactionMode Ϊ 0-NotAnMTSObject ֵ F5 ʼԣ Visual Basic Microsoft Transaction Server ʱڲ

      +

      ͻ߳

      +

      ֻܶÿڵ߳еĵͻ͵ MTS еԡҪͻ MTS ̵߳Ӧ Visual C++ ж Visual Basic еԡй Visual C++ е Visual Basic ϸϢο Visual C++ ĵ

      +

      ԵıҪ

      +

      Ҫ Visual Basic н MTS ͱ뽫Ϊ DLL ĿĶƼԡûöƼԲӽӿڻɾӿڣ MTS ܼ⵽Щı䡣

      +

      Class_Initialize Class_Terminate ¼еԵ

      +

      һͼʶӦ context ôͲӦڸ Class_Initialize Class_Terminate ¼зô롣Visual Basic ʱڶı֮ǰ Class_InitializeͼԶ󼰶Ľеκβʧܡƣ Class_Terminate ֮ǰѾˣͼԶĽеIJҲʧܡ

      +

      Ӧ MTS Class_Terminate ¼öϵ㡣Գ򵽴˶ϵ㣬ͼ˶󣬶ͼʧܲ Visual Basic ֹͣ

      +

      MTS

      +

      ڵԹУ벻ҪӴ MTS лзصĶ SafeRefGetObjectContextCreateInstance MTS װĶĺķֵ

      +

      ҪЧģлÿε Visual Basic ڵԳжʱMicrosoft Transaction Server ʱͣڲVisual Basic ڵԳбӵĶķΪڲ鿴ʱ MTS ʱͣˣVisual Basic Щĵýʧܡ

      +

      Ӵ MTS װĶͨ;мӣǽ²һµ״̬ MTS ⵽Ӷùֹ̽

      +

      ע͵

      +

      Visual Basic еĵԹԻûаװ MTS explorer е MTS еԡʼʱ Visual Basic ԶҪ MTS MTS ʱ

      +

      ݵԵıҪܻҪװ MTS explorer Сڽд˲ĹУһЩӦμǵ⡣ Visual Basic IDE жĽӿڡơĿơ transactional ֻ֧ãMTS explorer еݺ Visual Basic Գеʵܴ֮Ų졣ʱҲԽװ MTS С⣬ڵеһʱ򵼳 MTS Visual Basic

      +

      ȷҪԵû MTS explorer עᣬôЩⶼԱ⡣籾ֺᵽģڵԳиıһѰװãпҪɾ½аװ

      +

      Թĸı

      +

      Visual Basic УڵԹ޸ MTS transactional ԡVisual Basic MTS עЩ޸ġ

      +

      ڵԹжԴ˸ı䣬ӶҪ Visual Basic һµ CLSID ProgID ߸ıκ MTS transactional, ͱʹ MTS Explorer ɾ°װѾΪ˶ƼԣѾıľϢ

      +

      MTS ʱԳ

      +

      ڵԳһȻʼԣڵԳʱһʵȻ MTS СMTS ⵽ͼعرƵʵҪڿʼ֮ǰ MTS explorer ɾ

      +

      δע MTS

      +

      һ MTS ʹû MTS Ŀ¼עᣬҲܹ Visual Basic ԳС£ MTS Explorer нDzɼġûעᣬöеԣڱ۵⡣

      +

      ͵

      +

      Ҫȷزһ MTS Ҫ佨Ϊ DLLȷûκεԹУȻдչ򵼡 Visual Basic 򿪣DzڵԹб

      +

      MTS ڵԳезʽڿ

      +

      MTS ʱڽеԵ Visual Basic ķʽͺЩһЩͨ MTS עΪڷҲˡ֧١ü̷߽롣

      +

      ΪڽеԵ MTS ı־һԲ Visual Basic наȫԷĵԡԶ̼ܽʹ Visual Basic İȫԡǣһ MTS ʱ (mtx.exe) еԶ̼ܽʹ MTS explorer ΪضõİȫԡҪйذȫ⣬Ӧʹ Visual C++

      +

      ʧܵ Visual Basic ֹͣ

      +

      ڵԵ MTS Visual Basic ͬһУʧͬʱ Visual Basic ֹͣСң MTS ʱڲIJһµ״̬Զرʱ̡Щ£ MTS ʾһԻVisual Basic ڽʧһ¼¼ Windows NT ϵͳ־ļС Windows NT ¼鿴Լĵе⣬Ա˽ԴĿܵĽ͡

      +

      ֧ Transacted Web

      +

      Visual Basic 6.0 ֧ Transacted Visual Basic Web ࡣ

      +

      RunWithoutContext ע

      +

      Visual Basic 6.0 RunWithoutContext עһ Visual Basic 6.0 MTS ۺϵԻвҪΪ context ṩĹܿڵԹлá

      +

      ʹ IObjectControl

      +

      Ҫ߹ر MTS Ĺִд룬Ӧʹ IObjectControl ӿ ( Microsoft Transaction Server Ϳ) ʹ Activate Deactivate Щڶ͹رչб MTS лáʹ IObjectControl ʹ Class_Initialize Class_Terminate һЩ

      +

      з÷ʶcontext Ĵ롣ǣ MTS ʱķʽӦ IObjectControl::Deactivate IObjectControl::CanBePooledöϵ㡣

      +

      Գ¼ MTS ͷŵĶ

      +

      ͨͻеʱVisual Basic 6.0 ¼ MTS Visual Basic 6.0 йصϢķʽǿԤڵ磬뿼µĴ룺

      +
      +Dim x as object +Set x = CreateObject("MyApp.Class") +x.Test +Set x = Nothing +
      +

      x.Test SetCompleteMTS ڴͷ x x ûбΪ Nothing x.Test ʱ Visual Basic Գ x QueryInterface Բѯ IProvideClassInfo ӿڡ x صİװ򴴽 MyApp.Class һʵԱΪ QueryInterface ṩһ x.Test ֮ڵԳпδʼĶֻڵԳУұĽ x Ϊ Nothing ָɾ

      +
      + + +
      + + + + +

      Dictionary

      + + + +

      Dictionary

      +

      Visual Basic 6.0 аһµ Dictionary Collection Dictionary ȼ PERL ʹõĹ顣Dictionary ṩ Collection Array ߱ĶԺͷ

      +

      Dictionary 󱻰 Visual Basic 6.0 һ Microsoft űп (Scrrun.dll) СΪĿʹ Dictionary 󣬾ͱ Scrrun.dll

      +

      Ҫϸ˽ Dictionary ѡ MSDN Visual Studio 6.0 ĵн "Dictionary "

      +
      + +
      + + + + +

      Visual

      + +

      Visual ֪

      + +

      "ļѡ (ԶԻ)"

      + +

      Visual ûIJο"ļѡ (ԶԻ)"дָѡʾ뱻ѡصļʵϣѡϵϢܱ޸ġֻڷ·ʱ򣬲صļйصϸϢѡ MSDN Visual Studio 6.0 ĵн""

      + +

      ɾ Repository 1.0 ע

      + +

      װ VCM 5.0 (ԭȿԴ web صõ)Ҫµ Windows ע VCM 5.0 1.0 Repository ˵ЩעDZҪġ +ҵעôɾЩǺܰȫģʵϣп VCM 6.0 ܡ

      + +
        + +
      • HKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheMaxAnnProps
      • +
      • HKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheMaxObjects
      • +
      • HKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheRelshipMaxCollections
      • +
      • HKEY_LOCAL_MACHINE\Software\Microsoft\Repository\CacheRelshipMaxRows
      • +
      • HKEY_LOCAL_MACHINE\Software\Microsoft\Repository\MaxRowCacheAge
      • + +
      + +

      һе .mdb ļ Repository

      + +

      ͼ VCM ڲһе .mdb ļļһ repository ݿ(˵ repository ṹ/)ϵͳѯǷҪݿ repository ʹòӦ repository repository ͨӦôһݿСȻҲ repository һе .mdb ļд repository ṹҪ 10 ӵʱ䡣

      + +

      Ҫһ repository ṹȫµ .mdb ļҼļУ Repository½ȻҪļơ

      + +
      + + +
      + + + + +

      Ӧó

      + +

      Ӧó֪

      + +

      ʹԶ APE ʱԶԶİȫ

      + +

      ΪʹԶԶ(RA) ԱԶ APE ͨţҪʹԶԶӹ (Racmgr32.exe) RA İȫԡ

      + +

      Ҫ RA İȫ

      + +
        + +
      1. Racmgr32.exe ͻѡ
      2. + +
      3. ѡ"еԶ̴""ؼԶ̴"
      4. + +
      5. ѡ"ؼԶ̴"ȷÿ APE ѡ"Զ̼"ѡ
      6. + +
      + +

      RA ֧֤

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +

      +

      ֵ

      +

      +

      Default

      +

      0

      +

      Ĭʹ硣

      +

      None

      +

      1

      +

      ֤

      +

      Connect

      +

      2

      +

      ֮ӱ֤

      +

      Call

      +

      3

      +

      ÿԶ̵̹õĿʼյʱ֤ڻӵЭ˳ (ǰ׺ "ncacn" ͷ)

      +

      Packet

      +

      4

      +

      еĽյݶԤڵĿͻ

      +

      Packet Integrity

      +

      5

      +

      ڷͿͻ֮䴫͵ûбĶġ

      +

      Packet Privacy

      +

      6

      +

      𲢶ÿԶ̵̹õIJֵмܡ

      + +

      APE ļװʱֻмΪ 1 ("None") ֤Ϊ Windows 95 ָֻ֧ü֤ǣҪߵİȫԣֻҪʹ Notepad ı༭üļ (Aemanagr.ini ļ) ޸ģͿԸıϢ֤

      + +

      ϢļеϢĿͷ÷Ϣƣ [Peak performance, synchronous (CPU, Pool)]Ϣԣʽ <name>=<value> ( "Task Duration=1")Ҫı֤ıѡϢ "Authentication"Եֵļ

      + +

      Visual Studio 6.0 һ𷢲Ӧó Visual Basic 5.0 һ𷢲Ӧó֮ļ

      + +

      Visual Studio 6.0 һ𷢲Ӧó Visual Basic 5.0 һ𷢲Ӧó֮һЩ֪ļ⡣

      + +ҪּԵ⣬в֮һ + +
        + +
      • Ҫװ Visual Studio 6.0 APE ļ VB 5 һ𷢲APEİ汾ȴ VB жص APEȻٰװ Visual Studio APE
      • + +
      • Ѿ Visual Studio 6.0 APE װ VB5 APE ͬһ̨ϣж VB APEȻ°װ Visual Studio APE
      • + +
      + +

      ĬϵԱʹ APE MTS

      + +

      SQL ϰװ APETEST ݿ֮󣬱һЩĬϵýеԱʹ APE MTS

      + +
      +

      ע   û SQL ϰװ APETEST ݿ⣬ôӦɰװҪ˽ΰװ APETEST ݿ⣬ MSDN Visual Studio 6.0 в"APE ݿⰲװ"

      +
      + +

      Ҫ APETEST ݿİװԱ MTS һʹ

      + +
        + +
      1. Microsoft SQL Enterprise Manager
      2. + +
      3. Databases ļУҼ APETEST ݿⲢ༭
      4. + +
      5. ѡѡ
      6. + +
      7. ڼ㸴ѡѡTruncated Logȷ
      8. + +
      9. Databases ļУҼ tempdb ݿⲢ༭
      10. + +
      11. չ
      12. + +
      13. 豸Уѡ <½>
      14. + +
      15. ݿ豸ԻƿУ tempdbData
      16. + +
      17. ڴС (MB) У 10
      18. + +
      19. 󵥻ȷ
      20. + +
      21. չ
      22. + +
      23. չ
      24. + +
      25. Log豸Уѡ <½>
      26. + +
      27. 豸ԻƿУ tempdbLog
      28. + +
      29. ڴС (MB)У 10
      30. + +
      31. 󵥻ȷ
      32. + +
      + +

      Ҫÿû

      + +
        + +
      1. Microsoft SQL Enterprise Manager
      2. + +
      3. Ҽá
      4. + +

        磬Ϊ CORONAڷӴУҼ CORONA Ȼ󵥻á

        + +
      5. ѡ
      6. + +
      7. ÿУСΪ 15 ķûӵ
      8. + +
      + +
      +

      ע   һѾIJƷݿ APETESTܲ߱ɣӶҲܵǰû£ҪݿԱСΪ 15 ķûӵԱ APE ԡ

      +
      + +

      Ӧóķ˵İװܲ

      + +

      ڰװ APE ʱ򣬿ܻһ˵ OLEAUT32.dll 汾ȷƲаװ

      + +

      ǣϢܰʾ Microsoft Transaction ServerûеõȷİװΪȷϵİװȷģ Transaction Server Explorer ڼϲѰװ MTS Ӧð Visual Studio APE

      + +

      Ҫװ AEMTSSVC.pkgӿʼ˵ MTS Transaction Server Explorerʹ MTS Explorer װؼϡ

      + + + + + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + + + diff --git a/cadVb/SETUP.EXE b/cadVb/SETUP.EXE new file mode 100644 index 0000000..6096db0 Binary files /dev/null and b/cadVb/SETUP.EXE differ diff --git a/cadVb/SETUP.INI b/cadVb/SETUP.INI new file mode 100644 index 0000000..3f9b869 Binary files /dev/null and b/cadVb/SETUP.INI differ diff --git a/cadVb/SETUP.TDF b/cadVb/SETUP.TDF new file mode 100644 index 0000000..6f1949f Binary files /dev/null and b/cadVb/SETUP.TDF differ diff --git a/cadVb/SETUP/ACMSETUP.EXE b/cadVb/SETUP/ACMSETUP.EXE new file mode 100644 index 0000000..0fb7a9a Binary files /dev/null and b/cadVb/SETUP/ACMSETUP.EXE differ diff --git a/cadVb/SETUP/ACMSETUP.HLP b/cadVb/SETUP/ACMSETUP.HLP new file mode 100644 index 0000000..07898ba Binary files /dev/null and b/cadVb/SETUP/ACMSETUP.HLP differ diff --git a/cadVb/SETUP/BBOARD.DLL b/cadVb/SETUP/BBOARD.DLL new file mode 100644 index 0000000..f110a69 Binary files /dev/null and b/cadVb/SETUP/BBOARD.DLL differ diff --git a/cadVb/SETUP/COMMON98.DLL b/cadVb/SETUP/COMMON98.DLL new file mode 100644 index 0000000..699d7ef Binary files /dev/null and b/cadVb/SETUP/COMMON98.DLL differ diff --git a/cadVb/SETUP/MSSETUP.DLL b/cadVb/SETUP/MSSETUP.DLL new file mode 100644 index 0000000..59cbd5f Binary files /dev/null and b/cadVb/SETUP/MSSETUP.DLL differ diff --git a/cadVb/SETUP/ODBCCONF.EXE b/cadVb/SETUP/ODBCCONF.EXE new file mode 100644 index 0000000..528fda4 Binary files /dev/null and b/cadVb/SETUP/ODBCCONF.EXE differ diff --git a/cadVb/SETUP/ODBCKEY.INF b/cadVb/SETUP/ODBCKEY.INF new file mode 100644 index 0000000..afbf390 --- /dev/null +++ b/cadVb/SETUP/ODBCKEY.INF @@ -0,0 +1,128 @@ +[Messages] + ComplianceTitle=You are not allowed to install these drivers + ComplianceFail=You must have one of the Microsoft products listed below in order to install the drivers. + ConfDsnFailed=The configuration of the ODBC %s driver failed. + BadKeyLine=Bad or Missing '%s' key in %s for ODBC driver %s. + InstallDriverFail=SQLInstallDriver failed for ODBC driver %s. + Title=Error while configuring ODBC drivers! + OutOfMem=Ran out of memory while configuring the ODBC driver + MissingDriver=Missing 'Driver=' or 'Setup=' key for ODBC driver %s in %s + BadDetectOsKey=Unknown flag %s to AcmeDetectOS in odbcstf.dll. + InstallTranslatorFail=ODBC's SQLInstallTranslator failed while configuring translator %s. + RemoveTranslatorFail=ODBC's SQLRemoveTranslator failed while removing translator %s. + InstallDmFailed=ODBC's SQLInstallDriverManager failed. + RemoveDmFailed=ODBC's SQLRemoveDriverManager failed. + ConfigDriverFailed=ODBC's SQLConfigDriver failed for driver %s. + RemoveDriverFail=ODBC's SQLRemoveDriver failed for driver %s + +[Translators] + Name=MS Code Page Translator + Translator=MSCPXL32.DLL + Setup=MSCPXL32.DLL + +[SQL Server Driver] + Name=SQL Server + Driver=sqlsrv32.dll + Setup=sqlsrv32.dll + SQLLevel=1 + FileUsage=0 + DriverODBCVer=02.50 + ConnectFunctions=YYY + APILevel=2 + +[Oracle Driver] + Name=Oracle Driver + Driver=msorcl32.dll + Setup=msorcl32.dll + SQLLevel=1 + FileUsage=0 + DriverODBCVer=02.50 + ConnectFunctions=YYY + APILevel=1 + +[DA Text] + Driver=odbcjt32.dll + Setup=odtext32.dll + Name=Microsoft Text Driver (*.txt; *.csv) + APILevel=1 + ConnectFunctions=YYN + DriverODBCVer=02.50 + FileUsage=1 + FileExtns=*.,*.asc,*.csv,*.tab,*.txt,*.csv + SQLLevel=0 + ConfigDSN=DSN=Text Files|DriverID=27|| + +[DA Excel] + Driver=odbcjt32.dll + Setup=odexl32.dll + Name=Microsoft Excel Driver (*.xls) + APILevel=1 + ConnectFunctions=YYN + DriverODBCVer=02.50 + FileUsage=1 + FileExtns=*.xls + SQLLevel=0 + ConfigDSN=DSN=Excel Files|DriverId=22|| + +[DA dBase] + Driver=odbcjt32.dll + Setup=oddbse32.dll + Name=Microsoft dBase Driver (*.dbf) + APILevel=1 + ConnectFunctions=YYN + DriverODBCVer=02.50 + FileUsage=1 + FileExtns=*.dbf,*.ndx,*.mdx + SQLLevel=0 + ConfigDSN=DSN=dBASE Files|DriverId=533|| + +[DA Paradox] + Driver=odbcjt32.dll + Setup=odpdx32.dll + Name=Microsoft Paradox Driver (*.db ) + APILevel=1 + ConnectFunctions=YYN + DriverODBCVer=02.50 + FileUsage=1 + FileExtns=*.db + SQLLevel=0 + ConfigDSN=DSN=Paradox Files|DriverId=538|| + +[DA Access] + Driver=odbcjt32.dll + Setup=odbcjt32.dll + Name=Microsoft Access Driver (*.mdb) + APILevel=1 + ConnectFunctions=YYN + DriverODBCVer=02.50 + FileUsage=2 + FileExtns=*.mdb + SQLLevel=0 + ConfigDSN=DSN=MS Access '97 Database|UID=Admin|| + +[DA FoxPro] + Driver=odbcjt32.dll + Setup=odfox32.dll + Name=Microsoft FoxPro Driver (*.dbf) + APILevel=1 + ConnectFunctions=YYN + DriverODBCVer=02.50 + FileUsage=1 + FileExtns=*.dbf,*.cdx,*.idx,*.ftp + SQLLevel=0 + ConfigDSN=DSN=FoxPro Files|DriverId=536|| + +[DA Visual FoxPro] + Driver=vfpodbc.dll + Setup=vfpodbc.dll + Name=Microsoft Visual FoxPro Driver + APILevel=0 + ConnectFunctions=YYN + DriverODBCVer=02.50 + FileUsage=1 + FileExtns=*.dbc,*.dbf + SQLLevel=0 + ConfigDSN=DSN=Visual FoxPro Tables|SourceDB=|SourceType=DBF|| + + + diff --git a/cadVb/SETUP/ODBCSTF.DLL b/cadVb/SETUP/ODBCSTF.DLL new file mode 100644 index 0000000..ee421d2 Binary files /dev/null and b/cadVb/SETUP/ODBCSTF.DLL differ diff --git a/cadVb/SETUP/PHOLDER.DLL b/cadVb/SETUP/PHOLDER.DLL new file mode 100644 index 0000000..ba4540c Binary files /dev/null and b/cadVb/SETUP/PHOLDER.DLL differ diff --git a/cadVb/SETUP/SELFREG.DLL b/cadVb/SETUP/SELFREG.DLL new file mode 100644 index 0000000..d251328 Binary files /dev/null and b/cadVb/SETUP/SELFREG.DLL differ diff --git a/cadVb/SETUP/VB98ENT.DLL b/cadVb/SETUP/VB98ENT.DLL new file mode 100644 index 0000000..ed4d7d7 Binary files /dev/null and b/cadVb/SETUP/VB98ENT.DLL differ diff --git a/cadVb/SETUP/VB98ENT.INF b/cadVb/SETUP/VB98ENT.INF new file mode 100644 index 0000000..5ed38dc --- /dev/null +++ b/cadVb/SETUP/VB98ENT.INF @@ -0,0 +1,2487 @@ +;*** BEGIN ********************************************************** +;** ** +;** Automatically generated on: Tue Aug 04 01:06:45 1998 ** +;** ** +;** Diamond Version: (32) 1.00.0602 (07/14/97) ** +;** ** +;*** BEGIN ********************************************************** +[Source Media Descriptions] +; , , , + "1","Visual Basic 6.0 ҵ氲װ","VB98ECD1.inf","." + +[Default File Settings] +"STF_BACKUP" = "" +"STF_COPY" = "YES" +"STF_DATE" = "1998-08-04" +"STF_DECOMPRESS" = "" +"STF_OVERWRITE" = "OLDER" +"STF_READONLY" = "" +"STF_ROOT" = "YES" +"STF_SETTIME" = "YES" +"STF_TIME" = "0" +"STF_VITAL" = "" + +;************* INF File list ***************** + +[Common Setup] +"acmsetup_exe" = 1,Setup\acmsetup.exe,,,,1998-06-22,,2052,OLDER,,,setup.exe,!ROOT,,,371200,SYSTEM,,,3.1.0.8043, +"acmsetup_hlp" = 1,Setup\acmsetup.hlp,,,,1998-05-14,,,OLDER,,,,,,,13939,,,,, +"mssetup_dll" = 1,Setup\mssetup.dll,,,,1998-06-22,,2052,OLDER,,,,,,,283136,SYSTEM,,,3.1.0.1918, +"vb98_inf" = 1,Setup\vb98ent.inf,,,,1998-08-04,,,OLDER,,,,,,,13,,,,, +"common98_dll" = 1,Setup\common98.dll,,,,1998-07-10,,2052,OLDER,,,,,,,184320,SYSTEM,,,6.0.0.8191, +"pholder_dll" = 1,Setup\pholder.dll,,,,1998-05-25,,1033,OLDER,,,,,,,29696,SYSTEM,,,6.0.0.8146, + +[SetupProdCah] +"vb98_dll" = 1,Setup\vb98ent.dll,,,,1998-07-07,,2052,OLDER,,,,,,,65024,SYSTEM,,,6.0.0.8169, +"selfreg_dll" = 1,Setup\selfreg.dll,,,,1998-04-24,,1033,OLDER,,,,,,,32256,SYSTEM,,,8.0.0.3214, + +[Remove ACME Help Files] +"acmsetup_gid"= 1,acmsetup.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"acmsetup_fts"= 1,acmsetup.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"acmsetup_ftg"= 1,acmsetup.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VSS Setup Aux] +"vsscantl_dll" = 1,Setup\vsscantl.dll,,,,1998-04-24,,,OLDER,,,,,,,229376,SYSTEM,,,, +"wwsetup_ttf" = 1,Setup\wwsetup.ttf,,,,1998-04-24,,,OLDER,,,,,,,79720,SYSTEM,,,0.91.0.0, + +[Setup] +"eula_txt" = 1,eula.txt,,,,1998-07-27,,,OLDER,,,,,,,25721,,,,, + +[dag ODBC CAH] +"odbcstf_dll" = 1,Setup\odbcstf.dll,,,,1998-06-22,,,OLDER,,,,,,,28672,SYSTEM,,,3.510.3002.13, +"odbckey_inf" = 1,Setup\odbckey.inf,,,,1998-04-24,,,OLDER,,,,,,,3281,,,,, + +[dag ODBC Core Components] +"odbc32_dll" = 1,os\system\odbc32.dll,,,,1998-06-22,,0,OLDER,,,,,,,279552,SYSTEM,,,3.510.3002.13, +"odbcad32_exe" = 1,os\system\odbcad32.exe,,,,1998-06-22,,0,OLDER,,,,,,,9216,SYSTEM,,,3.510.3002.13, +"odbccp32_cpl" = 1,os\system\odbccp32.cpl,,,,1998-06-24,,2052,OLDER,,,,,,,9728,SYSTEM,,,3.510.3002.13, +"odbccp32_dll" = 1,os\system\odbccp32.dll,,,,1998-06-22,,0,OLDER,,,,,,,127488,SYSTEM,,,3.510.3002.13, +"odbccr32_dll" = 1,os\system\odbccr32.dll,,,,1998-06-22,,0,OLDER,,,,,,,289280,SYSTEM,,,3.510.3002.13, +"odbcint_dll" = 1,os\system\odbcint.dll,,,,1998-07-30,,2052,OLDER,,,,,,,68608,SYSTEM,,,3.510.3002.13, +"mtxdm_dll" = 1,os\system\mtxdm.dll,,,,1998-06-22,,1033,OLDER,,,,,,,29456,SYSTEM,,,1997.11.532.0, +"odbctrac_dll" = 1,os\system\odbctrac.dll,,,,1998-06-22,,0,OLDER,,,,,,,192512,SYSTEM,,,3.510.3002.13, +"odbc16gt_dll" = 1,os\system\odbc16gt.dll,,,,1998-06-22,,0,OLDER,,,,,,,26224,SYSTEM,,,3.510.3002.13, +"odbc32gt_dll" = 1,os\system\odbc32gt.dll,,,,1998-06-22,,0,OLDER,,,,,,,6656,SYSTEM,,,3.510.3002.13, +"ds16gt_dll" = 1,os\system\ds16gt.dll,,,,1998-06-22,,0,OLDER,,,,,,,4656,SYSTEM,,,3.510.3002.13, +"ds32gt_dll" = 1,os\system\ds32gt.dll,,,,1998-06-22,,0,OLDER,,,,,,,5632,SYSTEM,,,3.510.3002.13, +"odbccu32_dll" = 1,os\system\odbccu32.dll,,,,1998-06-22,,0,OLDER,,,,,,,290816,SYSTEM,,,3.510.3002.13, + +[vc MSVCRT40 DLL] +"msvcrt40_dll" = 1,os\system\msvcrt40.dll,,,,1998-05-31,,1033,OLDER,,,,,,,326656,SYSTEM,,,4.21.0.0, + +[Font Files] +"tahoma_ttf" = 1,OS\Fonts\tahoma.ttf,,,,1998-04-24,,,OLDER,,,,ROOT,,,198864,SYSTEM,,,2.25.0.0, + +[AddIn Designer] +"msaddndr_dll" = 1,os\system\msaddndr.dll,,,,1998-06-18,,1033,OLDER,,,,,,,86016,,,,6.0.81.69, +"msaddndr_dep" = 1,os\system\msaddndr.dep,,,,1998-06-18,,,OLDER,,,,,,,2488,,,,, +"msaddndr_tlb" = 1,os\system\msaddndr.tlb,,,,1998-06-18,,,OLDER,,,,,,,3488,,,,, +"msadnchs_dll" = 1,os\system\MSADNchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,7680,,,,6.0.81.63, + +[Sys Files - CRT (IO) Dlls] +"msvcirt_dll" = 1,os\system\msvcirt.dll,,,,1998-06-17,,1033,OLDER,,,,,,,77878,SYSTEM,,,6.0.8168.0, + +[VB Runtime] +"msvbvm50_dll" = 1,os\system\msvbvm60.dll,,,,1998-06-25,,1033,OLDER,,,,,,,1409024,SYSTEM,,,6.0.81.76, +"vb6chs_dll" = 1,os\system\vb6chs.dll,,,,1998-07-06,,2052,OLDER,,,,,,,102160,SYSTEM,,,5.0.81.69, + +[vc MFC Os Retail] +"mfc42_dll" = 1,os\system\mfc42.dll,,,,1998-06-17,,1033,OLDER,,,,,,,995383,SYSTEM,,,6.0.8168.0, +"mfc42chs_dll" = 1,os\system\mfc42chs.dll,,,,1998-06-17,,2052,OLDER,,,mfc42loc.dll,!ROOT,,,36864,SYSTEM,,,6.0.8168.0, +"mfc42cht_dll" = 1,os\system\mfc42cht.dll,,,,1998-06-17,,1028,OLDER,,,mfc42loc.dll,!ROOT,,,36864,SYSTEM,,,6.0.8168.0, +"mfc42jpn_dll" = 1,os\system\mfc42jpn.dll,,,,1998-06-17,,1041,OLDER,,,mfc42loc.dll,!ROOT,,,45056,SYSTEM,,,6.0.8168.0, +"mfc42kor_dll" = 1,os\system\mfc42kor.dll,,,,1998-06-17,,1042,OLDER,,,mfc42loc.dll,!ROOT,,,40960,SYSTEM,,,6.0.8168.0, +"mfc42deu_dll" = 1,os\system\mfc42deu.dll,,,,1998-06-17,,1031,OLDER,,,mfc42loc.dll,!ROOT,,,57344,SYSTEM,,,6.0.8168.0, +"mfc42esp_dll" = 1,os\system\mfc42esp.dll,,,,1998-06-17,,1034,OLDER,,,mfc42loc.dll,!ROOT,,,57344,SYSTEM,,,6.0.8168.0, +"mfc42fra_dll" = 1,os\system\mfc42fra.dll,,,,1998-06-17,,1036,OLDER,,,mfc42loc.dll,!ROOT,,,57344,SYSTEM,,,6.0.8168.0, +"mfc42ita_dll" = 1,os\system\mfc42ita.dll,,,,1998-06-17,,1040,OLDER,,,mfc42loc.dll,!ROOT,,,57344,SYSTEM,,,6.0.8168.0, + +[Sys Files - Regsrv32] +"regsvr32_exe_3" = 1,os\system\regsvr32.exe,,,,1998-04-24,,1033,OLDER,,,,,,,37136,SYSTEM,,,5.0.1641.1, + +[VB Binding Manager] +"msbind_dll" = 1,os\system\msbind.dll,,,,1998-06-18,,1033,OLDER,,,,,,,77824,,,,6.0.81.69, +"msbind_dep" = 1,os\system\msbind.dep,,,,1998-06-18,,,OLDER,,,,,,,494,,,,, + +[HTML Help] +"itircl_dll" = 1,os\system\itircl.dll,,,,1998-05-31,,1033,OLDER,,,,,,,138000,,,,4.72.7276.0, +"itss_dll" = 1,os\system\itss.dll,,,,1998-05-31,,1033,OLDER,,,,,,,138048,,,,4.72.8037.0, +"hh_exe" = 1,os\system\hh.exe,,,,1998-06-20,,1033,OLDER,,,,,,,30992,,,,4.72.8171.0, +"hhctrl_ocx_ara" = 1,os\system\resource\1025\hhctrl.ocx,,,,1998-06-23,,1025,OLDER,,,,,,,548656,,,,4.72.8164.0, +"hhctrl_ocx_bas" = 1,os\system\resource\1069\hhctrl.ocx,,,,1998-06-23,,1069,OLDER,,,,,,,548656,,,,4.72.8164.0, +"hhctrl_ocx_cat" = 1,os\system\resource\1027\hhctrl.ocx,,,,1998-06-23,,1027,OLDER,,,,,,,550704,,,,4.72.8164.0, +"hhctrl_ocx_chs" = 1,os\system\resource\2052\hhctrl.ocx,,,,1998-06-23,,2052,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_cht" = 1,os\system\resource\1028\hhctrl.ocx,,,,1998-06-23,,1028,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_csy" = 1,os\system\resource\1029\hhctrl.ocx,,,,1998-06-23,,1029,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_dan" = 1,os\system\resource\1030\hhctrl.ocx,,,,1998-06-23,,1030,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_deu" = 1,os\system\resource\1031\hhctrl.ocx,,,,1998-06-23,,1031,OLDER,,,,,,,551728,,,,4.72.8164.0, +"hhctrl_ocx_ell" = 1,os\system\resource\1032\hhctrl.ocx,,,,1998-06-23,,1032,OLDER,,,,,,,552240,,,,4.72.8164.0, +"hhctrl_ocx_enu" = 1,os\system\resource\1033\hhctrl.ocx,,,,1998-06-23,,1033,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_esp" = 1,os\system\resource\3082\hhctrl.ocx,,,,1998-06-23,,3082,OLDER,,,,,,,550192,,,,4.72.8164.0, +"hhctrl_ocx_fin" = 1,os\system\resource\1035\hhctrl.ocx,,,,1998-06-23,,1035,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_fra" = 1,os\system\resource\1036\hhctrl.ocx,,,,1998-06-23,,1036,OLDER,,,,,,,552752,,,,4.72.8164.0, +"hhctrl_ocx_heb" = 1,os\system\resource\1037\hhctrl.ocx,,,,1998-06-23,,1037,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_hun" = 1,os\system\resource\1038\hhctrl.ocx,,,,1998-06-23,,1038,OLDER,,,,,,,549168,,,,4.72.8164.0, +"hhctrl_ocx_ita" = 1,os\system\resource\1040\hhctrl.ocx,,,,1998-06-23,,1040,OLDER,,,,,,,550704,,,,4.72.8164.0, +"hhctrl_ocx_jpn" = 1,os\system\resource\1041\hhctrl.ocx,,,,1998-06-23,,1041,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_kor" = 1,os\system\resource\1042\hhctrl.ocx,,,,1998-06-23,,1042,OLDER,,,,,,,548144,,,,4.72.8164.0, +"hhctrl_ocx_nld" = 1,os\system\resource\1043\hhctrl.ocx,,,,1998-06-23,,1043,OLDER,,,,,,,550704,,,,4.72.8164.0, +"hhctrl_ocx_nor" = 1,os\system\resource\1044\hhctrl.ocx,,,,1998-06-23,,1044,OLDER,,,,,,,548656,,,,4.72.8164.0, +"hhctrl_ocx_plk" = 1,os\system\resource\1045\hhctrl.ocx,,,,1998-06-23,,1045,OLDER,,,,,,,549168,,,,4.72.8164.0, +"hhctrl_ocx_ptb" = 1,os\system\resource\1046\hhctrl.ocx,,,,1998-06-23,,1046,OLDER,,,,,,,550192,,,,4.72.8164.0, +"hhctrl_ocx_ptg" = 1,os\system\resource\2070\hhctrl.ocx,,,,1998-06-23,,2070,OLDER,,,,,,,551216,,,,4.72.8164.0, +"hhctrl_ocx_rus" = 1,os\system\resource\1049\hhctrl.ocx,,,,1998-06-23,,1049,OLDER,,,,,,,549168,,,,4.72.8164.0, +"hhctrl_ocx_sky" = 1,os\system\resource\1051\hhctrl.ocx,,,,1998-06-23,,1051,OLDER,,,,,,,548656,,,,4.72.8164.0, +"hhctrl_ocx_slv" = 1,os\system\resource\1060\hhctrl.ocx,,,,1998-06-23,,1060,OLDER,,,,,,,548656,,,,4.72.8164.0, +"hhctrl_ocx_sve" = 1,os\system\resource\1053\hhctrl.ocx,,,,1998-06-23,,1053,OLDER,,,,,,,549168,,,,4.72.8164.0, +"hhctrl_ocx_trk" = 1,os\system\resource\1055\hhctrl.ocx,,,,1998-06-23,,1055,OLDER,,,,,,,548144,,,,4.72.8164.0, + +[VB Oleaut Files] +"oleaut32_dll" = 1,os\system\oleaut32.dll,,,,1998-06-18,,1033,OLDER,,,,,,,598288,SYSTEM,,,2.30.4261.1, +"stdole2_tlb" = 1,os\system\stdole2.tlb,,,,1998-06-17,,1033,OLDER,,,,,,,17920,SYSTEM,,,2.30.4261.1, +"olepro32_dll_2" = 1,os\system\olepro32.dll,,,,1998-06-18,,1033,OLDER,,,,,,,164112,SYSTEM,,,5.0.4261.1, +"asycflt_dll" = 1,os\system\asycfilt.dll,,,,1998-06-18,,1033,OLDER,,,,,,,147728,SYSTEM,,,2.30.4261.1, + +[Active Scripting SCRRUN] +"scrrun_dll" = 1,os\system\scrrun.dll,,,,1998-05-26,,1033,OLDER,,,,,,,402481,SYSTEM,,,4.0.0.2926, +"scrrun_dll_chs" = 1,os\system\scrrnchs.dll,,,,1998-06-14,,2052,OLDER,,,,,,,15160,,,,4.0.0.2926, +"scrrun_dep" = 1,os\system\scrrun.dep,,,,1998-06-04,,,OLDER,,,,,,,2459,,,,, + +[VB MSSTKPRP] +"msstkprp_dll" = 1,os\system\msstkprp.dll,,,,1998-06-18,,1033,OLDER,,,,,,,94208,SYSTEM,,,6.0.81.69, +"msprpchs_dll" = 1,os\system\msprpchs.dll,,,,1998-07-29,,2052,OLDER,,,,,,,7168,,,,6.0.81.63, + +[VB COMCTL32] +"mscomctl_ocx" = 1,os\system\mscomctl.ocx,,,,1998-06-26,,1033,OLDER,,,,,,,1062704,,,,6.0.81.77, +"mscomctl_dep" = 1,os\system\MSComCtl.dep,,,,1998-06-26,,,OLDER,,,,,,,2496,,,,, +"mscomctl_oca"= 1,mscomctl.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comctl32_ocx" = 1,os\system\comctl32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,609584,,,,6.0.80.22, +"comctl32_dep" = 1,os\system\comctl32.dep,,,,1998-06-14,,,OLDER,,,,,,,2495,,,,, +"comctl1_hlp_1" = 1,Common\Help\comctl1.hlp,,,,1998-04-24,,,OLDER,,,,,,,1294247,,,,, +"comctl1_cnt_1" = 1,Common\Help\comctl1.cnt,,,,1998-04-24,,,OLDER,,,,,,,1217,,,,, +"comctl1_ftg"= 1,comctl1.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comctl1_fts"= 1,comctl1.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comctl1_gid"= 1,comctl1.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comctl32_oca"= 1,comctl32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"cmctlchs_dll" = 1,os\system\MSCmCchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,124416,,,,6.0.81.63, +"cmctlchs_dll_old" = 1,os\system\cmctlchs.dll,,,,1998-05-05,,2052,OLDER,,,,,,,89600,,,,6.0.80.22, +"comctl32_srg" = 1,os\system\comctl.srg,,,,1998-05-07,,,OLDER,,,,,,,224,,,,, +"mscomctl_srg" = 1,os\system\mscomctl.srg,,,,1998-05-31,,,OLDER,,,,,,,111,,,,, +"cmctl198_chi_1" = 1,Common\Help\cmctl198.chi,,,,1998-07-15,,,OLDER,,,,,,,37651,,,,, +"cmctl198_chm_1" = 1,Common\Help\cmctl198.chm,,,,1998-07-15,,,OLDER,,,,,,,281974,,,,, + +[VB COMDLG32] +"comdlg32_ocx" = 1,os\system\comdlg32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,140096,,,,6.0.81.69, +"comdlg32_dep" = 1,os\system\comdlg32.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"cmdialog_srg" = 1,os\system\cmdialog.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"cmdlgchs_dll" = 1,os\system\cmdlgchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,28160,,,,6.0.81.63, +"cmdlg98_chi_1" = 1,Common\Help\cmdlg98.chi,,,,1998-06-23,,,OLDER,,,,,,,16407,,,,, +"cmdlg98_chm_1" = 1,Common\Help\cmdlg98.chm,,,,1998-06-23,,,OLDER,,,,,,,61610,,,,, +"comdlgd_oca"= 1,comdlg32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSFLXGRD] +"msflxgrd_ocx" = 1,os\system\msflxgrd.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,244024,,,,6.0.81.69, +"msflxgrd_dep" = 1,os\system\msflxgrd.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"vsdbflex_srg_1" = 1,os\system\vsdbflex.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"flxgdchs_dll" = 1,os\system\flxgdchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,35328,,,,6.0.81.63, +"mshflx98_chi_1" = 1,Common\Help\mshflx98.chi,,,,1998-07-07,,,OLDER,,,,,,,21977,,,,, +"mshflx98_chm_1" = 1,Common\Help\mshflx98.chm,,,,1998-07-07,,,OLDER,,,,,,,151038,,,,, +"msflxgrd_oca"= 1,msflxgrd.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB DBLIST32] +"dblist32_ocx" = 1,os\system\dblist32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,200496,,,,6.0.81.69, +"dblist32_dep" = 1,os\system\dblist32.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"dblist_srg" = 1,os\system\dblist.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"dblstchs_dll" = 1,os\system\dblstchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,27136,,,,6.0.81.63, +"dblist32_oca"= 1,dblist32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB ADODC] +"adodc_ocx" = 1,os\system\msadodc.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,118064,,,,6.0.81.71, +"adodc_dep" = 1,os\system\msadodc.dep,,,,1998-06-20,,,OLDER,,,,,,,2504,,,,, +"adodc_srg" = 1,os\system\adodc.srg,,,,1998-05-07,,,OLDER,,,,,,,113,,,,, +"adodcchs_dll" = 1,os\system\adodcchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,14336,,,,6.0.81.63, +"adodc98_chi_1" = 1,Common\Help\adodc98.chi,,,,1998-06-23,,,OLDER,,,,,,,12885,,,,, +"adodc98_chm_1" = 1,Common\Help\adodc98.chm,,,,1998-06-23,,,OLDER,,,,,,,19888,,,,, +"adodc_oca"= 1,msadodc.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB DATAGRID] +"datagrid_ocx" = 1,os\system\MSDatGrd.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,260920,,,,6.0.81.69, +"msdatgrd_dep" = 1,os\system\msdatgrd.dep,,,,1998-06-18,,,OLDER,,,,,,,2516,,,,, +"datagrid_srg" = 1,os\system\msdatgrd.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"datgdchs_dll" = 1,os\system\datgdchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,25088,,,,6.0.81.63, +"dbgrid98_chi_1" = 1,Common\Help\dbgrid98.chi,,,,1998-06-23,,,OLDER,,,,,,,24463,,,,, +"dbgrid98_chm_1" = 1,Common\Help\dbgrid98.chm,,,,1998-06-23,,,OLDER,,,,,,,126734,,,,, +"msdatgrd_oca"= 1,msdatgrd.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSDATLST] +"datalist_ocx" = 1,os\system\msdatlst.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,232248,,,,6.0.81.69, +"datalist_dep" = 1,os\system\MSDatLst.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"datalist_srg_1" = 1,os\system\datalist.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"datlschs_dll" = 1,os\system\datlschs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,26624,,,,6.0.81.63, +"dblist98_chi_1" = 1,Common\Help\dblist98.chi,,,,1998-06-23,,,OLDER,,,,,,,15590,,,,, +"dblist98_chm_1" = 1,Common\Help\dblist98.chm,,,,1998-06-23,,,OLDER,,,,,,,35114,,,,, +"msdatlst_oca"= 1,msdatlst.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB TABCTL32] +"tabctl32_ocx" = 1,os\system\tabctl32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,209192,,,,6.0.81.69, +"tabctl32_dep" = 1,os\system\tabctl32.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"sstab_srg" = 1,os\system\sstab.srg,,,,1998-05-07,,,OLDER,,,,,,,112,,,,, +"tabctchs_dll" = 1,os\system\tabctchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,18944,,,,6.0.81.63, +"mstab98_chb" = 1,Common\Help\mstab98.chi,,,,1998-06-23,,,OLDER,,,,,,,14519,,,,, +"mstab98_cha" = 1,Common\Help\mstab98.chm,,,,1998-06-23,,,OLDER,,,,,,,33720,,,,, +"tabctl32_oca"= 1,tabctl32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB COMCT232] +"mscomct2_ocx" = 1,os\system\mscomct2.ocx,,,,1998-06-26,,1033,OLDER,,,,,,,644400,,,,6.0.81.77, +"mscomct2_dep" = 1,os\system\MSComCt2.dep,,,,1998-06-26,,,OLDER,,,,,,,2496,,,,, +"mscomct2_oca"= 1,mscomct2.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comct232_ocx" = 1,os\system\comct232.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,164144,,,,6.0.80.22, +"comct232_dep" = 1,os\system\comct232.dep,,,,1998-06-14,,,OLDER,,,,,,,2495,,,,, +"comctl2_hlp" = 1,Common\Help\comctl2.hlp,,,,1998-04-24,,,OLDER,,,,,,,628756,,,,, +"comctl2_cnt" = 1,Common\Help\comctl2.cnt,,,,1998-04-24,,,OLDER,,,,,,,1212,,,,, +"comctl2_ftg"= 1,comctl2.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comctl2_fts"= 1,comctl2.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comctl2_gid"= 1,comctl2.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"comct232_oca"= 1,comct232.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"cmct2chs_dll" = 1,os\system\MsCc2chs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,53248,,,,6.0.81.63, +"cmct2chs_dll_old" = 1,os\system\cmct2chs.dll,,,,1998-05-05,,2052,OLDER,,,,,,,20992,,,,6.0.80.22, +"cmctl298_chi_1" = 1,Common\Help\cmctl298.chi,,,,1998-06-23,,,OLDER,,,,,,,20436,,,,, +"cmctl298_chm_1" = 1,Common\Help\cmctl298.chm,,,,1998-06-23,,,OLDER,,,,,,,93388,,,,, +"comct232_srg" = 1,os\system\comctl2.srg,,,,1998-05-07,,,OLDER,,,,,,,224,,,,, +"mscomct2_srg" = 1,os\system\mscomct2.srg,,,,1998-05-31,,,OLDER,,,,,,,111,,,,, + +[VB RICHTX32] +"richtx32_ocx" = 1,os\system\richtx32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,203576,,,,6.0.81.69, +"richtx32_dep" = 1,os\system\richtx32.dep,,,,1998-06-18,,,OLDER,,,,,,,3010,,,,, +"richtext_srg" = 1,os\system\richtext.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"rchtxchs_dll" = 1,os\system\rchtxchs.dll,,,,1998-04-24,,2052,OLDER,,,,,,,30720,,,,6.0.80.37, +"rtfbox98_ch2" = 1,Common\Help\rtfbox98.chi,,,,1998-07-07,,,OLDER,,,,,,,18446,,,,, +"rtfbox98_ch1" = 1,Common\Help\rtfbox98.chm,,,,1998-07-07,,,OLDER,,,,,,,76814,,,,, +"riched32_dll_2" = 1,os\system\riched32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,197392,SYSTEM,,,4.0.994.24, +"richtx32_oca"= 1,richtx32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"gapi32_dll_2" = 1,OS\gapi32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,83552,SYSTEM,,,4.0.994.25, + +[dag Data Env Control] +"mshflxgd_ocx" = 1,os\system\mshflxgd.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,407104,SYSTEM,,,6.0.30.5, +"mshflxgd_srg" = 1,os\system\mshflxgd.srg,,,,1998-05-31,,,OLDER,,,,,,,111,SYSTEM,,,, +"mshflxgd_dep" = 1,os\system\mshflxgd.dep,,,,1998-06-09,,,OLDER,,,,,,,2530,SYSTEM,,,, +"mshfgchs_dll" = 1,os\system\mshfgchs.dll,,,,1998-06-09,,2052,OLDER,,,,,,,43520,SYSTEM,,,6.0.30.5, +"mshflxgd_oca"= 1,mshflxgd.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSCHART] +"mschart_ocx" = 1,os\system\mschrt20.ocx,,,,1998-06-26,,1033,OLDER,,,,,,,1008432,,,,6.0.81.77, +"mschart_dep" = 1,os\system\mschrt20.dep,,,,1998-06-26,,,OLDER,,,,,,,2496,,,,, +"mschart_srg" = 1,os\system\mschrt20.srg,,,,1998-06-03,,,OLDER,,,,,,,111,,,,, +"mschtchs_dll" = 1,os\system\msch2chs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,93184,,,,6.0.81.63, +"mschrt98_chi_1" = 1,Common\Help\mschrt98.chi,,,,1998-07-07,,,OLDER,,,,,,,38615,,,,, +"mschrt98_chm_1" = 1,Common\Help\mschrt98.chm,,,,1998-07-07,,,OLDER,,,,,,,204030,,,,, +"mschart_oca"= 1,mschrt20.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSDATREP] +"msdatrep_ocx" = 1,os\system\MSDatRep.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,187712,,,,6.0.81.69, +"msdatrep_dep" = 1,os\system\MSDatRep.dep,,,,1998-06-18,,,OLDER,,,,,,,2509,,,,, +"msdatrep_srg" = 1,os\system\MSDatRep.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"datrpchs_dll" = 1,os\system\DatRpchs.DLL,,,,1998-07-07,,2052,OLDER,,,,,,,18944,,,,6.0.81.63, +"datrep98_chi" = 1,Common\Help\datrpt98.chi,,,,1998-07-07,,,OLDER,,,,,,,15158,,,,, +"datrep98_chm" = 1,Common\Help\datrpt98.chm,,,,1998-07-07,,,OLDER,,,,,,,32580,,,,, +"msdatrep_oca"= 1,msdatrep.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[Sys Files - CRT Dlls] +"msvcrt_dll" = 1,os\system\msvcrt.dll,,,,1998-06-17,,1033,OLDER,,,,,,,254005,SYSTEM,,,6.0.8168.0, + +[dag Jet] +"msjet35_dll" = 1,os\system\msjet35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,1045776,SYSTEM,,,3.51.623.4, +"msjint35_dll" = 1,os\system\msjint35.dll,,,,1998-06-16,,2052,OLDER,,,,,,,123664,SYSTEM,,,3.51.623.0, +"msjter35_dll" = 1,os\system\msjter35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,24848,SYSTEM,,,3.51.623.0, +"msrd2x35_dll" = 1,os\system\msrd2x35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,252176,SYSTEM,,,3.51.623.0, +"msrepl35_dll" = 1,os\system\msrepl35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,407312,SYSTEM,,,3.51.623.0, +"vbar332_dll_1" = 1,os\system\vbar332.dll,,,,1998-04-24,,1033,OLDER,,,,,,,368912,SYSTEM,,,3.0.0.6908, + +[dag Jet Help] +"jetdef35_hlp" = 1,Common\Help\jetdef35.hlp,,,,1998-05-11,,,OLDER,,,,,,,155335,SYSTEM,,,, +"jetsql35_hlp" = 1,Common\Help\jetsql35.hlp,,,,1998-05-11,,,OLDER,,,,,,,293519,SYSTEM,,,, +"jetsql35_cnt" = 1,Common\Help\jetsql35.cnt,,,,1998-05-11,,,OLDER,,,,,,,1832,SYSTEM,,,, +"jeterr35_hlp" = 1,Common\Help\jeterr35.hlp,,,,1998-05-11,,,OLDER,,,,,,,1485732,SYSTEM,,,, +"jeterr35_cnt" = 1,Common\Help\jeterr35.cnt,,,,1998-05-11,,,OLDER,,,,,,,344,SYSTEM,,,, + +[dag Jet Help Remove] +"jetdef35_ftg"= 1,jetdef35.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jetdef35_fts"= 1,jetdef35.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jetdef35_gid"= 1,jetdef35.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jetsql35_ftg"= 1,jetsql35.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jetsql35_fts"= 1,jetsql35.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jetsql35_gid"= 1,jetsql35.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jeterr35_ftg"= 1,jeterr35.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jeterr35_fts"= 1,jeterr35.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"jeterr35_gid"= 1,jeterr35.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VBA Additional Files] +"expsrv_dll" = 1,os\system\expsrv.dll,,,,1998-06-18,,0,OLDER,,,,,,,378128,SYSTEM,,,6.0.0.8167, +"vbajet32_dll" = 1,os\system\vbajet32.dll,,,,1998-06-18,,1033,OLDER,,,,,,,30992,SYSTEM,,,6.0.1.8167, +"vba332me_dll" = 1,os\system\vbame.dll,,,,1998-05-06,,1033,OLDER,,,,,,,57344,,,,2.0.2.4, + +[VB STDFMT] +"msstdfmt_dll" = 1,os\system\msstdfmt.dll,,,,1998-06-18,,1033,OLDER,,,,,,,118784,SYSTEM,,,6.0.81.69, +"msstdfmt_dep" = 1,os\system\msstdfmt.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"stdftchs_dll" = 1,os\system\stdftchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,6144,,,,6.0.81.63, + +[dag ODBC Brazos Components] +"odbcji32_dll_1" = 1,os\system\odbcji32.dll,,,,1998-06-24,,2052,OLDER,,,,,,,37888,SYSTEM,,,3.51.1713.0, +"odbcjt32_dll_1" = 1,os\system\odbcjt32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,247296,SYSTEM,,,3.51.1713.0, +"odbctl32_dll_1" = 1,os\system\odbctl32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,72704,SYSTEM,,,3.51.1713.0, + +[dag ODBC CodePage Trans] +"mscpxl32_dll" = 1,os\system\mscpxl32.dll,,,,1998-07-14,,1033,OLDER,,,,,,,13824,SYSTEM,,,3.60.3.19, +"12520437_cpx" = 1,os\system\12520437.cpx,,,,1998-05-31,,,OLDER,,,,,,,2151,SYSTEM,,,, +"12520850_cpx" = 1,os\system\12520850.cpx,,,,1998-05-31,,,OLDER,,,,,,,2233,SYSTEM,,,, + +[dag ODBC Help Files] +"odbcinst_cnt_1" = 1,os\system\odbcinst.cnt,,,,1998-07-27,,,OLDER,,,,,,,342,SYSTEM,,,, +"odbcinst_hlp_1" = 1,os\system\odbcinst.hlp,,,,1998-07-27,,,OLDER,,,,,,,87319,SYSTEM,,,, +"odbcjet_cnt_1" = 1,os\system\odbcjet.cnt,,,,1998-05-29,,,OLDER,,,,,,,5962,SYSTEM,,,, +"odbcjet_hlp_1" = 1,os\system\odbcjet.hlp,,,,1998-05-29,,,OLDER,,,,,,,183985,SYSTEM,,,, + +[dag ODBC SQL Net Libs] +"dbnmpntw_dll" = 1,os\system\dbnmpntw.dll,,,,1998-06-24,,1033,OLDER,,,,,,,24848,SYSTEM,,,1998.6.5.0, +"dbmssocn_dll" = 1,os\system\dbmssocn.dll,,,,1998-06-24,,1033,OLDER,,,,,,,11536,SYSTEM,,,1998.6.5.0, +"instcat_sql" = 1,os\system\instcat.sql,,,,1998-06-05,,,OLDER,,,,,,,558789,SYSTEM,,,, + +[dag OLEDB DataSourceLocator] +"msdasc_dll" = 1,shared\oledb\msdasc.dll,,,,1998-06-24,,2052,OLDER,,,,,,,433664,SYSTEM,,,2.0.3002.0, +"msdasc_chm" = 1,shared\oledb\msdasc.hlp,,,,1998-07-14,,,OLDER,,,,,,,24711,SYSTEM,,,, +"msdasc_cnt" = 1,shared\oledb\msdasc.cnt,,,,1998-07-14,,,OLDER,,,,,,,725,SYSTEM,,,, +"msdasc_txt" = 1,shared\oledb\msdasc.txt,,,,1998-07-14,,,OLDER,,,,,,,5517,SYSTEM,,,, + +[dag Chinook] +"msdasql_dll" = 1,shared\oledb\msdasql.dll,,,,1998-06-19,,1033,OLDER,,,,,,,286992,SYSTEM,,,2.0.3002.11, +"msdasqlr_dll" = 1,shared\oledb\msdasqlr.dll,,,,1998-06-24,,2052,OLDER,,,,,,,9728,SYSTEM,,,2.0.3002.11, +"oledb_me_txt" = 1,shared\oledb\MSDASQL.txt,,,,1998-07-14,,,OLDER,,,,,,,2074,SYSTEM,,,, + +[dag OLEDB Core] +"msdadc_dll" = 1,shared\oledb\msdadc.dll,,,,1998-06-10,,1033,OLDER,,,,,,,63760,SYSTEM,,,2.0.3002.4, +"msdaer_dll" = 1,shared\oledb\msdaer.dll,,,,1998-06-10,,1033,OLDER,,,,,,,30992,SYSTEM,,,2.0.3002.4, +"msdaerr_dll" = 1,shared\oledb\msdaerr.dll,,,,1998-06-24,,2052,OLDER,,,,,,,15360,SYSTEM,,,2.0.3002.4, +"msdaps_dll" = 1,shared\oledb\MSDAPS.DLL,,,,1998-06-10,,1033,OLDER,,,,,,,8160,SYSTEM,,,2.0.3002.4, +"msdaenum_dll" = 1,shared\oledb\msdaenum.dll,,,,1998-06-10,,1033,OLDER,,,,,,,17856,SYSTEM,,,2.0.3002.4, +"msdatt_dll" = 1,shared\oledb\msdatt.dll,,,,1998-06-10,,1033,OLDER,,,,,,,39088,SYSTEM,,,2.0.3002.4, +"msdatl2_dll" = 1,shared\oledb\msdatl2.dll,,,,1998-06-19,,1033,OLDER,,,,,,,62736,SYSTEM,,,2.0.3002.11, +"oledb32x_dll" = 1,shared\oledb\oledb32x.dll,,,,1998-06-10,,,OLDER,,,,,,,4928,SYSTEM,,,2.0.1706.0, +"oledb32_dll" = 1,shared\oledb\oledb32.dll,,,,1998-06-10,,,OLDER,,,,,,,4928,SYSTEM,,,2.0.1706.0, +"oledb32r_dll" = 1,shared\oledb\oledb32r.dll,,,,1998-06-24,,,OLDER,,,,,,,4928,SYSTEM,,,2.0.1706.0, + +[Compiler Files] +"cvpack_exe_1" = 1,VB98\cvpack.exe,,,,1998-06-17,,1033,OLDER,,,,,,,81979,,,,6.0.8168.0, +"link_exe_1" = 1,VB98\link.exe,,,,1998-06-25,,1033,OLDER,,,,,,,462901,,,,6.0.8168.0, +"mspdb60_dll_1" = 1,VB98\mspdb60.dll,,,,1998-06-17,,1033,OLDER,,,,,,,180276,,,,6.0.8168.0, +"msdis110_dll" = 1,VB98\msdis110.dll,,,,1998-05-06,,1033,OLDER,,,,,,,159798,,,,1.10.8126.0, +"c2_exe_1" = 1,VB98\c2.exe,,,,1998-06-17,,1033,OLDER,,,,,,,667648,,,,12.0.8041.0, + +[VB Core Files] +"vb6_exe" = 1,VB98\vb6.exe,,,,1998-06-25,,1033 0,OLDER,,,,,,,1880064,,,,6.0.81.76, +"vb6debug_dll" = 1,VB98\vb6debug.dll,,,,1998-06-18,,1033,OLDER,,,,,,,31504,SYSTEM,,,6.0.81.69, +"vba6_dll" = 1,VB98\vba6.dll,,,,1998-06-19,,0,OLDER,,,,,,,1701648,,,,6.0.0.8169, +"vbaexe6_lib" = 1,VB98\vbaexe6.lib,,,,1998-07-29,,,OLDER,,,,,,,1072,,,,, +"vbdatavw_tlb" = 1,VB98\vbdatavw.tlb,,,,1998-06-18,,,OLDER,,,,,,,7964,,,,, +"vb6ide_dll" = 1,VB98\vb6ide.dll,,,,1998-08-03,,2052,OLDER,,,,,,,1074448,,,,5.0.81.69, +"vj6_olb" = 1,VB98\vb6.olb,,,,1998-06-24,,,OLDER,,,,,,,296466,,,,, +"vb6ext_olb" = 1,VB98\vb6ext.olb,,,,1998-07-06,,2052,OLDER,,,,,,,146944,,,,5.0.81.69, +"riched32_dll" = 1,VB98\riched32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,197392,SYSTEM,,,4.0.994.24, +"visdata_exe" = 1,VB98\visdata.exe,,,,1998-07-14,,2052,OLDER,,,,,,,786432,,,,6.0.0.8160, +"vbhelp_srg" = 1,VB98\vbhelp.srg,,,,1998-04-24,,,OLDER,,,,,,,939,,,,, +"gapi32_dll" = 1,os\system\gapi32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,83552,SYSTEM,,,4.0.994.25, + +[VB VSS Files] +"vbscc_dll" = 1,VB98\vbscc.dll,,,,1998-05-22,,1033,OLDER,,,,,,,277504,,,,6.0.81.42, +"addsccus_dll" = 1,VB98\addsccus.dll,,,,1998-05-22,,1033,OLDER,,,,,,,77312,,,,6.0.81.42, +"sccvbus_chi" = 1,VB98\sccvbus.chi,,,,1998-04-15,,,OLDER,,,,,,,41331,,,,, +"sccvbus_chm" = 1,VB98\sccvbus.chm,,,,1998-04-15,,,OLDER,,,,,,,507566,,,,, + +[VB DataBind] +"vb5db_dll" = 1,os\system\vb5db.dll,,,,1998-06-18,,1033,OLDER,,,,,,,89360,,,,6.0.81.69, +"dbadapt_dll" = 1,os\system\dbadapt.dll,,,,1998-06-18,,1033,OLDER,,,,,,,45056,,,,6.0.81.69, + +[VB DataBases] +"biblio_mdb" = 1,VB98\Biblio.mdb,,,,1998-04-24,,,OLDER,,,,,,,3610624,,,,, +"nwind_mdb" = 1,VB98\nwind.mdb,,,,1998-04-24,,,OLDER,,,,,,,1548288,,,,, +"biblio_ldb"= 1,Biblio.ldb,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"nwind_ldb"= 1,nwind.ldb,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB VBEXT] +"vbext_srg" = 1,VB98\vbext.srg,,,,1998-04-24,,,OLDER,,,,,,,586,,,,, + +[Setupkit Binary] +"makecab_exe" = 1,VB98\Wizards\PDWizard\Makecab.exe,,,,1998-07-09,,1033,OLDER,,,,,,,154112,,,,1.0.603.4, +"pdaddin_dll" = 1,VB98\Wizards\PDWizard\PDAddin.dll,,,,1998-06-18,,1033,OLDER,,,,,,,57344,,,,6.0.0.8169, +"pdcmdln_exe" = 1,VB98\Wizards\PDWizard\PDCmdLn.exe,,,,1998-06-18,,1033,OLDER,,,,,,,57344,,,,6.0.0.8169, +"pdwizard_ocx" = 1,VB98\Wizards\PDWizard\PDWizard.ocx,,,,1998-07-08,,1033,OLDER,,,,,,,1642496,,,,6.0.0.8178, +"setup_exe_3" = 1,VB98\Wizards\PDWizard\Setup.exe,,,,1998-07-06,,2052,OLDER,,,,,,,140800,,,,6.0.81.69, +"setup1_exe" = 1,VB98\Wizards\PDWizard\Setup1.exe,,,,1998-07-06,,2052,OLDER,,,,,,,286720,,,,6.0.0.8171, +"st5unst_exe" = 1,VB98\Wizards\PDWizard\St6unst.exe,,,,1998-07-06,,2052,OLDER,,,,,,,73216,,,,6.0.81.69, +"vb5dep_ini" = 1,VB98\Wizards\PDWizard\Vb6dep.ini,,,,1998-07-14,,,OLDER,,,,,,,19993,,,,, +"dlgobjs_dll" = 1,VB98\Wizards\PDWizard\dlgobjs.dll,,,,1998-06-18,,1033,OLDER,,,,,,,81920,,,,4.0.1.23, +"pdwizchs_dll" = 1,VB98\Wizards\PDWizard\pdwizchs.dll,,,,1998-07-06,,2052,OLDER,,,,,,,331776,,,,6.0.0.8163, + +[Setupkit Vb5stkit] +"vb5stkit_dll" = 1,VB98\Wizards\PDWizard\Vb6stkit.dll,,,,1998-07-06,,2052,OLDER,,,,,,,102912,,,,6.0.81.69, + +[Setupkit Source] +"begin_frm" = 1,VB98\Wizards\PDWizard\Setup1\Begin.frm,,,,1998-07-02,,,OLDER,,,,,,,7314,,,,, +"begin_frx" = 1,VB98\Wizards\PDWizard\Setup1\Begin.frx,,,,1998-07-08,,,OLDER,,,,,,,3140,,,,, +"common_bas" = 1,VB98\Wizards\PDWizard\Setup1\Common.bas,,,,1998-07-08,,,OLDER,,,,,,,85167,,,,, +"commonrc_h" = 1,VB98\Wizards\PDWizard\Setup1\Commonrc.h,,,,1998-05-06,,,OLDER,,,,,,,1585,,,,, +"commonrc_rc" = 1,VB98\Wizards\PDWizard\Setup1\Commonrc.rc,,,,1998-05-06,,,OLDER,,,,,,,3603,,,,, +"copy_frm" = 1,VB98\Wizards\PDWizard\Setup1\Copy.frm,,,,1998-07-02,,,OLDER,,,,,,,3946,,,,, +"copy_frx" = 1,VB98\Wizards\PDWizard\Setup1\Copy.frx,,,,1998-07-08,,,OLDER,,,,,,,1090,,,,, +"dskspace_frm" = 1,VB98\Wizards\PDWizard\Setup1\Dskspace.frm,,,,1998-07-02,,,OLDER,,,,,,,11510,,,,, +"dskspace_frx" = 1,VB98\Wizards\PDWizard\Setup1\Dskspace.frx,,,,1998-07-08,,,OLDER,,,,,,,1090,,,,, +"group_frm" = 1,VB98\Wizards\PDWizard\Setup1\Group.frm,,,,1998-07-02,,,OLDER,,,,,,,10839,,,,, +"group_frx" = 1,VB98\Wizards\PDWizard\Setup1\Group.frx,,,,1998-07-08,,,OLDER,,,,,,,1112,,,,, +"install_bmp" = 1,VB98\Wizards\PDWizard\Setup1\install.bmp,,,,1998-07-08,,,OLDER,,,,,,,4918,,,,, +"logging_bas" = 1,VB98\Wizards\PDWizard\Setup1\Logging.bas,,,,1998-07-08,,,OLDER,,,,,,,11723,,,,, +"message_frm" = 1,VB98\Wizards\PDWizard\Setup1\Message.frm,,,,1998-07-02,,,OLDER,,,,,,,1282,,,,, +"message_frx" = 1,VB98\Wizards\PDWizard\Setup1\Message.frx,,,,1998-07-08,,,OLDER,,,,,,,2180,,,,, +"modshell_bas" = 1,VB98\Wizards\PDWizard\Setup1\modshell.bas,,,,1998-07-08,,,OLDER,,,,,,,1837,,,,, +"path_frm" = 1,VB98\Wizards\PDWizard\Setup1\Path.frm,,,,1998-07-02,,,OLDER,,,,,,,7837,,,,, +"path_frx" = 1,VB98\Wizards\PDWizard\Setup1\Path.frx,,,,1998-07-08,,,OLDER,,,,,,,1090,,,,, +"serverdt_frm" = 1,VB98\Wizards\PDWizard\Setup1\Serverdt.frm,,,,1998-07-02,,,OLDER,,,,,,,16161,,,,, +"serverdt_frx" = 1,VB98\Wizards\PDWizard\Setup1\Serverdt.frx,,,,1998-07-08,,,OLDER,,,,,,,1090,,,,, +"setup1_bas" = 1,VB98\Wizards\PDWizard\Setup1\Setup1.bas,,,,1998-07-08,,,OLDER,,,,,,,213550,,,,, +"setup1_frm" = 1,VB98\Wizards\PDWizard\Setup1\Setup1.frm,,,,1998-07-02,,,OLDER,,,,,,,26430,,,,, +"setup1_frx" = 1,VB98\Wizards\PDWizard\Setup1\Setup1.frx,,,,1998-07-08,,,OLDER,,,,,,,1278,,,,, +"setup1_ico" = 1,VB98\Wizards\PDWizard\Setup1\Setup1.ico,,,,1998-07-08,,,OLDER,,,,,,,1078,,,,, +"setup1_rc" = 1,VB98\Wizards\PDWizard\Setup1\Setup1.rc,,,,1998-06-14,,,OLDER,,,,,,,7407,,,,, +"setup1_res" = 1,VB98\Wizards\PDWizard\Setup1\Setup1.res,,,,1998-07-08,,,OLDER,,,,,,,7852,,,,, +"setup1_vbp" = 1,VB98\Wizards\PDWizard\Setup1\Setup1.vbp,,,,1998-07-02,,,OLDER,,,,,,,1683,,,,, +"setupres_bas" = 1,VB98\Wizards\PDWizard\Setup1\Setupres.bas,,,,1998-07-08,,,OLDER,,,,,,,7325,,,,, +"setupres_h" = 1,VB98\Wizards\PDWizard\Setup1\Setupres.h,,,,1998-07-02,,,OLDER,,,,,,,4722,,,,, +"vbshell_odl" = 1,VB98\Wizards\PDWizard\Setup1\vbshell.odl,,,,1998-05-06,,,OLDER,,,,,,,1890,,,,, +"vbshell_tlb" = 1,VB98\Wizards\PDWizard\Setup1\vbshell.tlb,,,,1998-07-08,,,OLDER,,,,,,,2732,,,,, +"welcome_frm" = 1,VB98\Wizards\PDWizard\Setup1\Welcome.frm,,,,1998-07-02,,,OLDER,,,,,,,3484,,,,, +"welcome_frx" = 1,VB98\Wizards\PDWizard\Setup1\Welcome.frx,,,,1998-07-08,,,OLDER,,,,,,,2180,,,,, +"frmovwrt_frm" = 1,VB98\Wizards\PDWizard\Setup1\frmovwrt.frm,,,,1998-06-18,,,OLDER,,,,,,,4902,,,,, +"frmovwrt_frx" = 1,VB98\Wizards\PDWizard\Setup1\frmovwrt.frx,,,,1998-06-18,,,OLDER,,,,,,,12,,,,, +"registry_bas" = 1,VB98\Wizards\PDWizard\Setup1\registry.bas,,,,1998-06-18,,,OLDER,,,,,,,8609,,,,, + +[Setupkit Redist] +"mdac_typ_exe_1" = 1,VB98\Wizards\PDWizard\Redist\mdac_typ.exe,,,,1998-07-24,,2052,OLDER,,,,,,,6676784,,,,4.71.1015.0, +"co2c40en_dll_1" = 1,VB98\Wizards\PDWizard\Redist\co2c40en.dll,,,,1998-05-11,,1033,OLDER,,,,,,,748160,,,,4.6.1.106, +"mfc40_dll_3" = 1,VB98\Wizards\PDWizard\Redist\mfc40.dll,,,,1998-04-24,,1033,OLDER,,,,,,,921872,,,,4.1.0.6038, +"msvcrt20_dll_3" = 1,VB98\Wizards\PDWizard\Redist\msvcrt20.dll,,,,1998-05-11,,1033,OLDER,,,,,,,253952,,,,2.11.0.0, +"msvcrt40_dll_4" = 1,VB98\Wizards\PDWizard\Redist\msvcrt40.dll,,,,1998-05-31,,1033,OLDER,,,,,,,326656,,,,4.21.0.0, +"riched32_dll_3" = 1,VB98\Wizards\PDWizard\Redist\riched32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,197392,,,,4.0.994.24, +"comcat_dll_4" = 1,VB98\Wizards\PDWizard\Redist\comcat.dll,,,,1998-05-31,,1033,OLDER,,,,,,,22288,,,,4.71.1460.1, +"gapi32_dll_1" = 1,VB98\Wizards\PDWizard\Redist\gapi32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,83552,,,,4.0.994.25, + +[AllVer Wizards] +"appwiz_ocx" = 1,VB98\Wizards\appwiz.ocx,,,,1998-06-26,,1033,OLDER,,,,,,,831488,,,,6.0.0.8177, +"rc_exe_1" = 1,VB98\Wizards\rc.exe,,,,1998-06-27,,1033,OLDER,,,,,,,7440,,,,5.0.1641.1, +"rcdll_dll_1" = 1,VB98\Wizards\rcdll.dll,,,,1998-06-27,,1033,OLDER,,,,,,,107792,,,,5.0.1641.1, +"resedit_dll" = 1,VB98\Wizards\resedit.dll,,,,1998-06-18,,1033,OLDER,,,,,,,368640,,,,6.0.0.8169, +"appwiz_oca"= 1,appwiz.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"vbappwzchs_dll" = 1,VB98\Wizards\appwzchs.dll,,,,1998-08-03,,2052,OLDER,,,,,,,208896,,,,6.0.0.8163, +"rsedtchs_dll" = 1,VB98\Wizards\rsedtchs.dll,,,,1998-07-20,,2052,OLDER,,,,,,,28672,,,,6.0.0.8163, + +[Template Manager] +"tempmgr_dll" = 1,VB98\Wizards\tempmgr.dll,,,,1998-07-20,,2052,OLDER,,,,,,,94208,,,,6.0.0.8169, + +[WMF - Tag] +"2darrow1_wmf" = 1,Common\Graphics\Metafile\arrows\2darrow1.wmf,,,,1998-04-24,,,OLDER,,,,,,,1750,,,,, + +[WMF - Arrows] +"2darrow2_wmf" = 1,Common\Graphics\Metafile\arrows\2darrow2.wmf,,,,1998-04-24,,,OLDER,,,,,,,2774,,,,, +"2darrow3_wmf" = 1,Common\Graphics\Metafile\arrows\2darrow3.wmf,,,,1998-04-24,,,OLDER,,,,,,,2006,,,,, +"2darrow4_wmf" = 1,Common\Graphics\Metafile\arrows\2darrow4.wmf,,,,1998-04-24,,,OLDER,,,,,,,2902,,,,, +"3darrow1_wmf" = 1,Common\Graphics\Metafile\arrows\3darrow1.wmf,,,,1998-04-24,,,OLDER,,,,,,,1878,,,,, +"3darrow2_wmf" = 1,Common\Graphics\Metafile\arrows\3darrow2.wmf,,,,1998-04-24,,,OLDER,,,,,,,2454,,,,, +"3darrow3_wmf" = 1,Common\Graphics\Metafile\arrows\3darrow3.wmf,,,,1998-04-24,,,OLDER,,,,,,,2326,,,,, +"3darrow4_wmf" = 1,Common\Graphics\Metafile\arrows\3darrow4.wmf,,,,1998-04-24,,,OLDER,,,,,,,1878,,,,, +"3darrow5_wmf" = 1,Common\Graphics\Metafile\arrows\3darrow5.wmf,,,,1998-04-24,,,OLDER,,,,,,,1750,,,,, +"3darrow6_wmf" = 1,Common\Graphics\Metafile\arrows\3darrow6.wmf,,,,1998-04-24,,,OLDER,,,,,,,2070,,,,, +"3darrow7_wmf" = 1,Common\Graphics\Metafile\arrows\3darrow7.wmf,,,,1998-04-24,,,OLDER,,,,,,,4406,,,,, +"3dxarrow_wmf" = 1,Common\Graphics\Metafile\arrows\3dxarrow.wmf,,,,1998-04-24,,,OLDER,,,,,,,1622,,,,, +"3dxcirar_wmf" = 1,Common\Graphics\Metafile\arrows\3dxcirar.wmf,,,,1998-04-24,,,OLDER,,,,,,,2326,,,,, +"halfarrw_wmf" = 1,Common\Graphics\Metafile\arrows\halfarrw.wmf,,,,1998-04-24,,,OLDER,,,,,,,1526,,,,, +"hortarrw_wmf" = 1,Common\Graphics\Metafile\arrows\hortarrw.wmf,,,,1998-04-24,,,OLDER,,,,,,,2390,,,,, +"hozcirar_wmf" = 1,Common\Graphics\Metafile\arrows\hozcirar.wmf,,,,1998-04-24,,,OLDER,,,,,,,4374,,,,, +"layerarw_wmf" = 1,Common\Graphics\Metafile\arrows\layerarw.wmf,,,,1998-04-24,,,OLDER,,,,,,,1558,,,,, +"lrgearrw_wmf" = 1,Common\Graphics\Metafile\arrows\lrgearrw.wmf,,,,1998-04-24,,,OLDER,,,,,,,1206,,,,, +"medarrw1_wmf" = 1,Common\Graphics\Metafile\arrows\medarrw1.wmf,,,,1998-04-24,,,OLDER,,,,,,,1590,,,,, +"medarrw2_wmf" = 1,Common\Graphics\Metafile\arrows\medarrw2.wmf,,,,1998-04-24,,,OLDER,,,,,,,1526,,,,, +"multarw1_wmf" = 1,Common\Graphics\Metafile\arrows\multarw1.wmf,,,,1998-04-24,,,OLDER,,,,,,,726,,,,, +"multarw2_wmf" = 1,Common\Graphics\Metafile\arrows\multarw2.wmf,,,,1998-04-24,,,OLDER,,,,,,,790,,,,, +"multarw3_wmf" = 1,Common\Graphics\Metafile\arrows\multarw3.wmf,,,,1998-04-24,,,OLDER,,,,,,,1174,,,,, +"multarw4_wmf" = 1,Common\Graphics\Metafile\arrows\multarw4.wmf,,,,1998-04-24,,,OLDER,,,,,,,982,,,,, +"smallarw_wmf" = 1,Common\Graphics\Metafile\arrows\smallarw.wmf,,,,1998-04-24,,,OLDER,,,,,,,1654,,,,, +"tinyarrw_wmf" = 1,Common\Graphics\Metafile\arrows\tinyarrw.wmf,,,,1998-04-24,,,OLDER,,,,,,,3350,,,,, +"vertarrw_wmf" = 1,Common\Graphics\Metafile\arrows\vertarrw.wmf,,,,1998-04-24,,,OLDER,,,,,,,2486,,,,, +"vrtcirar_wmf" = 1,Common\Graphics\Metafile\arrows\vrtcirar.wmf,,,,1998-04-24,,,OLDER,,,,,,,2454,,,,, +"vrtcurar_wmf" = 1,Common\Graphics\Metafile\arrows\vrtcurar.wmf,,,,1998-04-24,,,OLDER,,,,,,,2774,,,,, +"xarrow_wmf" = 1,Common\Graphics\Metafile\arrows\xarrow.wmf,,,,1998-04-24,,,OLDER,,,,,,,982,,,,, + +[WMF - Business] +"3dlrsign_wmf" = 1,Common\Graphics\Metafile\business\3dlrsign.wmf,,,,1998-04-24,,,OLDER,,,,,,,3446,,,,, +"alphbord_wmf" = 1,Common\Graphics\Metafile\business\alphbord.wmf,,,,1998-04-24,,,OLDER,,,,,,,5334,,,,, +"alphtrpn_wmf" = 1,Common\Graphics\Metafile\business\alphtrpn.wmf,,,,1998-04-24,,,OLDER,,,,,,,4086,,,,, +"answmach_wmf" = 1,Common\Graphics\Metafile\business\answmach.wmf,,,,1998-04-24,,,OLDER,,,,,,,8438,,,,, +"apptbook_wmf" = 1,Common\Graphics\Metafile\business\apptbook.wmf,,,,1998-04-24,,,OLDER,,,,,,,14486,,,,, +"calcultr_wmf" = 1,Common\Graphics\Metafile\business\calcultr.wmf,,,,1998-04-24,,,OLDER,,,,,,,17942,,,,, +"calendar_wmf" = 1,Common\Graphics\Metafile\business\calendar.wmf,,,,1998-04-24,,,OLDER,,,,,,,14422,,,,, +"cent_wmf" = 1,Common\Graphics\Metafile\business\cent.wmf,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"check_wmf" = 1,Common\Graphics\Metafile\business\check.wmf,,,,1998-04-24,,,OLDER,,,,,,,9462,,,,, +"clipbord_wmf" = 1,Common\Graphics\Metafile\business\clipbord.wmf,,,,1998-04-24,,,OLDER,,,,,,,6870,,,,, +"coins_wmf" = 1,Common\Graphics\Metafile\business\coins.wmf,,,,1998-04-24,,,OLDER,,,,,,,7830,,,,, +"computer_wmf" = 1,Common\Graphics\Metafile\business\computer.wmf,,,,1998-04-24,,,OLDER,,,,,,,8854,,,,, +"copymach_wmf" = 1,Common\Graphics\Metafile\business\copymach.wmf,,,,1998-04-24,,,OLDER,,,,,,,5718,,,,, +"deutsch_wmf" = 1,Common\Graphics\Metafile\business\deutsch.wmf,,,,1998-04-24,,,OLDER,,,,,,,1270,,,,, +"digitals_wmf" = 1,Common\Graphics\Metafile\business\digitals.wmf,,,,1998-04-24,,,OLDER,,,,,,,2454,,,,, +"digitnum_wmf" = 1,Common\Graphics\Metafile\business\digitnum.wmf,,,,1998-04-24,,,OLDER,,,,,,,3478,,,,, +"dime_wmf" = 1,Common\Graphics\Metafile\business\dime.wmf,,,,1998-04-24,,,OLDER,,,,,,,11862,,,,, +"disk35_wmf" = 1,Common\Graphics\Metafile\business\disk35.wmf,,,,1998-04-24,,,OLDER,,,,,,,1558,,,,, +"disk525_wmf" = 1,Common\Graphics\Metafile\business\disk525.wmf,,,,1998-04-24,,,OLDER,,,,,,,1910,,,,, +"dollar_wmf" = 1,Common\Graphics\Metafile\business\dollar.wmf,,,,1998-04-24,,,OLDER,,,,,,,10838,,,,, +"dollars_wmf" = 1,Common\Graphics\Metafile\business\dollars.wmf,,,,1998-04-24,,,OLDER,,,,,,,9302,,,,, +"envlback_wmf" = 1,Common\Graphics\Metafile\business\envlback.wmf,,,,1998-04-24,,,OLDER,,,,,,,1110,,,,, +"envlfrnt_wmf" = 1,Common\Graphics\Metafile\business\envlfrnt.wmf,,,,1998-04-24,,,OLDER,,,,,,,11926,,,,, +"fileclsd_wmf" = 1,Common\Graphics\Metafile\business\fileclsd.wmf,,,,1998-04-24,,,OLDER,,,,,,,4822,,,,, +"fileopen_wmf" = 1,Common\Graphics\Metafile\business\fileopen.wmf,,,,1998-04-24,,,OLDER,,,,,,,4886,,,,, +"guilder_wmf" = 1,Common\Graphics\Metafile\business\guilder.wmf,,,,1998-04-24,,,OLDER,,,,,,,1046,,,,, +"harddisk_wmf" = 1,Common\Graphics\Metafile\business\harddisk.wmf,,,,1998-04-24,,,OLDER,,,,,,,4886,,,,, +"laptop1_wmf" = 1,Common\Graphics\Metafile\business\laptop1.wmf,,,,1998-04-24,,,OLDER,,,,,,,12694,,,,, +"laptop2_wmf" = 1,Common\Graphics\Metafile\business\laptop2.wmf,,,,1998-04-24,,,OLDER,,,,,,,10710,,,,, +"micrchip_wmf" = 1,Common\Graphics\Metafile\business\micrchip.wmf,,,,1998-04-24,,,OLDER,,,,,,,6902,,,,, +"money_wmf" = 1,Common\Graphics\Metafile\business\money.wmf,,,,1998-04-24,,,OLDER,,,,,,,2998,,,,, +"moneybag_wmf" = 1,Common\Graphics\Metafile\business\moneybag.wmf,,,,1998-04-24,,,OLDER,,,,,,,1110,,,,, +"monitor_wmf" = 1,Common\Graphics\Metafile\business\monitor.wmf,,,,1998-04-24,,,OLDER,,,,,,,1910,,,,, +"monystk1_wmf" = 1,Common\Graphics\Metafile\business\monystk1.wmf,,,,1998-04-24,,,OLDER,,,,,,,3318,,,,, +"monystk2_wmf" = 1,Common\Graphics\Metafile\business\monystk2.wmf,,,,1998-04-24,,,OLDER,,,,,,,5110,,,,, +"nickel_wmf" = 1,Common\Graphics\Metafile\business\nickel.wmf,,,,1998-04-24,,,OLDER,,,,,,,12822,,,,, +"payphone_wmf" = 1,Common\Graphics\Metafile\business\payphone.wmf,,,,1998-04-24,,,OLDER,,,,,,,5302,,,,, +"pcomputr_wmf" = 1,Common\Graphics\Metafile\business\pcomputr.wmf,,,,1998-04-24,,,OLDER,,,,,,,12406,,,,, +"penny_wmf" = 1,Common\Graphics\Metafile\business\penny.wmf,,,,1998-04-24,,,OLDER,,,,,,,15158,,,,, +"peseta_wmf" = 1,Common\Graphics\Metafile\business\peseta.wmf,,,,1998-04-24,,,OLDER,,,,,,,1686,,,,, +"phone_wmf" = 1,Common\Graphics\Metafile\business\phone.wmf,,,,1998-04-24,,,OLDER,,,,,,,20118,,,,, +"postcard_wmf" = 1,Common\Graphics\Metafile\business\postcard.wmf,,,,1998-04-24,,,OLDER,,,,,,,4278,,,,, +"pound_wmf" = 1,Common\Graphics\Metafile\business\pound.wmf,,,,1998-04-24,,,OLDER,,,,,,,1302,,,,, +"poundbag_wmf" = 1,Common\Graphics\Metafile\business\poundbag.wmf,,,,1998-04-24,,,OLDER,,,,,,,2198,,,,, +"printer_wmf" = 1,Common\Graphics\Metafile\business\printer.wmf,,,,1998-04-24,,,OLDER,,,,,,,3734,,,,, +"prntout1_wmf" = 1,Common\Graphics\Metafile\business\prntout1.wmf,,,,1998-04-24,,,OLDER,,,,,,,27094,,,,, +"prntout2_wmf" = 1,Common\Graphics\Metafile\business\prntout2.wmf,,,,1998-04-24,,,OLDER,,,,,,,6262,,,,, +"prntout3_wmf" = 1,Common\Graphics\Metafile\business\prntout3.wmf,,,,1998-04-24,,,OLDER,,,,,,,5622,,,,, +"quarter_wmf" = 1,Common\Graphics\Metafile\business\quarter.wmf,,,,1998-04-24,,,OLDER,,,,,,,12374,,,,, +"rolodex_wmf" = 1,Common\Graphics\Metafile\business\rolodex.wmf,,,,1998-04-24,,,OLDER,,,,,,,10038,,,,, +"ruble_wmf" = 1,Common\Graphics\Metafile\business\ruble.wmf,,,,1998-04-24,,,OLDER,,,,,,,918,,,,, +"satedish_wmf" = 1,Common\Graphics\Metafile\business\satedish.wmf,,,,1998-04-24,,,OLDER,,,,,,,4374,,,,, +"satelit1_wmf" = 1,Common\Graphics\Metafile\business\satelit1.wmf,,,,1998-04-24,,,OLDER,,,,,,,3158,,,,, +"satelit2_wmf" = 1,Common\Graphics\Metafile\business\satelit2.wmf,,,,1998-04-24,,,OLDER,,,,,,,3606,,,,, +"typewrtr_wmf" = 1,Common\Graphics\Metafile\business\typewrtr.wmf,,,,1998-04-24,,,OLDER,,,,,,,13622,,,,, +"yen_wmf" = 1,Common\Graphics\Metafile\business\yen.wmf,,,,1998-04-24,,,OLDER,,,,,,,694,,,,, + +[Bitmaps - Tag] +"balloon_bmp" = 1,Common\Graphics\bitmaps\assorted\balloon.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, + +[Bitmaps - Assorted] +"beany_bmp" = 1,Common\Graphics\bitmaps\assorted\beany.bmp,,,,1998-04-24,,,OLDER,,,,,,,2070,,,,, +"bell_bmp" = 1,Common\Graphics\bitmaps\assorted\bell.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"calendar_bmp" = 1,Common\Graphics\bitmaps\assorted\calendar.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"camcord_bmp" = 1,Common\Graphics\bitmaps\assorted\camcord.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"card_bmp" = 1,Common\Graphics\bitmaps\assorted\card.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"club_bmp" = 1,Common\Graphics\bitmaps\assorted\club.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"cup_bmp" = 1,Common\Graphics\bitmaps\assorted\cup.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"delete_bmp_1" = 1,Common\Graphics\bitmaps\assorted\delete.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"diamond_bmp" = 1,Common\Graphics\bitmaps\assorted\diamond.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"envelope_bmp" = 1,Common\Graphics\bitmaps\assorted\envelope.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"fish_bmp" = 1,Common\Graphics\bitmaps\assorted\fish.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"hand_bmp" = 1,Common\Graphics\bitmaps\assorted\hand.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"happy_bmp" = 1,Common\Graphics\bitmaps\assorted\happy.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"heart_bmp" = 1,Common\Graphics\bitmaps\assorted\heart.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"intl_no_bmp" = 1,Common\Graphics\bitmaps\assorted\intl_no.bmp,,,,1998-04-24,,,OLDER,,,,,,,2070,,,,, +"key_bmp" = 1,Common\Graphics\bitmaps\assorted\key.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"mail_bmp" = 1,Common\Graphics\bitmaps\assorted\mail.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"note_bmp" = 1,Common\Graphics\bitmaps\assorted\note.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"notebook_bmp" = 1,Common\Graphics\bitmaps\assorted\notebook.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"phone_bmp" = 1,Common\Graphics\bitmaps\assorted\phone.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"pin_bmp" = 1,Common\Graphics\bitmaps\assorted\pin.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"plan_bmp" = 1,Common\Graphics\bitmaps\assorted\plan.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"present_bmp" = 1,Common\Graphics\bitmaps\assorted\present.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"sad_bmp" = 1,Common\Graphics\bitmaps\assorted\sad.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"smokes_bmp" = 1,Common\Graphics\bitmaps\assorted\smokes.bmp,,,,1998-04-24,,,OLDER,,,,,,,2070,,,,, +"spade_bmp" = 1,Common\Graphics\bitmaps\assorted\spade.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"speaker_bmp" = 1,Common\Graphics\bitmaps\assorted\speaker.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"time_bmp" = 1,Common\Graphics\bitmaps\assorted\time.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"trash_bmp" = 1,Common\Graphics\bitmaps\assorted\trash.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, +"vb416mom_bmp" = 1,Common\Graphics\bitmaps\assorted\vb416mom.bmp,,,,1998-04-24,,,OLDER,,,,,,,790,,,,, +"vb432mom_bmp" = 1,Common\Graphics\bitmaps\assorted\vb432mom.bmp,,,,1998-04-24,,,OLDER,,,,,,,790,,,,, +"w_bmp" = 1,Common\Graphics\bitmaps\assorted\w.bmp,,,,1998-04-24,,,OLDER,,,,,,,382,,,,, + +[Bitmaps - Gauge] +"circlock_bmp" = 1,Common\Graphics\bitmaps\gauge\circlock.bmp,,,,1998-04-24,,,OLDER,,,,,,,630,,,,, +"dome_bmp" = 1,Common\Graphics\bitmaps\gauge\dome.bmp,,,,1998-04-24,,,OLDER,,,,,,,1654,,,,, +"horz_bmp" = 1,Common\Graphics\bitmaps\gauge\horz.bmp,,,,1998-04-24,,,OLDER,,,,,,,3154,,,,, +"horz1_bmp" = 1,Common\Graphics\bitmaps\gauge\horz1.bmp,,,,1998-04-24,,,OLDER,,,,,,,3338,,,,, +"semicirc_bmp" = 1,Common\Graphics\bitmaps\gauge\semicirc.bmp,,,,1998-04-24,,,OLDER,,,,,,,1654,,,,, +"therbot_bmp" = 1,Common\Graphics\bitmaps\gauge\therbot.bmp,,,,1998-04-24,,,OLDER,,,,,,,918,,,,, +"therlft_bmp" = 1,Common\Graphics\bitmaps\gauge\therlft.bmp,,,,1998-04-24,,,OLDER,,,,,,,818,,,,, +"thermid_bmp" = 1,Common\Graphics\bitmaps\gauge\thermid.bmp,,,,1998-04-24,,,OLDER,,,,,,,518,,,,, +"thermidh_bmp" = 1,Common\Graphics\bitmaps\gauge\thermidh.bmp,,,,1998-04-24,,,OLDER,,,,,,,538,,,,, +"therrt_bmp" = 1,Common\Graphics\bitmaps\gauge\therrt.bmp,,,,1998-04-24,,,OLDER,,,,,,,538,,,,, +"thertop_bmp" = 1,Common\Graphics\bitmaps\gauge\thertop.bmp,,,,1998-04-24,,,OLDER,,,,,,,518,,,,, +"vert_bmp" = 1,Common\Graphics\bitmaps\gauge\vert.bmp,,,,1998-04-24,,,OLDER,,,,,,,3778,,,,, +"volbot_bmp" = 1,Common\Graphics\bitmaps\gauge\volbot.bmp,,,,1998-04-24,,,OLDER,,,,,,,518,,,,, +"voltop_bmp" = 1,Common\Graphics\bitmaps\gauge\voltop.bmp,,,,1998-04-24,,,OLDER,,,,,,,518,,,,, + +[Bitmaps - OffCtlBr - B&W - large] +"copy_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\copy.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"cut_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\cut.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"help_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\help.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"new_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\new.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"open_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\open.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"paint_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\paint.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"paste_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\paste.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"preview_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\preview.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"print_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\print.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"redo_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\redo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"save_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\save.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"spell_bmp" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\spell.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"undo_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\B&W\undo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, + +[Bitmaps - OffcCtlBr - B&W - small] +"copy_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\copy.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"cut_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\cut.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"help_bmp_5" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\help.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"new_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\new.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"open_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\open.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"paint_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\paint.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"paste_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\paste.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"preview_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\preview.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"print_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\print.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"redo_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\redo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"save_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\save.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"spell_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\spell.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"undo_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\b&w\undo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, + +[Bitmaps - OffCtlBr - Color - large] +"copy_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\copy.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"cut_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\cut.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"help_bmp_4" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\help.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"new_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\new.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"open_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\open.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"paint_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\paint.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"paste_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\paste.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"preview_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\preview.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"print_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\print.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"redo_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\redo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"save_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\save.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"spell_bmp_1" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\spell.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, +"undo_bmp_2" = 1,Common\Graphics\bitmaps\OFFCTLBR\large\color\undo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1630,,,,, + +[Bitmaps - OffcCtlBr - Color - small] +"copy_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\copy.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"cut_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\cut.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"help_bmp_6" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\help.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"new_bmp_4" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\new.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"open_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\open.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"paint_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\paint.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"paste_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\paste.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"preview_bmp_4" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\preview.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"print_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\print.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"redo_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\redo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"save_bmp_4" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\save.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"spell_bmp_3" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\spell.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, +"undo_bmp_4" = 1,Common\Graphics\bitmaps\OFFCTLBR\small\color\undo.bmp,,,,1998-04-24,,,OLDER,,,,,,,1318,,,,, + +[Bitmaps - Outline] +"closed_bmp" = 1,Common\Graphics\bitmaps\outline\closed.bmp,,,,1998-04-24,,,OLDER,,,,,,,222,,,,, +"leaf_bmp_1" = 1,Common\Graphics\bitmaps\outline\leaf.bmp,,,,1998-04-24,,,OLDER,,,,,,,222,,,,, +"minus_bmp" = 1,Common\Graphics\bitmaps\outline\minus.bmp,,,,1998-04-24,,,OLDER,,,,,,,222,,,,, +"open_bmp_4" = 1,Common\Graphics\bitmaps\outline\open.bmp,,,,1998-04-24,,,OLDER,,,,,,,222,,,,, +"plus_bmp" = 1,Common\Graphics\bitmaps\outline\plus.bmp,,,,1998-04-24,,,OLDER,,,,,,,222,,,,, + +[Bitmaps - Outline - Nomask] +"35floppy_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\35floppy.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"525flop1_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\525flop1.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"audio_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\audio.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"bmp_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\bmp.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"cddrive_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\cddrive.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"clsdfold_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\clsdfold.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"ctrpanel_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\ctrpanel.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"desktop_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\desktop.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"doc_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\doc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"drive_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\drive.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"drivedsc_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\drivedsc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"drivenet_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\drivenet.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"entirnet_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\entirnet.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"exe_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\exe.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"explorer_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\explorer.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"hlp_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\hlp.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"mycomp_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\mycomp.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"nethood_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\nethood.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"openfold_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\openfold.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"printfld_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\printfld.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"recyfull_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\recyfull.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"remteacc_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\remteacc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"sharing_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\sharing.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"txt_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\txt.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"waste_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\waste.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"windoc_bmp" = 1,Common\Graphics\bitmaps\outline\nomask\windoc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, + +[Bitmaps - Outline - Redmask] +"35floppy_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\35floppy.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"525flop1_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\525flop1.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"audio_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\audio.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"bmp_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\bmp.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"cddrive_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\cddrive.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"clsdfold_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\clsdfold.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"ctrpanel_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\ctrpanel.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"desktop_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\desktop.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"doc_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\doc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"drive_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\drive.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"drivedsc_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\drivedsc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"drivenet_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\drivenet.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"entirnet_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\entirnet.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"exe_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\exe.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"explorer_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\explorer.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"hlp_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\hlp.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"mycomp_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\mycomp.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"nethood_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\nethood.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"openfold_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\openfold.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"printfld_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\printfld.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"recyfull_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\recyfull.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"remteacc_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\remteacc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"sharing_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\sharing.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"txt_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\txt.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"waste_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\waste.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"windoc_bmp_1" = 1,Common\Graphics\bitmaps\outline\redmask\windoc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, + +[Bitmaps - TlBr - W95] +"arc_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\arc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"back_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\back.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"bld_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\bld.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"button_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\button.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"camera_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\camera.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"copy_bmp_4" = 1,Common\Graphics\bitmaps\tlbr_w95\copy.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"ctr_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\ctr.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"cut_bmp_4" = 1,Common\Graphics\bitmaps\tlbr_w95\cut.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"dblundr_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\dblundr.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"delete_bmp_2" = 1,Common\Graphics\bitmaps\tlbr_w95\delete.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"discnet_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\discnet.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"drawing_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\drawing.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"ellipse_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\ellipse.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"find_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\find.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"freeform_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\freeform.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"front_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\front.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"group_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\group.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"help_bmp_7" = 1,Common\Graphics\bitmaps\tlbr_w95\help.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"help2_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\help2.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"itl_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\itl.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"jst_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\jst.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"lft_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\lft.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"line_bmp_1" = 1,Common\Graphics\bitmaps\tlbr_w95\line.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"linestyl_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\linestyl.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"mapnet_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\mapnet.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"mcr_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\mcr.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"new_bmp_5" = 1,Common\Graphics\bitmaps\tlbr_w95\new.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"open_bmp_5" = 1,Common\Graphics\bitmaps\tlbr_w95\open.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"paste_bmp_4" = 1,Common\Graphics\bitmaps\tlbr_w95\paste.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"print_bmp_4" = 1,Common\Graphics\bitmaps\tlbr_w95\print.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"prop_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\prop.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"rectangl_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\rectangl.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"redo_bmp_4" = 1,Common\Graphics\bitmaps\tlbr_w95\redo.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"rt_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\rt.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"save_bmp_5" = 1,Common\Graphics\bitmaps\tlbr_w95\save.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"smallcap_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\smallcap.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"sortasc_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\sortasc.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"sortdes_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\sortdes.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"spelling_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\spelling.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"strikthr_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\strikthr.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"sum_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\sum.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"tab-cntr_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\tab-cntr.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"tab-dec_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\tab-dec.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"tab-left_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\tab-left.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"tab-rht_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\tab-rht.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"undo_bmp_5" = 1,Common\Graphics\bitmaps\tlbr_w95\undo.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"undrln_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\undrln.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"ungroup_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\ungroup.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"up1lvl_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\up1lvl.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"vw-dtls_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\vw-dtls.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"vw-list_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\vw-list.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"vw-lrgic_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\vw-lrgic.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"vw-smlic_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\vw-smlic.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, +"wordundr_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\wordundr.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, + +[Bitmaps - TlBr - W96] +"cnt_bmp" = 1,Common\Graphics\bitmaps\tlbr_w95\cnt.bmp,,,,1998-04-24,,,OLDER,,,,,,,246,,,,, + +[Cursors - Tag] +"4way01_cur" = 1,Common\Graphics\cursors\4way01.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, + +[Cursors] +"4way02_cur" = 1,Common\Graphics\cursors\4way02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"4way03_cur" = 1,Common\Graphics\cursors\4way03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"4way04_cur" = 1,Common\Graphics\cursors\4way04.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"4way05_cur" = 1,Common\Graphics\cursors\4way05.cur,,,,1998-04-24,,,OLDER,,,,,,,530,,,,, +"4way06_cur" = 1,Common\Graphics\cursors\4way06.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"4way07_cur" = 1,Common\Graphics\cursors\4way07.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"bullseye_cur" = 1,Common\Graphics\cursors\bullseye.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"c_no01_cur" = 1,Common\Graphics\cursors\c_no01.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_no02_cur" = 1,Common\Graphics\cursors\c_no02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_no03_cur" = 1,Common\Graphics\cursors\c_no03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_no04_cur" = 1,Common\Graphics\cursors\c_no04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_no05_cur" = 1,Common\Graphics\cursors\c_no05.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_wai03_cur" = 1,Common\Graphics\cursors\c_wai03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_wait01_cur" = 1,Common\Graphics\cursors\c_wait01.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_wait02_cur" = 1,Common\Graphics\cursors\c_wait02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_wait04_cur" = 1,Common\Graphics\cursors\c_wait04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"c_wait05_cur" = 1,Common\Graphics\cursors\c_wait05.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"copy4way_cur_1" = 1,Common\Graphics\cursors\copy4way.cur,,,,1998-04-24,,,OLDER,,,,,,,518,,,,, +"cross01_cur" = 1,Common\Graphics\cursors\cross01.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"cross02_cur" = 1,Common\Graphics\cursors\cross02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"cross03_cur" = 1,Common\Graphics\cursors\cross03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"cross04_cur" = 1,Common\Graphics\cursors\cross04.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"down_cur" = 1,Common\Graphics\cursors\down.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"dragcopy_cur_1" = 1,Common\Graphics\cursors\dragcopy.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"draglink_cur_1" = 1,Common\Graphics\cursors\draglink.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"dragmove_cur_3" = 1,Common\Graphics\cursors\dragmove.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"dragpict_cur_1" = 1,Common\Graphics\cursors\dragpict.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ew_01_cur" = 1,Common\Graphics\cursors\ew_01.cur,,,,1998-04-24,,,OLDER,,,,,,,530,,,,, +"ew_02_cur" = 1,Common\Graphics\cursors\ew_02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ew_03_cur" = 1,Common\Graphics\cursors\ew_03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ew_04_cur" = 1,Common\Graphics\cursors\ew_04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ew_05_cur" = 1,Common\Graphics\cursors\ew_05.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ew_06_cur" = 1,Common\Graphics\cursors\ew_06.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ew_07_cur" = 1,Common\Graphics\cursors\ew_07.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ew_08_cur" = 1,Common\Graphics\cursors\ew_08.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_cross_cur" = 1,Common\Graphics\cursors\h_cross.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_ibeam_cur" = 1,Common\Graphics\cursors\h_ibeam.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_move_cur" = 1,Common\Graphics\cursors\h_move.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_ne_cur" = 1,Common\Graphics\cursors\h_ne.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_nodrop_cur" = 1,Common\Graphics\cursors\h_nodrop.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_ns_cur" = 1,Common\Graphics\cursors\h_ns.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_nw_cur" = 1,Common\Graphics\cursors\h_nw.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_point_cur" = 1,Common\Graphics\cursors\h_point.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"h_we_cur" = 1,Common\Graphics\cursors\h_we.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"help_cur_1" = 1,Common\Graphics\cursors\help.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ho_line_cur" = 1,Common\Graphics\cursors\ho_line.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ho_sizeb_cur" = 1,Common\Graphics\cursors\ho_sizeb.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ho_split_cur" = 1,Common\Graphics\cursors\ho_split.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ibeam_01_cur" = 1,Common\Graphics\cursors\ibeam_01.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"magnify_cur_1" = 1,Common\Graphics\cursors\magnify.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"move4way_cur_1" = 1,Common\Graphics\cursors\move4way.cur,,,,1998-04-24,,,OLDER,,,,,,,530,,,,, +"ne_01_cur" = 1,Common\Graphics\cursors\ne_01.cur,,,,1998-04-24,,,OLDER,,,,,,,530,,,,, +"ne_02_cur" = 1,Common\Graphics\cursors\ne_02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ne_03_cur" = 1,Common\Graphics\cursors\ne_03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ne_04_cur" = 1,Common\Graphics\cursors\ne_04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ne_05_cur" = 1,Common\Graphics\cursors\ne_05.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ne_06_cur" = 1,Common\Graphics\cursors\ne_06.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ne_07_cur" = 1,Common\Graphics\cursors\ne_07.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"no_cur" = 1,Common\Graphics\cursors\no.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"nodrop01_cur_2" = 1,Common\Graphics\cursors\nodrop01.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"nodrop02_cur" = 1,Common\Graphics\cursors\nodrop02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"normal01_cur" = 1,Common\Graphics\cursors\normal01.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"normal02_cur" = 1,Common\Graphics\cursors\normal02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"normal03_cur" = 1,Common\Graphics\cursors\normal03.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"normal04_cur" = 1,Common\Graphics\cursors\normal04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"normal05_cur" = 1,Common\Graphics\cursors\normal05.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"normal06_cur" = 1,Common\Graphics\cursors\normal06.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"normal07_cur" = 1,Common\Graphics\cursors\normal07.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"normal08_cur" = 1,Common\Graphics\cursors\normal08.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ns_01_cur" = 1,Common\Graphics\cursors\ns_01.cur,,,,1998-04-24,,,OLDER,,,,,,,530,,,,, +"ns_02_cur" = 1,Common\Graphics\cursors\ns_02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ns_03_cur" = 1,Common\Graphics\cursors\ns_03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ns_04_cur" = 1,Common\Graphics\cursors\ns_04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ns_05_cur" = 1,Common\Graphics\cursors\ns_05.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ns_06_cur" = 1,Common\Graphics\cursors\ns_06.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ns_07_cur" = 1,Common\Graphics\cursors\ns_07.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"nw_01_cur" = 1,Common\Graphics\cursors\nw_01.cur,,,,1998-04-24,,,OLDER,,,,,,,530,,,,, +"nw_02_cur" = 1,Common\Graphics\cursors\nw_02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"nw_03_cur" = 1,Common\Graphics\cursors\nw_03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"nw_04_cur" = 1,Common\Graphics\cursors\nw_04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"nw_05_cur" = 1,Common\Graphics\cursors\nw_05.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"nw_06_cur" = 1,Common\Graphics\cursors\nw_06.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"nw_07_cur" = 1,Common\Graphics\cursors\nw_07.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"nw_08_cur" = 1,Common\Graphics\cursors\nw_08.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"palette_cur" = 1,Common\Graphics\cursors\palette.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"pencil_cur" = 1,Common\Graphics\cursors\pencil.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"select_cur" = 1,Common\Graphics\cursors\select.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ve_line_cur" = 1,Common\Graphics\cursors\ve_line.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ve_sizeb_cur" = 1,Common\Graphics\cursors\ve_sizeb.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"ve_split_cur" = 1,Common\Graphics\cursors\ve_split.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"wait01_cur" = 1,Common\Graphics\cursors\wait01.cur,,,,1998-04-24,,,OLDER,,,,,,,326,,,,, +"wait02_cur" = 1,Common\Graphics\cursors\wait02.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"wait03_cur" = 1,Common\Graphics\cursors\wait03.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"wait04_cur" = 1,Common\Graphics\cursors\wait04.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"wait05_cur" = 1,Common\Graphics\cursors\wait05.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"wait06_cur" = 1,Common\Graphics\cursors\wait06.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"wait07_cur" = 1,Common\Graphics\cursors\wait07.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"wait08_cur" = 1,Common\Graphics\cursors\wait08.cur,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, + +[I-Arrows - Tag] +"arw01dn_ico" = 1,Common\Graphics\icons\arrows\arw01dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Arrows] +"arw01lt_ico" = 1,Common\Graphics\icons\arrows\arw01lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw01rt_ico" = 1,Common\Graphics\icons\arrows\arw01rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw01up_ico" = 1,Common\Graphics\icons\arrows\arw01up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw02dn_ico" = 1,Common\Graphics\icons\arrows\arw02dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw02lt_ico" = 1,Common\Graphics\icons\arrows\arw02lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw02rt_ico" = 1,Common\Graphics\icons\arrows\arw02rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw02up_ico" = 1,Common\Graphics\icons\arrows\arw02up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw03dn_ico" = 1,Common\Graphics\icons\arrows\arw03dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw03lt_ico" = 1,Common\Graphics\icons\arrows\arw03lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw03rt_ico" = 1,Common\Graphics\icons\arrows\arw03rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw03up_ico" = 1,Common\Graphics\icons\arrows\arw03up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw04dn_ico" = 1,Common\Graphics\icons\arrows\arw04dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw04lt_ico" = 1,Common\Graphics\icons\arrows\arw04lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw04rt_ico" = 1,Common\Graphics\icons\arrows\arw04rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw04up_ico" = 1,Common\Graphics\icons\arrows\arw04up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw05dn_ico" = 1,Common\Graphics\icons\arrows\arw05dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw05lt_ico" = 1,Common\Graphics\icons\arrows\arw05lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw05rt_ico" = 1,Common\Graphics\icons\arrows\arw05rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw05up_ico" = 1,Common\Graphics\icons\arrows\arw05up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw06dn_ico" = 1,Common\Graphics\icons\arrows\arw06dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw06lt_ico" = 1,Common\Graphics\icons\arrows\arw06lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw06rt_ico" = 1,Common\Graphics\icons\arrows\arw06rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw06up_ico" = 1,Common\Graphics\icons\arrows\arw06up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw07dn_ico" = 1,Common\Graphics\icons\arrows\arw07dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw07lt_ico" = 1,Common\Graphics\icons\arrows\arw07lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw07rt_ico" = 1,Common\Graphics\icons\arrows\arw07rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw07up_ico" = 1,Common\Graphics\icons\arrows\arw07up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw08dn_ico" = 1,Common\Graphics\icons\arrows\arw08dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw08lt_ico" = 1,Common\Graphics\icons\arrows\arw08lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw08rt_ico" = 1,Common\Graphics\icons\arrows\arw08rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw08up_ico" = 1,Common\Graphics\icons\arrows\arw08up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw09dn_ico" = 1,Common\Graphics\icons\arrows\arw09dn.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw09lt_ico" = 1,Common\Graphics\icons\arrows\arw09lt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw09rt_ico" = 1,Common\Graphics\icons\arrows\arw09rt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw09up_ico" = 1,Common\Graphics\icons\arrows\arw09up.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw10ne_ico" = 1,Common\Graphics\icons\arrows\arw10ne.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw10nw_ico" = 1,Common\Graphics\icons\arrows\arw10nw.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw10se_ico" = 1,Common\Graphics\icons\arrows\arw10se.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw10sw_ico" = 1,Common\Graphics\icons\arrows\arw10sw.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw11ne_ico" = 1,Common\Graphics\icons\arrows\arw11ne.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw11nw_ico" = 1,Common\Graphics\icons\arrows\arw11nw.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw11se_ico" = 1,Common\Graphics\icons\arrows\arw11se.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"arw11sw_ico" = 1,Common\Graphics\icons\arrows\arw11sw.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point01_ico" = 1,Common\Graphics\icons\arrows\point01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point02_ico" = 1,Common\Graphics\icons\arrows\point02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point03_ico" = 1,Common\Graphics\icons\arrows\point03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point04_ico" = 1,Common\Graphics\icons\arrows\point04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point05_ico" = 1,Common\Graphics\icons\arrows\point05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point06_ico" = 1,Common\Graphics\icons\arrows\point06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point07_ico" = 1,Common\Graphics\icons\arrows\point07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point08_ico" = 1,Common\Graphics\icons\arrows\point08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point09_ico" = 1,Common\Graphics\icons\arrows\point09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point10_ico" = 1,Common\Graphics\icons\arrows\point10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point11_ico" = 1,Common\Graphics\icons\arrows\point11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point12_ico" = 1,Common\Graphics\icons\arrows\point12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point13_ico" = 1,Common\Graphics\icons\arrows\point13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point14_ico" = 1,Common\Graphics\icons\arrows\point14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"point15_ico" = 1,Common\Graphics\icons\arrows\point15.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Comm] +"handshak_ico" = 1,Common\Graphics\icons\comm\handshak.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net01_ico" = 1,Common\Graphics\icons\comm\net01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net02_ico" = 1,Common\Graphics\icons\comm\net02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net03_ico" = 1,Common\Graphics\icons\comm\net03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net04_ico" = 1,Common\Graphics\icons\comm\net04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net05_ico" = 1,Common\Graphics\icons\comm\net05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net06_ico" = 1,Common\Graphics\icons\comm\net06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net07_ico" = 1,Common\Graphics\icons\comm\net07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net08_ico" = 1,Common\Graphics\icons\comm\net08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net09a_ico" = 1,Common\Graphics\icons\comm\net09a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net09b_ico" = 1,Common\Graphics\icons\comm\net09b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net10a_ico" = 1,Common\Graphics\icons\comm\net10a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net10b_ico" = 1,Common\Graphics\icons\comm\net10b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net11_ico" = 1,Common\Graphics\icons\comm\net11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net12_ico" = 1,Common\Graphics\icons\comm\net12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net13_ico_1" = 1,Common\Graphics\icons\comm\net13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"net14_ico" = 1,Common\Graphics\icons\comm\net14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone01_ico" = 1,Common\Graphics\icons\comm\phone01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone02_ico" = 1,Common\Graphics\icons\comm\phone02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone03_ico" = 1,Common\Graphics\icons\comm\phone03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone04_ico" = 1,Common\Graphics\icons\comm\phone04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone05_ico" = 1,Common\Graphics\icons\comm\phone05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone06_ico" = 1,Common\Graphics\icons\comm\phone06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone07_ico" = 1,Common\Graphics\icons\comm\phone07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone08_ico" = 1,Common\Graphics\icons\comm\phone08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone09_ico" = 1,Common\Graphics\icons\comm\phone09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone10_ico" = 1,Common\Graphics\icons\comm\phone10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone11_ico" = 1,Common\Graphics\icons\comm\phone11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone12_ico" = 1,Common\Graphics\icons\comm\phone12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone13_ico" = 1,Common\Graphics\icons\comm\phone13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone14_ico" = 1,Common\Graphics\icons\comm\phone14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone15_ico" = 1,Common\Graphics\icons\comm\phone15.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"phone16_ico" = 1,Common\Graphics\icons\comm\phone16.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, + +[I-Computer] +"cdrom01_ico" = 1,Common\Graphics\icons\computer\cdrom01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"cdrom02_ico" = 1,Common\Graphics\icons\computer\cdrom02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk01_ico" = 1,Common\Graphics\icons\computer\disk01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk02_ico" = 1,Common\Graphics\icons\computer\disk02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk03_ico" = 1,Common\Graphics\icons\computer\disk03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk04_ico" = 1,Common\Graphics\icons\computer\disk04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk05_ico" = 1,Common\Graphics\icons\computer\disk05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk06_ico" = 1,Common\Graphics\icons\computer\disk06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk07_ico" = 1,Common\Graphics\icons\computer\disk07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk08_ico" = 1,Common\Graphics\icons\computer\disk08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk09_ico" = 1,Common\Graphics\icons\computer\disk09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk10_ico" = 1,Common\Graphics\icons\computer\disk10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk11_ico" = 1,Common\Graphics\icons\computer\disk11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk12_ico" = 1,Common\Graphics\icons\computer\disk12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk13_ico" = 1,Common\Graphics\icons\computer\disk13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk14_ico" = 1,Common\Graphics\icons\computer\disk14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disk15_ico" = 1,Common\Graphics\icons\computer\disk15.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disks01_ico" = 1,Common\Graphics\icons\computer\disks01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disks02_ico" = 1,Common\Graphics\icons\computer\disks02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disks03_ico" = 1,Common\Graphics\icons\computer\disks03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"disks04_ico" = 1,Common\Graphics\icons\computer\disks04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drive01_ico" = 1,Common\Graphics\icons\computer\drive01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drive02_ico" = 1,Common\Graphics\icons\computer\drive02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"form_ico_1" = 1,Common\Graphics\icons\computer\form.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"info_ico" = 1,Common\Graphics\icons\computer\info.ico,,,,1998-04-24,,,OLDER,,,,,,,1846,,,,, +"key01_ico" = 1,Common\Graphics\icons\computer\key01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"key02_ico" = 1,Common\Graphics\icons\computer\key02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"key03_ico" = 1,Common\Graphics\icons\computer\key03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"key04_ico" = 1,Common\Graphics\icons\computer\key04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"key05_ico" = 1,Common\Graphics\icons\computer\key05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"key06_ico" = 1,Common\Graphics\icons\computer\key06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"key07_ico" = 1,Common\Graphics\icons\computer\key07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"keybrd01_ico" = 1,Common\Graphics\icons\computer\keybrd01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"keybrd02_ico" = 1,Common\Graphics\icons\computer\keybrd02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"keybrd03_ico" = 1,Common\Graphics\icons\computer\keybrd03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"keys01_ico" = 1,Common\Graphics\icons\computer\keys01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"keys02_ico" = 1,Common\Graphics\icons\computer\keys02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"keys03_ico" = 1,Common\Graphics\icons\computer\keys03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mac01_ico" = 1,Common\Graphics\icons\computer\mac01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mac02_ico" = 1,Common\Graphics\icons\computer\mac02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mac03_ico" = 1,Common\Graphics\icons\computer\mac03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mac04_ico" = 1,Common\Graphics\icons\computer\mac04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mdichild_ico" = 1,Common\Graphics\icons\computer\mdichild.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mdiparnt_ico" = 1,Common\Graphics\icons\computer\mdiparnt.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"monitr01_ico" = 1,Common\Graphics\icons\computer\monitr01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mouse01_ico" = 1,Common\Graphics\icons\computer\mouse01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mouse02_ico" = 1,Common\Graphics\icons\computer\mouse02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mouse03_ico" = 1,Common\Graphics\icons\computer\mouse03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mouse04_ico" = 1,Common\Graphics\icons\computer\mouse04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"msgbox01_ico" = 1,Common\Graphics\icons\computer\msgbox01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"msgbox02_ico" = 1,Common\Graphics\icons\computer\msgbox02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"msgbox03_ico" = 1,Common\Graphics\icons\computer\msgbox03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"msgbox04_ico" = 1,Common\Graphics\icons\computer\msgbox04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pc01_ico" = 1,Common\Graphics\icons\computer\pc01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pc02_ico" = 1,Common\Graphics\icons\computer\pc02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pc03_ico" = 1,Common\Graphics\icons\computer\pc03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pc04_ico" = 1,Common\Graphics\icons\computer\pc04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trash01_ico" = 1,Common\Graphics\icons\computer\trash01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trash02a_ico" = 1,Common\Graphics\icons\computer\trash02a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trash02b_ico" = 1,Common\Graphics\icons\computer\trash02b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trash03_ico" = 1,Common\Graphics\icons\computer\trash03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trash04a_ico" = 1,Common\Graphics\icons\computer\trash04a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trash04b_ico" = 1,Common\Graphics\icons\computer\trash04b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"w95mbx01_ico" = 1,Common\Graphics\icons\computer\w95mbx01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"w95mbx02_ico" = 1,Common\Graphics\icons\computer\w95mbx02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"w95mbx03_ico" = 1,Common\Graphics\icons\computer\w95mbx03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"w95mbx04_ico" = 1,Common\Graphics\icons\computer\w95mbx04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Drag/Drop] +"drag1pg_ico" = 1,Common\Graphics\icons\dragdrop\drag1pg.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drag2pg_ico" = 1,Common\Graphics\icons\dragdrop\drag2pg.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drag3pg_ico" = 1,Common\Graphics\icons\dragdrop\drag3pg.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"dragfldr_ico" = 1,Common\Graphics\icons\dragdrop\dragfldr.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drop1pg_ico" = 1,Common\Graphics\icons\dragdrop\drop1pg.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"dropfldr_ico" = 1,Common\Graphics\icons\dragdrop\dropfldr.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Elements] +"cloud_ico" = 1,Common\Graphics\icons\elements\cloud.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"earth_ico" = 1,Common\Graphics\icons\elements\earth.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"fire_ico" = 1,Common\Graphics\icons\elements\fire.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"litening_ico" = 1,Common\Graphics\icons\elements\litening.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon01_ico" = 1,Common\Graphics\icons\elements\moon01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon02_ico" = 1,Common\Graphics\icons\elements\moon02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon03_ico" = 1,Common\Graphics\icons\elements\moon03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon04_ico" = 1,Common\Graphics\icons\elements\moon04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon05_ico" = 1,Common\Graphics\icons\elements\moon05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon06_ico" = 1,Common\Graphics\icons\elements\moon06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon07_ico" = 1,Common\Graphics\icons\elements\moon07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"moon08_ico" = 1,Common\Graphics\icons\elements\moon08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"rain_ico" = 1,Common\Graphics\icons\elements\rain.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"snow_ico" = 1,Common\Graphics\icons\elements\snow.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"sun_ico" = 1,Common\Graphics\icons\elements\sun.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"water_ico" = 1,Common\Graphics\icons\elements\water.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Flags] +"ctrcan_ico" = 1,Common\Graphics\icons\flags\ctrcan.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrfran_ico" = 1,Common\Graphics\icons\flags\ctrfran.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrgerm_ico" = 1,Common\Graphics\icons\flags\ctrgerm.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctritaly_ico" = 1,Common\Graphics\icons\flags\ctritaly.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrjapan_ico" = 1,Common\Graphics\icons\flags\ctrjapan.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrmex_ico" = 1,Common\Graphics\icons\flags\ctrmex.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrskor_ico" = 1,Common\Graphics\icons\flags\ctrskor.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrspain_ico" = 1,Common\Graphics\icons\flags\ctrspain.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctruk_ico" = 1,Common\Graphics\icons\flags\ctruk.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrusa_ico" = 1,Common\Graphics\icons\flags\ctrusa.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgastrl_ico" = 1,Common\Graphics\icons\flags\flgastrl.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgausta_ico" = 1,Common\Graphics\icons\flags\flgausta.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgbelg_ico" = 1,Common\Graphics\icons\flags\flgbelg.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgbrazl_ico" = 1,Common\Graphics\icons\flags\flgbrazl.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgcan_ico" = 1,Common\Graphics\icons\flags\flgcan.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgden_ico" = 1,Common\Graphics\icons\flags\flgden.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgfin_ico" = 1,Common\Graphics\icons\flags\flgfin.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgfran_ico" = 1,Common\Graphics\icons\flags\flgfran.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flggerm_ico" = 1,Common\Graphics\icons\flags\flggerm.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgirel_ico" = 1,Common\Graphics\icons\flags\flgirel.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgitaly_ico" = 1,Common\Graphics\icons\flags\flgitaly.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgjapan_ico" = 1,Common\Graphics\icons\flags\flgjapan.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgmex_ico" = 1,Common\Graphics\icons\flags\flgmex.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgneth_ico" = 1,Common\Graphics\icons\flags\flgneth.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgnorw_ico" = 1,Common\Graphics\icons\flags\flgnorw.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgnz_ico" = 1,Common\Graphics\icons\flags\flgnz.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgport_ico" = 1,Common\Graphics\icons\flags\flgport.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgrsa_ico" = 1,Common\Graphics\icons\flags\flgrsa.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgrus_ico" = 1,Common\Graphics\icons\flags\flgrus.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgskor_ico" = 1,Common\Graphics\icons\flags\flgskor.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgspain_ico" = 1,Common\Graphics\icons\flags\flgspain.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgswed_ico" = 1,Common\Graphics\icons\flags\flgswed.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgswitz_ico" = 1,Common\Graphics\icons\flags\flgswitz.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgturk_ico" = 1,Common\Graphics\icons\flags\flgturk.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flguk_ico" = 1,Common\Graphics\icons\flags\flguk.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgusa01_ico" = 1,Common\Graphics\icons\flags\flgusa01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"flgusa02_ico" = 1,Common\Graphics\icons\flags\flgusa02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Industry] +"bicycle_ico" = 1,Common\Graphics\icons\industry\bicycle.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"cars_ico" = 1,Common\Graphics\icons\industry\cars.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"factory_ico" = 1,Common\Graphics\icons\industry\factory.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"gaspump_ico" = 1,Common\Graphics\icons\industry\gaspump.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"hammer_ico" = 1,Common\Graphics\icons\industry\hammer.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"plane_ico" = 1,Common\Graphics\icons\industry\plane.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"rocket_ico" = 1,Common\Graphics\icons\industry\rocket.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"sinewave_ico" = 1,Common\Graphics\icons\industry\sinewave.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"wrench_ico_1" = 1,Common\Graphics\icons\industry\wrench.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Mail] +"mail01a_ico" = 1,Common\Graphics\icons\mail\mail01a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail01b_ico" = 1,Common\Graphics\icons\mail\mail01b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail02a_ico" = 1,Common\Graphics\icons\mail\mail02a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail02b_ico" = 1,Common\Graphics\icons\mail\mail02b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail03_ico_1" = 1,Common\Graphics\icons\mail\mail03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail04_ico" = 1,Common\Graphics\icons\mail\mail04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail05a_ico" = 1,Common\Graphics\icons\mail\mail05a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail05b_ico" = 1,Common\Graphics\icons\mail\mail05b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail06_ico" = 1,Common\Graphics\icons\mail\mail06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail07_ico" = 1,Common\Graphics\icons\mail\mail07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail08_ico" = 1,Common\Graphics\icons\mail\mail08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail09_ico" = 1,Common\Graphics\icons\mail\mail09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail10_ico" = 1,Common\Graphics\icons\mail\mail10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail11_ico" = 1,Common\Graphics\icons\mail\mail11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail12_ico" = 1,Common\Graphics\icons\mail\mail12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail13_ico" = 1,Common\Graphics\icons\mail\mail13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail14_ico" = 1,Common\Graphics\icons\mail\mail14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail15_ico" = 1,Common\Graphics\icons\mail\mail15.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail16a_ico" = 1,Common\Graphics\icons\mail\mail16a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail16b_ico" = 1,Common\Graphics\icons\mail\mail16b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail17_ico" = 1,Common\Graphics\icons\mail\mail17.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail18_ico" = 1,Common\Graphics\icons\mail\mail18.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail19a_ico" = 1,Common\Graphics\icons\mail\mail19a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail19b_ico" = 1,Common\Graphics\icons\mail\mail19b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mail20_ico" = 1,Common\Graphics\icons\mail\mail20.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"mail21a_ico" = 1,Common\Graphics\icons\mail\mail21a.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"mail21b_ico" = 1,Common\Graphics\icons\mail\mail21b.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, + +[I-Misc] +"binoculr_ico" = 1,Common\Graphics\icons\misc\binoculr.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"bridge_ico" = 1,Common\Graphics\icons\misc\bridge.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"bullseye_ico" = 1,Common\Graphics\icons\misc\bullseye.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"camera_ico_1" = 1,Common\Graphics\icons\misc\camera.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"checkmrk_ico" = 1,Common\Graphics\icons\misc\checkmrk.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"circ1_ico" = 1,Common\Graphics\icons\misc\circ1.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"circ2_ico" = 1,Common\Graphics\icons\misc\circ2.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"circ3_ico" = 1,Common\Graphics\icons\misc\circ3.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"clock01_ico" = 1,Common\Graphics\icons\misc\clock01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clock02_ico" = 1,Common\Graphics\icons\misc\clock02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clock03_ico" = 1,Common\Graphics\icons\misc\clock03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clock04_ico" = 1,Common\Graphics\icons\misc\clock04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clock05_ico" = 1,Common\Graphics\icons\misc\clock05.ico,,,,1998-04-24,,,OLDER,,,,,,,1846,,,,, +"clock06_ico" = 1,Common\Graphics\icons\misc\clock06.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"ear_ico" = 1,Common\Graphics\icons\misc\ear.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"exclem_ico" = 1,Common\Graphics\icons\misc\exclem.ico,,,,1998-04-24,,,OLDER,,,,,,,1846,,,,, +"eye_ico" = 1,Common\Graphics\icons\misc\eye.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"face01_ico" = 1,Common\Graphics\icons\misc\face01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"face02_ico" = 1,Common\Graphics\icons\misc\face02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"face03_ico" = 1,Common\Graphics\icons\misc\face03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"face04_ico" = 1,Common\Graphics\icons\misc\face04.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"face05_ico" = 1,Common\Graphics\icons\misc\face05.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"house_ico" = 1,Common\Graphics\icons\misc\house.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"lightoff_ico" = 1,Common\Graphics\icons\misc\lightoff.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"lighton_ico" = 1,Common\Graphics\icons\misc\lighton.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mike_ico" = 1,Common\Graphics\icons\misc\mike.ico,,,,1998-04-24,,,OLDER,,,,,,,1086,,,,, +"misc01_ico" = 1,Common\Graphics\icons\misc\misc01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc02_ico" = 1,Common\Graphics\icons\misc\misc02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc03_ico" = 1,Common\Graphics\icons\misc\misc03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc04_ico" = 1,Common\Graphics\icons\misc\misc04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc05_ico" = 1,Common\Graphics\icons\misc\misc05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc06_ico" = 1,Common\Graphics\icons\misc\misc06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc07_ico" = 1,Common\Graphics\icons\misc\misc07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc08_ico" = 1,Common\Graphics\icons\misc\misc08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc09_ico" = 1,Common\Graphics\icons\misc\misc09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc10_ico" = 1,Common\Graphics\icons\misc\misc10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc11_ico" = 1,Common\Graphics\icons\misc\misc11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc12_ico" = 1,Common\Graphics\icons\misc\misc12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc13_ico" = 1,Common\Graphics\icons\misc\misc13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc14_ico" = 1,Common\Graphics\icons\misc\misc14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc15_ico" = 1,Common\Graphics\icons\misc\misc15.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc16a_ico" = 1,Common\Graphics\icons\misc\misc16a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc16b_ico" = 1,Common\Graphics\icons\misc\misc16b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc17a_ico" = 1,Common\Graphics\icons\misc\misc17a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc17b_ico" = 1,Common\Graphics\icons\misc\misc17b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc18_ico" = 1,Common\Graphics\icons\misc\misc18.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc19_ico" = 1,Common\Graphics\icons\misc\misc19.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc20_ico" = 1,Common\Graphics\icons\misc\misc20.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc21_ico" = 1,Common\Graphics\icons\misc\misc21.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc22_ico" = 1,Common\Graphics\icons\misc\misc22.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc23_ico" = 1,Common\Graphics\icons\misc\misc23.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc24_ico" = 1,Common\Graphics\icons\misc\misc24.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc25_ico" = 1,Common\Graphics\icons\misc\misc25.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc26_ico" = 1,Common\Graphics\icons\misc\misc26.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc27_ico" = 1,Common\Graphics\icons\misc\misc27.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc28_ico" = 1,Common\Graphics\icons\misc\misc28.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc29_ico" = 1,Common\Graphics\icons\misc\misc29.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc30_ico" = 1,Common\Graphics\icons\misc\misc30.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc31_ico_1" = 1,Common\Graphics\icons\misc\misc31.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc32_ico" = 1,Common\Graphics\icons\misc\misc32.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc33_ico" = 1,Common\Graphics\icons\misc\misc33.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc34_ico" = 1,Common\Graphics\icons\misc\misc34.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc35_ico" = 1,Common\Graphics\icons\misc\misc35.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc36_ico" = 1,Common\Graphics\icons\misc\misc36.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc37_ico" = 1,Common\Graphics\icons\misc\misc37.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc38_ico_1" = 1,Common\Graphics\icons\misc\misc38.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc39a_ico" = 1,Common\Graphics\icons\misc\misc39a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc39b_ico" = 1,Common\Graphics\icons\misc\misc39b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc40_ico" = 1,Common\Graphics\icons\misc\misc40.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc41_ico" = 1,Common\Graphics\icons\misc\misc41.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc42_ico" = 1,Common\Graphics\icons\misc\misc42.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc43_ico" = 1,Common\Graphics\icons\misc\misc43.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"misc44_ico" = 1,Common\Graphics\icons\misc\misc44.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"question_ico" = 1,Common\Graphics\icons\misc\question.ico,,,,1998-04-24,,,OLDER,,,,,,,1846,,,,, +"secur01a_ico" = 1,Common\Graphics\icons\misc\secur01a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur01b_ico" = 1,Common\Graphics\icons\misc\secur01b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur02a_ico" = 1,Common\Graphics\icons\misc\secur02a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur02b_ico" = 1,Common\Graphics\icons\misc\secur02b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur03_ico" = 1,Common\Graphics\icons\misc\secur03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur04_ico" = 1,Common\Graphics\icons\misc\secur04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur05_ico" = 1,Common\Graphics\icons\misc\secur05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur06_ico" = 1,Common\Graphics\icons\misc\secur06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur07_ico" = 1,Common\Graphics\icons\misc\secur07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"secur08_ico" = 1,Common\Graphics\icons\misc\secur08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"timer01_ico" = 1,Common\Graphics\icons\misc\timer01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"volume01_ico_2" = 1,Common\Graphics\icons\misc\volume01.ico,,,,1998-04-24,,,OLDER,,,,,,,1086,,,,, +"volume02_ico" = 1,Common\Graphics\icons\misc\volume02.ico,,,,1998-04-24,,,OLDER,,,,,,,1086,,,,, +"watch01_ico" = 1,Common\Graphics\icons\misc\watch01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"watch02_ico" = 1,Common\Graphics\icons\misc\watch02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Office] +"clip01_ico" = 1,Common\Graphics\icons\office\clip01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clip02_ico" = 1,Common\Graphics\icons\office\clip02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clip03_ico" = 1,Common\Graphics\icons\office\clip03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clip04_ico" = 1,Common\Graphics\icons\office\clip04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clip05_ico" = 1,Common\Graphics\icons\office\clip05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clip06_ico" = 1,Common\Graphics\icons\office\clip06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clip07_ico" = 1,Common\Graphics\icons\office\clip07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clip08_ico" = 1,Common\Graphics\icons\office\clip08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle01_ico_1" = 1,Common\Graphics\icons\office\crdfle01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle02_ico" = 1,Common\Graphics\icons\office\crdfle02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle03_ico" = 1,Common\Graphics\icons\office\crdfle03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle04_ico" = 1,Common\Graphics\icons\office\crdfle04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle05_ico" = 1,Common\Graphics\icons\office\crdfle05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle06_ico" = 1,Common\Graphics\icons\office\crdfle06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle07_ico" = 1,Common\Graphics\icons\office\crdfle07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle08_ico" = 1,Common\Graphics\icons\office\crdfle08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle09_ico" = 1,Common\Graphics\icons\office\crdfle09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle10_ico" = 1,Common\Graphics\icons\office\crdfle10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle11_ico" = 1,Common\Graphics\icons\office\crdfle11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle12_ico" = 1,Common\Graphics\icons\office\crdfle12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"crdfle13_ico" = 1,Common\Graphics\icons\office\crdfle13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files01a_ico" = 1,Common\Graphics\icons\office\files01a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files01b_ico" = 1,Common\Graphics\icons\office\files01b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files02a_ico" = 1,Common\Graphics\icons\office\files02a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files02b_ico" = 1,Common\Graphics\icons\office\files02b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files03a_ico" = 1,Common\Graphics\icons\office\files03a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files03b_ico" = 1,Common\Graphics\icons\office\files03b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files04_ico" = 1,Common\Graphics\icons\office\files04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files05a_ico" = 1,Common\Graphics\icons\office\files05a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files05b_ico" = 1,Common\Graphics\icons\office\files05b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files06_ico" = 1,Common\Graphics\icons\office\files06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files07_ico" = 1,Common\Graphics\icons\office\files07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files08_ico" = 1,Common\Graphics\icons\office\files08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files09_ico" = 1,Common\Graphics\icons\office\files09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"files10_ico" = 1,Common\Graphics\icons\office\files10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"folder01_ico" = 1,Common\Graphics\icons\office\folder01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"folder02_ico" = 1,Common\Graphics\icons\office\folder02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"folder03_ico" = 1,Common\Graphics\icons\office\folder03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"folder04_ico" = 1,Common\Graphics\icons\office\folder04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"folder05_ico" = 1,Common\Graphics\icons\office\folder05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"folder06_ico" = 1,Common\Graphics\icons\office\folder06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"foldrs01_ico" = 1,Common\Graphics\icons\office\foldrs01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"foldrs02_ico" = 1,Common\Graphics\icons\office\foldrs02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph01_ico" = 1,Common\Graphics\icons\office\graph01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph02_ico" = 1,Common\Graphics\icons\office\graph02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph03_ico" = 1,Common\Graphics\icons\office\graph03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph04_ico" = 1,Common\Graphics\icons\office\graph04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph05_ico" = 1,Common\Graphics\icons\office\graph05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph06_ico" = 1,Common\Graphics\icons\office\graph06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph07_ico" = 1,Common\Graphics\icons\office\graph07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph08_ico" = 1,Common\Graphics\icons\office\graph08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph09_ico" = 1,Common\Graphics\icons\office\graph09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph10_ico" = 1,Common\Graphics\icons\office\graph10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph11_ico" = 1,Common\Graphics\icons\office\graph11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph12_ico" = 1,Common\Graphics\icons\office\graph12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph13_ico" = 1,Common\Graphics\icons\office\graph13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph14_ico" = 1,Common\Graphics\icons\office\graph14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"graph15_ico" = 1,Common\Graphics\icons\office\graph15.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"graph16_ico" = 1,Common\Graphics\icons\office\graph16.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"labels_ico_1" = 1,Common\Graphics\icons\office\labels.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"rulers_ico" = 1,Common\Graphics\icons\office\rulers.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Traffic] +"trffc01_ico" = 1,Common\Graphics\icons\traffic\trffc01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc02_ico" = 1,Common\Graphics\icons\traffic\trffc02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc03_ico" = 1,Common\Graphics\icons\traffic\trffc03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc04_ico" = 1,Common\Graphics\icons\traffic\trffc04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc05_ico" = 1,Common\Graphics\icons\traffic\trffc05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc06_ico" = 1,Common\Graphics\icons\traffic\trffc06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc07_ico" = 1,Common\Graphics\icons\traffic\trffc07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc08_ico" = 1,Common\Graphics\icons\traffic\trffc08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc09_ico" = 1,Common\Graphics\icons\traffic\trffc09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc10a_ico" = 1,Common\Graphics\icons\traffic\trffc10a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc10b_ico" = 1,Common\Graphics\icons\traffic\trffc10b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc10c_ico" = 1,Common\Graphics\icons\traffic\trffc10c.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc11_ico" = 1,Common\Graphics\icons\traffic\trffc11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc12_ico" = 1,Common\Graphics\icons\traffic\trffc12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc13_ico" = 1,Common\Graphics\icons\traffic\trffc13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc14_ico" = 1,Common\Graphics\icons\traffic\trffc14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc15_ico" = 1,Common\Graphics\icons\traffic\trffc15.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc16_ico" = 1,Common\Graphics\icons\traffic\trffc16.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc17_ico" = 1,Common\Graphics\icons\traffic\trffc17.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc18a_ico" = 1,Common\Graphics\icons\traffic\trffc18a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc18b_ico" = 1,Common\Graphics\icons\traffic\trffc18b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc19a_ico" = 1,Common\Graphics\icons\traffic\trffc19a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc19b_ico" = 1,Common\Graphics\icons\traffic\trffc19b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"trffc20_ico" = 1,Common\Graphics\icons\traffic\trffc20.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[I-Writing] +"book01a_ico" = 1,Common\Graphics\icons\writing\book01a.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"book01b_ico" = 1,Common\Graphics\icons\writing\book01b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"book02_ico" = 1,Common\Graphics\icons\writing\book02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"book03_ico" = 1,Common\Graphics\icons\writing\book03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"book04_ico" = 1,Common\Graphics\icons\writing\book04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"book05_ico" = 1,Common\Graphics\icons\writing\book05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"book06_ico" = 1,Common\Graphics\icons\writing\book06.ico,,,,1998-04-24,,,OLDER,,,,,,,766,,,,, +"books01_ico" = 1,Common\Graphics\icons\writing\books01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"books02_ico" = 1,Common\Graphics\icons\writing\books02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"books03_ico" = 1,Common\Graphics\icons\writing\books03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"books04_ico" = 1,Common\Graphics\icons\writing\books04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"books05_ico" = 1,Common\Graphics\icons\writing\books05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"erase01_ico" = 1,Common\Graphics\icons\writing\erase01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"erase02_ico" = 1,Common\Graphics\icons\writing\erase02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"font01_ico" = 1,Common\Graphics\icons\writing\font01.ico,,,,1998-04-24,,,OLDER,,,,,,,1846,,,,, +"font02_ico" = 1,Common\Graphics\icons\writing\font02.ico,,,,1998-04-24,,,OLDER,,,,,,,1086,,,,, +"landscap_ico" = 1,Common\Graphics\icons\writing\landscap.ico,,,,1998-04-24,,,OLDER,,,,,,,1846,,,,, +"note01_ico" = 1,Common\Graphics\icons\writing\note01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note02_ico" = 1,Common\Graphics\icons\writing\note02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note03_ico" = 1,Common\Graphics\icons\writing\note03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note04_ico" = 1,Common\Graphics\icons\writing\note04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note05_ico_1" = 1,Common\Graphics\icons\writing\note05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note06_ico" = 1,Common\Graphics\icons\writing\note06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note07_ico" = 1,Common\Graphics\icons\writing\note07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note08_ico" = 1,Common\Graphics\icons\writing\note08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note09_ico" = 1,Common\Graphics\icons\writing\note09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note10_ico" = 1,Common\Graphics\icons\writing\note10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note10b_ico" = 1,Common\Graphics\icons\writing\note10b.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note10c_ico" = 1,Common\Graphics\icons\writing\note10c.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note11_ico" = 1,Common\Graphics\icons\writing\note11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note12_ico" = 1,Common\Graphics\icons\writing\note12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note13_ico" = 1,Common\Graphics\icons\writing\note13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note14_ico" = 1,Common\Graphics\icons\writing\note14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note15_ico" = 1,Common\Graphics\icons\writing\note15.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note16_ico" = 1,Common\Graphics\icons\writing\note16.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note17_ico" = 1,Common\Graphics\icons\writing\note17.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"note18_ico" = 1,Common\Graphics\icons\writing\note18.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pen01_ico" = 1,Common\Graphics\icons\writing\pen01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pen02_ico" = 1,Common\Graphics\icons\writing\pen02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pen03_ico" = 1,Common\Graphics\icons\writing\pen03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pen04_ico" = 1,Common\Graphics\icons\writing\pen04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pen05_ico" = 1,Common\Graphics\icons\writing\pen05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pen06_ico" = 1,Common\Graphics\icons\writing\pen06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pen07_ico" = 1,Common\Graphics\icons\writing\pen07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil01_ico" = 1,Common\Graphics\icons\writing\pencil01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil02_ico" = 1,Common\Graphics\icons\writing\pencil02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil03_ico" = 1,Common\Graphics\icons\writing\pencil03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil04_ico" = 1,Common\Graphics\icons\writing\pencil04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil05_ico" = 1,Common\Graphics\icons\writing\pencil05.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil06_ico" = 1,Common\Graphics\icons\writing\pencil06.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil07_ico" = 1,Common\Graphics\icons\writing\pencil07.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil08_ico" = 1,Common\Graphics\icons\writing\pencil08.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil09_ico" = 1,Common\Graphics\icons\writing\pencil09.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil10_ico" = 1,Common\Graphics\icons\writing\pencil10.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil11_ico" = 1,Common\Graphics\icons\writing\pencil11.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil12_ico" = 1,Common\Graphics\icons\writing\pencil12.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil13_ico" = 1,Common\Graphics\icons\writing\pencil13.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pencil14_ico" = 1,Common\Graphics\icons\writing\pencil14.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pens01_ico" = 1,Common\Graphics\icons\writing\pens01.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pens02_ico" = 1,Common\Graphics\icons\writing\pens02.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pens03_ico" = 1,Common\Graphics\icons\writing\pens03.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"pens04_ico" = 1,Common\Graphics\icons\writing\pens04.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"portrait_ico" = 1,Common\Graphics\icons\writing\portrait.ico,,,,1998-04-24,,,OLDER,,,,,,,1846,,,,, + +[I-Win95] +"35floppy_ico" = 1,Common\Graphics\icons\win95\35floppy.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"525flop1_ico" = 1,Common\Graphics\icons\win95\525flop1.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"audio_ico" = 1,Common\Graphics\icons\win95\audio.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"cddrive_ico" = 1,Common\Graphics\icons\win95\cddrive.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"clsdfold_ico" = 1,Common\Graphics\icons\win95\clsdfold.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"ctrpanel_ico" = 1,Common\Graphics\icons\win95\ctrpanel.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"desktop_ico_1" = 1,Common\Graphics\icons\win95\desktop.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drive_ico" = 1,Common\Graphics\icons\win95\drive.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drivedsc_ico" = 1,Common\Graphics\icons\win95\drivedsc.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"drivenet_ico" = 1,Common\Graphics\icons\win95\drivenet.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"entirnet_ico" = 1,Common\Graphics\icons\win95\entirnet.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"explorer_ico" = 1,Common\Graphics\icons\win95\explorer.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"mycomp_ico" = 1,Common\Graphics\icons\win95\mycomp.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"nethood_ico" = 1,Common\Graphics\icons\win95\nethood.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"openfold_ico" = 1,Common\Graphics\icons\win95\openfold.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"printfld_ico" = 1,Common\Graphics\icons\win95\printfld.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"recyfull_ico" = 1,Common\Graphics\icons\win95\recyfull.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"remteacc_ico" = 1,Common\Graphics\icons\win95\remteacc.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, +"waste_ico" = 1,Common\Graphics\icons\win95\waste.ico,,,,1998-04-24,,,OLDER,,,,,,,1078,,,,, + +[AVI - Tag] +"blur16_avi" = 1,Common\Graphics\AVIs\blur16.avi,,,,1998-04-24,,,OLDER,,,,,,,280828,,,,, + +[AVI] +"blur24_avi" = 1,Common\Graphics\AVIs\blur24.avi,,,,1998-04-24,,,OLDER,,,,,,,411900,,,,, +"blur8_avi" = 1,Common\Graphics\AVIs\blur8.avi,,,,1998-04-24,,,OLDER,,,,,,,149756,,,,, +"cineapk_avi" = 1,Common\Graphics\AVIs\cineapk.avi,,,,1998-04-24,,,OLDER,,,,,,,30444,,,,, +"count16_avi" = 1,Common\Graphics\AVIs\count16.avi,,,,1998-04-24,,,OLDER,,,,,,,350524,,,,, +"count24_avi" = 1,Common\Graphics\AVIs\count24.avi,,,,1998-04-24,,,OLDER,,,,,,,514364,,,,, +"count8_avi" = 1,Common\Graphics\AVIs\count8.avi,,,,1998-04-24,,,OLDER,,,,,,,186684,,,,, +"count8r_avi" = 1,Common\Graphics\AVIs\count8r.avi,,,,1998-04-24,,,OLDER,,,,,,,24892,,,,, +"downlo~1_avi" = 1,Common\Graphics\AVIs\downlo~1.avi,,,,1998-04-24,,,OLDER,,,,,,,5434,,,,, +"download_avi" = 1,Common\Graphics\AVIs\download.avi,,,,1998-04-24,,,OLDER,,,,,,,6446,,,,, +"drillrle_avi" = 1,Common\Graphics\AVIs\drillrle.avi,,,,1998-04-24,,,OLDER,,,,,,,29110,,,,, +"filecopy_avi" = 1,Common\Graphics\AVIs\filecopy.avi,,,,1998-04-24,,,OLDER,,,,,,,9484,,,,, +"filedel_avi" = 1,Common\Graphics\AVIs\filedel.avi,,,,1998-04-24,,,OLDER,,,,,,,12058,,,,, +"filedelr_avi" = 1,Common\Graphics\AVIs\filedelr.avi,,,,1998-04-24,,,OLDER,,,,,,,12722,,,,, +"filemove_avi" = 1,Common\Graphics\AVIs\filemove.avi,,,,1998-04-24,,,OLDER,,,,,,,19248,,,,, +"filenuke_avi" = 1,Common\Graphics\AVIs\filenuke.avi,,,,1998-04-24,,,OLDER,,,,,,,12432,,,,, +"findcomp_avi" = 1,Common\Graphics\AVIs\findcomp.avi,,,,1998-04-24,,,OLDER,,,,,,,6546,,,,, +"findfile_avi" = 1,Common\Graphics\AVIs\findfile.avi,,,,1998-04-24,,,OLDER,,,,,,,49884,,,,, +"search_avi_1" = 1,Common\Graphics\AVIs\search.avi,,,,1998-04-24,,,OLDER,,,,,,,20796,,,,, + +[viEditor - TriEdit] +"triedit_dll" = 1,Shared\Triedit\triedit.dll,,,,1998-07-07,,1033,OLDER,,,,,,,151824,,,,6.0.0.8167, + +[VB Page Designer] +"htmutil_dll" = 1,os\system\htmutil.dll,,,,1998-07-07,,2052,OLDER,,,,,,,182226,,,,6.0.0.8152, +"mshtmpgd_dll" = 1,os\system\mshtmpgd.dll,,,,1998-06-18,,1033,OLDER,,,,,,,221184,,,,6.0.81.69, +"mshtmpgr_dll" = 1,os\system\mshtmpgr.dll,,,,1998-06-18,,1033,OLDER,,,,,,,102400,,,,6.0.81.69, +"mshtmpgr_dep" = 1,os\system\mshtmpgr.dep,,,,1998-06-18,,,OLDER,,,,,,,2488,,,,, +"htmpdchs_dll" = 1,os\system\htmpdchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,46592,,,,6.0.81.63, +"htmprchs_dll" = 1,os\system\htmprchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,46592,,,,6.0.81.63, + +[VB Control/Report] +"msdbrpt_dll" = 1,os\system\msdbrpt.dll,,,,1998-06-18,,1033,OLDER,,,,,,,311296,SYSTEM,,,6.0.81.69, +"msdbrpt_srg_1" = 1,os\system\msdbrpt.srg,,,,1998-05-07,,,OLDER,,,,,,,113,,,,, +"msdbrptr_dll" = 1,os\system\msdbrptr.dll,,,,1998-06-18,,1033,OLDER,,,,,,,299008,SYSTEM,,,6.0.81.69, +"msdbrptr_dep" = 1,os\system\msdbrptr.dep,,,,1998-06-18,,,OLDER,,,,,,,2547,,,,, +"dbrptchs_dll" = 1,os\system\dbrptchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,47104,,,,6.0.81.63, +"dbrprchs_dll" = 1,os\system\dbrprchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,30208,,,,6.0.81.63, + +[VB SQL Debugging] +"sqlparse_dll" = 1,os\system\sqlparse.dll,,,,1998-06-18,,1033,OLDER,,,,,,,118784,SYSTEM,,,5.0.81.69, +"sqlpachs_dll" = 1,os\system\sqlpachs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,5120,,,,5.0.81.63, + +[VB Dataview] +"dataview_dll" = 1,VB98\dataview.dll,,,,1998-07-21,,2052,OLDER,,,,,,,544768,SYSTEM,,,6.0.0.8178, + +[VB MSINET] +"msinet_ocx" = 1,os\system\msinet.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,115016,,,,6.0.81.69, +"msinet_dep" = 1,os\system\msinet.dep,,,,1998-06-18,,,OLDER,,,,,,,2407,,,,, +"inetctls_srg" = 1,os\system\inetctls.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"inetchs_dll" = 1,os\system\inetchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,13824,,,,6.0.81.63, +"inet98_ch2" = 1,Common\Help\inet98.chi,,,,1998-06-23,,,OLDER,,,,,,,13736,,,,, +"inet98_ch1" = 1,Common\Help\inet98.chm,,,,1998-06-23,,,OLDER,,,,,,,42218,,,,, +"msinet_oca"= 1,msinet.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSWINSCK] +"mswinsck_ocx" = 1,os\system\mswinsck.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,108336,,,,6.0.81.69, +"mswinsck_dep" = 1,os\system\mswinsck.dep,,,,1998-06-18,,,OLDER,,,,,,,2465,,,,, +"winsock_srg" = 1,os\system\winsock.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"winskchs_dll" = 1,os\system\winskchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,14336,,,,6.0.81.63, +"mswnsk98_ch2" = 1,Common\Help\mswnsk98.chi,,,,1998-06-23,,,OLDER,,,,,,,14000,,,,, +"mswnsk98_ch1" = 1,Common\Help\mswnsk98.chm,,,,1998-06-23,,,OLDER,,,,,,,32592,,,,, +"mswinsck_oca"= 1,mswinsck.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSMAPI32] +"msmapi32_ocx" = 1,os\system\msmapi32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,137000,,,,6.0.81.69, +"msmapi32_dep" = 1,os\system\msmapi32.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"msmapi_srg" = 1,os\system\msmapi.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"msmpichs_dll" = 1,os\system\msmpichs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,20480,,,,6.0.81.63, +"mapi98_ch2" = 1,Common\Help\mapi98.chi,,,,1998-06-23,,,OLDER,,,,,,,16742,,,,, +"mapi98_ch1" = 1,Common\Help\mapi98.chm,,,,1998-06-23,,,OLDER,,,,,,,58150,,,,, +"msmapi32_oca"= 1,msmapi32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MCI32] +"mci32_ocx" = 1,os\system\mci32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,198456,,,,6.0.81.69, +"mci32_dep" = 1,os\system\mci32.dep,,,,1998-06-18,,,OLDER,,,,,,,2396,,,,, +"mci_srg" = 1,os\system\mci.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"mcichs_dll" = 1,os\system\mcichs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,29696,,,,6.0.81.63, +"mmedia98_chi_1" = 1,Common\Help\mmedia98.chi,,,,1998-06-23,,,OLDER,,,,,,,17632,,,,, +"mmedia98_chm_1" = 1,Common\Help\mmedia98.chm,,,,1998-06-23,,,OLDER,,,,,,,55952,,,,, +"mci32_oca"= 1,mci32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB PICCLP32] +"picclp32_ocx" = 1,os\system\picclp32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,82744,,,,6.0.81.69, +"picclp32_dep" = 1,os\system\picclp32.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"picclip_srg" = 1,os\system\picclip.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"pcclpchs_dll" = 1,os\system\pcclpchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,8704,,,,6.0.81.63, +"picclp98_ch2" = 1,Common\Help\picclp98.chi,,,,1998-06-23,,,OLDER,,,,,,,12539,,,,, +"picclp98_ch1" = 1,Common\Help\picclp98.chm,,,,1998-06-23,,,OLDER,,,,,,,20390,,,,, +"picclp32_oca"= 1,picclp32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSCOMM32] +"mscomm32_ocx" = 1,os\system\mscomm32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,103744,,,,6.0.81.69, +"mscomm32_dep" = 1,os\system\mscomm32.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"mscomm_srg" = 1,os\system\mscomm.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"mscomchs_dll" = 1,os\system\mscomchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,12800,,,,6.0.81.63, +"comm98_chi_1" = 1,Common\Help\comm98.chi,,,,1998-06-23,,,OLDER,,,,,,,14917,,,,, +"comm98_chm_1" = 1,Common\Help\comm98.chm,,,,1998-06-23,,,OLDER,,,,,,,44598,,,,, +"mscomm32_oca"= 1,mscomm32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB MSMASK32] +"msmask32_ocx" = 1,os\system\msmask32.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,166200,,,,6.0.81.69, +"msmask32_dep" = 1,os\system\msmask32.dep,,,,1998-06-18,,,OLDER,,,,,,,2496,,,,, +"msmask_srg" = 1,os\system\msmask.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"msmskchs_dll" = 1,os\system\msmskchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,18432,,,,6.0.81.63, +"masked98_ch2" = 1,Common\Help\masked98.chi,,,,1998-06-23,,,OLDER,,,,,,,14249,,,,, +"masked98_ch1" = 1,Common\Help\masked98.chm,,,,1998-06-23,,,OLDER,,,,,,,30586,,,,, +"msmask32_oca"= 1,msmask32.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB COMCT332] +"comct332_ocx" = 1,os\system\comct332.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,369696,,,,6.0.0.8169, +"comct332_dep" = 1,os\system\comct332.dep,,,,1998-06-25,,,OLDER,,,,,,,3026,,,,, +"comct332_srg" = 1,os\system\comct332.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"cmct3chs_dll" = 1,os\system\cmct3chs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,24576,,,,6.0.0.8163, +"cmctl398_chi_1" = 1,Common\Help\cmctl398.chi,,,,1998-06-23,,,OLDER,,,,,,,14468,,,,, +"cmctl398_chm_1" = 1,Common\Help\cmctl398.chm,,,,1998-06-23,,,OLDER,,,,,,,31198,,,,, +"comct332_oca"= 1,comct332.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[Wizards] +"axdocwiz_dll" = 1,VB98\Wizards\axdocwiz.dll,,,,1998-07-28,,2052,OLDER,,,,,,,176128,,,,6.0.0.8169, +"clssbld_dll" = 1,VB98\Wizards\clssbld.dll,,,,1998-07-28,,2052,OLDER,,,,,,,622592,,,,6.0.0.8169, +"ctrlwiz_dll" = 1,VB98\Wizards\ctrlwiz.dll,,,,1998-07-28,,2052,OLDER,,,,,,,393216,,,,6.0.0.8169, +"dataform_ocx" = 1,VB98\Wizards\dataform.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,541728,,,,6.0.0.8169, +"proppgwz_dll" = 1,VB98\Wizards\proppgwz.dll,,,,1998-07-28,,2052,OLDER,,,,,,,262144,,,,6.0.0.8169, +"msdatobj_dll" = 1,VB98\Wizards\msdatobj.dll,,,,1998-08-03,,2052,OLDER,,,,,,,688128,,,,6.0.0.8169, +"wizman_dll" = 1,VB98\Wizards\wizman.dll,,,,1998-07-20,,2052,OLDER,,,,,,,118784,,,,6.0.0.8169, +"aitool_dll" = 1,VB98\Wizards\aitool.dll,,,,1998-07-20,,2052,OLDER,,,,,,,114688,,,,6.0.0.8169, +"chartwiz_ocx" = 1,VB98\Wizards\chartwiz.ocx,,,,1998-06-26,,1033,OLDER,,,,,,,147456,,,,6.0.0.8177, +"flexwiz_ocx" = 1,VB98\Wizards\flexwiz.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,226328,,,,6.0.0.8169, +"chtwzchs_dll" = 1,VB98\Wizards\chtwzchs.dll,,,,1998-07-28,,2052,OLDER,,,,,,,28672,,,,6.0.0.8163, +"flxwzchs_dll" = 1,VB98\Wizards\flxwzchs.dll,,,,1998-07-20,,2052,OLDER,,,,,,,61440,,,,6.0.0.8163, +"dfwizchs_dll" = 1,VB98\Wizards\dfwizchs.dll,,,,1998-07-20,,2052,OLDER,,,,,,,94208,,,,6.0.0.8163, +"dataform_oca"= 1,dataform.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"chartwiz_oca"= 1,chartwiz.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"flexwiz_oca"= 1,Flexwiz.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[Wizards Template Files] +"confirm_frm_1" = 1,VB98\wizards\template\confirm.frm,,,,1998-04-24,,,OLDER,,,,,,,3283,,,,, +"confirm_frx_1" = 1,VB98\wizards\template\confirm.frx,,,,1998-05-06,,,OLDER,,,,,,,1102,,,,, +"wizard_bas_1" = 1,VB98\wizards\template\wizard.bas,,,,1998-06-22,,,OLDER,,,,,,,6841,,,,, +"wizard_cls_1" = 1,VB98\wizards\template\wizard.dca,,,,1998-05-06,,,OLDER,,,,,,,3947,,,,, +"wizard_frm_1" = 1,VB98\wizards\template\wizard.frm,,,,1998-04-24,,,OLDER,,,,,,,20544,,,,, +"wizard_frx_1" = 1,VB98\wizards\template\wizard.frx,,,,1998-05-06,,,OLDER,,,,,,,127570,,,,, +"wizard_res_1" = 1,VB98\wizards\template\wizard.res,,,,1998-05-06,,,OLDER,,,,,,,1240,,,,, +"wizard_vbp_1" = 1,VB98\wizards\template\wizard.vbp,,,,1998-04-24,,,OLDER,,,,,,,1255,,,,, +"wizmenu_bmp" = 1,VB98\wizards\template\wizard.dsr,,,,1998-04-24,,,OLDER,,,,,,,2605,,,,, + +[Templates - classes] +"vbclass_vbz" = 1,VB98\template\classes\vbclass.vbz,,,,1998-04-24,,,OLDER,,,,,,,45,,,,, +"datacon1_cls" = 1,VB98\template\classes\DataCon1.cls<߼ʹ.cls>,,,,1998-07-27,,,OLDER,,,,,,,1196,,,,, +"datasrc1_cls" = 1,VB98\template\classes\DataSrc1.cls<Դ.cls>,,,,1998-07-27,,,OLDER,,,,,,,811,,,,, + +[Templates - data] +"dataproj_vbp" = 1,VB98\template\projects\DataProj.vbp<ݹ.vbp>,,,,1998-05-19,,,OLDER,,,,,,,1841,,,,, +"dataenv_dca" = 1,VB98\template\projects\DataEnv.dca,,,,1998-05-19,,,OLDER,,,,,,,2778,,,,, +"dataenv_dsr" = 1,VB98\template\projects\DataEnv.dsr,,,,1998-05-19,,,OLDER,,,,,,,902,,,,, +"datarpt_dca" = 1,VB98\template\projects\DataRpt.dca,,,,1998-05-06,,,OLDER,,,,,,,45737,,,,, +"datarpt_dsr" = 1,VB98\template\projects\DataRpt.dsr,,,,1998-05-06,,,OLDER,,,,,,,1788,,,,, +"frmdaten_frm" = 1,VB98\template\projects\FrmDatEn.frm,,,,1998-05-06,,,OLDER,,,,,,,494,,,,, + +[Templates - proppage] +"vbprpgwz_vbz" = 1,VB98\template\proppage\vbprpgwz.vbz,,,,1998-04-24,,,OLDER,,,,,,,76,,,,, + +[Templates - userctls] +"colorful_ctl" = 1,VB98\template\userctls\colorful.ctl<ʿؼ.ctl>,,,,1998-04-24,,,OLDER,,,,,,,1418,,,,, +"events_ctl" = 1,VB98\template\userctls\events.ctl<ؼ¼.ctl>,,,,1998-04-24,,,OLDER,,,,,,,4391,,,,, +"vbctlwiz_vbz" = 1,VB98\template\userctls\vbctlwiz.vbz,,,,1998-04-24,,,OLDER,,,,,,,70,,,,, + +[Templates - userdocs] +"vbaxdcwz_vbz" = 1,VB98\template\userdocs\vbaxdcwz.vbz,,,,1998-04-24,,,OLDER,,,,,,,81,,,,, + +[Templates - IIsAppl] +"iisapp_vbp" = 1,VB98\template\projects\IISApp.vbp,,,,1998-04-24,,,OLDER,,,,,,,830,,,,, +"webclass_dsr" = 1,VB98\template\projects\WebClass.dsr,,,,1998-05-27,,,OLDER,,,,,,,1217,,,,, +"webclass_dsx" = 1,VB98\template\projects\WebClass.dsx,,,,1998-05-31,,,OLDER,,,,,,,200,,,,, +"iisapp_vbw" = 1, IISApp.vbw,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"webclass_log"= 1,Webclass.log,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB Conversation Object] +"mscnvman_dll" = 1,os\system\mswcrun.dll,,,,1998-06-18,,1033,OLDER,,,,,,,253952,SYSTEM,,,6.0.81.69, +"mswcrun_dep" = 1,os\system\mswcrun.dep,,,,1998-06-18,,,OLDER,,,,,,,2476,,,,, +"wbclsdsr_ocx" = 1,os\system\wbclsdsr.ocx,,,,1998-06-18,,1033,OLDER,,,,,,,317200,,,,6.0.81.69, +"convmchs_dll" = 1,os\system\mswcrchs.DLL,,,,1998-07-07,,2052,OLDER,,,,,,,9216,,,,6.0.81.63, +"wbcsdchs_dll" = 1,os\system\wbcsdchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,23552,,,,6.0.81.63, + +[(vsee) Repository] +"repbrowse_ex" = 1,os\msapps\repostry\repbrows.exe,,,,1998-06-10,,1033,OLDER,,,,,,,430080,,,,6.0.0.8161, +"repostry_mdb" = 1,os\msapps\repostry\repostry.mdb,,,,1998-06-10,,,NEVER,,,,,,,303104,,,,, +"repbrrc_dll" = 1,os\msapps\repostry\repbrrc.dll,,,,1998-06-30,,2052,OLDER,,,,,,,51472,,,,6.0.8161.0, +"repcdlg_dll" = 1,os\msapps\repostry\repcdlg.dll,,,,1998-06-10,,1033,OLDER,,,,,,,57344,,,,6.0.0.8161, +"repcdlg_ocx" = 1,os\msapps\repostry\repcdlg.ocx,,,,1998-06-25,,1033,OLDER,,,,,,,119848,,,,6.0.0.8161, +"repcdrc_dll" = 1,os\msapps\repostry\repcdrc.dll,,,,1998-06-30,,2052,OLDER,,,,,,,7952,,,,6.0.8163.0, +"migv2rc_dll" = 1,os\msapps\repostry\MigV2Rc.dll,,,,1998-06-30,,2052,OLDER,,,,,,,18704,,,,6.0.8161.0, +"migv2_dll" = 1,os\msapps\repostry\MigV2.dll,,,,1998-06-10,,1033,OLDER,,,,,,,229376,,,,6.0.0.8161, +"migrepv2_exe" = 1,os\msapps\repostry\MigRepV2.exe,,,,1998-06-10,,1033,OLDER,,,,,,,180224,,,,6.0.0.8161, + +[Connection Designer] +"mscondes_dll_1" = 1,os\system\mscondes.dll,,,,1998-06-18,,1033,OLDER,,,,,,,147456,,,,6.0.81.69, +"mscdrun_dll_1" = 1,os\system\Mscdrun.dll,,,,1998-06-18,,1033,OLDER,,,,,,,49152,,,,6.0.81.69, +"mscdrun_dep_1" = 1,os\system\Mscdrun.dep,,,,1998-06-18,,,OLDER,,,,,,,2545,,,,, +"conndchs_dll" = 1,os\system\conndchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,27648,,,,6.0.81.63, +"connrchs_dll" = 1,os\system\connrchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,2560,,,,6.0.81.63, + +[Automation Manager] +"autmgr32_exe_1" = 1,os\system\Autmgr32.exe,,,,1998-04-24,,2052,OLDER,,,,,,,153088,,,,5.0.37.15, +"autprx32_dll_1" = 1,os\system\Autprx32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,140288,,,,5.0.37.15, +"autmgr32_log"= 1,autmgr32.log,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB Enterprise] +"clireg32_exe_1" = 1,Common\Tools\CliReg\clireg32.exe,,,,1998-07-07,,2052,OLDER,,,,,,,42496,,,,5.0.81.68, + +[VB RACMGR] +"racmgr32_exe" = 1,os\system\Racmgr32.exe,,,,1998-07-21,,2052,OLDER,,,,,,,61440,,,,6.0.0.8169, +"racreg32_dll_1" = 1,os\system\Racreg32.dll,,,,1998-06-18,,1033,OLDER,,,,,,,32768,,,,6.0.0.8169, + +[VB TSQL] +"vbsdiadd_dll" = 1,VB98\tsql\vbsdiadd.dll,,,,1998-07-07,,2052,OLDER,,,,,,,155648,,,,6.0.0.8168, +"vbsdidb_dll" = 1,VB98\tsql\vbsdidb.dll,,,,1998-06-19,,1033,OLDER,,,,,,,311296,,,,5.0.81.70, +"vbsdicli_exe" = 1,VB98\tsql\vbsdicli.exe,,,,1998-06-18,,1033,OLDER,,,,,,,81920,,,,4.0.81.69, +"vbsdidb_srg_1" = 1,VB98\tsql\vbsdidb.srg,,,,1998-05-07,,,OLDER,,,,,,,111,,,,, +"vbsdcchs_dll" = 1,VB98\tsql\vbsdcchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,3072,,,,4.0.81.63, +"vbsdichs_dll" = 1,VB98\tsql\vbsdichs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,19456,,,,5.0.81.63, + +[MS Query] +"msqry32_exe" = 1,OS\MSApps\VBA\msqry32.exe,,,,1998-04-24,,0,OLDER,,,,,,,781072,,,,8.0.0.3826, +"qryint32_dll" = 1,OS\MSApps\VBA\Qryint32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,80144,,,,8.0.0.3826, +"dbcs3032_dll" = 1,os\system\dbcs3032.dll,,,,1998-05-31,,1033,OLDER,,,,,,,9216,SYSTEM,,,3.0.0.1011, +"msqry32_hlp" = 1,OS\MSApps\VBA\Msqry32.hlp,,,,1998-04-24,,,OLDER,,,,,,,370998,,,,, +"msqry32_cnt" = 1,OS\MSApps\VBA\Msqry32.cnt,,,,1998-04-24,,,OLDER,,,,,,,3692,,,,, +"msqry32_ftg"= 1,msqry32.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msqry32_fts"= 1,msqry32.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msqry32_gid"= 1,msqry32.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB ODKOB32] +"odkob32_dll_1" = 1,os\system\odkob32.dll,,,,1998-06-18,,1033,OLDER,,,,,,,16896,,,,4.0.81.69, + +[VB Repository AddIn] +"repvb_dll" = 1,VB98\RepVB.dll,,,,1998-06-12,,1033,OLDER,,,,,,,286480,,,,6.0.8163.0, +"repvbrc_dll" = 1,VB98\RepVbRc.dll,,,,1998-06-30,,2052,OLDER,,,,,,,30992,,,,6.0.8161.0, +"repvbtim_dll" = 1,VB98\RepVbTim.dll,,,,1998-06-10,,1033,OLDER,,,,,,,22800,,,,6.0.8161.0, + +[VM - Core1] +"config_htm" = 1,Common\Tools\VS-Ent98\vmodeler\config.htm,,,,1998-05-25,,,OLDER,,,,,,,6697,,,,, +"install_htm" = 1,Common\Tools\VS-Ent98\vmodeler\install.htm,,,,1998-06-18,,,OLDER,,,,,,,3624,,,,, +"msvm_mnu" = 1,Common\Tools\VS-Ent98\vmodeler\msvm.mnu,,,,1998-06-18,,,OLDER,,,,,,,77,,,,, +"msvmres_dll" = 1,Common\Tools\VS-Ent98\vmodeler\msvmres.dll,,,,1998-05-19,,1033,OLDER,,,,,,,779264,,,,2.0.8135.0, +"msvmss_hlp" = 1,Common\Tools\VS-Ent98\vmodeler\msvmss.hlp,,,,1998-02-02,,,OLDER,,,,,,,18928,,,,, +"msvmu_cnt" = 1,Common\Tools\VS-Ent98\vmodeler\msvmu.cnt,,,,1998-06-18,,,OLDER,,,,,,,5505,,,,, + +[VM - Core2] +"msvmu_hlp" = 1,Common\Tools\VS-Ent98\vmodeler\msvmu.hlp,,,,1998-04-29,,,OLDER,,,,,,,598687,,,,, +"qstart_cnt" = 1,Common\Tools\VS-Ent98\vmodeler\qstart.cnt,,,,1998-06-18,,,OLDER,,,,,,,2128,,,,, +"qstart_hlp" = 1,Common\Tools\VS-Ent98\vmodeler\qstart.hlp,,,,1998-03-18,,,OLDER,,,,,,,162678,,,,, +"quest_cnt" = 1,Common\Tools\VS-Ent98\vmodeler\quest.cnt,,,,1998-06-18,,,OLDER,,,,,,,713,,,,, +"quest_hlp" = 1,Common\Tools\VS-Ent98\vmodeler\quest.hlp,,,,1998-04-22,,,OLDER,,,,,,,17198,,,,, +"relnote_htm" = 1,Common\Tools\VS-Ent98\vmodeler\relnote.htm,,,,1998-05-25,,,OLDER,,,,,,,1726,,,,, +"reportgn_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\reportgn.ebx,,,,1998-04-22,,,OLDER,,,,,,,68130,,,,, + +[VM - Core3] +"rpgncomp_dot" = 1,Common\Tools\VS-Ent98\vmodeler\rpgncomp.dot,,,,1998-02-10,,,OLDER,,,,,,,16896,,,,, +"rpgnlog_dot" = 1,Common\Tools\VS-Ent98\vmodeler\rpgnlog.dot,,,,1998-02-10,,,OLDER,,,,,,,16384,,,,, +"rscncm22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscncm22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,378368,,,,2.1.0.0, +"rscncx22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscncx22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,82944,,,,2.1.0.0, +"rscndc22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscndc22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,250368,,,,2.1.0.0, +"rscndd22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscndd22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,37888,,,,2.1.0.0, +"rscndg22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscndg22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,431616,,,,2.1.0.0, +"rscnol22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscnol22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,35840,,,,2.1.0.0, +"rscnpb22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscnpb22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,121344,,,,2.1.0.0, +"rscnrn22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscnrn22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,579072,,,,2.1.0.0, + +[VM - Core4] +"rscntl22_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rscntl22.dll,,,,1998-02-02,,1033,OLDER,,,,,,,47616,,,,2.1.0.0, +"rvbabout_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbabout.ebx,,,,1998-04-22,,,OLDER,,,,,,,1994,,,,, +"rvbbrwcd_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbbrwcd.ebx,,,,1998-04-22,,,OLDER,,,,,,,9082,,,,, +"rvbbrwhp_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbbrwhp.ebx,,,,1998-04-22,,,OLDER,,,,,,,5404,,,,, +"rvbcgwiz_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbcgwiz.ebx,,,,1998-05-27,,,OLDER,,,,,,,268136,,,,, +"rvbclswz_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbclswz.ebx,,,,1998-04-22,,,OLDER,,,,,,,3808,,,,, +"rvbrewiz_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbrewiz.ebx,,,,1998-04-22,,,OLDER,,,,,,,128648,,,,, + +[VM - Core5] +"rvbrstor_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbrstor.ebx,,,,1998-04-22,,,OLDER,,,,,,,6800,,,,, +"rvbwgbst_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgbst.ebx,,,,1998-04-22,,,OLDER,,,,,,,1192,,,,, +"rvbwgdev_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgdev.ebx,,,,1998-04-22,,,OLDER,,,,,,,1192,,,,, +"rvbwgfaq_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgfaq.ebx,,,,1998-04-22,,,OLDER,,,,,,,1186,,,,, +"rvbwgfdb_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgfdb.ebx,,,,1998-04-22,,,OLDER,,,,,,,1196,,,,, +"rvbwgfre_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgfre.ebx,,,,1998-04-22,,,OLDER,,,,,,,1188,,,,, +"rvbwgmsf_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgmsf.ebx,,,,1998-04-22,,,OLDER,,,,,,,1186,,,,, +"rvbwgnew_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgnew.ebx,,,,1998-04-22,,,OLDER,,,,,,,1188,,,,, +"rvbwgsrh_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgsrh.ebx,,,,1998-04-22,,,OLDER,,,,,,,1190,,,,, + +[VM - Core6] +"rvbwgsup_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgsup.ebx,,,,1998-04-22,,,OLDER,,,,,,,1194,,,,, +"rvbwgtut_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvbwgtut.ebx,,,,1998-04-22,,,OLDER,,,,,,,1194,,,,, +"ssadd_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\ssadd.ebx,,,,1998-05-11,,,OLDER,,,,,,,2330,,,,, +"sschkin_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\sschkin.ebx,,,,1998-05-11,,,OLDER,,,,,,,2326,,,,, +"sschkout_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\sschkout.ebx,,,,1998-05-11,,,OLDER,,,,,,,2324,,,,, +"ssclear_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\ssclear.ebx,,,,1998-05-11,,,OLDER,,,,,,,2326,,,,, +"ssgetlat_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\ssgetlat.ebx,,,,1998-05-11,,,OLDER,,,,,,,2338,,,,, +"ssremove_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\ssremove.ebx,,,,1998-04-29,,,OLDER,,,,,,,2332,,,,, +"ssstart_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\ssstart.ebx,,,,1998-04-23,,,OLDER,,,,,,,2338,,,,, +"ssundo_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\ssundo.ebx,,,,1998-05-11,,,OLDER,,,,,,,2332,,,,, +"updates_htm" = 1,Common\Tools\VS-Ent98\vmodeler\updates.htm,,,,1998-05-25,,,OLDER,,,,,,,13570,,,,, + +[VM - Core7] +"msvm_exe" = 1,Common\Tools\VS-Ent98\vmodeler\msvm.exe,,,,1998-06-08,,1033,OLDER,,,,,,,4614656,,,,2.0.8135.0, +"rsssrcsf_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rsssrcsf.dll,,,,1998-05-18,,1033,OLDER,,,,,,,143360,,,,2.0.0.8138, +"rssssres_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rssssres.dll,,,,1998-06-11,,1033,OLDER,,,,,,,28672,,,,2.0.0.8162, +"rvbabtbx_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbabtbx.dll,,,,1998-05-15,,1033,OLDER,,,,,,,49152,,,,2.0.0.8135, +"rvbaddin_exe" = 1,Common\Tools\VS-Ent98\vmodeler\rvbaddin.dll,,,,1998-05-26,,1033,OLDER,,,,,,,188416,,,,2.0.0.8145, +"rvbadmnu_exe" = 1,Common\Tools\VS-Ent98\vmodeler\rvbadmnu.dll,,,,1998-04-22,,1033,OLDER,,,,,,,72704,,,,2.0.0.8112, +"rvbaxreo_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbaxreo.dll,,,,1998-04-22,,1033,OLDER,,,,,,,25088,,,,2.0.0.8112, +"rvbcdlg_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbcdlg.dll,,,,1998-04-22,,1033,OLDER,,,,,,,46592,,,,2.0.0.8112, +"rvbcgwiz_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbcgwiz.dll,,,,1998-04-22,,1033,OLDER,,,,,,,609792,,,,2.0.0.8112, +"rvbclswz_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbclswz.dll,,,,1998-04-22,,1033,OLDER,,,,,,,854016,,,,2.0.0.8112, +"rvbdilog_exe" = 1,Common\Tools\VS-Ent98\vmodeler\rvbdilog.exe,,,,1998-04-27,,1033,OLDER,,,,,,,398336,,,,2.0.0.8117, + +[VM - Core8] +"rvbparse_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbparse.dll,,,,1998-06-11,,1033,OLDER,,,,,,,65536,,,,2.0.0.8162, +"rvbprvwz_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbprvwz.dll,,,,1998-04-22,,1033,OLDER,,,,,,,724992,,,,2.0.0.8112, +"rvbreso_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbreso.dll,,,,1998-04-29,,1033,OLDER,,,,,,,106496,,,,2.0.0.8119, +"rvbrewiz_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvbrewiz.dll,,,,1998-04-22,,1033,OLDER,,,,,,,720896,,,,2.0.0.8112, +"rvbrewiz_exe" = 1,Common\Tools\VS-Ent98\vmodeler\rvbrewiz.exe,,,,1998-04-22,,1033,OLDER,,,,,,,20480,,,,2.0.0.8112, +"rwebutil_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rwebutil.dll,,,,1998-02-10,,1033,OLDER,,,,,,,14336,,,,1.0.0.3, +"vbpid_dll" = 1,Common\Tools\VS-Ent98\vmodeler\vbpid.dll,,,,1998-04-22,,1033,OLDER,,,,,,,128000,,,,2.0.0.8112, + +[VM - Core9] +"repos_mnu" = 1,Common\Tools\VS-Ent98\vmodeler\repos.mnu,,,,1998-06-18,,,OLDER,,,,,,,343,,,,, +"rose_ini" = 1,Common\Tools\VS-Ent98\vmodeler\rose.ini,,,,1998-05-25,,,OLDER,,,,,,,6063,,,,, +"rvc98com_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvc98com.dll,,,,1998-02-10,,1033,OLDER,,,,,,,158208,,,,1.0.0.7281, +"rvccdegn_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvccdegn.dll,,,,1998-06-11,,1033,OLDER,,,,,,,212992,,,,2.0.0.8162, +"rvciface_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvciface.dll,,,,1998-04-22,,,OLDER,,,,,,,16384,,,,, +"rvcreso_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvcreso.dll,,,,1998-04-29,,1033,OLDER,,,,,,,150528,,,,2.0.0.8119, +"rvsapstr_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvsapstr.dll,,,,1998-04-27,,1033,OLDER,,,,,,,27648,,,,2.0.0.8117, +"rvsintmg_exe" = 1,Common\Tools\VS-Ent98\vmodeler\rvsintmg.exe,,,,1998-04-22,,1033,OLDER,,,,,,,68608,,,,2.0.0.8112, +"rvsonasg_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvsonasg.ebx,,,,1998-04-22,,,OLDER,,,,,,,2040,,,,, +"rvsongen_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvsongen.ebx,,,,1998-04-22,,,OLDER,,,,,,,1284,,,,, +"rvsres_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvsres.dll,,,,1998-04-22,,1033,OLDER,,,,,,,18432,,,,2.0.0.8112, +"vb_mnu" = 1,Common\Tools\VS-Ent98\vmodeler\vb.mnu,,,,1998-06-18,,,OLDER,,,,,,,403,,,,, +"vb_pty" = 1,Common\Tools\VS-Ent98\vmodeler\vb.pty,,,,1998-05-25,,,OLDER,,,,,,,5881,,,,, +"vb6_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\vb6.ebx,,,,1998-02-10,,,OLDER,,,,,,,22988,,,,, +"vc_mnu" = 1,Common\Tools\VS-Ent98\vmodeler\vc.mnu,,,,1998-06-18,,,OLDER,,,,,,,161,,,,, +"vc_pty" = 1,Common\Tools\VS-Ent98\vmodeler\vc.pty,,,,1998-05-25,,,OLDER,,,,,,,1335,,,,, +"vs_dll" = 1,Common\Tools\VS-Ent98\vmodeler\vs.dll,,,,1998-04-22,,1033,OLDER,,,,,,,75776,,,,2.0.0.8112, +"vs_mnu" = 1,Common\Tools\VS-Ent98\vmodeler\vs.mnu,,,,1998-06-18,,,OLDER,,,,,,,1726,,,,, +"vss_mnu" = 1,Common\Tools\VS-Ent98\vmodeler\vss.mnu,,,,1998-06-18,,,OLDER,,,,,,,855,,,,, + +[VM - Core10] +"comstype_ini" = 1,Common\Tools\VS-Ent98\vmodeler\COMStype.ini,,,,1998-05-25,,,OLDER,,,,,,,563,,,,, +"rvcbrwcd_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvcbrwcd.dll,,,,1998-04-22,,1033,OLDER,,,,,,,50176,,,,2.0.0.8112, +"rvsrepos_dll" = 1,Common\Tools\VS-Ent98\vmodeler\RVSRepos.dll,,,,1998-06-12,,1033,OLDER,,,,,,,180224,,,,2.0.0.8163, +"rvsrpsex_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\RVSRpsEx.ebx,,,,1998-05-07,,,OLDER,,,,,,,448,,,,, +"rvsrpsim_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\RVSRpsIm.ebx,,,,1998-05-07,,,OLDER,,,,,,,448,,,,, +"vc_dll" = 1,Common\Tools\VS-Ent98\vmodeler\vc.dll,,,,1998-06-11,,1033,OLDER,,,,,,,495616,,,,2.0.0.8162, +"rvsrpspu_ebx" = 1,Common\Tools\VS-Ent98\vmodeler\rvsrpspu.ebx,,,,1998-05-07,,,OLDER,,,,,,,450,,,,, + +[VM - Core11] +"defstype_ini" = 1,Common\Tools\VS-Ent98\vmodeler\DefStype.ini,,,,1998-05-25,,,OLDER,,,,,,,468,,,,, +"msvmcpp_cnt" = 1,Common\Tools\VS-Ent98\vmodeler\Msvmcpp.cnt,,,,1998-06-18,,,OLDER,,,,,,,2897,,,,, +"msvmcpp_hlp" = 1,Common\Tools\VS-Ent98\vmodeler\Msvmcpp.hlp,,,,1998-03-18,,,OLDER,,,,,,,83201,,,,, +"msvmrep_cnt" = 1,Common\Tools\VS-Ent98\vmodeler\Msvmrep.cnt,,,,1998-06-18,,,OLDER,,,,,,,717,,,,, +"msvmrep_hlp" = 1,Common\Tools\VS-Ent98\vmodeler\Msvmrep.hlp,,,,1998-04-29,,,OLDER,,,,,,,24765,,,,, +"msvmss_cnt" = 1,Common\Tools\VS-Ent98\vmodeler\Msvmss.cnt,,,,1998-06-18,,,OLDER,,,,,,,820,,,,, +"msvmvb_cnt" = 1,Common\Tools\VS-Ent98\vmodeler\Msvmvb.cnt,,,,1998-06-18,,,OLDER,,,,,,,6324,,,,, +"msvmvb_hlp" = 1,Common\Tools\VS-Ent98\vmodeler\Msvmvb.hlp,,,,1998-03-17,,,OLDER,,,,,,,334431,,,,, +"vbstype_ini" = 1,Common\Tools\VS-Ent98\vmodeler\VBStype.ini,,,,1998-05-25,,,OLDER,,,,,,,1426,,,,, +"vcstype_ini" = 1,Common\Tools\VS-Ent98\vmodeler\VCStype.ini,,,,1998-05-25,,,OLDER,,,,,,,603,,,,, + +[VM - Core12] +"rtires_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rtires.dll,,,,1998-06-11,,1033,OLDER,,,,,,,24576,,,,2.0.0.8162, +"rtlibimp_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rtlibimp.dll,,,,1998-04-22,,1033,OLDER,,,,,,,55296,,,,2.0.0.8112, +"rvsprgdg_exe" = 1,Common\Tools\VS-Ent98\vmodeler\rvsprgdg.exe,,,,1998-04-22,,1033,OLDER,,,,,,,20480,,,,2.0.0.8112, +"rvsrpsrs_dll" = 1,Common\Tools\VS-Ent98\vmodeler\rvsrpsrs.dll,,,,1998-06-11,,1033,OLDER,,,,,,,32768,,,,2.0.0.8162, + +[VM - MSVM] +"msvm_srg" = 1,Common\Tools\VS-Ent98\vmodeler\Msvm.srg,,,,1998-05-25,,,OLDER,,,,,,,64312,,,,, + +[VM - RemoveHelp] +"msvmcpp_ftg"= 1,msvmcpp.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmcpp_gid"= 1,msvmcpp.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmcpp_fts"= 1,msvmcpp.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmrep_ftg"= 1,msvmrep.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmrep_gid"= 1,msvmrep.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmrep_fts"= 1,msvmrep.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmss_ftg"= 1,msvmss.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmss_gid"= 1,msvmss.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmss_fts"= 1,msvmss.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmu_gid"= 1,msvmu.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmu_fts"= 1,msvmu.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmu_ftg"= 1,msvmu.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmvb_ftg"= 1,msvmvb.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmvb_gid"= 1,msvmvb.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msvmvb_fts"= 1,msvmvb.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"qstart_ftg"= 1,qstart.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"qstart_fts"= 1,qstart.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"qstart_gid"= 1,qstart.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"quest_fts"= 1,quest.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"quest_gid"= 1,quest.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"quest_ftg"= 1,quest.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VM-Templates] +"modcsidg_bas" = 1,Common\Tools\VS-Ent98\vmodeler\template\modcsidg.bas,,,,1998-05-25,,,OLDER,,,,,,,238,,,,, +"moderhnl_bas" = 1,Common\Tools\VS-Ent98\vmodeler\template\moderhnl.bas,,,,1998-05-25,,,OLDER,,,,,,,1400,,,,, + +[DAO] +"dao350_dll" = 1,os\system\dao350.dll,,,,1998-04-27,,1033,OLDER,,,,,,,570128,SYSTEM,,,3.51.1608.0, +"dao2535_tlb" = 1,os\system\dao2535.tlb,,,,1998-05-15,,,OLDER,,,,,,,73184,SYSTEM,,,, +"dao35_hlp" = 1,Common\Help\dao35.hlp,,,,1998-04-30,,,OLDER,,,,,,,649868,SYSTEM,,,, +"dao35_cnt" = 1,Common\Help\dao35.cnt,,,,1998-04-30,,,OLDER,,,,,,,6117,SYSTEM,,,, +"dao35_ftg"= 1,dao35.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"dao35_fts"= 1,dao35.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"dao35_gid"= 1,dao35.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[(vsee) APE C/S shared] +"aeinstnr_exe" = 1,Common\Tools\Ape\aeinstnr.exe,,,,1998-06-18,,1033,OLDER,,,,,,,20480,,,,6.0.0.8169, +"aelogger_exe" = 1,Common\Tools\Ape\aelogger.exe,,,,1998-07-07,,2052,OLDER,,,,,,,61440,,,,6.0.0.8169, +"aemtssvc_dll" = 1,Common\Tools\Ape\aemtssvc.dll,,,,1998-07-07,,2052,OLDER,,,,,,,45056,,,,6.0.0.8169, +"aepool_exe" = 1,Common\Tools\Ape\aepool.exe,,,,1998-07-07,,2052,OLDER,,,,,,,110592,,,,6.0.0.8169, +"aequeue_exe" = 1,Common\Tools\Ape\aequeue.exe,,,,1998-07-07,,2052,OLDER,,,,,,,143360,,,,6.0.0.8169, +"aeservic_dll" = 1,Common\Tools\Ape\aeservic.dll,,,,1998-07-07,,2052,OLDER,,,,,,,102400,,,,6.0.0.8169, +"aesvrmgr_exe" = 1,Common\Tools\Ape\aesvrmgr.exe,,,,1998-06-18,,1033,OLDER,,,,,,,24576,,,,6.0.0.8169, +"aeworker_exe" = 1,Common\Tools\Ape\aeworker.exe,,,,1998-07-07,,2052,OLDER,,,,,,,53248,,,,6.0.0.8169, +"aewrkpvd_exe" = 1,Common\Tools\Ape\aewrkpvd.exe,,,,1998-07-07,,2052,OLDER,,,,,,,28672,,,,6.0.0.8169, +"aedbjet_mdb" = 1,Common\Tools\Ape\apetest.mdb,,,,1998-06-18,,,OLDER,,,,,,,258048,,,,, +"aeintrfc_tlb" = 1,Common\Tools\Ape\AEIntrfc.TLB,,,,1998-06-18,,,OLDER,,,,,,,35064,,,,, +"aemtssvc_pak" = 1,Common\Tools\Ape\AEMTSSvc.pak,,,,1998-06-18,,,OLDER,,,,,,,1733,,,,, +"aeexpdtr_tlb" = 1,Common\Tools\Ape\AEExpdtr.tlb,,,,1998-06-18,,,OLDER,,,,,,,1928,,,,, +"apemreg_exe" = 1,Common\Tools\Ape\apemreg.exe,,,,1998-07-07,,2052,OLDER,,,,,,,28672,,,,6.0.0.8169, + +[APE tagfile] +"aeexpdtr_exe" = 1,Common\Tools\Ape\aeexpdtr.exe,,,,1998-07-07,,2052,OLDER,,,,,,,77824,,,,6.0.0.8169, + +[(vsee) ApeManager] +"aemanagr_ini" = 1,Common\Tools\Ape\AEManagr.ini,,,,1998-04-24,,,OLDER,,,,,,,49086,,,,, +"apedbset_exe" = 1,Common\Tools\Ape\APEDBSet.dll,,,,1998-07-07,,2052,OLDER,,,,,,,172032,,,,6.0.0.8169, +"odbctool_dll" = 1,Common\Tools\Ape\odbctool.dll,,,,1998-06-18,,1033,OLDER,,,,,,,32768,,,,6.0.0.8169, +"regtool5_dll" = 1,Common\Tools\Ape\regtool5.dll,,,,1998-06-18,,1033,OLDER,,,,,,,32768,,,,6.0.0.8169, +"aemanagr_exe" = 1,Common\Tools\Ape\AEManagr.exe,,,,1998-07-07,,2052,OLDER,,,,,,,1396736,,,,6.0.0.8169, + +[Sample - AEClient] +"Aeclient_rc" = 1,Common\Tools\Ape\Source\Aeclient\Aeclient.rc,,,,1998-06-18,,,OLDER,,,,,,,2462,,,,, +"Aeclient_res" = 1,Common\Tools\Ape\Source\Aeclient\Aeclient.res,,,,1998-06-18,,,OLDER,,,,,,,4340,,,,, +"Aeclient_vbp" = 1,Common\Tools\Ape\Source\Aeclient\Aeclient.vbp,,,,1998-06-18,,,OLDER,,,,,,,2595,,,,, +"Client_cls" = 1,Common\Tools\Ape\Source\Aeclient\Client.cls,,,,1998-06-18,,,OLDER,,,,,,,40703,,,,, +"Client_ico" = 1,Common\Tools\Ape\Source\Aeclient\Client.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, +"Clscalbk_cls" = 1,Common\Tools\Ape\Source\Aeclient\Clscalbk.cls,,,,1998-06-18,,,OLDER,,,,,,,1647,,,,, +"Clscntsv_cls" = 1,Common\Tools\Ape\Source\Aeclient\Clscntsv.cls,,,,1998-06-18,,,OLDER,,,,,,,828,,,,, +"Clsdrttl_cls" = 1,Common\Tools\Ape\Source\Aeclient\Clsdrttl.cls,,,,1998-06-18,,,OLDER,,,,,,,11511,,,,, +"Clspootl_cls" = 1,Common\Tools\Ape\Source\Aeclient\Clspootl.cls,,,,1998-06-18,,,OLDER,,,,,,,24362,,,,, +"Clsquetl_cls" = 1,Common\Tools\Ape\Source\Aeclient\Clsquetl.cls,,,,1998-06-18,,,OLDER,,,,,,,15843,,,,, +"Frmclnt_frm" = 1,Common\Tools\Ape\Source\Aeclient\Frmclnt.frm,,,,1998-06-18,,,OLDER,,,,,,,7295,,,,, +"Frmclnt_frx" = 1,Common\Tools\Ape\Source\Aeclient\Frmclnt.frx,,,,1998-06-18,,,OLDER,,,,,,,1090,,,,, +"Modclnt_bas" = 1,Common\Tools\Ape\Source\Aeclient\Modclnt.bas,,,,1998-06-18,,,OLDER,,,,,,,44045,,,,, + +[Sample - AEcompat] +"AEClient_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEClient.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,149504,,,,2.0.0.0, +"AEExpdtr_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEExpdtr.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,68608,,,,2.0.0.0, +"AEInstnr_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEInstnr.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,10752,,,,1.0.0.3603, +"AELogger_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AELogger.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,45568,,,,1.0.0.3603, +"AEMTSSvc_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEMTSSvc.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,28672,,,,2.0.0.0, +"AEPool_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEPool.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,100352,,,,1.0.0.3804, +"AEQueue_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEQueue.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,153088,,,,2.0.0.0, +"AEServic_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEServic.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,65024,,,,2.0.0.0, +"AEWorker_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEWorker.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,47104,,,,1.0.0.3804, +"AEWrkPvd_cmp" = 1,Common\Tools\Ape\Source\Aecompat\AEWrkPvd.cmp,,,,1998-06-18,,1033,OLDER,,,,,,,16384,,,,2.0.0.3804, + +[Sample - AEExpdtr] +"Aeexpdtr_rc" = 1,Common\Tools\Ape\Source\Aeexpdtr\Aeexpdtr.rc,,,,1998-06-18,,,OLDER,,,,,,,994,,,,, +"Aeexpdtr_res" = 1,Common\Tools\Ape\Source\Aeexpdtr\Aeexpdtr.res,,,,1998-06-18,,,OLDER,,,,,,,1476,,,,, +"Aeexpdtr_vbp" = 1,Common\Tools\Ape\Source\Aeexpdtr\Aeexpdtr.vbp,,,,1998-06-18,,,OLDER,,,,,,,1702,,,,, +"Callbkrf_cls" = 1,Common\Tools\Ape\Source\Aeexpdtr\Callbkrf.cls,,,,1998-06-18,,,OLDER,,,,,,,1734,,,,, +"Expeditr_cls" = 1,Common\Tools\Ape\Source\Aeexpdtr\Expeditr.cls,,,,1998-06-18,,,OLDER,,,,,,,8770,,,,, +"Expetitr_ico" = 1,Common\Tools\Ape\Source\Aeexpdtr\Expetitr.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, +"Frmexpdt_frm" = 1,Common\Tools\Ape\Source\Aeexpdtr\Frmexpdt.frm,,,,1998-06-18,,,OLDER,,,,,,,8552,,,,, +"Frmexpdt_frx" = 1,Common\Tools\Ape\Source\Aeexpdtr\Frmexpdt.frx,,,,1998-06-18,,,OLDER,,,,,,,1090,,,,, +"Modexpdt_bas" = 1,Common\Tools\Ape\Source\Aeexpdtr\Modexpdt.bas,,,,1998-06-18,,,OLDER,,,,,,,20412,,,,, +"Syncrtrn_cls" = 1,Common\Tools\Ape\Source\Aeexpdtr\Syncrtrn.cls,,,,1998-06-18,,,OLDER,,,,,,,910,,,,, + +[Sample - AEinclud] +"clsposfm_cls" = 1,Common\Tools\Ape\Source\Aeinclud\clsPosFm.cls,,,,1998-06-18,,,OLDER,,,,,,,11426,,,,, +"clswkmac_cls" = 1,Common\Tools\Ape\Source\Aeinclud\clsWkMac.cls,,,,1998-06-18,,,OLDER,,,,,,,1369,,,,, +"clsworkr_cls" = 1,Common\Tools\Ape\Source\Aeinclud\clsWorkr.cls,,,,1998-06-18,,,OLDER,,,,,,,1282,,,,, +"enums_cls" = 1,Common\Tools\Ape\Source\Aeinclud\Enums.cls,,,,1998-06-18,,,OLDER,,,,,,,3488,,,,, +"modaecon_bas" = 1,Common\Tools\Ape\Source\Aeinclud\modAECon.bas,,,,1998-06-18,,,OLDER,,,,,,,6490,,,,, +"modaeglb_bas" = 1,Common\Tools\Ape\Source\Aeinclud\modAEGlb.bas,,,,1998-06-18,,,OLDER,,,,,,,5140,,,,, +"modvberr_bas" = 1,Common\Tools\Ape\Source\Aeinclud\modVBErr.bas,,,,1998-06-18,,,OLDER,,,,,,,5747,,,,, +"modwiner_bas" = 1,Common\Tools\Ape\Source\Aeinclud\modWinEr.bas,,,,1998-06-18,,,OLDER,,,,,,,1434,,,,, +"utility_bas" = 1,Common\Tools\Ape\Source\Aeinclud\Utility.bas,,,,1998-06-18,,,OLDER,,,,,,,19729,,,,, +"localize_bas" = 1,Common\Tools\Ape\Source\Aeinclud\localize.bas,,,,1998-06-18,,,OLDER,,,,,,,5127,,,,, +"odbcapi_rc" = 1,Common\Tools\Ape\Source\Aeinclud\odbcapi.rc,,,,1998-06-18,,,OLDER,,,,,,,401,,,,, +"odbcapi_res" = 1,Common\Tools\Ape\Source\Aeinclud\odbcapi.res,,,,1998-06-18,,,OLDER,,,,,,,580,,,,, +"rc_bat_aeinclud" = 1,Common\Tools\Ape\Source\Aeinclud\rc.bat,,,,1998-06-18,,,OLDER,,,,,,,39,,,,, +"odbcapi_bas" = 1,Common\Tools\Ape\Source\Aeinclud\odbcapi.bas,,,,1998-06-18,,,OLDER,,,,,,,5319,,,,, + +[Sample - AEInstnr] +"aeinstnr_vbp" = 1,Common\Tools\Ape\Source\Aeinstnr\AEInstnr.vbp,,,,1998-06-18,,,OLDER,,,,,,,1217,,,,, +"instancr_ico" = 1,Common\Tools\Ape\Source\Aeinstnr\instancr.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, +"instncer_cls" = 1,Common\Tools\Ape\Source\Aeinstnr\Instncer.cls,,,,1998-06-18,,,OLDER,,,,,,,1423,,,,, +"modinstr_bas" = 1,Common\Tools\Ape\Source\Aeinstnr\modInstr.bas,,,,1998-06-18,,,OLDER,,,,,,,271,,,,, + +[Sample - AEintrfc] +"build_bat" = 1,Common\Tools\Ape\Source\Aeintrfc\Build.bat,,,,1998-06-18,,,OLDER,,,,,,,126,,,,, + +[Sample - AELogger] +"aelogger_rc" = 1,Common\Tools\Ape\Source\Aelogger\AELogger.rc,,,,1998-06-18,,,OLDER,,,,,,,578,,,,, +"aelogger_res" = 1,Common\Tools\Ape\Source\Aelogger\AELogger.res,,,,1998-06-18,,,OLDER,,,,,,,1000,,,,, +"aelogger_vbp" = 1,Common\Tools\Ape\Source\Aelogger\AELogger.vbp,,,,1998-06-18,,,OLDER,,,,,,,1536,,,,, +"frmloggr_frm" = 1,Common\Tools\Ape\Source\Aelogger\frmLoggr.frm,,,,1998-06-18,,,OLDER,,,,,,,2069,,,,, +"frmloggr_frx" = 1,Common\Tools\Ape\Source\Aelogger\frmloggr.frx,,,,1998-06-18,,,OLDER,,,,,,,1090,,,,, +"logger_cls" = 1,Common\Tools\Ape\Source\Aelogger\Logger.cls,,,,1998-06-18,,,OLDER,,,,,,,8907,,,,, +"logger_ico" = 1,Common\Tools\Ape\Source\Aelogger\logger.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, +"modloggr_bas" = 1,Common\Tools\Ape\Source\Aelogger\modLoggr.bas,,,,1998-06-18,,,OLDER,,,,,,,14378,,,,, + +[Sample - AEmtssvc] +"account_cls" = 1,Common\Tools\Ape\Source\Aemtssvc\Account.cls,,,,1998-06-18,,,OLDER,,,,,,,11245,,,,, +"aemtssvc_vbp" = 1,Common\Tools\Ape\Source\Aemtssvc\AEMTSSvc.vbp,,,,1998-06-18,,,OLDER,,,,,,,2066,,,,, +"movemony_cls" = 1,Common\Tools\Ape\Source\Aemtssvc\MoveMony.cls,,,,1998-06-18,,,OLDER,,,,,,,2167,,,,, +"aemtssvc_rc" = 1,Common\Tools\Ape\Source\Aemtssvc\aemtssvc.rc,,,,1998-06-18,,,OLDER,,,,,,,148,,,,, +"aemtssvc_res" = 1,Common\Tools\Ape\Source\Aemtssvc\aemtssvc.res,,,,1998-06-18,,,OLDER,,,,,,,756,,,,, +"mtssvc_bas" = 1,Common\Tools\Ape\Source\Aemtssvc\mtssvc.bas,,,,1998-06-18,,,OLDER,,,,,,,160,,,,, +"rc_bat" = 1,Common\Tools\Ape\Source\Aemtssvc\rc.bat,,,,1998-06-18,,,OLDER,,,,,,,41,,,,, + +[Sample - AEPool] +"aepool_rc" = 1,Common\Tools\Ape\Source\Aepool\AEPool.rc,,,,1998-06-18,,,OLDER,,,,,,,1881,,,,, +"aepool_res" = 1,Common\Tools\Ape\Source\Aepool\AEPool.res,,,,1998-06-18,,,OLDER,,,,,,,3536,,,,, +"aepool_vbp" = 1,Common\Tools\Ape\Source\Aepool\AEPool.vbp,,,,1998-06-18,,,OLDER,,,,,,,1920,,,,, +"frmpool_frm" = 1,Common\Tools\Ape\Source\Aepool\frmPool.frm,,,,1998-06-18,,,OLDER,,,,,,,6604,,,,, +"frmpool_frx" = 1,Common\Tools\Ape\Source\Aepool\frmpool.frx,,,,1998-06-18,,,OLDER,,,,,,,1090,,,,, +"modpool_bas" = 1,Common\Tools\Ape\Source\Aepool\modPool.bas,,,,1998-06-18,,,OLDER,,,,,,,25126,,,,, +"pool_cls" = 1,Common\Tools\Ape\Source\Aepool\Pool.cls,,,,1998-06-18,,,OLDER,,,,,,,4795,,,,, +"pool_ico" = 1,Common\Tools\Ape\Source\Aepool\pool.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, +"poolmgr_cls" = 1,Common\Tools\Ape\Source\Aepool\PoolMgr.cls,,,,1998-06-18,,,OLDER,,,,,,,27362,,,,, + +[Sample - AEQueue] +"aequeue_rc" = 1,Common\Tools\Ape\Source\Aequeue\AEQueue.rc,,,,1998-06-18,,,OLDER,,,,,,,2523,,,,, +"aequeue_res" = 1,Common\Tools\Ape\Source\Aequeue\AEQueue.res,,,,1998-06-18,,,OLDER,,,,,,,4328,,,,, +"aequeue_vbp" = 1,Common\Tools\Ape\Source\Aequeue\AEQueue.vbp,,,,1998-06-18,,,OLDER,,,,,,,1893,,,,, +"clsquedl_cls" = 1,Common\Tools\Ape\Source\Aequeue\clsQueDl.cls,,,,1998-06-18,,,OLDER,,,,,,,17224,,,,, +"clsservc_cls" = 1,Common\Tools\Ape\Source\Aequeue\clsServc.cls,,,,1998-06-18,,,OLDER,,,,,,,1919,,,,, +"frmqueue_frm" = 1,Common\Tools\Ape\Source\Aequeue\frmQueue.frm,,,,1998-06-18,,,OLDER,,,,,,,8600,,,,, +"frmqueue_frx" = 1,Common\Tools\Ape\Source\Aequeue\frmQueue.frx,,,,1998-06-18,,,OLDER,,,,,,,1090,,,,, +"modqueue_bas" = 1,Common\Tools\Ape\Source\Aequeue\modQueue.bas,,,,1998-06-18,,,OLDER,,,,,,,34550,,,,, +"qmanager_ico" = 1,Common\Tools\Ape\Source\Aequeue\qmanager.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, +"queue_cls" = 1,Common\Tools\Ape\Source\Aequeue\Queue.cls,,,,1998-06-18,,,OLDER,,,,,,,11625,,,,, +"queuemgr_cls" = 1,Common\Tools\Ape\Source\Aequeue\QueueMgr.cls,,,,1998-06-18,,,OLDER,,,,,,,32393,,,,, + +[Sample - AEServic] +"aeservic_rc" = 1,Common\Tools\Ape\Source\Aeservic\AEServic.rc,,,,1998-06-18,,,OLDER,,,,,,,899,,,,, +"aeservic_res" = 1,Common\Tools\Ape\Source\Aeservic\AEServic.res,,,,1998-06-18,,,OLDER,,,,,,,1812,,,,, +"aeservic_vbp" = 1,Common\Tools\Ape\Source\Aeservic\AEServic.vbp,,,,1998-06-18,,,OLDER,,,,,,,2023,,,,, +"modservc_bas" = 1,Common\Tools\Ape\Source\Aeservic\modServc.bas,,,,1998-06-18,,,OLDER,,,,,,,7132,,,,, +"service_cls" = 1,Common\Tools\Ape\Source\Aeservic\Service.cls,,,,1998-06-18,,,OLDER,,,,,,,32551,,,,, +"service_ico" = 1,Common\Tools\Ape\Source\Aeservic\Service.ICO,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, +"service_frm" = 1,Common\Tools\Ape\Source\Aeservic\Service.frm,,,,1998-06-18,,,OLDER,,,,,,,4941,,,,, +"service_frx" = 1,Common\Tools\Ape\Source\Aeservic\Service.frx,,,,1998-06-18,,,OLDER,,,,,,,778,,,,, + +[Sample - AEWorker] +"aeworker_rc" = 1,Common\Tools\Ape\Source\Aeworker\AEWorker.rc,,,,1998-06-18,,,OLDER,,,,,,,338,,,,, +"aeworker_res" = 1,Common\Tools\Ape\Source\Aeworker\AEWorker.res,,,,1998-06-18,,,OLDER,,,,,,,556,,,,, +"aeworker_vbp" = 1,Common\Tools\Ape\Source\Aeworker\AEWorker.vbp,,,,1998-06-18,,,OLDER,,,,,,,1411,,,,, +"modworkr_bas" = 1,Common\Tools\Ape\Source\Aeworker\modWorkr.bas,,,,1998-06-18,,,OLDER,,,,,,,31916,,,,, +"worker_cls" = 1,Common\Tools\Ape\Source\Aeworker\Worker.cls,,,,1998-06-18,,,OLDER,,,,,,,17956,,,,, +"worker_ico" = 1,Common\Tools\Ape\Source\Aeworker\worker.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, + +[Sample - AEWrkpvd] +"aewrkpvd_rc" = 1,Common\Tools\Ape\Source\Aewrkpvd\AEWrkPvd.rc,,,,1998-06-18,,,OLDER,,,,,,,634,,,,, +"aewrkpvd_res" = 1,Common\Tools\Ape\Source\Aewrkpvd\AEWrkPvd.res,,,,1998-06-18,,,OLDER,,,,,,,1128,,,,, +"aewrkpvd_vbp" = 1,Common\Tools\Ape\Source\Aewrkpvd\AEWrkPvd.vbp,,,,1998-06-18,,,OLDER,,,,,,,1611,,,,, +"baswrkpd_bas" = 1,Common\Tools\Ape\Source\Aewrkpvd\basWrkPd.bas,,,,1998-06-18,,,OLDER,,,,,,,584,,,,, +"clswrkpd_cls" = 1,Common\Tools\Ape\Source\Aewrkpvd\clsWrkPd.cls,,,,1998-06-18,,,OLDER,,,,,,,1751,,,,, +"wrkpvd_ico" = 1,Common\Tools\Ape\Source\Aewrkpvd\WrkPvd.ico,,,,1998-06-18,,,OLDER,,,,,,,1078,,,,, + +[(vsee) ape client] +"aeclient_exe" = 1,Common\Tools\Ape\AEClient.exe,,,,1998-07-07,,2052,OLDER,,,,,,,167936,,,,6.0.0.8169, + +[(vsee) Repository System] +"reputil_dll" = 1,os\system\reputil.dll,,,,1998-06-10,,1033,OLDER,,,,,,,15120,,,,6.0.8161.0, + +[(vsee) Repository UML] +"uml_dll" = 1,os\msapps\repostry\infomdl\uml.dll,,,,1998-06-10,,1033,OLDER,,,,,,,106496,,,,6.0.0.8161, + +[(vsee) Repository Shared Files] +"repodbc_dll" = 1,os\msapps\repostry\repodbc.dll,,,,1998-06-10,,1033,OLDER,,,,,,,739328,,,,6.0.8161.0, +"reprc_dll" = 1,os\msapps\repostry\reprc.dll,,,,1998-06-30,,2052,OLDER,,,,,,,20240,,,,6.0.8161.0, +"insrepim_dll" = 1,os\msapps\repostry\insrepim.dll,,,,1998-06-10,,1033,OLDER,,,,,,,41744,,,,6.0.8161.0, + +[(vsee) Visual Component Mgr Ent] +"vcmemd_dll" = 1,Common\Tools\VCM\vcmEmd.dll,,,,1998-07-07,,1033,OLDER,,,,,,,20480,,,,6.0.0.8169, + +[(vsee) VCM Repository Installers] +"repcde_dll" = 1,os\msapps\repostry\infomdl\repcde.dll,,,,1998-06-10,,1033,OLDER,,,,,,,36864,,,,6.0.0.8161, +"repcom_dll" = 1,os\msapps\repostry\infomdl\repcom.dll,,,,1998-06-10,,1033,OLDER,,,,,,,36864,,,,6.0.0.8161, +"repdtm_dll" = 1,os\msapps\repostry\infomdl\repdtm.dll,,,,1998-06-10,,1033,OLDER,,,,,,,32768,,,,6.0.0.8161, +"repgen_dll" = 1,os\msapps\repostry\infomdl\repgen.dll,,,,1998-06-10,,1033,OLDER,,,,,,,32768,,,,6.0.0.8161, +"repumx_dll" = 1,os\msapps\repostry\infomdl\repumx.dll,,,,1998-06-10,,1033,OLDER,,,,,,,32768,,,,6.0.0.8161, +"repvcm_dll" = 1,os\msapps\repostry\infomdl\repvcm.dll,,,,1998-06-10,,1033,OLDER,,,,,,,606208,,,,6.0.0.8161, + +[(vsee) VCM Package] +"vcmpk_dll" = 1,Common\IDE\IDE98\vcmpk.dll,,,,1998-07-07,,1033,OLDER,,,,,,,216796,,,,6.0.0.8169, +"vcmpkui_dll_enu" = 1,common\ide\ide98\resource\1033\vcmpkui.dll,,,,1998-07-07,,1033,OLDER,,,,,,,15872,,,,6.0.0.8169, + +[(vsee) Visual Component Mgr core] +"vcm_mdb" = 1,Common\Tools\VCM\vcm.mdb,,,,1998-07-24,,,OLDER,,,,,,,3258368,,,,, +"vcmagg_dll" = 1,Common\Tools\VCM\vcmagg.dll,,,,1998-07-07,,1033,OLDER,,,,,,,68096,,,,6.0.8169.0, +"vcmaxb_ocx" = 1,Common\Tools\VCM\vcmaxb.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,74792,,,,6.0.0.8169, +"vcmcab_dll" = 1,Common\Tools\VCM\vcmcab.dll,,,,1998-07-07,,1033,OLDER,,,,,,,109568,,,,6.0.8169.0, +"vcmmgr_dll" = 1,Common\Tools\VCM\vcmmgr.dll,,,,1998-07-07,,1033,OLDER,,,,,,,2019328,,,,6.0.0.8169, +"vcmui_dll_chs" = 1,Common\Tools\VCM\Resource\2052\vcmui.dll,,,,1998-07-07,,2052,OLDER,,,,,,,196608,,,,6.0.0.8169, +"vcmutl_dll" = 1,Common\Tools\VCM\vcmUtl.dll,,,,1998-07-07,,1033,OLDER,,,,,,,77824,,,,6.0.8169.0, +"vcmvmb_ocx" = 1,Common\Tools\VCM\vcmvmb.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,95264,,,,6.0.0.8169, +"vcmvmh_dll" = 1,Common\Tools\VCM\vcmvmh.dll,,,,1998-07-07,,1033,OLDER,,,,,,,200704,,,,6.0.0.8169, +"cabinet_dll" = 1,os\system\cabinet.dll,,,,1998-04-24,,1033,OLDER,,,,,,,67072,SYSTEM,,,1.0.603.0, +"vcm_vbd" = 1,Common\Tools\VCM\vcm.vbd,,,,1998-07-07,,,OLDER,,,,,,,1536,,,,, +"vcmaxb_oca"= 1,vcmaxb.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"vcmvmb_oca"= 1,vcmvmb.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"findfile_avi_delonly"= 1,findfile.avi,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"search_avi_delonly"= 1,search.avi,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VSS - SSUSDLL] +"ss_dll_enu" = 1,VSS\Win32\ssus.dll,,,,1998-06-12,,1033,OLDER,,,,,,,480768,,,,6.0.81.63, + +[VSS - Client SRG] +"vssclnt_srg" = 1,VSS\vssClnt.srg,,,,1998-04-30,,,OLDER,,,,,,,1587,,,,, + +[VSS Conversion win32] +"pvcs_ss_exe" = 1,VSS\Win32\pvcs_ss.exe,,,,1998-05-22,,,OLDER,,,,,,,231143,,,,, +"ssus16_dll" = 1,VSS\Win32\ssus16.dll,,,,1998-05-22,,1033,OLDER,,,,,,,216240,,,,4.0.13.9, + +[VSS Admin win32] +"analyze_exe" = 1,VSS\Win32\analyze.exe,,,,1998-06-18,,1033,OLDER,,,,,,,211968,,,,6.0.81.69, +"mkss_exe" = 1,VSS\Win32\mkss.exe,,,,1998-05-22,,,OLDER,,,,,,,119808,,,,, +"ssarc_exe" = 1,VSS\Win32\ssarc.exe,,,,1998-06-18,,1033,OLDER,,,,,,,528384,,,,6.0.81.69, +"ssrestor_exe" = 1,VSS\Win32\ssrestor.exe,,,,1998-06-18,,1033,OLDER,,,,,,,526336,,,,6.0.81.69, +"testlock_exe" = 1,VSS\Win32\testlock.exe,,,,1998-05-22,,,OLDER,,,,,,,108032,,,,, +"unlock_exe" = 1,VSS\Win32\unlock.exe,,,,1998-05-22,,,OLDER,,,,,,,153600,,,,, + +[VSS Admin win32 - ssadmin.exe] +"ssadmin_exe" = 1,VSS\Win32\ssadmin.exe,,,,1998-06-12,,1033,OLDER,,,,,,,12800,,,,6.0.81.63, + +[vss template dir] +"srcsafe_ini_1" = 1,VSS\Template\SrcSafe.ini,,,,1998-05-22,,,OLDER,,,,,,,1068,,,,, +"ssadmin_ini_1" = 1,VSS\Template\SSAdmin.ini,,,,1998-05-22,,,OLDER,,,,,,,171,,,,, +"template_ini_1" = 1,VSS\Template\Template.ini,,,,1998-05-22,,,OLDER,,,,,,,789,,,,, + +[VSS - Src] +"srcsafe_ini" = 1,VSS\srcsafe.ini,,,,1998-05-22,,,NEVER,,,,,,,1068,,,,, + +[VSS Create DB users/guest] +"ss_ini_1" = 1,VSS\Users\Guest\ss.ini,,,,1998-05-22,,,NEVER,,,,,,,582,,,,, + +[VSS Create DB users/admin] +"ssadmin_ini" = 1,VSS\Users\Admin\ssadmin.ini,,,,1998-05-22,,,NEVER,,,,,,,171,,,,, +"ss_ini" = 1,VSS\Users\Admin\ss.ini,,,,1998-05-22,,,NEVER,,,,,,,582,,,,, + +[VSS Create DB users] +"template_ini" = 1,VSS\Users\template.ini,,,,1998-05-22,,,OLDER,,,,,,,789,,,,, + +[VSS Create DB temp] +"tmp_tmp" = 1,VSS\Temp\tmp.tmp,,,,1998-05-22,,,OLDER,,,,,,,66,,,,, + +[VSS Create DB root] +"users_srv" = 1,VSS\users.srv,,,,1998-05-22,,,OLDER,,,,,,,58,,,,, + +[VSS Create DB data] +"aaaaaaaa" = 1,VSS\Data\aaaaaaaa,,,,1998-05-22,,,NEVER,,,,,,,378,,,,, +"aaaaaaaa_a" = 1,VSS\Data\aaaaaaaa.a,,,,1998-05-22,,,NEVER,,,,,,,0,,,,, +"aaaaaaaa_cnt" = 1,VSS\Data\aaaaaaaa.cnt,,,,1998-05-22,,,NEVER,,,,,,,8,,,,, +"um_dat" = 1,VSS\Data\um.dat,,,,1998-05-22,,,NEVER,,,,,,,374,,,,, + +[VSS Create DB win32] +"ddconv_exe" = 1,VSS\Win32\ddconv.exe,,,,1998-06-18,,,OLDER,,,,,,,310784,,,,, +"ddupd_exe" = 1,VSS\Win32\ddupd.exe,,,,1998-06-18,,,OLDER,,,,,,,442880,,,,, + +[VSS - HelpRoot] +"ssexp_chi_enu" = 1,VSS\ssusexp.chi,,,,1998-05-15,,,OLDER,,,,,,,97790,,,,, + +[VSS - SsexpHlp] +"ssexp_chm_enu" = 1,VSS\ssusexp.chm,,,,1998-05-15,,,OLDER,,,,,,,1071580,,,,, + +[VSS - IntegrationWin32] +"ssscc_dll" = 1,VSS\Win32\ssscc.dll,,,,1998-06-18,,1033,OLDER,,,,,,,1501184,,,,6.0.81.69, +"ssvb_dll" = 1,VSS\Win32\ssvb.dll,,,,1998-05-22,,1033,OLDER,,,,,,,381440,,,,4.0.13.9, +"ssint_exe" = 1,VSS\Win32\SSInt.exe,,,,1998-06-12,,1033,OLDER,,,,,,,140800,,,,6.0.81.63, + +[VSS Shared C/S] +"ssapi_dll" = 1,VSS\Win32\ssapi.dll,,,,1998-06-18,,1033,OLDER,,,,,,,591360,SYSTEM,,,6.0.81.69, +"ssgui_dll" = 1,VSS\Win32\ssgui.dll,,,,1998-06-12,,1033,OLDER,,,,,,,1564160,SYSTEM,,,6.0.81.63, + +[VSS Client] +"ss_exe" = 1,VSS\Win32\ss.exe,,,,1998-06-18,,,OLDER,,,,,,,415744,,,,, +"nlhtml_dll" = 1,VSS\Win32\NLHtml.Dll,,,,1998-05-22,,1033,OLDER,,,,,,,123392,,,,7.0.794.0, + +[VSS Client exe] +"ssexp_exe" = 1,VSS\Win32\ssexp.exe,,,,1998-06-12,,1033,OLDER,,,,,,,17920,,,,6.0.81.63, + +[VSS CRoot] +"folder_gif" = 1,VSS\folder.gif,,,,1998-05-22,,,OLDER,,,,,,,119,,,,, +"htmlfile_gif" = 1,VSS\htmlfile.gif,,,,1998-05-22,,,OLDER,,,,,,,910,,,,, + +[Davinci Wrappers] +"mdt2fw95_dll" = 1,MSDesign\mdt2fw95.dll,,,,1998-06-20,,1033,OLDER,,,,,,,65200,,,,2.0.0.8171, + +[Davinci Schema] +"mdt2db_dll" = 1,MSDesign\mdt2db.dll,,,,1998-06-20,,1033,OLDER,,,,,,,652848,,,,2.0.0.8171, +"mdt2dbui_dll_chs" = 1,msdesign\resource\2052\mdt2dbui.dll,,,,1998-07-06,,2052,OLDER,,,,,,,55568,,,,2.0.0.8171, + +[Davinci Query] +"mdt2qd_dll" = 1,MSDesign\mdt2qd.dll,,,,1998-06-20,,1033,OLDER,,,,,,,1291664,,,,2.0.0.8171, +"mdt2qdui_dll_chs" = 1,msdesign\resource\2052\mdt2qdui.dll,,,,1998-07-06,,2052,OLDER,,,,,,,51984,,,,2.0.0.8171, + +[Davinci Framework] +"mdt2fw_dll" = 1,MSDesign\mdt2fw.dll,,,,1998-06-24,,1033,OLDER,,,,,,,565304,,,,2.0.0.8171, +"mdt2fwui_dll_chs" = 1,msdesign\resource\2052\mdt2fwui.dll,,,,1998-07-02,,2052,OLDER,,,,,,,63760,,,,2.0.0.8171, + +[Davinci DDS GRID] +"mdt2g_dll" = 1,MSDesign\mdt2g.dll,,,,1998-06-20,,1033,OLDER,,,,,,,589824,,,,2.0.0.8171, +"mdt2gkor_dll" = 1,MSDesign\mdt2gkor.dll,,,,1998-04-24,,1033,OLDER,,,,,,,563712,,,,2.0.0.8083, + +[Davinci DDS FORMS] +"mdt2df_dll" = 1,MSDesign\mdt2df.dll,,,,1998-06-20,,1033,OLDER,,,,,,,608528,,,,2.0.0.8171, +"mdt2dfui_dll" = 1,MSDesign\mdt2dfx.dll,,,,1998-06-20,,1033,OLDER,,,,,,,11536,,,,2.0.0.8171, + +[Davinci DDS] +"mdt2dd_dll" = 1,MSDesign\mdt2dd.dll,,,,1998-06-20,,1033,OLDER,,,,,,,457904,,,,2.0.0.8171, +"mdt2ddui_dll_chs" = 1,msdesign\resource\2052\mdt2ddui.dll,,,,1998-07-06,,2052,OLDER,,,,,,,13584,,,,2.0.0.8171, +"mdt2gddo_dll" = 1,MSDesign\mdt2gddo.dll,,,,1998-06-20,,1033,OLDER,,,,,,,47264,,,,2.0.0.8171, +"mdt2gddr_dll" = 1,MSDesign\mdt2gddr.dll,,,,1998-06-20,,1033,OLDER,,,,,,,111008,,,,2.0.0.8171, + +[Davinci Data Tool Specific] +"mdt2dbns_dll" = 1,MSDesign\mdt2dbns.dll,,,,1998-06-20,,1033,OLDER,,,,,,,352672,,,,2.0.0.8171, +"mdt2fref_dll" = 1,MSDesign\mdt2fref.dll,,,,1998-06-20,,1033,OLDER,,,,,,,31312,,,,2.0.0.8171, + +[MS Office Button DLL] +"commtb32_dll" = 1,os\system\commtb32.dll,,,,1998-04-24,,2052,OLDER,,,,,,,57344,SYSTEM,,,1.10.96.1019, + +[MS Office Runtime DLL] +"mso97rt_dll" = 1,os\system\mso97rt.dll,,,,1998-04-24,,0,OLDER,,,,,,,3673360,,,,8.0.0.4328, +"mrt7chs_dll" = 1,os\system\mrt7chs.dll,,,,1998-04-24,,2052,OLDER,,,,,,,1235216,,,,8.0.0.3825, + +[Win API] +"apiload_exe" = 1,Common\Tools\Winapi\apiload.exe,,,,1998-07-21,,2052,OLDER,,,,,,,196608,,,,6.0.0.8169, +"apiload_txt" = 1,Common\Tools\Winapi\apiload.txt,,,,1998-06-30,,,OLDER,,,,,,,1264,,,,, +"mapi32_txt" = 1,Common\Tools\Winapi\mapi32.txt,,,,1998-07-15,,,OLDER,,,,,,,5871,,,,, +"win32api_txt" = 1,Common\Tools\Winapi\win32api.txt,,,,1998-07-28,,,OLDER,,,,,,,667832,,,,, + +[MSInfo] +"msinfo32_exe" = 1,os\msapps\msinfo\msinfo32.exe,,,,1998-04-24,,2052,OLDER,,,,,,,440832,,,,2.51.0.1003, +"imgwalk_dll" = 1,os\msapps\msinfo\imgwalk.dll,,,,1998-04-24,,1033,OLDER,,,,,,,18432,,,,2.51.0.1003, +"msinf16h_exe" = 1,os\msapps\msinfo\msinf16h.exe,,,,1998-04-24,,1033,OLDER,,,,,,,16304,,,,2.51.0.1003, +"msinfo32_hlp" = 1,os\msapps\msinfo\msinfo32.hlp,,,,1998-04-24,,,OLDER,,,,,,,31696,,,,, +"msinfo32_cnt" = 1,os\msapps\msinfo\msinfo32.cnt,,,,1998-04-24,,,OLDER,,,,,,,3010,,,,, +"msinfo32_ftg"= 1,msinfo32.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msinfo32_fts"= 1,msinfo32.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"msinfo32_gid"= 1,msinfo32.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[ATL] +"atl_dll_2" = 1,os\system\atl.dll,,,,1998-06-17,,1033,OLDER,,,,,,,69632,SYSTEM,,,3.0.8168.0, +"atl_dll_1" = 1,os\system\ansi\atl.dll,,,,1998-06-17,,1033,OLDER,,,,,,,69632,SYSTEM,,,3.0.8168.0, + +[Remote Data Access] +"msrdo20_dll" = 1,os\system\msrdo20.dll,,,,1998-06-18,,1033,OLDER,,,,,,,393216,SYSTEM,,,6.0.81.69, +"rdo98_chi_1" = 1,Common\Help\rdo98.chi,,,,1998-07-07,,,OLDER,,,,,,,51171,,,,, +"rdo98_chm_2" = 1,Common\Help\rdo98.chm,,,,1998-07-07,,,OLDER,,,,,,,463070,,,,, +"msrdo20_dep" = 1,os\system\msrdo20.dep,,,,1998-06-18,,,OLDER,,,,,,,2672,SYSTEM,,,, +"rdocurs_dll" = 1,os\system\Rdocurs.dll,,,,1998-06-18,,1033,OLDER,,,,,,,151552,SYSTEM,,,5.0.81.69, +"rdo20chs_dll" = 1,os\system\rdo20chs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,57856,SYSTEM,,,6.0.81.63, +"msrdc20_ocx" = 1,os\system\msrdc20.ocx,,,,1998-06-23,,1033,OLDER,,,,,,,176440,SYSTEM,,,6.0.81.69, +"msrdc20_dep" = 1,os\system\msrdc20.dep,,,,1998-06-18,,,OLDER,,,,,,,2495,SYSTEM,,,, +"msrdo20_srg" = 1,os\system\msrdo20.srg,,,,1998-05-07,,,OLDER,,,,,,,109,SYSTEM,,,, +"msrdc20_srg" = 1,os\system\msrdc20.srg,,,,1998-05-07,,,OLDER,,,,,,,111,SYSTEM,,,, +"msrdc20_oca"= 1,msrdc20.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"rdc20chs_dll" = 1,os\system\rdc20chs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,14336,SYSTEM,,,6.0.81.63, + +[DAG Jet IISAM Lotus] +"msltus35_dll" = 1,os\system\msltus35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,166160,SYSTEM,,,3.51.623.0, + +[DAG Jet IISAM Exchange] +"msexch35_dll" = 1,os\system\msexch35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,330000,SYSTEM,,,3.51.623.0, + +[dag Text ODBC Driver] +"odtext32_dll_1" = 1,os\system\odtext32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,4608,SYSTEM,,,3.51.1713.0, + +[DAG Jet IISAM Text] +"mstext35_dll" = 1,os\system\mstext35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,165648,SYSTEM,,,3.51.623.0, + +[dag Paradox ODBC Driver] +"odpdx32_dll_1" = 1,os\system\odpdx32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,4608,SYSTEM,,,3.51.1713.0, + +[DAG Jet IISAM Paradox] +"mspdox35_dll" = 1,os\system\mspdox35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,250128,SYSTEM,,,3.51.623.0, + +[DA Visual Foxpro] +"vfpodbc_dll" = 1,os\system\vfpodbc.dll,,,,1998-07-09,,1033,OLDER,,,,,,,934672,,,,6.0.8167.0, +"vfpodbc_txt" = 1,os\system\vfpodbc.txt,,,,1998-07-09,,,OLDER,,,,,,,11923,,,,, +"drvvfp_hlp_1" = 1,os\system\drvvfp.hlp,,,,1998-04-24,,,OLDER,,,,,,,203641,,,,, +"drvvfp_cnt_1" = 1,os\system\drvvfp.cnt,,,,1998-07-07,,,OLDER,,,,,,,5446,,,,, +"drvvfp_gid"= 1,drvvfp.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"drvvfp_ftg"= 1,drvvfp.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"drvvfp_fts"= 1,drvvfp.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[dag FoxPro ODBC Driver] +"odfox32_dll_1" = 1,os\system\odfox32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,4608,SYSTEM,,,3.51.1713.0, + +[dag Excel ODBC Driver] +"odexl32_dll_1" = 1,os\system\odexl32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,4608,SYSTEM,,,3.51.1713.0, + +[DAG Jet IISAM Excel] +"msexcl35_dll" = 1,os\system\msexcl35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,250128,SYSTEM,,,3.51.623.2, + +[dag dBase ODBC Driver] +"oddbse32_dll_1" = 1,os\system\oddbse32.dll,,,,1998-05-31,,1033,OLDER,,,,,,,4608,SYSTEM,,,3.51.1713.0, + +[DAG Jet IISAM XBase] +"msxbse35_dll" = 1,os\system\msxbse35.dll,,,,1998-04-24,,1033,OLDER,,,,,,,287504,SYSTEM,,,3.51.623.0, + +[dag ODBC Oracle Driver] +"msorcl20_dll" = 1,os\system\msorcl32.dll,,,,1998-06-24,,2052,OLDER,,,,,,,136976,SYSTEM,,,2.573.2927.0, +"msorcl32_hlp" = 1,os\system\msorcl32.hlp,,,,1998-07-14,,,OLDER,,,,,,,46360,SYSTEM,,,, +"msorcl32_cnt" = 1,os\system\msorcl32.cnt,,,,1998-07-14,,,OLDER,,,,,,,1366,SYSTEM,,,, +"msorcl32_txt" = 1,os\system\msorcl32.txt,,,,1998-07-14,,,OLDER,,,,,,,2136,SYSTEM,,,, + +[dag ODBC SQL Driver] +"sqlsrv32_dll" = 1,os\system\sqlsrv32.dll,,,,1998-07-30,,2052,OLDER,,,,,,,418064,SYSTEM,,,3.60.3.19, +"odbcbcp_dll" = 1,os\system\odbcbcp.dll,,,,1998-06-12,,1033,OLDER,,,,,,,9728,SYSTEM,,,3.60.3.19, +"windbver_exe" = 1,os\system\windbver.exe,,,,1998-06-12,,1033,OLDER,,,,,,,30720,SYSTEM,,,1997.8.11.0, +"sqlsodbc_hlp" = 1,os\system\sqlsodbc.hlp,,,,1998-07-14,,,OLDER,,,,,,,15973,SYSTEM,,,, +"sqlsrdme_txt" = 1,os\system\SQLSRdMe.txt,,,,1998-07-14,,,OLDER,,,,,,,9287,SYSTEM,,,, + +[dag Jolt] +"msjtor35_dll" = 1,shared\oledb\msjtor35.dll,,,,1998-05-31,,1033,OLDER,,,,,,,295696,SYSTEM,,,3.52.1527.4, +"msjt4jlt_dll" = 1,os\system\msjt4jlt.dll,,,,1998-05-31,,1033,OLDER,,,,,,,1233680,SYSTEM,,,3.52.1527.3, +"joltread_txt" = 1,shared\oledb\JoltRead.txt,,,,1998-07-14,,,OLDER,,,,,,,4978,SYSTEM,,,, + +[dag ADO] +"msader15_dll" = 1,shared\ado\msader15.dll,,,,1998-06-24,,2052,OLDER,,,,,,,6656,SYSTEM,,,2.0.3002.11, +"msado15_dll" = 1,shared\ado\msado15.dll,,,,1998-06-19,,0,OLDER,,,,,,,333072,SYSTEM,,,2.0.3002.11, +"msador15_dll" = 1,shared\ado\msador15.dll,,,,1998-06-19,,0,OLDER,,,,,,,37888,SYSTEM,,,2.0.3002.11, +"msadrh15_dll" = 1,shared\ado\msadrh15.dll,,,,1998-06-19,,0,OLDER,,,,,,,40720,SYSTEM,,,2.0.3002.11, +"adofre15_reg" = 1,shared\ado\adofre15.reg,,,,1998-05-31,,,OLDER,,,,,,,640,SYSTEM,,,, +"adoapt15_reg" = 1,shared\ado\adoapt15.reg,,,,1998-05-31,,,OLDER,,,,,,,665,SYSTEM,,,, +"readme_txt_13" = 1,shared\ado\ADOread.txt,,,,1998-07-14,,,OLDER,,,,,,,16829,SYSTEM,,,, +"adojavas_inc" = 1,shared\ado\adojavas.inc,,,,1998-05-31,,,OLDER,,,,,,,9871,SYSTEM,,,, +"adovbs_inc" = 1,shared\ado\adovbs.inc,,,,1998-05-31,,,OLDER,,,,,,,10099,SYSTEM,,,, +"makapt15_bat" = 1,shared\ado\makapt15.bat,,,,1998-05-31,,,OLDER,,,,,,,26,SYSTEM,,,, +"makfre_bat" = 1,shared\ado\makfre15.bat,,,,1998-05-31,,,OLDER,,,,,,,26,SYSTEM,,,, + +[dag OLEDB Simple Provider] +"msdaosp_dll" = 1,shared\oledb\msdaosp.dll,,,,1998-06-16,,1033,OLDER,,,,,,,67072,SYSTEM,,,2.0.30.2, +"simpdata_tlb" = 1,shared\oledb\simpdata.tlb,,,,1998-06-16,,,OLDER,,,,,,,5904,SYSTEM,,,, + +[dag OLEDB Oracle Provider] +"msdaora_dll" = 1,shared\oledb\msdaora.dll,,,,1998-06-26,,2052,OLDER,,,,,,,183056,SYSTEM,,,2.0.3002.15, +"oraoledb_txt" = 1,shared\oledb\OraOledb.txt,,,,1998-07-14,,,OLDER,,,,,,,3025,SYSTEM,,,, + +[dag MTS] +"mtxoci_dll" = 1,shared\odbc\MTxOCi.dll,,,,1998-06-01,,1033,OLDER,,,,,,,69904,SYSTEM,,,1998.2.715.0, + +[dag OLEDB SQL Server Provider] +"sqloledb_dll" = 1,shared\oledb\SQLOLEDB.DLL,,,,1998-07-14,,2052,OLDER,,,,,,,511248,SYSTEM,,,7.0.5.2, +"dbmsshrn_dll" = 1,shared\oledb\dbmsshrn.dll,,,,1998-06-24,,1033,OLDER,,,,,,,16656,SYSTEM,,,1998.6.5.0, +"sqloledb_txt" = 1,shared\oledb\SQLOLEDB.txt,,,,1998-07-14,,,OLDER,,,,,,,2652,SYSTEM,,,, +"sqlsoldb_hlp" = 1,shared\oledb\sqlsoldb.hlp,,,,1998-07-14,,,OLDER,,,,,,,7953,SYSTEM,,,, +"sqlsoldb_gid"= 1,sqlsoldb.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"sqlsoldb_ftg"= 1,sqlsoldb.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"sqlsoldb_fts"= 1,sqlsoldb.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[dag ADC Server] +"adcjavas_inc" = 1,shared\msadc\adcjavas.inc,,,,1998-05-31,,,OLDER,,,,,,,596,SYSTEM,,,, +"adcvbs_inc_1" = 1,shared\msadc\adcvbs.inc,,,,1998-05-31,,,OLDER,,,,,,,589,SYSTEM,,,, +"msadcf_dll" = 1,shared\msadc\msadcf.dll,,,,1998-06-19,,0,OLDER,,,,,,,34576,SYSTEM,,,2.0.3002.12, +"msadcs_dll" = 1,shared\msadc\msadcs.dll,,,,1998-06-19,,0,OLDER,,,,,,,41744,SYSTEM,,,2.0.3002.12, +"msadds_dll" = 1,shared\msadc\msadds.dll,,,,1998-06-19,,0,OLDER,,,,,,,130320,SYSTEM,,,2.0.3002.12, + +[dag ADC Client] +"msadce_dll" = 1,shared\msadc\msadce.dll,,,,1998-06-19,,0,OLDER,,,,,,,280848,SYSTEM,,,2.0.3002.12, +"msadcer_dll" = 1,shared\msadc\msadcer.dll,,,,1998-06-24,,2052,OLDER,,,,,,,8192,SYSTEM,,,2.0.3002.12, +"msadco_dll" = 1,shared\msadc\msadco.dll,,,,1998-06-19,,0,OLDER,,,,,,,127248,SYSTEM,,,2.0.3002.12, +"msadcor_dll" = 1,shared\msadc\msadcor.dll,,,,1998-06-24,,2052,OLDER,,,,,,,5120,SYSTEM,,,2.0.3002.12, +"msdatsrc_tlb" = 1,shared\msadc\MSDATSRC.TLB,,,,1998-06-19,,,OLDER,,,,,,,2492,SYSTEM,,,, +"msaddsr_dll" = 1,shared\msadc\msaddsr.dll,,,,1998-06-24,,2052,OLDER,,,,,,,10752,SYSTEM,,,2.0.3002.12, +"msdaprst_dll" = 1,shared\msadc\msdaprst.dll,,,,1998-06-19,,0,OLDER,,,,,,,114448,SYSTEM,,,2.0.3002.12, +"msjtes_dll" = 1,shared\msadc\msjtes40.dll,,,,1998-06-19,,1033,OLDER,,,,,,,204800,SYSTEM,,,4.0.1718.11, +"msadcfr_dll" = 1,shared\msadc\msadcfr.dll,,,,1998-06-24,,2052,OLDER,,,,,,,3584,SYSTEM,,,2.0.3002.12, +"msdfmap_dll" = 1,shared\msadc\msdfmap.dll,,,,1998-06-19,,0,OLDER,,,,,,,26384,SYSTEM,,,2.0.3002.12, +"msdfmap_ini" = 1,shared\msadc\msdfmap.ini,,,,1998-05-31,,,OLDER,,,,,,,1405,SYSTEM,,,, +"handler_reg" = 1,shared\msadc\handler.srg,,,,1998-05-31,,,OLDER,,,,,,,510,SYSTEM,,,, +"mdac20_cab" = 1,shared\msadc\mdac20.cab,,,,1998-07-15,,,OLDER,,,,,,,290,SYSTEM,,,, +"mdac20_a_cab" = 1,shared\msadc\mdac20_a.cab,,,,1998-07-15,,,OLDER,,,,,,,421,SYSTEM,,,, + +[dag ADC 11] +"mdac11_cab" = 1,shared\msadc\mdac11.cab,,,,1998-06-22,,,OLDER,,,,,,,779461,SYSTEM,,,, +"readme_txt_11" = 1,shared\msadc\RDS1read.txt,,,,1998-07-14,,,OLDER,,,,,,,10175,SYSTEM,,,, + +[dag Data Env] +"deext_tlb" = 1,shared\DataEnv\deext.tlb,,,,1998-06-09,,,OLDER,,,,,,,32824,SYSTEM,,,, +"msde_dll" = 1,shared\DataEnv\msde.dll,,,,1998-06-09,,1033,OLDER,,,,,,,509440,SYSTEM,,,6.0.0.3005, +"msderun_dll" = 1,shared\DataEnv\msderun.dll,,,,1998-06-09,,1033,OLDER,,,,,,,137216,SYSTEM,,,6.0.0.3005, +"msderun_dep" = 1,shared\DataEnv\msderun.dep,,,,1998-06-09,,,OLDER,,,,,,,589,,,,, +"msdeui_dll_chs" = 1,Shared\DataEnv\Resource\2052\msdeui.dll,,,,1998-06-09,,2052,OLDER,,,,,,,90112,SYSTEM,,,6.0.0.3005, + +[Shell Help] +"vshelp_dll" = 1,os\system\vshelp.dll,,,,1998-05-26,,1033,OLDER,,,,,,,116938,,,,6.0.0.8146, + +[Loc Shell Help] +"vshelpui_dll_chs" = 1,os\system\resource\2052\vshelpui.dll,,,,1998-07-02,,2052,OLDER,,,,,,,18944,,,,6.0.0.8159, + +[VB TLBINF32] +"tlbinf32_dll" = 1,os\system\tlbinf32.dll,,,,1998-06-18,,1033,OLDER,,,,,,,153600,SYSTEM,,,1.1.81.69, + +[Templates - forms] +"aboutb_frx" = 1,VB98\template\forms\aboutb.frx<ڡԻ.frx>,,,,1998-05-06,,,OLDER,,,,,,,778,,,,, +"abtdlg_frm" = 1,VB98\template\forms\abtdlg.frm<ڡԻ.frm>,,,,1998-07-02,,,OLDER,,,,,,,9184,,,,, +"browser_frm" = 1,VB98\template\forms\browser.frm,,,,1998-07-01,,,OLDER,,,,,,,8445,,,,, +"browser_frx" = 1,VB98\template\forms\browser.frx,,,,1998-05-06,,,OLDER,,,,,,,4428,,,,, +"dialog_frm" = 1,VB98\template\forms\dialog.frm<Ի.frm>,,,,1998-04-24,,,OLDER,,,,,,,1130,,,,, +"frmtip_frx" = 1,VB98\template\forms\frmtip.frx<ջ.frx>,,,,1998-05-06,,,OLDER,,,,,,,778,,,,, +"logindlg_frm" = 1,VB98\template\forms\logindlg.frm<¼Ի.frm>,,,,1998-04-24,,,OLDER,,,,,,,2756,,,,, +"splash_frx" = 1,VB98\template\forms\splash.frx<չʾĻ.frx>,,,,1998-05-06,,,OLDER,,,,,,,790,,,,, +"splsscrn_frm" = 1,VB98\template\forms\splsscrn.frm<չʾĻ.frm>,,,,1998-07-02,,,OLDER,,,,,,,6533,,,,, +"tipofday_frm" = 1,VB98\template\forms\tipofday.frm<ջ.frm>,,,,1998-07-02,,,OLDER,,,,,,,4700,,,,, +"vbdtfrwz_vbz" = 1,VB98\template\forms\vbdtfrwz.vbz,,,,1998-05-06,,,OLDER,,,,,,,74,,,,, +"odbclgin_frm" = 1,VB98\template\forms\odbclgin.frm,,,,1998-07-02,,,OLDER,,,,,,,8608,,,,, +"odbclog_frx" = 1,VB98\template\forms\odbclog.frx,,,,1998-05-06,,,OLDER,,,,,,,16,,,,, +"option_frx" = 1,VB98\template\forms\option.frx<ѡԻ.frx>,,,,1998-05-06,,,OLDER,,,,,,,12,,,,, +"optsdlg_frm" = 1,VB98\template\forms\optsdlg.frm<ѡԻ.frm>,,,,1998-07-01,,,OLDER,,,,,,,7228,,,,, + +[Templates - projects] +"form1_frm" = 1,VB98\template\projects\form1.frm,,,,1998-05-06,,,OLDER,,,,,,,484,,,,, +"vbapwiz_vbz" = 1,VB98\template\projects\vbapwiz.vbz,,,,1998-04-24,,,OLDER,,,,,,,69,,,,, +"addin_frm" = 1,VB98\template\projects\addin.frm,,,,1998-05-06,,,OLDER,,,,,,,1350,,,,, +"actvdoc1_dob" = 1,VB98\template\projects\actvdoc1.dob,,,,1998-04-24,,,OLDER,,,,,,,669,,,,, +"addin_vbp" = 1,VB98\template\projects\addin.vbp<ӳ.vbp>,,,,1998-05-06,,,OLDER,,,,,,,982,,,,, +"addin_dsr" = 1,VB98\template\projects\addin.dsr,,,,1998-04-24,,,OLDER,,,,,,,4405,,,,, +"addin_dca" = 1,VB98\template\projects\addin.dca,,,,1998-05-06,,,OLDER,,,,,,,3975,,,,, +"axdocdll_vbp" = 1,VB98\template\projects\axdocdll.vbp,,,,1998-05-06,,,OLDER,,,,,,,597,,,,, +"axdocexe_vbp" = 1,VB98\template\projects\axdocexe.vbp,,,,1998-05-06,,,OLDER,,,,,,,589,,,,, +"wizman_vbz" = 1,VB98\template\projects\wizman.vbz,,,,1998-05-06,,,OLDER,,,,,,,67,,,,, + +[Templates - code] +"loadres_bas" = 1,VB98\template\code\loadres.bas<Դ.bas>,,,,1998-05-19,,,OLDER,,,,,,,2081,,,,, +"regkeys_bas" = 1,VB98\template\code\RegKeys.BAS<ע.bas>,,,,1998-07-07,,,OLDER,,,,,,,8785,,,,, + +[Templates - controls] +"listbtns_frm" = 1,VB98\template\controls\ListBtns.frm<ťб.frm>,,,,1998-07-02,,,OLDER,,,,,,,4591,,,,, +"listbtns_frx" = 1,VB98\template\controls\ListBtns.frx<ťб.frx>,,,,1998-05-06,,,OLDER,,,,,,,2122,,,,, +"listpick_frm" = 1,VB98\template\controls\listpick.frm<ƶťб.frm>,,,,1998-07-02,,,OLDER,,,,,,,7110,,,,, +"listpick_frx" = 1,VB98\template\controls\listpick.frx<ƶťб.frx>,,,,1998-05-06,,,OLDER,,,,,,,516,,,,, +"tvlv_frm" = 1,VB98\template\controls\tvlv.frm<״ͼбͼ.frm>,,,,1998-07-01,,,OLDER,,,,,,,5650,,,,, +"tvlv_frx" = 1,VB98\template\controls\tvlv.frx<״ͼбͼ.frx>,,,,1998-05-06,,,OLDER,,,,,,,778,,,,, + +[Templates - menus] +"editmenu_frm" = 1,VB98\template\menus\editmenu.frm<༭˵.frm>,,,,1998-05-06,,,OLDER,,,,,,,2085,,,,, +"expfmenu_frm" = 1,VB98\template\menus\expfmenu.frm<Դļ˵.frm>,,,,1998-05-06,,,OLDER,,,,,,,2116,,,,, +"filemenu_frm" = 1,VB98\template\menus\filemenu.frm<ļ˵.frm>,,,,1998-05-06,,,OLDER,,,,,,,3130,,,,, +"helpmenu_frm" = 1,VB98\template\menus\helpmenu.frm<˵.frm>,,,,1998-05-06,,,OLDER,,,,,,,1536,,,,, +"viewmenu_frm" = 1,VB98\template\menus\viewmenu.frm<ͼ˵.frm>,,,,1998-05-06,,,OLDER,,,,,,,3550,,,,, +"winmenu_frm" = 1,VB98\template\menus\winmenu.frm<ڲ˵.frm>,,,,1998-05-06,,,OLDER,,,,,,,1560,,,,, + +[Templates - HTMLApp] +"htmlpg1_dsr" = 1,VB98\template\projects\HTMLPage.dsr,,,,1998-05-27,,,OLDER,,,,,,,746,,,,, +"htmlpg1_dsx" = 1,VB98\template\projects\HTMLPage.dsx,,,,1998-06-18,,,OLDER,,,,,,,248,,,,, +"dhtmlapp_vbp" = 1,VB98\template\projects\DHTMLApp.vbp,,,,1998-05-27,,,OLDER,,,,,,,914,,,,, +"dhtml_bas" = 1,VB98\template\projects\dhtml.bas,,,,1998-05-06,,,OLDER,,,,,,,1491,,,,, +"htmlpage_log"= 1,HTMLPage.log,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"dhtmlapp_vbw" = 1, DHTMLapp.vbw,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[VB Control Project Files] +"vbentcnt_vbp" = 1,VB98\template\projects\vbentctl.vbp,,,,1998-07-01,,,OLDER,,,,,,,2002,,,,, + +[VB VSEXT] +"vsext_srg" = 1,os\system\vsext.srg,,,,1998-04-24,,,OLDER,,,,,,,1536,,,,, + +[VB Docs for VC Tag] +"vbcmn98_chi_1" = 1,Common\Help\vbcmn98.chi,,,,1998-06-23,,,OLDER,,,,,,,23839,,,,, + +[VB Docs for VC Sec] +"vbcmn98_chm_1" = 1,Common\Help\vbcmn98.chm,,,,1998-06-23,,,OLDER,,,,,,,165576,,,,, +"vbdef98_chi_1" = 1,Common\Help\vbdef98.chi,,,,1998-06-23,,,OLDER,,,,,,,18819,,,,, +"vbdef98_chm_1" = 1,Common\Help\vbdef98.chm,,,,1998-06-23,,,OLDER,,,,,,,63818,,,,, +"veendf98_chi_1" = 1,Common\Help\veendf98.chi,,,,1998-06-23,,,OLDER,,,,,,,17690,,,,, +"veendf98_chm_1" = 1,Common\Help\veendf98.chm,,,,1998-06-23,,,OLDER,,,,,,,57284,,,,, + +[Wizard Host] +"hostwiz_dll" = 1,Common\Wizard98\Hostwiz.dll,,,,1998-06-18,,1033,OLDER,,,,,,,155648,,,,6.0.0.8169, +"subwiz_tlb" = 1,Common\Wizard98\Subwiz.tlb,,,,1998-06-18,,,OLDER,,,,,,,12784,,,,, +"hstwzchs_dll" = 1,Common\Wizard98\hstwzchs.dll,,,,1998-07-20,,2052,OLDER,,,,,,,24576,,,,6.0.0.8163, + +[VBA Files] +"riched20_dll" = 1,os\system\riched20.dll,,,,1998-04-24,,0,OLDER,,,,,,,294672,SYSTEM,,,5.0.140.0, +"scp32_dll" = 1,os\system\scp32.dll,,,,1998-03-24,,1033,OLDER,,,,,,,15872,SYSTEM,,,2.0.330.0, + +[VB SYSINFO] +"sysinfo_ocx" = 1,os\system\sysinfo.ocx,,,,1998-06-24,,1033,OLDER,,,,,,,67376,,,,6.0.81.69, +"sysinfo_dep" = 1,os\system\sysinfo.dep,,,,1998-06-18,,,OLDER,,,,,,,2483,,,,, +"sysinfo_srg" = 1,os\system\sysinfo.srg,,,,1998-05-07,,,OLDER,,,,,,,109,,,,, +"sysinchs_dll" = 1,os\system\sysinchs.dll,,,,1998-07-07,,2052,OLDER,,,,,,,9728,,,,6.0.81.63, +"sysinf98_ch2" = 1,Common\Help\sysinf98.chi,,,,1998-06-23,,,OLDER,,,,,,,14297,,,,, +"sysinf98_ch1" = 1,Common\Help\sysinf98.chm,,,,1998-06-23,,,OLDER,,,,,,,40298,,,,, +"sysinfo_oca"= 1,sysinfo.oca,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[HLP95EN] +"hlp95en_dll_1" = 1,os\system\Hlp95en.dll,,,,1998-07-09,,1033,OLDER,,,,,,,31744,,,,1.1.0.0, + +[VBCTLHLP] +"vbcmn96_hlp" = 1,Common\Help\vbcmn96.hlp,,,,1998-04-24,,,OLDER,,,,,,,459261,,,,, +"vbcmn96_cnt" = 1,Common\Help\vbcmn96.cnt,,,,1998-04-24,,,OLDER,,,,,,,1280,,,,, +"vbcmn96_ftg"= 1,vbcmn96.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"vbcmn96_fts"= 1,vbcmn96.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"vbcmn96_gid"= 1,vbcmn96.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"vb5def_hlp" = 1,Common\Help\vb5def.hlp,,,,1998-04-24,,,OLDER,,,,,,,250499,,,,, +"vb5def_ftg"= 1,vb5def.ftg,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"vb5def_fts"= 1,vb5def.fts,,,!COPY,,,,,,REMOVE,,,,,0,,,,, +"vb5def_gid"= 1,vb5def.gid,,,!COPY,,,,,,REMOVE,,,,,0,,,,, + +[dag ODBC Conf Exe] +"odbcconf_exe" = 1,Setup\odbcconf.exe,,,,1998-06-22,,,OLDER,,,,,,,31744,SYSTEM,,,3.60.3017.0, + +[ReadMe] +"install_htm_1" = 1,Install.htm,,,,1998-05-28,,,OLDER,,,,,,,38172,,,,, +"readvb_txt" = 1,ReadmeVB.htm,,,,1998-07-25,,,OLDER,,,,,,,171153,,,,, +"readmedt_htm" = 1,ReadmeDT.htm,,,,1998-07-25,,,OLDER,,,,,,,5424,,,,, +"readmerp_htm" = 1,ReadmeRP.htm,,,,1998-07-25,,,OLDER,,,,,,,55354,,,,, +"readmess_htm" = 1,readmess.htm,,,,1998-06-25,,,OLDER,,,,,,,28932,,,,, + +[Redist text] +"redist_txt_1" = 1,Common\Redist\redist.txt,,,,1998-07-30,,,OLDER,,,,,,,1384915,,,,, +;*** END ************************************************************ +;** ** +;** Automatically generated on: Tue Aug 04 01:06:45 1998 ** +;** ** +;*** END ************************************************************ diff --git a/cadVb/SETUP/VB98ENT.STF b/cadVb/SETUP/VB98ENT.STF new file mode 100644 index 0000000..825a8b3 --- /dev/null +++ b/cadVb/SETUP/VB98ENT.STF @@ -0,0 +1,2687 @@ + +App Name Visual Basic 6.0 ҵ +App Version 6.0.0.0.0804 (2052) +Frame Caption Visual Basic 6.0 ҵ氲װ +Dialog Caption Base Visual Basic 6.0 ҵ +About Box String Microsoft Visual Basic װ\n\nȨ (C) 1998 Microsoft Corporation +Check Modules ThunderRT5Main,Microsoft Visual Basic,ThunderRTMain,Microsoft VB Runtime,RaidClass,Microsoft Raid,MSVCED50,Microsoft Developer Studio,wndclass_desked_gsk,Microsoft Development Environment +Check Modules2 Fox_4000001,Microsoft Visual FoxPro, graph, MS Graph, ed, MS Draw, msinfo, MS Info,odbcad32,ODBC administrator,odbcjt32, ODBC Driver, !Microsoft Exchange!, Microsoft Exchange +Check Modules3 OMain,Microsoft Access, msaccess,MS Access,msarn110,MS Access Runtime,msarn200,MS Access Runtime,MS:SCC:REFRESH,Microsoft Visual SourceSafe,MSOfficeWClass,Microsoft Office Manager +Check Modules4 VFP66400000,Microsoft Visual FoxPro,valecstart,Visual Studio Analyzer Server +MSAPPS Mode local +Inf File Name VB98ENT.INF +Maximum Object ID 2900 +Floppy Mode Root Object ID 6:1 2 3 +Maintenance Mode Root Object ID 7:1 2 3 +Batch Mode Root Object ID 6:1 2 3 +Setup Version 3.0.0.1210 +ObjID Install During Batch Mode Title Descr Type Data BMP Id Vital Shared Dir Chang Dest Dir Check Dir Installed By Us + +1 CustomAction """COMMON98.DLL"", ""SetDefaultDir"", ""VB98;HKEY_LOCAL_MACHINE,Software\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic,ProductDir"" " %d +2 Microsoft Visual Basic 6.0 ҵ AppSearch "%1,,,128,yes,no" +3 Microsoft Visual SourceSafe CustomAction """COMMON98.DLL"",VssAppSrch, ""Required,c:\VSS,srcsafe.ini,, 4 5""" +4 SearchEnv """SSDIR""" +5 SearchDrives """fixed""" + + + + + + === Visual Basic Install Modes (mainstf.etf) === + +6 yes Floppy Install AppMainDlg 761 762 : 8 21 41 9 2331 2871 +7 yes Maintenance Install CustomDlg 763 1901 764 2341 1421 1041 2291:21 41 9 2871 %D +8 CustomAction "COMMON98.DLL,SyncEXECalloutCAH,""""""wpie15.exe"""" /q:a /r:n""" %d + +9 Group 10 11 12 13 +10 CustomAction """COMMON98.DLL"", ""GetPathFromReg"", ""HKEY_LOCAL_MACHINE,Software\Microsoft\VisualStudio\6.0\Setup,VSCommonDir"" " %p\Microsoft Visual Studio\Common +11 CustomAction """COMMON98.DLL"", ""GetPathFromReg"", ""HKEY_LOCAL_MACHINE,Software\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual SourceSafe,ProductDir"" " %10\VSS + +12 CustomAction """COMMON98.DLL"", ""GetPathFromReg"", ""HKEY_LOCAL_MACHINE,SOFTWARE\Microsoft\Windows\CurrentVersion,CommonFilesDir"" " %p\Common<%p\Common Files> + +13 CustomAction "COMMON98.DLL,NeverRemoveGroup,""14""" %d +14 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\VisualStudio\6.0\Setup,VSCommonDir,%s" %10 + + + + + + + + + + + + + + === Main CAH/Detection (MainCah.etf) === + +21 Group 22 23 +22 CustomAction "COMMON98.DLL,DetectWzRegKey,Microsoft Visual Basic" + +23 Group 33 27 28 29 30 26 25 + + === EULA (MainCah.etf) === +24 CustomAction "COMMON98.DLL,LicenseDlg,Setup;eula_txt" + +25 CustomAction "PHOLDER.DLL,SPPlaceHolderCAH" + + === IE4 Check (MainCah.etf) === +26 CustomAction "COMMON98.DLL,CheckRegKey,""LOCAL,Software\Microsoft\Internet Explorer,Version""" + === Set DestDir to Program Items (MainCah.etf) === +27 CustomAction "COMMON98.DLL,GetWindowsPathFromReg,""Programs, True""" + + === Check Operating System (MainCah.etf) === +28 IsWin95 CustomAction "COMMON98.DLL,DetectOS,Win95 " +29 IsWinnt3x CustomAction "COMMON98.DLL, DetectOS, winnt3x" +30 IsWinNT40 CustomAction "COMMON98.DLL, DetectOS, winnt40" +31 Is40Shell CustomAction "COMMON98.DLL, DetectOS, 40shell" +32 IsWinNT50 CustomAction "COMMON98.DLL, DetectOS, winnt50" + + === Check Admin Privileges (MainCah.etf) === +33 Check Adminstrator CustomAction "COMMON98.DLL,DetectAdminPrivileges" + + === Sys Always (system.etf) === + +41 Group 161 281 51 91 101 611 671 621 2821 111 61 71 2691 291 271 661 141 151 %d + + === vc MSVCRT40.DLL Sys === +51 InstallSysFile "vc MSVCRT40 DLL,msvcrt40_dll" vital %M + + === Tahoma Font Component (fptahoma.etf) === + +61 Group 63 + +62 DetectOlderFile """tahoma.ttf""" %w\fonts +63 Depend "62 ? 64 : 67" +64 Depend "30 ? 65 66 : 67" +65 CopyFile "Font Files,tahoma_ttf" %W +66 CustomAction "COMMON98.DLL,ReplaceFont,tahoma.ttf" %w\fonts +67 InstallTTFFile "Font Files, tahoma_ttf, Tahoma (True Type)" %M + + + === Shell MSAddIndr component === + +71 Group 72 76 77 %d + +72 Group 73 74 75 %d +73 msaddndr.dll InstallShared "AddIn Designer,msaddndr_dll,msaddndr.dll,,2823" %12\designer +74 msaddndr.dep InstallShared "AddIn Designer,msaddndr_dep,msaddndr.dep,,2823" %12\designer +75 msaddndr.tlb InstallShared "AddIn Designer,msaddndr_tlb,msaddndr.tlb,,2823" %12\designer + +76 CopyFile "AddIn Designer,msadnchs_dll" %73 +77 Group 78 80 %d +78 Depend "73 ? 79 2826" +79 msaddndr.dll CustomAction "COMMON98.DLL,SelfReg,""AddIn Designer,msaddndr_dll""" %73 +80 Depend "75 ? 81" +81 msaddndr.tlb CustomAction "COMMON98.DLL,RegisterTypeLibrary,""AddIn Designer;msaddndr_tlb""" %75 + + + + + === VC CRT OS Retail (IO) (crtdllio.etf) === +91 Group 92 + +92 msvcirt.dll InstallSysFile "Sys Files - CRT (IO) Dlls,msvcirt_dll" %m + + === VB Runtime (vbruntm.etf)=== +101 Group 102 103 105 +102 InstallSysFile "VB Runtime,msvbvm50_dll" Vital %M +103 CustomAction "COMMON98.DLL,NeverRemoveGroup,""104""" +104 msvbvm60.dll CustomAction "COMMON98.DLL,RegisterFile,""VB Runtime,msvbvm50_dll,2""" %102 +105 InstallSysFile "VB Runtime,vb6chs_dll" %M + + === vc MFC Os Ansi Retail component (OSRETAIL.ETF) === + +111 Group 112 113 115 116 118 119 121 122 124 125 127 128 130 131 133 134 136 137 %M + +112 InstallSysFile "vc MFC Os Retail, mfc42_dll" %M +113 Depend 112 ? 114 +114 mfc42.dll CustomAction "COMMON98.DLL,RegisterFile,""vc MFC Os Retail,mfc42_dll,1""" %112 + + +115 CustomAction "COMMON98.DLL,LangCheckCAH,CHS" +116 Depend "115 ? 117" +117 InstallSysFile "vc MFC Os Retail, mfc42chs_dll" %M + +118 CustomAction "COMMON98.DLL,LangCheckCAH,CHT" +119 Depend "118 ? 120" +120 InstallSysFile "vc MFC Os Retail, mfc42cht_dll" %M + +121 CustomAction "COMMON98.DLL,LangCheckCAH,KOR" +122 Depend "121 ? 123" +123 InstallSysFile "vc MFC Os Retail, mfc42kor_dll" %M + +124 CustomAction "COMMON98.DLL,LangCheckCAH,JPN" +125 Depend "124 ? 126" +126 InstallSysFile "vc MFC Os Retail, mfc42jpn_dll" %M + +127 CustomAction "COMMON98.DLL,LangCheckCAH,DEU" +128 Depend "127 ? 129" +129 InstallSysFile "vc MFC Os Retail, mfc42deu_dll" %M + +130 CustomAction "COMMON98.DLL,LangCheckCAH,FRA" +131 Depend "130 ? 132" +132 InstallSysFile "vc MFC Os Retail, mfc42fra_dll" %M + +133 CustomAction "COMMON98.DLL,LangCheckCAH,ESP" +134 Depend "133 ? 135" +135 InstallSysFile "vc MFC Os Retail, mfc42esp_dll" %M + +136 CustomAction "COMMON98.DLL,LangCheckCAH,ITA" +137 Depend "136 ? 138" +138 InstallSysFile "vc MFC Os Retail, mfc42ita_dll" %M + + === RegSvr32 Component ( RegSvr32.etf ) === + +141 Group 142 +142 regsvr32.exe InstallSysFile "Sys Files - Regsrv32, regsvr32_exe_3" %m + + === Binding Manager (vbbndmgr.etf)=== +151 Group 152 153 +152 InstallShared "VB Binding Manager,msbind_dll,msbind.dll,,2823" %M +153 Depend "152?154 155" +154 CopyFile "VB Binding Manager,msbind_dep" %152 +155 msbind.dll SelfReg "VB Binding Manager,msbind_dll,,, " %152 + + ====MSDN HTML HELP Component (hhelp.etf) ====== + +161 Group 162 163 164 166 171 172 173 %D +162 InstallSysFile "HTML Help,itircl_dll" +163 InstallSysFile "HTML Help,itss_dll" +164 CustomAction "COMMON98.DLL,NeverRemoveGroup,""165""" %D +165 CopyFile "HTML Help,hh_exe" %W + +166 Group 167 169 + +167 Depend 162 ? 168 +168 itircl.dll SelfReg "HTML Help,itircl_dll,," %162 + +169 Depend 163 ? 170 +170 itss.dll SelfReg "HTML Help,itss_dll,," %163 +171 Group 174 177 180 183 186 189 192 195 198 201 204 207 210 213 216 %D +172 Group 219 222 225 228 231 234 237 240 243 246 249 252 255 %D +173 Group 175 259 %D +174 CustomAction "COMMON98.DLL,LangCheckCAH,ARA" +175 Depend "174 ? 176 : 178" +176 InstallSysFile "HTML Help, hhctrl_ocx_ara" %M +177 CustomAction "COMMON98.DLL,LangCheckCAH,BAS" +178 Depend "177 ? 179 : 181" +179 InstallSysFile "HTML Help, hhctrl_ocx_bas" %M +180 CustomAction "COMMON98.DLL,LangCheckCAH,CAT" +181 Depend "180 ? 182 : 184" +182 InstallSysFile "HTML Help, hhctrl_ocx_cat" %M +183 CustomAction "COMMON98.DLL,LangCheckCAH,CHS" +184 Depend "183 ? 185 : 187" +185 InstallSysFile "HTML Help, hhctrl_ocx_chs" %M +186 CustomAction "COMMON98.DLL,LangCheckCAH,CHT" +187 Depend "186 ? 188 : 190" +188 InstallSysFile "HTML Help, hhctrl_ocx_cht" %M +189 CustomAction "COMMON98.DLL,LangCheckCAH,CSY" +190 Depend "189 ? 191 : 193" +191 InstallSysFile "HTML Help, hhctrl_ocx_csy" %M +192 CustomAction "COMMON98.DLL,LangCheckCAH,DAN" +193 Depend "192 ? 194 : 196" +194 InstallSysFile "HTML Help, hhctrl_ocx_dan" %M +195 CustomAction "COMMON98.DLL,LangCheckCAH,DEU" +196 Depend "195 ? 197 : 199" +197 InstallSysFile "HTML Help, hhctrl_ocx_deu" %M +198 CustomAction "COMMON98.DLL,LangCheckCAH,ELL" +199 Depend "198 ? 200 : 202" +200 InstallSysFile "HTML Help, hhctrl_ocx_ell" %M +201 CustomAction "COMMON98.DLL,LangCheckCAH,ENU" +202 Depend "201 ? 203 : 205" +203 InstallSysFile "HTML Help, hhctrl_ocx_enu" %M +204 CustomAction "COMMON98.DLL,LangCheckCAH,ESP" +205 Depend "204 ? 206 : 208" +206 InstallSysFile "HTML Help, hhctrl_ocx_esp" %M +207 CustomAction "COMMON98.DLL,LangCheckCAH,FIN" +208 Depend "207 ? 209 : 211" +209 InstallSysFile "HTML Help, hhctrl_ocx_fin" %M +210 CustomAction "COMMON98.DLL,LangCheckCAH,FRA" +211 Depend "210 ? 212 : 214" +212 InstallSysFile "HTML Help, hhctrl_ocx_fra" %M +213 CustomAction "COMMON98.DLL,LangCheckCAH,HEB" +214 Depend "213 ? 215 : 217" +215 InstallSysFile "HTML Help, hhctrl_ocx_heb" %M +216 CustomAction "COMMON98.DLL,LangCheckCAH,HUN" +217 Depend "216 ? 218 : 220" +218 InstallSysFile "HTML Help, hhctrl_ocx_hun" %M +219 CustomAction "COMMON98.DLL,LangCheckCAH,ITA" +220 Depend "219 ? 221 : 223" +221 InstallSysFile "HTML Help, hhctrl_ocx_ita" %M +222 CustomAction "COMMON98.DLL,LangCheckCAH,JPN" +223 Depend "222 ? 224 : 226" +224 InstallSysFile "HTML Help, hhctrl_ocx_jpn" %M +225 CustomAction "COMMON98.DLL,LangCheckCAH,KOR" +226 Depend "225 ? 227 : 229" +227 InstallSysFile "HTML Help, hhctrl_ocx_kor" %M +228 CustomAction "COMMON98.DLL,LangCheckCAH,NLD" +229 Depend "228 ? 230 : 232" +230 InstallSysFile "HTML Help, hhctrl_ocx_nld" %M +231 CustomAction "COMMON98.DLL,LangCheckCAH,NOR" +232 Depend "231 ? 233 : 235" +233 InstallSysFile "HTML Help, hhctrl_ocx_nor" %M +234 CustomAction "COMMON98.DLL,LangCheckCAH,PLK" +235 Depend "234 ? 236 : 238" +236 InstallSysFile "HTML Help, hhctrl_ocx_plk" %M +237 CustomAction "COMMON98.DLL,LangCheckCAH,PTB" +238 Depend "237 ? 239 : 241" +239 InstallSysFile "HTML Help, hhctrl_ocx_ptb" %M +240 CustomAction "COMMON98.DLL,LangCheckCAH,PTG" +241 Depend "240 ? 242 : 244" +242 InstallSysFile "HTML Help, hhctrl_ocx_ptg" %M +243 CustomAction "COMMON98.DLL,LangCheckCAH,RUS" +244 Depend "243 ? 245 : 247" +245 InstallSysFile "HTML Help, hhctrl_ocx_rus" %M +246 CustomAction "COMMON98.DLL,LangCheckCAH,SKY" +247 Depend "246 ? 248 : 250" +248 InstallSysFile "HTML Help, hhctrl_ocx_sky" %M +249 CustomAction "COMMON98.DLL,LangCheckCAH,SLV" +250 Depend "249 ? 251 : 253" +251 InstallSysFile "HTML Help, hhctrl_ocx_slv" %M +252 CustomAction "COMMON98.DLL,LangCheckCAH,SVE" +253 Depend "252 ? 254 : 256" +254 InstallSysFile "HTML Help, hhctrl_ocx_sve" %M +255 CustomAction "COMMON98.DLL,LangCheckCAH,TRK" +256 Depend "255 ? 257 : 258" +257 InstallSysFile "HTML Help, hhctrl_ocx_trk" %M +258 InstallSysFile "HTML Help, hhctrl_ocx_chs" %M +259 CustomAction "COMMON98.DLL,NeverRemoveGroup,""260""" %D +260 CustomAction "COMMON98.DLL,QuietReg,""%s\hhctrl.ocx""" %m + + === VB OLEAUT32 Files (vboleaut.etf)=== +271 Group 272 273 274 275 276 +272 InstallSysFile "VB Oleaut Files,oleaut32_dll" %M +273 InstallSysFile "VB Oleaut Files,stdole2_tlb" %M +274 InstallSysFile "VB Oleaut Files,olepro32_dll_2" %M +275 InstallSysFile "VB Oleaut Files,asycflt_dll" %M +276 CustomAction "COMMON98.DLL,NeverRemoveGroup,""277 278 279""" +277 olepro32.dll SelfReg "VB Oleaut Files,olepro32_dll_2,,," %274 +278 oleaut32.dll CustomAction "COMMON98.DLL,RegisterFile,""VB Oleaut Files,oleaut32_dll,1""" %272 +279 CustomAction "COMMON98.DLL,RegisterTypeLibrary,""VB Oleaut Files;stdole2_tlb""" %273 + + + + === Active Scripting SCRRUN Component (scrrun.etf) === +281 Group 282 283 285 286 %d +282 scrrun.dll InstallSysFile "Active Scripting SCRRUN,scrrun_dll" %m +283 CustomAction "COMMON98.DLL,NeverRemoveGroup,""284""" %d +284 scrrun.dll SelfReg """Active Scripting SCRRUN"",""scrrun_dll"","""","""",""""" %282 + +285 scrrnchs.dll InstallSysFile "Active Scripting SCRRUN,scrrun_dll_chs" %m +286 CopyFile "Active Scripting SCRRUN,scrrun_dep" %282 + + === VB Controls installed always (vbawyacx.etf) === +291 Group 292 294 +292 CustomAction "COMMON98.DLL,NeverRemoveGroup,""293""" +293 AddRegData """CLASSES"",""Licenses"","""",""Licensing: Copying the keys may be a violation of established copyrights."",""""" +294 Group 301 311 351 371 391 411 431 451 471 491 531 551 571 591 + + === MSSTKPRP.DLL (vbmsstkp.etf) === +301 Group 302 303 305 +302 InstallSysFile "VB MSSTKPRP,msstkprp_dll" %M +303 Depend "302?304" +304 msstkprp.dll SelfReg "VB MSSTKPRP,msstkprp_dll,,, " %302 +305 InstallSysFile "VB MSSTKPRP,msprpchs_dll" %M + + === COMCTL32.OCX (vbcomctl.etf) === +311 Group 312 332 +312 Group 313 314 315 316 329 +313 InstallShared "VB COMCTL32,comctl32_ocx,comctl32.ocx,,2823" %M +314 InstallShared "VB COMCTL32,comctl32_dep,comctl32.dep,,2823" %313 +315 InstallShared "VB COMCTL32,cmctlchs_dll_old,cmctlchs.dll,,2823" %M +316 Depend "313?317 325 326 327 328 2791 2801" +317 Group 318 319 320 321 322 323 324 +318 CopyFile "VB COMCTL32,comctl1_hlp_1" %W\Help +319 CopyFile "VB COMCTL32,comctl1_cnt_1" %W\Help +320 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,comctl1.hlp,%s," %318 +321 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,comctl1.cnt,%s," %319 +322 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCTL32;comctl1_ftg" +323 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCTL32;comctl1_fts" +324 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCTL32;comctl1_gid" +325 comctl32.ocx CustomAction "COMMON98.DLL,RegisterFile,""VB COMCTL32,comctl32_ocx,3""" %313 +326 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCTL32;comctl32_oca" %313 +327 CopyFile "VB COMCTL32,comctl32_srg" %313 +328 CustomAction "COMMON98.DLL,RegFile,327" %327 +329 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""330 331""" %313 +330 CopyFile "VB COMCTL32,comctl32_srg" %313 +331 CustomAction "COMMON98.DLL,RegFile,327" %327 + +332 Group 333 334 335 336 343 +333 InstallShared "VB COMCTL32,mscomctl_ocx,mscomctl.ocx,,2823" %M +334 InstallShared "VB COMCTL32,mscomctl_dep,MSComCtl.dep,,2823" %333 +335 InstallShared "VB COMCTL32,cmctlchs_dll,MSCmCchs.dll,,2823" %M +336 Depend "333?337 338 339 340 341 342" +337 mscomctl.ocx CustomAction "COMMON98.DLL,RegisterFile,""VB COMCTL32,mscomctl_ocx,3""" %333 +338 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCTL32;mscomctl_oca" %333 +339 CopyFile "VB COMCTL32,cmctl198_chi_1" %W\Help +340 CopyFile "VB COMCTL32,cmctl198_chm_1" %W\Help +341 CopyFile "VB COMCTL32,mscomctl_srg" %333 +342 CustomAction "COMMON98.DLL,RegFile,341" %341 +343 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""344 345""" %333 +344 CopyFile "VB COMCTL32,mscomctl_srg" %333 +345 CustomAction "COMMON98.DLL,RegFile,341" %341 + + === COMDLG32.OCX (vbcomdlg.etf) === +351 Group 352 353 354 355 362 +352 InstallShared "VB COMDLG32,comdlg32_ocx,comdlg32.ocx,,2823" %M +353 InstallShared "VB COMDLG32,comdlg32_dep,comdlg32.dep,,2823" %352 +354 InstallShared "VB COMDLG32,cmdlgchs_dll,cmdlgchs.dll,,2823" %M +355 Depend "352?356 357 358 359 360 361" +356 comdlg32.ocx SelfReg "VB COMDLG32,comdlg32_ocx,,, " %352 +357 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMDLG32;comdlgd_oca" %352 +358 CopyFile "VB COMDLG32,cmdlg98_chi_1" %W\Help +359 CopyFile "VB COMDLG32,cmdlg98_chm_1" %W\Help +360 CopyFile "VB COMDLG32,cmdialog_srg" %352 +361 CustomAction "COMMON98.DLL,RegFile,360" %360 +362 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""363 364""" %352 +363 CopyFile "VB COMDLG32,cmdialog_srg" %352 +364 CustomAction "COMMON98.DLL,RegFile,360" %360 + + === MSFLXGRD.OCX (vbflxgrd.etf) === +371 Group 372 373 374 375 382 +372 InstallShared "VB MSFLXGRD,msflxgrd_ocx,msflxgrd.ocx,,2823" %M +373 InstallShared "VB MSFLXGRD,msflxgrd_dep,msflxgrd.dep,,2823" %372 +374 InstallShared "VB MSFLXGRD,flxgdchs_dll,flxgdchs.dll,,2823" %M +375 Depend "372?376 377 378 379 380 381" +376 msflxgrd.ocx SelfReg "VB MSFLXGRD,msflxgrd_ocx,,, " %372 +377 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSFLXGRD;msflxgrd_oca" %372 +378 CopyFile "VB MSFLXGRD,mshflx98_chi_1" %W\Help +379 CopyFile "VB MSFLXGRD,mshflx98_chm_1" %W\Help +380 CopyFile "VB MSFLXGRD,vsdbflex_srg_1" %372 +381 CustomAction "COMMON98.DLL,RegFile,380" %380 +382 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""383 384""" %372 +383 CopyFile "VB MSFLXGRD,vsdbflex_srg_1" %372 +384 CustomAction "COMMON98.DLL,RegFile,380" %380 + + === DBLIST32.OCX (vbdblist.etf) === +391 Group 392 393 394 395 400 +392 InstallShared "VB DBLIST32,dblist32_ocx,dblist32.ocx,,2823" %M +393 InstallShared "VB DBLIST32,dblist32_dep,dblist32.dep,,2823" %392 +394 InstallShared "VB DBLIST32,dblstchs_dll,dblstchs.dll,,2823" %M +395 Depend "392?396 397 398 399" +396 dblist32.ocx SelfReg "VB DBLIST32,dblist32_ocx,,, " %392 +397 CustomAction "COMMON98.DLL, RemoveAuxFile, VB DBLIST32;dblist32_oca" %392 +398 CopyFile "VB DBLIST32,dblist_srg" %392 +399 CustomAction "COMMON98.DLL,RegFile,398" %398 +400 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""401 402""" %392 +401 CopyFile "VB DBLIST32,dblist_srg" %392 +402 CustomAction "COMMON98.DLL,RegFile,398" %398 + + === ADODC.OCX (vbadodc.etf) === +411 Group 412 413 414 415 422 +412 InstallShared "VB ADODC,adodc_ocx,msadodc.ocx,,2823" %M +413 InstallShared "VB ADODC,adodc_dep,msadodc.dep,,2823" %412 +414 InstallShared "VB ADODC,adodcchs_dll,adodcchs.dll,,2823" %M +415 Depend "412?416 417 418 419 420 421" +416 msadodc.ocx SelfReg "VB ADODC,adodc_ocx,,, " %412 +417 CustomAction "COMMON98.DLL, RemoveAuxFile, VB ADODC;adodc_oca" %412 +418 CopyFile "VB ADODC,adodc98_chi_1" %W\Help +419 CopyFile "VB ADODC,adodc98_chm_1" %W\Help +420 CopyFile "VB ADODC,adodc_srg" %412 +421 CustomAction "COMMON98.DLL,RegFile,420" %420 +422 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""423 424""" %412 +423 CopyFile "VB ADODC,adodc_srg" %412 +424 CustomAction "COMMON98.DLL,RegFile,420" %420 + + === DATAGRID.OCX (vbdatagd.etf) === +431 Group 432 433 434 435 442 +432 InstallShared "VB DATAGRID,datagrid_ocx,MSDatGrd.ocx,,2823" %M +433 InstallShared "VB DATAGRID,msdatgrd_dep,msdatgrd.dep,,2823" %432 +434 InstallShared "VB DATAGRID,datgdchs_dll,datgdchs.dll,,2823" %M +435 Depend "432?436 437 438 439 440 441" +436 MSDatGrd.ocx SelfReg "VB DATAGRID,datagrid_ocx,,, " %432 +437 CustomAction "COMMON98.DLL, RemoveAuxFile, VB DATAGRID;msdatgrd_oca" %432 +438 CopyFile "VB DATAGRID,dbgrid98_chi_1" %W\Help +439 CopyFile "VB DATAGRID,dbgrid98_chm_1" %W\Help +440 CopyFile "VB DATAGRID,datagrid_srg" %432 +441 CustomAction "COMMON98.DLL,RegFile,440" %440 +442 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""443 444""" %432 +443 CopyFile "VB DATAGRID,datagrid_srg" %432 +444 CustomAction "COMMON98.DLL,RegFile,440" %440 + + === MSDATLST.OCX (vbdatlst.etf) === +451 Group 452 453 454 455 462 +452 InstallShared "VB MSDATLST,datalist_ocx,msdatlst.ocx,,2823" %M +453 InstallShared "VB MSDATLST,datalist_dep,MSDatLst.dep,,2823" %452 +454 InstallShared "VB MSDATLST,datlschs_dll,datlschs.dll,,2823" %M +455 Depend "452?456 457 458 459 460 461" +456 msdatlst.ocx SelfReg "VB MSDATLST,datalist_ocx,,, " %452 +457 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSDATLST;msdatlst_oca" %452 +458 CopyFile "VB MSDATLST,dblist98_chi_1" %W\Help +459 CopyFile "VB MSDATLST,dblist98_chm_1" %W\Help +460 CopyFile "VB MSDATLST,datalist_srg_1" %452 +461 CustomAction "COMMON98.DLL,RegFile,460" %460 +462 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""463 464""" %452 +463 CopyFile "VB MSDATLST,datalist_srg_1" %452 +464 CustomAction "COMMON98.DLL,RegFile,460" %460 + + === TABCTL32.OCX (vbtabctl.etf) === +471 Group 472 473 474 475 482 +472 InstallShared "VB TABCTL32,tabctl32_ocx,tabctl32.ocx,,2823" %M +473 InstallShared "VB TABCTL32,tabctl32_dep,tabctl32.dep,,2823" %472 +474 InstallShared "VB TABCTL32,tabctchs_dll,tabctchs.dll,,2823" %M +475 Depend "472?476 477 478 479 480 481" +476 tabctl32.ocx SelfReg "VB TABCTL32,tabctl32_ocx,,, " %472 +477 CustomAction "COMMON98.DLL, RemoveAuxFile, VB TABCTL32;tabctl32_oca" %472 +478 CopyFile "VB TABCTL32,mstab98_chb" %W\Help +479 CopyFile "VB TABCTL32,mstab98_cha" %W\Help +480 CopyFile "VB TABCTL32,sstab_srg" %472 +481 CustomAction "COMMON98.DLL,RegFile,480" %480 +482 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""483 484""" %472 +483 CopyFile "VB TABCTL32,sstab_srg" %472 +484 CustomAction "COMMON98.DLL,RegFile,480" %480 + + === COMCT232.OCX (vbcomct2.etf) === +491 Group 492 512 +492 Group 493 494 495 496 509 +493 InstallShared "VB COMCT232,comct232_ocx,comct232.ocx,,2823" %M +494 InstallShared "VB COMCT232,comct232_dep,comct232.dep,,2823" %493 +495 InstallShared "VB COMCT232,cmct2chs_dll_old,cmct2chs.dll,,2823" %M +496 Depend "493?497 505 506 507 508 2791 2801" +497 Group 498 499 500 501 502 503 504 +498 CopyFile "VB COMCT232,comctl2_hlp" %W\Help +499 CopyFile "VB COMCT232,comctl2_cnt" %W\Help +500 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,comctl2.hlp,%s," %498 +501 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,comctl2.cnt,%s," %499 +502 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCT232;comctl2_ftg" +503 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCT232;comctl2_fts" +504 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCT232;comctl2_gid" +505 comct232.ocx SelfReg "VB COMCT232,comct232_ocx,,, " %493 +506 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCT232;comct232_oca" %493 +507 CopyFile "VB COMCT232,comct232_srg" %493 +508 CustomAction "COMMON98.DLL,RegFile,507" %507 +509 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""510 511""" %493 +510 CopyFile "VB COMCT232,comct232_srg" %493 +511 CustomAction "COMMON98.DLL,RegFile,507" %507 + +512 Group 513 514 515 516 523 +513 InstallShared "VB COMCT232,mscomct2_ocx,mscomct2.ocx,,2823" %M +514 InstallShared "VB COMCT232,mscomct2_dep,MSComCt2.dep,,2823" %513 +515 InstallShared "VB COMCT232,cmct2chs_dll,MsCc2chs.dll,,2823" %M +516 Depend "513?517 518 519 520 521 522" +517 mscomct2.ocx SelfReg "VB COMCT232,mscomct2_ocx,,, " %513 +518 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCT232;mscomct2_oca" %513 +519 CopyFile "VB COMCT232,cmctl298_chi_1" %W\Help +520 CopyFile "VB COMCT232,cmctl298_chm_1" %W\Help +521 CopyFile "VB COMCT232,mscomct2_srg" %513 +522 CustomAction "COMMON98.DLL,RegFile,521" %521 +523 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""524 525""" %513 +524 CopyFile "VB COMCT232,mscomct2_srg" %513 +525 CustomAction "COMMON98.DLL,RegFile,521" %521 + + === RICHTX32.OCX (vbrichtx.etf) === +531 Group 532 +532 Group 533 534 535 536 537 544 +533 InstallShared "VB RICHTX32,richtx32_ocx,richtx32.ocx,,2823" %M +534 InstallShared "VB RICHTX32,richtx32_dep,richtx32.dep,,2823" %533 +535 InstallShared "VB RICHTX32,rchtxchs_dll,rchtxchs.dll,,2823" %M +536 InstallSysFile "VB RICHTX32,gapi32_dll_2" %M +537 Depend "533?538 539 540 541 542 543" +538 richtx32.ocx SelfReg "VB RICHTX32,richtx32_ocx,,, " %533 +539 CustomAction "COMMON98.DLL, RemoveAuxFile, VB RICHTX32;richtx32_oca" %533 +540 CopyFile "VB RICHTX32,rtfbox98_ch2" %W\Help +541 CopyFile "VB RICHTX32,rtfbox98_ch1" %W\Help +542 CopyFile "VB RICHTX32,richtext_srg" %533 +543 CustomAction "COMMON98.DLL,RegFile,542" %542 +544 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""545 546 547""" %533 +545 CopyFile "VB RICHTX32,richtext_srg" %533 +546 CustomAction "COMMON98.DLL,RegFile,542" %542 +547 CopyFile "VB RICHTX32,riched32_dll_2" %M + + === dag Data Environment Control (datactrl.etf) === +551 Group 552 553 560 561 %M +552 InstallShared "dag Data Env Control,mshflxgd_ocx,mshflxgd.ocx,,2823 " %M +553 Depend 552 ? 554 555 556 557 558 559 +554 mshflxgd.ocx SelfReg "dag Data Env Control,mshflxgd_ocx" %552 +555 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Data Env Control;mshflxgd_oca" %552 +556 CopyFile "dag Data Env Control,mshflxgd_srg" %M +557 mshflxgd.srg CustomAction "COMMON98.DLL,RegFile,556" %556 +558 CopyFile "dag Data Env Control,mshflxgd_dep" %M + +559 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Data Env Control;mshflxgd_oca" %552 +560 InstallShared "dag Data Env Control,mshfgchs_dll,mshfgchs.dll,,2823" %M +561 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""562 563""" +562 CopyFile "dag Data Env Control,mshflxgd_srg" %M +563 mshflxgd.srg CustomAction "COMMON98.DLL,RegFile,562" %556 + + === MSCHART.OCX (vbmschrt.etf) === +571 Group 572 573 574 575 582 +572 InstallShared "VB MSCHART,mschart_ocx,mschrt20.ocx,,2823" %M +573 InstallShared "VB MSCHART,mschart_dep,mschrt20.dep,,2823" %572 +574 InstallShared "VB MSCHART,mschtchs_dll,msch2chs.dll,,2823" %M +575 Depend "572?576 577 578 579 580 581" +576 mschrt20.ocx SelfReg "VB MSCHART,mschart_ocx,,, " %572 +577 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSCHART;mschart_oca" %572 +578 CopyFile "VB MSCHART,mschrt98_chi_1" %W\Help +579 CopyFile "VB MSCHART,mschrt98_chm_1" %W\Help +580 CopyFile "VB MSCHART,mschart_srg" %572 +581 CustomAction "COMMON98.DLL,RegFile,580" %580 +582 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""583 584""" %572 +583 CopyFile "VB MSCHART,mschart_srg" %572 +584 CustomAction "COMMON98.DLL,RegFile,580" %580 + + === MSDATREP.OCX (vbdatrep.etf) === +591 Group 592 593 594 601 604 +592 InstallShared "VB MSDATREP,msdatrep_ocx,MSDatRep.ocx,,2823" %M +593 InstallShared "VB MSDATREP,msdatrep_dep,MSDatRep.dep,,2823" %592 +594 Depend "592?595 596 597 598 599 600" +595 MSDatRep.ocx SelfReg "VB MSDATREP,msdatrep_ocx,,, " %592 +596 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSDATREP;msdatrep_oca" %592 +597 CopyFile "VB MSDATREP,datrep98_chi" %W\Help +598 CopyFile "VB MSDATREP,datrep98_chm" %W\Help +599 CopyFile "VB MSDATREP,msdatrep_srg" %592 +600 CustomAction "COMMON98.DLL,RegFile,599" %599 +601 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""602 603""" %592 +602 CopyFile "VB MSDATREP,msdatrep_srg" %592 +603 CustomAction "COMMON98.DLL,RegFile,599" %599 +604 InstallShared "VB MSDATREP,datrpchs_dll,DatRpchs.DLL,,2823" %592 + + === VC MSVC[I]RT.DLL Sys (crtdll.etf) === +611 Group 612 + +612 msvcrt.dll InstallSysFile "Sys Files - CRT Dlls,msvcrt_dll" %m + + === dag Jet (jet.etf) === + +621 Group 622 623 625 626 627 628 630 631 632 633 651 %M + +622 InstallSysFile "dag Jet, msjet35_dll" %M +623 Depend 622 ? 624 +624 msjet35.dll SelfReg "dag Jet, msjet35_dll" %M + +625 InstallSysFile "dag Jet, msjint35_dll" %M +626 InstallSysFile "dag Jet, msjter35_dll" %M +627 InstallSysFile "dag Jet, msrd2x35_dll" %M +628 Depend "627 ? 629" +629 msrd2x35.dll SelfReg "dag Jet, msrd2x35_dll" %627 +630 InstallSysFile "dag Jet, msrepl35_dll" %M +631 InstallSysFile "dag Jet, vbar332_dll_1" %M +632 CopySection "dag Jet Help" %W\Help +633 Group 634 635 636 637 638 639 640 641 642 %W\Help +634 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jetdef35_fts" +635 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jetdef35_ftg" +636 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jetdef35_gid" +637 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jetsql35_fts" +638 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jetsql35_ftg" +639 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jetsql35_gid" +640 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jeterr35_fts" +641 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jeterr35_ftg" +642 CustomAction "COMMON98.DLL, RemoveAuxFile, dag Jet Help Remove;jeterr35_gid" + + === Additional VBA Files (vbvbaadd.etf)=== +651 Group 652 653 654 +652 InstallSysFile "VBA Additional Files,expsrv_dll" %M +653 InstallSysFile "VBA Additional Files,vbajet32_dll" %M +654 InstallSysFile "VBA Additional Files,vba332me_dll" %M + + === MSSTDFMT (vbstdfmt.etf) === +661 Group 662 663 666 +662 InstallShared "VB STDFMT,msstdfmt_dll,msstdfmt.dll,,2823" %M +663 Depend "662?664 665" +664 CopyFile "VB STDFMT,msstdfmt_dep" %662 +665 msstdfmt.dll CustomAction "COMMON98.DLL,RegisterFile,""VB STDFMT,msstdfmt_dll,3""" %662 +666 InstallShared "VB STDFMT,stdftchs_dll,stdftchs.dll,,2823" %M + + === dag ODBC Core Components & dag ODBC Code Page Translators (odbc.etf) === + +671 Group 672 731 721 711 %M + +672 ODBC Driver Manager Group 673 674 +673 CustomAction odbcstf.dll,AcmeInstallDriverManager,odbckey.inf +674 Group 675 685 694 704 699 + +675 Installs the ODBC Driver Manager Group 689 676 677 678 679 680 681 682 683 684 +676 InstallSysFile "dag ODBC Core Components,odbc32_dll" vital %671 +677 InstallSysFile "dag ODBC Core Components,odbcad32_exe" vital %671 +678 InstallSysFile "dag ODBC Core Components,odbccp32_cpl" vital %671 +679 InstallSysFile "dag ODBC Core Components,odbccp32_dll" vital %671 +680 InstallSysFile "dag ODBC Core Components,odbccr32_dll" vital %671 +681 InstallSysFile "dag ODBC Core Components,odbcint_dll" vital %671 +682 InstallSysFile "dag ODBC Core Components,odbctrac_dll" vital %671 +683 InstallSysFile "dag ODBC Core Components,mtxdm_dll" vital %671 +684 InstallSysFile "dag ODBC Core Components,odbccu32_dll" %671 + +685 Installs the ODBC Brazos Files Group 686 687 688 +686 InstallSysFile "dag ODBC Brazos Components,odbcji32_dll_1" %671 +687 InstallSysFile "dag ODBC Brazos Components,odbcjt32_dll_1" %671 +688 InstallSysFile "dag ODBC Brazos Components,odbctl32_dll_1" %671 + +689 Installs ODBC Thunking Layer Group 690 691 692 693 %671 +690 InstallSysFile "dag ODBC Core Components,odbc16gt_dll" vital %671 +691 InstallSysFile "dag ODBC Core Components,odbc32gt_dll" vital %671 +692 InstallSysFile "dag ODBC Core Components,ds16gt_dll" vital %671 +693 InstallSysFile "dag ODBC Core Components,ds32gt_dll" vital %671 + +694 ODBC Code Page Translators Group 695 696 697 698 +695 InstallSysFile "dag ODBC CodePage Trans,mscpxl32_dll" vital %671 +696 InstallSysFile "dag ODBC CodePage Trans,12520437_cpx" vital %671 +697 InstallSysFile "dag ODBC CodePage Trans,12520850_cpx" vital %671 +698 CustomAction odbcstf.dll,AcmeInstallTranslator,odbckey.inf:Translators %671 +699 ODBC Help Files Group 700 701 702 703 +700 InstallSysFile "dag ODBC Help Files,odbcinst_cnt_1" %671 +701 InstallSysFile "dag ODBC Help Files,odbcinst_hlp_1" %671 +702 InstallSysFile "dag ODBC Help Files,odbcjet_cnt_1" %671 +703 InstallSysFile "dag ODBC Help Files,odbcjet_hlp_1" %671 +704 ODBC SQL Net Libs Group 705 706 707 +705 InstallSysFile "dag ODBC SQL Net Libs,dbnmpntw_dll" %M +706 InstallSysFile "dag ODBC SQL Net Libs,dbmssocn_dll" %M +707 InstallSysFile "dag ODBC SQL Net Libs,instcat_sql" %M + + === dag OLEDB DataSourceLocator (OLEDBDSL.ETF) === + +711 Group 712 +712 CustomAction "COMMON98.DLL,NeverRemoveGroup,""713 714 715 716 717""" %12\system\ole db + +713 CopyFile "dag OLEDB DataSourceLocator,msdasc_dll" %712 +714 msdasc.dll SelfReg "dag OLEDB DataSourceLocator, msdasc_dll" %713 +715 CopyFile "dag OLEDB DataSourceLocator,msdasc_chm" %712 +716 CopyFile "dag OLEDB DataSourceLocator,msdasc_cnt" %712 +717 CopyFile "dag OLEDB DataSourceLocator,msdasc_txt" %712 + + === dag Chinook (OLEDB for ODBC) (chinook.etf) === + +721 CustomAction "COMMON98.DLL,NeverRemoveGroup,""722 723 724 725""" %12\system\ole db + +722 CopyFile "dag Chinook,msdasql_dll" %721 +723 msdasql.dll SelfReg "dag Chinook,msdasql_dll" %722 + +724 CopyFile "dag Chinook,msdasqlr_dll" %721 +725 CopyFile "dag Chinook,oledb_me_txt" %721 + + === dag OLEDB Core (oledbcr.etf) === + +731 Group 732 733 %12\system\ole db +732 CustomAction "COMMON98.DLL,NeverRemoveGroup,""734 735 736 737 738 739 740""" %731 +733 CustomAction "COMMON98.DLL,NeverRemoveGroup,""741 742 743 744 745 746 747 748 749 750 751""" %731 + +734 CopyFile "dag OLEDB Core,msdadc_dll" %731 +735 msdadc.dll SelfReg "dag OLEDB Core,msdadc_dll" %734 + +736 CopyFile "dag OLEDB Core,msdaer_dll" %731 +737 msdaer.dll SelfReg "dag OLEDB Core,msdaer_dll" %736 + +738 CopyFile "dag OLEDB Core,msdaerr_dll" %731 +739 CopyFile "dag OLEDB Core,msdaps_dll" %731 +740 MSDAPS.DLL SelfReg "dag OLEDB Core,msdaps_dll" %739 +741 CopyFile "dag OLEDB Core,msdatt_dll" %731 +742 msdatt.dll SelfReg "dag OLEDB Core,msdatt_dll" %741 +743 CopyFile "dag OLEDB Core,msdaenum_dll" %731 +744 msdaenum.dll SelfReg "dag OLEDB Core,msdaenum_dll" %743 +745 CopyFile "dag OLEDB Core,msdatl2_dll" %731 +746 CopyFile "dag OLEDB Core,oledb32x_dll" %731 +747 oledb32x.dll SelfReg "dag OLEDB Core,oledb32x_dll" %746 +748 CopyFile "dag OLEDB Core,oledb32_dll" %731 +749 oledb32.dll SelfReg "dag OLEDB Core,oledb32_dll" %748 +750 CopyFile "dag OLEDB Core,oledb32r_dll" %731 +751 oledb32r.dll SelfReg "dag OLEDB Core,oledb32r_dll" %750 + + === VB Option Component (vb.etf) === + +761 yes Ͱװ(&T) װ͵ Group 765 769 770 1901 764 772 2281 1421 771 2291 VB98ENT.DLL,102 +762 yes Զ尲װ(&U) ԶҪװ CustomDlg 763 1901 764 2341 1421 1041 2291 :2281 VB98ENT.DLL,103 yes + STFWIZ 1 +763 yes Microsoft Visual Basic 6.0 İ װ Microsoft Visual Basic İ漰ȫ ActiveX Ŀؼ OptionDlg 765 769 770 771 Vital %D + + STFWIZ 40 +764 yes ActiveX װ ActiveX ؼ Group 1191 2723 %M + STFWIZ 4 +765 yes Microsoft Visual Basic İļ װ Visual Basic İļ ActiveX Ŀؼ Group 766 767 768 Vital %d +766 yes Group 801 773 1121 1131 1171 1181 2161 2701 791 2741 +767 yes Group 1151 2761 841 851 961 971 2751 981 +768 yes Group 2271 2261 1721 779 780 781 + + STFWIZ 2 +769 yes Package & Deployment װӦóġPackage & Deployment 򵼡 Group 1001 %D\PDWizard + STFWIZ 3 +770 yes 򵼺ģ װһģ򵼣Ա Visual Basic İ滷߹Чʡ Group 1021 1031 2711 1361 1391 + + STFWIZ 95 +771 yes WebClass Designer VB п WebClassesҪ IIS Active Server Pages Group 1411 +772 DataAcc for Typ Group 2346 2561 2347 2348 2349 2343 2344 2351 2355 2365 2366 + +773 Group 774 775 776 777 778 782 +774 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic,ProductDir,%s" +775 AddRegData "CURRENT,Software\Microsoft\Visual Basic\6.0,URLOwnersArea," +776 AddRegData """CLASSES"",""Licenses\6000720D-F342-11D1-AF65-00A0C90DCA10"","""",""kefeflhlhlgenelerfleheietfmflelljeqf"",""""" +777 AddRegData """CLASSES"",""Licenses\74872840-703A-11d1-A3AF-00A0C90F26FA"","""",""mninuglgknogtgjnthmnggjgsmrmgniglish"",""""" +778 AddRegData """CLASSES"",""Licenses\74872841-703A-11d1-A3AF-00A0C90F26FA"","""",""klglsejeilmereglrfkleeheqkpkelgejgqf"",""""" + +779 CustomAction "COMMON98.DLL,DeleteRegKey,HKCU;SOFTWARE\Microsoft\Visual Basic\6.0" +780 CustomAction "COMMON98.DLL,DeleteRegKey,HKLM;SOFTWARE\Microsoft\Visual Basic\6.0" +781 CustomAction "COMMON98.DLL,DeleteRegKey,HKCU;SOFTWARE\VB and VBA Program Settings" +782 Depend 26 ? 783 +783 AddRegData "LOCAL,""Software\Microsoft\IE4\DependentComponents"",""VB98"",""Microsoft Visual Basic 6.0 ҵ""" + + === Compiler Files (vbcomplr.etf)=== +791 CopySection "Compiler Files" %D + + === VB Core (vbcore.etf) === +801 Group 802 803 804 805 806 808 809 810 812 813 814 816 817 819 820 821 822 823 824 831 %D +802 CopyFile "VB Core Files,vb6_exe" %D +803 StampCDInfo "802, 106, 196" +804 CopyFile "VB Core Files,vb6debug_dll" %802 +805 CopyFile "VB Core Files,vba6_dll" %D +806 Depend "805?807" +807 CustomAction "COMMON98.DLL,RegisterTypeLibrary,""VB Core Files;vba6_dll""" %805 +808 CopyFile "VB Core Files,vbaexe6_lib" %D +809 CopyFile "VB Core Files,vbdatavw_tlb" %D +810 Depend "809?811" +811 CustomAction "COMMON98.DLL,RegisterTypeLibrary,""VB Core Files;vbdatavw_tlb""" %805 +812 CopyFile "VB Core Files,vb6ide_dll" %D +813 CopyFile "VB Core Files,vj6_olb" %D +814 Depend "813?815" +815 CustomAction "COMMON98.DLL,RegisterTypeLibrary,""VB Core Files;vj6_olb""" %813 +816 CopyFile "VB Core Files,vb6ext_olb" %D +817 Depend "816?818" +818 CustomAction "COMMON98.DLL,RegisterTypeLibrary,""VB Core Files;vb6ext_olb""" %816 +819 CopyFile "VB Core Files,visdata_exe" %D +820 CustomAction "COMMON98.DLL,RegisterFile,""VB Core Files,visdata_exe,3""" %819 +821 CopyFile "VB Core Files,vbhelp_srg" %D +822 CustomAction "COMMON98.DLL,RegFile,821" %821 +823 InstallShortcut "%802\%F802,VB98,%802,,,," %27\VB<%27\Microsoft Visual Basic 6.0 İ> +824 Depend "28?826 828" +825 CustomAction "COMMON98.DLL,LangCheckCAH,chs" +826 Depend "825 ? 827" +827 InstallSysFile "VB Core Files,riched32_dll" %M +828 InstallSysFile "VB Core Files,gapi32_dll" %M + + === VSS Dupe Files (vbvss.etf) === +831 Group 832 833 +832 CopySection "VB VSS Files" %D +833 vbscc.dll SelfReg "VB VSS Files,vbscc_dll,,," %832 + + === VB Data Binding Files (vbmsbind.etf) === +841 Group 842 843 844 +842 vb5db.dll InstallShared "VB DataBind,vb5db_dll,vb5db.dll,,2823" %M +843 CopyFile "VB DataBind,dbadapt_dll" %M +844 dbadapt.dll CustomAction "COMMON98.DLL,RegisterFile,""VB DataBind,dbadapt_dll,3"" " %843 + + === RegVerbs (vbrverbs.etf) === +851 Group 852 861 868 875 886 895 904 913 922 929 942 +852 Group 853 854 855 856 857 858 859 860 +853 AddRegData """"","".frm"","""",""VisualBasic.Form"",""""" +854 AddRegData """"",""VisualBasic.Form"","""",""Visual Basic Form File"",""""" +855 AddRegData """"",""VisualBasic.Form\DefaultIcon"","""",""%s\vb6.exe,1"",""""" %802 +856 AddRegData """"",""VisualBasic.Form\shell"","""","""",""""" +857 AddRegData """"",""VisualBasic.Form\shell\open"","""","""",""""" +858 AddRegData """"",""VisualBasic.Form\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +859 AddRegData """"","".frx"","""",""VisualBasic.FRXFile"",""""" +860 AddRegData """"",""VisualBasic.FRXFile"","""",""Visual Basic Form Binary File"",""""" +861 Group 862 863 864 865 866 867 +862 AddRegData """"","".bas"","""",""VisualBasic.Module"",""""" +863 AddRegData """"",""VisualBasic.Module"","""",""Visual Basic Module"",""""" +864 AddRegData """"",""VisualBasic.Module\DefaultIcon"","""",""%s\vb6.exe,8"",""""" %802 +865 AddRegData """"",""VisualBasic.Module\shell"","""","""",""""" +866 AddRegData """"",""VisualBasic.Module\shell\open"","""","""",""""" +867 AddRegData """"",""VisualBasic.Module\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +868 Group 869 870 871 872 873 874 +869 AddRegData """"","".cls"","""",""VisualBasic.ClassModule"",""""" +870 AddRegData """"",""VisualBasic.ClassModule"","""",""Visual Basic Class Module"",""""" +871 AddRegData """"",""VisualBasic.ClassModule\DefaultIcon"","""",""%s\vb6.exe,9"",""""" %802 +872 AddRegData """"",""VisualBasic.ClassModule\shell"","""","""",""""" +873 AddRegData """"",""VisualBasic.ClassModule\shell\open"","""","""",""""" +874 AddRegData """"",""VisualBasic.ClassModule\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +875 Group 876 877 878 879 880 881 882 883 884 885 +876 AddRegData """"","".vbp"","""",""VisualBasic.Project"",""""" +877 AddRegData """"",""VisualBasic.Project"","""",""Visual Basic Project"",""""" +878 AddRegData """"",""VisualBasic.Project\DefaultIcon"","""",""%s\vb6.exe,16"",""""" +879 AddRegData """"",""VisualBasic.Project\shell"","""","""",""""" +880 AddRegData """"",""VisualBasic.Project\shell\open"","""","""",""""" +881 AddRegData """"",""VisualBasic.Project\shell\open\command"","""",""""""%s\vb6.exe"""" """"%%1"""""",""""" %802 +882 AddRegData """"",""VisualBasic.Project\shell\Make"","""",""Make"",""""" +883 AddRegData """"",""VisualBasic.Project\shell\Make\command"","""",""%s\vb6.exe """"%%1"""" /make"",""""" %802 +884 AddRegData """"",""VisualBasic.Project\shell\Run Project"","""",""Run"",""""" +885 AddRegData """"",""VisualBasic.Project\shell\Run Project\command"","""",""%s\vb6.exe """"%%1"""" /run"",""""" %802 +886 Group 887 888 889 890 891 892 893 894 +887 AddRegData """"","".ctl"","""",""VisualBasic.UserControl"",""""" +888 AddRegData """"",""VisualBasic.UserControl"","""",""Visual Basic User Control"",""""" +889 AddRegData """"",""VisualBasic.UserControl\DefaultIcon"","""",""%s\vb6.exe,5"",""""" %802 +890 AddRegData """"",""VisualBasic.UserControl\shell"","""","""",""""" +891 AddRegData """"",""VisualBasic.UserControl\shell\open"","""","""",""""" +892 AddRegData """"",""VisualBasic.UserControl\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +893 AddRegData """"","".ctx"","""",""VisualBasic.CTXFile"",""""" +894 AddRegData """"",""VisualBasic.CTXFile"","""",""Visual Basic User Control Binary File"",""""" +895 Group 896 897 898 899 900 901 902 903 +896 AddRegData """"","".dob"","""",""VisualBasic.UserDocument"",""""" +897 AddRegData """"",""VisualBasic.UserDocument"","""",""Visual Basic User Document"",""""" +898 AddRegData """"",""VisualBasic.UserDocument\DefaultIcon"","""",""%s\vb6.exe,7"",""""" %802 +899 AddRegData """"",""VisualBasic.UserDocument\shell"","""","""",""""" +900 AddRegData """"",""VisualBasic.UserDocument\shell\open"","""","""",""""" +901 AddRegData """"",""VisualBasic.UserDocument\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +902 AddRegData """"","".dox"","""",""VisualBasic.DOXFile"",""""" +903 AddRegData """"",""VisualBasic.DOXFile"","""",""Visual Basic User Document Binary File"",""""" +904 Group 905 906 907 908 909 910 911 912 +905 AddRegData """"","".dsr"","""",""VisualBasic.Designer"",""""" +906 AddRegData """"",""VisualBasic.Designer"","""",""Visual Basic Designer Module"",""""" +907 AddRegData """"",""VisualBasic.Designer\DefaultIcon"","""",""%s\vb6.exe,4"",""""" %802 +908 AddRegData """"",""VisualBasic.Designer\shell"","""","""",""""" +909 AddRegData """"",""VisualBasic.Designer\shell\open"","""","""",""""" +910 AddRegData """"",""VisualBasic.Designer\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +911 AddRegData """"","".dsx"","""",""VisualBasic.DSCFile"",""""" +912 AddRegData """"",""VisualBasic.DSCFile"","""",""Visual Basic Designer Binary File"",""""" +913 Group 914 915 916 917 918 919 920 921 +914 AddRegData """"","".pag"","""",""VisualBasic.PropertyPage"",""""" +915 AddRegData """"",""VisualBasic.PropertyPage"","""",""Visual Basic Property Page"",""""" +916 AddRegData """"",""VisualBasic.PropertyPage\DefaultIcon"","""",""%s\vb6.exe,6"",""""" %802 +917 AddRegData """"",""VisualBasic.PropertyPage\shell"","""","""",""""" +918 AddRegData """"",""VisualBasic.PropertyPage\shell\open"","""","""",""""" +919 AddRegData """"",""VisualBasic.PropertyPage\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +920 AddRegData """"","".pgx"","""",""VisualBasic.PGXFile"",""""" +921 AddRegData """"",""VisualBasic.PGXFile"","""",""Visual Basic Property Page Binary File"",""""" +922 Group 923 924 925 926 927 928 +923 AddRegData """"","".vbz"","""",""VisualBasic.VBZFile"",""""" +924 AddRegData """"",""VisualBasic.VBZFile"","""",""Visual Basic Wizard"",""""" +925 AddRegData """"",""VisualBasic.VBZFile\DefaultIcon"","""",""%s\vb6.exe,21"",""""" %802 +926 AddRegData """"",""VisualBasic.VBZFile\shell"","""","""",""""" +927 AddRegData """"",""VisualBasic.VBZFile\shell\open"","""","""",""""" +928 AddRegData """"",""VisualBasic.VBZFile\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +929 Group 930 931 932 933 934 935 936 937 938 939 940 941 +930 AddRegData """"","".vbg"","""",""VisualBasic.ProjectGroup"",""""" +931 AddRegData """"",""VisualBasic.ProjectGroup"","""",""Visual Basic Group Project"",""""" +932 AddRegData """"",""VisualBasic.ProjectGroup\DefaultIcon"","""",""%s\vb6.exe,22"",""""" %802 +933 AddRegData """"",""VisualBasic.ProjectGroup\shell"","""","""",""""" +934 AddRegData """"",""VisualBasic.ProjectGroup\shell\open"","""","""",""""" +935 AddRegData """"",""VisualBasic.ProjectGroup\shell\open\command"","""",""%s\vb6.exe """"%%1"""""",""""" %802 +936 AddRegData """"",""VisualBasic.ProjectGroup\shell\Make"","""",""Make"",""""" +937 AddRegData """"",""VisualBasic.ProjectGroup\shell\Make\command"","""",""%s\vb6.exe """"%%1"""" /make"",""""" %802 +938 AddRegData """"",""VisualBasic.ProjectGroup\shell\Run ProjectGroup"","""",""Run"",""""" +939 AddRegData """"",""VisualBasic.ProjectGroup\shell\Run ProjectGroup\command"","""",""%s\vb6.exe """"%%1"""" /run"",""""" %802 +940 AddRegData """"","".vbl"","""",""VisualBasic.VBLFile"",""""" +941 AddRegData """"",""VisualBasic.VBLFile"","""",""Visual Basic Control License File"",""""" +942 Group 943 944 945 946 947 948 949 950 951 952 +943 AddRegData """"","".oca"","""",""VisualBasic.OCAFile"",""""" +944 AddRegData """"",""VisualBasic.OCAFile"","""",""Control Typelib Cache"",""""" +945 AddRegData """"","".swt"","""",""VisualBasic.SWTFile"",""""" +946 AddRegData """"",""VisualBasic.SWTFile"","""",""Visual Basic Set Up Wizard Template File"",""""" +947 AddRegData """"","".vbr"","""",""VisualBasic.VBRFile"",""""" +948 AddRegData """"",""VisualBasic.VBRFile"","""",""Remote Automation Registration File"",""""" +949 AddRegData """"","".vbw"","""",""VisualBasic.VBWFile"",""""" +950 AddRegData """"",""VisualBasic.VBWFile"","""",""Visual Basic Project Workspace"",""""" +951 AddRegData """"","".wct"","""",""VisualBasic.WCTFile"",""""" +952 AddRegData """"",""VisualBasic.WCTFile"","""",""Webclass Template File"",""""" + + === Data Bases (vbaccdbs.etf) === +961 Group 962 963 964 965 %D +962 CopyFile "VB DataBases,biblio_mdb" %D +963 CopyFile "VB DataBases,nwind_mdb" %D +964 CustomAction "COMMON98.DLL, RemoveAuxFile, VB DataBases;biblio_ldb" %962 +965 CustomAction "COMMON98.DLL, RemoveAuxFile, VB DataBases;nwind_ldb" %963 + + === VBEXT.SRG (vbadddsg.etf) === +971 Group 972 973 +972 CopyFile "VB VBEXT,vbext_srg" %D +973 CustomAction "COMMON98.DLL,RegFile,972" %972 + + === VB VB.INI (vbvbini.etf) === +981 Group 982 983 984 985 986 987 988 989 990 991 992 993 994 995 +982 AddIniLine """VB.INI"",""VBX Conversions32"",""msmapi.vbx"",""{20C62CAE-15DA-101B-B9A8-444553540000}#1.1#0;%s\msmapi32.ocx""" %M +983 AddIniLine """VB.INI"",""VBX Conversions32"",""mci.vbx"",""{C1A8AF28-1257-101B-8FB0-0020AF039CA3}#1.0#0;%s\mci32.ocx""" %M +984 AddIniLine """VB.INI"",""VBX Conversions32"",""mscomm.vbx"",""{648A5603-2C6E-101B-82B6-000000000014}#1.0#0;%s\mscomm32.ocx""" %M +985 AddIniLine """VB.INI"",""VBX Conversions32"",""msmasked.vbx"",""{C932BA88-4374-101B-A56C-00AA003668DC}#1.0#0;%s\msmask32.ocx""" %M +986 AddIniLine """VB.INI"",""VBX Conversions32"",""picclip.vbx"",""{27395F88-0C0C-101B-A3C9-08002B2F49FB}#1.0#0;%s\picclp32.ocx""" %M +987 AddIniLine """VB.INI"",""VBX Conversions32"",""cmdialog.vbx"",""{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.0#0;%s\comdlg32.ocx""" %M +988 AddIniLine """VB.INI"",""VBX Conversions32"",""msoutlin.vbx"",""{BE4F3AC8-AEC9-101A-947B-00DD010F7B46}#1.0#0;%s\msoutl32.ocx""" %M +989 AddIniLine """VB.INI"",""VBX Conversions32"",""anibuton.vbx"",""{F72CC888-5ADC-101B-A56C-00AA003668DC}#1.0#0;%s\anibtn32.ocx""" %M +990 AddIniLine """VB.INI"",""VBX Conversions32"",""graph.vbx"",""{0842D103-1E19-101B-9AAF-1A1626551E7C}#1.0#0;%s\graph32.ocx""" %M +991 AddIniLine """VB.INI"",""VBX Conversions32"",""gauge.vbx"",""{7A080CC8-26E2-101B-AEBD-04021C009402}#1.0#0;%s\gauge32.ocx""" %M +992 AddIniLine """VB.INI"",""VBX Conversions32"",""keystat.vbx"",""{B9D22273-0C24-101B-AEBD-04021C009402}#1.0#0;%s\keysta32.ocx""" %M +993 AddIniLine """VB.INI"",""VBX Conversions32"",""spin.vbx"",""{B16553C3-06DB-101B-85B2-0000C009BE81}#1.0#0;%s\spin32.ocx""" %M +994 AddIniLine """VB.INI"",""VBX Conversions32"",""threed.vbx"",""{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}#1.0#0;%s\threed32.ocx""" %M +995 AddIniLine """VB.INI"",""VBX Conversions32"",""grid.vbx"",""{A8B3B723-0B5A-101B-B22E-00AA0037B2FC}#1.0#0;%s\grid32.ocx""" %M + + === Setup Toolkit (vbsupkit.etf) === +1001 Group 1002 1003 1004 1005 1006 1007 1008 1009 1010 %765\Wizards\PDWizard +1002 CustomAction "COMMON98.DLL, NopCAH" +%D +1003 CopySection "Setupkit Binary" %D +1004 PDAddin.dll CustomAction "COMMON98.DLL,RegisterFile,""Setupkit Binary,pdaddin_dll,3""" %1003 +1005 PDWizard.ocx CustomAction "COMMON98.DLL,RegisterFile,""Setupkit Binary,pdwizard_ocx,3""" %1003 +1006 dlgobjs.dll SelfReg "Setupkit Binary,dlgobjs_dll,,, " %1003 +1007 CopyFile "Setupkit Vb5stkit,vb5stkit_dll" %M +1008 CopySection "Setupkit Source" %D\Setup1 +1009 CopySection "Setupkit Redist" %D\Redist +1010 InstallShortcut "%1003\pdcmdln.exe,SetupKit,%1003,,,," %27\Microsoft Visual Basic 6.0 İ\Microsoft Visual Basic 6.0 İ湤 + + === Wizards for all editions (vbappwiz.etf)=== +1021 Group 1022 1023 1024 1025 1026 1027 %D\Wizards +1022 CopySection "AllVer Wizards" %D +1023 appwiz.ocx CustomAction "COMMON98.DLL,RegisterFile,""AllVer Wizards,appwiz_ocx,3""" %1022 +1024 CustomAction "COMMON98.DLL, RemoveAuxFile, AllVer Wizards;appwiz_oca" %1022 +1025 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Application Wizard"",""ProgID"",""AppWizard.Wizard"",""""" +1026 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Application Wizard"",""ShowOnToolbar"",""1"",""""" +1027 resedit.dll CustomAction "COMMON98.DLL,RegisterFile,""AllVer Wizards, resedit_dll,3""" %1022 + + === VB Template Manager Wizard (vbtmpmgr.etf) === +1031 Group 1032 1033 +1032 CopyFile "Template Manager,tempmgr_dll" %D\Wizards +1033 tempmgr.dll CustomAction "COMMON98.DLL,RegisterFile,""Template Manager,tempmgr_dll,3""" %1032 + + === Graphics (vbgraph.etf)=== + STFWIZ 76 +1041 ͼ װӦóʹõλͼꡢͼꡢͼԪļƵ OptionDlg 1042 1043 1044 1045 1046 %10\Graphics + STFWIZ 77 +1042 yes Ԫļ װ 80 ӦóʹõĸԪļ Group 1051 + STFWIZ 78 +1043 yes λͼ װ 250 Ӧóʹõĸλͼ Group 1061 + STFWIZ 79 +1044 yes װӦóʹõĽ 100 ֹꡣ Group 1081 + STFWIZ 80 +1045 yes ͼ װ 450 ǿӦóЧͼꡣ Group 1091 + STFWIZ 81 +1046 yes Ƶ װһƵ.AVI ļӦóʾʾ̣ Windows һ Group 1111 + + === VB Metafiles (vbwmf.etf)=== +1051 Group 1052 1053 1054 %10\Graphics +1052 CustomAction "COMMON98.DLL, NopCAH" +%D +1053 InstallShared "WMF - Tag,2darrow1_wmf,2darrow1.wmf,,2823" %D\Metafile\Arrows +1054 Depend "1053?1055 1056" +1055 CopySection "WMF - Arrows" %D\Metafile\Arrows +1056 CopySection "WMF - Business" %D\Metafile\Business + + === Graphics Bitmaps (vbbmp.etf)=== +1061 Group 1062 1063 1064 %D\Bitmaps +1062 CustomAction "COMMON98.DLL, NopCAH" +%D +1063 InstallShared "Bitmaps - Tag,balloon_bmp,balloon.bmp,,2823" %D\Assorted +1064 Depend "1063?1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075" +1065 CopySection "Bitmaps - Assorted" %D\Assorted +1066 CopySection "Bitmaps - Gauge" %D\Gauge +1067 CopySection "Bitmaps - OffCtlBr - B&W - large" %D\OffCtlBr\Large\BW(&W) +1068 CopySection "Bitmaps - OffcCtlBr - B&W - small" %D\OffCtlBr\Small\BW(&W) +1069 CopySection "Bitmaps - OffCtlBr - Color - large" %D\OffCtlBr\Large\Color +1070 CopySection "Bitmaps - OffcCtlBr - Color - small" %D\OffCtlBr\Small\Color +1071 CopySection "Bitmaps - Outline" %D\Outline +1072 CopySection "Bitmaps - Outline - Nomask" %D\Outline\NoMask +1073 CopySection "Bitmaps - Outline - Redmask" %D\Outline\RedMask +1074 CopySection "Bitmaps - TlBr - W95" %D\TlBr_W95 +1075 CopySection "Bitmaps - TlBr - W96" %D\TlBr_W95 + + === Cursors (vbcursor.etf)=== +1081 Group 1082 1083 %D\Cursors +1082 InstallShared "Cursors - Tag,4way01_cur,4way01.cur,,2823" %D +1083 Depend "1082?1084" +1084 CopySection "Cursors" %D + + === Icon Library (vbicon.etf)=== +1091 Group 1092 1093 1094 %D\Icons +1092 CustomAction "COMMON98.DLL, NopCAH" +%D +1093 InstallShared "I-Arrows - Tag,arw01dn_ico,arw01dn.ico,,2823" %D\Arrows +1094 Depend "1093?1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107" +1095 CopySection "I-Arrows" %D\Arrows +1096 CopySection "I-Comm" %D\Comm +1097 CopySection "I-Computer" %D\Computer +1098 CopySection "I-Drag/Drop" %D\Dragdrop +1099 CopySection "I-Elements" %D\Elements +1100 CopySection "I-Flags" %D\Flags +1101 CopySection "I-Industry" %D\Industry +1102 CopySection "I-Mail" %D\Mail +1103 CopySection "I-Misc" %D\Misc +1104 CopySection "I-Office" %D\Office +1105 CopySection "I-Traffic" %D\Traffic +1106 CopySection "I-Writing" %D\Writing +1107 CopySection "I-Win95" %D\Win95 + + === AVI Files (vbavi.etf)=== +1111 Group 1112 1113 1114 %10\Graphics +1112 Group 2294 %10\Graphics +1113 InstallShared "AVI - Tag,blur16_avi,blur16.avi,,2823" %D\Videos +1114 Depend "1113?1115" +1115 CopySection "AVI" %D\Videos + + === vi Editor: TriEdit (vitriedt.etf) === +1121 Group 1122 1124 %h\Triedit +1122 Group 1123 %d +1123 triedit.dll InstallShared "viEditor - TriEdit,triedit_dll,triedit.dll,,2823" %d + +1124 Group 1125 %d +1125 dep_triedit.dll Depend "1123 ? 1126" +1126 triedit.dll SelfReg """viEditor - TriEdit"",""triedit_dll"","""","""",""""" %1123 + + === Page Designer (vbpdsgnr.etf) === +1131 Group 1132 1133 1135 1136 1137 1141 1142 1143 +1132 InstallShared "VB Page Designer,htmutil_dll,htmutil.dll,,2823" %M +1133 Depend "1132?1134" +1134 htmutil.dll SelfReg "VB Page Designer,htmutil_dll,,," %1132 +1135 InstallShared "VB Page Designer,mshtmpgd_dll,mshtmpgd.dll,,2823" %12\designer +1136 CompanionFile "1135: VB Page Designer,htmpdchs_dll" +1137 Depend "1135?1138 1139 1140 1146" +1138 mshtmpgd.dll SelfReg "VB Page Designer,mshtmpgd_dll,,," %1135 +1139 CustomAction """COMMON98.DLL"", ""GetPathFromReg"", ""HKEY_CLASSES_ROOT,htmlfile\shell\edit\command,"" " %W\notepad.exe +1140 AddRegData "LOCAL,""Software\Microsoft\Visual Basic\6.0\External Tools"",""HTML Editor"",%s," %1139 +1141 InstallShared "VB Page Designer,mshtmpgr_dll,mshtmpgr.dll,,2823" %12\designer +1142 CompanionFile "1141: VB Page Designer,htmprchs_dll" +1143 Depend "1141?1144 1145" +1144 CopyFile "VB Page Designer,mshtmpgr_dep" %12\designer +1145 mshtmpgr.dll SelfReg "VB Page Designer,mshtmpgr_dll,,," %1141 +1146 AddRegData "HKEY_CURRENT_USER,Software\Microsoft\Visual Basic\6.0\Designers\{90290CCD-F27D-11D0-8031-00C04FB6C701},,," + + === Control/Report (vbctlrpt.etf) === +1151 Group 1152 1160 +1152 Group 1153 1154 1159 +1153 InstallShared "VB Control/Report,msdbrpt_dll,msdbrpt.dll,,2823" %M +1154 Depend "1153?1155 1156 1157 1158" +1155 msdbrpt.dll CustomAction "COMMON98.DLL,RegisterFile,""VB Control/Report,msdbrpt_dll,3""" %1153 +1156 AddRegData "HKEY_CURRENT_USER,Software\Microsoft\Visual Basic\6.0\Designers\{78E93846-85FD-11D0-8487-00A0C90DC8A9},,," +1157 InstallShared "VB Control/Report,msdbrpt_srg_1,msdbrpt.srg,,2823" %1153 +1158 CustomAction "COMMON98.DLL,RegFile,1157" %1157 +1159 InstallShared "VB Control/Report,dbrptchs_dll" %M +1160 Group 1161 1162 1165 +1161 InstallShared "VB Control/Report,msdbrptr_dll,msdbrptr.dll,,2823" %M +1162 Depend "1161?1163 1164" +1163 msdbrptr.dll CustomAction "COMMON98.DLL,RegisterFile,""VB Control/Report,msdbrptr_dll,3""" %1161 +1164 CopyFile "VB Control/Report,msdbrptr_dep" %1161 +1165 InstallShared "VB Control/Report,dbrprchs_dll,dbrprchs.dll,,2823" %M + + === Sqlparse (vbsqlpar.etf) === +1171 Group 1172 1173 +1172 InstallShared "VB SQL Debugging,sqlparse_dll,sqlparse.dll,,2823" %M +1173 Depend "1172?1174 1175" +1174 sqlparse.dll SelfReg "VB SQL Debugging,sqlparse_dll,,," %1172 +1175 InstallShared "VB SQL Debugging,sqlpachs_dll,sqlpachs.dll,,2823" %1172 + + === Dataview (vbdatavw.etf) === +1181 Group 1182 1183 +1182 InstallShared "VB Dataview,dataview_dll,dataview.dll,,2823" %D +1183 Depend "1182?1184" +1184 dataview.dll CustomAction "COMMON98.DLL,RegisterFile,""VB Dataview,dataview_dll,3""" %1182 + + === VB Controls for ENT & PRO versions (vbepacx.etf) === +1191 Group 1201 1221 1241 1261 1281 2771 1301 1321 1341 + +\ + + === MSINET.OCX (vbmsinet.etf) === +1201 Group 1202 1203 1204 1205 1212 +1202 InstallShared "VB MSINET,msinet_ocx,msinet.ocx,,2823" %M +1203 InstallShared "VB MSINET,msinet_dep,msinet.dep,,2823" %1202 +1204 InstallShared "VB MSINET,inetchs_dll,inetchs.dll,,2823" %M +1205 Depend "1202?1206 1207 1208 1209 1210 1211" +1206 msinet.ocx SelfReg "VB MSINET,msinet_ocx,,, " %1202 +1207 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSINET;msinet_oca" %1202 +1208 CopyFile "VB MSINET,inet98_ch2" %W\Help +1209 CopyFile "VB MSINET,inet98_ch1" %W\Help +1210 CopyFile "VB MSINET,inetctls_srg" %1202 +1211 CustomAction "COMMON98.DLL,RegFile,1210" %1210 +1212 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1213 1214""" %1202 +1213 CopyFile "VB MSINET,inetctls_srg" %1202 +1214 CustomAction "COMMON98.DLL,RegFile,1210" %1210 + + === MSWINSCK.OCX (vbwinsck.etf) === +1221 Group 1222 1223 1224 1225 1232 +1222 InstallShared "VB MSWINSCK,mswinsck_ocx,mswinsck.ocx,,2823" %M +1223 InstallShared "VB MSWINSCK,mswinsck_dep,mswinsck.dep,,2823" %1222 +1224 InstallShared "VB MSWINSCK,winskchs_dll,winskchs.dll,,2823" %M +1225 Depend "1222?1226 1227 1228 1229 1230 1231" +1226 mswinsck.ocx SelfReg "VB MSWINSCK,mswinsck_ocx,,, " %1222 +1227 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSWINSCK;mswinsck_oca" %1222 +1228 CopyFile "VB MSWINSCK,mswnsk98_ch2" %W\Help +1229 CopyFile "VB MSWINSCK,mswnsk98_ch1" %W\Help +1230 CopyFile "VB MSWINSCK,winsock_srg" %1222 +1231 CustomAction "COMMON98.DLL,RegFile,1230" %1230 +1232 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1233 1234""" %1222 +1233 CopyFile "VB MSWINSCK,winsock_srg" %1222 +1234 CustomAction "COMMON98.DLL,RegFile,1230" %1230 + + === MSMAPI32.OCX (vbmsmapi.etf) === +1241 Group 1242 1243 1244 1245 1252 +1242 InstallShared "VB MSMAPI32,msmapi32_ocx,msmapi32.ocx,,2823" %M +1243 InstallShared "VB MSMAPI32,msmapi32_dep,msmapi32.dep,,2823" %1242 +1244 InstallShared "VB MSMAPI32,msmpichs_dll,msmpichs.dll,,2823" %M +1245 Depend "1242?1246 1247 1248 1249 1250 1251" +1246 msmapi32.ocx SelfReg "VB MSMAPI32,msmapi32_ocx,,, " %1242 +1247 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSMAPI32;msmapi32_oca" %1242 +1248 CopyFile "VB MSMAPI32,mapi98_ch2" %W\Help +1249 CopyFile "VB MSMAPI32,mapi98_ch1" %W\Help +1250 CopyFile "VB MSMAPI32,msmapi_srg" %1242 +1251 CustomAction "COMMON98.DLL,RegFile,1250" %1250 +1252 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1253 1254""" %1242 +1253 CopyFile "VB MSMAPI32,msmapi_srg" %1242 +1254 CustomAction "COMMON98.DLL,RegFile,1250" %1250 + + === MCI32.OCX (vbmci32.etf) === +1261 Group 1262 1263 1264 1265 1272 +1262 InstallShared "VB MCI32,mci32_ocx,mci32.ocx,,2823" %M +1263 InstallShared "VB MCI32,mci32_dep,mci32.dep,,2823" %1262 +1264 InstallShared "VB MCI32,mcichs_dll,mcichs.dll,,2823" %M +1265 Depend "1262?1266 1267 1268 1269 1270 1271" +1266 mci32.ocx SelfReg "VB MCI32,mci32_ocx,,, " %1262 +1267 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MCI32;mci32_oca" %1262 +1268 CopyFile "VB MCI32,mmedia98_chi_1" %W\Help +1269 CopyFile "VB MCI32,mmedia98_chm_1" %W\Help +1270 CopyFile "VB MCI32,mci_srg" %1262 +1271 CustomAction "COMMON98.DLL,RegFile,1270" %1270 +1272 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1273 1274""" %1262 +1273 CopyFile "VB MCI32,mci_srg" %1262 +1274 CustomAction "COMMON98.DLL,RegFile,1270" %1270 + + === PICCLP32.OCX (vbpicclp.etf) === +1281 Group 1282 1283 1284 1285 1292 +1282 InstallShared "VB PICCLP32,picclp32_ocx,picclp32.ocx,,2823" %M +1283 InstallShared "VB PICCLP32,picclp32_dep,picclp32.dep,,2823" %1282 +1284 InstallShared "VB PICCLP32,pcclpchs_dll,pcclpchs.dll,,2823" %M +1285 Depend "1282?1286 1287 1288 1289 1290 1291" +1286 picclp32.ocx SelfReg "VB PICCLP32,picclp32_ocx,,, " %1282 +1287 CustomAction "COMMON98.DLL, RemoveAuxFile, VB PICCLP32;picclp32_oca" %1282 +1288 CopyFile "VB PICCLP32,picclp98_ch2" %W\Help +1289 CopyFile "VB PICCLP32,picclp98_ch1" %W\Help +1290 CopyFile "VB PICCLP32,picclip_srg" %1282 +1291 CustomAction "COMMON98.DLL,RegFile,1290" %1290 +1292 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1293 1294""" %1282 +1293 CopyFile "VB PICCLP32,picclip_srg" %1282 +1294 CustomAction "COMMON98.DLL,RegFile,1290" %1290 + + === MSCOMM32.OCX (vbmscomm.etf) === +1301 Group 1302 1303 1304 1305 1312 +1302 InstallShared "VB MSCOMM32,mscomm32_ocx,mscomm32.ocx,,2823" %M +1303 InstallShared "VB MSCOMM32,mscomm32_dep,mscomm32.dep,,2823" %1302 +1304 InstallShared "VB MSCOMM32,mscomchs_dll,mscomchs.dll,,2823" %M +1305 Depend "1302?1306 1307 1308 1309 1310 1311" +1306 mscomm32.ocx SelfReg "VB MSCOMM32,mscomm32_ocx,,, " %1302 +1307 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSCOMM32;mscomm32_oca" %1302 +1308 CopyFile "VB MSCOMM32,comm98_chi_1" %W\Help +1309 CopyFile "VB MSCOMM32,comm98_chm_1" %W\Help +1310 CopyFile "VB MSCOMM32,mscomm_srg" %1302 +1311 CustomAction "COMMON98.DLL,RegFile,1310" %1310 +1312 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1313 1314""" %1302 +1313 CopyFile "VB MSCOMM32,mscomm_srg" %1302 +1314 CustomAction "COMMON98.DLL,RegFile,1310" %1310 + + === MSMASK32.OCX (vbmsmask.etf) === +1321 Group 1322 1323 1324 1325 1332 +1322 InstallShared "VB MSMASK32,msmask32_ocx,msmask32.ocx,,2823" %M +1323 InstallShared "VB MSMASK32,msmask32_dep,msmask32.dep,,2823" %1322 +1324 InstallShared "VB MSMASK32,msmskchs_dll,msmskchs.dll,,2823" %M +1325 Depend "1322?1326 1327 1328 1329 1330 1331" +1326 msmask32.ocx SelfReg "VB MSMASK32,msmask32_ocx,,, " %1322 +1327 CustomAction "COMMON98.DLL, RemoveAuxFile, VB MSMASK32;msmask32_oca" %1322 +1328 CopyFile "VB MSMASK32,masked98_ch2" %W\Help +1329 CopyFile "VB MSMASK32,masked98_ch1" %W\Help +1330 CopyFile "VB MSMASK32,msmask_srg" %1322 +1331 CustomAction "COMMON98.DLL,RegFile,1330" %1330 +1332 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1333 1334""" %1322 +1333 CopyFile "VB MSMASK32,msmask_srg" %1322 +1334 CustomAction "COMMON98.DLL,RegFile,1330" %1330 + + === COMCT332.OCX (vbcomct3.etf) === +1341 Group 1342 1343 1344 1345 1352 +1342 InstallShared "VB COMCT332,comct332_ocx,comct332.ocx,,2823" %M +1343 InstallShared "VB COMCT332,comct332_dep,comct332.dep,,2823" %1342 +1344 InstallShared "VB COMCT332,cmct3chs_dll,cmct3chs.dll,,2823" %1342 +1345 Depend "1342?1346 1347 1348 1349 1350 1351" +1346 comct332.ocx CustomAction "COMMON98.DLL,RegisterFile,""VB COMCT332,comct332_ocx,3"" " %1342 +1347 CustomAction "COMMON98.DLL, RemoveAuxFile, VB COMCT332;comct332_oca" %1342 +1348 CopyFile "VB COMCT332,cmctl398_chi_1" %W\Help +1349 CopyFile "VB COMCT332,cmctl398_chm_1" %W\Help +1350 CopyFile "VB COMCT332,comct332_srg" %1342 +1351 CustomAction "COMMON98.DLL,RegFile,1350" %1350 +1352 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""1353 1354""" %1342 +1353 CopyFile "VB COMCT332,comct332_srg" %1342 +1354 CustomAction "COMMON98.DLL,RegFile,1350" %1350 + + === Wizards (vbepwiz.etf)=== +1361 Group 1362 1363 1364 1376 1387 %D\Wizards +1362 CopySection "Wizards" %D +1363 CopySection "Wizards Template Files" %D\Template + +1364 Group 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 +1365 clssbld.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizards, clssbld_dll,3""" %1362 +1366 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Class Builder Utility"",""ProgID"",""ClassBuilder.Wizard"",""""" +1367 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Class Builder Utility"",""ShowOnToolbar"",""1"",""""" +1368 dataform.ocx CustomAction "COMMON98.DLL,RegisterFile,""Wizards, dataform_ocx,3""" %1362 +1369 CustomAction "COMMON98.DLL, RemoveAuxFile, Wizards;dataform_oca" %1362 +1370 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Data Form Wizard"",""ProgID"",""DataFormWizard.Wizard"",""""" +1371 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Data Form Wizard"",""ShowOnToolbar"",""1"",""""" +1372 chartwiz.ocx CustomAction "COMMON98.DLL,RegisterFile,""Wizards,chartwiz_ocx,3""" %1362 +1373 CustomAction "COMMON98.DLL, RemoveAuxFile, Wizards;chartwiz_oca" %1362 +1374 flexwiz.ocx CustomAction "COMMON98.DLL,RegisterFile,""Wizards,flexwiz_ocx,3""" %1362 +1375 CustomAction "COMMON98.DLL, RemoveAuxFile, Wizards;flexwiz_oca" %1362 + +1376 Group 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 +1377 axdocwiz.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizards, axdocwiz_dll,3""" %1362 +1378 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB ActiveX Document Migration Wizard"",""ProgID"",""ActiveXDocumentWizard.Wizard"",""""" +1379 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB ActiveX Document Migration Wizard"",""ShowOnToolbar"",""1"",""""" +1380 ctrlwiz.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizards, ctrlwiz_dll,3""" %1362 +1381 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB ActiveX Control Wizard"",""ProgID"",""ControlWiz.Wizard"",""""" +1382 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB ActiveX Control Wizard"",""ShowOnToolbar"",""1"",""""" +1383 proppgwz.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizards, proppgwz_dll,3""" %1362 +1384 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Property Page Wizard"",""ProgID"",""PropertyPageWizard.Wizard"",""""" +1385 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB Property Page Wizard"",""ShowOnToolbar"",""1"",""""" +1386 msdatobj.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizards, msdatobj_dll,3""" %1362 + +1387 Group 1388 1389 +1388 wizman.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizards, wizman_dll,3""" %1362 +1389 aitool.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizards, aitool_dll,3""" %1362 + + === Templates (vbtempl.etf)=== +1391 Group 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 %D\Template +1392 CopySection "Templates - classes" %D\Classes +1393 CopySection "Templates - data" %D\Projects +1394 CopySection "Templates - proppage" %D\Proppage +1395 CopySection "Templates - userctls" %D\Userctls +1396 CopySection "Templates - userdocs" %D\Userdocs +1397 CopySection "Templates - IIsAppl" %D\Projects +1398 CustomAction "COMMON98.DLL, RemoveAuxFile, Templates - IIsAppl;iisapp_vbw" %1397 +1399 CustomAction "COMMON98.DLL, RemoveAuxFile, Templates - IIsAppl;webclass_log" %1397 +1400 CreateDir UserDocs %D +1401 CreateDir MDIForms %D + + === VB Conversation Object Component (vbconobj.etf) === + +1411 Group 1412 1413 1414 1415 1416 1417 1418 1419 + +1412 CopyFile "VB Conversation Object, mscnvman_dll" %12\designer +1413 CopyFile "VB Conversation Object, mswcrun_dep" %1412 +1414 CopyFile "VB Conversation Object, wbclsdsr_ocx" %12\designer +1415 CopyFile "VB Conversation Object, convmchs_dll" %1412 +1416 CopyFile "VB Conversation Object, wbcsdchs_dll" %1414 + +1417 mswcrun.dll SelfReg "VB Conversation Object, mscnvman_dll,,," %1412 +1418 wbclsdsr.ocx SelfReg "VB Conversation Object, wbclsdsr_ocx,,," %1414 +1419 AddRegData "HKEY_CURRENT_USER,Software\Microsoft\Visual Basic\6.0\Designers\{17016CEE-E118-11D0-94B8-00A0C91110ED},,," + + === VS Enterprise Edition Component (vsee.etf) === + + STFWIZ 68 +1421 yes ҵ湦ܺ͹ װҵ Application Performance ExplorerVisual Component ManagerRepositoryVisual ModelerRemote Data ObjectsConnection Designer Automation Manager CustomDlg 1422 1431 1427 1426 1432 : 1481 1491 1501 1436 1811 1801 1821 2551 2531 %10\Tools + + STFWIZ 72 +1422 yes Application Performance Explorer װ Application Performance Explorer Group 1423 1769 1424 1721 2771 %d\APE +1423 InstallShared "APE tagfile, aeexpdtr_exe, ""APE setup tagfile"",,2823" +1424 Depend 1423 ? 1425 %D +1425 yes Group 1761 1791 1771 1741 + + STFWIZ 73 +1426 yes Repository װ RepositoryһϢģ͵ݿ⡣ Group 1441 %d + + STFWIZ 70 +1427 yes Visual Component Manager װ Visual Component Manager Group 1428 1429 %d\VCM +1428 InstallShared "(vsee) Visual Component Mgr core, vcmcab_dll, ""VCM setup tagfile"",,2823" %d +1429 Depend 1428 ? 1430 %D +1430 yes Group 1871 1861 1831 1841 + + STFWIZ 74 +1431 yes Visual Basic ҵ װ RemAuto ӹ Group 1461 1511 1551 1561 1531 + + STFWIZ 71 +1432 yes Microsoft Visual Modeler װ Microsoft Visual Modeler 6.0 ļʾģ顣 Group 1433 1601 1434 %D\VS-Ent98\vmodeler +1433 InstallShared "VM - Core7,msvm_exe, ""VM setup tagfile"",,2823" %D +1434 Depend 1433 ? 1435 %D +1435 Group 1571 + +1436 Group 1437 +1437 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\VisualStudio\6.0\Setup\Microsoft VSEE Client,ProductDir,%s" + + + + === (vsee) Repository Component (reposity.etf) === + +1441 Group 1442 1443 1445 1456 1446 1447 1449 1450 1452 1453 1454 1455 1458 %h\Repostry + +1442 InstallShared "(vsee) Repository,repbrowse_ex,repbrows.exe_v6,,2823" %d +1443 CustomAction "COMMON98.DLL,NeverRemoveGroup,""1444""" +1444 CopyFile "(vsee) Repository,repostry_mdb" %w\msapps\repostry +1445 InstallShared "(vsee) Repository,repbrrc_dll,repbrrc.dll,,2823" %d + +1446 InstallShared "(vsee) Repository,repcdlg_dll,repcdlg.dll,,2823" %d +1447 Depend "1446?1448" +1448 repcdlg.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Repository,repcdlg_dll,3""" %1446 +1449 InstallShared "(vsee) Repository,repcdlg_ocx,repcdlg.ocx,,2823" %d +1450 Depend "1449?1451" +1451 repcdlg.ocx CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Repository,repcdlg_ocx,3""" %1449 +1452 InstallShared "(vsee) Repository,repcdrc_dll,repcdrc.dll,,2823" %d +1453 InstallShared "(vsee) Repository,migv2rc_dll,MigV2Rc.dll,,2823" %d +1454 InstallShared "(vsee) Repository,migv2_dll,MigV2.dll,,2823" %d +1455 InstallShared "(vsee) Repository,migrepv2_exe,MigRepV2.exe,,2823" %d + +1456 Depend "1442?1457" +1457 repbrows.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Repository,repbrowse_ex,3"" " %1442 + +1458 Depend "1454?1459" +1459 MigV2.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Repository,migv2_dll,3"" " %1454 + + === Connection Designer (vbcondes.etf)=== +1461 Group 1462 1463 1464 1465 1469 1471 1472 +1462 InstallShared "Connection Designer, mscondes_dll_1,mscondes.dll,,2823" %12\designer +1463 InstallShared "Connection Designer, mscdrun_dll_1,Mscdrun.dll,,2823" %12\designer +1464 InstallShared "Connection Designer, mscdrun_dep_1,Mscdrun.dep,,2823" %1463 +1465 Depend "1462?1466 1467 1468" +1466 mscondes.dll SelfReg "Connection Designer, mscondes_dll_1,,," %1462 +1467 AddRegData "HKEY_CURRENT_USER,Software\Microsoft\Visual Basic\6.0\Designers\{FB079AE3-551B-11CF-A0BE-00AA0062BE57}," +1468 AddRegData "HKEY_CLASSES_ROOT,Licenses\AC0871D0-6ACC-11cf-8ADB-00AA00C00905,,knjnpgognginknggsmnnhnjnumvmlngnrlrk," +1469 Depend "1463?1470" +1470 Mscdrun.dll SelfReg "Connection Designer, mscdrun_dll_1,,," %1463 +1471 InstallShared "Connection Designer,conndchs_dll,conndchs.dll,,2823" %1462 +1472 InstallShared "Connection Designer,connrchs_dll,connrchs.dll,,2823" %1462 + + === Automation Manager (vbautmgr.etf) === +1481 Group 1482 1483 1484 1486 1487 1489 +1482 InstallShared "Automation Manager,autmgr32_exe_1,Autmgr32.exe,,2823" %M +1483 InstallShared "Automation Manager,autprx32_dll_1,Autprx32.dll,,2823" %M +1484 Depend "1482?1485" +1485 CustomAction "COMMON98.DLL,SelfRegExeCAH,""%s\Autmgr32.exe""" %1482 +1486 CustomAction "COMMON98.DLL,RemoveAuxFile,Automation Manager;autmgr32_log" %1482 +1487 Depend "1483?1488" +1488 Autprx32.dll SelfReg "Automation Manager,autprx32_dll_1,," %1483 + +1489 InstallShortcut "%1482\%F1482,AutMgr,%1482,,,," %27\VM<%27\Microsoft Visual Basic 6.0 İ\ҵ湤> + + === Enterprise Features (vbentpri.etf)=== +1491 Group 1492 1493 %10 +1492 CustomAction "COMMON98.DLL, NopCAH" +%D +1493 InstallShared "VB Enterprise,clireg32_exe_1,clireg32.exe,,2823" %D\Tools\Clireg + + === Racmgr & Racreg (vbracmgr.etf) === +1501 Group 1502 1503 1504 1506 %M +1502 InstallShared "VB RACMGR,racmgr32_exe,Racmgr32.exe,,2823" +1503 InstallShared "VB RACMGR,racreg32_dll_1,Racreg32.dll,,2823" +1504 Depend "1503?1505" +1505 Racreg32.dll CustomAction "COMMON98.DLL,RegisterFile,""VB RACMGR,racreg32_dll_1,3""" %1503 +1506 InstallShortcut "%1502\%F1502,RACMgr,%1502,,,," %27\EntTool<%27\Microsoft Visual Basic 6.0 İ\ҵ湤> + + === TSQL Debugger (vbtsql.etf)=== +1511 Group 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1523 %765 +1512 CopyFile "VB TSQL,vbsdiadd_dll" %D\Tsql +1513 CopyFile "VB TSQL,vbsdidb_dll" %D\Tsql +1514 CopyFile "VB TSQL,vbsdicli_exe" %D\Tsql +1515 CopyFile "VB TSQL,vbsdidb_srg_1" %D\Tsql +1516 CustomAction "COMMON98.DLL,RegFile,1515" %1515 +1517 CustomAction "COMMON98.DLL,SelfRegExeCAH,""%s\vbsdicli.exe""" %1514 +1518 vbsdiadd.dll CustomAction "COMMON98.DLL,RegisterFile,""VB TSQL,vbsdiadd_dll,3""" %1512 +1519 vbsdidb.dll CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\vbsdidb.dll""""""" %1513 +1520 CopyFile "VB TSQL,vbsdcchs_dll" %1514 +1521 CopyFile "VB TSQL,vbsdichs_dll" %1514 +1522 DetectIniLine "VBAddin.INI,Add-Ins32,VBSDIAddIn.Connect" +1523 Depend "1522?1524" +1524 RemoveIniLine "VBAddin.INI,Add-Ins32,VBSDIAddIn.Connect" + + === MSQuery (vbmsqry.etf) === +1531 Group 1532 1533 1534 1535 1536 +1532 InstallShared "MS Query,msqry32_exe,msqry32.exe,,2823" %H\VBA +1533 InstallShared "MS Query,qryint32_dll,Qryint32.dll,,2823" %1532 +1534 InstallSysFile "MS Query,dbcs3032_dll" %M +1535 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Shared Tools\VBQuery,Path,%s," %1532\msqry32.exe +1536 Depend "1532?1537 1540" +1537 Depend "28?1538:1539" +1538 AddRegData "HKEY_CURRENT_USER,Software\Microsoft\Windows\CurrentVersion\Extensions,qry,""%s\msqry32.exe ^.qry""," %1532 +1539 AddRegData "HKEY_CURRENT_USER,""Software\Microsoft\Windows NT\CurrentVersion\Extensions"",qry,""%s\msqry32.exe ^.qry""," %1532 +1540 Group 1541 1542 1543 1544 1545 1546 1547 +1541 CompanionFile "1532:MS Query,msqry32_hlp" +1542 CompanionFile "1532:MS Query,msqry32_cnt" +1543 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,msqry32.hlp,%s," %1541 +1544 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,msqry32.cnt,%s," %1542 +1545 CustomAction "COMMON98.DLL, RemoveAuxFile, MS Query;msqry32_ftg" +1546 CustomAction "COMMON98.DLL, RemoveAuxFile, MS Query;msqry32_fts" +1547 CustomAction "COMMON98.DLL, RemoveAuxFile, MS Query;msqry32_gid" + + === ODKOB32 (vbodkob.etf) === +1551 InstallShared "VB ODKOB32,odkob32_dll_1,odkob32.dll,,2823" %M + + === VB Repository Add-in (vbrepadd.etf) === +1561 Group 1562 1563 1565 1566 %765 +1562 CopyFile "VB Repository AddIn,repvb_dll" %D +1563 Depend "1562?1564" +1564 RepVB.dll SelfReg "VB Repository AddIn,repvb_dll,,," %1562 +1565 CopyFile "VB Repository AddIn,repvbrc_dll" %D +1566 CopyFile "VB Repository AddIn,repvbtim_dll" %D + + === VM Main ETF (VM.ETF) === + +1571 yes Microsoft Visual Modeler װ Microsoft Visual Modeler 6.0 ļʾģ顣 Group 1581 1711 1572 1573 + +1572 AddIniLine """VBAddin.INI"",""Add-Ins32"",""RVBAddInMenus.Connector"",""0""" +1573 AddIniLine """VBAddin.INI"",""Add-Ins32"",""RVBAddIn.Connector"",""0""" + + === Visual Modeler Core Component (VMCORE.ETF) === + +1581 Group 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1602 1603 1686 %D + +1582 CopySection "VM - Core1" +1583 CopySection "VM - Core2" +1584 CopySection "VM - Core3" +1585 CopySection "VM - Core4" +1586 CopySection "VM - Core5" +1587 CopySection "VM - Core6" +1588 Group 1598 1604 1605 1607 1608 1610 1611 1613 1614 +1589 Group 1616 1617 1619 1620 1622 1623 1625 1626 +1590 Group 1628 1629 1631 1632 1634 1635 1637 1638 +1591 Group 1640 1641 1643 1644 1646 1647 +1592 Group 1649 1650 1652 1653 +1593 CopySection "VM - Core9" +1594 CopySection "VM - Core10" +1595 CopySection "VM - Core11" +1596 Group 1655 1656 1658 1659 1661 1662 1664 1665 +1597 Group 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 %1593 + +1598 Depend "1433 ? 1599 1600" +1599 StampCDInfo "1433,20001, 20000" +1600 msvm.exe CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7,msvm_exe ,3""" + +1601 InstallShortcut "%1433\%F1433,VM,%1433,,,," %27\VM<%27\Microsoft Visual Basic 6.0 İ\ҵ湤> + +1602 Msvm.srg CopyFile "VM - MSVM,msvm_srg" %D +1603 Msvm.srg CustomAction "COMMON98.DLL,RegFile,1602" %1602 + +1604 CopyFile "VM - Core7,rsssrcsf_dll" +1605 Depend "1604?1606" +1606 rsssrcsf.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7,rsssrcsf_dll ,3""" + +1607 CopyFile "VM - Core7,rssssres_dll" +1608 Depend "1607?1609" +1609 rssssres.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7, rssssres_dll,3""" + +1610 CopyFile "VM - Core7,rvbabtbx_dll" +1611 Depend "1610?1612" +1612 rvbabtbx.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7, rvbabtbx_dll ,3""" + +1613 CopyFile "VM - Core7,rvbaddin_exe" +1614 Depend "1613?1615" +1615 rvbaddin.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7,rvbaddin_exe ,3""" + +1616 CopyFile "VM - Core7,rvbadmnu_exe" +1617 Depend "1616?1618" +1618 rvbadmnu.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7,rvbadmnu_exe ,3""" + +1619 CopyFile "VM - Core7,rvbaxreo_dll" +1620 Depend "1619?1621" +1621 rvbaxreo.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7,rvbaxreo_dll ,3""" + +1622 CopyFile "VM - Core7,rvbcdlg_dll" +1623 Depend "1622?1624" +1624 rvbcdlg.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7, rvbcdlg_dll,3""" + +1625 CopyFile "VM - Core7,rvbcgwiz_dll" +1626 Depend "1625?1627" +1627 rvbcgwiz.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7,rvbcgwiz_dll ,3""" + +1628 CopyFile "VM - Core7,rvbclswz_dll" +1629 Depend "1628?1630" +1630 rvbclswz.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7, rvbclswz_dll,3""" + +1631 CopyFile "VM - Core7,rvbdilog_exe" +1632 Depend "1631?1633" +1633 rvbdilog_exe CustomAction "COMMON98.DLL,RegisterFile,""VM - Core7,rvbdilog_exe,3""" %1631 + +1634 CopyFile "VM - Core8,rvbparse_dll" +1635 Depend "1634?1636" +1636 rvbparse.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core8, rvbparse_dll ,3""" + +1637 CopyFile "VM - Core8,rvbprvwz_dll" +1638 Depend "1637?1639" +1639 rvbprvwz.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core8, rvbprvwz_dll,3""" + +1640 CopyFile "VM - Core8,rvbreso_dll" +1641 Depend "1640?1642" +1642 rvbreso.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core8, rvbreso_dll,3""" + +1643 CopyFile "VM - Core8,rvbrewiz_dll" +1644 Depend "1643?1645" +1645 rvbrewiz.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core8, rvbrewiz_dll ,3""" + +1646 CopyFile "VM - Core8,rvbrewiz_exe" +1647 Depend "1646?1648" +1648 rvbrewiz_exe CustomAction "COMMON98.DLL,RegisterFile,""VM - Core8,rvbrewiz_exe,3""" + +1649 CopyFile "VM - Core8,rwebutil_dll" +1650 Depend "1649?1651" +1651 rwebutil.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core8, rwebutil_dll ,3""" + +1652 CopyFile "VM - Core8,vbpid_dll" +1653 Depend "1652?1654" +1654 vbpid.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core8, vbpid_dll ,3""" + +1655 CopyFile "VM - Core12,rtires_dll" +1656 Depend "1655?1657" +1657 rtires.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core12, rtires_dll ,3""" + +1658 CopyFile "VM - Core12,rtlibimp_dll" +1659 Depend "1658?1660" +1660 rtlibimp.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core12, rtlibimp_dll ,3""" + +1661 CopyFile "VM - Core12,rvsprgdg_exe" +1662 Depend "1661?1663" +1663 rvsprgdg.exe CustomAction "COMMON98.DLL,RegisterFile,""VM - Core12,rvsprgdg_exe,3""" + +1664 CopyFile "VM - Core12,rvsrpsrs_dll" +1665 Depend "1664?1666" +1666 rvsrpsrs.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core12, rvsrpsrs_dll ,3""" + +1667 rvc98com.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9, rvc98com_dll ,3""" +1668 rvccdegn.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9, rvccdegn_dll ,3""" +1669 rvciface.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9, rvciface_dll ,3""" +1670 rvcreso.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9, rvcreso_dll ,3""" +1671 rvsapstr.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9, rvsapstr_dll ,3""" +1672 rvsintmg.exe CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9,rvsintmg_exe,3""" +1673 rvsres.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9, rvsres_dll ,3""" +1674 vs.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core9, vs_dll ,3""" + +1675 rvcbrwcd.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core10, rvcbrwcd_dll ,3""" +1676 RVSRepos.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core10, rvsrepos_dll ,3""" +1677 vc.dll CustomAction "COMMON98.DLL,RegisterFile,""VM - Core10, vc_dll ,3""" + +1678 Group 1679 1680 1681 1682 1683 1684 1685 +1679 AddRegData """LOCAL"", ""Software\Microsoft\Windows\Help"", ""Msvmcpp.cnt"", ""%s"", """" " %1595 +1680 AddRegData """LOCAL"", ""Software\Microsoft\Windows\Help"", ""Msvmcpp.hlp"", ""%s"", """" " %1595 +1681 AddRegData """LOCAL"", ""Software\Microsoft\Windows\Help"", ""Msvmrep.cnt"", ""%s"", """" " %1595 +1682 AddRegData """LOCAL"", ""Software\Microsoft\Windows\Help"", ""Msvmrep.hlp"", ""%s"", """" " %1595 +1683 AddRegData """LOCAL"", ""Software\Microsoft\Windows\Help"", ""Msvmss.cnt"", ""%s"", """" " %1595 +1684 AddRegData """LOCAL"", ""Software\Microsoft\Windows\Help"", ""Msvmvb.cnt"", ""%s"", """" " %1595 +1685 AddRegData """LOCAL"", ""Software\Microsoft\Windows\Help"", ""Msvmvb.hlp"", ""%s"", """" " %1595 + +1686 Group 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 +1687 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmcpp_ftg" %d +1688 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmcpp_gid" %d +1689 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmcpp_fts" %d +1690 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmrep_ftg" %d +1691 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmrep_gid" %d +1692 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmrep_fts" %d +1693 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmss_ftg" %d +1694 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmss_gid" %d +1695 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmss_fts" %d +1696 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmu_ftg" %d +1697 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmu_gid" %d +1698 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmu_fts" %d +1699 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmvb_ftg" %d +1700 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmvb_gid" %d +1701 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;msvmvb_fts" %d +1702 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;qstart_ftg" %d +1703 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;qstart_gid" %d +1704 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;qstart_fts" %d +1705 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;quest_ftg" %d +1706 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;quest_gid" %d +1707 CustomAction "COMMON98.DLL, RemoveAuxFile, VM - RemoveHelp;quest_fts" %d + + === Visual Modeler Templates Component ( vmtmplte.etf ) === + +1711 CopySection "VM-Templates" %D\Template + + === Data Access Object (dao350.etf) === +1721 Group 1722 1723 1724 +1722 InstallShared "DAO,dao350_dll,dao350.dll,,2823" %H\DAO +1723 InstallShared "DAO,dao2535_tlb,dao2535.tlb,,2823" %1722 +1724 Depend "1722?1725 1726 1727 1728 1729 1730 1731 1732 1733" +1725 dao350.dll SelfReg "DAO,dao350_dll,,, " %1722 +1726 AddRegData """CLASSES"",""Licenses\F4FC596D-DFFE-11CF-9551-00AA00A3DC45"","""",""mbmabptebkjcdlgtjmskjwtsdhjbmkmwtrak"",""""" +1727 CopyFile "DAO,dao35_hlp" %W\Help +1728 CopyFile "DAO,dao35_cnt" %W\Help +1729 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,dao35.hlp,%s," %1727 +1730 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,dao35.cnt,%s," %1728 +1731 CustomAction "COMMON98.DLL, RemoveAuxFile, DAO;dao35_ftg" +1732 CustomAction "COMMON98.DLL, RemoveAuxFile, DAO;dao35_fts" +1733 CustomAction "COMMON98.DLL, RemoveAuxFile, DAO;dao35_gid" + + === (vsee) APE C/S shared Component (c-sshare.etf) === + +1741 Group 1742 1743 %d + +1742 CopySection "(vsee) APE C/S shared" %d +1743 Group 1744 1745 1746 1753 1747 1748 1749 1750 1751 1752 1754 1755 1756 2827 +1744 aeexpdtr.exe CustomAction "COMMON98.DLL,RegisterFile,""APE tagfile,aeexpdtr_exe,3""" %1423 +1745 aeinstnr.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared,aeinstnr_exe,3""" +1746 aelogger.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared,aelogger_exe,3""" +1747 aepool.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared,aepool_exe,3""" +1748 aequeue.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared,aequeue_exe,3""" +1749 aesvrmgr.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared,aesvrmgr_exe,3""" +1750 aeworker.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared,aeworker_exe,3""" +1751 aewrkpvd.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared,aewrkpvd_exe,3""" +1752 aeservic.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared, aeservic_dll ,3""" %d +1753 aemtssvc.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) APE C/S shared, aemtssvc_dll,3""" +1754 AEIntrfc.TLB CustomAction "COMMON98.DLL,RegisterTypeLibrary,""(vsee) APE C/S shared;aeintrfc_tlb""" %1742 +1755 AEExpdtr.tlb CustomAction "COMMON98.DLL,RegisterTypeLibrary,""(vsee) APE C/S shared;aeexpdtr_tlb""" %1742 +1756 apemreg.exe CustomAction "COMMON98.DLL,RunExeWithDep,""%s\apemreg.exe; ; /S /U """"Visual Studio APE Package"""" """"%s\AEMTSSVC.PAK"""";9003;2;0;%M\msvbvm60.dll;%M\mts\MTXADMIN.DLL""" %1742 + + === Component (apemgr.etf) === + +1761 Group 1762 1763 1767 1766 1764 1765 1768 %10\Tools +1762 CustomAction "COMMON98.DLL, NopCAH" +%10\Tools + +1763 CopySection "(vsee) ApeManager" %d\APE + +1764 odbctool.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) ApeManager, odbctool_dll ,3""" %1763 +1765 regtool5.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) ApeManager, regtool5_dll ,3""" %1763 +1766 APEDBSet.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) ApeManager, apedbset_exe ,3""" %1763 +1767 AEManagr.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) ApeManager,aemanagr_exe,3"" " %1763 +1768 CustomAction "COMMON98.DLL,DeleteRegKey,HKLM;SOFTWARE\Microsoft\VSEE" + +1769 InstallShortcut "%1763\AEManagr.exe,APE,%1763,,,," %27\VM<%27\Microsoft Visual Basic 6.0 İ\ҵ湤> + + === APE Sample Source Component (apesamp.etf) === +1771 Group 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 %D\Source +1772 CopySection "Sample - AEClient" %D\Aeclient +1773 CopySection "Sample - AEcompat" %D\Aecompat +1774 CopySection "Sample - AEExpdtr" %D\Aeexpdtr +1775 CopySection "Sample - AEinclud" %D\Aeinclud +1776 CopySection "Sample - AEInstnr" %D\Aeinstnr +1777 CopySection "Sample - AEintrfc" %D\Aeintrfc +1778 CopySection "Sample - AELogger" %D\Aelogger +1779 CopySection "Sample - AEmtssvc" %D\Aemtssvc +1780 CopySection "Sample - AEPool" %D\Aepool +1781 CopySection "Sample - AEQueue" %D\Aequeue +1782 CopySection "Sample - AEServic" %D\Aeservic +1783 CopySection "Sample - AEWorker" %D\Aeworker +1784 CopySection "Sample - AEWrkpvd" %D\Aewrkpvd + + === Component (apeclint.etf) === + +1791 Group 1792 1793 %d + +1792 CopySection "(vsee) ape client" %d + +1793 AEClient.exe CustomAction "COMMON98.DLL,RegisterFile,""(vsee) ape client,aeclient_exe,3""" %1792 + + === (vsee) Repository System Component (reposys.etf) === +1801 Group 1802 %d +1802 InstallShared "(vsee) Repository System,reputil_dll,,reputil.dll,,2823" %m + + === (vsee) Repository UML Component (reposuml.etf) === + +1811 Group 1812 1813 %h\Repostry\infoMdl + +1812 InstallShared "(vsee) Repository UML,uml_dll,uml.dll,,2823" +1813 Depend "1812?1814" +1814 uml.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Repository UML, uml_dll ,3""" %1812 + + === Repository Shared Files Component (repossh.etf) === +1821 Group 1822 1823 1824 1826 1827 %h\Repostry +1822 InstallShared "(vsee) Repository Shared Files, repodbc_dll, repodbc.dll_v6,,2823" %d +1823 InstallShared "(vsee) Repository Shared Files, reprc_dll, reprc.dll_v6,,2823" %d +1824 Depend "1822?1825" +1825 repodbc.dll SelfReg "(vsee) Repository Shared Files,repodbc_dll ,,,," %1822 +1826 InstallShared "(vsee) Repository Shared Files,insrepim_dll,insrepim.dll,,2823" %D +1827 Depend "1826?1828" +1828 insrepim.dll SelfReg "(vsee) Repository Shared Files,insrepim_dll" %1826 + + === Component (vcment.etf) === + +1831 Group 1832 1833 %d + +1832 CopyFile "(vsee) Visual Component Mgr Ent, vcmemd_dll" %d +1833 vcmEmd.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Visual Component Mgr Ent,vcmemd_dll,3""" %1832 + + === VCM Repository Installers Component (repoinst.etf) === + +1841 Group 1842 1843 1850 %d +1842 CustomAction "COMMON98.DLL, NopCAH" +%10\Tools\VCM + +1843 Group 1844 1845 1846 1847 1848 1849 %h\Repostry\infoMdl +1844 CopyFile "(vsee) VCM Repository Installers, repcde_dll" %d +1845 CopyFile "(vsee) VCM Repository Installers, repcom_dll" %d +1846 CopyFile "(vsee) VCM Repository Installers, repdtm_dll" %d +1847 CopyFile "(vsee) VCM Repository Installers, repgen_dll" %d +1848 CopyFile "(vsee) VCM Repository Installers, repumx_dll" %d +1849 CopyFile "(vsee) VCM Repository Installers, repvcm_dll" %d + +1850 Group 1851 1852 1853 1854 1855 1856 %h\Repostry\infoMdl +1851 repcde.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) VCM Repository Installers, repcde_dll,3""" %d +1852 repcom.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) VCM Repository Installers, repcom_dll,3""" %d +1853 repdtm.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) VCM Repository Installers, repdtm_dll,3""" %d +1854 repgen.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) VCM Repository Installers, repgen_dll,3""" %d +1855 repumx.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) VCM Repository Installers, repumx_dll,3""" %d +1856 repvcm.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) VCM Repository Installers, repvcm_dll,3""" %d + + === (vsee) VCM Package Component (vcmpak.etf) === +1861 Group 1862 1863 1864 %10\IDE\IDE98 +1862 CopyFile "(vsee) VCM Package, vcmpk_dll" %d +1863 CopyFile "(vsee) VCM Package, vcmpkui_dll_enu" %d\resources\1033 +1864 vcmpk.dll SelfReg """(vsee) VCM Package"",""vcmpk_dll"","""","""",""""" %1862 + + === (vsee) Visual Component Mgr Core Component (vcm.etf) === + +1871 Group 1872 1883 1892 1893 %d + +1872 Group 1880 1881 1873 1874 1875 1879 1876 1877 1878 1882 1894 1895 1896 1897 %d +1873 CopyFile "(vsee) Visual Component Mgr core, vcm_mdb" %d +1874 CopyFile "(vsee) Visual Component Mgr core, vcmagg_dll" %d +1875 CopyFile "(vsee) Visual Component Mgr core, vcmaxb_ocx" %d +1876 CopyFile "(vsee) Visual Component Mgr core, vcmmgr_dll" %d +1877 CopyFile "(vsee) Visual Component Mgr core, vcmvmb_ocx" %d +1878 CopyFile "(vsee) Visual Component Mgr core, vcmvmh_dll" %d +1879 CopyFile "(vsee) Visual Component Mgr core, vcmutl_dll" %d +1880 CopyFile "(vsee) Visual Component Mgr core, vcm_vbd" %d +1881 InstallSysFile "(vsee) Visual Component Mgr core, cabinet_dll" %d + +1882 CopyFile "(vsee) Visual Component Mgr core, vcmui_dll_chs" %d\resources\2052 + +1883 Group 1884 1891 1885 1886 1887 1888 1889 1890 +1884 vcmcab.dll SelfReg """(vsee) Visual Component Mgr core"",""vcmcab_dll"","""","""",""""" %1428 +1885 vcmmgr.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Visual Component Mgr core,vcmmgr_dll,3""" %1876 +1886 vcmvmb.ocx CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Visual Component Mgr core,vcmvmb_ocx,3""" %1877 +1887 vcmaxb.ocx CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Visual Component Mgr core,vcmaxb_ocx,3""" %1875 +1888 vcmvmh.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Visual Component Mgr core,vcmvmh_dll,3""" %1878 +1889 vcmUtl.dll SelfReg """(vsee) Visual Component Mgr core"",""vcmutl_dll"","""","""",""""" %1879 +1890 vcmagg.dll SelfReg """(vsee) Visual Component Mgr core"",""vcmagg_dll"","""","""",""""" %1874 + +1891 vcmui.dll CustomAction "COMMON98.DLL,RegisterFile,""(vsee) Visual Component Mgr core,vcmui_dll_chs,3""" %1882 + +1892 AddRegData """LOCAL"", ""Software\Microsoft\Visual Component Manager"", ""RepositoryURL"", ""%s\vcm.mdb"", """" " %1871 + +1893 CustomAction "COMMON98.DLL,DeleteRegKey,HKLM;SOFTWARE\Microsoft\Visual Component Manager" +1894 CustomAction "COMMON98.DLL, RemoveAuxFile,(vsee) Visual Component Mgr core;vcmaxb_oca" %1875 +1895 CustomAction "COMMON98.DLL, RemoveAuxFile,(vsee) Visual Component Mgr core;vcmvmb_oca" %1877 +1896 CustomAction "COMMON98.DLL, RemoveAuxFile,(vsee) Visual Component Mgr core;findfile_avi_delonly" %d +1897 CustomAction "COMMON98.DLL, RemoveAuxFile,(vsee) Visual Component Mgr core;search_avi_delonly" %d + + === VSS Main ETF (VSS.ETF) === + + STFWIZ 37 +1901 yes Microsoft Visual SourceSafe 6.0 һ VSS ݿ⣨ʱ⣩װ VSS ԺڰװʱʹáVSS ѡɴһ VSS ݿ⡣ Group 1909 1912 1916 1920 2072 1902 1903 1991 yes %11 + +1902 InstallShared "VSS Client exe, ssexp_exe, ""VSS setup tagfile"",,2823" %D\win32 + +1903 Depend 1902 ? 1904 %D +1904 Group 1906 1907 2101 2091 1951 1905 +1905 InstallShortcut "%2862\readmess.htm,readme,,,,," %d + +1906 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual SourceSafe,ProductDir,%s" +1907 Depend 26 ? 1908 +1908 AddRegData "LOCAL,""Software\Microsoft\IE4\DependentComponents"",""VSS98"",""Microsoft Visual SourceSafe 6.0""" + + STFWIZ 39 +1909 yes ͻ (Intel 32-λ) Microsoft Visual SourceSafe 6.0 ֻװԶ̼ϵ Visual SourceSafe 6.0 ݿѡ Group 2137 1910 %D +1910 Depend 1902 ? 1911 %D +1911 Group 2131 2151 1941 2121 %D + + STFWIZ 38 +1912 yes SourceSafe ע SourceSafeԱ㽫ֱӼɵ Visual Basicİ桢Visual C++Microsoft Access Visual Foxpro İȿС Group 1913 %D +1913 Depend 1902 ? 1914 %D +1914 Group 2111 %D +1915 DetectOlderFile "srcsafe.ini" %d +1916 Depend 1915 ? 1981 : 1917 %D +1917 yes Group 1918 1919 %D +1918 yes ת װ汾ĿؼϵͳתĹߡ Group 1961 +1919 yes SourceSafe ݿ װת SourceSafe ݿĿ¼ļ Group 2062 2051 2041 2031 2021 2011 2071 2001 1921 +1920 yes װ Microsoft Visual SourceSafe ͹ߡ Group 1971 + === Special Custom Actions for VSS Database creation (vss.etf) === +1921 Group 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + +1922 yes CustomAction "vsscantl.dll,UpdateDB,%s" +1923 yes CustomAction "vsscantl.dll,RenameLC,srcsafe.ini" +1924 yes CustomAction "vsscantl.dll,RenameLC,""users.txt""" +1925 yes CustomAction "vsscantl.dll,RenameLC,data\aaaaaaaa.cnt" +1926 yes CustomAction "vsscantl.dll,RenameLC,data\a\aaaaaaaa" +1927 yes CustomAction "vsscantl.dll,RenameLC,data\a\aaaaaaaa.a" +1928 yes CustomAction "vsscantl.dll,RenameLC,users\admin\ss.ini" +1929 yes CustomAction "vsscantl.dll,RenameLC,users\admin\ssadmin.ini" +1930 yes CustomAction "vsscantl.dll,RenameLC,users\guest\ss.ini" +1931 yes CustomAction "vsscantl.dll,RenameLC,users\template.ini" + + === vss Ssus.dll Component ( vssSsus.etf ) === + +1941 CopySection "VSS - SSUSDLL" %D\win32 + + === vss Client SRG Component (VSSCSRG.ETF) === + +1951 Group 1952 1953 + +1952 vssClnt.srg InstallShared "VSS - Client SRG,vssclnt_srg,vssClnt.srg,,2823" %D +1953 Depend 1952 ? 1954 %d +1954 reg_vssclnt.srg CustomAction "COMMON98.DLL,RegFile,1952" %1952 + + === VSS Conversion win32 Component ( vssConv32.etf )=== + +1961 CopySection "VSS Conversion win32" %d\win32 + + === VSS Admin win32 Component ( vssadm32.etf )=== + +1971 Group 1972 1973 %d\win32 +1972 CopySection "VSS Admin win32" %d + +1973 Group 1974 1975 1976 %d +1974 CopyFile "VSS Admin win32 - ssadmin.exe, ssadmin_exe" %d +1975 yes StampCDInfo "1974, 106, 196" %d +1976 Group 1977 1978 1979 +1977 Yes Shortcut to SSAdmin InstallShortcut "%1974\ssadmin.exe,VSSADM32,,,,," %27\VSS<%27\Microsoft Visual SourceSafe> +1978 Yes InstallShortcut "%1972\analyze.exe,Analyze,,%1974\ssadmin.exe,1,""-x -v1 """"%1920\data""""""," %27\VSS<%27\Microsoft Visual SourceSafe> +1979 Yes InstallShortcut "%1972\analyze.exe,FixDB,,%1974\ssadmin.exe,1,""-f -c -d -v1 """"%1920\data""""""," %27\VSS<%27\Microsoft Visual SourceSafe> + + === Component (vsslocdb.etf) === +1981 Group 1983 %d +1982 DetectOlderFile "users.txt" %d +1983 Depend "1982 ? 2071" + === VSS Template Dir Component (vsstempl.etf) === +1991 Group 1992 %d\template +1992 CopySection "vss template dir" %d + + === VSS Srcsafe.ini Component ( vsssrc.etf )=== + +2001 Group 2003 %D + +2002 yes DetectOlderFile "srcsafe.ini" %d + +2003 yes Depend 2002 ? : 2004 +2004 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2005""" %d +2005 yes CopySection "VSS - Src" %d + + + + === VSS Create DB users/guest Component ( vssDBusgst.etf )=== +2011 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2012""" %d + +2012 CopySection "VSS Create DB users/guest" %d\users\guest + + === VSS Create DB users/admin Component ( vssDBusadm.etf )=== +2021 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2022""" %d + +2022 CopySection "VSS Create DB users/admin" %d\users\admin + + === VSS Create DB users Component ( vssDBusers.etf )=== + +2031 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2032""" %d +2032 CopySection "VSS Create DB users" %d\users + + === VSS Create DB temp Component ( vssDBtemp.etf )=== + +2041 CopySection "VSS Create DB temp" %d\temp + + === VSS Create DB root Component ( vssDBroot.etf )=== + +2051 CopySection "VSS Create DB root" %d + + === VSS Create DB data Component ( vssDBdata.etf )=== +2061 yes DetectOlderFile "um.dat" %d +2062 Group 2066 2063 %d\data +2063 Depend 2061 ? : 2064 %d +2064 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2065""" %d +2065 CopySection "VSS Create DB data" %d +2066 CreateDir "loggedin" %d + + === VSS Create DB win32 Component ( vssDBwin32.etf )=== + +2071 Group 2072 2074 %d +2072 CopySection "VSS Create DB win32" %d\win32 +2073 DetectOlderFile "crcs.dat" %1920\data +2074 Depend "2073 ? : 2076" +2075 Yes ʹµ Visual SourceSafe ݿʽ? YesNoDlg ʹµ VSS ݿʽԻøܺͽһֻ֧֡µݿʹøøʽʱȫͻ V6 ѡǡѡ񡰷֧ȫоɵݿʽ V5 V6 ͻˡ +2076 Depend "2075? 2077" +2077 yes CustomAction "COMMON98.DLL,DoDdupd,""""""%s\ddupd.exe"""" """"%2065""""""" %2072 + + === VSS Create DB axp Component ( vssDBaxp.etf )=== + +2081 CustomAction "COMMON98.DLL, NopCAH" + + === VSS Help Root Component ( vsshelp.etf ) === + +2091 Group 2092 %D + +2092 CopySection "VSS - HelpRoot" %D + + === VSS Ssexp.hlp Component ( vssSsexp.etf ) === + +2101 CopySection "VSS - SsexpHlp" %D + + === VSS Integration Win32 Component ( vssIW32.etf ) === +2111 Group 2112 2113 +2112 CopySection "VSS - IntegrationWin32" %D\win32 + +2113 ssscc.dll SelfReg "VSS - IntegrationWin32,ssscc_dll" %2112 + + === Component (vsssharec-s.etf) === +2121 Group 2122 2123 %D\win32 +2122 CopySection "VSS Shared C/S" %d +2123 ssapi.dll SelfReg "VSS Shared C/S,ssapi_dll ,,,," %d + + === VSS Client Win32 Component (vssCW32.etf) === + +2131 Group 2132 2135 2136 2141 2133 2134 2139 %D\win32 + +2132 CopySection "VSS Client" %d +2133 NLHtml.Dll SelfReg "VSS Client,nlhtml_dll ,,,," %d +2134 AddRegData """HKEY_CLASSES_ROOT"",""CLSID\{e0ca5340-4534-11cf-b952-00aa0051fe20}\InProcServer32"",,""%s\NLHtml.Dll""" %2132 +2135 CopyFile "VSS Client exe, ssexp_exe" %d +2136 StampCDInfo "2135, 106, 196" + +2137 InstallShortcut "%2132\ssexp.exe,VSS6,%2132,,,," %27\VSS<%27\Microsoft Visual SourceSafe> +2138 yes DetectOlderFile """ssexp.exe""" %d +2139 Depend 2138 ? 2140 %d +2140 RemoveRegEntry """LOCAL"",""Software\Microsoft\Windows\CurrentVersion\Uninstall\SS4""" %d +2141 AddIniLine """VBAddin.INI"",""Add-Ins32"",""vbscc"",""1""" + + === VSS Client Root Component (vssCroot.etf) === +2151 CopySection "VSS CRoot" %D + + === DaVinci Main Entry Point (davinci.etf) === + +2161 Group 2251 2231 2221 2211 2201 2191 2181 2171 %h\MSDesigners98 + + + === Davinci Wrapper (davwrap.etf) === + +2171 Group 2172 %m + +2172 Group 2173 %d +2173 InstallShared "Davinci Wrappers,mdt2fw95_dll,mdt2fw95.dll,,2823" %d + + + === Davinci Schema (davschma.etf) === + +2181 Group 2182 2185 %d + +2182 Group 2183 2184 %d +2183 InstallShared "Davinci Schema,mdt2db_dll,mdt2db.dll,,2823" %d +2184 InstallShared "Davinci Schema,mdt2dbui_dll_chs,mdt2dbui.dll(chs),,2823" %d\resources\2052 + +2185 Group 2186 %d +2186 Depend "2183 ? 2187" +2187 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2db.dll""""""" %2183 + + + === Davinci Query (davquery.etf) === + +2191 Group 2192 2195 %d + +2192 Group 2193 2194 %d +2193 InstallShared "Davinci Query,mdt2qd_dll,mdt2qd.dll,,2823" %d +2194 InstallShared "Davinci Query,mdt2qdui_dll_chs,mdt2qdui.dll(chs),,2823" %d\resources\2052 + +2195 Group 2196 %d +2196 Depend "2193 ? 2197" +2197 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2qd.dll""""""" %2193 + + + === Davinci Framework (davfwk.etf) === + +2201 Group 2202 2205 %d + +2202 Group 2203 2204 %d +2203 InstallShared "Davinci Framework,mdt2fw_dll,mdt2fw.dll,,2823" %d +2204 InstallShared "Davinci Framework,mdt2fwui_dll_chs,mdt2fwui.dll(chs),,2823" %d\resources\2052 +2205 Depend "2203 ? 2206" +2206 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2fw.dll""""""" %2203 + + + === daVinci dds grid (davddsgr.etf)=== + +2211 Group 2212 %d + +2212 Group 2213 2214 %d +2213 InstallShared "Davinci DDS GRID,mdt2g_dll,mdt2g.dll,,2823" %d +2214 InstallShared "Davinci DDS GRID,mdt2gkor_dll,mdt2gkor.dll,,2823" %d + + === daVinci dds forms (davddsfm.etf)=== + +2221 Group 2222 2225 %d + +2222 Group 2223 2224 %d +2223 InstallShared "Davinci DDS FORMS,mdt2df_dll,mdt2df.dll,,2823" %d +2224 InstallShared "Davinci DDS FORMS,mdt2dfui_dll,mdt2dfx.dll,,2823" %d + +2225 Group 2226 %d +2226 Depend "2223 ? 2227" +2227 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2df.dll""""""" %2223 + + === daVinci DDS (davdds.etf) === + +2231 Group 2232 2237 %d + +2232 Group 2233 2234 2235 2236 %d +2233 InstallShared "Davinci DDS,mdt2dd_dll,mdt2dd.dll,,2823" %d +2234 InstallShared "Davinci DDS,mdt2ddui_dll_chs,mdt2ddui.dll(chs),,2823" %d\resources\2052 +2235 InstallShared "Davinci DDS,mdt2gddo_dll,mdt2gddo.dll,,2823" %d +2236 InstallShared "Davinci DDS,mdt2gddr_dll,mdt2gddr.dll,,2823" %d + +2237 Group 2238 2240 2242 %d +2238 Depend "2233 ? 2239" +2239 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2dd.dll""""""" %2233 +2240 Depend "2235 ? 2241" +2241 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2gddo.dll""""""" %2235 +2242 Depend "2236 ? 2243" +2243 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2gddr.dll""""""" %2236 + + === Davinci Data Tool Specific (davdts.etf)=== + +2251 Group 2252 2255 %d + +2252 Group 2253 2254 %d +2253 InstallShared "Davinci Data Tool Specific,mdt2dbns_dll,mdt2dbns.dll,,2823" %d +2254 InstallShared "Davinci Data Tool Specific,mdt2fref_dll,mdt2fref.dll,,2823" %d + +2255 Group 2256 2258 %d +2256 Depend "2253 ? 2257" +2257 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2dbns.dll""""""" %2253 +2258 Depend "2254 ? 2259" +2259 CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\mdt2fref.dll""""""" %2254 + + === Office Button Face Editor === +2261 Group 2262 +2262 InstallSysFile "MS Office Button DLL,commtb32_dll" %M + + === MS Office Runtime DLLs === +2271 Group 2272 2273 2274 +2272 mso97rt InstallShared "MS Office Runtime DLL,mso97rt_dll,mso97rt,,2823" %H\VBA +2273 mrt7chs InstallShared "MS Office Runtime DLL,mrt7chs_dll,mrt7chs,,2823" %2272 +2274 CustomAction "COMMON98.DLL,RegMso,""2052, 2272""" + + === BILLBOARDS === + +2281 Group 2282 2283 2284 2285 + +2282 bb_vbent CustomAction "bboard.dll,AddBillboard,2000" +2283 bb_vsent CustomAction "bboard.dll,AddBillboard,2800" +2284 bb_msdn CustomAction "bboard.dll,AddBillboard,6000" +2285 CustomAction "bboard.dll,RemoveFontFiles" %W + + + + + + === TOOLS.ETF - tools custom option menu structure (tools.etf) === + + STFWIZ 82 +2291 yes װ MS info API Viewer ȹߡ CustomDlg 2292 2293 %d + + STFWIZ 84 +2292 yes Ms Info ռϵͳϢĹ Group 2311 %d + + STFWIZ 88 +2293 yes API ı װٶλ Windows API Declare Ĺߡ Group 2301 %D\Winapi + +2294 CustomAction "COMMON98.DLL, NopCAH" + + === Windows API Reference (vbwinapi.etf) === +2301 Group 2302 2303 2304 2305 2306 %D +2302 CustomAction "COMMON98.DLL, NopCAH" +%D +2303 CopySection Win API %10\Tools\Winapi +2304 CustomAction "COMMON98.DLL,RegisterFile,""Win API,apiload_exe,3""" %2303 +2305 AddRegData """HKEY_CURRENT_USER"",""Software\Microsoft\Visual Basic\6.0\AddInToolbar\VB API Declaration Loader"",""ProgID"",""APIDeclarationLoader.AddInDesigner""," +2306 InstallShortcut "%2303\apiload.exe,APIView,%2303,,,," %27\Microsoft Visual Basic 6.0 İ\Microsoft Visual Basic 6.0 İ湤 + + === MSInfo (vbmsinfo.etf)=== +2311 yes Ms Info ռϵͳϢĹ Group 2312 2313 2314 2315 2316 2317 %H\MSInfo +2312 InstallShared "MSInfo,msinfo32_exe,MsInfo,,2823" +2313 CompanionFile "2312: MSInfo,imgwalk_dll" +2314 CompanionFile "2312: MSInfo,msinf16h_exe" +2315 CompanionFile "2312: MSInfo,msinfo32_hlp" +2316 CompanionFile "2312: MSInfo,msinfo32_cnt" +2317 Depend "2312?2318 2319 2320" +2318 CustomAction "COMMON98.DLL, RemoveAuxFile, MSInfo;msinfo32_ftg" +2319 CustomAction "COMMON98.DLL, RemoveAuxFile, MSInfo;msinfo32_fts" +2320 CustomAction "COMMON98.DLL, RemoveAuxFile, MSInfo;msinfo32_gid" + + === ATL Component (atl.etf) === +2331 Group 2332 %d + ...copying files (atl.etf) +2332 Group 2333 %d +2333 Depend "28 ? 2334 2336:2335 2338" +2334 atl.dll InstallShared "ATL,atl_dll_1,atl.dll,,2823 " %m +2335 atl.dll InstallShared "ATL,atl_dll_2,atl.dll,,2823 " %m +2336 Depend 2334 ? 2337 +2337 atl.dll SelfReg "ATL,""atl_dll_1"","""","""",""""" %2334 +2338 Depend 2335 ? 2339 +2339 atl.dll SelfReg "ATL,""atl_dll_2"","""","""",""""" %2335 + + === DA.ETF - dag custom option menu structure (da.etf) === + + ==**== VB (da.etf) ==**== + STFWIZ 41 +2341 yes ݷ ݷ OptionDlg 2345 2342 2358 2365 2366 Vital + + STFWIZ 49 +2342 yes Microsoft ODBC ͨ ODBC Դ OptionDlg 2343 2344 2351 2352 2353 2354 2355 2356 2357 + STFWIZ 53 +2343 yes Microsoft SQL Server ODBC Microsoft SQL Server ݿ ODBC Group 2551 + STFWIZ 57 +2344 yes Microsoft Oracle ODBC Oracle ݿ Microsoft's ODBC Group 2541 + + STFWIZ 42 +2345 yes ADORDS OLE DB Providers ADO (ActiveX Data Objects)RDS (Remote Data Services) OLE DB ṩߡ OptionDlg 2346 2347 2348 2349 2350 Vital + STFWIZ 43 +2346 yes ADO RDS Դ Visual Basic and the Web ݵ ActiveX Data Objects (ADO) Remote Data Service (RDS) Group 2571 2631 Vital + STFWIZ 46 +2347 yes Microsoft OLE DB SQL Server Provider Microsoft SQL Server ݿ OLE DB Provider Group 2621 + STFWIZ 47 +2348 yes Microsoft OLE DB Oracle Provider Oracle ݿ Microsoft OLE DB provider Group 2601 + STFWIZ 48 +2349 yes Microsoft OLE DB Simple Provider (OSP) Runtime for OSP - 򵥺ͱݵ OLE DB providers Group 2591 + + STFWIZ 45 +2350 yes Microsoft OLE DB JET Provider Microsoft OLE DB JET Provider Group 2561 + + STFWIZ 52 +2351 yes Microsoft Access ODBC Microsoft Access ODBC Group 2531 + + STFWIZ 50 +2352 Microsoft dBase ODBC dBase ݿ Microsoft ODBC Group 2511 + STFWIZ 56 +2353 Microsoft Excel ODBC Excel Դ Microsoft ODBC Group 2491 + STFWIZ 51 +2354 Microsoft FoxPro ODBC FoxPro ݿ Microsoft ODBC Group 2481 + STFWIZ 58 +2355 yes Microsoft Visual FoxPro ODBC Microsoft Visual FoxPro ݿ ODBC Group 2461 + STFWIZ 55 +2356 Microsoft Paradox ODBC Paradox ݿ Microsoft's ODBC Group 2441 + STFWIZ 54 +2357 Microsoft Text ODBC ıԴ Microsoft's ODBC Group 2421 + STFWIZ 59 +2358 Jet IISAM ͨ Microsoft Jet Դ OptionDlg 2359 2360 2361 2362 2363 2364 + + STFWIZ 63 +2359 Jet IISAM Excel Excel Դ Microsoft Jet IISAM Group 2501 + STFWIZ 61 +2360 Jet IISAM Exchange Jet IISAM Exchange ҪȰװע Microsoft Outlook Exchange Group 2411 + STFWIZ 65 +2361 Jet IISAM Lotus 1-2-3 Lotus 1-2-3 Դ Microsoft Jet IISAM Group 2401 + STFWIZ 62 +2362 Jet IISAM Paradox Paradox Դ Microsoft Jet IISAM Group 2451 + STFWIZ 64 +2363 Jet IISAM Text ıԴ Microsoft Jet IISAM Group 2431 + STFWIZ 60 +2364 Jet IISAM XBase XBase Դ Microsoft Jet IISAM Group 2521 + + STFWIZ 66 +2365 yes Զݶ󼰿ؼ Remote Data Objects Controls for Microsoft Visual Basic Group 2371 + + STFWIZ 67 +2366 yes ݻ ӵĹܺͱؼ԰ɵذװ Group 2671 Vital + +2367 CustomAction "COMMON98.DLL, NopCAH" + + + + + + + + + === Remote Data Access (RDO and RDC) (vbrda.etf)=== +2371 Group 2372 2381 + + === Remote Data Objects (vbrda.etf) === +2372 Group 2373 2374 2378 2379 2380 +2373 InstallShared "Remote Data Access,msrdo20_dll,msrdo20.dll,,2823" %M +2374 Depend "2373?2375 2376 2377" +2375 msrdo20.dll SelfReg "Remote Data Access,msrdo20_dll,,," %2373 +2376 CopyFile "Remote Data Access,rdo98_chi_1" %W\Help +2377 CopyFile "Remote Data Access,rdo98_chm_2" %W\Help +2378 InstallShared "Remote Data Access,msrdo20_dep,msrdo20.dep,,2823" %2373 +2379 InstallSysFile "Remote Data Access,rdocurs_dll" %M + +2380 InstallShared "Remote Data Access,rdo20chs_dll,rdo20chs.dll,,2823" %2373 + + === Remote Data Controls (vbrda.etf) === +2381 Group 2382 2385 2388 2389 2390 2394 2397 2721 +2382 Depend "2373?2383 2393" +2383 CopyFile "Remote Data Access,msrdo20_srg" %2373 +2384 CustomAction "COMMON98.DLL,RegFile,2383" %2383 +2385 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""2386 2387""" +2386 CopyFile "Remote Data Access,msrdo20_srg" %2373 +2387 CustomAction "COMMON98.DLL,RegFile,2383" %2383 +2388 InstallShared "Remote Data Access,msrdc20_ocx,msrdc20.ocx,,2823" %M +2389 InstallShared "Remote Data Access,msrdc20_dep,msrdc20.dep,,2823" %2388 +2390 Depend "2388?2391 2392 2393 2398" +2391 msrdc20.ocx SelfReg "Remote Data Access,msrdc20_ocx,,," %2388 +2392 CopyFile "Remote Data Access,msrdc20_srg" %2388 +2393 CustomAction "COMMON98.DLL,RegFile,2392" %2392 +2394 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""2395 2396""" +2395 CopyFile "Remote Data Access,msrdc20_srg" %2388 +2396 CustomAction "COMMON98.DLL,RegFile,2392" %2392 +2397 CustomAction "COMMON98.DLL, RemoveAuxFile, Remote Data Access;msrdc20_oca" %2388 + +2398 InstallShared "Remote Data Access,rdc20chs_dll,rdc20chs.dll,,2823" %2388 + + === dag Jet IISAM Lotus Driver (jetlotus.etf) === + +2401 Group 2402 2403 %M + +2402 InstallSysFile "DAG Jet IISAM Lotus, msltus35_dll" %M +2403 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2404""" +2404 msltus35.dll SelfReg "DAG Jet IISAM Lotus, msltus35_dll" %2402 + + === dag Jet IISAM Exchange Driver (jetexchg.etf) === + +2411 Group 2412 2413 %M + +2412 InstallSysFile "DAG Jet IISAM Exchange,msexch35_dll" %M +2413 msexch35.dll CustomAction "COMMON98.DLL,SyncEXECalloutCAH,""%m\regsvr32 /s """"%s\msexch35.dll""""""" %2412 + + === dag Text ODBC Driver (odbctext.etf) === + +2421 Microsoft Text Driver Group 2431 2422 2423 %M + +2422 InstallSysFile "dag Text ODBC Driver,odtext32_dll_1" %M +2423 CustomAction odbcstf.dll,AcmeInstallDriver,odbckey.inf:DA Text %M + + === dag Jet IISAM Text Driver (jettext.etf) === + +2431 Group 2432 2433 %M + +2432 InstallSysFile "DAG Jet IISAM Text, mstext35_dll" %M +2433 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2434""" +2434 mstext35.dll SelfReg "DAG Jet IISAM Text, mstext35_dll" %2432 + + === dag Paradox ODBC Driver (odbcpdox.etf)=== + +2441 Microsoft Paradox Driver Group 2451 2442 2443 %M + +2442 InstallSysFile "dag Paradox ODBC Driver,odpdx32_dll_1" %M +2443 CustomAction odbcstf.dll,AcmeInstallDriver,odbckey.inf:DA Paradox %M + + === dag Jet IISAM Paradox Driver (jetpdox.etf) === + +2451 Group 2452 2453 %M + +2452 InstallSysFile "DAG Jet IISAM Paradox, mspdox35_dll" %M +2453 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2454""" +2454 mspdox35.dll SelfReg "DAG Jet IISAM Paradox, mspdox35_dll" %2452 + + === VFP ODBC Driver (odbcvfp.etf)=== + +2461 Microsoft Visual FoxPro Driver Group 2462 2467 2468 2469 2470 2471 2472 %M +2462 Group 2463 2464 2465 %M +2463 InstallSysFile "DA Visual Foxpro, vfpodbc_dll" %M +2464 CustomAction "odbcstf.dll,AcmeInstallDriver,odbckey.inf:DA Visual FoxPro:Y" +2465 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2466""" +2466 CustomAction "odbcstf.dll,AcmeConfigDataSource,odbckey.inf:ADD:Microsoft Visual FoxPro Driver:DSN=Visual FoxPro Database|SourceDB=|SourceType=DBC||" %2463 +2467 InstallSysFile "DA Visual Foxpro, vfpodbc_txt" %M +2468 InstallSysFile "DA Visual Foxpro, drvvfp_hlp_1" %M +2469 InstallSysFile "DA Visual Foxpro, drvvfp_cnt_1" %M +2470 CustomAction "COMMON98.DLL, RemoveAuxFile, DA Visual Foxpro;drvvfp_gid" +2471 CustomAction "COMMON98.DLL, RemoveAuxFile, DA Visual Foxpro;drvvfp_ftg" +2472 CustomAction "COMMON98.DLL, RemoveAuxFile, DA Visual Foxpro;drvvfp_fts" + + === dag FoxPro ODBC Driver (odbcfox.etf)=== + +2481 Microsoft FoxPro Driver Group 2521 2482 2483 %M + +2482 InstallSysFile "dag FoxPro ODBC Driver,odfox32_dll_1" %M +2483 CustomAction odbcstf.dll,AcmeInstallDriver,odbckey.inf:DA FoxPro %M + + === dag Excel ODBC Driver (odbcxls.etf) === + +2491 Microsoft Excel Driver Group 2501 2492 2493 %M + +2492 InstallSysFile "dag Excel ODBC Driver,odexl32_dll_1" %M +2493 CustomAction odbcstf.dll,AcmeInstallDriver,odbckey.inf:da Excel %M + + === dag Jet IISAM Excel Driver (jetexcel.etf) === + +2501 Group 2502 2503 %M + +2502 InstallSysFile "DAG Jet IISAM Excel,msexcl35_dll" %M +2503 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2504""" +2504 msexcl35.dll SelfReg "DAG Jet IISAM Excel, msexcl35_dll" %2502 + + === dag dBase ODBC Driver (odbcdbse.etf)=== + +2511 Microsoft dBase Driver Group 2521 2512 2513 %M + +2512 InstallSysFile "dag dBase ODBC Driver,oddbse32_dll_1" %M +2513 CustomAction odbcstf.dll,AcmeInstallDriver,odbckey.inf:DA dBase %M + + === dag Jet IISAM XBase Driver (jetxbse.etf) === + +2521 Group 2522 2523 %M + +2522 InstallSysFile "DAG Jet IISAM XBase, msxbse35_dll" %M +2523 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2524""" +2524 msxbse35.dll SelfReg "DAG Jet IISAM XBase, msxbse35_dll" %2522 + + === dag Text ODBC Driver (odbcaccs.etf)=== + +2531 Microsoft Access Driver CustomAction odbcstf.dll,AcmeInstallDriver,odbckey.inf:DA Access %M + + === dag ODBC Oracle Driver (odbcorc.etf)=== + +2541 Group 2611 2542 2543 2545 2546 2547 %M +2542 InstallSysFile "dag ODBC Oracle Driver,msorcl20_dll" %M +2543 Depend 2542 ? 2544 +2544 msorcl32.dll SelfReg "dag ODBC Oracle Driver,msorcl20_dll" %M + +2545 InstallSysFile "dag ODBC Oracle Driver,msorcl32_hlp" %M +2546 InstallSysFile "dag ODBC Oracle Driver,msorcl32_cnt" %M +2547 InstallSysFile "dag ODBC Oracle Driver,msorcl32_txt" %M + + === dag ODBC SQL Server Driver (odbcsql.etf) === + +2551 Group 2552 %M + +2552 Microsoft SQL Server Driver Group 2553 2554 2555 2556 2557 2558 %M +2553 InstallSysFile "dag ODBC SQL Driver,sqlsrv32_dll" %M +2554 CustomAction odbcstf.dll,AcmeInstallDriver,odbckey.inf:SQL Server Driver %M + +2555 InstallSysFile "dag ODBC SQL Driver,odbcbcp_dll" %M +2556 InstallSysFile "dag ODBC SQL Driver,windbver_exe" %M +2557 InstallSysFile "dag ODBC SQL Driver,sqlsodbc_hlp" %M +2558 InstallSysFile "dag ODBC SQL Driver,sqlsrdme_txt" %M + + === dag Jolt (jolt.etf) === +2561 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2562 2563 2564 2565 2566""" %12\system\ole db + +2562 CopyFile "dag Jolt, msjtor35_dll" %2561 +2563 CopyFile "dag Jolt, msjt4jlt_dll" %M +2564 CopyFile "dag Jolt, joltread_txt" %2561 +2565 msjt4jlt.dll SelfReg "dag Jolt, msjt4jlt_dll" %2563 +2566 msjtor35.dll SelfReg "dag Jolt, msjtor35_dll" %2562 + + === dag ADO (ado.etf) === + +2571 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586""" %12\system\ado + +2572 CopyFile "dag ADO,msader15_dll" %2571 + +2573 CopyFile "dag ADO,msado15_dll" %2571 + +2574 CopyFile "dag ADO,msador15_dll" %2571 + +2575 CopyFile "dag ADO,msadrh15_dll" %2571 + +2576 CopyFile "dag ADO,adofre15_reg" %2571 +2577 CopyFile "dag ADO,adoapt15_reg" %2571 + +2578 CopyFile "dag ADO,readme_txt_13" %2571 +2579 CopyFile "dag ADO,adojavas_inc" %2571 +2580 CopyFile "dag ADO,adovbs_inc" %2571 + +2581 CopyFile "dag ADO,makapt15_bat" %2571 +2582 CopyFile "dag ADO,makfre_bat" %2571 + +2583 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\DataAccess,Version,2.0.0" %2571 + +2584 msador15.dll SelfReg "dag ADO,msador15_dll,,," %2574 +2585 msadrh15.dll SelfReg "dag ADO,msadrh15_dll,,," %2575 +2586 msado15.dll SelfReg "dag ADO,msado15_dll,,," %2573 + + === dag OLEDB Simple Provider (oledbsp.etf)=== + +2591 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2592 2593 2594 2595""" %12\system\ole db + +2592 CopyFile "dag OLEDB Simple Provider,msdaosp_dll" %2591 +2593 msdaosp.dll SelfReg "dag OLEDB Simple Provider,msdaosp_dll" %2592 + +2594 CopyFile "dag OLEDB Simple Provider,simpdata_tlb" %M +2595 CustomAction "COMMON98.DLL,RegisterTypeLibrary,""dag OLEDB Simple Provider;simpdata_tlb""" %2594 + + === dag OLEDB Oracle Provider (oledborc.etf)=== + +2601 Group 2611 2602 %12\system\ole db + +2602 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2603 2604 2605""" %2601 +2603 CopyFile "dag OLEDB Oracle Provider,msdaora_dll" %2601 +2604 msdaora.dll SelfReg "dag OLEDB Oracle Provider,msdaora_dll" %2603 + +2605 CopyFile "dag OLEDB Oracle Provider,oraoledb_txt" %2601 + + === dag MTS Runtimes (dagmts.etf)=== + +2611 Group 2612 %M +2612 InstallSysFile "dag MTS,mtxoci_dll" %M + + === dag OLEDB SQL Provider (oledbsql.etf)=== + +2621 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2622 2623 2624 2625 2626 2627 2628 2629""" %12\system\ole db + +2622 CopyFile "dag OLEDB SQL Server Provider,sqloledb_dll" %2621 +2623 SQLOLEDB.DLL SelfReg "dag OLEDB SQL Server Provider,sqloledb_dll" %2622 + +2624 CopyFile "dag OLEDB SQL Server Provider,dbmsshrn_dll" %M +2625 CopyFile "dag OLEDB SQL Server Provider,sqlsoldb_hlp" %2621 +2626 CustomAction "COMMON98.DLL, RemoveAuxFile, dag OLEDB SQL Server Provider;sqlsoldb_gid" +2627 CustomAction "COMMON98.DLL, RemoveAuxFile, dag OLEDB SQL Server Provider;sqlsoldb_ftg" +2628 CustomAction "COMMON98.DLL, RemoveAuxFile, dag OLEDB SQL Server Provider;sqlsoldb_fts" +2629 CopyFile "dag OLEDB SQL Server Provider,sqloledb_txt" %2621 + + === dag ADC (adc.etf) === + +2631 Group 2632 2640 2663 %12\system\msadc + + === dag ADC Server (adc.etf) === + +2632 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2633 2634 2635 2636 2637 2638 2639""" %12\system\msadc + +2633 CopyFile "dag ADC Server,adcjavas_inc" %2632 + +2634 CopyFile "dag ADC Server,adcvbs_inc_1" %2632 + +2635 CopyFile "dag ADC Server,msadcf_dll" %2632 +2636 msadcf.dll SelfReg "dag ADC Server,msadcf_dll" %2635 + +2637 CopyFile "dag ADC Server,msadcs_dll" %2632 + +2638 CopyFile "dag ADC Server,msadds_dll" %2632 +2639 msadds.dll SelfReg "dag ADC Server,msadds_dll" %2638 + + === dag ADC Client (adc.etf) === +2640 Group 2641 2642 %12\system\msadc +2641 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2643 2644 2645 2646 2647 2648 2649 2650 2651""" %12\system\msadc +2642 CustomAction "COMMON98.DLL,NeverRemoveGroup,""2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662""" %12\system\msadc + +2643 CopyFile "dag ADC Client,msadce_dll" %2640 +2644 msadce.dll SelfReg "dag ADC Client,msadce_dll" %2643 + +2645 CopyFile "dag ADC Client,msadcer_dll" %2640 + +2646 CopyFile "dag ADC Client,msadco_dll" %2640 +2647 msadco.dll SelfReg "dag ADC Client,msadco_dll" %2646 + +2648 CopyFile "dag ADC Client,msadcor_dll" %2640 +2649 CopyFile "dag ADC Client,msdatsrc_tlb" %M + +2650 CopyFile "dag ADC Client,handler_reg" %2640 +2651 CustomAction "COMMON98.DLL,RegFile,2650" %2650 + +2652 CopyFile "dag ADC Client,msdfmap_dll" %2640 +2653 msdfmap.dll CustomAction "COMMON98.DLL,RegSvrCAH,""""""%s\msdfmap.dll""""""" %2652 + +2654 CopyFile "dag ADC Client,msdfmap_ini" %W + +2655 CopyFile "dag ADC Client,msaddsr_dll" %2640 + +2656 CopyFile "dag ADC Client,msdaprst_dll" %2640 +2657 msdaprst.dll SelfReg "dag ADC Client,msdaprst_dll" %2656 + +2658 CopyFile "dag ADC Client,msjtes_dll" %M +2659 msjtes40.dll SelfReg "dag ADC Client,msjtes_dll" %2658 + +2660 CopyFile "dag ADC Client,msadcfr_dll" %2640 + +2661 CopyFile "dag ADC Client,mdac20_cab" %2640 +2662 CopyFile "dag ADC Client,mdac20_a_cab" %2640 + + === dag ADC 1.1 Files (adc.etf) === +2663 Group 2664 2665 %12\system\msadc +2664 CopyFile "dag ADC 11,mdac11_cab" %2663 +2665 CopyFile "dag ADC 11,readme_txt_11" %2663\doc11 + + === Data Environment Core (dataenv.etf) === +2671 Group 2672 2673 2675 2676 2679 2680 2683 %12\designer + +2672 InstallShared "dag Data Env,deext_tlb,deext.tlb,,2823 " %2671 +2673 Depend 2672 ? 2674 +2674 deext.tlb CustomAction "COMMON98.DLL,RegisterTypeLibrary,""dag Data Env;deext_tlb""" %2672 +2675 InstallShared "dag Data Env,msde_dll,msde.dll,,2823 " %2671 +2676 Depend 2675 ? 2677 2678 +2677 msde.dll SelfReg "dag Data Env,msde_dll" %2675 +2678 AddRegData "HKEY_CURRENT_USER,Software\Microsoft\Visual Basic\6.0\Designers\{C0E45035-5775-11D0-B388-00A0C9055D8E},,," %2675 +2679 InstallShared "dag Data Env,msderun_dll,msderun.dll,,2823 " %2671 +2680 Depend 2679 ? 2681 2682 +2681 msderun.dll SelfReg "dag Data Env,msderun_dll" %2679 +2682 CopyFile "dag Data Env,msderun_dep " %2679 +2683 InstallShared "dag Data Env,msdeui_dll_chs,msdeui.dll(chs),,2823 " %2671\resources\2052 + + === VI/VJ Common Shell Help Component === +2691 Group 2692 2693 2695 %d +2692 InstallShared "Shell Help, vshelp_dll, vshelp.dll,,2823" %H\VS98 +2693 Depend "2692 ? 2694" +2694 vshelp.dll SelfReg "Shell Help,vshelp_dll,,,," %2692 +2695 Group 2696 %2692\resources\2052 +2696 vshelpui.dll InstallShared "Loc Shell Help,vshelpui_dll_chs,vshelpui.dll(chs),,2823" %d + + + + === vb wizards tlbinf32 (tlbinf32.etf) === +2701 Group 2702 2703 +2702 InstallShared "VB TLBINF32,tlbinf32_dll,tlbinf32.dll,,2823" %M +2703 Depend "2702?2704" +2704 tlbinf32.dll SelfReg "VB TLBINF32,tlbinf32_dll,,," %2702 + + === Templates (vbepltmp.etf)=== +2711 Group 2712 2713 2714 2715 2716 2717 2718 2719 2720 2731 %D\Template +2712 CopySection "Templates - forms" %D\Forms +2713 CopySection "Templates - projects" %D\Projects +2714 CopySection "Templates - code" %D\Code +2715 CopySection "Templates - controls" %D\Controls +2716 CopySection "Templates - menus" %D\Menus +2717 CopySection "Templates - HTMLApp" %D\Projects +2718 CustomAction "COMMON98.DLL, RemoveAuxFile, Templates - HTMLApp;htmlpage_log" %2717 +2719 CustomAction "COMMON98.DLL, RemoveAuxFile, Templates - HTMLApp;dhtmlapp_vbw" %2717 +2720 Group 2723 %801\Template +2721 Depend "2711?2722" +2722 Depend "764?2725" +2723 Depend "2381?2724" +2724 Depend "764?2725" +2725 CopyFile "VB Control Project Files,vbentcnt_vbp" %2711\Projects + + === VSEXT.SRG (vbdsgkey.etf) === +2731 Group 2732 2733 +2732 CopyFile "VB VSEXT,vsext_srg" %M +2733 CustomAction "COMMON98.DLL,RegFile,2732" %2732 + +=====VB Docs for VC (vbforvc.etf)========= +2741 Group 2742 2743 %W\Help +2742 InstallShared "VB Docs for VC Tag,vbcmn98_chi_1,vbcmn98.chi,,2823" %D +2743 Depend "2742?2744" +2744 CopySection "VB Docs for VC Sec" %D + + === VB Wizard Host Files (vbwzhost.etf) === +2751 Group 2752 2753 2754 2756 2757 %10\Wizards98 +2752 InstallShared "Wizard Host,hostwiz_dll,Hostwiz.dll,,2823" %D +2753 CompanionFile "2752: Wizard Host,hstwzchs_dll" +2754 Depend "2752?2755" +2755 Hostwiz.dll CustomAction "COMMON98.DLL,RegisterFile,""Wizard Host,hostwiz_dll,3""" %2752 +2756 InstallShared "Wizard Host,subwiz_tlb,Subwiz.tlb,,2823" %D +2757 Depend "2756?2758" +2758 CustomAction "COMMON98.DLL,RegisterTypeLibrary,""Wizard Host;subwiz_tlb""" %2756 + + === VBA Files (vbvba.etf)=== +2761 Group 2762 2763 +2762 InstallSysFile "VBA Files,riched20_dll" %M +2763 InstallShared "VBA Files,scp32_dll,scp32.dll,,2823" %M + + === SYSINFO.OCX (vbsysinf.etf) === +2771 Group 2772 2773 2774 2775 2782 +2772 InstallShared "VB SYSINFO,sysinfo_ocx,sysinfo.ocx,,2823" %M +2773 InstallShared "VB SYSINFO,sysinfo_dep,sysinfo.dep,,2823" %2772 +2774 InstallShared "VB SYSINFO,sysinchs_dll,sysinchs.dll,,2823" %M +2775 Depend "2772?2776 2777 2778 2779 2780 2781" +2776 sysinfo.ocx SelfReg "VB SYSINFO,sysinfo_ocx,,, " %2772 +2777 CustomAction "COMMON98.DLL, RemoveAuxFile, VB SYSINFO;sysinfo_oca" %2772 +2778 CopyFile "VB SYSINFO,sysinf98_ch2" %W\Help +2779 CopyFile "VB SYSINFO,sysinf98_ch1" %W\Help +2780 CopyFile "VB SYSINFO,sysinfo_srg" %2772 +2781 CustomAction "COMMON98.DLL,RegFile,2780" %2780 +2782 CustomAction "COMMON98.DLL, NeverRemoveGroup, ""2783 2784""" %2772 +2783 CopyFile "VB SYSINFO,sysinfo_srg" %2772 +2784 CustomAction "COMMON98.DLL,RegFile,2780" %2780 + + === Control Helper (hlp95en.etf) === +2791 InstallSysFile "HLP95EN,hlp95en_dll_1" %M + + === VB Control Help Files (vbctlhlp.etf) === +2801 Group 2802 2810 +2802 Group 2803 2804 2805 2806 2807 2808 2809 +2803 CopyFile "VBCTLHLP,vbcmn96_hlp" %W\Help +2804 CopyFile "VBCTLHLP,vbcmn96_cnt" %W\Help +2805 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,vbcmn96.hlp,%s," %2803 +2806 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,vbcmn96.cnt,%s," %2804 +2807 CustomAction "COMMON98.DLL, RemoveAuxFile, VBCTLHLP;vbcmn96_ftg" +2808 CustomAction "COMMON98.DLL, RemoveAuxFile, VBCTLHLP;vbcmn96_fts" +2809 CustomAction "COMMON98.DLL, RemoveAuxFile, VBCTLHLP;vbcmn96_gid" +2810 Group 2811 2812 2813 2814 2815 +2811 CopyFile "VBCTLHLP,vb5def_hlp" %W\Help +2812 AddRegData "HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\Help,vb5def.hlp,%s," %2811 +2813 CustomAction "COMMON98.DLL, RemoveAuxFile, VBCTLHLP;vb5def_ftg" +2814 CustomAction "COMMON98.DLL, RemoveAuxFile, VBCTLHLP;vb5def_fts" +2815 CustomAction "COMMON98.DLL, RemoveAuxFile, VBCTLHLP;vb5def_gid" + + === Setup files (setup.etf) === +2821 Group 2861 2851 2822 2833 2823 2824 2825 2828 2829 2841 2830 %765\Setup\2052 + +2822 CopySection "Common Setup" %d +2823 vb98_dll CopyFile "SetupProdCah,vb98_dll" %d +2824 WriteTableFile "setup.stf" %d +2825 selfreg.dll InstallShared "SetupProdCah,selfreg_dll,selfreg.dll,,2823 " %m + +2826 msaddndr.dll CustomAction "COMMON98.DLL,SelfUnReg,""AddIn Designer,msaddndr_dll""" %73 + +2827 apemreg.exe CustomAction "COMMON98.DLL,RunExeWithDep,""%s\apemreg.exe; /S """"Visual Studio APE Package"""" """"%s\AEMTSSVC.PAK"""" ;;9003;1;0;%M\msvbvm60.dll;%M\mts\MTXADMIN.DLL""" %1742 + + === Uninstall Strings (setup.etf) === + +2828 AddRegData "LOCAL,Software\Microsoft\Windows\CurrentVersion\Uninstall\Visual Basic 6.0 ҵ (chs),DisplayName,Microsoft Visual Basic 6.0 ҵ (),REG_SZ" +2829 AddRegData "LOCAL,Software\Microsoft\Windows\CurrentVersion\Uninstall\Visual Basic 6.0 ҵ (chs),UninstallString,""""""%s\Setup.exe"""""",REG_SZ" %d + + === Speciall CAH DLL for Visual SourceSafe Server Side setup (setup.etf) +2830 Group 2831 2832 %d +2831 CopyFile "VSS Setup Aux,vsscantl_dll" %d +2832 CopyFile "VSS Setup Aux,wwsetup_ttf" %d + + +2833 Group 2834 %2822 +2834 Depend 2822 ? 2835 2836 2837 +2835 acmsetup.fts CustomAction "COMMON98.DLL, RemoveAuxFile, Remove ACME Help Files;acmsetup_fts" +2836 acmsetup.ftg CustomAction "COMMON98.DLL, RemoveAuxFile, Remove ACME Help Files;acmsetup_ftg" +2837 acmsetup.gid CustomAction "COMMON98.DLL, RemoveAuxFile, Remove ACME Help Files;acmsetup_gid" + + + === ODBC SETUP FILES (odbcstp.etf) === +2841 Group 2842 2843 %2821 +2842 CopySection "dag ODBC CAH" %2821 + +2843 CopyFile "dag ODBC Conf Exe,odbcconf_exe" %M + + === Product Specific Setup files (pssetup.etf) === +2851 Group 2852 +2852 CopySection "Setup" %d + + === ReadMe files (readme.etf) === +2861 Group 2862 2864 %765 + + +2862 CopySection "ReadMe" %d +2863 CustomAction "COMMON98.DLL, NopCAH" +2864 CopySection "Redist text" %d + + + + + + + + === File Binding Component (binding.etf) === +2871 Group 2872 2874 + +2872 Depend "2692 ? 2873" +2873 CopyBindExe "Shell Help,vshelp_dll," %2692 + +2874 Group 2875 2877 2879 2881 2883 2885 2887 2889 2891 2893 2895 %d +2875 Depend "2183 ? 2876" +2876 CopyBindExe "Davinci Schema,mdt2db_dll,2183" %2183 +2877 Depend "2193 ? 2878" +2878 CopyBindExe "Davinci Query,mdt2qd_dll,2183" %2193 +2879 Depend "2233 ? 2880" +2880 CopyBindExe "Davinci DDS,mdt2dd_dll,2183" %2233 +2881 Depend "2235 ? 2882" +2882 CopyBindExe "Davinci DDS,mdt2gddo_dll,2183" %2235 +2883 Depend "2236 ? 2884" +2884 CopyBindExe "Davinci DDS,mdt2gddr_dll,2183" %2236 +2885 Depend "2203 ? 2886" +2886 CopyBindExe "Davinci Framework,mdt2fw_dll,2183" %2203 +2887 Depend "2253 ? 2888" +2888 CopyBindExe "Davinci Data Tool Specific,mdt2dbns_dll,2183" %2253 +2889 Depend "2254 ? 2890" +2890 CopyBindExe "Davinci Data Tool Specific,mdt2fref_dll,2183" %2254 +2891 Depend "2223 ? 2892" +2892 CopyBindExe "Davinci DDS FORMS,mdt2df_dll,2183" %2223 +2893 Depend "2213 ? 2894" +2894 CopyBindExe "Davinci DDS GRID,mdt2g_dll,2183" %2213 +2895 Depend "2214 ? 2896" +2896 CopyBindExe "Davinci DDS GRID,mdt2gkor_dll,2183" %2214 + + + diff --git a/cadVb/SETUP/VSSCANTL.DLL b/cadVb/SETUP/VSSCANTL.DLL new file mode 100644 index 0000000..131202d Binary files /dev/null and b/cadVb/SETUP/VSSCANTL.DLL differ diff --git a/cadVb/SETUP/VSSETUP.TTF b/cadVb/SETUP/VSSETUP.TTF new file mode 100644 index 0000000..fc0a41b Binary files /dev/null and b/cadVb/SETUP/VSSETUP.TTF differ diff --git a/cadVb/SETUP/WPIE15.EXE b/cadVb/SETUP/WPIE15.EXE new file mode 100644 index 0000000..2331e5f Binary files /dev/null and b/cadVb/SETUP/WPIE15.EXE differ diff --git a/cadVb/SETUP/WWSETUP.TTF b/cadVb/SETUP/WWSETUP.TTF new file mode 100644 index 0000000..68f30b0 Binary files /dev/null and b/cadVb/SETUP/WWSETUP.TTF differ diff --git a/cadVb/SETUPWIZ.INI b/cadVb/SETUPWIZ.INI new file mode 100644 index 0000000..8879bb2 --- /dev/null +++ b/cadVb/SETUPWIZ.INI @@ -0,0 +1,31 @@ +[setup wizard] +eula = eula.txt +NTSP = NTsp3\nt4sp3_i.exe +NTSpMinVer = 3 +IE4 = ie4\ie4setup.exe +CommonFilesMin = 50 +IEIni=ie4check.ini +readme = readmevb.htm +pid = setup.ini +MSDN = setup.exe +Acme = acmboot.exe +AcmeId = VB98ECD1.inf +STF = setup\vb98ent.stf +DCOM98 = dcom98\dcom98.exe +MSDNID = msdn3?1.inf +NtSpUrl = ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/ +IeUrl = http://www.microsoft.com/ie_intl/cn/download/ +UsrUrl = http://msdn.microsoft.com/vstudio/register/default.htm +RegUrl = http://www.microsoft.com/isapi/redir.dll?Prd=vstudio&Pver=98&Ar=register&Plcid=0x0804 + +[server_nt] +server1 = Launch BackOffice Installation Wizard,boffice\launchbo.exe,vs98svr1.inf,0,2,1,, +server2 = Visual Source Safe Server,vss_ss\setup.exe,vs98svr1.inf,1,2,0,, +server3 = SNA Server,sna4\server\snawrap.exe,vs98svr1.inf,0,2,0,, + +[server_w95] +server1 = NT Option Pack (for Windows9x),ntoptpak\x86\win.95\setup.exe,vb98ecd2.inf,0,2,0,NtOptPak.PreLoad, +server2 = FrontPage 98 Server Extensions,fp98ext\fplinker.exe,vb98ecd2.inf,0,2,0,, +server3 = Data Access Components 2.0,mdac2\mdac_typ.exe,vb98ecd2.inf,0,2,0,, +server4 = Application Performance Explorer,ape_ss\setup.exe,vb98ecd2.inf,1,2,0,, +server5 = Visual Source Safe Server,vss_ss\setup.exe,vb98ecd2.inf,1,2,0,, diff --git a/cadVb/SHARED/ADO/ADOAPT15.REG b/cadVb/SHARED/ADO/ADOAPT15.REG new file mode 100644 index 0000000..7b5a32e --- /dev/null +++ b/cadVb/SHARED/ADO/ADOAPT15.REG @@ -0,0 +1,16 @@ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000507-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Apartment" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000514-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Apartment" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0000050B-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Apartment" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000535-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Apartment" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000541-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Apartment" diff --git a/cadVb/SHARED/ADO/ADOFRE15.REG b/cadVb/SHARED/ADO/ADOFRE15.REG new file mode 100644 index 0000000..65faca1 --- /dev/null +++ b/cadVb/SHARED/ADO/ADOFRE15.REG @@ -0,0 +1,16 @@ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000507-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Both" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000514-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Both" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0000050B-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Both" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000535-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Both" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000541-0000-0010-8000-00AA006D2EA4}\InprocServer32] +"ThreadingModel"="Both" diff --git a/cadVb/SHARED/ADO/ADOJAVAS.INC b/cadVb/SHARED/ADO/ADOJAVAS.INC new file mode 100644 index 0000000..384ce47 --- /dev/null +++ b/cadVb/SHARED/ADO/ADOJAVAS.INC @@ -0,0 +1,363 @@ +<% +//-------------------------------------------------------------------- +// Microsoft ADO +// +// (c) 1996-1998 Microsoft Corporation. All Rights Reserved. +// +// +// +// ADO constants include file for JavaScript +// +//-------------------------------------------------------------------- + +//---- CursorTypeEnum Values ---- +var adOpenForwardOnly = 0; +var adOpenKeyset = 1; +var adOpenDynamic = 2; +var adOpenStatic = 3; + +//---- CursorOptionEnum Values ---- +var adHoldRecords = 0x00000100; +var adMovePrevious = 0x00000200; +var adAddNew = 0x01000400; +var adDelete = 0x01000800; +var adUpdate = 0x01008000; +var adBookmark = 0x00002000; +var adApproxPosition = 0x00004000; +var adUpdateBatch = 0x00010000; +var adResync = 0x00020000; +var adNotify = 0x00040000; +var adFind = 0x00080000; + +//---- LockTypeEnum Values ---- +var adLockReadOnly = 1; +var adLockPessimistic = 2; +var adLockOptimistic = 3; +var adLockBatchOptimistic = 4; + +//---- ExecuteOptionEnum Values ---- +var adRunAsync = 0x00000010; +var adAsyncExecute = 0x00000010; +var adAsyncFetch = 0x00000020; +var adAsyncFetchNonBlocking = 0x00000040; +var adExecuteNoRecords = 0x00000080; + +//---- ConnectOptionEnum Values ---- +var adAsyncConnect = 0x00000010; + +//---- ObjectStateEnum Values ---- +var adStateClosed = 0x00000000; +var adStateOpen = 0x00000001; +var adStateConnecting = 0x00000002; +var adStateExecuting = 0x00000004; +var adStateFetching = 0x00000008; + +//---- CursorLocationEnum Values ---- +var adUseServer = 2; +var adUseClient = 3; + +//---- DataTypeEnum Values ---- +var adEmpty = 0; +var adTinyInt = 16; +var adSmallInt = 2; +var adInteger = 3; +var adBigInt = 20; +var adUnsignedTinyInt = 17; +var adUnsignedSmallInt = 18; +var adUnsignedInt = 19; +var adUnsignedBigInt = 21; +var adSingle = 4; +var adDouble = 5; +var adCurrency = 6; +var adDecimal = 14; +var adNumeric = 131; +var adBoolean = 11; +var adError = 10; +var adUserDefined = 132; +var adVariant = 12; +var adIDispatch = 9; +var adIUnknown = 13; +var adGUID = 72; +var adDate = 7; +var adDBDate = 133; +var adDBTime = 134; +var adDBTimeStamp = 135; +var adBSTR = 8; +var adChar = 129; +var adVarChar = 200; +var adLongVarChar = 201; +var adWChar = 130; +var adVarWChar = 202; +var adLongVarWChar = 203; +var adBinary = 128; +var adVarBinary = 204; +var adLongVarBinary = 205; +var adChapter = 136; +var adFileTime = 64; +var adDBFileTime = 137; +var adPropVariant = 138; +var adVarNumeric = 139; + +//---- FieldAttributeEnum Values ---- +var adFldMayDefer = 0x00000002; +var adFldUpdatable = 0x00000004; +var adFldUnknownUpdatable = 0x00000008; +var adFldFixed = 0x00000010; +var adFldIsNullable = 0x00000020; +var adFldMayBeNull = 0x00000040; +var adFldLong = 0x00000080; +var adFldRowID = 0x00000100; +var adFldRowVersion = 0x00000200; +var adFldCacheDeferred = 0x00001000; +var adFldKeyColumn = 0x00008000; + +//---- EditModeEnum Values ---- +var adEditNone = 0x0000; +var adEditInProgress = 0x0001; +var adEditAdd = 0x0002; +var adEditDelete = 0x0004; + +//---- RecordStatusEnum Values ---- +var adRecOK = 0x0000000; +var adRecNew = 0x0000001; +var adRecModified = 0x0000002; +var adRecDeleted = 0x0000004; +var adRecUnmodified = 0x0000008; +var adRecInvalid = 0x0000010; +var adRecMultipleChanges = 0x0000040; +var adRecPendingChanges = 0x0000080; +var adRecCanceled = 0x0000100; +var adRecCantRelease = 0x0000400; +var adRecConcurrencyViolation = 0x0000800; +var adRecIntegrityViolation = 0x0001000; +var adRecMaxChangesExceeded = 0x0002000; +var adRecObjectOpen = 0x0004000; +var adRecOutOfMemory = 0x0008000; +var adRecPermissionDenied = 0x0010000; +var adRecSchemaViolation = 0x0020000; +var adRecDBDeleted = 0x0040000; + +//---- GetRowsOptionEnum Values ---- +var adGetRowsRest = -1; + +//---- PositionEnum Values ---- +var adPosUnknown = -1; +var adPosBOF = -2; +var adPosEOF = -3; + +//---- enum Values ---- +var adBookmarkCurrent = 0; +var adBookmarkFirst = 1; +var adBookmarkLast = 2; + +//---- MarshalOptionsEnum Values ---- +var adMarshalAll = 0; +var adMarshalModifiedOnly = 1; + +//---- AffectEnum Values ---- +var adAffectCurrent = 1; +var adAffectGroup = 2; +var adAffectAll = 3; +var adAffectAllChapters = 4; + +//---- ResyncEnum Values ---- +var adResyncUnderlyingValues = 1; +var adResyncAllValues = 2; + +//---- CompareEnum Values ---- +var adCompareLessThan = 0; +var adCompareEqual = 1; +var adCompareGreaterThan = 2; +var adCompareNotEqual = 3; +var adCompareNotComparable = 4; + +//---- FilterGroupEnum Values ---- +var adFilterNone = 0; +var adFilterPendingRecords = 1; +var adFilterAffectedRecords = 2; +var adFilterFetchedRecords = 3; +var adFilterPredicate = 4; +var adFilterConflictingRecords = 5; + +//---- SearchDirectionEnum Values ---- +var adSearchForward = 1; +var adSearchBackward = -1; + +//---- PersistFormatEnum Values ---- +var adPersistADTG = 0; +var adPersistXML = 1; +var adPersistHTML = 2; + +//---- StringFormatEnum Values ---- +var adStringXML = 0; +var adStringHTML = 1; +var adClipString = 2; + +//---- ADCPROP_UPDATECRITERIA_ENUM Values ---- +var adCriteriaKey = 0; +var adCriteriaAllCols = 1; +var adCriteriaUpdCols = 2; +var adCriteriaTimeStamp = 3; + +//---- ADCPROP_ASYNCTHREADPRIORITY_ENUM Values ---- +var adPriorityLowest = 1; +var adPriorityBelowNormal = 2; +var adPriorityNormal = 3; +var adPriorityAboveNormal = 4; +var adPriorityHighest = 5; + +//---- ConnectPromptEnum Values ---- +var adPromptAlways = 1; +var adPromptComplete = 2; +var adPromptCompleteRequired = 3; +var adPromptNever = 4; + +//---- ConnectModeEnum Values ---- +var adModeUnknown = 0; +var adModeRead = 1; +var adModeWrite = 2; +var adModeReadWrite = 3; +var adModeShareDenyRead = 4; +var adModeShareDenyWrite = 8; +var adModeShareExclusive = 0xc; +var adModeShareDenyNone = 0x10; + +//---- IsolationLevelEnum Values ---- +var adXactUnspecified = 0xffffffff; +var adXactChaos = 0x00000010; +var adXactReadUncommitted = 0x00000100; +var adXactBrowse = 0x00000100; +var adXactCursorStability = 0x00001000; +var adXactReadCommitted = 0x00001000; +var adXactRepeatableRead = 0x00010000; +var adXactSerializable = 0x00100000; +var adXactIsolated = 0x00100000; + +//---- XactAttributeEnum Values ---- +var adXactCommitRetaining = 0x00020000; +var adXactAbortRetaining = 0x00040000; + +//---- PropertyAttributesEnum Values ---- +var adPropNotSupported = 0x0000; +var adPropRequired = 0x0001; +var adPropOptional = 0x0002; +var adPropRead = 0x0200; +var adPropWrite = 0x0400; + +//---- ErrorValueEnum Values ---- +var adErrInvalidArgument = 0xbb9; +var adErrNoCurrentRecord = 0xbcd; +var adErrIllegalOperation = 0xc93; +var adErrInTransaction = 0xcae; +var adErrFeatureNotAvailable = 0xcb3; +var adErrItemNotFound = 0xcc1; +var adErrObjectInCollection = 0xd27; +var adErrObjectNotSet = 0xd5c; +var adErrDataConversion = 0xd5d; +var adErrObjectClosed = 0xe78; +var adErrObjectOpen = 0xe79; +var adErrProviderNotFound = 0xe7a; +var adErrBoundToCommand = 0xe7b; +var adErrInvalidParamInfo = 0xe7c; +var adErrInvalidConnection = 0xe7d; +var adErrNotReentrant = 0xe7e; +var adErrStillExecuting = 0xe7f; +var adErrOperationCancelled = 0xe80; +var adErrStillConnecting = 0xe81; +var adErrNotExecuting = 0xe83; +var adErrUnsafeOperation = 0xe84; + +//---- ParameterAttributesEnum Values ---- +var adParamSigned = 0x0010; +var adParamNullable = 0x0040; +var adParamLong = 0x0080; + +//---- ParameterDirectionEnum Values ---- +var adParamUnknown = 0x0000; +var adParamInput = 0x0001; +var adParamOutput = 0x0002; +var adParamInputOutput = 0x0003; +var adParamReturnValue = 0x0004; + +//---- CommandTypeEnum Values ---- +var adCmdUnknown = 0x0008; +var adCmdText = 0x0001; +var adCmdTable = 0x0002; +var adCmdStoredProc = 0x0004; +var adCmdFile = 0x0100; +var adCmdTableDirect = 0x0200; + +//---- EventStatusEnum Values ---- +var adStatusOK = 0x0000001; +var adStatusErrorsOccurred = 0x0000002; +var adStatusCantDeny = 0x0000003; +var adStatusCancel = 0x0000004; +var adStatusUnwantedEvent = 0x0000005; + +//---- EventReasonEnum Values ---- +var adRsnAddNew = 1; +var adRsnDelete = 2; +var adRsnUpdate = 3; +var adRsnUndoUpdate = 4; +var adRsnUndoAddNew = 5; +var adRsnUndoDelete = 6; +var adRsnRequery = 7; +var adRsnResynch = 8; +var adRsnClose = 9; +var adRsnMove = 10; +var adRsnFirstChange = 11; +var adRsnMoveFirst = 12; +var adRsnMoveNext = 13; +var adRsnMovePrevious = 14; +var adRsnMoveLast = 15; + +//---- SchemaEnum Values ---- +var adSchemaProviderSpecific = -1; +var adSchemaAsserts = 0; +var adSchemaCatalogs = 1; +var adSchemaCharacterSets = 2; +var adSchemaCollations = 3; +var adSchemaColumns = 4; +var adSchemaCheckConstraints = 5; +var adSchemaConstraintColumnUsage = 6; +var adSchemaConstraintTableUsage = 7; +var adSchemaKeyColumnUsage = 8; +var adSchemaReferentialContraints = 9; +var adSchemaTableConstraints = 10; +var adSchemaColumnsDomainUsage = 11; +var adSchemaIndexes = 12; +var adSchemaColumnPrivileges = 13; +var adSchemaTablePrivileges = 14; +var adSchemaUsagePrivileges = 15; +var adSchemaProcedures = 16; +var adSchemaSchemata = 17; +var adSchemaSQLLanguages = 18; +var adSchemaStatistics = 19; +var adSchemaTables = 20; +var adSchemaTranslations = 21; +var adSchemaProviderTypes = 22; +var adSchemaViews = 23; +var adSchemaViewColumnUsage = 24; +var adSchemaViewTableUsage = 25; +var adSchemaProcedureParameters = 26; +var adSchemaForeignKeys = 27; +var adSchemaPrimaryKeys = 28; +var adSchemaProcedureColumns = 29; +var adSchemaDBInfoKeywords = 30; +var adSchemaDBInfoLiterals = 31; +var adSchemaCubes = 32; +var adSchemaDimensions = 33; +var adSchemaHierarchies = 34; +var adSchemaLevels = 35; +var adSchemaMeasures = 36; +var adSchemaProperties = 37; +var adSchemaMembers = 38; + +//---- SeekEnum Values ---- +var adSeekFirstEQ = 0x1; +var adSeekLastEQ = 0x2; +var adSeekGE = 0x4; +var adSeekGT = 0x8; +var adSeekLE = 0x10; +var adSeekLT = 0x20; +%> diff --git a/cadVb/SHARED/ADO/ADOREAD.TXT b/cadVb/SHARED/ADO/ADOREAD.TXT new file mode 100644 index 0000000..be9a2c4 --- /dev/null +++ b/cadVb/SHARED/ADO/ADOREAD.TXT @@ -0,0 +1,307 @@ +--------------------------------------------------------- +Microsoft(R) ActiveX(R) Data Objects 2.0 ļ +--------------------------------------------------------- + +(c) 1998 Microsoft Corporation. All rights reserved. + +ĵ Microsoft ADO ĵ֣ṩһЩµĻϢ + +---- +Ŀ¼ +---- + +1. Ʒ˵ + +2. ¹ +2.1 첽ӡִСȡ¼ +2.2 ̬ +2.3 ־ +2.4 Recordset +2.5 ɸѡͲ +2.6 VC++ ADO չ +2.7 Visual AnalyzerMicrosoft Visual Studio(TM)ҵ棩 ADO ֧ +2.8 ͻαijͻ +2.9 Զ DataFactory Ϊ + +3. ˵ +3.1 ȫǿ +3.2 Ϊ +3.3 Զ尲ȫ + +4. ֪ơԼĵ˵ + +----------- +1. Ʒ˵ +----------- + +ActiveX Data Objects (ADO) ڷݵĻԶĽӿڡADO ʹ OLE DB ӿڷʷΧԴͨ ODBC ṩݡ + +RDO DAO ûܺܿӦ ADO ̣ԭ ADO ԴڿЩӿڵľ顣 + +Microsoft Remote Data Service (RDS) ADO һRDS Ϊפ Microsoft Internet Explorer ϵӦóṩЧӺݷܡһֻڹ HTTPHTTPS Secure Sockets ϵHTTP DCOM ӦóЭ֮ϵĿͻ/ķֲʽRDS ʹʶ ActiveX ؼҪֲʽܼҵڲ Internet Ӧó Web Աṩ Microsoft Visual Basic(R) ʽ̵ݷʡ + +--------- +2. ¹ +--------- + +ADO 2.0 Ϊ˼¹ܡ + +2.1 첽ӡִСȡ¼ + + RDO 2.0 һADO ֧첽첽չ֮ȡڵȴɵͬʱ¼첽ʱ֪ͨ첽ȡԿͻα (CursorLocation =adUseClient) ضܣÿͻα꽫ӲѯصһУȻڲѾȡеͬʱں̨ȡ + +2.2 ݹ + +ͬ MSDataShape ṩߣADO ԷּʾݡADO Ҳʾ¼ķϡ + +2.3 ־ + +ڿԽ Recordset ֱӱڱӲϣԺټأʹÿͻα깤ʱʱӵִвѯ rst.Save("myfilename")رռԺ rs.Open("myfilename",,,adCmdFile) ޸ݡ + +2.4 Recordset + + ADO 2.0 д Recordset Դִвѯֻ贴 Recordset ׷ijЩ Field 󡢵 rst.Open()Ȼӵп׷ݡԶ̵úʹ Recordset 󣬾ͺ Recordset Ѿɲѯ + +2.5 ɸѡͲ + +ʹÿͻαʱͻ˵Ľ + +2.6 VC++ ADO Extensions + +ͨʹñʹ C++ еıͣ VC++ ûṩõܡ + +2.7 Visual AnalyzerMicrosoft Visual Studioҵ棩 ADO ֧ + +ADO Visual Analyzerύ¼԰ܷ + +2.8 ͻαijͻ + +Ϊ㷽ͨͻα꽨 Recordset ṩǿܡڣڿͻα֧ʹóͻº Resync Update + +2.9 Զ DataFactory Ϊ + +ڣִͨ DataFactory ԶʽԶΪDataFactory Զͨ RDS 򿪵 Recordset Ĵ򿪺ΪѡԼд¾ʹ RDS 2.0 ԴĬϾ (MSDFMAP.dll)ͨ༭ʹõĬ INI ļ (MSDFMAP.INI) ĬϾΪ + +----------- +3. ˵ +----------- + +3.1 ȫǿ + +ð汾 ADO RDS İȫǿԱ㵱 Internet Explorer ڡȫģʽʱʹijЩܵơ + +3.1.1. + Internet Explorer 4.0 ΪͬġòͬİȫãԱЩԶ ADO/RDS Ϊ Internet Explorer 4.0 жĸ +* Internet +* ҵ +* վ +* վ + +3.1.2. ȫȼ +Զÿָʹõİȫȼÿʹµİȫȼ +* +* +* +* Զ + + ActiveX ؼһΪ ADO/RDS ȫ Internet Explorer 4.0 й뽫ȫȼΪС򡰸ߡԶڽ ADO/RDS Ϊڰȫǰȫģʽ¹ + +3.2 Ϊ + +Ĭ£ԡҵ򡱡վ򡱺͡Internet 򡱵ҳʱ Internet Explorer 4.0 ж ADO/RDS κηǰȫʾûʾĬ£ԡվ򡱵ҳö ADO/RDS κηǰȫ˵Щģʽʱ ADO/RDS Ϊ + +3.2.1 ȫ +жΪǡȫġζڰȫ磬ĬΪ Internet ExplorerԶڷǰȫģʽУ£ǰȫμ 3.2.3ڷǰȫģʽ磬Visual Basicġ +a. RDS.DATACONTROL +b. RDS.DataSpace +c. ADO Recordset + +3.2.2 ǰȫ +жΪǡǰȫġڰȫ²ʱ޷ֱӻӴЩ󣨲û +a. RDSServer.DataFactory +b. ADO Connection +c. ADO Command + +3.2.3 ȫķǰȫ +±ΪǶԡȫķǰȫ -- RDS.DataControlRDS.DataSpace ADO RecordsetЩڰȫDzģڷǰȫȴġ + +a. RDS.DataControl +i) RDS.DataControl DCOM ζŲڱؼʹ DCOM Эӵķϴݿӡ +ii) ͨ HTTP ִеѾҳķζ RDS.DataControl е Server Աҳ (http:// Server) ͬ + +b. RDS.DataSpace +i) RDS.DataSpace DCOM ζŲڱؼ DCOM Эϣʹ RDS.DataSpace ҵ +ii) ͨ HTTP ִе㷽Ѿҳķζ DataSpace ϵ CreateObject Уڶָҳͬķ + +c. ADO ¼ +i) ṩΪ MS Remote κεطӡַԡProvider=MS Remoteͷַе "Remote Server" Ҳҳķͬص DCOM ӡ +ii) س־Բ罫¼浽ļϵͳӱؼļд򿪼¼ + +3.3 Զ尲ȫ + +ADO/RDS ΪѡûбΪȫ ActiveX ؼгʼִнűƣָͨİȫİȫáҵĬϡûбΪȫ ActiveX ؼгʼִнűѡ£ +ȫ = ֵ = á +ȫ = ֵ = á +ȫ = ֵ = ʾ + +йȫĬãμ Internet Explorer ĵ + +ͨİȫ𣬿Ըδӵ ADO Recordset ΪҪòȫIJϣÿЩʱʾʽؽѡֵΪáòͨԶ尲ȫãɡͬʱע⣬ RDS DataControl ADO Recordset вȫIJ罫浽ļϵͳļУ뽫ѡֵΪáЩ Recordset RDS Datacontroláʾڡá + +ֱͨӲѡԶĬáѡȫ÷ǰȫָͼиòʱʾ棬򲻽оøòΪͬİȫòͬԶáָȫԶ尲ȫãִ² + +棺עáûбΪȫ ActiveX ؼгʼִнűĵ 5 󣬽ҳʹκΰȫǰȫ ActiveX ؼɼؽû¶ĿؼĽű룩ֻڡҵ򡰿վ㡱ȫڣҪ Internet 򣩽IJ + +1. Internet Explorer 4.0 ġ鿴˵ѡInternet ѡ󣬵Internet ѡԻѡ񡰰ȫѡ +2. ӡбѡҪԶõ +3. ΪѡѡԶ塱ɴ˼Իеġáť +4. áȫáԻ +5. Ҫö ADO/RDS ķǰȫ 3.2.3 ʾ棬ڡȫáԻġûбΪȫ ActiveX ؼгʼͽűСѡѡáȻ󵥻ȷ +6. ϣһ ADO/RDS зǰȫ 3.2.3 ʱʾ棬ڡȫáԻġûбΪȫ ActiveX ؼгʼͽűСѡѡʾȻ󵥻ȷ +7. ϣȫö ADO/RDS еķǰȫ 3.2.3 ڡȫáԻġûбΪȫ ActiveX ؼгʼͽűСѡѡ񡰽áȻ󵥻ȷ +8. бҪظϲΪȫԶ尲ȫá +9. ȷ + +ڣADO/RDS ָԶģʽ»ЩýӰָȫе ADO/RDS 3.2.3 Ϊ -- 򿪱ӣͨ DCOM ӵҳ֮ķ¼浽ؼļкʹӱؼļд򿪼¼ + +ԶѡΪʾڶ ADO/RDS зǰȫʱʾ¾棺 + +ҳڷһеԴǷòûѡشǡ򡰷񡱡شǡɸòʧܡ + +------------------------------------------- +4. ֪ơԼĵ˵ +------------------------------------------- + +4.1 ȱٲϵͳ֧֣ǰв֧ RDS еĿͻģ¡ + +4.2 ʹ adUseClient Զ̷ SQL Server 6.5 Service Pack 4 ʱԿɸµĽڲѯʹ DISTINCT ؼֽԡ SQL Server ⣬ԺķмԽ + +4.3 Internet Information Server 4.0 дʱҪⲽԷԱ㴦 RDS + +A) ڰװʱѡСִзʡ +B) msadcs.dll vroot\msadc˴ vroot ҳĿ¼ + +4.4 ʹ Recordset.Save ʱҪõõĽʹ CursorLocation=adUseClient OLE DB ṩֱ߲֧֧¼Ĺܣʹÿͻαṩ˹ܡ + +4.5 ADO ¼ + +WillMove MoveCompleteWillChangeField FieldChangeCompleteWillChangeRecord RecordChangeCompleteWillChangeRecordset RecordsetChangeComplete Լ EndOfRecordset ı⽫ЩΪ Connection ¼Ȼȴ Recordset ¼ + +4.5.1 WillConnect +ĵж WillConnect ¼ Options ȷΨһЧѡ adOpenAsync + +WillConnect ¼ĵ˵ɸ pConnection DzȷģpConnection ޷ͨ¼޸ġ + +4.5.2 ConnectComplete Disconnect +Щ¼ adStatus ʼշ adStatusOKĵ˵Ҳܹ adStatusErrorsOccurredȷ + +ڶ adStatus л˵˿ɡòΪ adStatusUnwantedEvent Խ̵ֹ֪ͨȻرպ´ӽѾַʽرաκ¼ٴμ + +4.5.3 WillExecute +ĵж CursorType Ϊø÷ʱΪ adOpenUnspecifiedܸĸòDzȷġ۵IJֵʲôɶиġ¼IJǼ¼򿪣ԡ + +ĵж LockType Ϊø÷ʱòΪ adLockUnspecified򲻿ɶиġDzȷġ۵ֵʲôԶԸòиģ¼δ¼ٴκԡ + +ĵעͣӦ pConnectionpCommand pRecordset Ϊ¼Ķ󣬶Ϊ NothingDzȷġ¼һֱ pConnection á + +4.5.4 InfoMessage +ĵж pError Ϊ adStatus ֵ adStatusErrorsOccurred ʱֵĴ󣻷򽫲Dzȷġÿؾʱ¼ᱻ£¼״̬Ϊ adStatusOK pError 󽫰档 + +ĵж adStatus Ϊ¼IJɹòΪ adStatusOKʧܣΪ adStatusErrorsOccurredʵϣ¼ΪԶᡰʧܡ״̬Զ adStatusErrorsOccurred + + pConnection ΪӶΪִеӡҲԳӵ͵IJС + +4.5.5 WillMove MoveComplete +˵У Recordset ҲԵ¼ļFilterAbsolutePageAbsolutePositionӼ¼ʹ¼¼ӣʹһ¼ƶҲἤ¼⣬Delete ἤЩ¼ + +4.5.6 WillChangeRecord RecordChangeComplete +˵ӦΪеĵһĵֶνЩ¼ + +4.6 ADO/RDS ĵᵽ RDS.DATACONTROL Ϊ URL ԡѷ RDS 2.0 汾виԡ + +4.7 ʹ CursorLocation=adUseClient ʱ첽ȡ ADO 2.0 汾пáִķ - һͨ Recordset.Open Options ͨ Recordset ԼϡAsynchronous Rowset ProcessingԡҪȡõĽͨӦʹ Recordset.Open ʹòᵼ ADO ̨ȡ¼Ķʧ⣬ʹ Provider="MS Remote" к̨ȡͨ properties ʵֻ֣ͨ Recordset.Open С + +4.8 ADO ڴԴoutputreturnֵظûʱADO ṩ߶ȡһֵζûֵ׼֮ǰжȡ޷õЩֵ + +Ҫдʾ + +Sub params() +Dim conn As New Connection +Dim cmd As New Command +Dim rs As Recordset + +conn.Open "pubs", "sa", "" +'conn.Open "provider=sqloledb;data source=sqlserver;user id=sa;password=;initial catalog=pubs" +conn.Execute "DROP PROC test_proc" +conn.Execute "CREATE PROCEDURE test_proc as SELECT * from authors RETURN 1" +Set cmd.ActiveConnection = conn +cmd.CommandText = "test_proc" +cmd.CommandType = adCmdStoredProc +cmd.Parameters.Append cmd.CreateParameter("RetVal", adInteger, adParamReturnValue) + +Set rs = cmd.Execute() +Debug.print rs(0) + + Microsoft SQL Server ǰֻα괦ļ¼ر֮ǰԲֵеķʽЧ֮ǰȡֵֻڼ¼ر֮󣨶֮ǰ֮󣩲òܵõȷIJֵ + +Debug.Print "Return Val : "; cmd(0) +rs.Close +Debug.Print "Return Val : "; cmd(0) +conn.Close + +End Sub + +4.9 ʹ CursorLocation=adUseClient ʱRecordset.Resync() ֻԷֻ Recordsets Ч + +4.10 Ҫͨ Visual Basic ʹ ADO 2.0 FetchProgress FetchComplete ¼ Visual Basic Ӧ 6.0 汾 + +4.11 Բ֧ǩṩʹ ADO ¼ʱûÿҪ ADO OLE DB ṩߴȡµʱյ RecordsetChanged ֪ͨ䷢Ƶֱȡ Recordset.CacheSize ԡ + +4.12 IIS ʹ RDS ʱÿ߳ͨ Web עԿơÿ߳ڽͨŻͨСѯ޴£ӰܡûӦԻѵĽֵָΪ + +HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ADCThreads + +˴ ADCThreads ûӵġΧΪ 1-50 REG_DWORDĬֵ 6ĬϵЧֵΪ 6 50ûҪעֵĬ£עС + +4.13 Recordsets Щ Connection OpenSchema صУ Connection ޷ Visual Basic еȡЩʹӦ DBTYPE_UI4 OLE DB ͵Сھи͵ķмУйЩе OLE DB ˵ + +4.14 ʹ ADO Connection OpenSchema ʱʹúĵڶԷصĽơòһֵ飬 VBA ָΪ + +Dim criteria(3) As Variant + +criteria(0) = "pubs" ' Use the "pubs" database on the SQL Server +criteria(1) = Empty ' No restriction on the schema/owner +criteria(2) = Empty ' No restriction on the table name +criteria(3) = "table" ' Only objects of type "table" are returned. +Set rs = cnn.OpenSchema(adSchemaTables, Criteria) + +4.15 ADO Уṩ߻ʹõָαͿܲһֱ֧ Recordset RecordCount ԡṩ߻αͲ֧ RecordCount £ֵΪ -1 + +4.16 д뷶 +ΪÿдĶʽѡȫ뷶ڽճ򴰿ʱʽԣ뽫޷С + +4.17 ڡ״׷ĵУ﷨ӦʾΪ +SHAPE {parent command} +APPEND {child command} [AS] table-alias +RELATE (parent column TO child column) + +4.18 ڡʷּ Recordset еСĵУ 3 еĴӦΪ + +Set rstChapter = rst("chapter").Value + +4.19 ڡ 4ݣADO ̳̣ĵУ뷶ָ Field Optimize ԡ΢ȷʹ CursorLocation=adUseClient δӵ Recordset ʱOptimize Գ Field Optimize С÷£ + +rs("au_lname").properties("Optimize") = True + +4.20 StayInSync Եĵ˵ԡڷּ Recordset УָʾӼ¼ļϣӼʱ丸¼ǷҲҪġ + +˵ȷԿƵûڸ¼жλʱǷĶӼ¼ãĬֵΪ True + +ĵл˵û򷵻زֵΪ TrueӼʱ Recordset Ҳ£Ϊ False Recordset 󽫼ǰӼ + +˵ȷΪ True¼ͬ -- ڸ¼еĶλӼ¼ʾݡΪ FalseӼ¼ýضӼϢʹûڸ¼жλ + +4.21 ڡWillChangeRecordset RecordsetChangeComplete (ConnectionEvent) İ˵WillChangeRecordset RecordsetChangeComplete ¼ Recordset RequeryResyncCloseOpen FilterDzȷġFilter Close ᴥ¼ + +4.22 ڡWillMove MoveComplete (ConnectionEvent) İ˵WillMove ¼ Resync DzȷġResync ᴥ¼ + diff --git a/cadVb/SHARED/ADO/ADOVBS.INC b/cadVb/SHARED/ADO/ADOVBS.INC new file mode 100644 index 0000000..bb88b3c --- /dev/null +++ b/cadVb/SHARED/ADO/ADOVBS.INC @@ -0,0 +1,363 @@ +<% +'-------------------------------------------------------------------- +' Microsoft ADO +' +' (c) 1996-1998 Microsoft Corporation. All Rights Reserved. +' +' +' +' ADO constants include file for VBScript +' +'-------------------------------------------------------------------- + +'---- CursorTypeEnum Values ---- +Const adOpenForwardOnly = 0 +Const adOpenKeyset = 1 +Const adOpenDynamic = 2 +Const adOpenStatic = 3 + +'---- CursorOptionEnum Values ---- +Const adHoldRecords = &H00000100 +Const adMovePrevious = &H00000200 +Const adAddNew = &H01000400 +Const adDelete = &H01000800 +Const adUpdate = &H01008000 +Const adBookmark = &H00002000 +Const adApproxPosition = &H00004000 +Const adUpdateBatch = &H00010000 +Const adResync = &H00020000 +Const adNotify = &H00040000 +Const adFind = &H00080000 + +'---- LockTypeEnum Values ---- +Const adLockReadOnly = 1 +Const adLockPessimistic = 2 +Const adLockOptimistic = 3 +Const adLockBatchOptimistic = 4 + +'---- ExecuteOptionEnum Values ---- +Const adRunAsync = &H00000010 +Const adAsyncExecute = &H00000010 +Const adAsyncFetch = &H00000020 +Const adAsyncFetchNonBlocking = &H00000040 +Const adExecuteNoRecords = &H00000080 + +'---- ConnectOptionEnum Values ---- +Const adAsyncConnect = &H00000010 + +'---- ObjectStateEnum Values ---- +Const adStateClosed = &H00000000 +Const adStateOpen = &H00000001 +Const adStateConnecting = &H00000002 +Const adStateExecuting = &H00000004 +Const adStateFetching = &H00000008 + +'---- CursorLocationEnum Values ---- +Const adUseServer = 2 +Const adUseClient = 3 + +'---- DataTypeEnum Values ---- +Const adEmpty = 0 +Const adTinyInt = 16 +Const adSmallInt = 2 +Const adInteger = 3 +Const adBigInt = 20 +Const adUnsignedTinyInt = 17 +Const adUnsignedSmallInt = 18 +Const adUnsignedInt = 19 +Const adUnsignedBigInt = 21 +Const adSingle = 4 +Const adDouble = 5 +Const adCurrency = 6 +Const adDecimal = 14 +Const adNumeric = 131 +Const adBoolean = 11 +Const adError = 10 +Const adUserDefined = 132 +Const adVariant = 12 +Const adIDispatch = 9 +Const adIUnknown = 13 +Const adGUID = 72 +Const adDate = 7 +Const adDBDate = 133 +Const adDBTime = 134 +Const adDBTimeStamp = 135 +Const adBSTR = 8 +Const adChar = 129 +Const adVarChar = 200 +Const adLongVarChar = 201 +Const adWChar = 130 +Const adVarWChar = 202 +Const adLongVarWChar = 203 +Const adBinary = 128 +Const adVarBinary = 204 +Const adLongVarBinary = 205 +Const adChapter = 136 +Const adFileTime = 64 +Const adDBFileTime = 137 +Const adPropVariant = 138 +Const adVarNumeric = 139 + +'---- FieldAttributeEnum Values ---- +Const adFldMayDefer = &H00000002 +Const adFldUpdatable = &H00000004 +Const adFldUnknownUpdatable = &H00000008 +Const adFldFixed = &H00000010 +Const adFldIsNullable = &H00000020 +Const adFldMayBeNull = &H00000040 +Const adFldLong = &H00000080 +Const adFldRowID = &H00000100 +Const adFldRowVersion = &H00000200 +Const adFldCacheDeferred = &H00001000 +Const adFldKeyColumn = &H00008000 + +'---- EditModeEnum Values ---- +Const adEditNone = &H0000 +Const adEditInProgress = &H0001 +Const adEditAdd = &H0002 +Const adEditDelete = &H0004 + +'---- RecordStatusEnum Values ---- +Const adRecOK = &H0000000 +Const adRecNew = &H0000001 +Const adRecModified = &H0000002 +Const adRecDeleted = &H0000004 +Const adRecUnmodified = &H0000008 +Const adRecInvalid = &H0000010 +Const adRecMultipleChanges = &H0000040 +Const adRecPendingChanges = &H0000080 +Const adRecCanceled = &H0000100 +Const adRecCantRelease = &H0000400 +Const adRecConcurrencyViolation = &H0000800 +Const adRecIntegrityViolation = &H0001000 +Const adRecMaxChangesExceeded = &H0002000 +Const adRecObjectOpen = &H0004000 +Const adRecOutOfMemory = &H0008000 +Const adRecPermissionDenied = &H0010000 +Const adRecSchemaViolation = &H0020000 +Const adRecDBDeleted = &H0040000 + +'---- GetRowsOptionEnum Values ---- +Const adGetRowsRest = -1 + +'---- PositionEnum Values ---- +Const adPosUnknown = -1 +Const adPosBOF = -2 +Const adPosEOF = -3 + +'---- enum Values ---- +Const adBookmarkCurrent = 0 +Const adBookmarkFirst = 1 +Const adBookmarkLast = 2 + +'---- MarshalOptionsEnum Values ---- +Const adMarshalAll = 0 +Const adMarshalModifiedOnly = 1 + +'---- AffectEnum Values ---- +Const adAffectCurrent = 1 +Const adAffectGroup = 2 +Const adAffectAll = 3 +Const adAffectAllChapters = 4 + +'---- ResyncEnum Values ---- +Const adResyncUnderlyingValues = 1 +Const adResyncAllValues = 2 + +'---- CompareEnum Values ---- +Const adCompareLessThan = 0 +Const adCompareEqual = 1 +Const adCompareGreaterThan = 2 +Const adCompareNotEqual = 3 +Const adCompareNotComparable = 4 + +'---- FilterGroupEnum Values ---- +Const adFilterNone = 0 +Const adFilterPendingRecords = 1 +Const adFilterAffectedRecords = 2 +Const adFilterFetchedRecords = 3 +Const adFilterPredicate = 4 +Const adFilterConflictingRecords = 5 + +'---- SearchDirectionEnum Values ---- +Const adSearchForward = 1 +Const adSearchBackward = -1 + +'---- PersistFormatEnum Values ---- +Const adPersistADTG = 0 +Const adPersistXML = 1 +Const adPersistHTML = 2 + +'---- StringFormatEnum Values ---- +Const adStringXML = 0 +Const adStringHTML = 1 +Const adClipString = 2 + +'---- ADCPROP_UPDATECRITERIA_ENUM Values ---- +Const adCriteriaKey = 0 +Const adCriteriaAllCols = 1 +Const adCriteriaUpdCols = 2 +Const adCriteriaTimeStamp = 3 + +'---- ADCPROP_ASYNCTHREADPRIORITY_ENUM Values ---- +Const adPriorityLowest = 1 +Const adPriorityBelowNormal = 2 +Const adPriorityNormal = 3 +Const adPriorityAboveNormal = 4 +Const adPriorityHighest = 5 + +'---- ConnectPromptEnum Values ---- +Const adPromptAlways = 1 +Const adPromptComplete = 2 +Const adPromptCompleteRequired = 3 +Const adPromptNever = 4 + +'---- ConnectModeEnum Values ---- +Const adModeUnknown = 0 +Const adModeRead = 1 +Const adModeWrite = 2 +Const adModeReadWrite = 3 +Const adModeShareDenyRead = 4 +Const adModeShareDenyWrite = 8 +Const adModeShareExclusive = &Hc +Const adModeShareDenyNone = &H10 + +'---- IsolationLevelEnum Values ---- +Const adXactUnspecified = &Hffffffff +Const adXactChaos = &H00000010 +Const adXactReadUncommitted = &H00000100 +Const adXactBrowse = &H00000100 +Const adXactCursorStability = &H00001000 +Const adXactReadCommitted = &H00001000 +Const adXactRepeatableRead = &H00010000 +Const adXactSerializable = &H00100000 +Const adXactIsolated = &H00100000 + +'---- XactAttributeEnum Values ---- +Const adXactCommitRetaining = &H00020000 +Const adXactAbortRetaining = &H00040000 + +'---- PropertyAttributesEnum Values ---- +Const adPropNotSupported = &H0000 +Const adPropRequired = &H0001 +Const adPropOptional = &H0002 +Const adPropRead = &H0200 +Const adPropWrite = &H0400 + +'---- ErrorValueEnum Values ---- +Const adErrInvalidArgument = &Hbb9 +Const adErrNoCurrentRecord = &Hbcd +Const adErrIllegalOperation = &Hc93 +Const adErrInTransaction = &Hcae +Const adErrFeatureNotAvailable = &Hcb3 +Const adErrItemNotFound = &Hcc1 +Const adErrObjectInCollection = &Hd27 +Const adErrObjectNotSet = &Hd5c +Const adErrDataConversion = &Hd5d +Const adErrObjectClosed = &He78 +Const adErrObjectOpen = &He79 +Const adErrProviderNotFound = &He7a +Const adErrBoundToCommand = &He7b +Const adErrInvalidParamInfo = &He7c +Const adErrInvalidConnection = &He7d +Const adErrNotReentrant = &He7e +Const adErrStillExecuting = &He7f +Const adErrOperationCancelled = &He80 +Const adErrStillConnecting = &He81 +Const adErrNotExecuting = &He83 +Const adErrUnsafeOperation = &He84 + +'---- ParameterAttributesEnum Values ---- +Const adParamSigned = &H0010 +Const adParamNullable = &H0040 +Const adParamLong = &H0080 + +'---- ParameterDirectionEnum Values ---- +Const adParamUnknown = &H0000 +Const adParamInput = &H0001 +Const adParamOutput = &H0002 +Const adParamInputOutput = &H0003 +Const adParamReturnValue = &H0004 + +'---- CommandTypeEnum Values ---- +Const adCmdUnknown = &H0008 +Const adCmdText = &H0001 +Const adCmdTable = &H0002 +Const adCmdStoredProc = &H0004 +Const adCmdFile = &H0100 +Const adCmdTableDirect = &H0200 + +'---- EventStatusEnum Values ---- +Const adStatusOK = &H0000001 +Const adStatusErrorsOccurred = &H0000002 +Const adStatusCantDeny = &H0000003 +Const adStatusCancel = &H0000004 +Const adStatusUnwantedEvent = &H0000005 + +'---- EventReasonEnum Values ---- +Const adRsnAddNew = 1 +Const adRsnDelete = 2 +Const adRsnUpdate = 3 +Const adRsnUndoUpdate = 4 +Const adRsnUndoAddNew = 5 +Const adRsnUndoDelete = 6 +Const adRsnRequery = 7 +Const adRsnResynch = 8 +Const adRsnClose = 9 +Const adRsnMove = 10 +Const adRsnFirstChange = 11 +Const adRsnMoveFirst = 12 +Const adRsnMoveNext = 13 +Const adRsnMovePrevious = 14 +Const adRsnMoveLast = 15 + +'---- SchemaEnum Values ---- +Const adSchemaProviderSpecific = -1 +Const adSchemaAsserts = 0 +Const adSchemaCatalogs = 1 +Const adSchemaCharacterSets = 2 +Const adSchemaCollations = 3 +Const adSchemaColumns = 4 +Const adSchemaCheckConstraints = 5 +Const adSchemaConstraintColumnUsage = 6 +Const adSchemaConstraintTableUsage = 7 +Const adSchemaKeyColumnUsage = 8 +Const adSchemaReferentialContraints = 9 +Const adSchemaTableConstraints = 10 +Const adSchemaColumnsDomainUsage = 11 +Const adSchemaIndexes = 12 +Const adSchemaColumnPrivileges = 13 +Const adSchemaTablePrivileges = 14 +Const adSchemaUsagePrivileges = 15 +Const adSchemaProcedures = 16 +Const adSchemaSchemata = 17 +Const adSchemaSQLLanguages = 18 +Const adSchemaStatistics = 19 +Const adSchemaTables = 20 +Const adSchemaTranslations = 21 +Const adSchemaProviderTypes = 22 +Const adSchemaViews = 23 +Const adSchemaViewColumnUsage = 24 +Const adSchemaViewTableUsage = 25 +Const adSchemaProcedureParameters = 26 +Const adSchemaForeignKeys = 27 +Const adSchemaPrimaryKeys = 28 +Const adSchemaProcedureColumns = 29 +Const adSchemaDBInfoKeywords = 30 +Const adSchemaDBInfoLiterals = 31 +Const adSchemaCubes = 32 +Const adSchemaDimensions = 33 +Const adSchemaHierarchies = 34 +Const adSchemaLevels = 35 +Const adSchemaMeasures = 36 +Const adSchemaProperties = 37 +Const adSchemaMembers = 38 + +'---- SeekEnum Values ---- +Const adSeekFirstEQ = &H1 +Const adSeekLastEQ = &H2 +Const adSeekGE = &H4 +Const adSeekGT = &H8 +Const adSeekLE = &H10 +Const adSeekLT = &H20 +%> diff --git a/cadVb/SHARED/ADO/MAKAPT15.BAT b/cadVb/SHARED/ADO/MAKAPT15.BAT new file mode 100644 index 0000000..f303495 --- /dev/null +++ b/cadVb/SHARED/ADO/MAKAPT15.BAT @@ -0,0 +1 @@ +regedit /s adoapt15.reg diff --git a/cadVb/SHARED/ADO/MAKFRE15.BAT b/cadVb/SHARED/ADO/MAKFRE15.BAT new file mode 100644 index 0000000..7319ee4 --- /dev/null +++ b/cadVb/SHARED/ADO/MAKFRE15.BAT @@ -0,0 +1 @@ +regedit /s adofre15.reg diff --git a/cadVb/SHARED/ADO/MSADER15.DLL b/cadVb/SHARED/ADO/MSADER15.DLL new file mode 100644 index 0000000..41278eb Binary files /dev/null and b/cadVb/SHARED/ADO/MSADER15.DLL differ diff --git a/cadVb/SHARED/ADO/MSADO15.DLL b/cadVb/SHARED/ADO/MSADO15.DLL new file mode 100644 index 0000000..d524000 Binary files /dev/null and b/cadVb/SHARED/ADO/MSADO15.DLL differ diff --git a/cadVb/SHARED/ADO/MSADOR15.DLL b/cadVb/SHARED/ADO/MSADOR15.DLL new file mode 100644 index 0000000..b65f2dc Binary files /dev/null and b/cadVb/SHARED/ADO/MSADOR15.DLL differ diff --git a/cadVb/SHARED/ADO/MSADRH15.DLL b/cadVb/SHARED/ADO/MSADRH15.DLL new file mode 100644 index 0000000..ff5c618 Binary files /dev/null and b/cadVb/SHARED/ADO/MSADRH15.DLL differ diff --git a/cadVb/SHARED/DATAENV/DEEXT.TLB b/cadVb/SHARED/DATAENV/DEEXT.TLB new file mode 100644 index 0000000..2d1bbe6 Binary files /dev/null and b/cadVb/SHARED/DATAENV/DEEXT.TLB differ diff --git a/cadVb/SHARED/DATAENV/MSDE.DLL b/cadVb/SHARED/DATAENV/MSDE.DLL new file mode 100644 index 0000000..50b4f49 Binary files /dev/null and b/cadVb/SHARED/DATAENV/MSDE.DLL differ diff --git a/cadVb/SHARED/DATAENV/MSDERUN.DEP b/cadVb/SHARED/DATAENV/MSDERUN.DEP new file mode 100644 index 0000000..b212c15 --- /dev/null +++ b/cadVb/SHARED/DATAENV/MSDERUN.DEP @@ -0,0 +1,28 @@ + +; Dependency file for setup wizards. + +[Version] +Version=06.00.00.3005 + +; Dependencies for MSDERun.dll + +; Default Dependencies ---------------------------------------------- + +[MSDERun.dll] +Dest=$(CommonFiles)\designer +Register=$(DLLSelfRegister) +Version=06.00.00.3005 +Uses1=ComCat.dll +Uses2=msado15.dll +Uses3= +CABFileName=MSDERun.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSDERun.inf + +[ComCat.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +Uses1= + +; Localized Dependencies -------------------------------------------- + diff --git a/cadVb/SHARED/DATAENV/MSDERUN.DLL b/cadVb/SHARED/DATAENV/MSDERUN.DLL new file mode 100644 index 0000000..6f0f10c Binary files /dev/null and b/cadVb/SHARED/DATAENV/MSDERUN.DLL differ diff --git a/cadVb/SHARED/DATAENV/RESOURCE/2052/MSDEUI.DLL b/cadVb/SHARED/DATAENV/RESOURCE/2052/MSDEUI.DLL new file mode 100644 index 0000000..6fa1d4b Binary files /dev/null and b/cadVb/SHARED/DATAENV/RESOURCE/2052/MSDEUI.DLL differ diff --git a/cadVb/SHARED/MSADC/ADCJAVAS.INC b/cadVb/SHARED/MSADC/ADCJAVAS.INC new file mode 100644 index 0000000..f04e6f3 --- /dev/null +++ b/cadVb/SHARED/MSADC/ADCJAVAS.INC @@ -0,0 +1,26 @@ +<% +//-------------------------------------------------------------------- +// Microsoft ADC +// +// (c) 1997 Microsoft Corporation. All Rights Reserved. +// +// +// +// ADO constants include file for JavaScript +// +//-------------------------------------------------------------------- + +//---- enum Values ---- +var adcExecSync = 1; +var adcExecAsync = 2; + +//---- enum Values ---- +var adcFetchUpFront = 1; +var adcFetchBackground = 2; +var adcFetchAsync = 3; + +//---- enum Values ---- +var adcReadyStateLoaded = 2; +var adcReadyStateInteractive = 3; +var adcReadyStateComplete = 4; +%> diff --git a/cadVb/SHARED/MSADC/ADCVBS.INC b/cadVb/SHARED/MSADC/ADCVBS.INC new file mode 100644 index 0000000..495cc27 --- /dev/null +++ b/cadVb/SHARED/MSADC/ADCVBS.INC @@ -0,0 +1,26 @@ +<% +'-------------------------------------------------------------------- +' Microsoft ADC +' +' (c) 1997 Microsoft Corporation. All Rights Reserved. +' +' +' +' ADO constants include file for VBScript +' +'-------------------------------------------------------------------- + +'---- enum Values ---- +Const adcExecSync = 1 +Const adcExecAsync = 2 + +'---- enum Values ---- +Const adcFetchUpFront = 1 +Const adcFetchBackground = 2 +Const adcFetchAsync = 3 + +'---- enum Values ---- +Const adcReadyStateLoaded = 2 +Const adcReadyStateInteractive = 3 +Const adcReadyStateComplete = 4 +%> diff --git a/cadVb/SHARED/MSADC/HANDLER.SRG b/cadVb/SHARED/MSADC/HANDLER.SRG new file mode 100644 index 0000000..bb27e82 --- /dev/null +++ b/cadVb/SHARED/MSADC/HANDLER.SRG @@ -0,0 +1,13 @@ + + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo\safeHandlerList] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo\safeHandlerList\MSDFMAP.Handler] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo\safeHandlerList\MSDFMAP_VB.Handler] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\HandlerInfo\safeHandlerList\MSDFMAP_VC.Handler] diff --git a/cadVb/SHARED/MSADC/MDAC11.CAB b/cadVb/SHARED/MSADC/MDAC11.CAB new file mode 100644 index 0000000..6180ec1 Binary files /dev/null and b/cadVb/SHARED/MSADC/MDAC11.CAB differ diff --git a/cadVb/SHARED/MSADC/MDAC20.CAB b/cadVb/SHARED/MSADC/MDAC20.CAB new file mode 100644 index 0000000..ca7cdcf --- /dev/null +++ b/cadVb/SHARED/MSADC/MDAC20.CAB @@ -0,0 +1,6 @@ +MDAC20.cab Чʹ MDAC_TYP.EXE + MDAC 2.0 SDK Visual Studio 98 CD ҵļ + +MDAC_TYP.CAB Ϊʹ VB װṩġ +MDAC_TYP.CAB Ϊ HTML ҳе Codebase ǩ׼ġ +ûҪڹվ MDAC2.0 ĹܣӦִ MDAC_TYP.EXE ļװ diff --git a/cadVb/SHARED/MSADC/MDAC20_A.CAB b/cadVb/SHARED/MSADC/MDAC20_A.CAB new file mode 100644 index 0000000..deabe08 --- /dev/null +++ b/cadVb/SHARED/MSADC/MDAC20_A.CAB @@ -0,0 +1,6 @@ +MDAC20_a.cab is no longer available. Please use MDAC_TYP.EXE instead. +This file can be found in the MDAC 2.0 SDK and on the Visual Studio 98 CD. + +MDAC_TYP.CAB is provided for the use of the VB Setup Wizard. +MDAC_TYP.CAB is not intended to work from the codebase tag in an HTML page. +Users needing the functionality of MDAC 2.0 on their workstation should run the MDAC_TYP.EXE file to install those components. \ No newline at end of file diff --git a/cadVb/SHARED/MSADC/MSADCE.DLL b/cadVb/SHARED/MSADC/MSADCE.DLL new file mode 100644 index 0000000..9e6cb7c Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADCE.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADCER.DLL b/cadVb/SHARED/MSADC/MSADCER.DLL new file mode 100644 index 0000000..b2cd08d Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADCER.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADCF.DLL b/cadVb/SHARED/MSADC/MSADCF.DLL new file mode 100644 index 0000000..0767631 Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADCF.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADCFR.DLL b/cadVb/SHARED/MSADC/MSADCFR.DLL new file mode 100644 index 0000000..9add7db Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADCFR.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADCO.DLL b/cadVb/SHARED/MSADC/MSADCO.DLL new file mode 100644 index 0000000..9650dfe Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADCO.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADCOR.DLL b/cadVb/SHARED/MSADC/MSADCOR.DLL new file mode 100644 index 0000000..c1a6cc4 Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADCOR.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADCS.DLL b/cadVb/SHARED/MSADC/MSADCS.DLL new file mode 100644 index 0000000..ba26aef Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADCS.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADDS.DLL b/cadVb/SHARED/MSADC/MSADDS.DLL new file mode 100644 index 0000000..74fe14b Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADDS.DLL differ diff --git a/cadVb/SHARED/MSADC/MSADDSR.DLL b/cadVb/SHARED/MSADC/MSADDSR.DLL new file mode 100644 index 0000000..ec4642a Binary files /dev/null and b/cadVb/SHARED/MSADC/MSADDSR.DLL differ diff --git a/cadVb/SHARED/MSADC/MSDAPRST.DLL b/cadVb/SHARED/MSADC/MSDAPRST.DLL new file mode 100644 index 0000000..e544b32 Binary files /dev/null and b/cadVb/SHARED/MSADC/MSDAPRST.DLL differ diff --git a/cadVb/SHARED/MSADC/MSDATSRC.TLB b/cadVb/SHARED/MSADC/MSDATSRC.TLB new file mode 100644 index 0000000..c6ccd8b Binary files /dev/null and b/cadVb/SHARED/MSADC/MSDATSRC.TLB differ diff --git a/cadVb/SHARED/MSADC/MSDFMAP.DLL b/cadVb/SHARED/MSADC/MSDFMAP.DLL new file mode 100644 index 0000000..4d9a776 Binary files /dev/null and b/cadVb/SHARED/MSADC/MSDFMAP.DLL differ diff --git a/cadVb/SHARED/MSADC/MSDFMAP.INI b/cadVb/SHARED/MSADC/MSDFMAP.INI new file mode 100644 index 0000000..df1ed77 --- /dev/null +++ b/cadVb/SHARED/MSADC/MSDFMAP.INI @@ -0,0 +1,41 @@ +;[connect name] will modify the connection if ADC.connect="name" +;[connect default] will modify the connection if name is not found +;[sql name] will modify the Sql if ADC.sql="name(args)" +;[sql default] will modify the Sql if name is not found +;Override strings: Connect, UserId, Password, Sql. +;Only the Sql strings support parameters using "?" +;The override strings must not equal "" or they are ignored +;A Sql entry must exist in each sql section or the section is ignored +;An Access entry must exist in each connect section or the section is ignored +;Access=NoAccess +;Access=ReadOnly +;Access=ReadWrite +;[userlist name] allows specific users to have special access +;The Access is computed as follows: +; (1) First take the access of the connect section. +; (2) If a user entry is found, it will override. + +[connect default] +;If we want to disable unknown connect values, we set Access to NoAccess +Access=NoAccess + +[sql default] +;If we want to disable unknown sql values, we set Sql to an invalid query. +Sql=" " + +[connect CustomerDatabase] +Access=ReadWrite +Connect="DSN=AdvWorks" + +[sql CustomerById] +Sql="SELECT * FROM Customers WHERE CustomerID = ?" + +[connect AuthorDatabase] +Access=ReadOnly +Connect="DSN=MyLibraryInfo;UID=MyUserID;PWD=MyPassword" + +[userlist AuthorDatabase] +Administrator=ReadWrite + +[sql AuthorById] +Sql="SELECT * FROM Authors WHERE au_id = ?" diff --git a/cadVb/SHARED/MSADC/MSJTES40.DLL b/cadVb/SHARED/MSADC/MSJTES40.DLL new file mode 100644 index 0000000..6c03105 Binary files /dev/null and b/cadVb/SHARED/MSADC/MSJTES40.DLL differ diff --git a/cadVb/SHARED/MSADC/RDS1READ.TXT b/cadVb/SHARED/MSADC/RDS1READ.TXT new file mode 100644 index 0000000..da086b2 --- /dev/null +++ b/cadVb/SHARED/MSADC/RDS1READ.TXT @@ -0,0 +1,198 @@ + --------------------------------------------------------- + Microsoft(R) Remote Data Service 1.1 汾ļ + 1997 + --------------------------------------------------------- + + (c) Microsoft Corporation, 1997 + +ĵ Microsoft Remote Data Service (RDS) 1.1 汾ĵ֣ṩһЩ±ĻϢ + +---- +Ŀ¼ +---- + +1. Ʒ˵ + 1.1 ƷƵı仯 + +2. ¹ + +3. װע + 3.1 аװ֮ǰ + 3.1.1 ӲҪ + 3.1.2 Ҫ + 3.2 װ Microsoft Remote Data Service + 3.2.1 Web ϰװ RDS ͻ + 3.2.2 ڿͻ˼ϰװʹ RDS ͻ + 3.3 ȷϰװ + +4. ֧ + 4.1 Microsoft ļ֧ϵ + 4.2 Microsoft Remote Data Service Web վ + 4.3 Remote Data Service + +5. ע + +6. ֪ + +----------- +1. Ʒ˵ +----------- + +Microsoft Remote Data Service (RDS) һ Microsoft Internet Explorer ӦóĿ١ЧӺݷܡù HTTPHTTPSȫ׽Ӳϵ HTTP DCOM ӦóЭ֮ϵĿͻ/ֲʽRDS ʹʶ ActiveX(R) ؼΪҪڹ˾ľ Internet ϽֲʽܼӦó翪ṩ Visual Basic(R) ʽݷʱ̡ + +1.1 ƷƵı仯 + + Microsoft Advanced Data Connector (ADC) ָΪ Microsoft Remote Data Service (RDS) Microsoft ActiveX ݶ (ADO) һܡADC ǻ ADOñ仯Ӽɻת䲢֮ĹϵADO һ OLE DB ODBC Դм׺ʵı̽档Remote Data Service ADO ԱṩסϿļ¼Զ̷Advanced Data Connector Ĺܸܲñ仯Ӱ졣 + + +--------- +2. ¹ +--------- + + Remote Data Service 1.1 ͻ¹ܡйЩܵϸϢıĵ + +1.1 ͻΪ 1.0 汾Ӧóṩ·Advanced Data Connector 1.0 汾 Internet Explorer 3.0x ṩ֧֡Remote Data Service 1.1 汾ͬʱ֧ Internet Explorer 3.0x 4.0 汾ǰ· 1.5 ͻУݰһ΢µıģʽ1.1 ͻ潫 1.0 汾ıģʽԱ㵱ʱҪļ׸ĶѡʱԿӦó + +1.1 ͻҪСĵͼԸģͬʱҲṩĸ¡ڿԽݸΪȫ ODBC ݵԴʹáfor browseӾ䡣 + + 1.1 ͻ 1.5 汾ķ1.5 汾ķͬʱΪ 1.1 汾 1.5 汾ͻ + +--------------- +3. װע +--------------- + +3.1 аװ֮ǰ + +ڰװ Microsoft Remote Data Service ֮ǰȷϿͻͷ͵ӲҪ + +3.1.1 ӲҪ + +Ҫװ Remote Data ServiceһӲҪ󣬾Ҫ£ + +* κ Microsoft Windows NT(R) Microsoft Windows 95 x86 ݻ +* 8 (MB) Ӳ̿ռ䣬ȫװ RDS ҪиС +* ͻ 12 MB RAM +* 24 MB RAM 32 MB + +3.1.2 Ҫ + +ڷϰװ Remote Data Service ֮ǰWeb Ҫ + +* Remote Data Service 1.5 档 +* вϵͳƽ̨֮һWindows NT Server 4.0 Workstation SP3 ߰汾Remote Data Service 1.1 汾Ŀǰ֧ x86/Intel ƽ̨ڲƷݻʹ NT Server ƽ̨ +* Microsoft Internet Information Server (IIS) 3.0 4.0 棬 Microsoft Active Server Pages +* Service Pack 2 Microsoft SQL Server 6.5 ODBC Դ + +Ҫӿͻ Remote Data Service Ӧó򣬿ͻҪ + +* вϵͳƽ̨֮һWindows 95Windows NT Server 4.0 Service Pack 3߰汾 Windows NT Workstation 4.0 ߰汾 +* Microsoft Internet Explorer version 3.0x 4.0 汾߰汾 + +ע⣺Remote Data Service δʹ Netscape вԡ + +Ҫͻ Web ҳʹõ͵ HTML дߣ±ܸȫ Microsoft ActiveX Control Pad + +ҪԷҵб̣ʹκ ActiveX/COM DLL-ݹߣ Microsoft Visual Basic 4.0 ߰汾 Microsoft Visual C++(R) + +3.2 װ Microsoft Remote Data Service + +Ҫʹ Remote Data Service Ӧ֤ Remote Data Service ͿͻֱȷװڷͿͻϡ + +3.2.1 Web ϰװ RDS ͻ + +ͨ MDAC (Microsoft Data Access Components) 1.5 װ, Web ϰװ Microsoft Remote Data Service 1.5 汾װҪ + +ע⣺Microsoft Remote Data Service 1.1 ͻ Microsoft Remote Data Service 1.5 ͬRDS 1.1 RDS 1.0 Ӧó Internet Explorer 4.0 ˿ڵ·ҳ RDS 1.5 Ĺܡе RDS 1.0 Ӧó򣬿 1.5 ķһʹ 1.1 ͻԻ Internet Explorer 3.0x 4.0 Ĺܡµĺͽ Internet Explorer 4.0 Ӧó򣬽 RDS 1.5 ķһʹ RDS 1.5 ͻ + +>>>װ Remote Data Service 1.1 ͻ + +1) Web ӵλ http://www.microsoft.com/data/rds/ Remote Data Service World Wide Web վ㡣 +2) ߴеء +3) ӡİװ (mdac_nts.exe for Windows NT Server; mdac_ntw.exe for Windows NT Workstation; mdac_95.exe for Windows 95; mdac_as.exe for Alpha server; mdac_aw.exe for Alpha workstation) ѡԶ尲װװ RDS 1.1 ͻĵ +4) ѭĻϵİװָ + +װ򽫳ļװ <豸>\Program Files\Common Files\System\MSADC Ŀ¼λ Microsoft ٽ ActiveX ݶ OLE DBװ \MSADC Ŀ¼´Ŀ¼ + +Ŀ¼ ˵ +------ ---- +..\MSADC\Doc11 ĵ +..\MSADC\Samples11 ʾļ + +װҲѾ Web ϴ Microsoft Internet Ϣ··ָΪ http://<>/msadcʹԴļϵͳ + +һ˹ Web ϰװ Microsoft Remote Data Serviceȷϰװ 3.3 ڣ + +3.2.2 ڿͻϰװʹ RDS ͻ + +Ϊȷͻ Remote Data Service ʵĿͻ DLLsӦʹ Web ҳϵ RDS.DATACONTROL HTML CODEBASE а mdac11.cab ļ mdac11.cab ļʱڿͻԶװĿͻļԼ Remote Data Service Web ҳĵȡνϢ Web ҳеϸϢ RDS.DATACONTROL ⡣ + + +3.3 ȷϰװ + +ʹ ADCTest.asp ʾӦóȷ Microsoft Remote Data Service İװ + +>>>ʹ ADCTest ȷϰװ +1 Internet Explorer еַ + + http:///MSADC/Samples11/adctest.asp + + ˴ Web + ӦʾԶݷѯҳע⵽Ѿṩ˷ӺͲѯϢ +2 Уťִвѯ + ʾװȷ + +⣬İװָеġRemote Data Service ѽ𡱺͡ RDS Ϣͨ \docs Ŀ¼ default.htm ʰ + +----------- +4. ֧ +----------- + +4.1 Microsoft ֧ϵ + +й Remote Data Service ļ⣬ PC ϵ PC ĵԻòƷֵ֧ĵ绰롣 + +4.2 Microsoft Remote Data Service Web վ + + World Wide Web Ϸ Microsoft Remote Data Service ҳԱĵº͹ؼϢַΪ http://www.microsoft.com/data/rds/ + +4.3 Remote Data Service + +ΪۺϢMicrosoft Ѿ˹飺microsoft.public.ado.rdsӭԼֵ֧ͶºϢMicrosoft ӦӦֱӵ֧֡ϸϢλ http://www.microsoft.com/data/rds/ Remote Data Service Web վ㡣 + +--------------- +5. ע +--------------- + +* ʾӦó +Ҫ RDS ʾӦóеҪܹ Internet intranetͼʹ Sheridan ĵʾ CODEBASE õ Sheridan cab ļͼ Microsoft һ̶ Web վ mfc42.dll ļ޷ʸļ (ssdatb32.ocx) ActiveX ؼѾפڿͻУCODEBASE н cab ļнѹҲͲ⡣ + +װʾӦóʱͼ SQL дûʺ ("adcdemo")ʺѴڣװɹȻʾӦóʱյ¼ʧܡϢԱ༭ʾļԱʺû롣 + +* ʹ FoxPro ݿ + Visual FoxPro ݣʹµ Visual FoxPro ODBC 5.0.0.402 ߰汾Դ http://www.microsoft.com/vfoxpro/vfdownload ȡδʹµ򣬽޷ȷִвѯ + +* ϵͳڴ + Web յϵͳڴĴϢҪôҲWeb ڴ SQL ԴҪ TempDB ռ䴦еIJѯڴڿ壨ϵͳͼ꣬ѡܡѡ󵥻ڴ桱ť鿴ǷжĿӲ̿ռ䡣неε TempDB ռϸϢڡܡ⡰ȷ㹻 TempDB ռ䡱ҵ + +----------- +6. ֪ +----------- + + Remote Data Service 1.1 ֪б + +* Visual Basic Script DLL (vbscript.dll) 1.0.0.806 汾ڴй©DLL2.0.0.1114 ߰汾ĸ°汾˸⡣ Internet Information Server 3.0 ЧҿԴ http://www.microsoft.com/vbscript ء + +* Visual Basic 5.0 б Internet Explorer 4.0 е combo ؼʹ RDS ʱӦʱڿؼ Ϊб combo ListField ԡʱ VBScript ListField ԣݽؼˣӦ·ʽʹ HTML 룺 + + + + ... + + +µ VBScript 룺 + + Combo1.ListField="ColName" + +* RDS ҳжݽ˸Ķδȡύĵ½һҳ򵱷 RDS ҳʱܻõδ֪󡱵Ϣҳʱ RDS.DATACONTROL ˢ·⡣ + +* װ Microsoft Internet Explorer 3.02 汾ļ״μʾҳʱ޷ػյδ֪ (0x80020009)Ϣˢ¡ť⡣ diff --git a/cadVb/SHARED/ODBC/MTXOCI.DLL b/cadVb/SHARED/ODBC/MTXOCI.DLL new file mode 100644 index 0000000..2ecbc38 Binary files /dev/null and b/cadVb/SHARED/ODBC/MTXOCI.DLL differ diff --git a/cadVb/SHARED/OLEDB/DBMSSHRN.DLL b/cadVb/SHARED/OLEDB/DBMSSHRN.DLL new file mode 100644 index 0000000..8034d85 Binary files /dev/null and b/cadVb/SHARED/OLEDB/DBMSSHRN.DLL differ diff --git a/cadVb/SHARED/OLEDB/JOLTREAD.TXT b/cadVb/SHARED/OLEDB/JOLTREAD.TXT new file mode 100644 index 0000000..4de33a5 --- /dev/null +++ b/cadVb/SHARED/OLEDB/JOLTREAD.TXT @@ -0,0 +1,118 @@ +---------------------------------------------------------- +Microsoft(R) OLE DB Provider for Jet version 3.52 ļ +---------------------------------------------------------- + +(c) 1998 Microsoft CorporationȨ + +ĵṩ Microsoft OLE DB Provider for Jet ĵûа»Ϣ + +---- +Ŀ¼ +---- + +1. Ʒ˵ + +2. + +3. ˵ + +4. ֪Ĵƺ͹ + +----------- +1. Ʒ˵ +----------- +Microsoft OLE DB Provider for Jet ݵı OLE DB ṩߣ Microsoft Access ʹõ .mdb ļ +ʽšʹñ OLE DB ṩߣԲ Microsoft Access ODBC Driver д Microsoft Access +ݿеݡ + +--------- +2. +--------- +Microsoft OLE DB Provider for Jet °汾׼ʹѯвйص ANSI ׼﷨ɰṩֻ֧ +ɷеIJɵ Microsoft Jet-רò﷨вǿѡ + +磺parameters parm1 text; select * from Table1 WHERE col1 = [parm1]; + +ʺš?ʱ°ṩҲ֧ ANSI ﷨磺...WHERE col1 = ? + +° Microsoft OLE DB Provider for Jet ׼ ANSI ﷨ͨ% ͡_ Jet-ר﷨ͨ +* ͡?磬һѯҪ󷵻ʼĸΪAеݡھɰ汾Уд +Ϊ...WHERE col1 LIKE("A*")°Ϊ...WHERE col1 LIKE("A%")ע⣬ѯʹþ +ġ ANSI ׼﷨ٷͬм + +----------- +3. ˵ +----------- +Ԥȴ˷ Microsoft Access .mdb ļ OLE DB ӦóӦóʹõ Microsoft Access +ODBC DriverȻڿ Microsoft OLE DB Provider for the Microsoft Access Jet ݿ +ЧӦó + + Microsoft OLE DB Provider for Jet ṩԣڷ Microsoft Access ݿļʱ· +ݿӡ(ODBC) 㡣ζҪԴ (DSN) ļODBC DSN Դӳ䵽 +ݿ + +Ҫ Microsoft Access ݿ⣬ijԤȴ DSN磬ý Microsoft +Access ݿӣ + + cnnConn = Server.CreateObject("ADODB.Connection") +cnnConn.Open "DSN=PayRollData;UID=SnrAccnt;pwd=Accnt1" + +Ȼʹ Microsoft OLE DB Provider for Jetֱӷ Microsoft Access ݿļд +Ӳ漰 DSN + +ADOConnection.Provider = "Microsoft.JET.OLEDB.3.51" +ADOConnection.Properties("user id") = "admin" +ADOConnection.Properties("password") = "" +ADOConnection.Properties("data source") = "d:\payroll\raises.mdb" +ADOConnection.Open + +֧ʹ Microsoft Access ODBC Driver ӦóȻѡִӦó Microsoft Access +ODBC Driver ת Microsoft OLE DB Provider for Jet + +ͨ Microsoft OLE DB Provider for Jet Ҫʰȫݿ⣬ܱеĸϢҪָ +ݿ루û룩Ҫ ADO ӶʾԡJet OLEDB:Database Password +һҪָһϵͳݿ⣬ӦʹáJet OLEDB:System database + +ע⣬Microsoft OLE DB Provider for Jet дݿĬϷʽΪֻʽ .mdb ļֻļ +ϵͳУʹĬôݿIJʧܡֻֻʽ´Щݿ⡣ + +----------------------------- +4. ֪Ĵƺ͹ +----------------------------- +ѡתӦó˽ṩ߷ʷ֮IJͬԡرָ° Microsoft OLE DB +Provider for Jet ֧ԣ + +* ODBC ΪڲָĹ淶﷨ +* ͨ Microsoft Jet ɰװ ISAMs ݿļDZ Microsoft Jet ݿ⣨磺Excel +dBaseText ȣ +* 洢ѯʱҲ漰洢 + +ɰװ ISAM ֧ + +Ŀǰвֱ֧ʹ Microsoft OLE DB Provider for Jet DZ Jet ݿݡ +ӦóⲿݣܹӦüʹ Microsoft OLE DB Provider for ODBC dataֱһ +Microsoft OLE DB Provider for Jet data 汾ṩ߽ MDAC 2.1 Ч + +洢֧ + + Access д Microsoft OLE DB Provider for Jet ʹõĴ洢 QuerydefsУû +ֱӴ洢ij + + +г Microsoft OLE DB Provider for Jet 3.52 ֪ + +ı䴦ݹʱIRowsetUpdate::GetOriginalData ²ʱʧܡ +-------------------------------------------------------------------- +ݹҵĸıδʱIRowsetUpdate::GetOriginalData ²ʱʧܡ²еԭʼֵ +ʱJet 3.5 Engine дˣOLE DB ṩִ߲֧˺ + + JET ı䡰мԡ⡣ +---------------------------- + Jet 3.52ΪǿƯ·ӳмʵԣԸıмԤԡ磬ʹ + ICommand::SetProperties IOpenRowset::OpenRowset DBPROP_BOOKMARK Ϊ VT_FALSE +DBPROPOPTIONS_REQUIRED һ𣩣Ȼȡʵʴǩмǿ Jet мͲJet Բ +ͬԷмڷмʱȫʧܡ + +ʵЧһЩ OLEDB API ضϢ磬IColumnsInfo::GetColumnsInfo ܷز +ǩĿ + diff --git a/cadVb/SHARED/OLEDB/MSDADC.DLL b/cadVb/SHARED/OLEDB/MSDADC.DLL new file mode 100644 index 0000000..8111f84 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDADC.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDAENUM.DLL b/cadVb/SHARED/OLEDB/MSDAENUM.DLL new file mode 100644 index 0000000..852421c Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDAENUM.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDAER.DLL b/cadVb/SHARED/OLEDB/MSDAER.DLL new file mode 100644 index 0000000..3093cc3 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDAER.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDAERR.DLL b/cadVb/SHARED/OLEDB/MSDAERR.DLL new file mode 100644 index 0000000..492688b Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDAERR.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDAORA.DLL b/cadVb/SHARED/OLEDB/MSDAORA.DLL new file mode 100644 index 0000000..5fce6be Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDAORA.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDAOSP.DLL b/cadVb/SHARED/OLEDB/MSDAOSP.DLL new file mode 100644 index 0000000..51e83a8 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDAOSP.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDAPS.DLL b/cadVb/SHARED/OLEDB/MSDAPS.DLL new file mode 100644 index 0000000..f4f3355 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDAPS.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDASC.CNT b/cadVb/SHARED/OLEDB/MSDASC.CNT new file mode 100644 index 0000000..eef7b3a --- /dev/null +++ b/cadVb/SHARED/OLEDB/MSDASC.CNT @@ -0,0 +1,14 @@ +1 Ӹ +2 =About_Data_Links@msdasc.hlp +2 OLE DB ṩ=About_OLE_DB_Data_Providers@msdasc.hlp +2 =Creating_a_Data_Link@msdasc.hlp +1 ʹ +2 ʹ=Working_With_Data_Link_Properties@msdasc.hlp +2 "ṩ" ѡ"" Ի=provider_tab@msdasc.hlp +2 "" ѡ"" Ի=Connection_Tab@msdasc.hlp +2 "߼" ѡ"" Ի=Advanced_Tab@msdasc.hlp +2 "" ѡ"" Ի=All_Tab@msdasc.hlp +2 "༭ֵ" Ի=Edit_Property_Value_Dialog_Box@msdasc.hlp +1 +2 =Organizing_Data_Links@msdasc.hlp +2 "ѡ/ļ" Ի=Select_Organize_Data_Link_Dialog_Box@msdasc.hlp diff --git a/cadVb/SHARED/OLEDB/MSDASC.DLL b/cadVb/SHARED/OLEDB/MSDASC.DLL new file mode 100644 index 0000000..4e96747 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDASC.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDASC.HLP b/cadVb/SHARED/OLEDB/MSDASC.HLP new file mode 100644 index 0000000..d455f48 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDASC.HLP differ diff --git a/cadVb/SHARED/OLEDB/MSDASC.TXT b/cadVb/SHARED/OLEDB/MSDASC.TXT new file mode 100644 index 0000000..54e5a94 --- /dev/null +++ b/cadVb/SHARED/OLEDB/MSDASC.TXT @@ -0,0 +1,120 @@ +--------------------------------------------------------- +Microsoft(R) Data Link API version 2.0 ļ +--------------------------------------------------------- + +(c) 1998 Microsoft CorporationȨ + +ĵṩ Microsoft Data Link API ĵûа»Ϣ + +---- +Ŀ¼ +---- + +1. Ʒ˵ + +2. + +3. ˵ + +4. ֪Ĵƺ͹ + +----------- +1. Ʒ˵ +----------- +Microsoft Data Link API Ϊͨûṩ˶͹ OLE DB ԴĽӿڡҲӦóӿ Data Link API +ûӿڡ + +ԽϢ浽ļ (.udl)Ȼͨԡҳ޸ЩļӦóʹЩļ +OLE DB ݴ洢ӡData Link API Ӧóṩѡ񡢼ػ򱣴 .udl ļ + +ִ OLE DB ݴ洢رʱӦóʹù .udl ļϢͬûӿڣûϢData +Link API Ӧóִ OLE DB ԴϢַ汾ִַԴ󣬻ʹá +Ի༭δʼ OLE DB Դԡ + +--------- +2. +--------- +Microsoft Data Link API MDAC 2.0 Core Component ԡ + +----------- +3. ˵ +----------- + +Ծɰ汾ĸı +-------------- +ѷ Visual Studio(TM) 98 beta 2 а Data Link API ɰ汾һЩı䡣ȷڰװ Data Link API °֮ǰж +ɰ汾δעģ + +* Ծɰ汾ļչĸı +ʹ˷ľɰ汾洢ļļչѸΪ.udl + +* Ծɰ汾ļʽĸı +֧ unicode շİ汾УļļʽѸı䡣˸ıζִľɰļձ롣 +Ҫ±ļ + +* Ծɰ汾IJĸı +ֵ֧ IDBPromptInitialize ӿڵľɰ汾δָ֪Ϊ PromptDataSource һָ롣þɰ +Data Link API IDBPromptInitialize::PromptInitialize ӦóӴ˲ر°档 + +* GetInitString DBPROP_AUTH_PERSISTSENSITIVEAUTHINFO +IDataInitialize::GetInitString һӴԴϵijʼ趨һָIJ +fIncludePasswordܿǷ񷵻ΪʼϢһ֡ע⣬DBPROP_AUTH_PERSISTSENSITIVEAUTHINFO 趨Ϊ VARIANT +FALSEʹ fIncludePassword ЧҲΪ GetInitString һ֡ΪʹΪϢһִ GetInitString +أû뽫 DBPROP_AUTH_PERSISTSENSITIVEAUTHINFO 趨Ϊ VARIANT TRUE + +* IDBPromptInitialize нṩѡ +IDBPromptInitialize::PromptDataSource ӦóΪûʾϢһӦóͨĬϵԴ +PromptDataSource ָ DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTIONԱֹûıָԴһ־ +DBPROMPTOPTIONS_WIZARDSHEET DBPROMPTOPTIONS_PROPERTYSHEETֻ趨һ־Ч * ppDataSource 趨һ־ +ûָһЧԴ󽫷 E_INVALIDARG ĴϢ + +* ͼµİ汾֮ɾ +ǰеİ汾ڷ񲿷һͼ굽壬佨ļһͼѴµİ汾֮ɾ +ļҼһĿ¼ƽ̨ϴӡNew˵ѡMicrosoft Data Linkȿɡ + +----------------------------- +4. ֪Ĵƺ͹ +----------------------------- +Microsoft Data Link API 2.0 ֪£ + +* ĵڡListing Keywords Multiple TimesУ˵ṩ߹ؼбгֶΣʹõһγ +ֵĹؼ֡DzȷġȷĽӦΪṩ߹ؼбгֶΣʹһγֵĹؼ֡ + +* ĵڡOLE DB Initialization Properties: Quick ReferenceУӸ˵Ͷֵ + + DBPROP_INIT_OLEDBSERVICES + Description: OLE DB Services + OLE DB Documented Value Connection String Short Value + ----------------------- ----------------------------- + DBPROPVAL_OS_RESOURCEPOOLING ResourcePooling + DBPROPVAL_OS_TXNENLISTMENT TxnEnlistment + DBPROPVAL_OS_ENABLEALL EnableAll + +* ĵ IDataInitialize::GetDatasource ˵УppDatasource ˵еĵͽӦ޸£ + + *ppDataSource non-null û pwszInitializationString ָṩߣʹ * ppDatasource ָ +Դ + +ԭĵ©ӡno + +* ĵ IDBPromptInitialize::PromptDatasource ˵˵һַʵϣصǴ +ָõԴ + +* ĵĵ˵˵IDBPromptInitialize::PromptDataSource cSourceTypeFilterrgSourceTypeFilter +pwszszzProviderFilter DZԱʹá Ӧѷ OLE DB 2.0 汾˵ִЩ + +* ĵ IDBPromptInitialize::PromptFileName ˵н顰ļԴݵ IDataInitialze Իַ +Դ󡱡ʵ֧ܡΪ .udl ļԴӦó +IDataInitialize::LoadStringFromStorage ļлַȻúЩַ +IDataInitialize::GetDatasource ԻַԴ + +* ĵ IDBPromptInitialize::PromptFilename й dwPromptOptions ˵н顰ָ +DBPROMPTOPTIONS_NODIRECTORYCHANGE ֹûıĿ¼ʵϣʹöԻʱûа취ֹûıĿ¼ +õı־ΪûѡĿ¼ΪĬϵĿ¼һδļԻȻ֡ + +* ĵ "Organizing Data Links" ֣гĽ༭ɾƶݵļҪģӦο +"the Organize Data Links Files dialog box"ȡ "the explorer window" + + +2.0 ƣע⣬ѷ Data Link API 2.0 ִ֧Զṩߡṩ⣬κζ +IDataInitialize::CreateDBInstanceEx ĵöʧܡ \ No newline at end of file diff --git a/cadVb/SHARED/OLEDB/MSDASQL.DLL b/cadVb/SHARED/OLEDB/MSDASQL.DLL new file mode 100644 index 0000000..aab1316 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDASQL.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDASQL.TXT b/cadVb/SHARED/OLEDB/MSDASQL.TXT new file mode 100644 index 0000000..288c849 --- /dev/null +++ b/cadVb/SHARED/OLEDB/MSDASQL.TXT @@ -0,0 +1,50 @@ +--------------------------------------------------------- +Microsoft(R) OLE DB Provider for ODBC ļ +--------------------------------------------------------- + +(c) Microsoft Corporation, 1998 + +ĵṩ Microsoft OLE DB Provider for ODBC ĵûа»Ϣ + +й OLE DB ϸϢ Data Access SDK ļ + +---- +Ŀ¼ +---- +1. Ʒ˵ +2. +3. ˵ +4. ֪ + + +----------- +1. Ʒ˵ +----------- +ODBC Provider κ ODBC ݿⷢͶܵķʡ + +--------- +2. +--------- +ṩߵ 2.0 汾˸״ijݲǿܺͷΧ + +----------- +3. ˵ +----------- +* · +DBPROP_SERVER_NAME һӵԡԴϢԣdzʼԡݳʼӵķơ£ DBPROP_INIT_DATASOURCE ͬ磺 ODBC Դʱָ DSNƣƽӵķʵơ + +* IOpenRowset +ODBC ṩ DBID ݱʱʹţ IOpenRowset СˣҪ ODBC ṩ´򿪱磺ƺչַʱûֹΪţ򵥵ִ SELECT * FROM <ơ>. + +* תɡTrue/False +ΪֵתַʾַTrueFalse OLE DB Specificationʹ ODBC ṩʱ ODBC ֧ SQLDescribeParam OLE DB ûûָͣڲΪַʱODBC ṩ߽תɡ-10Ϊ֤ڲ֧ ODBC ½ȷתOLE DB ûӦֵ SetParameterInfo ָ͡ + +* ODBC DBPROPINITMODE ΪֻʽǿִУ Ƕ ODBC ṩߵĽ飩 + +------------- +4. ֪ +------------- +* Ҫ DBPROP_INIT_LOCATION MSDASQL Microsoft Access ݿһʹá +Գʼ MSDASQL (ODBC Provider) ʱõijʼ DBPROP_INIT_LOCATION ΪЧֵָ DATASOURCE Ϊ Microsoft Access Դᷢ𻵡Ҫ DBPROP_INIT_LOCATION MSDASQL Microsoft Access Դһʹá + + diff --git a/cadVb/SHARED/OLEDB/MSDASQLR.DLL b/cadVb/SHARED/OLEDB/MSDASQLR.DLL new file mode 100644 index 0000000..09676e1 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDASQLR.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDATL2.DLL b/cadVb/SHARED/OLEDB/MSDATL2.DLL new file mode 100644 index 0000000..2ddc074 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDATL2.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSDATT.DLL b/cadVb/SHARED/OLEDB/MSDATT.DLL new file mode 100644 index 0000000..e8d6860 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSDATT.DLL differ diff --git a/cadVb/SHARED/OLEDB/MSJTOR35.DLL b/cadVb/SHARED/OLEDB/MSJTOR35.DLL new file mode 100644 index 0000000..462a855 Binary files /dev/null and b/cadVb/SHARED/OLEDB/MSJTOR35.DLL differ diff --git a/cadVb/SHARED/OLEDB/OLEDB32.DLL b/cadVb/SHARED/OLEDB/OLEDB32.DLL new file mode 100644 index 0000000..47f3e10 Binary files /dev/null and b/cadVb/SHARED/OLEDB/OLEDB32.DLL differ diff --git a/cadVb/SHARED/OLEDB/OLEDB32R.DLL b/cadVb/SHARED/OLEDB/OLEDB32R.DLL new file mode 100644 index 0000000..ef6aa4c Binary files /dev/null and b/cadVb/SHARED/OLEDB/OLEDB32R.DLL differ diff --git a/cadVb/SHARED/OLEDB/OLEDB32X.DLL b/cadVb/SHARED/OLEDB/OLEDB32X.DLL new file mode 100644 index 0000000..a0bf0fb Binary files /dev/null and b/cadVb/SHARED/OLEDB/OLEDB32X.DLL differ diff --git a/cadVb/SHARED/OLEDB/ORAOLEDB.TXT b/cadVb/SHARED/OLEDB/ORAOLEDB.TXT new file mode 100644 index 0000000..21e9c91 --- /dev/null +++ b/cadVb/SHARED/OLEDB/ORAOLEDB.TXT @@ -0,0 +1,72 @@ +---------------------------------------------------------- +Microsoft(R) OLE DB Provider for Oracle, version 2.0 ļ +---------------------------------------------------------- + +(c) 1998 Microsoft CorporationȨ + +ĵṩ Microsoft OLE DB Provider for Oracle ĵûа»Ϣ + +---- +Ŀ¼ +---- + +1. Ʒ˵ + +2. ϵͳҪ + +3. ˵ + +4. ֪ + +----------- +1. Ʒ˵ +----------- +ṩ׼ OLE DB û Oracle Դ Microsoft Data Access 2.0 ԡṩߵİ汾 Data Access +İ汾ƥ䡣 + +----------- +2. ϵͳҪ +----------- +Microsoft OLE DB Provider for Oracle ṩ Oracle ݿ (version 7.3 version 8) ķʣʹ +version 7.3.3.4.0߰汾 version 8.0.4.1.1cOracle Client Software 밲װڿͻ˻ϡṩ߾ + Oracle Client Software version 7.3.3.4.0 SQL*Net version 2.3.3.0.4 һҪԣʹô汾 +õЧ Oracle ͻʱװͻӦ Server ġRequired Supporting FilesǷ +Ҫġ + +й Oracle ƷϸϢ Oracle ĵ + +----------- +3. ˵ +----------- +a) Oracle Դ Microsoft OLE DB Provider ֱӵֹ֧Ҳ֧ʹ IRowsetChange ִем¡ +ʹ IDataInitialize ʾͨ ADO ṩߣService Components ṩӦóҪĸº͹ܡ⣬ṩ +߻ִ֧ SQL  + +b) һЩ£ֵݽ DBTYPE_VARNUMERIC أ OLE DB 2.0 һµ͡رע +Ϊ FLOATNUMBERûоȻΧɼֵлκηΧΪֵ򳬹 38 λֵ״̬ + +c) ֻеõֵݵ IDBSchemaRowset ʱ IDBSchemaRowset::GetRowset ִִСдѡ + +d) Ϊ GetTransaction ı Transaction Unit Of Work NULL磬ӻỰл񲢴е +GetTransactionXACTTRANSINFO е XACTUOW NULL + +------------- +4. ֪ +------------- +a) ṩ߲֧ Microsoft ODBC Driver for Oracle ִе {} 롣 + +b) OLE DB 2.0 IConvertType::CanConvert һµı־ DBCONVERTFLAGS_FROMVARIANTṩ֧־ҲӰ +ͬһʱ̴ CanConvert صֵ + +c) Oracle version 8 һ VARCHAR е󳤶Ǵ 2000 4000 ֽڡOracle 7.3.x Client Software ֧ + 2000 ֽڵIJֵˣʹòֵΪ 2000 ֽµ Client Software һݱ VARCHAR +ֽڵijȴ 2000 ֽڣ ִвIJ롢¡ɾͲѯ ODBC Driver for Oracle OLE DB +Provider for Oracle ʹòIJ롢¡ɾͲѯ£ǽ ORA-01026 Ĵ +ڣOracle ͻŹĿͻ Oracle 8(8.0.4.1.1c ߵİ汾) + +d) ʹ Oracle Provider MTS ֹ֧񣬱밲װļ MTXOCI.DLLļװMicrosoft Visual +Studio(TM) 98װ Back Office(R) Ȼж Back Office(R)´ϵͳɾ MTXOCI.DLLʹ Oracle +Provider MTS ʱ MTXOCI.DLL Żԭ + + + diff --git a/cadVb/SHARED/OLEDB/SIMPDATA.TLB b/cadVb/SHARED/OLEDB/SIMPDATA.TLB new file mode 100644 index 0000000..5468e31 Binary files /dev/null and b/cadVb/SHARED/OLEDB/SIMPDATA.TLB differ diff --git a/cadVb/SHARED/OLEDB/SQLOLEDB.DLL b/cadVb/SHARED/OLEDB/SQLOLEDB.DLL new file mode 100644 index 0000000..19adb12 Binary files /dev/null and b/cadVb/SHARED/OLEDB/SQLOLEDB.DLL differ diff --git a/cadVb/SHARED/OLEDB/SQLOLEDB.TXT b/cadVb/SHARED/OLEDB/SQLOLEDB.TXT new file mode 100644 index 0000000..b54037d --- /dev/null +++ b/cadVb/SHARED/OLEDB/SQLOLEDB.TXT @@ -0,0 +1,75 @@ +------------------------------------------------------ +Microsoft(R) SQL Server OLE DB Provider 7.00.459 ļ +------------------------------------------------------ + +(c) 1998 Microsoft CorporationȨ + +ĵṩ Microsoft SQL Server OLE DB Provider ĵûа»Ϣ + +---- +Ŀ¼ +---- + +1. Ʒ˵ + +2. ˵ + +----------- +1. Ʒ˵ +----------- +SQLOLEDBMicrosoft SQL Server OLE DB ṩߣΪϣһ SQL Server ȡݵûṩ˽ӿڡ + +----------- +2. ˵ +----------- + +2.1 SQLOLEDB ĸı + +ע SQLOLEDB иı䣺 + +* DBPROP_INIT_DATASOURCE ָ SQL Server ķơָݿơ + +* DBPROP_INIT_CATALOG ָʼݿ⡣ + +* ֧ DBPROP_INIT_LOCATION ԡ + +* ֧ DBPROP_AUTH_INTEGRATED ԡ DBPROP_AUTH_INTEGRATED ΪSSPIʹüɰȫá +Ϊֵ BSTR ָ룬ʹ SQL Server ȫá + +* ֧ SSPROP_AUTH_TRUSTEDCONNECTION ԡ + +* ֧ DBPROP_INIT_MODE ṩָԡ + +2.2 +ִһһδִеʱSQLOLEDB һִ + + +* DBPROP_MULTIPLECONNECTIONS Ϊ VARIANT_TRUE +* һмûʹ÷ꡣ +* ûе + +еִеڶ E_FAILûе񣬵 +DBPROP_MULTIPLECONNECTIONS Ϊ VARIANT FALSEִеڶ DB_E_OBJECTOPEN + +ÿһӵ SQL Server ɵڶӣСȷ +ҪҪıһһ + +2.3 +Ϊͨ紫ܣSQLOLEDB ԶϢִ֮ǰ +ICommandWithParameters::GetParameterInfo ICommandPrepare::Prepare SQLOLEDB ԶִУ + +* ֤ ICommandWithParameters::SetParameterInfo ָ͵ȷԡ +* ȡϢָ DBTYPE ӳ䵽ȷIJ SQL ͡ + +Ӧóָ SQL ͲݣӦóյֵܳĴϢijһľ +ʧ + +ΪⷢӦʹӦó + +* ڱд ICommandWithParameters::SetParameterInfo ʱȷ pwszDataSourceType SQL ƥ䡣 +* ڱдʱȷ󶨵 DBTYPE SQL ͬ +* д ICommandWithParameters::GetParameterInfoԱṩ̬ܶػò SQL ͡⽫ +ӵѭг̡ + +2.4 +мʹһ̲Ĺ꣬DBPROP_CHANGEINSERTEDROWS ֻΪ VARIANT_TRUE \ No newline at end of file diff --git a/cadVb/SHARED/OLEDB/SQLSOLDB.HLP b/cadVb/SHARED/OLEDB/SQLSOLDB.HLP new file mode 100644 index 0000000..c7ac289 Binary files /dev/null and b/cadVb/SHARED/OLEDB/SQLSOLDB.HLP differ diff --git a/cadVb/SHARED/TRIEDIT/TRIEDIT.DLL b/cadVb/SHARED/TRIEDIT/TRIEDIT.DLL new file mode 100644 index 0000000..147e06a Binary files /dev/null and b/cadVb/SHARED/TRIEDIT/TRIEDIT.DLL differ diff --git a/cadVb/SMSINST.EXE b/cadVb/SMSINST.EXE new file mode 100644 index 0000000..1c300a7 Binary files /dev/null and b/cadVb/SMSINST.EXE differ diff --git a/cadVb/VB98/ADDSCCUS.DLL b/cadVb/VB98/ADDSCCUS.DLL new file mode 100644 index 0000000..bedc2f5 Binary files /dev/null and b/cadVb/VB98/ADDSCCUS.DLL differ diff --git a/cadVb/VB98/BIBLIO.MDB b/cadVb/VB98/BIBLIO.MDB new file mode 100644 index 0000000..239c81b Binary files /dev/null and b/cadVb/VB98/BIBLIO.MDB differ diff --git a/cadVb/VB98/C2.EXE b/cadVb/VB98/C2.EXE new file mode 100644 index 0000000..98c0547 Binary files /dev/null and b/cadVb/VB98/C2.EXE differ diff --git a/cadVb/VB98/CVPACK.EXE b/cadVb/VB98/CVPACK.EXE new file mode 100644 index 0000000..559c29d Binary files /dev/null and b/cadVb/VB98/CVPACK.EXE differ diff --git a/cadVb/VB98/DATAVIEW.DLL b/cadVb/VB98/DATAVIEW.DLL new file mode 100644 index 0000000..b969acd Binary files /dev/null and b/cadVb/VB98/DATAVIEW.DLL differ diff --git a/cadVb/VB98/LINK.EXE b/cadVb/VB98/LINK.EXE new file mode 100644 index 0000000..165b03a Binary files /dev/null and b/cadVb/VB98/LINK.EXE differ diff --git a/cadVb/VB98/MSDIS110.DLL b/cadVb/VB98/MSDIS110.DLL new file mode 100644 index 0000000..42a3d94 Binary files /dev/null and b/cadVb/VB98/MSDIS110.DLL differ diff --git a/cadVb/VB98/MSPDB60.DLL b/cadVb/VB98/MSPDB60.DLL new file mode 100644 index 0000000..3d05a9b Binary files /dev/null and b/cadVb/VB98/MSPDB60.DLL differ diff --git a/cadVb/VB98/NWIND.MDB b/cadVb/VB98/NWIND.MDB new file mode 100644 index 0000000..dc3f4df Binary files /dev/null and b/cadVb/VB98/NWIND.MDB differ diff --git a/cadVb/VB98/REPVB.DLL b/cadVb/VB98/REPVB.DLL new file mode 100644 index 0000000..d577810 Binary files /dev/null and b/cadVb/VB98/REPVB.DLL differ diff --git a/cadVb/VB98/REPVBRC.DLL b/cadVb/VB98/REPVBRC.DLL new file mode 100644 index 0000000..dcbd574 Binary files /dev/null and b/cadVb/VB98/REPVBRC.DLL differ diff --git a/cadVb/VB98/REPVBTIM.DLL b/cadVb/VB98/REPVBTIM.DLL new file mode 100644 index 0000000..74b605e Binary files /dev/null and b/cadVb/VB98/REPVBTIM.DLL differ diff --git a/cadVb/VB98/RICHED32.DLL b/cadVb/VB98/RICHED32.DLL new file mode 100644 index 0000000..66367f0 Binary files /dev/null and b/cadVb/VB98/RICHED32.DLL differ diff --git a/cadVb/VB98/SCCVBUS.CHI b/cadVb/VB98/SCCVBUS.CHI new file mode 100644 index 0000000..402aceb Binary files /dev/null and b/cadVb/VB98/SCCVBUS.CHI differ diff --git a/cadVb/VB98/SCCVBUS.CHM b/cadVb/VB98/SCCVBUS.CHM new file mode 100644 index 0000000..4b45650 Binary files /dev/null and b/cadVb/VB98/SCCVBUS.CHM differ diff --git a/cadVb/VB98/TEMPLATE/CLASSES/DATACON1.CLS b/cadVb/VB98/TEMPLATE/CLASSES/DATACON1.CLS new file mode 100644 index 0000000..7bc354b --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CLASSES/DATACON1.CLS @@ -0,0 +1,41 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 2 'vbComplexBound + DataSourceBehavior = 0 'vbNone + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "clsComplexDataConsumer" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit +' Ҫ: һ recordset ΪԴ: + +'Private WithEvents RS As ADODB.RecordSet + +Public Property Get DataSource() As DataSource + ' Ҫ: Դ: + + 'Set DataSource = RS.DataSource +End Property +Public Property Set DataSource(ByVal objDataSource As DataSource) + ' Ҫ: Դ: + + 'Set RS.DataSource = objDataSource + 'PropertyChanged "DataSource" +End Property +Public Property Get DataMember() As DataMember + ' Ҫ: ݳԱ: + + 'Set DataMember = RS.DataMember +End Property +Public Property Let DataMember(ByVal DataMember As DataMember) + ' Ҫ: ָһµݳԱ: + + 'Set RS.DataMember = DataMember + 'PropertyChanged "DataMember" +End Property + diff --git a/cadVb/VB98/TEMPLATE/CLASSES/DATASRC1.CLS b/cadVb/VB98/TEMPLATE/CLASSES/DATASRC1.CLS new file mode 100644 index 0000000..bbf1f97 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CLASSES/DATASRC1.CLS @@ -0,0 +1,28 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True + Persistable = 0 'NotPersistable + DataBindingBehavior = 0 'vbNone + DataSourceBehavior = 1 'vbDataSource + MTSTransactionMode = 0 'NotAnMTSObject +END +Attribute VB_Name = "clsDataSource" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit +' Ҫ: ص ADO Recordset : +'Private WithEvents rs As ADODB.Recordset + +Private Sub Class_GetDataMember(DataMember As String, Data As Object) + ' Ҫ: ػ DataMember Ӧ recordset: + + 'Select Case DataMember + 'Case "" ' Default + ' Set Data = Nothing + 'Case Else ' Default + ' Set Data = rs + 'End Select +End Sub + diff --git a/cadVb/VB98/TEMPLATE/CLASSES/VBCLASS.VBZ b/cadVb/VB98/TEMPLATE/CLASSES/VBCLASS.VBZ new file mode 100644 index 0000000..b13b268 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CLASSES/VBCLASS.VBZ @@ -0,0 +1,3 @@ +VBWIZARD 5.0 +Wizard=ClassBuilder6.Wizard + diff --git a/cadVb/VB98/TEMPLATE/CODE/LOADRES.BAS b/cadVb/VB98/TEMPLATE/CODE/LOADRES.BAS new file mode 100644 index 0000000..10d654e --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CODE/LOADRES.BAS @@ -0,0 +1,76 @@ +Attribute VB_Name = "modLoadRes" +' ̽ؼصԴַ +' ڴ洢ڿؼTag еԴID + +' 棬Դַ뵽ؼУ +' Object Property +' Form Caption +' Menu Caption +' TabStrip Caption, ToolTipText +' Toolbar ToolTipText +' ListView ColumnHeader.Text + +Sub LoadResStrings(frm As Form) + On Error Resume Next + + Dim ctl As Control + Dim obj As Object + + 'ôı + If IsNumeric(frm.Tag) Then + frm.Caption = LoadResString(CInt(frm.Tag)) + End If + + 'ÿؼı,ڲ˵ʹ caption + 'Զؼʹ Tag + For Each ctl In frm.Controls + Err.Clear + If TypeName(ctl) = "Menu" Then + If IsNumeric(ctl.Caption) Then + If Err = 0 Then + ctl.Caption = LoadResString(CInt(ctl.Caption)) + End If + End If + ElseIf TypeName(ctl) = "TabStrip" Then + For Each obj In ctl.Tabs + Err.Clear + If IsNumeric(obj.Tag) Then + obj.Caption = LoadResString(CInt(obj.Tag)) + End If + 'ѡʾ + If IsNumeric(obj.ToolTipText) Then + If Err = 0 Then + obj.ToolTipText = LoadResString(CInt(obj.ToolTipText)) + End If + End If + Next + ElseIf TypeName(ctl) = "Toolbar" Then + For Each obj In ctl.Buttons + Err.Clear + If IsNumeric(obj.Tag) Then + obj.ToolTipText = LoadResString(CInt(obj.Tag)) + End If + Next + ElseIf TypeName(ctl) = "ListView" Then + For Each obj In ctl.ColumnHeaders + Err.Clear + If IsNumeric(obj.Tag) Then + obj.Text = LoadResString(CInt(obj.Tag)) + End If + Next + Else + If IsNumeric(ctl.Tag) Then + If Err = 0 Then + ctl.Caption = LoadResString(CInt(ctl.Tag)) + End If + End If + 'ѡʾ + If IsNumeric(ctl.ToolTipText) Then + If Err = 0 Then + ctl.ToolTipText = LoadResString(CInt(ctl.ToolTipText)) + End If + End If + End If + Next + +End Sub diff --git a/cadVb/VB98/TEMPLATE/CODE/REGKEYS.BAS b/cadVb/VB98/TEMPLATE/CODE/REGKEYS.BAS new file mode 100644 index 0000000..d56614c --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CODE/REGKEYS.BAS @@ -0,0 +1,166 @@ +Attribute VB_Name = "RegKeys" +' ģڶдעؼ֡ +' ͬVB ڲעʷ +' ֵַͨдκעؼ֡ + + +Option Explicit +'--------------------------------------------------------------- +'-ע API ... +'--------------------------------------------------------------- +Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long +Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long +Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long +Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long +Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long + +'--------------------------------------------------------------- +'- ע Api ... +'--------------------------------------------------------------- +' Reg Data Types... +Const REG_SZ = 1 ' Unicodeսַ +Const REG_EXPAND_SZ = 2 ' Unicodeսַ +Const REG_DWORD = 4 ' 32-bit + +' עֵ... +Const REG_OPTION_NON_VOLATILE = 0 ' ϵͳʱؼֱ + +' עؼְȫѡ... +Const READ_CONTROL = &H20000 +Const KEY_QUERY_VALUE = &H1 +Const KEY_SET_VALUE = &H2 +Const KEY_CREATE_SUB_KEY = &H4 +Const KEY_ENUMERATE_SUB_KEYS = &H8 +Const KEY_NOTIFY = &H10 +Const KEY_CREATE_LINK = &H20 +Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL +Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL +Const KEY_EXECUTE = KEY_READ +Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL + +' עؼָ... +Const HKEY_CLASSES_ROOT = &H80000000 +Const HKEY_CURRENT_USER = &H80000001 +Const HKEY_LOCAL_MACHINE = &H80000002 +Const HKEY_USERS = &H80000003 +Const HKEY_PERFORMANCE_DATA = &H80000004 + +' ֵ... +Const ERROR_NONE = 0 +Const ERROR_BADKEY = 2 +Const ERROR_ACCESS_DENIED = 8 +Const ERROR_SUCCESS = 0 + +'--------------------------------------------------------------- +'- עȫ... +'--------------------------------------------------------------- +Private Type SECURITY_ATTRIBUTES + nLength As Long + lpSecurityDescriptor As Long + bInheritHandle As Boolean +End Type + +'------------------------------------------------------------------------------------------------- +'sample usage - Debug.Print UpodateKey(HKEY_CLASSES_ROOT, "keyname", "newvalue") +'------------------------------------------------------------------------------------------------- +Public Function UpdateKey(KeyRoot As Long, KeyName As String, SubKeyName As String, SubKeyValue As String) As Boolean + Dim rc As Long ' ش + Dim hKey As Long ' һעؼ + Dim hDepth As Long ' + Dim lpAttr As SECURITY_ATTRIBUTES ' עȫ + + lpAttr.nLength = 50 ' ðȫΪȱʡֵ... + lpAttr.lpSecurityDescriptor = 0 ' ... + lpAttr.bInheritHandle = True ' ... + + '------------------------------------------------------------ + '- /עؼ... + '------------------------------------------------------------ + rc = RegCreateKeyEx(KeyRoot, KeyName, _ + 0, REG_SZ, _ + REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, lpAttr, _ + hKey, hDepth) ' ///KeyRoot//KeyName + + If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError ' ... + + '------------------------------------------------------------ + '- /޸Ĺؼֵ... + '------------------------------------------------------------ + If (SubKeyValue = "") Then SubKeyValue = " " ' ҪRegSetValueEx() Ҫһո... + + ' /޸Ĺؼֵ + rc = RegSetValueEx(hKey, SubKeyName, _ + 0, REG_SZ, _ + SubKeyValue, LenB(StrConv(SubKeyValue, vbFromUnicode))) + + If (rc <> ERROR_SUCCESS) Then GoTo CreateKeyError ' + '------------------------------------------------------------ + '- رעؼ... + '------------------------------------------------------------ + rc = RegCloseKey(hKey) ' رչؼ + + UpdateKey = True ' سɹ + Exit Function ' ˳ +CreateKeyError: + UpdateKey = False ' ô󷵻ش + rc = RegCloseKey(hKey) ' ͼرչؼ +End Function + +'------------------------------------------------------------------------------------------------- +'sample usage - Debug.Print GetKeyValue(HKEY_CLASSES_ROOT, "COMCTL.ListviewCtrl.1\CLSID", "") +'------------------------------------------------------------------------------------------------- +Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String) As String + Dim i As Long ' ѭ + Dim rc As Long ' ش + Dim hKey As Long ' 򿪵עؼ + Dim hDepth As Long ' + Dim sKeyVal As String + Dim lKeyValType As Long ' עؼ + Dim tmpVal As String ' עؼֵʱ洢 + Dim KeyValSize As Long ' עؼֱߴ + + ' KeyRoot {HKEY_LOCAL_MACHINE...} ´עؼ + '------------------------------------------------------------ + rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' עؼ + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' ... + + tmpVal = String$(1024, 0) ' ռ + KeyValSize = 1024 ' DZߴ + + '------------------------------------------------------------ + ' עؼֵֵ... + '------------------------------------------------------------ + rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ + lKeyValType, tmpVal, KeyValSize) ' /ؼֵֵ + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' + + tmpVal = Left$(tmpVal, InStr(tmpVal, Chr(0)) - 1) + + '------------------------------------------------------------ + ' ؼֵת... + '------------------------------------------------------------ + Select Case lKeyValType ' ... + Case REG_SZ, REG_EXPAND_SZ ' ַעؼ + sKeyVal = tmpVal ' ֵַ + Case REG_DWORD ' ֽעؼ + For i = Len(tmpVal) To 1 Step -1 ' תÿһλ + sKeyVal = sKeyVal + Hex(Asc(Mid(tmpVal, i, 1))) ' һַһֵַ + Next + sKeyVal = Format$("&h" + sKeyVal) ' תֽΪַ + End Select + + GetKeyValue = sKeyVal ' ֵ + rc = RegCloseKey(hKey) ' رעؼ + Exit Function ' ˳ + +GetKeyError: ' ... + GetKeyValue = vbNullString ' ÷ֵΪַ + rc = RegCloseKey(hKey) ' رעؼ +End Function + + + diff --git a/cadVb/VB98/TEMPLATE/CONTROLS/LISTBTNS.FRM b/cadVb/VB98/TEMPLATE/CONTROLS/LISTBTNS.FRM new file mode 100644 index 0000000..8537328 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CONTROLS/LISTBTNS.FRM @@ -0,0 +1,166 @@ +VERSION 5.00 +Begin VB.Form frmListButtons + Caption = "Form1" + ClientHeight = 3405 + ClientLeft = 2880 + ClientTop = 3210 + ClientWidth = 3330 + LinkTopic = "Form1" + LockControls = -1 'True + ScaleHeight = 3405 + ScaleWidth = 3330 + Begin VB.ListBox lstItems + DragIcon = "ťб.frx":0000 + Height = 2895 + IntegralHeight = 0 'False + Left = 450 + TabIndex = 4 + Top = 165 + Width = 2280 + End + Begin VB.CommandButton cmdUp + Enabled = 0 'False + Height = 330 + Left = 2790 + Picture = "ťб.frx":0442 + Style = 1 'Graphical + TabIndex = 3 + ToolTipText = "5011" + Top = 1215 + UseMaskColor = -1 'True + Width = 330 + End + Begin VB.CommandButton cmdDown + Enabled = 0 'False + Height = 330 + Left = 2790 + Picture = "ťб.frx":0544 + Style = 1 'Graphical + TabIndex = 2 + ToolTipText = "5012" + Top = 1695 + UseMaskColor = -1 'True + Width = 330 + End + Begin VB.CommandButton cmdDelete + Enabled = 0 'False + Height = 330 + Left = 2790 + Picture = "ťб.frx":0646 + Style = 1 'Graphical + TabIndex = 1 + ToolTipText = "5010" + Top = 735 + UseMaskColor = -1 'True + Width = 330 + End + Begin VB.CommandButton cmdAdd + Height = 330 + Left = 2790 + Picture = "ťб.frx":0748 + Style = 1 'Graphical + TabIndex = 0 + ToolTipText = "5009" + Top = 255 + UseMaskColor = -1 'True + Width = 330 + End +End +Attribute VB_Name = "frmListButtons" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Private Sub cmdAdd_Click() + Dim sTmp As String + sTmp = InputBox("ҪӵĿ") + If Len(sTmp) = 0 Then Exit Sub + lstItems.AddItem sTmp +End Sub + +Private Sub cmdDelete_Click() + If lstItems.ListIndex > -1 Then + If MsgBox("ɾ '" & lstItems.Text & "'?", vbQuestion + vbYesNo) = vbYes Then + lstItems.RemoveItem lstItems.ListIndex + End If + End If +End Sub + +Private Sub cmdUp_Click() + On Error Resume Next + Dim nItem As Integer + + With lstItems + If .ListIndex < 0 Then Exit Sub + nItem = .ListIndex + If nItem = 0 Then Exit Sub 'ܽһĿƶ + 'ƶĿ + .AddItem .Text, nItem - 1 + 'ɾĿ + .RemoveItem nItem + 1 + 'ѡոƶĿ + .Selected(nItem - 1) = True + End With +End Sub + +Private Sub cmdDown_Click() + On Error Resume Next + Dim nItem As Integer + + With lstItems + If .ListIndex < 0 Then Exit Sub + nItem = .ListIndex + If nItem = .ListCount - 1 Then Exit Sub 'ܽĿƶ + 'ƶĿ + .AddItem .Text, nItem + 2 + 'ɾɵĿ + .RemoveItem nItem + 'ѡոƶĿ + .Selected(nItem + 1) = True + End With +End Sub + +Private Sub lstItems_DragDrop(Source As Control, X As Single, Y As Single) + Dim i As Integer + Dim nID As Integer + Dim sTmp As String + + If Source.Name <> "lstItems" Then Exit Sub + If lstItems.ListCount = 0 Then Exit Sub + + With lstItems + i = (Y \ TextHeight("A")) + .TopIndex + If i = .ListIndex Then + 'Լ + Exit Sub + End If + If i > .ListCount - 1 Then i = .ListCount - 1 + nID = .ListIndex + sTmp = .Text + If (nID > -1) Then + sTmp = .Text + .RemoveItem nID + .AddItem sTmp, i + .ListIndex = .NewIndex + End If + End With + SetListButtons +End Sub + +Sub lstItems_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) + If Button = vbLeftButton Then lstItems.Drag +End Sub + +Private Sub lstItems_Click() + SetListButtons +End Sub + +Sub SetListButtons() + Dim i As Integer + i = lstItems.ListIndex + 'ƶť״̬ + cmdUp.Enabled = (i > 0) + cmdDown.Enabled = ((i > -1) And (i < (lstItems.ListCount - 1))) + cmdDelete.Enabled = (i > -1) +End Sub + diff --git a/cadVb/VB98/TEMPLATE/CONTROLS/LISTBTNS.FRX b/cadVb/VB98/TEMPLATE/CONTROLS/LISTBTNS.FRX new file mode 100644 index 0000000..56968a6 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/CONTROLS/LISTBTNS.FRX differ diff --git a/cadVb/VB98/TEMPLATE/CONTROLS/LISTPICK.FRM b/cadVb/VB98/TEMPLATE/CONTROLS/LISTPICK.FRM new file mode 100644 index 0000000..51de915 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CONTROLS/LISTPICK.FRM @@ -0,0 +1,257 @@ +VERSION 5.00 +Begin VB.Form frmListPickerTemplate + Caption = "Form1" + ClientHeight = 1872 + ClientLeft = 1068 + ClientTop = 1668 + ClientWidth = 6420 + LinkTopic = "Form1" + ScaleHeight = 1872 + ScaleWidth = 6420 + Begin VB.CommandButton cmdDown + Height = 435 + Left = 5835 + Picture = "ƶťб.frx":0000 + Style = 1 'Graphical + TabIndex = 7 + Top = 1110 + Width = 435 + End + Begin VB.CommandButton cmdUp + Height = 435 + Left = 5820 + Picture = "ƶťб.frx":0102 + Style = 1 'Graphical + TabIndex = 6 + Top = 525 + Width = 435 + End + Begin VB.CommandButton cmdLeftAll + Caption = "<<" + BeginProperty Font + Name = "" + Size = 9.75 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 336 + Left = 2550 + MaskColor = &H00000000& + TabIndex = 5 + Top = 1440 + Width = 576 + End + Begin VB.CommandButton cmdLeftOne + Caption = "<" + BeginProperty Font + Name = "" + Size = 9.75 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 336 + Left = 2550 + MaskColor = &H00000000& + TabIndex = 4 + Top = 1065 + Width = 576 + End + Begin VB.CommandButton cmdRightAll + Caption = ">>" + BeginProperty Font + Name = "" + Size = 9.75 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 336 + Left = 2550 + MaskColor = &H00000000& + TabIndex = 3 + Top = 690 + Width = 576 + End + Begin VB.CommandButton cmdRightOne + Caption = ">" + BeginProperty Font + Name = "" + Size = 9.75 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 336 + Left = 2550 + MaskColor = &H00000000& + TabIndex = 2 + Top = 315 + Width = 576 + End + Begin VB.ListBox lstSelected + Height = 1392 + Left = 3435 + TabIndex = 1 + Top = 315 + Width = 2220 + End + Begin VB.ListBox lstAll + Height = 1392 + Left = 75 + TabIndex = 0 + Top = 315 + Width = 2220 + End + Begin VB.Label lblSelected + Appearance = 0 'Flat + AutoSize = -1 'True + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "ѡĿ:" + ForeColor = &H80000008& + Height = 195 + Left = 3435 + TabIndex = 9 + Tag = "2407" + Top = 60 + Width = 1095 + End + Begin VB.Label lblAll + Appearance = 0 'Flat + AutoSize = -1 'True + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "Ŀ:" + ForeColor = &H80000008& + Height = 195 + Left = 75 + TabIndex = 8 + Tag = "2406" + Top = 60 + Width = 630 + End +End +Attribute VB_Name = "frmListPickerTemplate" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Private Sub cmdUp_Click() + On Error Resume Next + Dim nItem As Integer + + With lstSelected + If .ListIndex < 0 Then Exit Sub + nItem = .ListIndex + If nItem = 0 Then Exit Sub 'ܽһĿƶ + 'ƶĿ + .AddItem .Text, nItem - 1 + 'ɾɵĿ + .RemoveItem nItem + 1 + 'ѡոձƶĿ + .Selected(nItem - 1) = True + End With +End Sub + +Private Sub cmdDown_Click() + On Error Resume Next + Dim nItem As Integer + + With lstSelected + If .ListIndex < 0 Then Exit Sub + nItem = .ListIndex + If nItem = .ListCount - 1 Then Exit Sub 'ܽĿƶ + 'ƶĿ + .AddItem .Text, nItem + 2 + 'ɾɵĿ + .RemoveItem nItem + 'ѡոձƶĿ + .Selected(nItem + 1) = True + End With +End Sub + +Private Sub cmdRightOne_Click() + On Error Resume Next + Dim i As Integer + + If lstAll.ListCount = 0 Then Exit Sub + + lstSelected.AddItem lstAll.Text + i = lstAll.ListIndex + lstAll.RemoveItem lstAll.ListIndex + If lstAll.ListCount > 0 Then + If i > lstAll.ListCount - 1 Then + lstAll.ListIndex = i - 1 + Else + lstAll.ListIndex = i + End If + End If + lstSelected.ListIndex = lstSelected.NewIndex +End Sub + +Private Sub cmdRightAll_Click() + On Error Resume Next + Dim i As Integer + For i = 0 To lstAll.ListCount - 1 + lstSelected.AddItem lstAll.List(i) + Next + lstAll.Clear + lstSelected.ListIndex = 0 +End Sub + +Private Sub cmdLeftOne_Click() + On Error Resume Next + Dim i As Integer + + If lstSelected.ListCount = 0 Then Exit Sub + + lstAll.AddItem lstSelected.Text + i = lstSelected.ListIndex + lstSelected.RemoveItem i + + lstAll.ListIndex = lstAll.NewIndex + If lstSelected.ListCount > 0 Then + If i > lstSelected.ListCount - 1 Then + lstSelected.ListIndex = i - 1 + Else + lstSelected.ListIndex = i + End If + End If +End Sub + +Private Sub cmdLeftAll_Click() + On Error Resume Next + Dim i As Integer + For i = 0 To lstSelected.ListCount - 1 + lstAll.AddItem lstSelected.List(i) + Next + lstSelected.Clear + lstAll.ListIndex = lstAll.NewIndex + +End Sub + +Private Sub Form_Load() + lstAll.AddItem "aaa" + lstAll.AddItem "bbb" + lstAll.AddItem "ccc" + lstAll.ListIndex = 0 +End Sub + +Private Sub lstAll_DblClick() + cmdRightOne_Click +End Sub + +Private Sub lstSelected_DblClick() + cmdLeftOne_Click +End Sub diff --git a/cadVb/VB98/TEMPLATE/CONTROLS/LISTPICK.FRX b/cadVb/VB98/TEMPLATE/CONTROLS/LISTPICK.FRX new file mode 100644 index 0000000..fc0e22b Binary files /dev/null and b/cadVb/VB98/TEMPLATE/CONTROLS/LISTPICK.FRX differ diff --git a/cadVb/VB98/TEMPLATE/CONTROLS/TVLV.FRM b/cadVb/VB98/TEMPLATE/CONTROLS/TVLV.FRM new file mode 100644 index 0000000..670710f --- /dev/null +++ b/cadVb/VB98/TEMPLATE/CONTROLS/TVLV.FRM @@ -0,0 +1,185 @@ +VERSION 5.00 +Object = "{831FDD16-0C5C-11d2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx" +Begin VB.Form frmTreeviewListviewTemplate + Caption = "ffff" + ClientHeight = 5220 + ClientLeft = -9996 + ClientTop = 2292 + ClientWidth = 5676 + LinkTopic = "Form1" + LockControls = -1 'True + ScaleHeight = 5220 + ScaleWidth = 5676 + Begin VB.PictureBox picTitles + Align = 1 'Align Top + Appearance = 0 'Flat + BorderStyle = 0 'None + ForeColor = &H80000008& + Height = 285 + Left = 0 + ScaleHeight = 462.08 + ScaleMode = 0 'User + ScaleWidth = 5797.147 + TabIndex = 1 + TabStop = 0 'False + Top = 0 + Width = 5676 + Begin VB.Label lblTitle + BorderStyle = 1 'Fixed Single + Caption = " ״ͼ:" + Height = 255 + Index = 0 + Left = 0 + TabIndex = 3 + Top = 15 + Width = 1995 + End + Begin VB.Label lblTitle + BorderStyle = 1 'Fixed Single + Caption = " бͼ:" + Height = 255 + Index = 1 + Left = 2010 + TabIndex = 2 + Top = 15 + Width = 3180 + End + End + Begin VB.PictureBox picSplitter + BackColor = &H00808080& + BorderStyle = 0 'None + FillColor = &H00808080& + Height = 4800 + Left = 5400 + ScaleHeight = 5012.637 + ScaleMode = 0 'User + ScaleWidth = 260 + TabIndex = 0 + Top = 315 + Visible = 0 'False + Width = 156 + End + Begin MSComctlLib.TreeView tvTreeView + Height = 4800 + Left = -15 + TabIndex = 5 + Top = 315 + Width = 2010 + _ExtentX = 3535 + _ExtentY = 8467 + _Version = 393217 + Style = 7 + Appearance = 1 + End + Begin MSComctlLib.ListView lvListView + Height = 4800 + Left = 2040 + TabIndex = 4 + Top = 315 + Width = 3210 + _ExtentX = 5673 + _ExtentY = 8467 + LabelWrap = -1 'True + HideSelection = -1 'True + _Version = 393217 + ForeColor = -2147483640 + BackColor = -2147483643 + Appearance = 1 + NumItems = 0 + End + Begin VB.Image imgSplitter + Height = 4785 + Left = 1965 + MouseIcon = "״ͼбͼ.frx":0000 + MousePointer = 99 'Custom + Top = 315 + Width = 150 + End +End +Attribute VB_Name = "frmTreeviewListviewTemplate" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Const NAME_COLUMN = 0 +Const TYPE_COLUMN = 1 +Const SIZE_COLUMN = 2 +Const DATE_COLUMN = 3 + +Dim mbMoving As Boolean +Const sglSplitLimit = 500 + + +Private Sub Form_Resize() + If Me.Width < 3000 Then Me.Width = 3000 + SizeControls imgSplitter.Left +End Sub + +Private Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) + With imgSplitter + picSplitter.Move .Left, .Top, .Width - 20, .Height - 20 + End With + picSplitter.Visible = True + mbMoving = True +End Sub + +Private Sub imgSplitter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) + Dim sglPos As Single + + If mbMoving Then + sglPos = X + imgSplitter.Left + If sglPos < sglSplitLimit Then + picSplitter.Left = sglSplitLimit + ElseIf sglPos > Me.Width - sglSplitLimit Then + picSplitter.Left = Me.Width - sglSplitLimit + Else + picSplitter.Left = sglPos + End If + End If +End Sub +Private Sub imgSplitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) + SizeControls picSplitter.Left + picSplitter.Visible = False + mbMoving = False +End Sub + +Sub SizeControls(X As Single) + On Error Resume Next + + 'set the width + If X < 1500 Then X = 1500 + If X > (Me.Width - 1500) Then X = Me.Width - 1500 + tvTreeView.Width = X + imgSplitter.Left = X + lvListView.Left = X + 40 + lvListView.Width = Me.Width - (tvTreeView.Width + 140) + lblTitle(0).Width = tvTreeView.Width + lblTitle(1).Left = lvListView.Left + 20 + lblTitle(1).Width = lvListView.Width - 40 + + 'set the top +' If tbToolBar.Visible Then +' tvTreeView.Top = tbToolBar.Height + picTitles.Height +' Else + tvTreeView.Top = picTitles.Height +' End If + lvListView.Top = tvTreeView.Top + + 'set the height +' If sbStatusBar.Visible Then +' tvTreeView.Height = Me.ScaleHeight - (picTitles.Top + picTitles.Height + sbStatusBar.Height) +' Else + tvTreeView.Height = Me.ScaleHeight - (picTitles.Top + picTitles.Height) ' + h) +' End If + + lvListView.Height = tvTreeView.Height + imgSplitter.Top = tvTreeView.Top + imgSplitter.Height = tvTreeView.Height +End Sub + +Private Sub tvTreeView_DragDrop(Source As Control, X As Single, Y As Single) + If Source = imgSplitter Then + SizeControls X + End If +End Sub diff --git a/cadVb/VB98/TEMPLATE/CONTROLS/TVLV.FRX b/cadVb/VB98/TEMPLATE/CONTROLS/TVLV.FRX new file mode 100644 index 0000000..324c1b9 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/CONTROLS/TVLV.FRX differ diff --git a/cadVb/VB98/TEMPLATE/FORMS/ABOUTB.FRX b/cadVb/VB98/TEMPLATE/FORMS/ABOUTB.FRX new file mode 100644 index 0000000..51517f9 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/FORMS/ABOUTB.FRX differ diff --git a/cadVb/VB98/TEMPLATE/FORMS/ABTDLG.FRM b/cadVb/VB98/TEMPLATE/FORMS/ABTDLG.FRM new file mode 100644 index 0000000..88c8524 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/ABTDLG.FRM @@ -0,0 +1,233 @@ +VERSION 5.00 +Begin VB.Form frmAbout + BorderStyle = 3 'Fixed Dialog + Caption = "ҵӦó" + ClientHeight = 3555 + ClientLeft = 2340 + ClientTop = 1935 + ClientWidth = 5730 + ClipControls = 0 'False + LinkTopic = "Form2" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 2453.724 + ScaleMode = 0 'User + ScaleWidth = 5380.766 + ShowInTaskbar = 0 'False + Begin VB.PictureBox picIcon + AutoSize = -1 'True + ClipControls = 0 'False + Height = 540 + Left = 240 + Picture = "ڡԻ.frx":0000 + ScaleHeight = 337.12 + ScaleMode = 0 'User + ScaleWidth = 337.12 + TabIndex = 1 + Top = 240 + Width = 540 + End + Begin VB.CommandButton cmdOK + Cancel = -1 'True + Caption = "ȷ" + Default = -1 'True + Height = 345 + Left = 4125 + TabIndex = 0 + Top = 2625 + Width = 1500 + End + Begin VB.CommandButton cmdSysInfo + Caption = "ϵͳϢ(&S)..." + Height = 345 + Left = 4140 + TabIndex = 2 + Top = 3075 + Width = 1485 + End + Begin VB.Line Line1 + BorderColor = &H00808080& + BorderStyle = 6 'Inside Solid + Index = 1 + X1 = 84.515 + X2 = 5309.398 + Y1 = 1687.583 + Y2 = 1687.583 + End + Begin VB.Label lblDescription + Caption = "Ӧó" + ForeColor = &H00000000& + Height = 1170 + Left = 1050 + TabIndex = 3 + Top = 1125 + Width = 3885 + End + Begin VB.Label lblTitle + Caption = "Ӧó" + ForeColor = &H00000000& + Height = 480 + Left = 1050 + TabIndex = 5 + Top = 240 + Width = 3885 + End + Begin VB.Line Line1 + BorderColor = &H00FFFFFF& + BorderWidth = 2 + Index = 0 + X1 = 98.6 + X2 = 5309.398 + Y1 = 1697.936 + Y2 = 1697.936 + End + Begin VB.Label lblVersion + Caption = "汾" + Height = 225 + Left = 1050 + TabIndex = 6 + Top = 780 + Width = 3885 + End + Begin VB.Label lblDisclaimer + Caption = ": ..." + ForeColor = &H00000000& + Height = 825 + Left = 255 + TabIndex = 4 + Top = 2625 + Width = 3630 + End +End +Attribute VB_Name = "frmAbout" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +' עؼְȫѡ... +Const READ_CONTROL = &H20000 +Const KEY_QUERY_VALUE = &H1 +Const KEY_SET_VALUE = &H2 +Const KEY_CREATE_SUB_KEY = &H4 +Const KEY_ENUMERATE_SUB_KEYS = &H8 +Const KEY_NOTIFY = &H10 +Const KEY_CREATE_LINK = &H20 +Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL + +' עؼ ROOT ... +Const HKEY_LOCAL_MACHINE = &H80000002 +Const ERROR_SUCCESS = 0 +Const REG_SZ = 1 ' Ŀյսַ +Const REG_DWORD = 4 ' 32λ + +Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location" +Const gREGVALSYSINFOLOC = "MSINFO" +Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO" +Const gREGVALSYSINFO = "PATH" + +Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long +Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long +Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long + + +Private Sub cmdSysInfo_Click() + Call StartSysInfo +End Sub + +Private Sub cmdOK_Click() + Unload Me +End Sub + +Private Sub Form_Load() + Me.Caption = " " & App.Title + lblVersion.Caption = "汾 " & App.Major & "." & App.Minor & "." & App.Revision + lblTitle.Caption = App.Title +End Sub + +Public Sub StartSysInfo() + On Error GoTo SysInfoErr + + Dim rc As Long + Dim SysInfoPath As String + + ' ͼעлϵͳϢ·... + If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then + ' ͼעлϵͳϢ·... + ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then + ' ֪32λļ汾Чλ + If (Dir(SysInfoPath & "\MSINFO32.EXE") <> "") Then + SysInfoPath = SysInfoPath & "\MSINFO32.EXE" + + ' - ļܱҵ... + Else + GoTo SysInfoErr + End If + ' - עӦĿܱҵ... + Else + GoTo SysInfoErr + End If + + Call Shell(SysInfoPath, vbNormalFocus) + + Exit Sub +SysInfoErr: + MsgBox "ʱϵͳϢ", vbOKOnly +End Sub + +Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean + Dim i As Long ' ѭ + Dim rc As Long ' ش + Dim hKey As Long ' 򿪵עؼ־ + Dim hDepth As Long ' + Dim KeyValType As Long ' עؼ + Dim tmpVal As String ' עؼֵʱ洢 + Dim KeyValSize As Long ' עؼԱijߴ + '------------------------------------------------------------ + ' {HKEY_LOCAL_MACHINE...} µ RegKey + '------------------------------------------------------------ + rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' עؼ + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' ... + + tmpVal = String$(1024, 0) ' ռ + KeyValSize = 1024 ' DZߴ + + '------------------------------------------------------------ + ' עؼֵֵ... + '------------------------------------------------------------ + rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ + KeyValType, tmpVal, KeyValSize) ' /ؼֵ + + If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' + + If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then ' Win95 ӳսַ... + tmpVal = Left(tmpVal, KeyValSize - 1) ' Null ҵ,ַз + Else ' WinNT ûпսַ... + tmpVal = Left(tmpVal, KeyValSize) ' Null ûбҵ, ַ + End If + '------------------------------------------------------------ + ' תĹؼֵֵ... + '------------------------------------------------------------ + Select Case KeyValType ' ... + Case REG_SZ ' ַעؼ + KeyVal = tmpVal ' ֵַ + Case REG_DWORD ' ֽڵעؼ + For i = Len(tmpVal) To 1 Step -1 ' ÿλת + KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1))) ' ֵַ By Char + Next + KeyVal = Format$("&h" + KeyVal) ' תֽڵַΪַ + End Select + + GetKeyValue = True ' سɹ + rc = RegCloseKey(hKey) ' رעؼ + Exit Function ' ˳ + +GetKeyError: ' ... + KeyVal = "" ' ÷ֵַ + GetKeyValue = False ' ʧ + rc = RegCloseKey(hKey) ' رעؼ +End Function diff --git a/cadVb/VB98/TEMPLATE/FORMS/BROWSER.FRM b/cadVb/VB98/TEMPLATE/FORMS/BROWSER.FRM new file mode 100644 index 0000000..a095e78 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/BROWSER.FRM @@ -0,0 +1,259 @@ +VERSION 5.00 +Object = "{831FDD16-0C5C-11d2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx" +Object = "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0"; "shdocvw.dll" +Begin VB.Form frmBrowser + ClientHeight = 5130 + ClientLeft = 3060 + ClientTop = 3345 + ClientWidth = 6540 + LinkTopic = "Form1" + MDIChild = -1 'True + ScaleHeight = 5130 + ScaleWidth = 6540 + ShowInTaskbar = 0 'False + Begin MSComctlLib.Toolbar tbToolBar + Align = 1 'Align Top + Height = 540 + Left = 0 + TabIndex = 3 + Top = 0 + Width = 6540 + _ExtentX = 11536 + _ExtentY = 953 + ButtonWidth = 820 + ButtonHeight = 794 + Appearance = 1 + ImageList = "imlIcons" + _Version = 393216 + BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} + NumButtons = 6 + BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} + Key = "Back" + Object.ToolTipText = "" + ImageIndex = 1 + EndProperty + BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} + Key = "Forward" + Object.ToolTipText = "ǰ" + ImageIndex = 2 + EndProperty + BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} + Key = "Stop" + Object.ToolTipText = "ֹͣ" + ImageIndex = 3 + EndProperty + BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} + Key = "Refresh" + Object.ToolTipText = "ˢ" + ImageIndex = 4 + EndProperty + BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} + Key = "Home" + Object.ToolTipText = "ҳ" + ImageIndex = 5 + EndProperty + BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} + Key = "Search" + Object.ToolTipText = "" + ImageIndex = 6 + EndProperty + EndProperty + End + Begin SHDocVwCtl.WebBrowser brwWebBrowser + Height = 3734 + Left = 50 + TabIndex = 0 + Top = 1215 + Width = 5393 + ExtentX = 9525 + ExtentY = 6588 + ViewMode = 1 + Offline = 0 + Silent = 0 + RegisterAsBrowser= 0 + RegisterAsDropTarget= 0 + AutoArrange = -1 'True + NoClientEdge = -1 'True + AlignLeft = 0 'False + ViewID = "{0057D0E0-3573-11CF-AE69-08002B2E1262}" + Location = "" + End + Begin VB.Timer timTimer + Enabled = 0 'False + Interval = 5 + Left = 5880 + Top = 1500 + End + Begin VB.PictureBox picAddress + Align = 1 'Align Top + BorderStyle = 0 'None + Height = 675 + Left = 0 + ScaleHeight = 675 + ScaleWidth = 6540 + TabIndex = 4 + TabStop = 0 'False + Top = 540 + Width = 6540 + Begin VB.ComboBox cboAddress + Height = 315 + Left = 45 + TabIndex = 2 + Text = "!" + Top = 300 + Width = 3795 + End + Begin VB.Label lblAddress + Caption = "ַ(&A):" + Height = 255 + Left = 45 + TabIndex = 1 + Tag = "&Address:" + Top = 60 + Width = 3075 + End + End + Begin MSComctlLib.ImageList imlIcons + Left = 2670 + Top = 2325 + _ExtentX = 1005 + _ExtentY = 1005 + BackColor = -2147483643 + ImageWidth = 24 + ImageHeight = 24 + MaskColor = 12632256 + _Version = 393216 + BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} + NumListImages = 6 + BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} + Picture = "Web .frx":0000 + Key = "" + EndProperty + BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} + Picture = "Web .frx":02E2 + Key = "" + EndProperty + BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} + Picture = "Web .frx":05C4 + Key = "" + EndProperty + BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} + Picture = "Web .frx":08A6 + Key = "" + EndProperty + BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} + Picture = "Web .frx":0B88 + Key = "" + EndProperty + BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} + Picture = "Web .frx":0E6A + Key = "" + EndProperty + EndProperty + End +End +Attribute VB_Name = "frmBrowser" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Public StartingAddress As String +Dim mbDontNavigateNow As Boolean +Private Sub Form_Load() + On Error Resume Next + Me.Show + tbToolBar.Refresh + Form_Resize + + cboAddress.Move 50, lblAddress.Top + lblAddress.Height + 15 + + If Len(StartingAddress) > 0 Then + cboAddress.Text = StartingAddress + cboAddress.AddItem cboAddress.Text + 'ͼַ + timTimer.Enabled = True + brwWebBrowser.Navigate StartingAddress + End If + +End Sub + + + +Private Sub brwWebBrowser_DownloadComplete() + On Error Resume Next + Me.Caption = brwWebBrowser.LocationName +End Sub + +Private Sub brwWebBrowser_NavigateComplete(ByVal URL As String) + Dim i As Integer + Dim bFound As Boolean + Me.Caption = brwWebBrowser.LocationName + For i = 0 To cboAddress.ListCount - 1 + If cboAddress.List(i) = brwWebBrowser.LocationURL Then + bFound = True + Exit For + End If + Next i + mbDontNavigateNow = True + If bFound Then + cboAddress.RemoveItem i + End If + cboAddress.AddItem brwWebBrowser.LocationURL, 0 + cboAddress.ListIndex = 0 + mbDontNavigateNow = False +End Sub + +Private Sub cboAddress_Click() + If mbDontNavigateNow Then Exit Sub + timTimer.Enabled = True + brwWebBrowser.Navigate cboAddress.Text +End Sub + +Private Sub cboAddress_KeyPress(KeyAscii As Integer) + On Error Resume Next + If KeyAscii = vbKeyReturn Then + cboAddress_Click + End If +End Sub + +Private Sub Form_Resize() + cboAddress.Width = Me.ScaleWidth - 100 + brwWebBrowser.Width = Me.ScaleWidth - 100 + brwWebBrowser.Height = Me.ScaleHeight - (picAddress.Top + picAddress.Height) - 100 +End Sub + +Private Sub timTimer_Timer() + If brwWebBrowser.Busy = False Then + timTimer.Enabled = False + Me.Caption = brwWebBrowser.LocationName + Else + Me.Caption = "ڹ..." + End If +End Sub + +Private Sub tbToolBar_ButtonClick(ByVal Button As Button) + On Error Resume Next + + timTimer.Enabled = True + + Select Case Button.Key + Case "Back" + brwWebBrowser.GoBack + Case "Forward" + brwWebBrowser.GoForward + Case "Refresh" + brwWebBrowser.Refresh + Case "Home" + brwWebBrowser.GoHome + Case "Search" + brwWebBrowser.GoSearch + Case "Stop" + timTimer.Enabled = False + brwWebBrowser.Stop + Me.Caption = brwWebBrowser.LocationName + End Select + +End Sub + diff --git a/cadVb/VB98/TEMPLATE/FORMS/BROWSER.FRX b/cadVb/VB98/TEMPLATE/FORMS/BROWSER.FRX new file mode 100644 index 0000000..5b39176 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/FORMS/BROWSER.FRX differ diff --git a/cadVb/VB98/TEMPLATE/FORMS/DIALOG.FRM b/cadVb/VB98/TEMPLATE/FORMS/DIALOG.FRM new file mode 100644 index 0000000..7c2711e --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/DIALOG.FRM @@ -0,0 +1,42 @@ +VERSION 5.00 +Begin VB.Form Dialog + BorderStyle = 3 'Fixed Dialog + Caption = "Ի" + ClientHeight = 3195 + ClientLeft = 2760 + ClientTop = 3750 + ClientWidth = 6030 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3195 + ScaleWidth = 6030 + ShowInTaskbar = 0 'False + Begin VB.CommandButton CancelButton + Caption = "ȡ" + Height = 375 + Left = 4680 + TabIndex = 1 + Top = 600 + Width = 1215 + End + Begin VB.CommandButton OKButton + Caption = "ȷ" + Height = 375 + Left = 4680 + TabIndex = 0 + Top = 120 + Width = 1215 + End +End +Attribute VB_Name = "Dialog" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Option Explicit + +Private Sub OKButton_Click() + +End Sub diff --git a/cadVb/VB98/TEMPLATE/FORMS/FRMTIP.FRX b/cadVb/VB98/TEMPLATE/FORMS/FRMTIP.FRX new file mode 100644 index 0000000..9f94b2a Binary files /dev/null and b/cadVb/VB98/TEMPLATE/FORMS/FRMTIP.FRX differ diff --git a/cadVb/VB98/TEMPLATE/FORMS/LOGINDLG.FRM b/cadVb/VB98/TEMPLATE/FORMS/LOGINDLG.FRM new file mode 100644 index 0000000..3732774 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/LOGINDLG.FRM @@ -0,0 +1,99 @@ +VERSION 5.00 +Begin VB.Form frmLogin + BorderStyle = 3 'Fixed Dialog + Caption = "¼" + ClientHeight = 1545 + ClientLeft = 2835 + ClientTop = 3480 + ClientWidth = 3750 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 912.837 + ScaleMode = 0 'User + ScaleWidth = 3521.047 + ShowInTaskbar = 0 'False + StartUpPosition = 2 'Ļ + Begin VB.TextBox txtUserName + Height = 345 + Left = 1290 + TabIndex = 1 + Top = 135 + Width = 2325 + End + Begin VB.CommandButton cmdOK + Caption = "ȷ" + Default = -1 'True + Height = 390 + Left = 495 + TabIndex = 4 + Top = 1020 + Width = 1140 + End + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "ȡ" + Height = 390 + Left = 2100 + TabIndex = 5 + Top = 1020 + Width = 1140 + End + Begin VB.TextBox txtPassword + Height = 345 + IMEMode = 3 'DISABLE + Left = 1290 + PasswordChar = "*" + TabIndex = 3 + Top = 525 + Width = 2325 + End + Begin VB.Label lblLabels + Caption = "û(&U):" + Height = 270 + Index = 0 + Left = 105 + TabIndex = 0 + Top = 150 + Width = 1080 + End + Begin VB.Label lblLabels + Caption = "(&P):" + Height = 270 + Index = 1 + Left = 105 + TabIndex = 2 + Top = 540 + Width = 1080 + End +End +Attribute VB_Name = "frmLogin" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Public LoginSucceeded As Boolean + +Private Sub cmdCancel_Click() + 'ȫֱΪ false + 'ʾʧܵĵ¼ + LoginSucceeded = False + Me.Hide +End Sub + +Private Sub cmdOK_Click() + 'ȷ + If txtPassword = "password" Then + 'ﴫ + 'ɹ calling + 'ȫֱʱ׵ + LoginSucceeded = True + Me.Hide + Else + MsgBox "Ч룬!", , "¼" + txtPassword.SetFocus + SendKeys "{Home}+{End}" + End If +End Sub diff --git a/cadVb/VB98/TEMPLATE/FORMS/ODBCLGIN.FRM b/cadVb/VB98/TEMPLATE/FORMS/ODBCLGIN.FRM new file mode 100644 index 0000000..7ee28f3 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/ODBCLGIN.FRM @@ -0,0 +1,267 @@ +VERSION 5.00 +Begin VB.Form frmODBCLogon + BorderStyle = 3 'Fixed Dialog + Caption = "ODBC ¼" + ClientHeight = 3180 + ClientLeft = 2850 + ClientTop = 1755 + ClientWidth = 4470 + ControlBox = 0 'False + Icon = "ODBC ¼.frx":0000 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3180 + ScaleWidth = 4470 + ShowInTaskbar = 0 'False + StartUpPosition = 2 'Ļ + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "ȡ" + Height = 450 + Left = 2520 + TabIndex = 13 + Top = 2655 + Width = 1440 + End + Begin VB.CommandButton cmdOK + Caption = "ȷ(&O)" + Height = 450 + Left = 915 + TabIndex = 12 + Top = 2655 + Width = 1440 + End + Begin VB.Frame fraStep3 + Caption = "ֵ" + Height = 2415 + Index = 0 + Left = 120 + TabIndex = 14 + Top = 120 + Width = 4230 + Begin VB.TextBox txtUID + Height = 300 + Left = 1125 + TabIndex = 3 + Top = 600 + Width = 3015 + End + Begin VB.TextBox txtPWD + Height = 300 + Left = 1125 + TabIndex = 5 + Top = 930 + Width = 3015 + End + Begin VB.TextBox txtDatabase + Height = 300 + Left = 1125 + TabIndex = 7 + Top = 1260 + Width = 3015 + End + Begin VB.ComboBox cboDSNList + Height = 315 + ItemData = "ODBC ¼.frx":000C + Left = 1125 + List = "ODBC ¼.frx":000E + Sorted = -1 'True + Style = 2 'Dropdown List + TabIndex = 1 + Top = 240 + Width = 3000 + End + Begin VB.TextBox txtServer + Enabled = 0 'False + Height = 330 + Left = 1125 + TabIndex = 11 + Top = 1935 + Width = 3015 + End + Begin VB.ComboBox cboDrivers + Enabled = 0 'False + Height = 315 + Left = 1125 + Sorted = -1 'True + Style = 2 'Dropdown List + TabIndex = 9 + Top = 1590 + Width = 3015 + End + Begin VB.Label lblStep3 + AutoSize = -1 'True + Caption = "&DSN:" + Height = 195 + Index = 1 + Left = 135 + TabIndex = 0 + Top = 285 + Width = 390 + End + Begin VB.Label lblStep3 + AutoSize = -1 'True + Caption = "&UID:" + Height = 195 + Index = 2 + Left = 135 + TabIndex = 2 + Top = 630 + Width = 330 + End + Begin VB.Label lblStep3 + AutoSize = -1 'True + Caption = "(&P):" + Height = 195 + Index = 3 + Left = 135 + TabIndex = 4 + Top = 975 + Width = 735 + End + Begin VB.Label lblStep3 + AutoSize = -1 'True + Caption = "ݿ(&B):" + Height = 195 + Index = 4 + Left = 135 + TabIndex = 6 + Top = 1320 + Width = 735 + End + Begin VB.Label lblStep3 + AutoSize = -1 'True + Caption = "(&V):" + Height = 195 + Index = 5 + Left = 135 + TabIndex = 8 + Top = 1665 + Width = 465 + End + Begin VB.Label lblStep3 + AutoSize = -1 'True + Caption = "(&S):" + Height = 195 + Index = 6 + Left = 135 + TabIndex = 10 + Top = 2010 + Width = 510 + End + End +End +Attribute VB_Name = "frmODBCLogon" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Private Declare Function SQLDataSources Lib "ODBC32.DLL" (ByVal henv&, ByVal fDirection%, ByVal szDSN$, ByVal cbDSNMax%, pcbDSN%, ByVal szDescription$, ByVal cbDescriptionMax%, pcbDescription%) As Integer +Private Declare Function SQLAllocEnv% Lib "ODBC32.DLL" (env&) +Const SQL_SUCCESS As Long = 0 +Const SQL_FETCH_NEXT As Long = 1 + + +Private Sub cmdCancel_Click() + Unload Me +End Sub + +Private Sub cmdOK_Click() + Dim sConnect As String + Dim sADOConnect As String + Dim sDAOConnect As String + Dim sDSN As String + + If cboDSNList.ListIndex > 0 Then + sDSN = "DSN=" & cboDSNList.Text & ";" + Else + sConnect = sConnect & "Driver=" & cboDrivers.Text & ";" + sConnect = sConnect & "Server=" & txtServer.Text & ";" + End If + + sConnect = sConnect & "UID=" & txtUID.Text & ";" + sConnect = sConnect & "PWD=" & txtPWD.Text & ";" + + If Len(txtDatabase.Text) > 0 Then + sConnect = sConnect & "Database=" & txtDatabase.Text & ";" + End If + + sADOConnect = "PROVIDER=MSDASQL;" & sDSN & sConnect + sDAOConnect = "ODBC;" & sDSN & sConnect + + MsgBox _ + "ҪһADO ӣʹã " & vbCrLf & _ + "Set gConnection = New Connection" & vbCrLf & _ + "gConnection.Open """ & sADOConnect & """" & vbCrLf & vbCrLf & _ + "ҪһDAO ݿʹã " & vbCrLf & _ + " gDatabase = OpenDatabase(vbNullString, 0, 0, sDAOConnect)" & vbCrLf & vbCrLf & _ + "һ RDO , ʹ:" & vbCrLf & _ + " gRDOConnection = rdoEnvironments(0).OpenConnection(sDSN, rdDriverNoPrompt, 0, sConnect)" + + ' gDatabase = OpenDatabase(vbNullString, 0, 0, sDAOConnect) + 'RDO: + ' gRDOConnection = rdoEnvironments(0).OpenConnection(sDSN, rdDriverNoPrompt, 0, sConnect) +End Sub + +Private Sub Form_Load() + GetDSNsAndDrivers +End Sub + +Private Sub cboDSNList_Click() + On Error Resume Next + If cboDSNList.Text = "(None)" Then + txtServer.Enabled = True + cboDrivers.Enabled = True + Else + txtServer.Enabled = False + cboDrivers.Enabled = False + End If +End Sub + +Sub GetDSNsAndDrivers() + Dim i As Integer + Dim sDSNItem As String * 1024 + Dim sDRVItem As String * 1024 + Dim sDSN As String + Dim sDRV As String + Dim iDSNLen As Integer + Dim iDRVLen As Integer + Dim lHenv As Long ' + + On Error Resume Next + cboDSNList.AddItem "(None)" + + ' DSNs + If SQLAllocEnv(lHenv) <> -1 Then + Do Until i <> SQL_SUCCESS + sDSNItem = Space$(1024) + sDRVItem = Space$(1024) + i = SQLDataSources(lHenv, SQL_FETCH_NEXT, sDSNItem, 1024, iDSNLen, sDRVItem, 1024, iDRVLen) + sDSN = Left$(sDSNItem, iDSNLen) + sDRV = Left$(sDRVItem, iDRVLen) + + If sDSN <> Space(iDSNLen) Then + cboDSNList.AddItem sDSN + cboDrivers.AddItem sDRV + End If + Loop + End If + 'ɾظ + If cboDSNList.ListCount > 0 Then + With cboDrivers + If .ListCount > 1 Then + i = 0 + While i < .ListCount + If .List(i) = .List(i + 1) Then + .RemoveItem (i) + Else + i = i + 1 + End If + Wend + End If + End With + End If + cboDSNList.ListIndex = 0 +End Sub diff --git a/cadVb/VB98/TEMPLATE/FORMS/ODBCLOG.FRX b/cadVb/VB98/TEMPLATE/FORMS/ODBCLOG.FRX new file mode 100644 index 0000000..1c5a625 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/FORMS/ODBCLOG.FRX differ diff --git a/cadVb/VB98/TEMPLATE/FORMS/OPTION.FRX b/cadVb/VB98/TEMPLATE/FORMS/OPTION.FRX new file mode 100644 index 0000000..b20c2b6 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/FORMS/OPTION.FRX differ diff --git a/cadVb/VB98/TEMPLATE/FORMS/OPTSDLG.FRM b/cadVb/VB98/TEMPLATE/FORMS/OPTSDLG.FRM new file mode 100644 index 0000000..e80efac --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/OPTSDLG.FRM @@ -0,0 +1,226 @@ +VERSION 5.00 +Object = "{831FDD16-0C5C-11d2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx" +Begin VB.Form frmOptions + BorderStyle = 3 'Fixed Dialog + Caption = "ѡ" + ClientHeight = 4920 + ClientLeft = 2565 + ClientTop = 1500 + ClientWidth = 6150 + Icon = "ѡԻ.frx":0000 + KeyPreview = -1 'True + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 4920 + ScaleWidth = 6150 + ShowInTaskbar = 0 'False + StartUpPosition = 2 'CenterScreen + Begin VB.PictureBox picOptions + BorderStyle = 0 'None + Height = 3780 + Index = 3 + Left = -20000 + ScaleHeight = 3780 + ScaleWidth = 5685 + TabIndex = 8 + TabStop = 0 'False + Top = 480 + Width = 5685 + Begin VB.Frame fraSample4 + Caption = "ʾ 4" + Height = 1785 + Left = 2100 + TabIndex = 11 + Top = 840 + Width = 2055 + End + End + Begin VB.PictureBox picOptions + BorderStyle = 0 'None + Height = 3780 + Index = 2 + Left = -20000 + ScaleHeight = 3780 + ScaleWidth = 5685 + TabIndex = 7 + TabStop = 0 'False + Top = 480 + Width = 5685 + Begin VB.Frame fraSample3 + Caption = "ʾ 3" + Height = 1785 + Left = 1545 + TabIndex = 10 + Top = 675 + Width = 2055 + End + End + Begin VB.PictureBox picOptions + BorderStyle = 0 'None + Height = 3780 + Index = 1 + Left = -20000 + ScaleHeight = 3780 + ScaleWidth = 5685 + TabIndex = 6 + TabStop = 0 'False + Top = 480 + Width = 5685 + Begin VB.Frame fraSample2 + Caption = "ʾ 2" + Height = 1785 + Left = 645 + TabIndex = 9 + Top = 300 + Width = 2055 + End + End + Begin VB.PictureBox picOptions + BorderStyle = 0 'None + Height = 3780 + Index = 0 + Left = 210 + ScaleHeight = 3780 + ScaleWidth = 5685 + TabIndex = 4 + TabStop = 0 'False + Top = 480 + Width = 5685 + Begin VB.Frame fraSample1 + Caption = "ʾ 1" + Height = 1785 + Left = 210 + TabIndex = 5 + Top = 255 + Width = 2055 + End + End + Begin VB.CommandButton cmdApply + Caption = "Ӧ" + Height = 375 + Left = 4920 + TabIndex = 3 + Top = 4455 + Width = 1095 + End + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "ȡ" + Height = 375 + Left = 3720 + TabIndex = 2 + Top = 4455 + Width = 1095 + End + Begin VB.CommandButton cmdOK + Caption = "ȷ" + Height = 375 + Left = 2490 + TabIndex = 1 + Top = 4455 + Width = 1095 + End + Begin MSComctlLib.TabStrip tbsOptions + Height = 4245 + Left = 105 + TabIndex = 0 + Top = 120 + Width = 5895 + _ExtentX = 10398 + _ExtentY = 7488 + _Version = 393216 + BeginProperty Tabs {1EFB6598-857C-11D1-B16A-00C0F0283628} + NumTabs = 4 + BeginProperty Tab1 {1EFB659A-857C-11D1-B16A-00C0F0283628} + Caption = "Ⱥ 1" + Key = "Group1" + Object.ToolTipText = "ΪȺ 1 ѡ" + ImageVarType = 2 + EndProperty + BeginProperty Tab2 {1EFB659A-857C-11D1-B16A-00C0F0283628} + Caption = "Ⱥ 2" + Key = "Group2" + Object.ToolTipText = "ΪȺ 2 ѡ" + ImageVarType = 2 + EndProperty + BeginProperty Tab3 {1EFB659A-857C-11D1-B16A-00C0F0283628} + Caption = "Ⱥ 3" + Key = "Group3" + Object.ToolTipText = "ΪȺ 3 ѡ" + ImageVarType = 2 + EndProperty + BeginProperty Tab4 {1EFB659A-857C-11D1-B16A-00C0F0283628} + Caption = "Ⱥ 4" + Key = "Group4" + Object.ToolTipText = "ΪȺ 4 ѡ" + ImageVarType = 2 + EndProperty + EndProperty + BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + End +End +Attribute VB_Name = "frmOptions" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Private Sub cmdApply_Click() + MsgBox "ôѡ w/o رնԻ!" +End Sub + +Private Sub cmdCancel_Click() + Unload Me +End Sub + +Private Sub cmdOK_Click() + MsgBox "ôѡҹرնԻ!" + Unload Me +End Sub + +Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) + Dim i As Integer + ' ctrl+tab ƶһѡ + If Shift = vbCtrlMask And KeyCode = vbKeyTab Then + i = tbsOptions.SelectedItem.Index + If i = tbsOptions.Tabs.Count Then + 'ѵѡ,תصѡ 1 + Set tbsOptions.SelectedItem = tbsOptions.Tabs(1) + Else + 'ѡ + Set tbsOptions.SelectedItem = tbsOptions.Tabs(i + 1) + End If + End If +End Sub + +Private Sub Form_Load() + 'д + Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2 +End Sub + +Private Sub tbsOptions_Click() + + Dim i As Integer + 'ʾʹѡĿؼ + 'ʹ + For i = 0 To tbsOptions.Tabs.Count - 1 + If i = tbsOptions.SelectedItem.Index - 1 Then + picOptions(i).Left = 210 + picOptions(i).Enabled = True + Else + picOptions(i).Left = -20000 + picOptions(i).Enabled = False + End If + Next + +End Sub diff --git a/cadVb/VB98/TEMPLATE/FORMS/SPLASH.FRX b/cadVb/VB98/TEMPLATE/FORMS/SPLASH.FRX new file mode 100644 index 0000000..0cdadcd Binary files /dev/null and b/cadVb/VB98/TEMPLATE/FORMS/SPLASH.FRX differ diff --git a/cadVb/VB98/TEMPLATE/FORMS/SPLSSCRN.FRM b/cadVb/VB98/TEMPLATE/FORMS/SPLSSCRN.FRM new file mode 100644 index 0000000..6193cf1 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/SPLSSCRN.FRM @@ -0,0 +1,197 @@ +VERSION 5.00 +Begin VB.Form frmSplash + BorderStyle = 3 'Fixed Dialog + ClientHeight = 4245 + ClientLeft = 255 + ClientTop = 1410 + ClientWidth = 7380 + ClipControls = 0 'False + ControlBox = 0 'False + Icon = "չʾĻ.frx":0000 + KeyPreview = -1 'True + LinkTopic = "Form2" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 4245 + ScaleWidth = 7380 + ShowInTaskbar = 0 'False + StartUpPosition = 2 'Ļ + Begin VB.Frame Frame1 + Height = 4050 + Left = 120 + TabIndex = 0 + Top = 60 + Width = 7080 + Begin VB.Image imgLogo + Height = 2385 + Left = 360 + Picture = "չʾĻ.frx":000C + Stretch = -1 'True + Top = 795 + Width = 1815 + End + Begin VB.Label lblCopyright + Caption = "Ȩ" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Left = 4440 + TabIndex = 4 + Top = 2880 + Width = 2415 + End + Begin VB.Label lblCompany + Caption = "˾" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Left = 4440 + TabIndex = 3 + Top = 3240 + Width = 2415 + End + Begin VB.Label lblWarning + Caption = "" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 195 + Left = 150 + TabIndex = 2 + Top = 3660 + Width = 6765 + End + Begin VB.Label lblVersion + Alignment = 1 'Right Justify + AutoSize = -1 'True + Caption = "汾" + BeginProperty Font + Name = "" + Size = 12 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 240 + Left = 6240 + TabIndex = 5 + Top = 2400 + Width = 510 + End + Begin VB.Label lblPlatform + Alignment = 1 'Right Justify + AutoSize = -1 'True + Caption = "ƽ̨" + BeginProperty Font + Name = "" + Size = 12 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 240 + Left = 6240 + TabIndex = 6 + Top = 2040 + Width = 510 + End + Begin VB.Label lblProductName + AutoSize = -1 'True + Caption = "Ʒ" + BeginProperty Font + Name = "" + Size = 32.25 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 765 + Left = 2400 + TabIndex = 8 + Top = 1200 + Width = 2430 + End + Begin VB.Label lblLicenseTo + Alignment = 1 'Right Justify + Caption = "Ȩ" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 255 + Left = 120 + TabIndex = 1 + Top = 240 + Width = 6855 + End + Begin VB.Label lblCompanyProduct + AutoSize = -1 'True + Caption = "˾Ʒ" + BeginProperty Font + Name = "" + Size = 18 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 435 + Left = 2355 + TabIndex = 7 + Top = 705 + Width = 3000 + End + End +End +Attribute VB_Name = "frmSplash" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Option Explicit + +Private Sub Form_KeyPress(KeyAscii As Integer) + Unload Me +End Sub + +Private Sub Form_Load() + lblVersion.Caption = "汾 " & App.Major & "." & App.Minor & "." & App.Revision + lblProductName.Caption = App.Title +End Sub + +Private Sub Frame1_Click() + Unload Me +End Sub diff --git a/cadVb/VB98/TEMPLATE/FORMS/TIPOFDAY.FRM b/cadVb/VB98/TEMPLATE/FORMS/TIPOFDAY.FRM new file mode 100644 index 0000000..a2be3da --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/TIPOFDAY.FRM @@ -0,0 +1,181 @@ +VERSION 5.00 +Begin VB.Form frmTip + Caption = "ջ" + ClientHeight = 3285 + ClientLeft = 2370 + ClientTop = 2400 + ClientWidth = 5685 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3285 + ScaleWidth = 5685 + WhatsThisButton = -1 'True + WhatsThisHelp = -1 'True + Begin VB.CheckBox chkLoadTipsAtStartup + Caption = "ʱʾʾ(&S)" + Height = 315 + Left = 120 + TabIndex = 3 + Top = 2940 + Width = 2055 + End + Begin VB.CommandButton cmdNextTip + Caption = "һʾ(&N)" + Height = 375 + Left = 4080 + TabIndex = 2 + Top = 600 + Width = 1455 + End + Begin VB.PictureBox Picture1 + BackColor = &H00FFFFFF& + Height = 2715 + Left = 120 + Picture = "ջ.frx":0000 + ScaleHeight = 2655 + ScaleWidth = 3675 + TabIndex = 1 + Top = 120 + Width = 3735 + Begin VB.Label Label1 + BackColor = &H00FFFFFF& + Caption = "֪..." + Height = 255 + Left = 540 + TabIndex = 5 + Top = 180 + Width = 2655 + End + Begin VB.Label lblTipText + BackColor = &H00FFFFFF& + Height = 1635 + Left = 180 + TabIndex = 4 + Top = 840 + Width = 3255 + End + End + Begin VB.CommandButton cmdOK + Cancel = -1 'True + Caption = "ȷ" + Default = -1 'True + Height = 375 + Left = 4080 + TabIndex = 0 + Top = 120 + Width = 1455 + End +End +Attribute VB_Name = "frmTip" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +' ڴеʾݿ⡣ +Dim Tips As New Collection + +' ʾļ +Const TIP_FILE = "TIPOFDAY.TXT" + +' ǰʾʾϵ +Dim CurrentTip As Long + + +Private Sub DoNextTip() + + ' ѡһʾ + CurrentTip = Int((Tips.Count * Rnd) + 1) + + ' ߣ԰˳ʾ + +' CurrentTip = CurrentTip + 1 +' If Tips.Count < CurrentTip Then +' CurrentTip = 1 +' End If + + ' ʾ + frmTip.DisplayCurrentTip + +End Sub + +Function LoadTips(sFile As String) As Boolean + Dim NextTip As String ' ļжÿʾ + Dim InFile As Integer ' ļ + + ' һļ + InFile = FreeFile + + ' ȷΪָļ + If sFile = "" Then + LoadTips = False + Exit Function + End If + + ' ڴǰȷļڡ + If Dir(sFile) = "" Then + LoadTips = False + Exit Function + End If + + ' ıļжȡϡ + Open sFile For Input As InFile + While Not EOF(InFile) + Line Input #InFile, NextTip + Tips.Add NextTip + Wend + Close InFile + + ' ʾһʾ + DoNextTip + + LoadTips = True + +End Function + +Private Sub chkLoadTipsAtStartup_Click() + ' ´ʱǷʾ˴ + SaveSetting App.EXEName, "Options", "ʱʾʾ", chkLoadTipsAtStartup.Value +End Sub + +Private Sub cmdNextTip_Click() + DoNextTip +End Sub + +Private Sub cmdOK_Click() + Unload Me +End Sub + +Private Sub Form_Load() + Dim ShowAtStartup As Long + + ' 쿴ʱǷ񽫱ʾ + ShowAtStartup = GetSetting(App.EXEName, "Options", "ʱʾʾ", 1) + If ShowAtStartup = 0 Then + Unload Me + Exit Sub + End If + + ' øѡǿнֵдصע + Me.chkLoadTipsAtStartup.Value = vbChecked + + ' Ѱ + Randomize + + ' ȡʾļʾһʾ + If LoadTips(App.Path & "\" & TIP_FILE) = False Then + lblTipText.Caption = "ļ " & TIP_FILE & " ûбҵ? " & vbCrLf & vbCrLf & _ + "ıļΪ " & TIP_FILE & " ʹü±ÿдһʾ " & _ + "ȻӦóڵĿ¼ " + End If + + +End Sub + +Public Sub DisplayCurrentTip() + If Tips.Count > 0 Then + lblTipText.Caption = Tips.Item(CurrentTip) + End If +End Sub diff --git a/cadVb/VB98/TEMPLATE/FORMS/VBDTFRWZ.VBZ b/cadVb/VB98/TEMPLATE/FORMS/VBDTFRWZ.VBZ new file mode 100644 index 0000000..3319f56 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/FORMS/VBDTFRWZ.VBZ @@ -0,0 +1,4 @@ +VBWIZARD 5.0 +Wizard=DataFormWizard6.Wizard +Param="other information" + diff --git a/cadVb/VB98/TEMPLATE/MENUS/EDITMENU.FRM b/cadVb/VB98/TEMPLATE/MENUS/EDITMENU.FRM new file mode 100644 index 0000000..c879a09 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/MENUS/EDITMENU.FRM @@ -0,0 +1,79 @@ +VERSION 5.00 +Begin VB.Form frmEditMenu + Caption = "Form1" + ClientHeight = 2868 + ClientLeft = -9996 + ClientTop = 2880 + ClientWidth = 4332 + LinkTopic = "Form1" + ScaleHeight = 2868 + ScaleWidth = 4332 + Begin VB.Menu mnuEdit + Caption = "༭(&E)" + Begin VB.Menu mnuEditUndo + Caption = "ȡ(&U)" + Shortcut = ^Z + End + Begin VB.Menu mnuEditBar1 + Caption = "-" + End + Begin VB.Menu mnuEditCut + Caption = "(&T)" + Shortcut = ^X + End + Begin VB.Menu mnuEditCopy + Caption = "(&C)" + Shortcut = ^C + End + Begin VB.Menu mnuEditPaste + Caption = "ճ(&P)" + Shortcut = ^V + End + Begin VB.Menu mnuEditPasteSpecial + Caption = "ѡճ(&S)..." + End + Begin VB.Menu mnuEditBar2 + Caption = "-" + End + Begin VB.Menu mnuEditDSelectAll + Caption = "ȫѡ(&A)" + Shortcut = ^A + End + Begin VB.Menu mnuEditInvertSelection + Caption = "ѡ(&I)" + End + End +End +Attribute VB_Name = "frmEditMenu" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Private Sub mnuEditCopy_Click() + MsgBox "ƵĴڴ˴" +End Sub + +Private Sub mnuEditCut_Click() + MsgBox "еĴڴ˴" +End Sub + +Private Sub mnuEditDSelectAll_Click() + MsgBox "ȫѡĴڴ˴" +End Sub + +Private Sub mnuEditInvertSelection_Click() + MsgBox "ѡĴڴ˴" +End Sub + +Private Sub mnuEditPaste_Click() + MsgBox "ճĴڴ˴" +End Sub + +Private Sub mnuEditPasteSpecial_Click() + MsgBox "ճڴ˴" +End Sub + +Private Sub mnuEditUndo_Click() + MsgBox " Undoڴ˴" +End Sub diff --git a/cadVb/VB98/TEMPLATE/MENUS/EXPFMENU.FRM b/cadVb/VB98/TEMPLATE/MENUS/EXPFMENU.FRM new file mode 100644 index 0000000..855cdb4 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/MENUS/EXPFMENU.FRM @@ -0,0 +1,84 @@ +VERSION 5.00 +Begin VB.Form frmExpFileMenu + Caption = "Form1" + ClientHeight = 8280 + ClientLeft = -9996 + ClientTop = 1980 + ClientWidth = 6684 + LinkTopic = "Form1" + ScaleHeight = 8280 + ScaleWidth = 6684 + Begin VB.Menu mnuFile + Caption = "ļ(&F)" + Begin VB.Menu mnuFileOpen + Caption = "(&O)" + End + Begin VB.Menu mnuFileFind + Caption = "(&F)" + End + Begin VB.Menu mnuFileBar1 + Caption = "-" + End + Begin VB.Menu mnuFileSend + Caption = "͵(&D)" + End + Begin VB.Menu mnuFileBar2 + Caption = "-" + End + Begin VB.Menu mnuFileNew + Caption = "½(&N)" + End + Begin VB.Menu mnuFileBar3 + Caption = "-" + End + Begin VB.Menu mnuFileDelete + Caption = "ɾ(&D)" + End + Begin VB.Menu mnuFileRename + Caption = "(&M)" + End + Begin VB.Menu mnuFileProperties + Caption = "(&I)" + End + Begin VB.Menu mnuFileBar4 + Caption = "-" + End + Begin VB.Menu mnuFileClose + Caption = "ر(&C)" + End + End +End +Attribute VB_Name = "frmExpFileMenu" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Private Sub mnuFileClose_Click() + 'unload the form + Unload Me +End Sub + +Private Sub mnuFileDelete_Click() + MsgBox "Delete Code goes here!" +End Sub + +Private Sub mnuFileNew_Click() + MsgBox "New File Code goes here!" +End Sub + +Private Sub mnuFileOpen_Click() + MsgBox "Open Code goes here!" +End Sub + +Private Sub mnuFileProperties_Click() + MsgBox "Properties Code goes here!" +End Sub + +Private Sub mnuFileRename_Click() + MsgBox "Rename Code goes here!" +End Sub + +Private Sub mnuFileSend_Click() + MsgBox "Send Code goes here!" +End Sub diff --git a/cadVb/VB98/TEMPLATE/MENUS/FILEMENU.FRM b/cadVb/VB98/TEMPLATE/MENUS/FILEMENU.FRM new file mode 100644 index 0000000..7ab0fab --- /dev/null +++ b/cadVb/VB98/TEMPLATE/MENUS/FILEMENU.FRM @@ -0,0 +1,123 @@ +VERSION 5.00 +Begin VB.Form frmFileMenu + Caption = "Form1" + ClientHeight = 8280 + ClientLeft = -9996 + ClientTop = 1980 + ClientWidth = 6684 + LinkTopic = "Form1" + ScaleHeight = 8280 + ScaleWidth = 6684 + Begin VB.Menu mnuFile + Caption = "ļ(&F)" + Begin VB.Menu mnuFileNew + Caption = "½(&N)" + Shortcut = ^N + End + Begin VB.Menu mnuFileOpen + Caption = "(&O)" + Shortcut = ^O + End + Begin VB.Menu mnuFileClose + Caption = "ر(&C)" + End + Begin VB.Menu mnuFileBar1 + Caption = "-" + End + Begin VB.Menu mnuFileSave + Caption = "(&S)" + Shortcut = ^S + End + Begin VB.Menu mnuFileSaveAs + Caption = "Ϊ(&A)..." + End + Begin VB.Menu mnuFileSaveAll + Caption = "ȫ(&L)" + End + Begin VB.Menu mnuFileBar2 + Caption = "-" + End + Begin VB.Menu mnuFileProperties + Caption = "(&I)" + End + Begin VB.Menu mnuFileBar3 + Caption = "-" + End + Begin VB.Menu mnuFilePrintSetup + Caption = "ӡ(&U)..." + End + Begin VB.Menu mnuFilePrintPreview + Caption = "ӡԤ(&V)" + End + Begin VB.Menu mnuFilePrint + Caption = "ӡ(&P)..." + Shortcut = ^P + End + Begin VB.Menu mnuFileBar4 + Caption = "-" + End + Begin VB.Menu mnuFileSend + Caption = "(&D)..." + End + Begin VB.Menu mnuFileBar5 + Caption = "-" + End + Begin VB.Menu mnuFileExit + Caption = "˳(&X)" + End + End +End +Attribute VB_Name = "frmFileMenu" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Private Sub mnuFileClose_Click() + MsgBox "Close Code goes here!" +End Sub + +Private Sub mnuFileExit_Click() + 'unload the form + Unload Me +End Sub + +Private Sub mnuFileNew_Click() + MsgBox "New File Code goes here!" +End Sub + +Private Sub mnuFileOpen_Click() + MsgBox "Open Code goes here!" +End Sub + +Private Sub mnuFilePrint_Click() + MsgBox "Print Code goes here!" +End Sub + +Private Sub mnuFilePrintPreview_Click() + MsgBox "Print Preview Code goes here!" +End Sub + +Private Sub mnuFilePrintSetup_Click() + MsgBox "Print Setup Code goes here!" +End Sub + +Private Sub mnuFileProperties_Click() + MsgBox "Properties Code goes here!" +End Sub + +Private Sub mnuFileSave_Click() + MsgBox "Save File Code goes here!" +End Sub + +Private Sub mnuFileSaveAll_Click() + MsgBox "Save All Code goes here!" +End Sub + +Private Sub mnuFileSaveAs_Click() + MsgBox "Save As Code goes here!" +End Sub + +Private Sub mnuFileSend_Click() + MsgBox "Send Code goes here!" +End Sub diff --git a/cadVb/VB98/TEMPLATE/MENUS/HELPMENU.FRM b/cadVb/VB98/TEMPLATE/MENUS/HELPMENU.FRM new file mode 100644 index 0000000..0217e98 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/MENUS/HELPMENU.FRM @@ -0,0 +1,59 @@ +VERSION 5.00 +Begin VB.Form frmHelpMenu + Caption = "Form1" + ClientHeight = 2652 + ClientLeft = -9996 + ClientTop = 4056 + ClientWidth = 4800 + LinkTopic = "Form1" + ScaleHeight = 2652 + ScaleWidth = 4800 + Begin VB.Menu mnuHelp + Caption = "(&H)" + Begin VB.Menu mnuHelpContents + Caption = "Ŀ¼(&C)" + End + Begin VB.Menu mnuHelpSearch + Caption = "(&S)..." + End + Begin VB.Menu mnuHelpBar1 + Caption = "-" + End + Begin VB.Menu mnuHelpAbout + Caption = " MyApp(&A)..." + End + End +End +Attribute VB_Name = "frmHelpMenu" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Private Declare Function OSWinHelp% Lib "user32" Alias "WinHelpA" (ByVal hwnd&, ByVal HelpFile$, ByVal wCommand%, dwData As Any) + + +Private Sub mnuHelpAbout_Click() + MsgBox "About Box Code goes here!" +' frmAbout.Show vbModal +End Sub + +Private Sub mnuHelpContents_Click() + On Error Resume Next + + Dim nRet As Integer + nRet = OSWinHelp(Me.hwnd, App.HelpFile, 3, 0) + If Err Then + MsgBox Err.Description + End If +End Sub + +Private Sub mnuHelpSearch_Click() + On Error Resume Next + + Dim nRet As Integer + nRet = OSWinHelp(Me.hwnd, App.HelpFile, 261, 0) + If Err Then + MsgBox Err.Description + End If +End Sub diff --git a/cadVb/VB98/TEMPLATE/MENUS/VIEWMENU.FRM b/cadVb/VB98/TEMPLATE/MENUS/VIEWMENU.FRM new file mode 100644 index 0000000..45cc755 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/MENUS/VIEWMENU.FRM @@ -0,0 +1,139 @@ +VERSION 5.00 +Begin VB.Form frmViewMenu + Caption = "Form1" + ClientHeight = 8280 + ClientLeft = -9996 + ClientTop = 2052 + ClientWidth = 6684 + LinkTopic = "Form1" + ScaleHeight = 8280 + ScaleWidth = 6684 + Begin VB.Menu mnuView + Caption = "ͼ(&V)" + Begin VB.Menu mnuViewToolbar + Caption = "(&T)" + End + Begin VB.Menu mnuViewStatusBar + Caption = "״̬(&B)" + End + Begin VB.Menu mnuViewBar1 + Caption = "-" + End + Begin VB.Menu mnuViewLargeIcons + Caption = "ͼ(&G)" + End + Begin VB.Menu mnuViewSmallIcons + Caption = "Сͼ(&M)" + End + Begin VB.Menu mnuViewList + Caption = "б(&L)" + End + Begin VB.Menu mnuViewDetails + Caption = "ϸ(&D)" + End + Begin VB.Menu mnuViewBar2 + Caption = "-" + End + Begin VB.Menu mnuViewArrangeIcons + Caption = "ͼ(&I)" + Begin VB.Menu mnuVAIByName + Caption = "(&N)" + End + Begin VB.Menu mnuVAIByType + Caption = "(&T)" + End + Begin VB.Menu mnuVAIBySize + Caption = "С(&Z)" + End + Begin VB.Menu mnuVAIByDate + Caption = "(&D)" + End + End + Begin VB.Menu mnuViewLineUpIcons + Caption = "ж(&N)" + End + Begin VB.Menu mnuViewBar3 + Caption = "-" + End + Begin VB.Menu mnuViewRefresh + Caption = "ˢ(&R)" + End + Begin VB.Menu mnuViewOptions + Caption = "ѡ(&O)..." + End + End +End +Attribute VB_Name = "frmViewMenu" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + +Const NAME_COLUMN = 0 +Const TYPE_COLUMN = 1 +Const SIZE_COLUMN = 2 +Const DATE_COLUMN = 3 + +Private Sub mnuVAIByDate_Click() +' lvListView.SortKey = DATE_COLUMN +End Sub + +Private Sub mnuVAIByName_Click() +' lvListView.SortKey = NAME_COLUMN +End Sub + +Private Sub mnuVAIBySize_Click() +' lvListView.SortKey = SIZE_COLUMN +End Sub + +Private Sub mnuVAIByType_Click() +' lvListView.SortKey = TYPE_COLUMN +End Sub + +Private Sub mnuViewDetails_Click() +' lvListView.View = lvwReport +End Sub + +Private Sub mnuViewLargeIcons_Click() +' lvListView.View = lvwIcon +End Sub + +Private Sub mnuViewLineUpIcons_Click() +' lvListView.Arrange = lvwAutoLeft +End Sub + +Private Sub mnuViewList_Click() +' lvListView.View = lvwList +End Sub + +Private Sub mnuViewOptions_Click() +' frmOptions.Show vbModal +End Sub + +Private Sub mnuViewRefresh_Click() + MsgBox "Place Refresh Code here!" +End Sub + +Private Sub mnuViewSmallIcons_Click() +' lvListView.View = lvwSmallIcon +End Sub + +Private Sub mnuViewStatusBar_Click() + If mnuViewStatusBar.Checked Then +' sbStatusBar.Visible = False + mnuViewStatusBar.Checked = False + Else +' sbStatusBar.Visible = True + mnuViewStatusBar.Checked = True + End If +End Sub + +Private Sub mnuViewToolbar_Click() + If mnuViewToolbar.Checked Then +' tbToolBar.Visible = False + mnuViewToolbar.Checked = False + Else +' tbToolBar.Visible = True + mnuViewToolbar.Checked = True + End If +End Sub diff --git a/cadVb/VB98/TEMPLATE/MENUS/WINMENU.FRM b/cadVb/VB98/TEMPLATE/MENUS/WINMENU.FRM new file mode 100644 index 0000000..b54118b --- /dev/null +++ b/cadVb/VB98/TEMPLATE/MENUS/WINMENU.FRM @@ -0,0 +1,59 @@ +VERSION 5.00 +Begin VB.Form frmWinMenu + Caption = "Form1" + ClientHeight = 8280 + ClientLeft = -9996 + ClientTop = 1980 + ClientWidth = 6684 + LinkTopic = "frmWinMenu" + ScaleHeight = 8280 + ScaleWidth = 6684 + Begin VB.Menu mnuWindow + Caption = "(&W)" + WindowList = -1 'True + Begin VB.Menu mnuWindowNewWindow + Caption = "½(&N)" + End + Begin VB.Menu mnuWindowCascade + Caption = "ص(&C)" + End + Begin VB.Menu mnuWindowTileHorizontal + Caption = "ˮƽ(&H)" + End + Begin VB.Menu mnuWindowTileVertical + Caption = "ֱ(&V)" + End + Begin VB.Menu mnuWindowArrangeIcons + Caption = "ͼ(&A)" + End + Begin VB.Menu mnuWindowBar1 + Caption = "-" + End + End +End +Attribute VB_Name = "frmWinMenu" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False + + +Private Sub mnuWindowArrangeIcons_Click() + Me.Arrange vbArrangeIcons +End Sub + +Private Sub mnuWindowCascade_Click() + Me.Arrange vbCascade +End Sub + +Private Sub mnuWindowNewWindow_Click() + MsgBox "New WIndow Code goes here!" +End Sub + +Private Sub mnuWindowTileHorizontal_Click() + Me.Arrange vbTileHorizontal +End Sub + +Private Sub mnuWindowTileVertical_Click() + Me.Arrange vbTileVertical +End Sub diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/ACTVDOC1.DOB b/cadVb/VB98/TEMPLATE/PROJECTS/ACTVDOC1.DOB new file mode 100644 index 0000000..14f673b --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/ACTVDOC1.DOB @@ -0,0 +1,23 @@ +VERSION 5.00 +Begin VB.UserDocument UserDocument1 + ClientHeight = 3600 + ClientLeft = 0 + ClientTop = 0 + ClientWidth = 4800 + Height = 3600 + HScrollSmallChange= 225 + ScaleHeight = 3600 + ScaleWidth = 4800 + VScrollSmallChange= 225 + Width = 4800 +End +Attribute VB_Name = "UserDocument1" +Attribute VB_Base = "0{AF990BB8-CB87-11CF-A520-00A0D1003923}" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_TemplateDerived = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Attribute VB_Customizable = False +Option Explicit + diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.DCA b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.DCA new file mode 100644 index 0000000..87f8374 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.DCA differ diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.DSR b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.DSR new file mode 100644 index 0000000..27dab5c --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.DSR @@ -0,0 +1,154 @@ +VERSION 5.00 +Begin {AC0714F6-3D04-11D1-AE7D-00A0C90F26F4} Connect + ClientHeight = 9945 + ClientLeft = 1740 + ClientTop = 1545 + ClientWidth = 6585 + _ExtentX = 11615 + _ExtentY = 17542 + _Version = 393216 + Description = "Add-In Project Template" + DisplayName = "My Add-In" + AppName = "Visual Basic" + AppVer = "Visual Basic 98 (ver 6.0)" + LoadName = "Command Line / Startup" + LoadBehavior = 5 + RegLocation = "HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0" + CmdLineSupport = -1 'True +End +Attribute VB_Name = "Connect" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit + +Public FormDisplayed As Boolean +Public VBInstance As VBIDE.VBE +Dim mcbMenuCommandBar As Office.CommandBarControl +Dim mfrmAddIn As New frmAddIn +Public WithEvents MenuHandler As CommandBarEvents '¼ +Attribute MenuHandler.VB_VarHelpID = -1 + + +Sub Hide() + + On Error Resume Next + + FormDisplayed = False + mfrmAddIn.Hide + +End Sub + +Sub Show() + + On Error Resume Next + + If mfrmAddIn Is Nothing Then + Set mfrmAddIn = New frmAddIn + End If + + Set mfrmAddIn.VBInstance = VBInstance + Set mfrmAddIn.Connect = Me + FormDisplayed = True + mfrmAddIn.Show + +End Sub + +'------------------------------------------------------ +'ӳ VB +'------------------------------------------------------ +Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) + On Error GoTo error_handler + + ' vb ʵ + Set VBInstance = Application + + 'һöϵԼԲͬӳ + ',Լʵλ + Debug.Print VBInstance.FullName + + If ConnectMode = ext_cm_External Then + '򵼹 + Me.Show + Else + Set mcbMenuCommandBar = AddToAddInCommandBar("My AddIn") + 'ȡ¼ + Set Me.MenuHandler = VBInstance.Events.CommandBarEvents(mcbMenuCommandBar) + End If + + If ConnectMode = ext_cm_AfterStartup Then + If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then + 'ʾĴ + Me.Show + End If + End If + + Exit Sub + +error_handler: + + MsgBox Err.Description + +End Sub + +'------------------------------------------------------ +' VB ɾӳ +'------------------------------------------------------ +Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant) + On Error Resume Next + + 'ɾĿ + mcbMenuCommandBar.Delete + + 'رӳ + If FormDisplayed Then + SaveSetting App.Title, "Settings", "DisplayOnConnect", "1" + FormDisplayed = False + Else + SaveSetting App.Title, "Settings", "DisplayOnConnect", "0" + End If + + Unload mfrmAddIn + Set mfrmAddIn = Nothing + +End Sub + +Private Sub IDTExtensibility_OnStartupComplete(custom() As Variant) + If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then + 'ʾĴ + Me.Show + End If +End Sub + +' IDE еIJ˵ʱ,¼ +Private Sub MenuHandler_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean) + Me.Show +End Sub + +Function AddToAddInCommandBar(sCaption As String) As Office.CommandBarControl + Dim cbMenuCommandBar As Office.CommandBarControl ' + Dim cbMenu As Object + + On Error GoTo AddToAddInCommandBarErr + + '쿴ܷҵӳ˵ + Set cbMenu = VBInstance.CommandBars("Add-Ins") + If cbMenu Is Nothing Then + 'ûЧӳ,ʧ + Exit Function + End If + + ' + Set cbMenuCommandBar = cbMenu.Controls.Add(1) + 'ñ + cbMenuCommandBar.Caption = sCaption + + Set AddToAddInCommandBar = cbMenuCommandBar + + Exit Function + +AddToAddInCommandBarErr: + +End Function + diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.FRM b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.FRM new file mode 100644 index 0000000..b040eeb --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.FRM @@ -0,0 +1,49 @@ +VERSION 5.00 +Begin VB.Form frmAddIn + BorderStyle = 3 'Fixed Dialog + Caption = "ҵӳ" + ClientHeight = 3195 + ClientLeft = 2175 + ClientTop = 1935 + ClientWidth = 6030 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3195 + ScaleWidth = 6030 + ShowInTaskbar = 0 'False + StartUpPosition = 2 'Ļ + Begin VB.CommandButton CancelButton + Caption = "ȡ" + Height = 375 + Left = 4680 + TabIndex = 1 + Top = 600 + Width = 1215 + End + Begin VB.CommandButton OKButton + Caption = "ȷ" + Height = 375 + Left = 4680 + TabIndex = 0 + Top = 120 + Width = 1215 + End +End +Attribute VB_Name = "frmAddIn" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Public VBInstance As VBIDE.VBE +Public Connect As Connect + +Option Explicit + +Private Sub CancelButton_Click() + Connect.Hide +End Sub + +Private Sub OKButton_Click() + MsgBox "ӳ: " & VBInstance.FullName +End Sub diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.VBP new file mode 100644 index 0000000..4442f62 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/ADDIN.VBP @@ -0,0 +1,35 @@ +Type=OleDll +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\STDOLE2.TLB#OLE Automation +Reference=*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#..\..\MSO97RT.DLL#Microsoft Office 8.0 Object Library +Reference=*\G{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}#1.0#0#..\..\MSADDNDR.TLB#Add-In Designer/Instance Control Library +Reference=*\G{EF404E00-EDA6-101A-8DAF-00DD010F7EBB}#5.3#0#..\..\VB6EXT.OLB#Microsoft Visual Basic 6.0 Extensibility +Form=AddIn.frm +Designer=AddIn.Dsr +Startup="(None)" +HelpFile="" +Command32="" +Name="MyAddIn" +HelpContextID="0" +Description="Sample AddIn Project" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/AXDOCDLL.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/AXDOCDLL.VBP new file mode 100644 index 0000000..d1975eb --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/AXDOCDLL.VBP @@ -0,0 +1,30 @@ +Type=OleDll +Reference=*\G{BEF6E001-A874-101A-8BBA-00AA00300CAB}#2.0#0#..\..\..\VB6\OLEPRO32.DLL#Standard OLE Types +UserDocument=ActvDoc1.dob +Startup="(None)" +HelpFile="" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +ThreadingModel=1 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/AXDOCEXE.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/AXDOCEXE.VBP new file mode 100644 index 0000000..8b4c513 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/AXDOCEXE.VBP @@ -0,0 +1,29 @@ +Type=OleExe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\VB\stdole2.tlb#Standard OLE Types +UserDocument=ActvDoc1.dob +Startup="(None)" +HelpFile="" +Title="ActiveX Document EXE" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/DATAENV.DCA b/cadVb/VB98/TEMPLATE/PROJECTS/DATAENV.DCA new file mode 100644 index 0000000..5e6c73a Binary files /dev/null and b/cadVb/VB98/TEMPLATE/PROJECTS/DATAENV.DCA differ diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/DATAENV.DSR b/cadVb/VB98/TEMPLATE/PROJECTS/DATAENV.DSR new file mode 100644 index 0000000..6385e34 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/DATAENV.DSR @@ -0,0 +1,28 @@ +VERSION 5.00 +Begin {C0E45035-5775-11D0-B388-00A0C9055D8E} DataEnvironment1 + ClientHeight = 5055 + ClientLeft = 1080 + ClientTop = 1500 + ClientWidth = 6300 + _ExtentX = 14235 + _ExtentY = 7805 + FolderFlags = 3 + TypeLibGuid = "{A5DC9AF5-9235-11D1-B067-00DD01144174}" + TypeInfoGuid = "{A5DC9AF6-9235-11D1-B067-00DD01144174}" + TypeInfoCookie = 0 + Version = 4 + NumConnections = 1 + BeginProperty Connection1 + ConnectionName = "Connection1" + ConnDispId = 1001 + SourceOfData = 3 + QuoteChar = 34 + SeparatorChar = 46 + EndProperty + NumRecordsets = 0 +End +Attribute VB_Name = "DataEnvironment1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/DATAPROJ.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/DATAPROJ.VBP new file mode 100644 index 0000000..eb61072 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/DATAPROJ.VBP @@ -0,0 +1,46 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\VB6\stdole2.tlb#OLE Automation +Reference=*\G{00000200-0000-0010-8000-00AA006D2EA4}#2.0#0#..\..\..\..\..\VB6\msado15.dll#Microsoft ActiveX Data Objects 2.0 Library +Reference=*\G{56BF9020-7A2F-11D0-9482-00A0C91110ED}#1.0#0#..\..\..\..\..\VB6\MSBIND.DLL#Microsoft Data Binding Collection +Object={5C8CED40-8909-11D0-9483-00A0C91110ED}#1.0#0; MSDatRep.ocx +Object={67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0; MSADODC.OCX +Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDatGrd.Ocx +Object={F0D2F211-CCB0-11D0-A316-00AA00688B10}#1.0#0; MSDatLst.OCX +Reference=*\G{642AC760-AAB4-11D0-8494-00A0C90DC8A9}#1.0#0#..\..\..\..\..\VB6\MSDBRptR.DLL#Microsoft Data Report Designer v6.0 +Reference=*\G{6B263850-900B-11D0-9484-00A0C91110ED}#1.0#0#..\..\..\..\..\VB6\MSSTDFMT.Dll#Microsoft Data Formatting Object Library +Reference=*\G{3D5C6BF0-69A3-11D0-B393-00A0C9055D8E}#1.0#0#..\..\..\..\..\VB6\msderun.dll#Microsoft Data Environment Instance 1.0 +Reference=*\G{7C0FFAB0-CD84-11D0-949A-00A0C91110ED}#1.0#0#..\..\..\..\..\WINNT\System32\msdatsrc.tlb#Microsoft Data Source Interfaces +Designer=DataRpt.Dsr +Designer=DataEnv.Dsr +Form=frmDatEn.frm +Object={0ECD9B60-23AA-11D0-B351-00A0C9055D8E}#6.0#0; mshflxgd.ocx +IconForm="frmDataEnv" +Startup="frmDataEnv" +HelpFile="" +Title="DataProj" +Command32="" +Name="DataProject" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft Corporation" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/DATARPT.DCA b/cadVb/VB98/TEMPLATE/PROJECTS/DATARPT.DCA new file mode 100644 index 0000000..6b9701a Binary files /dev/null and b/cadVb/VB98/TEMPLATE/PROJECTS/DATARPT.DCA differ diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/DATARPT.DSR b/cadVb/VB98/TEMPLATE/PROJECTS/DATARPT.DSR new file mode 100644 index 0000000..975803d --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/DATARPT.DSR @@ -0,0 +1,54 @@ +VERSION 5.00 +Begin {78E93846-85FD-11D0-8487-00A0C90DC8A9} DataReport1 + Caption = "DataReport1" + ClientHeight = 8235 + ClientLeft = 1650 + ClientTop = 1545 + ClientWidth = 6585 + _ExtentX = 11615 + _ExtentY = 14526 + _Version = 393216 + _DesignerVersion= 100683782 + BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} + Name = "Arial" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + GridX = 10 + GridY = 10 + LeftMargin = 1440 + RightMargin = 1440 + TopMargin = 1440 + BottomMargin = 1440 + NumSections = 3 + SectionCode0 = 2 + BeginProperty Section0 {1C13A8E0-A0B6-11D0-848E-00A0C90DC8A9} + _Version = 393216 + Name = "Section2" + Object.Height = 360 + NumControls = 0 + EndProperty + SectionCode1 = 4 + BeginProperty Section1 {1C13A8E0-A0B6-11D0-848E-00A0C90DC8A9} + _Version = 393216 + Name = "Section1" + Object.Height = 1440 + NumControls = 0 + EndProperty + SectionCode2 = 7 + BeginProperty Section2 {1C13A8E0-A0B6-11D0-848E-00A0C90DC8A9} + _Version = 393216 + Name = "Section3" + Object.Height = 360 + NumControls = 0 + EndProperty +End +Attribute VB_Name = "DataReport1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/DHTML.BAS b/cadVb/VB98/TEMPLATE/PROJECTS/DHTML.BAS new file mode 100644 index 0000000..14cce37 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/DHTML.BAS @@ -0,0 +1,41 @@ +Attribute VB_Name = "modDHTML" +'PutProperty: ͨô˺洢Ϣ cookie С +' ϣ洢 +' Լֵ +' +' ѡ: +' : ָԵЧ +' һָʱ +' Խٱ߱ͷš + +Public Sub PutProperty(objDocument As HTMLDocument, strName As String, vntValue As Variant, Optional Expires As Date) + + objDocument.cookie = strName & "=" & CStr(vntValue) & _ + IIf(CLng(Expires) = 0, "", "; expires=" & Format(CStr(Expires), "ddd, dd-mmm-yy hh:mm:ss") & " GMT") ' & _ + +End Sub + +'GetProperty: ͨô˺ֵ +' ƣԼ +' ֵΪǰԵֵ +' ûҵѾ, +' ôֵΪַ +' +Public Function GetProperty(objDocument As HTMLDocument, strName As String) As Variant + Dim aryCookies() As String + Dim strCookie As Variant + On Local Error GoTo NextCookie + + 'ĵ cookie ֿ cookie 顣 + aryCookies = Split(objDocument.cookie, ";") + For Each strCookie In aryCookies + If Trim(VBA.Left(strCookie, InStr(strCookie, "=") - 1)) = Trim(strName) Then + GetProperty = Trim(Mid(strCookie, InStr(strCookie, "=") + 1)) + Exit Function + End If +NextCookie: + Err = 0 + Next strCookie +End Function + + diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/DHTMLAPP.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/DHTMLAPP.VBP new file mode 100644 index 0000000..d4113d1 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/DHTMLAPP.VBP @@ -0,0 +1,34 @@ +Type=OleDll +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\VB6\stdole2.tlb#OLE Automation +Reference=*\G{90290CCA-F27D-11D0-8031-00C04FB6C701}#1.0#0#..\..\..\..\..\VB6\MSHTMPGD.DLL#MSHTMLPG Control Library +Reference=*\G{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}#4.0#0#..\..\..\..\..\WINNT5\system32\mshtml.tlb#Microsoft HTML Object Library +Designer=HTML ҳ.Dsr +Module=modDHTML; DHTML.bas +Startup="(None)" +HelpFile="" +Command32="" +Name="DHTMLProject" +HelpContextID="0" +Description="DHTML Application Project" +CompatibleMode="1" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +ThreadingModel=1 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/FORM1.FRM b/cadVb/VB98/TEMPLATE/PROJECTS/FORM1.FRM new file mode 100644 index 0000000..ab64e43 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/FORM1.FRM @@ -0,0 +1,17 @@ +VERSION 5.00 +Begin VB.Form Form1 + Caption = "Form1" + ClientHeight = 4980 + ClientLeft = 60 + ClientTop = 348 + ClientWidth = 6972 + LinkTopic = "Form1" + ScaleHeight = 4980 + ScaleWidth = 6972 + StartUpPosition = 3 'Windows Default +End +Attribute VB_Name = "Form1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/FRMDATEN.FRM b/cadVb/VB98/TEMPLATE/PROJECTS/FRMDATEN.FRM new file mode 100644 index 0000000..89b2504 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/FRMDATEN.FRM @@ -0,0 +1,17 @@ +VERSION 5.00 +Begin VB.Form frmDataEnv + Caption = "Form1" + ClientHeight = 3195 + ClientLeft = 60 + ClientTop = 345 + ClientWidth = 4680 + LinkTopic = "Form1" + ScaleHeight = 3195 + ScaleWidth = 4680 + StartUpPosition = 3 'Windows Default +End +Attribute VB_Name = "frmDataEnv" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/HTMLPAGE.DSR b/cadVb/VB98/TEMPLATE/PROJECTS/HTMLPAGE.DSR new file mode 100644 index 0000000..961aa7f --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/HTMLPAGE.DSR @@ -0,0 +1,24 @@ +VERSION 5.00 +Begin {90290CCD-F27D-11D0-8031-00C04FB6C701} DHTMLPage1 + ClientHeight = 4110 + ClientLeft = 1815 + ClientTop = 1545 + ClientWidth = 7215 + _ExtentX = 12726 + _ExtentY = 7250 + SourceFile = "" + BuildFile = "" + BuildMode = 0 + TypeLibCookie = 6 + AsyncLoad = 0 'False + id = "DHTMLPage1" + ShowBorder = 0 'False + ShowDetail = 0 'False + AbsPos = 0 'False + HTMLDocument = "HTML ҳ.dsx":0000 +End +Attribute VB_Name = "DHTMLPage1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/HTMLPAGE.DSX b/cadVb/VB98/TEMPLATE/PROJECTS/HTMLPAGE.DSX new file mode 100644 index 0000000..92550ba Binary files /dev/null and b/cadVb/VB98/TEMPLATE/PROJECTS/HTMLPAGE.DSX differ diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/IISAPP.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/IISAPP.VBP new file mode 100644 index 0000000..7e9e167 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/IISAPP.VBP @@ -0,0 +1,32 @@ +Type=OleDll +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#D:\VB98\stdole2.tlb#OLE Automation +Reference=*\G{198887E2-AC76-11D0-A77C-00A024A55AB0}#1.0#0#C:\drop\mswcrun.Dll#Microsoft WebClass Library +Designer=WebClass.Dsr +Reference=*\G{D97A6DA0-A85C-11CF-83AE-00A0C90C2BD8}#2.0#0#C:\WINNT40\System32\inetsrv\asp.dll#Microsoft Active Server Pages Object Library +Startup="(None)" +HelpFile="" +Title="Project1" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="1" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=-1 +Retained=1 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/VBAPWIZ.VBZ b/cadVb/VB98/TEMPLATE/PROJECTS/VBAPWIZ.VBZ new file mode 100644 index 0000000..315a3d0 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/VBAPWIZ.VBZ @@ -0,0 +1,4 @@ +VBWIZARD 5.0 +Wizard=AppWizard6.Wizard +Param="other information" + diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/VBENTCTL.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/VBENTCTL.VBP new file mode 100644 index 0000000..d0de334 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/VBENTCTL.VBP @@ -0,0 +1,52 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#stdole2.tlb#OLE Automation +Object={F6125AB1-8AB1-11CE-A77F-08002B2F4E98}#2.0#0; MSRDC20.OCX +Object={BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0; tabctl32.ocx +Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; msflxgrd.ocx +Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; ComDlg32.ocx +Object={831FDD16-0C5C-11d2-A9FC-0000F8754DA1}#2.0#0; mscomctl.ocx +Object={86CF1D34-0C5F-11d2-A9FC-0000F8754DA1}#2.0#0; mscomct2.ocx +Object={48E59290-9880-11CF-9754-00AA00C00908}#1.0#0; msinet.ocx +Object={3B7C8863-D78F-101B-B9B5-04021C009402}#1.1#0; RichTx32.ocx +Object={65E121D4-0C60-11d2-A9FC-0000F8754DA1}#2.0#0; MSChrt20.OCX +Object={248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0; mswinsck.ocx +Object={20C62CAE-15DA-101B-B9A8-444553540000}#1.1#0; msmapi32.ocx +Object={C1A8AF28-1257-101B-8FB0-0020AF039CA3}#1.1#0; mci32.ocx +Object={27395F88-0C0C-101B-A3C9-08002B2F49FB}#1.1#0; PicClp32.ocx +Object={6FBA474E-43AC-11CE-9A0E-00AA0062BB4C}#1.0#0; SysInfo.ocx +Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSComm32.ocx +Object={C932BA88-4374-101B-A56C-00AA003668DC}#1.1#0; MSMask32.OCX +Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDatGrd.Ocx +Object={F0D2F211-CCB0-11D0-A316-00AA00688B10}#1.0#0; MSDatLst.OCX +Object={38911DA0-E448-11D0-84A3-00DD01104159}#1.1#0; comct332.ocx +Object={67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0; MSADODC.OCX +Object={0ECD9B60-23AA-11D0-B351-00A0C9055D8E}#6.0#0; mshflxgd.ocx +Form=Form1.frm +IconForm="Form1" +Startup="Form1" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Company" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/VBLRNCTL.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/VBLRNCTL.VBP new file mode 100644 index 0000000..ab758fd --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/VBLRNCTL.VBP @@ -0,0 +1,37 @@ +Type=Exe +Form=Form1.frm +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\VB6\stdole2.tlb#OLE Automation +Object={BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0; tabctl32.ocx +Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; msflxgrd.ocx +Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; ComDlg32.ocx +Object={831FDD16-0C5C-11d2-A9FC-0000F8754DA1}#2.0#0; mscomctl.ocx +Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDatGrd.Ocx +Object={67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0; MSADODC.OCX +Object={0ECD9B60-23AA-11D0-B351-00A0C9055D8E}#6.0#0; mshflxgd.ocx +IconForm="Form1" +Startup="Form1" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Company" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/VBPROCTL.VBP b/cadVb/VB98/TEMPLATE/PROJECTS/VBPROCTL.VBP new file mode 100644 index 0000000..3b7372f --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/VBPROCTL.VBP @@ -0,0 +1,50 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#stdole2.tlb#OLE Automation +Object={BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0; tabctl32.ocx +Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; msflxgrd.ocx +Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; ComDlg32.ocx +Object={831FDD16-0C5C-11d2-A9FC-0000F8754DA1}#2.0#0; mscomctl.ocx +Object={86CF1D34-0C5F-11d2-A9FC-0000F8754DA1}#2.0#0; mscomct2.ocx +Object={48E59290-9880-11CF-9754-00AA00C00908}#1.0#0; msinet.ocx +Object={3B7C8863-D78F-101B-B9B5-04021C009402}#1.1#0; RichTx32.ocx +Object={65E121D4-0C60-11d2-A9FC-0000F8754DA1}#2.0#0; MSChrt20.OCX +Object={248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0; mswinsck.ocx +Object={20C62CAE-15DA-101B-B9A8-444553540000}#1.1#0; msmapi32.ocx +Object={C1A8AF28-1257-101B-8FB0-0020AF039CA3}#1.1#0; mci32.ocx +Object={27395F88-0C0C-101B-A3C9-08002B2F49FB}#1.1#0; PicClp32.ocx +Object={6FBA474E-43AC-11CE-9A0E-00AA0062BB4C}#1.0#0; SysInfo.ocx +Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSComm32.ocx +Object={C932BA88-4374-101B-A56C-00AA003668DC}#1.1#0; MSMask32.OCX +Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDatGrd.Ocx +Object={F0D2F211-CCB0-11D0-A316-00AA00688B10}#1.0#0; MSDatLst.OCX +Object={38911DA0-E448-11D0-84A3-00DD01104159}#1.1#0; comct332.ocx +Object={67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0; MSADODC.OCX +Object={0ECD9B60-23AA-11D0-B351-00A0C9055D8E}#6.0#0; mshflxgd.ocx +Form=Form1.frm +IconForm="Form1" +Startup="Form1" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Company" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/WEBCLASS.DSR b/cadVb/VB98/TEMPLATE/PROJECTS/WEBCLASS.DSR new file mode 100644 index 0000000..53a57bf --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/WEBCLASS.DSR @@ -0,0 +1,41 @@ +VERSION 5.00 +Begin {17016CEE-E118-11D0-94B8-00A0C91110ED} WebClass1 + ClientHeight = 5445 + ClientLeft = 750 + ClientTop = 1425 + ClientWidth = 7320 + _ExtentX = 9657 + _ExtentY = 8440 + MajorVersion = 0 + MinorVersion = 7 + StateManagementType= 1 + ASPFileName = "" + DIID_WebClass = "{12CBA1F6-9056-11D1-8544-00A024A55AB0}" + DIID_WebClassEvents= "{12CBA1F5-9056-11D1-8544-00A024A55AB0}" + TypeInfoCookie = 0 + BeginProperty WebItems {193556CD-4486-11D1-9C70-00C04FB987DF} + WebItemCount = 0 + EndProperty + NameInURL = "WebClass1" +End +Attribute VB_Name = "WebClass1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit +Option Compare Text + +Private Sub WebClass_Start() + + 'дһûĻش + With Response + .Write "" + .Write "" + .Write "

      WebClass1 ʼҳ

      " + .Write "

      Ӧ WebClass1 ʼ¼дġ

      " + .Write "" + .Write "" + End With + +End Sub diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/WEBCLASS.DSX b/cadVb/VB98/TEMPLATE/PROJECTS/WEBCLASS.DSX new file mode 100644 index 0000000..c47d1c3 Binary files /dev/null and b/cadVb/VB98/TEMPLATE/PROJECTS/WEBCLASS.DSX differ diff --git a/cadVb/VB98/TEMPLATE/PROJECTS/WIZMAN.VBZ b/cadVb/VB98/TEMPLATE/PROJECTS/WIZMAN.VBZ new file mode 100644 index 0000000..a8187aa --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROJECTS/WIZMAN.VBZ @@ -0,0 +1,4 @@ +VBWIZARD 5.0 +Wizard=WizMan6.Connect +Param="other information" + diff --git a/cadVb/VB98/TEMPLATE/PROPPAGE/VBPRPGWZ.VBZ b/cadVb/VB98/TEMPLATE/PROPPAGE/VBPRPGWZ.VBZ new file mode 100644 index 0000000..7b61acf --- /dev/null +++ b/cadVb/VB98/TEMPLATE/PROPPAGE/VBPRPGWZ.VBZ @@ -0,0 +1,3 @@ +VBWIZARD 5.0 +Wizard=PropertyPageWizard6.Wizard +Param="other information" diff --git a/cadVb/VB98/TEMPLATE/USERCTLS/COLORFUL.CTL b/cadVb/VB98/TEMPLATE/USERCTLS/COLORFUL.CTL new file mode 100644 index 0000000..9877ca9 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/USERCTLS/COLORFUL.CTL @@ -0,0 +1,56 @@ +VERSION 5.00 +Begin VB.UserControl Colorful + BackColor = &H000080FF& + ClientHeight = 3600 + ClientLeft = 0 + ClientTop = 0 + ClientWidth = 4800 + EditAtDesignTime= -1 'True + PaletteMode = 0 'Halftone + ScaleHeight = 240 + ScaleMode = 3 'Pixel + ScaleWidth = 320 + Begin VB.Shape Shape1 + BorderWidth = 5 + FillColor = &H0000FFFF& + FillStyle = 0 'Solid + Height = 1575 + Left = 0 + Shape = 2 'Oval + Top = 0 + Width = 1575 + End +End +Attribute VB_Name = "Colorful" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Public Property Get Color() As OLE_COLOR + Color = Shape1.FillColor +End Property + +Public Property Let Color(ByVal c As OLE_COLOR) + Shape1.FillColor = c +End Property + +Private Sub UserControl_Click() + Shape1.FillColor = &HFF0000 +End Sub + + +Private Sub UserControl_EnterFocus() + Shape1.BorderColor = &HFFFFFF +End Sub + +Private Sub UserControl_ExitFocus() + Shape1.BorderColor = &H0 +End Sub + +Private Sub UserControl_Resize() + d = Shape1.BorderWidth / 2 + Shape1.Left = d + Shape1.Top = d + Shape1.Width = ScaleWidth - d * 2 + Shape1.Height = ScaleHeight - d * 2 +End Sub diff --git a/cadVb/VB98/TEMPLATE/USERCTLS/EVENTS.CTL b/cadVb/VB98/TEMPLATE/USERCTLS/EVENTS.CTL new file mode 100644 index 0000000..e4bca0a --- /dev/null +++ b/cadVb/VB98/TEMPLATE/USERCTLS/EVENTS.CTL @@ -0,0 +1,139 @@ +VERSION 5.00 +Begin VB.UserControl Events + BackColor = &H80000001& + ClientHeight = 3180 + ClientLeft = 0 + ClientTop = 0 + ClientWidth = 3855 + FillColor = &H80000005& + ScaleHeight = 3180 + ScaleWidth = 3855 +End +Attribute VB_Name = "Events" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Private Sub UserControl_AccessKeyPress(KeyAscii As Integer) + Debug.Print "AccessKeyPress: " & KeyAscii +End Sub + +Private Sub UserControl_AmbientChanged(PropertyName As String) + If PropertyName = Null Or PropertyName = "" Then + Debug.Print "AmbientChanged: all" + Else + Debug.Print "AmbientChanged: " & PropertyName + End If +End Sub + +Private Sub UserControl_AsyncReadComplete(PropertyValue As AsyncProperty) + Debug.Print "AsyncReadComplete: " & PropertyValue.AsyncType & ", " & PropertyValue.PropertyName +End Sub + +Private Sub UserControl_Click() + Debug.Print "Click" +End Sub + +Private Sub UserControl_DblClick() + Debug.Print "DblClick" +End Sub + +Private Sub UserControl_DragDrop(Source As Control, x As Single, y As Single) + Debug.Print "DragDrop: " & Source.Name & ", " & x & ", " & y +End Sub + +Private Sub UserControl_DragOver(Source As Control, x As Single, y As Single, State As Integer) + Debug.Print "DragOver: " & Source.Name & ", " & x & ", " & y & ", " & State +End Sub + +Private Sub UserControl_EnterFocus() + Debug.Print "EnterFocus" +End Sub + +Private Sub UserControl_ExitFocus() + Debug.Print "ExitFocus" +End Sub + +Private Sub UserControl_GotFocus() + Debug.Print "GotFocus" +End Sub + +Private Sub UserControl_Initialize() + Debug.Print "Initialize" +End Sub + +Private Sub UserControl_InitProperties() + Debug.Print "InitProperties" +End Sub + +Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer) + Debug.Print "KeyDown: " & KeyCode & ", " & Shift +End Sub + +Private Sub UserControl_KeyPress(KeyAscii As Integer) + Debug.Print "KeyPress: " & KeyAscii +End Sub + +Private Sub UserControl_KeyUp(KeyCode As Integer, Shift As Integer) + Debug.Print "KeyUp: " & KeyCode & ", " & Shift +End Sub + +Private Sub UserControl_LostFocus() + Debug.Print "LostFocus" +End Sub + +Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) + Debug.Print "MouseDown: " & Button & ", " & Shift & ", " & x & ", " & y +End Sub + +Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) + Debug.Print "MouseMove: " & Button & ", " & Shift & ", " & x & ", " & y +End Sub + +Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) + Debug.Print "MouseUp: " & Button & ", " & Shift & ", " & x & ", " & y +End Sub + +Private Sub UserControl_OLECompleteDrag(Effect As Long) + Debug.Print "OLECompleteDrag: " & Effect +End Sub + +Private Sub UserControl_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) + Debug.Print "OLEDragDrop: " & Effect & ", " & Button & ", " & x & ", " & y +End Sub + +Private Sub UserControl_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer) + Debug.Print "OLEDragOver: " & Effect & ", " & Button & ", " & x & ", " & y +End Sub + +Private Sub UserControl_OLEGiveFeedback(Effect As Long, DefaultCursors As Boolean) + Debug.Print "OLEGiveFeedback: " & Effect & ", " & DefaultCursors +End Sub + +Private Sub UserControl_OLESetData(Data As DataObject, DataFormat As Integer) + Debug.Print "OLESetData: " & DataFormat +End Sub + +Private Sub UserControl_OLEStartDrag(Data As DataObject, AllowedEffects As Long) + Debug.Print "OLEStartDrag: " & AllowedEffects +End Sub + +Private Sub UserControl_Paint() + Debug.Print "Paint" +End Sub + +Private Sub UserControl_ReadProperties(PropBag As PropertyBag) + Debug.Print "ReadProperties" +End Sub + +Private Sub UserControl_Resize() + Debug.Print "Resize: " & Width & ", " & Height +End Sub + +Private Sub UserControl_Terminate() + Debug.Print "Terminate" +End Sub + +Private Sub UserControl_WriteProperties(PropBag As PropertyBag) + Debug.Print "WriteProperties" +End Sub diff --git a/cadVb/VB98/TEMPLATE/USERCTLS/VBCTLWIZ.VBZ b/cadVb/VB98/TEMPLATE/USERCTLS/VBCTLWIZ.VBZ new file mode 100644 index 0000000..730ffe9 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/USERCTLS/VBCTLWIZ.VBZ @@ -0,0 +1,4 @@ +VBWIZARD 5.0 +Wizard=ControlWiz6.Wizard +Param="other information" + diff --git a/cadVb/VB98/TEMPLATE/USERDOCS/VBAXDCWZ.VBZ b/cadVb/VB98/TEMPLATE/USERDOCS/VBAXDCWZ.VBZ new file mode 100644 index 0000000..70a2e39 --- /dev/null +++ b/cadVb/VB98/TEMPLATE/USERDOCS/VBAXDCWZ.VBZ @@ -0,0 +1,4 @@ +VBWIZARD 5.0 +Wizard=ActiveXDocumentWizard6.Wizard +Param="other information" + diff --git a/cadVb/VB98/TSQL/VBSDCCHS.DLL b/cadVb/VB98/TSQL/VBSDCCHS.DLL new file mode 100644 index 0000000..b26efae Binary files /dev/null and b/cadVb/VB98/TSQL/VBSDCCHS.DLL differ diff --git a/cadVb/VB98/TSQL/VBSDIADD.DLL b/cadVb/VB98/TSQL/VBSDIADD.DLL new file mode 100644 index 0000000..a81253f Binary files /dev/null and b/cadVb/VB98/TSQL/VBSDIADD.DLL differ diff --git a/cadVb/VB98/TSQL/VBSDICHS.DLL b/cadVb/VB98/TSQL/VBSDICHS.DLL new file mode 100644 index 0000000..f1a0609 Binary files /dev/null and b/cadVb/VB98/TSQL/VBSDICHS.DLL differ diff --git a/cadVb/VB98/TSQL/VBSDICLI.EXE b/cadVb/VB98/TSQL/VBSDICLI.EXE new file mode 100644 index 0000000..015ee57 Binary files /dev/null and b/cadVb/VB98/TSQL/VBSDICLI.EXE differ diff --git a/cadVb/VB98/TSQL/VBSDIDB.DLL b/cadVb/VB98/TSQL/VBSDIDB.DLL new file mode 100644 index 0000000..0cf3764 Binary files /dev/null and b/cadVb/VB98/TSQL/VBSDIDB.DLL differ diff --git a/cadVb/VB98/TSQL/VBSDIDB.SRG b/cadVb/VB98/TSQL/VBSDIDB.SRG new file mode 100644 index 0000000..2ab7dc5 --- /dev/null +++ b/cadVb/VB98/TSQL/VBSDIDB.SRG @@ -0,0 +1,2 @@ +[HKEY_CLASSES_ROOT\Licenses\a8a9f020-b426-11cf-bf3b-00a0d10003fa] +@ = "eesjgjnekjeeheijrfheiegepftigeljfepi" diff --git a/cadVb/VB98/VB6.EXE b/cadVb/VB98/VB6.EXE new file mode 100644 index 0000000..5e18397 Binary files /dev/null and b/cadVb/VB98/VB6.EXE differ diff --git a/cadVb/VB98/VB6.OLB b/cadVb/VB98/VB6.OLB new file mode 100644 index 0000000..f82231e Binary files /dev/null and b/cadVb/VB98/VB6.OLB differ diff --git a/cadVb/VB98/VB6DEBUG.DLL b/cadVb/VB98/VB6DEBUG.DLL new file mode 100644 index 0000000..e1e88c5 Binary files /dev/null and b/cadVb/VB98/VB6DEBUG.DLL differ diff --git a/cadVb/VB98/VB6EXT.OLB b/cadVb/VB98/VB6EXT.OLB new file mode 100644 index 0000000..d26bd33 Binary files /dev/null and b/cadVb/VB98/VB6EXT.OLB differ diff --git a/cadVb/VB98/VB6IDE.DLL b/cadVb/VB98/VB6IDE.DLL new file mode 100644 index 0000000..493891e Binary files /dev/null and b/cadVb/VB98/VB6IDE.DLL differ diff --git a/cadVb/VB98/VBA6.DLL b/cadVb/VB98/VBA6.DLL new file mode 100644 index 0000000..30fdb81 Binary files /dev/null and b/cadVb/VB98/VBA6.DLL differ diff --git a/cadVb/VB98/VBAEXE6.LIB b/cadVb/VB98/VBAEXE6.LIB new file mode 100644 index 0000000..f4a9028 Binary files /dev/null and b/cadVb/VB98/VBAEXE6.LIB differ diff --git a/cadVb/VB98/VBDATAVW.TLB b/cadVb/VB98/VBDATAVW.TLB new file mode 100644 index 0000000..43ba7b2 Binary files /dev/null and b/cadVb/VB98/VBDATAVW.TLB differ diff --git a/cadVb/VB98/VBEXT.SRG b/cadVb/VB98/VBEXT.SRG new file mode 100644 index 0000000..ef281c8 --- /dev/null +++ b/cadVb/VB98/VBEXT.SRG @@ -0,0 +1,12 @@ +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Visual Basic\Visual Basic 6.0] +@="HKEY_CURRENT_USER\\Software\\Microsoft\\Visual Basic\\6.0" + +// VB Supported Add-In load behaviors +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Visual Basic\Visual Basic 6.0\LoadBehaviors] +"None"="dword:00000000" +"Startup"="dword:00000001" +"Command Line"="dword:00000004" +"Command Line / Startup"="dword:00000005" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Addin Designer\Visual Basic\Visual Basic 6.0\Options] +"CommandLine"="dword:00000001" diff --git a/cadVb/VB98/VBHELP.SRG b/cadVb/VB98/VBHELP.SRG new file mode 100644 index 0000000..1af7ace --- /dev/null +++ b/cadVb/VB98/VBHELP.SRG @@ -0,0 +1,49 @@ +[HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Basic\6.0\Helpfiles] +"vbenlr98.chm"="" +"ADODC98.chm"="" +"APPWZD98.chm"="" +"bidi32.chm"="" +"CCRWZD98.chm"="" +"CLSWZD98.chm"="" +"CMCTL198.chm"="" +"CMCTL298.chm"="" +"cmctl398.chm"="" +"CMDLG98.chm"="" +"COMM98.chm"="" +"DATFRM98.chm"="" +"DatRpt98.chm"="" +"dbgrid98.chm"="" +"dblist98.chm"="" +"dowiz98.chm"="" +"FRMWIZ98.chm"="" +"INET98.chm"="" +"MAPI98.chm"="" +"masked98.chm"="" +"MMedia98.chm"="" +"MSCHRT98.chm"="" +"MSHFLX98.CHM"="" +"MSTAB98.chm"="" +"MSWNSK98.chm"="" +"PgDsr98.chm"="" +"PICCLP98.chm"="" +"PRPGWZ98.chm"="" +"RDO98.chm"="" +"resed98.chm"="" +"RTFBOX98.chm"="" +"SETPWZ98.chm"="" +"SYSINF98.chm"="" +"vb98.chm"="" +"VBCMN98.chm"="" +"VBEXT98.chm"="" +"Wizwiz98.chm"="" +"flxwz98.chm"="" +"chrtwz98.chm"="" +"dao351.chm"="" +"ssusexp.chm"="" +"vsape.chm"="" +"vstool1.chm"="" +"dsHelp.chm"="" +"vsintro.chm"="" +"daosdk.chm"="" +"ieref.chm"="" +"ado200.chm"="" diff --git a/cadVb/VB98/VBSCC.DLL b/cadVb/VB98/VBSCC.DLL new file mode 100644 index 0000000..c7728d1 Binary files /dev/null and b/cadVb/VB98/VBSCC.DLL differ diff --git a/cadVb/VB98/VISDATA.EXE b/cadVb/VB98/VISDATA.EXE new file mode 100644 index 0000000..71dcc95 Binary files /dev/null and b/cadVb/VB98/VISDATA.EXE differ diff --git a/cadVb/VB98/WIZARDS/AITOOL.DLL b/cadVb/VB98/WIZARDS/AITOOL.DLL new file mode 100644 index 0000000..fda72af Binary files /dev/null and b/cadVb/VB98/WIZARDS/AITOOL.DLL differ diff --git a/cadVb/VB98/WIZARDS/APPWIZ.OCX b/cadVb/VB98/WIZARDS/APPWIZ.OCX new file mode 100644 index 0000000..13b528b Binary files /dev/null and b/cadVb/VB98/WIZARDS/APPWIZ.OCX differ diff --git a/cadVb/VB98/WIZARDS/APPWZCHS.DLL b/cadVb/VB98/WIZARDS/APPWZCHS.DLL new file mode 100644 index 0000000..f7cd44d Binary files /dev/null and b/cadVb/VB98/WIZARDS/APPWZCHS.DLL differ diff --git a/cadVb/VB98/WIZARDS/AXDOCWIZ.DLL b/cadVb/VB98/WIZARDS/AXDOCWIZ.DLL new file mode 100644 index 0000000..bf456b9 Binary files /dev/null and b/cadVb/VB98/WIZARDS/AXDOCWIZ.DLL differ diff --git a/cadVb/VB98/WIZARDS/CHARTWIZ.OCX b/cadVb/VB98/WIZARDS/CHARTWIZ.OCX new file mode 100644 index 0000000..ad75d50 Binary files /dev/null and b/cadVb/VB98/WIZARDS/CHARTWIZ.OCX differ diff --git a/cadVb/VB98/WIZARDS/CHTWZCHS.DLL b/cadVb/VB98/WIZARDS/CHTWZCHS.DLL new file mode 100644 index 0000000..1b98476 Binary files /dev/null and b/cadVb/VB98/WIZARDS/CHTWZCHS.DLL differ diff --git a/cadVb/VB98/WIZARDS/CLSSBLD.DLL b/cadVb/VB98/WIZARDS/CLSSBLD.DLL new file mode 100644 index 0000000..c5cb2e8 Binary files /dev/null and b/cadVb/VB98/WIZARDS/CLSSBLD.DLL differ diff --git a/cadVb/VB98/WIZARDS/CTRLWIZ.DLL b/cadVb/VB98/WIZARDS/CTRLWIZ.DLL new file mode 100644 index 0000000..cdc76b7 Binary files /dev/null and b/cadVb/VB98/WIZARDS/CTRLWIZ.DLL differ diff --git a/cadVb/VB98/WIZARDS/DATAFORM.OCX b/cadVb/VB98/WIZARDS/DATAFORM.OCX new file mode 100644 index 0000000..a26bd73 Binary files /dev/null and b/cadVb/VB98/WIZARDS/DATAFORM.OCX differ diff --git a/cadVb/VB98/WIZARDS/DFWIZCHS.DLL b/cadVb/VB98/WIZARDS/DFWIZCHS.DLL new file mode 100644 index 0000000..2b7f621 Binary files /dev/null and b/cadVb/VB98/WIZARDS/DFWIZCHS.DLL differ diff --git a/cadVb/VB98/WIZARDS/FLEXWIZ.OCX b/cadVb/VB98/WIZARDS/FLEXWIZ.OCX new file mode 100644 index 0000000..c980dd8 Binary files /dev/null and b/cadVb/VB98/WIZARDS/FLEXWIZ.OCX differ diff --git a/cadVb/VB98/WIZARDS/FLXWZCHS.DLL b/cadVb/VB98/WIZARDS/FLXWZCHS.DLL new file mode 100644 index 0000000..96db3ee Binary files /dev/null and b/cadVb/VB98/WIZARDS/FLXWZCHS.DLL differ diff --git a/cadVb/VB98/WIZARDS/MSDATOBJ.DLL b/cadVb/VB98/WIZARDS/MSDATOBJ.DLL new file mode 100644 index 0000000..ab63c22 Binary files /dev/null and b/cadVb/VB98/WIZARDS/MSDATOBJ.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/DLGOBJS.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/DLGOBJS.DLL new file mode 100644 index 0000000..336a152 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/DLGOBJS.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/MAKECAB.EXE b/cadVb/VB98/WIZARDS/PDWIZARD/MAKECAB.EXE new file mode 100644 index 0000000..ea5a11f Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/MAKECAB.EXE differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/PDADDIN.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/PDADDIN.DLL new file mode 100644 index 0000000..bd8fc98 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/PDADDIN.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/PDCMDLN.EXE b/cadVb/VB98/WIZARDS/PDWIZARD/PDCMDLN.EXE new file mode 100644 index 0000000..7bb3ad0 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/PDCMDLN.EXE differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/PDWIZARD.OCX b/cadVb/VB98/WIZARDS/PDWIZARD/PDWIZARD.OCX new file mode 100644 index 0000000..e575dc5 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/PDWIZARD.OCX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/PDWIZCHS.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/PDWIZCHS.DLL new file mode 100644 index 0000000..bf4eefe Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/PDWIZCHS.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/CO2C40EN.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/CO2C40EN.DLL new file mode 100644 index 0000000..7476a88 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/CO2C40EN.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/COMCAT.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/COMCAT.DLL new file mode 100644 index 0000000..613109a Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/COMCAT.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/GAPI32.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/GAPI32.DLL new file mode 100644 index 0000000..12d83ae Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/GAPI32.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MDAC_TYP.EXE b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MDAC_TYP.EXE new file mode 100644 index 0000000..a6f3b71 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MDAC_TYP.EXE differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MFC40.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MFC40.DLL new file mode 100644 index 0000000..e77663a Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MFC40.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MSVCRT20.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MSVCRT20.DLL new file mode 100644 index 0000000..ccf84ea Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MSVCRT20.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MSVCRT40.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MSVCRT40.DLL new file mode 100644 index 0000000..2eb729a Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/MSVCRT40.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/RICHED32.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/RICHED32.DLL new file mode 100644 index 0000000..66367f0 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/REDIST/RICHED32.DLL differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP.EXE b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP.EXE new file mode 100644 index 0000000..80d8506 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP.EXE differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1.EXE b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1.EXE new file mode 100644 index 0000000..bf99b6c Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1.EXE differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/BEGIN.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/BEGIN.FRM new file mode 100644 index 0000000..172c586 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/BEGIN.FRM @@ -0,0 +1,231 @@ +VERSION 5.00 +Begin VB.Form frmBegin + BorderStyle = 3 'Fixed Dialog + Caption = "#" + ClientHeight = 3540 + ClientLeft = 1740 + ClientTop = 1410 + ClientWidth = 7545 + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Icon = "begin.frx":0000 + LinkMode = 1 'Source + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3540 + ScaleWidth = 7545 + Begin VB.CommandButton cmdInstall + Default = -1 'True + Height = 1080 + Left = 330 + MaskColor = &H0000FF00& + Picture = "begin.frx":0442 + Style = 1 'Graphical + TabIndex = 0 + Top = 510 + UseMaskColor = -1 'True + Width = 1170 + End + Begin VB.Frame fraDir + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 660 + Left = 135 + TabIndex = 5 + Top = 2010 + Width = 7296 + Begin VB.CommandButton cmdChDir + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 390 + Left = 4890 + MaskColor = &H00000000& + TabIndex = 1 + Top = 195 + Width = 2310 + End + Begin VB.Label lblDestDir + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 240 + Left = 135 + TabIndex = 6 + Top = 300 + Width = 4440 + End + End + Begin VB.CommandButton cmdExit + Cancel = -1 'True + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 420 + Left = 2610 + MaskColor = &H00000000& + TabIndex = 2 + Top = 3030 + Width = 2205 + End + Begin VB.Line linTopOfExitButtonIfNoDestDir + Visible = 0 'False + X1 = 2670 + X2 = 4725 + Y1 = 2280 + Y2 = 2280 + End + Begin VB.Label lblInstallMsg + AutoSize = -1 'True + Caption = "*" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 180 + Left = 1725 + TabIndex = 4 + Top = 915 + Width = 5565 + WordWrap = -1 'True + End + Begin VB.Label lblBegin + AutoSize = -1 'True + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 180 + Left = 285 + TabIndex = 3 + Top = 135 + Width = 6450 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmBegin" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text + +' Constants/Types for a simulated "picture button" +Const x3DLineWidth = 1 '"Width" of highlight/shadow "lines" +Const y3DLineWidth = x3DLineWidth +Const pbXDeltaMouseDown = x3DLineWidth +Const pbYDeltaMouseDown = y3DLineWidth + +Private fMouseDown As Boolean + +Private Sub cmdChDir_Click() + ShowPathDialog gstrDIR_DEST + + If gfRetVal = gintRET_CONT Then + lblDestDir.Caption = gstrDestDir + cmdInstall.SetFocus + End If +End Sub + +Private Sub cmdExit_Click() + ExitSetup Me, gintRET_EXIT +End Sub + + +Private Sub cmdInstall_Click() + If IsValidDestDir(gstrDestDir) = True Then + Unload Me + DoEvents + End If +End Sub + +Private Sub Form_Load() + SetFormFont Me + fraDir.Caption = ResolveResString(resFRMDIRECTORY) + cmdChDir.Caption = ResolveResString(resBTNCHGDIR) + cmdExit.Caption = ResolveResString(resBTNEXIT) + lblBegin.Caption = ResolveResString(resLBLBEGIN) + cmdInstall.ToolTipText = ResolveResString(resBTNTOOLTIPBEGIN) + + Caption = gstrTitle + lblInstallMsg.Caption = ResolveResString(IIf(gfForceUseDefDest, resSPECNODEST, resSPECDEST), "|1", gstrAppName) + lblDestDir.Caption = gstrDestDir + + If gfForceUseDefDest Then + 'We are forced to use the default destination directory, so the user + ' will not be able to change it. + fraDir.Visible = False + + 'Close in the blank space on the form by moving the Exit button to where this frame + 'currently is, and adjusting the size of the form respectively + Dim yAdjust As Integer + yAdjust = cmdExit.Top - linTopOfExitButtonIfNoDestDir.Y1 + cmdExit.Top = cmdExit.Top - yAdjust + Height = Height - yAdjust + + EtchedLine Me, fraDir.Left, cmdExit.Top - cmdExit.Height \ 2, fraDir.Width + Else + EtchedLine Me, fraDir.Left, cmdExit.Top - cmdExit.Height \ 2, fraDir.Width + End If + + CenterForm Me +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + If UnloadMode <> 1 Then + ExitSetup Me, gintRET_EXIT + Cancel = 1 + End If +End Sub + + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/BEGIN.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/BEGIN.FRX new file mode 100644 index 0000000..53885a8 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/BEGIN.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMON.BAS b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMON.BAS new file mode 100644 index 0000000..f9f98c5 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMON.BAS @@ -0,0 +1,2354 @@ +Attribute VB_Name = "basCommon" +Option Explicit +Option Compare Text + +' +' Global Constants +' + +Global Const gstrSEP_DIR$ = "\" ' Directory separator character +Global Const gstrSEP_AMPERSAND$ = "@" +Global Const gstrSEP_REGKEY$ = "\" ' Registration key separator character. +Global Const gstrSEP_DRIVE$ = ":" ' Driver separater character, e.g., C:\ +Global Const gstrSEP_DIRALT$ = "/" ' Alternate directory separator character +Global Const gstrSEP_EXT$ = "." ' Filename extension separator character +Global Const gstrSEP_PROGID = "." +Global Const gstrSEP_FILE$ = "|" ' Use the character for delimiting filename lists because it is not a valid character in a filename. +Global Const gstrSEP_LIST = "|" +Global Const gstrSEP_URL$ = "://" ' Separator that follows HPPT in URL address +Global Const gstrSEP_URLDIR$ = "/" ' Separator for dividing directories in URL addresses. + +Global Const gstrUNC$ = "\\" 'UNC specifier \\ +Global Const gstrCOLON$ = ":" +Global Const gstrSwitchPrefix1 = "-" +Global Const gstrSwitchPrefix2 = "/" +Global Const gstrCOMMA$ = "," +Global Const gstrDECIMAL$ = "." +Global Const gstrQUOTE$ = """" +Global Const gstrCCOMMENT$ = "//" ' Comment specifier used in C, etc. +Global Const gstrASSIGN$ = "=" +Global Const gstrINI_PROTOCOL = "Protocol" +Global Const gstrREMOTEAUTO = "RA" +Global Const gstrDCOM = "DCOM" + +Global Const gintMAX_SIZE% = 255 'Maximum buffer size +Global Const gintMAX_PATH_LEN% = 260 ' Maximum allowed path length including path, filename, + ' and command line arguments for NT (Intel) and Win95. +Global Const gintMAX_GROUPNAME_LEN% = 30 ' Maximum length that we allow for an NT 3.51 group name. +Global Const gintMIN_BUTTONWIDTH% = 1200 +Global Const gsngBUTTON_BORDER! = 1.4 + +Global Const intDRIVE_REMOVABLE% = 2 'Constants for GetDriveType +Global Const intDRIVE_FIXED% = 3 +Global Const intDRIVE_REMOTE% = 4 +Global Const intDRIVE_CDROM% = 5 +Global Const intDRIVE_RAMDISK% = 6 + +Global Const gintNOVERINFO% = 32767 'flag indicating no version info + +'File names +Global Const gstrFILE_SETUP$ = "SETUP.LST" 'Name of setup information file +Global Const gstrTEMP_DIR$ = "TEMP" +Global Const gstrTMP_DIR$ = "TMP" + +'Share type macros for files +Global Const mstrPRIVATEFILE = "" +Global Const mstrSHAREDFILE = "$(Shared)" + +'INI File keys +Global Const gstrINI_FILES$ = "Setup1 Files" 'default section to install +Global Const gstrINI_SETUP$ = "Setup" +Global Const gstrINI_COLOR$ = "Color" +Global Const gstrINI_BOOT$ = "Bootstrap" +Global Const gstrINI_APPNAME$ = "Title" +Global Const gstrINI_CABS$ = "Cabs" +Global Const gstrINI_APPDIR$ = "DefaultDir" +Global Const gstrINI_APPEXE$ = "AppExe" +Global Const gstrINI_APPTOUNINSTALL = "AppToUninstall" +Global Const gstrINI_APPPATH$ = "AppPath" +Global Const gstrINI_FORCEUSEDEFDEST = "ForceUseDefDir" +Global Const gstrINI_DEFGROUP$ = "DefProgramGroup" +Global Const gstrINI_CABNAME$ = "CabFile" +Global Const gsPRIVATE As String = "PrivateGroup" + +Global Const gstrEXT_DEP$ = "DEP" + +'Setup information file macros +Global Const gstrAPPDEST$ = "$(AppPath)" +Global Const gstrWINDEST$ = "$(WinPath)" +Global Const gstrFONTDEST$ = "$(Font)" +Global Const gstrWINSYSDEST$ = "$(WinSysPath)" +Global Const gstrWINSYSDESTSYSFILE$ = "$(WinSysPathSysFile)" +Global Const gstrPROGRAMFILES$ = "$(ProgramFiles)" +Global Const gstrCOMMONFILES$ = "$(CommonFiles)" +Global Const gstrCOMMONFILESSYS$ = "$(CommonFilesSys)" +Global Const gstrDAODEST$ = "$(MSDAOPath)" +Global Const gstrDONOTINSTALL$ = "$(DoNotInstall)" + +Global Const gsZERO As String = "0" +'Mouse Pointer Constants +Global Const gintMOUSE_DEFAULT% = 0 + +'MsgError() Constants +Global Const MSGERR_ERROR = 1 +Global Const MSGERR_WARNING = 2 + +'Shell Constants +Global Const NORMAL_PRIORITY_CLASS As Long = &H20& +Global Const INFINITE As Long = -1& + +Global Const STATUS_WAIT_0 As Long = &H0 +Global Const STATUS_ABANDONED_WAIT_0 As Long = &H80 +Global Const STATUS_USER_APC As Long = &HC0 +Global Const STATUS_TIMEOUT As Long = &H102 +Global Const STATUS_PENDING As Long = &H103 + +Global Const WAIT_FAILED As Long = &HFFFFFFFF +Global Const WAIT_OBJECT_0 As Long = STATUS_WAIT_0 +Global Const WAIT_TIMEOUT As Long = STATUS_TIMEOUT + +Global Const WAIT_ABANDONED As Long = STATUS_ABANDONED_WAIT_0 +Global Const WAIT_ABANDONED_0 As Long = STATUS_ABANDONED_WAIT_0 + +Global Const WAIT_IO_COMPLETION As Long = STATUS_USER_APC +Global Const STILL_ACTIVE As Long = STATUS_PENDING + +'GetLocaleInfo constants +Global Const LOCALE_FONTSIGNATURE = &H58& ' font signature +Global Const LOCALE_SLANGUAGE = &H2 +Global Const LOCALE_SABBREVLANGNAME = &H3 + +Global Const TCI_SRCFONTSIG = 3 + +Global Const LANG_CHINESE = &H4 +Global Const SUBLANG_CHINESE_TRADITIONAL = &H1 ' Chinese (Taiwan) +Global Const SUBLANG_CHINESE_SIMPLIFIED = &H2 ' Chinese (PR China) +Global Const CHARSET_CHINESESIMPLIFIED = 134 +Global Const CHARSET_CHINESEBIG5 = 136 + +Global Const LANG_JAPANESE = &H11 +Global Const CHARSET_SHIFTJIS = 128 + +Global Const LANG_KOREAN = &H12 +Global Const SUBLANG_KOREAN = &H1 ' Korean (Extended Wansung) +Global Const SUBLANG_KOREAN_JOHAB = &H2 ' Korean (Johab) +Global Const CHARSET_HANGEUL = 129 + +Public Type STARTUPINFO + cb As Long + lpReserved As Long + lpDesktop As Long + lpTitle As Long + dwX As Long + dwY As Long + dwXSize As Long + dwYSize As Long + dwXCountChars As Long + dwYCountChars As Long + dwFillAttribute As Long + dwFlags As Long + wShowWindow As Integer + cbReserved2 As Integer + lpReserved2 As Long + hStdInput As Long + hStdOutput As Long + hStdError As Long +End Type + +Public Type PROCESS_INFORMATION + hProcess As Long + hThread As Long + dwProcessID As Long + dwThreadID As Long +End Type + +Type OFSTRUCT + cBytes As Byte + fFixedDisk As Byte + nErrCode As Integer + nReserved1 As Integer + nReserved2 As Integer + szPathName As String * 256 +End Type + +Type VERINFO 'Version FIXEDFILEINFO + 'There is data in the following two dwords, but it is for Windows internal + ' use and we should ignore it + Ignore(1 To 8) As Byte + 'Signature As Long + 'StrucVersion As Long + FileVerPart2 As Integer + FileVerPart1 As Integer + FileVerPart4 As Integer + FileVerPart3 As Integer + ProductVerPart2 As Integer + ProductVerPart1 As Integer + ProductVerPart4 As Integer + ProductVerPart3 As Integer + FileFlagsMask As Long 'VersionFileFlags + FileFlags As Long 'VersionFileFlags + FileOS As Long 'VersionOperatingSystemTypes + FileType As Long + FileSubtype As Long 'VersionFileSubTypes + 'I've never seen any data in the following two dwords, so I'll ignore them + Ignored(1 To 8) As Byte 'DateHighPart As Long, DateLowPart As Long +End Type + +Type PROTOCOL + strName As String + strFriendlyName As String +End Type + +Type OSVERSIONINFO 'for GetVersionEx API call + dwOSVersionInfoSize As Long + dwMajorVersion As Long + dwMinorVersion As Long + dwBuildNumber As Long + dwPlatformId As Long + szCSDVersion As String * 128 +End Type + +Type LOCALESIGNATURE + lsUsb(3) As Long + lsCsbDefault(1) As Long + lsCsbSupported(1) As Long +End Type +Type FONTSIGNATURE + fsUsb(3) As Long + fsCsb(1) As Long +End Type +Type CHARSETINFO + ciCharset As Long + ciACP As Long + fs As FONTSIGNATURE +End Type + +Global Const OF_EXIST& = &H4000& +Global Const OF_SEARCH& = &H400& +Global Const HFILE_ERROR% = -1 + +' +' Global variables used for silent and SMS installation +' +Public gfSilent As Boolean ' Whether or not we are doing a silent install +Public gstrSilentLog As String ' filename for output during silent install. +Public gfSMS As Boolean ' Whether or not we are doing an SMS silent install +Public gstrMIFFile As String ' status output file for SMS +Public gfSMSStatus As Boolean ' status of SMS installation +Public gstrSMSDescription As String ' description string written to MIF file for SMS installation +Public gfNoUserInput As Boolean ' True if either gfSMS or gfSilent is True +Public gfDontLogSMS As Boolean ' Prevents MsgFunc from being logged to SMS (e.g., for confirmation messasges) +Global Const MAX_SMS_DESCRIP = 255 ' SMS does not allow description strings longer than 255 chars. + +'Variables for caching font values +Private m_sFont As String ' the cached name of the font +Private m_nFont As Integer ' the cached size of the font +Private m_nCharset As Integer ' the cached charset of the font + + +Global Const gsSTARTMENUKEY As String = "$(Start Menu)" +Global Const gsPROGMENUKEY As String = "$(Programs)" +Global Const gsSTART As String = "StartIn" +Global Const gsPARENT As String = "Parent" + +' +'List of available protocols +' +Global gProtocol() As PROTOCOL +Global gcProtocols As Integer +' +' AXDist.exe and wint351.exe needed. These are self extracting exes +' that install other files not installed by setup1. +' +Public gfAXDist As Boolean +Global Const gstrFILE_AXDIST = "AXDIST.EXE" +Public gstrAXDISTInstallPath As String +Public gfAXDistChecked As Boolean +Public gfMDag As Boolean +Global Const gstrFILE_MDAG = "mdac_typ.exe" +Global Const gstrFILE_MDAGARGS = " /q:a /c:""setup.exe /QN1""" +Public gstrMDagInstallPath As String +Public gfWINt351 As Boolean +Global Const gstrFILE_WINT351 = "WINt351.EXE" +Public gstrWINt351InstallPath As String +Public gfWINt351Checked As Boolean +' +'API/DLL Declarations for 32 bit SetupToolkit +' +Declare Function SetTime Lib "vb6stkit.dll" (ByVal strFileGetTime As String, ByVal strFileSetTime As String) As Integer +Declare Function DLLSelfRegister Lib "vb6stkit.dll" (ByVal lpDllName As String) As Integer +Declare Function RegisterTLB Lib "vb6stkit.dll" (ByVal lpTLBName As String) As Integer +Declare Function OSfCreateShellLink Lib "vb6stkit.dll" Alias "fCreateShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As Long +Declare Function OSfRemoveShellLink Lib "vb6stkit.dll" Alias "fRemoveShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String) As Long +Declare Function GetSystemDefaultLCID Lib "Kernel32" () As Long +Declare Function GetLocaleInfoLS Lib "Kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, lpLCData As LOCALESIGNATURE, ByVal cchData As Long) As Long +Declare Function TranslateCharsetInfo Lib "gdi32" (lpSrc As Long, lpcs As CHARSETINFO, ByVal dwFlags As Long) As Long + +Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long) +Declare Function WaitForSingleObject Lib "Kernel32" (ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long +Declare Function InputIdle Lib "user32" Alias "WaitForInputIdle" (ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long +Declare Function CreateProcessA Lib "Kernel32" (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long +Declare Function GetExitCodeProcess Lib "Kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long +Declare Function CloseHandle Lib "Kernel32" (ByVal hObject As Long) As Long +Declare Function GetDiskFreeSpace Lib "Kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long +Declare Function OpenFile Lib "Kernel32" (ByVal lpFilename As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long +Declare Function GetFullPathName Lib "Kernel32" Alias "GetFullPathNameA" (ByVal lpFilename As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long +Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal lSize As Long, ByVal lpFilename As String) As Long +Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As Any, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lplFilename As String) As Long +Declare Function GetPrivateProfileSection Lib "Kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFilename As String) As Long +Declare Function GetPrivateProfileSectionNames Lib "Kernel32" Alias "GetPrivateProfileSectionNamesA" (ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFilename As String) As Long +Declare Function GetWindowsDirectory Lib "Kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long +Declare Function GetSystemDirectory Lib "Kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long +Declare Function GetDriveType32 Lib "Kernel32" Alias "GetDriveTypeA" (ByVal strWhichDrive As String) As Long +Declare Function GetTempFilename32 Lib "Kernel32" Alias "GetTempFileNameA" (ByVal strWhichDrive As String, ByVal lpPrefixString As String, ByVal wUnique As Integer, ByVal lpTempFilename As String) As Long +Declare Function GetTempPath Lib "Kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long +Declare Function SendMessageString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long +Global Const LB_FINDSTRINGEXACT = &H1A2 +Global Const LB_ERR = (-1) + +Declare Function GetUserDefaultLCID Lib "Kernel32" () As Long +Declare Sub GetLocaleInfoA Lib "Kernel32" (ByVal lLCID As Long, ByVal lLCTYPE As Long, ByVal strLCData As String, ByVal lDataLen As Long) + +Declare Function VerInstallFile Lib "version.dll" Alias "VerInstallFileA" (ByVal Flags&, ByVal SrcName$, ByVal DestName$, ByVal SrcDir$, ByVal DestDir$, ByVal CurrDir As Any, ByVal TmpName$, lpTmpFileLen&) As Long +Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" (ByVal sFile As String, lpLen) As Long +Declare Function GetFileVersionInfo Lib "version.dll" Alias "GetFileVersionInfoA" (ByVal sFile As String, ByVal lpIgnored As Long, ByVal lpSize As Long, ByVal lpBuf As Long) As Long +Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValueA" (ByVal lpBuf As Long, ByVal szReceive As String, lpBufPtr As Long, lLen As Long) As Long +Declare Function OSGetShortPathName Lib "Kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long +Declare Function GetVersionEx Lib "Kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long + +' Reboot system code +Public Const EWX_REBOOT = 2 +Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long + +'---------------------------------------------------------- +' FUNCTION: GetWinPlatform +' Get the current windows platform. +' --------------------------------------------------------- +Public Function GetWinPlatform() As Long + + Dim osvi As OSVERSIONINFO + Dim strCSDVersion As String + osvi.dwOSVersionInfoSize = Len(osvi) + If GetVersionEx(osvi) = 0 Then + Exit Function + End If + GetWinPlatform = osvi.dwPlatformId +End Function + +'----------------------------------------------------------- +' SUB: AddDirSep +' Add a trailing directory path separator (back slash) to the +' end of a pathname unless one already exists +' +' IN/OUT: [strPathName] - path to add separator to +'----------------------------------------------------------- +' +Sub AddDirSep(strPathName As String) + If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _ + Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then + strPathName = RTrim$(strPathName) & gstrSEP_DIR + End If +End Sub +'----------------------------------------------------------- +' SUB: AddURLDirSep +' Add a trailing URL path separator (forward slash) to the +' end of a URL unless one (or a back slash) already exists +' +' IN/OUT: [strPathName] - path to add separator to +'----------------------------------------------------------- +' +Sub AddURLDirSep(strPathName As String) + If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _ + Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then + strPathName = Trim(strPathName) & gstrSEP_URLDIR + End If +End Sub + +'----------------------------------------------------------- +' FUNCTION: FileExists +' Determines whether the specified file exists +' +' IN: [strPathName] - file to check for +' +' Returns: True if file exists, False otherwise +'----------------------------------------------------------- +' +Function FileExists(ByVal strPathName As String) As Integer + Dim intFileNum As Integer + + On Error Resume Next + + ' + ' If the string is quoted, remove the quotes. + ' + strPathName = strUnQuoteString(strPathName) + ' + 'Remove any trailing directory separator character + ' + If Right$(strPathName, 1) = gstrSEP_DIR Then + strPathName = Left$(strPathName, Len(strPathName) - 1) + End If + + ' + 'Attempt to open the file, return value of this function is False + 'if an error occurs on open, True otherwise + ' + intFileNum = FreeFile + Open strPathName For Input As intFileNum + + FileExists = IIf(Err = 0, True, False) + + Close intFileNum + + Err = 0 +End Function + +'----------------------------------------------------------- +' FUNCTION: DirExists +' +' Determines whether the specified directory name exists. +' This function is used (for example) to determine whether +' an installation floppy is in the drive by passing in +' something like 'A:\'. +' +' IN: [strDirName] - name of directory to check for +' +' Returns: True if the directory exists, False otherwise +'----------------------------------------------------------- +' +Public Function DirExists(ByVal strDirName As String) As Integer + Const strWILDCARD$ = "*.*" + + Dim strDummy As String + + On Error Resume Next + + AddDirSep strDirName + strDummy = Dir$(strDirName & strWILDCARD, vbDirectory) + DirExists = Not (strDummy = vbNullString) + + Err = 0 +End Function + +'----------------------------------------------------------- +' FUNCTION: GetDriveType +' Determine whether a disk is fixed, removable, etc. by +' calling Windows GetDriveType() +'----------------------------------------------------------- +' +Function GetDriveType(ByVal intDriveNum As Integer) As Integer + ' + ' This function expects an integer drive number in Win16 or a string in Win32 + ' + Dim strDriveName As String + + strDriveName = Chr$(Asc("A") + intDriveNum) & gstrSEP_DRIVE & gstrSEP_DIR + GetDriveType = CInt(GetDriveType32(strDriveName)) +End Function + +'----------------------------------------------------------- +' FUNCTION: ReadProtocols +' Reads the allowable protocols from the specified file. +' +' IN: [strInputFilename] - INI filename from which to read the protocols +' [strINISection] - Name of the INI section +'----------------------------------------------------------- +Function ReadProtocols(ByVal strInputFilename As String, ByVal strINISection As String) As Boolean + Dim intIdx As Integer + Dim fOk As Boolean + Dim strInfo As String + Dim intOffset As Integer + + intIdx = 0 + fOk = True + Erase gProtocol + gcProtocols = 0 + + Do + strInfo = ReadIniFile(strInputFilename, strINISection, gstrINI_PROTOCOL & Format$(intIdx + 1)) + If strInfo <> vbNullString Then + intOffset = InStr(strInfo, gstrCOMMA) + If intOffset > 0 Then + 'The "ugly" name will be first on the line + ReDim Preserve gProtocol(intIdx + 1) + gcProtocols = intIdx + 1 + gProtocol(intIdx + 1).strName = Left$(strInfo, intOffset - 1) + + '... followed by the friendly name + gProtocol(intIdx + 1).strFriendlyName = Mid$(strInfo, intOffset + 1) + If (gProtocol(intIdx + 1).strName = "") Or (gProtocol(intIdx + 1).strFriendlyName = "") Then + fOk = False + End If + Else + fOk = False + End If + + If Not fOk Then + Exit Do + Else + intIdx = intIdx + 1 + End If + End If + Loop While strInfo <> vbNullString + + ReadProtocols = fOk +End Function + +'----------------------------------------------------------- +' FUNCTION: ResolveResString +' Reads resource and replaces given macros with given values +' +' Example, given a resource number 14: +' "Could not read '|1' in drive |2" +' The call +' ResolveResString(14, "|1", "TXTFILE.TXT", "|2", "A:") +' would return the string +' "Could not read 'TXTFILE.TXT' in drive A:" +' +' IN: [resID] - resource identifier +' [varReplacements] - pairs of macro/replacement value +'----------------------------------------------------------- +' +Public Function ResolveResString(ByVal resID As Integer, ParamArray varReplacements() As Variant) As String + Dim intMacro As Integer + Dim strResString As String + + strResString = LoadResString(resID) + + ' For each macro/value pair passed in... + For intMacro = LBound(varReplacements) To UBound(varReplacements) Step 2 + Dim strMacro As String + Dim strValue As String + + strMacro = varReplacements(intMacro) + On Error GoTo MismatchedPairs + strValue = varReplacements(intMacro + 1) + On Error GoTo 0 + + ' Replace all occurrences of strMacro with strValue + Dim intPos As Integer + Do + intPos = InStr(strResString, strMacro) + If intPos > 0 Then + strResString = Left$(strResString, intPos - 1) & strValue & Right$(strResString, Len(strResString) - Len(strMacro) - intPos + 1) + End If + Loop Until intPos = 0 + Next intMacro + + ResolveResString = strResString + + Exit Function + +MismatchedPairs: + Resume Next +End Function +'----------------------------------------------------------- +' SUB: GetLicInfoFromVBL +' Parses a VBL file name and extracts the license key for +' the registry and license information. +' +' IN: [strVBLFile] - must be a valid VBL. +' +' OUT: [strLicKey] - registry key to write license info to. +' This key will be added to +' HKEY_CLASSES_ROOT\Licenses. It is a +' guid. +' OUT: [strLicVal] - license information. Usually in the +' form of a string of cryptic characters. +'----------------------------------------------------------- +' +Public Sub GetLicInfoFromVBL(strVBLFile As String, strLicKey As String, strLicVal As String) + Dim fn As Integer + Const strREGEDIT = "REGEDIT" + Const strLICKEYBASE = "HKEY_CLASSES_ROOT\Licenses\" + Dim strTemp As String + Dim posEqual As Integer + Dim fLicFound As Boolean + + fn = FreeFile + Open strVBLFile For Input Access Read Lock Read Write As #fn + ' + ' Read through the file until we find a line that starts with strLICKEYBASE + ' + fLicFound = False + Do While Not EOF(fn) + Line Input #fn, strTemp + strTemp = Trim(strTemp) + If Left$(strTemp, Len(strLICKEYBASE)) = strLICKEYBASE Then + ' + ' We've got the line we want. + ' + fLicFound = True + Exit Do + End If + Loop + + Close fn + + If fLicFound Then + ' + ' Parse the data on this line to split out the + ' key and the license info. The line should be + ' the form of: + ' "HKEY_CLASSES_ROOT\Licenses\ = " + ' + posEqual = InStr(strTemp, gstrASSIGN) + If posEqual > 0 Then + strLicKey = Mid$(Trim(Left$(strTemp, posEqual - 1)), Len(strLICKEYBASE) + 1) + strLicVal = Trim(Mid$(strTemp, posEqual + 1)) + End If + Else + strLicKey = vbNullString + strLicVal = vbNullString + End If +End Sub + + '----------------------------------------------------------- + ' FUNCTION GetLongPathName + ' + ' Retrieve the long pathname version of a path possibly + ' containing short subdirectory and/or file names + '----------------------------------------------------------- + ' + Function GetLongPathName(ByVal strShortPath As String) As String + On Error GoTo 0 + + MakeLongPath (strShortPath) + GetLongPathName = StripTerminator(strShortPath) + End Function + + '----------------------------------------------------------- + ' FUNCTION GetShortPathName + ' + ' Retrieve the short pathname version of a path possibly + ' containing long subdirectory and/or file names + '----------------------------------------------------------- + ' + Function GetShortPathName(ByVal strLongPath As String) As String + Const cchBuffer = 300 + Dim strShortPath As String + Dim lResult As Long + + On Error GoTo 0 + strShortPath = String(cchBuffer, Chr$(0)) + lResult = OSGetShortPathName(strLongPath, strShortPath, cchBuffer) + If lResult = 0 Then + 'Error 53 ' File not found + 'Vegas#51193, just use the long name as this is usually good enough + GetShortPathName = strLongPath + Else + GetShortPathName = StripTerminator(strShortPath) + End If + End Function + +'----------------------------------------------------------- +' FUNCTION: GetTempFilename +' Get a temporary filename for a specified drive and +' filename prefix +' PARAMETERS: +' strDestPath - Location where temporary file will be created. If this +' is an empty string, then the location specified by the +' tmp or temp environment variable is used. +' lpPrefixString - First three characters of this string will be part of +' temporary file name returned. +' wUnique - Set to 0 to create unique filename. Can also set to integer, +' in which case temp file name is returned with that integer +' as part of the name. +' lpTempFilename - Temporary file name is returned as this variable. +' RETURN: +' True if function succeeds; false otherwise +'----------------------------------------------------------- +' +Function GetTempFilename(ByVal strDestPath As String, ByVal lpPrefixString As String, ByVal wUnique As Integer, lpTempFilename As String) As Boolean + If strDestPath = vbNullString Then + ' + ' No destination was specified, use the temp directory. + ' + strDestPath = String(gintMAX_PATH_LEN, vbNullChar) + If GetTempPath(gintMAX_PATH_LEN, strDestPath) = 0 Then + GetTempFilename = False + Exit Function + End If + End If + lpTempFilename = String(gintMAX_PATH_LEN, vbNullChar) + GetTempFilename = GetTempFilename32(strDestPath, lpPrefixString, wUnique, lpTempFilename) > 0 + lpTempFilename = StripTerminator(lpTempFilename) +End Function +'----------------------------------------------------------- +' FUNCTION: GetDefMsgBoxButton +' Decode the flags passed to the MsgBox function to +' determine what the default button is. Use this +' for silent installs. +' +' IN: [intFlags] - Flags passed to MsgBox +' +' Returns: VB defined number for button +' vbOK 1 OK button pressed. +' vbCancel 2 Cancel button pressed. +' vbAbort 3 Abort button pressed. +' vbRetry 4 Retry button pressed. +' vbIgnore 5 Ignore button pressed. +' vbYes 6 Yes button pressed. +' vbNo 7 No button pressed. +'----------------------------------------------------------- +' +Function GetDefMsgBoxButton(intFlags) As Integer + ' + ' First determine the ordinal of the default + ' button on the message box. + ' + Dim intButtonNum As Integer + Dim intDefButton As Integer + + If (intFlags And vbDefaultButton2) = vbDefaultButton2 Then + intButtonNum = 2 + ElseIf (intFlags And vbDefaultButton3) = vbDefaultButton3 Then + intButtonNum = 3 + Else + intButtonNum = 1 + End If + ' + ' Now determine the type of message box we are dealing + ' with and return the default button. + ' + If (intFlags And vbRetryCancel) = vbRetryCancel Then + intDefButton = IIf(intButtonNum = 1, vbRetry, vbCancel) + ElseIf (intFlags And vbYesNoCancel) = vbYesNoCancel Then + Select Case intButtonNum + Case 1 + intDefButton = vbYes + Case 2 + intDefButton = vbNo + Case 3 + intDefButton = vbCancel + 'End Case + End Select + ElseIf (intFlags And vbOKCancel) = vbOKCancel Then + intDefButton = IIf(intButtonNum = 1, vbOK, vbCancel) + ElseIf (intFlags And vbAbortRetryIgnore) = vbAbortRetryIgnore Then + Select Case intButtonNum + Case 1 + intDefButton = vbAbort + Case 2 + intDefButton = vbRetry + Case 3 + intDefButton = vbIgnore + 'End Case + End Select + ElseIf (intFlags And vbYesNo) = vbYesNo Then + intDefButton = IIf(intButtonNum = 1, vbYes, vbNo) + Else + intDefButton = vbOK + End If + + GetDefMsgBoxButton = intDefButton + +End Function +'----------------------------------------------------------- +' FUNCTION: GetDiskSpaceFree +' Get the amount of free disk space for the specified drive +' +' IN: [strDrive] - drive to check space for +' +' Returns: Amount of free disk space, or -1 if an error occurs +'----------------------------------------------------------- +' +Function GetDiskSpaceFree(ByVal strDrive As String) As Long + Dim strCurDrive As String + Dim lDiskFree As Long + + On Error Resume Next + + ' + 'Save the current drive + ' + strCurDrive = Left$(CurDir$, 2) + + ' + 'Fixup drive so it includes only a drive letter and a colon + ' + If InStr(strDrive, gstrSEP_DRIVE) = 0 Or Len(strDrive) > 2 Then + strDrive = Left$(strDrive, 1) & gstrSEP_DRIVE + End If + + ' + 'Change to the drive we want to check space for. The DiskSpaceFree() API + 'works on the current drive only. + ' + ChDrive strDrive + + ' + 'If we couldn't change to the request drive, it's an error, otherwise return + 'the amount of disk space free + ' + If Err <> 0 Or (strDrive <> Left$(CurDir$, 2)) Then + lDiskFree = -1 + Else + Dim lRet As Long + Dim lBytes As Long, lSect As Long, lClust As Long, lTot As Long + + lRet = GetDiskFreeSpace(vbNullString, lSect, lBytes, lClust, lTot) + On Error Resume Next + lDiskFree = (lBytes * lSect) * lClust + If Err Then lDiskFree = 2147483647 + End If + + If lDiskFree = -1 Then + MsgError Error$ & vbLf & vbLf & ResolveResString(resDISKSPCERR) & strDrive, vbExclamation, gstrTitle + End If + + GetDiskSpaceFree = lDiskFree + + ' + 'Cleanup by setting the current drive back to the original + ' + ChDrive strCurDrive + + Err = 0 +End Function + +'----------------------------------------------------------- +' FUNCTION: GetUNCShareName +' +' Given a UNC names, returns the leftmost portion of the +' directory representing the machine name and share name. +' E.g., given "\\SCHWEIZ\PUBLIC\APPS\LISTING.TXT", returns +' the string "\\SCHWEIZ\PUBLIC" +' +' Returns a string representing the machine and share name +' if the path is a valid pathname, else returns NULL +'----------------------------------------------------------- +' +Function GetUNCShareName(ByVal strFN As String) As Variant + GetUNCShareName = Null + If IsUNCName(strFN) Then + Dim iFirstSeparator As Integer + iFirstSeparator = InStr(3, strFN, gstrSEP_DIR) + If iFirstSeparator > 0 Then + Dim iSecondSeparator As Integer + iSecondSeparator = InStr(iFirstSeparator + 1, strFN, gstrSEP_DIR) + If iSecondSeparator > 0 Then + GetUNCShareName = Left$(strFN, iSecondSeparator - 1) + Else + GetUNCShareName = strFN + End If + End If + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: GetWindowsSysDir +' +' Calls the windows API to get the windows\SYSTEM directory +' and ensures that a trailing dir separator is present +' +' Returns: The windows\SYSTEM directory +'----------------------------------------------------------- +' +Function GetWindowsSysDir() As String + Dim strBuf As String + + strBuf = Space$(gintMAX_SIZE) + + ' + 'Get the system directory and then trim the buffer to the exact length + 'returned and add a dir sep (backslash) if the API didn't return one + ' + If GetSystemDirectory(strBuf, gintMAX_SIZE) > 0 Then + strBuf = StripTerminator(strBuf) + AddDirSep strBuf + + GetWindowsSysDir = strBuf + Else + GetWindowsSysDir = vbNullString + End If +End Function +'----------------------------------------------------------- +' SUB: TreatAsWin95 +' +' Returns True iff either we're running under Windows 95 +' or we are treating this version of NT as if it were +' Windows 95 for registry and application loggin and +' removal purposes. +'----------------------------------------------------------- +' +Function TreatAsWin95() As Boolean + If IsWindows95() Then + TreatAsWin95 = True + ElseIf NTWithShell() Then + TreatAsWin95 = True + Else + TreatAsWin95 = False + End If +End Function +'----------------------------------------------------------- +' FUNCTION: NTWithShell +' +' Returns true if the system is on a machine running +' NT4.0 or greater. +'----------------------------------------------------------- +' +Function NTWithShell() As Boolean + + If Not IsWindowsNT() Then + NTWithShell = False + Exit Function + End If + + Dim osvi As OSVERSIONINFO + Dim strCSDVersion As String + osvi.dwOSVersionInfoSize = Len(osvi) + If GetVersionEx(osvi) = 0 Then + Exit Function + End If + strCSDVersion = StripTerminator(osvi.szCSDVersion) + + 'Is this Windows NT 4.0 or higher? + Const NT4MajorVersion = 4 + Const NT4MinorVersion = 0 + If (osvi.dwMajorVersion >= NT4MajorVersion) Then + NTWithShell = True + Else + NTWithShell = False + End If + +End Function +'----------------------------------------------------------- +' FUNCTION: IsDepFile +' +' Returns true if the file passed to this routine is a +' dependency (*.dep) file. We make this determination +' by verifying that the extension is .dep and that it +' contains version information. +'----------------------------------------------------------- +' +Function fIsDepFile(strFilename As String) As Boolean + Const strEXT_DEP = "DEP" + + fIsDepFile = False + + If UCase(Extension(strFilename)) = strEXT_DEP Then + If GetFileVersion(strFilename) <> vbNullString Then + fIsDepFile = True + End If + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: IsWin32 +' +' Returns true if this program is running under Win32 (i.e. +' any 32-bit operating system) +'----------------------------------------------------------- +' +Function IsWin32() As Boolean + IsWin32 = (IsWindows95() Or IsWindowsNT()) +End Function + +'----------------------------------------------------------- +' FUNCTION: IsWindows95 +' +' Returns true if this program is running under Windows 95 +' or successor +'----------------------------------------------------------- +' +Function IsWindows95() As Boolean + Const dwMask95 = &H1& + IsWindows95 = (GetWinPlatform() And dwMask95) +End Function + +'----------------------------------------------------------- +' FUNCTION: IsWindowsNT +' +' Returns true if this program is running under Windows NT +'----------------------------------------------------------- +' +Function IsWindowsNT() As Boolean + Const dwMaskNT = &H2& + IsWindowsNT = (GetWinPlatform() And dwMaskNT) +End Function + +'----------------------------------------------------------- +' FUNCTION: IsWindowsNT4WithoutSP2 +' +' Determines if the user is running under Windows NT 4.0 +' but without Service Pack 2 (SP2). If running under any +' other platform, returns False. +' +' IN: [none] +' +' Returns: True if and only if running under Windows NT 4.0 +' without at least Service Pack 2 installed. +'----------------------------------------------------------- +' +Function IsWindowsNT4WithoutSP2() As Boolean + IsWindowsNT4WithoutSP2 = False + + If Not IsWindowsNT() Then + Exit Function + End If + + Dim osvi As OSVERSIONINFO + Dim strCSDVersion As String + osvi.dwOSVersionInfoSize = Len(osvi) + If GetVersionEx(osvi) = 0 Then + Exit Function + End If + strCSDVersion = StripTerminator(osvi.szCSDVersion) + + 'Is this Windows NT 4.0? + Const NT4MajorVersion = 4 + Const NT4MinorVersion = 0 + If (osvi.dwMajorVersion <> NT4MajorVersion) Or (osvi.dwMinorVersion <> NT4MinorVersion) Then + 'No. Return False. + Exit Function + End If + + 'If no service pack is installed, or if Service Pack 1 is + 'installed, then return True. + Const strSP1 = "SERVICE PACK 1" + If strCSDVersion = "" Then + IsWindowsNT4WithoutSP2 = True 'No service pack installed + ElseIf strCSDVersion = strSP1 Then + IsWindowsNT4WithoutSP2 = True 'Only SP1 installed + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: IsUNCName +' +' Determines whether the pathname specified is a UNC name. +' UNC (Universal Naming Convention) names are typically +' used to specify machine resources, such as remote network +' shares, named pipes, etc. An example of a UNC name is +' "\\SERVER\SHARE\FILENAME.EXT". +' +' IN: [strPathName] - pathname to check +' +' Returns: True if pathname is a UNC name, False otherwise +'----------------------------------------------------------- +' +Function IsUNCName(ByVal strPathName As String) As Integer + Const strUNCNAME$ = "\\//\" 'so can check for \\, //, \/, /\ + + IsUNCName = ((InStr(strUNCNAME, Left$(strPathName, 2)) > 0) And _ + (Len(strPathName) > 1)) +End Function +'----------------------------------------------------------- +' FUNCTION: LogSilentMsg +' +' If this is a silent install, this routine writes +' a message to the gstrSilentLog file. +' +' IN: [strMsg] - The message +' +' Normally, this routine is called inlieu of displaying +' a MsgBox and strMsg is the same message that would +' have appeared in the MsgBox + +'----------------------------------------------------------- +' +Sub LogSilentMsg(strMsg As String) + If Not gfSilent Then Exit Sub + + Dim fn As Integer + + On Error Resume Next + + fn = FreeFile + + Open gstrSilentLog For Append As fn + Print #fn, strMsg + Close fn + Exit Sub +End Sub +'----------------------------------------------------------- +' FUNCTION: LogSMSMsg +' +' If this is a SMS install, this routine appends +' a message to the gstrSMSDescription string. This +' string will later be written to the SMS status +' file (*.MIF) when the installation completes (success +' or failure). +' +' Note that if gfSMS = False, not message will be logged. +' Therefore, to prevent some messages from being logged +' (e.g., confirmation only messages), temporarily set +' gfSMS = False. +' +' IN: [strMsg] - The message +' +' Normally, this routine is called inlieu of displaying +' a MsgBox and strMsg is the same message that would +' have appeared in the MsgBox +'----------------------------------------------------------- +' +Sub LogSMSMsg(strMsg As String) + If Not gfSMS Then Exit Sub + ' + ' Append the message. Note that the total + ' length cannot be more than 255 characters, so + ' truncate anything after that. + ' + gstrSMSDescription = Left(gstrSMSDescription & strMsg, MAX_SMS_DESCRIP) +End Sub + +'----------------------------------------------------------- +' FUNCTION: MakePathAux +' +' Creates the specified directory path. +' +' No user interaction occurs if an error is encountered. +' If user interaction is desired, use the related +' MakePathAux() function. +' +' IN: [strDirName] - name of the dir path to make +' +' Returns: True if successful, False if error. +'----------------------------------------------------------- +' +Function MakePathAux(ByVal strDirName As String) As Boolean + Dim strPath As String + Dim intOffset As Integer + Dim intAnchor As Integer + Dim strOldPath As String + + On Error Resume Next + + ' + 'Add trailing backslash + ' + If Right$(strDirName, 1) <> gstrSEP_DIR Then + strDirName = strDirName & gstrSEP_DIR + End If + + strOldPath = CurDir$ + MakePathAux = False + intAnchor = 0 + + ' + 'Loop and make each subdir of the path separately. + ' + intOffset = InStr(intAnchor + 1, strDirName, gstrSEP_DIR) + intAnchor = intOffset 'Start with at least one backslash, i.e. "C:\FirstDir" + Do + intOffset = InStr(intAnchor + 1, strDirName, gstrSEP_DIR) + intAnchor = intOffset + + If intAnchor > 0 Then + strPath = Left$(strDirName, intOffset - 1) + ' Determine if this directory already exists + Err = 0 + ChDir strPath + If Err Then + ' We must create this directory + Err = 0 +#If LOGGING Then + NewAction gstrKEY_CREATEDIR, """" & strPath & """" +#End If + MkDir strPath +#If LOGGING Then + If Err Then + LogError ResolveResString(resMAKEDIR) & " " & strPath + AbortAction + GoTo Done + Else + CommitAction + End If +#End If + End If + End If + Loop Until intAnchor = 0 + + MakePathAux = True +Done: + ChDir strOldPath + + Err = 0 +End Function + +'----------------------------------------------------------- +' FUNCTION: MsgError +' +' Forces mouse pointer to default, calls VB's MsgBox +' function, and logs this error and (32-bit only) +' writes the message and the user's response to the +' logfile (32-bit only) +' +' IN: [strMsg] - message to display +' [intFlags] - MsgBox function type flags +' [strCaption] - caption to use for message box +' [intLogType] (optional) - The type of logfile entry to make. +' By default, creates an error entry. Use +' the MsgWarning() function to create a warning. +' Valid types as MSGERR_ERROR and MSGERR_WARNING +' +' Returns: Result of MsgBox function +'----------------------------------------------------------- +' +Function MsgError(ByVal strMsg As String, ByVal intFlags As Integer, ByVal strCaption As String, Optional ByVal intLogType As Integer = MSGERR_ERROR) As Integer + Dim iRet As Integer + + iRet = MsgFunc(strMsg, intFlags, strCaption) + MsgError = iRet +#If LOGGING Then + ' We need to log this error and decode the user's response. + Dim strID As String + Dim strLogMsg As String + + Select Case iRet + Case vbOK + strID = ResolveResString(resLOG_vbok) + Case vbCancel + strID = ResolveResString(resLOG_vbCancel) + Case vbAbort + strID = ResolveResString(resLOG_vbabort) + Case vbRetry + strID = ResolveResString(resLOG_vbretry) + Case vbIgnore + strID = ResolveResString(resLOG_vbignore) + Case vbYes + strID = ResolveResString(resLOG_vbyes) + Case vbNo + strID = ResolveResString(resLOG_vbno) + Case Else + strID = ResolveResString(resLOG_IDUNKNOWN) + 'End Case + End Select + + strLogMsg = strMsg & vbLf & "(" & ResolveResString(resLOG_USERRESPONDEDWITH, "|1", strID) & ")" + On Error Resume Next + Select Case intLogType + Case MSGERR_WARNING + LogWarning strLogMsg + Case MSGERR_ERROR + LogError strLogMsg + Case Else + LogError strLogMsg + 'End Case + End Select +#End If +End Function + +'----------------------------------------------------------- +' FUNCTION: MsgFunc +' +' Forces mouse pointer to default and calls VB's MsgBox +' function. See also MsgError. +' +' IN: [strMsg] - message to display +' [intFlags] - MsgBox function type flags +' [strCaption] - caption to use for message box +' Returns: Result of MsgBox function +'----------------------------------------------------------- +' +Function MsgFunc(ByVal strMsg As String, ByVal intFlags As Integer, ByVal strCaption As String) As Integer + Dim intOldPointer As Integer + + intOldPointer = Screen.MousePointer + If gfNoUserInput Then + MsgFunc = GetDefMsgBoxButton(intFlags) + If gfSilent = True Then + LogSilentMsg strMsg + End If + If gfSMS = True Then + LogSMSMsg strMsg + gfDontLogSMS = False + End If + Else + Screen.MousePointer = gintMOUSE_DEFAULT + MsgFunc = MsgBox(strMsg, intFlags, strCaption) + Screen.MousePointer = intOldPointer + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: MsgWarning +' +' Forces mouse pointer to default, calls VB's MsgBox +' function, and logs this error and (32-bit only) +' writes the message and the user's response to the +' logfile (32-bit only) +' +' IN: [strMsg] - message to display +' [intFlags] - MsgBox function type flags +' [strCaption] - caption to use for message box +' +' Returns: Result of MsgBox function +'----------------------------------------------------------- +' +Function MsgWarning(ByVal strMsg As String, ByVal intFlags As Integer, ByVal strCaption As String) As Integer + MsgWarning = MsgError(strMsg, intFlags, strCaption, MSGERR_WARNING) +End Function +'----------------------------------------------------------- +' SUB: SetFormFont +' +' Walks through all controls on specified form and +' sets Font a font chosen according to the system locale +' +' IN: [frm] - Form whose control fonts need to be set. +'----------------------------------------------------------- +' +Public Sub SetFormFont(frm As Form) + Dim ctl As Control + Dim fntSize As Integer + Dim fntName As String + Dim fntCharset As Integer + Dim oFont As StdFont + + ' some controls may fail, so we will do a resume next... + ' + On Error Resume Next + + ' get the font name, size, and charset + ' + GetFontInfo fntName, fntSize, fntCharset + + 'Create a new font object + Set oFont = New StdFont + With oFont + .Name = fntName + .Size = fntSize + .Charset = fntCharset + End With + ' Set the form's font + Set frm.Font = oFont + ' + ' loop through each control and try to set its font property + ' this may fail, but our error handling is shut off + ' + For Each ctl In frm.Controls + Set ctl.Font = oFont + Next + ' + ' get out, reset error handling + ' + Set ctl = Nothing + On Error GoTo 0 + Exit Sub + +End Sub + +'----------------------------------------------------------- +' SUB: GetFontInfo +' +' Gets the best font to use according the current system's +' locale. +' +' OUT: [sFont] - name of font +' [nFont] - size of font +' [nCharset] - character set of font to use +'----------------------------------------------------------- +Private Sub GetFontInfo(sFont As String, nFont As Integer, nCharSet As Integer) + Dim LCID As Integer + Dim PLangId As Integer + Dim sLangId As Integer + ' if font is set, used the cached values + If m_sFont <> "" Then + sFont = m_sFont + nFont = m_nFont + nCharSet = m_nCharset + Exit Sub + End If + + ' font hasn't been set yet, need to get it now... + LCID = GetSystemDefaultLCID ' get current system LCID + PLangId = PRIMARYLANGID(LCID) ' get LCID's Primary language id + sLangId = SUBLANGID(LCID) ' get LCID's Sub language id + + Select Case PLangId ' determine primary language id + Case LANG_CHINESE + If (sLangId = SUBLANG_CHINESE_TRADITIONAL) Then + sFont = ChrW$(&H65B0) & ChrW$(&H7D30) & ChrW$(&H660E) & ChrW$(&H9AD4) ' New Ming-Li + nFont = 9 + nCharSet = CHARSET_CHINESEBIG5 + ElseIf (sLangId = SUBLANG_CHINESE_SIMPLIFIED) Then + sFont = ChrW$(&H5B8B) & ChrW$(&H4F53) + nFont = 9 + nCharSet = CHARSET_CHINESESIMPLIFIED + End If + Case LANG_JAPANESE + sFont = ChrW$(&HFF2D) & ChrW$(&HFF33) & ChrW$(&H20) & ChrW$(&HFF30) & _ + ChrW$(&H30B4) & ChrW$(&H30B7) & ChrW$(&H30C3) & ChrW$(&H30AF) + nFont = 9 + nCharSet = CHARSET_SHIFTJIS + Case LANG_KOREAN + If (sLangId = SUBLANG_KOREAN) Then + sFont = ChrW$(&HAD74) & ChrW$(&HB9BC) + ElseIf (sLangId = SUBLANG_KOREAN_JOHAB) Then + sFont = ChrW$(&HAD74) & ChrW$(&HB9BC) + End If + nFont = 9 + nCharSet = CHARSET_HANGEUL + Case Else + sFont = "Tahoma" + If Not IsFontSupported(sFont) Then + 'Tahoma is not on this machine. This condition is very probably since + 'this is a setup program that may be run on a clean machine + 'Try Arial + sFont = "Arial" + If Not IsFontSupported(sFont) Then + 'Arial isn't even on the machine. This is an unusual situation that + 'is caused by deliberate removal + 'Try system + sFont = "System" + 'If system isn't supported, allow the default font to be used + If Not IsFontSupported(sFont) Then + 'If "System" is not supported, "IsFontSupported" will have + 'output the default font in sFont + End If + End If + End If + nFont = 8 + ' set the charset for the users default system Locale + nCharSet = GetUserCharset + End Select + m_sFont = sFont + m_nFont = nFont + m_nCharset = nCharSet +'------------------------------------------------------- +End Sub +'------------------------------------------------------- + +'------------------------------------------------------------ +'- Language Functions... +'------------------------------------------------------------ +Private Function PRIMARYLANGID(ByVal LCID As Integer) As Integer + PRIMARYLANGID = (LCID And &H3FF) +End Function +Private Function SUBLANGID(ByVal LCID As Integer) As Integer + SUBLANGID = (LCID / (2 ^ 10)) +End Function + +'----------------------------------------------------------- +' Function: GetUserCharset +' +' Get's the default user character set +' +' OS: Win 95 & NT 4 or newer +'----------------------------------------------------------- +Private Function GetUserCharset() As Integer + Dim ls As LOCALESIGNATURE ' local signature struct. + Dim ci As CHARSETINFO ' character set info struct. + Dim rc As Long ' return code + ' get locale signature based on the USER's Default LCID. + rc = GetLocaleInfoLS(GetUserDefaultLCID, LOCALE_FONTSIGNATURE, ls, Len(ls)) + If (rc > 0) Then ' if success + ls.lsCsbDefault(1) = 0 ' zero out bits + + ' translate charset info from locale fontsignature. + rc = TranslateCharsetInfo(ls.lsCsbDefault(0), ci, TCI_SRCFONTSIG) + If rc <> 0 Then GetUserCharset = ci.ciCharset ' return charset + End If +End Function + +'----------------------------------------------------------- +' Function: IsFontSupported +' +' Validates a font name to make sure it is supported by +' on the current system. +' +' IN/OUT: [sFontName] - name of font to check, will also] +' be set to the default font name if the provided +' one is not supported. +'----------------------------------------------------------- +Private Function IsFontSupported(sFontName As String) As Boolean + Dim oFont As StdFont + On Error Resume Next + Set oFont = New StdFont + oFont.Name = sFontName + IsFontSupported = (UCase(oFont.Name) = UCase(sFontName)) + sFontName = oFont.Name +End Function + +'----------------------------------------------------------- +' SUB: SetMousePtr +' +' Provides a way to set the mouse pointer only when the +' pointer state changes. For every HOURGLASS call, there +' should be a corresponding DEFAULT call. Other types of +' mouse pointers are set explicitly. +' +' IN: [intMousePtr] - type of mouse pointer desired +'----------------------------------------------------------- +' +Sub SetMousePtr(intMousePtr As Integer) + Static intPtrState As Integer + + Select Case intMousePtr + Case vbHourglass + intPtrState = intPtrState + 1 + Case gintMOUSE_DEFAULT + intPtrState = intPtrState - 1 + If intPtrState < 0 Then + intPtrState = 0 + End If + Case Else + Screen.MousePointer = intMousePtr + Exit Sub + 'End Case + End Select + + Screen.MousePointer = IIf(intPtrState > 0, vbHourglass, gintMOUSE_DEFAULT) +End Sub + +'----------------------------------------------------------- +' FUNCTION: StripTerminator +' +' Returns a string without any zero terminator. Typically, +' this was a string returned by a Windows API call. +' +' IN: [strString] - String to remove terminator from +' +' Returns: The value of the string passed in minus any +' terminating zero. +'----------------------------------------------------------- +' +Function StripTerminator(ByVal strString As String) As String + Dim intZeroPos As Integer + + intZeroPos = InStr(strString, Chr$(0)) + If intZeroPos > 0 Then + StripTerminator = Left$(strString, intZeroPos - 1) + Else + StripTerminator = strString + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: GetFileVersion +' +' Returns the internal file version number for the specified +' file. This can be different than the 'display' version +' number shown in the File Manager File Properties dialog. +' It is the same number as shown in the VB5 SetupWizard's +' File Details screen. This is the number used by the +' Windows VerInstallFile API when comparing file versions. +' +' IN: [strFilename] - the file whose version # is desired +' [fIsRemoteServerSupportFile] - whether or not this file is +' a remote ActiveX component support file (.VBR) +' (Enterprise edition only). If missing, False is assumed. +' +' Returns: The Version number string if found, otherwise +' vbnullstring +'----------------------------------------------------------- +' +Function GetFileVersion(ByVal strFilename As String, Optional ByVal fIsRemoteServerSupportFile As Boolean = False) As String + Dim sVerInfo As VERINFO + Dim strVer As String + + On Error GoTo GFVError + + ' + 'Get the file version into a VERINFO struct, and then assemble a version string + 'from the appropriate elements. + ' + If GetFileVerStruct(strFilename, sVerInfo, fIsRemoteServerSupportFile) = True Then + strVer = Format$(sVerInfo.FileVerPart1) & gstrDECIMAL & Format$(sVerInfo.FileVerPart2) & gstrDECIMAL + strVer = strVer & Format$(sVerInfo.FileVerPart3) & gstrDECIMAL & Format$(sVerInfo.FileVerPart4) + GetFileVersion = strVer + Else + GetFileVersion = vbNullString + End If + + Exit Function + +GFVError: + GetFileVersion = vbNullString + Err = 0 +End Function + +'----------------------------------------------------------- +' FUNCTION: GetFileVerStruct +' +' Gets the file version information into a VERINFO TYPE +' variable +' +' IN: [strFilename] - name of file to get version info for +' [fIsRemoteServerSupportFile] - whether or not this file is +' a remote ActiveX component support file (.VBR) +' (Enterprise edition only). If missing, False is assumed. +' OUT: [sVerInfo] - VERINFO Type to fill with version info +' +' Returns: True if version info found, False otherwise +'----------------------------------------------------------- +' +Function GetFileVerStruct(ByVal sFile As String, sVer As VERINFO, Optional ByVal fIsRemoteServerSupportFile As Boolean = False) As Boolean + Dim lVerSize As Long, lTemp As Long, lRet As Long + Dim bInfo() As Byte + Dim lpBuffer As Long + Const sEXE As String * 1 = "\" + Dim fFoundVer As Boolean + + GetFileVerStruct = False + fFoundVer = False + + If fIsRemoteServerSupportFile Then + GetFileVerStruct = GetRemoteSupportFileVerStruct(sFile, sVer) + fFoundVer = True + Else + ' + 'Get the size of the file version info, allocate a buffer for it, and get the + 'version info. Next, we query the Fixed file info portion, where the internal + 'file version used by the Windows VerInstallFile API is kept. We then copy + 'the fixed file info into a VERINFO structure. + ' + lVerSize = GetFileVersionInfoSize(sFile, lTemp) + ReDim bInfo(lVerSize) + If lVerSize > 0 Then + lRet = GetFileVersionInfo(sFile, lTemp, lVerSize, VarPtr(bInfo(0))) + If lRet <> 0 Then + lRet = VerQueryValue(VarPtr(bInfo(0)), sEXE & vbNullChar, lpBuffer, lVerSize) + If lRet <> 0 Then + CopyMemory sVer, ByVal lpBuffer, lVerSize + fFoundVer = True + GetFileVerStruct = True + End If + End If + End If + End If + If Not fFoundVer Then + ' + ' We were unsuccessful in finding the version info from the file. + ' One possibility is that this is a dependency file. + ' + If UCase(Extension(sFile)) = gstrEXT_DEP Then + GetFileVerStruct = GetDepFileVerStruct(sFile, sVer) + End If + End If +End Function +'----------------------------------------------------------- +' FUNCTION: GetFileDescription +' +' Gets the file description information. +' +' IN: [strFilename] - name of file to get description of. +' +' Returns: Description (vbNullString if not found) +'----------------------------------------------------------- +' +Function GetFileDescription(ByVal sFile As String) As String + Dim lVerSize As Long, lTemp As Long, lRet As Long + Dim bInfo() As Byte + Dim lpBuffer As Long + Dim sDesc As String + Dim sKEY As String + Const sEXE As String = "\FileDescription" + + GetFileDescription = vbNullString + + ' + 'Get the size of the file version info, allocate a buffer for it, and get the + 'version info. Next, we query the Fixed file info portion, where the internal + 'file version used by the Windows VerInstallFile API is kept. We then copy + 'the info into a string. + ' + lVerSize = GetFileVersionInfoSize(sFile, lTemp) + ReDim bInfo(lVerSize) + If lVerSize > 0 Then + lRet = GetFileVersionInfo(sFile, lTemp, lVerSize, VarPtr(bInfo(0))) + If lRet <> 0 Then + sKEY = GetNLSKey(bInfo) + lRet = VerQueryValue(VarPtr(bInfo(0)), sKEY & sEXE, lpBuffer, lVerSize) + If lRet <> 0 Then + sDesc = Space$(lVerSize) + lstrcpyn sDesc, lpBuffer, lVerSize + GetFileDescription = sDesc + End If + End If + End If +End Function +Private Function GetNLSKey(byteVerData() As Byte) As String + Const strTRANSLATION$ = "\VarFileInfo\Translation" + Const strSTRINGFILEINFO$ = "\StringFileInfo\" + Const strDEFAULTNLSKEY$ = "040904E4" + Const LOCALE_IDEFAULTLANGUAGE& = &H9& + Const LOCALE_IDEFAULTCODEPAGE& = &HB& + + Static strLANGCP As String + + Dim lpBufPtr As Long + Dim strNLSKey As String + Dim fGotNLSKey As Integer + Dim intOffset As Integer + Dim lVerSize As Long + Dim ltmp As Long + Dim lBufLen As Long + Dim lLCID As Long + Dim strTmp As String + + On Error GoTo GNLSKCleanup + + If VerQueryValue(VarPtr(byteVerData(0)), strTRANSLATION, lpBufPtr, lVerSize) <> 0 Then ' (Pass byteVerData array via reference to first element) + If Len(strLANGCP) = 0 Then + lLCID = GetUserDefaultLCID() + If lLCID > 0 Then + strTmp = Space$(8) + + GetLocaleInfoA lLCID, LOCALE_IDEFAULTCODEPAGE, strTmp, 8 + strLANGCP = StripTerminator(strTmp) + While Len(strLANGCP) < 4 + strLANGCP = gsZERO & strLANGCP + Wend + + GetLocaleInfoA lLCID, LOCALE_IDEFAULTLANGUAGE, strTmp, 8 + strLANGCP = StripTerminator(strTmp) & strLANGCP + While Len(strLANGCP) < 8 + strLANGCP = gsZERO & strLANGCP + Wend + End If + End If + + If VerQueryValue(VarPtr(byteVerData(0)), strLANGCP, ltmp, lBufLen) <> 0 Then + strNLSKey = strLANGCP + Else + For intOffset = 0 To lVerSize - 1 Step 4 + CopyMemory ltmp, ByVal lpBufPtr + intOffset, 4 + strTmp = Hex$(ltmp) + While Len(strTmp) < 8 + strTmp = gsZERO & strTmp + Wend + + strNLSKey = strSTRINGFILEINFO & Right$(strTmp, 4) & Left$(strTmp, 4) + + If VerQueryValue(VarPtr(byteVerData(0)), strNLSKey, ltmp, lBufLen) <> 0 Then + fGotNLSKey = True + Exit For + End If + Next + + If Not fGotNLSKey Then + strNLSKey = strSTRINGFILEINFO & strDEFAULTNLSKEY + If VerQueryValue(VarPtr(byteVerData(0)), strNLSKey, ltmp, lBufLen) <> 0 Then + fGotNLSKey = True + End If + End If + End If + End If + +GNLSKCleanup: + If fGotNLSKey Then + GetNLSKey = strNLSKey + End If +End Function +'----------------------------------------------------------- +' FUNCTION: GetDepFileVerStruct +' +' Gets the file version information from a dependency +' file (*.dep). Such files do not have a Windows version +' stamp, but they do have an internal version stamp that +' we can look for. +' +' IN: [strFilename] - name of dep file to get version info for +' OUT: [sVerInfo] - VERINFO Type to fill with version info +' +' Returns: True if version info found, False otherwise +'----------------------------------------------------------- +' +Function GetDepFileVerStruct(ByVal strFilename As String, sVerInfo As VERINFO) As Boolean + Const strVersionKey = "Version=" + Dim cchVersionKey As Integer + Dim iFile As Integer + + GetDepFileVerStruct = False + + cchVersionKey = Len(strVersionKey) + sVerInfo.FileVerPart1 = gintNOVERINFO + + On Error GoTo Failed + + iFile = FreeFile + + Open strFilename For Input Access Read Lock Read Write As #iFile + + ' Loop through each line, looking for the key + While (Not EOF(iFile)) + Dim strLine As String + + Line Input #iFile, strLine + If Left$(strLine, cchVersionKey) = strVersionKey Then + ' We've found the version key. Copy everything after the equals sign + Dim strVersion As String + + strVersion = Mid$(strLine, cchVersionKey + 1) + + 'Parse and store the version information + PackVerInfo strVersion, sVerInfo + + GetDepFileVerStruct = True + Close iFile + Exit Function + End If + Wend + + Close iFile + Exit Function + +Failed: + GetDepFileVerStruct = False +End Function + +'----------------------------------------------------------- +' FUNCTION: GetRemoteSupportFileVerStruct +' +' Gets the file version information of a remote ActiveX component +' support file into a VERINFO TYPE variable (Enterprise +' Edition only). Such files do not have a Windows version +' stamp, but they do have an internal version stamp that +' we can look for. +' +' IN: [strFilename] - name of file to get version info for +' OUT: [sVerInfo] - VERINFO Type to fill with version info +' +' Returns: True if version info found, False otherwise +'----------------------------------------------------------- +' +Function GetRemoteSupportFileVerStruct(ByVal strFilename As String, sVerInfo As VERINFO) As Boolean + Const strVersionKey = "Version=" + Dim cchVersionKey As Integer + Dim iFile As Integer + + cchVersionKey = Len(strVersionKey) + sVerInfo.FileVerPart1 = gintNOVERINFO + + On Error GoTo Failed + + iFile = FreeFile + + Open strFilename For Input Access Read Lock Read Write As #iFile + + ' Loop through each line, looking for the key + While (Not EOF(iFile)) + Dim strLine As String + + Line Input #iFile, strLine + If Left$(strLine, cchVersionKey) = strVersionKey Then + ' We've found the version key. Copy everything after the equals sign + Dim strVersion As String + + strVersion = Mid$(strLine, cchVersionKey + 1) + + 'Parse and store the version information + PackVerInfo strVersion, sVerInfo + + 'Convert the format 1.2.3 from the .VBR into + '1.2.0.3, which is really want we want + sVerInfo.FileVerPart4 = sVerInfo.FileVerPart3 + sVerInfo.FileVerPart3 = 0 + + GetRemoteSupportFileVerStruct = True + Close iFile + Exit Function + End If + Wend + + Close iFile + Exit Function + +Failed: + GetRemoteSupportFileVerStruct = False +End Function +'----------------------------------------------------------- +' FUNCTION: GetWindowsFontDir +' +' Calls the windows API to get the windows font directory +' and ensures that a trailing dir separator is present +' +' Returns: The windows font directory +'----------------------------------------------------------- +' +Function GetWindowsFontDir() As String + Dim oMalloc As IVBMalloc + Dim sPath As String + Dim IDL As Long + + ' Fill the item id list with the pointer of each folder item, rtns 0 on success + If SHGetSpecialFolderLocation(0, sfidFONTS, IDL) = NOERROR Then + sPath = String$(gintMAX_PATH_LEN, 0) + SHGetPathFromIDListA IDL, sPath + SHGetMalloc oMalloc + oMalloc.Free IDL + sPath = StringFromBuffer(sPath) + End If + AddDirSep sPath + + GetWindowsFontDir = sPath +End Function + +'----------------------------------------------------------- +' FUNCTION: GetWindowsDir +' +' Calls the windows API to get the windows directory and +' ensures that a trailing dir separator is present +' +' Returns: The windows directory +'----------------------------------------------------------- +' +Function GetWindowsDir() As String + Dim strBuf As String + + strBuf = Space$(gintMAX_SIZE) + + ' + 'Get the windows directory and then trim the buffer to the exact length + 'returned and add a dir sep (backslash) if the API didn't return one + ' + If GetWindowsDirectory(strBuf, gintMAX_SIZE) > 0 Then + strBuf = StripTerminator$(strBuf) + AddDirSep strBuf + + GetWindowsDir = strBuf + Else + GetWindowsDir = vbNullString + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: ExtractFilenameItem +' +' Extracts a quoted or unquoted filename from a string. +' +' IN: [str] - string to parse for a filename. +' [intAnchor] - index in str at which the filename begins. +' The filename continues to the end of the string +' or up to the next comma in the string, or, if +' the filename is enclosed in quotes, until the +' next double quote. +' OUT: Returns the filename, without quotes. +' [intAnchor] is set to the comma, or else one character +' past the end of the string +' [fErr] is set to True if a parsing error is discovered +' +'----------------------------------------------------------- +' +Function strExtractFilenameItem(ByVal str As String, intAnchor As Integer, fErr As Boolean) As String + While Mid$(str, intAnchor, 1) = " " + intAnchor = intAnchor + 1 + Wend + + Dim iEndFilenamePos As Integer + Dim strFilename As String + If Mid$(str, intAnchor, 1) = """" Then + ' Filename is surrounded by quotes + iEndFilenamePos = InStr(intAnchor + 1, str, """") ' Find matching quote + If iEndFilenamePos > 0 Then + strFilename = Mid$(str, intAnchor + 1, iEndFilenamePos - 1 - intAnchor) + intAnchor = iEndFilenamePos + 1 + While Mid$(str, intAnchor, 1) = " " + intAnchor = intAnchor + 1 + Wend + If (Mid$(str, intAnchor, 1) <> gstrCOMMA) And (Mid$(str, intAnchor, 1) <> "") Then + fErr = True + Exit Function + End If + Else + fErr = True + Exit Function + End If + Else + ' Filename continues until next comma or end of string + Dim iCommaPos As Integer + + iCommaPos = InStr(intAnchor, str, gstrCOMMA) + If iCommaPos = 0 Then + iCommaPos = Len(str) + 1 + End If + iEndFilenamePos = iCommaPos + + strFilename = Mid$(str, intAnchor, iEndFilenamePos - intAnchor) + intAnchor = iCommaPos + End If + + strFilename = Trim$(strFilename) + If strFilename = "" Then + fErr = True + Exit Function + End If + + fErr = False + strExtractFilenameItem = strFilename +End Function + +'----------------------------------------------------------- +' FUNCTION: Extension +' +' Extracts the extension portion of a file/path name +' +' IN: [strFilename] - file/path to get the extension of +' +' Returns: The extension if one exists, else vbnullstring +'----------------------------------------------------------- +' +Function Extension(ByVal strFilename As String) As String + Dim intPos As Integer + + Extension = vbNullString + + intPos = Len(strFilename) + + Do While intPos > 0 + Select Case Mid$(strFilename, intPos, 1) + Case gstrSEP_EXT + Extension = Mid$(strFilename, intPos + 1) + Exit Do + Case gstrSEP_DIR, gstrSEP_DIRALT + Exit Do + 'End Case + End Select + + intPos = intPos - 1 + Loop +End Function +Public Function BaseName(sPathandFile As String) As String + + ' + ' Strip the path from the file name, and just return the FileName + ' Wraps the SeparatePathAndFileName from DWTools + ' + Dim sPath As String + Dim sFile As String + + SeparatePathAndFileName sPathandFile, sPath, sFile + + BaseName = sFile +End Function +'Given a fully qualified filename, returns the path portion and the file +' portion. +Public Sub SeparatePathAndFileName(FullPath As String, _ + Optional ByRef Path As String, _ + Optional ByRef FileName As String) + + Dim nSepPos As Long + Dim sSEP As String + + nSepPos = Len(FullPath) + sSEP = Mid$(FullPath, nSepPos, 1) + Do Until IsSeparator(sSEP) + nSepPos = nSepPos - 1 + If nSepPos = 0 Then Exit Do + sSEP = Mid$(FullPath, nSepPos, 1) + Loop + + Select Case nSepPos + Case Len(FullPath) + 'Separator was found at the end of the full path. This is invalid. + Case 0 + 'Separator was not found. + Path = CurDir$ + FileName = FullPath + Case Else + Path = Left$(FullPath, nSepPos - 1) + FileName = Mid$(FullPath, nSepPos + 1) + End Select +End Sub + +'----------------------------------------------------------- +' SUB: PackVerInfo +' +' Parses a file version number string of the form +' x[.x[.x[.x]]] and assigns the extracted numbers to the +' appropriate elements of a VERINFO type variable. +' Examples of valid version strings are '3.11.0.102', +' '3.11', '3', etc. +' +' IN: [strVersion] - version number string +' +' OUT: [sVerInfo] - VERINFO type variable whose elements +' are assigned the appropriate numbers +' from the version number string +'----------------------------------------------------------- +' +Sub PackVerInfo(ByVal strVersion As String, sVerInfo As VERINFO) + Dim intOffset As Integer + Dim intAnchor As Integer + + On Error GoTo PVIError + + intOffset = InStr(strVersion, gstrDECIMAL) + If intOffset = 0 Then + sVerInfo.FileVerPart1 = Val(strVersion) + GoTo PVIMSLo + Else + sVerInfo.FileVerPart1 = Val(Left$(strVersion, intOffset - 1)) + intAnchor = intOffset + 1 + End If + + intOffset = InStr(intAnchor, strVersion, gstrDECIMAL) + If intOffset = 0 Then + sVerInfo.FileVerPart2 = Val(Mid$(strVersion, intAnchor)) + GoTo PVILSHi + Else + sVerInfo.FileVerPart2 = Val(Mid$(strVersion, intAnchor, intOffset - intAnchor)) + intAnchor = intOffset + 1 + End If + + intOffset = InStr(intAnchor, strVersion, gstrDECIMAL) + If intOffset = 0 Then + sVerInfo.FileVerPart3 = Val(Mid$(strVersion, intAnchor)) + GoTo PVILSLo + Else + sVerInfo.FileVerPart3 = Val(Mid$(strVersion, intAnchor, intOffset - intAnchor)) + intAnchor = intOffset + 1 + End If + + intOffset = InStr(intAnchor, strVersion, gstrDECIMAL) + If intOffset = 0 Then + sVerInfo.FileVerPart4 = Val(Mid$(strVersion, intAnchor)) + Else + sVerInfo.FileVerPart4 = Val(Mid$(strVersion, intAnchor, intOffset - intAnchor)) + End If + + Exit Sub + +PVIError: + sVerInfo.FileVerPart1 = 0 +PVIMSLo: + sVerInfo.FileVerPart2 = 0 +PVILSHi: + sVerInfo.FileVerPart3 = 0 +PVILSLo: + sVerInfo.FileVerPart4 = 0 +End Sub + +Public Function strQuoteString(strUnQuotedString As String, Optional vForce As Boolean = False, Optional vTrim As Boolean = True) +' +' This routine adds quotation marks around an unquoted string, by default. If the string is already quoted +' it returns without making any changes unless vForce is set to True (vForce defaults to False) except that white +' space before and after the quotes will be removed unless vTrim is False. If the string contains leading or +' trailing white space it is trimmed unless vTrim is set to False (vTrim defaults to True). +' + Dim strQuotedString As String + + strQuotedString = strUnQuotedString + ' + ' Trim the string if necessary + ' + If vTrim Then + strQuotedString = Trim(strQuotedString) + End If + ' + ' See if the string is already quoted + ' + If Not vForce Then + If (Left(strQuotedString, 1) = gstrQUOTE) And (Right(strQuotedString, 1) = gstrQUOTE) Then + ' + ' String is already quoted. We are done. + ' + GoTo DoneQuoteString + End If + End If + ' + ' Add the quotes + ' + strQuotedString = gstrQUOTE & strQuotedString & gstrQUOTE +DoneQuoteString: + strQuoteString = strQuotedString +End Function +Public Function strUnQuoteString(ByVal strQuotedString As String) +' +' This routine tests to see if strQuotedString is wrapped in quotation +' marks, and, if so, remove them. +' + strQuotedString = Trim(strQuotedString) + + If Mid$(strQuotedString, 1, 1) = gstrQUOTE And Right$(strQuotedString, 1) = gstrQUOTE Then + ' + ' It's quoted. Get rid of the quotes. + ' + strQuotedString = Mid$(strQuotedString, 2, Len(strQuotedString) - 2) + End If + strUnQuoteString = strQuotedString +End Function +Public Function fCheckFNLength(strFilename As String) As Boolean +' +' This routine verifies that the length of the filename strFilename is valid. +' Under NT (Intel) and Win95 it can be up to 259 (gintMAX_PATH_LEN-1) characters +' long. This length must include the drive, path, filename, commandline +' arguments and quotes (if the string is quoted). +' + fCheckFNLength = (Len(strFilename) < gintMAX_PATH_LEN) +End Function +Public Function intGetNextFldOffset(ByVal intAnchor As Integer, strList As String, strDelimit As String, Optional CompareType As Integer = 1) As Integer +' +' This routine reads from a strDelimit separated list, strList, and locates the next +' item in the list following intAnchor. Basically it finds the next +' occurance of strDelimit that is not inside quotes. If strDelimit is not +' found the routine returns 0. Note intAnchor must be outside of quotes +' or this routine will return incorrect results. +' +' strDelimit is typically a comma. +' +' If there is an error this routine returns -1. +' + Dim intQuote As Integer + Dim intDelimit As Integer + + Const CompareBinary = 0 + Const CompareText = 1 + + If intAnchor = 0 Then intAnchor = 1 + + intQuote = InStr(intAnchor, strList, gstrQUOTE, CompareType) + intDelimit = InStr(intAnchor, strList, strDelimit, CompareType) + + If (intQuote > intDelimit) Or (intQuote = 0) Then + ' + ' The next delimiter is not within quotes. Therefore, + ' we have found what we are looking for. Note that the + ' case where there are no delimiters is also handled here. + ' + GoTo DoneGetNextFldOffset + ElseIf intQuote < intDelimit Then + ' + ' A quote appeared before the next delimiter. This + ' means we might be inside quotes. We still need to check + ' if the closing quote comes after the delmiter or not. + ' + intAnchor = intQuote + 1 + intQuote = InStr(intAnchor, strList, gstrQUOTE, CompareType) + If (intQuote > intDelimit) Then + ' + ' The delimiter was inside quotes. Therefore, ignore it. + ' The next delimiter after the closing quote must be outside + ' of quotes or else we have a corrupt file. + ' + intAnchor = intQuote + 1 + intDelimit = InStr(intAnchor, strList, strDelimit, CompareType) + ' + ' Sanity check. Make sure there is not another quote before + ' the delimiter we just found. + ' + If intDelimit > 0 Then + intQuote = InStr(intAnchor, strList, gstrQUOTE, CompareType) + If (intQuote > 0) And (intQuote < intDelimit) Then + ' + ' Something is wrong. We've encountered a stray + ' quote. Means the string is probably corrupt. + ' + intDelimit = -1 ' Error + End If + End If + End If + End If +DoneGetNextFldOffset: + intGetNextFldOffset = intDelimit +End Function +Public Function LongPath(Path As String) As String + Dim oDesktop As IVBShellFolder + Dim nEaten As Long + Dim pIdl As Long + Dim sPath As String + Dim oMalloc As IVBMalloc + + If Len(Path) > 0 Then + SHGetDesktopFolder oDesktop + oDesktop.ParseDisplayName 0, 0, Path, nEaten, pIdl, 0 + sPath = String$(gintMAX_PATH_LEN, 0) + SHGetPathFromIDListA pIdl, sPath + SHGetMalloc oMalloc + oMalloc.Free pIdl + LongPath = StringFromBuffer(sPath) + End If +End Function + +'Try to convert a path to its long filename equivalent, but leave it unaltered +' if we fail. +Public Sub MakeLongPath(Path As String) + On Error Resume Next + Path = LongPath(Path) +End Sub + +Public Function StringFromBuffer(Buffer As String) As String + Dim nPos As Long + + nPos = InStr(Buffer, Chr$(0)) + If nPos > 0 Then + StringFromBuffer = Left$(Buffer, nPos - 1) + Else + StringFromBuffer = Buffer + End If +End Function + +''============================================================================== +''Code flow routines: + +Public Function SyncShell(CommandLine As String, Optional Timeout As Long, _ + Optional WaitForInputIdle As Boolean, Optional Hide As Boolean = False) As Boolean + + Dim hProcess As Long + + Const STARTF_USESHOWWINDOW As Long = &H1 + Const SW_HIDE As Long = 0 + + Dim ret As Long + Dim nMilliseconds As Long + + If Timeout > 0 Then + nMilliseconds = Timeout + Else + nMilliseconds = INFINITE + End If + + hProcess = StartProcess(CommandLine, Hide) + + If WaitForInputIdle Then + 'Wait for the shelled application to finish setting up its UI: + ret = InputIdle(hProcess, nMilliseconds) + Else + 'Wait for the shelled application to terminate: + ret = WaitForSingleObject(hProcess, nMilliseconds) + End If + + CloseHandle hProcess + + 'Return True if the application finished. Otherwise it timed out or erred. + SyncShell = (ret = WAIT_OBJECT_0) +End Function + +Public Function StartProcess(CommandLine As String, Optional Hide As Boolean = False) As Long + Const STARTF_USESHOWWINDOW As Long = &H1 + Const SW_HIDE As Long = 0 + + Dim proc As PROCESS_INFORMATION + Dim Start As STARTUPINFO + + 'Initialize the STARTUPINFO structure: + Start.cb = Len(Start) + If Hide Then + Start.dwFlags = STARTF_USESHOWWINDOW + Start.wShowWindow = SW_HIDE + End If + 'Start the shelled application: + CreateProcessA 0&, CommandLine, 0&, 0&, 1&, _ + NORMAL_PRIORITY_CLASS, 0&, 0&, Start, proc + + StartProcess = proc.hProcess +End Function +Public Function CheckDataAccess() As Boolean + Dim i As Integer + Dim sFile As FILEINFO + Dim fData As Boolean + fData = False + i = 1 + Do While ReadSetupFileLine(gstrINI_FILES, i, sFile) = True + If UCase(sFile.strSrcName) = UCase(gstrSEP_AMPERSAND & gstrFILE_MDAG) Then 'This is mdac_typ + fData = True + Exit Do + End If + i = i + 1 + Loop + CheckDataAccess = fData +End Function +Public Sub InstallDataAccess() + + 'Create the folder if it doesn't exist already. + If Not (DirExists(gsTEMPDIR)) Then + MkDir gsTEMPDIR + End If + ExtractFileFromCab GetShortPathName(gsCABNAME), gstrSEP_AMPERSAND & gstrFILE_MDAG, gsTEMPDIR & gstrFILE_MDAG, gintCabs, gstrSrcPath + If FileExists(gsTEMPDIR & gstrFILE_MDAG) Then + SyncShell gsTEMPDIR & gstrFILE_MDAG & gstrFILE_MDAGARGS, INFINITE + End If + +End Sub diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMONRC.H b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMONRC.H new file mode 100644 index 0000000..9d0175f --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMONRC.H @@ -0,0 +1,44 @@ +#define resLOG_FILEUPTODATE 2000 +#define resLOG_FILECOPIED 2001 +#define resLOG_ERROR 2002 +#define resLOG_WARNING 2003 +#define resLOG_DURINGACTION 2004 +#define resLOG_CANNOTWRITE 2005 +#define resLOG_CANNOTCREATE 2006 +#define resLOG_DONOTMODIFY 2007 +#define resLOG_FILECONTENTS 2008 +#define resLOG_FILEUSEDFOR 2009 +#define resLOG_UNEXPECTED 2010 +#define resLOG_OUTOFMEMORY 2011 +#define resLOG_USERRESPONDEDWITH 2012 +#define resLOG_CANTRUNAPPREMOVER 2013 +#define resLOG_ABOUTTOREMOVEAPP 2014 + +// The following are the captions on system dialog buttons +#define resLOG_IDOK 2100 +#define resLOG_IDCANCEL 2101 +#define resLOG_IDABORT 2102 +#define resLOG_IDRETRY 2103 +#define resLOG_IDIGNORE 2104 +#define resLOG_IDYES 2105 +#define resLOG_IDNO 2106 +#define resLOG_IDUNKNOWN 2107 + + +#define resCOMMON_CANTREG 2200 +#define resCOMMON_CANTREGUNEXPECTED 2201 +#define resCOMMON_CANTREGOLE 2202 +#define resCOMMON_CANTREGLOAD 2203 +#define resCOMMON_CANTREGENTRY 2204 +#define resCOMMON_CANTREGREG 2205 +#define resCOMMON_CANTREGAUTPRXRPC1 2206 +#define resCOMMON_CANTREGAUTPRXRPC2 2207 +#define resCOMMON_CTL3D32NOTCOPIED 2208 +#define resCOMMON_INVALIDFILECHARS 2209 +#define resCOMMON_MULTDIRBASENAME 2210 +#define resCOMMON_CANTFINDSRCFILE 2211 +#define resCOMMON_CANTREGTLB 2212 +#define resCOMMON_RICHED32NOTCOPIED 2213 +#define resCOMMON_AXDISTNOTCOPIED 2214 +#define resCOMMON_WINT351NOTCOPIED 2215 +#define resCOMMON_CANTDOREBOOTCOPY 2216 diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMONRC.RC b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMONRC.RC new file mode 100644 index 0000000..c2f9a8b --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COMMONRC.RC @@ -0,0 +1,46 @@ +resLOG_FILEUPTODATE "File currently on disk was already up to date" +resLOG_FILECOPIED "File was not found or was an older version -- new file copied" +resLOG_ERROR "ERROR:" +resLOG_WARNING "WARNING:" +resLOG_DURINGACTION "DURING THIS ACTION:" +resLOG_CANNOTWRITE "Error writing to logfile '|1'" +resLOG_CANNOTCREATE "Setup fatal error: Unable to generate installation log file." // Used by setup.c! +resLOG_DONOTMODIFY "PLEASE DO NOT MODIFY OR DELETE THIS FILE!" +resLOG_FILECONTENTS "This file contains information about the installation of an application." +resLOG_FILEUSEDFOR "It will be used to automatically remove all application components from your computer if you choose to do so." +resLOG_UNEXPECTED "There was an unexpected problem trying to create or write to the logfile '|1'. Error number is |2." +resLOG_OUTOFMEMORY "Out of memory trying to create or write to the logfile '|1'" +resLOG_USERRESPONDEDWITH "User Responded with '|1'" +resLOG_CANTRUNAPPREMOVER "Error attempting to run the application removal program to remove temporary installation files." +resLOG_ABOUTTOREMOVEAPP "Setup will now start the application removal utility to remove temporary installation files." + +// The following are the captions on system dialog buttons, but should NOT contain '&' for shortcuts +resLOG_IDOK "OK" +resLOG_IDCANCEL "Cancel" +resLOG_IDABORT "Abort" +resLOG_IDRETRY "Retry" +resLOG_IDIGNORE "Ignore" +resLOG_IDYES "Yes" +resLOG_IDNO "No" +resLOG_IDUNKNOWN "(Unknown)" // (Unexpected error case) + + +resCOMMON_CANTREG "An error occurred while registering the file '|1'" +resCOMMON_CANTREGUNEXPECTED "Unexpected error while registering file '|1'" +resCOMMON_CANTREGOLE "Could not initialize OLE in order to register file '|1'" +resCOMMON_CANTREGLOAD "LoadLibrary() failed while registering file '|1'" +resCOMMON_CANTREGENTRY "No entrypoint for DllRegisterServer() was found in '|1'" +resCOMMON_CANTREGREG "DllRegisterServer() in the file '|1' returned failure" +resCOMMON_CANTREGTLB "Could not register the TLB file '|1'." +resCOMMON_CANTREGAUTPRXRPC1 "One possible cause for this error is that RPC may not be installed on your computer." +resCOMMON_CANTREGAUTPRXRPC2 "If this is the problem, then you will need to exit Setup, install RPC, and restart Setup." +resCOMMON_CTL3D32NOTCOPIED "The file '|1' was not copied because it is intended for use under Windows NT 3.51 only. It is not needed under Windows 95 or NT 4.0." +resCOMMON_RICHED32NOTCOPIED "The file '|1' was not copied because it is intended for use under Windows 95 only. It is not needed under Windows NT 3.51 or 4.0." +resCOMMON_AXDISTNOTCOPIED "The file '|1' was not copied because it is intended for use under Windows 95 and NT 4.x only. It is not needed under Windows NT 3.51." +resCOMMON_WINT351NOTCOPIED "The file '|1' was not copied because it is intended for use under Windows NT 3.51 only. It is not needed under Windows 95 or NT 4.x." +// Localizers, a list of invalid file name characters can be easily obtained in Win95 by simply trying to create a file name in Explorer with any +// invalid characters in it. An error message will appear displaying all invalid characters. +resCOMMON_INVALIDFILECHARS "\/:*?""<>|" +resCOMMON_MULTDIRBASENAME "DISK" +resCOMMON_CANTFINDSRCFILE "Cannot find the source file '|1' to install." +resCOMMON_CANTDOREBOOTCOPY "Cannot update system file '|1'. You may not have permission to update system files on this machine." diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COPY.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COPY.FRM new file mode 100644 index 0000000..ccaa591 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COPY.FRM @@ -0,0 +1,131 @@ +VERSION 5.00 +Begin VB.Form frmCopy + BorderStyle = 3 'Fixed Dialog + Caption = "#" + ClientHeight = 1830 + ClientLeft = 870 + ClientTop = 1530 + ClientWidth = 5910 + ClipControls = 0 'False + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Icon = "copy.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 1830 + ScaleWidth = 5910 + Begin VB.PictureBox picStatus + AutoRedraw = -1 'True + ClipControls = 0 'False + FillColor = &H00FF0000& + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 384 + Left = 168 + ScaleHeight = 330 + ScaleWidth = 5535 + TabIndex = 3 + TabStop = 0 'False + Top = 708 + Width = 5592 + End + Begin VB.CommandButton cmdExit + Cancel = -1 'True + Caption = "#" + Default = -1 'True + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 420 + Left = 2085 + MaskColor = &H00000000& + TabIndex = 0 + Top = 1275 + Width = 1665 + End + Begin VB.Label lblDestFile + Caption = "*" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 192 + Left = 168 + TabIndex = 1 + Top = 300 + Width = 5640 + End + Begin VB.Label lblCopy + AutoSize = -1 'True + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 180 + Left = 165 + TabIndex = 2 + Top = 0 + Width = 90 + End +End +Attribute VB_Name = "frmCopy" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text +' frmCopy +Private Sub cmdExit_Click() + ExitSetup Me, gintRET_EXIT +End Sub + +Private Sub Form_Load() + SetFormFont Me + cmdExit.Caption = ResolveResString(resBTNCANCEL) + lblCopy.Caption = ResolveResString(resLBLDESTFILE) + lblDestFile.Caption = vbNullString + + frmCopy.Caption = gstrTitle +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + If UnloadMode <> 1 Then + ExitSetup Me, gintRET_EXIT + Cancel = 1 + End If +End Sub + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COPY.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COPY.FRX new file mode 100644 index 0000000..01ccd08 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/COPY.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/DSKSPACE.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/DSKSPACE.FRM new file mode 100644 index 0000000..2542f64 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/DSKSPACE.FRM @@ -0,0 +1,374 @@ +VERSION 5.00 +Begin VB.Form frmDskSpace + AutoRedraw = -1 'True + BorderStyle = 3 'Fixed Dialog + Caption = "#" + ClientHeight = 2550 + ClientLeft = 870 + ClientTop = 1530 + ClientWidth = 5355 + ClipControls = 0 'False + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Icon = "dskspace.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 2550 + ScaleWidth = 5355 + Begin VB.CommandButton cmdExit + Cancel = -1 'True + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 420 + Left = 3570 + MaskColor = &H00000000& + TabIndex = 2 + Top = 1965 + Width = 1560 + End + Begin VB.CommandButton cmdInstall + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 420 + Left = 1875 + MaskColor = &H00000000& + TabIndex = 1 + Top = 1965 + Width = 1560 + End + Begin VB.CommandButton cmdChgDrv + Caption = "#" + Default = -1 'True + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 420 + Left = 192 + MaskColor = &H00000000& + TabIndex = 0 + Top = 1968 + Width = 1560 + End + Begin VB.Label lblDisk + BorderStyle = 1 'Fixed Single + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 216 + Index = 0 + Left = 240 + TabIndex = 4 + Top = 1308 + Visible = 0 'False + Width = 504 + End + Begin VB.Label lblAvail + Alignment = 1 'Right Justify + BorderStyle = 1 'Fixed Single + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 216 + Index = 0 + Left = 2340 + TabIndex = 5 + Top = 1308 + Visible = 0 'False + Width = 1260 + End + Begin VB.Label lblNeed + Alignment = 1 'Right Justify + BorderStyle = 1 'Fixed Single + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 216 + Index = 0 + Left = 3888 + TabIndex = 6 + Top = 1308 + Visible = 0 'False + Width = 1260 + End + Begin VB.Label lblReq + Alignment = 1 'Right Justify + BorderStyle = 1 'Fixed Single + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 216 + Index = 0 + Left = 804 + TabIndex = 7 + Top = 1308 + Visible = 0 'False + Width = 1260 + End + Begin VB.Shape shpSpace + BorderColor = &H00000000& + Height = 396 + Left = 192 + Top = 1224 + Width = 4980 + End + Begin VB.Label lblDiskH + AutoSize = -1 'True + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 180 + Left = 240 + TabIndex = 8 + Top = 1005 + Width = 90 + End + Begin VB.Label lblAvailH + Alignment = 1 'Right Justify + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 408 + Left = 2352 + TabIndex = 11 + Top = 804 + Width = 1260 + WordWrap = -1 'True + End + Begin VB.Label lblNeedH + Alignment = 1 'Right Justify + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 408 + Left = 3888 + TabIndex = 10 + Top = 804 + Width = 1260 + WordWrap = -1 'True + End + Begin VB.Label lblReqH + Alignment = 1 'Right Justify + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 408 + Left = 804 + TabIndex = 9 + Top = 804 + Width = 1260 + WordWrap = -1 'True + End + Begin VB.Shape shpHeading + BorderColor = &H00000000& + Height = 480 + Left = 192 + Top = 744 + Width = 4980 + End + Begin VB.Label lblNoSpace + AutoSize = -1 'True + Caption = "#" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 180 + Left = 195 + TabIndex = 3 + Top = 150 + Width = 90 + End +End +Attribute VB_Name = "frmDskSpace" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text + +' +' Form/Module Constants +' +Const strFMT$ = "######0 K" + +Private Sub cmdChgDrv_Click() + gfRetVal = gintRET_CANCEL + Unload Me +End Sub + +Private Sub cmdExit_Click() + ExitSetup Me, gintRET_EXIT +End Sub + +Private Sub cmdInstall_Click() + gfRetVal = gintRET_CONT + Unload Me +End Sub + +Private Sub Form_Load() + Const ONE_K& = 1024 + + Dim intIdx As Integer + Dim lAvail As Long + Dim lReq As Long + Dim intHeight As Integer + Dim intTop As Integer + + SetFormFont Me + cmdExit.Caption = ResolveResString(resBTNEXIT) + cmdInstall.Caption = ResolveResString(resBTNINSTALLNOW) + cmdChgDrv.Caption = ResolveResString(resBTNCHGDRV) + lblDiskH.Caption = ResolveResString(resLBLDRIVE) + lblAvailH.Caption = ResolveResString(resLBLAVAIL) + lblNeedH.Caption = ResolveResString(resLBLNEEDED) + lblReqH.Caption = ResolveResString(resLBLREQUIRED) + lblNoSpace.Caption = ResolveResString(resLBLNOSPACE) + frmDskSpace.Caption = gstrTitle + + intHeight = lblDisk(0).Height * 1.6 + intTop = lblDisk(0).Top + + ' + 'borders are for design mode only... + ' + lblDisk(0).BorderStyle = 0 + lblReq(0).BorderStyle = 0 + lblAvail(0).BorderStyle = 0 + lblNeed(0).BorderStyle = 0 + + For intIdx = 1 To Len(gstrDrivesUsed) + Load lblDisk(intIdx) + Load lblReq(intIdx) + Load lblAvail(intIdx) + Load lblNeed(intIdx) + + lAvail = gsDiskSpace(intIdx).lAvail + lReq = gsDiskSpace(intIdx).lReq + + lblDisk(intIdx).Caption = Mid$(gstrDrivesUsed, intIdx, 1) & gstrCOLON + lblReq(intIdx).Caption = Format$(lReq / ONE_K, strFMT) + lblAvail(intIdx).Caption = Format$(lAvail / ONE_K, strFMT) + lblNeed(intIdx).Caption = Format$(IIf(lReq > lAvail, lReq - lAvail, 0) / ONE_K, strFMT) + + lblDisk(intIdx).Top = intTop + lblReq(intIdx).Top = intTop + lblAvail(intIdx).Top = intTop + lblNeed(intIdx).Top = intTop + + intTop = intTop + intHeight + + lblDisk(intIdx).Visible = True + lblReq(intIdx).Visible = True + lblAvail(intIdx).Visible = True + lblNeed(intIdx).Visible = True + Next + + shpSpace.Height = intHeight * (intIdx - 1) + + cmdChgDrv.Top = shpSpace.Top + shpSpace.Height + cmdChgDrv.Height + cmdInstall.Top = cmdChgDrv.Top + cmdExit.Top = cmdChgDrv.Top + + frmDskSpace.Height = cmdChgDrv.Top + cmdChgDrv.Height * 2.5 + + EtchedLine Me, 100, cmdChgDrv.Top - cmdChgDrv.Height * 0.5, Me.ScaleWidth - 200 + + CenterForm Me +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + If UnloadMode <> 1 Then + ExitSetup Me, gintRET_EXIT + Cancel = 1 + End If +End Sub + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/DSKSPACE.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/DSKSPACE.FRX new file mode 100644 index 0000000..01ccd08 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/DSKSPACE.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/FRMOVWRT.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/FRMOVWRT.FRM new file mode 100644 index 0000000..ec9a7a6 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/FRMOVWRT.FRM @@ -0,0 +1,161 @@ +VERSION 5.00 +Begin VB.Form frmOverwrite + BorderStyle = 3 'Fixed Dialog + Caption = "frmOverwrite" + ClientHeight = 3270 + ClientLeft = 45 + ClientTop = 330 + ClientWidth = 5130 + Icon = "frmOverwrite.frx":0000 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3270 + ScaleWidth = 5130 + ShowInTaskbar = 0 'False + StartUpPosition = 1 'CenterOwner + Begin VB.CommandButton cmdNoAll + Caption = "cmdNoAll" + Height = 375 + Left = 3720 + TabIndex = 2 + Top = 2760 + Width = 1315 + End + Begin VB.CommandButton cmdNo + Caption = "cmdNo" + Height = 375 + Left = 2280 + TabIndex = 1 + Top = 2760 + Width = 1315 + End + Begin VB.CommandButton cmdYes + Caption = "cmdYes" + Default = -1 'True + Height = 375 + Left = 840 + TabIndex = 0 + Top = 2760 + Width = 1315 + End + Begin VB.Label lblVersion + BackStyle = 0 'Transparent + Caption = "lblVersion" + Height = 255 + Left = 120 + TabIndex = 7 + Top = 1920 + Width = 4935 + End + Begin VB.Label lblDescription + BackStyle = 0 'Transparent + Caption = "lblDescription" + Height = 255 + Left = 120 + TabIndex = 6 + Top = 1560 + Width = 4935 + End + Begin VB.Label lblFileName + BackStyle = 0 'Transparent + Caption = "lblFileName" + Height = 615 + Left = 120 + TabIndex = 5 + Top = 840 + Width = 4935 + End + Begin VB.Label lblCopy + BackStyle = 0 'Transparent + Caption = "lblCopy" + Height = 255 + Left = 120 + TabIndex = 4 + Top = 2280 + Width = 4935 + End + Begin VB.Label lblTopInfo + BackStyle = 0 'Transparent + Caption = "lblTopInfo" + Height = 495 + Left = 120 + TabIndex = 3 + Top = 120 + Width = 4935 + End +End +Attribute VB_Name = "frmOverwrite" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +'Local variables to account for filename/description/version +Private msFile As String +Private msDesc As String +Private msVer As String +Private fFormLoaded As Boolean +Private mfYes As Boolean +Private mfNo As Boolean +Private mfNoToAll As Boolean + +Private Sub cmdNo_Click() + mfNo = True + Unload Me +End Sub + +Private Sub cmdNoAll_Click() + mfNoToAll = True + Unload Me +End Sub + +Private Sub cmdYes_Click() + mfYes = True + Unload Me +End Sub + +Private Sub Form_Load() + + fFormLoaded = True + SetFormFont Me + 'Load the strings for this form. + Me.Caption = ResolveResString(resOVERWRITEFORM) + lblTopInfo.Caption = ResolveResString(resOVERWRITEINFO) + lblCopy.Caption = ResolveResString(resOVERWRITEKEEP) + cmdYes.Caption = ResolveResString(resOVERYES) + cmdNo.Caption = ResolveResString(resOVERNO) + cmdNoAll.Caption = ResolveResString(resOVERNOTOALL) + lblFileName.Caption = ResolveResString(resOVERWRITEFILE, "|1", msFile) + lblDescription.Caption = ResolveResString(resOVERWRITEDESC, "|1", msDesc) + lblVersion.Caption = ResolveResString(resOVERWRITEVER, "|1", msVer) + SetMousePtr vbNormal +End Sub + +'public access to local vars +Public Property Let FileName(sName As String) + msFile = sName + If fFormLoaded Then lblFileName.Caption = ResolveResString(resOVERWRITEFILE, "|1", msFile) +End Property +Public Property Let Description(sDesc As String) + msDesc = sDesc + If fFormLoaded Then lblDescription.Caption = ResolveResString(resOVERWRITEDESC, "|1", msDesc) +End Property +Public Property Let Version(sVer As String) + msVer = sVer + If fFormLoaded Then lblVersion.Caption = ResolveResString(resOVERWRITEVER, "|1", msVer) +End Property + +Private Sub Form_Unload(Cancel As Integer) + SetMousePtr vbHourglass +End Sub + +Public Property Get ReturnVal() As Byte + 'Return 0 for yes + 'return 1 for no + 'return 2 for no to all + + If mfYes Then ReturnVal = 0 + If mfNo Then ReturnVal = 1 + If mfNoToAll Then ReturnVal = 2 +End Property diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/FRMOVWRT.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/FRMOVWRT.FRX new file mode 100644 index 0000000..b20c2b6 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/FRMOVWRT.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/GROUP.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/GROUP.FRM new file mode 100644 index 0000000..ef1643e --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/GROUP.FRM @@ -0,0 +1,352 @@ +VERSION 5.00 +Begin VB.Form frmGroup + BorderStyle = 3 'Fixed Dialog + Caption = "* #" + ClientHeight = 5250 + ClientLeft = 1095 + ClientTop = 1515 + ClientWidth = 5460 + Icon = "group.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 350 + ScaleMode = 3 'Pixel + ScaleWidth = 364 + Begin VB.DirListBox dir95Groups + Height = 930 + Left = 765 + TabIndex = 8 + Top = 60 + Visible = 0 'False + Width = 3810 + End + Begin VB.Frame Frame1 + Height = 30 + Left = 105 + TabIndex = 7 + Top = 4650 + Width = 5220 + End + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "#" + Height = 345 + Left = 2880 + MaskColor = &H00000000& + TabIndex = 3 + Top = 4800 + Width = 1140 + End + Begin VB.CommandButton cmdContinue + Caption = "#" + Default = -1 'True + Height = 345 + Left = 1395 + MaskColor = &H00000000& + TabIndex = 2 + Top = 4800 + Width = 1140 + End + Begin VB.ListBox lstGroups + Height = 2010 + ItemData = "group.frx":0442 + Left = 1080 + List = "group.frx":0449 + Sorted = -1 'True + TabIndex = 1 + Top = 2220 + Width = 3240 + End + Begin VB.TextBox txtGroup + Height = 300 + Left = 1080 + TabIndex = 0 + Text = "*" + Top = 1410 + Width = 3270 + End + Begin VB.Label lblDDE + Height = 225 + Left = 225 + TabIndex = 9 + Top = 1350 + Visible = 0 'False + Width = 705 + End + Begin VB.Label lblGroups + AutoSize = -1 'True + Caption = "#" + Height = 195 + Left = 1080 + TabIndex = 6 + Top = 1950 + Width = 105 + End + Begin VB.Label lblGroup + AutoSize = -1 'True + Caption = "#" + Height = 195 + Left = 1080 + TabIndex = 5 + Top = 1170 + Width = 105 + End + Begin VB.Label lblMain + AutoSize = -1 'True + Caption = "#" + Height = 195 + Left = 180 + TabIndex = 4 + Top = 165 + Width = 5100 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmGroup" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Dim mstrGroup As String +Dim mstrDefGroup As String +Dim mstrProgramsPath As String +Dim mfrm As Form +Dim fPrivate As Boolean +Dim fStartMenu As Boolean + +Private Sub cmdCancel_Click() + ExitSetup frmGroup, gintRET_EXIT +End Sub + +Private Sub cmdContinue_Click() + mstrGroup = txtGroup.Text + If Not fCreateProgGroup() Then + ' + ' Couldn't create the group. Let + ' the user try again. + ' + txtGroup.SetFocus + Else + ' + ' The group got created ok, so unload Choose Program Group dialog + ' and continue on with setup. + ' + Unload Me + End If +End Sub +Private Function fCreateProgGroup() As Boolean +' +' Create a program group for either NT or Win95. +' + Dim strMsg As String + If TreatAsWin95() Then + If Not fValidFilename(mstrGroup) Then + strMsg = ResolveResString(resGROUPINVALIDGROUPNAME, "|1", CStr(gintMAX_PATH_LEN), "|2", ResolveResString(resCOMMON_INVALIDFILECHARS)) + MsgFunc strMsg, vbOKOnly Or vbQuestion, gstrTitle + GoTo CGError + End If + Else + If Not fValidNTGroupName(mstrGroup) Then + strMsg = ResolveResString(resGROUPINVALIDGROUPNAME, "|1", CStr(gintMAX_GROUPNAME_LEN%), "|2", ResolveResString(resGROUPINVALIDCHARS)) + MsgFunc strMsg, vbOKOnly Or vbQuestion, gstrTitle + GoTo CGError + End If + + End If + ' + 'Go ahead and create the main program group + ' + If Not fCreateOSProgramGroup(mfrm, mstrGroup, True, , fPrivate, fStartMenu) Then + GoTo CGError + End If + + fCreateProgGroup = True + Exit Function +CGError: + fCreateProgGroup = False +End Function +Private Sub Form_Load() + ' + ' Initialize localized control properties. + ' + SetFormFont Me + Me.Caption = ResolveResString(resGROUPFRM, "|1", gstrAppName) + lblMain.Caption = ResolveResString(resGROUPLBLMAIN) + lblGroup.Caption = ResolveResString(resGROUPLBLGROUP) + lblGroups.Caption = ResolveResString(resGROUPLBLGROUPS) + cmdContinue.Caption = ResolveResString(resGROUPBTNCONTINUE) + cmdCancel.Caption = ResolveResString(resLOG_vbCancel) + ' + ' Initialize the Program Group text box with the + ' title of the application. + ' + txtGroup.Text = gstrTitle + ' + ' Load the ListBox with the program manager groups. + ' + If TreatAsWin95() Then + LoadW95Groups + Else + LoadProgManGroups + End If + ' + ' Initialize the Program Group textbox with the + ' default group selected in the list box. + ' + txtGroup.Text = lstGroups.List(lstGroups.ListIndex) +End Sub + +Private Sub lstGroups_Click() + txtGroup.Text = lstGroups.List(lstGroups.ListIndex) +End Sub + +Private Sub txtGroup_Change() + cmdContinue.Enabled = Len(Trim(txtGroup.Text)) > 0 +End Sub +Sub LoadProgManGroups() +' +' This routine uses DDE to talk to Program Manager +' to retrieve a list of all the groups it manages. +' It should only be called if the shell is NT 3.51. +' If it is Win95 or NT4, call LoadW95Groups() +' instead. +' +' Special strings used in this routine. Do not +' localize these strings. +' + Const strPROGMANLINKTOPIC = "ProgMan|Progman" + Const strPROGMANLINKITEM = "Progman" + Const strNDWGROUP = "Quick Access" + + Dim strGroups As String + Dim strGroup As String + Dim intOffset As Integer + Dim intAnchor As Integer + Dim iGroup As Long + + lblDDE.LinkTopic = strPROGMANLINKTOPIC + lblDDE.LinkItem = strPROGMANLINKITEM + lblDDE.LinkMode = 2 + lblDDE.LinkRequest + On Error Resume Next + lblDDE.LinkMode = 0 + ' + ' The DDE call just made put the names of all the groups + ' into the caption property of the lblDDE control. + ' We want to transfer them to the list box. They are + ' separated by vbcrlf's. + ' + strGroups = lblDDE.Caption + intAnchor = 1 + intOffset = InStr(intAnchor, strGroups, vbCrLf) + lstGroups.Clear + Do While intOffset > 0 + strGroup = Mid(strGroups, intAnchor, intOffset - intAnchor) + ' + ' Norton Desktop for Windows uses the "Quick Access" group + ' to replace program manager. Trying to add icons to this + ' group will fail later when we perform our DDE.linkrequest. + ' Therefore, skip this group. + ' + If strGroup <> strNDWGROUP Then + lstGroups.AddItem strGroup + End If + + intAnchor = intOffset + 2 + intOffset = InStr(intAnchor, strGroups, vbCrLf) + Loop + ' + ' The lstGroups listbox now contains a listing of all the program + ' manager groups. + ' + ' Look for the default group in the list and select it. If it's + ' not there, add it. + ' + iGroup = SendMessageString(lstGroups.hwnd, LB_FINDSTRINGEXACT, -1, mstrDefGroup) + If iGroup = LB_ERR Then + ' + ' The group doesn't yet exist, add it to the list. + ' + lstGroups.AddItem mstrDefGroup + lstGroups.ListIndex = lstGroups.NewIndex + Else + lstGroups.ListIndex = iGroup + End If +End Sub +Sub LoadW95Groups() +' +' This routine uses the system registry to +' retrieve a list of all the subfolders in the +' \windows\start menu\programs folder. +' It should only be called if the shell is Win95 +' NT4. If it is NT 3.51, call LoadProgManGroups() +' instead. +' + Dim strFolder As String + Dim iFolder As Integer + + mstrProgramsPath = strGetProgramsFilesPath() + strFolder = Dir(mstrProgramsPath, vbDirectory) ' Retrieve the first entry. + lstGroups.Clear + Do While strFolder <> "" + ' + ' Ignore the current directory and the encompassing directory. + ' + If strFolder <> "." And strFolder <> ".." Then + ' + ' Verify that we actually got a directory and not a file. + ' + If (GetAttr(mstrProgramsPath & strFolder) And vbDirectory) = vbDirectory Then + ' + ' We got a directory, add it to the list. + ' + lstGroups.AddItem strFolder + End If + End If + ' + ' Get the next subfolder in the Programs folder + ' + strFolder = Dir + Loop + ' + ' The lstGroups listbox now contains a listing of all the Programs + ' subfolders (the groups). + ' + ' Look for the default folder in the list and select it. If it's + ' not there, add it. + ' + iFolder = SendMessageString(lstGroups.hwnd, LB_FINDSTRINGEXACT, -1, mstrDefGroup) + If iFolder = LB_ERR Then + ' + ' The group doesn't yet exist, add it to the list. + ' + lstGroups.AddItem mstrDefGroup + lstGroups.ListIndex = lstGroups.NewIndex + Else + lstGroups.ListIndex = iFolder + End If +End Sub +Public Property Get GroupName(frm As Form, strDefGroup As String, Optional fPriv As Boolean = True, Optional ByVal fStart As Boolean = False) As String + mstrDefGroup = strDefGroup + Set mfrm = frm + + fPrivate = fPriv + fStartMenu = fStart + If gfNoUserInput = True Then + mstrGroup = mstrDefGroup + If Not fCreateProgGroup() Then + ExitSetup frmSetup1, gintRET_FATAL + End If + Else + Me.Show vbModal + End If + GroupName = mstrGroup +End Property + +Private Sub txtGroup_GotFocus() + txtGroup.SelStart = 0 + txtGroup.SelLength = 32767 +End Sub diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/GROUP.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/GROUP.FRX new file mode 100644 index 0000000..01a3bd5 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/GROUP.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/INSTALL.BMP b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/INSTALL.BMP new file mode 100644 index 0000000..2e60724 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/INSTALL.BMP differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/LOGGING.BAS b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/LOGGING.BAS new file mode 100644 index 0000000..ca93ea2 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/LOGGING.BAS @@ -0,0 +1,294 @@ +Attribute VB_Name = "basLogging" +Option Explicit +Option Compare Text + +' +' Module basLogging (32-bit functionality only) +' +'The routines in this module are used for logging actions, +'warnings, notes and errors in an application removal +'logfile. This logfile will be used by the application +'removal utility (ST6UNST.EXE) in the event that the user +'decides to remove the installed application (via a Program +'Manager icon under Windows NT or the Add/Remove Programs +'control panel applet under Windows 95). +' +'The functions are based on transaction-like "actions". +'Whenever the setup program starts to process a new action +'(an action is anything which the application removal +'utility must undo), the function NewAction() must be +'called with the appropriate parameters for that action +'(search for NewAction in this project to see how the +'correct parameters for various actions are formed). +'When the action has been successfully completed, the +'function CommitAction() is called, or, if the +'action was not successfully completed, AbortAction() +'must be called. If CommitAction() is called, then the +'action is logged at that point, and the application +'removal utility will undo that action (example, delete +'a file which was copied by setup). +' +'Actions may be nested (for instance, a file copy +'action may have a nested direction creation action). +'Any errors, warnings or notes logged will note in +'the logfile the pending action (if any). Even if +'an error is logged, the pending action must either +'be committed or canceled. See comments for each +'function below for more specifics. +' + +'Application removal is only supported for 32-bit projects + +'Set this constant to FALSE if you do not want warnings to appear +'in the logfile +Global Const fLOG_WARNINGS = True + +'Global Action Key constants +Global Const gstrKEY_PRIVATEFILE = "PrivateFile" +Global Const gstrKEY_TEMPFILE = "TempFile" +Global Const gstrKEY_SHAREDFILE = "SharedFile" +Global Const gstrKEY_SYSTEMFILE = "SystemFile" +Global Const gstrKEY_CREATEDIR = "CreateDir" +Global Const gstrKEY_PROGMANGROUP = "ProgManGroup" +Global Const gstrKEY_PROGMANITEM = "ProgManItem" +Global Const gstrKEY_SHELLFOLDER = "ShellFolder" +Global Const gstrKEY_SHELLLINK = "ShellLink" +Global Const gstrKEY_DLLSELFREGISTER = "DllSelfRegister" +Global Const gstrKEY_EXESELFREGISTER = "ExeSelfRegister" +Global Const gstrKEY_TLBREGISTER = "TLBRegister" +Global Const gstrKEY_REMOTEREGISTER = "RemoteRegister" +Global Const gstrKEY_REGKEY = "RegKey" +Global Const gstrKEY_REGVALUE = "RegValue" + +'vb6stkit.dll logging errors +Private Const LOGERR_SUCCESS = 0 +Private Const LOGERR_INVALIDARGS = 1 +Private Const LOGERR_OUTOFMEMORY = 2 +Private Const LOGERR_EXCEEDEDCAPACITY = 3 +Private Const LOGERR_WRITEERROR = 4 +Private Const LOGERR_NOCURRENTACTION = 5 +Private Const LOGERR_UNEXPECTED = 6 +Private Const LOGERR_FILENOTFOUND = 7 + +'Logging error Severities +Private Const LogErrOK = 1 ' OK to continue upon this error +Private Const LogErrFatal = 2 ' Must terminate install upon this error + +'vb6stkit.DLL interfaces +Private Declare Function DllAbortAction Lib "vb6stkit.dll" Alias "AbortAction" () As Long +Private Declare Function DllAddActionNote Lib "vb6stkit.dll" Alias "AddActionNote" (ByVal lpszNote As String) As Long +Private Declare Function DllChangeActionKey Lib "vb6stkit.dll" Alias "ChangeActionKey" (ByVal lpszNewKey As String) As Long +Private Declare Function DllCommitAction Lib "vb6stkit.dll" Alias "CommitAction" () As Long +Private Declare Function fDllWithinAction Lib "vb6stkit.dll" Alias "fWithinAction" () As Long +Private Declare Function DllLogError Lib "vb6stkit.dll" Alias "LogError" (ByVal lpszERROR As String, ByVal lpszDURINGACTION As String, ByVal lpszErrMsg As String) As Long +Private Declare Function DllLogNote Lib "vb6stkit.dll" Alias "LogNote" (ByVal lpszNote As String) As Long +Private Declare Function DllLogWarning Lib "vb6stkit.dll" Alias "LogWarning" (ByVal lpszWARNING As String, ByVal lpszDURINGACTION As String, ByVal lpszWarningMsg As String) As Long +Private Declare Function DllNewAction Lib "vb6stkit.dll" Alias "NewAction" (ByVal lpszKey As String, ByVal lpszData As String) As Long +Private Declare Function DllEnableLogging Lib "vb6stkit.dll" Alias "EnableLogging" (ByVal lpszFilename As String) As Long +Private Declare Function DllDisableLogging Lib "vb6stkit.dll" Alias "DisableLogging" () As Long + +'----------------------------------------------------------- +' SUB: AbortAction +' +' Aborts the current action. +'----------------------------------------------------------- +' +Sub AbortAction() + ShowLoggingError DllAbortAction(), LogErrFatal +End Sub + +'----------------------------------------------------------- +' SUB: AddActionNote +' +' Adds an note which will be written to the log file +' immediately following the current action +'----------------------------------------------------------- +' +Sub AddActionNote(ByVal strNote As String) + ShowLoggingError DllAddActionNote(strNote), LogErrOK +End Sub + +'----------------------------------------------------------- +' SUB: ChangeActionKey +' +' Changes the key of the current action. +'----------------------------------------------------------- +' +Sub ChangeActionKey(ByVal strNewKey As String) + ShowLoggingError DllChangeActionKey(strNewKey), LogErrFatal +End Sub + +'----------------------------------------------------------- +' SUB: CommitAction +' +' Marks the successful completion of the current action. +' The action will be output to the log file. +'----------------------------------------------------------- +' +Sub CommitAction() + ShowLoggingError DllCommitAction(), LogErrFatal +End Sub + +'----------------------------------------------------------- +' SUB: DisableLogging +' +' Disables application removal logging. All logging +' functions can still be called, and must still be +' symentically correct, but no data will be written to disk. +'----------------------------------------------------------- +' +Sub DisableLogging() + ShowLoggingError DllDisableLogging(), LogErrFatal +End Sub + +'----------------------------------------------------------- +' SUB: EnableLogging +' +' Enables application setup/removal logging to the specified logfile +'----------------------------------------------------------- +' +Sub EnableLogging(ByVal strLogFileName As String) + ShowLoggingError DllEnableLogging(strLogFileName), LogErrFatal +End Sub + +'----------------------------------------------------------- +' SUB: LogError +' +' Logs an error to the logfile. The action is NOT aborted. +'----------------------------------------------------------- +' +Sub LogError(ByVal strErr As String) + ShowLoggingError DllLogError(ResolveResString(resLOG_ERROR), ResolveResString(resLOG_DURINGACTION), strErr), LogErrFatal +End Sub + +'----------------------------------------------------------- +' SUB: LogWarning +' +' Logs a warning to the logfile. The action is NOT aborted. +' Warnings are different from errors in that generally +' warnings are not brought to the end user's attention. +' Also, the bootstrapper does not ever log warnings. It only +' logs errors. +' +' The logging of warnings can be turned off by changing the +' value of fLOG_WARNINGS in the declarations section of this +' module. +'----------------------------------------------------------- +' +Sub LogWarning(ByVal strWarning As String) + If fLOG_WARNINGS Then + ShowLoggingError DllLogWarning(ResolveResString(resLOG_WARNING), ResolveResString(resLOG_DURINGACTION), strWarning), LogErrFatal + End If +End Sub + +'----------------------------------------------------------- +' SUB: LogNote +' +' Logs a note to the logfile. It is not necessary to have +' a current action in order to execute this subroutine. +'----------------------------------------------------------- +' +Sub LogNote(ByVal strNote As String) + ShowLoggingError DllLogNote(strNote), LogErrOK +End Sub + +'----------------------------------------------------------- +' SUB: NewAction +' +' Marks the start of a new action for logging. If this +' routine is called before any current action is committed +' or aborted, the previous action will be placed +' on a stack. Once the new action has been committed or +' aborted, the previous action will become active again. +' The reporting of errors, warnings, notes and action +' results are not printed until the action aborts or +' commits. +' Several actions may be stacked in a first-in-first-out +' manner by calling this routine repeatedly. +'----------------------------------------------------------- +' +Sub NewAction(ByVal strKey As String, ByVal strData As String) + ShowLoggingError DllNewAction(strKey, strData), LogErrFatal +End Sub + +Sub ShowLoggingError(ByVal lErr As Long, ByVal lErrSeverity As Long) + If lErr = LOGERR_SUCCESS Then + Exit Sub + End If + + Dim strErrMsg As String + Static fRecursive As Boolean + + If fRecursive Then + 'If we're getting called recursively, we're likely + 'getting errors while trying to write out errors to + 'the logfile. Nothing to do but turn off logging + 'and abort setup. + DisableLogging + MsgError ResolveResString(resUNEXPECTED), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL + End If + + fRecursive = True + + Select Case lErr + Case LOGERR_OUTOFMEMORY, LOGERR_WRITEERROR, LOGERR_UNEXPECTED, LOGERR_FILENOTFOUND + strErrMsg = ResolveResString(resUNEXPECTED) + + Case LOGERR_INVALIDARGS, LOGERR_EXCEEDEDCAPACITY, LOGERR_NOCURRENTACTION + 'Note: These errors are most likely the result of improper customization + 'of this project. Make certain that any changes you have made to these + 'files are valid and bug-free. + 'LOGERR_INVALIDARGS -- some parameter to a logging function was invalid or improper + 'LOGERR_EXCEEDEDCAPACITY -- the stacking depth of actions has probably been + ' exceeded. This most likely means that CommitAction or AbortAction statements + ' are missing from your code. + 'LOGERR_NOCURRENTACTION -- the logging function you tried to use requires that + ' there be a current action, but there was none. Check for a missing NewAction + ' statement. + strErrMsg = ResolveResString(resUNEXPECTED) + Case Else + strErrMsg = ResolveResString(resUNEXPECTED) + 'End Case + End Select + + Dim iRet As Integer + Dim fAbort As Boolean + + fAbort = False + If lErrSeverity = LogErrOK Then + ' User can select whether or not to continue + iRet = MsgFunc(strErrMsg, vbOKCancel Or vbExclamation, gstrTitle) + If gfNoUserInput Then iRet = vbCancel ' can't continue if silent install. + Select Case iRet + Case vbOK + Case vbCancel + fAbort = True + Case Else + fAbort = True + 'End Case + End Select + Else + ' Fatal + MsgFunc strErrMsg, vbOKOnly Or vbExclamation, gstrTitle + fAbort = True + End If + + If fAbort Then + ExitSetup frmCopy, gintRET_ABORT + End If + + fRecursive = False + +End Sub + +'----------------------------------------------------------- +' FUNCTION: fWithinAction +' +' Returns TRUE iff there is a current Action +'----------------------------------------------------------- +' +Function fWithinAction() As Boolean + fWithinAction = fDllWithinAction() +End Function + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MESSAGE.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MESSAGE.FRM new file mode 100644 index 0000000..c7e19d8 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MESSAGE.FRM @@ -0,0 +1,45 @@ +VERSION 5.00 +Begin VB.Form frmMessage + BorderStyle = 3 'Fixed Dialog + ClientHeight = 900 + ClientLeft = 1065 + ClientTop = 1995 + ClientWidth = 5340 + ClipControls = 0 'False + ControlBox = 0 'False + Icon = "message.frx":0000 + LinkTopic = "Form2" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 900 + ScaleWidth = 5340 + Begin VB.Image imgMsg + Height = 480 + Left = 270 + Picture = "message.frx":0442 + Top = 210 + Width = 480 + End + Begin VB.Label lblMsg + AutoSize = -1 'True + Caption = "*" + Height = 180 + Left = 945 + TabIndex = 0 + Top = 360 + Width = 4110 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmMessage" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text +' frmMessage +Private Sub Form_Load() + SetFormFont Me +End Sub diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MESSAGE.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MESSAGE.FRX new file mode 100644 index 0000000..fa88a07 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MESSAGE.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MODSHELL.BAS b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MODSHELL.BAS new file mode 100644 index 0000000..ad68733 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/MODSHELL.BAS @@ -0,0 +1,53 @@ +Attribute VB_Name = "modShell" +Option Explicit + +Public Enum SpecialFolderIDs + sfidDESKTOP = &H0 + sfidPROGRAMS = &H2 + sfidPERSONAL = &H5 + sfidFAVORITES = &H6 + sfidSTARTUP = &H7 + sfidRECENT = &H8 + sfidSENDTO = &H9 + sfidSTARTMENU = &HB + sfidDESKTOPDIRECTORY = &H10 + sfidNETHOOD = &H13 + sfidFONTS = &H14 + sfidTEMPLATES = &H15 + sfidCOMMON_STARTMENU = &H16 + sfidCOMMON_PROGRAMS = &H17 + sfidCOMMON_STARTUP = &H18 + sfidCOMMON_DESKTOPDIRECTORY = &H19 + sfidAPPDATA = &H1A + sfidPRINTHOOD = &H1B + sfidProgramFiles = &H10000 + sfidCommonFiles = &H10001 +End Enum + +Public Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwndOwner As Long, ByVal nFolder As SpecialFolderIDs, ByRef pIdl As Long) As Long +Public Declare Function SHGetPathFromIDListA Lib "shell32" (ByVal pIdl As Long, ByVal pszPath As String) As Long +Public Declare Function SHGetDesktopFolder Lib "shell32" (ByRef pshf As IVBShellFolder) As Long +Public Declare Function SHGetMalloc Lib "shell32" (ByRef pMalloc As IVBMalloc) As Long + +' SHGetSpecialFolderLocation successful rtn val +Public Const NOERROR = 0 + +Public Const CSIDL_DESKTOP = &H0 +Public Const CSIDL_PROGRAMS = &H2 +Public Const CSIDL_CONTROLS = &H3 +Public Const CSIDL_PRINTERS = &H4 +Public Const CSIDL_PERSONAL = &H5 ' (Documents folder) +Public Const CSIDL_FAVORITES = &H6 +Public Const CSIDL_STARTUP = &H7 +Public Const CSIDL_RECENT = &H8 ' (Recent folder) +Public Const CSIDL_SENDTO = &H9 +Public Const CSIDL_BITBUCKET = &HA +Public Const CSIDL_STARTMENU = &HB +Public Const CSIDL_DESKTOPDIRECTORY = &H10 +Public Const CSIDL_DRIVES = &H11 +Public Const CSIDL_NETWORK = &H12 +Public Const CSIDL_NETHOOD = &H13 +Public Const CSIDL_FONTS = &H14 +Public Const CSIDL_TEMPLATES = &H15 ' (ShellNew folder) + + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/PATH.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/PATH.FRM new file mode 100644 index 0000000..610e4c1 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/PATH.FRM @@ -0,0 +1,281 @@ +VERSION 5.00 +Begin VB.Form frmPath + BorderStyle = 3 'Fixed Dialog + Caption = "#" + ClientHeight = 4710 + ClientLeft = 150 + ClientTop = 1530 + ClientWidth = 5955 + ClipControls = 0 'False + Icon = "path.frx":0000 + KeyPreview = -1 'True + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 4710 + ScaleWidth = 5955 + Begin VB.CommandButton cmdCancel + Cancel = -1 'True + Caption = "#" + Height = 420 + Left = 4170 + MaskColor = &H00000000& + TabIndex = 7 + Top = 2640 + Width = 1560 + End + Begin VB.CommandButton cmdOK + Caption = "#" + Default = -1 'True + Height = 420 + Left = 4170 + MaskColor = &H00000000& + TabIndex = 6 + Top = 1890 + Width = 1560 + End + Begin VB.DriveListBox drvDrives + Height = 300 + Left = 216 + TabIndex = 5 + Top = 4140 + Width = 3510 + End + Begin VB.DirListBox dirDirs + Height = 1350 + Left = 204 + TabIndex = 3 + Top = 1896 + Width = 3510 + End + Begin VB.TextBox txtPath + Height = 288 + Left = 204 + MaxLength = 240 + TabIndex = 1 + Top = 1056 + Width = 5532 + End + Begin VB.Label lblDrives + AutoSize = -1 'True + Caption = "#" + Height = 180 + Left = 210 + TabIndex = 4 + Top = 3870 + Width = 90 + End + Begin VB.Label lblDirs + AutoSize = -1 'True + Caption = "#" + Height = 180 + Left = 210 + TabIndex = 2 + Top = 1590 + Width = 90 + End + Begin VB.Label lblPath + AutoSize = -1 'True + Caption = "#" + Height = 180 + Left = 210 + TabIndex = 0 + Top = 750 + Width = 90 + End + Begin VB.Label lblPrompt + AutoSize = -1 'True + Caption = "*" + Height = 180 + Left = 210 + TabIndex = 8 + Top = 210 + Width = 5535 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmPath" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text + +' +' Form/Module Variables +' +Dim mfMustExist As Integer +Dim mfCancelExit As Integer + +Private Sub cmdCancel_Click() + If mfCancelExit = True Then + ExitSetup Me, gintRET_EXIT + Else + gfRetVal = gintRET_CANCEL + Unload Me + End If +End Sub + +Private Sub cmdOK_Click() + Dim strPathName As String + Dim strMsg As String + Dim intRet As Integer + + SetMousePtr vbHourglass + + strPathName = ResolveDir(txtPath.Text, mfMustExist, True) + + If strPathName <> vbNullString Then + If frmSetup1.Tag = gstrDIR_DEST And strPathName <> gstrDestDir Then + If DirExists(strPathName) = False Then + strMsg = ResolveResString(resDESTDIR) & vbLf & vbLf & strPathName + strMsg = strMsg & vbLf & vbLf & ResolveResString(resCREATE) + intRet = MsgFunc(strMsg, vbYesNo Or vbQuestion, gstrTitle) + If gfNoUserInput = True Then + ExitSetup Me, gintRET_FATAL + End If + If intRet = vbNo Then + txtPath.SetFocus + SetMousePtr gintMOUSE_DEFAULT + Exit Sub + End If + End If + + If IsValidDestDir(strPathName) = False Then + txtPath.SetFocus + SetMousePtr gintMOUSE_DEFAULT + Exit Sub + End If + End If + + frmSetup1.Tag = strPathName + gfRetVal = gintRET_CONT + Unload Me + Else + txtPath.SetFocus + End If + + SetMousePtr gintMOUSE_DEFAULT +End Sub + +Private Sub dirDirs_Change() + Static intBusy As Integer + + On Error Resume Next + + If intBusy = False Then + intBusy = True + + ChDir dirDirs.Path + + If Err = 0 Then + txtPath.Text = dirDirs.Path + drvDrives.Drive = Left$(dirDirs.Path, 2) + Else + Err = 0 + End If + + intBusy = False + End If +End Sub + +Private Sub drvDrives_Change() + Static strOldDrive As String + Static intBusy As Integer + + Dim strDrive As String + + If intBusy = False Then + intBusy = True + + strDrive = drvDrives.Drive + + If CheckDrive(strDrive, Me.Caption) = True Then + strOldDrive = strDrive + dirDirs.Path = strDrive + Else + drvDrives.Drive = strOldDrive + End If + + intBusy = False + End If +End Sub + +Private Sub Form_Load() + On Error Resume Next + + SetMousePtr vbHourglass + + SetFormFont Me + cmdOK.Caption = ResolveResString(resBTNOK) + lblDrives.Caption = ResolveResString(resLBLDRIVES) + lblDirs.Caption = ResolveResString(resLBLDIRS) + lblPath.Caption = ResolveResString(resLBLPATH) + + If frmSetup1.Tag = gstrDIR_SRC Then + Caption = ResolveResString(resINSTFROM) + lblPrompt.Caption = ResolveResString(resSRCPROMPT, "|1", gstrAppName) + cmdCancel.Caption = ResolveResString(resBTNEXIT, "|1", gstrAppName) + mfCancelExit = True + dirDirs.Path = gstrSrcPath + If Err > 0 Then + dirDirs.Path = Left$(App.Path, 3) + End If + mfMustExist = True + Else + Caption = ResolveResString(resCHANGEDIR) + lblPrompt.Caption = ResolveResString(resDESTPROMPT) + cmdCancel.Caption = ResolveResString(resBTNCANCEL) + mfCancelExit = False + dirDirs.Path = gstrDestDir + If Err > 0 Then + 'Next try root of destination drive + If Len(gstrDestDir) >= 2 Then + If Mid$(gstrDestDir, 2, 1) = gstrCOLON Then + Err = 0 + dirDirs.Path = Left$(gstrDestDir, 2) & gstrSEP_DIR + End If + End If + End If + If Err > 0 Then + dirDirs.Path = Left$(App.Path, 3) + End If + + 'Init txtPath.Text to gstrDestDir even if this + ' directory does not (yet) exist. + txtPath.Text = gstrDestDir + mfMustExist = False + End If + + If frmSetup1.Tag = gstrDIR_SRC Then + txtPath.Text = dirDirs.Path + End If + + drvDrives.Drive = Left$(dirDirs.Path, 2) + drvDrives_Change + + SetMousePtr gintMOUSE_DEFAULT + + CenterForm Me + + 'Highlight all of txtPath's text so that typing immediately overwrites it + txtPath.SelStart = 0 + txtPath.SelLength = Len(txtPath.Text) + + Err = 0 +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + If UnloadMode <> 1 Then + If mfCancelExit = True Then + ExitSetup Me, gintRET_EXIT + Cancel = 1 + Else + gfRetVal = gintRET_CANCEL + Unload Me + End If + End If +End Sub + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/PATH.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/PATH.FRX new file mode 100644 index 0000000..01ccd08 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/PATH.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/REGISTRY.BAS b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/REGISTRY.BAS new file mode 100644 index 0000000..edd263a --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/REGISTRY.BAS @@ -0,0 +1,169 @@ +Attribute VB_Name = "modRegistry" +Option Explicit +Option Compare Text + +Global Const gsSLASH_BACKWARD As String = "\" + +''Registry API Declarations... +Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long +Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" _ + (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, _ + ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, _ + ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, _ + ByRef lpdwDisposition As Long) As Long +Private Declare Function RegDeleteKey Lib "advapi32" Alias "RegDeleteKeyA" _ + (ByVal hKey As Long, ByVal lpSubKey As String) As Long +Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" _ + (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _ + ByVal samDesired As Long, ByRef phkResult As Long) As Long +Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _ + (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, _ + ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long +Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" _ + (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _ + ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long +Private Declare Function RegEnumValue Lib "advapi32" Alias "RegEnumValueA" _ + (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, _ + ByRef lpcbValueName As Long, ByVal lpReserved As Long, ByRef lpType As Long, _ + ByVal lpData As String, ByRef lpcbData As Long) As Long +Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" _ + (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, _ + lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As Long, _ + ByVal lpcbClass As Long, lpftLastWriteTime As FileTime) As Long + +''Reg Data Types... +Private Const REG_NONE = 0 ' No value type +Private Const REG_SZ = 1 ' Unicode nul terminated string +Private Const REG_EXPAND_SZ = 2 ' Unicode nul terminated string +Private Const REG_BINARY = 3 ' Free form binary +Private Const REG_DWORD = 4 ' 32-bit number +Private Const REG_DWORD_LITTLE_ENDIAN = 4 ' 32-bit number (same as REG_DWORD) +Private Const REG_DWORD_BIG_ENDIAN = 5 ' 32-bit number +Private Const REG_LINK = 6 ' Symbolic Link (unicode) +Private Const REG_MULTI_SZ = 7 ' Multiple Unicode strings +Private Const REG_RESOURCE_LIST = 8 ' Resource list in the resource map +Private Const REG_FULL_RESOURCE_DESCRIPTOR = 9 ' Resource list in the hardware description +Private Const REG_RESOURCE_REQUIREMENTS_LIST = 10 + +''Reg Create Type Values... +Private Const REG_OPTION_RESERVED = 0 ' Parameter is reserved +Private Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted +Private Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted +Private Const REG_OPTION_CREATE_LINK = 2 ' Created key is a symbolic link +Private Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore + +''Reg Key Security Options... +Private Const READ_CONTROL = &H20000 +Private Const KEY_QUERY_VALUE = &H1 +Private Const KEY_SET_VALUE = &H2 +Private Const KEY_CREATE_SUB_KEY = &H4 +Private Const KEY_ENUMERATE_SUB_KEYS = &H8 +Private Const KEY_NOTIFY = &H10 +Private Const KEY_CREATE_LINK = &H20 +Private Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL +Private Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL +Private Const KEY_EXECUTE = KEY_READ +Private Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE _ + + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS _ + + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL + +''Return Value... +Private Const ERROR_SUCCESS = 0 +Private Const ERROR_ACCESS_DENIED = 5& +Private Const ERROR_NO_MORE_ITEMS = 259& + +''Hierarchy separator +Private Const KeySeparator As String = "\" + +''Registry Security Attributes TYPE... +Private Type SECURITY_ATTRIBUTES + nLength As Long + lpSecurityDescriptor As Long + bInheritHandle As Boolean +End Type +Private Type FileTime + dwLowDateTime As Long + dwHighDateTime As Long +End Type + +''Reg Key ROOT Types... +Public Enum REGToolRootTypes + HK_CLASSES_ROOT = &H80000000 + HK_CURRENT_USER = &H80000001 + HK_LOCAL_MACHINE = &H80000002 + HK_USERS = &H80000003 + HK_PERFORMANCE_DATA = &H80000004 + HK_CURRENT_CONFIG = &H80000005 + HK_DYN_DATA = &H80000006 +End Enum + +'Retrieves a key value. +Public Function GetKeyValue(ByVal KeyRoot As REGToolRootTypes, KeyName As String, ValueName As String, ByRef ValueData As String) As Boolean + Dim i As Long ' Loop Counter + Dim hKey As Long ' Handle To An Open Registry Key + Dim KeyValType As Long ' Data Type Of A Registry Key + Dim sTmp As String ' Tempory Storage For A Registry Key Value + Dim sReturn As String + Dim KeyValSize As Long ' Size Of Registry Key Variable + Dim sByte As String + + If ValidKeyName(KeyName) Then + On Error GoTo LocalErr + + ' Open registry key under KeyRoot + Attempt RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) + + sTmp = String$(1024, 0) ' Allocate Variable Space + KeyValSize = 1024 ' Mark Variable Size + + ' Retrieve Registry Key Value... + Attempt RegQueryValueEx(hKey, ValueName, 0, _ + KeyValType, sTmp, KeyValSize) ' Get/Create Key Value + + If (Asc(Mid(sTmp, KeyValSize, 1)) = 0) Then ' Win95 Adds Null Terminated String... + sTmp = Left(sTmp, KeyValSize - 1) ' Null Found, Extract From String + Else ' WinNT Does NOT Null Terminate String... + sTmp = Left(sTmp, KeyValSize) ' Null Not Found, Extract String Only + End If + + ' Determine Key Value Type For Conversion... + Select Case KeyValType ' Search Data Types... + Case REG_SZ ' String Registry Key Data Type + sReturn = sTmp '(Do nothing) + Case REG_DWORD ' Double Word Registry Key Data Type + For i = Len(sTmp) To 1 Step -1 ' Convert Each Bit + sByte = Hex(Asc(Mid$(sTmp, i, 1))) + Do Until Len(sByte) = 2 + sByte = "0" & sByte + Loop + sReturn = sReturn & sByte ' Build Value Char. By Char. + Next + sReturn = Format$("&h" + sReturn) ' Convert Double Word To String + End Select + + GetKeyValue = True + ValueData = sReturn + +LocalErr: + On Error Resume Next + RegCloseKey hKey + End If +End Function + +Private Sub Attempt(rc As Long) + If (rc <> ERROR_SUCCESS) Then + Err.Raise 5 + End If +End Sub + +Private Function ValidKeyName(KeyName As String) As Boolean + 'A key name is invalid if it begins or ends with \ or contains \\ + If Left$(KeyName, 1) <> gsSLASH_BACKWARD Then + If Right$(KeyName, 1) <> gsSLASH_BACKWARD Then + If InStr(KeyName, gsSLASH_BACKWARD & gsSLASH_BACKWARD) = 0 Then + ValidKeyName = True + End If + End If + End If +End Function + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SERVERDT.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SERVERDT.FRM new file mode 100644 index 0000000..45f595f --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SERVERDT.FRM @@ -0,0 +1,460 @@ +VERSION 5.00 +Begin VB.Form frmRemoteServerDetails + BorderStyle = 3 'Fixed Dialog + Caption = "#" + ClientHeight = 4545 + ClientLeft = 3195 + ClientTop = 2400 + ClientWidth = 7800 + ControlBox = 0 'False + Icon = "serverdt.frx":0000 + LinkTopic = "Form1" + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 4545 + ScaleWidth = 7800 + Begin VB.CommandButton cmdCancel + Caption = "#" + Height = 375 + Left = 5580 + MaskColor = &H00000000& + TabIndex = 5 + Top = 3930 + Width = 1935 + End + Begin VB.CommandButton cmdOK + Caption = "#" + Default = -1 'True + Enabled = 0 'False + Height = 375 + Left = 3540 + MaskColor = &H00000000& + TabIndex = 4 + Top = 3930 + Width = 1935 + End + Begin VB.ComboBox cboNetworkProtocol + Height = 300 + Left = 2400 + Style = 2 'Dropdown List + TabIndex = 3 + Top = 3165 + Width = 5100 + End + Begin VB.TextBox txtNetworkAddress + Height = 300 + Left = 2400 + TabIndex = 1 + Top = 2535 + Width = 5100 + End + Begin VB.Frame Frame1 + Height = 555 + Left = 225 + TabIndex = 7 + Top = 1395 + Width = 7290 + Begin VB.Label lblServerName + Alignment = 2 'Center + AutoSize = -1 'True + Caption = "#" + Height = 180 + Left = 135 + TabIndex = 8 + Top = 240 + Width = 7020 + WordWrap = -1 'True + End + End + Begin VB.Label lblNetworkProtocol + AutoSize = -1 'True + Caption = "#" + Height = 195 + Left = 210 + TabIndex = 2 + Top = 3165 + Width = 2100 + WordWrap = -1 'True + End + Begin VB.Label lblNetworkAddress + AutoSize = -1 'True + Caption = "#" + Height = 195 + Left = 225 + TabIndex = 0 + Top = 2535 + Width = 2100 + WordWrap = -1 'True + End + Begin VB.Label lblRemoteServerDetails + AutoSize = -1 'True + Caption = "#" + Height = 180 + Left = 360 + TabIndex = 6 + Top = 360 + Width = 7020 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmRemoteServerDetails" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text + +Private m_fNetworkAddressSpecified As Boolean +Private m_fNetworkProtocolSpecified As Boolean +Private m_fDCOM As Boolean + +Private Declare Function RpcNetworkIsProtseqValid Lib "rpcrt4.dll" Alias "RpcNetworkIsProtseqValidA" (ByVal strProtseq As String) As Long + +' Determines whether a given protocol sequence is supported and available on this machine +Function fIsProtocolSeqSupported(ByVal strProto As String, ByVal strProtoFriendlyName) As Boolean + Const RPC_S_OK = 0& + Const RPC_S_PROTSEQ_NOT_SUPPORTED = 1703& + Const RPC_S_INVALID_RPC_PROTSEQ = 1704& + + Dim rcps As Long + Static fUnexpectedErr As Boolean + + On Error Resume Next + + fIsProtocolSeqSupported = False + rcps = RpcNetworkIsProtseqValid(strProto) + + Select Case rcps + Case RPC_S_OK + fIsProtocolSeqSupported = True + Case RPC_S_PROTSEQ_NOT_SUPPORTED + LogNote ResolveResString(resNOTEPROTOSEQNOTSUPPORTED, "|1", strProto, "|2", strProtoFriendlyName) + Case RPC_S_INVALID_RPC_PROTSEQ + LogWarning ResolveResString(resNOTEPROTOSEQINVALID, "|1", strProto, "|2", strProtoFriendlyName) + Case Else + If Not fUnexpectedErr Then + MsgWarning ResolveResString(resPROTOSEQUNEXPECTEDERR), vbOKOnly Or vbInformation, gstrTitle + If gfNoUserInput Then + ' + ' This is probably redundant since this form should never + ' be shown if we are running in silent or SMS mode. + ' + ExitSetup frmRemoteServerDetails, gintRET_FATAL + End If + fUnexpectedErr = True + End If + 'End Case + End Select +End Function + +Private Sub cboNetworkProtocol_Click() + cmdOK.Enabled = fValid() +End Sub + +Private Sub cmdCancel_Click() + ExitSetup frmRemoteServerDetails, gintRET_EXIT +End Sub + +Private Sub cmdOK_Click() + Hide +End Sub + +Private Sub Form_Load() + Dim fMoveControlsUp As Boolean 'Whether or not to move controls up to fill in an empty space + Dim yTopCutoff As Integer 'We will move all controls lower down than this y value + + SetFormFont Me + Caption = ResolveResString(resREMOTESERVERDETAILSTITLE) + lblRemoteServerDetails.Caption = ResolveResString(resREMOTESERVERDETAILSLBL) + lblNetworkAddress.Caption = ResolveResString(resNETWORKADDRESS) + lblNetworkProtocol.Caption = ResolveResString(resNETWORKPROTOCOL) + cmdOK.Caption = ResolveResString(resOK) + cmdCancel.Caption = ResolveResString(resCANCEL) + ' + ' We don't care about protocols if this is DCOM. + ' + If Not m_fDCOM Then + FillInProtocols + End If + + 'Now we selectively turn on/off the available controls depending on how + ' much information we need from the user. + If m_fNetworkAddressSpecified Then + 'The network address has already been filled in, so we can hide this + ' control and move all the other controls up + txtNetworkAddress.Visible = False + lblNetworkAddress.Visible = False + fMoveControlsUp = True + yTopCutoff = txtNetworkAddress.Top + ElseIf m_fNetworkProtocolSpecified Or m_fDCOM Then + 'The network protocol has already been filled in, so we can hide this + ' control and move all the other controls up + cboNetworkProtocol.Visible = False + lblNetworkProtocol.Visible = False + fMoveControlsUp = True + yTopCutoff = cboNetworkProtocol.Top + End If + + If fMoveControlsUp Then + 'Find out how much to move the controls up + Dim yDiff As Integer + yDiff = cboNetworkProtocol.Top - txtNetworkAddress.Top + + Dim c As Control + For Each c In Controls + If c.Top > yTopCutoff Then + c.Top = c.Top - yDiff + End If + Next c + + 'Finally, shrink the form + Height = Height - yDiff + End If + + 'Center the form + Top = (Screen.Height - Height) \ 2 + Left = (Screen.Width - Width) \ 2 +End Sub + +'----------------------------------------------------------- +' SUB: GetServerDetails +' +' Requests any missing information about a remote server from +' the user. +' +' Input: +' [strRegFile] - the name of the remote registration file +' [strNetworkAddress] - the network address, if known +' [strNetworkProtocol] - the network protocol, if known +' [fDCOM] - if true, this component is being accessed via +' distributed com and not Remote automation. In +' this case, we don't need the network protocol or +' Authentication level. +' +' Ouput: +' [strNetworkAddress] - the network address either passed +' in or obtained from the user +' [strNetworkProtocol] - the network protocol either passed +' in or obtained from the user +'----------------------------------------------------------- +' +Public Sub GetServerDetails( _ + ByVal strRegFile As String, _ + strNetworkAddress As String, _ + strNetworkProtocol As String, _ + fDCOM As Boolean _ +) + Dim i As Integer + Dim strServerName As String + + 'See if anything is missing + m_fNetworkAddressSpecified = (strNetworkAddress <> "") + m_fNetworkProtocolSpecified = (strNetworkProtocol <> "") + m_fDCOM = fDCOM + + If m_fNetworkAddressSpecified And (m_fNetworkProtocolSpecified Or m_fDCOM) Then + 'Both the network address and protocol sequence have already + 'been specified in SETUP.LST. There is no need to ask the + 'user for more information. + + 'However, we do need to check that the protocol sequence specified + 'in SETUP.LST is actually installed and available on this machine + '(Remote Automation only). + ' + If Not m_fDCOM Then + CheckSpecifiedProtocolSequence strNetworkProtocol, strGetServerName(strRegFile) + End If + + Exit Sub + End If + + strServerName = strGetServerName(strRegFile) + Load Me + lblServerName.Caption = strServerName + + If Not gfNoUserInput Then + ' + ' Show the form and extract necessary information from the user + ' + Show vbModal + Else + ' + ' Since this is silent, simply accept the first one on + ' the list. + ' + ' Note that we know there is at least 1 protocol in the + ' list or else the program would have aborted in + ' the Form_Load code when it called FillInProtocols(). + ' + cboNetworkProtocol.ListIndex = 0 + End If + + If m_fNetworkProtocolSpecified And Not m_fDCOM Then + 'The network protocol sequence had already been specified + 'in SETUP.LST. We need to check that the protocol sequence specified + 'in SETUP.LST is actually installed and available on this machine + '(32-bit only). + CheckSpecifiedProtocolSequence strNetworkProtocol, strGetServerName(strRegFile) + End If + + If Not m_fNetworkAddressSpecified Then + strNetworkAddress = txtNetworkAddress + End If + If Not m_fNetworkProtocolSpecified And Not m_fDCOM Then + strNetworkProtocol = gProtocol(cboNetworkProtocol.ListIndex + 1).strName + End If + + Unload Me +End Sub + +'----------------------------------------------------------- +' SUB: FillInProtocols +' +' Fills in the protocol combo with the available protocols from +' setup.lst +'----------------------------------------------------------- +Private Sub FillInProtocols() + Dim i As Integer + Dim fSuccessReading As Boolean + + cboNetworkProtocol.Clear + fSuccessReading = ReadProtocols(gstrSetupInfoFile, gstrINI_SETUP) + If Not fSuccessReading Or gcProtocols <= 0 Then + MsgError ResolveResString(resNOPROTOCOLSINSETUPLST), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmRemoteServerDetails, gintRET_FATAL + End If + + For i = 1 To gcProtocols + If fIsProtocolSeqSupported(gProtocol(i).strName, gProtocol(i).strFriendlyName) Then + cboNetworkProtocol.AddItem gProtocol(i).strFriendlyName + End If + Next i + + If cboNetworkProtocol.ListCount > 0 Then + 'We were successful in finding at least one protocol available on this machine + Exit Sub + End If + + 'None of the protocols specified in SETUP.LST are available on this machine. We need + 'to let the user know what's wrong, including which protocol(s) were expected. + MsgError ResolveResString(resNOPROTOCOLSSUPPORTED1), vbExclamation Or vbOKOnly, gstrTitle + ' + ' Don't log the rest if this is SMS. Ok for silent mode since + ' silent can take more than 255 characters. + ' + If Not gfSMS Then + Dim strMsg As String + strMsg = ResolveResString(resNOPROTOCOLSSUPPORTED2) & vbLf + + For i = 1 To gcProtocols + strMsg = strMsg & vbLf & Chr$(9) & gProtocol(i).strFriendlyName + Next i + + MsgError strMsg, vbExclamation Or vbOKOnly, gstrTitle + End If + ExitSetup frmRemoteServerDetails, gintRET_FATAL +End Sub + +'----------------------------------------------------------- +' SUB: strGetServerName +' +' Given a remote server registration file, retrieves the +' friendly name of the server +'----------------------------------------------------------- +Private Function strGetServerName(ByVal strRegFilename As String) As String + Const strKey = "AppDescription=" + Dim strLine As String + Dim iFile As Integer + + On Error GoTo DoErr + + 'This will have to do if we can't find the friendly name + strGetServerName = GetFileName(strRegFilename) + + iFile = FreeFile + Open strRegFilename For Input Access Read Lock Read Write As #iFile + While Not EOF(iFile) + Line Input #iFile, strLine + If Left$(strLine, Len(strKey)) = strKey Then + 'We've found the line with the friendly server name + Dim strName As String + strName = Mid$(strLine, Len(strKey) + 1) + If strName <> "" Then + strGetServerName = strName + End If + Close iFile + Exit Function + End If + Wend + Close iFile + + Exit Function +DoErr: + strGetServerName = "" +End Function + +Private Sub txtNetworkAddress_Change() + cmdOK.Enabled = fValid() +End Sub + +'Returns True iff the inputs are valid +Private Function fValid() As Boolean + fValid = True + ' + ' If this is dcom, we don't care about the network protocol. + ' + If m_fDCOM = False Then + If Not m_fNetworkProtocolSpecified And (cboNetworkProtocol.ListIndex < 0) Then + fValid = False + End If + End If + + If Not m_fNetworkAddressSpecified And (txtNetworkAddress = "") Then + fValid = False + End If +End Function + +Private Sub CheckSpecifiedProtocolSequence(ByVal strNetworkProtocol As String, ByVal strFriendlyServerName As String) + 'Attempt to find the friendly name of this protocol from the list in SETUP.LST + Dim fSuccessReading As Boolean + Dim strFriendlyName As String + Dim i As Integer + + strFriendlyName = strNetworkProtocol 'This will have to do if we can't find anything better + + fSuccessReading = ReadProtocols(gstrSetupInfoFile, gstrINI_SETUP) + If fSuccessReading And gcProtocols > 0 Then + For i = 1 To gcProtocols + If gProtocol(i).strName = strNetworkProtocol Then + strFriendlyName = gProtocol(i).strFriendlyName + Exit For + End If + Next i + End If + + 'Now check to see if this protocol is available + If fIsProtocolSeqSupported(strNetworkProtocol, strFriendlyName) Then + 'OK + Exit Sub + Else + 'Nope, not supported. Give an informational message about what to do, then continue with setup. +Retry: + If gfNoUserInput Or MsgError( _ + ResolveResString(resSELECTEDPROTONOTSUPPORTED, "|1", strFriendlyServerName, "|2", strFriendlyName), _ + vbInformation Or vbOKCancel, _ + gstrTitle) _ + = vbCancel Then + ' + ' The user chose cancel. Give them a chance to exit (if this isn't a silent or sms install; + ' otherwise any call to ExitSetup is deemed fatal. + ' + ExitSetup frmRemoteServerDetails, gintRET_EXIT + GoTo Retry + Else + 'The user chose OK. Continue with setup. + Exit Sub + End If + End If +End Sub + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SERVERDT.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SERVERDT.FRX new file mode 100644 index 0000000..01ccd08 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SERVERDT.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.BAS b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.BAS new file mode 100644 index 0000000..a230eac --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.BAS @@ -0,0 +1,5669 @@ +Attribute VB_Name = "basSetup1" +Option Explicit +Option Compare Text + +' +' Global Constants +' + +Public Enum OverwriteReturnVal + owYes + owNo + owNoToAll +End Enum + +'Return values for setup toolkit functions +Global Const gintRET_CONT% = 1 +Global Const gintRET_CANCEL% = 2 +Global Const gintRET_EXIT% = 3 +Global Const gintRET_ABORT% = 4 +Global Const gintRET_FATAL% = 5 +Global Const gintRET_FINISHEDSUCCESS% = 6 'Used only as parameter to ExitSetup at end of successful install + +'Error levels for GetAppRemovalCmdLine() +Global Const APPREMERR_NONE = 0 'no error +Global Const APPREMERR_FATAL = 1 'fatal error +Global Const APPREMERR_NONFATAL = 2 'non-fatal error, user chose to abort +Global Const APPREMERR_USERCANCEL = 3 'user chose to cancel (no error) + +'Flag for Path Dialog specifying Source or Dest directory needed +Global Const gstrDIR_SRC$ = "S" +Global Const gstrDIR_DEST$ = "D" + +'Beginning of lines in [Files], [Bootstrap], and [Licenses] sections of SETUP.LST +Global Const gstrINI_FILE$ = "File" +Global Const gstrINI_REMOTE$ = "Remote" +Global Const gstrINI_LICENSE$ = "License" +' +' Command line constants +' +Global Const gstrSILENTSWITCH = "s" +Global Const gstrSMSSWITCH = "q" +' +' Icon Information +' +Global Const gsGROUP As String = "Group" +Global Const gsICON As String = "Icon" +Global Const gsTITLE As String = "Title" +Global Const gsICONGROUP As String = "IconGroups" + +Global Const gstrINI_BOOTFILES$ = "Bootstrap Files" + +'Font info +Global Const gsEXT_FONTTTF As String = "TTF" +Global Const gsEXT_FONTFON As String = "FON" +Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFilename As String) As Long + +'Registry files (execute them based on .reg extension) +Global Const gsREGEDIT As String = "regedit /s " +Global Const gsEXT_REG As String = "reg" +' +'Type Definitions +' +Type FILEINFO ' Setup information file line format + intDiskNum As Integer ' disk number + fSplit As Integer ' split flag + strSrcName As String ' name of source file + strDestName As String ' name of destination file + strDestDir As String ' destination directory + strRegister As String ' registration info + fShared As Boolean ' whether the file is shared or private + fSystem As Boolean ' whether the file is a system file (i.e. should be installed but never removed) + varDate As Date ' file date + lFileSize As Long ' file size + sVerInfo As VERINFO ' file version number + strReserved As String ' Reserved. Leave empty, or error. + strProgramIconTitle As String ' Caption for icon in program group + strProgramIconCmdLine As String ' Command Line for icon in program group +End Type + +Type DISKINFO ' Disk drive information + lAvail As Long ' Bytes available on drive + lReq As Long ' Bytes required for setup + lMinAlloc As Long ' minimum allocation unit +End Type + +Type DESTINFO ' save dest dir for certain files + strAppDir As String + strAUTMGR32 As String + strRACMGR32 As String +End Type + +Type REGINFO ' save registration info for files + strFilename As String + strRegister As String + + 'The following are used only for remote server registration + strNetworkAddress As String + strNetworkProtocol As String + intAuthentication As Integer + fDCOM As Boolean ' True if DCOM, otherwise False +End Type + +' +'Global Variables +' +Global gstrSETMSG As String +Global gfRetVal As Integer 'return value for form based functions +Global gstrAppName As String 'name of app being installed +Global gintCabs As Long +Global gstrTitle As String '"setup" name of app being installed +Public gstrDefGroup As String 'Default name for group -- from setup.lst +Global gstrDestDir As String 'dest dir for application files +Global gstrAppExe As String 'name of app .EXE being installed +Public gstrAppToUninstall As String ' Name of app exe/ocx/dll to be uninstalled. Should be the same as gstrAppExe in most cases. +Global gstrSrcPath As String 'path of source files +Global gstrSetupInfoFile As String 'pathname of SETUP.LST file +Global gstrWinDir As String 'windows directory +Global gstrFontDir As String 'windows\font directory +Global gstrWinSysDir As String 'windows\system directory +Global gsDiskSpace() As DISKINFO 'disk space for target drives +Global gstrDrivesUsed As String 'dest drives used by setup +Global glTotalCopied As Long 'total bytes copied so far +Global gintCurrentDisk As Integer 'current disk number being installed +Global gsDest As DESTINFO 'dest dirs for certain files +Global gstrAppRemovalLog As String 'name of the app removal logfile +Global gstrAppRemovalEXE As String 'name of the app removal executable +Global gfAppRemovalFilesMoved As Boolean 'whether or not the app removal files have been moved to the application directory +Global gfForceUseDefDest As Boolean 'If set to true, then the user will not be prompted for the destination directory +Global fMainGroupWasCreated As Boolean 'Whether or not a main folder/group has been created +Public gfRegDAO As Boolean ' If this gets set to true in the code, then + ' we need to add some registration info for DAO + ' to the registry. + +Global gsCABNAME As String +Global gsTEMPDIR As String + +Global Const gsINI_CABNAME As String = "Cab" +Global Const gsINI_TEMPDIR As String = "TmpDir" +' +'Form/Module Constants +' + +'SetFileTime junk +Public Type FileTime + dwLowDateTime As Long + dwHighDateTime As Long +End Type +Public Type SYSTEMTIME + wYear As Integer + wMonth As Integer + wDayOfWeek As Integer + wDay As Integer + wHour As Integer + wMinute As Integer + wSecond As Integer + wMilliseconds As Integer +End Type + +Public Const GENERIC_WRITE = &H40000000 +Public Const GENERIC_READ = &H80000000 +Public Const FILE_ATTRIBUTE_NORMAL = &H80 +Public Const INVALID_HANDLE_VALUE = -1 +Public Const FILE_SHARE_READ = &H1 +Public Const FILE_SHARE_WRITE = &H2 +Public Const CREATE_NEW = 1 +Public Const CREATE_ALWAYS = 2 +Public Const OPEN_EXISTING = 3 +Public Const OPEN_ALWAYS = 4 + +Public Declare Function LocalFileTimeToFileTime Lib "Kernel32" (lpFileTime As FileTime, lpLocalFileTime As FileTime) As Long +Public Declare Function CreateFile Lib "Kernel32" Alias "CreateFileA" (ByVal lpFilename As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long +Public Declare Function SetFileTime Lib "Kernel32" (ByVal hFile As Long, lpCreationTime As FileTime, lpLastAccessTime As FileTime, lpLastWriteTime As FileTime) As Long +Public Declare Function CloseHandle Lib "Kernel32" (ByVal hObject As Long) As Long +Public Declare Function SystemTimeToFileTime Lib "Kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FileTime) As Long +Public Declare Function VariantChangeTypeEx Lib "oleaut32.dll" (ByVal pvArgDest As Long, ByVal pvArgSrc As Long, ByVal LCID As Long, ByVal wFlags As Integer, ByVal VarType As Integer) As Long +Public Declare Function VariantTimeToSystemTime Lib "oleaut32.dll" (ByVal vtime As Date, lpSystemTime As SYSTEMTIME) As Long + +'Possible ProgMan actions +Const mintDDE_ITEMADD% = 1 'AddProgManItem flag +Const mintDDE_GRPADD% = 2 'AddProgManGroup flag + +'Special file names +Const mstrFILE_APPREMOVALLOGBASE$ = "ST6UNST" 'Base name of the app removal logfile +Const mstrFILE_APPREMOVALLOGEXT$ = ".LOG" 'Default extension for the app removal logfile +Const mstrFILE_AUTMGR32 = "AUTMGR32.EXE" +Const mstrFILE_RACMGR32 = "RACMGR32.EXE" +Const mstrFILE_RICHED32$ = "RICHED32.DLL" + +'Name of temporary file used for concatenation of split files +Const mstrCONCATFILE$ = "VB5STTMP.CCT" + +'setup information file registration macros +Const mstrDLLSELFREGISTER$ = "$(DLLSELFREGISTER)" +Const mstrEXESELFREGISTER$ = "$(EXESELFREGISTER)" +Const mstrTLBREGISTER$ = "$(TLBREGISTER)" +Const mstrREMOTEREGISTER$ = "$(REMOTE)" +Const mstrVBLREGISTER$ = "$(VBLREGISTER)" ' Bug 5-8039 + +' +'Form/Module Variables +' +Private msRegInfo() As REGINFO 'files to be registered +Private mlTotalToCopy As Long 'total bytes to copy +Private mintConcatFile As Integer 'handle of dest file for concatenation +Private mlSpaceForConcat As Long 'extra space required for concatenation +Private mstrConcatDrive As String 'drive to use for concatenation +Private mstrVerTmpName As String 'temp file name for VerInstallFile API + +' Hkey cache (used for logging purposes) +Private Type HKEY_CACHE + hKey As Long + strHkey As String +End Type + +Private hkeyCache() As HKEY_CACHE + +' Registry manipulation API's (32-bit) +Global Const HKEY_CLASSES_ROOT = &H80000000 +Global Const HKEY_CURRENT_USER = &H80000001 +Global Const HKEY_LOCAL_MACHINE = &H80000002 +Global Const HKEY_USERS = &H80000003 +Const ERROR_SUCCESS = 0& +Const ERROR_NO_MORE_ITEMS = 259& + +Const REG_SZ = 1 +Const REG_BINARY = 3 +Const REG_DWORD = 4 + + +Declare Function OSRegCloseKey Lib "advapi32" Alias "RegCloseKey" (ByVal hKey As Long) As Long +Declare Function OSRegCreateKey Lib "advapi32" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long +Declare Function OSRegDeleteKey Lib "advapi32" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String) As Long +Declare Function OSRegEnumKey Lib "advapi32" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal iSubKey As Long, ByVal lpszName As String, ByVal cchName As Long) As Long +Declare Function OSRegOpenKey Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long +Declare Function OSRegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpszValueName As String, ByVal dwReserved As Long, lpdwType As Long, lpbData As Any, cbData As Long) As Long +Declare Function OSRegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long +Declare Function OSRegSetValueNumEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long + +Declare Sub lstrcpyn Lib "Kernel32" (ByVal strDest As String, ByVal strSrc As Any, ByVal lBytes As Long) +Declare Function GetCurrentProcessId Lib "Kernel32" () As Long +Declare Function ExtractFileFromCab Lib "vb6stkit.dll" (ByVal Cab As String, ByVal File As String, ByVal Dest As String, ByVal iCab As Long, ByVal sSrc As String) As Long +'Reboot info +Public Const ANYSIZE_ARRAY = 1 + +Type LARGE_INTEGER + lowpart As Long + highpart As Long +End Type + +Type LUID_AND_ATTRIBUTES + pLuid As LARGE_INTEGER + Attributes As Long +End Type + +Type TOKEN_PRIVILEGES + PrivilegeCount As Long + Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES +End Type + +Public Const TOKEN_ADJUST_PRIVILEGES = 32 +Public Const TOKEN_QUERY = 8 +Public Const SE_PRIVILEGE_ENABLED As Long = 2 + +Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long +Declare Function GetCurrentProcess Lib "Kernel32" () As Long +Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long +Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long +'Exit the program and return an error code +Private Declare Sub ExitProcess Lib "Kernel32" (ByVal uExitCode As Long) +'----------------------------------------------------------- +' SUB: AddPerAppPath +' +' Adds an application's full pathname and per-app path to the +' system registry (this is currently only meaningful to +' Windows 95). +' +' IN: [strAppExe] - app EXE name, not including path +' [strAppDir] - full path of EXE, not including filename +' [strAppPath] - per-app path for this application +' (semicolon-separated list of directory path names) +' If this is the empty string (""), no per-app path +' is registered, but the full pathname of the +' exe IS still registered. +' +' OUT: +' Example registry entries: +' HKEY_LOCAL_MACHINE\[strPathsBaseKeyName]\MyApp.Exe +' [Default]=C:\Program Files\MyApp\MyApp.Exe +' [Path]=C:\Program Files\MyApp;C:\Program Files\MyApp\System +' +'----------------------------------------------------------- +' +Sub AddPerAppPath(ByVal strAppExe As String, ByVal strAppDir As String, ByVal strPerAppPath As String) + If Not TreatAsWin95() Then + Exit Sub + End If + + Dim strPathsBaseKeyName As String + Const strAppPaths$ = "App Paths" + Const strAppPathKeyName = "Path" + Dim fOk As Boolean + Dim hKey As Long + + AddDirSep strAppDir + + ' Create the new key, whose name is based on the app's name + If Not RegCreateKey(HKEY_LOCAL_MACHINE, RegPathWinCurrentVersion(), strAppPaths & gstrSEP_DIR & strAppExe, hKey) Then + GoTo Err + End If + + fOk = True + + ' Default value indicates full EXE pathname + fOk = fOk And RegSetStringValue(hKey, "", strAppDir & strAppExe) + + ' [Path] value indicates the per-app path + If strPerAppPath <> "" Then + fOk = fOk And RegSetStringValue(hKey, strAppPathKeyName, strPerAppPath) + End If + + If Not fOk Then + GoTo Err + End If + + RegCloseKey hKey + + Exit Sub + +Err: + MsgError ResolveResString(resERR_REG), vbExclamation Or vbOKOnly, gstrTitle + ' + ' If we are running an SMS install, we can't continue. + ' + If gfSMS Then + ExitSetup frmSetup1, gintRET_FATAL + End If +End Sub + +'----------------------------------------------------------- +' FUNCTION: AddQuotesToFN +' +' Given a pathname (directory and/or filename), returns +' that pathname surrounded by double quotes if the +' path contains spaces or commas. This is required for +' setting up an icon correctly, since otherwise such paths +' would be interpreted as a pathname plus arguments. +'----------------------------------------------------------- +' +Function AddQuotesToFN(ByVal strFilename) As String + If InStr(strFilename, " ") Or InStr(strFilename, ",") Then + AddQuotesToFN = """" & strFilename & """" + Else + AddQuotesToFN = strFilename + End If +End Function + +'----------------------------------------------------------- +' SUB: CalcDiskSpace +' +' Calculates disk space required for installing the files +' listed in the specified section of the setup information +' file (SETUP.LST) +'----------------------------------------------------------- +' +Sub CalcDiskSpace(ByVal strsection As String) + Static fSplitFile As Integer + Static lDestFileSpace As Long + + Dim intIdx As Integer + Dim intDrvIdx As Integer + Dim sFile As FILEINFO + Dim strDrive As String + Dim lThisFileSpace As Long + + intIdx = 1 + + On Error GoTo CalcDSError + + ' + 'For each file in the specified section, read info from the setup info file + ' + Do While ReadSetupFileLine(strsection, intIdx, sFile) = True + ' + 'if the file isn't split or if this is the first section of a split file + ' + If sFile.strDestDir <> vbNullString Then + fSplitFile = sFile.fSplit + + ' + 'Get the dest drive used for this file. If this is the first file using + 'the drive for a destination, add the drive to the drives used 'table', + 'allocate an array element for the holding the drive info, and get + 'available disk space and minimum allocation unit + ' + strDrive = Left$(sFile.strDestDir, 1) + + intDrvIdx = InStr(gstrDrivesUsed, strDrive) + If intDrvIdx = 0 Then + gstrDrivesUsed = gstrDrivesUsed & strDrive + intDrvIdx = Len(gstrDrivesUsed) + + ReDim Preserve gsDiskSpace(intDrvIdx) + gsDiskSpace(intDrvIdx).lAvail = GetDiskSpaceFree(strDrive) + + gsDiskSpace(intDrvIdx).lMinAlloc = GetDrivesAllocUnit(strDrive) + End If + + ' + 'Calculate size of the dest final (file size + minimum allocation for drive) + ' + lThisFileSpace = CalcFinalSize(sFile.lFileSize, strDrive) + mlTotalToCopy = mlTotalToCopy + lThisFileSpace + + ' + 'If the file already exists, then if we copy it at all, we'll be + 'replacing it. So, we get the size of the existing dest file so + 'that we can subtract it from the amount needed later. + ' + If FileExists(sFile.strDestDir & sFile.strDestName) Then + lDestFileSpace = FileLen(sFile.strDestDir & sFile.strDestName) + Else + lDestFileSpace = 0 + End If + End If + + ' + 'If file not split, or if the last section of a split file + ' + If sFile.fSplit = False Then + ' + 'If this is the last section of a split file, then if it's the *largest* + 'split file, set the extra space needed for concatenation to this size + ' + If fSplitFile = True And lThisFileSpace > mlSpaceForConcat Then + mlSpaceForConcat = lThisFileSpace + End If + + ' + 'Subtract size of existing dest file, if applicable and then accumulate + 'space required + ' + lThisFileSpace = lThisFileSpace - lDestFileSpace + If lThisFileSpace < 0 Then + lThisFileSpace = 0 + End If + + gsDiskSpace(intDrvIdx).lReq = gsDiskSpace(intDrvIdx).lReq + lThisFileSpace + End If + + intIdx = intIdx + 1 + Loop + + Exit Sub + +CalcDSError: + MsgError Error$ & vbLf & vbLf & ResolveResString(resCALCSPACE), vbCritical, gstrSETMSG + ExitSetup frmMessage, gintRET_FATAL +End Sub + +'----------------------------------------------------------- +' SUB: CalcFinalSize +' +' Computes the space required for a file of the size +' specified on the given dest path. This includes the +' file size plus a padding to ensure that the final size +' is a multiple of the minimum allocation unit for the +' dest drive +'----------------------------------------------------------- +' +Function CalcFinalSize(lBaseFileSize As Long, strDestPath As String) As Long + Dim lMinAlloc As Long + Dim intPadSize As Long + + lMinAlloc = gsDiskSpace(InStr(gstrDrivesUsed, Left$(strDestPath, 1))).lMinAlloc + intPadSize = lMinAlloc - (lBaseFileSize Mod lMinAlloc) + If intPadSize = lMinAlloc Then + intPadSize = 0 + End If + + CalcFinalSize = lBaseFileSize + intPadSize +End Function + +'----------------------------------------------------------- +' SUB: CenterForm +' +' Centers the passed form just above center on the screen +'----------------------------------------------------------- +' +Sub CenterForm(frm As Form) + SetMousePtr vbHourglass + + frm.Top = (Screen.Height * 0.85) \ 2 - frm.Height \ 2 + frm.Left = Screen.Width \ 2 - frm.Width \ 2 + + SetMousePtr gintMOUSE_DEFAULT +End Sub +'----------------------------------------------------------- +' SUB: UpdateDateTime +' +' Updates the date/time for bootstrap files +'----------------------------------------------------------- +' +Sub UpdateDateTime() + Dim intIdx As Integer + Dim sFile As FILEINFO + Dim lTime As FileTime + Dim hFile As Long + ' + 'For each file in the specified section, read info from the setup info file + ' + intIdx = 1 + Do While ReadSetupFileLine(gstrINI_BOOTFILES, intIdx, sFile) = True + Dim sCurDate As String, sFileDate As String + + sFileDate = Format(FileDateTime(sFile.strDestDir & sFile.strDestName), "m/d/yyyy h:m") + sCurDate = Format(Now, "m/d/yyyy h:m") + + If sFileDate = sCurDate Then + lTime = GetFileTime(sFile.varDate) + hFile = CreateFile(sFile.strDestDir & sFile.strDestName, GENERIC_WRITE Or GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) + Call SetFileTime(hFile, lTime, lTime, lTime) + DoEvents + CloseHandle hFile + End If + intIdx = intIdx + 1 + Loop + +End Sub + +'----------------------------------------------------------- +' FUNCTION: CheckDiskSpace +' +' Reads from the space required array generated by calling +' the 'CalcDiskSpace' function and determines whether there +' is sufficient free space on all of the drives used for +' installation +' +' Returns: True if there is enough space, False otherwise +'----------------------------------------------------------- +' +Function CheckDiskSpace() As Integer + Static fDontAskOnSpaceErr As Integer + + Dim intIdx As Integer + Dim intTmpDrvIdx As Integer + Dim lDiskSpaceLeft As Long + Dim lMostSpaceLeft As Long + + ' + 'Default to True (enough space on all drives) + ' + CheckDiskSpace = True + + ' + 'For each drive that is the destination for one or more files, compare + 'the space available to the space required. + ' + For intIdx = 1 To Len(gstrDrivesUsed) + lDiskSpaceLeft = gsDiskSpace(intIdx).lAvail - gsDiskSpace(intIdx).lReq + If lDiskSpaceLeft < 0 Then + GoSub CheckDSAskSpace + Else + ' + 'If no "TMP" drive was found, or if the "TMP" drive wasn't ready, + 'save the index of the drive and the amount of space on the drive + 'which will have the most free space. If no "TMP" drive was + 'found in InitDiskInfo(), then this drive will be used as a + 'temporary drive for concatenating split files + ' + If mstrConcatDrive = vbNullString Then + If lDiskSpaceLeft > lMostSpaceLeft Then + lMostSpaceLeft = lDiskSpaceLeft + intTmpDrvIdx = intIdx + End If + Else + ' + '"TMP" drive was specified, so we'll use that + ' + If Left$(mstrConcatDrive, 1) = Mid$(gstrDrivesUsed, intIdx, 1) Then + intTmpDrvIdx = intIdx + End If + End If + End If + Next + + ' + 'If at least one drive was specified as a destination (if there was at least + 'one CalcDiskSpace call in Form_Load of SETUP1.FRM), then subtract the extra + 'space needed for concatenation from either: + ' The "TMP" drive if available - OR - + ' The drive with the most space remaining + ' + If intTmpDrvIdx > 0 Then + gsDiskSpace(intTmpDrvIdx).lReq = gsDiskSpace(intTmpDrvIdx).lReq + mlSpaceForConcat + If gsDiskSpace(intTmpDrvIdx).lAvail < gsDiskSpace(intTmpDrvIdx).lReq Then + GoSub CheckDSAskSpace + End If + + ' + 'If a "TMP" drive was found, we use it regardless, otherwise we use the drive + 'with the most free space + ' + If mstrConcatDrive = vbNullString Then + mstrConcatDrive = Mid$(gstrDrivesUsed, intTmpDrvIdx, 1) & gstrCOLON & gstrSEP_DIR + AddDirSep mstrConcatDrive + End If + End If + + Exit Function + +CheckDSAskSpace: + ' + 'if the user hasn't been prompted before in the event of not enough free space, + 'then display table of drive space and allow them to (basically) abort, retry, + 'or ignore. + ' + If fDontAskOnSpaceErr = False Then + If gfNoUserInput Then + If gfSilent = True Then + LogSilentMsg ResolveResString(resLBLNOSPACE) + End If + If gfSMS = True Then + LogSMSMsg ResolveResString(resLBLNOSPACE) + End If + ExitSetup frmSetup1, gintRET_FATAL + Else + frmDskSpace.Show vbModal + End If + + If gfRetVal <> gintRET_CONT Then + CheckDiskSpace = False + Exit Function + Else + fDontAskOnSpaceErr = True + End If + End If + + Return +End Function + +'----------------------------------------------------------- +' FUNCTION: CheckDrive +' +' Check to see if the specified drive is ready to be read +' from. In the case of a drive that holds removable media, +' this would mean that formatted media was in the drive and +' that the drive door was closed. +' +' IN: [strDrive] - drive to check +' [strCaption] - caption if the drive isn't ready +' +' Returns: True if the drive is ready, False otherwise +'----------------------------------------------------------- +' +Function CheckDrive(ByVal strDrive As String, ByVal strCaption As String) As Integer + Dim strDir As String + Dim strMsg As String + Dim fIsUNC As Boolean + + On Error Resume Next + + SetMousePtr vbHourglass + + Do + Err = 0 + fIsUNC = False + ' + 'Attempt to read the current directory of the specified drive. If + 'an error occurs, we assume that the drive is not ready + ' + If IsUNCName(strDrive) Then + fIsUNC = True + strDir = Dir$(GetUNCShareName(strDrive)) + Else + strDir = Dir$(Left$(strDrive, 2)) + End If + + If Err > 0 Then + If fIsUNC Then + strMsg = Error$ & vbLf & vbLf & ResolveResString(resCANTREADUNC, "|1", strDrive) & vbLf & vbLf & ResolveResString(resCHECKUNC) + Else + strMsg = Error$ & vbLf & vbLf & ResolveResString(resDRVREAD) & strDrive & vbLf & vbLf & ResolveResString(resDRVCHK) + End If + If MsgError(strMsg, vbExclamation Or vbRetryCancel, strCaption) = vbCancel Then + CheckDrive = False + Err = 0 + End If + Else + CheckDrive = True + End If + + If Err And gfNoUserInput = True Then + ExitSetup frmSetup1, gintRET_FATAL + End If + Loop While Err + + SetMousePtr gintMOUSE_DEFAULT +End Function + +'----------------------------------------------------------- +' FUNCTION: CheckOverwritePrivateFile +' +' Checks if a private file that we are about to install +' already exists in the destination directory. If it +' does, it asks if they want to overwrite the file +' +' IN: [strFN] - Full path of the private file that is +' about to be installed. +' +'----------------------------------------------------------- +' +Public Function CheckOverwritePrivateFile(ByVal strFN As String) As Boolean + Static fNoToAll As Boolean + + If fNoToAll Then 'They've already said no to all, don't ask again + CheckOverwritePrivateFile = False + Exit Function + End If + If FileExists(strFN) Then + Do + Select Case MsgFunc(ResolveResString(resOVERWRITEPRIVATE) & vbLf & vbLf & ResolveResString(resCANCELSETUP), vbYesNo Or vbDefaultButton1 Or vbExclamation, gstrTitle) + Case vbYes + 'The user chose to cancel. (This is best.) + gfDontLogSMS = True ' Don't log this message if SMS because we already logged the previous one and we can only use 255 characters. + MsgError ResolveResString(resCHOOSENEWDEST), vbOKOnly, gstrTitle + ExitSetup frmCopy, gintRET_FATAL + Case Else + 'One more level of warning to let them know that we highly + ' recommend cancelling setup at this point + Select Case MsgFunc(ResolveResString(resOVERWRITEPRIVATE2) & vbLf & vbLf & ResolveResString(resVERIFYCONTINUE), vbYesNo Or vbDefaultButton2 Or vbExclamation, gstrTitle) + Case vbNo + 'User chose "no, don't continue" + 'Repeat the first-level warning + Case Else + 'They decided to continue anyway + Exit Do + 'End Case + End Select + 'End Case + End Select + Loop + Else + CheckOverwritePrivateFile = True + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: CopyFile +' +' Uses the Windows VerInstallFile API to copy a file from +' the specified source location/name to the destination +' location/name. Split files should be combined via the +' '...Concat...' file routines before calling this +' function. +' If the file is successfully updated and the file is a +' shared file (fShared = True), then the +' files reference count is updated (32-bits only) +' +' IN: [strSrcDir] - directory where source file is located +' [strDestDir] - destination directory for file +' [strSrcName] - name of source file +' [strDestName] - name of destination file +' +' PRECONDITION: NewAction() must have already been called +' for this file copy (of type either +' gstrKEY_SHAREDFILE or gstrKEY_PRIVATE -- +' see CopySection for an example of how +' this works). See NewAction() and related +' functions in LOGGING.BAS for comments on +' using the logging function. +' Either CommitAction() or AbortAction() will +' allows be called by this procedure, and +' should not be done by the caller. +' +' Returns: True if copy was successful, False otherwise +' +' POSTCONDITION: The current action will be either committed or +' aborted. +'----------------------------------------------------------- +' +Function CopyFile(ByVal strSrcDir As String, ByVal strDestDir As String, ByVal strSrcName As String, ByVal strDestName As String, ByVal fShared As Boolean, ByVal fSystem As Boolean, Optional ByVal fOverWrite As Boolean = False) As Boolean + Const intUNKNOWN% = 0 + Const intCOPIED% = 1 + Const intNOCOPY% = 2 + Const intFILEUPTODATE% = 3 + + ' + 'VerInstallFile() Flags + ' + Const VIFF_FORCEINSTALL% = &H1 + Const VIF_TEMPFILE& = &H1 + Const VIF_SRCOLD& = &H4 + Const VIF_DIFFLANG& = &H8 + Const VIF_DIFFCODEPG& = &H10 + Const VIF_DIFFTYPE& = &H20 + Const VIF_WRITEPROT& = &H40 + Const VIF_FILEINUSE& = &H80 + Const VIF_OUTOFSPACE& = &H100 + Const VIF_ACCESSVIOLATION& = &H200 + Const VIF_SHARINGVIOLATION = &H400 + Const VIF_CANNOTCREATE = &H800 + Const VIF_CANNOTDELETE = &H1000 + Const VIF_CANNOTRENAME = &H2000 + Const VIF_OUTOFMEMORY = &H8000& + Const VIF_CANNOTREADSRC = &H10000 + Const VIF_CANNOTREADDST = &H20000 + Const VIF_BUFFTOOSMALL = &H40000 + + Static fIgnoreWarn As Integer 'user warned about ignoring error? + + Dim strMsg As String + Dim lRC As Long + Dim lpTmpNameLen As Long + Dim intFlags As Integer + Dim intRESULT As Integer + Dim fFileAlreadyExisted + + On Error Resume Next + + CopyFile = False + + ' + 'Ensure that the source file is available for copying + ' + If DetectFile(strSrcDir & strSrcName) = vbIgnore Then + AbortAction + Exit Function + End If + + ' + ' Make sure that the Destination path (including path, filename, commandline args, etc. + ' is not longer than the max allowed. + ' + If Not fCheckFNLength(strDestDir & strDestName) Then + AbortAction + strMsg = ResolveResString(resCANTCOPYPATHTOOLONG) & vbLf & vbLf & ResolveResString(resCHOOSENEWDEST) & vbLf & vbLf & strDestDir & strDestName + Call MsgError(strMsg, vbOKOnly, gstrSETMSG) + ExitSetup frmCopy, gintRET_FATAL + Exit Function + End If + ' + 'Make the destination directory, prompt the user to retry if there is an error + ' + If Not MakePath(strDestDir) Then + AbortAction ' Abort file copy + Exit Function + End If + + ' + 'Make sure we have the LFN (long filename) of the destination directory + ' + strDestDir = GetLongPathName(strDestDir) + + ' + 'Setup for VerInstallFile call + ' + lpTmpNameLen = gintMAX_SIZE + mstrVerTmpName = String$(lpTmpNameLen, 0) + intFlags = 0 + If fOverWrite Then intFlags = VIFF_FORCEINSTALL + fFileAlreadyExisted = FileExists(strDestDir & strDestName) + + intRESULT = intUNKNOWN + + Do While intRESULT = intUNKNOWN + 'VerInstallFile under Windows 95 does not handle + ' long filenames, so we must give it the short versions + ' (32-bit only). + Dim strShortSrcName As String + Dim strShortDestName As String + Dim strShortSrcDir As String + Dim strShortDestDir As String + + strShortSrcName = strSrcName + strShortSrcDir = strSrcDir + strShortDestName = strDestName + strShortDestDir = strDestDir + If Not FileExists(strDestDir & strDestName) Then + 'If the destination file does not already + ' exist, we create a dummy with the correct + ' (long) filename so that we can get its + ' short filename for VerInstallFile. + Open strDestDir & strDestName For Output Access Write As #1 + Close #1 + End If + + On Error GoTo UnexpectedErr + If Not IsWindowsNT() Then + Dim strTemp As String + 'This conversion is not necessary under Windows NT + strShortSrcDir = GetShortPathName(strSrcDir) + If GetFileName(strSrcName) = strSrcName Then + strShortSrcName = GetFileName(GetShortPathName(strSrcDir & strSrcName)) + Else + strTemp = GetShortPathName(strSrcDir & strSrcName) + strShortSrcName = Mid$(strTemp, Len(strShortSrcDir) + 1) + End If + strShortDestDir = GetShortPathName(strDestDir) + strShortDestName = GetFileName(GetShortPathName(strDestDir & strDestName)) + End If + On Error Resume Next + + lRC = VerInstallFile(intFlags, strShortSrcName, strShortDestName, strShortSrcDir, strShortDestDir, 0&, mstrVerTmpName, lpTmpNameLen) + If Err <> 0 Then + ' + 'If the version or file expansion DLLs couldn't be found, then abort setup + ' + ExitSetup frmCopy, gintRET_FATAL + End If + + If lRC = 0 Then + ' + 'File was successfully installed, increment reference count if needed + ' + + 'One more kludge for long filenames: VerInstallFile may have renamed + 'the file to its short version if it went through with the copy. + 'Therefore we simply rename it back to what it should be. + Name strDestDir & strShortDestName As strDestDir & strDestName + intRESULT = intCOPIED + ElseIf lRC And VIF_SRCOLD Then + ' + 'Source file was older, so not copied, the existing version of the file + 'will be used. Increment reference count if needed + ' + intRESULT = intFILEUPTODATE + ElseIf lRC And (VIF_DIFFLANG Or VIF_DIFFCODEPG Or VIF_DIFFTYPE) Then + ' + 'We retry and force installation for these cases. You can modify the code + 'here to prompt the user about what to do. + ' + intFlags = VIFF_FORCEINSTALL + ElseIf lRC And VIF_WRITEPROT Then + strMsg = ResolveResString(resWRITEPROT) + GoSub CFMsg + ElseIf lRC And VIF_FILEINUSE Then + strMsg = ResolveResString(resINUSE) + GoSub CFMsg + ElseIf lRC And VIF_OUTOFSPACE Then + strMsg = ResolveResString(resOUTOFSPACE) & Left$(strDestDir, 2) + GoSub CFMsg + ElseIf lRC And VIF_ACCESSVIOLATION Then + strMsg = ResolveResString(resACCESSVIOLATION) + GoSub CFMsg + ElseIf lRC And VIF_SHARINGVIOLATION Then + strMsg = ResolveResString(resSHARINGVIOLATION) + GoSub CFMsg + ElseIf lRC And VIF_OUTOFMEMORY Then + strMsg = ResolveResString(resOUTOFMEMORY) + GoSub CFMsg + Else + ' + ' For these cases, we generically report the error and do not install the file + ' unless this is an SMS install; in which case we abort. + ' + If lRC And VIF_CANNOTCREATE Then + strMsg = ResolveResString(resCANNOTCREATE) + ElseIf lRC And VIF_CANNOTDELETE Then + strMsg = ResolveResString(resCANNOTDELETE) + ElseIf lRC And VIF_CANNOTRENAME Then + strMsg = ResolveResString(resCANNOTRENAME) + ElseIf lRC And VIF_CANNOTREADSRC Then + strMsg = ResolveResString(resCANNOTREADSRC) + ElseIf lRC And VIF_CANNOTREADDST Then + strMsg = ResolveResString(resCANNOTREADDST) + ElseIf lRC And VIF_BUFFTOOSMALL Then + strMsg = ResolveResString(resBUFFTOOSMALL) + End If + + strMsg = strMsg & ResolveResString(resNOINSTALL) + MsgError strMsg, vbOKOnly Or vbExclamation, gstrTitle + If gfSMS Then + ExitSetup frmSetup1, gintRET_FATAL + End If + intRESULT = intNOCOPY + End If + Loop + + ' + 'If there was a temp file left over from VerInstallFile, remove it + ' + If lRC And VIF_TEMPFILE Then + Kill mstrVerTmpName + End If + + 'Abort or commit the current Action, and do reference counting + Select Case intRESULT + Case intNOCOPY + AbortAction + Case intCOPIED + DecideIncrementRefCount strDestDir & strDestName, fShared, fSystem, fFileAlreadyExisted + If (Extension(strDestName) = gsEXT_FONTFON) Or (Extension(strDestName) = gsEXT_FONTTTF) Then + 'do nothing + Else + AddActionNote ResolveResString(resLOG_FILECOPIED) + CommitAction + End If + CopyFile = True + Case intFILEUPTODATE + DecideIncrementRefCount strDestDir & strDestName, fShared, fSystem, fFileAlreadyExisted + If (Extension(strDestName) = gsEXT_FONTFON) Or (Extension(strDestName) = gsEXT_FONTTTF) Then + 'do nothing + Else + AddActionNote ResolveResString(resLOG_FILECOPIED) + CommitAction + End If + CopyFile = True + Case Else + AbortAction ' Defensive - this shouldn't be reached + 'End Case + End Select + + Exit Function + +UnexpectedErr: + MsgError Error$ & vbLf & vbLf & ResolveResString(resUNEXPECTED), vbOKOnly Or vbExclamation, gstrTitle + ExitSetup frmCopy, gintRET_FATAL + +CFMsg: '(Subroutine) + Dim intMsgRet As Integer + strMsg = strDestDir & strDestName & vbLf & vbLf & strMsg + intMsgRet = MsgError(strMsg, vbAbortRetryIgnore Or vbExclamation Or vbDefaultButton2, gstrTitle) + If gfNoUserInput Then intMsgRet = vbAbort + Select Case intMsgRet + Case vbAbort + ExitSetup frmCopy, gintRET_ABORT + Case vbIgnore + If fIgnoreWarn = True Then + intRESULT = intNOCOPY + Else + fIgnoreWarn = True + strMsg = strMsg & vbLf & vbLf & ResolveResString(resWARNIGNORE) + If MsgError(strMsg, vbYesNo Or vbQuestion Or vbDefaultButton2, gstrTitle) = vbYes Then + intRESULT = intNOCOPY + Else + 'Will retry + End If + End If + 'End Case + End Select + + Return +End Function + +'----------------------------------------------------------- +' SUB: CopySection +' +' Attempts to copy the files that need to be copied from +' the named section of the setup info file (SETUP.LST) +' +' IN: [strSection] - name of section to copy files from +' +'----------------------------------------------------------- +' +Sub CopySection(ByVal strsection As String) + Dim intIdx As Integer + Dim fSplit As Integer + Dim fSrcVer As Integer + Dim sFile As FILEINFO + Dim strLastFile As String + Dim intRC As Integer + Dim lThisFileSize As Long + Dim strSrcDir As String + Dim strDestDir As String + Dim strSrcName As String + Dim strDestName As String + Dim strRegister As String + Dim sSrcVerInfo As VERINFO + Dim sDestVerInfo As VERINFO + Dim fFileWasUpToDate As Boolean + Dim strMultDirBaseName As String + Dim strMsg As String + Dim strDetectPath As String + Dim fRemoteReg As Boolean + Dim fOverWrite As Boolean + Dim frm As frmOverwrite + Static fOverwriteAll As Boolean + + On Error Resume Next + + UpdateDateTime + strMultDirBaseName = ResolveResString(resCOMMON_MULTDIRBASENAME) + intIdx = 1 + + If Not FileExists(gsTEMPDIR) Then + MkDir gsTEMPDIR + End If + ' + 'For each file in the specified section, read info from the setup info file + ' + Do While ReadSetupFileLine(strsection, intIdx, sFile) = True + fFileWasUpToDate = False + + ' + 'If last result was IGNORE, and if this is an extent of a split file, + 'then no need to process this chunk of the file either + ' + + If sFile.strSrcName = gstrSEP_AMPERSAND & gstrFILE_MDAG Then + 'We don't need to extract mdac_typ twice + GoTo CSContinue + End If + ExtractFileFromCab GetShortPathName(gsCABNAME), sFile.strSrcName, gsTEMPDIR & sFile.strDestName, gintCabs, gstrSrcPath + If FileExists(gsTEMPDIR & sFile.strDestName) Then + sFile.strSrcName = gsTEMPDIR & sFile.strDestName + sFile.intDiskNum = gintCurrentDisk + End If + If intRC = vbIgnore And sFile.strDestName = strDestName Then + GoTo CSContinue + End If + intRC = 0 + + ' + ' If a new disk is called for, or if for some reason we can't find the + ' source path (user removed the install floppy, for instance) then + ' prompt for the next disk. The PromptForNextDisk function won't + ' actually prompt the user unless it determines that the source drive + ' contains removeable media or is a network connection. Also, we don't + ' prompt if this is a silent install. It will fail later on a silent + ' install when it can't find the file. + ' + If gfNoUserInput = False And (sFile.intDiskNum <> gintCurrentDisk Or DirExists(gstrSrcPath) = False) Then + PromptForNextDisk sFile.intDiskNum, sFile.strSrcName + End If + + strSrcName = sFile.strSrcName + ' + ' The file could exist in either the main source directory or + ' in a subdirectory named DISK1, DISK2, etc. Set the appropriate + ' path. If it's in neither place, it is an error and will be + ' handled later. + ' + If FileExists(strSrcName) = True Then + strSrcDir = gsTEMPDIR + 'ElseIf FileExists(gstrSrcPath & ".." & gstrSEP_DIR & strMultDirBaseName & Format(sFile.intDiskNum) & gstrSEP_DIR & strSrcName) = True Then + 'strSrcDir = ResolveDir(gstrSrcPath & ".." & gstrSEP_DIR & strMultDirBaseName & Format(sFile.intDiskNum) & gstrSEP_DIR, False, False) + 'gstrSrcPath = strSrcDir + Else + ' + ' Can't find the file. + ' + If DirExists(gstrSrcPath & strMultDirBaseName & Format(sFile.intDiskNum)) = True Then + strDetectPath = gstrSrcPath & strMultDirBaseName & Format(sFile.intDiskNum) + Else + strDetectPath = gstrSrcPath + End If + strMsg = ResolveResString(resCOMMON_CANTFINDSRCFILE, "|1", strDetectPath & gstrSEP_DIR & strSrcName) + MsgError strMsg, vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmCopy, gintRET_FATAL + End If + + ' + 'if the file isn't split, or if this is the first section of a split file + ' + If sFile.strDestDir <> vbNullString Then + fSplit = sFile.fSplit + + strDestDir = sFile.strDestDir + strDestName = sFile.strDestName + + 'We need to go ahead and create the destination directory, or else + 'GetLongPathName() may fail + If Not MakePath(strDestDir) Then + intRC = vbIgnore + End If + + If intRC <> vbIgnore Then + Err = 0 + strDestDir = GetLongPathName(strDestDir) + + frmCopy.lblDestFile.Caption = strDestDir & sFile.strDestName + frmCopy.lblDestFile.Refresh + + If UCase(strDestName) = gstrFILE_AXDIST Then + ' + ' AXDIST.EXE is installed temporarily. We'll be + ' deleting it at the end of setup. Set gfAXDist = True + ' so we know we need to delete it later. + ' + NewAction gstrKEY_TEMPFILE, """" & strDestDir & strDestName & """" + gfAXDist = True + gstrAXDISTInstallPath = strDestDir & strDestName + ElseIf UCase(strDestName) = gstrFILE_MDAG Then + ' + ' mdac_typ.EXE is installed temporarily. We'll be + ' deleting it at the end of setup. Set mdag = True + ' so we know we need to delete it later. + ' + NewAction gstrKEY_TEMPFILE, """" & strDestDir & strDestName & """" + gfMDag = True + gstrMDagInstallPath = strDestDir & strDestName + ElseIf UCase(strDestName) = gstrFILE_WINT351 Then + ' + ' WINt351.EXE is installed temporarily. We'll be + ' deleting it at the end of setup. Set WINt351 = True + ' so we know we need to delete it later. (Note, this file + ' is only installed if the target is nt3.51. This is dealt + ' with below in this same routine. ) + ' + NewAction gstrKEY_TEMPFILE, """" & strDestDir & strDestName & """" + gfWINt351 = True + gstrWINt351InstallPath = strDestDir & strDestName + ElseIf (Extension(sFile.strDestName) = gsEXT_FONTTTF) Then + 'No new actions for fonts + ElseIf (Extension(sFile.strDestName) = gsEXT_FONTFON) Then + 'No new actions for fonts + ElseIf sFile.fShared Then + NewAction gstrKEY_SHAREDFILE, """" & strDestDir & strDestName & """" + ElseIf sFile.fSystem Then + NewAction gstrKEY_SYSTEMFILE, """" & strDestDir & strDestName & """" + ElseIf (Extension(sFile.strDestName) = gsEXT_REG) Then + If Extension(sFile.strRegister) = gsEXT_REG Then + 'No new actions for registration files. + Else + NewAction gstrKEY_PRIVATEFILE, """" & strDestDir & strDestName & """" + End If + Else + NewAction gstrKEY_PRIVATEFILE, """" & strDestDir & strDestName & """" + End If + End If + + ' + 'If the file info just read from SETUP.LST is the application .EXE + '(i.e.; it's the value of the AppExe Key in the [Setup] section, + 'then save it's full pathname for later use + ' + If strDestName = gstrAppExe Then + ' + 'Used for creating a program manager icon in Form_Load of SETUP1.FRM + 'and for registering the per-app path + ' + gsDest.strAppDir = strDestDir + End If + + 'Special case for RICHED32.DLL + '-- we only install this file under Windows 95, not under Windows NT (3.51 or 4.0) + If strDestName = mstrFILE_RICHED32 Then + If Not IsWindows95() Then + 'We're not running under Win95 - do not install this file. + intRC = vbIgnore + LogNote ResolveResString(resCOMMON_RICHED32NOTCOPIED, "|1", strDestName) + AbortAction + End If + End If + ' + ' Special case for AXDIST.EXE + ' If this is Win95 or NT4 and AXDIST.EXE is in the setup list, we need + ' to execute it when setup1 is complete. AXDIST.EXE is a self-extracting + ' exe that installs special files needed for internet functionality. + ' + If UCase(strDestName) = gstrFILE_AXDIST Then + ' + ' Don't do anything here if this is not Win95 or NT4. + ' + If Not TreatAsWin95() Then + 'We're not running under Win95 or NT4- do not install this file. + intRC = vbIgnore + LogNote ResolveResString(resCOMMON_AXDISTNOTCOPIED, "|1", strDestName) + AbortAction + gfAXDist = False + End If + End If + ' + ' Special case for WINt351.EXE + ' If this is NT3.51 and WINt351.EXE is in the setup list, we need + ' to execute it when setup1 is complete. WINt351.EXE is a self-extracting + ' exe that installs special files needed for internet functionality. + ' + If UCase(strDestName) = gstrFILE_WINT351 Then + ' + ' Don't do anything here if this is not NT3.51. + ' + If TreatAsWin95() Then + 'We're not running under NT3.51- do not install this file. + intRC = vbIgnore + LogNote ResolveResString(resCOMMON_WINT351NOTCOPIED, "|1", strDestName) + AbortAction + gfWINt351 = False + End If + End If + + strRegister = sFile.strRegister + + lThisFileSize = CalcFinalSize(sFile.lFileSize, sFile.strDestDir) + + ' + 'The stuff below trys to save some time by pre-checking whether a file + 'should be installed before a split file is concatenated or before + 'VerInstallFile does its think which involves a full file read (for + 'a compress file) at the minimum. Basically, if both files have + 'version numbers, they are compared. If one file has a version number + 'and the other doesn't, the one with the version number is deemed + '"Newer". If neither file has a version number, we compare date. + ' + 'Always attempt to get the source file version number. If the setup + 'info file did not contain a version number (sSrcVerInfo.nMSHi = + 'gintNOVERINFO), we attempt to read the version number from the source + 'file. Reading the version number from a split file will always fail. + 'That's why it's a good idea to include the version number for a file + '(especially split ones) in the setup info file (SETUP.LST) + ' + fSrcVer = True + sSrcVerInfo = sFile.sVerInfo + If sSrcVerInfo.FileVerPart1 = gintNOVERINFO Then + fSrcVer = GetFileVerStruct(strSrcDir & strSrcName, sSrcVerInfo) + End If + + ' + 'If there is an existing destination file with version information, then + 'compare its version number to the source file version number. + ' + fOverWrite = True + If intRC <> vbIgnore Then + fRemoteReg = (sFile.strRegister = mstrREMOTEREGISTER) + If GetFileVerStruct(strDestDir & strDestName, sDestVerInfo, fRemoteReg) = True Then + If fSrcVer = True Then + If IsNewerVer(sSrcVerInfo, sDestVerInfo) = False Then + ' + 'Existing file is newer than the one we want to install; + 'prompt user for what to do + ' + + If Not fOverwriteAll Then + Set frm = New frmOverwrite + frm.FileName = strDestDir & strDestName + With sDestVerInfo + frm.Version = CStr(.FileVerPart1) & "." & CStr(.FileVerPart2) & "." & _ + CStr(.FileVerPart3) & "." & CStr(.FileVerPart4) + End With + frm.Description = GetFileDescription(strDestDir & strDestName) + frm.Show vbModal, frmSetup1 + If frm.ReturnVal = owNo Then 'overwrite the file + fOverWrite = True + ElseIf frm.ReturnVal = owYes Then 'Keep this file + fOverWrite = False + ElseIf frm.ReturnVal = owNoToAll Then 'Overwrite all files + fOverWrite = True + fOverwriteAll = True + End If + End If + If Not fOverWrite Then + intRC = vbIgnore + fFileWasUpToDate = True + DecideIncrementRefCount strDestDir & strDestName, sFile.fShared, sFile.fSystem, True + If (Extension(sFile.strDestName) = gsEXT_FONTFON) Or (Extension(sFile.strDestName) = gsEXT_FONTTTF) Then + 'do nothing + Else + AddActionNote ResolveResString(resLOG_FILEUPTODATE) + CommitAction + End If + End If + End If + End If + Else + ' + 'If the destination file has no version info, then we'll copy the + 'source file if it *does* have a version. If neither file has a + 'version number, then we compare date. + ' + If sFile.varDate <= FileDateTime(strDestDir & strDestName) Then + If Err = 0 Then + ' + 'Although neither the source nor the existing file contain version + 'information, the existing file has a newer date so we'll use it. + ' + If Not fOverwriteAll Then + Set frm = New frmOverwrite + frm.FileName = strDestDir & strDestName + frm.Version = vbNullString + frm.Description = GetFileDescription(strDestDir & strDestName) + frm.Show vbModal, frmSetup1 + If frm.ReturnVal = owNo Then 'overwrite the file + fOverWrite = True + ElseIf frm.ReturnVal = owYes Then 'Keep this file + fOverWrite = False + ElseIf frm.ReturnVal = owNoToAll Then 'Overwrite all files + fOverWrite = True + fOverwriteAll = True + End If + End If + If Not fOverWrite Then + intRC = vbIgnore + fFileWasUpToDate = True + DecideIncrementRefCount strDestDir & strDestName, sFile.fShared, sFile.fSystem, True + If (Extension(sFile.strDestName) = gsEXT_FONTFON) Or (Extension(sFile.strDestName) = gsEXT_FONTTTF) Then + 'do nothing + Else + AddActionNote ResolveResString(resLOG_FILEUPTODATE) + CommitAction + End If + End If + Else + Err = 0 + End If + End If + End If + End If + + End If + If fOverwriteAll Then fOverWrite = True + ' + 'If the file wasn't split, or if this is the last extent of a split file + ' + If fSplit = False Then + + ' + 'After all of this, if we're still ready to copy, then give it a whirl! + ' + If intRC <> vbIgnore Then + ' CopyFile will increment the reference count for us, and will either + ' commit or abort the current Action. + 'Turn off READONLY flag in case we copy. + SetAttr strDestDir & strDestName, vbNormal + If Extension(sFile.strRegister) <> gsEXT_REG Then + intRC = IIf(CopyFile(strSrcDir, strDestDir, strDestName, strDestName, sFile.fShared, sFile.fSystem, fOverWrite), 0, vbIgnore) + End If + End If + + ' + 'Save the paths of certain files for later use, if they were + 'successfully installed or were already on the system + ' + If (Extension(strDestDir & strDestName) = gsEXT_FONTTTF) Or (Extension(strDestDir & strDestName) = gsEXT_FONTFON) Then + If AddFontResource(strDestDir & strDestName) <> 0 Then + 'Success + Else + 'Failure + End If + End If + If (intRC = 0 Or fFileWasUpToDate) Then + Select Case strDestName + Case mstrFILE_AUTMGR32 + ' + 'Used for creating an icon if installed + ' + gsDest.strAUTMGR32 = strDestDir & mstrFILE_AUTMGR32 + Case mstrFILE_RACMGR32 + ' + 'Used for creating an icon if installed + ' + gsDest.strRACMGR32 = strDestDir & mstrFILE_RACMGR32 + 'End Case + End Select + + ' + 'If we successfully copied the file, and if registration information was + 'specified in the setup info file, save the registration info into an + 'array so that we can register all files requiring it in one fell swoop + 'after all the files have been copied. + ' + If strRegister <> vbNullString Then + Err = 0 + ReDim Preserve msRegInfo(UBound(msRegInfo) + 1) + + If Err > 0 Then + ReDim msRegInfo(0) + End If + + msRegInfo(UBound(msRegInfo)).strFilename = strDestDir & strDestName + + Select Case strRegister + Case mstrDLLSELFREGISTER, mstrEXESELFREGISTER, mstrTLBREGISTER, mstrVBLREGISTER + 'Nothing in particular to do + Case mstrREMOTEREGISTER + 'We need to look for and parse the corresponding "RemoteX=..." line + If Not ReadSetupRemoteLine(strsection, intIdx, msRegInfo(UBound(msRegInfo))) = True Then + MsgError ResolveResString(resREMOTELINENOTFOUND, "|1", strDestName, "|2", gstrINI_REMOTE & Format$(intIdx)), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL + End If + Case Else + ' + 'If the registration info specified the name of a file with + 'registration info (which we assume if a registration macro + 'was not specified), then we also assume that, if no path + 'information is available, this reginfo file is in the same + 'directory as the file it registers + ' + strRegister = ResolveDestDirs(strRegister) + If InStr(strRegister, gstrSEP_DIR) = 0 Then + strRegister = strSrcDir & strRegister + End If + 'End Case + End Select + + If Extension(strRegister) = gsEXT_REG Then + SyncShell gsREGEDIT & strQuoteString(strRegister), INFINITE + End If + msRegInfo(UBound(msRegInfo)).strRegister = strRegister + End If + + End If + End If + + strLastFile = sFile.strDestName + +CSContinue: + ' + 'If the file wasn't split, or if this was the last extent of a split file, then + 'update the copy status bar. We need to do the update regardless of whether a + 'file was actually copied or not. + ' + If sFile.fSplit = False Then + glTotalCopied = glTotalCopied + lThisFileSize + UpdateStatus frmCopy.picStatus, glTotalCopied / mlTotalToCopy + End If + + Dim sCurDate As String, sFileDate As String + + sFileDate = Format(FileDateTime(sFile.strDestDir & sFile.strDestName), "m/d/yyyy h:m") + sCurDate = Format(Now, "m/d/yyyy h:m") + + If sFileDate = sCurDate Then + Dim lTime As FileTime + Dim hFile As Long + + lTime = GetFileTime(sFile.varDate) + hFile = CreateFile(sFile.strDestDir & sFile.strDestName, GENERIC_WRITE Or GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) + Call SetFileTime(hFile, lTime, lTime, lTime) + DoEvents + CloseHandle hFile + Else + ' + 'Give a chance for the 'Cancel' button command to be processed if it was pressed + ' + DoEvents + End If + 'Delete the files after copy... + SetAttr gsTEMPDIR & sFile.strDestName, vbNormal + Kill gsTEMPDIR & sFile.strDestName + intIdx = intIdx + 1 + Loop + + Err = 0 +End Sub +'----------------------------------------------------------- +' SUB: CreateOSProgramGroup +' +' Calls CreateProgManGroup under Windows NT or +' fCreateShellGroup under Windows 95 +'----------------------------------------------------------- +' +Function fCreateOSProgramGroup(frm As Form, ByVal strFolderName As String, ByVal fRetOnErr As Boolean, Optional ByVal fLog As Boolean = True, Optional ByVal fPriv As Boolean = True, Optional ByVal fStartMenu As Boolean = False) As Boolean + If TreatAsWin95() Then + fCreateOSProgramGroup = fCreateShellGroup(strFolderName, fRetOnErr, fLog, fPriv, fStartMenu) + Else + CreateProgManGroup frm, strFolderName, fRetOnErr, fLog + fCreateOSProgramGroup = True + End If +End Function + +'----------------------------------------------------------- +' SUB: CreateOSLink +' +' Calls CreateProgManItem under Windows NT or +' CreateFolderLink under Windows 95. +' +' If fLog is missing, the default is True. +'----------------------------------------------------------- +' +Sub CreateOSLink(frm As Form, ByVal strGroupName As String, ByVal strLinkPath As String, ByVal strLinkArguments As String, ByVal strLinkName As String, ByVal fPrivate As Boolean, sParent As String, Optional ByVal fLog As Boolean = True) + If TreatAsWin95() Then + CreateShellLink strLinkPath, strGroupName, strLinkArguments, strLinkName, fPrivate, sParent, fLog + Else + ' + ' DDE will not work properly if you try to send NT the long filename. If it is + ' in quotes, then the parameters get ignored. If there are no parameters, the + ' long filename can be used and the following line could be skipped. + ' + strLinkPath = GetShortPathName(strUnQuoteString(strLinkPath)) + CreateProgManItem frm, strGroupName, strLinkPath & " " & strLinkArguments, strLinkName, fLog + End If +End Sub + +'----------------------------------------------------------- +' SUB: CreateProgManGroup +' +' Creates a new group in the Windows program manager if +' the specified groupname doesn't already exist +' +' IN: [frm] - form containing a label named 'lblDDE' +' [strGroupName] - text name of the group +' [fRetOnErr] - ignored +' [fLog] - Whether or not to write to the logfile (default +' is true if missing) +'----------------------------------------------------------- +' +Sub CreateProgManGroup(frm As Form, ByVal strGroupName As String, ByVal fRetOnErr As Boolean, Optional ByVal fLog As Boolean = True) + ' + 'Call generic progman DDE function with flag to add a group + ' + + 'Perform the DDE to create the group + PerformDDE frm, strGroupName, vbNullString, vbNullString, mintDDE_GRPADD, fLog +End Sub + +'----------------------------------------------------------- +' SUB: CreateProgManItem +' +' Creates (or replaces) a program manager icon in the active +' program manager group +' +' IN: [frm] - form containing a label named 'lblDDE' +' [strGroupName] - Caption of group in which icon will go. +' [strCmdLine] - command line for the item/icon, +' Ex: 'c:\myapp\myapp.exe' +' Note: If this path contains spaces +' or commas, it should be enclosed +' with quotes so that it is properly +' interpreted by Windows (see AddQuotesToFN) +' [strIconTitle] - text caption for the icon +' [fLog] - Whether or not to write to the logfile (default +' is true if missing) +' +' PRECONDITION: CreateProgManGroup has already been called. The +' new icon will be created in the group last created. +'----------------------------------------------------------- +' +Sub CreateProgManItem(frm As Form, ByVal strGroupName As String, ByVal strCmdLine As String, ByVal strIconTitle As String, Optional ByVal fLog As Boolean = True) + ' + 'Call generic progman DDE function with flag to add an item + ' + PerformDDE frm, strGroupName, strCmdLine, strIconTitle, mintDDE_ITEMADD, fLog +End Sub + +'----------------------------------------------------------- +' SUB: fCreateShellGroup +' +' Creates a new program group off of Start>Programs in the +' Windows 95 shell if the specified folder doesn't already exist. +' +' IN: [strFolderName] - text name of the folder. +' This parameter may not contain +' backslashes. +' ex: "My Application" - this creates +' the folder Start>Programs>My Application +' [fRetOnerr] - Whether or not this routine should return if +' there is an error creating the group. If false, +' setup aborts and does not return. Set this to +' true if the user can do something to correct the +' error. E.g., they entered a group name in the +' Choose Program Group dialog as opposed to calling +' this routine when creating the Remote Automation +' group in which the user had no control. +' [fLog] - Whether or not to write to the logfile (default +' is true if missing) +'----------------------------------------------------------- +' +Function fCreateShellGroup(ByVal strFolderName As String, fRetOnErr As Boolean, Optional ByVal fLog As Boolean = True, Optional ByVal fPriv As Boolean = True, Optional ByVal fStartMenu As Boolean = False) As Boolean + Dim oMalloc As IVBMalloc + + ReplaceDoubleQuotes strFolderName + + If strFolderName = "" Then + Exit Function + End If + +Retry: + + Dim fSuccess As Boolean + Dim sPath As String + Dim IDL As Long + Dim lPrograms As SpecialFolderIDs + + If IsWindows95() Then + If fStartMenu Then + lPrograms = sfidSTARTMENU + Else + lPrograms = sfidPROGRAMS + End If + Else + If fPriv Then + If fStartMenu Then + lPrograms = sfidSTARTMENU + Else + lPrograms = sfidPROGRAMS + End If + Else + If fStartMenu Then + lPrograms = sfidCOMMON_STARTMENU + Else + lPrograms = sfidCOMMON_PROGRAMS + End If + End If + End If + ' Fill the item id list with the pointer of each folder item, rtns 0 on success + If SHGetSpecialFolderLocation(frmSetup1.hwnd, lPrograms, IDL) = NOERROR Then + sPath = String$(gintMAX_PATH_LEN, 0) + SHGetPathFromIDListA IDL, sPath + SHGetMalloc oMalloc + oMalloc.Free IDL + sPath = StringFromBuffer(sPath) + End If + AddDirSep sPath + sPath = sPath & strFolderName + fSuccess = MakePath(sPath) + If Not fSuccess Then + If gfNoUserInput Or (MsgError(ResolveResString(resCANTCREATEPROGRAMGROUP, "|1", strFolderName), vbRetryCancel Or vbExclamation, gstrTitle)) = vbCancel Then + ExitSetup frmSetup1, gintRET_EXIT + GoTo Retry + End If + ' + ' Determine if we should return so the user can + ' correct the situation. + ' + If Not fRetOnErr Then + ' + ' Return so we can exit setup. + ' + GoTo Retry + End If + End If + + + fCreateShellGroup = fSuccess +End Function + +'----------------------------------------------------------- +' SUB: CreateShellLink +' +' Creates (or replaces) a link in either Start>Programs or +' any of its immediate subfolders in the Windows 95 shell. +' +' IN: [strLinkPath] - full path to the target of the link +' Ex: 'c:\Program Files\My Application\MyApp.exe" +' [strLinkArguments] - command-line arguments for the link +' Ex: '-f -c "c:\Program Files\My Application\MyApp.dat" -q' +' [strLinkName] - text caption for the link +' [fLog] - Whether or not to write to the logfile (default +' is true if missing) +' +' OUT: +' The link will be created in the folder strGroupName + +'----------------------------------------------------------- +' +Sub CreateShellLink(ByVal strLinkPath As String, ByVal strGroupName As String, ByVal strLinkArguments As String, ByVal strLinkName As String, ByVal fPrivate As Boolean, sParent As String, Optional ByVal fLog As Boolean = True) + + If fLog Then + NewAction gstrKEY_SHELLLINK, """" & strUnQuoteString(strGroupName) & """" & ", " & """" & strUnQuoteString(strLinkName) & """" + End If + + 'ReplaceDoubleQuotes strLinkName + strLinkName = strUnQuoteString(strLinkName) + strLinkPath = strUnQuoteString(strLinkPath) + + +Retry: + + Dim fSuccess As Boolean + fSuccess = OSfCreateShellLink(strGroupName & vbNullChar, strLinkName, strLinkPath, strLinkArguments & vbNullChar, fPrivate, sParent) 'the path should never be enclosed in double quotes + If fSuccess Then + If fLog Then + CommitAction + End If + Else + Dim intMsgRet As Integer + intMsgRet = MsgError(ResolveResString(resCANTCREATEPROGRAMICON, "|1", strLinkName), vbAbortRetryIgnore Or vbExclamation, gstrTitle) + If gfNoUserInput Then + intMsgRet = vbAbort + End If + Select Case intMsgRet + Case vbAbort + ExitSetup frmSetup1, gintRET_ABORT + GoTo Retry + Case vbRetry + GoTo Retry + Case vbIgnore + If fLog Then + AbortAction + End If + 'End Case + End Select + End If +End Sub + +'----------------------------------------------------------- +' FUNCTION: DecideIncrementRefCount +' +' Increments the reference count of a file under 32-bits +' if the file is a shared file. +' +' IN: [strFullPath] - full pathname of the file to reference +' count. Example: +' 'C:\MYAPP\MYAPP.DAT' +' [fShared] - whether the file is shared or private +' [fSystem] - The file is a system file +' [fFileAlreadyExisted] - whether or not the file already +' existed on the hard drive +' before our setup program +'----------------------------------------------------------- +' +Sub DecideIncrementRefCount(ByVal strFullPath As String, ByVal fShared As Boolean, ByVal fSystem As Boolean, ByVal fFileAlreadyExisted As Boolean) + 'Reference counting takes place under both Windows 95 and Windows NT + If fShared Or fSystem Then + IncrementRefCount strFullPath, fFileAlreadyExisted + End If +End Sub + +'----------------------------------------------------------- +' FUNCTION: DetectFile +' +' Detects whether the specified file exists. If it can't +' be found, the user is given the opportunity to abort, +' retry, or ignore finding the file. This call is used, +' for example, to ensure that a floppy with the specified +' file name is in the drive before continuing. +' +' IN: [strFileName] - name of file to detect, usually +' should include full path, Example: +' 'A:\MYAPP.DAT' +' +' Returns: TRUE if the file was detected, vbignore if +' the user chose ignore when the file couldn't +' be found, or calls ExitSetup upon 'Abort' +'----------------------------------------------------------- +' +Function DetectFile(ByVal strFilename As String) As Integer + Dim strMsg As String + + DetectFile = True + + Do While FileExists(strFilename) = False + + + strMsg = ResolveResString(resCANTOPEN) & vbLf & vbLf & strFilename + Select Case MsgError(strMsg, vbAbortRetryIgnore Or vbExclamation Or IIf(gfNoUserInput, vbDefaultButton1, vbDefaultButton2), gstrSETMSG) + Case vbAbort + ExitSetup frmCopy, gintRET_ABORT + Case vbIgnore + DetectFile = vbIgnore + Exit Do + 'End Case + End Select + Loop +End Function + + +'----------------------------------------------------------- +' SUB: EtchedLine +' +' Draws an 'etched' line upon the specified form starting +' at the X,Y location passed in and of the specified length. +' Coordinates are in the current ScaleMode of the passed +' in form. +' +' IN: [frmEtch] - form to draw the line upon +' [intX1] - starting horizontal of line +' [intY1] - starting vertical of line +' [intLength] - length of the line +'----------------------------------------------------------- +' +Sub EtchedLine(frmEtch As Form, ByVal intX1 As Integer, ByVal intY1 As Integer, ByVal intLength As Integer) + Const lWHITE& = vb3DHighlight + Const lGRAY& = vb3DShadow + + frmEtch.Line (intX1, intY1)-(intX1 + intLength, intY1), lGRAY + frmEtch.Line (frmEtch.CurrentX + 5, intY1 + 20)-(intX1 - 5, intY1 + 20), lWHITE +End Sub + +'----------------------------------------------------------- +' SUB: ExeSelfRegister +' +' Synchronously runs the file passed in (which should be +' an executable file that supports the /REGSERVER switch, +' for instance, a VB5 generated ActiveX Component .EXE). +' +' IN: [strFileName] - .EXE file to register +'----------------------------------------------------------- +' +Sub ExeSelfRegister(ByVal strFilename As String) + Const strREGSWITCH$ = " /REGSERVER" + + Dim fShell As Integer + + ' + 'Synchronously shell out and run the .EXE with the self registration switch + ' + fShell = SyncShell(AddQuotesToFN(strFilename) & strREGSWITCH, INFINITE, , True) + frmSetup1.Refresh +End Sub + +'----------------------------------------------------------- +' SUB: ExitSetup +' +' Handles shutdown of the setup app. Depending upon the +' value of the intExitCode parm, may prompt the user and +' exit the sub if the user chooses to cancel the exit +' process. +' +' IN: [frm] - active form to unload upon exit +' [intExitCode] - code specifying exit action +'----------------------------------------------------------- +' +Sub ExitSetup(frm As Form, intExitCode As Integer) + Const sKEY As String = "Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup" + Const sValue As String = "Configuring Data Access" + + Const iSUCCESS = 0 + Const iFAIL = 1 + Dim strMsg As String + Dim strSilent As String + Dim fNeedReboot As Boolean + + On Error Resume Next + ' + ' If we aren't running in silent or sms mode give + ' the user a chance to try again, if applicable. + ' + If Not gfNoUserInput Then + Select Case intExitCode + Case gintRET_EXIT + ' + 'If user chose an Exit or Cancel button + ' + If MsgWarning(ResolveResString(resASKEXIT), vbQuestion Or vbYesNo Or vbDefaultButton2, gstrTitle) = vbNo Then + Exit Sub + End If + Case gintRET_ABORT + ' + 'If user chose to abort before a pending action + ' + strMsg = ResolveResString(resINCOMPLETE) & vbLf & vbLf & ResolveResString(resQUITNOW) & vbLf & vbLf + strMsg = strMsg & ResolveResString(resQUITSETUP) + If MsgWarning(strMsg, vbQuestion Or vbYesNo Or IIf(gfNoUserInput, vbDefaultButton1, vbDefaultButton2), gstrSETMSG) = vbNo Then + Exit Sub + End If + 'End Case + End Select + End If + + 'Abort any pending actions + While fWithinAction() + AbortAction + Wend + + Close + + ' + 'Clean up any temporary files from VerInstallFile or split file concatenation + ' + Kill mstrVerTmpName + If mintConcatFile > 0 Then + Close mintConcatFile + Kill mstrConcatDrive & mstrCONCATFILE + End If + + If frm.hwnd <> frmSetup1.hwnd Then + Unload frm + End If + + If frmSetup1.Visible Then frmSetup1.SetFocus + + ' + 'Give appropriate ending message depending upon exit code + ' + Select Case intExitCode + Case gintRET_EXIT, gintRET_ABORT + gfSMSStatus = False + strMsg = ResolveResString(resINTERRUPTED, "|1", gstrAppName) & vbLf & vbLf & ResolveResString(resCANRUN, "|1", gstrAppName) + MsgWarning strMsg, vbOKOnly Or vbCritical, gstrTitle + Case gintRET_FATAL + gfSMSStatus = False + MsgError ResolveResString(resERROR, "|1", gstrAppName), vbOKOnly Or vbCritical, gstrTitle + Case gintRET_FINISHEDSUCCESS + gfSMSStatus = True + ' + ' Don't log this message to SMS since it is only a confirmation. + ' + gfDontLogSMS = True + MsgFunc ResolveResString(resSUCCESS, "|1", gstrAppName), vbOKOnly, gstrTitle + + If IsWindowsNT4WithoutSP2() Then + 'Recommend that the user upgrade to NT 4.0 SP2 + gfDontLogSMS = True + MsgWarning ResolveResString(resNT4WithoutSP2), vbOKOnly Or vbInformation, gstrTitle + End If + Case Else + strMsg = ResolveResString(resINTERRUPTED, "|1", gstrAppName) & vbLf & vbLf & ResolveResString(resCANRUN, "|1", gstrAppName) + MsgWarning strMsg, vbOKOnly Or vbCritical, gstrTitle + 'End Case + End Select + + 'Stop logging + DisableLogging + + ' Clean up an aborted installation + If (intExitCode = gintRET_FINISHEDSUCCESS) Then + 'Check to see if we need to reboot for mdac_typ + Dim sRet As String + If GetKeyValue(HK_LOCAL_MACHINE, sKEY, sValue, sRet) Then + 'We need to reboot + 'Warn the user before rebooting. If they choose to reboot, do so, otherwise + 'Warn them again. + If MsgBox(ResolveResString(resREBOOT), vbYesNo Or vbInformation, gstrTitle) = vbYes Then + fNeedReboot = True + Else + fNeedReboot = False + intExitCode = gintRET_FATAL + MsgBox ResolveResString(resREBOOTNO), vbOKOnly Or vbExclamation, gstrTitle + End If + End If + Else + 'Setup has been aborted for one reason or another + If (gstrAppRemovalEXE <> "") Then + Dim nErrorLevel As Integer + Select Case intExitCode + Case gintRET_FATAL + nErrorLevel = APPREMERR_FATAL + Case gintRET_EXIT + nErrorLevel = APPREMERR_USERCANCEL + Case gintRET_ABORT + nErrorLevel = APPREMERR_NONFATAL + Case Else + nErrorLevel = APPREMERR_FATAL + 'End Case + End Select + + ' + ' We don't want to log this message to sms because it is + ' only a confirmation message. + ' + gfDontLogSMS = True + MsgFunc ResolveResString(resLOG_ABOUTTOREMOVEAPP), vbInformation Or vbOKOnly, gstrTitle + + Err = 0 + ' + ' Ready to run the installer. Determine if this is a + ' silent uninstall or not. + ' + If gfSilent Then + strSilent = gstrSilentLog + Else + strSilent = vbNullString + End If + + Shell GetAppRemovalCmdLine(gstrAppRemovalEXE, gstrAppRemovalLog, strSilent, gfSMS, nErrorLevel, True), vbNormalFocus + If Err Then + MsgError Error$ & vbLf & vbLf & ResolveResString(resLOG_CANTRUNAPPREMOVER), vbExclamation Or vbOKOnly, gstrTitle + End If + + 'Since the app removal program will attempt to delete this program and all of our runtime + 'files, we should exit as soon as possible (otherwise the app remover will not be + 'able to remove these files) + End If + + 'Note: We do not delete the logfile if an error occurs. + 'The application removal EXE will do that if needed. + + End If + + Unload frmSetup1 + + If gfSMS = True Then + WriteMIF gstrMIFFile, gfSMSStatus, gstrSMSDescription + End If + + 'Try the reboot (if necessary)... + If fNeedReboot Then RebootSystem + 'End the program + If (intExitCode = gintRET_FINISHEDSUCCESS) Then + ExitProcess iSUCCESS + Else + ExitProcess iFAIL + End If +End Sub + +'----------------------------------------------------------- +' FUNCTION: ProcessCommandLine +' +' Processes the command-line arguments +' +' OUT: Fills in the passed-in byref parameters as appropriate +'----------------------------------------------------------- +' +Sub ProcessCommandLine(ByVal strCommand As String, ByRef fSilent As Boolean, ByRef strSilentLog As String, ByRef fSMS As Boolean, ByRef strMIFFile As String, ByRef strSrcPath As String, ByRef strAppRemovalLog As String, ByRef strAppRemovalEXE As String) + Dim fErr As Boolean + Dim intAnchor As Integer + + Const strTemp$ = "" + + strSrcPath = "" + strAppRemovalLog = "" + + strCommand = Trim$(strCommand) + + ' + ' First, check to see if this is supposed to be a silent + ' install (/s on the command line followed by + ' a log file name) and set global variables appropriately. + ' + ' If you are designing a silent install, the /s + ' command line parameter should be added to the setup.exe + ' command. It will automatically be passed to setup1 as the + ' first parameter. + ' + ' The filename that follows the /s parameter must + ' include the full path name. + ' + intAnchor = InStr(LCase(strCommand), gstrSwitchPrefix2 & gstrSILENTSWITCH) + If intAnchor > 0 Then + fSilent = True + strCommand = Trim(Mid(strCommand, intAnchor + 2)) + strSilentLog = strExtractFilenameArg(strCommand, fErr) + If fErr Then GoTo BadCommandLine + Else + fSilent = False + End If + fSMS = False + + ' + ' We expect to find the source directory, + ' name/path of the logfile, and name/path + ' of the app removal executable, separated only by + ' spaces + ' + strSrcPath = strExtractFilenameArg(strCommand, fErr) + If fErr Then GoTo BadCommandLine + + strAppRemovalLog = strExtractFilenameArg(strCommand, fErr) + If fErr Then GoTo BadCommandLine + + + strAppRemovalEXE = strExtractFilenameArg(strCommand, fErr) + If fErr Then GoTo BadCommandLine + + ' Both the app removal logfile and executable must exist + If Not FileExists(strAppRemovalLog) Then + GoTo BadAppRemovalLog + End If + + If Not FileExists(strAppRemovalEXE) Then + GoTo BadAppRemovalEXE + End If + + ' Last check: There should be nothing else on the command line + strCommand = Trim$(strCommand) + If strCommand <> "" Then + GoTo BadCommandLine + End If + + Exit Sub + +BadAppRemovalLog: + MsgError ResolveResString(resCANTFINDAPPREMOVALLOG, "|1", strAppRemovalLog), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL + +BadAppRemovalEXE: + MsgError ResolveResString(resCANTFINDAPPREMOVALEXE, "|1", strAppRemovalEXE), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL + +BadCommandLine: + MsgError ResolveResString(resBADCOMMANDLINE), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL +End Sub + +'----------------------------------------------------------- +' FUNCTION: GetDrivesAllocUnit +' +' Gets the minimum file size allocation unit for the +' specified drive +' +' IN: [strDrive] - Drive to get allocation unit for +' +' Returns: minimum allocation unit of drive, or -1 if +' this value couldn't be determined +'----------------------------------------------------------- +' +Function GetDrivesAllocUnit(ByVal strDrive As String) As Long + Dim strCurDrive As String + Dim lAllocUnit As Long + + On Error Resume Next + + ' + 'Save current drive + ' + strCurDrive = Left$(CurDir$, 2) + + ' + 'append a colon to the end of the drivespec if none supplied + ' + If InStr(strDrive, gstrCOLON) = 0 Or Len(strDrive) > 2 Then + strDrive = Left$(strDrive, 1) & gstrCOLON + End If + + ' + 'Change to the drive to determine the allocation unit for. The AllocUnit() + 'API returns this value for the current drive only + ' + ChDrive strDrive + + ' + 'If there was an error accessing the specified drive, flag error return. + 'It is also possible for the AllocUnit() API to return -1 on other failure + ' + If Err <> 0 Or (strDrive <> Left$(CurDir$, 2)) Then + lAllocUnit = -1 + Else + Dim lRet As Long + Dim lBytes As Long, lSect As Long, lClust As Long, lTot As Long + + lRet = GetDiskFreeSpace(vbNullString, lSect, lBytes, lClust, lTot) + lAllocUnit = lSect * lBytes + If Err <> 0 Then + lAllocUnit = -1 + End If + End If + + If lAllocUnit = -1 Then + MsgError Error$ & vbLf & vbLf & ResolveResString(resALLOCUNIT) & strDrive, vbExclamation, gstrTitle + If gfSMS Then + ExitSetup frmSetup1, gintRET_FATAL + End If + End If + + GetDrivesAllocUnit = lAllocUnit + + ' + 'Restore to original drive + ' + ChDrive strCurDrive + + Err = 0 +End Function + +'----------------------------------------------------------- +' FUNCTION: GetFileName +' +' Return the filename portion of a path +' +'----------------------------------------------------------- +' +Function GetFileName(ByVal strPath As String) As String + Dim strFilename As String + Dim iSep As Integer + + strFilename = strPath + Do + iSep = InStr(strFilename, gstrSEP_DIR) + If iSep = 0 Then iSep = InStr(strFilename, gstrCOLON) + If iSep = 0 Then + GetFileName = strFilename + Exit Function + Else + strFilename = Right(strFilename, Len(strFilename) - iSep) + End If + Loop +End Function + +'----------------------------------------------------------- +' FUNCTION: GetFileSize +' +' Determine the size (in bytes) of the specified file +' +' IN: [strFileName] - name of file to get size of +' +' Returns: size of file in bytes, or -1 if an error occurs +'----------------------------------------------------------- +' +Function GetFileSize(strFilename As String) As Long + On Error Resume Next + + GetFileSize = FileLen(strFilename) + + If Err > 0 Then + GetFileSize = -1 + Err = 0 + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: GetAppRemovalCmdLine +' +' Returns the correct command-line arguments (including +' path to the executable for use in calling the +' application removal executable) +' +' IN: [strAppRemovalEXE] - Full path/filename of the app removal EXE +' [strAppRemovalLog] - Full path/filename of the app removal logfile +' [strSilentLog] - Full path/filename of the file to log messages to when in silent mode. +' If this is an empty string then silent mode is turned off for uninstall. +' [fSMS] - Boolean. If True, we have been doing an SMS install and must tell the Uninstaller +' to also do an SMS uninstall. SMS is the Microsoft Systems Management Server. +' [nErrorLevel] - Error level: +' APPREMERR_NONE - no error +' APPREMERR_FATAL - fatal error +' APPREMERR_NONFATAL - non-fatal error, user chose to abort +' APPREMERR_USERCANCEL - user chose to cancel (no error) +' [fWaitForParent] - True if the application removal utility should wait +' for the parent (this process) to finish before starting +' to remove files. Otherwise it may not be able to remove +' this process' executable file, depending upon timing. +' Defaults to False if not specified. +'----------------------------------------------------------- +' +Function GetAppRemovalCmdLine(ByVal strAppRemovalEXE As String, ByVal strAppRemovalLog, ByVal strSilentLog As String, ByVal fSMS As Boolean, ByVal nErrorLevel As Integer, Optional fWaitForParent As Boolean = False) + Dim strEXE As String + Dim strLog As String + Dim strSilent As String + Dim strErrLevel As String + Dim strForce As String + Dim strWait As String + Dim strSMS As String + + strEXE = AddQuotesToFN(strAppRemovalEXE) + strLog = "-n " & """" & GetLongPathName(strAppRemovalLog) & """" + If gfSilent And strSilentLog <> vbNullString Then + strSilent = "/s " & """" & strSilentLog & """" + Else + strSilent = vbNullString + End If + + strSMS = IIf(fSMS, " /q ", vbNullString) + + strErrLevel = IIf(nErrorLevel <> APPREMERR_NONE, "-e " & Format(nErrorLevel), "") + If nErrorLevel <> APPREMERR_NONE Then + strForce = " -f" + End If + If fWaitForParent Then + Dim curProcessId As Currency + Dim Wrap As Currency + Dim lProcessId As Long + Dim cProcessId As Currency + + Wrap = 2 * (CCur(&H7FFFFFFF) + 1) + + 'Always print as an unsigned long + lProcessId = GetCurrentProcessId() + cProcessId = lProcessId + If cProcessId < 0 Then cProcessId = cProcessId + Wrap + + strWait = " -w " & str(cProcessId) + End If + + GetAppRemovalCmdLine = strEXE & " " & strLog & " " & strSilent & " " & strSMS & strErrLevel & strForce & strWait +End Function + +'----------------------------------------------------------- +' FUNCTION: IncrementRefCount +' +' Increments the reference count on a file in the registry +' so that it may properly be removed if the user chooses +' to remove this application. +' +' IN: [strFullPath] - FULL path/filename of the file +' [fFileAlreadyExisted] - indicates whether the given +' file already existed on the +' hard drive +'----------------------------------------------------------- +' +Sub IncrementRefCount(ByVal strFullPath As String, ByVal fFileAlreadyExisted As Boolean) + Dim strSharedDLLsKey As String + strSharedDLLsKey = RegPathWinCurrentVersion() & "\SharedDLLs" + + 'We must always use the LFN for the filename, so that we can uniquely + 'and accurately identify the file in the registry. + strFullPath = GetLongPathName(strFullPath) + + 'Get the current reference count for this file + Dim fSuccess As Boolean + Dim hKey As Long + fSuccess = RegCreateKey(HKEY_LOCAL_MACHINE, strSharedDLLsKey, "", hKey) + If fSuccess Then + Dim lCurRefCount As Long + If Not RegQueryRefCount(hKey, strFullPath, lCurRefCount) Then + 'No current reference count for this file + If fFileAlreadyExisted Then + 'If there was no reference count, but the file was found + 'on the hard drive, it means one of two things: + ' 1) This file is shipped with the operating system + ' 2) This file was installed by an older setup program + ' that does not do reference counting + 'In either case, the correct conservative thing to do + 'is assume that the file is needed by some application, + 'which means it should have a reference count of at + 'least 1. This way, our application removal program + 'will not delete this file. + lCurRefCount = 1 + + Else + lCurRefCount = 0 + End If + End If + + 'Increment the count in the registry + fSuccess = RegSetNumericValue(hKey, strFullPath, lCurRefCount + 1, False) + If Not fSuccess Then + GoTo DoErr + End If + RegCloseKey hKey + Else + GoTo DoErr + End If + + Exit Sub + +DoErr: + 'An error message should have already been shown to the user + Exit Sub +End Sub + +'----------------------------------------------------------- +' FUNCTION: InitDiskInfo +' +' Called before calculating disk space to initialize +' values used/determined when calculating disk space +' required. +'----------------------------------------------------------- +' +Sub InitDiskInfo() + ' + 'Initialize "table" of drives used and disk space array + ' + gstrDrivesUsed = vbNullString + Erase gsDiskSpace + + mlTotalToCopy = 0 + + ' + 'Get drive/directory for temporary files + ' + mstrConcatDrive = UCase$(Environ$(gstrTMP_DIR)) + If mstrConcatDrive = vbNullString Then + mstrConcatDrive = UCase$(Environ$(gstrTEMP_DIR)) + End If + AddDirSep mstrConcatDrive + + If mstrConcatDrive <> vbNullString Then + If CheckDrive(mstrConcatDrive, ResolveResString(resTEMPDRIVE)) = False Then + mstrConcatDrive = vbNullString + Else + ' + 'If we found a temp drive and the drive is "ready", add it to the + 'table of drives used + ' + gstrDrivesUsed = Left$(mstrConcatDrive, 1) + ReDim Preserve gsDiskSpace(1) + gsDiskSpace(1).lAvail = GetDiskSpaceFree(mstrConcatDrive) + gsDiskSpace(1).lMinAlloc = GetDrivesAllocUnit(mstrConcatDrive) + End If + End If +End Sub + +'----------------------------------------------------------- +' FUNCTION: IsDisplayNameUnique +' +' Determines whether a given display name for registering +' the application removal executable is unique or not. This +' display name is the title which is presented to the +' user in Windows 95's control panel Add/Remove Programs +' applet. +' +' IN: [hkeyAppRemoval] - open key to the path in the registry +' containing application removal entries +' [strDisplayName] - the display name to test for uniqueness +' +' Returns: True if the given display name is already in use, +' False if otherwise +'----------------------------------------------------------- +' +Function IsDisplayNameUnique(ByVal hkeyAppRemoval As Long, ByVal strDisplayName As String) As Boolean + Dim lIdx As Long + Dim strSubkey As String + Dim strDisplayNameExisting As String + Const strKEY_DISPLAYNAME$ = "DisplayName" + + IsDisplayNameUnique = True + + lIdx = 0 + Do + Select Case RegEnumKey(hkeyAppRemoval, lIdx, strSubkey) + Case ERROR_NO_MORE_ITEMS + 'No more keys - must be unique + Exit Do + Case ERROR_SUCCESS + 'We have a key to some application removal program. Compare its + ' display name with ours + Dim hkeyExisting As Long + + If RegOpenKey(hkeyAppRemoval, strSubkey, hkeyExisting) Then + If RegQueryStringValue(hkeyExisting, strKEY_DISPLAYNAME, strDisplayNameExisting) Then + If strDisplayNameExisting = strDisplayName Then + 'There is a match to an existing display name + IsDisplayNameUnique = False + RegCloseKey hkeyExisting + Exit Do + End If + End If + RegCloseKey hkeyExisting + End If + Case Else + 'Error, we must assume it's unique. An error will probably + ' occur later when trying to add to the registry + Exit Do + 'End Case + End Select + lIdx = lIdx + 1 + Loop +End Function + +'----------------------------------------------------------- +' FUNCTION: IsNewerVer +' +' Compares two file version structures and determines +' whether the source file version is newer (greater) than +' the destination file version. This is used to determine +' whether a file needs to be installed or not +' +' IN: [sSrcVer] - source file version information +' [sDestVer] - dest file version information +' +' Returns: True if source file is newer than dest file, +' False if otherwise +'----------------------------------------------------------- +' +Function IsNewerVer(sSrcVer As VERINFO, sDestVer As VERINFO) As Integer + IsNewerVer = False + + With sSrcVer + If .FileVerPart1 > sDestVer.FileVerPart1 Then GoTo INVNewer + If .FileVerPart1 < sDestVer.FileVerPart1 Then GoTo INVOlder + + If .FileVerPart2 > sDestVer.FileVerPart2 Then GoTo INVNewer + If .FileVerPart2 < sDestVer.FileVerPart2 Then GoTo INVOlder + + If .FileVerPart3 > sDestVer.FileVerPart3 Then GoTo INVNewer + If .FileVerPart3 < sDestVer.FileVerPart3 Then GoTo INVOlder + + If .FileVerPart4 > sDestVer.FileVerPart4 Then GoTo INVNewer + End With + With sSrcVer + If (.FileVerPart1 = sDestVer.FileVerPart1) And _ + (.FileVerPart2 = sDestVer.FileVerPart2) And _ + (.FileVerPart3 = sDestVer.FileVerPart3) And _ + (.FileVerPart4 = sDestVer.FileVerPart4) Then GoTo INVNewer + End With + GoTo INVOlder + +INVNewer: + IsNewerVer = True +INVOlder: +End Function + +'----------------------------------------------------------- +' FUNCTION: IsValidDestDir +' +' Determines whether or not the destination directory +' specifed in the "DefaultDir" key of the [Setup] section +' in SETUP.LST or a destination dir entered by the user +' is not a subdirectory of the source directory. +' +' Notes: [gstrSrcPath] - points to the source directory +' [strDestDir] - points to the dest directory +' +' Returns: True if dest dir is a valid location, False +' otherwise +'----------------------------------------------------------- +' +Function IsValidDestDir(strDestDir As String) As Integer + Dim strMsg As String + + ' + ' Both of these paths, strDestDir and gstrSrcPath, are *always* + ' in the format 'X:\' or 'X:\DIRNAME\'. + ' + If InStr(strDestDir, gstrSrcPath) > 0 Then + IsValidDestDir = False + strMsg = ResolveResString(resDIRSPECIFIED) & vbLf & strDestDir & vbLf & ResolveResString(resSAMEASSRC) + MsgFunc strMsg, vbOKOnly Or vbExclamation, gstrTitle + Else + IsValidDestDir = True + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: MakePath +' +' Creates the specified directory path +' +' IN: [strDirName] - name of the dir path to make +' [fAllowIgnore] - whether or not to allow the user to +' ignore any encountered errors. If +' false, the function only returns +' if successful. If missing, this +' defaults to True. +' +' Returns: True if successful, False if error and the user +' chose to ignore. (The function does not return +' if the user selects ABORT/CANCEL on an error.) +'----------------------------------------------------------- +' +Public Function MakePath(ByVal strDir As String, Optional ByVal fAllowIgnore As Boolean = True) As Boolean + Do + If MakePathAux(strDir) Then + MakePath = True + Exit Function + Else + Dim strMsg As String + Dim iRet As Integer + + strMsg = ResolveResString(resMAKEDIR) & vbLf & strDir + iRet = MsgError(strMsg, IIf(fAllowIgnore, vbAbortRetryIgnore, vbRetryCancel) Or vbExclamation Or vbDefaultButton2, gstrSETMSG) + ' + ' if we are running silent then we + ' can't continue. Previous MsgError + ' took care of write silent log entry. + ' + If gfNoUserInput = True Then + ExitSetup frmCopy, gintRET_FATAL + End If + + Select Case iRet + Case vbAbort, vbCancel + ExitSetup frmCopy, gintRET_ABORT + Case vbIgnore + MakePath = False + Exit Function + Case vbRetry + 'End Case + End Select + End If + Loop +End Function + +'---------------------------------------------------------- +' SUB: MoveAppRemovalFiles +' +' Moves the app removal logfile to the application directory, +' and registers the app removal executable with the operating +' system. +'---------------------------------------------------------- +Sub MoveAppRemovalFiles(ByVal strGroupName As String) + Dim strNewAppRemovalLogName As String + Dim lCount As Long + Dim sCab As String + Dim sTemp As String + + lCount = 0 + 'Get rid of the cab file in the windows dir (if it exists). + Do + If gintCabs = 1 Then + sCab = gstrWinDir + AddDirSep sCab + sCab = sCab & BaseName(GetShortPathName(gsCABNAME)) + If FileExists(sCab) Then Kill sCab + Exit Do + End If + lCount = lCount + 1 + sCab = gstrWinDir + AddDirSep sCab + sTemp = Left(gsCABNAME, Len(gsCABNAME) - 5) & CStr(lCount) & gstrSEP_EXT & gsINI_CABNAME + sCab = sCab & BaseName(sTemp) + If FileExists(sCab) Then + Kill sCab + Else + Exit Do + End If + Loop + 'Get rid of the temp dir + 'Bug fix for #6-34583 + KillTempFolder + 'Find a unique name for the app removal logfile in the + 'application directory + + '...First try the default extension + strNewAppRemovalLogName = gstrDestDir & mstrFILE_APPREMOVALLOGBASE & mstrFILE_APPREMOVALLOGEXT + If FileExists(strNewAppRemovalLogName) Then + '...Next try incrementing integral extensions + Dim iExt As Integer + Do + If iExt > 999 Then + GoTo CopyErr + End If + + + strNewAppRemovalLogName = gstrDestDir & mstrFILE_APPREMOVALLOGBASE & gstrSEP_EXT & Format(iExt, "000") + If Not FileExists(strNewAppRemovalLogName) Then + Exit Do 'Unique name was found + Else + iExt = iExt + 1 + End If + Loop + End If + + + + On Error GoTo CopyErr + FileCopy gstrAppRemovalLog, strNewAppRemovalLogName + + 'Now we need to start logging in the new logfile, so that the + 'creation of the application removal icon under NT gets logged. + EnableLogging strNewAppRemovalLogName + + On Error GoTo 0 + If Not RegisterAppRemovalEXE(gstrAppRemovalEXE, strNewAppRemovalLogName, strGroupName) Then + If TreatAsWin95() Then + MsgError ResolveResString(resCANTREGISTERAPPREMOVER), vbExclamation Or vbOKOnly, gstrTitle + Else + MsgError ResolveResString(resCANTCREATEAPPREMOVALICON), vbExclamation Or vbOKOnly, gstrTitle + End If + ExitSetup frmSetup1, gintRET_FATAL + End If + + 'Now we can delete the original logfile, since we no longer have a reference + 'to it, and start using the new logfile + On Error Resume Next + Kill gstrAppRemovalLog + + 'This temporary app removal logfile should no longer be used + gstrAppRemovalLog = strNewAppRemovalLogName + gfAppRemovalFilesMoved = True + + Exit Sub + +CleanUpOnErr: + On Error Resume Next + Kill strNewAppRemovalLogName + On Error GoTo 0 + MsgError ResolveResString(resCANTCOPYLOG, "|1", gstrAppRemovalLog), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup Screen.ActiveForm, gintRET_FATAL + +CopyErr: + Resume CleanUpOnErr +End Sub +'----------------------------------------------------------- +' SUB: KillTempFolder +' BUG FIX #6-34583 +' +' Deletes the temporary files stored in the temp folder +' +Private Sub KillTempFolder() + + Const sWILD As String = "*.*" + Dim sFile As String + + sFile = Dir(gsTEMPDIR & sWILD) + While sFile <> vbNullString + SetAttr gsTEMPDIR & sFile, vbNormal + Kill gsTEMPDIR & sFile + sFile = Dir + Wend + RmDir gsTEMPDIR +End Sub + +'----------------------------------------------------------- +' SUB: ParseDateTime +' +' Same as CDate with a string argument, except that it +' ignores the current localization settings. This is +' important because SETUP.LST always uses the same +' format for dates. +' +' IN: [strDate] - string representing the date in +' the format mm/dd/yy or mm/dd/yyyy +' OUT: The date which strDate represents +'----------------------------------------------------------- +' +Function ParseDateTime(ByVal strDateTime As String) As Date +Dim Var As Variant + Var = strDateTime + If 0 = VariantChangeTypeEx(VarPtr(Var), VarPtr(Var), &H409, 0, vbDate) Then + ParseDateTime = Var + Else + 'Raise same error as CDate + Err.Raise 13 + End If +End Function + +'----------------------------------------------------------- +' SUB: PerformDDE +' +' Performs a Program Manager DDE operation as specified +' by the intDDE flag and the passed in parameters. +' Possible operations are: +' +' mintDDE_ITEMADD: Add an icon to the active group +' mintDDE_GRPADD: Create a program manager group +' +' IN: [frm] - form containing a label named 'lblDDE' +' [strGroup] - name of group to create or insert icon +' [strTitle] - title of icon or group +' [strCmd] - command line for icon/item to add +' [intDDE] - ProgMan DDE action to perform +'----------------------------------------------------------- +' +Sub PerformDDE(frm As Form, ByVal strGroup As String, ByVal strCmd As String, ByVal strTitle As String, ByVal intDDE As Integer, ByVal fLog As Boolean) + Const strCOMMA$ = "," + Const strRESTORE$ = ", 1)]" + Const strACTIVATE$ = ", 5)]" + Const strENDCMD$ = ")]" + Const strSHOWGRP$ = "[ShowGroup(" + Const strADDGRP$ = "[CreateGroup(" + Const strREPLITEM$ = "[ReplaceItem(" + Const strADDITEM$ = "[AddItem(" + + Dim intIdx As Integer 'loop variable + + SetMousePtr vbHourglass + + ' + 'Initialize for DDE Conversation with Windows Program Manager in + 'manual mode (.LinkMode = 2) where destination control is not auto- + 'matically updated. Set DDE timeout for 10 seconds. The loop around + 'DoEvents() is to allow time for the DDE Execute to be processsed. + ' + + Dim intRetry As Integer + For intRetry = 1 To 20 + On Error Resume Next + frm.lblDDE.LinkTopic = "PROGMAN|PROGMAN" + If Err = 0 Then + Exit For + End If + DoEvents + Next intRetry + + frm.lblDDE.LinkMode = 2 + For intIdx = 1 To 10 + DoEvents + Next + frm.lblDDE.LinkTimeout = 100 + + On Error Resume Next + + If Err = 0 Then + Select Case intDDE + Case mintDDE_ITEMADD + ' + ' The item will be created in the group titled strGroup + ' + ' Write the action to the logfile + ' + If fLog Then + NewAction gstrKEY_PROGMANITEM, """" & strUnQuoteString(strGroup) & """" & ", " & """" & strUnQuoteString(strTitle) & """" + End If + ' + ' Force the group strGroup to be the active group. Additem only + ' puts icons in the active group. + ' + #If 0 Then + frm.lblDDE.LinkExecute strSHOWGRP & strGroup & strACTIVATE + #Else + ' strShowGRP doesn't seem to work if ProgMan is minimized. + ' : strADDGRP does the trick fine, though, and it doesn't matter if it already exists. + frm.lblDDE.LinkExecute strADDGRP & strGroup & strENDCMD + #End If + frm.lblDDE.LinkExecute strREPLITEM & strTitle & strENDCMD + Err = 0 + frm.lblDDE.LinkExecute strADDITEM & strCmd & strCOMMA & strTitle & String$(3, strCOMMA) & strENDCMD + Case mintDDE_GRPADD + ' + ' Write the action to the logfile + ' + If fLog Then + NewAction gstrKEY_PROGMANGROUP, """" & strUnQuoteString(strGroup) & """" + End If + frm.lblDDE.LinkExecute strADDGRP & strGroup & strENDCMD + frm.lblDDE.LinkExecute strSHOWGRP & strGroup & strRESTORE + 'End Case + End Select + End If + + + ' + 'Disconnect DDE Link + ' + + frm.lblDDE.LinkMode = 0 + frm.lblDDE.LinkTopic = "" + + + SetMousePtr gintMOUSE_DEFAULT + + If fLog Then + CommitAction + End If + + + Err = 0 +End Sub + +'----------------------------------------------------------- +' SUB: PromptForNextDisk +' +' If the source media is removable or a network connection, +' prompts the user to insert the specified disk number +' containing the filename which is used to determine that +' the correct disk is inserted. +' +' IN: [intDiskNum] - disk number to insert +' [strDetectFile] - file to search for to ensure that +' the correct disk was inserted +' +' Notes: [gstrSrcPath] - used to identify the source drive +'----------------------------------------------------------- +' +Sub PromptForNextDisk(ByVal intDiskNum As Integer, ByVal strDetectFile As String) + Static intDrvType As Integer + + Dim intRC As Integer + Dim strMsg As String + Dim strDrive As String + Dim strMultDirBaseName As String + Dim strDetectPath As String + + On Error Resume Next + + strMultDirBaseName = ResolveResString(resCOMMON_MULTDIRBASENAME) + ' + 'Get source drive and, if we haven't yet determined it, get the + 'source drive type + ' + + strDrive = Left$(gstrSrcPath, 2) + If intDrvType = 0 Then + If IsUNCName(strDrive) Then + intDrvType = intDRIVE_REMOTE + strDrive = gstrSrcPath + Else + intDrvType = GetDriveType(Asc(strDrive) - 65) + End If + End If + + While SrcFileMissing(gstrSrcPath, strDetectFile, intDiskNum) = True + Select Case intDrvType + Case 0, intDRIVE_REMOVABLE, intDRIVE_CDROM + strMsg = ResolveResString(resINSERT) & vbLf & ResolveResString(resDISK) & Format$(intDiskNum) + strMsg = strMsg & ResolveResString(resINTO) & strDrive + Case intDRIVE_REMOTE + strMsg = ResolveResString(resCHKCONNECT) & strDrive + Case intDRIVE_FIXED + If DirExists(gstrSrcPath & strMultDirBaseName & Format(intDiskNum)) = True Then + strDetectPath = gstrSrcPath & strMultDirBaseName & Format(intDiskNum) + Else + strDetectPath = gstrSrcPath + End If + strMsg = ResolveResString(resCOMMON_CANTFINDSRCFILE, "|1", strDetectPath & gstrSEP_DIR & strDetectFile) + 'End Case + End Select + + Beep + intRC = MsgFunc(strMsg, vbOKCancel Or vbExclamation, gstrSETMSG) + ' + ' We should always fail if in silent or sms mode. + ' + If intRC = vbCancel Or gfNoUserInput Then + ExitSetup frmCopy, gintRET_EXIT + End If + Wend + + gintCurrentDisk = intDiskNum +End Sub +Function SrcFileMissing(ByVal strSrcDir As String, ByVal strSrcFile As String, ByVal intDiskNum As Integer) As Boolean +'----------------------------------------------------------- +' FUNCTION: SrcFileMissing +' +' Tries to locate the file strSrcFile by first looking +' in the strSrcDir directory, then in the DISK(x+1) +' directory if it exists. +' +' IN: [strSrcDir] - Directory/Path where file should be. +' [strSrcFile] - File we are looking for. +' [intDiskNum] - Disk number we are expecting file +' to be on. +' +' Returns: True if file not found; otherwise, false +'----------------------------------------------------------- + Dim fFound As Boolean + Dim strMultDirBaseName As String + + fFound = False + + AddDirSep strSrcDir + ' + ' First check to see if it's in the main src directory. + ' This would happen if someone copied the contents of + ' all the floppy disks to a single directory on the + ' hard drive. We should allow this to work. + ' + ' This test would also let us know if the user inserted + ' the wrong floppy disk or if a network connection is + ' unavailable. + ' + If FileExists(strSrcDir & strSrcFile) = True Then + fFound = True + GoTo doneSFM + End If + ' + ' Next try the DISK(x) subdirectory of the main src + ' directory. This would happen if the floppy disks + ' were copied into directories named DISK1, DISK2, + ' DISK3,..., DISKN, etc. + ' + strMultDirBaseName = ResolveResString(resCOMMON_MULTDIRBASENAME) + If FileExists(strSrcDir & ".." & gstrSEP_DIR & strMultDirBaseName & Format(intDiskNum) & gstrSEP_DIR & strSrcFile) = True Then + fFound = True + GoTo doneSFM + End If + +doneSFM: + SrcFileMissing = Not fFound +End Function +'----------------------------------------------------------- +' FUNCTION: ReadIniFile +' +' Reads a value from the specified section/key of the +' specified .INI file +' +' IN: [strIniFile] - name of .INI file to read +' [strSection] - section where key is found +' [strKey] - name of key to get the value of +' +' Returns: non-zero terminated value of .INI file key +'----------------------------------------------------------- +' +Function ReadIniFile(ByVal strIniFile As String, ByVal strsection As String, ByVal strKey As String) As String + Dim strBuffer As String + Dim intPos As Integer + + ' + 'If successful read of .INI file, strip any trailing zero returned by the Windows API GetPrivateProfileString + ' + strBuffer = Space$(gintMAX_SIZE) + + If GetPrivateProfileString(strsection, strKey, vbNullString, strBuffer, gintMAX_SIZE, strIniFile) > 0 Then + ReadIniFile = RTrim$(StripTerminator(strBuffer)) + Else + ReadIniFile = vbNullString + End If +End Function + +'----------------------------------------------------------- +' SUB: ReadSetupFileLine +' +' Reads the requested 'FileX=' key from the specified +' section of the setup information file (SETUP.LST). +' +' IN: [strSection] - name of section to read from SETUP.LST, +' Ex: "Files" +' [intFileNum] - file number index to read +' +' OUT: [sFile] - FILEINFO Type variable that, after parsing, +' holds the information for the file +' described. +' +' Returns: True if the requested info was successfully read, +' False otherwise +' +' Notes: Lines in the setup information file have the +' following format: +' +' #,[SPLIT],SrcName,DestName,DestDir,Register, +' Date,Size,Version +' +' [#] - disk number where this file is located +' [SPLIT] - optional, determines whether this is +' an extent of a split file. The last +' extent does not specify this key +' [SrcName] - filename on the installation media +' [DestName] - file name to use when copied +' +' (For split files, the following info is required only +' for the *first* extent) +' +' [DestDir] - dirname or macro specifying destdir +' [Register] - reginfo file name or macro specifying +' file registration action +' [Date] - date of the source file +' [Size] - size of the source file +' [Version] - optional, version number string +' [Reserved] - Must be empty, else error! +' [ProgIcon] - Caption for icon, if there is one. +' [ProgCmdLine] - Command line for icon, if there is one. +'----------------------------------------------------------- +' +Function ReadSetupFileLine(ByVal strsection As String, ByVal intFileNum As Integer, sFile As FILEINFO) As Integer + Static strSplitName As String + Const CompareBinary = 0 + + Dim strLine As String + Dim strMsg As String + Dim intOffset As Integer + Dim intAnchor As Integer + Dim fDone As Integer + Dim fErr As Boolean + Dim strVersion As String + Dim strFilename As String + + ReadSetupFileLine = False + + sFile.fSystem = False + sFile.fShared = False + + ' + ' Read the requested line, if unable to read it (strLine = vbnullstring) then exit + ' + strLine = ReadIniFile(gstrSetupInfoFile, strsection, gstrINI_FILE & Format$(intFileNum)) + If strLine = vbNullString Then + Exit Function + End If + + ' + 'source file name, ensure it's not a UNC name + ' + intAnchor = 1 + sFile.strSrcName = strExtractFilenameItem(strLine, intAnchor, fErr) + If fErr Then GoTo RSFLError + If IsUNCName(sFile.strSrcName) = True Then GoTo RSFLError + intAnchor = intAnchor + 1 'Skip past the comma + + ' + 'dest file name, ensure it's not a UNC name + ' + If Left(sFile.strSrcName, 1) = gstrSEP_AMPERSAND Then + sFile.strDestName = Right(sFile.strSrcName, Len(sFile.strSrcName) - 1) + Else + sFile.strDestName = sFile.strSrcName + End If + strFilename = GetFileName(sFile.strDestName) + + ' + 'parse and resolve destination directory + ' + intOffset = intGetNextFldOffset(intAnchor, strLine, gstrCOMMA, CompareBinary) + If intOffset > 0 Then + Dim strInitialDestDir As String + strInitialDestDir = Mid$(strLine, intAnchor, intOffset - intAnchor) + If InStr(strInitialDestDir, gstrWINSYSDESTSYSFILE) Then + sFile.fSystem = True + End If + If InStr(strInitialDestDir, gstrDAODEST) Then + ' + ' Special case for DAO destinations. If there + ' are any DAO files, we need to add special + ' DAO reg info later. gfRegDAO tells us to do that. + ' + gfRegDAO = True + End If + sFile.strDestDir = ResolveDestDir(strInitialDestDir) + If sFile.strDestDir <> "?" Then + sFile.strDestDir = ResolveDir(sFile.strDestDir, False, False) + If sFile.strDestDir = vbNullString Or IsUNCName(sFile.strDestDir) Then + GoTo RSFLError + End If + End If + Else + GoTo RSFLError + End If + + ' + 'file registration information + ' + intAnchor = intOffset + 1 + intOffset = intGetNextFldOffset(intAnchor, strLine, gstrCOMMA, CompareBinary) + If intOffset > 0 Then + sFile.strRegister = Mid$(strLine, intAnchor, intOffset - intAnchor) + Else + GoTo RSFLError + End If + + ' + 'Extract file share type + ' + intAnchor = intOffset + 1 + intOffset = intGetNextFldOffset(intAnchor, strLine, gstrCOMMA, CompareBinary) + sFile.fShared = False + If intOffset > 0 Then + Dim strShareType As String + strShareType = Mid$(strLine, intAnchor, intOffset - intAnchor) + Select Case strShareType + Case mstrPRIVATEFILE + sFile.fShared = False + Case mstrSHAREDFILE + If sFile.fSystem Then + 'A file cannot be both system and shared + GoTo RSFLError + End If + + sFile.fShared = True + Case Else + GoTo RSFLError + 'End Case + End Select + End If + + ' + 'Extract file date and convert to a date variant + ' + intAnchor = intOffset + 1 + intOffset = intGetNextFldOffset(intAnchor, strLine, gstrCOMMA, CompareBinary) + If intOffset > 0 Then + On Error GoTo RSFLError + sFile.varDate = ParseDateTime(Mid$(strLine, intAnchor, intOffset - intAnchor)) + On Error GoTo 0 + End If + + ' + 'Get file size + ' + intAnchor = intOffset + 1 + intOffset = intGetNextFldOffset(intAnchor, strLine, gstrCOMMA, CompareBinary) + If intOffset > 0 Then + sFile.lFileSize = Val(Mid$(strLine, intAnchor, intOffset - intAnchor)) + Else + GoTo RSFLError + End If + + ' + ' Get the version number, otherwise flag that there is no version info + ' + intAnchor = intOffset + 1 + If intOffset > 0 Then + strVersion = Trim(Right$(strLine, Len(strLine) - intOffset)) + If strVersion = "" Then + sFile.sVerInfo.FileVerPart1 = gintNOVERINFO + Else + PackVerInfo strVersion, sFile.sVerInfo + End If + Else + GoTo RSFLError + End If + +RSFLDone: + ReadSetupFileLine = True + Exit Function + +RSFLError: + strMsg = gstrSetupInfoFile & vbLf & vbLf & ResolveResString(resINVLINE) & vbLf & vbLf + strMsg = strMsg & ResolveResString(resSECTNAME) & strsection & vbLf & strLine + MsgError strMsg, vbCritical, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL +End Function + +'----------------------------------------------------------- +' SUB: ReadSetupRemoteLine +' +' Reads the requested 'RemoteX=' key from the specified +' section of the setup information file (SETUP.LST). +' +' IN: [strSection] - name of section to read from SETUP.LST, +' Ex: "Files" +' [intFileNum] - remote number index to read +' +' OUT: [rInfo] - REGINFO Type variable that, after parsing, +' holds the information for the line +' described. +' +' Returns: True if the requested info was successfully read, +' False otherwise +' +' Notes: Remote server lines in the setup information file +' have the following format: +' +' address,protocol,authentication-level +' +' [address] - network address of the server, if known +' [protocol] - network protocol name, if known +' [authentication level] - authentication level (or 0 for default) +'----------------------------------------------------------- +' +Function ReadSetupRemoteLine(ByVal strsection As String, ByVal intFileNum As Integer, rInfo As REGINFO) As Integer + Dim strLine As String + Dim strMsg As String + Dim intAnchor As Integer + Dim intOffset As Integer + Dim fErr As Boolean + + ReadSetupRemoteLine = False + + ' + 'Read the requested line, if unable to read it (strLine = vbnullstring) then exit + ' + strLine = ReadIniFile(gstrSetupInfoFile, strsection, gstrINI_REMOTE & Format$(intFileNum)) + If strLine = vbNullString Then + Exit Function + End If + + ' + 'Get the network address + ' + intAnchor = 1 + fErr = False + If Mid$(strLine, intAnchor, 1) = gstrCOMMA Then + rInfo.strNetworkAddress = "" + Else + rInfo.strNetworkAddress = strExtractFilenameItem(strLine, intAnchor, fErr) + End If + If fErr Then GoTo RSRLError + intAnchor = intAnchor + 1 'Skip past the comma + + ' + 'Get the network protocol + ' + If Mid$(strLine, intAnchor, 1) = gstrCOMMA Then + rInfo.strNetworkProtocol = "" + Else + rInfo.strNetworkProtocol = strExtractFilenameItem(strLine, intAnchor, fErr) + End If + If fErr Then GoTo RSRLError + intAnchor = intAnchor + 1 'Skip past the comma + + ' + 'Get the authentication level (must be a single digit + ' in the range 0..6) + ' + Const intMaxAuthentication = 6 + Dim strAuthentication As String + + strAuthentication = Mid$(strLine, intAnchor, 1) + If Len(strAuthentication) <> 1 Then GoTo RSRLError + If (Asc(strAuthentication) < Asc("0")) Or (Asc(strAuthentication) > Asc("9")) Then GoTo RSRLError + rInfo.intAuthentication = Val(strAuthentication) + If rInfo.intAuthentication > intMaxAuthentication Then GoTo RSRLError + ' + ' Is this dcom or remote automation? + ' + intAnchor = InStr(intAnchor + 1, strLine, gstrCOMMA) + If intAnchor > 0 Then + rInfo.fDCOM = (Trim(Mid$(strLine, intAnchor + 1)) = gstrDCOM) + End If + + ReadSetupRemoteLine = True + Exit Function + +RSRLError: + strMsg = gstrSetupInfoFile & vbLf & vbLf & ResolveResString(resINVLINE) & vbLf & vbLf + strMsg = strMsg & ResolveResString(resSECTNAME) & strsection & vbLf & strLine + MsgError strMsg, vbCritical, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL +End Function + +'----------------------------------------------------------- +' FUNCTION: RegCloseKey +' +' Closes an open registry key. +' +' Returns: True on success, else False. +'----------------------------------------------------------- +' +Function RegCloseKey(ByVal hKey As Long) As Boolean + Dim lResult As Long + + On Error GoTo 0 + lResult = OSRegCloseKey(hKey) + RegCloseKey = (lResult = ERROR_SUCCESS) +End Function + +'----------------------------------------------------------- +' FUNCTION: RegCreateKey +' +' Opens (creates if already exists) a key in the system registry. +' +' IN: [hkey] - The HKEY parent. +' [lpszSubKeyPermanent] - The first part of the subkey of +' 'hkey' that will be created or opened. The application +' removal utility (32-bit only) will never delete any part +' of this subkey. May NOT be an empty string (""). +' [lpszSubKeyRemovable] - The subkey of hkey\lpszSubKeyPermanent +' that will be created or opened. If the application is +' removed (32-bit only), then this entire subtree will be +' deleted, if it is empty at the time of application removal. +' If this parameter is an empty string (""), then the entry +' will not be logged. +' +' OUT: [phkResult] - The HKEY of the newly-created or -opened key. +' +' Returns: True if the key was created/opened OK, False otherwise +' Upon success, phkResult is set to the handle of the key. +' +'----------------------------------------------------------- +Function RegCreateKey(ByVal hKey As Long, ByVal lpszSubKeyPermanent As String, ByVal lpszSubKeyRemovable As String, phkResult As Long) As Boolean + Dim lResult As Long + Dim strHkey As String + Dim fLog As Boolean + Dim strSubKeyFull As String + + On Error GoTo 0 + + If lpszSubKeyPermanent = "" Then + RegCreateKey = False 'Error: lpszSubKeyPermanent must not = "" + Exit Function + End If + + If Left$(lpszSubKeyRemovable, 1) = "\" Then + lpszSubKeyRemovable = Mid$(lpszSubKeyRemovable, 2) + End If + + If lpszSubKeyRemovable = "" Then + fLog = False + Else + fLog = True + End If + + If lpszSubKeyRemovable <> "" Then + strSubKeyFull = lpszSubKeyPermanent & "\" & lpszSubKeyRemovable + Else + strSubKeyFull = lpszSubKeyPermanent + End If + strHkey = strGetHKEYString(hKey) + + If fLog Then + NewAction _ + gstrKEY_REGKEY, _ + """" & strHkey & "\" & lpszSubKeyPermanent & """" _ + & ", " & """" & lpszSubKeyRemovable & """" + End If + + lResult = OSRegCreateKey(hKey, strSubKeyFull, phkResult) + If lResult = ERROR_SUCCESS Then + RegCreateKey = True + If fLog Then + CommitAction + End If + AddHkeyToCache phkResult, strHkey & "\" & strSubKeyFull + Else + RegCreateKey = False + MsgError ResolveResString(resERR_REG), vbOKOnly Or vbExclamation, gstrTitle + If fLog Then + AbortAction + End If + If gfNoUserInput Then + ExitSetup frmSetup1, gintRET_FATAL + End If + End If +End Function + +'----------------------------------------------------------- +' FUNCTION: RegDeleteKey +' +' Deletes an existing key in the system registry. +' +' Returns: True on success, False otherwise +'----------------------------------------------------------- +' +Function RegDeleteKey(ByVal hKey As Long, ByVal lpszSubKey As String) As Boolean + Dim lResult As Long + + On Error GoTo 0 + lResult = OSRegDeleteKey(hKey, lpszSubKey) + RegDeleteKey = (lResult = ERROR_SUCCESS) +End Function + +'----------------------------------------------------------- +' SUB: RegEdit +' +' Calls REGEDIT to add the information in the specifed file +' to the system registry. If your .REG file requires path +' information based upon the destination directory given by +' the user, then you will need to write and call a .REG fixup +' routine before performing the registration below. +' +' WARNING: Use of this functionality under Win32 is not recommended, +' WARNING: because the application removal utility does not support +' WARNING: undoing changes that occur as a result of calling +' WARNING: REGEDIT on an arbitrary .REG file. +' WARNING: Instead, it is recommended that you use the RegCreateKey(), +' WARNING: RegOpenKey(), RegSetStringValue(), etc. functions in +' WARNING: this module instead. These make entries to the +' WARNING: application removal logfile, thus enabling application +' WARNING: removal to undo such changes. +' +' IN: [strRegFile] - name of file containing reg. info +'----------------------------------------------------------- +' +Sub RegEdit(ByVal strRegFile As String) + Const strREGEDIT$ = "REGEDIT /S " + + Dim fShellOK As Integer + + On Error Resume Next + + If FileExists(strRegFile) = True Then + 'Because regedit is a 16-bit application, it does not accept + 'double quotes around the filename. Thus, if strRegFile + 'contains spaces, the only way to get this to work is to pass + 'regedit the short pathname version of the filename. + strRegFile = GetShortPathName(strRegFile) + + fShellOK = SyncShell(strREGEDIT & strRegFile, INFINITE, , True) + frmSetup1.Refresh + Else + MsgError ResolveResString(resCANTFINDREGFILE, "|1", strRegFile), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL + End If + + Err = 0 +End Sub + +' FUNCTION: RegEnumKey +' +' Enumerates through the subkeys of an open registry +' key (returns the "i"th subkey of hkey, if it exists) +' +' Returns: +' ERROR_SUCCESS on success. strSubkeyName is set to the name of the subkey. +' ERROR_NO_MORE_ITEMS if there are no more subkeys (32-bit only) +' anything else - error +' +Function RegEnumKey(ByVal hKey As Long, ByVal i As Long, strKeyName As String) As Long + Dim strResult As String + + strResult = String(300, " ") + RegEnumKey = OSRegEnumKey(hKey, i, strResult, Len(strResult)) + strKeyName = StripTerminator(strResult) +End Function +'----------------------------------------------------------- +' SUB: RegisterDAO +' +' Special keys need to be added to the registry if +' DAO is installed. This routine adds those keys. +' +' Note, these keys will not be uninstalled. +' +Sub RegisterDAO() + Const strDAOKey = "CLSID\{F7A9C6E0-EFF2-101A-8185-00DD01108C6B}" + Const strDAOKeyVal = "OLE 2.0 Link" + Const strDAOInprocHandlerKey = "CLSID\{F7A9C6E0-EFF2-101A-8185-00DD01108C6B}\InprocHandler" + Const strDAOInprocHandlerKeyVal = "ole2.dll" + Const strDAOProgIDKey = "CLSID\{F7A9C6E0-EFF2-101A-8185-00DD01108C6B}\ProgID" + Const strDAOProgIDKeyVal = "Access.OLE2Link" + + Dim hKey As Long + + If Not RegCreateKey(HKEY_CLASSES_ROOT, strDAOKey, "", hKey) Then + ' + ' RegCreateKey displays an error if something goes wrong. + ' + GoTo REGDAOError + End If + ' + ' Set the key's value + ' + If Not RegSetStringValue(hKey, "", strDAOKeyVal, False) Then + ' + ' RegSetStringValue displays an error if something goes wrong. + ' + GoTo REGDAOError + End If + ' + ' Close the key + ' + RegCloseKey hKey + ' + ' Repeat the same process for the other two keys. + ' + If Not RegCreateKey(HKEY_CLASSES_ROOT, strDAOInprocHandlerKey, "", hKey) Then GoTo REGDAOError + If Not RegSetStringValue(hKey, "", strDAOInprocHandlerKeyVal, False) Then GoTo REGDAOError + RegCloseKey hKey + + If Not RegCreateKey(HKEY_CLASSES_ROOT, strDAOProgIDKey, "", hKey) Then GoTo REGDAOError + If Not RegSetStringValue(hKey, "", strDAOProgIDKeyVal, False) Then GoTo REGDAOError + RegCloseKey hKey + + Exit Sub + +REGDAOError: + ' + ' Error messages should have already been displayed. + ' + ExitSetup frmSetup1, gintRET_FATAL + +End Sub +'----------------------------------------------------------- +' SUB: RegisterFiles +' +' Loop through the list (array) of files to register that +' was created in the CopySection function and register +' each file therein as required +' +' Notes: msRegInfo() array created by CopySection function +'----------------------------------------------------------- +' +Sub RegisterFiles() + Const strEXT_EXE$ = "EXE" + + Dim intIdx As Integer + Dim intLastIdx As Integer + Dim strFilename As String + Dim strMsg As String + Dim sDrive As String, sPath As String + On Error Resume Next + + ' + 'Get number of items to register, if none then we can get out of here + ' + intLastIdx = UBound(msRegInfo) + If Err > 0 Then + GoTo RFCleanup + End If + + For intIdx = 0 To intLastIdx + strFilename = msRegInfo(intIdx).strFilename + + If Extension(msRegInfo(intIdx).strRegister) = gsEXT_REG Then + If BaseName(msRegInfo(intIdx).strFilename) = BaseName(msRegInfo(intIdx).strRegister) Then + Kill msRegInfo(intIdx).strRegister + End If + GoTo GoodToGo + End If + Select Case msRegInfo(intIdx).strRegister + Case mstrDLLSELFREGISTER + Dim intDllSelfRegRet As Integer + Dim intErrRes As Integer + Const FAIL_OLE = 2 + Const FAIL_LOAD = 3 + Const FAIL_ENTRY = 4 + Const FAIL_REG = 5 + + NewAction gstrKEY_DLLSELFREGISTER, """" & strFilename & """" + +RetryDllSelfReg: + sDrive = CurDir + sPath = CurDir + ChDrive GetPathName(strFilename) + ChDir GetPathName(strFilename) + Err = 0 + intErrRes = 0 + intDllSelfRegRet = DLLSelfRegister(strFilename) + If (Err <> 49) And (Err <> 0) Then + intErrRes = resCOMMON_CANTREGUNEXPECTED + Else + Select Case intDllSelfRegRet + Case 0 + 'Good - everything's okay + Case FAIL_OLE + intErrRes = resCOMMON_CANTREGOLE + Case FAIL_LOAD + intErrRes = resCOMMON_CANTREGLOAD + Case FAIL_ENTRY + intErrRes = resCOMMON_CANTREGENTRY + Case FAIL_REG + intErrRes = resCOMMON_CANTREGREG + Case Else + intErrRes = resCOMMON_CANTREGUNEXPECTED + 'End Case + End Select + End If + ChDrive sDrive + ChDir sPath + If intErrRes Then + 'There was some kind of error + + 'Log the more technical version of the error message - + 'this would be too confusing to show to the end user + LogError ResolveResString(intErrRes, "|1", strFilename) + + 'Now show a general error message to the user +AskWhatToDo: + strMsg = ResolveResString(resCOMMON_CANTREG, "|1", strFilename) + + Select Case MsgError(strMsg, vbExclamation Or vbAbortRetryIgnore, gstrTitle) + Case vbAbort: + ExitSetup frmSetup1, gintRET_ABORT + GoTo AskWhatToDo + Case vbRetry: + GoTo RetryDllSelfReg + Case vbIgnore: + AbortAction + 'End Case + End Select + Else + CommitAction + End If + Case mstrEXESELFREGISTER + ' + 'Only self register EXE files + ' + If Extension(strFilename) = strEXT_EXE Then + NewAction gstrKEY_EXESELFREGISTER, """" & strFilename & """" + Err = 0 + ExeSelfRegister strFilename + If Err Then + AbortAction + Else + CommitAction + End If + End If + Case mstrREMOTEREGISTER + NewAction gstrKEY_REMOTEREGISTER, """" & strFilename & """" + Err = 0 + RemoteRegister strFilename, msRegInfo(intIdx) + If Err Then + AbortAction + Else + CommitAction + End If + Case mstrTLBREGISTER + NewAction gstrKEY_TLBREGISTER, """" & strFilename & """" + ' + ' Call vb6stkit.dll's RegisterTLB export which calls + ' LoadTypeLib and RegisterTypeLib. + ' +RetryTLBReg: + If Not RegisterTLB(strFilename) Then + ' + ' Registration of the TLB file failed. + ' + LogError ResolveResString(resCOMMON_CANTREGTLB, "|1", strFilename) +TLBAskWhatToDo: + strMsg = ResolveResString(resCOMMON_CANTREGTLB, "|1", strFilename) + + Select Case MsgError(strMsg, vbExclamation Or vbAbortRetryIgnore, gstrTitle) + Case vbAbort: + ExitSetup frmSetup1, gintRET_ABORT + GoTo TLBAskWhatToDo + Case vbRetry: + GoTo RetryTLBReg + Case vbIgnore: + AbortAction + 'End Case + End Select + Else + CommitAction + End If + Case mstrVBLREGISTER + ' + ' RegisterVBLFile takes care of logging, etc. + ' + + RegisterVBLFile strFilename + Case Else + RegEdit msRegInfo(intIdx).strRegister + 'End Case + End Select +GoodToGo: + Next + + + Erase msRegInfo + +RFCleanup: + Err = 0 +End Sub +'----------------------------------------------------------- +' SUB: RegisterLicenses +' +' Find all the setup.lst license entries and register +' them. +'----------------------------------------------------------- +' +Sub RegisterLicenses() + Const strINI_LICENSES = "Licenses" + Const strREG_LICENSES = "Licenses" + Dim iLic As Integer + Dim strLine As String + Dim strLicKey As String + Dim strLicVal As String + Dim iCommaPos As Integer + Dim strMsg As String + Dim hkeyLicenses As Long + Const strCopyright$ = "Licensing: Copying the keys may be a violation of established copyrights." + + 'Make sure the Licenses key exists + If Not RegCreateKey(HKEY_CLASSES_ROOT, strREG_LICENSES, "", hkeyLicenses) Then + 'RegCreateKey will have already displayed an error message + ' if something's wrong + ExitSetup frmSetup1, gintRET_FATAL + End If + If Not RegSetStringValue(hkeyLicenses, "", strCopyright, False) Then + RegCloseKey hkeyLicenses + ExitSetup frmSetup1, gintRET_FATAL + End If + RegCloseKey hkeyLicenses + + iLic = 1 + Do + strLine = ReadIniFile(gstrSetupInfoFile, strINI_LICENSES, gstrINI_LICENSE & iLic) + If strLine = vbNullString Then + ' + ' We've got all the licenses. + ' + Exit Sub + End If + strLine = strUnQuoteString(strLine) + ' + ' We have a license, parse it and register it. + ' + iCommaPos = InStr(strLine, gstrCOMMA) + If iCommaPos = 0 Then + ' + ' Looks like the setup.lst file is corrupt. There should + ' always be a comma in the license information that separates + ' the license key from the license value. + ' + GoTo RLError + End If + strLicKey = Left(strLine, iCommaPos - 1) + strLicVal = Mid(strLine, iCommaPos + 1) + + RegisterLicense strLicKey, strLicVal + + iLic = iLic + 1 + Loop While strLine <> vbNullString + Exit Sub + +RLError: + strMsg = gstrSetupInfoFile & vbLf & vbLf & ResolveResString(resINVLINE) & vbLf & vbLf + strMsg = strMsg & ResolveResString(resSECTNAME) & strINI_LICENSES & vbLf & strLine + MsgError strMsg, vbCritical, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL +End Sub +'----------------------------------------------------------- +' SUB: RegisterLicense +' +' Register license information given the key and default +' value. License information always goes into +' HKEY_CLASSES_ROOT\Licenses. +'----------------------------------------------------------- +' +Sub RegisterLicense(strLicKey As String, strLicVal As String) + Const strREG_LICENSES = "Licenses" + Dim hKey As Long + ' + ' Create the key + ' + If Not RegCreateKey(HKEY_CLASSES_ROOT, strREG_LICENSES, strLicKey, hKey) Then + ' + ' RegCreateKey displays an error if something goes wrong. + ' + GoTo REGError + End If + ' + ' Set the key's value + ' + If Not RegSetStringValue(hKey, "", strLicVal, True) Then + ' + ' RegSetStringValue displays an error if something goes wrong. + ' + GoTo REGError + End If + ' + ' Close the key + ' + RegCloseKey hKey + + Exit Sub + +REGError: + ' + ' Error messages should have already been displayed. + ' + ExitSetup frmSetup1, gintRET_FATAL +End Sub +'----------------------------------------------------------- +' SUB: RegisterVBLFile +' +' Register license information in a VB License (vbl) file. +' Basically, parse out the license info and then call +' RegisterLicense. +' +' If strVBLFile is not a valid VBL file, nothing is +' registered. +'----------------------------------------------------------- +' +Sub RegisterVBLFile(strVBLFile As String) + Dim strLicKey As String + Dim strLicVal As String + + GetLicInfoFromVBL strVBLFile, strLicKey, strLicVal + If strLicKey <> vbNullString Then + RegisterLicense strLicKey, strLicVal + End If +End Sub + +'---------------------------------------------------------- +' SUB: RegisterAppRemovalEXE +' +' Registers the application removal program (Windows 95 only) +' or else places an icon for it in the application directory. +' +' Returns True on success, False otherwise. +'---------------------------------------------------------- +Function RegisterAppRemovalEXE(ByVal strAppRemovalEXE As String, ByVal strAppRemovalLog As String, ByVal strGroupName As String) As Boolean + On Error GoTo Err + + Const strREGSTR_VAL_AppRemoval_APPNAMELINE = "ApplicationName" + Const strREGSTR_VAL_AppRemoval_DISPLAYNAME = "DisplayName" + Const strREGSTR_VAL_AppRemoval_COMMANDLINE = "UninstallString" + Const strREGSTR_VAL_AppRemoval_APPTOUNINSTALL = "AppToUninstall" + + + Dim strREGSTR_PATH_UNINSTALL As String + strREGSTR_PATH_UNINSTALL = RegPathWinCurrentVersion() & "\Uninstall" + + 'The command-line for the application removal executable is simply the path + 'for the installation logfile + Dim strAppRemovalCmdLine As String + strAppRemovalCmdLine = GetAppRemovalCmdLine(strAppRemovalEXE, strAppRemovalLog, vbNullString, False, APPREMERR_NONE) + ' + ' Make sure that the Removal command line (including path, filename, commandline args, etc. + ' is not longer than the max allowed, which is _MAX_PATH. + ' + If Not fCheckFNLength(strAppRemovalCmdLine) Then + Dim strMsg As String + strMsg = ResolveResString(resCANTCREATEICONPATHTOOLONG) & vbLf & vbLf & ResolveResString(resCHOOSENEWDEST) & vbLf & vbLf & strAppRemovalCmdLine + Call MsgError(strMsg, vbOKOnly, gstrSETMSG) + ExitSetup frmCopy, gintRET_FATAL + Exit Function + End If + ' + ' Create registry entries to tell Windows where the app removal executable is, + ' how it should be displayed to the user, and what the command-line arguments are + ' + Dim iAppend As Integer + Dim fOk As Boolean + Dim hkeyAppRemoval As Long + Dim hkeyOurs As Long + Dim i As Integer + + 'Go ahead and create a key to the main Uninstall branch + If Not RegCreateKey(HKEY_LOCAL_MACHINE, strREGSTR_PATH_UNINSTALL, "", hkeyAppRemoval) Then + GoTo Err + End If + + 'We need a unique key. This key is never shown to the end user. We will use a key of + 'the form 'ST5UNST #xxx' + Dim strAppRemovalKey As String + Dim strAppRemovalKeyBase As String + Dim hkeyTest As Long + strAppRemovalKeyBase = mstrFILE_APPREMOVALLOGBASE$ & " #" + iAppend = 1 + + Do + strAppRemovalKey = strAppRemovalKeyBase & Format(iAppend) + If RegOpenKey(hkeyAppRemoval, strAppRemovalKey, hkeyTest) Then + 'This key already exists. But we need a unique key. + RegCloseKey hkeyTest + Else + 'We've found a key that doesn't already exist. Use it. + Exit Do + End If + + iAppend = iAppend + 1 + Loop + + ' + ' We also need a unique displayname. This name is + ' the only means the user has to identify the application + ' to remove + ' + Dim strDisplayName As String + strDisplayName = gstrAppName 'First try... Application name + If Not IsDisplayNameUnique(hkeyAppRemoval, strDisplayName) Then + 'Second try... Add path + strDisplayName = strDisplayName & " (" & gstrDestDir & ")" + If Not IsDisplayNameUnique(hkeyAppRemoval, strDisplayName) Then + 'Subsequent tries... Append a unique integer + Dim strDisplayNameBase As String + + strDisplayNameBase = strDisplayName + iAppend = 3 + Do + strDisplayName = strDisplayNameBase & " #" & Format(iAppend) + If IsDisplayNameUnique(hkeyAppRemoval, strDisplayName) Then + Exit Do + Else + iAppend = iAppend + 1 + End If + Loop + End If + End If + + 'Go ahead and fill in entries for the app removal executable + If Not RegCreateKey(hkeyAppRemoval, strAppRemovalKey, "", hkeyOurs) Then + GoTo Err + End If + If Not RegSetStringValue(hkeyOurs, strREGSTR_VAL_AppRemoval_APPNAMELINE, gstrAppExe, False) Then + GoTo Err + End If + If Not RegSetStringValue(hkeyOurs, strREGSTR_VAL_AppRemoval_DISPLAYNAME, strDisplayName, False) Then + GoTo Err + End If + If Not RegSetStringValue(hkeyOurs, strREGSTR_VAL_AppRemoval_COMMANDLINE, strAppRemovalCmdLine, False) Then + GoTo Err + End If + If gstrAppToUninstall = vbNullString Then gstrAppToUninstall = gstrAppExe + If Not RegSetStringValue(hkeyOurs, strREGSTR_VAL_AppRemoval_APPTOUNINSTALL, gstrAppToUninstall, False) Then + GoTo Err + End If + If Not TreatAsWin95() Then + ' + ' Under NT3.51, we simply place an icon to the app removal EXE in the program manager + ' + If fMainGroupWasCreated Then + CreateProgManItem frmSetup1, strGroupName, strAppRemovalCmdLine, ResolveResString(resAPPREMOVALICONNAME, "|1", gstrAppName) + Else + 'If you get this message, it means that you incorrectly customized Form_Load(). + 'Under 32-bits and NT 3.51, a Program Manager group must always be created. + MsgError ResolveResString(resNOFOLDERFORICON, "|1", strAppRemovalEXE), vbOKOnly Or vbExclamation, gstrTitle + ExitSetup frmSetup1, gintRET_FATAL + End If + End If + + RegCloseKey hkeyAppRemoval + RegCloseKey hkeyOurs + + RegisterAppRemovalEXE = True + Exit Function + +Err: + If hkeyOurs Then + RegCloseKey hkeyOurs + RegDeleteKey hkeyAppRemoval, strAppRemovalKey + End If + If hkeyAppRemoval Then + RegCloseKey hkeyAppRemoval + End If + + RegisterAppRemovalEXE = False + Exit Function +End Function + +'----------------------------------------------------------- +' FUNCTION: RegOpenKey +' +' Opens an existing key in the system registry. +' +' Returns: True if the key was opened OK, False otherwise +' Upon success, phkResult is set to the handle of the key. +'----------------------------------------------------------- +' +Function RegOpenKey(ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Boolean + Dim lResult As Long + Dim strHkey As String + + On Error GoTo 0 + + strHkey = strGetHKEYString(hKey) + + lResult = OSRegOpenKey(hKey, lpszSubKey, phkResult) + If lResult = ERROR_SUCCESS Then + RegOpenKey = True + AddHkeyToCache phkResult, strHkey & "\" & lpszSubKey + Else + RegOpenKey = False + End If +End Function +'---------------------------------------------------------- +' FUNCTION: RegPathWinPrograms +' +' Returns the name of the registry key +' "\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" +'---------------------------------------------------------- +Function RegPathWinPrograms() As String + RegPathWinPrograms = RegPathWinCurrentVersion() & "\Explorer\Shell Folders" +End Function + +'---------------------------------------------------------- +' FUNCTION: RegPathWinCurrentVersion +' +' Returns the name of the registry key +' "\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" +'---------------------------------------------------------- +Function RegPathWinCurrentVersion() As String + RegPathWinCurrentVersion = "SOFTWARE\Microsoft\Windows\CurrentVersion" +End Function + +'---------------------------------------------------------- +' FUNCTION: RegQueryIntValue +' +' Retrieves the integer data for a named +' (strValueName = name) or unnamed (strValueName = "") +' value within a registry key. If the named value +' exists, but its data is not a REG_DWORD, this function +' fails. +' +' NOTE: There is no 16-bit version of this function. +' +' Returns: True on success, else False. +' On success, lData is set to the numeric data value +' +'---------------------------------------------------------- +Function RegQueryNumericValue(ByVal hKey As Long, ByVal strValueName As String, lData As Long) As Boolean + Dim lResult As Long + Dim lValueType As Long + Dim lBuf As Long + Dim lDataBufSize As Long + + RegQueryNumericValue = False + + On Error GoTo 0 + + ' Get length/data type + lDataBufSize = 4 + + lResult = OSRegQueryValueEx(hKey, strValueName, 0&, lValueType, lBuf, lDataBufSize) + If lResult = ERROR_SUCCESS Then + If lValueType = REG_DWORD Then + lData = lBuf + RegQueryNumericValue = True + End If + End If +End Function + +' FUNCTION: RegQueryStringValue +' +' Retrieves the string data for a named +' (strValueName = name) or unnamed (strValueName = "") +' value within a registry key. If the named value +' exists, but its data is not a string, this function +' fails. +' +' NOTE: For 16-bits, strValueName MUST be "" (but the +' NOTE: parameter is left in for source code compatability) +' +' Returns: True on success, else False. +' On success, strData is set to the string data value +' +Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String, strData As String) As Boolean + Dim lResult As Long + Dim lValueType As Long + Dim strBuf As String + Dim lDataBufSize As Long + + RegQueryStringValue = False + On Error GoTo 0 + ' Get length/data type + lResult = OSRegQueryValueEx(hKey, strValueName, 0&, lValueType, ByVal 0&, lDataBufSize) + If lResult = ERROR_SUCCESS Then + If lValueType = REG_SZ Then + strBuf = String(lDataBufSize, " ") + lResult = OSRegQueryValueEx(hKey, strValueName, 0&, 0&, ByVal strBuf, lDataBufSize) + If lResult = ERROR_SUCCESS Then + RegQueryStringValue = True + strData = StripTerminator(strBuf) + End If + End If + End If +End Function + +'---------------------------------------------------------- +' FUNCTION: RegQueryRefCount +' +' Retrieves the data inteded as a reference count for a +' particular value within a registry key. Although +' REG_DWORD is the preferred way of storing reference +' counts, it is possible that some installation programs +' may incorrect use a string or binary value instead. +' This routine accepts the data whether it is a string, +' a binary value or a DWORD (Long). +' +' NOTE: There is no 16-bit version of this function. +' +' Returns: True on success, else False. +' On success, lrefcount is set to the numeric data value +' +'---------------------------------------------------------- +Function RegQueryRefCount(ByVal hKey As Long, ByVal strValueName As String, lRefCount As Long) As Boolean + Dim lResult As Long + Dim lValueType As Long + Dim lBuf As Long + Dim lDataBufSize As Long + + RegQueryRefCount = False + + On Error GoTo 0 + + ' Get length/data type + lDataBufSize = 4 + + lResult = OSRegQueryValueEx(hKey, strValueName, 0&, lValueType, lBuf, lDataBufSize) + If lResult = ERROR_SUCCESS Then + Select Case lValueType + Case REG_DWORD + lRefCount = lBuf + RegQueryRefCount = True + Case REG_BINARY + If lDataBufSize = 4 Then + lRefCount = lBuf + RegQueryRefCount = True + End If + Case REG_SZ + Dim strRefCount As String + + If RegQueryStringValue(hKey, strValueName, strRefCount) Then + lRefCount = Val(strRefCount) + RegQueryRefCount = True + End If + 'End Case + End Select + End If +End Function + +' FUNCTION: RegSetNumericValue +' +' Associates a named (strValueName = name) or unnamed (strValueName = "") +' value with a registry key. +' +' If fLog is missing or is True, then this action is logged in the logfile, +' and the value will be deleted by the application removal utility if the +' user choose to remove the installed application. +' +' NOTE: There is no 16-bit version of this function. +' +' Returns: True on success, else False. +' +Function RegSetNumericValue(ByVal hKey As Long, ByVal strValueName As String, ByVal lData As Long, Optional ByVal fLog As Boolean = True) As Boolean + Dim lResult As Long + Dim strHkey As String + + On Error GoTo 0 + + strHkey = strGetHKEYString(hKey) + + If fLog Then + NewAction _ + gstrKEY_REGVALUE, _ + """" & strHkey & """" _ + & ", " & """" & strValueName & """" + End If + + lResult = OSRegSetValueNumEx(hKey, strValueName, 0, REG_DWORD, lData, 4) + If lResult = ERROR_SUCCESS Then + RegSetNumericValue = True + If fLog Then + CommitAction + End If + Else + RegSetNumericValue = False + MsgError ResolveResString(resERR_REG), vbOKOnly Or vbExclamation, gstrTitle + If fLog Then + AbortAction + End If + If gfNoUserInput Then + ExitSetup frmSetup1, gintRET_FATAL + End If + End If +End Function + +' FUNCTION: RegSetStringValue +' +' Associates a named (strValueName = name) or unnamed (strValueName = "") +' value with a registry key. +' +' If fLog is missing or is True, then this action is logged in the +' logfile, and the value will be deleted by the application removal +' utility if the user choose to remove the installed application. +' +' Returns: True on success, else False. +' +Function RegSetStringValue(ByVal hKey As Long, ByVal strValueName As String, ByVal strData As String, Optional ByVal fLog As Boolean = True) As Boolean + Dim lResult As Long + Dim strHkey As String + + On Error GoTo 0 + + If hKey = 0 Then + Exit Function + End If + + strHkey = strGetHKEYString(hKey) + + If fLog Then + NewAction _ + gstrKEY_REGVALUE, _ + """" & strHkey & """" _ + & ", " & """" & strValueName & """" + End If + + lResult = OSRegSetValueEx(hKey, strValueName, 0&, REG_SZ, ByVal strData, LenB(StrConv(strData, vbFromUnicode)) + 1) + 'lResult = OSRegSetValueEx(hKey, strValueName, 0&, REG_SZ, ByVal strData, Len(strData) + 1) + + If lResult = ERROR_SUCCESS Then + RegSetStringValue = True + If fLog Then + CommitAction + End If + Else + RegSetStringValue = False + MsgError ResolveResString(resERR_REG), vbOKOnly Or vbExclamation, gstrTitle + If fLog Then + AbortAction + End If + If gfNoUserInput Then + ExitSetup frmSetup1, gintRET_FATAL + End If + End If +End Function + +'----------------------------------------------------------- +' SUB: RemoteRegister +' +' Synchronously run the client registration utility on the +' given remote server registration file in order to set it +' up properly in the registry. +' +' IN: [strFileName] - .EXE file to register + +'----------------------------------------------------------- +' +Sub RemoteRegister(ByVal strFilename As String, rInfo As REGINFO) + Const strClientRegistrationUtility$ = "CLIREG32.EXE" + Const strAddressSwitch = " /s " + Const strProtocolSwitch = " /p " + Const strSilentSwitch = " /q " + Const strNoLogoSwitch = " /nologo " + Const strAuthenticationSwitch = " /a " + Const strTypelibSwitch = " /t " + Const strDCOMSwitch = " /d " + Const strEXT_REMOTE$ = "VBR" + Const strEXT_REMOTETLB$ = "TLB" + + Dim strAddress As String + Dim strProtocol As String + Dim intAuthentication As Integer + Dim strCmdLine As String + Dim fShell As Integer + Dim strMatchingTLB As String + Dim fDCOM As Boolean + + 'Find the name of the matching typelib file. This should have already + 'been installed to the same directory as the .VBR file. + strMatchingTLB = strFilename + If Right$(strMatchingTLB, Len(strEXT_REMOTE)) = strEXT_REMOTE Then + strMatchingTLB = Left$(strMatchingTLB, Len(strMatchingTLB) - Len(strEXT_REMOTE)) + End If + strMatchingTLB = strMatchingTLB & strEXT_REMOTETLB + + strAddress = rInfo.strNetworkAddress + strProtocol = rInfo.strNetworkProtocol + intAuthentication = rInfo.intAuthentication + fDCOM = rInfo.fDCOM + frmRemoteServerDetails.GetServerDetails strFilename, strAddress, strProtocol, fDCOM + frmMessage.Refresh + strCmdLine = _ + strClientRegistrationUtility _ + & strAddressSwitch & """" & strAddress & """" _ + & IIf(fDCOM, " ", strProtocolSwitch & strProtocol) _ + & IIf(fDCOM, " ", strAuthenticationSwitch & Format$(intAuthentication) & " ") _ + & strNoLogoSwitch _ + & strTypelibSwitch & """" & strMatchingTLB & """" & " " _ + & IIf(fDCOM, strDCOMSwitch, "") _ + & IIf(gfNoUserInput, strSilentSwitch, "") _ + & """" & strFilename & """" + + ' + 'Synchronously shell out and run the utility with the correct switches + ' + fShell = SyncShell(strCmdLine, INFINITE, , False) + + If Not fShell Then + MsgError ResolveResString(resCANTRUNPROGRAM, "|1", strClientRegistrationUtility), vbOKOnly Or vbExclamation, gstrTitle, gintRET_FATAL + ExitSetup frmSetup1, gintRET_FATAL + End If +End Sub + +'----------------------------------------------------------- +' SUB: RemoveShellLink +' +' Removes a link in either Start>Programs or any of its + +' immediate subfolders in the Windows 95 shell. +' +' IN: [strFolderName] - text name of the immediate folder +' in which the link to be removed +' currently exists, or else the +' empty string ("") to indicate that +' the link can be found directly in +' the Start>Programs menu. +' [strLinkName] - text caption for the link +' +' This action is never logged in the app removal logfile. +' +' PRECONDITION: strFolderName has already been created and is +' an immediate subfolder of Start>Programs, if it +' is not equal to "" +'----------------------------------------------------------- +' +Sub RemoveShellLink(ByVal strFolderName As String, ByVal strLinkName As String) + Dim fSuccess As Boolean + + ReplaceDoubleQuotes strFolderName + ReplaceDoubleQuotes strLinkName + + fSuccess = OSfRemoveShellLink(strFolderName, strLinkName) +End Sub + +'----------------------------------------------------------- +' FUNCTION: ResolveDestDir +' +' Given a destination directory string, equate any macro +' portions of the string to their runtime determined +' actual locations and return a string reflecting the +' actual path. +' +' IN: [strDestDir] - string containing directory macro info +' and/or actual dir path info +' +' [fAssumeDir] - boolean that if true, causes this routine +' to assume that strDestDir contains a dir +' path. If a directory isn't given it will +' make it the application path. If false, +' this routine will return strDestDir as +' is after performing expansion. Set this +' to False when you are not sure it is a +' directory but you want to expand macros +' if it contains any. E.g., If this is a +' command line parameter, you can't be +' certain if it refers to a path. In this +' case, set fAssumeDir = False. Default +' is True. +' +' Return: A string containing the resolved dir name +'----------------------------------------------------------- +' +Function ResolveDestDir(ByVal strDestDir As String, Optional fAssumeDir As Boolean = True) As String + Const strMACROSTART$ = "$(" + Const strMACROEND$ = ")" + + Dim intPos As Integer + Dim strResolved As String + Dim hKey As Long + Dim strPathsKey As String + Dim fQuoted As Boolean + + strPathsKey = RegPathWinCurrentVersion() + strDestDir = Trim(strDestDir) + ' + ' If strDestDir is quoted when passed to this routine, it + ' should be quoted when it's returned. The quotes need + ' to be temporarily removed, though, for processing. + ' + If Left(strDestDir, 1) = gstrQUOTE Then + fQuoted = True + strDestDir = strUnQuoteString(strDestDir) + End If + ' + ' We take the first part of destdir, and if its $( then we need to get the portion + ' of destdir up to and including the last paren. We then test against this for + ' macro expansion. If no ) is found after finding $(, then must assume that it's + ' just a normal file name and do no processing. Only enter the case statement + ' if strDestDir starts with $(. + ' + If Left$(strDestDir, 2) = strMACROSTART Then + intPos = InStr(strDestDir, strMACROEND) + + Select Case Left$(strDestDir, intPos) + Case gstrAPPDEST + If gstrDestDir <> vbNullString Then + + strResolved = gstrDestDir + Else + strResolved = "?" + End If + Case gstrWINDEST + strResolved = gstrWinDir + Case gstrFONTDEST + strResolved = gstrFontDir + Case gstrWINSYSDEST, gstrWINSYSDESTSYSFILE + strResolved = gstrWinSysDir + Case gstrPROGRAMFILES + If TreatAsWin95() Then + Const strProgramFilesKey = "ProgramFilesDir" + + If RegOpenKey(HKEY_LOCAL_MACHINE, strPathsKey, hKey) Then + RegQueryStringValue hKey, strProgramFilesKey, strResolved + RegCloseKey hKey + End If + End If + + If strResolved = "" Then + 'If not otherwise set, let strResolved be the root of the first fixed disk + strResolved = strRootDrive() + End If + Case gstrCOMMONFILES + 'First determine the correct path of Program Files\Common Files, if under Win95 + strResolved = strGetCommonFilesPath() + If strResolved = "" Then + 'If not otherwise set, let strResolved be the Windows directory + strResolved = gstrWinDir + End If + Case gstrCOMMONFILESSYS + 'First determine the correct path of Program Files\Common Files, if under Win95 + Dim strCommonFiles As String + + strCommonFiles = strGetCommonFilesPath() + If strCommonFiles <> "" Then + 'Okay, now just add \System, and we're done + strResolved = strCommonFiles & "System\" + Else + 'If Common Files isn't in the registry, then map the + 'entire macro to the Windows\{system,system32} directory + strResolved = gstrWinSysDir + End If + Case gstrDAODEST + strResolved = strGetDAOPath() + Case Else + intPos = 0 + 'End Case + End Select + End If + + If intPos <> 0 Then + AddDirSep strResolved + End If + + If fAssumeDir = True Then + If intPos = 0 Then + ' + 'if no drive spec, and doesn't begin with any root path indicator ("\"), + 'then we assume that this destination is relative to the app dest dir + ' + If Mid$(strDestDir, 2, 1) <> gstrCOLON Then + If Left$(strDestDir, 1) <> gstrSEP_DIR Then + strResolved = gstrDestDir + End If + End If + Else + If Mid$(strDestDir, intPos + 1, 1) = gstrSEP_DIR Then + intPos = intPos + 1 + End If + End If + End If + + If fQuoted = True Then + ResolveDestDir = strQuoteString(strResolved & Mid$(strDestDir, intPos + 1), True, False) + Else + ResolveDestDir = strResolved & Mid$(strDestDir, intPos + 1) + End If +End Function +'----------------------------------------------------------- +' FUNCTION: ResolveDestDirs +' +' Given a space delimited string, this routine finds all +' Destination directory macros and expands them by making +' repeated calls to ResolveDestDir. See ResolveDestDir. +' +' Note that the macro must immediately follow a space (or +' a space followed by a quote) delimiter or else it will +' be ignored. +' +' Note that this routine does not assume that each item +' in the delimited string is actually a directory path. +' Therefore, the last parameter in the call to ResolveDestDir, +' below, is false. +' +' IN: [str] - string containing directory macro(s) info +' and/or actual dir path info +' +' Return: str with destdir macros expanded. +'----------------------------------------------------------- +' +Function ResolveDestDirs(str As String) + Dim intAnchor As Integer + Dim intOffset As Integer + Dim strField As String + Dim strExpField As String + Dim strExpanded As String + + If Len(Trim(strUnQuoteString(str))) = 0 Then + ResolveDestDirs = str + Exit Function + End If + + intAnchor = 1 + strExpanded = "" + + Do + intOffset = intGetNextFldOffset(intAnchor, str, " ") + If intOffset = 0 Then intOffset = Len(str) + 1 + strField = Mid(str, intAnchor, intOffset - intAnchor) + strExpField = ResolveDestDir(strField, False) + strExpanded = strExpanded & strExpField & " " + intAnchor = intOffset + 1 + Loop While intAnchor < Len(str) + + ResolveDestDirs = Trim(strExpanded) +End Function +'----------------------------------------------------------- +' FUNCTION: ResolveDir +' +' Given a pathname, resolve it to its smallest form. If +' the pathname is invalid, then optionally warn the user. +' +' IN: [strPathName] - pathname to resolve +' [fMustExist] - enforce that the path actually exists +' [fWarn] - If True, warn user upon invalid path +' +' Return: A string containing the resolved dir name +'----------------------------------------------------------- +' +Function ResolveDir(ByVal strPathName As String, fMustExist As Integer, fWarn As Integer) As String + Dim strMsg As String + Dim fInValid As Integer + Dim strUnResolvedPath As String + Dim strResolvedPath As String + Dim strIgnore As String + Dim cbResolved As Long + + On Error Resume Next + + fInValid = False + ' + 'If the pathname is a UNC name (16-bit only), or if it's in actuality a file name, then it's invalid + ' + If FileExists(strPathName) = True Then + fInValid = True + GoTo RDContinue + End If + + strUnResolvedPath = strPathName + + If InStr(3, strUnResolvedPath, gstrSEP_DIR) > 0 Then + + strResolvedPath = Space(gintMAX_PATH_LEN * 2) + cbResolved = GetFullPathName(strUnResolvedPath, gintMAX_PATH_LEN, strResolvedPath, strIgnore) + If cbResolved = 0 Then + ' + ' The path couldn't be resolved. If we can actually + ' switch to the directory we want, continue anyway. + ' + ChDir strUnResolvedPath + AddDirSep strUnResolvedPath + If Err > 0 Then + Err = 0 + ChDir strUnResolvedPath + If Err > 0 Then + fInValid = True + Else + strResolvedPath = strUnResolvedPath + End If + Else + strResolvedPath = strUnResolvedPath + End If + Else + ' + ' GetFullPathName returned us a NULL terminated string in + ' strResolvedPath. Remove the NULL. + ' + strResolvedPath = StripTerminator(strResolvedPath) + If CheckDrive(strResolvedPath, gstrTitle) = False Then + fInValid = True + Else + AddDirSep strResolvedPath + If fMustExist = True Then + Err = 0 + + Dim strDummy As String + strDummy = Dir$(strResolvedPath & "*.*") + + If Err > 0 Then + strMsg = ResolveResString(resNOTEXIST) & vbLf & vbLf + fInValid = True + End If + End If + End If + End If + Else + fInValid = True + End If + +RDContinue: + If fInValid = True Then + If fWarn = True Then + strMsg = strMsg & ResolveResString(resDIRSPECIFIED) & vbLf & vbLf & strPathName & vbLf & vbLf + strMsg = strMsg & ResolveResString(resDIRINVALID) + MsgError strMsg, vbOKOnly Or vbExclamation, ResolveResString(resDIRINVNAME) + If gfNoUserInput Then + ExitSetup frmSetup1, gintRET_FATAL + End If + End If + + ResolveDir = vbNullString + Else + ResolveDir = strResolvedPath + End If + + Err = 0 +End Function + +'----------------------------------------------------------- +' SUB: RestoreProgMan +' +' Restores Windows Program Manager +'----------------------------------------------------------- +' +Sub RestoreProgMan() + Const strPMTITLE$ = "Program Manager" + + On Error Resume Next + + 'Try the localized name first + AppActivate ResolveResString(resPROGRAMMANAGER) + + If Err Then + 'If that doesn't work, try the English name + AppActivate strPMTITLE + End If + + Err = 0 +End Sub + +'----------------------------------------------------------- +' SUB: ShowPathDialog +' +' Display form to allow user to get either a source or +' destination path +' +' IN: [strPathRequest] - determines whether to ask for the +' source or destination pathname. +' gstrDIR_SRC for source path +' gstrDIR_DEST for destination path +'----------------------------------------------------------- +' +Sub ShowPathDialog(ByVal strPathRequest As String) + frmSetup1.Tag = strPathRequest + + ' + 'frmPath.Form_Load() reads frmSetup1.Tag to determine whether + 'this is a request for the source or destination path + ' + frmPath.Show vbModal + + If strPathRequest = gstrDIR_SRC Then + gstrSrcPath = frmSetup1.Tag + Else + If gfRetVal = gintRET_CONT Then + gstrDestDir = frmSetup1.Tag + End If + End If +End Sub + +'----------------------------------------------------------- +' FUNCTION: strExtractFilenameArg +' +' Extracts a quoted or unquoted filename from a string +' containing command-line arguments +' +' IN: [str] - string containing a filename. This filename +' begins at the first character, and continues +' to the end of the string or to the first space +' or switch character, or, if the string begins +' with a double quote, continues until the next +' double quote +' OUT: Returns the filename, without quotes +' str is set to be the remainder of the string after +' the filename and quote (if any) +' +'----------------------------------------------------------- +' +Function strExtractFilenameArg(str As String, fErr As Boolean) + Dim strFilename As String + + str = Trim$(str) + + Dim iEndFilenamePos As Integer + If Left$(str, 1) = """" Then + ' Filenames is surrounded by quotes + iEndFilenamePos = InStr(2, str, """") ' Find matching quote + If iEndFilenamePos > 0 Then + strFilename = Mid$(str, 2, iEndFilenamePos - 2) + str = Right$(str, Len(str) - iEndFilenamePos) + Else + fErr = True + Exit Function + End If + Else + ' Filename continues until next switch or space or quote + Dim iSpacePos As Integer + Dim iSwitch1 As Integer + Dim iSwitch2 As Integer + Dim iQuote As Integer + + iSpacePos = InStr(str, " ") + iSwitch2 = InStr(str, gstrSwitchPrefix2) + iQuote = InStr(str, """") + + If iSpacePos = 0 Then iSpacePos = Len(str) + 1 + If iSwitch1 = 0 Then iSwitch1 = Len(str) + 1 + If iSwitch2 = 0 Then iSwitch2 = Len(str) + 1 + If iQuote = 0 Then iQuote = Len(str) + 1 + + iEndFilenamePos = iSpacePos + If iSwitch2 < iEndFilenamePos Then iEndFilenamePos = iSwitch2 + If iQuote < iEndFilenamePos Then iEndFilenamePos = iQuote + + strFilename = Left$(str, iEndFilenamePos - 1) + If iEndFilenamePos > Len(str) Then + str = "" + Else + str = Right(str, Len(str) - iEndFilenamePos + 1) + End If + End If + + strFilename = Trim$(strFilename) + If strFilename = "" Then + fErr = True + Exit Function + End If + + fErr = False + strExtractFilenameArg = strFilename + str = Trim$(str) +End Function + + + +'----------------------------------------------------------- +' SUB: UpdateStatus +' +' "Fill" (by percentage) inside the PictureBox and also +' display the percentage filled +' +' IN: [pic] - PictureBox used to bound "fill" region +' [sngPercent] - Percentage of the shape to fill +' [fBorderCase] - Indicates whether the percentage +' specified is a "border case", i.e. exactly 0% +' or exactly 100%. Unless fBorderCase is True, +' the values 0% and 100% will be assumed to be +' "close" to these values, and 1% and 99% will +' be used instead. +' +' Notes: Set AutoRedraw property of the PictureBox to True +' so that the status bar and percentage can be auto- +' matically repainted if necessary +'----------------------------------------------------------- +' +Sub UpdateStatus(pic As PictureBox, ByVal sngPercent As Single, Optional ByVal fBorderCase As Boolean = False) + Dim strPercent As String + Dim intX As Integer + Dim intY As Integer + Dim intWidth As Integer + Dim intHeight As Integer + + 'For this to work well, we need a white background and any color foreground (blue) + Const colBackground = &HFFFFFF ' white + Const colForeground = &H800000 ' dark blue + + pic.ForeColor = colForeground + pic.BackColor = colBackground + + ' + 'Format percentage and get attributes of text + ' + Dim intPercent + intPercent = Int(100 * sngPercent + 0.5) + + 'Never allow the percentage to be 0 or 100 unless it is exactly that value. This + 'prevents, for instance, the status bar from reaching 100% until we are entirely done. + If intPercent = 0 Then + If Not fBorderCase Then + intPercent = 1 + End If + ElseIf intPercent = 100 Then + If Not fBorderCase Then + intPercent = 99 + End If + End If + + strPercent = Format$(intPercent) & "%" + intWidth = pic.TextWidth(strPercent) + intHeight = pic.TextHeight(strPercent) + + ' + 'Now set intX and intY to the starting location for printing the percentage + ' + intX = pic.Width / 2 - intWidth / 2 + intY = pic.Height / 2 - intHeight / 2 + + ' + 'Need to draw a filled box with the pics background color to wipe out previous + 'percentage display (if any) + ' + pic.DrawMode = 13 ' Copy Pen + pic.Line (intX, intY)-Step(intWidth, intHeight), pic.BackColor, BF + + ' + 'Back to the center print position and print the text + ' + pic.CurrentX = intX + pic.CurrentY = intY + pic.Print strPercent + + ' + 'Now fill in the box with the ribbon color to the desired percentage + 'If percentage is 0, fill the whole box with the background color to clear it + 'Use the "Not XOR" pen so that we change the color of the text to white + 'wherever we touch it, and change the color of the background to blue + 'wherever we touch it. + ' + pic.DrawMode = 10 ' Not XOR Pen + If sngPercent > 0 Then + pic.Line (0, 0)-(pic.Width * sngPercent, pic.Height), pic.ForeColor, BF + Else + pic.Line (0, 0)-(pic.Width, pic.Height), pic.BackColor, BF + End If + + pic.Refresh +End Sub + +'----------------------------------------------------------- +' FUNCTION: WriteAccess +' +' Determines whether there is write access to the specified +' directory. +' +' IN: [strDirName] - directory to check for write access +' +' Returns: True if write access, False otherwise +'----------------------------------------------------------- +' +Function WriteAccess(ByVal strDirName As String) As Integer + Dim intFileNum As Integer + + On Error Resume Next + + AddDirSep strDirName + + intFileNum = FreeFile + Open strDirName & mstrCONCATFILE For Output As intFileNum + + WriteAccess = IIf(Err, False, True) + + Close intFileNum + + Kill strDirName & mstrCONCATFILE + + Err = 0 +End Function +'----------------------------------------------------------- +' FUNCTION: WriteMIF +' +' If this is a SMS install, this routine writes the +' failed MIF status file if something goes wrong or +' a successful MIF if everything installs correctly. +' +' The MIF file requires a special format specified +' by SMS. Currently, this routine implements the +' minimum requirements. The hardcoded strings below +' that are written to the MIF should be written +' character by character as they are; except that +' status message should change depending on the +' circumstances of the install. DO NOT LOCALIZE +' anything except the status message. +' +' IN: [strMIFFilename] - The name of the MIF file. +' Passed in to setup1 by +' setup.exe. It is probably +' named .mif where +' is the name of the +' application you are installing. +' +' [fStatus] - False to write a failed MIF (i.e. setup +' failed); True to write a successful MIF. +' +' [strSMSDescription] - This is the description string +' to be written to the MIF file. +' It cannot be longer than 255 +' characters and cannot contain +' carriage returns and/or line +' feeds. This routine will +' enforce these requirements. +' +' Note, when running in SMS mode, there is no other way +' to display a message to the user than to write it to +' the MIF file. Displaying a MsgBox will cause the +' computer to appear as if it has hung. Therefore, this +' routine makes no attempt to display an error message. +' +'----------------------------------------------------------- +' +Sub WriteMIF(ByVal strMIFFilename As String, ByVal fStatus As Boolean, ByVal strSMSDescription As String) + Const strSUCCESS = """SUCCESS""" ' Cannot be localized as per SMS + Const strFAILED = """FAILED""" ' Cannot be localized as per SMS + + Dim fn As Integer + Dim intOffset As Integer + Dim fOpened As Boolean + + fOpened = False + + On Error GoTo WMIFFAILED ' If we fail, we just return without doing anything + ' because there is no way to inform the user while + ' in SMS mode. + + ' + ' If the description string is greater than 255 characters, + ' truncate it. Required my SMS. + ' + strSMSDescription = Left(strSMSDescription, MAX_SMS_DESCRIP) + ' + ' Remove any carriage returns or line feeds and replace + ' them with spaces. The message must be a single line. + ' + For intOffset = 1 To Len(strSMSDescription) + If (Mid(strSMSDescription, intOffset, 1) = Chr(10)) Or (Mid(strSMSDescription, intOffset, 1) = Chr(13)) Then + Mid(strSMSDescription, intOffset, 1) = " " + End If + Next intOffset + ' + ' Open the MIF file for append, but first delete any existing + ' ones with the same name. Note, that setup.exe passed a + ' unique name so if there is one with this name already in + ' on the disk, it was put there by setup.exe. + ' + If FileExists(strMIFFilename) Then + Kill strMIFFilename + End If + + fn = FreeFile + Open strMIFFilename For Append As fn + fOpened = True + ' + ' We are ready to write the actual MIF file + ' Note, none of the string below are supposed + ' to be localized. + ' + Print #fn, "Start Component" + Print #fn, Tab; "Name = ""Workstation""" + Print #fn, Tab; "Start Group" + Print #fn, Tab; Tab; "Name = ""InstallStatus""" + Print #fn, Tab; Tab; "ID = 1" + Print #fn, Tab; Tab; "Class = ""MICROSOFT|JOBSTATUS|1.0""" + Print #fn, Tab; Tab; "Start Attribute" + Print #fn, Tab; Tab; Tab; "Name = ""Status""" + Print #fn, Tab; Tab; Tab; "ID = 1" + Print #fn, Tab; Tab; Tab; "Type = String(16)" + Print #fn, Tab; Tab; Tab; "Value = "; IIf(fStatus, strSUCCESS, strFAILED) + Print #fn, Tab; Tab; "End Attribute" + Print #fn, Tab; Tab; "Start Attribute" + Print #fn, Tab; Tab; Tab; "Name = ""Description""" + Print #fn, Tab; Tab; Tab; "ID = 2" + Print #fn, Tab; Tab; Tab; "Type = String(256)" + Print #fn, Tab; Tab; Tab; "Value = "; strSMSDescription + Print #fn, Tab; Tab; "End Attribute" + Print #fn, Tab; "End Group" + Print #fn, "End Component" + + Close fn + ' + ' Success + ' + Exit Sub + +WMIFFAILED: + ' + ' At this point we are unable to create the MIF file. + ' Since we are running under SMS there is no one to + ' tell, so we don't generate an error message at all. + ' + If fOpened = True Then + Close fn + End If + Exit Sub +End Sub + +'Adds or replaces an HKEY to the list of HKEYs in cache. +'Note that it is not necessary to remove keys from +'this list. +Private Sub AddHkeyToCache(ByVal hKey As Long, ByVal strHkey As String) + Dim intIdx As Integer + + intIdx = intGetHKEYIndex(hKey) + If intIdx < 0 Then + 'The key does not already exist. Add it to the end. + On Error Resume Next + ReDim Preserve hkeyCache(0 To UBound(hkeyCache) + 1) + If Err Then + 'If there was an error, it means the cache was empty. + On Error GoTo 0 + ReDim hkeyCache(0 To 0) + End If + On Error GoTo 0 + + intIdx = UBound(hkeyCache) + Else + 'The key already exists. It will be replaced. + End If + + hkeyCache(intIdx).hKey = hKey + hkeyCache(intIdx).strHkey = strHkey +End Sub + +'Given a predefined HKEY, return the text string representing that +'key, or else return "". +Private Function strGetPredefinedHKEYString(ByVal hKey As Long) As String + Select Case hKey + Case HKEY_CLASSES_ROOT + strGetPredefinedHKEYString = "HKEY_CLASSES_ROOT" + Case HKEY_CURRENT_USER + strGetPredefinedHKEYString = "HKEY_CURRENT_USER" + Case HKEY_LOCAL_MACHINE + strGetPredefinedHKEYString = "HKEY_LOCAL_MACHINE" + Case HKEY_USERS + strGetPredefinedHKEYString = "HKEY_USERS" + 'End Case + End Select +End Function + +'Given an HKEY, return the text string representing that +'key. +Private Function strGetHKEYString(ByVal hKey As Long) As String + Dim strKey As String + + 'Is the hkey predefined? + strKey = strGetPredefinedHKEYString(hKey) + If strKey <> "" Then + strGetHKEYString = strKey + Exit Function + End If + + 'It is not predefined. Look in the cache. + Dim intIdx As Integer + intIdx = intGetHKEYIndex(hKey) + If intIdx >= 0 Then + strGetHKEYString = hkeyCache(intIdx).strHkey + Else + strGetHKEYString = "" + End If +End Function + +'Searches the cache for the index of the given HKEY. +'Returns the index if found, else returns -1. +Private Function intGetHKEYIndex(ByVal hKey As Long) As Integer + Dim intUBound As Integer + + On Error Resume Next + intUBound = UBound(hkeyCache) + If Err Then + 'If there was an error accessing the ubound of the array, + 'then the cache is empty + GoTo NotFound + End If + On Error GoTo 0 + + Dim intIdx As Integer + For intIdx = 0 To intUBound + If hkeyCache(intIdx).hKey = hKey Then + intGetHKEYIndex = intIdx + Exit Function + End If + Next intIdx + +NotFound: + intGetHKEYIndex = -1 +End Function + +'Returns the location of the Program Files\Common Files path, if +'it is present in the registry. Otherwise, returns "". +Public Function strGetCommonFilesPath() As String + Dim hKey As Long + Dim strPath As String + + If TreatAsWin95() Then + Const strCommonFilesKey = "CommonFilesDir" + + If RegOpenKey(HKEY_LOCAL_MACHINE, RegPathWinCurrentVersion(), hKey) Then + RegQueryStringValue hKey, strCommonFilesKey, strPath + RegCloseKey hKey + End If + End If + + If strPath <> "" Then + AddDirSep strPath + End If + + strGetCommonFilesPath = strPath +End Function +'Returns the location of the "Windows\Start Menu\Programs" Files path, if +'it is present in the registry. Otherwise, returns "". +Public Function strGetProgramsFilesPath() As String + Dim hKey As Long + Dim strPath As String + + strPath = "" + If TreatAsWin95() Then + Const strProgramsKey = "Programs" + + If RegOpenKey(HKEY_CURRENT_USER, RegPathWinPrograms(), hKey) Then + RegQueryStringValue hKey, strProgramsKey, strPath + RegCloseKey hKey + End If + End If + + If strPath <> "" Then + AddDirSep strPath + End If + + strGetProgramsFilesPath = strPath +End Function + +'Returns the directory where DAO is or should be installed. If the +'key does not exist in the registry, it is created. For instance, under +'NT 3.51 this location is normally 'C:\WINDOWS\MSAPPS\DAO' +Private Function strGetDAOPath() As String + Const strMSAPPS$ = "MSAPPS\" + Const strDAO3032$ = "DAO350.DLL" + + 'first look in the registry + Const strKey = "SOFTWARE\Microsoft\Shared Tools\DAO350" + Const strValueName = "Path" + Dim hKey As Long + Dim strPath As String + + If RegOpenKey(HKEY_LOCAL_MACHINE, strKey, hKey) Then + RegQueryStringValue hKey, strValueName, strPath + RegCloseKey hKey + End If + + If strPath <> "" Then + strPath = GetPathName(strPath) + AddDirSep strPath + strGetDAOPath = strPath + Exit Function + End If + + 'It's not yet in the registry, so we need to decide + 'where the directory should be, and then need to place + 'that location in the registry. + + If TreatAsWin95() Then + 'For Win95, use "Common Files\Microsoft Shared\DAO" + strPath = strGetCommonFilesPath() & ResolveResString(resMICROSOFTSHARED) & "DAO\" + Else + 'Otherwise use Windows\MSAPPS\DAO + strPath = gstrWinDir & strMSAPPS & "DAO\" + End If + + 'Place this information in the registry (note that we point to DAO3032.DLL + 'itself, not just to the directory) + If RegCreateKey(HKEY_LOCAL_MACHINE, strKey, "", hKey) Then + RegSetStringValue hKey, strValueName, strPath & strDAO3032, False + RegCloseKey hKey + End If + + strGetDAOPath = strPath +End Function + +' Replace all double quotes with single quotes +Public Sub ReplaceDoubleQuotes(str As String) + Dim i As Integer + + For i = 1 To Len(str) + If Mid$(str, i, 1) = """" Then + Mid$(str, i, 1) = "'" + End If + Next i +End Sub + +'Get the path portion of a filename +Function GetPathName(ByVal strFilename As String) As String + Dim sPath As String + Dim sFile As String + + SeparatePathAndFileName strFilename, sPath, sFile + + GetPathName = sPath +End Function +'Determines if a character is a path separator (\ or /). +Public Function IsSeparator(Character As String) As Boolean + Select Case Character + Case gstrSEP_DIR + IsSeparator = True + Case gstrSEP_DIRALT + IsSeparator = True + End Select +End Function +'Given a fully qualified filename, returns the path portion and the file +' portion. +Public Sub SeparatePathAndFileName(FullPath As String, ByRef Path As String, _ + ByRef FileName As String) + + Dim nSepPos As Long + Dim sSEP As String + + nSepPos = Len(FullPath) + sSEP = Mid$(FullPath, nSepPos, 1) + Do Until IsSeparator(sSEP) + nSepPos = nSepPos - 1 + If nSepPos = 0 Then Exit Do + sSEP = Mid$(FullPath, nSepPos, 1) + Loop + + Select Case nSepPos + Case 0 + 'Separator was not found. + Path = CurDir$ + FileName = FullPath + Case Else + Path = Left$(FullPath, nSepPos - 1) + FileName = Mid$(FullPath, nSepPos + 1) + End Select +End Sub + +'Returns the path to the root of the first fixed disk +Function strRootDrive() As String + Dim intDriveNum As Integer + + For intDriveNum = 0 To Asc("Z") - Asc("A") - 1 + If GetDriveType(intDriveNum) = intDRIVE_FIXED Then + strRootDrive = Chr$(Asc("A") + intDriveNum) & gstrCOLON & gstrSEP_DIR + Exit Function + End If + Next intDriveNum + + strRootDrive = "C:\" +End Function + +'Returns "" if the path is not complete, or is a UNC pathname +Function strGetDriveFromPath(ByVal strPath As String) As String + If Len(strPath) < 2 Then + Exit Function + End If + + If Mid$(strPath, 2, 1) <> gstrCOLON Then + Exit Function + End If + + strGetDriveFromPath = Mid$(strPath, 1, 1) & gstrCOLON & gstrSEP_DIR +End Function + +Public Function fValidFilename(strFilename As String) As Boolean +' +' This routine verifies that strFileName is a valid file name. +' It checks that its length is less than the max allowed +' and that it doesn't contain any invalid characters.. +' + If Not fCheckFNLength(strFilename) Then + ' + ' Name is too long. + ' + fValidFilename = False + Exit Function + End If + ' + ' Search through the list of invalid filename characters and make + ' sure none of them are in the string. + ' + Dim iInvalidChar As Integer + Dim iFilename As Integer + Dim strInvalidChars As String + + strInvalidChars = ResolveResString(resCOMMON_INVALIDFILECHARS) + + For iInvalidChar = 1 To Len(strInvalidChars) + If InStr(strFilename, Mid$(strInvalidChars, iInvalidChar, 1)) <> 0 Then + fValidFilename = False + Exit Function + End If + Next iInvalidChar + + fValidFilename = True + +End Function +Public Function fValidNTGroupName(strGroupName) As Boolean +' +' This routine verifies that strGroupName is a valid group name. +' It checks that its length is less than the max allowed +' and that it doesn't contain any invalid characters. +' + If Len(strGroupName) > gintMAX_GROUPNAME_LEN Then + fValidNTGroupName = False + Exit Function + End If + ' + ' Search through the list of invalid filename characters and make + ' sure none of them are in the string. + ' + Dim iInvalidChar As Integer + Dim iFilename As Integer + Dim strInvalidChars As String + + strInvalidChars = ResolveResString(resGROUPINVALIDCHARS) + + For iInvalidChar = 1 To Len(strInvalidChars) + If InStr(strGroupName, Mid$(strInvalidChars, iInvalidChar, 1)) <> 0 Then + fValidNTGroupName = False + Exit Function + End If + Next iInvalidChar + + fValidNTGroupName = True + +End Function +'----------------------------------------------------------- +' SUB: CountGroups +' +' Determines how many groups must be installed by counting +' them in the setup information file (SETUP.LST) +'----------------------------------------------------------- +' +Function CountGroups(ByVal strsection As String) As Integer + Dim intIdx As Integer + Dim sGroup As String + + intIdx = 0 + Do + sGroup = ReadIniFile(gstrSetupInfoFile, strsection, gsGROUP & CStr(intIdx)) + If sGroup <> vbNullString Then 'Found a group + intIdx = intIdx + 1 + Else + Exit Do + End If + Loop + CountGroups = intIdx +End Function +'----------------------------------------------------------- +' SUB: GetGroup +' +' Returns the Groupname specified by Index +'----------------------------------------------------------- +' +Function GetGroup(ByVal strsection As String, ByVal index As Integer) + GetGroup = ReadIniFile(gstrSetupInfoFile, strsection, gsGROUP & CStr(index)) +End Function +'----------------------------------------------------------- +' SUB: SetGroup +' +' Sets Groupname specified by Index +'----------------------------------------------------------- +' +Sub SetGroup(ByVal strsection As String, ByVal index As Integer, ByVal sGroupName As String) + Const iBuf As Integer = 2048 + Const sEQUAL As String * 1 = "=" + Dim sGroup As String + Dim sNames As String, ret As Long + sGroup = ReadIniFile(gstrSetupInfoFile, strsection, gsGROUP & CStr(index)) + sNames = Space$(iBuf) + ret = GetPrivateProfileSection(sGroup, sNames, iBuf, gstrSetupInfoFile) + If ret = 0 Then 'We have nothing in this section, just quit. + Exit Sub + End If + sNames = Left$(sNames, ret - 1) + 'We now have the Group name, modify the icons in that group + Dim lCount As Long, sKEY As String, sValue As String, fKey As Boolean + fKey = True + For lCount = 1 To Len(sNames) + If (Mid$(sNames, lCount, 1) = sEQUAL) Then + fKey = False + ElseIf (Asc(Mid$(sNames, lCount, 1)) = 0) Or (Len(sNames) = lCount) Then + If Len(sNames) = lCount Then + If fKey Then + sKEY = sKEY & Mid$(sNames, lCount, 1) + Else + sValue = sValue & Mid$(sNames, lCount, 1) + End If + End If + If Len(sKEY) <> 0 Then + Call WritePrivateProfileString(sGroupName, sKEY, sValue, gstrSetupInfoFile) + End If + sKEY = vbNullString + sValue = vbNullString + fKey = True + Else + If fKey Then + sKEY = sKEY & Mid$(sNames, lCount, 1) + Else + sValue = sValue & Mid$(sNames, lCount, 1) + End If + End If + Next + Call WritePrivateProfileString(strsection, gsGROUP & CStr(index), sGroupName, gstrSetupInfoFile) +End Sub +'----------------------------------------------------------- +' SUB: GetPrivate +' +' Returns the the value of whether the group is private specified by Index +'----------------------------------------------------------- +' +Function GetPrivate(ByVal strsection As String, ByVal index As Integer) As Boolean + GetPrivate = CBool(ReadIniFile(gstrSetupInfoFile, strsection, gsPRIVATE & CStr(index))) +End Function +Function GetStart(ByVal strsection As String, ByVal index As Integer) As Boolean + GetStart = ReadIniFile(gstrSetupInfoFile, strsection, gsPARENT & CStr(index)) = gsSTARTMENUKEY +End Function + +'----------------------------------------------------------- +' SUB: CountIcons +' +' Determines how many icons must be installed by counting +' them in the setup information file (SETUP.LST) +'----------------------------------------------------------- +' +Function CountIcons(ByVal strsection As String) As Integer + Dim intIdx As Integer + Dim cIcons As Integer + Dim sGroup As String + Dim oCol As New Collection + + intIdx = 0 + cIcons = 0 + Do + sGroup = ReadIniFile(gstrSetupInfoFile, strsection, gsGROUP & CStr(intIdx)) + If sGroup <> vbNullString Then 'Found a group + oCol.Add sGroup + intIdx = intIdx + 1 + Else + Exit Do + End If + Loop + Dim sGName As String + Dim vGroup As Variant + For Each vGroup In oCol + intIdx = 1 + Do + sGName = ReadIniFile(gstrSetupInfoFile, vGroup, gsICON & CStr(intIdx)) + If sGName <> vbNullString Then + cIcons = cIcons + 1 + intIdx = intIdx + 1 + Else + Exit Do + End If + Loop + Next + CountIcons = cIcons + +End Function +'----------------------------------------------------------- +' SUB: CreateIcons +' +' Walks through the list of files in SETUP.LST and creates +' Icons in the Program Group for files needed it. +'----------------------------------------------------------- +' +Sub CreateIcons(ByVal strsection As String) + Dim intIdx As Integer + Dim sFile As FILEINFO + Dim strProgramIconTitle As String + Dim strProgramIconCmdLine As String + Dim strProgramPath As String + Dim strProgramArgs As String + Dim intAnchor As Integer + Dim intOffset As Integer + Dim strGroup As String + Dim sGroup As String + Dim oCol As New Collection + Const CompareBinary = 0 + ' + 'For each file in the specified section, read info from the setup info file + ' + intIdx = 0 + Do + sGroup = ReadIniFile(gstrSetupInfoFile, strsection, gsGROUP & CStr(intIdx)) + If sGroup <> vbNullString Then 'Found a group + oCol.Add sGroup + intIdx = intIdx + 1 + Else + Exit Do + End If + Loop + Dim sGName As String + Dim vGroup As Variant + For Each vGroup In oCol + intIdx = 0 + Do + intIdx = intIdx + 1 + sGName = ReadIniFile(gstrSetupInfoFile, vGroup, gsICON & CStr(intIdx)) + If sGName <> vbNullString Then + ' + ' Get the Icon's caption and command line + ' + strProgramIconTitle = ReadIniFile(gstrSetupInfoFile, vGroup, gsTITLE & CStr(intIdx)) + strProgramIconCmdLine = ReadIniFile(gstrSetupInfoFile, vGroup, gsICON & CStr(intIdx)) + strGroup = vGroup + ' + ' if the ProgramIcon is specified, then we create an icon, + ' otherwise we don't. + ' + If Trim(strUnQuoteString(strProgramIconTitle)) <> vbNullString Then + ' + ' If the command line is not specified in SETUP.LST and the icon + ' is, then use the files destination path as the command line. In + ' this case there are no parameters. + ' + If Trim(strUnQuoteString(strProgramIconCmdLine)) = "" Then + strProgramPath = sFile.strDestDir & gstrSEP_DIR & sFile.strDestName + strProgramArgs = "" + Else + ' + ' Parse the command line, to determine what is the exe, etc. and what + ' are the parameters. The first space that is not contained within + ' quotes, marks the end of the exe, etc.. Everything afterwards are + ' parameters/arguments for the exe. NOTE: It is important that if + ' the exe is contained within quotes that the parameters not be + ' contained within the same quotes. The arguments can themselves + ' each be inside quotes as long as they are not in the same quotes + ' with the exe. + ' + intAnchor = 1 + intOffset = intGetNextFldOffset(intAnchor, strProgramIconCmdLine, " ", CompareBinary) + If intOffset = 0 Then intOffset = Len(strProgramIconCmdLine) + 1 + strProgramPath = Trim(Left(strProgramIconCmdLine, intOffset - 1)) + ' + ' Got the exe, now the parameters. + ' + strProgramArgs = Trim(Mid(strProgramIconCmdLine, intOffset + 1)) + End If + ' + ' Expand all the Destination Directory macros that are embedded in the + ' Program Path and the Arguments' + ' + strProgramPath = ResolveDestDir(strProgramPath) + strProgramArgs = ResolveDestDirs(strProgramArgs) + ' + ' Finally, we have everything we need, create the icon. + ' + Dim fPrivate As Boolean, sParent As String + Dim intIdx2 As Integer + + intIdx2 = 0 + Do + sGroup = ReadIniFile(gstrSetupInfoFile, gsICONGROUP, gsGROUP & CStr(intIdx2)) + If sGroup = strGroup Then 'Found the group + If IsWindows95 Then + fPrivate = True + Else + fPrivate = GetPrivate(gsICONGROUP, intIdx2) + End If + If GetStart(gsICONGROUP, intIdx2) Then + sParent = gsSTARTMENUKEY + Else + sParent = gsPROGMENUKEY + End If + Exit Do + End If + intIdx2 = intIdx2 + 1 + Loop + CreateOSLink frmSetup1, strGroup, strProgramPath, strProgramArgs, strProgramIconTitle, fPrivate, sParent + ElseIf Trim(strUnQuoteString(strProgramIconCmdLine)) <> vbNullString Then + ' + ' This file contained specified a command line in SETUP.LST but no icon. + ' This is an error. Let the user know and skip this icon or abort. + + ' + If gfNoUserInput Or MsgWarning(ResolveResString(resICONMISSING, "|1", sFile.strDestName), vbYesNo Or vbExclamation, gstrSETMSG) = vbNo Then + ExitSetup frmSetup1, gintRET_FATAL + End If + End If + Else + Exit Do + End If + Loop + Next +End Sub + +Public Function RebootSystem() As Boolean + Dim ret As Long + Dim hToken As Long + Dim tkp As TOKEN_PRIVILEGES + Dim tkpOld As TOKEN_PRIVILEGES + Dim fOkReboot As Boolean + Const sSHUTDOWN As String = "SeShutdownPrivilege" + 'Check to see if we are running on Windows NT + If IsWindowsNT() Then + 'We are running windows NT. We need to do some security checks/modifications + 'to ensure we have the token that allows us to reboot. + If OpenProcessToken(GetCurrentProcess(), _ + TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken) Then + ret = LookupPrivilegeValue(vbNullString, sSHUTDOWN, tkp.Privileges(0).pLuid) + tkp.PrivilegeCount = 1 + tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED + fOkReboot = AdjustTokenPrivileges(hToken, 0, tkp, LenB(tkpOld), tkpOld, ret) + End If + Else + 'We are running Win95/98. Nothing needs to be done. + fOkReboot = True + End If + If fOkReboot Then RebootSystem = (ExitWindowsEx(EWX_REBOOT, 0) <> 0) +End Function + +Private Function GetFileTime(ByVal aDate As Date) As FileTime + Dim lTemp As SYSTEMTIME + Dim lTime As FileTime + + VariantTimeToSystemTime aDate, lTemp + SystemTimeToFileTime lTemp, lTime + LocalFileTimeToFileTime lTime, GetFileTime +End Function + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.FRM new file mode 100644 index 0000000..52f3830 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.FRM @@ -0,0 +1,783 @@ +VERSION 5.00 +Begin VB.Form frmSetup1 + AutoRedraw = -1 'True + BackColor = &H00400000& + BorderStyle = 0 'None + Caption = "VB5 Setup Toolkit" + ClientHeight = 1770 + ClientLeft = 225 + ClientTop = 1590 + ClientWidth = 7950 + ClipControls = 0 'False + DrawStyle = 5 'Transparent + FillStyle = 0 'Solid + BeginProperty Font + Name = "" + Size = 24 + Charset = 134 + Weight = 700 + Underline = 0 'False + Italic = -1 'True + Strikethrough = 0 'False + EndProperty + ForeColor = &H00000000& + Icon = "setup1.frx":0000 + LinkMode = 1 'Source + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + PaletteMode = 1 'UseZOrder + ScaleHeight = 118 + ScaleMode = 3 'Pixel + ScaleWidth = 530 + WhatsThisHelp = -1 'True + WindowState = 2 'Maximized + Begin VB.Label lblModify + AutoSize = -1 'True + BorderStyle = 1 'Fixed Single + Caption = $"setup1.frx":0442 + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 600 + Left = 15 + TabIndex = 1 + Top = 15 + Visible = 0 'False + Width = 7980 + WordWrap = -1 'True + End + Begin VB.Label lblDDE + AutoSize = -1 'True + BorderStyle = 1 'Fixed Single + Caption = "This label is used for DDE connection to the Program Manager" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 240 + Left = 15 + TabIndex = 0 + Top = 1515 + Visible = 0 'False + Width = 5460 + End +End +Attribute VB_Name = "frmSetup1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text + +' +' Can't put this is a resource because it indicated resource load failure, must localize separately +' +Const mstrRESOURCELOADFAIL$ = "An error occurred while initializing string resources used by Setup." + +'----------------------------------------------------------- +' SUB: DrawBackGround +' +' Draws the 'blue wash' screen and prints the 'shadowed' +' app setup title +'----------------------------------------------------------- +' +Private Sub DrawBackGround() + Const intBLUESTART% = 255 + Const intBLUEEND% = 0 + Const intBANDHEIGHT% = 2 + Const intSHADOWSTART% = 8 + Const intSHADOWCOLOR% = 0 + Const intTEXTSTART% = 4 + Const intTEXTCOLOR% = 15 + Const intRed% = 1 + Const intGreen% = 2 + Const intBlue% = 4 + Const intBackRed% = 8 + Const intBackGreen% = 16 + Const intBackBlue% = 32 + Dim sngBlueCur As Single + Dim sngBlueStep As Single + Dim intFormHeight As Integer + Dim intFormWidth As Integer + Dim intY As Integer + Dim iColor As Integer + Dim iRed As Single, iBlue As Single, iGreen As Single + + ' + 'Get system values for height and width + ' + intFormHeight = ScaleHeight + intFormWidth = ScaleWidth + + If ReadIniFile(gstrSetupInfoFile, gstrINI_SETUP, gstrINI_COLOR) = vbNullString Then + iColor = intBlue + Else + iColor = CInt(ReadIniFile(gstrSetupInfoFile, gstrINI_SETUP, gstrINI_COLOR)) + End If + 'Calculate step size and blue start value + ' + sngBlueStep = intBANDHEIGHT * (intBLUEEND - intBLUESTART) / intFormHeight + sngBlueCur = intBLUESTART + + ' + 'Paint blue screen + ' + For intY = 0 To intFormHeight Step intBANDHEIGHT + If iColor And intBlue Then iBlue = sngBlueCur + If iColor And intRed Then iRed = sngBlueCur + If iColor And intGreen Then iGreen = sngBlueCur + If iColor And intBackBlue Then iBlue = 255 - sngBlueCur + If iColor And intBackRed Then iRed = 255 - sngBlueCur + If iColor And intBackGreen Then iGreen = 255 - sngBlueCur + Line (-1, intY - 1)-(intFormWidth, intY + intBANDHEIGHT), RGB(iRed, iGreen, iBlue), BF + sngBlueCur = sngBlueCur + sngBlueStep + Next intY + + ' + 'Print 'shadowed' appname + ' + CurrentX = intSHADOWSTART + CurrentY = intSHADOWSTART + ForeColor = QBColor(intSHADOWCOLOR) + Print Caption + CurrentX = intTEXTSTART + CurrentY = intTEXTSTART + ForeColor = QBColor(intTEXTCOLOR) + Print Caption +End Sub +Private Sub Form_Load() +' +' Most of the work for Setup1 takes place in Form_Load() +' and is mostly driven by the information found in the +' SETUP.LST file. To customize the Setup1 functionality, +' you will generally want to modify SETUP.LST. +' Particularly, information regarding the files you are +' installing is all stored in SETUP.LST. The only +' exceptions are the Remote Automation files RacMgr32.Exe +' and AutMgr32.Exe which require special handling below +' with regards to installing their icons in a special +' program group. +' +' Some customization can also be done by editing the code +' below in Form_Load or in other parts of this program. +' Places that are more likely to need customization are +' documented with suggestions and examples in the code. +' + Const strEXT_GRP$ = "GRP" 'extension for progman group + Const SW_HIDE = 0 + + Dim strGroupName As String 'Name of Program Group + Dim sFile As FILEINFO 'first Files= line info + Dim oFont As StdFont + + gfRegDAO = False + + On Error GoTo MainError + + SetFormFont Me + 'All the controls and the form are sharing the + 'same font object, so create a new font object + 'for the form so that the appearance of all the + 'controls are not changed also + Set oFont = New StdFont + With oFont + .Size = 24 + .Bold = True + .Italic = True + .Charset = Me.lblModify.Font.Charset + .Name = Me.lblModify.Font.Name + End With + Set Me.Font = oFont + ' + 'Initialize string resources used by global vars and forms/controls + ' + GetStrings + + ' + 'Get Windows, Windows\Fonts, and Windows\System directories + ' + gstrWinDir = GetWindowsDir() + gstrWinSysDir = GetWindowsSysDir() + gstrFontDir = GetWindowsFontDir() + + ' + ' If the Windows System directory is a subdirectory of the + ' Windows directory, the proper place for installation of + ' files specified in the setup.lst as $(WinSysDest) is always + ' the Windows \System directory. If the Windows \System + ' directory is *not* a subdirectory of the Windows directory, + ' then the user is running a shared version of Windows. In + ' this case, if the user does not have write access to the + ' shared system directory, we change the system files + ' destination to the windows directory + ' + If InStr(gstrWinSysDir, gstrWinDir) = 0 Then + If WriteAccess(gstrWinSysDir) = False Then + gstrWinSysDir = gstrWinDir + End If + End If + + ' + ' The command-line arguments must be processed as early + ' as possible, because without them it is impossible to + ' call the app removal program to clean up after an aborted + ' setup. + ' + ProcessCommandLine Command$, gfSilent, gstrSilentLog, gfSMS, gstrMIFFile, gstrSrcPath, gstrAppRemovalLog, gstrAppRemovalEXE + gfNoUserInput = (gfSilent Or gfSMS) + + AddDirSep gstrSrcPath + + ' + ' The Setup Bootstrapper (SETUP.EXE) copies SETUP1.EXE and SETUP.LST to + ' the end user's windows directory. Information required for setup such + ' as setup flags and fileinfo is read from the copy of SETUP.LST found in + ' that directory. + ' + gstrSetupInfoFile = gstrWinDir & gstrFILE_SETUP + 'Get the Appname (this will be shown on the blue wash screen) + gstrAppName = ReadIniFile(gstrSetupInfoFile, gstrINI_SETUP, gstrINI_APPNAME) + gintCabs = CInt(ReadIniFile(gstrSetupInfoFile, gstrINI_BOOT, gstrINI_CABS)) + If gstrAppName = vbNullString Then + MsgError ResolveResString(resNOSETUPLST), vbOKOnly Or vbCritical, gstrSETMSG + gstrTitle = ResolveResString(resSETUP, "|1", gstrAppName) + ExitSetup Me, gintRET_FATAL + End If + + gstrAppExe = ReadIniFile(gstrSetupInfoFile, gstrINI_SETUP, gstrINI_APPEXE) + gstrTitle = ResolveResString(resSETUP, "|1", gstrAppName) + If gfSilent Then LogSilentMsg gstrTitle & vbCrLf + + Dim lChar As Long + + gsTEMPDIR = String$(255, 0) + lChar = GetTempPath(255, gsTEMPDIR) + gsTEMPDIR = Left(gsTEMPDIR, lChar) + AddDirSep gstrSrcPath + gsCABNAME = gstrSrcPath & ReadIniFile(gstrSetupInfoFile, gstrINI_BOOT, gstrINI_CABNAME) + gsCABNAME = GetShortPathName(gsCABNAME) + gsCABNAME = gstrWinDir & BaseName(gsCABNAME) + gsTEMPDIR = gsTEMPDIR & ReadIniFile(gstrSetupInfoFile, gstrINI_BOOT, gsINI_TEMPDIR) + AddDirSep gsTEMPDIR + ' + ' Display the background "blue-wash" setup screen as soon as we get the title + ' + ShowMainForm + + ' + ' Display the welcome dialog + ' + ShowWelcomeForm + + + ' + ' If this flag is set, then the default destination directory is used + ' without question, and the user is never given a chance to change it. + ' This is intended for installing an .EXE/.DLL as a component rather + ' than as an application in an application directory. In this case, + ' having an application directory does not really make sense. + ' + If ReadIniFile(gstrSetupInfoFile, gstrINI_SETUP, gstrINI_FORCEUSEDEFDEST) = "1" Then + gfForceUseDefDest = True + End If + + ' + ' Read default destination directory. If the name specified conflicts + ' with the name of a file, then prompt for a new default directory + ' + gstrDestDir = ResolveDestDir(ReadIniFile(gstrSetupInfoFile, gstrINI_SETUP, gstrINI_APPDIR)) + While FileExists(gstrDestDir) = True Or gstrDestDir = vbNullString + If MsgError(ResolveResString(resBADDEFDIR), vbOKCancel Or vbQuestion, gstrSETMSG) = vbCancel Then + ExitSetup Me, gintRET_FATAL + End If + + If gfNoUserInput = True Then + ExitSetup Me, gintRET_FATAL + Else + ShowPathDialog gstrDIR_DEST + End If + Wend + + ' + ' Ensure a trailing backslash on the destination directory + ' + AddDirSep gstrDestDir + + Do + ' + ' Display install button and default directory. The user + ' can change the destination directory from here. + ' + ShowBeginForm + + ' + ' This would be a good place to display an option dialog, allowing the user + ' a chance to select installation options: samples, docs, help files, etc. + ' Results of this dialog would be checked in the loop below + ' + 'ShowOptionsDialog (Function you could write with option check boxes, etc.) + ' + + ' + ' Initialize "table" of drives used and disk space array + ' + InitDiskInfo + + SetMousePtr vbHourglass + ShowStaticMessageDialog ResolveResString(resDISKSPACE) + + ' + ' For every section in SETUP.LST that will be installed, call CalcDiskSpace + ' with the name of the section + ' + CalcDiskSpace gstrINI_FILES + 'CalcDiskSpace "MySection" + 'CalcDiskSpace "MyOtherSection" + ' + ' If you created an options dialog, you need to check results here to + ' determine whether disk space needs to be calculated (if the option(s) + ' will be installed) + ' + 'If chkInstallSamples.Value = TRUE then + ' CalcDiskSpace "Samples" + 'End If + ' + + HideStaticMessageDialog + SetMousePtr vbDefault + + ' + ' After all CalcDiskSpace calls are complete, call CheckDiskSpace to check + ' the results and display warning form (if necessary). If the user wants + ' to try another destination directory (or cleanup and retry) then + ' CheckDiskSpace will return False + ' + Loop While CheckDiskSpace() = False + + ' + ' Starts logging to the setup logfile (will be used for application removal) + ' + EnableLogging gstrAppRemovalLog + ' + ' Should go ahead and force the application directory to be created, + ' since the application removal logfile will later be copied there. + ' + MakePath gstrDestDir, False 'User may not ignore errors here + + ' + ' Create the main program group if one is wanted/needed. + ' + Const fDefCreateGroupUnderWin95 = False + ' + ' If fDefCreateGroupUnderWin95 is set to False (this is the default), then no + ' program group will be created under Win95 unless it is absolutely necessary. + ' + ' By default under Windows 95, no group should be created, and the + ' single program icon should be placed directly under the + ' Start>Programs menu (unless there are other, user-defined icons to create + ' + Dim cIcons As Integer ' Count of how many icons are required. + Dim cGroups As Integer ' Count of how many groups are required. + ' + ' Read through the SETUP.LST file and determine how many icons are needed. + ' + cIcons = CountIcons(gsICONGROUP) + cGroups = CountGroups(gsICONGROUP) + ' + ' Do the same for other sections in SETUP.LST if you've added your own. + ' + 'cIcons = cIcons + CountIcons("MySection") + 'cIcons = cIcons + CountIcons("MyOtherSection") + + ' + ' The following variable determines whether or not we create a program + ' group for icons. It is controlled by fNoGroupUnderWin95, + ' fAdditionalIcons, and FTreatAsWin95(). + ' + Dim fCreateGroup As Boolean + If TreatAsWin95() Then + ' + ' Win95 only: + ' We create a program group only if we have additional icons besides + ' the application executable (if any), or if fDefCreateGroupUnderWin95 + ' has been set to True to override this default behavior. + ' + fCreateGroup = (cGroups > 0) + Else + ' + ' Win32 NT only: + ' We must always create a Program Manager group + ' because we always create an icon for the application removal program. + ' + fCreateGroup = True + End If + + Dim iLoop As Integer + + If fCreateGroup Then + For iLoop = 0 To cGroups - 1 + strGroupName = "" + If (GetGroup(gsICONGROUP, iLoop) = gsSTARTMENUKEY) Or (GetGroup(gsICONGROUP, iLoop) = gsPROGMENUKEY) Then + 'Skip these, they're not needed. + Else + strGroupName = frmGroup.GroupName(frmSetup1, GetGroup(gsICONGROUP, iLoop), GetPrivate(gsICONGROUP, iLoop), GetStart(gsICONGROUP, iLoop)) + If GetGroup(gsICONGROUP, iLoop) <> strGroupName Then SetGroup gsICONGROUP, iLoop, strGroupName + End If + fMainGroupWasCreated = True + Next + End If + + ' Before we begin copying files, check for mdac_typ + ' and if we find it, spawn that off first. We will tell + ' it to never reboot, and check at the end to see if we need to. + DoEvents + If CheckDataAccess Then + 'We need to install data access. Display message. + ShowStaticMessageDialog ResolveResString(resINSTALLADO) + InstallDataAccess + HideStaticMessageDialog + End If + + ' + ' Show copy form and set copy gauge percentage to zero + ' + SetMousePtr vbHourglass + ShowCopyDialog + UpdateStatus frmCopy.picStatus, 0, True + + ' + ' Always start with Disk #1 + ' + gintCurrentDisk = 1 + ' + ' For every section in SETUP.LST that needs to be installed, call CopySection + ' with the name of the section + ' + + CopySection gstrINI_FILES + 'CopySection "MySection" + 'CopySection "MyOtherSection" + + ' + ' If you created an options dialog, you need to check results here to + ' determine whether to copy the files in the particular section(s). + ' + 'If chkInstallSamples.Value = TRUE then + ' CopySection "Samples" + 'End If + ' + + UpdateStatus frmCopy.picStatus, 1, True + + HideCopyDialog + + ' + ' If we installed AXDIST.EXE, we now need to run it + ' so it will install any additional files it contains. + ' + If gfAXDist = True Then + ' + 'Synchronously shell out and run the utility with the correct switches + ' + If FileExists(gstrAXDISTInstallPath) Then + SyncShell gstrAXDISTInstallPath, INFINITE, , True + End If + End If + ' + ' + ' If we installed WINt351.EXE, we now need to run it + ' so it will install any additional files it contains. + ' + If gfWINt351 = True Then + ' + 'Synchronously shell out and run the utility with the correct switches + ' + If FileExists(gstrWINt351InstallPath) Then + SyncShell gstrWINt351InstallPath, INFINITE, , True + End If + End If + ' + ' Now, do all the 'invisible' update things that are required + ' + SetMousePtr vbDefault + ShowStaticMessageDialog ResolveResString(resUPDATING) + + ' + ' Register all the files that have been saved in the registration array. The + ' CopySection API adds a registration entry (when required) if a file is copied. + ' + RegisterFiles + + ' + ' Register all the licenses that appear in the [Licenses] section of + ' Setup.lst. + ' + RegisterLicenses + + ' + ' If any DAO files were installed, we need to add some special + ' keys to the registry to support it so that links will work + ' in OLE Database fields. + ' + If gfRegDAO = True Then + RegisterDAO + End If + ' + ' Create program icons (or links, i.e. shortcuts). + ' + If (fMainGroupWasCreated = True) Or ((cIcons > 0) And TreatAsWin95()) Then + ShowStaticMessageDialog ResolveResString(resPROGMAN) + CreateIcons gsICONGROUP + ' + ' Do the same for other sections in SETUP.LST if you've added your own. + ' + 'CreateIcons "MySection" + 'CreateIcons "MyOtherSection" + ' + End If + ' + ' Create a separate program group and icons for the Remote Automation + ' Connection Manager and the Automation Manager, if either has been + ' installed. + ' This program group is entirely separate from the one created for the + ' application program (if any), because it will be shared by all + ' VB applications which install them. + ' + ' NOTE: This is NOT the place to install additional icons. This is + ' NOTE: handled after the Remote Automation icons have been created. + ' + ShowStaticMessageDialog ResolveResString(resPROGMAN) + If gsDest.strAUTMGR32 <> "" Or gsDest.strRACMGR32 <> "" Then + 'At least one of these programs was installed. Go ahead + 'and create the program group. + Dim strRemAutGroupName As String + + strRemAutGroupName = ResolveResString(resREMAUTGROUPNAME) + ' + ' Create the group for the Remote Automation Icons. Note that + ' since the user cannot choose the name of this group, there is + ' no way at this point to correct an error if one occurs. Therefore, + ' fCreateOSProgramGroup will abort setup, without returning, if there + ' is an error. + ' + fCreateOSProgramGroup frmSetup1, strRemAutGroupName, False, False + + 'Now create the icons for AUTMGR32.EXE and RACMGR32.EXE + If gsDest.strRACMGR32 <> "" Then + CreateOSLink frmSetup1, strRemAutGroupName, gsDest.strRACMGR32, "", ResolveResString(resRACMGR32ICON), True, gsPROGMENUKEY, False + End If + If gsDest.strAUTMGR32 <> "" Then + CreateOSLink frmSetup1, strRemAutGroupName, gsDest.strAUTMGR32, "", ResolveResString(resAUTMGR32ICON), True, gsPROGMENUKEY, False + End If + End If + + ' + 'Register the per-app path + ' + If gstrAppExe <> "" Then + Dim strPerAppPath As String + strPerAppPath = ReadIniFile(gstrSetupInfoFile, gstrINI_SETUP, gstrINI_APPPATH) + AddPerAppPath gstrAppExe, gsDest.strAppDir, strPerAppPath + End If + +ExitSetup: + HideStaticMessageDialog + RestoreProgMan + If fWithinAction() Then + 'By now, all logging actions should have been either aborted or committed. + MsgError ResolveResString(resSTILLWITHINACTION), vbExclamation Or vbOKOnly, gstrTitle + ExitSetup Me, gintRET_FATAL + End If + MoveAppRemovalFiles strGroupName + + ExitSetup Me, gintRET_FINISHEDSUCCESS + +MainError: + Dim iRet As Integer + iRet = MsgError(Error$ & vbLf & vbLf & ResolveResString(resUNEXPECTED), vbRetryCancel Or vbExclamation, gstrTitle) + If gfNoUserInput Then iRet = vbCancel + Select Case iRet + Case vbRetry + Resume + Case vbCancel + ExitSetup Me, gintRET_ABORT + Resume + 'End Case + End Select +End Sub + +'----------------------------------------------------------- +' SUB: HideCopyDialog +' +' Unloads the copy files status form +'----------------------------------------------------------- +' +Private Sub HideCopyDialog() + Unload frmCopy +End Sub + +'----------------------------------------------------------- +' SUB: HideStaticMessageDialog +' +' Unloads the setup messages form +'----------------------------------------------------------- +' +Private Sub HideStaticMessageDialog() + Unload frmMessage +End Sub + +'----------------------------------------------------------- +' SUB: ShowBeginForm +' +' Displays the begin setup form +'----------------------------------------------------------- +' +Private Sub ShowBeginForm() + If gfNoUserInput Then + If IsValidDestDir(gstrDestDir) = False Then + ExitSetup frmSetup1, gintRET_FATAL + End If + Else + frmBegin.Show vbModal + End If +End Sub + +'----------------------------------------------------------- +' SUB: ShowCopyDialog +' +' Displays the copy files status form +'----------------------------------------------------------- +' +Private Sub ShowCopyDialog() + CenterForm frmCopy + frmCopy.Show + frmCopy.Refresh + If gfNoUserInput = True Then + frmCopy.cmdExit.Visible = False + Else + frmCopy.cmdExit.SetFocus + End If +End Sub + +'----------------------------------------------------------- +' SUB: ShowMainForm +' +' Displays the main setup 'blue wash' form +'----------------------------------------------------------- +' +Private Sub ShowMainForm() + Me.Caption = gstrTitle + Me.Show + DrawBackGround + Me.Refresh +End Sub + +'----------------------------------------------------------- +' SUB: ShowStaticMessageDialog +' +' Displays a setup message in a 'box' of the appropriate +' size for the message +' +' IN: [strMessage] - message to display +'----------------------------------------------------------- +' +Private Sub ShowStaticMessageDialog(ByVal strMessage As String) + Dim frm As Form + + Set frm = frmMessage + frm.lblMsg.Caption = strMessage + + ' + 'Default height is twice the height of the setup icon. + 'If the height of the message text is greater, then + 'increase the form height to the label height plus + 'half an icon height + ' + frm.ScaleHeight = frm.imgMsg.Height * 2 + If frm.lblMsg.Height > frm.ScaleHeight Then + frm.ScaleHeight = frm.lblMsg.Height + frm.imgMsg.Height * 0.5 + End If + + ' + 'Vertically center the icon and label within the form + ' + frm.imgMsg.Top = frm.ScaleHeight / 2 - frm.imgMsg.Height / 2 + frm.lblMsg.Top = frm.ScaleHeight / 2 - frm.lblMsg.Height / 2 + + CenterForm frm + + frm.Show + frm.Refresh +End Sub + +'----------------------------------------------------------- +' SUB: ShowWelcomeForm +' +' Displays the welcome to setup form +'----------------------------------------------------------- +' +Private Sub ShowWelcomeForm() + If Not gfNoUserInput Then + frmWelcome.Show vbModal + End If +End Sub + +'----------------------------------------------------------- +' SUB: GetStrings +' +' Loads string resources into global vars and forms/controls +'----------------------------------------------------------- +' +Private Sub GetStrings() + On Error GoTo GSErr + + gstrSETMSG = ResolveResString(resSETMSG) + + Exit Sub + +GSErr: + MsgError mstrRESOURCELOADFAIL, vbCritical Or vbOKOnly, vbNullString + ExitSetup Me, gintRET_FATAL +End Sub + +Private Sub Form_Unload(Cancel As Integer) + 'Get rid of the cab file in the windows dir (if it exists). + Dim lCount As Long + Dim sCab As String + Dim sTemp As String + + lCount = 0 + 'Get rid of the cab file in the windows dir (if it exists). + Do + If gintCabs = 1 Then + sCab = gstrWinDir + AddDirSep sCab + sCab = sCab & BaseName(gsCABNAME) + If FileExists(sCab) Then Kill sCab + Exit Do + End If + lCount = lCount + 1 + sCab = gstrWinDir + AddDirSep sCab + sTemp = Left(gsCABNAME, Len(gsCABNAME) - 5) & CStr(lCount) & gstrSEP_EXT & gsINI_CABNAME + sCab = sCab & BaseName(sTemp) + If FileExists(sCab) Then + Kill sCab + Else + Exit Do + End If + Loop +End Sub diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.FRX new file mode 100644 index 0000000..c8f0d79 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.ICO b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.ICO new file mode 100644 index 0000000..4968b00 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.ICO differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.RC b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.RC new file mode 100644 index 0000000..8dce109 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.RC @@ -0,0 +1,198 @@ +#include "setupres.h" + +STRINGTABLE DISCARDABLE +BEGIN + +// +//Ĺ +// +#include "commonrc.rc" + +// +//ȫ +// +resSETMSG "װϢ" + +// +//frmBegin +// +resSPECDEST "ðť |1 װָĿĿ¼" +resSPECNODEST "ðť |1 װļϡ" + +// +//frmWelcome +// +resWELCOME "ӭʹ |1 װ" + +// +//frmPath +// +resSRCPROMPT " |1 Դļ·" +resDESTPROMPT "ѡĿĿ¼" +resDESTDIR "ĿĿ¼" +resCREATE "ڡϣĿ¼" +resCHANGEDIR "ıĿ¼" +resINSTFROM "װԴ" + +// +//Setup1.Bas +// +resCALCSPACE "̿ռʱ" +resDRVREAD "ܶ" +resDRVCHK "ȷǷؽǷʽԼûд" +resCANTOPEN "ָܴļ" +resCANTREAD "ָܴļ룺" +resCANTWRITE "дָļ" +resCHKSPACE "ȷĿ㹻Ĵ̿ռ䡣" +resMAKEDIR "ܴĿ¼" +resASKEXIT "ȷҪ˳" +resINTERRUPTED "|1 װȫװ֮ǰжϡ" +resCANRUN "Ժ |1 װɰװ" +resINCOMPLETE "װδ" +resQUITNOW "˳ȷװòƷ" +resQUITSETUP "˳Ʒװ" +resSUCCESS "|1 װɹ" +resERROR "|1 װɹ" +resALLOCUNIT "ȷķ䵥Ԫ" +resSAMEASSRC "λڰװԴļĿ¼һͬĿ¼" +resNOCREATE "ָܴļ" +resNOTPROTECT "ȷĿûд" +resINSERT "̣" +resDISK "' " +resINTO "' " +resSECTNAME "ڣ " +resINVLINE "װϢļеЧУ" +resDIRSPECIFIED "ָĿ¼" +resDIRINVALID "Чδɻдȫ·磺'C:\\APPS'" +resNOTEXIST "Ŀ¼ڣ" +resDIRINVNAME "Ŀ¼Ч" +resWRITEPROT "Ŀļд" +resINUSE "ĿļʹС뱣֤йӦóѹرա" +resOUTOFSPACE "Ŀ̿ռ䲻" +resACCESSVIOLATION "ļʱʳͻ" +resSHARINGVIOLATION "ļʱͻ" +resOUTOFMEMORY "ļڴ" +resCANNOTCREATE "ܴʱļ" +resCANNOTDELETE "ɾִĿļ" +resCANNOTRENAME "ʱļ" +resCANNOTREADSRC "ܶԴļ" +resCANNOTREADDST "ܶĿļԡ" +resBUFFTOOSMALL "ڲƴ" +resNOINSTALL " ļܰװ" +resCHKCONNECT "鵽" +resWARNIGNORE "ԸƴļơӦóпܲȷԸô" +resTEMPDRIVE " 'TMP' 'TEMP' ָδ" +resERR_VSHARE " SYSTEM.INI ļ [386Enh] Ӧһ 'device=vshare.386' ȷȷС" +resCANTREADUNC "ܶ· '|1'" +resCHECKUNC "ȷ·ǷȷԼǷзȨޡ" +resCANTFINDAPPREMOVALLOG "Ӧóɾ־ļ '|1' δҵܼ" +resBADCOMMANDLINE "Ƿвܼ" +resCANTFINDAPPREMOVALEXE "Ӧóɾִļ '|1' δҵܼ" +resAPPREMOVALICONNAME "ɾ |1" +resCANTREGISTERAPPREMOVER " Windows עӦóʱɾִļ" +resCANTCREATEAPPREMOVALICON "ΪӦóɾʵùߴͼʱ" +resOVERWRITEPRIVATE "װ滻ǰڵļִӦóʧݡ" +resOVERWRITEPRIVATE2 "װѴڵİװûɾ𻵰װ½ɾʱʧܡ" +resCANCELSETUP "ȡװ" +resCHOOSENEWDEST "аװΪӦóļѡһλá" +resVERIFYCONTINUE "ȷҪ" +resERR_REG " Windows ¼ݿʱ" +resMICROSOFTSHARED " Microsoft Shared\\" +resCANTCREATEPROGRAMGROUP " '|1' ʱ" +resCANTCREATEPROGRAMICON "Ϊ '|1' ͼʱ" +resCANTCOPYLOG " '|1' ӦóĿ¼ʱ" +resCANTFINDREGFILE "ļ '|1' ܱעᣬδҵ" +resCANTRUNPROGRAM "Windows г '|1'ϵͳڴ治㣬Ҳ" +resREMOTELINENOTFOUND ": 'SETUP.LST' עԶ̲ '|1' йϢЩϢӦ SETUP.LST '|2' ؼҵ" +resPROGRAMMANAGER "" +resUNEXPECTEDRPCREGDAT " '|1' ʱδ֪" +resCANTCOPYPATHTOOLONG "ܸļĿ·̫" +resCANTCREATEICONPATHTOOLONG "ܴжװͼ꣬Ŀ·̫" +resICONMISSING " SETUP.LST ûΪ |1 ָͼꡣϣڲͼ¼𣿵ǡ˳װ" + +// +//Setup1.Frm +// +resBADDEFDIR "װܾЧȱʡĿĿ¼ҪָĿĿ¼" +resDISKSPACE "װڼҪĴ̿ռ..." +resPROGMAN "װڴ..." +resUPDATING "װڸϵͳ..." +resNOEXE "ȷӦóִļ" +resSETUP "|1 װ" +resNOSETUPLST "ļ SETUP.LST ѻҲ" +resUNEXPECTED "δ֪İװ" +resNOFOLDERFORICON "װƴҪΪ |1 ͼ꣬Ϊûдļл顣" +resSTILLWITHINACTION "װ󣺶ʧ 'CommitAction()' 'AbortAction()'" +resREMAUTGROUPNAME "ԶԶ" +resAUTMGR32ICON "Զ" +resRACMGR32ICON "ԶԶӹ" +resNT4WithoutSP2 "棺Ϊ Windows NT 4.0 װ Service Pack 2Ӧóȷ" +resINSTALLADO "ڰװ Data Access ..." +resREBOOT "ϵͳҪʹĶЧ\n\nھϵͳ" +resREBOOTNO "ϵͳ֮ǰӦó޷" + +// +//Common.Bas +// +resDISKSPCERR "ȷĴʣռʱ" + +// +///ؼַ +// +//resBTNINSTALL "װ(&)" +resFRMDIRECTORY "Ŀ¼" +resBTNCHGDIR "Ŀ¼(&C)" +resBTNEXIT "˳װ(&X)" +resLBLBEGIN "İťʼװ" +resBTNCANCEL "ȡ" +resLBLDESTFILE "Ŀļ" +resBTNINSTALLNOW "̰װ(&I)" +resBTNCHGDRV "(&C)" +resLBLDRIVE "" +resLBLAVAIL "ÿռ" +resLBLNEEDED "ռ" +resLBLREQUIRED "Ҫռ" +resLBLNOSPACE "һû㹻Ĵ̿ռ䡣" +resBTNOK "ȷ" +resLBLDRIVES "(&V)" +resLBLDIRS "Ŀ¼(&D)" +resLBLPATH "·(&P)" +resLBLRUNNING "װܰװϵͳļʹõĹļڼ֮ǰرκеӦó" +resBTNTOOLTIPBEGIN "ڴ˴Կʼװ" +// +// Group.Frm +// +resGROUPFRM "|1 - ѡ" +resGROUPLBLMAIN "װĿСµִбѡһ" +resGROUPLBLGROUP "(&P)" +resGROUPLBLGROUPS "ִ(&X)" +resGROUPBTNCONTINUE "(&C)" +resGROUPINVALIDGROUPNAME "ȱ |1 ַҲܰκַ|2" +resGROUPINVALIDCHARS """][,)(" +// +//ServerDt.Frm +// +resNETWORKADDRESS "ַ(&A)" +resNETWORKPROTOCOL "Э(&P)" +resOK "(&C)" +resCANCEL "˳װ(&X)" +resREMOTESERVERDETAILSTITLE "Զ ActiveX " +resREMOTESERVERDETAILSLBL "дйԶ̲ҪϢ" +resNOTEPROTOSEQNOTSUPPORTED "Э |1 (|2) ̨ϲֻ֧򲻿" +resNOTEPROTOSEQINVALID "Э |1 (|2) Ч" +resPROTOSEQUNEXPECTEDERR "ȷϿõЭʱ" +resNOPROTOCOLSINSETUPLST "װ󣺴 SETUP.LST ļЭʱ" +resNOPROTOCOLSSUPPORTED1 "ûһӦóҪЭԵÿûװ̨ϡ" +resNOPROTOCOLSSUPPORTED2 "ΪȷаװҪȰװЭ֮һ" +resSELECTEDPROTONOTSUPPORTED "ӦóܷԶ̲ '|1'ֱװЭ '|2'" + +resOVERWRITEFORM "汾ͻ" +resOVERWRITEINFO "Ҫļϵͳеļİ汾ϣ鱣еļ" +resOVERWRITEFILE "ļ: '|1'" +resOVERWRITEDESC ": '|1'" +resOVERWRITEVER "汾: '|1'" +resOVERWRITEKEEP "뱣ļ" +resOVERNOTOALL "ȫ(&A)" +resOVERYES "(&Y)" +resOVERNO "(&N)" +END diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.RES b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.RES new file mode 100644 index 0000000..14e8cb3 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.RES differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.VBP b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.VBP new file mode 100644 index 0000000..3183200 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUP1.VBP @@ -0,0 +1,58 @@ +Type=Exe +Reference=*\G{78BF8D80-7B03-11D1-AAB1-00AA00BDD685}#1.0#0#VBShell.tlb#VB-friendly Shell interfaces +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\NTSRV40\System32\STDOLE2.TLB#OLE Automation +Form=setup1.frm +Module=basSetup1; setup1.bas +Module=basCommon; common.bas +Module=basSetupRes; setupres.bas +Module=basLogging; logging.bas +Form=begin.frm +Form=welcome.frm +Form=path.frm +Form=message.frm +Form=dskspace.frm +Form=copy.frm +Form=serverdt.frm +Form=group.frm +Module=modShell; modShell.bas +Form=frmOverwrite.frm +Module=modRegistry; registry.bas +ResFile32="setup1.res" +IconForm="frmSetup1" +Startup="frmSetup1" +HelpFile="" +Title="Visual Basic 6.0 Setup Toolkit" +ExeName32="setup1.exe" +Path32="..\retail" +Command32="d:\demo\test\package c:\winnt\st6unst.001 c:\winnt\st6unst.exe" +Name="Setup1" +HelpContextID="0" +Description="Visual Basic 6.0 Setup Toolkit" +CompatibleMode="0" +MajorVer=6 +MinorVer=0 +RevisionVer=8169 +AutoIncrementVer=0 +ServerSupportFiles=0 +DllBaseAddress=&H10000000 +VersionCompanyName="Microsoft Corporation" +VersionFileDescription="Visual Basic 6.0 Setup Toolkit" +VersionLegalCopyright="Copyright (c) 1987-1998 Microsoft Corporation" +VersionLegalTrademarks="Microsoft is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation." +VersionProductName="Microsoft Visual Basic for Windows" +CondComp="LOGGING = -1" +CompilationType=0 +OptimizationType=1 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUPRES.BAS b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUPRES.BAS new file mode 100644 index 0000000..a973b99 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUPRES.BAS @@ -0,0 +1,235 @@ +Attribute VB_Name = "basSetupRes" +Option Explicit +Option Compare Text + +' +' Global vars +' +Global Const resSETMSG% = 1 + +' +'frmBegin +' +Global Const resSPECDEST% = 100 +Global Const resSPECNODEST% = 101 + +' +'frmWelcome +' +Global Const resWELCOME% = 200 + +' +'frmPath +' +Global Const resSRCPROMPT% = 300 +Global Const resDESTPROMPT% = 301 +Global Const resDESTDIR% = 302 +Global Const resCREATE% = 303 +Global Const resCHANGEDIR% = 304 +Global Const resINSTFROM% = 305 + +' +'Setup1.Bas +' +Global Const resCALCSPACE% = 400 +Global Const resDRVREAD% = 401 +Global Const resDRVCHK% = 402 +Global Const resCANTOPEN% = 403 +Global Const resCANTREAD% = 404 +Global Const resCANTWRITE% = 405 +Global Const resCHKSPACE% = 406 +Global Const resMAKEDIR% = 407 +Global Const resASKEXIT% = 411 +Global Const resINTERRUPTED% = 412 +Global Const resCANRUN% = 413 +Global Const resINCOMPLETE% = 414 +Global Const resQUITNOW% = 415 +Global Const resQUITSETUP% = 416 +Global Const resSUCCESS% = 417 +Global Const resERROR% = 418 +Global Const resALLOCUNIT% = 419 +Global Const resSAMEASSRC% = 420 +Global Const resNOCREATE% = 421 +Global Const resNOTPROTECT% = 422 +Global Const resINSERT% = 423 +Global Const resDISK% = 424 +Global Const resINTO% = 425 +Global Const resSECTNAME% = 426 +Global Const resINVLINE% = 427 +Global Const resDIRSPECIFIED% = 428 +Global Const resDIRINVALID% = 429 +Global Const resNOTEXIST% = 430 +Global Const resDIRINVNAME% = 431 +Global Const resWRITEPROT% = 432 +Global Const resINUSE% = 433 +Global Const resOUTOFSPACE% = 434 +Global Const resACCESSVIOLATION% = 435 +Global Const resSHARINGVIOLATION% = 436 +Global Const resOUTOFMEMORY% = 437 +Global Const resCANNOTCREATE% = 438 +Global Const resCANNOTDELETE% = 439 +Global Const resCANNOTRENAME% = 440 +Global Const resCANNOTREADSRC% = 441 +Global Const resCANNOTREADDST% = 442 +Global Const resBUFFTOOSMALL% = 443 +Global Const resNOINSTALL% = 444 +Global Const resCHKCONNECT% = 445 +Global Const resWARNIGNORE% = 446 +Global Const resTEMPDRIVE% = 447 +Global Const resERR_VSHARE% = 448 +Global Const resCANTREADUNC% = 449 +Global Const resCHECKUNC% = 450 +Global Const resCANTFINDAPPREMOVALLOG = 451 +Global Const resBADCOMMANDLINE = 452 +Global Const resCANTFINDAPPREMOVALEXE = 453 +Global Const resAPPREMOVALICONNAME = 454 +Global Const resCANTREGISTERAPPREMOVER = 455 +Global Const resCANTCREATEAPPREMOVALICON = 456 +Global Const resOVERWRITEPRIVATE = 457 +Global Const resOVERWRITEPRIVATE2 = 458 +Global Const resCANCELSETUP = 459 +Global Const resCHOOSENEWDEST = 460 +Global Const resVERIFYCONTINUE = 461 +Global Const resERR_REG = 462 +Global Const resMICROSOFTSHARED = 463 +Global Const resCANTCREATEPROGRAMGROUP = 465 +Global Const resCANTCREATEPROGRAMICON = 466 +Global Const resCANTCOPYLOG = 467 +Global Const resCANTFINDREGFILE = 468 +Global Const resCANTRUNPROGRAM = 469 +Global Const resREMOTELINENOTFOUND = 470 +Global Const resPROGRAMMANAGER = 471 +Global Const resUNEXPECTEDRPCREGDAT = 472 +Global Const resCANTCOPYPATHTOOLONG% = 473 +Global Const resCANTCREATEICONPATHTOOLONG% = 474 +Global Const resICONMISSING = 475 +' +'Setup1.Frm +' +Global Const resBADDEFDIR% = 500 +Global Const resDISKSPACE% = 501 +Global Const resPROGMAN% = 502 +Global Const resUPDATING% = 503 +Global Const resNOEXE% = 504 +Global Const resSETUP% = 505 +Global Const resNOSETUPLST% = 506 +Global Const resUNEXPECTED% = 507 +Global Const resNOFOLDERFORICON = 508 +Global Const resSTILLWITHINACTION = 509 +Global Const resREMAUTGROUPNAME = 510 +Global Const resAUTMGR32ICON = 511 +Global Const resRACMGR32ICON = 512 +Global Const resNT4WithoutSP2 = 513 +Global Const resINSTALLADO = 514 +Global Const resREBOOT = 515 +Global Const resREBOOTNO = 516 +' +'Common.Bas +' +Global Const resDISKSPCERR% = 600 + +' +'Forms/Controls +' +Global Const resFRMDIRECTORY% = 701 +Global Const resBTNCHGDIR% = 702 +Global Const resBTNEXIT% = 703 +Global Const resLBLBEGIN = 704 +Global Const resBTNCANCEL% = 705 +Global Const resLBLDESTFILE% = 706 +Global Const resBTNINSTALLNOW% = 707 +Global Const resBTNCHGDRV% = 708 +Global Const resLBLDRIVE% = 709 +Global Const resLBLAVAIL% = 710 +Global Const resLBLNEEDED% = 711 +Global Const resLBLREQUIRED% = 712 +Global Const resLBLNOSPACE% = 713 +Global Const resBTNOK% = 714 +Global Const resLBLDRIVES% = 715 +Global Const resLBLDIRS% = 716 +Global Const resLBLPATH% = 717 +Global Const resLBLRUNNING% = 718 +Global Const resBTNTOOLTIPBEGIN = 719 + +' +' Group.Frm +' +Global Const resGROUPFRM = 800 +Global Const resGROUPLBLMAIN = 801 +Global Const resGROUPLBLGROUP = 802 +Global Const resGROUPLBLGROUPS = 803 +Global Const resGROUPBTNCONTINUE = 804 +Global Const resGROUPINVALIDGROUPNAME = 805 +Global Const resGROUPINVALIDCHARS = 806 +' +'ServerDt.Frm +' +Global Const resNETWORKADDRESS = 900 +Global Const resNETWORKPROTOCOL = 901 +Global Const resOK = 902 +Global Const resCANCEL = 903 +Global Const resREMOTESERVERDETAILSTITLE = 904 +Global Const resREMOTESERVERDETAILSLBL = 905 +Global Const resNOTEPROTOSEQNOTSUPPORTED = 906 +Global Const resNOTEPROTOSEQINVALID = 907 +Global Const resPROTOSEQUNEXPECTEDERR = 908 +Global Const resNOPROTOCOLSINSETUPLST = 909 +Global Const resNOPROTOCOLSSUPPORTED1 = 910 +Global Const resNOPROTOCOLSSUPPORTED2 = 911 +Global Const resSELECTEDPROTONOTSUPPORTED = 912 + + +' Overwrite forms information +Global Const resOVERWRITEFORM = 1000 +Global Const resOVERWRITEINFO = 1001 +Global Const resOVERWRITEFILE = 1002 +Global Const resOVERWRITEDESC = 1003 +Global Const resOVERWRITEVER = 1004 +Global Const resOVERWRITEKEEP = 1005 +Global Const resOVERNOTOALL = 1006 +Global Const resOVERYES = 1007 +Global Const resOVERNO = 1008 +' +'Logging (common with bootstrapper) +' +Global Const resLOG_FILEUPTODATE = 2000 +Global Const resLOG_FILECOPIED = 2001 +Global Const resLOG_ERROR = 2002 +Global Const resLOG_WARNING = 2003 +Global Const resLOG_DURINGACTION = 2004 +Global Const resLOG_CANNOTWRITE = 2005 +Global Const resLOG_CANNOTCREATE = 2006 +Global Const resLOG_DONOTMODIFY = 2007 +Global Const resLOG_FILECONTENTS = 2008 +Global Const resLOG_FILEUSEDFOR = 2009 +Global Const resLOG_USERRESPONDEDWITH = 2012 +Global Const resLOG_CANTRUNAPPREMOVER = 2013 +Global Const resLOG_ABOUTTOREMOVEAPP = 2014 + +Global Const resLOG_vbok = 2100 +Global Const resLOG_vbCancel = 2101 +Global Const resLOG_vbabort = 2102 +Global Const resLOG_vbretry = 2103 +Global Const resLOG_vbignore = 2104 +Global Const resLOG_vbyes = 2105 +Global Const resLOG_vbno = 2106 +Global Const resLOG_IDUNKNOWN = 2107 + + +'Other resources possibly common with the bootstrapper +Global Const resCOMMON_CANTREG = 2200 +Global Const resCOMMON_CANTREGUNEXPECTED = 2201 +Global Const resCOMMON_CANTREGOLE = 2202 +Global Const resCOMMON_CANTREGLOAD = 2203 +Global Const resCOMMON_CANTREGENTRY = 2204 +Global Const resCOMMON_CANTREGREG = 2205 +Global Const resCOMMON_CANTREGAUTPRXRPC1 = 2206 +Global Const resCOMMON_CANTREGAUTPRXRPC2 = 2207 +Global Const resCOMMON_INVALIDFILECHARS = 2209 +Global Const resCOMMON_MULTDIRBASENAME = 2210 +Global Const resCOMMON_CANTFINDSRCFILE = 2211 +Global Const resCOMMON_CANTREGTLB = 2212 +Global Const resCOMMON_RICHED32NOTCOPIED = 2213 +Global Const resCOMMON_AXDISTNOTCOPIED = 2214 +Global Const resCOMMON_WINT351NOTCOPIED = 2215 +Global Const resCOMMON_CANTDOREBOOTCOPY = 2216 diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUPRES.H b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUPRES.H new file mode 100644 index 0000000..f489c07 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/SETUPRES.H @@ -0,0 +1,193 @@ +#include "commonrc.h" // Common to bootstrapper and setup1 + +// +//Global +// +#define resSETMSG 1 + +// +//frmBegin +// +#define resSPECDEST 100 +#define resSPECNODEST 101 + +// +//frmWelcome +// +#define resWELCOME 200 + +// +//frmPath +// +#define resSRCPROMPT 300 +#define resDESTPROMPT 301 +#define resDESTDIR 302 +#define resCREATE 303 +#define resCHANGEDIR 304 +#define resINSTFROM 305 + +// +//Setup1.Bas +// +#define resCALCSPACE 400 +#define resDRVREAD 401 +#define resDRVCHK 402 +#define resCANTOPEN 403 +#define resCANTREAD 404 +#define resCANTWRITE 405 +#define resCHKSPACE 406 +#define resMAKEDIR 407 +#define resODBCMSG1 408 +#define resODBCMSG2 409 +#define resODBCADMIN 410 +#define resASKEXIT 411 +#define resINTERRUPTED 412 +#define resCANRUN 413 +#define resINCOMPLETE 414 +#define resQUITNOW 415 +#define resQUITSETUP 416 +#define resSUCCESS 417 +#define resERROR 418 +#define resALLOCUNIT 419 +#define resSAMEASSRC 420 +#define resNOCREATE 421 +#define resNOTPROTECT 422 +#define resINSERT 423 +#define resDISK 424 +#define resINTO 425 +#define resSECTNAME 426 +#define resINVLINE 427 +#define resDIRSPECIFIED 428 +#define resDIRINVALID 429 +#define resNOTEXIST 430 +#define resDIRINVNAME 431 +#define resWRITEPROT 432 +#define resINUSE 433 +#define resOUTOFSPACE 434 +#define resACCESSVIOLATION 435 +#define resSHARINGVIOLATION 436 +#define resOUTOFMEMORY 437 +#define resCANNOTCREATE 438 +#define resCANNOTDELETE 439 +#define resCANNOTRENAME 440 +#define resCANNOTREADSRC 441 +#define resCANNOTREADDST 442 +#define resBUFFTOOSMALL 443 +#define resNOINSTALL 444 +#define resCHKCONNECT 445 +#define resWARNIGNORE 446 +#define resTEMPDRIVE 447 +#define resERR_VSHARE 448 +#define resCANTREADUNC 449 +#define resCHECKUNC 450 +#define resCANTFINDAPPREMOVALLOG 451 +#define resBADCOMMANDLINE 452 +#define resCANTFINDAPPREMOVALEXE 453 +#define resAPPREMOVALICONNAME 454 +#define resCANTREGISTERAPPREMOVER 455 +#define resCANTCREATEAPPREMOVALICON 456 +#define resOVERWRITEPRIVATE 457 +#define resOVERWRITEPRIVATE2 458 +#define resCANCELSETUP 459 +#define resCHOOSENEWDEST 460 +#define resVERIFYCONTINUE 461 +#define resERR_REG 462 +#define resMICROSOFTSHARED 463 +#define resCANTCREATEPROGRAMGROUP 465 +#define resCANTCREATEPROGRAMICON 466 +#define resCANTCOPYLOG 467 +#define resCANTFINDREGFILE 468 +#define resCANTRUNPROGRAM 469 +#define resREMOTELINENOTFOUND 470 +#define resPROGRAMMANAGER 471 +#define resUNEXPECTEDRPCREGDAT 472 +#define resCANTCOPYPATHTOOLONG 473 +#define resCANTCREATEICONPATHTOOLONG 474 +#define resICONMISSING 475 +// +//frmSetup1 +// +#define resBADDEFDIR 500 +#define resDISKSPACE 501 +#define resPROGMAN 502 +#define resUPDATING 503 +#define resNOEXE 504 +#define resSETUP 505 +#define resNOSETUPLST 506 +#define resUNEXPECTED 507 +#define resNOFOLDERFORICON 508 +#define resSTILLWITHINACTION 509 +#define resREMAUTGROUPNAME 510 +#define resAUTMGR32ICON 511 +#define resRACMGR32ICON 512 +#define resNT4WithoutSP2 513 +#define resINSTALLADO 514 +#define resREBOOT 515 +#define resREBOOTNO 516 +// +//Common.Bas +// +#define resDISKSPCERR 600 + +// +//Forms/Controls +// +#define resBTNINSTALL 700 +#define resFRMDIRECTORY 701 +#define resBTNCHGDIR 702 +#define resBTNEXIT 703 +#define resLBLBEGIN 704 +#define resBTNCANCEL 705 +#define resLBLDESTFILE 706 +#define resBTNINSTALLNOW 707 +#define resBTNCHGDRV 708 +#define resLBLDRIVE 709 +#define resLBLAVAIL 710 +#define resLBLNEEDED 711 +#define resLBLREQUIRED 712 +#define resLBLNOSPACE 713 +#define resBTNOK 714 +#define resLBLDRIVES 715 +#define resLBLDIRS 716 +#define resLBLPATH 717 +#define resLBLRUNNING 718 +#define resBTNTOOLTIPBEGIN 719 +// +// Group.Frm +// +#define resGROUPFRM 800 +#define resGROUPLBLMAIN 801 +#define resGROUPLBLGROUP 802 +#define resGROUPLBLGROUPS 803 +#define resGROUPBTNCONTINUE 804 +#define resGROUPINVALIDGROUPNAME 805 +#define resGROUPINVALIDCHARS 806 +// +//ServerDt.Frm +// +#define resNETWORKADDRESS 900 +#define resNETWORKPROTOCOL 901 +#define resOK 902 +#define resCANCEL 903 +#define resREMOTESERVERDETAILSTITLE 904 +#define resREMOTESERVERDETAILSLBL 905 +#define resNOTEPROTOSEQNOTSUPPORTED 906 +#define resNOTEPROTOSEQINVALID 907 +#define resPROTOSEQUNEXPECTEDERR 908 +#define resNOPROTOCOLSINSETUPLST 909 +#define resNOPROTOCOLSSUPPORTED1 910 +#define resNOPROTOCOLSSUPPORTED2 911 +#define resSELECTEDPROTONOTSUPPORTED 912 + + +// Starting new resources at 1000 +#define resOVERWRITEFORM 1000 +#define resOVERWRITEINFO 1001 +#define resOVERWRITEFILE 1002 +#define resOVERWRITEDESC 1003 +#define resOVERWRITEVER 1004 +#define resOVERWRITEKEEP 1005 +#define resOVERNOTOALL 1006 +#define resOVERYES 1007 +#define resOVERNO 1008 +// Note: commonrc.h starts with ID numbers at 2000 diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/VBSHELL.ODL b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/VBSHELL.ODL new file mode 100644 index 0000000..7614f37 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/VBSHELL.ODL @@ -0,0 +1,43 @@ +[ + uuid(78BF8D80-7B03-11d1-AAB1-00AA00BDD685), + version(1.0), + helpstring("VB-friendly Shell interfaces") +] +library VBShell +{ + importlib("stdole2.tlb"); + [ + odl, + uuid(00000002-0000-0000-C000-000000000046), + version(1.0) + ] + + interface IVBMalloc : IUnknown + { + long Alloc([in] long cb); + long Realloc([in] long pv, [in] long cb); + void Free([in] long pv); + long GetSize([in] long pv); + long DidAlloc([in] long pv); + void HeapMinimize(); + }; + + [ + odl, + uuid(000214E6-0000-0000-C000-000000000046), + version(1.0) + ] + interface IVBShellFolder : IUnknown + { + HRESULT ParseDisplayName([in] long hWndOwner, [in] long pbcReserved, [in] BSTR lpszDisplayName, [out] long* pchEaten, [out] long* ppidl, [in] long* pdwAttributes); + HRESULT EnumObjects(); //Placeholder: EnumObjects(HWND hwndOwner, DWORD grfFlags, LPENUMIDLIST * ppenumIDList); + HRESULT BindToObject(); //Placeholder: BindToObject(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut); + HRESULT BindToStorage(); //Placeholder: BindToStorage(LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvObj); + HRESULT CompareIDs(); //Placeholder: CompareIDs(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2); + HRESULT CreateViewObject(); //Placeholder: CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID * ppvOut); + HRESULT GetAttributesOf(); //Placeholder: GetAttributesOf(UINT cidl, LPCITEMIDLIST * apidl, ULONG * rgfInOut); + HRESULT GetUIObjectOf(); //Placeholder: GetUIObjectOf(HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, UINT * prgfInOut, LPVOID * ppvOut); + HRESULT GetDisplayNameOf(); //Placeholder: GetDisplayNameOf(LPCITEMIDLIST pidl, DWORD uFlags, LPSTRRET lpName); + HRESULT SetNameOf(); //Placeholder: SetNameOf(HWND hwndOwner, LPCITEMIDLIST pidl, LPCOLESTR lpszName, DWORD uFlags, LPITEMIDLIST * ppidlOut); + }; +}; \ No newline at end of file diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/VBSHELL.TLB b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/VBSHELL.TLB new file mode 100644 index 0000000..7a1708f Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/VBSHELL.TLB differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/WELCOME.FRM b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/WELCOME.FRM new file mode 100644 index 0000000..53a77a2 --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/WELCOME.FRM @@ -0,0 +1,121 @@ +VERSION 5.00 +Begin VB.Form frmWelcome + AutoRedraw = -1 'True + BorderStyle = 3 'Fixed Dialog + Caption = "#" + ClientHeight = 3255 + ClientLeft = 540 + ClientTop = 6000 + ClientWidth = 6435 + ClipControls = 0 'False + Icon = "welcome.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 3255 + ScaleWidth = 6435 + Begin VB.CommandButton cmdExit + Cancel = -1 'True + Caption = "#" + Height = 420 + Left = 3705 + MaskColor = &H00000000& + TabIndex = 1 + Top = 2655 + Width = 1440 + End + Begin VB.CommandButton cmdOK + Caption = "#" + Default = -1 'True + Height = 420 + Left = 1470 + MaskColor = &H00000000& + TabIndex = 0 + Top = 2655 + Width = 1440 + End + Begin VB.Image imgWelcome + Height = 480 + Left = 630 + Picture = "welcome.frx":0442 + Top = 330 + Width = 480 + End + Begin VB.Label lblWelcome + AutoSize = -1 'True + Caption = "*" + Height = 180 + Left = 1305 + TabIndex = 2 + Top = 330 + Width = 4800 + WordWrap = -1 'True + End + Begin VB.Label lblRunning + AutoSize = -1 'True + Caption = "#" + Height = 180 + Left = 435 + TabIndex = 3 + Top = 915 + Width = 5535 + WordWrap = -1 'True + End + Begin VB.Shape shpWelcome + BorderColor = &H00000000& + BorderWidth = 2 + Height = 2250 + Left = 210 + Top = 135 + Width = 6015 + End +End +Attribute VB_Name = "frmWelcome" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit +Option Compare Text +'frmWelcome +Private Sub cmdExit_Click() + ExitSetup Me, gintRET_EXIT +End Sub + +Private Sub cmdOK_Click() + Unload Me +End Sub + +Private Sub Form_Load() + Dim intWidth As Integer + + SetFormFont Me + cmdExit.Caption = ResolveResString(resBTNEXIT) + cmdOK.Caption = ResolveResString(resBTNOK) + lblRunning.Caption = ResolveResString(resLBLRUNNING) + + Caption = gstrTitle + intWidth = TextWidth(Caption) + cmdOK.Width * 2 + If intWidth > Width Then + Width = intWidth + End If + + lblWelcome.Caption = ResolveResString(resWELCOME, "|1", gstrAppName) + + shpWelcome.Move (ScaleWidth - shpWelcome.Width) \ 2 + cmdOK.Left = (ScaleWidth - cmdOK.Width * 1.5 - cmdExit.Width) \ 2 + cmdExit.Left = cmdOK.Left + cmdOK.Width * 1.5 + + EtchedLine Me, shpWelcome.Left - 50, cmdOK.Top - cmdOK.Height \ 2, shpWelcome.Width + 100 + + CenterForm Me +End Sub + +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + If UnloadMode <> 1 Then + ExitSetup Me, gintRET_EXIT + Cancel = 1 + End If +End Sub + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/WELCOME.FRX b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/WELCOME.FRX new file mode 100644 index 0000000..fa88a07 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/SETUP1/WELCOME.FRX differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/ST6UNST.EXE b/cadVb/VB98/WIZARDS/PDWIZARD/ST6UNST.EXE new file mode 100644 index 0000000..9e942e5 Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/ST6UNST.EXE differ diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/VB6DEP.INI b/cadVb/VB98/WIZARDS/PDWIZARD/VB6DEP.INI new file mode 100644 index 0000000..dda01cb --- /dev/null +++ b/cadVb/VB98/WIZARDS/PDWIZARD/VB6DEP.INI @@ -0,0 +1,878 @@ + +; Master dependency file for Microsoft Visual Basic 6 Setup Wizard + +;---------------------------------------------------------- +; ENGLISH/DEFAULT +;---------------------------------------------------------- + +[SetupWiz] +Drive1=1.44 MB,1457664,512 +Drive2=2.88 MB,2915328,1024 +Drive3=1.2 MB,1213952,512 +Drive4=720 KB,730112,1024 + +[SetupWiz <0009>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS over NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS over TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios over IPX + +[DAO2535.tlb] +Dest=$(MSDAOPath) +Uses1=DAO350.dll +CABFileName=MSDAO350.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=MSDAO350.exe -Q + +[DAO350.dll] +Dest=$(MSDAOPath) +Uses1=MSJet35.dll +Uses2=MSJtEr35.dll +Uses3=MSJInt35.dll +Uses4=MSVCRT40.dll +Uses5=VB5DB.dll +Register=$(DLLSelfRegister) +CABFileName=MSDAO350.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=MSDAO350.exe -Q + +[MSJet35.dll] +Register=$(DLLSelfRegister) +Dest=$(WinSysPathSysFile) +Uses1=MSJtEr35.dll +Uses2=MSJInt35.dll +Uses3=VBAJet32.dll +Uses4=MSRD2x35.dll +Uses5=MsRepl35.dll +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[MSJtEr35.dll] +Dest=$(WinSysPathSysFile) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[MSJInt35.dll <0009>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResENU.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResENU.inf + +[VBAJet32.dll] +Dest=$(WinSysPathSysFile) +Uses1=ExpSrv.dll +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[ExpSrv.dll] +Dest=$(WinSysPathSysFile) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[MSRD2x35.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[MsRepl35.dll] +Dest=$(WinSysPathSysFile) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[MsLtus35.dll] +Register=$(DLLSelfRegister) +Dest=$(WinSysPathSysFile) +CABFileName=MsLtus35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsLtus35.inf + +[MsPdox35.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +CABFileName=MsPdox35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPdox35.inf + +[MsXbse35.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +CABFileName=MsXbse35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsXbse35.inf + +[MsExcl35.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +CABFileName=MsExcl35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsExcl35.inf + +[MsText35.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +CABFileName=MsText35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsText35.inf + +[ODBC Direct Support] +Uses1=MSRdo20.dll + +[VB5DB.dll] +Dest=$(WinSysPath) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[ODKOB32.dll] +Dest=$(WinSysPath) + +[Ctl3d32.dll] +Dest=$(WinSysPathSysFile) + +[RichEd32.dll] +Dest=$(WinSysPathSysFile) + +; These are files which do not have any dependencies +[Non Dependents] +ST6Unst.exe= +VB6StKit.dll= +_MSRSTRT.exe= +mdac_typ.exe= + +; These are files which will be ignored when referenced by a VB project. +[Do Not Redistribute] +shdocvw.dll= +mshtml.dll= +asp.dll= +asp.tlb= +msdatsrc.tlb= +vb6ext.olb= +msaddndr.tlb= +msaddndr.dll= +mso97.dll= +mso97rt.dll= +DEExt.tlb= + +[VB Runtime] +Dest=$(WinSysPathSysFile) +Uses1=MSVBVM60.dll +Uses2=OleAut32.dll +Uses3=OlePro32.dll +Uses4=AsycFilt.dll +Uses5=StdOle2.tlb +Uses6=ComCat.dll +CABFileName=VBRun60.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=VBRun60.exe + +[MSVBVM50.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) +CABFileName=MSVBVM50.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb5 +CABINFFile=MSVBVM50.inf + +[DCOM Client Support] +Uses1=CliReg32.exe + +[RA Client Support] +Uses1=AutPrx32.dll +Uses2=CliReg32.exe + +[RA Server Support] +Uses1=AutPrx32.dll +Uses2=AutMgr32.exe +Uses3=RACMgr32.exe + +[CliReg32.exe] +Dest=$(WinSysPath) +CABFileName=MSRACli.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSRACli.inf + +[AutPrx32.dll] +Register=$(DLLSelfRegister) +Dest=$(WinSysPath) +CABFileName=MSRACli.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSRACli.inf + +[AutMgr32.exe] +Register=$(EXESelfRegister) +Dest=$(WinSysPath) +Uses1=AutPrx32.dll +CABFileName=MSRACli.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSRACli.inf + +[RACMgr32.exe] +Dest=$(WinSysPath) +Uses1=mscomctl.ocx +Uses2=RACReg32.dll +Uses3=ODKOB32.dll + +[RACReg32.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) + +[DlgObjs.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) + +[Controls Design-Time Support] +Uses1=MsStkPrp.dll + +[MsStkPrp.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +CABFileName=MsStkPrp.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsStkPrp.inf + +[MSVCRT40.dll] +Dest=$(WinSysPathSysFile) +CABFileName=MSVCRT40.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSVCRT40.inf + +[DBAdapt.dll] +Dest=$(WinSysPathSysFile) +Uses1=MSDAOSP.dll + +[MSADOR15.dll] +Dest=$(CommonFilesSys)\ADO +Replace=mdac_typ.exe +CABFileName=mdac_typ.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=setup.exe + +[MSADCO.dll] +Dest=$(CommonFilesSys)\MSADC +Replace=mdac_typ.exe +CABFileName=mdac_typ.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=setup.exe + +[MSDAOSP.dll] +Dest=$(CommonFilesSys)\OLE DB +Replace=mdac_typ.exe +CABFileName=mdac_typ.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=setup.exe + +[MSADO15.dll] +Dest=$(CommonFilesSys)\ADO +Replace=mdac_typ.exe +CABFileName=mdac_typ.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=setup.exe + +[MSADCF.dll] +Dest=$(CommonFilesSys)\MSADC +Replace=mdac_typ.exe +CABFileName=mdac_typ.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=setup.exe + +[ODBC32.dll] +Dest=$(WinSysPathSysFile) +Replace=mdac_typ.exe +CABFileName=mdac_typ.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABRunFile=setup.exe + +[HTML Help Support] +Uses1=HHCtrl.ocx + +[HHCtrl.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=ITSS.dll +Uses2=ITIRCL.dll +Uses3=HH.exe + +[ITSS.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) + +[ITIRCL.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) + +[HH.exe] +Dest=$(WinSysPath) + +;---------------------------------------------------------- +; German (0007) +;---------------------------------------------------------- + +[SetupWiz <0007>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <0007>] +Uses1=VB6DE.dll + +[VB6DE.dll <0007>] +Dest=$(WinSysPath) +CABFileName=VB6DE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6DE.inf + +[MsStkPrp.dll <0007>] +Uses1=MsPrpDE.dll + +[MsPrpDE.dll <0007>] +CABFileName=MsPrpDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpDE.inf + +[MSJInt35.dll <0007>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResDE.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResDE.inf + +;---------------------------------------------------------- +; French (000C) +;---------------------------------------------------------- + +[SetupWiz <000C>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <000C>] +Uses1=VB6FR.dll + +[VB6FR.dll <000C>] +Dest=$(WinSysPath) +CABFileName=VB6FR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6FR.inf + +[MsStkPrp.dll <000C>] +Uses1=MsPrpFR.dll + +[MsPrpFR.dll <000C>] +CABFileName=MsPrpFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpFR.inf + +[MSJInt35.dll <000C>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResFR.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResFR.inf + +;---------------------------------------------------------- +; Italian (0010) +;---------------------------------------------------------- + +[SetupWiz <0010>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <0010>] +Uses1=VB6IT.dll + +[VB6IT.dll <0010>] +Dest=$(WinSysPath) +CABFileName=VB6IT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6IT.inf + +[MsStkPrp.dll <0010>] +Uses1=MsPrpIT.dll + +[MsPrpIT.dll <0010>] +CABFileName=MsPrpIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpIT.inf + +[MSJInt35.dll <0010>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResIT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResIT.inf + +;---------------------------------------------------------- +; Spanish (000A) +;---------------------------------------------------------- + +[SetupWiz <000A>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <000A>] +Uses1=VB6ES.dll + +[VB6ES.dll <000A>] +Dest=$(WinSysPath) +CABFileName=VB6ES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6ES.inf + +[MsStkPrp.dll <000A>] +Uses1=MsPrpES.dll + +[MsPrpES.dll <000A>] +CABFileName=MsPrpES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpES.inf + +[MSJInt35.dll <000A>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResES.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResES.inf + +;---------------------------------------------------------- +; Japanese (0011) +;---------------------------------------------------------- + +[SetupWiz <0011>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <0011>] +Uses1=VB6JP.dll + +[VB6JP.dll <0011>] +Dest=$(WinSysPath) +CABFileName=VB6JP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6JP.inf + +[MsStkPrp.dll <0011>] +Uses1=MsPrpJP.dll + +[MsPrpJP.dll <0011>] +CABFileName=MsPrpJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpJP.inf + +[MSJInt35.dll <0011>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResJP.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResJP.inf + +[RichEd32.dll <0011>] +Uses1=GAPI32.dll + +[GAPI32.dll <0011>] +Dest=$(WinSysPathSysFile) + +;---------------------------------------------------------- +; Korean (0012) +;---------------------------------------------------------- + +[SetupWiz <0012>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <0012>] +Uses1=VB6KO.dll + +[VB6KO.dll <0012>] +Dest=$(WinSysPath) +CABFileName=VB6KO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6KO.inf + +[MsStkPrp.dll <0012>] +Uses1=MsPrpKO.dll + +[MsPrpKO.dll <0012>] +CABFileName=MsPrpKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpKO.inf + +[MSJInt35.dll <0012>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResKO.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResKO.inf + +[RichEd32.dll <0012>] +Uses1=GAPI32.dll + +[GAPI32.dll <0012>] +Dest=$(WinSysPathSysFile) + +;---------------------------------------------------------- +; Chinese Traditional (0404) +;---------------------------------------------------------- + +[SetupWiz <0404>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <0404>] +Uses1=VB6CHT.dll + +[VB6CHT.dll <0404>] +Dest=$(WinSysPath) +CABFileName=VB6CHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6CHT.inf + +[MsStkPrp.dll <0404>] +Uses1=MsPrpCHT.dll + +[MsPrpCHT.dll <0404>] +CABFileName=MsPrpCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpCHT.inf + +[MSJInt35.dll <0404>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResCHT.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResCHT.inf + +[RichEd32.dll <0404>] +Uses1=GAPI32.dll + +[GAPI32.dll <0404>] +Dest=$(WinSysPathSysFile) + +;---------------------------------------------------------- +; Chinese Simplified (0804) +;---------------------------------------------------------- + +[SetupWiz <0804>] +Protocol1=ncacn_ip_tcp,TCP/IP +Protocol2=ncacn_nb_nb,NetBIOS / NetBEUI +Protocol3=ncacn_nb_tcp,NetBIOS / TCP +Protocol4=ncacn_np,Named Pipes +Protocol5=ncadg_ipx,Datagram - IPX +Protocol6=ncacn_spx,SPX +Protocol7=ncadg_ip_udp,Datagram - UDP +Protocol8=ncacn_nb_ipx,Netbios / IPX + +[VB Runtime <0804>] +Uses1=VB6CHS.dll + +[VB6CHS.dll <0804>] +Dest=$(WinSysPath) +CABFileName=VB6CHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=VB6CHS.inf + +[MsStkPrp.dll <0804>] +Uses1=MsPrpCHS.dll + +[MsPrpCHS.dll <0804>] +CABFileName=MsPrpCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MsPrpCHS.inf + +[MSJInt35.dll <0804>] +Dest=$(WinSysPathSysFile) +CABFileName=JtResCHS.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=JtResCHS.inf + +[RichEd32.dll <0804>] +Uses1=GAPI32.dll + +[GAPI32.dll <0804>] +Dest=$(WinSysPathSysFile) + +;********************************************************** +; Backwards-Compatibility sections +;********************************************************** + +[ODBCJt32.dll] +Dest=$(WinSysPathSysFile) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[ODBCJI32.dll] +Dest=$(WinSysPathSysFile) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[ODBCTL32.dll] +Dest=$(WinSysPathSysFile) +CABFileName=MSJet35.cab +CABDefaultURL=http://activex.microsoft.com/controls/vb6 +CABINFFile=MSJet35.inf + +[MSVCRT20.dll] +Dest=$(WinSysPathSysFile) + +[MFC40.dll] +Register=$(DLLSelfRegister) +Dest=$(WinSysPathSysFile) +Uses1=OlePro32.dll +Uses2=MSVCRT40.dll +CABFileName=MFC40.cab +CABDefaultURL=http://activex.microsoft.com/controls/vc +CABRunFile=MFC40.exe -Q + +[Grid32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[AniBtn32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[Gauge32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[KeySta32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[MSOutl32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[Spin32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[ThreeD32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[Graph32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll +Uses2=gsw32.exe +Uses3=gswdll32.dll + +[gsw32.exe] +Dest=$(WinSysPath) + +[gswdll32.dll] +Dest=$(WinSysPath) + +[MSRDC32.ocx] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll +Uses2=MSRDO32.dll + +[MSRDO32.dll] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MFC40.dll + +[MSJtEr32.dll] +Dest=$(WinSysPath) + +[DAO2532.tlb] +Dest=$(MSDAOPath) +Uses1=DAO3032.dll + +[MSJT3032.dll] +Dest=$(WinSysPathSysFile) +Uses1=VEN2232.OLB +Uses2=MSJtEr32.dll +Uses3=MSJInt32.dll +Uses4=VBAJet32.dll +Uses5=VBDB32.dll +Uses6=MSRD2x32.dll +Uses7=MSWng300.dll +Uses8=ODBCJt32.dll +Uses9=ODBCJI32.dll +Uses10=ODBCTL32.dll +Uses11=VBAR2232.dll + +[VBAR2232.dll] +Dest=$(WinSysPathSysFile) + +[DAO3032.dll] +Dest=$(MSDAOPath) +Uses1=MSJT3032.dll +Register=$(DLLSelfRegister) + +[MSPX3032.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) + +[MSXB3032.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) + +[MSXL3032.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) + +[MSTX3032.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) + +[MSLT3032.dll] +Register=$(DLLSelfRegister) +Dest=$(WinSysPathSysFile) + +[MSRD2x32.dll] +Dest=$(WinSysPathSysFile) +Register=$(DLLSelfRegister) + +[VEN2232.OLB] +Dest=$(WinSysPathSysFile) + +[MSJInt32.dll] +Dest=$(WinSysPathSysFile) + +[MSWng300.dll] +Dest=$(WinSysPathSysFile) + +[VBDB32.dll] +Dest=$(WinSysPath) + +;---------------------------------------------------------- +; German (0007) +; Compatibility section +;---------------------------------------------------------- + +[MFC40.dll <0007>] +Dest=$(WinSysPath) +Uses1=MFC40Loc.dll + +[MFC40Loc.dll <0007>] +Dest=$(WinSysPathSysFile) + +[MSRdo32.dll <0007>] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MSRDDE32.dll + +;---------------------------------------------------------- +; Spanish (000A) +; Compatibility section +;---------------------------------------------------------- + +[MFC40.dll <000A>] +Dest=$(WinSysPath) +Uses1=MFC40Loc.dll + +[MFC40Loc.dll <000A>] +Dest=$(WinSysPathSysFile) + +[MSRdo32.dll <000A>] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MSRDES32.dll + +;---------------------------------------------------------- +; French (000C) +; Compatibility section +;---------------------------------------------------------- + +[MFC40.dll <000C>] +Dest=$(WinSysPath) +Uses1=MFC40Loc.dll + +[MFC40Loc.dll <000C>] +Dest=$(WinSysPathSysFile) + +[MSRdo32.dll <000C>] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MSRDFR32.dll + +;---------------------------------------------------------- +; Italian (0010) +; Compatibility section +;---------------------------------------------------------- + +[MFC40.dll <0010>] +Dest=$(WinSysPath) +Uses1=MFC40Loc.dll + +[MFC40Loc.dll <0010>] +Dest=$(WinSysPathSysFile) + +[MSRdo32.dll <0010>] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MSRDIT32.dll + +;---------------------------------------------------------- +; Japanese (0011) +; Compatibility section +;---------------------------------------------------------- + +[MFC40.dll <0011>] +Dest=$(WinSysPath) +Uses1=MFC40Loc.dll + +[MFC40Loc.dll <0011>] +Dest=$(WinSysPathSysFile) + +[MSRdo32.dll <0011>] +Dest=$(WinSysPath) +Register=$(DLLSelfRegister) +Uses1=MSRDJP32.dll + diff --git a/cadVb/VB98/WIZARDS/PDWIZARD/VB6STKIT.DLL b/cadVb/VB98/WIZARDS/PDWIZARD/VB6STKIT.DLL new file mode 100644 index 0000000..21603cc Binary files /dev/null and b/cadVb/VB98/WIZARDS/PDWIZARD/VB6STKIT.DLL differ diff --git a/cadVb/VB98/WIZARDS/PROPPGWZ.DLL b/cadVb/VB98/WIZARDS/PROPPGWZ.DLL new file mode 100644 index 0000000..21e110d Binary files /dev/null and b/cadVb/VB98/WIZARDS/PROPPGWZ.DLL differ diff --git a/cadVb/VB98/WIZARDS/RC.EXE b/cadVb/VB98/WIZARDS/RC.EXE new file mode 100644 index 0000000..0f22a01 Binary files /dev/null and b/cadVb/VB98/WIZARDS/RC.EXE differ diff --git a/cadVb/VB98/WIZARDS/RCDLL.DLL b/cadVb/VB98/WIZARDS/RCDLL.DLL new file mode 100644 index 0000000..8dcecee Binary files /dev/null and b/cadVb/VB98/WIZARDS/RCDLL.DLL differ diff --git a/cadVb/VB98/WIZARDS/RESEDIT.DLL b/cadVb/VB98/WIZARDS/RESEDIT.DLL new file mode 100644 index 0000000..99b3359 Binary files /dev/null and b/cadVb/VB98/WIZARDS/RESEDIT.DLL differ diff --git a/cadVb/VB98/WIZARDS/RSEDTCHS.DLL b/cadVb/VB98/WIZARDS/RSEDTCHS.DLL new file mode 100644 index 0000000..934c1bd Binary files /dev/null and b/cadVb/VB98/WIZARDS/RSEDTCHS.DLL differ diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/CONFIRM.FRM b/cadVb/VB98/WIZARDS/TEMPLATE/CONFIRM.FRM new file mode 100644 index 0000000..bcacfa4 --- /dev/null +++ b/cadVb/VB98/WIZARDS/TEMPLATE/CONFIRM.FRM @@ -0,0 +1,111 @@ +VERSION 5.00 +Begin VB.Form frmConfirm + BorderStyle = 3 'Fixed Dialog + Caption = "Form1" + ClientHeight = 2595 + ClientLeft = 3540 + ClientTop = 5310 + ClientWidth = 5325 + ControlBox = 0 'False + BeginProperty Font + Name = "Tahoma" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Icon = "Confirm.frx":0000 + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 2595 + ScaleWidth = 5325 + StartUpPosition = 2 'Ļ + Tag = "10000" + Begin VB.CheckBox chkDontShowAgain + Caption = "´βʾ" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 270 + Left = 420 + MaskColor = &H00000000& + TabIndex = 1 + Tag = "10002" + Top = 1380 + Width = 4590 + End + Begin VB.CommandButton cmdOK + Caption = "ȷ" + Default = -1 'True + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 495 + Left = 1680 + MaskColor = &H00000000& + TabIndex = 0 + Tag = "10003" + Top = 1935 + Width = 1875 + End + Begin VB.Image Image1 + Height = 930 + Left = 195 + Picture = "Confirm.frx":000C + Stretch = -1 'True + Top = 210 + Width = 975 + End + Begin VB.Label lblConfirm + Caption = "lblConfirm" + Height = 990 + Left = 1560 + TabIndex = 2 + Tag = "10001" + Top = 165 + Width = 3480 + WordWrap = -1 'True + End +End +Attribute VB_Name = "frmConfirm" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Private Sub chkDontShowAgain_Click() + On Error Resume Next + + If chkDontShowAgain.Value = vbChecked Then + SaveSetting APP_CATEGORY, WIZARD_NAME, CONFIRM_KEY, DONTSHOW_CONFIRM + Else + SaveSetting APP_CATEGORY, WIZARD_NAME, CONFIRM_KEY, vbNullString + End If + +End Sub + +Private Sub cmdOK_Click() + Unload Me +End Sub + +Private Sub Form_Load() + LoadResStrings Me +End Sub + diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/CONFIRM.FRX b/cadVb/VB98/WIZARDS/TEMPLATE/CONFIRM.FRX new file mode 100644 index 0000000..8596854 Binary files /dev/null and b/cadVb/VB98/WIZARDS/TEMPLATE/CONFIRM.FRX differ diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.BAS b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.BAS new file mode 100644 index 0000000..c7ef4f3 --- /dev/null +++ b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.BAS @@ -0,0 +1,216 @@ +Attribute VB_Name = "modWizard" +Option Explicit + +Global Const WIZARD_NAME = "WizardTemplate" + +Declare Function WritePrivateProfileString& Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal AppName$, ByVal KeyName$, ByVal keydefault$, ByVal FileName$) + +'WinHelp +Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long +Public Const HELP_QUIT = &H2 ' ֹ +Public Const HELP_CONTENTS = &H3& ' ʾ/ +Public Const HELP_CONTEXT = &H1 ' ulTopic ʾ +Public Const HELP_INDEX = &H3 ' ʾ + +Global Const APP_CATEGORY = "Wizards" + +Global Const CONFIRM_KEY = "ConfirmScreen" +Global Const DONTSHOW_CONFIRM = "DontShow" + + +'-------------------------------------------------------------------------- +'ڱִ +'Ŀ VBADDIN.INI ,ļ +'´μ VB ʱӳЧ +'-------------------------------------------------------------------------- +Sub AddToINI() + Debug.Print WritePrivateProfileString("Add-Ins32", WIZARD_NAME & ".Wizard", "0", "VBADDIN.INI") +End Sub + +Function GetResString(nRes As Integer) As String + Dim sTmp As String + Dim sRetStr As String + + Do + sTmp = LoadResString(nRes) + If Right(sTmp, 1) = "_" Then + sRetStr = sRetStr + VBA.Left(sTmp, Len(sTmp) - 1) + Else + sRetStr = sRetStr + sTmp + End If + nRes = nRes + 1 + Loop Until Right(sTmp, 1) <> "_" + GetResString = sRetStr + +End Function + +Function GetField(sBuffer As String, sSep As String) As String + Dim p As Integer + + p = InStr(sBuffer & sSep, sSep) + GetField = VBA.Left(sBuffer, p - 1) + sBuffer = Mid(sBuffer, p + Len(sSep)) + +End Function + +Sub LoadResStrings(frm As Form) + On Error Resume Next + + Dim ctl As Control + Dim obj As Object + + 'ôı + If IsNumeric(frm.Tag) Then + frm.Caption = LoadResString(CInt(frm.Tag)) + End If + + 'Բ˵ʹ caption ,ؼ + 'ʹ Tag ÿؼı + For Each ctl In frm.Controls + If TypeName(ctl) = "Menu" Then + If IsNumeric(ctl.Caption) Then + If Err = 0 Then + ctl.Caption = LoadResString(CInt(ctl.Caption)) + Else + Err = 0 + End If + End If + ElseIf TypeName(ctl) = "TabStrip" Then + For Each obj In ctl.Tabs + If IsNumeric(obj.Tag) Then + obj.Caption = LoadResString(CInt(obj.Tag)) + End If + 'һʾ + If IsNumeric(obj.ToolTipText) Then + If Err = 0 Then + obj.ToolTipText = LoadResString(CInt(obj.ToolTipText)) + Else + Err = 0 + End If + End If + Next + ElseIf TypeName(ctl) = "Toolbar" Then + For Each obj In ctl.Buttons + If IsNumeric(obj.Tag) Then + obj.ToolTipText = LoadResString(CInt(obj.Tag)) + End If + Next + ElseIf TypeName(ctl) = "ListView" Then + For Each obj In ctl.ColumnHeaders + If IsNumeric(obj.Tag) Then + obj.Text = LoadResString(CInt(obj.Tag)) + End If + Next + Else + If IsNumeric(ctl.Tag) Then + If Err = 0 Then + ctl.Caption = GetResString(CInt(ctl.Tag)) + Else + Err = 0 + End If + End If + 'һʾ + If IsNumeric(ctl.ToolTipText) Then + If Err = 0 Then + ctl.ToolTipText = LoadResString(CInt(ctl.ToolTipText)) + Else + Err = 0 + End If + End If + End If + Next + +End Sub + +'================================================== +'Ŀ: ÷ݴԴļַ +' λеַ +' +': sString = ַ +' sReplacement = 汻ռݵַ +' sReplacement2 = 汻ռݵڶַ +' +': ռȫλõµַ +'================================================== +Function ReplaceTopicTokens(sString As String, _ + sReplacement As String, _ + sReplacement2 As String) As String + On Error Resume Next + + Dim p As Integer + Dim sTmp As String + + Const TOPIC_TEXT = "" + Const TOPIC_TEXT2 = "" + + sTmp = sString + Do + p = InStr(sTmp, TOPIC_TEXT) + If p Then + sTmp = VBA.Left(sTmp, p - 1) + sReplacement + Mid(sTmp, p + Len(TOPIC_TEXT)) + End If + Loop While p + + If Len(sReplacement2) > 0 Then + Do + p = InStr(sTmp, TOPIC_TEXT2) + If p Then + sTmp = VBA.Left(sTmp, p - 1) + sReplacement2 + Mid(sTmp, p + Len(TOPIC_TEXT2)) + End If + Loop While p + End If + + ReplaceTopicTokens = sTmp + +End Function + +Public Function GetResData(sResName As String, sResType As String) As String + Dim sTemp As String + Dim p As Integer + + sTemp = StrConv(LoadResData(sResName, sResType), vbUnicode) + p = InStr(sTemp, vbNullChar) + If p Then sTemp = VBA.Left$(sTemp, p - 1) + GetResData = sTemp +End Function + +Function AddToAddInCommandBar(VBInst As Object, sCaption As String, oBitmap As Object) As Object 'Office.CommandBarControl + On Error GoTo AddToAddInCommandBarErr + + Dim c As Integer + Dim cbMenuCommandBar As Object 'Office.CommandBarControl ' + Dim cbMenu As Object + + '쿴Ƿҵӳ˵ + Set cbMenu = VBInst.CommandBars("Add-Ins") + If cbMenu Is Nothing Then + 'ûпõIJ˵ʧ + Exit Function + End If + + ' + Set cbMenuCommandBar = cbMenu.Controls.Add(1) + c = cbMenu.Controls.Count - 1 + If cbMenu.Controls(c).BeginGroup And _ + Not cbMenu.Controls(c - 1).BeginGroup Then + 'ǵһӵӳ,Ҫһָ + cbMenuCommandBar.BeginGroup = True + End If + 'ñ + cbMenuCommandBar.Caption = sCaption + 'ȡ: (㱻Ҫ) + cbMenuCommandBar.OnAction = "hello" + 'ͼ굽 + Clipboard.SetData oBitmap + 'Ϊťͼ + cbMenuCommandBar.PasteFace + + Set AddToAddInCommandBar = cbMenuCommandBar + + Exit Function +AddToAddInCommandBarErr: + +End Function + + + diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.DCA b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.DCA new file mode 100644 index 0000000..08382cf Binary files /dev/null and b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.DCA differ diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.DSR b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.DSR new file mode 100644 index 0000000..9d9619b --- /dev/null +++ b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.DSR @@ -0,0 +1,79 @@ +VERSION 5.00 +Begin {AC0714F6-3D04-11D1-AE7D-00A0C90F26F4} Wizard + ClientHeight = 3690 + ClientLeft = 1740 + ClientTop = 1545 + ClientWidth = 4005 + _ExtentX = 7064 + _ExtentY = 6509 + _Version = 393216 + DisplayName = "Wizard Template" + AppName = "Visual Basic" + AppVer = "Visual Basic 98 (ver 6.0)" + LoadName = "None" + LoadBehavior = 2 + RegLocation = "HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0" + CmdLineSupport = -1 'True +End +Attribute VB_Name = "Wizard" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = True +Option Explicit + +Dim mcbMenuCommandBar As Office.CommandBarControl ' +Public WithEvents MenuHandler As CommandBarEvents '¼ +Attribute MenuHandler.VB_VarHelpID = -1 +Dim mfrmWizard As frmWizard +Dim VBInstance As VBIDE.VBE + + +'------------------------------------------------------ +'ӳ VB ˵ +' VB ӳ +'------------------------------------------------------ +Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) + On Error GoTo error_handler + + Set VBInstance = Application + + If ConnectMode = ext_cm_External Then + '򵼹 + LoadMe + Else + Set mcbMenuCommandBar = AddToAddInCommandBar(VBInstance, LoadResString(15), LoadResPicture(5000, 0)) + 'ȡ¼ + Set Me.MenuHandler = VBInstance.Events.CommandBarEvents(mcbMenuCommandBar) + End If + + Exit Sub + +error_handler: + MsgBox Err.Description +End Sub + +'------------------------------------------------------ +' VB ˵ɾӳ +' VB ӳ +'------------------------------------------------------ +Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant) + 'ɾĿ + mcbMenuCommandBar.Delete +End Sub + +' IDE е˵ʱ,¼ +Private Sub MenuHandler_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean) + LoadMe +End Sub + +Private Sub LoadMe() + Set mfrmWizard = New frmWizard + ' vb ʵģ + Set mfrmWizard.VBInst = VBInstance + 'زʾ + mfrmWizard.Show vbModal + Set mfrmWizard = Nothing +End Sub + + diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.FRM b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.FRM new file mode 100644 index 0000000..8a76bfa --- /dev/null +++ b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.FRM @@ -0,0 +1,662 @@ +VERSION 5.00 +Begin VB.Form frmWizard + Appearance = 0 'Flat + BorderStyle = 3 'Fixed Dialog + Caption = "??? Wizard" + ClientHeight = 5055 + ClientLeft = 1965 + ClientTop = 1815 + ClientWidth = 7155 + ControlBox = 0 'False + BeginProperty Font + Name = "Tahoma" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Icon = "Wizard.frx":0000 + KeyPreview = -1 'True + LinkTopic = "Form1" + LockControls = -1 'True + MaxButton = 0 'False + MinButton = 0 'False + ScaleHeight = 5055 + ScaleWidth = 7155 + Tag = "10" + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Introduction Screen" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4425 + Index = 0 + Left = -10000 + TabIndex = 6 + Tag = "1000" + Top = 0 + Width = 7155 + Begin VB.CheckBox chkShowIntro + Caption = "chkShowIntro" + Height = 315 + Left = 2700 + MaskColor = &H00000000& + TabIndex = 18 + Tag = "1002" + Top = 3000 + Width = 3810 + End + Begin VB.Label lblStep + Appearance = 0 'Flat + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "lblStep" + ForeColor = &H80000008& + Height = 1470 + Index = 0 + Left = 2700 + TabIndex = 7 + Tag = "1001" + Top = 210 + Width = 3960 + End + Begin VB.Image imgStep + BorderStyle = 1 'Fixed Single + Height = 1995 + Index = 0 + Left = 210 + Picture = "Wizard.frx":0442 + Stretch = -1 'True + Top = 210 + Width = 2070 + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Step 1" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4425 + Index = 1 + Left = -10000 + TabIndex = 8 + Tag = "2000" + Top = 0 + Width = 7155 + Begin VB.Label lblStep + Appearance = 0 'Flat + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "lblStep" + ForeColor = &H80000008& + Height = 1470 + Index = 1 + Left = 2700 + TabIndex = 9 + Tag = "2001" + Top = 210 + Width = 3960 + End + Begin VB.Image imgStep + BorderStyle = 1 'Fixed Single + Height = 1995 + Index = 1 + Left = 210 + Picture = "Wizard.frx":4D18 + Stretch = -1 'True + Top = 210 + Width = 2070 + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Step 2" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4425 + Index = 2 + Left = -10000 + TabIndex = 10 + Tag = "2002" + Top = 0 + Width = 7155 + Begin VB.Label lblStep + Appearance = 0 'Flat + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "lblStep" + ForeColor = &H80000008& + Height = 1470 + Index = 2 + Left = 2700 + TabIndex = 11 + Tag = "2003" + Top = 210 + Width = 3960 + End + Begin VB.Image imgStep + BorderStyle = 1 'Fixed Single + Height = 1995 + Index = 2 + Left = 210 + Picture = "Wizard.frx":95EE + Stretch = -1 'True + Top = 210 + Width = 2070 + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Step 3" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4425 + Index = 3 + Left = -10000 + TabIndex = 12 + Tag = "2004" + Top = 0 + Width = 7155 + Begin VB.Label lblStep + Appearance = 0 'Flat + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "lblStep" + ForeColor = &H80000008& + Height = 1470 + Index = 3 + Left = 2700 + TabIndex = 13 + Tag = "2005" + Top = 210 + Width = 3960 + End + Begin VB.Image imgStep + BorderStyle = 1 'Fixed Single + Height = 1995 + Index = 3 + Left = 210 + Picture = "Wizard.frx":DEC4 + Stretch = -1 'True + Top = 210 + Width = 2070 + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Step 4" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4425 + Index = 4 + Left = -10000 + TabIndex = 14 + Tag = "2006" + Top = 0 + Width = 7155 + Begin VB.Label lblStep + Appearance = 0 'Flat + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "lblStep" + ForeColor = &H80000008& + Height = 1470 + Index = 4 + Left = 2700 + TabIndex = 15 + Tag = "2007" + Top = 210 + Width = 3960 + End + Begin VB.Image imgStep + BorderStyle = 1 'Fixed Single + Height = 1995 + Index = 4 + Left = 210 + Picture = "Wizard.frx":1279A + Stretch = -1 'True + Top = 210 + Width = 2070 + End + End + Begin VB.Frame fraStep + BorderStyle = 0 'None + Caption = "Finished!" + Enabled = 0 'False + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 4425 + Index = 5 + Left = -10000 + TabIndex = 16 + Tag = "3000" + Top = 0 + Width = 7155 + Begin VB.CheckBox chkSaveSettings + Caption = "chkSaveSettings" + Height = 552 + Left = 3210 + MaskColor = &H00000000& + TabIndex = 19 + Tag = "3003" + Top = 1650 + Width = 3552 + End + Begin VB.Label lblStep + Appearance = 0 'Flat + BackColor = &H80000005& + BackStyle = 0 'Transparent + Caption = "lblStep" + ForeColor = &H80000008& + Height = 1470 + Index = 5 + Left = 3210 + TabIndex = 17 + Tag = "3001" + Top = 210 + Width = 3960 + End + Begin VB.Image imgStep + BorderStyle = 1 'Fixed Single + Height = 3075 + Index = 5 + Left = 210 + Picture = "Wizard.frx":17070 + Stretch = -1 'True + Top = 210 + Width = 2430 + End + End + Begin VB.PictureBox picNav + Align = 2 'Align Bottom + Appearance = 0 'Flat + BorderStyle = 0 'None + BeginProperty Font + Name = "MS Sans Serif" + Size = 8.25 + Charset = 0 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + ForeColor = &H80000008& + Height = 570 + Left = 0 + ScaleHeight = 570 + ScaleWidth = 7155 + TabIndex = 0 + Top = 4485 + Width = 7155 + Begin VB.CommandButton cmdNav + Caption = "(&F)" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 312 + Index = 4 + Left = 5910 + MaskColor = &H00000000& + TabIndex = 5 + Tag = "104" + Top = 120 + Width = 1092 + End + Begin VB.CommandButton cmdNav + Caption = "һ(&N)" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 312 + Index = 3 + Left = 4545 + MaskColor = &H00000000& + TabIndex = 4 + Tag = "103" + Top = 120 + Width = 1092 + End + Begin VB.CommandButton cmdNav + Caption = "һ(&B)" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 312 + Index = 2 + Left = 3435 + MaskColor = &H00000000& + TabIndex = 3 + Tag = "102" + Top = 120 + Width = 1092 + End + Begin VB.CommandButton cmdNav + Cancel = -1 'True + Caption = "ȡ" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 312 + Index = 1 + Left = 2250 + MaskColor = &H00000000& + TabIndex = 2 + Tag = "101" + Top = 120 + Width = 1092 + End + Begin VB.CommandButton cmdNav + Caption = "" + BeginProperty Font + Name = "" + Size = 9 + Charset = 134 + Weight = 400 + Underline = 0 'False + Italic = 0 'False + Strikethrough = 0 'False + EndProperty + Height = 312 + Index = 0 + Left = 108 + MaskColor = &H00000000& + TabIndex = 1 + Tag = "100" + Top = 120 + Width = 1092 + End + Begin VB.Line Line1 + BorderColor = &H00808080& + Index = 1 + X1 = 108 + X2 = 7012 + Y1 = 0 + Y2 = 0 + End + Begin VB.Line Line1 + BorderColor = &H00FFFFFF& + Index = 0 + X1 = 108 + X2 = 7012 + Y1 = 24 + Y2 = 24 + End + End +End +Attribute VB_Name = "frmWizard" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Option Explicit + +Const NUM_STEPS = 6 + +Const RES_ERROR_MSG = 30000 + +'BASE VALUE FOR HELP FILE FOR THIS WIZARD: +Const HELP_BASE = 1000 +Const HELP_FILE = "MYWIZARD.HLP" + +Const BTN_HELP = 0 +Const BTN_CANCEL = 1 +Const BTN_BACK = 2 +Const BTN_NEXT = 3 +Const BTN_FINISH = 4 + +Const STEP_INTRO = 0 +Const STEP_1 = 1 +Const STEP_2 = 2 +Const STEP_3 = 3 +Const STEP_4 = 4 +Const STEP_FINISH = 5 + +Const DIR_NONE = 0 +Const DIR_BACK = 1 +Const DIR_NEXT = 2 + +Const FRM_TITLE = "Blank Wizard" +Const INTRO_KEY = "IntroductionScreen" +Const SHOW_INTRO = "ShowIntro" +Const TOPIC_TEXT = "" + +'module level vars +Dim mnCurStep As Integer +Dim mbHelpStarted As Boolean + +Public VBInst As VBIDE.VBE +Dim mbFinishOK As Boolean + +Private Sub chkShowIntro_Click() + If chkShowIntro.Value Then + SaveSetting APP_CATEGORY, WIZARD_NAME, INTRO_KEY, SHOW_INTRO + Else + SaveSetting APP_CATEGORY, WIZARD_NAME, INTRO_KEY, vbNullString + End If +End Sub + +Private Sub cmdNav_Click(Index As Integer) + Dim nAltStep As Integer + Dim lHelpTopic As Long + Dim rc As Long + + Select Case Index + Case BTN_HELP + mbHelpStarted = True + lHelpTopic = HELP_BASE + 10 * (1 + mnCurStep) + rc = WinHelp(Me.hwnd, HELP_FILE, HELP_CONTEXT, lHelpTopic) + + Case BTN_CANCEL + Unload Me + + Case BTN_BACK + 'رת澯 + nAltStep = mnCurStep - 1 + SetStep nAltStep, DIR_BACK + + Case BTN_NEXT + 'رת澯 + nAltStep = mnCurStep + 1 + SetStep nAltStep, DIR_NEXT + + Case BTN_FINISH + '򵼴 + + Unload Me + + If GetSetting(APP_CATEGORY, WIZARD_NAME, CONFIRM_KEY, vbNullString) = vbNullString Then + frmConfirm.Show vbModal + End If + + End Select +End Sub + +Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) + If KeyCode = vbKeyF1 Then + cmdNav_Click BTN_HELP + End If +End Sub + +Private Sub Form_Load() + Dim i As Integer + 'ʼб + mbFinishOK = False + + For i = 0 To NUM_STEPS - 1 + fraStep(i).Left = -10000 + Next + + 'ΪַϢ + LoadResStrings Me + + 'һ: + If GetSetting(APP_CATEGORY, WIZARD_NAME, INTRO_KEY, vbNullString) = SHOW_INTRO Then + chkShowIntro.Value = vbChecked + SetStep 1, DIR_NEXT + Else + SetStep 0, DIR_NONE + End If +End Sub + +Private Sub SetStep(nStep As Integer, nDirection As Integer) + + Select Case nStep + Case STEP_INTRO + + Case STEP_1 + + Case STEP_2 + + Case STEP_3 + + Case STEP_4 + mbFinishOK = False + + Case STEP_FINISH + mbFinishOK = True + + End Select + + 'ƶµIJ + fraStep(mnCurStep).Enabled = False + fraStep(nStep).Left = 0 + If nStep <> mnCurStep Then + fraStep(mnCurStep).Left = -10000 + End If + fraStep(nStep).Enabled = True + + SetCaption nStep + SetNavBtns nStep + +End Sub + +Private Sub SetNavBtns(nStep As Integer) + mnCurStep = nStep + + If mnCurStep = 0 Then + cmdNav(BTN_BACK).Enabled = False + cmdNav(BTN_NEXT).Enabled = True + ElseIf mnCurStep = NUM_STEPS - 1 Then + cmdNav(BTN_NEXT).Enabled = False + cmdNav(BTN_BACK).Enabled = True + Else + cmdNav(BTN_BACK).Enabled = True + cmdNav(BTN_NEXT).Enabled = True + End If + + If mbFinishOK Then + cmdNav(BTN_FINISH).Enabled = True + Else + cmdNav(BTN_FINISH).Enabled = False + End If +End Sub + +Private Sub SetCaption(nStep As Integer) + On Error Resume Next + + Me.Caption = FRM_TITLE & " - " & LoadResString(fraStep(nStep).Tag) + +End Sub + +'========================================================= +'ûûṩ㹻Ϣִ +'Ľʱ,˺ʾһϢ +'========================================================= +Sub IncompleteData(nIndex As Integer) + On Error Resume Next + Dim sTmp As String + + 'ûĴϢ + sTmp = LoadResString(RES_ERROR_MSG) + 'ָĴϢ + sTmp = sTmp & vbCrLf & LoadResString(RES_ERROR_MSG + nIndex) + Beep + MsgBox sTmp, vbInformation +End Sub + +Private Sub Form_Unload(Cancel As Integer) + On Error Resume Next + Dim rc As Long + '쿴ǷҪ + If chkSaveSettings.Value = vbChecked Then + +' SaveSetting APP_CATEGORY, WIZARD_NAME, "OptionName", ѡֵ + + End If + + If mbHelpStarted Then rc = WinHelp(Me.hwnd, HELP_FILE, HELP_QUIT, 0) +End Sub + diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.FRX b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.FRX new file mode 100644 index 0000000..acba998 Binary files /dev/null and b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.FRX differ diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.RES b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.RES new file mode 100644 index 0000000..2ce3bb3 Binary files /dev/null and b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.RES differ diff --git a/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.VBP b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.VBP new file mode 100644 index 0000000..851f988 --- /dev/null +++ b/cadVb/VB98/WIZARDS/TEMPLATE/WIZARD.VBP @@ -0,0 +1,42 @@ +Type=OleDll +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\WINDOWS\SYSTEM\STDOLE2.TLB#Standard OLE Types +Reference=*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#..\..\..\..\MICROSOFT OFFICE\OFFICE\MSO97.DLL#Microsoft Office 8.0 Object Library +Reference=*\G{EF404E00-EDA6-101A-8DAF-00DD010F7EBB}#5.0#0#..\..\VB6EXT.OLB#Microsoft Visual Basic Extensibility +Module=modWizard; Wizard.bas +Form=Wizard.frm +Form=Confirm.frm +Reference=*\G{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}#1.0#0#..\..\..\..\Common Files\Microsoft Shared\VBA\MSADDNDR.TLB#Add-In Designer/Instance Control Library +Designer=Wizard.Dsr +ResFile32="wizard.RES" +IconForm="frmWizard" +Startup="(None)" +HelpFile="" +Title="BlankWizard" +Command32="" +Name="WizardTemplate" +HelpContextID="0" +Description="Standard Wizard Template" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="Microsoft" +CondComp="VB5 = 1" +CompilationType=-1 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=1 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 diff --git a/cadVb/VB98/WIZARDS/TEMPMGR.DLL b/cadVb/VB98/WIZARDS/TEMPMGR.DLL new file mode 100644 index 0000000..b1fb8a9 Binary files /dev/null and b/cadVb/VB98/WIZARDS/TEMPMGR.DLL differ diff --git a/cadVb/VB98/WIZARDS/WIZMAN.DLL b/cadVb/VB98/WIZARDS/WIZMAN.DLL new file mode 100644 index 0000000..c1cee38 Binary files /dev/null and b/cadVb/VB98/WIZARDS/WIZMAN.DLL differ diff --git a/cadVb/VB98ECD1.INF b/cadVb/VB98ECD1.INF new file mode 100644 index 0000000..e69de29 diff --git a/cadVb/VB98ENT.MIF b/cadVb/VB98ENT.MIF new file mode 100644 index 0000000..f2d9f67 --- /dev/null +++ b/cadVb/VB98ENT.MIF @@ -0,0 +1 @@ +*.mif \ No newline at end of file diff --git a/cadVb/VSS/DATA/AAAAAAAA b/cadVb/VSS/DATA/AAAAAAAA new file mode 100644 index 0000000..e7c4b1e Binary files /dev/null and b/cadVb/VSS/DATA/AAAAAAAA differ diff --git a/cadVb/VSS/DATA/AAAAAAAA.A b/cadVb/VSS/DATA/AAAAAAAA.A new file mode 100644 index 0000000..e69de29 diff --git a/cadVb/VSS/DATA/AAAAAAAA.CNT b/cadVb/VSS/DATA/AAAAAAAA.CNT new file mode 100644 index 0000000..ac1d30b --- /dev/null +++ b/cadVb/VSS/DATA/AAAAAAAA.CNT @@ -0,0 +1 @@ +AAAAAAAA \ No newline at end of file diff --git a/cadVb/VSS/DATA/UM.DAT b/cadVb/VSS/DATA/UM.DAT new file mode 100644 index 0000000..9f4dd86 Binary files /dev/null and b/cadVb/VSS/DATA/UM.DAT differ diff --git a/cadVb/VSS/FOLDER.GIF b/cadVb/VSS/FOLDER.GIF new file mode 100644 index 0000000..5e25909 Binary files /dev/null and b/cadVb/VSS/FOLDER.GIF differ diff --git a/cadVb/VSS/HTMLFILE.GIF b/cadVb/VSS/HTMLFILE.GIF new file mode 100644 index 0000000..1bd2faf Binary files /dev/null and b/cadVb/VSS/HTMLFILE.GIF differ diff --git a/cadVb/VSS/SRCSAFE.INI b/cadVb/VSS/SRCSAFE.INI new file mode 100644 index 0000000..2f7cf87 --- /dev/null +++ b/cadVb/VSS/SRCSAFE.INI @@ -0,0 +1,19 @@ +; srcsafe.ini +; +; Three of these variables -- Data_Path, Users_Path, and Users_Txt -- must +; be in srcsafe.ini. Any other variable here can be overridden in ss.ini. +; Similarly, any ss.ini variable can be placed in srcsafe.ini to set a +; system "default," which individual users can still override in ss.ini. + +; The two important paths used by SourceSafe. +Data_Path = data +Temp_Path = temp + +; This tells admin where to put personal directories for new users. +Users_Path = users + +; From this, find users.txt; from that, in turn, find ss.ini for a user. +Users_Txt = users.txt + +; The following line contains common file groupings. +File_Types = VB(*.asp;*.bas;*.cls;*.ct?;*.dca;*.dep;*.dob;*.dox;*.ds?;*.fr?;*.log;*.oca;*.pag;*.pgx;*.res;*.swt;*.vb?),VC(*.bmp;*.c;*.cpp;*.cur;*.cxx;*.def;*.ds?;*.h;*.hpj;*.hpp;*.hxx;*.ico;*.inl;*.mak;*.rc;*.rc2;*.rgs),VID(*.asa;*.asp;*.css;*.dbp;*.dtq;*.htm*;*.pkp;*.sln;*.sql;*.txt;*.vip;*.wdm),VJ(*.java;*.vjp;*.pkp;*.sln;*.txt),VFP(*.cdx;*.db?;*.dc?;*.fpt;*.fr?;*.idx;*.lb?;*.mn?;*.mpr;*.pj?;*.prg;*.qpr;*.sc?;*.vc?) \ No newline at end of file diff --git a/cadVb/VSS/SSUSEXP.CHI b/cadVb/VSS/SSUSEXP.CHI new file mode 100644 index 0000000..691f61f Binary files /dev/null and b/cadVb/VSS/SSUSEXP.CHI differ diff --git a/cadVb/VSS/SSUSEXP.CHM b/cadVb/VSS/SSUSEXP.CHM new file mode 100644 index 0000000..1613f1c Binary files /dev/null and b/cadVb/VSS/SSUSEXP.CHM differ diff --git a/cadVb/VSS/TEMP/TMP.TMP b/cadVb/VSS/TEMP/TMP.TMP new file mode 100644 index 0000000..2a6f598 --- /dev/null +++ b/cadVb/VSS/TEMP/TMP.TMP @@ -0,0 +1 @@ +This file causes backup programs to save/restore this directory. diff --git a/cadVb/VSS/TEMPLATE/SRCSAFE.INI b/cadVb/VSS/TEMPLATE/SRCSAFE.INI new file mode 100644 index 0000000..2f7cf87 --- /dev/null +++ b/cadVb/VSS/TEMPLATE/SRCSAFE.INI @@ -0,0 +1,19 @@ +; srcsafe.ini +; +; Three of these variables -- Data_Path, Users_Path, and Users_Txt -- must +; be in srcsafe.ini. Any other variable here can be overridden in ss.ini. +; Similarly, any ss.ini variable can be placed in srcsafe.ini to set a +; system "default," which individual users can still override in ss.ini. + +; The two important paths used by SourceSafe. +Data_Path = data +Temp_Path = temp + +; This tells admin where to put personal directories for new users. +Users_Path = users + +; From this, find users.txt; from that, in turn, find ss.ini for a user. +Users_Txt = users.txt + +; The following line contains common file groupings. +File_Types = VB(*.asp;*.bas;*.cls;*.ct?;*.dca;*.dep;*.dob;*.dox;*.ds?;*.fr?;*.log;*.oca;*.pag;*.pgx;*.res;*.swt;*.vb?),VC(*.bmp;*.c;*.cpp;*.cur;*.cxx;*.def;*.ds?;*.h;*.hpj;*.hpp;*.hxx;*.ico;*.inl;*.mak;*.rc;*.rc2;*.rgs),VID(*.asa;*.asp;*.css;*.dbp;*.dtq;*.htm*;*.pkp;*.sln;*.sql;*.txt;*.vip;*.wdm),VJ(*.java;*.vjp;*.pkp;*.sln;*.txt),VFP(*.cdx;*.db?;*.dc?;*.fpt;*.fr?;*.idx;*.lb?;*.mn?;*.mpr;*.pj?;*.prg;*.qpr;*.sc?;*.vc?) \ No newline at end of file diff --git a/cadVb/VSS/TEMPLATE/SSADMIN.INI b/cadVb/VSS/TEMPLATE/SSADMIN.INI new file mode 100644 index 0000000..7fb218e --- /dev/null +++ b/cadVb/VSS/TEMPLATE/SSADMIN.INI @@ -0,0 +1,6 @@ +; ssadmin.ini +; +; This file contains all the variables that "customize" the SourceSafe +; Administrator program to your particular needs. + +Columns_UI (UI) = 124, 259 diff --git a/cadVb/VSS/TEMPLATE/TEMPLATE.INI b/cadVb/VSS/TEMPLATE/TEMPLATE.INI new file mode 100644 index 0000000..f8bd665 --- /dev/null +++ b/cadVb/VSS/TEMPLATE/TEMPLATE.INI @@ -0,0 +1,22 @@ +; ss.ini +; +; This file contains all the variables that "customize" SourceSafe to your +; particular needs. The ss.ini variables are documented in the SourceSafe +; User's Manual. Only a few of them are placed in this file by default. + +; C programmers should remove the semicolon from the following line, to +; un-comment it. Other programmers REPLACE the line with different masks. +; Relevant_Masks = *.c, *.h, *., *.asm + +; The following line prevents you from being asked for a checkout comment. +Checkout_Comment = - + +; The following lines force SourceSafe not to execute certain file types. +.reg (Win) = notepad.exe +.vbp (Win) = notepad.exe +.vcp (Win) = notepad.exe +.mak (Win) = notepad.exe +.bat (Win) = notepad.exe + +; Your current SourceSafe project. +Project = $/ diff --git a/cadVb/VSS/USERS.SRV b/cadVb/VSS/USERS.SRV new file mode 100644 index 0000000..49a66f4 --- /dev/null +++ b/cadVb/VSS/USERS.SRV @@ -0,0 +1,3 @@ +Admin = users\admin\ss.ini + +Guest = users\guest\ss.ini diff --git a/cadVb/VSS/USERS/ADMIN/SS.INI b/cadVb/VSS/USERS/ADMIN/SS.INI new file mode 100644 index 0000000..6293be9 --- /dev/null +++ b/cadVb/VSS/USERS/ADMIN/SS.INI @@ -0,0 +1,15 @@ +; ss.ini +; +; This file contains all the variables that "customize" SourceSafe to your +; particular needs. The ss.ini variables are documented in the SourceSafe +; User's Manual. Only a few of them are placed in this file by default. + +; C programmers should remove the semicolon from the following line, to +; un-comment it. Other programmers REPLACE the line with different masks. +; Relevant_Masks = *.c, *.h, *., *.asm + +; The following line prevents you from being asked for a checkout comment. +Checkout_Comment = - + +; Your current SourceSafe project. +Project = $/ diff --git a/cadVb/VSS/USERS/ADMIN/SSADMIN.INI b/cadVb/VSS/USERS/ADMIN/SSADMIN.INI new file mode 100644 index 0000000..7fb218e --- /dev/null +++ b/cadVb/VSS/USERS/ADMIN/SSADMIN.INI @@ -0,0 +1,6 @@ +; ssadmin.ini +; +; This file contains all the variables that "customize" the SourceSafe +; Administrator program to your particular needs. + +Columns_UI (UI) = 124, 259 diff --git a/cadVb/VSS/USERS/GUEST/SS.INI b/cadVb/VSS/USERS/GUEST/SS.INI new file mode 100644 index 0000000..6293be9 --- /dev/null +++ b/cadVb/VSS/USERS/GUEST/SS.INI @@ -0,0 +1,15 @@ +; ss.ini +; +; This file contains all the variables that "customize" SourceSafe to your +; particular needs. The ss.ini variables are documented in the SourceSafe +; User's Manual. Only a few of them are placed in this file by default. + +; C programmers should remove the semicolon from the following line, to +; un-comment it. Other programmers REPLACE the line with different masks. +; Relevant_Masks = *.c, *.h, *., *.asm + +; The following line prevents you from being asked for a checkout comment. +Checkout_Comment = - + +; Your current SourceSafe project. +Project = $/ diff --git a/cadVb/VSS/USERS/TEMPLATE.INI b/cadVb/VSS/USERS/TEMPLATE.INI new file mode 100644 index 0000000..f8bd665 --- /dev/null +++ b/cadVb/VSS/USERS/TEMPLATE.INI @@ -0,0 +1,22 @@ +; ss.ini +; +; This file contains all the variables that "customize" SourceSafe to your +; particular needs. The ss.ini variables are documented in the SourceSafe +; User's Manual. Only a few of them are placed in this file by default. + +; C programmers should remove the semicolon from the following line, to +; un-comment it. Other programmers REPLACE the line with different masks. +; Relevant_Masks = *.c, *.h, *., *.asm + +; The following line prevents you from being asked for a checkout comment. +Checkout_Comment = - + +; The following lines force SourceSafe not to execute certain file types. +.reg (Win) = notepad.exe +.vbp (Win) = notepad.exe +.vcp (Win) = notepad.exe +.mak (Win) = notepad.exe +.bat (Win) = notepad.exe + +; Your current SourceSafe project. +Project = $/ diff --git a/cadVb/VSS/VSSCLNT.SRG b/cadVb/VSS/VSSCLNT.SRG new file mode 100644 index 0000000..5545d32 --- /dev/null +++ b/cadVb/VSS/VSSCLNT.SRG @@ -0,0 +1,47 @@ +[HKEY_CLASSES_ROOT\VisualSourceSafe\DefaultIcon] +@="\\win32\\ssexp.exe.dll,0" + +[HKEY_CURRENT_USER\Software\Microsoft\Developer\Source Control] +"AllowStatusUpdates"="REG_DWORD:0" + +[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\5.0\Source Control] +"AllowStatusUpdates"="REG_DWORD:0" + +[HKEY_CLASSES_ROOT\SccAddIn.SourceCodeControlAddIn] +@="Source Code Control Add-In" + +[HKEY_CLASSES_ROOT\SccAddIn.SourceCodeControlAddIn\CLSID] +@="{2F998FDA-3487-11CE-BCB6-00AA00688899}" + +[HKEY_CLASSES_ROOT\SccAddIn.SourceCodeControlAddIn.1] +@="Source Code Control Add-In" + +[HKEY_CLASSES_ROOT\SccAddIn.SourceCodeControlAddIn.1\CLSID] +@="{2F998FDA-3487-11CE-BCB6-00AA00688899}" + +[HKEY_CLASSES_ROOT\CLSID\{2F998FDA-3487-11CE-BCB6-00AA00688899}] +@="Source Code Control Add-In" + +[HKEY_CLASSES_ROOT\CLSID\{2F998FDA-3487-11CE-BCB6-00AA00688899}\ProgID] +@="SccAddIn.SourceCodeControlAddIn.1" + +[HKEY_CLASSES_ROOT\CLSID\{2F998FDA-3487-11CE-BCB6-00AA00688899}\VersionIndependentProgID] +@="SccAddIn.SourceCodeControlAddIn" + +[HKEY_CLASSES_ROOT\CLSID\{2F998FDA-3487-11CE-BCB6-00AA00688899}\InProcServer32] +@="\\win32\\ssvb.dll" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe] +"API Current Database"="REG_SZ:" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe] +"PromptForConnect"="REG_DWORD:1" + +[HKEY_CLASSES_ROOT\.scc] +@="SCC.Status.File" + +[HKEY_CLASSES_ROOT\SCC.Status.File] +@="Microsoft SourceSafe Status" + +[HKEY_CLASSES_ROOT\SCC.Status.File] +"DefaultIcon"="\\win32\\ssexp.exe,0" diff --git a/cadVb/VSS/WIN32/ANALYZE.EXE b/cadVb/VSS/WIN32/ANALYZE.EXE new file mode 100644 index 0000000..9a6eef9 Binary files /dev/null and b/cadVb/VSS/WIN32/ANALYZE.EXE differ diff --git a/cadVb/VSS/WIN32/DDCONV.EXE b/cadVb/VSS/WIN32/DDCONV.EXE new file mode 100644 index 0000000..431b39d Binary files /dev/null and b/cadVb/VSS/WIN32/DDCONV.EXE differ diff --git a/cadVb/VSS/WIN32/DDUPD.EXE b/cadVb/VSS/WIN32/DDUPD.EXE new file mode 100644 index 0000000..6210483 Binary files /dev/null and b/cadVb/VSS/WIN32/DDUPD.EXE differ diff --git a/cadVb/VSS/WIN32/MKSS.EXE b/cadVb/VSS/WIN32/MKSS.EXE new file mode 100644 index 0000000..45a15c6 Binary files /dev/null and b/cadVb/VSS/WIN32/MKSS.EXE differ diff --git a/cadVb/VSS/WIN32/NLHTML.DLL b/cadVb/VSS/WIN32/NLHTML.DLL new file mode 100644 index 0000000..42a4637 Binary files /dev/null and b/cadVb/VSS/WIN32/NLHTML.DLL differ diff --git a/cadVb/VSS/WIN32/PVCS_SS.EXE b/cadVb/VSS/WIN32/PVCS_SS.EXE new file mode 100644 index 0000000..01ef882 Binary files /dev/null and b/cadVb/VSS/WIN32/PVCS_SS.EXE differ diff --git a/cadVb/VSS/WIN32/SS.EXE b/cadVb/VSS/WIN32/SS.EXE new file mode 100644 index 0000000..458e79c Binary files /dev/null and b/cadVb/VSS/WIN32/SS.EXE differ diff --git a/cadVb/VSS/WIN32/SSADMIN.EXE b/cadVb/VSS/WIN32/SSADMIN.EXE new file mode 100644 index 0000000..f89f920 Binary files /dev/null and b/cadVb/VSS/WIN32/SSADMIN.EXE differ diff --git a/cadVb/VSS/WIN32/SSAPI.DLL b/cadVb/VSS/WIN32/SSAPI.DLL new file mode 100644 index 0000000..609c856 Binary files /dev/null and b/cadVb/VSS/WIN32/SSAPI.DLL differ diff --git a/cadVb/VSS/WIN32/SSARC.EXE b/cadVb/VSS/WIN32/SSARC.EXE new file mode 100644 index 0000000..c82a85a Binary files /dev/null and b/cadVb/VSS/WIN32/SSARC.EXE differ diff --git a/cadVb/VSS/WIN32/SSEXP.EXE b/cadVb/VSS/WIN32/SSEXP.EXE new file mode 100644 index 0000000..31ec70d Binary files /dev/null and b/cadVb/VSS/WIN32/SSEXP.EXE differ diff --git a/cadVb/VSS/WIN32/SSGUI.DLL b/cadVb/VSS/WIN32/SSGUI.DLL new file mode 100644 index 0000000..2922165 Binary files /dev/null and b/cadVb/VSS/WIN32/SSGUI.DLL differ diff --git a/cadVb/VSS/WIN32/SSINT.EXE b/cadVb/VSS/WIN32/SSINT.EXE new file mode 100644 index 0000000..267c63b Binary files /dev/null and b/cadVb/VSS/WIN32/SSINT.EXE differ diff --git a/cadVb/VSS/WIN32/SSRESTOR.EXE b/cadVb/VSS/WIN32/SSRESTOR.EXE new file mode 100644 index 0000000..5754e14 Binary files /dev/null and b/cadVb/VSS/WIN32/SSRESTOR.EXE differ diff --git a/cadVb/VSS/WIN32/SSSCC.DLL b/cadVb/VSS/WIN32/SSSCC.DLL new file mode 100644 index 0000000..e62f477 Binary files /dev/null and b/cadVb/VSS/WIN32/SSSCC.DLL differ diff --git a/cadVb/VSS/WIN32/SSUS.DLL b/cadVb/VSS/WIN32/SSUS.DLL new file mode 100644 index 0000000..e907875 Binary files /dev/null and b/cadVb/VSS/WIN32/SSUS.DLL differ diff --git a/cadVb/VSS/WIN32/SSUS16.DLL b/cadVb/VSS/WIN32/SSUS16.DLL new file mode 100644 index 0000000..3e63175 Binary files /dev/null and b/cadVb/VSS/WIN32/SSUS16.DLL differ diff --git a/cadVb/VSS/WIN32/SSVB.DLL b/cadVb/VSS/WIN32/SSVB.DLL new file mode 100644 index 0000000..93a108b Binary files /dev/null and b/cadVb/VSS/WIN32/SSVB.DLL differ diff --git a/cadVb/VSS/WIN32/TESTLOCK.EXE b/cadVb/VSS/WIN32/TESTLOCK.EXE new file mode 100644 index 0000000..20d4f59 Binary files /dev/null and b/cadVb/VSS/WIN32/TESTLOCK.EXE differ diff --git a/cadVb/VSS/WIN32/UNLOCK.EXE b/cadVb/VSS/WIN32/UNLOCK.EXE new file mode 100644 index 0000000..9c1dfe8 Binary files /dev/null and b/cadVb/VSS/WIN32/UNLOCK.EXE differ diff --git a/cadVb/code/vbproject_jk/11/acad_signoff.exe b/cadVb/code/vbproject_jk/11/acad_signoff.exe new file mode 100644 index 0000000..d031f0a Binary files /dev/null and b/cadVb/code/vbproject_jk/11/acad_signoff.exe differ diff --git a/cadVb/code/vbproject_jk/20181123/acad_signoff.exe b/cadVb/code/vbproject_jk/20181123/acad_signoff.exe new file mode 100644 index 0000000..e2af873 Binary files /dev/null and b/cadVb/code/vbproject_jk/20181123/acad_signoff.exe differ diff --git a/cadVb/code/vbproject_jk/A0-H - 副本.dwg b/cadVb/code/vbproject_jk/A0-H - 副本.dwg new file mode 100644 index 0000000..decbd20 Binary files /dev/null and b/cadVb/code/vbproject_jk/A0-H - 副本.dwg differ diff --git a/cadVb/code/vbproject_jk/A0-H.dwg b/cadVb/code/vbproject_jk/A0-H.dwg new file mode 100644 index 0000000..4db4692 Binary files /dev/null and b/cadVb/code/vbproject_jk/A0-H.dwg differ diff --git a/cadVb/code/vbproject_jk/A0-H.dwl b/cadVb/code/vbproject_jk/A0-H.dwl new file mode 100644 index 0000000..d62f5c9 --- /dev/null +++ b/cadVb/code/vbproject_jk/A0-H.dwl @@ -0,0 +1,3 @@ +Administrator +PLMTEST +201875 13:13:02 \ No newline at end of file diff --git a/cadVb/code/vbproject_jk/A0-H.dwl2 b/cadVb/code/vbproject_jk/A0-H.dwl2 new file mode 100644 index 0000000..c72858e --- /dev/null +++ b/cadVb/code/vbproject_jk/A0-H.dwl2 @@ -0,0 +1,7 @@ + + +Administrator +PLMTEST + +2018年7月5日 13:13:02 + \ No newline at end of file diff --git a/cadVb/code/vbproject_jk/A3-H.bak b/cadVb/code/vbproject_jk/A3-H.bak new file mode 100644 index 0000000..185e9ae Binary files /dev/null and b/cadVb/code/vbproject_jk/A3-H.bak differ diff --git a/cadVb/code/vbproject_jk/A3-H.dwg b/cadVb/code/vbproject_jk/A3-H.dwg new file mode 100644 index 0000000..66e65f1 Binary files /dev/null and b/cadVb/code/vbproject_jk/A3-H.dwg differ diff --git a/cadVb/code/vbproject_jk/CAD图纸签名.dwg b/cadVb/code/vbproject_jk/CAD图纸签名.dwg new file mode 100644 index 0000000..c4421e1 Binary files /dev/null and b/cadVb/code/vbproject_jk/CAD图纸签名.dwg differ diff --git a/cadVb/code/vbproject_jk/MSSCCPRJ.SCC b/cadVb/code/vbproject_jk/MSSCCPRJ.SCC new file mode 100644 index 0000000..1d6a7fa --- /dev/null +++ b/cadVb/code/vbproject_jk/MSSCCPRJ.SCC @@ -0,0 +1,5 @@ +[SCC] +SCC=This is a source code control file +[Project1.vbp] +SCC_Project_Name=this project is not under source code control +SCC_Aux_Path= diff --git a/cadVb/code/vbproject_jk/Module1.bas b/cadVb/code/vbproject_jk/Module1.bas new file mode 100644 index 0000000..4823ed0 --- /dev/null +++ b/cadVb/code/vbproject_jk/Module1.bas @@ -0,0 +1,353 @@ +Attribute VB_Name = "Module1" +Option Explicit +Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long + + + + +Public acadStarted As Boolean +Public acadApp As New ZcadApplication +Public acadDoc As ZcadDocument +Public Sub FinalRelease() + If Not acadApp Is Nothing Then Set acadApp = Nothing + +End Sub +Sub Main() +'MsgBox ("0000") + +Dim myObj As ZcadObject +Dim a_strArgs() As String +Dim blnDebug As Boolean +Dim strFileName As String +Dim i As Integer +Dim dwgFile As String +Dim dataFile As String +Dim isMultiView As String, isMultiLayout As String, isMultiLayer As String, isMultiSheet As String, paperSize As String +Dim Line As Variant +Dim Values As Variant +Dim Value As Variant +Dim subvalue As Variant +Dim txtFileName As String +Dim Attrs As Variant +Dim J As Integer +Dim myReference As ZcadBlockReference +Dim myReference_1 As ZcadBlockReference + + + + + txtFileName = "" +a_strArgs = Split(Command$, "#") +For i = LBound(a_strArgs) To UBound(a_strArgs) + Select Case i + Case 0: + dwgFile = a_strArgs(i) + 'MsgBox dwgFile + Case 1: + txtFileName = a_strArgs(i) + 'MsgBox txtFileName + End Select +Next + + 'dwgFile = "C:\Users\Administrator\Desktop\vbproject_jk\A0-H.dwg" '"D:\Work\xiya\cad.dwg" +' txtFileName = "C:\Users\Administrator\Desktop\vbproject_jk\test.txt" +If txtFileName = "" Then + Exit Sub + 'dwgFile = "C:\Users\Administrator\Desktop\vbproject\A0-H.dwg" '"D:\Work\xiya\cad.dwg" + 'txtFileName = "C:\Users\Administrator\Desktop\vbproject\test.txt" +End If + + + +On Error Resume Next +Set acadApp = GetObject(, "ZWCAD.Application") +If Err Then + Set acadApp = CreateObject("ZWCAD.Application") + acadStarted = False + If Err Then + 'MsgBox Err.Description + 'Err.Description + Exit Sub + End If +End If + +'MsgBox ("222") +Dim oldDoc As ZcadDocument +Dim Opened As Boolean +Opened = False +'acadApp.Visible = False +'MsgBox dwgFile + +For Each oldDoc In acadApp.Documents + 'MsgBox oldDoc.FullName + If oldDoc.FullName <> "" Then + If InStr(LCase(dwgFile), LCase(oldDoc.FullName)) <> 0 Then + 'MsgBox oldDoc.FullName + Opened = True + oldDoc.Activate + ' Set acadApp.ActiveDocument = oldDoc + Exit For + End If + End If +Next +'MsgBox a_strArgs(0) +'Set acadDocs = acadApp.Documents +'MsgBox Barcode +'Set acadDoc = acadApp.Documents.Open("D:\Work\xincai\TEST.dwg") + If Opened Then + + Set acadDoc = acadApp.ActiveDocument + Else + Set acadDoc = acadApp.Documents.Open(dwgFile) + 'Set acadDoc = acadApp.Documents.Open("D:\Work\xiya\cad.dwg") + End If +'Call InsertBarcode(Barcode) + 'Set fs = CreateObject("Scripting.FileSystemObject") + 'Set WshShell = WScript.CreateObject("WScript.Shell") + 'Replace(txtFileName, Chr(34), "") +Open Replace(txtFileName, Chr(34), "") For Input As #1 + + 'Set txtFile = fs.OpenTextFile(txtFileName) + 'Line = txtFile.ReadAll() + 'txtFile.Close + 'Set Data = ReadObject(Line) + 'Call SplitStr(line, values) + Line Input #1, Line + ' MsgBox Line + Values = Split(Line, "|") + +' For Each Value In Values +' subvalue = Split(Value, "=") +' 'MsgBox subvalue(1) +' Next +'MsgBox dwgFile +'MsgBox txtFileName +'MsgBox Line +Dim myFont As ZcadTextStyle +'Set myFont = acadDoc.TextStyles.Item("USER1") +'Set myFont = acadDoc.TextStyles.Add("USER1") +'myFont.fontFile = "c:\windows\fonts\stxinwei.ttf" +Dim acCurDb As ZcadDatabase + + +Dim blkInsPnt_1(0 To 2) As Double +blkInsPnt_1(0) = 0: blkInsPnt_1(1) = 0: blkInsPnt_1(2) = 0 + +myReference_1 = acadDoc.ModelSpace.InsertBlock(blkInsPnt_1, "D:\Siemens\Teamcenter14\CADMODEL\CADMODEL.dwg", 1#, 1#, 1#, 0) +myReference_1.Delete + +For Each myObj In acadDoc.ModelSpace + If myObj.ObjectName = "AcDbBlockReference" Then + If InStr(myObj.Name, "KWC-") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "admin") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "ΰ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "˽") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "ѩ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "־") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "Ĵ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "˹") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "ѧ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "֣ˮ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "찬ά") <> 0 Then + myObj.Delete + End If + End If +Next + + + Dim delName + Dim delSt + delSt = 0 + +For Each myObj In acadDoc.ModelSpace + + ' If myObj.ObjectName = "AcDbBlockReference" Then + '' MsgBox "ObjectName===" & myObj.ObjectName + + ' End If + + + + If myObj.ObjectName = "AcDbBlockReference" Then + '' MsgBox "name===" & myObj.Name + + ' If InStr(myObj.Name, "XY_TITLE") <> 0 Then + If InStr(myObj.Name, "XY_TITLE") Or InStr(myObj.Name, "XYA4") Or InStr(myObj.Name, "XYA3") Or InStr(myObj.Name, "XYA2") Or InStr(myObj.Name, "XYA1") Or InStr(myObj.Name, "XYA0") <> 0 Then + ' If InStr(myObj.Name, "XY_MXB") <> 0 Then + + + '' MsgBox "jinlaile" + + + Dim ref As ZcadBlockReference + acCurDb = acadDoc.Database + Set ref = myObj + Dim P As Variant + P = ref.InsertionPoint + Dim blkInsPnt(0 To 2) As Double + Dim userName As String + Attrs = myObj.GetAttributes + Dim x_s, y_s, z_s + x_s = ref.XScaleFactor + y_s = ref.YScaleFactor + z_s = ref.ZScaleFactor + + + + + For J = LBound(Attrs) To UBound(Attrs) + + For Each Value In Values + + 'If Value <> "" Then + 'WScript.Echo value + If Value <> "" Then + subvalue = Split(Value, "=") + + '' MsgBox subvalue(0) & "<-subvalue" + '' MsgBox Attrs(J).TagString & "<-Attrs" + If subvalue(0) = Attrs(J).TagString Then + userName = subvalue(1) + userName = Replace(userName, ".png", "") + userName = Replace(userName, "D:\\PICTURE\\", "KWC-") + '' MsgBox "p->===========" & P(0) + 'MsgBox "username" & userName + If delSt = 0 Then + delName = delName & userName & "|" + End If + 'MsgBox "1111111111111"s + 'MsgBox subvalue(0) + If subvalue(0) = "" Then + + + blkInsPnt(0) = P(0) - 133 * x_s: blkInsPnt(1) = P(1) + 3 * y_s: blkInsPnt(2) = P(2) + 'blkInsPnt(0) = -283500.64: blkInsPnt(1) = -226500.98: blkInsPnt(2) = P(2) + 'MsgBox blkInsPnt(0) + Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, x_s, y_s, z_s, 0) + ' MsgBox "" + ElseIf subvalue(0) = "" Then + blkInsPnt(0) = P(0) - 133 * x_s: blkInsPnt(1) = P(1) + 8 * y_s: blkInsPnt(2) = P(2) + Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, x_s, y_s, z_s, 0) + ElseIf subvalue(0) = "׼" Then + blkInsPnt(0) = P(0) - 133 * x_s: blkInsPnt(1) = P(1) - 2 * y_s: blkInsPnt(2) = P(2) + Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, x_s, y_s, z_s, 0) + ElseIf subvalue(0) = "" Then + blkInsPnt(0) = P(0) - 163 * x_s: blkInsPnt(1) = P(1) + 8 * y_s: blkInsPnt(2) = P(2) + Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, x_s, y_s, z_s, 0) + ElseIf subvalue(0) = "ͼ" Then + blkInsPnt(0) = P(0) - 163 * x_s: blkInsPnt(1) = P(1) + 3 * y_s: blkInsPnt(2) = P(2) + Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, x_s, y_s, z_s, 0) + ElseIf subvalue(0) = "У" Then + blkInsPnt(0) = P(0) - 163 * x_s: blkInsPnt(1) = P(1) - 2 * y_s: blkInsPnt(2) = P(2) + Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, x_s, y_s, z_s, 0) + ElseIf subvalue(0) = "׼" Then + blkInsPnt(0) = P(0) - 163 * x_s: blkInsPnt(1) = P(1) - 7 * y_s: blkInsPnt(2) = P(2) + Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, x_s, y_s, z_s, 0) + 'Set myReference = acadDoc.ModelSpace.InsertBlock(blkInsPnt, userName, 1#, 1#, 1#, 0) + + Else + Attrs(J).TextString = userName + End If + + +' acadDoc.ModelSpace.InsertBlock(insertionPnt, "bbb.dwg", 1#, 1#, 1#, 0) + + If InStr(subvalue(0), "׼") <> 0 Then + Attrs(J).TextString = subvalue(1) + Else + Attrs(J).StyleName = "USER1" + End If + 'MsgBox subvalue(1) + Attrs(J).Update + End If + End If + 'End If + Next + Next + 'Exit For + delSt = 1 + End If + End If + +Next + + +'MsgBox delName +Values = Split(delName, "|") + + +Dim ttObj +Dim doDel +doDel = 0 +For Each ttObj In acadDoc.Database.Blocks + If ttObj.ObjectName = "AcDbBlockTableRecord" Then + If InStr(ttObj.Name, "jk_") <> 0 Then + doDel = 0 + + For Each Value In Values + If Value <> "" Then + If Value = ttObj.Name Then + doDel = 1 + End If + End If + Next + + If doDel = 0 Then + 'MsgBox "DEL =>" & ttObj.Name + ttObj.Delete + + End If + End If + End If +Next + +acadDoc.Save + +acadDoc.Close (False) + + + + +Close #1 + + + + + +If Not acadStarted Then +'acadApp.Quit +End If + + +'FinalRelease +End Sub + + + + diff --git a/cadVb/code/vbproject_jk/Project1.vbp b/cadVb/code/vbproject_jk/Project1.vbp new file mode 100644 index 0000000..fe3dcad --- /dev/null +++ b/cadVb/code/vbproject_jk/Project1.vbp @@ -0,0 +1,37 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation +Reference=*\G{D5C3CB6F-AA0A-4D45-B02D-CF2974EFD4BE}#1.0#0#..\..\..\..\Program Files\Common Files\Autodesk Shared\acax19enu.tlb#AutoCAD 2013 Type Library +Module=Module1; Module1.bas +Startup="Sub Main" +HelpFile="" +Title="Project1" +ExeName32="acad_signoff.exe" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="origin" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 + +[MS Transaction Server] +AutoRefresh=1 diff --git a/cadVb/code/vbproject_jk/Project1.vbw b/cadVb/code/vbproject_jk/Project1.vbw new file mode 100644 index 0000000..1cb24ac --- /dev/null +++ b/cadVb/code/vbproject_jk/Project1.vbw @@ -0,0 +1 @@ +Module1 = 22, 22, 1022, 553, diff --git a/cadVb/code/vbproject_jk/acad_signoff.exe b/cadVb/code/vbproject_jk/acad_signoff.exe new file mode 100644 index 0000000..62a72e5 Binary files /dev/null and b/cadVb/code/vbproject_jk/acad_signoff.exe differ diff --git a/cadVb/code/vbproject_jk/clear20181123/MSSCCPRJ.SCC b/cadVb/code/vbproject_jk/clear20181123/MSSCCPRJ.SCC new file mode 100644 index 0000000..1d6a7fa --- /dev/null +++ b/cadVb/code/vbproject_jk/clear20181123/MSSCCPRJ.SCC @@ -0,0 +1,5 @@ +[SCC] +SCC=This is a source code control file +[Project1.vbp] +SCC_Project_Name=this project is not under source code control +SCC_Aux_Path= diff --git a/cadVb/code/vbproject_jk/clear20181123/Module1.bas b/cadVb/code/vbproject_jk/clear20181123/Module1.bas new file mode 100644 index 0000000..eb4b79d --- /dev/null +++ b/cadVb/code/vbproject_jk/clear20181123/Module1.bas @@ -0,0 +1,185 @@ +Attribute VB_Name = "Module1" +Option Explicit +Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long + + + + +Public acadStarted As Boolean +Public acadApp As New AcadApplication +Public acadDoc As AcadDocument +Public Sub FinalRelease() + If Not acadApp Is Nothing Then Set acadApp = Nothing + +End Sub +Sub Main() +'MsgBox ("0000") + +Dim myObj As AcadObject +Dim a_strArgs() As String +Dim blnDebug As Boolean +Dim strFileName As String +Dim I As Integer +Dim dwgFile As String +Dim dataFile As String +Dim isMultiView As String, isMultiLayout As String, isMultiLayer As String, isMultiSheet As String, paperSize As String +Dim Line As Variant +Dim Values As Variant +Dim Value As Variant +Dim subvalue As Variant +Dim txtFileName As String +Dim Attrs As Variant +Dim J As Integer +Dim myReference As AcadBlockReference +Dim myReference_1 As AcadBlockReference + + + + + txtFileName = "" +a_strArgs = Split(Command$, " ") +For I = LBound(a_strArgs) To UBound(a_strArgs) + Select Case I + Case 0: + dwgFile = a_strArgs(I) + Case 1: + txtFileName = a_strArgs(I) + + End Select +Next + + + + + +On Error Resume Next +Set acadApp = GetObject(, "AutoCAD.Application") +If Err Then + Set acadApp = CreateObject("AutoCAD.Application") + acadStarted = False + If Err Then + MsgBox Err.Description + 'Err.Description + Exit Sub + End If +End If + +'MsgBox ("222") +Dim oldDoc As AcadDocument +Dim Opened As Boolean +Opened = False +'acadApp.Visible = False +'MsgBox dwgFile + +For Each oldDoc In acadApp.Documents + 'MsgBox oldDoc.FullName + If oldDoc.FullName <> "" Then + If InStr(LCase(dwgFile), LCase(oldDoc.FullName)) <> 0 Then + 'MsgBox oldDoc.FullName + Opened = True + oldDoc.Activate + ' Set acadApp.ActiveDocument = oldDoc + Exit For + End If + End If +Next + + If Opened Then + + Set acadDoc = acadApp.ActiveDocument + Else + Set acadDoc = acadApp.Documents.Open(dwgFile) + 'Set acadDoc = acadApp.Documents.Open("D:\Work\xiya\cad.dwg") + End If + + + +Dim blkInsPnt_1(0 To 2) As Double +blkInsPnt_1(0) = 0: blkInsPnt_1(1) = 0: blkInsPnt_1(2) = 0 + +myReference_1 = acadDoc.ModelSpace.InsertBlock(blkInsPnt_1, "C:\CADͼֽǩ\CADͼֽǩ.dwg", 1#, 1#, 1#, 0) +myReference_1.Delete + +For Each myObj In acadDoc.ModelSpace + If myObj.ObjectName = "AcDbBlockReference" Then + If InStr(myObj.Name, "jk_") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "admin") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "ΰ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "˽") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "ѩ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "־") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "Ĵ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "˹") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "ѧ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "֣ˮ") <> 0 Then + myObj.Delete + ElseIf InStr(myObj.Name, "찬ά") <> 0 Then + myObj.Delete + End If + End If +Next + + +For Each myObj In acadDoc.ModelSpace + If myObj.ObjectName = "AcDbBlockReference" Then + If InStr(myObj.Name, "1-") <> 0 Then + Attrs = myObj.GetAttributes + For J = LBound(Attrs) To UBound(Attrs) + If "׼ǩʱ" = Attrs(J).TagString Then + Attrs(J).TextString = "" + ElseIf "ʱ" = Attrs(J).TagString Then + Attrs(J).TextString = "" + ElseIf "ʱ" = Attrs(J).TagString Then + Attrs(J).TextString = "" + ElseIf "׼ʱ" = Attrs(J).TagString Then + Attrs(J).TextString = "" + ElseIf "ʱ" = Attrs(J).TagString Then + Attrs(J).TextString = "" + ElseIf "׼ʱ" = Attrs(J).TagString Then + Attrs(J).TextString = "" + End If + Attrs(J).Update + Next + End If + End If +Next + + + + +acadDoc.Save +acadDoc.Close (False) +If Not acadStarted Then +'acadApp.Quit +End If +'FinalRelease +End Sub + + + + diff --git a/cadVb/code/vbproject_jk/clear20181123/Project1.vbp b/cadVb/code/vbproject_jk/clear20181123/Project1.vbp new file mode 100644 index 0000000..e55e566 --- /dev/null +++ b/cadVb/code/vbproject_jk/clear20181123/Project1.vbp @@ -0,0 +1,37 @@ +Type=Exe +Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation +Reference=*\G{D5C3CB6F-AA0A-4D45-B02D-CF2974EFD4BE}#1.0#0#..\..\..\..\..\Program Files\Common Files\Autodesk Shared\acax19enu.tlb#AutoCAD 2013 Type Library +Module=Module1; Module1.bas +Startup="Sub Main" +HelpFile="" +Title="Project1" +ExeName32="acad_signoff.exe" +Command32="" +Name="Project1" +HelpContextID="0" +CompatibleMode="0" +MajorVer=1 +MinorVer=0 +RevisionVer=0 +AutoIncrementVer=0 +ServerSupportFiles=0 +VersionCompanyName="origin" +CompilationType=0 +OptimizationType=0 +FavorPentiumPro(tm)=0 +CodeViewDebugInfo=0 +NoAliasing=0 +BoundsCheck=0 +OverflowCheck=0 +FlPointCheck=0 +FDIVCheck=0 +UnroundedFP=0 +StartMode=0 +Unattended=0 +Retained=0 +ThreadPerObject=0 +MaxNumberOfThreads=1 +DebugStartupOption=0 + +[MS Transaction Server] +AutoRefresh=1 diff --git a/cadVb/code/vbproject_jk/clear20181123/Project1.vbw b/cadVb/code/vbproject_jk/clear20181123/Project1.vbw new file mode 100644 index 0000000..e38d64d --- /dev/null +++ b/cadVb/code/vbproject_jk/clear20181123/Project1.vbw @@ -0,0 +1 @@ +Module1 = 44, 44, 842, 390, C diff --git a/cadVb/code/vbproject_jk/clear20181123/acad_signoff_clear.exe b/cadVb/code/vbproject_jk/clear20181123/acad_signoff_clear.exe new file mode 100644 index 0000000..cee11ff Binary files /dev/null and b/cadVb/code/vbproject_jk/clear20181123/acad_signoff_clear.exe differ diff --git a/cadVb/code/vbproject_jk/clear20181123/beifen/acad_signoff_clear.exe b/cadVb/code/vbproject_jk/clear20181123/beifen/acad_signoff_clear.exe new file mode 100644 index 0000000..9ea14f6 Binary files /dev/null and b/cadVb/code/vbproject_jk/clear20181123/beifen/acad_signoff_clear.exe differ diff --git a/cadVb/code/vbproject_jk/test.txt b/cadVb/code/vbproject_jk/test.txt new file mode 100644 index 0000000..4610e83 --- /dev/null +++ b/cadVb/code/vbproject_jk/test.txt @@ -0,0 +1 @@ +׼=2024-01-30| \ No newline at end of file diff --git a/cadVb/code/vbproject_jk/test.txt.bak b/cadVb/code/vbproject_jk/test.txt.bak new file mode 100644 index 0000000..7c7e3d8 --- /dev/null +++ b/cadVb/code/vbproject_jk/test.txt.bak @@ -0,0 +1 @@ +=C:\Users\Administrator\Desktop\CADͼֽǩ.dwg|׼=|=˽|=|׼=˹ \ No newline at end of file diff --git a/cadVb/code/vbproject_jk/test2.txt b/cadVb/code/vbproject_jk/test2.txt new file mode 100644 index 0000000..48a88da --- /dev/null +++ b/cadVb/code/vbproject_jk/test2.txt @@ -0,0 +1 @@ +=d:\PICTURE\.png|ͼ=d:\PICTURE\η.png|У=d:\PICTURE\Ͳ.png \ No newline at end of file diff --git a/cadVb/code/vbproject_jk/testDwg.bak b/cadVb/code/vbproject_jk/testDwg.bak new file mode 100644 index 0000000..23d9385 Binary files /dev/null and b/cadVb/code/vbproject_jk/testDwg.bak differ diff --git a/cadVb/code/vbproject_jk/testDwg.dwg b/cadVb/code/vbproject_jk/testDwg.dwg new file mode 100644 index 0000000..81ed903 Binary files /dev/null and b/cadVb/code/vbproject_jk/testDwg.dwg differ diff --git a/cadVb/code/vbproject_jk/testDwg.dwl b/cadVb/code/vbproject_jk/testDwg.dwl new file mode 100644 index 0000000..f794daa --- /dev/null +++ b/cadVb/code/vbproject_jk/testDwg.dwl @@ -0,0 +1,3 @@ +Administrator +PT14 +2024-01-30 13:34:08 \ No newline at end of file diff --git a/cadVb/序列号.txt b/cadVb/序列号.txt new file mode 100644 index 0000000..24a4858 --- /dev/null +++ b/cadVb/序列号.txt @@ -0,0 +1 @@ +к111-1111111 \ No newline at end of file diff --git a/java_git/.idea/.gitignore b/java_git/.idea/.gitignore new file mode 100644 index 0000000..0a6c785 --- /dev/null +++ b/java_git/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 数据源本地存储已忽略文件 +/../../../../../../:\Connor(项目管理)\塞尔特项目\OA集成\java_git\.idea/dataSources/ +/dataSources.local.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ diff --git a/java_git/.idea/WEB-INF/web.xml b/java_git/.idea/WEB-INF/web.xml new file mode 100644 index 0000000..f3e098f --- /dev/null +++ b/java_git/.idea/WEB-INF/web.xml @@ -0,0 +1,4 @@ + + +com.jk.tc.web + \ No newline at end of file diff --git a/java_git/.idea/artifacts/java_git_jar.xml b/java_git/.idea/artifacts/java_git_jar.xml new file mode 100644 index 0000000..e1ef658 --- /dev/null +++ b/java_git/.idea/artifacts/java_git_jar.xml @@ -0,0 +1,73 @@ + + + $PROJECT_DIR$/out/artifacts/java_git_jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/artifacts/tcoaserver.xml b/java_git/.idea/artifacts/tcoaserver.xml new file mode 100644 index 0000000..696c153 --- /dev/null +++ b/java_git/.idea/artifacts/tcoaserver.xml @@ -0,0 +1,83 @@ + + + $PROJECT_DIR$/out/artifacts/tcoaserver + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/compiler.xml b/java_git/.idea/compiler.xml new file mode 100644 index 0000000..3cc4977 --- /dev/null +++ b/java_git/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/encodings.xml b/java_git/.idea/encodings.xml new file mode 100644 index 0000000..fade66b --- /dev/null +++ b/java_git/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/inspectionProfiles/Project_Default.xml b/java_git/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6560a98 --- /dev/null +++ b/java_git/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/java_git/.idea/jarRepositories.xml b/java_git/.idea/jarRepositories.xml new file mode 100644 index 0000000..22e83c6 --- /dev/null +++ b/java_git/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/java_git.iml b/java_git/.idea/java_git.iml new file mode 100644 index 0000000..38bc967 --- /dev/null +++ b/java_git/.idea/java_git.iml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Java_EE_6_Java_EE_6.xml b/java_git/.idea/libraries/Java_EE_6_Java_EE_6.xml new file mode 100644 index 0000000..f92ef07 --- /dev/null +++ b/java_git/.idea/libraries/Java_EE_6_Java_EE_6.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/java_git/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml new file mode 100644 index 0000000..6fec8f4 --- /dev/null +++ b/java_git/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/java_git/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml new file mode 100644 index 0000000..9eb8596 --- /dev/null +++ b/java_git/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_alibaba_fastjson_1_2_47.xml b/java_git/.idea/libraries/Maven__com_alibaba_fastjson_1_2_47.xml new file mode 100644 index 0000000..dcd6ee5 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_alibaba_fastjson_1_2_47.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_auth0_java_jwt_3_4_0.xml b/java_git/.idea/libraries/Maven__com_auth0_java_jwt_3_4_0.xml new file mode 100644 index 0000000..782833e --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_auth0_java_jwt_3_4_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/java_git/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml new file mode 100644 index 0000000..bc7d7fd --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_3.xml b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_3.xml new file mode 100644 index 0000000..d640824 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_3.xml b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_3.xml new file mode 100644 index 0000000..572ed92 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_3.xml b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_3.xml new file mode 100644 index 0000000..c9ac6cc --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_3.xml b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_3.xml new file mode 100644 index 0000000..76ed7dd --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_3.xml b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_3.xml new file mode 100644 index 0000000..1ed8753 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_3.xml b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_3.xml new file mode 100644 index 0000000..2aad1f7 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_google_guava_guava_20_0.xml b/java_git/.idea/libraries/Maven__com_google_guava_guava_20_0.xml new file mode 100644 index 0000000..c5bd322 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_google_guava_guava_20_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml b/java_git/.idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml new file mode 100644 index 0000000..29d03ee --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_itextpdf_itextpdf_5_2_0.xml b/java_git/.idea/libraries/Maven__com_itextpdf_itextpdf_5_2_0.xml new file mode 100644 index 0000000..7ffb3ce --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_itextpdf_itextpdf_5_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml b/java_git/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml new file mode 100644 index 0000000..f19f6eb --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_oracle_ojdbc8_12_2_0_1.xml b/java_git/.idea/libraries/Maven__com_oracle_ojdbc8_12_2_0_1.xml new file mode 100644 index 0000000..0ca12d2 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_oracle_ojdbc8_12_2_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_9_0.xml b/java_git/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_9_0.xml new file mode 100644 index 0000000..4776dca --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml b/java_git/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml new file mode 100644 index 0000000..fea99f0 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_sun_mail_jakarta_mail_1_6_5.xml b/java_git/.idea/libraries/Maven__com_sun_mail_jakarta_mail_1_6_5.xml new file mode 100644 index 0000000..a86e176 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_sun_mail_jakarta_mail_1_6_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/java_git/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml new file mode 100644 index 0000000..b8581a6 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml b/java_git/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml new file mode 100644 index 0000000..97e2291 --- /dev/null +++ b/java_git/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml b/java_git/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml new file mode 100644 index 0000000..50b8f2b --- /dev/null +++ b/java_git/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_1.xml b/java_git/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_1.xml new file mode 100644 index 0000000..f25b99b --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml b/java_git/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml new file mode 100644 index 0000000..03588dc --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml b/java_git/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml new file mode 100644 index 0000000..4a47148 --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml b/java_git/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml new file mode 100644 index 0000000..f934649 --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml b/java_git/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml new file mode 100644 index 0000000..7898a19 --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml b/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml new file mode 100644 index 0000000..4ed7d0d --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml b/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml new file mode 100644 index 0000000..c40ef9f --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml b/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml new file mode 100644 index 0000000..0700f01 --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml b/java_git/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml new file mode 100644 index 0000000..1c4a621 --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml b/java_git/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml new file mode 100644 index 0000000..395508f --- /dev/null +++ b/java_git/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/java_git/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml new file mode 100644 index 0000000..be90656 --- /dev/null +++ b/java_git/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/java_git/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml new file mode 100644 index 0000000..cba9dd2 --- /dev/null +++ b/java_git/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/java_git/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml new file mode 100644 index 0000000..04213f7 --- /dev/null +++ b/java_git/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml b/java_git/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml new file mode 100644 index 0000000..ff49512 --- /dev/null +++ b/java_git/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml b/java_git/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml new file mode 100644 index 0000000..e74f3ab --- /dev/null +++ b/java_git/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_4_0_b180830_0359.xml b/java_git/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_4_0_b180830_0359.xml new file mode 100644 index 0000000..672dbe5 --- /dev/null +++ b/java_git/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_4_0_b180830_0359.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__junit_junit_4_13_1.xml b/java_git/.idea/libraries/Maven__junit_junit_4_13_1.xml new file mode 100644 index 0000000..9fa24fc --- /dev/null +++ b/java_git/.idea/libraries/Maven__junit_junit_4_13_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_22.xml b/java_git/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_22.xml new file mode 100644 index 0000000..4de6b45 --- /dev/null +++ b/java_git/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_18.xml b/java_git/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_18.xml new file mode 100644 index 0000000..532908c --- /dev/null +++ b/java_git/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_18.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_18.xml b/java_git/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_18.xml new file mode 100644 index 0000000..a3dcc5b --- /dev/null +++ b/java_git/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_18.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml b/java_git/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml new file mode 100644 index 0000000..b3d3858 --- /dev/null +++ b/java_git/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml b/java_git/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml new file mode 100644 index 0000000..1083023 --- /dev/null +++ b/java_git/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml b/java_git/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml new file mode 100644 index 0000000..8ad4996 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml b/java_git/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml new file mode 100644 index 0000000..57e6ac4 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_41.xml b/java_git/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_41.xml new file mode 100644 index 0000000..7ea265d --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_41.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_41.xml b/java_git/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_41.xml new file mode 100644 index 0000000..0850992 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_41.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml b/java_git/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml new file mode 100644 index 0000000..f854ab0 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml b/java_git/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml new file mode 100644 index 0000000..8976500 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml b/java_git/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml new file mode 100644 index 0000000..ae5020d --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml b/java_git/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml new file mode 100644 index 0000000..6b5496f --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_3.xml b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_3.xml new file mode 100644 index 0000000..d6a98a9 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_3.xml b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_3.xml new file mode 100644 index 0000000..3f50def --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_3.xml b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_3.xml new file mode 100644 index 0000000..2331281 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_3.xml b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_3.xml new file mode 100644 index 0000000..98e9d9e --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_3.xml b/java_git/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_3.xml new file mode 100644 index 0000000..0122027 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_3.xml b/java_git/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_3.xml new file mode 100644 index 0000000..8ddd1f8 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_6_3.xml b/java_git/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_6_3.xml new file mode 100644 index 0000000..65905f0 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml b/java_git/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml new file mode 100644 index 0000000..87cb599 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml b/java_git/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml new file mode 100644 index 0000000..d2f4afa --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml b/java_git/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml new file mode 100644 index 0000000..6c02a63 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml b/java_git/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml new file mode 100644 index 0000000..377b7a7 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml b/java_git/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml new file mode 100644 index 0000000..713f604 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_2.xml b/java_git/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_2.xml new file mode 100644 index 0000000..af2905f --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_2.xml b/java_git/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_2.xml new file mode 100644 index 0000000..6cce5e6 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml b/java_git/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml new file mode 100644 index 0000000..af41e3b --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/java_git/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml new file mode 100644 index 0000000..fbc1b16 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml b/java_git/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml new file mode 100644 index 0000000..0bf8cf2 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.xml b/java_git/.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.xml new file mode 100644 index 0000000..33d4265 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml b/java_git/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml new file mode 100644 index 0000000..c4c54d6 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml b/java_git/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml new file mode 100644 index 0000000..27229ce --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml b/java_git/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml new file mode 100644 index 0000000..02b6812 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_2_13_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_2_13_RELEASE.xml new file mode 100644 index 0000000..094fc2c --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_2_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_2_13_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_2_13_RELEASE.xml new file mode 100644 index 0000000..f033511 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_2_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_7_RELEASE.xml new file mode 100644 index 0000000..e2e724f --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_7_RELEASE.xml new file mode 100644 index 0000000..0ceef74 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_3_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_3_RELEASE.xml new file mode 100644 index 0000000..f4db168 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_3_7_RELEASE.xml new file mode 100644 index 0000000..de89ea7 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_7_RELEASE.xml new file mode 100644 index 0000000..5562490 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_7_RELEASE.xml new file mode 100644 index 0000000..6e20ac2 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_7_RELEASE.xml new file mode 100644 index 0000000..f64b07b --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_mail_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_mail_2_3_7_RELEASE.xml new file mode 100644 index 0000000..05e0619 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_mail_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_7_RELEASE.xml new file mode 100644 index 0000000..62c9b70 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_7_RELEASE.xml new file mode 100644 index 0000000..bc668e2 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_7_RELEASE.xml new file mode 100644 index 0000000..73b208b --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_7_RELEASE.xml new file mode 100644 index 0000000..92991c0 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_7_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_7_RELEASE.xml new file mode 100644 index 0000000..2193c1c --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml new file mode 100644 index 0000000..fbc0452 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml new file mode 100644 index 0000000..7e6f096 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_5_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_5_RELEASE.xml new file mode 100644 index 0000000..3077cc0 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_aop_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_aop_5_2_12_RELEASE.xml new file mode 100644 index 0000000..dc6f7c3 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_aop_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_beans_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_beans_5_2_12_RELEASE.xml new file mode 100644 index 0000000..34c0b67 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_beans_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_context_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_context_5_2_12_RELEASE.xml new file mode 100644 index 0000000..798211b --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_context_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_12_RELEASE.xml new file mode 100644 index 0000000..b89cabe --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_core_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_core_5_2_12_RELEASE.xml new file mode 100644 index 0000000..6d04c1d --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_core_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_expression_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_expression_5_2_12_RELEASE.xml new file mode 100644 index 0000000..80c024b --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_expression_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_12_RELEASE.xml new file mode 100644 index 0000000..d16bf62 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_12_RELEASE.xml new file mode 100644 index 0000000..3e33262 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_12_RELEASE.xml new file mode 100644 index 0000000..78d21cc --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_test_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_test_5_2_12_RELEASE.xml new file mode 100644 index 0000000..a80f30b --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_test_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_tx_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_tx_5_2_12_RELEASE.xml new file mode 100644 index 0000000..5920caf --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_tx_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_web_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_web_5_2_12_RELEASE.xml new file mode 100644 index 0000000..35a2201 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_web_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_12_RELEASE.xml b/java_git/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_12_RELEASE.xml new file mode 100644 index 0000000..ba92d54 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml b/java_git/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml new file mode 100644 index 0000000..006a8d3 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml b/java_git/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml new file mode 100644 index 0000000..e998675 --- /dev/null +++ b/java_git/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/misc.xml b/java_git/.idea/misc.xml new file mode 100644 index 0000000..7ef93be --- /dev/null +++ b/java_git/.idea/misc.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/modules.xml b/java_git/.idea/modules.xml new file mode 100644 index 0000000..b836c21 --- /dev/null +++ b/java_git/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/uiDesigner.xml b/java_git/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/java_git/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/.idea/vcs.xml b/java_git/.idea/vcs.xml new file mode 100644 index 0000000..38675d8 --- /dev/null +++ b/java_git/.idea/vcs.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/java_git/.mvn/wrapper/maven-wrapper.jar b/java_git/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..9cc84ea Binary files /dev/null and b/java_git/.mvn/wrapper/maven-wrapper.jar differ diff --git a/java_git/.mvn/wrapper/maven-wrapper.properties b/java_git/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..b573bb5 --- /dev/null +++ b/java_git/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/java_git/lib/javax.ejb.jar b/java_git/lib/javax.ejb.jar new file mode 100644 index 0000000..4ebf5ec Binary files /dev/null and b/java_git/lib/javax.ejb.jar differ diff --git a/java_git/lib/javax.jms.jar b/java_git/lib/javax.jms.jar new file mode 100644 index 0000000..d31451a Binary files /dev/null and b/java_git/lib/javax.jms.jar differ diff --git a/java_git/lib/javax.persistence.jar b/java_git/lib/javax.persistence.jar new file mode 100644 index 0000000..21d80e0 Binary files /dev/null and b/java_git/lib/javax.persistence.jar differ diff --git a/java_git/lib/javax.resource.jar b/java_git/lib/javax.resource.jar new file mode 100644 index 0000000..696a234 Binary files /dev/null and b/java_git/lib/javax.resource.jar differ diff --git a/java_git/lib/javax.servlet.jsp.jar b/java_git/lib/javax.servlet.jsp.jar new file mode 100644 index 0000000..9c0631c Binary files /dev/null and b/java_git/lib/javax.servlet.jsp.jar differ diff --git a/java_git/lib/javax.servlet.jsp.jstl.jar b/java_git/lib/javax.servlet.jsp.jstl.jar new file mode 100644 index 0000000..7be17cc Binary files /dev/null and b/java_git/lib/javax.servlet.jsp.jstl.jar differ diff --git a/java_git/lib/javax.transaction.jar b/java_git/lib/javax.transaction.jar new file mode 100644 index 0000000..729c695 Binary files /dev/null and b/java_git/lib/javax.transaction.jar differ diff --git a/java_git/mvnw b/java_git/mvnw new file mode 100644 index 0000000..5bf251c --- /dev/null +++ b/java_git/mvnw @@ -0,0 +1,225 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +echo $MAVEN_PROJECTBASEDIR +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/java_git/mvnw.cmd b/java_git/mvnw.cmd new file mode 100644 index 0000000..019bd74 --- /dev/null +++ b/java_git/mvnw.cmd @@ -0,0 +1,143 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" + +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/java_git/pom.xml b/java_git/pom.xml new file mode 100644 index 0000000..97d2ea9 --- /dev/null +++ b/java_git/pom.xml @@ -0,0 +1,352 @@ + + + 4.0.0 + + com.pjb + ConnorSendMail + 2.0.0 + jar + + springboot-jjwt + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 2.3.7.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + true + + + + + + org.springframework.boot + spring-boot-starter-mail + 2.3.7.RELEASE + + + + org.springframework.boot + spring-boot-starter-amqp + 2.3.7.RELEASE + + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.3.2 + + + com.alibaba + fastjson + 1.2.47 + + + io.jsonwebtoken + jjwt + 0.9.1 + + + com.auth0 + java-jwt + 3.4.0 + + + + mysql + mysql-connector-java + runtime + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.oracle + ojdbc8 + 12.2.0.1 + + + + org.springframework.boot + spring-boot-starter + 2.0.3.RELEASE + + + + com.itextpdf + itextpdf + 5.2.0 + + + com.itextpdf + itext-asian + 5.2.0 + + + + javax.xml.bind + jaxb-api + 2.4.0-b180830.0359 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.apache.maven.plugins + maven-jar-plugin + 2.6 + + + + true + lib/ + com.pjb.springbootjjwt.SpringbootJjwtApplication + + + + + + + + + + diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/SpringbootJjwtApplication.java b/java_git/src/main/java/com/pjb/springbootjjwt/SpringbootJjwtApplication.java new file mode 100644 index 0000000..db838c4 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/SpringbootJjwtApplication.java @@ -0,0 +1,16 @@ +package com.pjb.springbootjjwt; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; + + +@SpringBootApplication +@MapperScan("com.pjb.springbootjjwt.mapper") +public class SpringbootJjwtApplication { + + public static void main(String[] args) { + ConfigurableApplicationContext contenxt = SpringApplication.run(SpringbootJjwtApplication.class, args); + } +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/annotation/PassToken.java b/java_git/src/main/java/com/pjb/springbootjjwt/annotation/PassToken.java new file mode 100644 index 0000000..4ab52b1 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/annotation/PassToken.java @@ -0,0 +1,13 @@ +package com.pjb.springbootjjwt.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface PassToken { + boolean required() default true; +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/annotation/UserLoginToken.java b/java_git/src/main/java/com/pjb/springbootjjwt/annotation/UserLoginToken.java new file mode 100644 index 0000000..612f366 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/annotation/UserLoginToken.java @@ -0,0 +1,13 @@ +package com.pjb.springbootjjwt.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface UserLoginToken { + boolean required() default true; +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/config/InterceptorConfig.java b/java_git/src/main/java/com/pjb/springbootjjwt/config/InterceptorConfig.java new file mode 100644 index 0000000..986f5da --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/config/InterceptorConfig.java @@ -0,0 +1,21 @@ +package com.pjb.springbootjjwt.config; + +import com.pjb.springbootjjwt.interceptor.AuthenticationInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + + +@Configuration +public class InterceptorConfig implements WebMvcConfigurer { + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(authenticationInterceptor()) + .addPathPatterns("/**"); // 拦截所有请求,通过判断是否有 @LoginRequired 注解 决定是否需要登录 + } + @Bean + public AuthenticationInterceptor authenticationInterceptor() { + return new AuthenticationInterceptor(); + } +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/config/SwaggerConfig.java b/java_git/src/main/java/com/pjb/springbootjjwt/config/SwaggerConfig.java new file mode 100644 index 0000000..be5dff6 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/config/SwaggerConfig.java @@ -0,0 +1,10 @@ +package com.pjb.springbootjjwt.config; + +import org.springframework.context.annotation.Configuration; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration //说明这是一个配置类 +@EnableSwagger2// 该注解开启Swagger2的自动配置 +public class SwaggerConfig { + +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/control/CNServerController.java b/java_git/src/main/java/com/pjb/springbootjjwt/control/CNServerController.java new file mode 100644 index 0000000..7ac6666 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/control/CNServerController.java @@ -0,0 +1,162 @@ +package com.pjb.springbootjjwt.control; + +import com.alibaba.fastjson.JSONObject; +import com.pjb.springbootjjwt.SpringbootJjwtApplication; +import com.pjb.springbootjjwt.entity.ServerDwgtopdfEntry; +import com.pjb.springbootjjwt.entity.ServerMailEntry; +import com.pjb.springbootjjwt.entity.ServerSignoffEntry; +import com.pjb.springbootjjwt.mapper.MailContentMapper; +import com.pjb.springbootjjwt.service.serviceImpl.IMailServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +@RestController +@RequestMapping("server") +public class CNServerController { + + private final Logger logger = LoggerFactory.getLogger(CNServerController.class); + /**发送邮件服务*/ + @Autowired + IMailServiceImpl sendMailService; + + /**使用RabbitTemplate,这提供了接收/发送等等方法*/ + @Autowired + RabbitTemplate rabbitTemplate; + + @Autowired + private MailContentMapper mailMapper; + /** + * 后台发送邮件的服务 + * @param mailinfo 发送邮件的信息 + * @return + */ + @PostMapping(value = "/sendmail") + public Object sendMail(@RequestBody ServerMailEntry mailinfo) + { + System.out.println("请求发送邮件"); + logger.warn("请求发送邮件"); + JSONObject jsonObject=new JSONObject(); + if(mailinfo == null){ + System.out.println("发送邮件失败,获取接口参数内容为空!!!"); + logger.warn("发送邮件失败,获取接口参数内容为空!!!"); + jsonObject.put("success", false); + jsonObject.put("message", "发送邮件失败"); + jsonObject.put("errorMessage","接口入参,参数不正确"); + return jsonObject; + } + System.out.println("请求的数据:"+mailinfo.toString()); + logger.warn("请求的数据:"+mailinfo.toString()); + try { + jsonObject.put("mailInfo",mailinfo.toString()); + if(mailinfo.getFinddb()!=null&&!"".equals(mailinfo.getFinddb())){ + String content = mailMapper.findMailContent(mailinfo.getFinddb(),mailinfo.getTo()[0]); + if(content!=null&&!"".equals(content)) { + String[] contents = content.split("#-#"); + String[] tagters = contents[0].split("="); + String[] references = contents[1].split("="); + String alltagters = "

      目标:

      "; + if (tagters.length > 1) { + String[] tagter = tagters[1].split("\\|"); + for (int i = 0; i < tagter.length; i++) { + String[] value = tagter[i].split("#~#"); + alltagters = alltagters + ""; + } + } + alltagters = alltagters + "
      名称类型
      " + value[0] + "" + value[1] + "

      引用:

      "; + if (references.length > 1) { + String[] tagter = references[1].split("\\|"); + for (int i = 0; i < tagter.length; i++) { + String[] value = tagter[i].split("#~#"); + alltagters = alltagters + ""; + } + } + alltagters = alltagters + "
      名称类型
      " + value[0] + "" + value[1] + "
      "; + mailinfo.setContent(mailinfo.getContent() + alltagters); + } + } + sendMailService.sendHtmlMail(mailinfo.getNickname(),mailinfo.getTo(),mailinfo.getCc(),mailinfo.getSubject(),mailinfo.getContent()); + jsonObject.put("success", true); + jsonObject.put("message", "发送邮件完成"); + System.out.println("邮件内容:"+mailinfo.getContent()); + logger.warn("邮件内容:"+mailinfo.getContent()); + System.out.println("发送邮件完成!!!"); + logger.warn("发送邮件完成!!!"); + } catch (Exception e) { + System.out.println("发送邮件失败:"+e.getMessage()); + logger.warn("发送邮件失败:",e); + jsonObject.put("success", false); + jsonObject.put("message", "发送邮件失败"); + jsonObject.put("errorMessage",e.getMessage()); + } + System.gc(); + return jsonObject; + } + + +// /** +// * 后台dwg转PDF服务,转好后直接将转换成功的pdf文件下挂到teamcenter中 +// * @param dwgtopdfEntry +// * @return +// */ +// @PostMapping(value = "/dwgtopdf") +// public Object dwgToPdf(@RequestBody ServerDwgtopdfEntry dwgtopdfEntry) +// { +// logger.info("请求DWG转PDF"); +// logger.info("请求的数据:"+dwgtopdfEntry.toString()); +// System.out.println("in dwgtopdf server "+new Date()); +// JSONObject jsonObject=new JSONObject(); +// System.out.println(dwgtopdfEntry.toString()); +// jsonObject.put("data",dwgtopdfEntry); +// String messageId = String.valueOf(UUID.randomUUID()); +// String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); +// Map map=new HashMap<>(); +// map.put("messageId",messageId); +// map.put("messageData",dwgtopdfEntry); +// map.put("createTime",createTime); +// //将消息携带绑定键值:TestDirectRouting 发送到交换机TestDirectExchange +// rabbitTemplate.convertAndSend("SuporDwgtopdfQueueExchange", "SuporDwgtopdfQueueRouting", map); +// logger.info("发送数据到队列成功!!!"); +// return jsonObject; +// } + + /** + * 后台电子签名 + * @param signoffEntry 电子签名信息 + * @return + */ + @PostMapping(value = "/signoff") + public Object signoff(@RequestBody ServerSignoffEntry signoffEntry) + { + logger.info("请求PDF签字"); + logger.info("请求的数据:"+signoffEntry.toString()); + System.out.println("in signoff server "+new Date()); + JSONObject jsonObject=new JSONObject(); + System.out.println(signoffEntry.toString()); + + jsonObject.put("data",signoffEntry); + String messageId = String.valueOf(UUID.randomUUID()); + String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + Map map=new HashMap<>(); + map.put("messageId",messageId); + map.put("messageData",signoffEntry); + map.put("createTime",createTime); + //将消息携带绑定键值:TestDirectRouting 发送到交换机TestDirectExchange + rabbitTemplate.convertAndSend("SuporSignoffQueueExchange", "SuporSignoffQueueRouting", map); + logger.info("发送数据到队列成功!!!"); + return jsonObject; + } +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerDwgtopdfEntry.java b/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerDwgtopdfEntry.java new file mode 100644 index 0000000..a2283ae --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerDwgtopdfEntry.java @@ -0,0 +1,26 @@ +package com.pjb.springbootjjwt.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.HashMap; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ServerDwgtopdfEntry implements Serializable { + String[] tccomponentuid; + String[] tcdatasetuid; + String[] pdfuid; + String tccomponentrelation; + String dwgtype; + String dwgreferencename; + String tcoriginalfilename; + String tcdepartmentid; + String taskpuid; + String tcstatus; + String isdwgtopdf; + HashMap signinfos; +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerMailEntry.java b/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerMailEntry.java new file mode 100644 index 0000000..effea38 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerMailEntry.java @@ -0,0 +1,19 @@ +package com.pjb.springbootjjwt.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ServerMailEntry { + String nickname; + String from; + String[] to; + String[] cc; + String subject; + String title; + String content; + String finddb; +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerSignoffEntry.java b/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerSignoffEntry.java new file mode 100644 index 0000000..f8bc0be --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/entity/ServerSignoffEntry.java @@ -0,0 +1,43 @@ +package com.pjb.springbootjjwt.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.HashMap; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ServerSignoffEntry implements Serializable { + /**是否签名PDF,如果不是PDF则转换成PDF后进行签名*/ + boolean issignpdf = true; + + boolean isoriginalfilepdf = false; + boolean isoriginalfiledwg = false; + boolean isdwgtopdf = false; + /**基地代号*/ + String tcdepartmentid; + /**tc中的数据集UID*/ + String tcdatasetuid ; + /**tc中的对象UID*/ + String tccomponentuid; + /**tc中的签名后文件下挂到对象的关系*/ + String tccomponentrelation; + String pdfuid; + String tcpdfrelation; + String tcoriginalname; + String tcoriginalext; + String tcoriginalfilename; + String tcpdffilename; + String tcsigninfofilename; + String dwgtype; + String taskpuid; + //pdf发布状态 + String tcstatus; + String picture; + String location; + HashMap signinfos; +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/entity/User.java b/java_git/src/main/java/com/pjb/springbootjjwt/entity/User.java new file mode 100644 index 0000000..a265963 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/entity/User.java @@ -0,0 +1,15 @@ +package com.pjb.springbootjjwt.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class User { + String app_secret; + String username; + String password; +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/interceptor/AuthenticationInterceptor.java b/java_git/src/main/java/com/pjb/springbootjjwt/interceptor/AuthenticationInterceptor.java new file mode 100644 index 0000000..62691ec --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/interceptor/AuthenticationInterceptor.java @@ -0,0 +1,82 @@ +package com.pjb.springbootjjwt.interceptor; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTDecodeException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.pjb.springbootjjwt.annotation.PassToken; +import com.pjb.springbootjjwt.annotation.UserLoginToken; +import com.pjb.springbootjjwt.entity.User; +import com.pjb.springbootjjwt.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.Method; + + + +public class AuthenticationInterceptor implements HandlerInterceptor { + @Autowired + UserService userService; + @Override + public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object object) throws Exception { + String token = httpServletRequest.getHeader("access_token");// 从 http 请求头中取出 token + // 如果不是映射到方法直接通过 + if(!(object instanceof HandlerMethod)){ + return true; + } + HandlerMethod handlerMethod=(HandlerMethod)object; + Method method=handlerMethod.getMethod(); + //检查是否有passtoken注释,有则跳过认证 + if (method.isAnnotationPresent(PassToken.class)) { + PassToken passToken = method.getAnnotation(PassToken.class); + if (passToken.required()) { + return true; + } + } + //检查有没有需要用户权限的注解 + if (method.isAnnotationPresent(UserLoginToken.class)) { + UserLoginToken userLoginToken = method.getAnnotation(UserLoginToken.class); + if (userLoginToken.required()) { + // 执行认证 + if (token == null) { + throw new RuntimeException("无token,请重新登录"); + } + // 获取 token 中的 user id + String userId; + try { + userId = JWT.decode(token).getAudience().get(0); + } catch (JWTDecodeException j) { + throw new RuntimeException("token验证失败"); + } + User user = userService.findUserById(userId); + if (user == null) { + throw new RuntimeException("用户不存在,请重新登录"); + } + // 验证 token + JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(user.getPassword())).build(); + try { + jwtVerifier.verify(token); + } catch (JWTVerificationException e) { + throw new RuntimeException("token验证失败"); + } + return true; + } + } + return true; + } + + @Override + public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { + + } + @Override + public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { + + } +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/interceptor/GloablExceptionHandler.java b/java_git/src/main/java/com/pjb/springbootjjwt/interceptor/GloablExceptionHandler.java new file mode 100644 index 0000000..73e29a1 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/interceptor/GloablExceptionHandler.java @@ -0,0 +1,22 @@ +package com.pjb.springbootjjwt.interceptor; + +import com.alibaba.fastjson.JSONObject; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + + +@ControllerAdvice +public class GloablExceptionHandler { + @ResponseBody + @ExceptionHandler(Exception.class) + public Object handleException(Exception e) { + String msg = e.getMessage(); + if (msg == null || msg.equals("")) { + msg = "服务器出错"; + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("message", msg); + return jsonObject; + } +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/mapper/MailContentMapper.java b/java_git/src/main/java/com/pjb/springbootjjwt/mapper/MailContentMapper.java new file mode 100644 index 0000000..bf6bc4d --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/mapper/MailContentMapper.java @@ -0,0 +1,13 @@ +package com.pjb.springbootjjwt.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Mapper +@Repository +public interface MailContentMapper { + String findMailContent(@Param("puid")String puid,@Param("user_mail")String user_mail); +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/mapper/UserMapper.java b/java_git/src/main/java/com/pjb/springbootjjwt/mapper/UserMapper.java new file mode 100644 index 0000000..f361264 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/mapper/UserMapper.java @@ -0,0 +1,16 @@ +package com.pjb.springbootjjwt.mapper; + +import com.pjb.springbootjjwt.entity.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface UserMapper { + User findByUsername(@Param("username") String username); + + User findByUsernameAndId(@Param("username") String username, @Param("app_secret") String Id); + + User findUserById(@Param("app_secret") String Id); +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/service/IMailService.java b/java_git/src/main/java/com/pjb/springbootjjwt/service/IMailService.java new file mode 100644 index 0000000..e43e06f --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/service/IMailService.java @@ -0,0 +1,34 @@ +package com.pjb.springbootjjwt.service; + + +import javax.mail.MessagingException; + +public interface IMailService { + + /** + * 发送文本邮件 + * @param to 收件人 + * @param subject 主题 + * @param content 内容 + */ + void sendSimpleMail(String to, String subject, String content); + + /** + * 发送HTML邮件 + * @param to 收件人 + * @param subject 主题 + * @param content 内容 + */ + public void sendHtmlMail(String nickName,String[] to,String[] cc, String subject, String content) throws MessagingException, Exception; + + + + /** + * 发送带附件的邮件 + * @param to 收件人 + * @param subject 主题 + * @param content 内容 + * @param filePath 附件 + */ + public void sendAttachmentsMail(String to, String subject, String content, String filePath); +} \ No newline at end of file diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/service/TokenService.java b/java_git/src/main/java/com/pjb/springbootjjwt/service/TokenService.java new file mode 100644 index 0000000..3a6316d --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/service/TokenService.java @@ -0,0 +1,18 @@ +package com.pjb.springbootjjwt.service; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.algorithms.Algorithm; +import com.pjb.springbootjjwt.entity.User; +import org.springframework.stereotype.Service; + + + +@Service("TokenService") +public class TokenService { + public String getToken(User user) { + String token=""; + token = JWT.create().withAudience(user.getApp_secret())// 将 user id 保存到 token 里面 + .sign(Algorithm.HMAC256(user.getPassword()));// 以 password 作为 token 的密钥 + return token; + } +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/service/UserService.java b/java_git/src/main/java/com/pjb/springbootjjwt/service/UserService.java new file mode 100644 index 0000000..4896e91 --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/service/UserService.java @@ -0,0 +1,26 @@ +package com.pjb.springbootjjwt.service; + +import com.pjb.springbootjjwt.entity.User; +import com.pjb.springbootjjwt.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +@Service("UserService") +public class UserService { + @Autowired + UserMapper userMapper; + + public User findByUsername(User user) { + return userMapper.findByUsername(user.getUsername()); + } + + public User findByUsernameAndId(User user) { + return userMapper.findByUsernameAndId(user.getUsername(), user.getApp_secret()); + } + + public User findUserById(String userId) { + return userMapper.findUserById(userId); + } + +} diff --git a/java_git/src/main/java/com/pjb/springbootjjwt/service/serviceImpl/IMailServiceImpl.java b/java_git/src/main/java/com/pjb/springbootjjwt/service/serviceImpl/IMailServiceImpl.java new file mode 100644 index 0000000..86792fb --- /dev/null +++ b/java_git/src/main/java/com/pjb/springbootjjwt/service/serviceImpl/IMailServiceImpl.java @@ -0,0 +1,125 @@ +package com.pjb.springbootjjwt.service.serviceImpl; + +import com.pjb.springbootjjwt.service.IMailService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.FileSystemResource; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.stereotype.Service; + +import javax.mail.MessagingException; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import java.io.File; + + +@Service("SendMailService") +public class IMailServiceImpl implements IMailService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + + /** + * Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口,这里直接注入即可使用 + */ + @Autowired + private JavaMailSender mailSender; + + /** + * 配置文件中我的qq邮箱 + */ + @Value("${spring.mail.from}") + private String from; + + /** + * 简单文本邮件 + * + * @param to 收件人 + * @param subject 主题 + * @param content 内容 + */ + @Override + public void sendSimpleMail(String to, String subject, String content) { + //创建SimpleMailMessage对象 + SimpleMailMessage message = new SimpleMailMessage(); + //邮件发送人 + message.setFrom(from); + //邮件接收人 + message.setTo(to); + //邮件主题 + message.setSubject(subject); + //邮件内容 + message.setText(content); + //发送邮件 + mailSender.send(message); + } + + /** + * html邮件 + * + * @param to 收件人 + * @param subject 主题 + * @param content 内容 + */ + @Override + public void sendHtmlMail(String nickName, String[] to, String[] cc, String subject, String content) throws Exception { + //获取MimeMessage对象 + MimeMessage message = mailSender.createMimeMessage(); + MimeMessageHelper messageHelper; + + messageHelper = new MimeMessageHelper(message, true); + //邮件发送人 + if (nickName == null) { + messageHelper.setFrom(from); + } else { + messageHelper.setFrom(new InternetAddress(from, nickName)); + } + //邮件接收人 + messageHelper.setTo(to); + //邮件抄送人 + if (cc != null) { + messageHelper.setCc(cc); + } + //邮件主题 + messageHelper.setSubject(subject); + //邮件内容,html格式 + String contents = content.replace("\\\\","\\"); + messageHelper.setText(content, true); + //发送 + mailSender.send(messageHelper.getMimeMessage()); + } + + /** + * 带附件的邮件 + * + * @param to 收件人 + * @param subject 主题 + * @param content 内容 + * @param filePath 附件 + */ + @Override + public void sendAttachmentsMail(String to, String subject, String content, String filePath) { + MimeMessage message = mailSender.createMimeMessage(); + try { + MimeMessageHelper helper = new MimeMessageHelper(message, true); + helper.setFrom(from); + helper.setTo(to); + helper.setSubject(subject); + helper.setText(content, true); + + FileSystemResource file = new FileSystemResource(new File(filePath)); + String fileName = filePath.substring(filePath.lastIndexOf(File.separator)); + helper.addAttachment(fileName, file); + mailSender.send(message); + //日志信息 + logger.info("邮件已经发送。"); + } catch (MessagingException e) { + logger.error("发送邮件时发生异常!", e); + } + + + } +} diff --git a/java_git/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/java_git/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 0000000..0af6036 --- /dev/null +++ b/java_git/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,29 @@ +{ + "properties": [ + { + "name": "teamcenter.url", + "type": "java.lang.String", + "description": "Description for teamcenter.url." + }, + { + "name": "teamcenter.user", + "type": "java.lang.String", + "description": "Description for teamcenter.user." + }, + { + "name": "teamcenter.pwd", + "type": "java.lang.String", + "description": "Description for teamcenter.pwd." + }, + { + "name": "teamcenter.fmsurl", + "type": "java.lang.String", + "description": "Description for teamcenter.fmsurl." + }, + { + "name": "teamcenter.fcccash", + "type": "java.lang.String", + "description": "Description for teamcenter.fcccash." + } + ] +} \ No newline at end of file diff --git a/java_git/src/main/resources/application.yaml b/java_git/src/main/resources/application.yaml new file mode 100644 index 0000000..f467224 --- /dev/null +++ b/java_git/src/main/resources/application.yaml @@ -0,0 +1,36 @@ +debug: false +server: + port: 9293 +spring: + application: + name: ConnorServer + #Oracle数据库配置 + datasource: + driver-class-name: oracle.jdbc.OracleDriver + url: jdbc:oracle:thin:@172.24.16.143:1521:tc12 + username: infodba + password: infodba + #邮件配置 + mail: + #康勒邮箱配置,测试用 + host: smtp.connor.net.cn + username: liujl@connor.net.cn + password: Admin@123456 + from: liujl@connor.net.cn + port: 25 + properties.mail.smtp.port: 25 + properties.mail.smtp.starttls.enable: true + properties.mail.smtp.starttls.required: true + properties.mail.smtp.ssl.enable: true + default-encoding: utf-8 + #配置rabbitMq 服务器 + rabbitmq: + host: localhost + port: 5672 + username: admin + password: admin + #虚拟host 可以不设置,使用server默认host + virtual-host: suporserver +#mybatis配置文件 +mybatis: + config-location: classpath:mybatis.xml \ No newline at end of file diff --git a/java_git/src/main/resources/com/pjb/springbootjjwt/mapper/MailContentMapper.xml b/java_git/src/main/resources/com/pjb/springbootjjwt/mapper/MailContentMapper.xml new file mode 100644 index 0000000..123799a --- /dev/null +++ b/java_git/src/main/resources/com/pjb/springbootjjwt/mapper/MailContentMapper.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/java_git/src/main/resources/com/pjb/springbootjjwt/mapper/UserMapper.xml b/java_git/src/main/resources/com/pjb/springbootjjwt/mapper/UserMapper.xml new file mode 100644 index 0000000..26a982f --- /dev/null +++ b/java_git/src/main/resources/com/pjb/springbootjjwt/mapper/UserMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/java_git/src/main/resources/logback-spring.xml b/java_git/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..7a556b0 --- /dev/null +++ b/java_git/src/main/resources/logback-spring.xml @@ -0,0 +1,193 @@ + + + + + + + logback + + + + + + + + + + + + + + + + + info + + + ${CONSOLE_LOG_PATTERN} + + GBK + + + + + + + + ${log.path}/web_debug.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + debug + ACCEPT + DENY + + + + + + + ${log.path}/web_info.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + info + ACCEPT + DENY + + + + + + + ${log.path}/web_warn.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + warn + ACCEPT + DENY + + + + + + + ${log.path}/web_error.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/src/main/resources/mybatis.xml b/java_git/src/main/resources/mybatis.xml new file mode 100644 index 0000000..8637727 --- /dev/null +++ b/java_git/src/main/resources/mybatis.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/java_git/src/main/resources/signpdfconfig.json b/java_git/src/main/resources/signpdfconfig.json new file mode 100644 index 0000000..8554320 --- /dev/null +++ b/java_git/src/main/resources/signpdfconfig.json @@ -0,0 +1,26 @@ +[ + {"departmentid":"wuhan", + "isleft": true, + "pdfsizes": [ + { + "sizename": "A4", + "wmin": 123, + "wmax": 200, + "hmin": 123, + "hmax": 124, + "poisions":[ + { + "property": "设计", + "xposition": 12, + "yposition": 25 + }, + { + "property": "审核", + "xposition": 12, + "yposition": 25 + } + ] + } + ] + } +] \ No newline at end of file diff --git a/java_git/src/test/java/com/pjb/springbootjjwt/SpringbootJjwtApplicationTests.java b/java_git/src/test/java/com/pjb/springbootjjwt/SpringbootJjwtApplicationTests.java new file mode 100644 index 0000000..8c06bc4 --- /dev/null +++ b/java_git/src/test/java/com/pjb/springbootjjwt/SpringbootJjwtApplicationTests.java @@ -0,0 +1,16 @@ +package com.pjb.springbootjjwt; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class SpringbootJjwtApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/java_git/target/ConnorSendMail-2.0.0.jar b/java_git/target/ConnorSendMail-2.0.0.jar new file mode 100644 index 0000000..090277c Binary files /dev/null and b/java_git/target/ConnorSendMail-2.0.0.jar differ diff --git a/java_git/target/ConnorSendMail-2.0.0.jar.original b/java_git/target/ConnorSendMail-2.0.0.jar.original new file mode 100644 index 0000000..a41d4f8 Binary files /dev/null and b/java_git/target/ConnorSendMail-2.0.0.jar.original differ diff --git a/java_git/target/classes/META-INF/additional-spring-configuration-metadata.json b/java_git/target/classes/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 0000000..0af6036 --- /dev/null +++ b/java_git/target/classes/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,29 @@ +{ + "properties": [ + { + "name": "teamcenter.url", + "type": "java.lang.String", + "description": "Description for teamcenter.url." + }, + { + "name": "teamcenter.user", + "type": "java.lang.String", + "description": "Description for teamcenter.user." + }, + { + "name": "teamcenter.pwd", + "type": "java.lang.String", + "description": "Description for teamcenter.pwd." + }, + { + "name": "teamcenter.fmsurl", + "type": "java.lang.String", + "description": "Description for teamcenter.fmsurl." + }, + { + "name": "teamcenter.fcccash", + "type": "java.lang.String", + "description": "Description for teamcenter.fcccash." + } + ] +} \ No newline at end of file diff --git a/java_git/target/classes/application.yaml b/java_git/target/classes/application.yaml new file mode 100644 index 0000000..f467224 --- /dev/null +++ b/java_git/target/classes/application.yaml @@ -0,0 +1,36 @@ +debug: false +server: + port: 9293 +spring: + application: + name: ConnorServer + #Oracle数据库配置 + datasource: + driver-class-name: oracle.jdbc.OracleDriver + url: jdbc:oracle:thin:@172.24.16.143:1521:tc12 + username: infodba + password: infodba + #邮件配置 + mail: + #康勒邮箱配置,测试用 + host: smtp.connor.net.cn + username: liujl@connor.net.cn + password: Admin@123456 + from: liujl@connor.net.cn + port: 25 + properties.mail.smtp.port: 25 + properties.mail.smtp.starttls.enable: true + properties.mail.smtp.starttls.required: true + properties.mail.smtp.ssl.enable: true + default-encoding: utf-8 + #配置rabbitMq 服务器 + rabbitmq: + host: localhost + port: 5672 + username: admin + password: admin + #虚拟host 可以不设置,使用server默认host + virtual-host: suporserver +#mybatis配置文件 +mybatis: + config-location: classpath:mybatis.xml \ No newline at end of file diff --git a/java_git/target/classes/com/pjb/springbootjjwt/SpringbootJjwtApplication.class b/java_git/target/classes/com/pjb/springbootjjwt/SpringbootJjwtApplication.class new file mode 100644 index 0000000..4664969 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/SpringbootJjwtApplication.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/annotation/PassToken.class b/java_git/target/classes/com/pjb/springbootjjwt/annotation/PassToken.class new file mode 100644 index 0000000..2d607ec Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/annotation/PassToken.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/annotation/UserLoginToken.class b/java_git/target/classes/com/pjb/springbootjjwt/annotation/UserLoginToken.class new file mode 100644 index 0000000..72ebed4 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/annotation/UserLoginToken.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/config/InterceptorConfig.class b/java_git/target/classes/com/pjb/springbootjjwt/config/InterceptorConfig.class new file mode 100644 index 0000000..a3b5667 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/config/InterceptorConfig.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/config/SwaggerConfig.class b/java_git/target/classes/com/pjb/springbootjjwt/config/SwaggerConfig.class new file mode 100644 index 0000000..4211b32 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/config/SwaggerConfig.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/control/CNServerController.class b/java_git/target/classes/com/pjb/springbootjjwt/control/CNServerController.class new file mode 100644 index 0000000..e44c7c6 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/control/CNServerController.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerDwgtopdfEntry.class b/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerDwgtopdfEntry.class new file mode 100644 index 0000000..cf1767b Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerDwgtopdfEntry.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerMailEntry.class b/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerMailEntry.class new file mode 100644 index 0000000..1df9426 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerMailEntry.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerSignoffEntry.class b/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerSignoffEntry.class new file mode 100644 index 0000000..6b96d19 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/entity/ServerSignoffEntry.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/entity/User.class b/java_git/target/classes/com/pjb/springbootjjwt/entity/User.class new file mode 100644 index 0000000..0225f72 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/entity/User.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/interceptor/AuthenticationInterceptor.class b/java_git/target/classes/com/pjb/springbootjjwt/interceptor/AuthenticationInterceptor.class new file mode 100644 index 0000000..d558d13 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/interceptor/AuthenticationInterceptor.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/interceptor/GloablExceptionHandler.class b/java_git/target/classes/com/pjb/springbootjjwt/interceptor/GloablExceptionHandler.class new file mode 100644 index 0000000..355a006 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/interceptor/GloablExceptionHandler.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/mapper/MailContentMapper.class b/java_git/target/classes/com/pjb/springbootjjwt/mapper/MailContentMapper.class new file mode 100644 index 0000000..058f86e Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/mapper/MailContentMapper.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/mapper/MailContentMapper.xml b/java_git/target/classes/com/pjb/springbootjjwt/mapper/MailContentMapper.xml new file mode 100644 index 0000000..123799a --- /dev/null +++ b/java_git/target/classes/com/pjb/springbootjjwt/mapper/MailContentMapper.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/java_git/target/classes/com/pjb/springbootjjwt/mapper/UserMapper.class b/java_git/target/classes/com/pjb/springbootjjwt/mapper/UserMapper.class new file mode 100644 index 0000000..bbfa67b Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/mapper/UserMapper.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/mapper/UserMapper.xml b/java_git/target/classes/com/pjb/springbootjjwt/mapper/UserMapper.xml new file mode 100644 index 0000000..26a982f --- /dev/null +++ b/java_git/target/classes/com/pjb/springbootjjwt/mapper/UserMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/java_git/target/classes/com/pjb/springbootjjwt/service/IMailService.class b/java_git/target/classes/com/pjb/springbootjjwt/service/IMailService.class new file mode 100644 index 0000000..6482dba Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/service/IMailService.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/service/TokenService.class b/java_git/target/classes/com/pjb/springbootjjwt/service/TokenService.class new file mode 100644 index 0000000..be29295 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/service/TokenService.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/service/UserService.class b/java_git/target/classes/com/pjb/springbootjjwt/service/UserService.class new file mode 100644 index 0000000..06fbdbb Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/service/UserService.class differ diff --git a/java_git/target/classes/com/pjb/springbootjjwt/service/serviceImpl/IMailServiceImpl.class b/java_git/target/classes/com/pjb/springbootjjwt/service/serviceImpl/IMailServiceImpl.class new file mode 100644 index 0000000..0fce044 Binary files /dev/null and b/java_git/target/classes/com/pjb/springbootjjwt/service/serviceImpl/IMailServiceImpl.class differ diff --git a/java_git/target/classes/logback-spring.xml b/java_git/target/classes/logback-spring.xml new file mode 100644 index 0000000..7a556b0 --- /dev/null +++ b/java_git/target/classes/logback-spring.xml @@ -0,0 +1,193 @@ + + + + + + + logback + + + + + + + + + + + + + + + + + info + + + ${CONSOLE_LOG_PATTERN} + + GBK + + + + + + + + ${log.path}/web_debug.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + debug + ACCEPT + DENY + + + + + + + ${log.path}/web_info.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + info + ACCEPT + DENY + + + + + + + ${log.path}/web_warn.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + warn + ACCEPT + DENY + + + + + + + ${log.path}/web_error.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 15 + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java_git/target/classes/mybatis.xml b/java_git/target/classes/mybatis.xml new file mode 100644 index 0000000..8637727 --- /dev/null +++ b/java_git/target/classes/mybatis.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/java_git/target/classes/signpdfconfig.json b/java_git/target/classes/signpdfconfig.json new file mode 100644 index 0000000..8554320 --- /dev/null +++ b/java_git/target/classes/signpdfconfig.json @@ -0,0 +1,26 @@ +[ + {"departmentid":"wuhan", + "isleft": true, + "pdfsizes": [ + { + "sizename": "A4", + "wmin": 123, + "wmax": 200, + "hmin": 123, + "hmax": 124, + "poisions":[ + { + "property": "设计", + "xposition": 12, + "yposition": 25 + }, + { + "property": "审核", + "xposition": 12, + "yposition": 25 + } + ] + } + ] + } +] \ No newline at end of file diff --git a/java_git/target/maven-archiver/pom.properties b/java_git/target/maven-archiver/pom.properties new file mode 100644 index 0000000..700d893 --- /dev/null +++ b/java_git/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Apache Maven +#Thu Jan 18 12:38:15 CST 2024 +version=2.0.0 +groupId=com.pjb +artifactId=ConnorSendMail diff --git a/java_git/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/java_git/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..61b4635 --- /dev/null +++ b/java_git/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,18 @@ +com\pjb\springbootjjwt\interceptor\GloablExceptionHandler.class +com\pjb\springbootjjwt\control\CNServerController.class +com\pjb\springbootjjwt\entity\ServerDwgtopdfEntry.class +com\pjb\springbootjjwt\service\UserService.class +com\pjb\springbootjjwt\config\SwaggerConfig.class +com\pjb\springbootjjwt\mapper\UserMapper.class +com\pjb\springbootjjwt\service\serviceImpl\IMailServiceImpl.class +com\pjb\springbootjjwt\annotation\PassToken.class +com\pjb\springbootjjwt\entity\ServerSignoffEntry.class +com\pjb\springbootjjwt\service\IMailService.class +com\pjb\springbootjjwt\SpringbootJjwtApplication.class +com\pjb\springbootjjwt\service\TokenService.class +com\pjb\springbootjjwt\mapper\MailContentMapper.class +com\pjb\springbootjjwt\entity\User.class +com\pjb\springbootjjwt\annotation\UserLoginToken.class +com\pjb\springbootjjwt\entity\ServerMailEntry.class +com\pjb\springbootjjwt\interceptor\AuthenticationInterceptor.class +com\pjb\springbootjjwt\config\InterceptorConfig.class diff --git a/java_git/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/java_git/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..bd96fd5 --- /dev/null +++ b/java_git/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,18 @@ +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\mapper\UserMapper.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\entity\User.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\annotation\UserLoginToken.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\SpringbootJjwtApplication.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\service\serviceImpl\IMailServiceImpl.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\annotation\PassToken.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\service\IMailService.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\entity\ServerSignoffEntry.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\config\InterceptorConfig.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\interceptor\GloablExceptionHandler.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\service\UserService.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\control\CNServerController.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\service\TokenService.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\interceptor\AuthenticationInterceptor.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\mapper\MailContentMapper.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\config\SwaggerConfig.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\entity\ServerDwgtopdfEntry.java +D:\source\锡压\java_git\src\main\java\com\pjb\springbootjjwt\entity\ServerMailEntry.java diff --git a/java_git/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/java_git/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..aaf5362 --- /dev/null +++ b/java_git/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1 @@ +com\pjb\springbootjjwt\SpringbootJjwtApplicationTests.class diff --git a/java_git/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/java_git/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..1282306 --- /dev/null +++ b/java_git/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1 @@ +D:\source\锡压\java_git\src\test\java\com\pjb\springbootjjwt\SpringbootJjwtApplicationTests.java diff --git a/java_git/target/test-classes/com/pjb/springbootjjwt/SpringbootJjwtApplicationTests.class b/java_git/target/test-classes/com/pjb/springbootjjwt/SpringbootJjwtApplicationTests.class new file mode 100644 index 0000000..9b20dea Binary files /dev/null and b/java_git/target/test-classes/com/pjb/springbootjjwt/SpringbootJjwtApplicationTests.class differ diff --git a/rabbit_server b/rabbit_server new file mode 160000 index 0000000..131d538 --- /dev/null +++ b/rabbit_server @@ -0,0 +1 @@ +Subproject commit 131d53844d3a868df1de4a56d6184d12f4f55d82